1!function(){"use strict";const e=(e,t,o,a,s,r=()=>!1)=>{let n=!1;const c=(e,t)=>{e({type:"WEB_CHAT/SEND_MESSAGE",payload:{text:t}})};return({dispatch:i})=>l=>d=>{if("WEB_CHAT/SEND_MESSAGE"===d.type){const e=d.payload?.text?.trim();e&&s&&s(e)}if("DIRECT_LINE/CONNECT_FULFILLED"===d.type){o||i({type:"DIRECT_LINE/POST_ACTIVITY",meta:{method:"keyboard"},payload:{activity:{channelData:{postBack:!0},name:"startConversation",type:"event"}}});const s=e();s&&(t(),setTimeout(c.bind(null,i,s),300)),a&&a()}var u;if("DIRECT_LINE/INCOMING_ACTIVITY"!==d.type||(u=d.payload?.activity,!(o||"bot"!==u?.from?.role||n?o&&r(u):(n=!0,1))))return l(d)}};let t=null;const o=()=>{const o=document.querySelectorAll(".cmp-chatbot");if(0===o.length)return;o.length>1&&o.forEach((e,t)=>{t<o.length-1&&(e.style.display="none")});const a=o[o.length-1],s={openChat:a.dataset.openChatLabel||"Open chat",closeChat:a.dataset.closeChatLabel||"Close chat",restoring:a.dataset.restoringLabel||"Restoring your conversation...",dismissSuggestions:a.dataset.dismissSuggestionsLabel||"Dismiss suggestions",feedbackPrompt:a.dataset.feedbackPromptLabel||"Was this response helpful?",helpful:a.dataset.helpfulLabel||"Helpful",notHelpful:a.dataset.notHelpfulLabel||"Not helpful"};if(a.__chatbotInit){const e=a.querySelector(".cmp-chatbot__launcher");if(e){const t=e.cloneNode(!0);e.parentNode.replaceChild(t,e)}}a.__chatbotInit=!0;const r=a.querySelector(".cmp-chatbot__launcher"),n=a.querySelector(".cmp-chatbot__header-close"),c=a.querySelector(".cmp-chatbot__container"),i=a.querySelector(".cmp-chatbot__webchat"),l=a.querySelector(".cmp-chatbot__welcome"),d=a.dataset.tokenUrl,u=a.dataset.inputPlaceholder||"e.g. Compare D5-P5336 with D7-PS1010";if(!d)return void console.warn("Chatbot: data-token-url attribute missing â bot disabled");let m=!1,b=!1,h=!1,p=!1,_=null,g=null,f=null,y=null,v=null,S=null;const k=(e,t={})=>{try{globalThis.dispatchEvent(new CustomEvent("chatbot:telemetry",{detail:{eventName:e,...t}})),["localhost","127.0.0.1"].includes(globalThis.location?.hostname)&&console.debug("[Chatbot telemetry]",e,t)}catch{}},w="chatbot_open",C=e=>{try{sessionStorage.setItem(w,e?"true":"false")}catch{}},E=(e,{persist:t=!0}={})=>{if(e){if(h)return;return h=!0,t&&C(!0),c.classList.add("cmp-chatbot__container--open"),c.classList.remove("cmp-chatbot__container--closing"),r.setAttribute("aria-expanded","true"),r.setAttribute("aria-label",s.closeChat),r.classList.add("cmp-chatbot__launcher--active"),globalThis.innerWidth<=480&&(document.body.style.overflow="hidden",p=!0),void(m||(i.classList.add("cmp-chatbot__webchat--active"),i.removeAttribute("aria-hidden"),V()))}h=!1,t&&C(!1),c.classList.add("cmp-chatbot__container--closing"),r.setAttribute("aria-expanded","false"),r.setAttribute("aria-label",s.openChat),r.classList.remove("cmp-chatbot__launcher--active"),p&&(document.body.style.overflow="",p=!1),setTimeout(()=>{c.classList.remove("cmp-chatbot__container--open","cmp-chatbot__container--closing")},200)},A=()=>{E(!0)},x=()=>{E(!1)},I="chatbot_token",T="chatbot_conversation_id",L="chatbot_domain",F="chatbot_watermark",N="chatbot_history",q="chatbot_session_ts",D="chatbot_user_id",B=(e,t)=>!(!e||!t)&&(e.speaker===t.speaker&&e.text===t.text||"user"===e.speaker&&"bot"===t.speaker&&e.text===t.text),R=()=>{try{[w,I,T,L,F,N,q,D].forEach(e=>sessionStorage.removeItem(e))}catch{}},$=()=>{R(),g=null,m=!1,b=!1,v&&(v.disconnect(),v=null),f=null,y=null,E(!1,{persist:!1}),i.innerHTML="",j()},M=e=>{try{const t=sessionStorage.getItem(N),o=t?JSON.parse(t):[],a={id:e.id,type:e.type,text:e.text?.trim(),timestamp:e.timestamp,speaker:e.speaker,from:e.from?{id:e.from.id,role:e.from.role}:void 0};if(!a.text||!a.speaker)return;const s=o[o.length-1];if(B(s,a))return;o.push(a);let r=JSON.stringify(o);for(;r.length>51200&&o.length>1;)o.shift(),r=JSON.stringify(o);sessionStorage.setItem(N,r)}catch{}},H=e=>{const t=(()=>{const e=i.querySelector(".webchat__basic-transcript__scrollable");if(!e)return null;const t=e.querySelector(".webchat__basic-transcript__transcript"),o=Array.from(e.querySelectorAll(":scope > .cmp-chatbot__history-hydration"));
1return o.length&&(y=o[0],o.slice(1).forEach(e=>e.remove())),y?(y.parentElement!==e&&(t?t.before(y):e.prepend(y)),y):(y=document.createElement("div"),y.className="cmp-chatbot__history-hydration",y.hidden=!0,t?t.before(y):e.prepend(y),y)})();return!!t&&(t.innerHTML="",e.forEach(e=>{if(!e?.text)return;const o="user"===e.speaker,a=document.createElement("div");a.className="webchat__stacked-layout cmp-chatbot__history-row webchat__stacked-layout--from-"+(o?"user":"bot");const s=document.createElement("div");s.className="webchat__stacked-layout__main";const r=document.createElement("div");r.className="webchat__stacked-layout__avatar-gutter";const n=document.createElement("div");n.className="webchat__stacked-layout__alignment-pad";const c=document.createElement("div");c.className="webchat__stacked-layout__content";const i=document.createElement("div");i.className="webchat__stacked-layout__message-row",i.setAttribute("role","group"),i.setAttribute("aria-roledescription","message");const l=document.createElement("div");l.className="webchat__bubble webchat__stacked-layout__message"+(o?" webchat__bubble--from-user":"");const d=document.createElement("div");d.className="webchat__bubble__content",d.innerHTML=O(e.text),l.appendChild(d),i.appendChild(l),c.appendChild(i),o?(s.appendChild(n),s.appendChild(c),s.appendChild(r)):(s.appendChild(r),s.appendChild(c),s.appendChild(n)),a.appendChild(s),t.appendChild(a)}),t.hidden=!e.length,!0)},W=e=>e.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll(/\*\*(.+?)\*\*/gs,"<strong>$1</strong>").replaceAll(/\*([^*\n]+?)\*/g,"<em>$1</em>").replaceAll(/\[([^\]]+)\]\((https?:\/\/[^)]+)\)/g,'<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>').replaceAll(/(^|[\s(>])((https?:\/\/|www\.)[^\s<]+)/g,(e,t,o)=>`${t}<a href="${o.startsWith("www.")?`https://${o}`:o}" target="_blank" rel="noopener noreferrer">${o}</a>`),O=e=>{const t=e.split("\n").filter(e=>!/^\[\d+\]:\s+/.test(e.trim()));let o="",a=null,s=[];const r=()=>{a&&(o+=`</${a}>`,a=null)},n=()=>{s.length&&(o+=`<p>${s.map(e=>W(e)).join("<br>")}</p>`,s=[])};return t.forEach(e=>{const t=e.match(/^(#{2,4})\s+(.+)$/),c=e.match(/^\s*[-*]\s+(.+)$/),i=e.match(/^\s*\d+\.\s+(.+)$/);if(t){r(),n();const e=Math.min(4,t[1].length);return void(o+=`<h${e}>${W(t[2].trim())}</h${e}>`)}if(c||i){n();const e=c?"ul":"ol";return a!==e&&(r(),o+=`<${e}>`,a=e),void(o+=`<li>${W((c||i)[1])}</li>`)}r(),e.trim()?s.push(e.trim()):n()}),r(),n(),o},P=()=>!!i.querySelector(".webchat__basic-transcript__transcript .webchat__stacked-layout, .webchat__basic-transcript__transcript .webchat__bubble"),U=(e,t=[])=>{if(P())return void j(!0);if(t.length)return j(!0),void(H(t)||requestAnimationFrame(()=>U(e,t)));const o=(()=>{const e=i.querySelector(".webchat__basic-transcript__scrollable");return e?f?(f.parentElement!==e&&e.prepend(f),f):(f=document.createElement("div"),f.className="cmp-chatbot__recovery",f.setAttribute("aria-live","polite"),f.hidden=!0,f.innerHTML='\n <div class="cmp-chatbot__recovery-panel">\n <div class="cmp-chatbot__recovery-status"></div>\n <div class="cmp-chatbot__recovery-transcript"></div>\n </div>\n ',e.prepend(f),f):null})();if(!o)return void requestAnimationFrame(()=>U(e,t));S&&(clearTimeout(S),S=null);const a=o.querySelector(".cmp-chatbot__recovery-status");if(a){const o=!t.length;a.hidden=!o,a.textContent=o?e:""}o.hidden=!1,S=setTimeout(()=>j(),5e3)},j=(e=!1)=>{if(f&&!f.hidden){if(S&&(clearTimeout(S),S=null),e)return f.hidden=!0,void f.classList.remove("cmp-chatbot__recovery--hiding");f.classList.add("cmp-chatbot__recovery--hiding"),setTimeout(()=>{f&&(f.hidden=!0,f.classList.remove("cmp-chatbot__recovery--hiding"))},300)}},z=(e,t)=>{const o=e.filter(e=>e?.text).map(e=>({id:e.id||null,speaker:e.speaker,text:e.text.trim()}));return e=>{if("message"!==e?.type)return!1;const a=e.text?.trim();if(!a)return!1;const s=e.from?.role||(e.from?.id===t?"user":"bot");if("user"!==s&&"bot"!==s)return!1;const r=o.findIndex(t=>t.speaker===s&&(!(!t.id||!e.id||t.id!==e.id)||t.text===a));return-1!==r&&(o.splice(r,1),!0)}},J=({activity:e,userId:t,isReconnect:o,cachedBotActivityIds:a,greetingSkippedFromHistory:s,userHasSentMessage:r,shouldSuppressReconnectReplay:n})=>{const{activity:c,fromRole:i}=((e,t)=>{const o=e.from?.role||(e.from?.id===t?"user":"bot");return{fromRole:o,activity:{...e,from:e.from?{...e.from,role:o}:void 0}}})(e,t);s.value||"message"!==c.type||"bot"!==i||r?.value?o&&n(c)||((e,t,o)=>t&&"message"===e?.type&&"bot"===e.from?.role&&!!e.id&&o.has(e.id))(c,o,a)||(((e,t)=>{const o=e.conversation?.id;if(!t&&o&&!sessionStorage.getItem(T))try{sessionStorage.setItem(T,o),sessionStorage.setItem(q,String(Date.now())),console.log("[Chatbot] ConvId saved:",o)}catch(e){console.warn("[Chatbot] sessionStorage convId write failed:",e)}if(e.id)try{sessionStorage.setItem(F,e.id)}catch{}"message"===e.type&&e.text&&"bot"===e.from?.role&&M({id:e.id,type:e.type,text:e.text,timestamp:e.timestamp,speaker:"bot",from:e.from?{id:e.from.id,role:e.from.role}:void 0})})(c,o),"message"===c.type&&"bot"===i&&c.id&&a.add(c.id),o||j(!0)):s.value=!0},V=async()=>
1{if(!m&&!b){b=!0;try{const o=globalThis.performance?.now?.()||Date.now(),{savedToken:a,savedConvId:r,savedDomain:n,savedWatermark:c,userId:b,isReconnect:h}=(()=>{const e=sessionStorage.getItem(q);e&&Date.now()-Number(e)>144e5&&(console.log("[Chatbot] Session TTL expired â starting fresh"),k("session-expired",{ageMs:Date.now()-Number(e)}),R());const t=sessionStorage.getItem(I);let o=sessionStorage.getItem(D);if(!o){o="u_"+Array.from(crypto.getRandomValues(new Uint8Array(4)),e=>e.toString(16).padStart(2,"0")).join("");try{sessionStorage.setItem(D,o)}catch{}}return{savedToken:t,savedConvId:sessionStorage.getItem(T),savedDomain:sessionStorage.getItem(L),savedWatermark:sessionStorage.getItem(F),userId:o,isReconnect:!!t}})();k("init-started",{isReconnect:h,hasConversationId:!!r,hasWatermark:!!c});const{token:p,domain:f,convId:S}=await(async({isReconnect:e,savedToken:t,savedConvId:o,savedDomain:a})=>{if(e)return console.log("[Chatbot] Resuming session from sessionStorage â convId:",o,"domain:",a),{token:t,domain:a};const s=await fetch(d);if(!s.ok)throw new Error(`Token request failed: ${s.status}`);const r=await s.json();return console.log("[Chatbot] Fresh token fetched â convId:",r.conversationId,"domain:",r.domain),{token:r.token,domain:r.domain,convId:r.conversationId}})({isReconnect:h,savedToken:a,savedConvId:r,savedDomain:n});await(globalThis.WebChat?Promise.resolve():t||(t=new Promise((e,t)=>{const o=document.createElement("script");o.src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js",o.crossOrigin="anonymous",o.onload=e,o.onerror=()=>t(new Error("Chatbot: Failed to load WebChat SDK from CDN")),document.head.appendChild(o)}),t));const w=globalThis.WebChat;if(!w)return void console.error("Chatbot: WebChat SDK not loaded after dynamic load");const C=(({token:e,domain:t,isReconnect:o,savedConvId:a,savedWatermark:s})=>{const r={token:e};return o&&a&&(r.conversationId=a),o&&s&&(r.watermark=s),t&&(r.domain=t),r})({token:p,domain:f,isReconnect:h,savedConvId:r,savedWatermark:c}),E=w.createDirectLine(C),A=()=>{const e=globalThis.performance?.now?.()||Date.now();if(k("connect-fulfilled",{isReconnect:h,durationMs:Math.round(e-o),conversationId:h?r:S||null,usedWatermark:!!c}),!h)try{sessionStorage.setItem(I,p),f&&sessionStorage.setItem(L,f),S&&(sessionStorage.setItem(T,S),sessionStorage.setItem(q,String(Date.now()))),console.log("[Chatbot] Token + domain saved to sessionStorage")}catch(e){console.warn("[Chatbot] sessionStorage write failed:",e)}},x=h?(()=>{try{const e=sessionStorage.getItem(N),t=e?JSON.parse(e):[];if(!Array.isArray(t))return[];const o=t.filter(e=>e?.text).filter(e=>"user"===e.speaker||"bot"===e.speaker).map(e=>({id:e.id,type:e.type,text:e.text,timestamp:e.timestamp,speaker:e.speaker,from:{id:e.from?.id,role:e.speaker}})).filter((e,t,o)=>{const a=o[t-1];return!B(a,e)});try{sessionStorage.setItem(N,JSON.stringify(o))}catch{}return o}catch{return[]}})():[],W=x.length>0,O=()=>{H(x)},G=()=>{W&&(requestAnimationFrame(O),setTimeout(O,0))},K=z(x,b),Y=z(x,b),Q=new Set(x.filter(e=>"bot"===e?.speaker&&e?.id).map(e=>e.id)),X=w.createStore({},e(()=>_,()=>{_=null},h,A,e=>{te.value=!0,M({id:`local-user-${Date.now()}`,type:"message",text:e,timestamp:(new Date).toISOString(),speaker:"user",from:{id:b,role:"user"}}),h&&G()},K));g=X,["localhost","127.0.0.1"].includes(globalThis.location?.hostname)&&(globalThis.__chatbotStore=X),w.renderWebChat({directLine:E,userID:b,store:X,styleOptions:{hideUploadButton:!0,rootHeight:"100%",rootWidth:"100%",primaryFont:"'Sora', sans-serif",fontSizeSmall:"80%",monospaceFont:"Consolas, 'Courier New', monospace",botAvatarSize:0,userAvatarSize:0,bubbleBorderRadius:16,bubbleFromUserBorderRadius:16,bubbleBackgroun
1d:"#FFFFFF",bubbleFromUserBackground:"#4809AE",bubbleFromUserTextColor:"#FFFFFF",bubbleTextColor:"#21201E",bubbleMaxWidth:460,bubbleNubSize:0,bubbleFromUserNubSize:0,sendBoxBackground:"#FFFFFF",sendBoxTextColor:"#21201E",sendBoxPlaceholderColor:"#52514F",sendBoxPlaceholder:u,sendBoxTextWatermark:u,sendBoxBorderTop:"solid 1px rgba(0, 0, 0, 0.1)",sendBoxButtonColor:"#4809AE",sendBoxButtonColorOnHover:"#4F046A",accent:"#4809AE",suggestedActionBackgroundColor:"#FFFFFF",suggestedActionBorderColor:"#4809AE",suggestedActionTextColor:"#4809AE",suggestedActionBorderRadius:0,backgroundColor:"#F6F3F1"}},i),m=!0,h&&W&&requestAnimationFrame(()=>{var e;U(s.restoring,x),(e=x).length&&(v&&v.disconnect(),v=new MutationObserver(()=>{y?.isConnected&&!y.hidden&&y.childElementCount||H(e)}),v.observe(i,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["hidden"]})),(()=>{if(P())return void j(!0);const e=new MutationObserver(()=>{const t=i.querySelector(".cmp-chatbot__welcome-injected"),o=P();t&&o&&t.remove(),o&&(j(!0),e.disconnect())});e.observe(i,{childList:!0,subtree:!0})})()});const Z=E.connectionStatus$.subscribe(e=>{3!==e&&4!==e&&5!==e||(Z.unsubscribe(),k("connection-status-failed",{status:e,isReconnect:h}),console.warn(`[Chatbot] Connection status ${e} â clearing session and retrying`),$(),V())}),ee={value:!1},te={value:!1};E.activity$.subscribe(e=>{e&&J({activity:e,userId:b,isReconnect:h,cachedBotActivityIds:Q,greetingSkippedFromHistory:ee,userHasSentMessage:te,shouldSuppressReconnectReplay:Y})});const oe=()=>{const e=i.querySelector(".webchat__basic-transcript__scrollable");if(!e||e.querySelector(".cmp-chatbot__welcome-injected"))return!!e;const t=document.createElement("div");t.className="cmp-chatbot__welcome-injected",l&&(t.innerHTML=l.innerHTML);const o=e.querySelector(".webchat__basic-transcript__transcript");return o?o.before(t):e.prepend(t),!0},ae=()=>{const e=new MutationObserver(()=>{oe()&&e.disconnect()});e.observe(i,{childList:!0,subtree:!0})},se=()=>{oe()||ae()};h&&W||(()=>{oe()||requestAnimationFrame(se)})()}catch(e){k("init-failed",{message:e instanceof Error?e.message:String(e)}),console.error("Chatbot: Failed to initialize â",e),$()}finally{b=!1}}},G=(e,t)=>{try{const o=new URL(t).pathname.split("/").filter(Boolean).pop()||t;e.textContent.trim()!==o&&(e.textContent=o)}catch{}};let K=!1;new MutationObserver(()=>{K||(K=!0,requestAnimationFrame(()=>{K=!1,(()=>{a.querySelectorAll(".chat-suggestions").forEach(e=>{if(e.querySelector(".chat-suggestions__close"))return;const t=document.createElement("button");t.className="chat-suggestions__close",t.setAttribute("aria-label",s.dismissSuggestions),t.setAttribute("type","button"),t.textContent="Ã",t.addEventListener("click",()=>{e.style.display="none"}),e.appendChild(t)});const e=a.querySelector(".webchat__suggested-actions");if(e&&!e.querySelector(".chat-suggestions__close")){const t=document.createElement("button");t.className="chat-suggestions__close chat-suggestions__close--sdk",t.setAttribute("aria-label",s.dismissSuggestions),t.setAttribute("type","button"),t.textContent="Ã",t.addEventListener("click",()=>{e.style.display="none"}),e.appendChild(t)}})(),i.querySelectorAll(".webchat__stacked-layout:not(.webchat__stacked-layout--from-user)").forEach(e=>{if(e.querySelector(".cmp-chatbot__feedback"))return;if(e.closest(".cmp-chatbot__welcome-injected"))return;const t=document.createElement("div");t.className="cmp-chatbot__feedback",t.setAttribute("aria-label",s.feedbackPrompt);const o=(e,t,o)=>{const a=document.createElement("button");return a.type="button",a.className=`cmp-chatbot__feedback-btn cmp-chatbot__feedback-btn--${e}`,a.setAttribute("aria-label",t),a.setAttribute("aria-pressed","false"),a.dataset.reaction=e,a.innerHTML=o,a};t.appendChild(o("positive",s.helpful,"👍")),t.appendChild(o("negative",s.notHelpful,"👎")),e.appendChild(t)}),a.querySelectorAll(".webchat__link-definitions__list-item-text").forEach(e=>{const t=e.closest("[href]");t&&G(e,t.href)}),a.querySelectorAll("a[href]").forEach(e=>{const t=e.textContent.trim();/^https?:\/\//i.test(t)&&G(e,e.href)}),f&&!f.hidden&&P()&&j(!0);const e=a.querySelector(".webchat__send-box-text-box__input, .webchat__send-box-text-box textarea, .webchat__send-box-text-box input");e&&e.getAttribute("placeholder")!==u&&e.setAttribute("placeholder",u)}))}).observe(a,{childList:!0,subtree:!0}),r.addEventListener("click",()=>{h?x():A()}),n&&n.addEventListener("click",x),(()=>{try{return"true"===sessionStorage.getItem(w)}catch{return!1}})()&&requestAnimationFrame(()=>A()),a.addEventListener("click",e=>{const t=e.target.closest(".cmp-chatbot__feedback-btn");if(!t)return;const o=t.closest(".cmp-chatbot__feedback");if(!o||o.classList.contains("cmp-chatbot__feedback--submitted"))return;const a=t.dataset.reaction,s=(e,t=500)=>(e||"").replaceAll(/\s+/g," ").trim().slice(0,t),r=o.closest(".webchat__stacked-layout"),n=s(r?.querySelector(".webchat__bubble__content")?.innerText),c=[...i.querySelectorAll(".webchat__stacked-layout")];let l="";for(let e=c.indexOf(r)-1;e>=0;e--)if(c[e].classList.contains("webchat__stacked-layout--from-user")){l=s(c[e].querySelector(".webchat__bubble__content")?.innerText);break}o.classList.add("cmp-chatbot__feedback--submitted"),o.querySelectorAll(".cmp-chatbot__feedback-btn").forEach(e
1=>{e.setAttribute("aria-pressed",e.dataset.reaction===a?"true":"false")});const d={reaction:a,botResponse:n,userQuestion:l};g&&g.dispatch({type:"WEB_CHAT/SEND_EVENT",payload:{name:"feedback",value:d}})}),a.addEventListener("click",e=>{const t=e.target.closest(".cmp-chatbot__welcome-chip");if(!t)return;const o=t.dataset.suggestion||t.textContent.trim();o&&(g?g.dispatch({type:"WEB_CHAT/SEND_MESSAGE",payload:{text:o}}):_=o)}),document.addEventListener("keydown",e=>{"Escape"===e.key&&h&&(x(),r.focus())}),"1"===new URLSearchParams(globalThis.location?.search).get("webchatDebug")&&globalThis.addEventListener("webchat:send-event",e=>{const t=e.detail&&"string"==typeof e.detail.name?e.detail.name.trim():"";g&&t&&g.dispatch({type:"WEB_CHAT/SEND_EVENT",payload:{name:t,value:e.detail.value}})}),globalThis.clearChatbotSession=$,globalThis.addEventListener("chatbot:clear-session",$)};window.addEventListener("DOMContentLoaded",function(){o()})}();
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.