1(function(){'use strict';var ICONS={roof:'<path d="M12 3l9 8h-3v9h-4v-6h-4v6H5v-9H2z"/>',commercial:'<path d="M10 4h4a2 2 0 0 1 2 2v1h3a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h3V6a2 2 0 0 1 2-2zm0 3h4V6h-4v1z"/>',layers:'<path d="M4 4h16v4H4zM4 10h16v4H4zM4 16h16v4H4z"/>',droplet:'<path d="M12 2c4 5 7 8.5 7 12a7 7 0 1 1-14 0c0-3.5 3-7 7-12z"/>',lightning:'<path d="M13 2 3 14h6l-1 8 11-13h-6z"/>',shield:'<path d="M12 2l8 3v6c0 5-4 9-8 11-4-2-8-6-8-11V5z"/>',window:'<path fill-rule="evenodd" d="M4 3h16v18H4V3zm2 2v14h5V5H6zm7 0v14h5V5h-5z"/>',generic:'<circle cx="12" cy="12" r="5"/>'};function iconKeyFor(text){var t=text.toLowerCase();if(t.indexOf('commercial')>-1)return'commercial';if(t.indexOf('residential')>-1||t.indexOf('roof')>-1||t.indexOf('shingle')>-1)return'roof';if(t.indexOf('gutter')>-1)return'droplet';if(t.indexOf('wind')>-1||t.indexOf('fire')>-1||t.indexOf('tree')>-1||t.indexOf('hail')>-1||t.indexOf('storm')>-1)return'lightning';if(t.indexOf('insur')>-1||t.indexOf('warranty')>-1)return'shield';if(t.indexOf('window')>-1)return'window';if(t.indexOf('siding')>-1||t.indexOf('vinyl')>-1||t.indexOf('cedar')>-1||t.indexOf('aluminum')>-1||t.indexOf('board')>-1||t.indexOf('soffit')>-1||t.indexOf('wrap')>-1||t.indexOf('metal')>-1)return'layers';return'generic'} 2function addIcon(link){if(link.querySelector(':scope > .mega-icon'))return;var key=iconKeyFor(link.textContent.trim());var span=document.createElement('span');span.className='mega-icon';span.innerHTML='<svg viewBox="0 0 24 24" aria-hidden="true">'+(ICONS[key]||ICONS.generic)+'</svg>';link.insertBefore(span,link.firstChild)} 3function addPromo(panelUl,topLevelTitle){if(panelUl.querySelector(':scope > li.mega-promo'))return;var key=iconKeyFor(topLevelTitle);var li=document.createElement('li');li.className='mega-promo';li.innerHTML='<div class="mega-promo-inner">'+'<span class="mega-promo-badge"><svg viewBox="0 0 24 24" aria-hidden="true">'+(ICONS[key]||ICONS.generic)+'</svg></span>'+'<div class="mega-promo-text">'+'<span class="mega-promo-eyebrow">Free Estimate</span>'+'<span class="mega-promo-title">Get a Free '+topLevelTitle+' Inspection</span>'+'</div>'+'<a href="/#free_estimate" class="mega-promo-btn"><span>Request Now</span></a>'+'</div>';panelUl.appendChild(li)} 4document.addEventListener('DOMContentLoaded',function(){var topItems=document.querySelectorAll('#tstk-top-menu > li.mega-menu-columns, #tstk-top-menu > li.mega-menu-grid');topItems.forEach(function(topLi){var panelUl=topLi.querySelector(':scope > ul.sub-menu');if(!panelUl)return;var topTitle=topLi.querySelector(':scope > a').textContent.trim();panelUl.querySelectorAll(':scope > li > a').forEach(addIcon);addPromo(panelUl,topTitle)});document.addEventListener('click',function(e){var btn=e.target.closest('.mega-promo-btn');if(!btn)return;var realTrigger=document.querySelector('.tstk-header-button a.pum-trigger');if(realTrigger){e.preventDefault();realTrigger.click()}})})})()
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.