1!function(){"use strict";var wrap=document.querySelector("[data-blog-search]"),input=document.querySelector("[data-blog-search-input]"),results=document.querySelector("[data-blog-results]"),grid=document.querySelector("[data-blog-results-grid]"),meta=document.querySelector("[data-blog-results-meta]"),clearBtn=document.querySelector("[data-blog-search-clear]");if(wrap&&input&&results&&grid&&meta){var map,chips=document.querySelector("[data-blog-filter]"),hero=document.querySelector("[data-featured-hero]"),postGrid=document.querySelector(".blog-grid:not([data-blog-results-grid])"),pager=document.querySelector("[data-blog-pager]"),resultsPager=document.querySelector("[data-blog-results-pager]"),empty=document.querySelector("[data-blog-empty]"),imgByPath=(map={},Array.prototype.slice.call(document.querySelectorAll("[data-post] a[href]")).forEach(function(a){var img=a.querySelector("img");if(img){var path=pathOf(a.getAttribute("href"));path&&(map[path]=img.getAttribute("src"))}}),map),managed=[chips,hero,postGrid,pager,empty].filter(Boolean),saved=null,searching=!1,timer=null,controller=null,lastQuery="",hits=[],hitPage=1;input.addEventListener("input",onInput),input.addEventListener("search",onInput),input.addEventListener("keydown",function(e){if("Escape"===e.key&&(input.value="",reset(),writeUrl("",!1)),"Enter"===e.key){e.preventDefault(),window.clearTimeout(timer);var q=input.value.trim();q.length>=2&&(writeUrl(q,!searching),runQuery(q))}}),clearBtn&&clearBtn.addEventListener("click",function(){input.value="",reset(),writeUrl("",!1),input.focus()}),window.addEventListener("popstate",function(){var q=queryFromUrl();q?runQuery(q):(input.value="",reset())});var initial=queryFromUrl();initial.length>=2&&runQuery(initial)}function pathOf(href){return String(href||"").replace(/^https?:\/\/[^/]+/,"").replace(/[?#].*$/,"").replace(/\/+$/,"")}function hideListing(){saved||(saved=managed.map(function(el){return{el:el,display:el.style.display}}),managed.forEach(function(el){el.style.display="none"}))}function safeHighlight(str){return String(null==str?"":str).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/<span class="hs-search-highlight[^&]*?">/g,'<mark class="blog-hit">').replace(/<\/span>/g,"</mark>")}function card(item){var a=document.createElement("a");a.className="post-card",a.href=item.url;var thumb=document.createElement("div");thumb.className="post-thumb";var str,heroSrc=function(item){return imgByPath[pathOf(item.url)]||item.featuredImageUrl||""}(item);if(heroSrc){var img=document.createElement("img");img.src=heroSrc,img.alt=(str=item.title,String(null==str?"":str).replace(/<[^>]*>/g,"")),img.loading="lazy",img.style.cssText="position:absolute;inset:0;width:100%;height:100%;object-fit:cover",thumb.appendChild(img)}a.appendChild(thumb);var body=document.createElement("div");body.className="post-body";var h=document.createElement("div");if(h.className="post-title text-balance",h.innerHTML=safeHighlight(item.title),body.appendChild(h),item.description){var p=document.createElement("p");p.className="blog-excerpt text-pretty",p.innerHTML=safeHighlight(item.description),body.appendChild(p)}var foot=document.createElement("span");return foot.className="post-foot",foot.textContent="Read article",body.appendChild(foot),a.appendChild(body),a}function paint(scroll){var totalPages=Math.max(1,Math.ceil(hits.length/9));hitPage>totalPages&&(hitPage=totalPages);var start=9*(hitPage-1),slice=hits.slice(start,start+9);grid.innerHTML="",slice.forEach(function(it){grid.appendChild(card(it))}),hits.length?meta.textContent=totalPages>1?hits.length+' articles matching "'+lastQuery+'" · page '+hitPage+" of "+totalPages:hits.length+(1===hits.length?" article":" articles")+' matching "'+lastQuery+'"':meta.textContent='No articles found for "'+lastQuery+'".',function(totalPages){if(resultsPager)if(resultsPager.innerHTML="",totalPages<=1)resultsPager.style.display="none";else{resultsPager.style.display="",btn("Prev",hitPage-1,{disabled:1===hitPage});for(var i=1;i<=totalPages;i++)if(totalPages>7&&i>2&&i<totalPages-1&&Math.abs(i-hitPage)>
11){if(resultsPager.lastChild&&"blog-pager-gap"!==resultsPager.lastChild.className){var gap=document.createElement("span");gap.className="blog-pager-gap",gap.textContent="...",resultsPager.appendChild(gap)}}else btn(String(i),i,{active:i===hitPage});btn("Next",hitPage+1,{disabled:hitPage===totalPages})}function btn(label,target,opts){opts=opts||{};var b=document.createElement("button");b.type="button",b.className="blog-pager-btn"+(opts.active?" active":""),b.textContent=label,opts.disabled&&(b.disabled=!0),opts.active&&b.setAttribute("aria-current","page"),opts.disabled||opts.active||b.addEventListener("click",function(){hitPage=target,paint(!0)}),resultsPager.appendChild(b)}}(totalPages),scroll&&wrap.scrollIntoView&&wrap.scrollIntoView({behavior:"smooth",block:"start"})}function search(query){controller&&controller.abort&&controller.abort(),controller="undefined"!=typeof AbortController?new AbortController:null;var url="/_hcms/search?term="+encodeURIComponent(query)+"&pathPrefix="+encodeURIComponent("/blogs")+"&limit=100";meta.textContent="Searching...",grid.innerHTML="",resultsPager&&(resultsPager.innerHTML="",resultsPager.style.display="none"),fetch(url,controller?{signal:controller.signal}:void 0).then(function(r){return r.ok?r.json():Promise.reject(new Error("HTTP "+r.status))}).then(function(data){query===lastQuery&&(hits=(data.results||[]).filter(function(r){return/\/blogs\/.+/.test(r.url||"")}),hitPage=1,paint(!1))}).catch(function(err){err&&"AbortError"===err.name||query===lastQuery&&(meta.textContent="Search is unavailable right now. Showing all articles instead.",grid.innerHTML="",resultsPager&&(resultsPager.style.display="none"),window.setTimeout(function(){reset()},1600))})}function reset(){searching=!1,lastQuery="",hits=[],hitPage=1,results.hidden=!0,grid.innerHTML="",meta.textContent="",resultsPager&&(resultsPager.innerHTML="",resultsPager.style.display="none"),saved&&(saved.forEach(function(s){s.el.style.display=s.display}),saved=null)}function queryFromUrl(){var m=/[?&]q=([^&#]*)/.exec(window.location.search);if(!m)return"";try{return decodeURIComponent(m[1].replace(/\+/g," ")).trim()}catch(e){return""}}function writeUrl(q,push){if(window.history&&window.history.replaceState){var base=window.location.pathname,url=q?base+"?q="+encodeURIComponent(q):base;if(url!==window.location.pathname+window.location.search)try{window.history[push?"pushState":"replaceState"]({q:q},"",url)}catch(e){}}}function runQuery(q){window.clearTimeout(timer),!q||q.length<2?searching&&reset():(input.value=q,lastQuery=q,searching||(searching=!0,hideListing()),results.hidden=!1,search(q))}function onInput(){var q=input.value.trim();if(window.clearTimeout(timer),q.length<2)return searching&&reset(),void writeUrl("",!1);timer=window.setTimeout(function(){var starting=!searching;lastQuery=q,starting&&(searching=!0,hideListing()),results.hidden=!1,writeUrl(q,starting),search(q)},300)}}(); 2//# sourceURL=https://9034559.fs1.hubspotusercontent-na1.net/hubfs/9034559/hub_generated/template_assets/1/222438166052/1790069218675/template_blog-search.js
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.