1(globalThis.webpackChunkloop_web=globalThis.webpackChunkloop_web||[]).push([[4576],{4105(t,e,s){"use strict";s.d(e,{Mc:()=>c,R9:()=>h,YB:()=>u,fs:()=>a,ss:()=>d});const i=window.matchMedia("(prefers-reduced-motion: reduce)");let n=!1,l=null,r=!1;try{var o=Object.defineProperty({},"passive",{get:function(){r=!0}});window.addEventListener("testPassive",null,o),window.removeEventListener("testPassive",null,o)}catch(t){}const a={supportsPassive:r,reducedMotionPref:i.matches,desktopSideHeaderLayout:null!=document.querySelector("body.site-layout.side-header-layout"),fx:[],fxAdd:(t,e,s=null)=>{let i=!1;if(a.fx.forEach(e=>{e.type==t&&(i=!0)}),!i){a.fx.push({type:t,enabled:e,callback:s,controller:document.createElement("div")});let i=a.fx.length-1,n=a.fx[i];n.controller.setAttribute("class","form-check form-switch");let l=document.createElement("input");l.setAttribute("id",`site-settings--fx--${i}`),l.setAttribute("class","form-check-input"),l.setAttribute("type","checkbox"),l.setAttribute("role","switch"),e&&l.setAttribute("checked",!0),l.addEventListener("click",()=>{a.fxToggle(n.type,l.checked)}),n.controller.appendChild(l);let r=document.createElement("label");r.setAttribute("for",`site-settings--fx--${i}`),r.setAttribute("class","form-check-label"),r.innerHTML=n.type,n.controller.appendChild(r)}s&&s(e),n||(()=>{if(null!=document.body.querySelector("#top-utility-bar")){let t=document.body.querySelector("#top-utility-bar--icon-links ul");if(null!=t){let e=document.createElement("li");e.classList.add("list-inline-item"),e.innerHTML='<button class="btn btn-link p-0" data-bs-toggle="modal" data-bs-target="#site-settings"><i class="fa-solid fa-cog" aria-hidden="true" title="Site settings"></i><span class="sr-only">Site settings</span></button>',t.appendChild(e)}else{let t=document.body.querySelector("#top-utility-bar--content"),e=document.createElement("div");e.setAttribute("id","top-utility-bar--icon-links"),e.innerHTML='<ul class="list-inline m-0"><li class="list-inline-item"><button class="btn btn-link p-0" data-bs-toggle="modal" data-bs-target="#site-settings"><i class="fa-solid fa-cog" aria-hidden="true" title="Site settings"></i><span class="sr-only">Site settings</span></button></li></ul>',t.appendChild(e)}}else{let t=document.body.querySelector("#main-header--content");if(null!=t){let e=document.createElement("button");e.setAttribute("id","main-header--content--site-settings-btn"),e.setAttribute("class","btn btn-link"),e.setAttribute("data-bs-toggle","modal"),e.setAttribute("data-bs-target","#site-settings"),e.innerHTML='<i class="fa-solid fa-cog" aria-hidden="true" title="Site settings"></i><span class="side-menu-layout--label">Site settings</span>',t.appendChild(e)}}let t=document.body.querySelector("#main-footer--mid-section--links ul");if(null!=t){let e=document.createElement("li");e.innerHTML='<a href="#site-settings" data-bs-toggle="modal" data-bs-target="#site-settings">Site settings</a>',t.appendChild(e)}n=!0})(),(()=>{if(!l){let t=document.createElement("div");t.setAttribute("id","site-settings"),t.setAttribute("class","modal fade"),t.setAttribute("data-bs-backdrop","static"),t.setAttribute("data-bs-keyboard","false"),t.setAttribute("tabindex","-1"),t.setAttribute("aria-hidden","true"),t.innerHTML='<div class="modal-dialog"><div class="modal-content theme--default"><div class="modal-header"><h1 class="modal-title h5 m-0">Site Settings</h1><button type="button" class="btn btn-link p-0" data-bs-dismiss="modal" aria-label="Close"><i class="fa-regular fa-times" aria-hidden="true" title="Close"></i></button></div><div class="modal-body"></div></div>',document.body.appendChild(t),l=document.body.querySelector("#site-settings .modal-body")}a.fx.length>0&&(l.innerHTML="<p>Manage the visual effects on this site:</p>",a.fx.forEach(t=>{l.appendChild(t.controller)}))})()},fxToggle:(t,e)=>{a.fx.forEach(s=>{s.type==t&&(s.enabled=e,s.callback&&s.callback(e))})}},h={vw:0,vh:0,setVw:t=>{h.vw=t},setVh:t=>{h.vh=t}},d={active:!1,setActive:t=>{d.active=t}},c={mobileActive:!1,setMobileActive:t=>{c.mobileActive=t},desktopActive:!1,setDesktopActive:t=>{c.desktopActive=t}},u={active:!1,setActive:t=>{u.active=t}}},4576(t,e,s){"use strict";
1s.r(e),s.d(e,{createFrom:()=>a});var i=s(7819),n=s.n(i),l=s(4105);const r=new RegExp("data-","g");class o{constructor(t){if(this.el=t,this.logosCount=0,this.logosLoaded=0,this.logosScroller=this.el.classList.contains("marquee-scroller--logos"),this.allowMotion=!l.fs.reducedMotionPref,this.stage=t.querySelector(".marquee-scroller--stage"),this.width=t.offsetWidth,this.items=[],this.lastItemIndex=-1,this.sprites=[],this.lastSpriteIndex=-1,this.timeout=null,this.paused=!0,this.resizeRequested=!1,this.updateRequest=null,this.moveIncrement=.5,this.tempMoveIncrement=this.moveIncrement,this.prevTime=Date.now(),this.initComplete=!1,window.addEventListener("focus",()=>{this.prevTime=Date.now()}),t.querySelectorAll(".marquee-scroller--item").forEach(t=>{this.items.push(t.innerHTML.replace(r,""))}),this.allowMotion){this.el.classList.contains("marquee-scroller--pause-on-hover")&&(this.el.onmouseover=()=>{this.tempMoveIncrement=0},this.el.onmouseout=()=>{this.tempMoveIncrement=this.moveIncrement});let t=this;this.hunt=new(n())(this.el,{leave:function(){t.paused||t.pause()},enter:function(){t.initComplete||t.init(),t.paused&&t.start()},persist:!0}),window.dispatchEvent(new Event("scroll"))}}init(){this.checkSprites(),this.tick(),this.ro=new ResizeObserver(t=>{for(let e of t){const t=e.contentRect;t.width!=this.width&&(this.width=t.width,this.resizeRequested||(this.resizeRequested=!0,this.resize()))}}),this.ro.observe(this.el),this.paused||this.start(),this.initComplete=!0}start(){this.paused=!1,this.prevTime=Date.now(),this.updateRequest=window.requestAnimationFrame(()=>{this.tick()})}pause(){this.paused=!0,this.updateRequest=null}addSprite(t){let e=this.lastSpriteIndex+1;if(e>50&&(e=0),this.lastItemIndex+=1,this.lastItemIndex>=this.items.length&&(this.lastItemIndex=0),this.sprites[e]={el:document.createElement("div"),active:!0,x:t},this.sprites[e].el.classList.add("sprite"),this.sprites[e].el.innerHTML=this.items[this.lastItemIndex],this.stage.appendChild(this.sprites[e].el),this.lastSpriteIndex=e,this.sprites[e].w=this.sprites[e].el.offsetWidth,this.logosScroller){let t=this.sprites[e].el.querySelector("img");null!=t&&(t.complete?this.updateWidths():t.addEventListener("load",()=>{this.updateWidths()},{once:!0}))}}checkSprites(){let t=-1==this.lastSpriteIndex?0:this.sprites[this.lastSpriteIndex].x+this.sprites[this.lastSpriteIndex].w;for(;t<this.width;)this.addSprite(t),t=this.sprites[this.lastSpriteIndex].x+this.sprites[this.lastSpriteIndex].w}updateWidths(){window.requestAnimationFrame(()=>{for(let t=0,e=this.sprites.length;t<e;t++)if(this.sprites[t].active){let e=this.sprites[t].el.offsetWidth,s=e/this.sprites[t].w;1!=s&&(this.sprites[t].x=this.sprites[t].x*s),this.sprites[t].w=e}})}resize(){this.updateWidths(),this.resizeRequested=!1}tick(){let t=Date.now(),e=t-this.prevTime;this.prevTime=t;let s=.15*e*this.tempMoveIncrement;for(let t=0,e=this.sprites.length;t<e;t++)this.sprites[t].active&&(this.sprites[t].x-=s,this.sprites[t].x+this.sprites[t].w<0?(this.stage.removeChild(this.sprites[t].el),this.sprites[t].active=!1):(this.sprites[t].el.style.transform=`translateX(${this.sprites[t].x}px)`,this.sprites[t].el.classList.add("active")));this.sprites[this.lastSpriteIndex].x+this.sprites[this.lastSpriteIndex].w<this.width&&this.checkSprites(),!this.paused&&this.allowMotion&&(this.updateRequest=requestAnimationFrame(()=>{this.tick()}))}}function a(t){t.forEach(t=>{1===t.nodeType&&new o(t)})}},7819(t){t.exports=function(){var t=function(){},e=100;function s(t,s){var i,n,l;return void 0===s&&(s=e),function(){!0===i?(clearTimeout(n),n=setTimeout(function(){Date.now()-l>=s&&(t.apply(this,arguments),l=Date.now())},s-(Date.now()-l))):(t.apply(this,arguments),l=Date.now(),i=!0)}}var i=function(t,e){for(var s in this.element=t,this.visible=!1,e)Object.hasOwnProperty.call(e,s)&&(this[s]=e[s]);if(void 0!==t.dataset){if(void 0!==t.dataset.huntPersist)try{this.persist=JSON.parse(t.dataset.huntPersist)}catch(t){}if(void 0!==t.dataset.huntOffset)try{this.offset=JSON.parse(t.dataset.huntOffset)}catch(t){}}};i.prototype.offset=0,i.prototype.persist=!1,i.prototype.enter=t,i.prototype.leave=t;var n=function(t,e){if(!(t&&1===t.nodeType||"number"==typeof t.length))throw new TypeError("hunt: observer first argument should be a node or a list of nodes");if("object"!=typeof e)throw new TypeError("hunt: observer second argument should be an object");
1if(1===t.nodeType)this.__huntedElements__=[new i(t,e)];else{var s=[].slice.call(t);this.__huntedElements__=s.map(function(t){return new i(t,e)})}this.__viewportHeight__=window.innerHeight,this.__connect__(e.throttleInterval)};return n.prototype.__connect__=function(t){this.__throttledHuntElements__=s(this.__huntElements__.bind(this),t),this.__throttledUpdateMetrics__=s(this.__updateMetrics__.bind(this),t),window.addEventListener("scroll",this.__throttledHuntElements__),window.addEventListener("resize",this.__throttledUpdateMetrics__),this.__huntElements__()},n.prototype.__huntElements__=function(){for(var e=this.__huntedElements__.length;e;){var s=this.__huntedElements__[--e],i=s.element.getBoundingClientRect(),n=i.top-s.offset<this.__viewportHeight__&&i.top>=-(i.height+s.offset);!1===s.visible&&!0===n&&(s.enter.call(null,s.element),s.visible=!0,s.leave===t&&!0!==s.persist&&(this.__huntedElements__.splice(e,1),0===this.__huntedElements__.length&&this.disconnect())),!0===s.visible&&!1===n&&(s.leave.call(null,s.element),s.visible=!1,!0!==s.persist&&(this.__huntedElements__.splice(e,1),0===this.__huntedElements__.length&&this.disconnect()))}},n.prototype.__updateMetrics__=function(){this.__viewportHeight__=window.innerHeight,this.__huntElements__()},n.prototype.disconnect=function(){window.removeEventListener("scroll",this.__throttledHuntElements__),window.removeEventListener("resize",this.__throttledUpdateMetrics__)},n.prototype.trigger=function(){this.__huntElements__()},n}()}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.