{"time":"2026-09-08T18:03:56.205Z","specifics":"<script>\n\n(function(){\ntry{\n/** file: addFreshNativeFunctions.js */\n\"use strict\";\n\nconst originalSetInterval = window.setInterval;\nconst originalSetTimeout = window.setTimeout;\nconst originalClearInterval = window.clearInterval;\nconst originalClearTimeout = window.clearTimeout;\nlet setInterval = originalSetInterval;\nlet setTimeout = originalSetTimeout;\nlet clearIntervalNative = originalClearInterval;\nlet clearTimeoutNative = originalClearTimeout;\nif (!originalSetInterval.toString().includes(\"[native code]\") || !originalSetTimeout.toString().includes(\"[native code]\") || !originalClearInterval.toString().includes(\"[native code]\") || !originalClearTimeout.toString().includes(\"[native code]\")) {\n  const iframe = document.createElement(\"iframe\");\n  Object.assign(iframe.style, {\n    position: \"fixed\",\n    width: \"1px\",\n    height: \"1px\",\n    border: \"none\",\n    top: \"-10px\",\n    left: \"-10px\",\n    visibility: \"hidden\",\n    pointerEvents: \"none\"\n  });\n  iframe.setAttribute(\"role\", \"presentation\");\n  iframe.setAttribute(\"sandbox\", \"allow-same-origin\");\n  document.body.appendChild(iframe);\n  iframe.src = \"about:blank\";\n  const iframeWindow = iframe.contentWindow;\n  if (iframeWindow) {\n    if (!originalSetInterval.toString().includes(\"[native code]\") && iframeWindow.setInterval) {\n      setInterval = iframeWindow.setInterval.bind(iframeWindow);\n    }\n    if (!originalSetTimeout.toString().includes(\"[native code]\") && iframeWindow.setTimeout) {\n      setTimeout = iframeWindow.setTimeout.bind(iframeWindow);\n    }\n    if (!originalClearInterval.toString().includes(\"[native code]\") && iframeWindow.clearInterval) {\n      clearIntervalNative = iframeWindow.clearInterval.bind(iframeWindow);\n    }\n    if (!originalClearTimeout.toString().includes(\"[native code]\") && iframeWindow.clearTimeout) {\n      clearTimeoutNative = iframeWindow.clearTimeout.bind(iframeWindow);\n    }\n  }\n}\n/** file: addSearchboxInstructions.js */\n\"use strict\";\n\nfunction addSearchboxInstructions(searchInput) {\n  let announcementMessage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"Results or suggestions will be displayed as they become available. Continue navigating to access them.\";\n  const newSpan = createSrOnlyElement();\n  newSpan.id = \"instructions\";\n  newSpan.textContent = announcementMessage;\n  searchInput.insertAdjacentElement(\"afterend\", newSpan);\n  searchInput.setAttribute(\"aria-describedby\", \"instructions\");\n}\n/** file: applyMenuAttributes.js */\n\"use strict\";\n\nfunction applyMenuAttributes(menu) {\n  menu.setAttribute(\"data-acsb-m-menu\", \"ul\");\n  menu.setAttribute(\"data-acsb-fake-menu\", \"true\");\n}\n/** file: applyMenuItemAttributes.js */\n\"use strict\";\n\nfunction applyMenuItemAttributes(menuItem) {\n  let {\n    alternativeMenu = true\n  } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  if (alternativeMenu) {\n    forceAlternativeDropdown(menuItem);\n  }\n  menuItem.setAttribute(\"role\", \"menuitem\");\n  menuItem.setAttribute(\"data-acsb-menu-root\", \"true\");\n  menuItem.setAttribute(\"data-acsb-m-menu\", \"li\");\n  menuItem.setAttribute(\"data-acsb-menu\", \"li\");\n  menuItem.setAttribute(\"data-acsb-dropdown-container\", \"true\");\n}\n/** file: chatButtonAccessible.js */\n\"use strict\";\n\nfunction accessChatButton(iframe, skipLinks) {\n  let chatButtonSelector = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"\";\n  let chatButtonTabHandler = arguments.length > 3 ? arguments[3] : undefined;\n  const iframeDocument = iframe.contentDocument || iframe.contentWindow.document;\n  const chatButton = iframeDocument.querySelector(\"\".concat(chatButtonSelector ? chatButtonSelector : \"#mountHere\", \" button\"));\n  const skipLinksContainer = skipLinks.shadowRoot.querySelector(\".skip-links\");\n  const skipLink = skipLinksContainer.querySelector(\"div\");\n  const clone = skipLink.cloneNode(true);\n  const link = clone.querySelector(\"a\");\n  link.addEventListener(\"keydown\", event => {\n    if (event.key === \"Enter\") {\n      chatButton.focus();\n      chatButton.setAttribute(\"data-acsb-focused\", \"true\");\n      chatButton.style.borderColor = \"#639af9\";\n    }\n  });\n  link.addEventListener(\"click\", () => {\n    chatButton.focus();\n    chatButton.setAttribute(\"data-acsb-focused\", \"true\");\n    chatButton.style.borderColor = \"#639af9\";\n  });\n  if (chatButtonTabHandler) {\n    chatButton.addEventListener(\"keydown\", event => {\n      if (event.code === \"Tab\" && !event.shiftKey) {\n        event.preventDefault();\n        chatButtonTabHandler();\n      }\n    });\n  }\n  link.childNodes[0].textContent = \"Skip to Chat\";\n  link.href = chatButtonSelector ? chatButtonSelector : \"#gorgias-chat-container\";\n  skipLinksContainer.appendChild(clone);\n}\n/** file: connectMenuToMenuItem.js */\n\"use strict\";\n\nfunction connectMenuToMenuItem(_ref) {\n  let {\n    menuItem,\n    menu,\n    applyWrappingMenuItem = false,\n    alternativeMenu = true,\n    removeOriginalMenu = true\n  } = _ref;\n  let currentMenuItem = menuItem;\n  if (applyWrappingMenuItem) {\n    currentMenuItem = wrappMenuItem(menuItem);\n  }\n  const clonedMenu = menu.cloneNode(true);\n  currentMenuItem.appendChild(clonedMenu);\n  applyMenuItemAttributes(currentMenuItem, {\n    alternativeMenu\n  });\n  if (removeOriginalMenu) {\n    menu.remove();\n  }\n  return clonedMenu;\n}\nfunction wrappMenuItem(menuItem) {\n  const div = document.createElement(\"div\");\n  menuItem.before(div);\n  const clonedMenuItem = menuItem.cloneNode(true);\n  div.appendChild(clonedMenuItem);\n  menuItem.remove();\n  applyMenuItemAttributes(div);\n  return div;\n}\nfunction forceAlternativeDropdown(listItem) {\n  const fakeMenu1 = document.createElement(\"div\");\n  const fakeMenu2 = document.createElement(\"div\");\n  fakeMenu1.setAttribute(\"data-acsb-menu\", \"ul\");\n  fakeMenu2.setAttribute(\"data-acsb-menu\", \"ul\");\n  listItem.appendChild(fakeMenu1);\n  listItem.appendChild(fakeMenu2);\n}\n/** file: createLiveRegion.js */\n\"use strict\";\n\nfunction createLiveRegion(ariaLive, container) {\n  const span = document.createElement(\"span\");\n  span.className = \"acsb-sr-only\";\n  span.setAttribute(\"data-acsb-force-visible\", \"true\");\n  if (ariaLive) {\n    span.setAttribute(\"aria-live\", ariaLive);\n  }\n  if (container) {\n    container.append(span);\n  }\n  return span;\n}\n/** file: createSrOnlyElement.js */\n\"use strict\";\n\nfunction createSrOnlyElement() {\n  const srOnlyElement = document.createElement(\"span\");\n  srOnlyElement.style.position = \"absolute\";\n  srOnlyElement.style.width = \"1px\";\n  srOnlyElement.style.height = \"1px\";\n  srOnlyElement.style.padding = \"0\";\n  srOnlyElement.setAttribute(\"data-acsb-force-visible\", \"true\");\n  srOnlyElement.style.margin = \"-1px\";\n  srOnlyElement.style.overflow = \"hidden\";\n  srOnlyElement.style.clip = \"rect(0, 0, 0, 0)\";\n  srOnlyElement.style.whiteSpace = \"nowrap\";\n  srOnlyElement.style.borderWidth = \"0\";\n  srOnlyElement.setAttribute(\"data-acsb-force-visible\", \"true\");\n  return srOnlyElement;\n}\n/** file: forceNavigable.js */\n\"use strict\";\n\nfunction forceNavigable(element) {\n  element.setAttribute(\"data-acsb-now-navigable\", \"true\");\n  element.setAttribute(\"data-acsb-navigable\", \"true\");\n  element.setAttribute(\"data-acsb-force-navigable\", \"true\");\n  element.setAttribute(\"tabindex\", \"0\");\n}\n/** file: forceUnnavigable.js */\n\"use strict\";\n\nfunction forceUnnavigable(el) {\n  el.setAttribute(\"tabindex\", \"-1\");\n  el.setAttribute(\"data-acsb-force-unnavigable\", \"true\");\n  el.setAttribute(\"data-acsb-navigable\", \"false\");\n  el.setAttribute(\"data-acsb-now-navigable\", \"false\");\n}\n/** file: isMobile.js */\n\"use strict\";\n\nfunction isMobile() {\n  var _navigator, _window, _navigator2, _navigator3;\n  const userAgent = navigator.userAgent || ((_navigator = navigator) === null || _navigator === void 0 ? void 0 : _navigator.vendor) || ((_window = window) === null || _window === void 0 ? void 0 : _window.opera);\n  const isMobileUserAgent = /android|iphone|ipad|ipod|blackberry|bb|playbook|iemobile|opera mini|webos|windows phone/i.test(userAgent);\n  const hasTouchSupport = \"ontouchstart\" in window || navigator.maxTouchPoints && navigator.maxTouchPoints > 0 || ((_navigator2 = navigator) === null || _navigator2 === void 0 ? void 0 : _navigator2.msMaxTouchPoints) && ((_navigator3 = navigator) === null || _navigator3 === void 0 ? void 0 : _navigator3.msMaxTouchPoints) > 0;\n  const isSmallScreen = window.matchMedia(\"(max-width: 768px)\").matches;\n  const isPortrait = window.matchMedia(\"(orientation: portrait)\").matches;\n  const isCoarsePointer = window.matchMedia(\"(pointer: coarse)\").matches;\n  const noHover = window.matchMedia(\"(hover: none)\").matches;\n  const likelyMobile = isMobileUserAgent || hasTouchSupport && (isSmallScreen || isPortrait) || isCoarsePointer || noHover;\n  return likelyMobile;\n}\n/** file: profileEnabledInterval.js */\n\"use strict\";\n\nfunction profileEnabledInterval(profile, cb) {\n  let {\n    interval = 1000,\n    clearAfterTimeout = true,\n    timeout = 15000\n  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  const intervalId = setInterval(() => {\n    var _acsbState$actions;\n    const acsbState = JSON.parse(localStorage.acsbState || \"{}\");\n    if (acsbState !== null && acsbState !== void 0 && (_acsbState$actions = acsbState.actions) !== null && _acsbState$actions !== void 0 && (_acsbState$actions = _acsbState$actions[profile]) !== null && _acsbState$actions !== void 0 && _acsbState$actions.enabled) {\n      try {\n        const shouldClear = cb();\n        if (shouldClear) {\n          clearInterval(intervalId);\n        }\n      } catch (error) {\n        clearInterval(intervalId);\n        window.dispatchEvent(new CustomEvent(\"acsbWidgetSpecificsError\", {\n          detail: error\n        }));\n      }\n    }\n  }, interval);\n  if (clearAfterTimeout) {\n    setTimeout(() => {\n      clearInterval(intervalId);\n    }, timeout);\n  }\n}\n/** file: setWidgetSpecificsOptions.js */\n\"use strict\";\n\nconst _window = window;\nfunction setWidgetSpecificsOptions(options) {\n  if (!_window.accessWidgetSpecificsOptions) {\n    _window.accessWidgetSpecificsOptions = {\n      ...options,\n      enable: true,\n      disableLegacy: typeof options.disableLegacy === \"object\" ? {\n        ...options.disableLegacy\n      } : options.disableLegacy,\n      modifications: options.modifications ? {\n        classifier: options.modifications.classifier ? [...options.modifications.classifier] : undefined,\n        auditor: options.modifications.auditor ? [...options.modifications.auditor] : undefined\n      } : undefined\n    };\n    return;\n  }\n  const current = _window.accessWidgetSpecificsOptions;\n  current.enable = true;\n  if (options.disableLegacy !== undefined) {\n    const shouldFullyDisable = options.disableLegacy === true || current.disableLegacy === true;\n    if (shouldFullyDisable) {\n      current.disableLegacy = true;\n    } else if (typeof options.disableLegacy === \"object\") {\n      current.disableLegacy = {\n        ...(typeof current.disableLegacy === \"object\" ? current.disableLegacy : {}),\n        ...options.disableLegacy\n      };\n    }\n  }\n  if (typeof options.onReady === \"function\") {\n    if (typeof current.onReady === \"function\") {\n      const previousOnReady = current.onReady;\n      current.onReady = () => {\n        var _options$onReady;\n        previousOnReady();\n        (_options$onReady = options.onReady) === null || _options$onReady === void 0 || _options$onReady.call(options);\n      };\n    } else {\n      current.onReady = options.onReady;\n    }\n  }\n  if (options.modifications) {\n    if (!current.modifications) {\n      current.modifications = {};\n    }\n    if (options.modifications.classifier) {\n      current.modifications.classifier = [...(current.modifications.classifier || []), ...(options.modifications.classifier || [])];\n    }\n    if (options.modifications.auditor) {\n      current.modifications.auditor = [...(current.modifications.auditor || []), ...(options.modifications.auditor || [])];\n    }\n  }\n}\n/** file: trapFocus.js */\n\"use strict\";\n\nfunction trapFocus(container) {\n  let interactives = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [\"a[href]\", \"button\", \"input\", \"select\", \"textarea\", '[tabindex]:not([tabindex=\"-1\"])'];\n  let filteringCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n  let trigger = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n  let closeSelector = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n  let onClose = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n  let onClosePreventDefault = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;\n  if (!container) return;\n  if (getAllFocusableElementsAsAnArray().length === 0) return;\n  function keydownTrapHandler(event) {\n    const allFocusableElements = getAllFocusableElementsAsAnArray();\n    if (allFocusableElements.length === 0) return;\n    const [firstElement] = allFocusableElements;\n    const [lastElement] = allFocusableElements.slice(-1);\n    if ((event === null || event === void 0 ? void 0 : event.code) === \"Tab\") {\n      if (event !== null && event !== void 0 && event.shiftKey) {\n        if (document.activeElement === firstElement) {\n          event.preventDefault();\n          lastElement === null || lastElement === void 0 || lastElement.focus();\n        }\n      } else {\n        if (document.activeElement === lastElement) {\n          event.preventDefault();\n          firstElement === null || firstElement === void 0 || firstElement.focus();\n        }\n      }\n    } else if (event.code === \"Escape\" && closeSelector) {\n      keydownCloseHandler(event);\n    }\n  }\n  container.addEventListener(\"keydown\", keydownTrapHandler);\n  function removeTrapFocus() {\n    container.removeEventListener(\"keydown\", keydownTrapHandler);\n  }\n  function getCloseButton() {\n    if (!closeSelector) return false;\n    const closeButton = container.querySelector(closeSelector);\n    if (!closeButton) return false;\n    return closeButton;\n  }\n  const closeButton = getCloseButton();\n  if (closeButton) {\n    closeButton.addEventListener(\"click\", keydownCloseHandler);\n    closeButton.addEventListener(\"keydown\", keydownCloseHandler);\n  }\n  function keydownCloseHandler(event) {\n    if (event.type === \"click\" || [\"Enter\", \"Space\", \"Escape\"].includes(event.code)) {\n      if (onClosePreventDefault) event.preventDefault();\n      trigger === null || trigger === void 0 || trigger.focus();\n      onClose === null || onClose === void 0 || onClose();\n    }\n  }\n  function removeCloseHandler() {\n    if (!closeButton) return;\n    closeButton.removeEventListener(\"click\", keydownCloseHandler);\n    closeButton.removeEventListener(\"keydown\", keydownCloseHandler);\n  }\n  function getAllFocusableElementsAsAnArray() {\n    let elements = Array.from(container.querySelectorAll(interactives.join(\", \")));\n    if (filteringCallback) {\n      elements = elements.filter(filteringCallback);\n    }\n    return elements;\n  }\n  return {\n    removeTrapFocus,\n    removeCloseHandler,\n    getAllFocusableElementsAsAnArray\n  };\n}\n\n/** file: fix-add-to-cart-dialog-fails-1-test.js */\n(function(){\ntry{\n\"use strict\";\n\nfunction ensureDialogAttributes(dialog, headingEl) {\n  if (!dialog) return;\n  if (dialog.getAttribute(\"role\") !== \"dialog\") dialog.setAttribute(\"role\", \"dialog\");\n  if (dialog.getAttribute(\"tabindex\") !== \"-1\" && dialog.getAttribute(\"tabindex\") !== \"0\") {\n    dialog.setAttribute(\"tabindex\", \"-1\");\n  }\n  if (!dialog.hasAttribute(\"aria-modal\")) dialog.setAttribute(\"aria-modal\", \"true\");\n  if (headingEl) {\n    if (!headingEl.id) {\n      headingEl.id = \"promo-dialog-title-\" + Math.random().toString(36).substr(2, 9);\n    }\n    dialog.setAttribute(\"aria-labelledby\", headingEl.id);\n    dialog.removeAttribute(\"aria-label\");\n  } else {\n    dialog.setAttribute(\"aria-label\", \"Your order qualifies for - Free GreatLitter\");\n  }\n}\nAJS.events.on(window, \"acsbActionEnabling\", function (e) {\n  if (e.detail.action === \"keyNav\") {\n    setTimeout(() => {\n      const cartDialog = document.querySelector(\".ui-dialog.mage-dropdown-dialog:has(> div[data-block='minicart'])\");\n      if (cartDialog) {\n        cartDialog.setAttribute(\"data-acsb\", \"\");\n      }\n    }, 3000);\n  }\n});\nfunction getPromoRoot(from) {\n  var _from$id, _from$querySelector;\n  if (from !== null && from !== void 0 && (_from$id = from.id) !== null && _from$id !== void 0 && _from$id.endsWith(\"-added-modal\")) return from;\n  return (from === null || from === void 0 || (_from$querySelector = from.querySelector) === null || _from$querySelector === void 0 ? void 0 : _from$querySelector.call(from, \"[id$='-added-modal']\")) || null;\n}\nsetWidgetSpecificsOptions({\n  modifications: {\n    classifier: [{\n      type: \"ignore\",\n      selector: \".ui-dialog.mage-dropdown-dialog:has(> div[data-block='minicart'])\"\n    }, {\n      type: \"ignore\",\n      selector: \".ui-dialog.mage-dropdown-dialog:has(> div[data-block='minicart']) *\"\n    }, {\n      type: \"ignore\",\n      selector: \"[id$='-added-modal']\"\n    }, {\n      type: \"ignore\",\n      selector: \"[id$='-added-modal'] *\"\n    }]\n  }\n});\nprofileEnabledInterval(\"accessMode\", () => {\n  if (document.body.dataset.acsbAddedModalFix) return true;\n  document.body.dataset.acsbAddedModalFix = \"true\";\n  let promoOpen = false;\n  let isRestoringFocus = false;\n  let focusCooldownTimer;\n  const getPromoDialog = () => document.querySelector(\"[id$='-added-modal'] [role='dialog']\");\n  const getCartContainer = () => document.querySelector(\".ui-dialog.mage-dropdown-dialog div[data-block='minicart']\");\n  const getCartClose = () => document.querySelector(\"#btn-minicart-close\");\n  const isCartOpen = () => {\n    const cart = getCartContainer();\n    return !!cart && window.getComputedStyle(cart).display !== \"none\";\n  };\n  const getFocusable = parent => {\n    if (!parent) return [];\n    return Array.from(parent.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])')).filter(el => {\n      const style = window.getComputedStyle(el);\n      return style.display !== \"none\" && style.visibility !== \"hidden\";\n    });\n  };\n  const setCartState = isPromoActive => {\n    const cart = getCartContainer();\n    if (!cart) return;\n    if (isPromoActive) {\n      cart.setAttribute(\"aria-hidden\", \"true\");\n      cart.setAttribute(\"inert\", \"true\");\n    } else {\n      cart.removeAttribute(\"aria-hidden\");\n      cart.removeAttribute(\"inert\");\n    }\n  };\n  document.addEventListener(\"focusin\", e => {\n    if (!promoOpen) return;\n    const promoDialog = getPromoDialog();\n    if (!promoDialog) return;\n    if (promoDialog.contains(e.target) || e.target === document || e.target === document.body) {\n      return;\n    }\n    e.preventDefault();\n    e.stopPropagation();\n    e.stopImmediatePropagation();\n    if (isRestoringFocus) {\n      e.target.blur();\n      return;\n    }\n    isRestoringFocus = true;\n    const closeBtn = promoDialog.querySelector(\"button[aria-label='Close popup']\");\n    setTimeout(() => {\n      if (closeBtn) {\n        closeBtn.focus({\n          preventScroll: true\n        });\n      } else {\n        promoDialog.focus({\n          preventScroll: true\n        });\n      }\n    }, 2000);\n    clearTimeout(focusCooldownTimer);\n    focusCooldownTimer = setTimeout(() => {\n      isRestoringFocus = false;\n    }, 2050);\n  }, true);\n  const closePromo = () => {\n    if (!promoOpen) return;\n    promoOpen = false;\n    const promoDialog = getPromoDialog();\n    if (promoDialog) promoDialog.removeAttribute(\"data-acsb-fixed\");\n    setCartState(false);\n    setTimeout(() => {\n      if (isCartOpen()) {\n        const closeBtn = getCartClose();\n        if (closeBtn && document.activeElement !== closeBtn) {\n          closeBtn.focus();\n        }\n      }\n    }, 10);\n  };\n  const handleTrapFocus = (e, dialog) => {\n    if (e.key !== \"Tab\") return;\n    const items = getFocusable(dialog);\n    if (!items.length) {\n      e.preventDefault();\n      return;\n    }\n    const firstElement = items[0];\n    const lastElement = items[items.length - 1];\n    if (e.shiftKey) {\n      if (document.activeElement === firstElement || document.activeElement === dialog) {\n        e.preventDefault();\n        lastElement.focus();\n      }\n    } else {\n      if (document.activeElement === lastElement) {\n        e.preventDefault();\n        firstElement.focus();\n      }\n    }\n  };\n  const openPromo = promoDialog => {\n    var _promoDialog$parentEl;\n    if (!promoDialog || promoDialog.dataset.acsbFixed) return;\n    promoDialog.setAttribute(\"data-acsb\", \"\");\n    promoDialog.dataset.acsbFixed = \"true\";\n    const headingEl = promoDialog.querySelector(\"h2.lr5pro-modal-title\");\n    ensureDialogAttributes(promoDialog, headingEl);\n    if (typeof forceNavigable === \"function\") forceNavigable(promoDialog);\n    getFocusable(promoDialog).forEach(el => {\n      if (typeof forceNavigable === \"function\") forceNavigable(el);\n      if (el.getAttribute(\"tabindex\") === \"-1\") el.removeAttribute(\"tabindex\");\n    });\n    const overlay = (_promoDialog$parentEl = promoDialog.parentElement) === null || _promoDialog$parentEl === void 0 ? void 0 : _promoDialog$parentEl.querySelector(\"[class$='-modal-overlay']\");\n    if (overlay && typeof forceUnnavigable === \"function\") forceUnnavigable(overlay);\n    const closeBtn = promoDialog.querySelector(\"button[class$='-close']\");\n    closeBtn.setAttribute(\"aria-label\", \"Close\");\n    setCartState(true);\n    promoOpen = true;\n    setTimeout(() => {\n      isRestoringFocus = true;\n      if (closeBtn) {\n        closeBtn.focus({\n          preventScroll: true\n        });\n      } else {\n        promoDialog.focus({\n          preventScroll: true\n        });\n      }\n      setTimeout(() => {\n        isRestoringFocus = false;\n      }, 150);\n    }, 2500);\n    closeBtn === null || closeBtn === void 0 || closeBtn.addEventListener(\"click\", closePromo);\n    closeBtn === null || closeBtn === void 0 || closeBtn.addEventListener(\"keydown\", e => {\n      if (e.key === \"Enter\" || e.key === \" \") {\n        e.preventDefault();\n        e.stopImmediatePropagation();\n        closePromo();\n        closeBtn.click();\n      }\n    }, true);\n    promoDialog.addEventListener(\"keydown\", e => {\n      if (e.key === \"Escape\") {\n        e.preventDefault();\n        e.stopImmediatePropagation();\n        closePromo();\n        closeBtn === null || closeBtn === void 0 || closeBtn.click();\n        return;\n      }\n      handleTrapFocus(e, promoDialog);\n    }, true);\n  };\n  openPromo(getPromoDialog());\n  new MutationObserver(mutations => {\n    mutations.forEach(mutation => {\n      mutation.addedNodes.forEach(node => {\n        if (node.nodeType !== Node.ELEMENT_NODE) return;\n        const root = getPromoRoot(node);\n        if (root) {\n          const dialog = root.querySelector(\"[role='dialog']\");\n          if (dialog) openPromo(dialog);\n        }\n      });\n      mutation.removedNodes.forEach(node => {\n        if (node.nodeType !== Node.ELEMENT_NODE) return;\n        if (getPromoRoot(node)) closePromo();\n      });\n    });\n  }).observe(document.body, {\n    childList: true,\n    subtree: true\n  });\n  return true;\n});\n}catch(ex){}\n})();\n/** file: fix-cart-control-button.js */\n(function(){\ntry{\n\"use strict\";\n\nsetWidgetSpecificsOptions({\n  disableLegacy: {\n    processForms: true,\n    keyNav: true,\n    navigationProcessElement: true\n  },\n  modifications: {\n    classifier: [{\n      type: \"detection\",\n      selector: \".minicart-wrapper .action.showcart\",\n      detectorId: \"perceivable-component-button\",\n      expected: true\n    }, {\n      type: \"detection\",\n      selector: \".minicart-wrapper .action.showcart\",\n      detectorId: \"perceivable-component-link\",\n      expected: false\n    }, {\n      type: \"detection\",\n      selector: \".minicart-wrapper .action.showcart\",\n      detectorId: \"perceivable-component-link-navigation\",\n      expected: false\n    }, {\n      type: \"ignore\",\n      selector: \"#minicart-content-wrapper\"\n    }]\n  }\n});\nprofileEnabledInterval(\"accessMode\", () => {\n  var _cartDialog$parentEle;\n  const cartControl = document.querySelector(\".minicart-wrapper .action.showcart\");\n  const cartDialog = document.querySelector(\"#minicart-content-wrapper\");\n  if (!cartControl || !cartDialog) return false;\n  const closeButton = cartDialog.querySelector(\"#btn-minicart-close\");\n  const cartDialogContainer = (_cartDialog$parentEle = cartDialog.parentElement) === null || _cartDialog$parentEle === void 0 ? void 0 : _cartDialog$parentEle.parentElement;\n  if (cartDialogContainer) {\n    cartDialogContainer.removeAttribute(\"role\");\n    cartDialogContainer.removeAttribute(\"aria-modal\");\n    cartDialogContainer.removeAttribute(\"aria-label\");\n    cartDialogContainer.removeAttribute(\"tabindex\");\n  }\n  cartDialog.setAttribute(\"aria-label\", \"Your Cart\");\n  cartDialog.setAttribute(\"role\", \"dialog\");\n  cartDialog.setAttribute(\"aria-modal\", \"true\");\n  trapFocus(cartDialog);\n  cartControl.addEventListener(\"keydown\", e => {\n    if (e.code === \"Space\" || e.code === \"Enter\") {\n      e.preventDefault();\n      e.stopPropagation();\n      e.stopImmediatePropagation();\n      cartControl.click();\n      setTimeout(() => {\n        closeButton === null || closeButton === void 0 || closeButton.focus();\n      }, 1000);\n    }\n  });\n  if (closeButton) {\n    closeButton.addEventListener(\"keydown\", e => {\n      if (e.code === \"Space\" || e.code === \"Enter\") {\n        closeCartDialog(e, closeButton);\n      }\n    });\n    cartDialog.addEventListener(\"keydown\", e => {\n      if (e.code === \"Escape\") {\n        closeCartDialog(e, closeButton);\n      }\n    });\n  }\n  function trapFocus(container) {\n    const focusableSelectors = 'a, button, input, textarea, select, [tabindex]:not([tabindex=\"-1\"])';\n    container.addEventListener(\"keydown\", e => {\n      if (e.key !== \"Tab\") return;\n      const focusableElements = Array.from(container.querySelectorAll(focusableSelectors)).filter(el => !el.disabled && el.offsetParent !== null);\n      if (focusableElements.length === 0) return;\n      const first = focusableElements[0];\n      const last = focusableElements[focusableElements.length - 1];\n      if (e.shiftKey && document.activeElement === first) {\n        e.preventDefault();\n        last.focus();\n      } else if (!e.shiftKey && document.activeElement === last) {\n        e.preventDefault();\n        first.focus();\n      }\n    });\n  }\n  function closeCartDialog(e, closeButton) {\n    e.preventDefault();\n    e.stopPropagation();\n    e.stopImmediatePropagation();\n    closeButton.click();\n    setTimeout(() => {\n      cartControl.focus();\n    }, 500);\n  }\n  return true;\n});\n}catch(ex){}\n})();\n/** file: fix-checkout-form-controls-fails-1-test.js */\n(function(){\ntry{\n\"use strict\";\n\nif (window.location.pathname.includes(\"/checkout\")) {\n  setWidgetSpecificsOptions({\n    disableLegacy: {\n      processForms: true\n    },\n    modifications: {\n      classifier: [{\n        type: \"ignore\",\n        selector: \"#checkout-email, #shipping\"\n      }, {\n        type: \"ignore\",\n        selector: \"#checkout-email *, #shipping *\"\n      }, {\n        type: \"ignore\",\n        selector: \"input#discount-code\"\n      }]\n    }\n  });\n  AJS.events.on(window, \"acsbActionEnabling\", function (e) {\n    if (e.detail.action === \"keyNav\") {\n      const checkOutRoot = document.getElementById(\"checkout\");\n      if (checkOutRoot) {\n        checkOutRoot.setAttribute(\"data-acsb\", \"\");\n      }\n    }\n  });\n  profileEnabledInterval(\"accessMode\", () => {\n    const checkoutPage = document.getElementById(\"checkout\");\n    const checkoutRoot = document.querySelector(\"#checkout .main-column-wrapper\");\n    const checkout = document.querySelector(\"#checkoutSteps\");\n    const emailStep = checkout === null || checkout === void 0 ? void 0 : checkout.querySelector(\"#checkout-email\");\n    const shippingStep = checkout === null || checkout === void 0 ? void 0 : checkout.querySelector(\"#shipping\");\n    if (!checkoutPage || !checkoutRoot || !checkout || !emailStep || !shippingStep) {\n      return false;\n    }\n    if (checkout.dataset.acsbCheckoutFormFix) {\n      return true;\n    }\n    checkout.dataset.acsbCheckoutFormFix = \"true\";\n    const steps = [emailStep, shippingStep];\n    function queryInSteps(selector) {\n      const matches = [];\n      steps.forEach(step => {\n        step.querySelectorAll(selector).forEach(el => {\n          matches.push(el);\n        });\n      });\n      return matches;\n    }\n    function shouldSkipControl(control) {\n      if (control.disabled || control.type === \"hidden\") {\n        return true;\n      }\n      if (control.style.display === \"none\") {\n        return true;\n      }\n      if (control.classList.contains(\"g-recaptcha-response\")) {\n        return true;\n      }\n      if (control.closest(\"[style*='display: none'], [style*='display:none']\")) {\n        return true;\n      }\n      return false;\n    }\n    function isFormControl(element) {\n      return [\"INPUT\", \"SELECT\", \"TEXTAREA\", \"BUTTON\"].includes(element.tagName);\n    }\n    function isExpressControl(element) {\n      if (element.classList.contains(\"amazonpay-button-focusable\")) {\n        return true;\n      }\n      if (element.closest(\"[id^='shop-pay-container']\") && element.tagName === \"BUTTON\") {\n        return true;\n      }\n      if (element.closest(\"#als_express_checkout\") && element.tagName === \"A\") {\n        return true;\n      }\n      return false;\n    }\n    function isAllowedTabStop(element) {\n      if (isExpressControl(element)) {\n        return true;\n      }\n      if (element.getAttribute(\"role\") === \"button\") {\n        return true;\n      }\n      if (element.tagName === \"A\" || element.tagName === \"IFRAME\") {\n        return true;\n      }\n      if (isFormControl(element) && !shouldSkipControl(element)) {\n        return true;\n      }\n      return false;\n    }\n    function makeDecorative(media) {\n      if (media.tagName === \"IMG\" && media.getAttribute(\"alt\") !== \"\") {\n        media.setAttribute(\"alt\", \"\");\n      }\n      if (media.getAttribute(\"role\") !== \"presentation\") {\n        media.setAttribute(\"role\", \"presentation\");\n      }\n      if (media.hasAttribute(\"aria-label\")) {\n        media.removeAttribute(\"aria-label\");\n      }\n    }\n    function stripUnwantedTabindex(element) {\n      if (!element || isAllowedTabStop(element)) {\n        return;\n      }\n      if (element.hasAttribute(\"tabindex\")) {\n        element.removeAttribute(\"tabindex\");\n      }\n      if (element.getAttribute(\"data-acsb-force-navigable\") === \"true\") {\n        element.removeAttribute(\"data-acsb-now-navigable\");\n        element.removeAttribute(\"data-acsb-force-navigable\");\n        element.removeAttribute(\"data-acsb-navigable\");\n      }\n    }\n    function stripNonInteractiveTabStops() {\n      stripUnwantedTabindex(emailStep);\n      stripUnwantedTabindex(shippingStep);\n      stripUnwantedTabindex(document.querySelector(\"#co-shipping-form\"));\n      stripUnwantedTabindex(document.querySelector(\"div.column-wrapper.sidebar-column-wrapper div.cart-summary\"));\n      checkoutPage.querySelectorAll(\"table[tabindex], caption[tabindex], [role='presentation'][tabindex]\").forEach(stripUnwantedTabindex);\n    }\n    function removeAutoSubmitNotices() {\n      queryInSteps(\"form[aria-labelledby]\").forEach(form => {\n        var _srNotice$textContent;\n        const labelledBy = form.getAttribute(\"aria-labelledby\");\n        if (!labelledBy) {\n          return;\n        }\n        const srNotice = document.getElementById(labelledBy);\n        if (!(srNotice !== null && srNotice !== void 0 && (_srNotice$textContent = srNotice.textContent) !== null && _srNotice$textContent !== void 0 && _srNotice$textContent.includes(\"automatically submit\"))) {\n          return;\n        }\n        form.removeAttribute(\"aria-labelledby\");\n        srNotice.remove();\n      });\n    }\n    function revealShippingMethodForm() {\n      const shippingMethodForm = shippingStep.querySelector(\"#co-shipping-method-form\");\n      if (!(shippingMethodForm !== null && shippingMethodForm !== void 0 && shippingMethodForm.querySelector(\"input[type='radio']\"))) {\n        return;\n      }\n      if (shippingMethodForm.getAttribute(\"aria-hidden\") === \"true\") {\n        shippingMethodForm.removeAttribute(\"aria-hidden\");\n      }\n    }\n    function makeControlsNavigable() {\n      queryInSteps(\"input:not([type='hidden']), select, textarea, button\").forEach(control => {\n        if (shouldSkipControl(control)) {\n          return;\n        }\n        forceNavigable(control);\n      });\n    }\n    function reverseExpressCheckoutOrder() {\n      const options = document.querySelector(\"#checkout-express-checkout .express-checkout-options\");\n      if (!options) {\n        return;\n      }\n      const amazon = options.querySelector(\"#minicart-amazon-pay-button\") || options.querySelector(\".amazon-button-container\");\n      const paypal = options.querySelector(\".paypal\");\n      const shopPay = options.querySelector(\"[id^='shop-pay-container']\");\n      if (!amazon || !paypal || !shopPay) {\n        return;\n      }\n      if (options.firstElementChild !== shopPay) {\n        options.insertBefore(shopPay, options.firstElementChild);\n      }\n      if (options.lastElementChild !== amazon) {\n        options.appendChild(amazon);\n      }\n    }\n    function makeExpressCheckoutNavigable() {\n      reverseExpressCheckoutOrder();\n      const amazonButton = document.querySelector(\"#PayWithAmazon-Cart div.amazonpay-button-focusable\");\n      if (amazonButton) {\n        amazonButton.parentElement.removeAttribute(\"tabindex\");\n        amazonButton.parentElement.removeAttribute(\"role\");\n        forceNavigable(amazonButton);\n      }\n      const shopPayHost = document.querySelector(\"[id^='shop-pay-container']\");\n      const shopPay = shopPayHost === null || shopPayHost === void 0 ? void 0 : shopPayHost.querySelector(\"button\");\n      if (shopPay) {\n        forceNavigable(shopPay);\n      }\n      const affirmHost = document.getElementById(\"als_express_checkout\");\n      const affirmLink = affirmHost === null || affirmHost === void 0 ? void 0 : affirmHost.querySelector(\"a\");\n      if (affirmLink) {\n        forceNavigable(affirmLink);\n      }\n    }\n    function fixRadioAnnouncements() {\n      checkout.querySelectorAll(\".payment-method-title, .shipping-method-item\").forEach(row => {\n        row.querySelectorAll(\"img, svg\").forEach(makeDecorative);\n      });\n    }\n    function bindFieldErrors() {\n      queryInSteps(\"input, select\").forEach(input => {\n        if (shouldSkipControl(input)) {\n          return;\n        }\n        const field = input.closest(\".field\");\n        if (!field) {\n          return;\n        }\n        const error = field.querySelector(\".field-error\");\n        const warning = field.querySelector(\".message.warning\");\n        const message = error || warning;\n        if (!message) {\n          if (input.getAttribute(\"aria-invalid\") === \"true\") {\n            input.removeAttribute(\"aria-invalid\");\n          }\n          const describedBy = input.getAttribute(\"aria-describedby\");\n          if (describedBy !== null && describedBy !== void 0 && describedBy.startsWith(\"error-\") || describedBy !== null && describedBy !== void 0 && describedBy.startsWith(\"acsb-warn-\")) {\n            input.removeAttribute(\"aria-describedby\");\n          }\n          return;\n        }\n        if (!message.id) {\n          const suffix = input.id || input.getAttribute(\"name\") || \"field\";\n          message.id = error ? \"error-\".concat(suffix) : \"acsb-warn-\".concat(suffix);\n        }\n        if (message.getAttribute(\"role\") !== \"alert\") {\n          message.setAttribute(\"role\", \"alert\");\n        }\n        if (input.getAttribute(\"aria-describedby\") !== message.id) {\n          input.setAttribute(\"aria-describedby\", message.id);\n        }\n        if (error && input.getAttribute(\"aria-invalid\") !== \"true\") {\n          input.setAttribute(\"aria-invalid\", \"true\");\n        }\n      });\n    }\n    function fixCheckout() {\n      stripNonInteractiveTabStops();\n      removeAutoSubmitNotices();\n      revealShippingMethodForm();\n      makeControlsNavigable();\n      makeExpressCheckoutNavigable();\n      fixRadioAnnouncements();\n      bindFieldErrors();\n    }\n    let scheduled = false;\n    function scheduleFix() {\n      if (scheduled) {\n        return;\n      }\n      scheduled = true;\n      requestAnimationFrame(() => {\n        scheduled = false;\n        fixCheckout();\n      });\n    }\n    fixCheckout();\n    new MutationObserver(mutations => {\n      mutations.forEach(mutation => {\n        const target = mutation.target;\n        if (mutation.type === \"attributes\") {\n          if (!isAllowedTabStop(target) && (mutation.attributeName === \"tabindex\" || mutation.attributeName === \"data-acsb-now-navigable\")) {\n            stripUnwantedTabindex(target);\n            return;\n          }\n          if (isExpressControl(target) && target.getAttribute(\"data-acsb-now-navigable\") !== \"true\") {\n            forceNavigable(target);\n            return;\n          }\n          if ((isFormControl(target) || isExpressControl(target)) && target.getAttribute(\"tabindex\") === \"-1\" && !shouldSkipControl(target)) {\n            forceNavigable(target);\n            return;\n          }\n          if (mutation.attributeName === \"tabindex\" || mutation.attributeName === \"data-acsb-now-navigable\") {\n            return;\n          }\n        }\n        scheduleFix();\n      });\n    }).observe(checkoutPage, {\n      childList: true,\n      subtree: true,\n      attributes: true,\n      attributeFilter: [\"tabindex\", \"data-acsb-now-navigable\", \"class\", \"aria-hidden\", \"aria-labelledby\"]\n    });\n    return true;\n  });\n}\n}catch(ex){}\n})();\n/** file: fix-promotion-link-announcement-issue.js */\n(function(){\ntry{\n\"use strict\";\n\nsetWidgetSpecificsOptions({\n  modifications: {\n    classifier: [{\n      type: \"detection\",\n      detectorId: \"perceivable-component-button\",\n      selector: \".slider .slide .hidden-mobile\",\n      expected: false\n    }, {\n      type: \"detection\",\n      detectorId: \"perceivable-component-link\",\n      selector: \".slider .slide .hidden-mobile\",\n      expected: true\n    }]\n  }\n});\nprofileEnabledInterval(\"accessMode\", () => {\n  setTimeout(() => {\n    var _promotionLink$parent;\n    const promotionLink = document.querySelector(\".slider .slide .hidden-mobile\");\n    const accessiblePromotionLink = document.querySelector(\"a.visually-hidden\");\n    const promotionAnchor = (_promotionLink$parent = promotionLink.parentElement) === null || _promotionLink$parent === void 0 ? void 0 : _promotionLink$parent.querySelector(\"a\");\n    if (!promotionAnchor || !promotionLink) return false;\n    promotionLink.setAttribute(\"role\", \"link\");\n    promotionLink.setAttribute(\"tabindex\", \"0\");\n    forceNavigable(promotionLink);\n    if (accessiblePromotionLink) {\n      forceUnnavigable(accessiblePromotionLink);\n    }\n    promotionLink.addEventListener(\"keydown\", e => {\n      if (e.code !== \"Enter\" && e.code !== \"Space\") return;\n      e.preventDefault();\n      e.stopImmediatePropagation();\n      promotionAnchor.click();\n    });\n    return true;\n  }, 1500);\n});\n}catch(ex){}\n})();\n/** file: fix-quantity-fails-1-test.js */\n(function(){\ntry{\n\"use strict\";\n\nsetWidgetSpecificsOptions({\n  modifications: {\n    classifier: [{\n      type: \"ignore\",\n      selector: \"#minicart-content-wrapper input.cart-item-qty\"\n    }]\n  }\n});\nAJS.events.on(window, \"acsbActionEnabling\", function (e) {\n  if (e.detail.action === \"keyNav\") {\n    const cartDialog = document.querySelector(\"#minicart-content-wrapper\");\n    if (cartDialog) {\n      cartDialog.setAttribute(\"data-acsb\", \"\");\n    }\n  }\n});\nprofileEnabledInterval(\"accessMode\", () => {\n  const cartDialog = document.querySelector(\"#minicart-content-wrapper\");\n  if (!cartDialog) return false;\n  const minicartItemsWrapper = cartDialog.querySelector(\".minicart-items-wrapper.minicart-body\");\n  if (!minicartItemsWrapper) return false;\n  let activeQuantityCartItemId = null;\n  let activeControlType = null;\n  function setActiveControl(controlType, cartItemId) {\n    if (!cartItemId) return;\n    activeQuantityCartItemId = cartItemId;\n    activeControlType = controlType;\n  }\n  function trackControlInteraction(control, controlType) {\n    var _control$closest;\n    const cartItemId = (_control$closest = control.closest(\".details-qty\")) === null || _control$closest === void 0 || (_control$closest = _control$closest.querySelector(\"input.cart-item-qty\")) === null || _control$closest === void 0 ? void 0 : _control$closest.getAttribute(\"data-cart-item\");\n    setActiveControl(controlType, cartItemId);\n  }\n  function fixQuantityControls(container) {\n    container.querySelectorAll(\".details-qty\").forEach(qtyContainer => {\n      const input = qtyContainer.querySelector(\"input.cart-item-qty\");\n      const decreaseBtn = qtyContainer.querySelector(\".quantity-control-button.subtract\");\n      const increaseBtn = qtyContainer.querySelector(\".quantity-control-button.add\");\n      if (input) {\n        if (input.getAttribute(\"aria-label\") !== \"Quantity\") {\n          input.setAttribute(\"aria-label\", \"Quantity\");\n        }\n        const numberInputControl = input.closest(\".number-input-control\");\n        if (numberInputControl && !numberInputControl.hasAttribute(\"data-persist\")) {\n          numberInputControl.setAttribute(\"data-persist\", \"true\");\n        }\n        if (!input.dataset.acsbQtyFix) {\n          input.dataset.acsbQtyFix = \"true\";\n          input.addEventListener(\"focus\", () => trackControlInteraction(input, \"input\"));\n          input.addEventListener(\"input\", () => trackControlInteraction(input, \"input\"));\n        }\n      }\n      [decreaseBtn, increaseBtn].forEach(button => {\n        if (!button || button.dataset.acsbQtyFix) return;\n        const controlType = button.classList.contains(\"subtract\") ? \"decrease\" : \"increase\";\n        button.dataset.acsbQtyFix = \"true\";\n        button.addEventListener(\"focus\", () => trackControlInteraction(button, controlType));\n        button.addEventListener(\"click\", () => trackControlInteraction(button, controlType));\n      });\n    });\n  }\n  function restoreQuantityFocus() {\n    var _minicartItemsWrapper;\n    if (!activeQuantityCartItemId || !activeControlType) return;\n    const qtyContainer = (_minicartItemsWrapper = minicartItemsWrapper.querySelector(\"input.cart-item-qty[data-cart-item=\\\"\".concat(activeQuantityCartItemId, \"\\\"]\"))) === null || _minicartItemsWrapper === void 0 ? void 0 : _minicartItemsWrapper.closest(\".details-qty\");\n    if (!qtyContainer) return;\n    const controlSelectors = {\n      decrease: \".quantity-control-button.subtract\",\n      input: \"input.cart-item-qty\",\n      increase: \".quantity-control-button.add\"\n    };\n    const control = qtyContainer.querySelector(controlSelectors[activeControlType]);\n    if (control && cartDialog.contains(control) && document.activeElement !== control) {\n      setTimeout(() => {\n        control.focus();\n      }, 50);\n    }\n  }\n  if (!cartDialog.dataset.acsbQtyKeyFix) {\n    cartDialog.dataset.acsbQtyKeyFix = \"true\";\n    cartDialog.addEventListener(\"keydown\", e => {\n      const quantityButton = e.target.closest(\".quantity-control-button\");\n      if (!quantityButton) return;\n      if (e.code === \"Space\" || e.code === \"Enter\") {\n        e.preventDefault();\n        e.stopPropagation();\n        e.stopImmediatePropagation();\n        const controlType = quantityButton.classList.contains(\"subtract\") ? \"decrease\" : \"increase\";\n        trackControlInteraction(quantityButton, controlType);\n        quantityButton.click();\n      }\n    }, true);\n    const closeButton = cartDialog.querySelector(\"#btn-minicart-close\");\n    closeButton === null || closeButton === void 0 || closeButton.addEventListener(\"click\", () => {\n      activeQuantityCartItemId = null;\n      activeControlType = null;\n    });\n  }\n  fixQuantityControls(minicartItemsWrapper);\n  if (!minicartItemsWrapper.dataset.acsbQtyObserver) {\n    minicartItemsWrapper.dataset.acsbQtyObserver = \"true\";\n    const minicartItemsObserver = new MutationObserver(mutations => {\n      const hasDomChanges = mutations.some(mutation => mutation.type === \"childList\" && (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0));\n      if (!hasDomChanges) return;\n      fixQuantityControls(minicartItemsWrapper);\n      restoreQuantityFocus();\n    });\n    minicartItemsObserver.observe(minicartItemsWrapper, {\n      childList: true,\n      subtree: true\n    });\n  }\n  return true;\n});\n}catch(ex){}\n})();\n/** file: fix-search-dialog-fails-3-tests.js */\n(function(){\ntry{\n\"use strict\";\n\nif (!isMobile()) {\n  setWidgetSpecificsOptions({\n    modifications: {\n      classifier: [{\n        type: \"detection\",\n        detectorId: \"perceivable-component-dialog-modal\",\n        selector: \".block-search\",\n        expected: true\n      }, {\n        type: \"ignore\",\n        selector: \".block-search\"\n      }]\n    }\n  });\n  AJS.events.on(window, \"acsbActionEnabling\", function (e) {\n    if (e.detail.action !== \"keyNav\") return;\n    const searchDialog = document.querySelector(\".block-search\");\n    if (searchDialog) {\n      searchDialog.setAttribute(\"data-acsb\", \"\");\n    }\n  });\n  profileEnabledInterval(\"accessMode\", () => {\n    const searchDialog = document.querySelector(\".block-search\");\n    const searchControl = document.querySelector(\"button.show-search\");\n    const searchInput = searchDialog === null || searchDialog === void 0 ? void 0 : searchDialog.querySelector(\"#search\");\n    const closeButton = searchDialog === null || searchDialog === void 0 ? void 0 : searchDialog.querySelector(\".action.close\");\n    const searchResultContainer = searchDialog === null || searchDialog === void 0 ? void 0 : searchDialog.querySelector(\"#search_autocomplete\");\n    if (!searchDialog || !searchControl || !searchInput || !closeButton || !searchResultContainer) {\n      return false;\n    }\n    if (searchDialog.dataset.acsbSearchDialogFix) {\n      return true;\n    }\n    searchDialog.dataset.acsbSearchDialogFix = \"true\";\n    searchControl.setAttribute(\"role\", \"button\");\n    searchControl.setAttribute(\"aria-haspopup\", \"dialog\");\n    searchDialog.setAttribute(\"role\", \"dialog\");\n    searchDialog.setAttribute(\"aria-label\", \"Search\");\n    searchDialog.setAttribute(\"aria-modal\", \"true\");\n    searchDialog.setAttribute(\"data-acsb-overlay\", \"popup\");\n    searchInput.addEventListener(\"blur\", event => {\n      event.preventDefault();\n      event.stopPropagation();\n      event.stopImmediatePropagation();\n    }, {\n      capture: true\n    });\n    closeButton.setAttribute(\"role\", \"button\");\n    closeButton.addEventListener(\"keydown\", event => {\n      if (event.code === \"Tab\" && !event.shiftKey && document.activeElement === closeButton) {\n        event.preventDefault();\n        event.stopPropagation();\n        event.stopImmediatePropagation();\n        searchInput.focus();\n      }\n    }, {\n      capture: true\n    });\n    searchInput.addEventListener(\"keydown\", event => {\n      if (event.code === \"Tab\" && event.shiftKey) {\n        event.preventDefault();\n        event.stopPropagation();\n        event.stopImmediatePropagation();\n      }\n    }, {\n      capture: true\n    });\n    searchDialog.addEventListener(\"focusout\", () => {\n      setTimeout(() => {\n        const isOpen = getComputedStyle(searchDialog).display !== \"none\";\n        if (!isOpen) {\n          searchControl.focus();\n        }\n      }, 500);\n    });\n    const resultObserver = new MutationObserver(() => {\n      const options = searchResultContainer === null || searchResultContainer === void 0 ? void 0 : searchResultContainer.querySelectorAll(\"[role='option']\");\n      options.forEach(option => {\n        if (option.dataset.handled) return;\n        option.setAttribute(\"handled\", \"true\");\n        forceNavigable(option);\n        option.setAttribute(\"role\", \"link\");\n        option.addEventListener(\"keydown\", event => {\n          if (event.code === \"Enter\" || event.code === \"Space\") {\n            event.preventDefault();\n            event.stopPropagation();\n            event.stopImmediatePropagation();\n            option.click();\n          }\n        }, {\n          capture: true\n        });\n      });\n    });\n    resultObserver.observe(searchResultContainer, {\n      childList: true,\n      subtree: true\n    });\n    return true;\n  });\n}\n}catch(ex){}\n})();\n/** file: fix-search-field-fails-1-test.js */\n(function(){\ntry{\n\"use strict\";\n\nif (!isMobile()) {\n  profileEnabledInterval(\"accessMode\", () => {\n    const searchInput = document.querySelector(\"input#search.input-text\");\n    if (!searchInput) return false;\n    const ariaDescribedBy = searchInput.getAttribute(\"aria-describedby\");\n    if (ariaDescribedBy) {\n      ariaDescribedBy.split(/\\s+/).forEach(id => {\n        var _document$getElementB;\n        if (id === \"instructions\") return;\n        (_document$getElementB = document.getElementById(id)) === null || _document$getElementB === void 0 || _document$getElementB.remove();\n      });\n      searchInput.removeAttribute(\"aria-describedby\");\n    }\n    addSearchboxInstructions(searchInput);\n    if (searchInput.hasAttribute(\"aria-expanded\")) {\n      searchInput.removeAttribute(\"aria-expanded\");\n    }\n    const inputObserver = new MutationObserver(mutations => {\n      mutations.forEach(_ref => {\n        let {\n          attributeName\n        } = _ref;\n        if (attributeName === \"aria-expanded\") {\n          if (searchInput.hasAttribute(\"aria-expanded\")) {\n            searchInput.removeAttribute(\"aria-expanded\");\n          }\n        }\n      });\n    });\n    inputObserver.observe(searchInput, {\n      attributes: true,\n      attributeFilter: [\"aria-expanded\"]\n    });\n    return true;\n  });\n}\n}catch(ex){}\n})();\n/** file: menu-accessibility.js */\n(function(){\ntry{\n\"use strict\";\n\nsetWidgetSpecificsOptions({\n  modifications: {\n    classifier: [{\n      type: \"detection\",\n      selector: \"header nav#desktop-menu #menu li.level-top.parent > a\",\n      detectorId: \"perceivable-component-link\",\n      expected: false\n    }, {\n      type: \"detection\",\n      selector: \"header nav#desktop-menu #menu li.level-top.parent > a\",\n      detectorId: \"perceivable-component-button\",\n      expected: true\n    }]\n  }\n});\nprofileEnabledInterval(\"accessMode\", () => {\n  const menuWrapper = document.querySelector(\"header nav#desktop-menu #menu\");\n  if (menuWrapper) {\n    const subMenuWrappers = menuWrapper.querySelectorAll(\":scope > li > div\");\n    subMenuWrappers.forEach(subMenuWrapper => {\n      const shadowroot = subMenuWrapper.shadowRoot;\n      if (shadowroot) {\n        const learnMoreLinks = [...shadowroot.querySelectorAll(\"ul > li > a\")].filter(link => link.textContent.trim() === \"Learn\");\n        learnMoreLinks.forEach(learnMoreLink => {\n          const href = learnMoreLink.getAttribute(\"href\");\n          if (href) {\n            const slug = new URL(href).pathname.split(\"/\").filter(Boolean).pop();\n            const title = slug.replace(/-/g, \" \").replace(/\\b\\w/g, char => char.toUpperCase());\n            if (title) {\n              learnMoreLink.setAttribute(\"aria-label\", \"Learn more about \".concat(title));\n              learnMoreLink.textContent = \"Learn more about \".concat(title, \"  \");\n            }\n          }\n        });\n      }\n    });\n    return true;\n  }\n});\n}catch(ex){}\n})();\n\n}catch(ex){}\n})();\n\n</script><style>\n\n</style>","addonAnalytics":true,"aiAssistant":false,"blockMeta":false,"blockImages":false,"blockStyles":false,"blockTextSimplifier":false,"widgetSettings":{"consistentHelpData":[],"copilotChat":true,"disableBgProcess":false,"footerHtml":"","hideComponents":[],"hideMobile":true,"hideTrigger":true,"language":"en","leadColor":"#146FF8","mobile":{"triggerOffsetX":3,"triggerOffsetY":3,"triggerPositionX":"right","triggerPositionY":"bottom","triggerRadius":"50%","triggerSize":"medium","triggerIcon":"people"},"position":"right","remoteAnalytics":true,"statementLink":"","statementVariant":"default","triggerColor":"#146ff8","triggerIcon":"people","triggerOffsetX":20,"triggerOffsetY":20,"triggerPositionX":"right","triggerPositionY":"bottom","triggerRadius":"50%","triggerSize":"medium"},"featureFlags":{"text-simplifier":false,"classification-provider":true,"ai-assistant":true}}