1new class{constructor(){this.init()}init(){document.querySelectorAll(`form[action*="list-manage.com/subscribe"]`).forEach(e=>{e.addEventListener(`submit`,t=>{t.preventDefault(),this.submit(e)})})}submit(e){let t=e.querySelector(`input[name="EMAIL"]`);if(!t||!t.value.trim()){this.show(e,`Email address is required`,!1);return}let n=e.querySelector(`input[name^="gdpr"]`);if(n&&!n.checked){this.show(e,`You must consent to receive emails`,!1);return}let r=new FormData(e),i=new URLSearchParams(r),a=`mc_callback_${Date.now()}`;i.append(`c`,a);let o=e.getAttribute(`action`);o.includes(`post-json`)||(o=o.replace(`/post`,`/post-json`));let s=o+`&`+i.toString();window[a]=t=>{let n=this.cleanMessage(t.msg);t.result===`success`?(this.show(e,n,!0),e.reset()):this.show(e,n,!1),delete window[a],c.remove()};let c=document.createElement(`script`);c.src=s,c.onerror=()=>{this.show(e,`Subscription failed. Please try again.`,!1),delete window[a],c.remove()},document.body.appendChild(c)}cleanMessage(e){if(!e)return`Something went wrong.`;let t=document.createElement(`textarea`);t.innerHTML=e;let n=t.value;return n=n.replace(/^\d+\s*-\s*/,``),n=n.replace(/<[^>]*>/g,``),n.trim()}show(e,t,n){let r=e.querySelector(`[id$="error-response"]`)||e.querySelector(`#mce-error-response`),i=e.querySelector(`[id$="success-response"]`)||e.querySelector(`#mce-success-response`);r&&(r.style.display=n?`none`:`block`,r.textContent=n?``:t),i&&(i.style.display=n?`block`:`none`,i.textContent=n?t:``)}};
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.