1async function b(){const i=[navigator.userAgent,navigator.language,window.devicePixelRatio,screen.colorDepth,`${screen.width}x${screen.height}`,`${screen.availWidth}x${screen.availHeight}`,navigator.hardwareConcurrency,navigator.deviceMemory,navigator.maxTouchPoints,new Date().getTimezoneOffset(),Intl.DateTimeFormat().resolvedOptions().timeZone,!!window.sessionStorage,!!window.localStorage,!!window.indexedDB,navigator.platform,navigator.doNotTrack,await S()].join("||");return T(i)}async function S(){const i=document.createElement("canvas"),e=i.getContext("2d");return e?(i.width=200,i.height=50,e.textBaseline="top",e.font="14px Arial",e.fillStyle="#f60",e.fillRect(125,1,62,20),e.fillStyle="#069",e.fillText("Human:)",2,15),e.fillStyle="rgba(102, 204, 0, 0.7)",e.fillText("Detection",4,17),i.toDataURL()):""}async function T(i){const e=new TextEncoder().encode(i),t=await crypto.subtle.digest("SHA-256",e);return Array.from(new Uint8Array(t)).map(s=>s.toString(16).padStart(2,"0")).join("")}class E{constructor(e){this.formElement=e,this.isTracking=!1,this.metrics={typingSpeed:[],typingPattern:[],mouseMovements:[],focusTime:0,totalTime:0,lastKeypressTime:0,formStartTime:Date.now(),browserFingerprint:""},this.initializeTracking()}initializeTracking(){if(this.isTracking)return;this.isTracking=!0,this.formElement.addEventListener("keydown",this.handleKeyPress.bind(this)),this.formElement.addEventListener("mousemove",this.handleMouseMove.bind(this)),this.formElement.querySelectorAll("input, textarea, select").forEach(t=>{t.addEventListener("focus",this.handleFocus.bind(this)),t.addEventListener("blur",this.handleBlur.bind(this))}),this.generateBrowserFingerprint()}handleKeyPress(e){const t=Date.now();if(this.metrics.lastKeypressTime){const a=t-this.metrics.lastKeypressTime;this.metrics.typingSpeed.push(a),this.metrics.typingSpeed.length>50&&this.metrics.typingSpeed.shift()}this.metrics.lastKeypressTime=t}handleMouseMove(e){const t={x:e.clientX,y:e.clientY,timestamp:Date.now()};this.metrics.mouseMovements.push(t),this.metrics.mouseMovements.length>100&&this.metrics.mouseMovements.shift()}handleFocus(){this.metrics.focusTime||(this.metrics.focusTime=Date.now())}handleBlur(){if(this.metrics.focusTime){const e=Date.now()-this.metrics.focusTime;this.metrics.totalTime+=e,this.metrics.focusTime=0}}async generateBrowserFingerprint(){this.metrics.browserFingerprint=await b()}analyzeHumanLikelihood(){const e=this.analyzeTypingPatterns(),t=this.analyzeMousePatterns(),a=this.analyzeTimingPatterns(),s=e*.33+t*.34+a*.33;return{isLikelyHuman:s>.6,confidenceScore:s,metrics:{typingNaturalness:e,mouseNaturalness:t,timingNaturalness:a}}}analyzeTypingPatterns(){if(this.metrics.typingSpeed.length<5)return .5;const e=this.metrics.typingSpeed.reduce((s,o)=>s+o,0)/this.metrics.typingSpeed.length,t=this.metrics.typingSpeed.reduce((s,o)=>s+Math.pow(o-e,2),0)/this.metrics.typingSpeed.length;return Math.min(t/1e4,1)}analyzeMousePatterns(){if(this.metrics.mouseMovements.length<10)return .5;let e=0;for(let t=1;t<this.metrics.mouseMovements.length;t++){const a=this.metrics.mouseMovements[t-1],s=this.metrics.mouseMovements[t],o=s.timestamp-a.timestamp,n=Math.sqrt(Math.pow(s.x-a.x,2)+Math.pow(s.y-a.y,2));o>0&&n/o<10&&e++}return e/this.metrics.mouseMovements.length}analyzeTimingPatterns(){const e=Date.now()-this.metrics.formStartTime;return e<1e3?0:e>12e4?1:Math.min(e/12e4,1)}getMetricsForSubmission(){const e=this.analyzeHumanLikelihood();return{__inflx__humanScore:e.confidenceScore.toString(),__inflx__isLikelyHuman:e.isLikelyHuman.toString(),__inflx__browserFingerprint:this.metrics.browserFingerprint,__inflx__formCompletionTime:(Date.now()-this.metrics.formStartTime).toString(),__inflx__typingNaturalness:e.metrics.typingNaturalness.toString(),__inflx__mouseNaturalness:e.metrics.mouseNaturalness.toString(),__inflx__timingNaturalness:e.metrics.timingNaturalness.toString()}}}function v(i){const e=parseFloat(getComputedStyle(document.body).getPropertyValue("--header-height"))||0,t=i.getBoundingClientRect(),a=Math.max(0,window.scrollY+t.top-e-30);window.scrollTo({top:a,behavior:"auto"})}function x(i){for(const e of i)if(!e.checkValidity()){if(e.offsetParent===null){const t=e.closest("[data-combobox-wrapper]");if(t)return t;continue}return e}return null}function y(i){const e=i.type==="radio"?i.closest(".radio-group"):i.parentElement;if(!e)return;const t=e.querySelector(".error-bubble");if(t&&(t.remove(),i.removeAttribute("aria-invalid"),i.removeAttribute("aria-errormessage")),!i.validity.valid){const a=document.createElement("div");a.className="error-bubble",i.setAttribute("aria-invalid","true");const s="error-"+(i.id||i.getAttribute("name"));i.setAttribute("aria-errormessage",s),a.setAttribute("id",s);let o="";i.validity.valueMissing?o="This field is required":i.validity.typeMismatch?o=i.type==="email"?"Please enter a valid email address":"Please enter a valid value":i.validity.patternMismatch&&i.type==="tel"?o="Please enter a valid phone number":o=i.validationMessage,a.textContent=o,e.appendChild(a)}}document.addEventListener("DOMContentLoaded",()=>
1{document.querySelectorAll("form[data-influx-form]").forEach(e=>{if(!e)return;let t=JSON.parse(e.getAttribute("data-influx-form"));e.querySelectorAll("[data-influx-file-input]").forEach(n=>{n.querySelector("input[type=file]").addEventListener("change",c=>_(c,n))});const s=new E(e);e.setAttribute("novalidate","true");const o=e.querySelectorAll("input:not([type='hidden']):not([name='ZipCode']), select, textarea");o.forEach(n=>{n.addEventListener("invalid",c=>{c.preventDefault(),y(n)}),n.addEventListener("input",()=>{const c=n.type==="radio"?n.closest(".radio-group"):n.parentElement;if(!c)return;const r=c.querySelector(".error-bubble");r&&r.remove()}),n.addEventListener("blur",()=>{n.value&&!n.validity.valid&&y(n)})}),e.addEventListener("submit",async n=>{if(n.preventDefault(),e.classList.contains("submitting"))return;e.classList.add("submitting"),e.querySelectorAll(".error-bubble").forEach(r=>r.remove());const c=x(o);if(c){const r=new Set;o.forEach(l=>{if(!(l.checkValidity()||l.offsetParent===null)){if(l.type==="radio"){if(r.has(l.name))return;r.add(l.name)}y(l)}}),v(c),e.classList.remove("submitting");return}try{const r=new FormData(e),l=s.getMetricsForSubmission();l&&typeof l=="object"&&Object.entries(l).forEach(([d,m])=>{m!=null&&r.append(d,String(m))}),typeof window<"u"&&(r.append("UserAgent",window.navigator.userAgent),r.append("LeadPageUrl",window.location.href.split("?")[0])),document.cookie.split("; ").forEach(d=>{const[m,u]=d.split("=");m&&m.startsWith("__form__")&&u&&r.append(m.replace("__form__",""),u)});const h=M("lastVisitedPage");h&&r.append("Last Visited Page",h);const f=await(await fetch(e.action,{method:"POST",body:r})).json();if(f.success){const d=t.redirectOnSubmit,m=t.redirectUrl;if(d&&m)window.location.href=m;else{const u=e.parentElement;if(u){let w=u.querySelector(".form-message .success-message");u.innerHTML=` 2 <div class="card"> 3 ${w.innerHTML} 4 </div> 5 `}v(u)}}else throw new Error(f.error||"Submission failed")}catch(r){console.error("Form submission error:",r);const l=e.parentElement;l&&(l.innerHTML=` 6 <div class="card"> 7 <h2 class="ipj-link thank-you-form-title title-md">Error with Form Submission</h2> 8 <div class="thank-you-form-text-container"> 9 <p>There was an error processing your form. Please try again later.</p> 10 <p>Error message: ${r}.</p> 11 </div> 12 </div> 13 `)}finally{e.classList.remove("submitting")}})})});function M(i){function e(a){return a.replace(/([.*+?\^$(){}|\[\]\/\\])/g,"\\$1")}const t=document.cookie.match(RegExp("(?:^|;\\s*)"+e(i)+"=([^;]*)"));return t?t[1]:null}const _=async(i,e)=>{const t=i.target.files[0],a=s=>new Promise(o=>{const n=new Image,c=new FileReader;c.onload=r=>{n.src=r?.target?.result},n.onload=()=>{const r=document.createElement("canvas");r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0);const h=[.9,.8,.7,.6,.5];let g=0;const f=()=>{r.toBlob(d=>{d.size<=1024*1024*3||g===h.length-1?o(d):(g++,f())},"image/jpeg",h[g])};f()},c.readAsDataURL(s)});if(t&&t.type.startsWith("image/"))if(t.size>1024*1024*3){const s=await a(t),o=new File([s],t.name,{type:"image/jpeg",lastModified:Date.now()}),n=new FileReader;n.onloadend=()=>p(n.result,e.querySelector("#file-preview-container")),n.readAsDataURL(o);const c=new DataTransfer;c.items.add(o);const r=e.querySelector("input[type=file]");r.files=c.files;const l=new Event("input",{bubbles:!0});r.dispatchEvent(l);return}else{const s=new FileReader;s.onloadend=()=>p(s.result,e.querySelector("#file-preview-container")),s.readAsDataURL(t)}else t&&t.type.startsWith("application/")?p("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90' viewBox='0 0 24 24' fill='none' stroke='%23000000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2H6a2 2 0 0 0-2 2v16c0 1.1.9 2 2 2h12a2 2 0 0 0 2-2V9l-7-7z'/%3E%3Cpath d='M13 3v6h6'/%3E%3C/svg%3E",e.querySelector("#file-preview-container")):p(null,e.querySelector("#file-preview-container"))};function p(i,e){i?(e.style.display="block",e.querySelector("img").src=i):e.style.display="none"}
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.