
/*!
  * Bootstrap v5.0.2 (https://getbootstrap.com/)
  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
  */
!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).bootstrap=e()}(this,(function(){"use strict";const t={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter(t=>t.matches(e)),parents(t,e){const i=[];let n=t.parentNode;for(;n&&n.nodeType===Node.ELEMENT_NODE&&3!==n.nodeType;)n.matches(e)&&i.push(n),n=n.parentNode;return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]}},e=t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t},i=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i="#"+i.split("#")[1]),e=i&&"#"!==i?i.trim():null}return e},n=t=>{const e=i(t);return e&&document.querySelector(e)?e:null},s=t=>{const e=i(t);return e?document.querySelector(e):null},o=t=>{t.dispatchEvent(new Event("transitionend"))},r=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),a=e=>r(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?t.findOne(e):null,l=(t,e,i)=>{Object.keys(i).forEach(n=>{const s=i[n],o=e[n],a=o&&r(o)?"element":null==(l=o)?""+l:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();var l;if(!new RegExp(s).test(a))throw new TypeError(`${t.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${s}".`)})},c=t=>!(!r(t)||0===t.getClientRects().length)&&"visible"===getComputedStyle(t).getPropertyValue("visibility"),h=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),d=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?d(t.parentNode):null},u=()=>{},f=t=>t.offsetHeight,p=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},m=[],g=()=>"rtl"===document.documentElement.dir,_=t=>{var e;e=()=>{const e=p();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(m.length||document.addEventListener("DOMContentLoaded",()=>{m.forEach(t=>t())}),m.push(e)):e()},b=t=>{"function"==typeof t&&t()},v=(t,e,i=!0)=>{if(!i)return void b(t);const n=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let s=!1;const r=({target:i})=>{i===e&&(s=!0,e.removeEventListener("transitionend",r),b(t))};e.addEventListener("transitionend",r),setTimeout(()=>{s||o(e)},n)},y=(t,e,i,n)=>{let s=t.indexOf(e);if(-1===s)return t[!i&&n?t.length-1:0];const o=t.length;return s+=i?1:-1,n&&(s=(s+o)%o),t[Math.max(0,Math.min(s,o-1))]},w=/[^.]*(?=\..*)\.|.*/,E=/\..*/,A=/::\d+$/,T={};let O=1;const C={mouseenter:"mouseover",mouseleave:"mouseout"},k=/^(mouseenter|mouseleave)/i,L=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function x(t,e){return e&&`${e}::${O++}`||t.uidEvent||O++}function D(t){const e=x(t);return t.uidEvent=e,T[e]=T[e]||{},T[e]}function S(t,e,i=null){const n=Object.keys(t);for(let s=0,o=n.length;s<o;s++){const o=t[n[s]];if(o.originalHandler===e&&o.delegationSelector===i)return o}return null}function I(t,e,i){const n="string"==typeof e,s=n?i:e;let o=M(t);return L.has(o)||(o=t),[n,s,o]}function N(t,e,i,n,s){if("string"!=typeof e||!t)return;if(i||(i=n,n=null),k.test(e)){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};n?n=t(n):i=t(i)}const[o,r,a]=I(e,i,n),l=D(t),c=l[a]||(l[a]={}),h=S(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=x(r,e.replace(w,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(let a=o.length;a--;)if(o[a]===r)return s.delegateTarget=r,n.oneOff&&P.off(t,s.type,e,i),i.apply(r,[s]);return null}}(t,i,n):function(t,e){return function i(n){return n.delegateTarget=t,i.oneOff&&P.off(t,n.type,e),e.apply(t,[n])}}(t,i);u.delegationSelector=o?i:null,u.originalHandler=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function j(t,e,i,n,s){const o=S(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function M(t){return t=t.replace(E,""),C[t]||t}const P={on(t,e,i,n){N(t,e,i,n,!1)},one(t,e,i,n){N(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=I(e,i,n),a=r!==e,l=D(t),c=e.startsWith(".");if(void 0!==o){if(!l||!l[r])return;return void j(t,l,r,o,s?i:null)}c&&Object.keys(l).forEach(i=>{!function(t,e,i,n){const s=e[i]||{};Object.keys(s).forEach(o=>{if(o.includes(n)){const n=s[o];j(t,e,i,n.originalHandler,n.delegationSelector)}})}(t,l,i,e.slice(1))});const h=l[r]||{};Object.keys(h).forEach(i=>{const n=i.replace(A,"");if(!a||e.includes(n)){const e=h[i];j(t,l,r,e.originalHandler,e.delegationSelector)}})},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=p(),s=M(e),o=e!==s,r=L.has(s);let a,l=!0,c=!0,h=!1,d=null;return o&&n&&(a=n.Event(e,i),n(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),h=a.isDefaultPrevented()),r?(d=document.createEvent("HTMLEvents"),d.initEvent(s,l,!0)):d=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach(t=>{Object.defineProperty(d,t,{get:()=>i[t]})}),h&&d.preventDefault(),c&&t.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}},H=new Map;var R={set(t,e,i){H.has(t)||H.set(t,new Map);const n=H.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>H.has(t)&&H.get(t).get(e)||null,remove(t,e){if(!H.has(t))return;const i=H.get(t);i.delete(e),0===i.size&&H.delete(t)}};class B{constructor(t){(t=a(t))&&(this._element=t,R.set(this._element,this.constructor.DATA_KEY,this))}dispose(){R.remove(this._element,this.constructor.DATA_KEY),P.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach(t=>{this[t]=null})}_queueCallback(t,e,i=!0){v(t,e,i)}static getInstance(t){return R.get(t,this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.0.2"}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return"bs."+this.NAME}static get EVENT_KEY(){return"."+this.DATA_KEY}}class W extends B{static get NAME(){return"alert"}close(t){const e=t?this._getRootElement(t):this._element,i=this._triggerCloseEvent(e);null===i||i.defaultPrevented||this._removeElement(e)}_getRootElement(t){return s(t)||t.closest(".alert")}_triggerCloseEvent(t){return P.trigger(t,"close.bs.alert")}_removeElement(t){t.classList.remove("show");const e=t.classList.contains("fade");this._queueCallback(()=>this._destroyElement(t),t,e)}_destroyElement(t){t.remove(),P.trigger(t,"closed.bs.alert")}static jQueryInterface(t){return this.each((function(){const e=W.getOrCreateInstance(this);"close"===t&&e[t](this)}))}static handleDismiss(t){return function(e){e&&e.preventDefault(),t.close(this)}}}P.on(document,"click.bs.alert.data-api",'[data-bs-dismiss="alert"]',W.handleDismiss(new W)),_(W);class q extends B{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=q.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}function z(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function $(t){return t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase())}P.on(document,"click.bs.button.data-api",'[data-bs-toggle="button"]',t=>{t.preventDefault();const e=t.target.closest('[data-bs-toggle="button"]');q.getOrCreateInstance(e).toggle()}),_(q);const U={setDataAttribute(t,e,i){t.setAttribute("data-bs-"+$(e),i)},removeDataAttribute(t,e){t.removeAttribute("data-bs-"+$(e))},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter(t=>t.startsWith("bs")).forEach(i=>{let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),e[n]=z(t.dataset[i])}),e},getDataAttribute:(t,e)=>z(t.getAttribute("data-bs-"+$(e))),offset(t){const e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},F={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},V={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},K="next",X="prev",Y="left",Q="right",G={ArrowLeft:Q,ArrowRight:Y};class Z extends B{constructor(e,i){super(e),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(i),this._indicatorsElement=t.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return F}static get NAME(){return"carousel"}next(){this._slide(K)}nextWhenVisible(){!document.hidden&&c(this._element)&&this.next()}prev(){this._slide(X)}pause(e){e||(this._isPaused=!0),t.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(o(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(e){this._activeElement=t.findOne(".active.carousel-item",this._element);const i=this._getItemIndex(this._activeElement);if(e>this._items.length-1||e<0)return;if(this._isSliding)return void P.one(this._element,"slid.bs.carousel",()=>this.to(e));if(i===e)return this.pause(),void this.cycle();const n=e>i?K:X;this._slide(n,this._items[e])}_getConfig(t){return t={...F,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},l("carousel",t,V),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?Q:Y)}_addEventListeners(){this._config.keyboard&&P.on(this._element,"keydown.bs.carousel",t=>this._keydown(t)),"hover"===this._config.pause&&(P.on(this._element,"mouseenter.bs.carousel",t=>this.pause(t)),P.on(this._element,"mouseleave.bs.carousel",t=>this.cycle(t))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const e=t=>{!this._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType?this._pointerEvent||(this.touchStartX=t.touches[0].clientX):this.touchStartX=t.clientX},i=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},n=t=>{!this._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType||(this.touchDeltaX=t.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(t=>this.cycle(t),500+this._config.interval))};t.find(".carousel-item img",this._element).forEach(t=>{P.on(t,"dragstart.bs.carousel",t=>t.preventDefault())}),this._pointerEvent?(P.on(this._element,"pointerdown.bs.carousel",t=>e(t)),P.on(this._element,"pointerup.bs.carousel",t=>n(t)),this._element.classList.add("pointer-event")):(P.on(this._element,"touchstart.bs.carousel",t=>e(t)),P.on(this._element,"touchmove.bs.carousel",t=>i(t)),P.on(this._element,"touchend.bs.carousel",t=>n(t)))}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=G[t.key];e&&(t.preventDefault(),this._slide(e))}_getItemIndex(e){return this._items=e&&e.parentNode?t.find(".carousel-item",e.parentNode):[],this._items.indexOf(e)}_getItemByOrder(t,e){const i=t===K;return y(this._items,e,i,this._config.wrap)}_triggerSlideEvent(e,i){const n=this._getItemIndex(e),s=this._getItemIndex(t.findOne(".active.carousel-item",this._element));return P.trigger(this._element,"slide.bs.carousel",{relatedTarget:e,direction:i,from:s,to:n})}_setActiveIndicatorElement(e){if(this._indicatorsElement){const i=t.findOne(".active",this._indicatorsElement);i.classList.remove("active"),i.removeAttribute("aria-current");const n=t.find("[data-bs-target]",this._indicatorsElement);for(let t=0;t<n.length;t++)if(Number.parseInt(n[t].getAttribute("data-bs-slide-to"),10)===this._getItemIndex(e)){n[t].classList.add("active"),n[t].setAttribute("aria-current","true");break}}}_updateInterval(){const e=this._activeElement||t.findOne(".active.carousel-item",this._element);if(!e)return;const i=Number.parseInt(e.getAttribute("data-bs-interval"),10);i?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=i):this._config.interval=this._config.defaultInterval||this._config.interval}_slide(e,i){const n=this._directionToOrder(e),s=t.findOne(".active.carousel-item",this._element),o=this._getItemIndex(s),r=i||this._getItemByOrder(n,s),a=this._getItemIndex(r),l=Boolean(this._interval),c=n===K,h=c?"carousel-item-start":"carousel-item-end",d=c?"carousel-item-next":"carousel-item-prev",u=this._orderToDirection(n);if(r&&r.classList.contains("active"))return void(this._isSliding=!1);if(this._isSliding)return;if(this._triggerSlideEvent(r,u).defaultPrevented)return;if(!s||!r)return;this._isSliding=!0,l&&this.pause(),this._setActiveIndicatorElement(r),this._activeElement=r;const p=()=>{P.trigger(this._element,"slid.bs.carousel",{relatedTarget:r,direction:u,from:o,to:a})};if(this._element.classList.contains("slide")){r.classList.add(d),f(r),s.classList.add(h),r.classList.add(h);const t=()=>{r.classList.remove(h,d),r.classList.add("active"),s.classList.remove("active",d,h),this._isSliding=!1,setTimeout(p,0)};this._queueCallback(t,s,!0)}else s.classList.remove("active"),r.classList.add("active"),this._isSliding=!1,p();l&&this.cycle()}_directionToOrder(t){return[Q,Y].includes(t)?g()?t===Y?X:K:t===Y?K:X:t}_orderToDirection(t){return[K,X].includes(t)?g()?t===X?Y:Q:t===X?Q:Y:t}static carouselInterface(t,e){const i=Z.getOrCreateInstance(t,e);let{_config:n}=i;"object"==typeof e&&(n={...n,...e});const s="string"==typeof e?e:n.slide;if("number"==typeof e)i.to(e);else if("string"==typeof s){if(void 0===i[s])throw new TypeError(`No method named "${s}"`);i[s]()}else n.interval&&n.ride&&(i.pause(),i.cycle())}static jQueryInterface(t){return this.each((function(){Z.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=s(this);if(!e||!e.classList.contains("carousel"))return;const i={...U.getDataAttributes(e),...U.getDataAttributes(this)},n=this.getAttribute("data-bs-slide-to");n&&(i.interval=!1),Z.carouselInterface(e,i),n&&Z.getInstance(e).to(n),t.preventDefault()}}P.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",Z.dataApiClickHandler),P.on(window,"load.bs.carousel.data-api",()=>{const e=t.find('[data-bs-ride="carousel"]');for(let t=0,i=e.length;t<i;t++)Z.carouselInterface(e[t],Z.getInstance(e[t]))}),_(Z);const J={toggle:!0,parent:""},tt={toggle:"boolean",parent:"(string|element)"};class et extends B{constructor(e,i){super(e),this._isTransitioning=!1,this._config=this._getConfig(i),this._triggerArray=t.find(`[data-bs-toggle="collapse"][href="#${this._element.id}"],[data-bs-toggle="collapse"][data-bs-target="#${this._element.id}"]`);const s=t.find('[data-bs-toggle="collapse"]');for(let e=0,i=s.length;e<i;e++){const i=s[e],o=n(i),r=t.find(o).filter(t=>t===this._element);null!==o&&r.length&&(this._selector=o,this._triggerArray.push(i))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}static get Default(){return J}static get NAME(){return"collapse"}toggle(){this._element.classList.contains("show")?this.hide():this.show()}show(){if(this._isTransitioning||this._element.classList.contains("show"))return;let e,i;this._parent&&(e=t.find(".show, .collapsing",this._parent).filter(t=>"string"==typeof this._config.parent?t.getAttribute("data-bs-parent")===this._config.parent:t.classList.contains("collapse")),0===e.length&&(e=null));const n=t.findOne(this._selector);if(e){const t=e.find(t=>n!==t);if(i=t?et.getInstance(t):null,i&&i._isTransitioning)return}if(P.trigger(this._element,"show.bs.collapse").defaultPrevented)return;e&&e.forEach(t=>{n!==t&&et.collapseInterface(t,"hide"),i||R.set(t,"bs.collapse",null)});const s=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[s]=0,this._triggerArray.length&&this._triggerArray.forEach(t=>{t.classList.remove("collapsed"),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);const o="scroll"+(s[0].toUpperCase()+s.slice(1));this._queueCallback(()=>{this._element.classList.remove("collapsing"),this._element.classList.add("collapse","show"),this._element.style[s]="",this.setTransitioning(!1),P.trigger(this._element,"shown.bs.collapse")},this._element,!0),this._element.style[s]=this._element[o]+"px"}hide(){if(this._isTransitioning||!this._element.classList.contains("show"))return;if(P.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=this._element.getBoundingClientRect()[t]+"px",f(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");const e=this._triggerArray.length;if(e>0)for(let t=0;t<e;t++){const e=this._triggerArray[t],i=s(e);i&&!i.classList.contains("show")&&(e.classList.add("collapsed"),e.setAttribute("aria-expanded",!1))}this.setTransitioning(!0),this._element.style[t]="",this._queueCallback(()=>{this.setTransitioning(!1),this._element.classList.remove("collapsing"),this._element.classList.add("collapse"),P.trigger(this._element,"hidden.bs.collapse")},this._element,!0)}setTransitioning(t){this._isTransitioning=t}_getConfig(t){return(t={...J,...t}).toggle=Boolean(t.toggle),l("collapse",t,tt),t}_getDimension(){return this._element.classList.contains("width")?"width":"height"}_getParent(){let{parent:e}=this._config;e=a(e);const i=`[data-bs-toggle="collapse"][data-bs-parent="${e}"]`;return t.find(i,e).forEach(t=>{const e=s(t);this._addAriaAndCollapsedClass(e,[t])}),e}_addAriaAndCollapsedClass(t,e){if(!t||!e.length)return;const i=t.classList.contains("show");e.forEach(t=>{i?t.classList.remove("collapsed"):t.classList.add("collapsed"),t.setAttribute("aria-expanded",i)})}static collapseInterface(t,e){let i=et.getInstance(t);const n={...J,...U.getDataAttributes(t),..."object"==typeof e&&e?e:{}};if(!i&&n.toggle&&"string"==typeof e&&/show|hide/.test(e)&&(n.toggle=!1),i||(i=new et(t,n)),"string"==typeof e){if(void 0===i[e])throw new TypeError(`No method named "${e}"`);i[e]()}}static jQueryInterface(t){return this.each((function(){et.collapseInterface(this,t)}))}}P.on(document,"click.bs.collapse.data-api",'[data-bs-toggle="collapse"]',(function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();const i=U.getDataAttributes(this),s=n(this);t.find(s).forEach(t=>{const e=et.getInstance(t);let n;e?(null===e._parent&&"string"==typeof i.parent&&(e._config.parent=i.parent,e._parent=e._getParent()),n="toggle"):n=i,et.collapseInterface(t,n)})})),_(et);var it="top",nt="bottom",st="right",ot="left",rt=[it,nt,st,ot],at=rt.reduce((function(t,e){return t.concat([e+"-start",e+"-end"])}),[]),lt=[].concat(rt,["auto"]).reduce((function(t,e){return t.concat([e,e+"-start",e+"-end"])}),[]),ct=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function ht(t){return t?(t.nodeName||"").toLowerCase():null}function dt(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function ut(t){return t instanceof dt(t).Element||t instanceof Element}function ft(t){return t instanceof dt(t).HTMLElement||t instanceof HTMLElement}function pt(t){return"undefined"!=typeof ShadowRoot&&(t instanceof dt(t).ShadowRoot||t instanceof ShadowRoot)}var mt={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];ft(s)&&ht(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});ft(n)&&ht(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function gt(t){return t.split("-")[0]}function _t(t){var e=t.getBoundingClientRect();return{width:e.width,height:e.height,top:e.top,right:e.right,bottom:e.bottom,left:e.left,x:e.left,y:e.top}}function bt(t){var e=_t(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function vt(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&pt(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function yt(t){return dt(t).getComputedStyle(t)}function wt(t){return["table","td","th"].indexOf(ht(t))>=0}function Et(t){return((ut(t)?t.ownerDocument:t.document)||window.document).documentElement}function At(t){return"html"===ht(t)?t:t.assignedSlot||t.parentNode||(pt(t)?t.host:null)||Et(t)}function Tt(t){return ft(t)&&"fixed"!==yt(t).position?t.offsetParent:null}function Ot(t){for(var e=dt(t),i=Tt(t);i&&wt(i)&&"static"===yt(i).position;)i=Tt(i);return i&&("html"===ht(i)||"body"===ht(i)&&"static"===yt(i).position)?e:i||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&ft(t)&&"fixed"===yt(t).position)return null;for(var i=At(t);ft(i)&&["html","body"].indexOf(ht(i))<0;){var n=yt(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ct(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}var kt=Math.max,Lt=Math.min,xt=Math.round;function Dt(t,e,i){return kt(t,Lt(e,i))}function St(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function It(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}var Nt={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=gt(i.placement),l=Ct(a),c=[ot,st].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return St("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:It(t,rt))}(s.padding,i),d=bt(o),u="y"===l?it:ot,f="y"===l?nt:st,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=Ot(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,E=Dt(v,w,y),A=l;i.modifiersData[n]=((e={})[A]=E,e.centerOffset=E-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&vt(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},jt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Mt(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.offsets,r=t.position,a=t.gpuAcceleration,l=t.adaptive,c=t.roundOffsets,h=!0===c?function(t){var e=t.x,i=t.y,n=window.devicePixelRatio||1;return{x:xt(xt(e*n)/n)||0,y:xt(xt(i*n)/n)||0}}(o):"function"==typeof c?c(o):o,d=h.x,u=void 0===d?0:d,f=h.y,p=void 0===f?0:f,m=o.hasOwnProperty("x"),g=o.hasOwnProperty("y"),_=ot,b=it,v=window;if(l){var y=Ot(i),w="clientHeight",E="clientWidth";y===dt(i)&&"static"!==yt(y=Et(i)).position&&(w="scrollHeight",E="scrollWidth"),y=y,s===it&&(b=nt,p-=y[w]-n.height,p*=a?1:-1),s===ot&&(_=st,u-=y[E]-n.width,u*=a?1:-1)}var A,T=Object.assign({position:r},l&&jt);return a?Object.assign({},T,((A={})[b]=g?"0":"",A[_]=m?"0":"",A.transform=(v.devicePixelRatio||1)<2?"translate("+u+"px, "+p+"px)":"translate3d("+u+"px, "+p+"px, 0)",A)):Object.assign({},T,((e={})[b]=g?p+"px":"",e[_]=m?u+"px":"",e.transform="",e))}var Pt={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:gt(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,Mt(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,Mt(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}},Ht={passive:!0},Rt={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=dt(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,Ht)})),a&&l.addEventListener("resize",i.update,Ht),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,Ht)})),a&&l.removeEventListener("resize",i.update,Ht)}},data:{}},Bt={left:"right",right:"left",bottom:"top",top:"bottom"};function Wt(t){return t.replace(/left|right|bottom|top/g,(function(t){return Bt[t]}))}var qt={start:"end",end:"start"};function zt(t){return t.replace(/start|end/g,(function(t){return qt[t]}))}function $t(t){var e=dt(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ut(t){return _t(Et(t)).left+$t(t).scrollLeft}function Ft(t){var e=yt(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Vt(t,e){var i;void 0===e&&(e=[]);var n=function t(e){return["html","body","#document"].indexOf(ht(e))>=0?e.ownerDocument.body:ft(e)&&Ft(e)?e:t(At(e))}(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=dt(n),r=s?[o].concat(o.visualViewport||[],Ft(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Vt(At(r)))}function Kt(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Xt(t,e){return"viewport"===e?Kt(function(t){var e=dt(t),i=Et(t),n=e.visualViewport,s=i.clientWidth,o=i.clientHeight,r=0,a=0;return n&&(s=n.width,o=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=n.offsetLeft,a=n.offsetTop)),{width:s,height:o,x:r+Ut(t),y:a}}(t)):ft(e)?function(t){var e=_t(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):Kt(function(t){var e,i=Et(t),n=$t(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=kt(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=kt(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ut(t),l=-n.scrollTop;return"rtl"===yt(s||i).direction&&(a+=kt(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Et(t)))}function Yt(t){return t.split("-")[1]}function Qt(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?gt(s):null,r=s?Yt(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case it:e={x:a,y:i.y-n.height};break;case nt:e={x:a,y:i.y+i.height};break;case st:e={x:i.x+i.width,y:l};break;case ot:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ct(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case"start":e[c]=e[c]-(i[h]/2-n[h]/2);break;case"end":e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function Gt(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.boundary,r=void 0===o?"clippingParents":o,a=i.rootBoundary,l=void 0===a?"viewport":a,c=i.elementContext,h=void 0===c?"popper":c,d=i.altBoundary,u=void 0!==d&&d,f=i.padding,p=void 0===f?0:f,m=St("number"!=typeof p?p:It(p,rt)),g="popper"===h?"reference":"popper",_=t.elements.reference,b=t.rects.popper,v=t.elements[u?g:h],y=function(t,e,i){var n="clippingParents"===e?function(t){var e=Vt(At(t)),i=["absolute","fixed"].indexOf(yt(t).position)>=0&&ft(t)?Ot(t):t;return ut(i)?e.filter((function(t){return ut(t)&&vt(t,i)&&"body"!==ht(t)})):[]}(t):[].concat(e),s=[].concat(n,[i]),o=s[0],r=s.reduce((function(e,i){var n=Xt(t,i);return e.top=kt(n.top,e.top),e.right=Lt(n.right,e.right),e.bottom=Lt(n.bottom,e.bottom),e.left=kt(n.left,e.left),e}),Xt(t,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}(ut(v)?v:v.contextElement||Et(t.elements.popper),r,l),w=_t(_),E=Qt({reference:w,element:b,strategy:"absolute",placement:s}),A=Kt(Object.assign({},b,E)),T="popper"===h?A:w,O={top:y.top-T.top+m.top,bottom:T.bottom-y.bottom+m.bottom,left:y.left-T.left+m.left,right:T.right-y.right+m.right},C=t.modifiersData.offset;if("popper"===h&&C){var k=C[s];Object.keys(O).forEach((function(t){var e=[st,nt].indexOf(t)>=0?1:-1,i=[it,nt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function Zt(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?lt:l,h=Yt(n),d=h?a?at:at.filter((function(t){return Yt(t)===h})):rt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=Gt(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[gt(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}var Jt={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=gt(g),b=l||(_!==g&&p?function(t){if("auto"===gt(t))return[];var e=Wt(t);return[zt(t),e,zt(e)]}(g):[Wt(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat("auto"===gt(i)?Zt(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,E=new Map,A=!0,T=v[0],O=0;O<v.length;O++){var C=v[O],k=gt(C),L="start"===Yt(C),x=[it,nt].indexOf(k)>=0,D=x?"width":"height",S=Gt(e,{placement:C,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),I=x?L?st:ot:L?nt:it;y[D]>w[D]&&(I=Wt(I));var N=Wt(I),j=[];if(o&&j.push(S[k]<=0),a&&j.push(S[I]<=0,S[N]<=0),j.every((function(t){return t}))){T=C,A=!1;break}E.set(C,j)}if(A)for(var M=function(t){var e=v.find((function(e){var i=E.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},P=p?3:1;P>0&&"break"!==M(P);P--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function te(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ee(t){return[it,st,nt,ot].some((function(e){return t[e]>=0}))}var ie={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=Gt(e,{elementContext:"reference"}),a=Gt(e,{altBoundary:!0}),l=te(r,n),c=te(a,s,o),h=ee(l),d=ee(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},ne={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=lt.reduce((function(t,i){return t[i]=function(t,e,i){var n=gt(t),s=[ot,it].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[ot,st].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},se={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=Qt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},oe={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=Gt(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=gt(e.placement),b=Yt(e.placement),v=!b,y=Ct(_),w="x"===y?"y":"x",E=e.modifiersData.popperOffsets,A=e.rects.reference,T=e.rects.popper,O="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,C={x:0,y:0};if(E){if(o||a){var k="y"===y?it:ot,L="y"===y?nt:st,x="y"===y?"height":"width",D=E[y],S=E[y]+g[k],I=E[y]-g[L],N=f?-T[x]/2:0,j="start"===b?A[x]:T[x],M="start"===b?-T[x]:-A[x],P=e.elements.arrow,H=f&&P?bt(P):{width:0,height:0},R=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},B=R[k],W=R[L],q=Dt(0,A[x],H[x]),z=v?A[x]/2-N-q-B-O:j-q-B-O,$=v?-A[x]/2+N+q+W+O:M+q+W+O,U=e.elements.arrow&&Ot(e.elements.arrow),F=U?"y"===y?U.clientTop||0:U.clientLeft||0:0,V=e.modifiersData.offset?e.modifiersData.offset[e.placement][y]:0,K=E[y]+z-V-F,X=E[y]+$-V;if(o){var Y=Dt(f?Lt(S,K):S,D,f?kt(I,X):I);E[y]=Y,C[y]=Y-D}if(a){var Q="x"===y?it:ot,G="x"===y?nt:st,Z=E[w],J=Z+g[Q],tt=Z-g[G],et=Dt(f?Lt(J,K):J,Z,f?kt(tt,X):tt);E[w]=et,C[w]=et-Z}}e.modifiersData[n]=C}},requiresIfExists:["offset"]};function re(t,e,i){void 0===i&&(i=!1);var n,s,o=Et(e),r=_t(t),a=ft(e),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(a||!a&&!i)&&(("body"!==ht(e)||Ft(o))&&(l=(n=e)!==dt(n)&&ft(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:$t(n)),ft(e)?((c=_t(e)).x+=e.clientLeft,c.y+=e.clientTop):o&&(c.x=Ut(o))),{x:r.left+l.scrollLeft-c.x,y:r.top+l.scrollTop-c.y,width:r.width,height:r.height}}var ae={placement:"bottom",modifiers:[],strategy:"absolute"};function le(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return!e.some((function(t){return!(t&&"function"==typeof t.getBoundingClientRect)}))}function ce(t){void 0===t&&(t={});var e=t,i=e.defaultModifiers,n=void 0===i?[]:i,s=e.defaultOptions,o=void 0===s?ae:s;return function(t,e,i){void 0===i&&(i=o);var s,r,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},ae,o),modifiersData:{},elements:{reference:t,popper:e},attributes:{},styles:{}},l=[],c=!1,h={state:a,setOptions:function(i){d(),a.options=Object.assign({},o,a.options,i),a.scrollParents={reference:ut(t)?Vt(t):t.contextElement?Vt(t.contextElement):[],popper:Vt(e)};var s,r,c=function(t){var e=function(t){var e=new Map,i=new Set,n=[];return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||function t(s){i.add(s.name),[].concat(s.requires||[],s.requiresIfExists||[]).forEach((function(n){if(!i.has(n)){var s=e.get(n);s&&t(s)}})),n.push(s)}(t)})),n}(t);return ct.reduce((function(t,i){return t.concat(e.filter((function(t){return t.phase===i})))}),[])}((s=[].concat(n,a.options.modifiers),r=s.reduce((function(t,e){var i=t[e.name];return t[e.name]=i?Object.assign({},i,e,{options:Object.assign({},i.options,e.options),data:Object.assign({},i.data,e.data)}):e,t}),{}),Object.keys(r).map((function(t){return r[t]}))));return a.orderedModifiers=c.filter((function(t){return t.enabled})),a.orderedModifiers.forEach((function(t){var e=t.name,i=t.options,n=void 0===i?{}:i,s=t.effect;if("function"==typeof s){var o=s({state:a,name:e,instance:h,options:n});l.push(o||function(){})}})),h.update()},forceUpdate:function(){if(!c){var t=a.elements,e=t.reference,i=t.popper;if(le(e,i)){a.rects={reference:re(e,Ot(i),"fixed"===a.options.strategy),popper:bt(i)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach((function(t){return a.modifiersData[t.name]=Object.assign({},t.data)}));for(var n=0;n<a.orderedModifiers.length;n++)if(!0!==a.reset){var s=a.orderedModifiers[n],o=s.fn,r=s.options,l=void 0===r?{}:r,d=s.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:h})||a)}else a.reset=!1,n=-1}}},update:(s=function(){return new Promise((function(t){h.forceUpdate(),t(a)}))},function(){return r||(r=new Promise((function(t){Promise.resolve().then((function(){r=void 0,t(s())}))}))),r}),destroy:function(){d(),c=!0}};if(!le(t,e))return h;function d(){l.forEach((function(t){return t()})),l=[]}return h.setOptions(i).then((function(t){!c&&i.onFirstUpdate&&i.onFirstUpdate(t)})),h}}var he=ce(),de=ce({defaultModifiers:[Rt,se,Pt,mt]}),ue=ce({defaultModifiers:[Rt,se,Pt,mt,ne,Jt,oe,Nt,ie]}),fe=Object.freeze({__proto__:null,popperGenerator:ce,detectOverflow:Gt,createPopperBase:he,createPopper:ue,createPopperLite:de,top:it,bottom:nt,right:st,left:ot,auto:"auto",basePlacements:rt,start:"start",end:"end",clippingParents:"clippingParents",viewport:"viewport",popper:"popper",reference:"reference",variationPlacements:at,placements:lt,beforeRead:"beforeRead",read:"read",afterRead:"afterRead",beforeMain:"beforeMain",main:"main",afterMain:"afterMain",beforeWrite:"beforeWrite",write:"write",afterWrite:"afterWrite",modifierPhases:ct,applyStyles:mt,arrow:Nt,computeStyles:Pt,eventListeners:Rt,flip:Jt,hide:ie,offset:ne,popperOffsets:se,preventOverflow:oe});const pe=new RegExp("ArrowUp|ArrowDown|Escape"),me=g()?"top-end":"top-start",ge=g()?"top-start":"top-end",_e=g()?"bottom-end":"bottom-start",be=g()?"bottom-start":"bottom-end",ve=g()?"left-start":"right-start",ye=g()?"right-start":"left-start",we={offset:[0,2],boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null,autoClose:!0},Ee={offset:"(array|string|function)",boundary:"(string|element)",reference:"(string|element|object)",display:"string",popperConfig:"(null|object|function)",autoClose:"(boolean|string)"};class Ae extends B{constructor(t,e){super(t),this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}static get Default(){return we}static get DefaultType(){return Ee}static get NAME(){return"dropdown"}toggle(){h(this._element)||(this._element.classList.contains("show")?this.hide():this.show())}show(){if(h(this._element)||this._menu.classList.contains("show"))return;const t=Ae.getParentFromElement(this._element),e={relatedTarget:this._element};if(!P.trigger(this._element,"show.bs.dropdown",e).defaultPrevented){if(this._inNavbar)U.setDataAttribute(this._menu,"popper","none");else{if(void 0===fe)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=t:r(this._config.reference)?e=a(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const i=this._getPopperConfig(),n=i.modifiers.find(t=>"applyStyles"===t.name&&!1===t.enabled);this._popper=ue(e,this._menu,i),n&&U.setDataAttribute(this._menu,"popper","static")}"ontouchstart"in document.documentElement&&!t.closest(".navbar-nav")&&[].concat(...document.body.children).forEach(t=>P.on(t,"mouseover",u)),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),P.trigger(this._element,"shown.bs.dropdown",e)}}hide(){if(h(this._element)||!this._menu.classList.contains("show"))return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_addEventListeners(){P.on(this._element,"click.bs.dropdown",t=>{t.preventDefault(),this.toggle()})}_completeHide(t){P.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>P.off(t,"mouseover",u)),this._popper&&this._popper.destroy(),this._menu.classList.remove("show"),this._element.classList.remove("show"),this._element.setAttribute("aria-expanded","false"),U.removeDataAttribute(this._menu,"popper"),P.trigger(this._element,"hidden.bs.dropdown",t))}_getConfig(t){if(t={...this.constructor.Default,...U.getDataAttributes(this._element),...t},l("dropdown",t,this.constructor.DefaultType),"object"==typeof t.reference&&!r(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError("dropdown".toUpperCase()+': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');return t}_getMenuElement(){return t.next(this._element,".dropdown-menu")[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains("dropend"))return ve;if(t.classList.contains("dropstart"))return ye;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?ge:me:e?be:_e}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:e,target:i}){const n=t.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(c);n.length&&y(n,i,"ArrowDown"===e,!n.includes(i)).focus()}static dropdownInterface(t,e){const i=Ae.getOrCreateInstance(t,e);if("string"==typeof e){if(void 0===i[e])throw new TypeError(`No method named "${e}"`);i[e]()}}static jQueryInterface(t){return this.each((function(){Ae.dropdownInterface(this,t)}))}static clearMenus(e){if(e&&(2===e.button||"keyup"===e.type&&"Tab"!==e.key))return;const i=t.find('[data-bs-toggle="dropdown"]');for(let t=0,n=i.length;t<n;t++){const n=Ae.getInstance(i[t]);if(!n||!1===n._config.autoClose)continue;if(!n._element.classList.contains("show"))continue;const s={relatedTarget:n._element};if(e){const t=e.composedPath(),i=t.includes(n._menu);if(t.includes(n._element)||"inside"===n._config.autoClose&&!i||"outside"===n._config.autoClose&&i)continue;if(n._menu.contains(e.target)&&("keyup"===e.type&&"Tab"===e.key||/input|select|option|textarea|form/i.test(e.target.tagName)))continue;"click"===e.type&&(s.clickEvent=e)}n._completeHide(s)}}static getParentFromElement(t){return s(t)||t.parentNode}static dataApiKeydownHandler(e){if(/input|textarea/i.test(e.target.tagName)?"Space"===e.key||"Escape"!==e.key&&("ArrowDown"!==e.key&&"ArrowUp"!==e.key||e.target.closest(".dropdown-menu")):!pe.test(e.key))return;const i=this.classList.contains("show");if(!i&&"Escape"===e.key)return;if(e.preventDefault(),e.stopPropagation(),h(this))return;const n=()=>this.matches('[data-bs-toggle="dropdown"]')?this:t.prev(this,'[data-bs-toggle="dropdown"]')[0];return"Escape"===e.key?(n().focus(),void Ae.clearMenus()):"ArrowUp"===e.key||"ArrowDown"===e.key?(i||n().click(),void Ae.getInstance(n())._selectMenuItem(e)):void(i&&"Space"!==e.key||Ae.clearMenus())}}P.on(document,"keydown.bs.dropdown.data-api",'[data-bs-toggle="dropdown"]',Ae.dataApiKeydownHandler),P.on(document,"keydown.bs.dropdown.data-api",".dropdown-menu",Ae.dataApiKeydownHandler),P.on(document,"click.bs.dropdown.data-api",Ae.clearMenus),P.on(document,"keyup.bs.dropdown.data-api",Ae.clearMenus),P.on(document,"click.bs.dropdown.data-api",'[data-bs-toggle="dropdown"]',(function(t){t.preventDefault(),Ae.dropdownInterface(this)})),_(Ae);class Te{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,"paddingRight",e=>e+t),this._setElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight",e=>e+t),this._setElementAttributes(".sticky-top","marginRight",e=>e-t)}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t)[e];t.style[e]=i(Number.parseFloat(s))+"px"})}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight"),this._resetElementAttributes(".sticky-top","marginRight")}_saveInitialAttribute(t,e){const i=t.style[e];i&&U.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,t=>{const i=U.getDataAttribute(t,e);void 0===i?t.style.removeProperty(e):(U.removeDataAttribute(t,e),t.style[e]=i)})}_applyManipulationCallback(e,i){r(e)?i(e):t.find(e,this._element).forEach(i)}isOverflowing(){return this.getWidth()>0}}const Oe={isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},Ce={isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"};class ke{constructor(t){this._config=this._getConfig(t),this._isAppended=!1,this._element=null}show(t){this._config.isVisible?(this._append(),this._config.isAnimated&&f(this._getElement()),this._getElement().classList.add("show"),this._emulateAnimation(()=>{b(t)})):b(t)}hide(t){this._config.isVisible?(this._getElement().classList.remove("show"),this._emulateAnimation(()=>{this.dispose(),b(t)})):b(t)}_getElement(){if(!this._element){const t=document.createElement("div");t.className="modal-backdrop",this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_getConfig(t){return(t={...Oe,..."object"==typeof t?t:{}}).rootElement=a(t.rootElement),l("backdrop",t,Ce),t}_append(){this._isAppended||(this._config.rootElement.appendChild(this._getElement()),P.on(this._getElement(),"mousedown.bs.backdrop",()=>{b(this._config.clickCallback)}),this._isAppended=!0)}dispose(){this._isAppended&&(P.off(this._element,"mousedown.bs.backdrop"),this._element.remove(),this._isAppended=!1)}_emulateAnimation(t){v(t,this._getElement(),this._config.isAnimated)}}const Le={backdrop:!0,keyboard:!0,focus:!0},xe={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"};class De extends B{constructor(e,i){super(e),this._config=this._getConfig(i),this._dialog=t.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new Te}static get Default(){return Le}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||P.trigger(this._element,"show.bs.modal",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add("modal-open"),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),P.on(this._element,"click.dismiss.bs.modal",'[data-bs-dismiss="modal"]',t=>this.hide(t)),P.on(this._dialog,"mousedown.dismiss.bs.modal",()=>{P.one(this._element,"mouseup.dismiss.bs.modal",t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)})}),this._showBackdrop(()=>this._showElement(t)))}hide(t){if(t&&["A","AREA"].includes(t.target.tagName)&&t.preventDefault(),!this._isShown||this._isTransitioning)return;if(P.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const e=this._isAnimated();e&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),P.off(document,"focusin.bs.modal"),this._element.classList.remove("show"),P.off(this._element,"click.dismiss.bs.modal"),P.off(this._dialog,"mousedown.dismiss.bs.modal"),this._queueCallback(()=>this._hideModal(),this._element,e)}dispose(){[window,this._dialog].forEach(t=>P.off(t,".bs.modal")),this._backdrop.dispose(),super.dispose(),P.off(document,"focusin.bs.modal")}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new ke({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_getConfig(t){return t={...Le,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},l("modal",t,xe),t}_showElement(e){const i=this._isAnimated(),n=t.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,n&&(n.scrollTop=0),i&&f(this._element),this._element.classList.add("show"),this._config.focus&&this._enforceFocus(),this._queueCallback(()=>{this._config.focus&&this._element.focus(),this._isTransitioning=!1,P.trigger(this._element,"shown.bs.modal",{relatedTarget:e})},this._dialog,i)}_enforceFocus(){P.off(document,"focusin.bs.modal"),P.on(document,"focusin.bs.modal",t=>{document===t.target||this._element===t.target||this._element.contains(t.target)||this._element.focus()})}_setEscapeEvent(){this._isShown?P.on(this._element,"keydown.dismiss.bs.modal",t=>{this._config.keyboard&&"Escape"===t.key?(t.preventDefault(),this.hide()):this._config.keyboard||"Escape"!==t.key||this._triggerBackdropTransition()}):P.off(this._element,"keydown.dismiss.bs.modal")}_setResizeEvent(){this._isShown?P.on(window,"resize.bs.modal",()=>this._adjustDialog()):P.off(window,"resize.bs.modal")}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove("modal-open"),this._resetAdjustments(),this._scrollBar.reset(),P.trigger(this._element,"hidden.bs.modal")})}_showBackdrop(t){P.on(this._element,"click.dismiss.bs.modal",t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())}),this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(P.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const{classList:t,scrollHeight:e,style:i}=this._element,n=e>document.documentElement.clientHeight;!n&&"hidden"===i.overflowY||t.contains("modal-static")||(n||(i.overflowY="hidden"),t.add("modal-static"),this._queueCallback(()=>{t.remove("modal-static"),n||this._queueCallback(()=>{i.overflowY=""},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;(!i&&t&&!g()||i&&!t&&g())&&(this._element.style.paddingLeft=e+"px"),(i&&!t&&!g()||!i&&t&&g())&&(this._element.style.paddingRight=e+"px")}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=De.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}P.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=s(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),P.one(e,"show.bs.modal",t=>{t.defaultPrevented||P.one(e,"hidden.bs.modal",()=>{c(this)&&this.focus()})}),De.getOrCreateInstance(e).toggle(this)})),_(De);const Se={backdrop:!0,keyboard:!0,scroll:!1},Ie={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"};class Ne extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._addEventListeners()}static get NAME(){return"offcanvas"}static get Default(){return Se}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||P.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||((new Te).hide(),this._enforceFocusOnElement(this._element)),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add("show"),this._queueCallback(()=>{P.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})},this._element,!0))}hide(){this._isShown&&(P.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(P.off(document,"focusin.bs.offcanvas"),this._element.blur(),this._isShown=!1,this._element.classList.remove("show"),this._backdrop.hide(),this._queueCallback(()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new Te).reset(),P.trigger(this._element,"hidden.bs.offcanvas")},this._element,!0)))}dispose(){this._backdrop.dispose(),super.dispose(),P.off(document,"focusin.bs.offcanvas")}_getConfig(t){return t={...Se,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},l("offcanvas",t,Ie),t}_initializeBackDrop(){return new ke({isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_enforceFocusOnElement(t){P.off(document,"focusin.bs.offcanvas"),P.on(document,"focusin.bs.offcanvas",e=>{document===e.target||t===e.target||t.contains(e.target)||t.focus()}),t.focus()}_addEventListeners(){P.on(this._element,"click.dismiss.bs.offcanvas",'[data-bs-dismiss="offcanvas"]',()=>this.hide()),P.on(this._element,"keydown.dismiss.bs.offcanvas",t=>{this._config.keyboard&&"Escape"===t.key&&this.hide()})}static jQueryInterface(t){return this.each((function(){const e=Ne.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}P.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(e){const i=s(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),h(this))return;P.one(i,"hidden.bs.offcanvas",()=>{c(this)&&this.focus()});const n=t.findOne(".offcanvas.show");n&&n!==i&&Ne.getInstance(n).hide(),Ne.getOrCreateInstance(i).toggle(this)})),P.on(window,"load.bs.offcanvas.data-api",()=>t.find(".offcanvas.show").forEach(t=>Ne.getOrCreateInstance(t).show())),_(Ne);const je=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Me=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i,Pe=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,He=(t,e)=>{const i=t.nodeName.toLowerCase();if(e.includes(i))return!je.has(i)||Boolean(Me.test(t.nodeValue)||Pe.test(t.nodeValue));const n=e.filter(t=>t instanceof RegExp);for(let t=0,e=n.length;t<e;t++)if(n[t].test(i))return!0;return!1};function Re(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=Object.keys(e),o=[].concat(...n.body.querySelectorAll("*"));for(let t=0,i=o.length;t<i;t++){const i=o[t],n=i.nodeName.toLowerCase();if(!s.includes(n)){i.remove();continue}const r=[].concat(...i.attributes),a=[].concat(e["*"]||[],e[n]||[]);r.forEach(t=>{He(t,a)||i.removeAttribute(t.nodeName)})}return n.body.innerHTML}const Be=new RegExp("(^|\\s)bs-tooltip\\S+","g"),We=new Set(["sanitize","allowList","sanitizeFn"]),qe={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},ze={AUTO:"auto",TOP:"top",RIGHT:g()?"left":"right",BOTTOM:"bottom",LEFT:g()?"right":"left"},$e={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Ue={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"};class Fe extends B{constructor(t,e){if(void 0===fe)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return $e}static get NAME(){return"tooltip"}static get Event(){return Ue}static get DefaultType(){return qe}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),P.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.remove(),this._popper&&this._popper.destroy(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const t=P.trigger(this._element,this.constructor.Event.SHOW),i=d(this._element),n=null===i?this._element.ownerDocument.documentElement.contains(this._element):i.contains(this._element);if(t.defaultPrevented||!n)return;const s=this.getTipElement(),o=e(this.constructor.NAME);s.setAttribute("id",o),this._element.setAttribute("aria-describedby",o),this.setContent(),this._config.animation&&s.classList.add("fade");const r="function"==typeof this._config.placement?this._config.placement.call(this,s,this._element):this._config.placement,a=this._getAttachment(r);this._addAttachmentClass(a);const{container:l}=this._config;R.set(s,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(l.appendChild(s),P.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=ue(this._element,s,this._getPopperConfig(a)),s.classList.add("show");const c="function"==typeof this._config.customClass?this._config.customClass():this._config.customClass;c&&s.classList.add(...c.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>{P.on(t,"mouseover",u)});const h=this.tip.classList.contains("fade");this._queueCallback(()=>{const t=this._hoverState;this._hoverState=null,P.trigger(this._element,this.constructor.Event.SHOWN),"out"===t&&this._leave(null,this)},this.tip,h)}hide(){if(!this._popper)return;const t=this.getTipElement();if(P.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;t.classList.remove("show"),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>P.off(t,"mouseover",u)),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const e=this.tip.classList.contains("fade");this._queueCallback(()=>{this._isWithActiveTrigger()||("show"!==this._hoverState&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),P.trigger(this._element,this.constructor.Event.HIDDEN),this._popper&&(this._popper.destroy(),this._popper=null))},this.tip,e),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");return t.innerHTML=this._config.template,this.tip=t.children[0],this.tip}setContent(){const e=this.getTipElement();this.setElementContent(t.findOne(".tooltip-inner",e),this.getTitle()),e.classList.remove("fade","show")}setElementContent(t,e){if(null!==t)return r(e)?(e=a(e),void(this._config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this._config.html?(this._config.sanitize&&(e=Re(e,this._config.allowList,this._config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){let t=this._element.getAttribute("data-bs-original-title");return t||(t="function"==typeof this._config.title?this._config.title.call(this._element):this._config.title),t}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){const i=this.constructor.DATA_KEY;return(e=e||R.get(t.delegateTarget,i))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),R.set(t.delegateTarget,i,e)),e}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add("bs-tooltip-"+this.updateAttachment(t))}_getAttachment(t){return ze[t.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach(t=>{if("click"===t)P.on(this._element,this.constructor.Event.CLICK,this._config.selector,t=>this.toggle(t));else if("manual"!==t){const e="hover"===t?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i="hover"===t?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;P.on(this._element,e,this._config.selector,t=>this._enter(t)),P.on(this._element,i,this._config.selector,t=>this._leave(t))}}),this._hideModalHandler=()=>{this._element&&this.hide()},P.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e._config.delay&&e._config.delay.show?e._timeout=setTimeout(()=>{"show"===e._hoverState&&e.show()},e._config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e._config.delay&&e._config.delay.hide?e._timeout=setTimeout(()=>{"out"===e._hoverState&&e.hide()},e._config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=U.getDataAttributes(this._element);return Object.keys(e).forEach(t=>{We.has(t)&&delete e[t]}),(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).container=!1===t.container?document.body:a(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),l("tooltip",t,this.constructor.DefaultType),t.sanitize&&(t.template=Re(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};if(this._config)for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=t.getAttribute("class").match(Be);null!==e&&e.length>0&&e.map(t=>t.trim()).forEach(e=>t.classList.remove(e))}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}static jQueryInterface(t){return this.each((function(){const e=Fe.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}_(Fe);const Ve=new RegExp("(^|\\s)bs-popover\\S+","g"),Ke={...Fe.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'},Xe={...Fe.DefaultType,content:"(string|element|function)"},Ye={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class Qe extends Fe{static get Default(){return Ke}static get NAME(){return"popover"}static get Event(){return Ye}static get DefaultType(){return Xe}isWithContent(){return this.getTitle()||this._getContent()}getTipElement(){return this.tip||(this.tip=super.getTipElement(),this.getTitle()||t.findOne(".popover-header",this.tip).remove(),this._getContent()||t.findOne(".popover-body",this.tip).remove()),this.tip}setContent(){const e=this.getTipElement();this.setElementContent(t.findOne(".popover-header",e),this.getTitle());let i=this._getContent();"function"==typeof i&&(i=i.call(this._element)),this.setElementContent(t.findOne(".popover-body",e),i),e.classList.remove("fade","show")}_addAttachmentClass(t){this.getTipElement().classList.add("bs-popover-"+this.updateAttachment(t))}_getContent(){return this._element.getAttribute("data-bs-content")||this._config.content}_cleanTipClass(){const t=this.getTipElement(),e=t.getAttribute("class").match(Ve);null!==e&&e.length>0&&e.map(t=>t.trim()).forEach(e=>t.classList.remove(e))}static jQueryInterface(t){return this.each((function(){const e=Qe.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}_(Qe);const Ge={offset:10,method:"auto",target:""},Ze={offset:"number",method:"string",target:"(string|element)"};class Je extends B{constructor(t,e){super(t),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(e),this._selector=`${this._config.target} .nav-link, ${this._config.target} .list-group-item, ${this._config.target} .dropdown-item`,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,P.on(this._scrollElement,"scroll.bs.scrollspy",()=>this._process()),this.refresh(),this._process()}static get Default(){return Ge}static get NAME(){return"scrollspy"}refresh(){const e=this._scrollElement===this._scrollElement.window?"offset":"position",i="auto"===this._config.method?e:this._config.method,s="position"===i?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),t.find(this._selector).map(e=>{const o=n(e),r=o?t.findOne(o):null;if(r){const t=r.getBoundingClientRect();if(t.width||t.height)return[U[i](r).top+s,o]}return null}).filter(t=>t).sort((t,e)=>t[0]-e[0]).forEach(t=>{this._offsets.push(t[0]),this._targets.push(t[1])})}dispose(){P.off(this._scrollElement,".bs.scrollspy"),super.dispose()}_getConfig(t){if("string"!=typeof(t={...Ge,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}}).target&&r(t.target)){let{id:i}=t.target;i||(i=e("scrollspy"),t.target.id=i),t.target="#"+i}return l("scrollspy",t,Ze),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),i=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=i){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;)this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t<this._offsets[e+1])&&this._activate(this._targets[e])}}_activate(e){this._activeTarget=e,this._clear();const i=this._selector.split(",").map(t=>`${t}[data-bs-target="${e}"],${t}[href="${e}"]`),n=t.findOne(i.join(","));n.classList.contains("dropdown-item")?(t.findOne(".dropdown-toggle",n.closest(".dropdown")).classList.add("active"),n.classList.add("active")):(n.classList.add("active"),t.parents(n,".nav, .list-group").forEach(e=>{t.prev(e,".nav-link, .list-group-item").forEach(t=>t.classList.add("active")),t.prev(e,".nav-item").forEach(e=>{t.children(e,".nav-link").forEach(t=>t.classList.add("active"))})})),P.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:e})}_clear(){t.find(this._selector).filter(t=>t.classList.contains("active")).forEach(t=>t.classList.remove("active"))}static jQueryInterface(t){return this.each((function(){const e=Je.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}P.on(window,"load.bs.scrollspy.data-api",()=>{t.find('[data-bs-spy="scroll"]').forEach(t=>new Je(t))}),_(Je);class ti extends B{static get NAME(){return"tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains("active"))return;let e;const i=s(this._element),n=this._element.closest(".nav, .list-group");if(n){const i="UL"===n.nodeName||"OL"===n.nodeName?":scope > li > .active":".active";e=t.find(i,n),e=e[e.length-1]}const o=e?P.trigger(e,"hide.bs.tab",{relatedTarget:this._element}):null;if(P.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==o&&o.defaultPrevented)return;this._activate(this._element,n);const r=()=>{P.trigger(e,"hidden.bs.tab",{relatedTarget:this._element}),P.trigger(this._element,"shown.bs.tab",{relatedTarget:e})};i?this._activate(i,i.parentNode,r):r()}_activate(e,i,n){const s=(!i||"UL"!==i.nodeName&&"OL"!==i.nodeName?t.children(i,".active"):t.find(":scope > li > .active",i))[0],o=n&&s&&s.classList.contains("fade"),r=()=>this._transitionComplete(e,s,n);s&&o?(s.classList.remove("show"),this._queueCallback(r,e,!0)):r()}_transitionComplete(e,i,n){if(i){i.classList.remove("active");const e=t.findOne(":scope > .dropdown-menu .active",i.parentNode);e&&e.classList.remove("active"),"tab"===i.getAttribute("role")&&i.setAttribute("aria-selected",!1)}e.classList.add("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),f(e),e.classList.contains("fade")&&e.classList.add("show");let s=e.parentNode;if(s&&"LI"===s.nodeName&&(s=s.parentNode),s&&s.classList.contains("dropdown-menu")){const i=e.closest(".dropdown");i&&t.find(".dropdown-toggle",i).forEach(t=>t.classList.add("active")),e.setAttribute("aria-expanded",!0)}n&&n()}static jQueryInterface(t){return this.each((function(){const e=ti.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}P.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),h(this)||ti.getOrCreateInstance(this).show()})),_(ti);const ei={animation:"boolean",autohide:"boolean",delay:"number"},ii={animation:!0,autohide:!0,delay:5e3};class ni extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return ei}static get Default(){return ii}static get NAME(){return"toast"}show(){P.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove("hide"),f(this._element),this._element.classList.add("showing"),this._queueCallback(()=>{this._element.classList.remove("showing"),this._element.classList.add("show"),P.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this._element.classList.contains("show")&&(P.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.remove("show"),this._queueCallback(()=>{this._element.classList.add("hide"),P.trigger(this._element,"hidden.bs.toast")},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),super.dispose()}_getConfig(t){return t={...ii,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}},l("toast",t,this.constructor.DefaultType),t}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){P.on(this._element,"click.dismiss.bs.toast",'[data-bs-dismiss="toast"]',()=>this.hide()),P.on(this._element,"mouseover.bs.toast",t=>this._onInteraction(t,!0)),P.on(this._element,"mouseout.bs.toast",t=>this._onInteraction(t,!1)),P.on(this._element,"focusin.bs.toast",t=>this._onInteraction(t,!0)),P.on(this._element,"focusout.bs.toast",t=>this._onInteraction(t,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ni.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return _(ni),{Alert:W,Button:q,Carousel:Z,Collapse:et,Dropdown:Ae,Modal:De,Offcanvas:Ne,Popover:Qe,ScrollSpy:Je,Tab:ti,Toast:ni,Tooltip:Fe}}));
//# sourceMappingURL=bootstrap.bundle.min.js.map
try {
    var omCookieGroups = JSON.parse(document.getElementById('om-cookie-consent').innerHTML);
    var omGtmEvents = [];
} catch (err) {
    console.log('OM Cookie Manager: No Cookie Groups found! Maybe you have forgot to set the page id inside the constants of the extension')
}


document.addEventListener('DOMContentLoaded', function () {
    var panelButtons = document.querySelectorAll('[data-omcookie-panel-save]');
    var openButtons = document.querySelectorAll('[data-omcookie-panel-show]');
    var i;
    var omCookiePanel = document.querySelectorAll('[data-omcookie-panel]')[0];

    if (omCookiePanel === undefined)
        return;
    var openCookiePanel = true;
    var omCookiePanelInst = bootstrap.Modal.getOrCreateInstance(omCookiePanel);
    //Enable stuff by Cookie
    var cookieConsentData = hspvCookieUtility.getCookie('omCookieConsent');
    if (cookieConsentData !== null && cookieConsentData.length > 0) {
        //dont open the panel if we have the cookie
        openCookiePanel = false;
        var checkboxes = document.querySelectorAll('[data-omcookie-panel-grp]');
        var cookieConsentGrps = cookieConsentData.split(',');
        var cookieConsentActiveGrps = '';

        for (i = 0; i < cookieConsentGrps.length; i++) {
            if (cookieConsentGrps[i] !== 'dismiss') {
                var grpSettings = cookieConsentGrps[i].split('.');
                if (parseInt(grpSettings[1]) === 1) {
                    omCookieEnableCookieGrp(grpSettings[0]);
                    cookieConsentActiveGrps += grpSettings[0] + ',';
                }
            }
        }
        for (i = 0; i < checkboxes.length; i++) {
            if (cookieConsentActiveGrps.indexOf(checkboxes[i].value) !== -1) {
                checkboxes[i].checked = true;
            }
            //check if we have a new group
            if (cookieConsentData.indexOf(checkboxes[i].value) === -1) {
                openCookiePanel = true;
            }
        }
        //push stored events(sored by omCookieEnableCookieGrp) to gtm. We push this last so we are sure that gtm is loaded
        pushGtmEvents(omGtmEvents);
        omTriggerPanelEvent(['cookieconsentscriptsloaded']);
    }
    if (openCookiePanel === true) {
        //timeout, so the user can see the page before he get the nice cookie panel
        setTimeout(function () {
            omCookiePanelInst.toggle();
        }, 1000);
    }

    //check for button click
    for (i = 0; i < panelButtons.length; i++) {
        panelButtons[i].addEventListener('click', omCookieSaveAction, false);
    }
    for (i = 0; i < openButtons.length; i++) {
        openButtons[i].addEventListener('click', function () {
            omCookiePanelInst.toggle();
        }, false);
    }

});

//activates the groups
var omCookieSaveAction = function () {
    
        var omCookiePanel = document.querySelectorAll('[data-omcookie-panel]')[0];
        var omCookiePanelInst = bootstrap.Modal.getOrCreateInstance(omCookiePanel);
        
        
    action = this.getAttribute('data-omcookie-panel-save');
    var checkboxes = document.querySelectorAll('[data-omcookie-panel-grp]');
    var i;
    //check if we have a cookie
    var cookie = hspvCookieUtility.getCookie('omCookieConsent');
    if (cookie === null || cookie.length <= 0) {
        //set cookie to empty string when no cookie data was found
        cookie = '';
    } else {
        //reset all values inside the cookie which are present in the actual panel
        for (i = 0; i < checkboxes.length; i++) {
            cookie = cookie.replace(new RegExp(checkboxes[i].value + '\\S{3}'), '');
        }
    }
    //save the group id (group-x) and the made choice (.0 for group denied and .1 for group accepted)
    switch (action) {
        case 'all':
            for (i = 0; i < checkboxes.length; i++) {
                omCookieEnableCookieGrp(checkboxes[i].value);
                cookie += checkboxes[i].value + '.1,';
                checkboxes[i].checked = true;
            }
            break;
        case 'save':
            for (i = 0; i < checkboxes.length; i++) {
                if (checkboxes[i].checked === true) {
                    omCookieEnableCookieGrp(checkboxes[i].value);
                    cookie += checkboxes[i].value + '.1,';
                } else {
                    cookie += checkboxes[i].value + '.0,';
                }
            }
            break;
        case 'min':
            for (i = 0; i < checkboxes.length; i++) {
                if (checkboxes[i].getAttribute('data-omcookie-panel-essential') !== null) {
                    omCookieEnableCookieGrp(checkboxes[i].value);
                    cookie += checkboxes[i].value + '.1,';
                } else {
                    cookie += checkboxes[i].value + '.0,';
                    checkboxes[i].checked = false;
                }
            }
            break;
    }
    //replace dismiss to the end of the cookie
    cookie = cookie.replace('dismiss', '');
    cookie += 'dismiss';
    //cookie = cookie.slice(0, -1);
    hspvCookieUtility.setCookie('omCookieConsent', cookie, 364);
    //push stored events to gtm. We push this last so we are sure that gtm is loaded
    pushGtmEvents(omGtmEvents);
    omTriggerPanelEvent(['cookieconsentsave', 'cookieconsentscriptsloaded']);

    setTimeout(function () {

        omCookiePanelInst.toggle();

    }, 350)

};

var omTriggerPanelEvent = function (events) {
    events.forEach(function (event) {
        var eventObj = new CustomEvent(event, {bubbles: true});
        document.querySelectorAll('[data-omcookie-panel]')[0].dispatchEvent(eventObj);
    })
};

var pushGtmEvents = function (events) {
    window.dataLayer = window.dataLayer || [];
    events.forEach(function (event) {
        window.dataLayer.push({
            'event': event,
        });
    });
};
var omCookieEnableCookieGrp = function (groupKey) {
    if (omCookieGroups[groupKey] !== undefined) {
        for (var key in omCookieGroups[groupKey]) {
            // skip loop if the property is from prototype
            if (!omCookieGroups[groupKey].hasOwnProperty(key))
                continue;
            var obj = omCookieGroups[groupKey][key];
            //save gtm event for pushing
            if (key === 'gtm') {
                if (omCookieGroups[groupKey][key]) {
                    omGtmEvents.push(omCookieGroups[groupKey][key]);
                }
                continue;
            }
            //set the cookie html
            for (var prop in obj) {
                // skip loop if the property is from prototype
                if (!obj.hasOwnProperty(prop))
                    continue;

                if (Array.isArray(obj[prop])) {
                    var content = '';
                    //get the html content
                    obj[prop].forEach(function (htmlContent) {
                        content += htmlContent
                    });
                    var range = document.createRange();
                    if (prop === 'header') {
                        // add the html to header
                        range.selectNode(document.getElementsByTagName('head')[0]);
                        var documentFragHead = range.createContextualFragment(content);
                        document.getElementsByTagName('head')[0].appendChild(documentFragHead);
                    } else {
                        //add the html to body
                        range.selectNode(document.getElementsByTagName('body')[0]);
                        var documentFragBody = range.createContextualFragment(content);
                        document.getElementsByTagName('body')[0].appendChild(documentFragBody);
                    }
                }
            }
        }
        //remove the group so we don't set it again
        delete omCookieGroups[groupKey];
    }
};

// omCookieUtility moved to hspvCookieUtility in app.js

(function () {

    if (typeof window.CustomEvent === "function")
        return false;

    function CustomEvent(event, params) {
        params = params || {bubbles: false, cancelable: false, detail: null};
        var evt = document.createEvent('CustomEvent');
        evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
        return evt;
    }

    window.CustomEvent = CustomEvent;
})();



function Autocomplete(el, options) {
    var that = this;
    // Shared variables:
    that.element = el;
    that.suggestions = [];
    that.badQueries = [];
    that.selectedIndex = -1;
    that.currentValue = that.element.value;
    that.timeoutId = null;
    that.cachedResponse = {};
    that.onChangeTimeout = null;
    that.onChange = null;
    that.isLocal = false;
    that.suggestionsContainer = null;
    that.noSuggestionsContainer = null;
    that.utils = utils;
    that.options = {...Autocomplete.defaults, ...options};
    that.classes = {
        selected: 'autocomplete-selected',
        suggestion: 'autocomplete-suggestion'
    };
    that.hint = null;
    that.hintValue = '';
    that.selection = null;
    // Initialize and set options:
    that.initialize();
    that.setOptions(that.options);
}
Autocomplete.defaults = {
    ajaxSettings: {},
    autoSelectFirst: false,
    appendTo: 'body',
    serviceUrl: null,
    lookup: null,
    onSelect: null,
    onHint: null,
    width: 'auto',
    minChars: 1,
    maxHeight: 300,
    deferRequestBy: 0,
    params: {},
    formatResult: _formatResult,
    formatGroup: _formatGroup,
    delimiter: null,
    zIndex: 9999,
    type: 'GET',
    noCache: false,
    onSearchStart: noop,
    onSearchComplete: noop,
    onSearchError: noop,
    preserveInput: false,
    containerClass: 'autocomplete-suggestions',
    tabDisabled: false,
    dataType: 'text',
    currentRequest: null,
    triggerSelectOnValidInput: true,
    preventBadQueries: true,
    lookupFilter: _lookupFilter,
    paramName: 'query',
    transformResult: _transformResult,
    showNoSuggestionNotice: false,
    noSuggestionNotice: 'No results',
    orientation: 'bottom',
    forceFixPosition: false,
    forceRelativePosition: true
};
Autocomplete.prototype = {
    initialize: function () {
        var that = this,
                suggestionSelector = '.' + that.classes.suggestion,
                selected = that.classes.selected,
                options = that.options,
                container;
        that.element.setAttribute('autocomplete', 'off');

        that.noSuggestionsContainer = "<div class='autocomplete-no-suggestion'></div>";
        that.suggestionsContainer = utils.createNode(options.containerClass);

        container = that.suggestionsContainer;
        if(!options.appendTo)
             document.body.appendChild(container);
         else{
            options.appendTo.appendChild(container);
        }


        // Only set width if it was provided:
        if (options.width !== 'auto') { 
            container.style.width = (options.width.toString().indexOf("px") != -1) ? options.width : options.width + "px";
        }

        // Listen for mouse over event on suggestions list:

        container.addEventListener("mouseout", function () {
            that.selectedIndex = -1;
            if (container.querySelector('.' + selected) != null)
                container.querySelector('.' + selected).classList.remove(selected);
        });
  
        // Deselect active element when mouse leaves suggestions container:
        container.addEventListener("mouseover", function () {
            container.querySelectorAll(suggestionSelector).forEach(function (suggestion) {
                suggestion.addEventListener("mouseover", function () {
                    that.activate(this.getAttribute("data-index"));
                });
                suggestion.addEventListener("click", function () {
                    that.select(this.getAttribute("data-index"));
                })
            })
        });

        // Listen for click event on suggestions list:
        container.addEventListener("click", function () {
            clearTimeout(that.blurTimeoutId);
        });

        that.fixPositionCapture = function () {
            if (that.visible) {
                that.fixPosition();
            }
        };
        window.addEventListener('resize', that.fixPositionCapture);
        that.element.addEventListener('keydown', function (e) {
        });
        that.element.addEventListener('keyup', function (e) {
            that.onKeyUp(e);
        });
        if (!that.options.forceRelativePosition)
            that.element.addEventListener('blur', function (e) {
                that.onBlur();
            });
        that.element.addEventListener('focus', function (e) {
            that.onFocus();
        });
        that.element.addEventListener('change', function (e) {
            that.onKeyUp(e);
        });
        that.element.addEventListener('input', function (e) {
            that.onKeyUp(e);
        });


    },
    onKeyUp: function (e) {
 
        var that = this;
        if (that.disabled) {
            return;
        }
        switch (e.which) {
            case keys.UP:
            case keys.DOWN:
                return;
        }

        clearTimeout(that.onChangeTimeout);

        if (that.currentValue !== that.element.value) {
            that.findBestHint();
            if (that.options.deferRequestBy > 0) {
                // Defer lookup in case when value changes very quickly:
                that.onChangeTimeout = setTimeout(function () {
                    that.onValueChange();
                }, that.options.deferRequestBy);
            } else {
                that.onValueChange();
            }
        }
    },
    onFocus: function () {
        var that = this;

        if (that.disabled) {
            return;
        }

        that.fixPosition();
        that.relativePosition();
        if (that.element.value.length >= that.options.minChars) {
            that.onValueChange();
        }
    },
    onBlur: function () {
        var that = this,
                options = that.options,
                value = that.element.value,
                query = that.getQuery(value);

        // If user clicked on a suggestion, hide() will
        // be canceled, otherwise close suggestions
        that.blurTimeoutId = setTimeout(function () {
            that.hide();

            if (that.selection && that.currentValue !== query) {
                (options.onInvalidateSelection).call(that.element);
            }
        }, 200);
    },
    abortAjax: function () {
        var that = this;
        if (that.currentRequest) {
            that.currentRequest.abort();
            that.currentRequest = null;
        }
    },
    setOptions: function (suppliedOptions) {

        var that = this;
        options = {...that.options, ...suppliedOptions};

        that.isLocal = Array.isArray(options.lookup);

        if (that.isLocal) {
            options.lookup = that.verifySuggestionsFormat(options.lookup);
        }

        options.orientation = that.validateOrientation(options.orientation, 'bottom');

        // Adjust height, width and z-index:
        that.suggestionsContainer.style.maxHeight = options.maxHeight + 'px';
        that.suggestionsContainer.style.width = options.width + 'px';
        that.suggestionsContainer.style.zIndex = options.zIndex;

        this.options = options;
    },
    clearCache: function () {
        this.cachedResponse = {};
        this.badQueries = [];
    },
    clear: function () {
        this.clearCache();
        this.currentValue = '';
        this.suggestions = [];
    },
    disable: function () {
        var that = this;
        that.disabled = true;
        clearTimeout(that.onChangeTimeout);
        that.abortAjax();
    },
    enable: function () {
        this.disabled = false;
    },
    relativePosition: function () {
        var that = this,
                $container = that.suggestionsContainer;

        if (!that.options.forceRelativePosition) {
            return;
        }
        $container.style = '';
    },
    fixPosition: function () {

        // Use only when container has already its content
        var that = this,
                $container = that.suggestionsContainer,
                containerParent = $container.parentElement,
                $SearchBox = that.options.searchBox;
        // Fix position automatically when appended to body.
        // In other cases force parameter must be given.

        if (containerParent !== document.body && !that.options.forceFixPosition) {
            return;
        }

        // Choose orientation
        var orientation = that.options.orientation,
                containerHeight = $container.outerHeight,
                height = that.element.offsetHeight,
                offset = utils.getElementOffset(that.element),
                styles = {'top': offset.top, 'left': offset.left};
        if (orientation === 'auto') {
            var viewPortHeight = $(window).height(),
                    scrollTop = $(window).scrollTop(),
                    topOverflow = -scrollTop + offsetTop - containerHeight,
                    bottomOverflow = scrollTop + viewPortHeight - (offsetTop + height + containerHeight);

            orientation = (Math.max(topOverflow, bottomOverflow) === topOverflow) ? 'top' : 'bottom';
        }

        if (orientation === 'top') {
            styles.top += -containerHeight;
        } else {
            styles.top += height;
        }

        // If container is not positioned to body,
        // correct its position using offset parent offset
        if (containerParent !== document.body) {
            var opacity = $container.css('opacity'),
                    parentOffsetDiff;

            if (!that.visible) {
                $container.css('opacity', 0).show();
            }

            parentOffsetDiff = $container.offsetParent().offset();
            styles.top -= parentOffsetDiff.top;
            styles.top += containerParent.scrollTop;
            styles.left -= parentOffsetDiff.left;

            if (!that.visible) {
                $container.css('opacity', opacity).hide();
            }
        }

        if (that.options.width === 'auto') {
            styles.width = that.el.outerWidth() + 'px';
        }

        $container.style.top = styles.top + 'px';
        $container.style.left = styles.left + 'px';
        $container.style.width = $SearchBox.offsetWidth + 'px';
    },
    isCursorAtEnd: function () {
        var that = this,
                valLength = that.element.value.length,
                selectionStart = that.element.selectionStart,
                range;

        if (typeof selectionStart === 'number') {
            return selectionStart === valLength;
        }
        if (document.selection) {
            range = document.selection.createRange();
            range.moveStart('character', -valLength);
            return valLength === range.text.length;
        }
        return true;
    },
    onKeyPress: function (e) {
        var that = this;

        // If suggestions are hidden and user presses arrow down, display suggestions:
        if (!that.disabled && !that.visible && e.which === keys.DOWN && that.currentValue) {
            that.suggest();
            return;
        }

        if (that.disabled || !that.visible) {
            return;
        }

        switch (e.which) {
            case keys.ESC:
                if (!that.options.forceRelativePosition) {
                    that.element.value = that.currentValue;
                    that.hide();
                }
                break;
            case keys.RIGHT:
                if (that.hint && that.options.onHint && that.isCursorAtEnd()) {
                    that.selectHint();
                    break;
                }
                return;
            case keys.TAB:
                if (!that.options.forceRelativePosition) {
                    if (that.hint && that.options.onHint) {
                        that.selectHint();
                        return;
                    }
                    if (that.selectedIndex === -1) {
                        that.hide();
                        return;
                    }
                    that.select(that.selectedIndex);
                    if (that.options.tabDisabled === false) {
                        return;
                    }
                } else
                    return;
                break;
            case keys.RETURN:
                if (that.selectedIndex === -1) {
                    that.hide();
                    return;
                }
                that.select(that.selectedIndex);
                break;
            case keys.UP:
                that.moveUp();
                break;
            case keys.DOWN:
                that.moveDown();
                break;
            default:
                return;
        }

        // Cancel event if function did not return:
        e.stopImmediatePropagation();
        e.preventDefault();
    },
    onValueChange: function () {                
        if (this.ignoreValueChange) {
            this.ignoreValueChange = false;
            return;
        }
        var that = this,
                options = that.options,
                value = that.element.value,
                query = that.getQuery(value);
        if (that.selection && that.currentValue !== query) {
            that.selection = null;
        }

        clearTimeout(that.onChangeTimeout);
        that.currentValue = value;
        that.selectedIndex = -1;
        // Check existing suggestion for the match before proceeding:

        if (options.triggerSelectOnValidInput && that.isExactMatch(query)) {
            that.select(0);
            return;
        }
        if (query.length < options.minChars) {
            //that.hide();
        } else {           
            that.getSuggestions(query);
        }
    },
    isExactMatch: function (query) {
        var suggestions = this.suggestions;
        return (suggestions.length === 1 && suggestions[0].value.toLowerCase() === query.toLowerCase());
    },
    getQuery: function (value) {
        var delimiter = this.options.delimiter,
                parts;
        if (!delimiter) {
            return value;
        }

        parts = value.split(delimiter);

        return parts[parts.length - 1].trim();
    },
    getSuggestionsLocal: function (query) {
        var that = this,
                options = that.options,
                queryLowerCase = query.toLowerCase(),
                filter = options.lookupFilter,
                limit = parseInt(options.lookupLimit, 6),
                data;
        data = {
            suggestions: options.lookup.forEach(function (suggestion) {
                return filter(suggestion, query, queryLowerCase);
            })
        };
        if (limit && data.suggestions.length > limit) {
            data.suggestions = data.suggestions.slice(0, limit);
        }

        return data;
    },
    getSuggestions: function (q) {
                    
        var that = this,
                xhttp = new XMLHttpRequest(),
                options = that.options,
                serviceUrl = options.serviceUrl,
                cacheKey, result;
        xhttp.responseType = 'json';
        options.params[options.paramName] = q;

        params = options.ignoreParams ? null : options.params;
        if (typeof that.options.lookup === 'function') {
            options.lookup(q, function (data) {
                that.suggestions = data.suggestions;
                that.suggest();
            });
            return;
        }
        if (that.isLocal) {
            response = that.getSuggestionsLocal(q);

        } else {
            if (typeof serviceUrl === 'function') {
                serviceUrl = serviceUrl.call(that.element, q);
            }
            response = that.cachedResponse[cacheKey];
        }

        if (!that.isBadQuery(q)) {
            that.abortAjax();

            ajaxSettings = {
                url: serviceUrl,
                data: params,
                type: options.type,
                dataType: options.dataType
            };
            xhttp.onreadystatechange = function () {
                if (this.readyState == 4 && this.status == 200) {
                    result = options.transformResult(this.response);
                    that.processResponse(result, q, cacheKey);
                }
            }
            xhttp.open(ajaxSettings.type, "?tx_solr[queryString]=" + q + "&type=7384", true);
            xhttp.send();
        }

    },
    isBadQuery: function (q) {

        if (!this.options.preventBadQueries) {
            return false;
        }

        var badQueries = this.badQueries,
                i = badQueries.length;
        while (i--) {
            if (q.indexOf(badQueries[i]) === 0) {
                return true;
            }
        }
        return false;
    },
    hide: function () {
        var that = this,
                container = that.suggestionsContainer;
        if (typeof that.options.onHide === 'function' && that.visible) {
            that.options.onHide.call(that.element, container);
        }

        that.visible = false;
        that.selectedIndex = -1;
        clearTimeout(that.onChangeTimeout);
        that.suggestionsContainer.style.display = 'none';
        that.onHint(null);
    },
    suggest: function () {
        if (!Object.keys(this.suggestions).length) {
            if (this.options.showNoSuggestionNotice) {
                this.noSuggestions();
            } else {
                this.hide();
            }
            return;
        }
        var that = this,
                options = that.options,
                groupBy = options.groupBy,
                formatResult = options.formatResult,
                value = that.getQuery(that.currentValue),
                className = that.classes.suggestion,
                classSelected = that.classes.selected,
                container = that.suggestionsContainer,
                noSuggestionsContainer = that.noSuggestionsContainer,
                beforeRender = options.beforeRender,
                html = '',
                htmlS = '',
                htmlT = '',
                html_temp = '',
                category;

        formatGroup = function (suggestion, index) {

            var currentCategory = suggestion.data[groupBy];
            if (category === currentCategory || currentCategory === 'suggestion') {
                return '';
            }
            category = currentCategory;

            return options.formatGroup(suggestion, category);
        };


        if (options.triggerSelectOnValidInput && that.isExactMatch(value)) {
            that.select(0);
            return;
        }
        // Build suggestions inner HTML: 
        var s = 0;
        var t = 0;
        html += '<div class="accordion accordion-flush mb-5">';

        that.suggestions.forEach(function (suggestion) {
            if (suggestion.data.category === 'suggestion') {
                htmlS += formatResult(suggestion, value, s, className);
                s = s + 1;
            }
        });
        that.suggestions.forEach(function (suggestion) {
            if (suggestion.data.category !== 'suggestion') {
                if (html_temp = formatGroup(suggestion, value, t, className)) {
                        if (t > 0) {
                            htmlT += '</div>';
                        }
                        htmlT += html_temp +'<div class="rounded list-group list-group-flush" aria-labelledby="' + suggestion.data.type + '">';
                }


                htmlT += formatResult(suggestion, value, t, className);
                t = t + 1;
            }
        });
        html += '<div class="rounded list-group list-group-flush"> ' + htmlS + '</div>';
        html += '' + htmlT + '</div>';
        this.adjustContainerWidth();
        html += '</div>';
        container.innerHTML = html;


        if (typeof beforeRender === 'function') {
            beforeRender.call(that.element, container, that.suggestions);
        }

        that.fixPosition();
        that.relativePosition();
        container.style.display = 'block';

        // Select first value by default:
        if (options.autoSelectFirst) {
            that.selectedIndex = 0;
            container.scrollTop(0);
            container.children('.' + className).first().addClass(classSelected);
        }

        that.visible = true;
        that.findBestHint();

    },
    noSuggestions: function () {        
        var that = this,
                beforeRender = that.options.beforeRender,
                container = that.suggestionsContainer,
                noSuggestionsContainer = that.noSuggestionsContainer;

        this.adjustContainerWidth();

        // Some explicit steps. Be careful here as it easy to get
        // noSuggestionsContainer removed from DOM if not detached properly.
        noSuggestionsContainer.detach();

        // clean suggestions if any
        container.empty();
        container.append(noSuggestionsContainer);

        if (typeof beforeRender === 'function') {
            beforeRender.call(that.element, container, that.suggestions);
        }

        that.fixPosition();
        that.relativePosition();
        container.show();
        that.visible = true;
    },
    adjustContainerWidth: function () {
        var that = this,
                options = that.options,
                width,
                container = that.suggestionsContainer;

        // If width is auto, adjust width before displaying suggestions,
        // because if instance was created before input had width, it will be zero.
        // Also it adjusts if input width has changed.
        if (options.width === 'auto') {
            width = that.element.outerWidth;
            container.css('width', width > 0 ? width : 300);
        } else if (options.width === 'flex') {
            // Trust the source! Unset the width property so it will be the max length
            // the containing elements.
            container.style.width = '';
        }
    },
    findBestHint: function () {
        var that = this,
                value = that.element.value.toLowerCase(),
                bestMatch = null;
        if (!value) {
            return;
        }
        that.suggestions.forEach(function (suggestion) {
            var foundMatch = suggestion.value.toLowerCase().indexOf(value) === 0;
            if (foundMatch) {
                bestMatch = suggestion;
            }
            return !foundMatch;
        });
        that.onHint(bestMatch);
    },
    onHint: function (suggestion) {
        var that = this,
                onHintCallback = that.options.onHint,
                hintValue = '';

        if (suggestion) {
            hintValue = that.currentValue + suggestion.value.substr(that.currentValue.length);
        }
        if (that.hintValue !== hintValue) {
            that.hintValue = hintValue;
            that.hint = suggestion;
            if (typeof onHintCallback === 'function') {
                onHintCallback.call(that.element, hintValue);
            }
        }
    },
    verifySuggestionsFormat: function (suggestions) {
        // If suggestions is string array, convert them to supported format:
        if (suggestions.length && typeof suggestions[0] === 'string') {

            return  suggestions.forEach(function (value) {
                return {value: value, data: null};
            });
        }

        return suggestions;
    },
    validateOrientation: function (orientation, fallback) {
        orientation = (orientation.trim() || '').toLowerCase();
        if (['auto', 'bottom', 'top'].indexOf(orientation) === -1) {
            orientation = fallback;
        }
        return orientation;
    },
    processResponse: function (result, originalQuery, cacheKey) {
        var that = this,
                options = that.options;
        result.suggestions = that.verifySuggestionsFormat(result.suggestions);
        // Cache results if cache is not disabled:

        if (!options.noCache) {
            that.cachedResponse[cacheKey] = result;
            if (options.preventBadQueries && !Object.keys(result.suggestions).length) {
                that.badQueries.push(originalQuery);
            }
        }
        // Return if originalQuery is not matching current query:
        if (originalQuery !== that.getQuery(that.currentValue)) {
            return;
        }
        that.suggestions = result.suggestions;
        that.suggest();
    },
    activate: function (index) {
        var that = this,
                activeItem,
                selected = that.classes.selected,
                container = that.suggestionsContainer;
        children = container.querySelectorAll('.' + that.classes.suggestion);

        if (container.querySelector('.' + selected) != null)
            container.querySelector('.' + selected).classList.remove(selected);

        that.selectedIndex = index;

        if (that.selectedIndex !== -1 && children.length > that.selectedIndex) {
            activeItem = children[that.selectedIndex];
            activeItem.classList.add(selected);
            return activeItem;
        }

        return null;
    },
    selectHint: function () {
        var that = this,
                i = that.suggestions.indexOf(that.hint)
        that.select(i);
    },
    select: function (i) {
        var that = this;
        that.hide();
        that.onSelect(i);
    },
    moveUp: function () {
        var that = this;

        if (that.selectedIndex === -1) {
            return;
        }

        if (that.selectedIndex === 0) {
            // $(that.suggestionsContainer).children('.' + that.classes.suggestion).first().removeClass(that.classes.selected);
            that.selectedIndex = -1;
            that.ignoreValueChange = false;
            that.element.value = that.currentValue;
            that.findBestHint();
            return;
        }

        that.adjustScroll(that.selectedIndex - 1);
    },
    moveDown: function () {
        var that = this;
        if (that.selectedIndex === (that.suggestions.length - 1)) {
            return;
        }
        that.adjustScroll(that.selectedIndex + 1);
    },
    adjustScroll: function (index) {
        var that = this,
                activeItem = that.activate(index);

        if (!activeItem) {
            return;
        }

        var offsetTop,
                upperBound,
                lowerBound,
                heightDelta = activeItem.offsetHeight;

        offsetTop = activeItem.offsetTop;
        upperBound = that.suggestionsContainer.scrollTop;
        lowerBound = upperBound + that.options.maxHeight - heightDelta;

        if (offsetTop < upperBound) {
            that.suggestionsContainer.scrollTop = offsetTop;
        } else if (offsetTop > lowerBound) {
            that.suggestionsContainer.scrollTop = offsetTop - that.options.maxHeight + heightDelta;
        }

        if (!that.options.preserveInput) {
            // During onBlur event, browser will trigger "change" event,
            // because value has changed, to avoid side effect ignore,
            // that event, so that correct suggestion can be selected
            // when clicking on suggestion with a mouse
            that.ignoreValueChange = true;
            that.element.value = that.getValue(that.suggestions[index].value);
        }

        that.onHint(null);
    },
    onSelect: function (index) {
        var that = this,
                onSelectCallback = that.options.onSelect,
                suggestion = that.suggestions[index];

        that.currentValue = that.getValue(suggestion.value);

        if (that.currentValue !== that.element.value && !that.options.preserveInput) {
            that.element.value = that.currentValue;
        }

        that.onHint(null);
        that.suggestions = [];
        that.selection = suggestion;

        if (typeof onSelectCallback === 'function') {
            onSelectCallback.call(that.element, suggestion);
        }
    },
    getValue: function (value) {
        var that = this,
                delimiter = that.options.delimiter,
                currentValue,
                parts;

        if (!delimiter) {
            return value;
        }

        currentValue = that.currentValue;
        parts = currentValue.split(delimiter);

        if (parts.length === 1) {
            return value;
        }

        return currentValue.substr(0, currentValue.length - parts[parts.length - 1].length) + value;
    },

};
var utils = (function () {
    return {
        escapeRegExChars: function (value) {
            return value.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&");
        },
        createNode: function (containerClass) {
            var div = document.createElement('div');
            div.className = containerClass;
            div.style.position = 'absolute';
            div.style.display = 'none';
            return div;
        },
        getElementOffset: function (element)
        {
            var de = document.documentElement;
            var box = element.getBoundingClientRect();
            var top = box.top + window.pageYOffset - de.clientTop;
            var left = box.left + window.pageXOffset - de.clientLeft;
            return {top: top, left: left};
        }
    };
}());
keys = {
    ESC: 27,
    TAB: 9,
    RETURN: 13,
    LEFT: 37,
    UP: 38,
    RIGHT: 39,
    DOWN: 40
};
var noop = function () {};
function devbridgeAutocomplete(el, options, args) {
    let autocomleted = new Autocomplete(el, options);
    return autocomleted;
}
function _lookupFilter(suggestion, originalQuery, queryLowerCase) {}
function _transformResult(response) {}
function _formatResult(suggestion, currentValue) {}
function _formatGroup(suggestion, groupBy) {
    switch (groupBy) {
        case 'tx_solr_file':
            groupBy = 'Dateien';
            break;
        case 'tx_fpi_domain_model_project':
            groupBy = 'Projekte';
            break;
        case 'tx_jobs_domain_model_job':
            groupBy = 'Ausschreibung';
            break;            
        case 'tx_fpi_domain_model_publication':
            groupBy = 'Publikationen';
            break;   
        case 'tx_sfeventmgt_domain_model_event':
            groupBy = 'Veranstaltung';
            break;        
        case 'tx_news_domain_model_news':
            groupBy = 'Nachrichten';
            break;    
        case 'fe_users':
            groupBy = 'Personen';
            break;
        case 'pages':
            groupBy = 'Seiten';
            break;            
        case 'tx_bulletinboards_domain_model_bulletinboard':
            groupBy = 'Schwarzes Brett';
            break;            
        case 'tx_plainfaq_domain_model_faq':
            groupBy = 'FAQs';
            break;
        case 'tx_contacts_domain_model_contact':
            groupBy = 'Funktions-E-Mail-Adressen';
            break;         
    }
    return '<div class="small fw-bolder text-decoration-underline my-3" id="' + groupBy + '">' + groupBy + '</div>';
}

/** SuggestController class **/
function SuggestController() {
    this.init = function () {
        var elements = document.querySelectorAll('[data-suggest]');

        elements.forEach(function (frm, index) {
            var $form = frm;
            var $searchBox = $form.querySelector('.tx-solr-suggest');

            if ($form.querySelector('.tx-solr-autocomplete') != null) {
                $formAutoComplete = $form.querySelector('.tx-solr-autocomplete');
            } else if (document.getElementById('autocomplete-relative') != null) {
                $formAutoComplete = document.getElementById('autocomplete-relative');
                //Position Relative!!!  
                //  !position: absolute;
                //    !display: none; 
                //    !width: 0px;
                //    !max-height: 1000px;
                //    !z-index: 9999;
            } else {
                $formAutoComplete = document.body;
            }
            if ($form.querySelector('.tx-solr-suggest-focus'))
                $form.querySelector('.tx-solr-suggest-focus').focus({preventScroll: false});

            // when no specific container found, use the form as container
            if ($searchBox == null) {
                $searchBox = $form;
            }

            $searchBox.style.position = 'relative';

            // Prevent submit of empty search form
            $form.addEventListener('submit', function (e) {
                if ($form.querySelector('.tx-solr-suggest').value === '') {
                    e.preventDefault();
                    if ($form.querySelector('.tx-solr-suggest-focus'))
                        $form.querySelector('.tx-solr-suggest').focus({preventScroll: false});
                }
            });

            $searchBox.addEventListener('blur', function (e) {
                var appenddiv = document.getElementsByClassName('autocomplete-suggestions');
                //appenddiv[0].style.display='none';
            });

            let suggestion = devbridgeAutocomplete($form.querySelector('.tx-solr-suggest'), {
                serviceUrl: $form.getAttribute('data-suggest'),
                dataType: 'jsonp',
                ajaxSettings: {
                    jsonp: "tx_solr[callback]"
                },
                paramName: 'tx_solr[queryString]',
                groupBy: 'type',
                maxHeight: 1000,
                appendTo: $formAutoComplete,
                searchBox: $searchBox,
                autoSelectFirst: false,
                triggerSelectOnValidInput: false,
                width: $searchBox.offsetWidth,
                onSelect: function (suggestion) {
                    if (suggestion.data.link) {
                        // Open youtube in overlay
                        if (suggestion.data.link.indexOf('https://www.youtube.com') === 0) {
                            openVideoOverlay(suggestion.data.link);
                        } else {
                            location.href = suggestion.data.link;
                        }
                        // else trigger form submit (do search)
                    } else {
                        $form.submit();
                    }
                },
                transformResult: function (response) {
                    if (!response.suggestions)
                        return {suggestions: []};
                    var firstSuggestion;
                    var result = {suggestions: []};

                    var result = {
                        suggestions: Object.keys(response.suggestions).map(function (key) {
                            if (!firstSuggestion)
                                firstSuggestion = key;
                            return {value: key, data: {category: 'suggestion', count: response.suggestions[key]}};
                        })
                    };
                    response.documents.forEach(function (key, index) {
                        var dataObject = key;
                        var defaultGroup = $form.getAttribute('data-suggest-header') ? $form.getAttribute('data-suggest-header') : 'Top results';
                        dataObject.category = defaultGroup;
                        // if a group is set we try to get a label
                        if (dataObject.group) {
                            dataObject.category = $form.getAttribute('data-suggest-header-' + dataObject.group) ? $form.getAttribute('data-suggest-header-' + dataObject.group) : dataObject.group;
                        }
                        result.suggestions.push(
                                {
                                    value: firstSuggestion,
                                    data: dataObject
                                }
                        );

                    });
                    return result;
                },
                beforeRender: function (container) {
                    // remove first group header
                    container.classList.add('tx-solr-autosuggest');
                    // add active class to container
                    $searchBox.parentElement.classList.add('autocomplete-active');
                },
                formatResult: function (suggestion, currentValue, index, className) {
                    // Do not replace anything if there current value is empty
                    if (!currentValue) {
                        return suggestion.value;
                    }

                    var pattern = '(' + currentValue.trim().replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') + ')';
                    // normal suggestion
                    if (suggestion.data.category === 'suggestion') {
                        var value = suggestion.value
                                .replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>')
                                .replace(/&/g, '&amp;')
                                .replace(/</g, '&lt;')
                                .replace(/>/g, '&gt;')
                                .replace(/"/g, '&quot;')
                                .replace(/&lt;(\/?strong)&gt;/g, '<$1 class="fw-bolder text-info">');
                        return ' <button class="list-group-item btn d-flex border-0 list-group-item-action ' +
                                className + '" data-index="' + index + '">' +
                                '<span class="text-truncate"><i class="bi  bi-search me-2"></i>' + value + '</span><small class="ssmall ms-auto align-self-center">' + suggestion.data.count + '</small></button>';

                        // results
                    } else {
//                        console.log(suggestion.data)
                        var leadingslash = '';
                        var footer = '';
                        if (suggestion.data.type === 'tx_sfeventmgt_domain_model_event') {
                            if (suggestion.data.startDate_stringS) {
                                var startdate = new Date(suggestion.data.startDate_stringS * 1000);
                                var startdate_str = '<small>' + startdate.getDate() + '.' + (startdate.getMonth() + 1) + '.' + startdate.getFullYear() + '</small>';
                            }
                            if (suggestion.data.endDate_stringS) {
                                var enddate = new Date(suggestion.data.endDate_stringS * 1000);
                                var enddate_str = '<small>' + enddate.getDate() + '.' + (enddate.getMonth() + 1) + '.' + enddate.getFullYear() + '</small>';
                            }
                            var online = suggestion.data.webinar_stringS ? '<small class="fw-bold text-info">online </small>' : '';
                            var footer = enddate_str != startdate_str ? startdate_str + ' - ' + enddate_str : startdate_str;
                            var footer = online + footer;
                        }
                        if (suggestion.data.type === 'tx_contacts_domain_model_contact') {
                            if (suggestion.data.authorEmail_stringS)
                                footer = '<small class="fw-bold">' + suggestion.data.authorEmail_stringS + '</small>';
                            if (suggestion.data.overrideEmail_stringS)
                                footer = '<small class="fw-bold">' + suggestion.data.overrideEmail_stringS + '</small>';
                        }
                        if (suggestion.data.type === 'fe_users') {
                            if (suggestion.data.shorttext_stringS && !suggestion.data.contacts_textM)
                                footer = '<small class="fw-bold">' + suggestion.data.shorttext_stringS + '</small>';
                            if (suggestion.data.iliaseinsteintext_boolS)
                                footer += ' <small class="badge bg-info">ILIAS Einstein</small>';
                            if (suggestion.data.contacts_textM) {
                                suggestion.data.contacts_textM.forEach(function (contacts) {
                                    var parts = contacts.split('|');
                                    //                  0:Name, 
                                    //                  1:Ort, 
                                    //                  2:Raum, 
                                    //                  3:Telefon, 
                                    //                  4:Mobil, 
                                    //                  5:Fax, 
                                    //                  6:OverrideEmail, 
                                    //                  7:Beschreibung, 
                                    //                  8:Uhrzeit, 
                                    //                  9:contact tel_detail
                                    //                  10:contact fax_detail
                                    //                  11:contact tel_mobile            
                                    //                  12:contact override_email  
                                    //                  13:location navtitle  
                                    //                  14:location tel_base  
                                    //                  15:location tel_prefix  
                                    //                  16:location tel_fax 
                                    //                  17:location street 
                                    //                  18:location zip
                                    //                  19:location city 
                                    //                  20:location link 
                                    //                  21:catsString
                                    //                  22:location_link_url     
                                    if(parts[22])
                                    footer += '<span class="card contact border-0 mt-3 "><span class="list-group list-group-flush small rounded "><a class="list-group-item list-group-item-action" href="' + parts[22] + '"><span class="d-block fw-bold">' + parts[1] + '</span> <span class="">' + parts[17] +', ' + parts[18] +' '+ parts[19] + '</span></a>';
                                else
                                    footer += '<span class="card contact border-0 mt-3 "><span class="list-group list-group-flush small rounded "><span class="list-group-item"><span class="d-block fw-bold">' + parts[1] + '</span> <span class="">' + parts[17] +', ' + parts[18] +' '+ parts[19] + '</span></span>';
                                    footer += '<a class="list-group-item list-group-item-action " href="tel:' + parts[3].replaceAll(' ','') + '"><span>' + parts[15] + parts[14] + ' <span class="fw-bold">' + parts[9] + '</span></span></a>';
                                    if (parts[11]) {  
                                      footer +=  '<a class="list-group-item list-group-item-action fw-bold " href="tel:' + parts[11].replaceAll(' ','') + '">' + parts[11] + '</a>';
                                    }
                                    if (parts[12]) {
                                       footer += '<a class="list-group-item list-group-item-action fw-bold " href="mailto:' + parts[12] + '">' + suggestion.data.authorEmail_stringS + '</a>';
                                    }  
                                    else {
                                        footer += '<a class="list-group-item list-group-item-action fw-bold " href="mailto:' + suggestion.data.authorEmail_stringS + '">' + suggestion.data.authorEmail_stringS + '</a>';
                                    }
                                     footer += '</span></span>';
                                    
                                });
                            }
                        }

                        var content = suggestion.data.content.length > 150 ? suggestion.data.content.substring(0, 150) + "..." : suggestion.data.content;
                        var content = content
                                .replace(new RegExp(pattern, 'gi'), '<span>$1<\/span>')
                                .replace(/&/g, '&amp;')
                                .replace(/</g, '&lt;')
                                .replace(/>/g, '&gt;')
                                .replace(/"/g, '&quot;')
                                .replace(/&lt;(\/?span)&gt;/g, '<$1 class="text-info">');                        
                        var title = suggestion.data.title
                                .replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>')
                                .replace(/&/g, '&amp;')
                                .replace(/</g, '&lt;')
                                .replace(/>/g, '&gt;')
                                .replace(/"/g, '&quot;')
                                .replace(/&lt;(\/?strong)&gt;/g, '<$1 class="fw-bolder text-info">');                        
                        if (suggestion.data.type === 'tx_solr_file' && !suggestion.data.link.startsWith("http://") && !suggestion.data.link.startsWith("https://"))
                            leadingslash = '/';
                        if (suggestion.data.link) {
                            if(suggestion.data.type === 'fe_users'){
                            return (!!suggestion.data.previewImage ? '<figure ' + (!!suggestion.data.hasVideo ? 'class="hasVideo"' : '') + '><img src="' + suggestion.data.previewImage + '" /></figure>' : '') +
                                    '<span class="px-0 list-group-item list-group-item-action border-0 d-flex">' +
                                    '<i class="bi me-2 ' + suggestion.data.type + '"></i>'+
                                    '<span><a href="' + leadingslash + suggestion.data.link + '" class="text-dark text-truncate d-block" data-index="' + index + '"><span class="text-wrap h6"> ' + title + '</span><small class="d-block text-wrap">' + content + '</small></a>' +
                                    footer + 
                                    '</span></span>';                                
                            }else
                            return (!!suggestion.data.previewImage ? '<figure ' + (!!suggestion.data.hasVideo ? 'class="hasVideo"' : '') + '><img src="' + suggestion.data.previewImage + '" /></figure>' : '') +
                                    '<a href="' + leadingslash + suggestion.data.link + '" class="px-0 d-flex  text-truncate  list-group-item list-group-item-action border-0 " data-index="' + index + '">' +
                                    '<i class="bi me-2 ' + suggestion.data.type + '"></i><span><span class="text-wrap h6"> ' + title + '</span><small class="d-block text-wrap">' + content + '</small>' + footer + '</span></a>';
                        } else {
                            return '<span class="px-0 d-flex  text-truncate  list-group-item  border-0 " data-index="' + index + '">' +
                                    '<i class="bi me-2 ' + suggestion.data.type + '"></i><span><span class="text-wrap h6"> ' + title + '</span><small class="d-block text-wrap">' + content + '</small>' + footer + '</span></span>';
                        }
                    }

                }
            });
        });
    }
}

document.addEventListener("DOMContentLoaded", function () {
    /** solr search autocomplete **/
    var solrSuggestController = new SuggestController();
    solrSuggestController.init();

    document.body.addEventListener("tx_solr_updated", function () {
        solrSuggestController.init();
    });
});




(function(a,b){"object"==typeof exports&&"undefined"!=typeof module?b(exports):"function"==typeof define&&define.amd?define(["exports"],b):(a=a||self,b(a.wurl={}))})(this,function(a){'use strict';function b(a){return decodeURIComponent("".concat(a).replace(/\+/g,"%20"))}function c(a){var c=!(1<arguments.length&&void 0!==arguments[1])||arguments[1],d={};return a&&a.split("&").forEach(function(a){c&&(a=b(a));var e=a.split("=",2),f=e[0],g=e[1]||"";if(f){var h=f.match(/(.+?)\[(\d*)\]/i);if(h){f=h[1];var i=h[2];void 0!==d[f]&&Array.isArray(d[f])||(d[f]=[]),""===i?d[f].push(g):d[f][i]=g}else d[f]=g}}),d}function d(a,b){var c={};return c[a[a.length-1]]=b,1===a.length?c:d(a.slice(0,a.length-1),c)}function e(a,b){var c=function(a){return a&&a instanceof Object};return c(a)&&c(b)?(Object.keys(b).forEach(function(d){var f=a[d],g=b[d];a[d]=Array.isArray(f)&&Array.isArray(g)?f.concat(g):c(f)&&c(g)?e(Object.assign({},f),g):g}),a):b}function f(a){var c=!(1<arguments.length&&void 0!==arguments[1])||arguments[1],f={};return a&&a.split("&").forEach(function(a,g){c&&(a=b(a));var h=a.split("=",2),i=h[0],j=h[1]||"",k=i.match(/(.+?)(\[(.*)\])/i);if(k){var l=k[3]||g.toString(),m=l.split("][");m.unshift(k[1]);var n=d(m,b(j));f=e(f,n)}}),f}function g(a){function b(a){return c?encodeURIComponent(a):a}var c=!!(1<arguments.length&&arguments[1]!==void 0)&&arguments[1],d=[],e=function(c){if(a.hasOwnProperty(c)){var e=a[c];Array.isArray(e)&&e.length?e.forEach(function(a){d.push("".concat(b("".concat(c,"[]")),"=").concat(b(a)))}):d.push("".concat(b(c),"=").concat(b(e)))}};for(var f in a)e(f);return d.join("&")}function h(a,b,c){Object.keys(a).forEach(function(d){var e=b.concat([d]),f=a[d];f instanceof Object?h(f,e,c):(e.push(f),c.push(e))})}function i(a){function b(a){return c?encodeURIComponent(a):a}var c=!!(1<arguments.length&&arguments[1]!==void 0)&&arguments[1],d=[];h(a,[],d);var e=d.map(function(a){return a.reduce(function(c,d,e){return c?e<a.length-1?"".concat(c,"[").concat(d,"]"):"".concat(b(c),"=").concat(b(d)):c+d},"")});return e.join("&")}function j(a,b){var c=function(c){if(b.hasOwnProperty(c)){var d=b[c];Array.isArray(d)&&d.length?((a[c]===void 0||!Array.isArray(a[c]))&&(a[c]=[]),d.forEach(function(b){a[c].push(b)})):a[c]=b[c]}};for(var d in b)c(d);return a}function k(){var a=0<arguments.length&&arguments[0]!==void 0?arguments[0]:window.location.href,b=!(1<arguments.length&&arguments[1]!==void 0)||arguments[1],d=a.split("?",2);return c(2===d.length?d[1]:"",b)}function l(){var a=0<arguments.length&&arguments[0]!==void 0?arguments[0]:window.location.href,b=!(1<arguments.length&&arguments[1]!==void 0)||arguments[1],c=a.split("?",2);return f(2===c.length?c[1]:"",b)}function m(a,b){var c=!!(2<arguments.length&&arguments[2]!==void 0)&&arguments[2];if(b instanceof Object){var d=a.split("?",2)[0],e=k(a),f=j(e,b);a="".concat(d,"?").concat(g(f,c))}return a}function n(a,b){var c=!!(2<arguments.length&&arguments[2]!==void 0)&&arguments[2];if(b instanceof Object){var d=a.split("?",2)[0],f=k(a),g=e(f,b);a="".concat(d,"?").concat(i(g,c))}return a}function o(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:window.location.href,b="/",c=a.replace(/^((?:https?:)?\/\/)/i,"").match(/\/(?![#?&\s])([^#?\s]+)/);return c&&(b+=c[1],"/"===b[b.length-1]&&(b=b.substr(0,b.length-1))),b}a.add=m,a.addExt=n,a.addParams=m,a.addParamsExtended=n,a.get=k,a.getExt=l,a.getParams=k,a.getParamsExtended=l,a.getPath=o,a.path=o,Object.defineProperty(a,"__esModule",{value:!0})});




function SearchController() {
    var _this = this;

    _this.ajaxType = 7383;

    this.init = function () {

        document.addEventListener('click', function (e) {
            if (!e.target.matches('.solr-ajaxified'))
                return;
            e.preventDefault();
            if (e.target.matches('.created_url')) {
                if (_this.solrRequest("created", true))
                    _this.handleClickOnAjaxifiedUri(e);
            } else
                _this.handleClickOnAjaxifiedUri(e);
        }, false);


        d.querySelectorAll('.dateselector').forEach(dateselector => {
            dateselector.addEventListener("change", function (e) {
                _this.solrRequest("created");
            });
        });
    };
    this.solrRequest = function (facetName, submit = false) {
//        var fc = document.getElementById('facet-type-dateRange');
//        
//        var range = fc.getAttribute('data-facet-label').split('-'); 
        startDate = document.getElementById('start_date_' + facetName);
        endDate = document.getElementById('end_date_' + facetName);
        if (startDate.value == '' && endDate.value == '')
            return false;

        var ajaxuri = document.getElementById('facet-type-dateRange');
        url = ajaxuri.getAttribute('data-facet-url');

        var link = document.getElementById(facetName + '_url');

        start_date = _this.convertToDate(startDate.value);
        end_date = _this.convertToDate(endDate.value);
//        console.log(url + ' :url');
//        console.log(start_date + ' :start_date');
//        console.log(end_date + ' :end_date');
        if (startDate.value !== '') {
            url = url.replace(encodeURI('___FROM___'), start_date + '0000');
            endDate.min = startDate.value;
        }
        if (endDate.value !== '') {
            url = url.replace(encodeURI('___TO___'), end_date + '0000');
            startDate.max = endDate.value;
        }
        if (submit === true) {
            url = url.replace(encodeURI('___FROM___'), '');
            url = url.replace(encodeURI('___TO___'), '');
        }
        //console.log(url + ' :url');
        link.href = url;
        return true;
        //window.location.href = url; 
    };

    this.convertToDate = function (date) {
        var mydate = new Date(date);
        var mm = mydate.getMonth() + 1;
        var dd = mydate.getDate();
        (mm > 9 ? '' : '0') + mm;
        (dd > 9 ? '' : '0') + dd;
        return [mydate.getFullYear(),
            (mm > 9 ? '' : '0') + mm,
            (dd > 9 ? '' : '0') + dd
        ].join('');
    };

    this.handleClickOnAjaxifiedUri = function (clicked) {
        var totoopen = [];
        var facetto = d.querySelector(clicked.target.getAttribute('data-facetcontainer-target'));
        if (facetto) {
            facetto.querySelectorAll('.accordion-button').forEach(abtn => {
                if (!abtn.matches('.collapsed'))
                    totoopen.push(abtn.id);
            });
        }
        var checkbox = clicked.target.querySelector('.form-check-input');
        if (clicked.target.matches('.check') && checkbox) {
            if (checkbox.checked == false)
                checkbox.checked = true;
            else
                checkbox.checked = false;
        }
        var solrContainer = clicked.target.closest('#tx-solr-search');
        var solrParent = solrContainer.parentNode;

        var loader = document.createElement('div');
        loader.id = 'tx-solr-search-loader';
        loader.className = "modal-backdrop fade test";
        document.body.appendChild(loader);

        var newUrlRaw = new URL(clicked.target, document.baseURI).href;
        var newUrl = wurl.add(newUrlRaw, {type: _this.ajaxType});
        //solrParent.append(loader);

        var http = new XMLHttpRequest();
        http.onreadystatechange = function () {
            if (this.readyState == 1) {
                var loader = document.getElementById('tx-solr-search-loader');
                loader.classList.add("show");
            }
            if (this.readyState == 4) {
                var newNode = document.createElement('div');
                newNode.innerHTML = this.response;

                solrParent.replaceWith(newNode);
                //DropDownOverflowHidden();

                var bds = d.querySelectorAll('.modal-backdrop');
                bds.forEach(bd => {
                    bd.remove();
                });
                d.querySelector('body').removeAttribute('style');


                // var loader = document.getElementById('tx-solr-search-loader');
                //loader.classList.remove("show");
                //loader.remove();

                var facet = clicked.target.getAttribute('data-facet-target');
                var facetoption = clicked.target.getAttribute('data-option-target');
                var offf = d.querySelector('#navbarSideCollapse2');
                if (facet) {
                    if (window.matchMedia("screen and (max-width:991.98px)").matches) {
                        offf.classList.add('modal');
                        offf.querySelector('.md').classList.add('modal-dialog', 'modal-dialog-scrollable', 'modal-fullscreen');
                        var offc = bootstrap.Modal.getOrCreateInstance(offf);
                        offc.show();
                    }


                    var dd = d.querySelector(facet);
                    if (dd) {
                        var ddi = bootstrap.Dropdown.getOrCreateInstance(dd, {autoClose: 'outside', offset: '0,15'});
                        ddi.show();
                    }
                    if (totoopen) {
                        totoopen.forEach(toid => {
                            var to = d.querySelector('#' + toid + '-collapse');
                            var toi = bootstrap.Collapse.getOrCreateInstance(to, {toggle: true});
                        });
                        //toi.show();
                    }
                    if (facetoption)
                        var test = d.querySelector(facetoption).focus();
                }
                initSideOffcanvas();
                initAutoCompleteModal();
                MakeModalsForFiles();
                let domain = (new URL(newUrlRaw));
                window.history.pushState(this.response, "", domain.pathname);
                //window.history.pushState(this.response, "", newUrlRaw);

//                var mySFI = d.querySelector('#autoComplete1');
//                var SuggestModal = bootstrap.Modal.getOrCreateInstance(myModalEl, {keyboard: true, focus: true});
//
//                ["click", "input"].forEach(function (e) {
//                    mySFI.addEventListener(e, function () {
//                        var box = d.querySelector('#tx-solr-search').getBoundingClientRect();
//                        SuggestModal.show();
//                        //myModalEl.style.top = box.top + window.pageYOffset + 'px';;
//
//                    }, false);
//                });                 
            }
        };

        http.open('GET', newUrl, true);
        http.send();

        return false;
    };

    this.setAjaxType = function (ajaxType) {
        _this.ajaxType = ajaxType;
    };

}



var delay = 250, // delay between calls
        throttled = false, // are we currently throttled?
        calls = 0;

// window.resize callback function
function initSideOffcanvas() {
    var offf = d.querySelector('#navbarSideCollapse2');
    if (offf) {
        if (window.matchMedia("screen and (max-width:991.98px)").matches) {
            offf.classList.add('modal');
            offf.querySelector('.md').classList.add('modal-dialog', 'modal-dialog-scrollable', 'modal-fullscreen');
            var offc = bootstrap.Modal.getOrCreateInstance(offf);
            var toops = d.querySelectorAll('.filter.collapse');
            if (toops) {
                toops.forEach(toop => {
                    toop.classList.add('show');
                });
            }
            d.querySelector('#navbarSideCollapse').addEventListener('click', function () {
                offc.show();
            });
        } else {
            //console.log('Match large');
            var offc = bootstrap.Modal.getInstance(offf);
            if (offc) {
                offc.hide();
                offf.classList.remove('modal');
                offf.removeAttribute('aria-hidden');
                d.querySelector('body').removeAttribute('style');
                offf.removeAttribute('style');
                offf.querySelector('.md').classList.remove('modal-dialog', 'modal-dialog-scrollable', 'modal-fullscreen');
            }
        }
    }
}

// window.resize event listener
window.addEventListener('resize', function () {
    initSideOffcanvas();
    // only run if we're not throttled
//    if (!throttled) {
//        // actual callback action
//        
//        // we're throttled!
//        throttled = true;
//        // set a timeout to un-throttle
//        setTimeout(function () {
//            throttled = false;
//        }, delay);
//    }
});
function makeAutoCompleteModal(sfinput, smodal) {
    if (sfinput) {
        var sformtg = d.querySelector('#tx-solr-search-form-pi-results-tg');
        var sform = d.querySelector('#tx-solr-search-form-pi-results-mv');
        var fafter = smodal.querySelector('#modSearchOvly_l');
        var sugg = d.querySelector('.autocomplete-suggestions');


        d.querySelector('#autoComplete_reset').addEventListener('click', function (e) {
            e.preventDefault();
            sfinput.value = "";
            sfinput.focus();
            if (sugg) {
                sugg.innerHTML = "";
            }
        });
        smodal.addEventListener('shown.bs.modal', function (event) {
            if (sform) {
                fafter.after(sform);
                //smodal.querySelector("#autoComplete_reset").classList.remove('d-none');
                smodal.querySelector("#autoComplete_close").classList.remove('d-none');
            }
            sfinput.focus();
        });
        smodal.addEventListener('hidden.bs.modal', function (event) {
            if (sform) {
                //smodal.querySelector("#autoComplete_reset").classList.add('d-none');
                smodal.querySelector("#autoComplete_close").classList.add('d-none');
                sformtg.insertAdjacentElement("beforeend", sform);

            }
            if (sugg) {
//                sfinput.value = "";
                sugg.innerHTML = "";
            }
        });
    }
}

function initdropdown() {
    var sc = d.getElementById('SC');
    if (sc) {
        var scc = bootstrap.Dropdown.getOrCreateInstance(sc, {autoClose: false});
        var ac = d.getElementById('autoComplete');
        ['focus', 'keydown'].forEach(e => {
            ac.addEventListener(e, function (event) {
                scc.show();
            });
        });
    }
}

function initAutoCompleteModal(sfinput, smodal) {
    var sfinput = d.getElementById('autoComplete');
    var smodal = d.querySelector('#modSearchOvly');
    var SuggestModal = bootstrap.Modal.getOrCreateInstance(smodal, {keyboard: true, focus: false, autoClose: false});
    ["click", "input"].forEach(function (e) {
        sfinput.addEventListener(e, function () {
            SuggestModal.show();
            if(smodal.querySelector('.tx-solr-suggest-focus'))
                smodal.querySelector('.tx-solr-suggest-focus').focus();
        }, false);
    });
}


document.addEventListener("DOMContentLoaded", function (event) {
    var sfinput = d.getElementById('autoComplete');
    var smodal = d.querySelector('#modSearchOvly');
    if (sfinput) {
        initAutoCompleteModal(sfinput, smodal);
        makeAutoCompleteModal(sfinput, smodal);
    }
    initdropdown();
    initSideOffcanvas();
    var solrSearchController = new SearchController();
    solrSearchController.init();

    if (typeof solrSearchAjaxType !== "undefined") {
        solrSearchController.setAjaxType(solrSearchAjaxType);
    }
});




/**
 * what-input - A global utility for tracking the current input method (mouse, keyboard or touch).
 * @version v5.2.10
 * @link https://github.com/ten1seven/what-input
 * @license MIT
 */
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("whatInput",[],t):"object"==typeof exports?exports.whatInput=t():e.whatInput=t()}(this,function(){return i={},n.m=o=[function(e,t){"use strict";e.exports=function(){if("undefined"==typeof document||"undefined"==typeof window)return{ask:function(){return"initial"},element:function(){return null},ignoreKeys:function(){},specificKeys:function(){},registerOnChange:function(){},unRegisterOnChange:function(){}};var t=document.documentElement,n=null,s="initial",u=s,o=Date.now(),i="false",d=["button","input","select","textarea"],r=[],c=[16,17,18,91,93],w=[],p={keydown:"keyboard",keyup:"keyboard",mousedown:"mouse",mousemove:"mouse",MSPointerDown:"pointer",MSPointerMove:"pointer",pointerdown:"pointer",pointermove:"pointer",touchstart:"touch",touchend:"touch"},a=!1,f={x:null,y:null},l={2:"touch",3:"touch",4:"mouse"},m=!1;try{var e=Object.defineProperty({},"passive",{get:function(){m=!0}});window.addEventListener("test",null,e)}catch(e){}var h=function(){var e=!!m&&{passive:!0};document.addEventListener("DOMContentLoaded",v),window.PointerEvent?(window.addEventListener("pointerdown",y),window.addEventListener("pointermove",E)):window.MSPointerEvent?(window.addEventListener("MSPointerDown",y),window.addEventListener("MSPointerMove",E)):(window.addEventListener("mousedown",y),window.addEventListener("mousemove",E),"ontouchstart"in window&&(window.addEventListener("touchstart",y,e),window.addEventListener("touchend",y))),window.addEventListener(O(),E,e),window.addEventListener("keydown",y),window.addEventListener("keyup",y),window.addEventListener("focusin",L),window.addEventListener("focusout",b)},v=function(){if(i=!(t.getAttribute("data-whatpersist")||"false"===document.body.getAttribute("data-whatpersist")))try{window.sessionStorage.getItem("what-input")&&(s=window.sessionStorage.getItem("what-input")),window.sessionStorage.getItem("what-intent")&&(u=window.sessionStorage.getItem("what-intent"))}catch(e){}g("input"),g("intent")},y=function(e){var t=e.which,n=p[e.type];"pointer"===n&&(n=S(e));var o=!w.length&&-1===c.indexOf(t),i=w.length&&-1!==w.indexOf(t),r="keyboard"===n&&t&&(o||i)||"mouse"===n||"touch"===n;if(M(n)&&(r=!1),r&&s!==n&&(x("input",s=n),g("input")),r&&u!==n){var a=document.activeElement;a&&a.nodeName&&(-1===d.indexOf(a.nodeName.toLowerCase())||"button"===a.nodeName.toLowerCase()&&!C(a,"form"))&&(x("intent",u=n),g("intent"))}},g=function(e){t.setAttribute("data-what"+e,"input"===e?s:u),k(e)},E=function(e){var t=p[e.type];"pointer"===t&&(t=S(e)),A(e),(!a&&!M(t)||a&&"wheel"===e.type||"mousewheel"===e.type||"DOMMouseScroll"===e.type)&&u!==t&&(x("intent",u=t),g("intent"))},L=function(e){e.target.nodeName?(n=e.target.nodeName.toLowerCase(),t.setAttribute("data-whatelement",n),e.target.classList&&e.target.classList.length&&t.setAttribute("data-whatclasses",e.target.classList.toString().replace(" ",","))):b()},b=function(){n=null,t.removeAttribute("data-whatelement"),t.removeAttribute("data-whatclasses")},x=function(e,t){if(i)try{window.sessionStorage.setItem("what-"+e,t)}catch(e){}},S=function(e){return"number"==typeof e.pointerType?l[e.pointerType]:"pen"===e.pointerType?"touch":e.pointerType},M=function(e){var t=Date.now(),n="mouse"===e&&"touch"===s&&t-o<200;return o=t,n},O=function(){return"onwheel"in document.createElement("div")?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll"},k=function(e){for(var t=0,n=r.length;t<n;t++)r[t].type===e&&r[t].fn.call(void 0,"input"===e?s:u)},A=function(e){f.x!==e.screenX||f.y!==e.screenY?(a=!1,f.x=e.screenX,f.y=e.screenY):a=!0},C=function(e,t){var n=window.Element.prototype;if(n.matches||(n.matches=n.msMatchesSelector||n.webkitMatchesSelector),n.closest)return e.closest(t);do{if(e.matches(t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null};return"addEventListener"in window&&Array.prototype.indexOf&&(p[O()]="mouse",h()),{ask:function(e){return"intent"===e?u:s},element:function(){return n},ignoreKeys:function(e){c=e},specificKeys:function(e){w=e},registerOnChange:function(e,t){r.push({fn:e,type:t||"input"})},unRegisterOnChange:function(e){var t=function(e){for(var t=0,n=r.length;t<n;t++)if(r[t].fn===e)return t}(e);!t&&0!==t||r.splice(t,1)},clearStorage:function(){window.sessionStorage.clear()}}}()}],n.c=i,n.p="",n(0);function n(e){if(i[e])return i[e].exports;var t=i[e]={exports:{},id:e,loaded:!1};return o[e].call(t.exports,t,t.exports,n),t.loaded=!0,t.exports}var o,i});
//# sourceMappingURL=what-input.min.js.map
!function(){"use strict";function n(t){if(void 0===t)throw new Error('Pathformer [constructor]: "element" parameter is required');if(t.constructor===String&&!(t=document.getElementById(t)))throw new Error('Pathformer [constructor]: "element" parameter is not related to an existing ID');if(!(t instanceof window.SVGElement||t instanceof window.SVGGElement||/^svg$/i.test(t.nodeName)))throw new Error('Pathformer [constructor]: "element" parameter must be a string or a SVGelement');this.el=t,this.scan(t)}var r,e,t,p;function i(t,e,n){r(),this.isReady=!1,this.setElement(t,e),this.setOptions(e),this.setCallback(n),this.isReady&&this.init()}n.prototype.TYPES=["line","ellipse","circle","polygon","polyline","rect"],n.prototype.ATTR_WATCH=["cx","cy","points","r","rx","ry","x","x1","x2","y","y1","y2"],n.prototype.scan=function(t){for(var e,n,r,i=t.querySelectorAll(this.TYPES.join(",")),a=0;a<i.length;a++)n=(0,this[(e=i[a]).tagName.toLowerCase()+"ToPath"])(this.parseAttr(e.attributes)),r=this.pathMaker(e,n),e.parentNode.replaceChild(r,e)},n.prototype.lineToPath=function(t){var e={},n=t.x1||0,r=t.y1||0,i=t.x2||0,a=t.y2||0;return e.d="M"+n+","+r+"L"+i+","+a,e},n.prototype.rectToPath=function(t){var e={},n=parseFloat(t.x)||0,r=parseFloat(t.y)||0,i=parseFloat(t.width)||0,a=parseFloat(t.height)||0;if(t.rx||t.ry){var o=parseInt(t.rx,10)||-1,s=parseInt(t.ry,10)||-1;o=Math.min(Math.max(o<0?s:o,0),i/2),s=Math.min(Math.max(s<0?o:s,0),a/2),e.d="M "+(n+o)+","+r+" L "+(n+i-o)+","+r+" A "+o+","+s+",0,0,1,"+(n+i)+","+(r+s)+" L "+(n+i)+","+(r+a-s)+" A "+o+","+s+",0,0,1,"+(n+i-o)+","+(r+a)+" L "+(n+o)+","+(r+a)+" A "+o+","+s+",0,0,1,"+n+","+(r+a-s)+" L "+n+","+(r+s)+" A "+o+","+s+",0,0,1,"+(n+o)+","+r}else e.d="M"+n+" "+r+" L"+(n+i)+" "+r+" L"+(n+i)+" "+(r+a)+" L"+n+" "+(r+a)+" Z";return e},n.prototype.polylineToPath=function(t){var e,n,r={},i=t.points.trim().split(" ");if(-1===t.points.indexOf(",")){var a=[];for(e=0;e<i.length;e+=2)a.push(i[e]+","+i[e+1]);i=a}for(n="M"+i[0],e=1;e<i.length;e++)-1!==i[e].indexOf(",")&&(n+="L"+i[e]);return r.d=n,r},n.prototype.polygonToPath=function(t){var e=n.prototype.polylineToPath(t);return e.d+="Z",e},n.prototype.ellipseToPath=function(t){var e={},n=parseFloat(t.rx)||0,r=parseFloat(t.ry)||0,i=parseFloat(t.cx)||0,a=parseFloat(t.cy)||0,o=i-n,s=a,h=parseFloat(i)+parseFloat(n),l=a;return e.d="M"+o+","+s+"A"+n+","+r+" 0,1,1 "+h+","+l+"A"+n+","+r+" 0,1,1 "+o+","+l,e},n.prototype.circleToPath=function(t){var e={},n=parseFloat(t.r)||0,r=parseFloat(t.cx)||0,i=parseFloat(t.cy)||0,a=r-n,o=i,s=parseFloat(r)+parseFloat(n),h=i;return e.d="M"+a+","+o+"A"+n+","+n+" 0,1,1 "+s+","+h+"A"+n+","+n+" 0,1,1 "+a+","+h,e},n.prototype.pathMaker=function(t,e){var n,r,i=document.createElementNS("http://www.w3.org/2000/svg","path");for(n=0;n<t.attributes.length;n++)r=t.attributes[n],-1===this.ATTR_WATCH.indexOf(r.name)&&i.setAttribute(r.name,r.value);for(n in e)i.setAttribute(n,e[n]);return i},n.prototype.parseAttr=function(t){for(var e,n={},r=0;r<t.length;r++){if(e=t[r],-1!==this.ATTR_WATCH.indexOf(e.name)&&-1!==e.value.indexOf("%"))throw new Error("Pathformer [parseAttr]: a SVG shape got values in percentage. This cannot be transformed into 'path' tags. Please use 'viewBox'.");n[e.name]=e.value}return n},i.LINEAR=function(t){return t},i.EASE=function(t){return-Math.cos(t*Math.PI)/2+.5},i.EASE_OUT=function(t){return 1-Math.pow(1-t,3)},i.EASE_IN=function(t){return Math.pow(t,3)},i.EASE_OUT_BOUNCE=function(t){var e=1-Math.cos(t*(.5*Math.PI)),n=Math.pow(e,1.5),r=Math.pow(1-t,2);return 1-r+(1-Math.abs(Math.cos(n*(2.5*Math.PI))))*r},i.prototype.setElement=function(e,n){var t,r;if(void 0===e)throw new Error('Vivus [constructor]: "element" parameter is required');if(e.constructor===String&&!(e=document.getElementById(e)))throw new Error('Vivus [constructor]: "element" parameter is not related to an existing ID');if(this.parentEl=e,n&&n.file){r=this,t=function(){var t=document.createElement("div");t.innerHTML=this.responseText;var e=t.querySelector("svg");if(!e)throw new Error("Vivus [load]: Cannot find the SVG in the loaded file : "+n.file);r.el=e,r.el.setAttribute("width","100%"),r.el.setAttribute("height","100%"),r.parentEl.appendChild(r.el),r.isReady=!0,r.init(),r=null};var i=new window.XMLHttpRequest;return i.addEventListener("load",t),i.open("GET",n.file),void i.send()}switch(e.constructor){case window.SVGSVGElement:case window.SVGElement:case window.SVGGElement:this.el=e,this.isReady=!0;break;case window.HTMLObjectElement:r=this,(t=function(t){if(!r.isReady){if(r.el=e.contentDocument&&e.contentDocument.querySelector("svg"),!r.el&&t)throw new Error("Vivus [constructor]: object loaded does not contain any SVG");r.el&&(e.getAttribute("built-by-vivus")&&(r.parentEl.insertBefore(r.el,e),r.parentEl.removeChild(e),r.el.setAttribute("width","100%"),r.el.setAttribute("height","100%")),r.isReady=!0,r.init(),r=null)}})()||e.addEventListener("load",t);break;default:throw new Error('Vivus [constructor]: "element" parameter is not valid (or miss the "file" attribute)')}},i.prototype.setOptions=function(t){var e=["delayed","sync","async","nsync","oneByOne","scenario","scenario-sync"],n=["inViewport","manual","autostart"];if(void 0!==t&&t.constructor!==Object)throw new Error('Vivus [constructor]: "options" parameter must be an object');if((t=t||{}).type&&-1===e.indexOf(t.type))throw new Error("Vivus [constructor]: "+t.type+" is not an existing animation `type`");if(this.type=t.type||e[0],t.start&&-1===n.indexOf(t.start))throw new Error("Vivus [constructor]: "+t.start+" is not an existing `start` option");if(this.start=t.start||n[0],this.isIE=-1!==window.navigator.userAgent.indexOf("MSIE")||-1!==window.navigator.userAgent.indexOf("Trident/")||-1!==window.navigator.userAgent.indexOf("Edge/"),this.duration=p(t.duration,120),this.delay=p(t.delay,null),this.dashGap=p(t.dashGap,1),this.forceRender=t.hasOwnProperty("forceRender")?!!t.forceRender:this.isIE,this.reverseStack=!!t.reverseStack,this.selfDestroy=!!t.selfDestroy,this.onReady=t.onReady,this.map=[],this.frameLength=this.currentFrame=this.delayUnit=this.speed=this.handle=null,this.ignoreInvisible=!!t.hasOwnProperty("ignoreInvisible")&&!!t.ignoreInvisible,this.animTimingFunction=t.animTimingFunction||i.LINEAR,this.pathTimingFunction=t.pathTimingFunction||i.LINEAR,this.delay>=this.duration)throw new Error("Vivus [constructor]: delay must be shorter than duration")},i.prototype.setCallback=function(t){if(t&&t.constructor!==Function)throw new Error('Vivus [constructor]: "callback" parameter must be a function');this.callback=t||function(){}},i.prototype.mapping=function(){var t,e,n,r,i,a,o,s,h,l;for(s=a=o=0,e=this.el.querySelectorAll("path"),l=!1,t=0;t<e.length;t++)if(n=e[t],!this.isInvisible(n)){if(i={el:n,length:0,startAt:0,duration:0,isResizeSensitive:!1},"non-scaling-stroke"===n.getAttribute("vector-effect")){var c=n.getBoundingClientRect(),u=n.getBBox();h=Math.max(c.width/u.width,c.height/u.height),l=i.isResizeSensitive=!0}else h=1;i.length=Math.ceil(n.getTotalLength()*h),isNaN(i.length)?window.console&&console.warn&&console.warn("Vivus [mapping]: cannot retrieve a path element length",n):(this.map.push(i),n.style.strokeDasharray=i.length+" "+(i.length+2*this.dashGap),n.style.strokeDashoffset=i.length+this.dashGap,i.length+=this.dashGap,a+=i.length,this.renderPath(t))}for(l&&console.warn("Vivus: this SVG contains non-scaling-strokes. You should call instance.recalc() when the SVG is resized or you will encounter unwanted behaviour. See https://github.com/maxwellito/vivus#non-scaling for more info."),a=0===a?1:a,this.delay=null===this.delay?this.duration/3:this.delay,this.delayUnit=this.delay/(1<e.length?e.length-1:1),this.reverseStack&&this.map.reverse(),t=0;t<this.map.length;t++){switch(i=this.map[t],this.type){case"delayed":i.startAt=this.delayUnit*t,i.duration=this.duration-this.delay;break;case"oneByOne":i.startAt=o/a*this.duration,i.duration=i.length/a*this.duration;break;case"sync":case"async":case"nsync":i.startAt=0,i.duration=this.duration;break;case"scenario-sync":n=i.el,r=this.parseAttr(n),i.startAt=s+(p(r["data-delay"],this.delayUnit)||0),i.duration=p(r["data-duration"],this.duration),s=void 0!==r["data-async"]?i.startAt:i.startAt+i.duration,this.frameLength=Math.max(this.frameLength,i.startAt+i.duration);break;case"scenario":n=i.el,r=this.parseAttr(n),i.startAt=p(r["data-start"],this.delayUnit)||0,i.duration=p(r["data-duration"],this.duration),this.frameLength=Math.max(this.frameLength,i.startAt+i.duration)}o+=i.length,this.frameLength=this.frameLength||this.duration}},i.prototype.recalc=function(){this.mustRecalcScale||(this.mustRecalcScale=e(function(){this.performLineRecalc()}.bind(this)))},i.prototype.performLineRecalc=function(){for(var t,e,n,r,i,a=0;a<this.map.length;a++)(t=this.map[a]).isResizeSensitive&&(n=(e=t.el).getBoundingClientRect(),r=e.getBBox(),i=Math.max(n.width/r.width,n.height/r.height),t.length=Math.ceil(e.getTotalLength()*i),e.style.strokeDasharray=t.length+" "+(t.length+2*this.dashGap));this.trace(),this.mustRecalcScale=null},i.prototype.draw=function(){var t=this;if(this.currentFrame+=this.speed,this.currentFrame<=0)this.stop(),this.reset();else{if(!(this.currentFrame>=this.frameLength))return this.trace(),void(this.handle=e(function(){t.draw()}));this.stop(),this.currentFrame=this.frameLength,this.trace(),this.selfDestroy&&this.destroy()}this.callback(this),this.instanceCallback&&(this.instanceCallback(this),this.instanceCallback=null)},i.prototype.trace=function(){var t,e,n,r;for(r=this.animTimingFunction(this.currentFrame/this.frameLength)*this.frameLength,t=0;t<this.map.length;t++)e=(r-(n=this.map[t]).startAt)/n.duration,e=this.pathTimingFunction(Math.max(0,Math.min(1,e))),n.progress!==e&&(n.progress=e,n.el.style.strokeDashoffset=Math.floor(n.length*(1-e)),this.renderPath(t))},i.prototype.renderPath=function(t){if(this.forceRender&&this.map&&this.map[t]){var e=this.map[t],n=e.el.cloneNode(!0);e.el.parentNode.replaceChild(n,e.el),e.el=n}},i.prototype.init=function(){this.frameLength=0,this.currentFrame=0,this.map=[],new n(this.el),this.mapping(),this.starter(),this.onReady&&this.onReady(this)},i.prototype.starter=function(){switch(this.start){case"manual":return;case"autostart":this.play();break;case"inViewport":var t=this,e=function(){t.isInViewport(t.parentEl,1)&&(t.play(),window.removeEventListener("scroll",e))};window.addEventListener("scroll",e),e()}},i.prototype.getStatus=function(){return 0===this.currentFrame?"start":this.currentFrame===this.frameLength?"end":"progress"},i.prototype.reset=function(){return this.setFrameProgress(0)},i.prototype.finish=function(){return this.setFrameProgress(1)},i.prototype.setFrameProgress=function(t){return t=Math.min(1,Math.max(0,t)),this.currentFrame=Math.round(this.frameLength*t),this.trace(),this},i.prototype.play=function(t,e){if(this.instanceCallback=null,t&&"function"==typeof t)this.instanceCallback=t,t=null;else if(t&&"number"!=typeof t)throw new Error("Vivus [play]: invalid speed");return e&&"function"==typeof e&&!this.instanceCallback&&(this.instanceCallback=e),this.speed=t||1,this.handle||this.draw(),this},i.prototype.stop=function(){return this.handle&&(t(this.handle),this.handle=null),this},i.prototype.destroy=function(){var t,e;for(this.stop(),t=0;t<this.map.length;t++)(e=this.map[t]).el.style.strokeDashoffset=null,e.el.style.strokeDasharray=null,this.renderPath(t)},i.prototype.isInvisible=function(t){var e,n=t.getAttribute("data-ignore");return null!==n?"false"!==n:!!this.ignoreInvisible&&(!(e=t.getBoundingClientRect()).width&&!e.height)},i.prototype.parseAttr=function(t){var e,n={};if(t&&t.attributes)for(var r=0;r<t.attributes.length;r++)n[(e=t.attributes[r]).name]=e.value;return n},i.prototype.isInViewport=function(t,e){var n=this.scrollY(),r=n+this.getViewportH(),i=t.getBoundingClientRect(),a=i.height,o=n+i.top;return o+a*(e=e||0)<=r&&n<=o+a},i.prototype.getViewportH=function(){var t=this.docElem.clientHeight,e=window.innerHeight;return t<e?e:t},i.prototype.scrollY=function(){return window.pageYOffset||this.docElem.scrollTop},r=function(){i.prototype.docElem||(i.prototype.docElem=window.document.documentElement,e=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},t=window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame||function(t){return window.clearTimeout(t)})},p=function(t,e){var n=parseInt(t,10);return 0<=n?n:e},"function"==typeof define&&define.amd?define([],function(){return i}):"object"==typeof exports?module.exports=i:window.Vivus=i}();
function r(n,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(n,r.key,r)}}function Jt(n,t,i){t&&r(n.prototype,t),i&&r(n,i),Object.defineProperty(n,"prototype",{writable:!1})}
/*!
 * Splide.js
 * Version  : 4.1.2
 * License  : MIT
 * Copyright: 2022 Naotoshi Fujita
 */
var n,t;n=this,t=function(){"use strict";var v="(prefers-reduced-motion: reduce)",G=4,rn=5,r={CREATED:1,MOUNTED:2,IDLE:3,MOVING:G,SCROLLING:rn,DRAGGING:6,DESTROYED:7};function D(n){n.length=0}function o(n,t,i){return Array.prototype.slice.call(n,t,i)}function R(n){return n.bind.apply(n,[null].concat(o(arguments,1)))}function on(){}var p=setTimeout;function h(n){return requestAnimationFrame(n)}function u(n,t){return typeof t===n}function un(n){return!c(n)&&u("object",n)}var e=Array.isArray,x=R(u,"function"),C=R(u,"string"),en=R(u,"undefined");function c(n){return null===n}function m(n){try{return n instanceof(n.ownerDocument.defaultView||window).HTMLElement}catch(n){return!1}}function y(n){return e(n)?n:[n]}function g(n,t){y(n).forEach(t)}function b(n,t){return-1<n.indexOf(t)}function k(n,t){return n.push.apply(n,y(t)),n}function A(t,n,i){t&&g(n,function(n){n&&t.classList[i?"add":"remove"](n)})}function M(n,t){A(n,C(t)?t.split(" "):t,!0)}function L(n,t){g(t,n.appendChild.bind(n))}function O(n,i){g(n,function(n){var t=(i||n).parentNode;t&&t.insertBefore(n,i)})}function cn(n,t){return m(n)&&(n.msMatchesSelector||n.matches).call(n,t)}function S(n,t){n=n?o(n.children):[];return t?n.filter(function(n){return cn(n,t)}):n}function fn(n,t){return t?S(n,t)[0]:n.firstElementChild}var E=Object.keys;function w(t,i,n){t&&(n?E(t).reverse():E(t)).forEach(function(n){"__proto__"!==n&&i(t[n],n)})}function an(r){return o(arguments,1).forEach(function(i){w(i,function(n,t){r[t]=i[t]})}),r}function d(i){return o(arguments,1).forEach(function(n){w(n,function(n,t){e(n)?i[t]=n.slice():un(n)?i[t]=d({},un(i[t])?i[t]:{},n):i[t]=n})}),i}function sn(t,n){g(n||E(t),function(n){delete t[n]})}function P(n,i){g(n,function(t){g(i,function(n){t&&t.removeAttribute(n)})})}function I(i,t,r){un(t)?w(t,function(n,t){I(i,t,n)}):g(i,function(n){c(r)||""===r?P(n,t):n.setAttribute(t,String(r))})}function j(n,t,i){n=document.createElement(n);return t&&(C(t)?M:I)(n,t),i&&L(i,n),n}function _(n,t,i){if(en(i))return getComputedStyle(n)[t];c(i)||(n.style[t]=""+i)}function ln(n,t){_(n,"display",t)}function dn(n){n.setActive&&n.setActive()||n.focus({preventScroll:!0})}function z(n,t){return n.getAttribute(t)}function vn(n,t){return n&&n.classList.contains(t)}function N(n){return n.getBoundingClientRect()}function T(n){g(n,function(n){n&&n.parentNode&&n.parentNode.removeChild(n)})}function hn(n){return fn((new DOMParser).parseFromString(n,"text/html").body)}function F(n,t){n.preventDefault(),t&&(n.stopPropagation(),n.stopImmediatePropagation())}function pn(n,t){return n&&n.querySelector(t)}function gn(n,t){return t?o(n.querySelectorAll(t)):[]}function X(n,t){A(n,t,!1)}function mn(n){return n.timeStamp}function W(n){return C(n)?n:n?n+"px":""}var yn="splide",f="data-"+yn;function bn(n,t){if(!n)throw new Error("["+yn+"] "+(t||""))}var Y=Math.min,wn=Math.max,xn=Math.floor,kn=Math.ceil,U=Math.abs;function Sn(n,t,i){return U(n-t)<i}function En(n,t,i,r){var o=Y(t,i),t=wn(t,i);return r?o<n&&n<t:o<=n&&n<=t}function q(n,t,i){var r=Y(t,i),t=wn(t,i);return Y(wn(r,n),t)}function Ln(n){return(0<n)-(n<0)}function On(t,n){return g(n,function(n){t=t.replace("%s",""+n)}),t}function An(n){return n<10?"0"+n:""+n}var _n={};function zn(){var c=[];function i(n,i,r){g(n,function(t){t&&g(i,function(n){n.split(" ").forEach(function(n){n=n.split(".");r(t,n[0],n[1])})})})}return{bind:function(n,t,u,e){i(n,t,function(n,t,i){var r="addEventListener"in n,o=r?n.removeEventListener.bind(n,t,u,e):n.removeListener.bind(n,u);r?n.addEventListener(t,u,e):n.addListener(u),c.push([n,t,i,u,o])})},unbind:function(n,t,o){i(n,t,function(t,i,r){c=c.filter(function(n){return!!(n[0]!==t||n[1]!==i||n[2]!==r||o&&n[3]!==o)||(n[4](),!1)})})},dispatch:function(n,t,i){var r;return"function"==typeof CustomEvent?r=new CustomEvent(t,{bubbles:!0,detail:i}):(r=document.createEvent("CustomEvent")).initCustomEvent(t,!0,!1,i),n.dispatchEvent(r),r},destroy:function(){c.forEach(function(n){n[4]()}),D(c)}}}var B="mounted",H="move",Dn="moved",Mn="click",Pn="active",In="inactive",Rn="visible",Cn="hidden",J="refresh",K="updated",jn="resize",Nn="resized",Tn="scroll",V="scrolled",a="destroy",Gn="navigation:mounted",Fn="autoplay:play",Xn="autoplay:pause",Wn="lazyload:loaded",Yn="sk",Un="sh";function Q(n){var i=n?n.event.bus:document.createDocumentFragment(),r=zn();return n&&n.event.on(a,r.destroy),an(r,{bus:i,on:function(n,t){r.bind(i,y(n).join(" "),function(n){t.apply(t,e(n.detail)?n.detail:[])})},off:R(r.unbind,i),emit:function(n){r.dispatch(i,n,o(arguments,1))}})}function qn(t,n,i,r){var o,u,e=Date.now,c=0,f=!0,a=0;function s(){if(!f){if(c=t?Y((e()-o)/t,1):1,i&&i(c),1<=c&&(n(),o=e(),r&&++a>=r))return l();u=h(s)}}function l(){f=!0}function d(){u&&cancelAnimationFrame(u),f=!(u=c=0)}return{start:function(n){n||d(),o=e()-(n?c*t:0),f=!1,u=h(s)},rewind:function(){o=e(),c=0,i&&i(c)},pause:l,cancel:d,set:function(n){t=n},isPaused:function(){return f}}}function s(n){var t=n;return{set:function(n){t=n},is:function(n){return b(y(n),t)}}}var n="Arrow",Bn=n+"Left",Hn=n+"Right",t=n+"Up",n=n+"Down",Jn="ttb",l={width:["height"],left:["top","right"],right:["bottom","left"],x:["y"],X:["Y"],Y:["X"],ArrowLeft:[t,Hn],ArrowRight:[n,Bn]};var Z="role",$="tabindex",i="aria-",Kn=i+"controls",Vn=i+"current",Qn=i+"selected",nn=i+"label",Zn=i+"labelledby",$n=i+"hidden",nt=i+"orientation",tt=i+"roledescription",it=i+"live",rt=i+"busy",ot=i+"atomic",ut=[Z,$,"disabled",Kn,Vn,nn,Zn,$n,nt,tt],i=yn+"__",et=yn,ct=i+"track",ft=i+"list",at=i+"slide",st=at+"--clone",lt=at+"__container",dt=i+"arrows",vt=i+"arrow",ht=vt+"--prev",pt=vt+"--next",gt=i+"pagination",mt=gt+"__page",yt=i+"progress"+"__bar",bt=i+"toggle",wt=i+"sr",tn="is-active",xt="is-prev",kt="is-next",St="is-visible",Et="is-loading",Lt="is-focus-in",Ot="is-overflow",At=[tn,St,xt,kt,Et,Lt,Ot];var _t="touchstart mousedown",zt="touchmove mousemove",Dt="touchend touchcancel mouseup click";var Mt="slide",Pt="loop",It="fade";function Rt(o,r,t,u){var e,n=Q(o),i=n.on,c=n.emit,f=n.bind,a=o.Components,s=o.root,l=o.options,d=l.isNavigation,v=l.updateOnMove,h=l.i18n,p=l.pagination,g=l.slideFocus,m=a.Direction.resolve,y=z(u,"style"),b=z(u,nn),w=-1<t,x=fn(u,"."+lt);function k(){var n=o.splides.map(function(n){n=n.splide.Components.Slides.getAt(r);return n?n.slide.id:""}).join(" ");I(u,nn,On(h.slideX,(w?t:r)+1)),I(u,Kn,n),I(u,Z,g?"button":""),g&&P(u,tt)}function S(){e||E()}function E(){var n,t,i;e||(n=o.index,(i=L())!==vn(u,tn)&&(A(u,tn,i),I(u,Vn,d&&i||""),c(i?Pn:In,O)),i=function(){if(o.is(It))return L();var n=N(a.Elements.track),t=N(u),i=m("left",!0),r=m("right",!0);return xn(n[i])<=kn(t[i])&&xn(t[r])<=kn(n[r])}(),t=!i&&(!L()||w),o.state.is([G,rn])||I(u,$n,t||""),I(gn(u,l.focusableNodes||""),$,t?-1:""),g&&I(u,$,t?-1:0),i!==vn(u,St)&&(A(u,St,i),c(i?Rn:Cn,O)),i||document.activeElement!==u||(t=a.Slides.getAt(o.index))&&dn(t.slide),A(u,xt,r===n-1),A(u,kt,r===n+1))}function L(){var n=o.index;return n===r||l.cloneStatus&&n===t}var O={index:r,slideIndex:t,slide:u,container:x,isClone:w,mount:function(){w||(u.id=s.id+"-slide"+An(r+1),I(u,Z,p?"tabpanel":"group"),I(u,tt,h.slide),I(u,nn,b||On(h.slideLabel,[r+1,o.length]))),f(u,"click",R(c,Mn,O)),f(u,"keydown",R(c,Yn,O)),i([Dn,Un,V],E),i(Gn,k),v&&i(H,S)},destroy:function(){e=!0,n.destroy(),X(u,At),P(u,ut),I(u,"style",y),I(u,nn,b||"")},update:E,style:function(n,t,i){_(i&&x||u,n,t)},isWithin:function(n,t){return n=U(n-r),(n=w||!l.rewind&&!o.is(Pt)?n:Y(n,o.length-n))<=t}};return O}var Ct=f+"-interval";var jt={passive:!1,capture:!0};var Nt={Spacebar:" ",Right:Hn,Left:Bn,Up:t,Down:n};function Tt(n){return n=C(n)?n:n.key,Nt[n]||n}var Gt="keydown";var Ft=f+"-lazy",Xt=Ft+"-srcset",Wt="["+Ft+"], ["+Xt+"]";var Yt=[" ","Enter"];var Ut=Object.freeze({__proto__:null,Media:function(r,n,o){var u=r.state,t=o.breakpoints||{},e=o.reducedMotion||{},i=zn(),c=[];function f(n){n&&i.destroy()}function a(n,t){t=matchMedia(t);i.bind(t,"change",s),c.push([n,t])}function s(){var n=u.is(7),t=o.direction,i=c.reduce(function(n,t){return d(n,t[1].matches?t[0]:{})},{});sn(o),l(i),o.destroy?r.destroy("completely"===o.destroy):n?(f(!0),r.mount()):t!==o.direction&&r.refresh()}function l(n,t,i){d(o,n),t&&d(Object.getPrototypeOf(o),n),!i&&u.is(1)||r.emit(K,o)}return{setup:function(){var i="min"===o.mediaQuery;E(t).sort(function(n,t){return i?+n-+t:+t-+n}).forEach(function(n){a(t[n],"("+(i?"min":"max")+"-width:"+n+"px)")}),a(e,v),s()},destroy:f,reduce:function(n){matchMedia(v).matches&&(n?d(o,e):sn(o,E(e)))},set:l}},Direction:function(n,t,o){return{resolve:function(n,t,i){var r="rtl"!==(i=i||o.direction)||t?i===Jn?0:-1:1;return l[n]&&l[n][r]||n.replace(/width|left|right/i,function(n,t){n=l[n.toLowerCase()][r]||n;return 0<t?n.charAt(0).toUpperCase()+n.slice(1):n})},orient:function(n){return n*("rtl"===o.direction?1:-1)}}},Elements:function(n,t,i){var r,o,u,e=Q(n),c=e.on,f=e.bind,a=n.root,s=i.i18n,l={},d=[],v=[],h=[];function p(){r=y("."+ct),o=fn(r,"."+ft),bn(r&&o,"A track/list element is missing."),k(d,S(o,"."+at+":not(."+st+")")),w({arrows:dt,pagination:gt,prev:ht,next:pt,bar:yt,toggle:bt},function(n,t){l[t]=y("."+n)}),an(l,{root:a,track:r,list:o,slides:d});var n=a.id||function(n){return""+n+An(_n[n]=(_n[n]||0)+1)}(yn),t=i.role;a.id=n,r.id=r.id||n+"-track",o.id=o.id||n+"-list",!z(a,Z)&&"SECTION"!==a.tagName&&t&&I(a,Z,t),I(a,tt,s.carousel),I(o,Z,"presentation"),m()}function g(n){var t=ut.concat("style");D(d),X(a,v),X(r,h),P([r,o],t),P(a,n?t:["style",tt])}function m(){X(a,v),X(r,h),v=b(et),h=b(ct),M(a,v),M(r,h),I(a,nn,i.label),I(a,Zn,i.labelledby)}function y(n){n=pn(a,n);return n&&function(n,t){if(x(n.closest))return n.closest(t);for(var i=n;i&&1===i.nodeType&&!cn(i,t);)i=i.parentElement;return i}(n,"."+et)===a?n:void 0}function b(n){return[n+"--"+i.type,n+"--"+i.direction,i.drag&&n+"--draggable",i.isNavigation&&n+"--nav",n===et&&tn]}return an(l,{setup:p,mount:function(){c(J,g),c(J,p),c(K,m),f(document,_t+" keydown",function(n){u="keydown"===n.type},{capture:!0}),f(a,"focusin",function(){A(a,Lt,!!u)})},destroy:g})},Slides:function(r,o,u){var n=Q(r),t=n.on,e=n.emit,c=n.bind,f=(n=o.Elements).slides,a=n.list,s=[];function i(){f.forEach(function(n,t){d(n,t,-1)})}function l(){h(function(n){n.destroy()}),D(s)}function d(n,t,i){t=Rt(r,t,i,n);t.mount(),s.push(t),s.sort(function(n,t){return n.index-t.index})}function v(n){return n?p(function(n){return!n.isClone}):s}function h(n,t){v(t).forEach(n)}function p(t){return s.filter(x(t)?t:function(n){return C(t)?cn(n.slide,t):b(y(t),n.index)})}return{mount:function(){i(),t(J,l),t(J,i)},destroy:l,update:function(){h(function(n){n.update()})},register:d,get:v,getIn:function(n){var t=o.Controller,i=t.toIndex(n),r=t.hasFocus()?1:u.perPage;return p(function(n){return En(n.index,i,i+r-1)})},getAt:function(n){return p(n)[0]},add:function(n,o){g(n,function(n){var t,i,r;m(n=C(n)?hn(n):n)&&((t=f[o])?O(n,t):L(a,n),M(n,u.classes.slide),t=n,i=R(e,jn),t=gn(t,"img"),(r=t.length)?t.forEach(function(n){c(n,"load error",function(){--r||i()})}):i())}),e(J)},remove:function(n){T(p(n).map(function(n){return n.slide})),e(J)},forEach:h,filter:p,style:function(t,i,r){h(function(n){n.style(t,i,r)})},getLength:function(n){return(n?f:s).length},isEnough:function(){return s.length>u.perPage}}},Layout:function(t,n,i){var r,o,u,e=(a=Q(t)).on,c=a.bind,f=a.emit,a=n.Slides,s=n.Direction.resolve,l=(n=n.Elements).root,d=n.track,v=n.list,h=a.getAt,p=a.style;function g(){r=i.direction===Jn,_(l,"maxWidth",W(i.width)),_(d,s("paddingLeft"),y(!1)),_(d,s("paddingRight"),y(!0)),m(!0)}function m(n){var t=N(l);!n&&o.width===t.width&&o.height===t.height||(_(d,"height",function(){var n="";r&&(bn(n=b(),"height or heightRatio is missing."),n="calc("+n+" - "+y(!1)+" - "+y(!0)+")");return n}()),p(s("marginRight"),W(i.gap)),p("width",i.autoWidth?null:W(i.fixedWidth)||(r?"":w())),p("height",W(i.fixedHeight)||(r?i.autoHeight?null:w():b()),!0),o=t,f(Nn),u!==(u=O())&&(A(l,Ot,u),f("overflow",u)))}function y(n){var t=i.padding,n=s(n?"right":"left");return t&&W(t[n]||(un(t)?0:t))||"0px"}function b(){return W(i.height||N(v).width*i.heightRatio)}function w(){var n=W(i.gap);return"calc((100%"+(n&&" + "+n)+")/"+(i.perPage||1)+(n&&" - "+n)+")"}function x(){return N(v)[s("width")]}function k(n,t){n=h(n||0);return n?N(n.slide)[s("width")]+(t?0:L()):0}function S(n,t){var i,n=h(n);return n?(n=N(n.slide)[s("right")],i=N(v)[s("left")],U(n-i)+(t?0:L())):0}function E(n){return S(t.length-1)-S(0)+k(0,n)}function L(){var n=h(0);return n&&parseFloat(_(n.slide,s("marginRight")))||0}function O(){return t.is(It)||E(!0)>x()}return{mount:function(){var n,t,i;g(),c(window,"resize load",(n=R(f,jn),i=qn(t||0,n,null,1),function(){i.isPaused()&&i.start()})),e([K,J],g),e(jn,m)},resize:m,listSize:x,slideSize:k,sliderSize:E,totalSize:S,getPadding:function(n){return parseFloat(_(d,s("padding"+(n?"Right":"Left"))))||0},isOverflow:O}},Clones:function(c,i,f){var t,r=Q(c),n=r.on,a=i.Elements,s=i.Slides,o=i.Direction.resolve,l=[];function u(){if(n(J,d),n([K,jn],v),t=h()){var o=t,u=s.get().slice(),e=u.length;if(e){for(;u.length<o;)k(u,u);k(u.slice(-o),u.slice(0,o)).forEach(function(n,t){var i=t<o,r=function(n,t){n=n.cloneNode(!0);return M(n,f.classes.clone),n.id=c.root.id+"-clone"+An(t+1),n}(n.slide,t);i?O(r,u[0].slide):L(a.list,r),k(l,r),s.register(r,t-o+(i?0:e),n.index)})}i.Layout.resize(!0)}}function d(){e(),u()}function e(){T(l),D(l),r.destroy()}function v(){var n=h();t!==n&&(t<n||!n)&&r.emit(J)}function h(){var n,t=f.clones;return c.is(Pt)?en(t)&&(t=(n=f[o("fixedWidth")]&&i.Layout.slideSize(0))&&kn(N(a.track)[o("width")]/n)||f[o("autoWidth")]&&c.length||2*f.perPage):t=0,t}return{mount:u,destroy:e}},Move:function(r,c,o){var e,n=Q(r),t=n.on,f=n.emit,a=r.state.set,u=(n=c.Layout).slideSize,i=n.getPadding,s=n.totalSize,l=n.listSize,d=n.sliderSize,v=(n=c.Direction).resolve,h=n.orient,p=(n=c.Elements).list,g=n.track;function m(){c.Controller.isBusy()||(c.Scroll.cancel(),y(r.index),c.Slides.update())}function y(n){b(S(n,!0))}function b(n,t){r.is(It)||(t=t?n:function(n){{var t,i;r.is(Pt)&&(t=k(n),i=t>c.Controller.getEnd(),(t<0||i)&&(n=w(n,i)))}return n}(n),_(p,"transform","translate"+v("X")+"("+t+"px)"),n!==t&&f(Un))}function w(n,t){var i=n-L(t),r=d();return n-=h(r*(kn(U(i)/r)||1))*(t?1:-1)}function x(){b(E(),!0),e.cancel()}function k(n){for(var t=c.Slides.get(),i=0,r=1/0,o=0;o<t.length;o++){var u=t[o].index,e=U(S(u,!0)-n);if(!(e<=r))break;r=e,i=u}return i}function S(n,t){var i=h(s(n-1)-(n=n,"center"===(i=o.focus)?(l()-u(n,!0))/2:+i*u(n)||0));return t?(n=i,n=o.trimSpace&&r.is(Mt)?q(n,0,h(d(!0)-l())):n):i}function E(){var n=v("left");return N(p)[n]-N(g)[n]+h(i(!1))}function L(n){return S(n?c.Controller.getEnd():0,!!o.trimSpace)}return{mount:function(){e=c.Transition,t([B,Nn,K,J],m)},move:function(n,t,i,r){var o,u;n!==t&&(o=i<n,u=h(w(E(),o)),o?0<=u:u<=p[v("scrollWidth")]-N(g)[v("width")])&&(x(),b(w(E(),i<n),!0)),a(G),f(H,t,i,n),e.start(t,function(){a(3),f(Dn,t,i,n),r&&r()})},jump:y,translate:b,shift:w,cancel:x,toIndex:k,toPosition:S,getPosition:E,getLimit:L,exceededLimit:function(n,t){t=en(t)?E():t;var i=!0!==n&&h(t)<h(L(!1)),n=!1!==n&&h(t)>h(L(!0));return i||n},reposition:m}},Controller:function(o,u,e){var c,f,a,s,n=Q(o),t=n.on,i=n.emit,l=u.Move,d=l.getPosition,r=l.getLimit,v=l.toPosition,h=(n=u.Slides).isEnough,p=n.getLength,g=e.omitEnd,m=o.is(Pt),y=o.is(Mt),b=R(L,!1),w=R(L,!0),x=e.start||0,k=x;function S(){f=p(!0),a=e.perMove,s=e.perPage,c=_();var n=q(x,0,g?c:f-1);n!==x&&(x=n,l.reposition())}function E(){c!==_()&&i("ei")}function L(n,t){var i=a||(P()?1:s),i=O(x+i*(n?-1:1),x,!(a||P()));return-1===i&&y&&!Sn(d(),r(!n),1)?n?0:c:t?i:A(i)}function O(n,t,i){var r;return h()||P()?((r=function(n){if(y&&"move"===e.trimSpace&&n!==x)for(var t=d();t===v(n,!0)&&En(n,0,o.length-1,!e.rewind);)n<x?--n:++n;return n}(n))!==n&&(t=n,n=r,i=!1),n<0||c<n?n=a||!En(0,n,t,!0)&&!En(c,t,n,!0)?m?i?n<0?-(f%s||s):f:n:e.rewind?n<0?c:0:-1:z(D(n)):i&&n!==t&&(n=z(D(t)+(n<t?-1:1)))):n=-1,n}function A(n){return m?(n+f)%f||0:n}function _(){for(var n=f-(P()||m&&a?1:s);g&&0<n--;)if(v(f-1,!0)!==v(n,!0)){n++;break}return q(n,0,f-1)}function z(n){return q(P()?n:s*n,0,c)}function D(n){return P()?Y(n,c):xn((c<=n?f-1:n)/s)}function M(n){n!==x&&(k=x,x=n)}function P(){return!en(e.focus)||e.isNavigation}function I(){return o.state.is([G,rn])&&!!e.waitForTransition}return{mount:function(){S(),t([K,J,"ei"],S),t(Nn,E)},go:function(n,t,i){var r;I()||-1<(r=A(n=function(n){var t=x;{var i,r;C(n)?(r=n.match(/([+\-<>])(\d+)?/)||[],i=r[1],r=r[2],"+"===i||"-"===i?t=O(x+ +(""+i+(+r||1)),x):">"===i?t=r?z(+r):b(!0):"<"===i&&(t=w(!0))):t=m?n:q(n,0,c)}return t}(n)))&&(t||r!==x)&&(M(r),l.move(n,r,k,i))},scroll:function(n,t,i,r){u.Scroll.scroll(n,t,i,function(){var n=A(l.toIndex(d()));M(g?Y(n,c):n),r&&r()})},getNext:b,getPrev:w,getAdjacent:L,getEnd:_,setIndex:M,getIndex:function(n){return n?k:x},toIndex:z,toPage:D,toDest:function(n){return n=l.toIndex(n),y?q(n,0,c):n},hasFocus:P,isBusy:I}},Arrows:function(o,n,t){var i,r,u=Q(o),e=u.on,c=u.bind,f=u.emit,a=t.classes,s=t.i18n,l=n.Elements,d=n.Controller,v=l.arrows,h=l.track,p=v,g=l.prev,m=l.next,y={};function b(){var n=t.arrows;!n||g&&m||(p=v||j("div",a.arrows),g=S(!0),m=S(!1),i=!0,L(p,[g,m]),v||O(p,h)),g&&m&&(an(y,{prev:g,next:m}),ln(p,n?"":"none"),M(p,r=dt+"--"+t.direction),n&&(e([B,Dn,J,V,"ei"],E),c(m,"click",R(k,">")),c(g,"click",R(k,"<")),E(),I([g,m],Kn,h.id),f("arrows:mounted",g,m))),e(K,w)}function w(){x(),b()}function x(){u.destroy(),X(p,r),i?(T(v?[g,m]:p),g=m=null):P([g,m],ut)}function k(n){d.go(n,!0)}function S(n){return hn('<button class="'+a.arrow+" "+(n?a.prev:a.next)+'" type="button"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40" focusable="false"><path d="'+(t.arrowPath||"m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z")+'" />')}function E(){var n,t,i,r;g&&m&&(r=o.index,n=d.getPrev(),t=d.getNext(),i=-1<n&&r<n?s.last:s.prev,r=-1<t&&t<r?s.first:s.next,g.disabled=n<0,m.disabled=t<0,I(g,nn,i),I(m,nn,r),f("arrows:updated",g,m,n,t))}return{arrows:y,mount:b,destroy:x,update:E}},Autoplay:function(n,t,i){var r,o,u=Q(n),e=u.on,c=u.bind,f=u.emit,a=qn(i.interval,n.go.bind(n,">"),function(n){var t=l.bar;t&&_(t,"width",100*n+"%"),f("autoplay:playing",n)}),s=a.isPaused,l=t.Elements,d=(u=t.Elements).root,v=u.toggle,h=i.autoplay,p="pause"===h;function g(){s()&&t.Slides.isEnough()&&(a.start(!i.resetProgress),o=r=p=!1,b(),f(Fn))}function m(n){p=!!(n=void 0===n?!0:n),b(),s()||(a.pause(),f(Xn))}function y(){p||(r||o?m(!1):g())}function b(){v&&(A(v,tn,!p),I(v,nn,i.i18n[p?"play":"pause"]))}function w(n){n=t.Slides.getAt(n);a.set(n&&+z(n.slide,Ct)||i.interval)}return{mount:function(){h&&(i.pauseOnHover&&c(d,"mouseenter mouseleave",function(n){r="mouseenter"===n.type,y()}),i.pauseOnFocus&&c(d,"focusin focusout",function(n){o="focusin"===n.type,y()}),v&&c(v,"click",function(){p?g():m(!0)}),e([H,Tn,J],a.rewind),e(H,w),v&&I(v,Kn,l.track.id),p||g(),b())},destroy:a.cancel,play:g,pause:m,isPaused:s}},Cover:function(n,t,i){var r=Q(n).on;function o(i){t.Slides.forEach(function(n){var t=fn(n.container||n.slide,"img");t&&t.src&&u(i,t,n)})}function u(n,t,i){i.style("background",n?'center/cover no-repeat url("'+t.src+'")':"",!0),ln(t,n?"none":"")}return{mount:function(){i.cover&&(r(Wn,R(u,!0)),r([B,K,J],R(o,!0)))},destroy:R(o,!1)}},Scroll:function(n,c,u){var f,a,t=Q(n),i=t.on,s=t.emit,l=n.state.set,d=c.Move,v=d.getPosition,e=d.getLimit,h=d.exceededLimit,p=d.translate,g=n.is(Mt),m=1;function y(n,t,i,r,o){var u,e=v(),i=(x(),!i||g&&h()||(i=c.Layout.sliderSize(),u=Ln(n)*i*xn(U(n)/i)||0,n=d.toPosition(c.Controller.toDest(n%i))+u),Sn(e,n,1));m=1,t=i?0:t||wn(U(n-e)/1.5,800),a=r,f=qn(t,b,R(w,e,n,o),1),l(rn),s(Tn),f.start()}function b(){l(3),a&&a(),s(V)}function w(n,t,i,r){var o=v(),r=(n+(t-n)*(t=r,(n=u.easingFunc)?n(t):1-Math.pow(1-t,4))-o)*m;p(o+r),g&&!i&&h()&&(m*=.6,U(r)<10&&y(e(h(!0)),600,!1,a,!0))}function x(){f&&f.cancel()}function r(){f&&!f.isPaused()&&(x(),b())}return{mount:function(){i(H,x),i([K,J],r)},destroy:x,scroll:y,cancel:r}},Drag:function(e,o,c){var f,t,u,a,s,l,d,v,n=Q(e),i=n.on,h=n.emit,p=n.bind,g=n.unbind,m=e.state,y=o.Move,b=o.Scroll,w=o.Controller,x=o.Elements.track,k=o.Media.reduce,r=(n=o.Direction).resolve,S=n.orient,E=y.getPosition,L=y.exceededLimit,O=!1;function j(){var n=c.drag;C(!n),a="free"===n}function N(n){var t,i,r;l=!1,d||(t=R(n),i=n.target,r=c.noDrag,cn(i,"."+mt+", ."+vt)||r&&cn(i,r)||!t&&n.button||(w.isBusy()?F(n,!0):(v=t?x:window,s=m.is([G,rn]),u=null,p(v,zt,A,jt),p(v,Dt,_,jt),y.cancel(),b.cancel(),z(n))))}function A(n){var t,i,r,o,u;m.is(6)||(m.set(6),h("drag")),n.cancelable&&(s?(y.translate(f+D(n)/(O&&e.is(Mt)?5:1)),u=200<M(n),t=O!==(O=L()),(u||t)&&z(n),l=!0,h("dragging"),F(n)):U(D(u=n))>U(D(u,!0))&&(t=n,i=c.dragMinThreshold,r=un(i),o=r&&i.mouse||0,r=(r?i.touch:+i)||10,s=U(D(t))>(R(t)?r:o),F(n)))}function _(n){var t,i,r;m.is(6)&&(m.set(3),h("dragged")),s&&(i=function(n){return E()+Ln(n)*Y(U(n)*(c.flickPower||600),a?1/0:o.Layout.listSize()*(c.flickMaxPages||1))}(t=function(n){if(e.is(Pt)||!O){var t=M(n);if(t&&t<200)return D(n)/t}return 0}(t=n)),r=c.rewind&&c.rewindByDrag,k(!1),a?w.scroll(i,0,c.snap):e.is(It)?w.go(S(Ln(t))<0?r?"<":"-":r?">":"+"):e.is(Mt)&&O&&r?w.go(L(!0)?">":"<"):w.go(w.toDest(i),!0),k(!0),F(n)),g(v,zt,A),g(v,Dt,_),s=!1}function T(n){!d&&l&&F(n,!0)}function z(n){u=t,t=n,f=E()}function D(n,t){return I(n,t)-I(P(n),t)}function M(n){return mn(n)-mn(P(n))}function P(n){return t===n&&u||t}function I(n,t){return(R(n)?n.changedTouches[0]:n)["page"+r(t?"Y":"X")]}function R(n){return"undefined"!=typeof TouchEvent&&n instanceof TouchEvent}function C(n){d=n}return{mount:function(){p(x,zt,on,jt),p(x,Dt,on,jt),p(x,_t,N,jt),p(x,"click",T,{capture:!0}),p(x,"dragstart",F),i([B,K],j)},disable:C,isDragging:function(){return s}}},Keyboard:function(t,n,i){var r,o,u=Q(t),e=u.on,c=u.bind,f=u.unbind,a=t.root,s=n.Direction.resolve;function l(){var n=i.keyboard;n&&(r="global"===n?window:a,c(r,Gt,h))}function d(){f(r,Gt)}function v(){var n=o;o=!0,p(function(){o=n})}function h(n){o||((n=Tt(n))===s(Bn)?t.go("<"):n===s(Hn)&&t.go(">"))}return{mount:function(){l(),e(K,d),e(K,l),e(H,v)},destroy:d,disable:function(n){o=n}}},LazyLoad:function(i,n,o){var t=Q(i),r=t.on,u=t.off,e=t.bind,c=t.emit,f="sequential"===o.lazyLoad,a=[Dn,V],s=[];function l(){D(s),n.Slides.forEach(function(r){gn(r.slide,Wt).forEach(function(n){var t=z(n,Ft),i=z(n,Xt);t===n.src&&i===n.srcset||(t=o.classes.spinner,t=fn(i=n.parentElement,"."+t)||j("span",t,i),s.push([n,r,t]),n.src||ln(n,"none"))})}),(f?p:(u(a),r(a,d),d))()}function d(){(s=s.filter(function(n){var t=o.perPage*((o.preloadPages||1)+1)-1;return!n[1].isWithin(i.index,t)||v(n)})).length||u(a)}function v(n){var t=n[0];M(n[1].slide,Et),e(t,"load error",R(h,n)),I(t,"src",z(t,Ft)),I(t,"srcset",z(t,Xt)),P(t,Ft),P(t,Xt)}function h(n,t){var i=n[0],r=n[1];X(r.slide,Et),"error"!==t.type&&(T(n[2]),ln(i,""),c(Wn,i,r),c(jn)),f&&p()}function p(){s.length&&v(s.shift())}return{mount:function(){o.lazyLoad&&(l(),r(J,l))},destroy:R(D,s),check:d}},Pagination:function(l,n,d){var v,h,t=Q(l),p=t.on,g=t.emit,m=t.bind,y=n.Slides,b=n.Elements,w=n.Controller,x=w.hasFocus,r=w.getIndex,e=w.go,c=n.Direction.resolve,k=b.pagination,S=[];function E(){v&&(T(k?o(v.children):v),X(v,h),D(S),v=null),t.destroy()}function L(n){e(">"+n,!0)}function O(n,t){var i=S.length,r=Tt(t),o=A(),u=-1,o=(r===c(Hn,!1,o)?u=++n%i:r===c(Bn,!1,o)?u=(--n+i)%i:"Home"===r?u=0:"End"===r&&(u=i-1),S[u]);o&&(dn(o.button),e(">"+u),F(t,!0))}function A(){return d.paginationDirection||d.direction}function _(n){return S[w.toPage(n)]}function z(){var n,t=_(r(!0)),i=_(r());t&&(X(n=t.button,tn),P(n,Qn),I(n,$,-1)),i&&(M(n=i.button,tn),I(n,Qn,!0),I(n,$,"")),g("pagination:updated",{list:v,items:S},t,i)}return{items:S,mount:function n(){E(),p([K,J,"ei"],n);var t=d.pagination;if(k&&ln(k,t?"":"none"),t){p([H,Tn,V],z);var t=l.length,i=d.classes,r=d.i18n,o=d.perPage,u=x()?w.getEnd()+1:kn(t/o);M(v=k||j("ul",i.pagination,b.track.parentElement),h=gt+"--"+A()),I(v,Z,"tablist"),I(v,nn,r.select),I(v,nt,A()===Jn?"vertical":"");for(var e=0;e<u;e++){var c=j("li",null,v),f=j("button",{class:i.page,type:"button"},c),a=y.getIn(e).map(function(n){return n.slide.id}),s=!x()&&1<o?r.pageX:r.slideX;m(f,"click",R(L,e)),d.paginationKeyboard&&m(f,"keydown",R(O,e)),I(c,Z,"presentation"),I(f,Z,"tab"),I(f,Kn,a.join(" ")),I(f,nn,On(s,e+1)),I(f,$,-1),S.push({li:c,button:f,page:e})}z(),g("pagination:mounted",{list:v,items:S},_(l.index))}},destroy:E,getAt:_,update:z}},Sync:function(i,n,t){var r=t.isNavigation,o=t.slideFocus,u=[];function e(){var n,t;i.splides.forEach(function(n){n.isParent||(f(i,n.splide),f(n.splide,i))}),r&&(n=Q(i),(t=n.on)(Mn,s),t(Yn,l),t([B,K],a),u.push(n),n.emit(Gn,i.splides))}function c(){u.forEach(function(n){n.destroy()}),D(u)}function f(n,r){n=Q(n);n.on(H,function(n,t,i){r.go(r.is(Pt)?i:n)}),u.push(n)}function a(){I(n.Elements.list,nt,t.direction===Jn?"vertical":"")}function s(n){i.go(n.index)}function l(n,t){b(Yt,Tt(t))&&(s(n),F(t))}return{setup:R(n.Media.set,{slideFocus:en(o)?r:o},!0),mount:e,destroy:c,remount:function(){c(),e()}}},Wheel:function(e,c,f){var n=Q(e).bind,a=0;function t(n){var t,i,r,o,u;n.cancelable&&(t=(u=n.deltaY)<0,i=mn(n),r=f.wheelMinThreshold||0,o=f.wheelSleep||0,U(u)>r&&o<i-a&&(e.go(t?"<":">"),a=i),u=t,f.releaseWheel&&!e.state.is(G)&&-1===c.Controller.getAdjacent(u)||F(n))}return{mount:function(){f.wheel&&n(c.Elements.track,"wheel",t,jt)}}},Live:function(n,t,i){var r=Q(n).on,o=t.Elements.track,u=i.live&&!i.isNavigation,e=j("span",wt),c=qn(90,R(f,!1));function f(n){I(o,rt,n),n?(L(o,e),c.start()):(T(e),c.cancel())}function a(n){u&&I(o,it,n?"off":"polite")}return{mount:function(){u&&(a(!t.Autoplay.isPaused()),I(o,ot,!0),e.textContent="…",r(Fn,R(a,!0)),r(Xn,R(a,!1)),r([Dn,V],R(f,!0)))},disable:a,destroy:function(){P(o,[it,ot,rt]),T(e)}}}}),qt={type:"slide",role:"region",speed:400,perPage:1,cloneStatus:!0,arrows:!0,pagination:!0,paginationKeyboard:!0,interval:5e3,pauseOnHover:!0,pauseOnFocus:!0,resetProgress:!0,easing:"cubic-bezier(0.25, 1, 0.5, 1)",drag:!0,direction:"ltr",trimSpace:!0,focusableNodes:"a, button, textarea, input, select, iframe",live:!0,classes:{slide:at,clone:st,arrows:dt,arrow:vt,prev:ht,next:pt,pagination:gt,page:mt,spinner:i+"spinner"},i18n:{prev:"Previous slide",next:"Next slide",first:"Go to first slide",last:"Go to last slide",slideX:"Go to slide %s",pageX:"Go to page %s",play:"Start autoplay",pause:"Pause autoplay",carousel:"carousel",slide:"slide",select:"Select a slide to show",slideLabel:"%s of %s"},reducedMotion:{speed:0,rewindSpeed:0,autoplay:"pause"}};function Bt(n,t,i){var r=t.Slides;function o(){r.forEach(function(n){n.style("transform","translateX(-"+100*n.index+"%)")})}return{mount:function(){Q(n).on([B,J],o)},start:function(n,t){r.style("transition","opacity "+i.speed+"ms "+i.easing),p(t)},cancel:on}}function Ht(u,n,e){var c,f=n.Move,a=n.Controller,s=n.Scroll,t=n.Elements.list,l=R(_,t,"transition");function i(){l(""),s.cancel()}return{mount:function(){Q(u).bind(t,"transitionend",function(n){n.target===t&&c&&(i(),c())})},start:function(n,t){var i=f.toPosition(n,!0),r=f.getPosition(),o=function(n){var t=e.rewindSpeed;if(u.is(Mt)&&t){var i=a.getIndex(!0),r=a.getEnd();if(0===i&&r<=n||r<=i&&0===n)return t}return e.speed}(n);1<=U(i-r)&&1<=o?e.useScroll?s.scroll(i,o,!1,t):(l("transform "+o+"ms "+e.easing),f.translate(i,!0),c=t):(f.jump(n),t())},cancel:i}}t=function(){function i(n,t){this.event=Q(),this.Components={},this.state=s(1),this.splides=[],this.n={},this.t={};n=C(n)?pn(document,n):n;bn(n,n+" is invalid."),t=d({label:z(this.root=n,nn)||"",labelledby:z(n,Zn)||""},qt,i.defaults,t||{});try{d(t,JSON.parse(z(n,f)))}catch(n){bn(!1,"Invalid JSON")}this.n=Object.create(d({},t))}var n=i.prototype;return n.mount=function(n,t){var i=this,r=this.state,o=this.Components;return bn(r.is([1,7]),"Already mounted!"),r.set(1),this.i=o,this.r=t||this.r||(this.is(It)?Bt:Ht),this.t=n||this.t,w(an({},Ut,this.t,{Transition:this.r}),function(n,t){n=n(i,o,i.n);(o[t]=n).setup&&n.setup()}),w(o,function(n){n.mount&&n.mount()}),this.emit(B),M(this.root,"is-initialized"),r.set(3),this.emit("ready"),this},n.sync=function(n){return this.splides.push({splide:n}),n.splides.push({splide:this,isParent:!0}),this.state.is(3)&&(this.i.Sync.remount(),n.Components.Sync.remount()),this},n.go=function(n){return this.i.Controller.go(n),this},n.on=function(n,t){return this.event.on(n,t),this},n.off=function(n){return this.event.off(n),this},n.emit=function(n){var t;return(t=this.event).emit.apply(t,[n].concat(o(arguments,1))),this},n.add=function(n,t){return this.i.Slides.add(n,t),this},n.remove=function(n){return this.i.Slides.remove(n),this},n.is=function(n){return this.n.type===n},n.refresh=function(){return this.emit(J),this},n.destroy=function(t){void 0===t&&(t=!0);var n=this.event,i=this.state;return i.is(1)?Q(this).on("ready",this.destroy.bind(this,t)):(w(this.i,function(n){n.destroy&&n.destroy(t)},!0),n.emit(a),n.destroy(),t&&D(this.splides),i.set(7)),this},Jt(i,[{key:"options",get:function(){return this.n},set:function(n){this.i.Media.set(n,!0,!0)}},{key:"length",get:function(){return this.i.Slides.getLength(!0)}},{key:"index",get:function(){return this.i.Controller.getIndex()}}]),i}();return t.defaults={},t.STATES=r,t},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).Splide=t();
//# sourceMappingURL=splide.min.js.map

/* decrypt helper function */
function decryptCharcode(n, start, end, offset) {
    n = n + offset;
    if (offset > 0 && n > end) {
        n = start + (n - end - 1);
    } else if (offset < 0 && n < start) {
        n = end - (start - n - 1);
    }
    return String.fromCharCode(n);
}
/* decrypt string */
function decryptString(enc, offset) {
    var dec = "";
    var len = enc.length;
    for (var i = 0; i < len; i++) {
        var n = enc.charCodeAt(i);
        if (n >= 0x2B && n <= 0x3A) {
            dec += decryptCharcode(n, 0x2B, 0x3A, offset);	/* 0-9 . , - + / : */
        } else if (n >= 0x40 && n <= 0x5A) {
            dec += decryptCharcode(n, 0x40, 0x5A, offset);	/* A-Z @ */
        } else if (n >= 0x61 && n <= 0x7A) {
            dec += decryptCharcode(n, 0x61, 0x7A, offset);	/* a-z */
        } else {
            dec += enc.charAt(i);
        }
    }
    return dec;
}
/* decrypt spam-protected emails */
function linkTo_UnCryptMailto(s) {
    location.href = decryptString(s, 4);
}
function c(e) {
    (this.o = e), this.i();
}
function createCookie(e) {
    new c(e);
}
c.prototype = {
    i: function () {
        var e = this,
                t = e.o.toast,
                o = e.o.infoOverlay;
        if (o.readTargert) {
            var i = o.readTargert.dataset.modaluid;
            if (!e.cr(o.name + i))
                new bootstrap.Modal(o.readTargert, {}).show();
            o.writeTarget &&
                    o.writeTarget.addEventListener("click", function () {
                        e.cw(o, o.name + i);
                    });
        }
        t.readTargert[0] &&
                [].slice
                .call(document.querySelectorAll(".shortnewstoast"))
                .map(function (e) {
                    return new bootstrap.Toast(e, {animation: true, autohide: !1, delay: 1e4});
                })
                .forEach(function (o, i) {
                    e.ar(o, 2e3, i);
                    e.argggg(o, 2e3, i);
                    var n = o._element.getAttribute("id"),
                            a = o._element.getAttribute("data-cookiedate");
                    o._element.querySelector(".close-toast").addEventListener("click", function () {
                        e.cw(t, t.name + n, a);
                    });
                    var nyx = o._element.querySelector(".action-toast");
                    if (nyx) {
                        nyx.addEventListener("click", function (event) {
                            var href = this.href;
                            event.preventDefault();
                            e.cw(t, t.name + n, a);
                            window.location = href;
                        });
                    }
                });
    },
    cr: function (e) {
        return null != hspvCookieUtility.getCookie(e);
    },
    cw: function (e, t, o) {
        var i,
                n = 0;
        null != o && (n = Math.round((new Date(1e3 * o).getTime() - new Date().getTime()) / 864e5)), (i = n <= 0 ? e.expires : n), hspvCookieUtility.setCookie(t, e.task, i);
    },
    ar: function (e, t, o) {
        var i = this;
        setTimeout(function () {
            var t = e._element.getAttribute("id");
            i.cr(i.o.toast.name + t) || e.show();
        }, 100);
    },
    argggg: function (e, t, o) {
        var i = this;
        setTimeout(function () {
            var rr = e._element.querySelector(".shortnews").classList.add(...['bg-light', 'text-dark']);
            var rra = e._element.querySelector(".shortnews").classList.remove(...['bg-danger', 'text-white', 'bg-info']);
        }, 1000);
    },
};
var hspvCookieUtility = {
    getCookie: function (e) {
        var t = document.cookie.match("(^|;) ?" + e + "=([^;]*)(;|$)");
        return t ? t[2] : null;
    },
    setCookie: function (e, t, o) {
        var i = new Date();
        i.setTime(i.getTime() + 864e5 * o), (document.cookie = e + "=" + t + ";path=/;expires=" + i.toGMTString() + ";SameSite=Lax");
    },
    deleteCookie: function (e) {
        setCookie(e, "", -1);
    },
};
// cookie for TOAST and overlay
var cookie = createCookie({
    toast: {
        readTargert: document.getElementsByClassName('toast-container'),
        writeTarget: 'close-toast',
        name: 'hspvToast_',
        task: 'closed',
        expires: '7',
    },
    infoOverlay: {
        readTargert: document.getElementById('infoOverlay'),
        writeTarget: document.getElementById('neverShowAgain'),
        name: 'hspvInfoOv_',
        task: 'closed',
        expires: '7',
    },
});

function ajaxGetStatesController() {
    const d = document;
    var _this = this;
    this.init = function (qs, format, render) {
        _this.handleAjaxRequest('?type=9945&no_cache=1', 'HTML', 'PanelIntern');
        _this.handleAjaxRequest('/api/states/buttonintern', 'JSON', 'ButtonIntern');
        _this.handleAjaxRequest('/api/states/buttonloginout', 'JSON', 'ButtonLoginout');
        _this.handleAjaxRequest('/api/states/', 'JSON', '11111');
        _this.handleAjaxRequest('?type=9946&no_cache=1', 'HTML', 'GetDynNews');

    };
    this.handleAjaxRequest = function (qs = '/api/states/', format, render) {


        var host = window.location.host
        var protocol = window.location.protocol
        if (!host || !protocol)
            url = "https://www.hspv.nrw.de" + qs;
        else
            var url = protocol + '//' + host + qs;
        if (format === 'JSON') {
            fetch((url), {
                method: 'GET',
                headers: {
                    'Accept': 'application/json'
                },
            }).then(res => res.json())
                    .then(function (data) {
                        if (typeof data.states === 'object' && data.states !== null) {
                            if (typeof data.states.jobs === 'object' && data.states.jobs !== null && data.states.jobs.count > 0) {
                                if (typeof data.states.jobs === 'object' && data.states.jobs !== null && data.states.jobs.countint > 0) {
                                    _this.processDataToElement(elementClass = '.jAjxC', String(data.states.jobs.count), 'bg-cyan', text = 'aktuelle Stellen', unhide = false, putHtml = false, toggleMode = false);
                                    _this.processDataToElement(elementClass = '.jAjxCI', String(data.states.jobs.countint), 'bg-info', text = 'aktuelle interne Stellen', unhide = false, putHtml = false, toggleMode = false);
                                } else
                                    _this.processDataToElement(elementClass = '.jAjxC', String(data.states.jobs.count), '', text = 'aktuelle Stellen', unhide = false, putHtml = false, toggleMode = false);
                            }
                            if (typeof data.states.events === 'object' && data.states.events !== null && data.states.events.count > 0)
                                _this.processDataToElement(elementClass = '.jAjxCE', String(data.states.events.count), '', text = 'Veranstaltungen', unhide = false, putHtml = false, toggleMode = false);
                            if (typeof data.states.eventsint === 'object' && data.states.eventsint !== null && data.states.eventsint.count > 0)
                                _this.processDataToElement(elementClass = '.jAjxCEI', String(data.states.eventsint.count), 'bg-info', text = 'Veranstaltungen', unhide = false, putHtml = false, toggleMode = false);
                            if (typeof data.states.shortnews === 'object' && data.states.shortnews !== null && data.states.shortnews.count > 0)
                                _this.processDataToElement(elementClass = '.jAjxCS', String(data.states.shortnews.count), 'bg-info', text = ' Kurznachrichten', unhide = true, putHtml = false, toggleMode = false);
                            if (typeof data.states.secnews === 'object' && data.states.secnews !== null && data.states.secnews.count > 0)
                                _this.processDataToElement(elementClass = '.isec', String(data.states.secnews.count), 'bg-info', text = ' Informationssicherheit', unhide = false, putHtml = false, toggleMode = false);
                        }
                        if (render == 'ButtonIntern' && data.html !== null)
                            _this.processDataToElement(elementClass = '.Bl_c_Bi', String(data.html), css = '', text = '', unhide = false, putHtml = true, toggleMode = true);
                        if (render == 'ButtonLoginout' && data.html !== null)
                            _this.processDataToElement(elementClass = '.Bl_c_Bl', String(data.html), css = '', text = '', unhide = false, putHtml = true, toggleMode = true);

                    }).catch(err => console.error(err));
        } else {
            fetch((url), {
                method: 'GET',
            }).then(res => res.text())
                    .then(function (data) {
                        if (render == 'PanelIntern')
                            _this.setPanelIntern(data);
                        if (render == 'GetDynNews')
                            _this.setDynNews(data);


                    }).catch(err => console.error(err));

    }
    };
    this.setButtonIntern = function (data, css) {
        if (data.length > 0) {
            if (d.querySelectorAll('.navbar-dark').length > 0)
                var t = data.replace(/{btn}/gi, "text-white");
            else
                var t = data.replace(/{btn}/gi, "text-dark");
            if (d.querySelector(css) != null)
                d.querySelector(css).innerHTML = t


        }
    }
  
    this.processDataToElement = function (elementClass, r, css, text, unhide, putHtml, toggleMode) {
        if (r > 0 || r.length > 0) {
            if (!putHtml)
                var c = '<span class="position-absolute border border-white border-2 top-0 start-100 translate-middle badge ssmall rounded-pill bg-info fw-bold ' + css + '">' + r + '<span class="visually-hidden"> ' + text + '</span></span>';
            else
                var c = r;

            if (toggleMode) {
                if (d.querySelectorAll('.navbar-dark').length > 0)
                    var c = c.replace(/{btn}/gi, "text-white");
                else
                    var c = c.replace(/{btn}/gi, "text-dark");
            }
            if (d.querySelectorAll(elementClass)) {
                d.querySelectorAll(elementClass).forEach(e => {
                    if (unhide) {
                        e.classList.remove('d-none');
                        e.querySelector(elementClass + ' span').innerHTML += c;
                    } else {
                        if (!putHtml)
                            e.innerHTML += c;
                        else
                            e.innerHTML = c;
                    }
                });
            }
        }
    };


    this.setDynNews = function (data) {
        if (data.length > 0 && d.getElementById("short-news-12312")) {
            d.getElementById("short-news-12312").innerHTML += data;
            // cookie for TOAST and overlay
            var cookie = createCookie({
                toast: {
                    readTargert: document.getElementsByClassName('toast-container'),
                    writeTarget: 'close-toast',
                    name: 'hspvToast_',
                    task: 'closed',
                    expires: '7',
                },
                infoOverlay: {
                    readTargert: document.getElementById('infoOverlay'),
                    writeTarget: document.getElementById('neverShowAgain'),
                    name: 'hspvInfoOv_',
                    task: 'closed',
                    expires: '1',
                },
            });
        }
    }


    this.setPanelIntern = function (data) {
        if (data.length > 0 && d.getElementById("md_iBOvLn")) {
            d.getElementById("md_iBOvLn").innerHTML += data;
        }
    };
}

document.addEventListener("DOMContentLoaded", function (event) {
    var _ajaxGetStatesController = new ajaxGetStatesController();
    _ajaxGetStatesController.init();


    var bsn = d.querySelector('#jAjxCS');
    if (bsn) {
        bsn.addEventListener('click', function (e) {
            if (d.querySelector('.shortnewstoast')) {
                d.querySelectorAll('.shortnewstoast').forEach(t => {
                    t.classList.remove('hide');
                    t.classList.add('show');
                });
            }
        }, false);
    }
});

// LIGHTBOX AND File-Modal
document.addEventListener("DOMContentLoaded", function (event) {
    MakeModalsForFiles();
});
function MakeModalsForFiles() {
    if (d.querySelector('.file__modal') || d.querySelector('.image__modal')) {
        var mediaModelContent =
                '<div class="modal-dialog modal-dialog-scrollable">' +
                '<div class="modal-content shadow border-0">' +
                '<div class="modal-header border-0 pb-0"><button type="button" aria-label="schließen" class="close ms-auto btn fs-3 lh-1 p-1 rounded-circle  border-0 bi-x" data-bs-dismiss="modal" aria-label="schließen"/></div>' +
                '<div class="modal-body px-3 px-lg-5"><div class="headline h4 mb-3" id="fileModal_lb"><span class="icon"></span><span class="title"></span></div>' +
                '<div class="gy-3 pt-3 row">' +
                '<div class="col-12 col-lg-auto modal-img"></div>' +
                '<div class="col-12 col-lg description">' +
                '<div class="modal-text small"></div>' +
                '<div class="mt-3 small list-group list-group-flush modal-meta"></div>' +
                '</div>' +
                '</div>' +
                '</div>' +
                '<div class="modal-footer border-0 px-3 px-lg-5 modal-download gap-1">' +
                '</div>' +
                '</div>' +
                '</div>';
        if (!d.getElementById('mediaModal')) {

            var mediaModel = document.createElement('div');
            mediaModel.classList.add('modal', 'fade');
            mediaModel.id = 'mediaModal';
            mediaModel.setAttribute('tabindex', '-1');
            mediaModel.setAttribute('aria-hidden', true);
            mediaModel.setAttribute('aria-labelledby', 'fileModal_lb');
            mediaModel.innerHTML = mediaModelContent;


            d.querySelector("main").appendChild(mediaModel);
        }

        var fel = d.getElementById('mediaModal');
        fel.addEventListener('show.bs.modal', function (event) {
            // Button that triggered the modal
            var link = event.relatedTarget;
            var data_b = [];
            var ext_arr = ['docx', 'doc', 'ppt', 'pptx', 'xlsx', 'mp4', 'mp3'];
            var dataAttribute = ['data-fa', 'data-refUrl', 'data-refTitle', 'data-type', 'data-docstate', 'data-creator', 'data-alt', 'data-duration', 'data-size', 'data-msize', 'data-crop', 'data-theme', 'data-title', 'data-crop', 'data-subtitle', 'data-caption', 'data-cdate', 'data-mdate', 'data-fpub', 'data-fs', 'data-fe', 'data-imgurl', 'data-furl', 'data-descr', 'data-furlname', 'data-bt', 'data-dur', 'data-dur', 'data-fcre', 'data-src', 'data-srclink', 'data-cpy'];
            dataAttribute.forEach(function (data) {
                data_b[data] = link.getAttribute(data);
            });
            var image = '';
            var icon = '';
            switch (data_b['data-imgurl']) {
                case '__SECURE__':
                    icon = '<i class="bi-lock fs-3 lh-1"></i>';
                    break;
                case  '__TYPE3__':
                    icon = '<i class="bi-mic-fill fs-3 lh-1"></i>';
                    break;
                case  '__DOC__':
                    if (!ext_arr.includes(data_b['data-fe']))
                        icon = '<i class="bi-file-earmark fs-3 me-2"></i>';
                    else
                        icon = '<i class="bi-filetype-' + data_b['data-fe'] + ' fs-3 me-2"></i>';
                    break;
                default:
                    var imagesize = (data_b['data-size']) ? 'width="' + data_b['data-size'] + '" ' : '';
                    var imagetitle = (data_b['data-size']) ? 'title="' + data_b['data-alt'] + '" ' : 'title="' + data_b['data-caption'] + '"';

                    var image = '<figure class="text-center">' +
                            '<picture><source srcset="' + data_b['data-imgurl'] + ' 1x">' +
                            '<img ' + imagesize + imagetitle + '  class="img-fluid bg-white d-block mx-auto border" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxIDEnPjwvc3ZnPg=="loading="lazy">' +
                            '</picture>' +
                            '<figcaption class="visually-hidden"><small>' + data_b['data-caption'] + '</small></figcaption></figure>';
                    break;
            }
            switch (data_b['data-docstate']) {
                case '1':
                    data_b['data-docstate'] = 'vorbehaltlich';
                    break;
                default:
                    break
            }


            var dwnload = (data_b['data-furlname'] !== '') ? data_b['data-furlname'] : '';
            var fa = (data_b['data-fa'] == true) ? '<small class="me-1 bi-exclamation-circle-fill text-info"><span class="visually-hidden ">Achtung</span></small>' : '';
            var subtitle = (data_b['data-subtitle'] !== '') ? '<small class="d-block">' + data_b['data-subtitle'] + '</small>' : '';
            var title = fa + data_b['data-title'] + subtitle;
            var download = (data_b['data-furl']) ? '<a href="' + data_b['data-furl'] + '" class="fs-6 btn fw-bolder text-decoration-underline bi-arrow-down border-0" target="" ' + dwnload + '><span class="visually-hidden">' + data_b['data-fe'] + '</span> ' + data_b['data-bt'] + '</a>' : '';
            var src_link = (data_b['data-srclink']) ? '<a href="' + data_b['data-srclink'] + '" class="fs-6 btn fw-bolder text-decoration-underline bi-arrow-right-short border-0"> Link zur Quelle </a>' : '';
            var ref_title = (data_b['data-refTitle'] !== '') ? data_b['data-refTitle'] : '';
            var ref_url = (data_b['data-refUrl']) ? '<a href="' + data_b['data-refUrl'] + '" class=" border-0" target="" > ' + ref_title + '</a>' : '';

//            
//            META
            if (data_b['data-fe'])
                data_b['data-file'] = '<span class="text-uppercase fw-bold me-1">' + data_b['data-fe'] + '</span> ' + data_b['data-fs'];
            if (data_b['data-type'] === 'image__modal') {
                fel.querySelector('.description').classList.remove('col-lg');
                fel.querySelector('.description').parentNode.removeChild(fel.querySelector('.description'));
                fel.querySelector('.modal-img').classList.remove('col-lg-auto');
            }
            if (ref_url)
                data_b['data-refUrl'] = ref_url;

            var pair = {
                'Status': 'data-docstate',
                'Ersteller': 'data-creator',
                'Urheberrecht': 'data-cpy',
                'Quelle': 'data-src',
                'Herausgeber': 'data-fpub',
                'Copyright': 'data-licence',
                'Erstelldatum': 'data-cdate',
                'Änderungsdatum': 'data-mdate',
                'Datei': 'data-file',
                'Spielzeit': 'data-duration',
                'Auf Seite': 'data-refUrl'
            };
            var meta = '';
            for (const [key, data] of Object.entries(pair)) {
                if (data_b[data] && data_b[data] != 0)
                    meta += '<div class="list-group-item d-grid d-md-flex gap-md-1"><span class=" col-5 col-sm-4">' + key + '</span><span class="fw-bold">' + data_b[data] + '</span></span></div>';
            }

            // Update the modal's content. 
            // Update the modal's content. 
            var themes = data_b['data-theme'];
            themes = themes.split(" ").filter(element => {
                return element !== '' && element !== 'text-dark';
            });
            fel.querySelector('.modal-dialog').classList.add(data_b['data-msize']);
            fel.querySelector('.modal-content').classList.add(...themes);
            fel.querySelector('.close').classList.add(...themes);
            fel.querySelector('.modal-body .icon').innerHTML = icon;
            fel.querySelector('.modal-body .title').innerHTML = title;
            if (data_b['data-type'] === 'image__modal') {
                fel.querySelector('.modal-footer').innerHTML = data_b['data-descr'];
                fel.querySelector('.modal-footer').classList.add(...['justify-content-start', 'small']);
            } else {
                fel.querySelector('.modal-text').innerHTML = data_b['data-descr'];
                fel.querySelector('.modal-download').innerHTML = src_link + download;
                if (fel.querySelector('.modal-download .btn-l'))
                    fel.querySelector('.modal-download .btn-l').classList.add(...themes);
                fel.querySelector('.modal-meta').innerHTML = meta;
            }            

            if (data_b['data-imgurl'] !== '')
                fel.querySelector('.modal-img').innerHTML = image;
            else
                fel.querySelector('.modal-img').parentNode.removeChild(fel.querySelector('.modal-img'));
        });
        fel.addEventListener('hidden.bs.modal', function (event) {
            fel.innerHTML = (mediaModelContent);
        });
    }
}


 
/* 
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

"use strict";
const d = document;
const w = window;
var vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0)
//var vh = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0)
let vh = window.innerHeight * 0.01;
var sm = window.matchMedia("screen and (max-width:992px)").matches;

//const observer = lozad('.lozad', {
//    enableAutoReload: true // it will reload the new image when validating attributes changes
//});
//observer.observe();
//lozad('.lozad', {
//    loaded: function(el) {
//        // Custom implementation on a loaded element
//        el.classList.add('loaded');
//    }
//});
// We listen to the resize event  


//d.addEventListener("DOMContentLoaded", function () {
//    yall({observeChanges: true});
//});

window.addEventListener('DOMContentLoaded', () => {

    // We execute the same script as before
    let vh = window.innerHeight * 0.01;
    document.documentElement.style.setProperty('--vh', `${vh}px`);
});


var tooltipSetterList = [].slice.call(d.querySelectorAll('.data-bs-toggle-tooltip'));
var tooltipSetter = tooltipSetterList.map(function (tooltipSetterEl) {
    tooltipSetterEl.setAttribute('data-bs-toggle', 'tooltip');
});
var tooltipTriggerList = [].slice.call(d.querySelectorAll('[data-bs-toggle="tooltip"]'));
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
    return new bootstrap.Tooltip(tooltipTriggerEl)
});


d.querySelectorAll('div[data-theme-iframe="no-scroll"] iframe').forEach(iframe => {
    iframe.setAttribute('scrolling', 'no');
    iframe.setAttribute('loading', 'lazy');
});

d.querySelector('body').classList.remove('fade-out');

d.addEventListener('click', function (e) {

    // Hamburger menu
//    if (e.target.classList.contains('hamburger-toggle')) {
//        e.target.children[0].classList.toggle('active');
//    }
//    if (e.target.id === 'neverShowAgain') {
//        name = d.getElementById("infoOverlay").dataset.modaluid;
//        hspvCookieUtility.setCookie('hspvInfoOv_' + name, 'closed', 1);
//    }
    if (e.target.classList.contains('rtype__sub')) {
        d.getElementById('tx_contacts_filter').submit();
    }
    if (e.target.classList.contains('back-to-top')) {
        //e.preventDefault();
        d.body.scrollTop = 0;
        d.documentElement.scrollTop = 0;
    }
});



stickybottom("sticky-bottom", "visible", false, true, 'top');

w.addEventListener("resize", function (event) {
    vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);
//    vh = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);
    let vh = window.innerHeight * 0.01;
    sm = window.matchMedia("screen and (max-width:992px)").matches;
    stickybottom("sticky-bottom", "fixed-bottom", false, true, 'top');
});

//TOTOP-Link
w.addEventListener("scroll", function (event) {
    stickybottom("back-to-top", "visible", true, false);
    stickybottom("sticky-bottom", "visible", false, true, 'top');
});

    
        d.querySelectorAll('.offcanvas-ce-start.main').forEach(mainmenu => {
            var stb = d.getElementById('sticky-bottom');
            mainmenu.addEventListener('hide.bs.offcanvas', function () {                
              stb.style.zIndex = ''; 
           });
            mainmenu.addEventListener('show.bs.offcanvas', function () {
              stb.style.zIndex = '-1'; 
            });         
    });





function stickybottom(element, cssClass, fade, force, position) {
    // set everything outside the onscroll event (less work per scroll)
    var sb = d.getElementById(element);
    if (typeof (sb) != 'undefined' && sb != null) {
        sb.classList.add(cssClass);
        // -60 so it won't be jumpy
        if (position == 'top')
            var stop = d.getElementById('cSec').offsetTop + 600;
        else
            var stop = d.getElementById('cSec').offsetTop + 750
        var docBody = d.documentElement || d.body.parentNode || d.body,
                hasOffset = w.pageYOffset !== undefined,
                scrollTop;

        // cross-browser compatible scrollTop.
        scrollTop = hasOffset ? w.pageYOffset : docBody.scrollTop;

        // if user scrolls to 60px from the top of the left div
        if (scrollTop >= stop) {
            // stick the div
            if (fade) {
                sb.classList.add(cssClass);
            } else
                sb.classList.remove(cssClass);
        } else {
            // release the div
            if (fade)
                sb.classList.remove(cssClass);
            else
                sb.classList.add(cssClass);
        }
//        if (vw < 992 && force == false) {
//            sb.classList.remove(cssClass);
//        }
    }
}




d.addEventListener("DOMContentLoaded", function (event) {

    d.querySelectorAll('.toastflashmessage').forEach(tfm => {
        var toast = new bootstrap.Toast(tfm);
        toast.show();
    });



// Overlay für Seite
//    if (d.getElementById("infoOverlay")) {
//        name = d.getElementById("infoOverlay").dataset.modaluid;
//        var overlayData = hspvCookieUtility.getCookie('hspvInfoOv_' + name);
//        if (overlayData === null || overlayData.length === 0) {
//            var myModal = new bootstrap.Modal(d.getElementById("infoOverlay"), {});
//            myModal.show();
//        }
//    }

// INDEX Menu für Seite
    var ioffb = d.querySelectorAll('.indexOffBtn');
    // Loop over them and prevent submission
    Array.prototype.slice.call(ioffb)
            .forEach(function (ioff) {
                ioff.addEventListener('click', function (e) {
                    console.log('sdsd');
                    var targetId = ioff.getAttribute('data-target');
                    if (targetId) {
                        var bsOffcanvas = new bootstrap.Offcanvas(targetId);
                        bsOffcanvas.toggle();
                    }
                });
            });




//    PLAY PAUSE
    var vcbs = d.querySelectorAll('.video-control-bar');
    // Loop over them and prevent submission
    Array.prototype.slice.call(vcbs)
            .forEach(function (vcb) {
                var vcEl = vcb.querySelector('.video-control');
                var vEl = d.getElementById(vcb.id + '_video');
                vcEl.addEventListener('click', function (e) {
                    if (e.target.classList.contains('v_play')) {
                        vEl.pause();
                        e.target.classList.remove('v_play', 'bi-pause-circle');
                        e.target.classList.add('v_pause', 'bi-play-circle');
                    } else {
                        vEl.play();
                        e.target.classList.add('v_play', 'bi-pause-circle');
                        e.target.classList.remove('v_pause', 'bi-play-circle');
                    }
                });
                vEl.addEventListener('ended',  function (e) {
                        vcEl.classList.remove('v_play', 'bi-pause-circle');
                        vcEl.classList.add('v_pause', 'bi-play-circle');                 
                });
            });
});





var hspvCookieUtility = {
    getCookie: function (name) {
        var v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
        return v ? v[2] : null;
    },
    setCookie: function (name, value, days) {
        var d = new Date;
        d.setTime(d.getTime() + 24 * 60 * 60 * 1000 * days);
        document.cookie = name + "=" + value + ";path=/;expires=" + d.toGMTString() + ";SameSite=Lax";
    },
    deleteCookie: function (name) {
        setCookie(name, '', -1);
    }
};


//PWDCHANGE
d.addEventListener('change', function (e) {
    if (e.target.classList.contains('__togglepwd')) {
        togglePassworddVisibility(e, 'toggle');
    }
});
d.addEventListener('mousedown', function (e) {
    if (e.target.classList.contains('__showpwd')) {
        togglePassworddVisibility(e, 'show');
    }
});
d.addEventListener('mouseup', function (e) {
    if (e.target.classList.contains('__showpwd')) {
        togglePassworddVisibility(e, 'hide');
    }
});
d.addEventListener('touchstart', function (e) {
    if (e.target.classList.contains('__showpwd')) {
        togglePassworddVisibility(e, 'show');
    }
});
d.addEventListener('touchend', function (e) {
    if (e.target.classList.contains('__showpwd')) {
        togglePassworddVisibility(e, 'hide');
    }
});
d.addEventListener("keyup", function (e) {
    if (e.target.id === 'npw') {
        let p = document.getElementById("process");
        p.removeAttribute("hidden");
        checkpassword(e.target.value);
    }
});


function togglePassworddVisibility(e, action) {
    var element = d.getElementById(e.target.getAttribute('data-target'));
    switch (action) {
        case  'show':
            e.target.classList.add("bi-eye-slash");
            element.type = "text";
            break;
        case  'toggle':
            if (element.type === "text")
                element.type = "password";
            else
                element.type = "text";
            break;
        case  'hide':
            e.target.classList.remove("bi-eye-slash");
            element.type = "password";
            break;
        default:

            break;
    }
}

function checkpassword(password) {
    var strength = 0;
    let ab = document.getElementById("meter");

    if (password.match(/[a-z]+/)) {
        strength += 1;
    }
    if (password.match(/[A-Z]+/)) {
        strength += 1;
    }
    if (password.match(/[0-9]+/)) {
        strength += 1;
    }
    if (password.match(/[$@#&!]+/)) {
        strength += 1;
    }
    if (password.length < 8) {
        strength = 0;
    }
    switch (strength) {
        case 0:
            ab.innerText = "0%";
            ab.style.width = "10%";
            ab.setAttribute("aria-valuenow", "10");
            ab.className = "progress-bar progress-bar-striped bg-red";
            break;

        case 1:
            ab.innerText = "25%";
            ab.style.width = "25%";
            ab.setAttribute("aria-valuenow", "25");
            ab.className = "progress-bar progress-bar-striped";
            break;

        case 2:
            ab.innerText = "50%";
            ab.style.width = "50%";
            ab.setAttribute("aria-valuenow", "50");
            ab.className = "progress-bar progress-bar-striped bg-warning";
            break;

        case 3:
            ab.innerText = "75%";
            ab.style.width = "75%";
            ab.setAttribute("aria-valuenow", "75");
            ab.className = "progress-bar progress-bar-striped bg-info";
            break;

        case 4:
            ab.innerText = "100%";
            ab.style.width = "100%";
            ab.setAttribute("aria-valuenow", "100");
            ab.className = "progress-bar progress-bar-striped bg-success";
            break;
    }

}


d.addEventListener("DOMContentLoaded", function (event) {

    d.querySelectorAll('.alert.alert-dismissible').forEach(e => {
        e.classList.add('show');
    });

});








function changeLogin() {
    var session = sessionStorage.getItem('username')
}
function processLoginData() {
    var current = sessionStorage.getItem('username')
    if (this.responseText.length > 0) {
        sessionStorage.setItem('username', this.responseText)
    } else {
        sessionStorage.removeItem('username')
    }
    if (this.responseText != current) {
        changeLogin()
    }
}





"use strict";
//         *  xs: 0,
//         *  sm: 576px,
//         *  md: 768px,
//         *  lg: 992px,
//         *  xl: 1200px,
//         *  xxl: 1400px


d.addEventListener("DOMContentLoaded", function () {

    function SliderBar(sliderclass, splideOptions, goto = false, hideCounter = false, hideBar = false) {
        var slider = [];
        var splides = d.querySelectorAll(sliderclass);
        for (let i = 0; i < splides.length; i++) {
            slider[i] = function () {
                let splideElement = splides[i];
                var splideClassname = splideElement.classList[0];

                var datahidecounter = (hideCounter) ? hideCounter : splideElement.getAttribute('data-hidecounter');
                var datahidebar = (hideBar) ? hideBar : splideElement.getAttribute('data-hidebar');

                var splide = new Splide(splideElement, splideOptions);
                splide.on('mounted move', function (e) {
                    if (splide.options.drag == 'free') {
                        datahidecounter = true
                    }
                    var end = splide.Components.Controller.getEnd() + 1;
                    var rate = Math.min((splide.index + 1) / end, 1);
                    var barval = Math.floor(String(100 * rate));
                    if (!datahidecounter) {
                        var counter = splide.root.querySelector('.' + splideClassname + ' .splide-counter');
                        counter.innerHTML = (splide.index + 1) + ' von ' + end;
                    }
                    if (!datahidebar) {
                        var bar = splide.root.querySelector('.' + splideClassname + ' .splide-slider-bar');
                        bar.style.width = barval + '%';
                        bar.setAttribute('aria-valuenow', barval);
                        bar.innerHTML = '<span class="visually-hidden">' + barval + '%</span>';

                    }
                });
                splide.mount();
//                var slides = d.querySelectorAll('.splide__slide');
//                if (!(splide.state.is(Splide.STATES.DESTROYED)) && row === true) {
//                    console.log('active');
//                    splide.root.querySelector('.' + splideClassname + ' .splide__track').classList.remove('row');
//                    splide.root.querySelector('.' + splideClassname + ' .splide__list').classList.remove('row');
//                    slides.forEach(slide => {
//                        slide.classList.remove('col');
//                    });
//                }
//                if (splide.state.is(Splide.STATES.DESTROYED) && row === true) {
//                    console.log('destroyed');
//                    splide.root.querySelector('.' + splideClassname + ' .splide__track').classList.add('row');
//                    splide.root.querySelector('.' + splideClassname + ' .splide__list').classList.add('row');
//                    
//                    slides.forEach(slide => {
//                        slide.classList.add('col');
//                    });
//                }
                if (goto)
                    splide.go(parseInt(goto));
            };
        }
        for (var j = 0; j < splides.length; j++) {
            slider[j]();
        }
    }

// TEXT IMAGE!
    var singleTextmediaOptions = {
        lazyLoad: 'nearby',
        perPage: 1,
        perMove: 1,
        preloadPages: 1,
        gap: '1rem',
        pagination: false,
        arrows: true,
        destroy: true,
        slideFocus: false,
        keyboard: true,
        breakpoints: {
            768: {perPage: 1},
            991: {perPage: 1, perMove: 1, destroy: false}
        }
    };
    SliderBar('.splide-singletextmedia', singleTextmediaOptions);

// TEXT IMAGE!
    var multiTextmediaOptions = {
        lazyLoad: 'nearby',
        perPage: 1,
        perMove: 1,
        preloadPages: 1,
        gap: '1rem',
        pagination: false,
        arrows: true,
        destroy: true,
        slideFocus: false,
        keyboard: true,
        breakpoints: {
            768: {perPage: 1},
            991: {perPage: 2, perMove: 1, destroy: false}
        }
    };
    SliderBar('.splide-multitextmedia', multiTextmediaOptions);


// MENU  SLIDER 
    var menuSlider = {
        lazyLoad: 'nearby',
        preloadPages: 1,
        drag: 'free',
        snap: false,
        gap: '.5rem',
        //perPage: 3,  
        perMove: 1,
        padding: {right: '20px'},
        autoWidth: true,
        pagination: false,
        slideFocus: false,
        omitEnd: true,
        keyboard: true,
        breakpoints: {
            991: {
                destroy: false
            }
        }
    };

    SliderBar('.splide-menu', menuSlider);

// Destroyer SLIDER 
    var i4Options = {
        lazyLoad: 'nearby',
        preloadPages: 1,
        perMove: 1,
        perPage: 4,
        gap: '1rem',
        pagination: false,
        slideFocus: false,
        keyboard: true,
        omitEnd: true,
        breakpoints: {
            575: {perPage: 1, destroy: true},
            767: {perPage: 1},
            991: {perPage: 2},
            1199: {perPage: 2},
            1399: {perPage: 3}
        }
    };

    SliderBar('.splide-i-4', i4Options);
// Destroyer SLIDER 
    var i4Options = {
        lazyLoad: 'nearby',
        preloadPages: 1,
        perMove: 1,
        perPage: 3,
        gap: '1rem',
        pagination: false,
        slideFocus: false,
        keyboard: true,
        omitEnd: true,
        breakpoints: {
            575: {perPage: 1, destroy: true},
            767: {perPage: 1},
            991: {perPage: 2},
            1199: {perPage: 2},
            1399: {perPage: 3}
        }
    };

    SliderBar('.splide-i-3', i4Options);

//Hero SLIDER 
    var heroOptions = {
        lazyLoad: 'nearby',
        preloadPages: 1,
        perPage: 1,
        perMove: 1,
        //drag: 'free',
        //snap   : true,
        gap: '',
        pagination: false,
        slideFocus: false,
        type: 'loop',
        keyboard: true,
        omitEnd: true
    };

    SliderBar('.splide-hero', heroOptions);

//2er SLIDER
    var s2Options = {
        lazyLoad: 'nearby',
        preloadPages: 1,
        perPage: 2,
        perMove: 1,
        gap: '1rem',
        pagination: false,
        slideFocus: false,
        keyboard: true,
        omitEnd: true,
        breakpoints: {
            767: {perPage: 1}
        }
    };

    SliderBar('.splide-2', s2Options);

//2er SLIDER
    var s2OptionsSM = {
        lazyLoad: 'nearby',
        preloadPages: 1,
        perPage: 2,
        perMove: 1,
        gap: '1rem',
        pagination: false,
        slideFocus: false,
        keyboard: true,
        omitEnd: true,
        breakpoints: {
            500: {perPage: 1}
        }
    };

    SliderBar('.splide-2-sm', s2OptionsSM);

//3er SLIDER
    var s3Options = {
        lazyLoad: 'nearby',
        preloadPages: 1,
        perPage: 3,
        perMove: 1,
        gap: '1rem',
        pagination: false,
        slideFocus: false,
        keyboard: true,
        omitEnd: true,
        breakpoints: {
            767: {perPage: 1},
            1199: {perPage: 2}
        }
    };

    SliderBar('.splide-3', s3Options);

//3er SLIDER
    var s3OptionsSM = {
        lazyLoad: 'nearby',
        preloadPages: 1,
        perPage: 3,
        perMove: 1,
        gap: '1rem',
        pagination: false,
        slideFocus: false,
        keyboard: true,
        omitEnd: true,
        breakpoints: {
            500: {perPage: 1},
            767: {perPage: 2},
            1199: {perPage: 3}
        }
    };

    SliderBar('.splide-3-sm', s3OptionsSM);

//4er SLIDER
    var s4Options = {
        lazyLoad: 'nearby',
        preloadPages: 1,
        perPage: 4,
        perMove: 1,
        gap: '1rem',
        pagination: false,
        slideFocus: false,
        keyboard: true,
        omitEnd: true,
        breakpoints: {
            767: {perPage: 1},
            1199: {perPage: 2}
        }
    };

    SliderBar('.splide-4', s4Options);

//4er SLIDER SMALL
    var s4OptionsSm = {
        lazyLoad: 'nearby',
        preloadPages: 1,
        perPage: 4,
        perMove: 1,
        gap: '1rem',
        pagination: false,
        slideFocus: false,
        keyboard: true,
        omitEnd: true,
        breakpoints: {
            500: {perPage: 1},
            767: {perPage: 2},
            1199: {perPage: 3}
        }
    };

    SliderBar('.splide-4-sm', s4OptionsSm);

//Dragfree SLIDER
    var dragfreeOptions = {
        lazyLoad: 'nearby',
        preloadPages: 1,
        perPage: 4,
        gap: '1rem',
        autoWidth: true,
        pagination: false,
        slideFocus: false,
        keyboard: true,
        omitEnd: true,
        breakpoints: {
            767: {perPage: 2},
            1199: {perPage: 4}
        }
    };

    SliderBar('.splide-dragfree', dragfreeOptions);

    function thumbnailCaouselBar(sliderclass, thumbnailOptions, mainOptions) {
        var slider = [];
        var splides = d.querySelectorAll(sliderclass);
        for (let i = 0; i < splides.length; i++) {
            slider[i] = function () {
                let splideElement = splides[i];
                var splideClassname = splideElement.classList[0];
                var cols = splideElement.getAttribute('data-cols');
                thumbnailOptions.perPage = cols;
                var thumbnails = new Splide(splideElement, thumbnailOptions);
                thumbnails.on('mounted move', function (e) {
                    var bar = thumbnails.root.querySelector('.' + splideClassname + ' .splide-slider-bar');
                    var counter = thumbnails.root.querySelector('.' + splideClassname + ' .splide-counter');
                    var end = thumbnails.Components.Controller.getEnd() + 1;
                    var rate = Math.min((thumbnails.index + 1) / end, 1);
                    var barval = Math.floor(String(100 * rate));
                    bar.style.width = barval + '%';
                    bar.setAttribute('aria-valuenow', barval);
                    counter.innerHTML = (thumbnails.index + 1) + ' von ' + end;
                    bar.innerHTML = '<span class="visually-hidden">' + barval + '%</span>';
                });


                var main = new Splide(splideElement.nextSibling, mainOptions);

                main.sync(thumbnails);
                main.mount();
                thumbnails.mount();

            };
        }
        for (var j = 0; j < splides.length; j++) {
            slider[j]();
        }
    }

    var thumbnailOptions = {
        gap: 10,
        rewind: true,
        pagination: false,
        isNavigation: true,
        perPage: 4,
        arrows: true
    };
    var mainOptions = {
        gap: 10,
        rewind: true,
        pagination: false,
        arrows: false
    };
    thumbnailCaouselBar('.splide-thumbnail-carousel', thumbnailOptions, mainOptions);


});