{
  "version": 3,
  "sources": ["/cdn/shop/t/143/assets/gn-collection-scroll.js?gn_revision=20261108-3"],
  "sourcesContent": ["(() => {\n  if (customElements.get('gn-collection-scroll')) return;\n  const cleanURL = (input) => {\n    const url = new URL(input, location.href);\n    url.searchParams.delete('section_id');\n    url.searchParams.delete('sections');\n    for (const [name, value] of [...url.searchParams]) {\n      if (name.startsWith('filter.') && value === '') url.searchParams.delete(name);\n    }\n    url.hash = '';\n    return url;\n  };\n  const keyFor = (input) => {\n    const url = cleanURL(input);\n    for (const name of [...url.searchParams.keys()]) {\n      if (name !== 'sort_by' && !name.startsWith('filter.')) url.searchParams.delete(name);\n    }\n    url.searchParams.sort();\n    return url.pathname + url.search;\n  };\n  class CollectionScroll extends HTMLElement {\n    connectedCallback() {\n      requestAnimationFrame(() => this.init());\n    }\n    async init() {\n      if (!this.isConnected || this.started) return;\n      this.gridSelector = this.dataset.grid || '#product-grid';\n      this.snapshotKey = this.dataset.snapshotKey || 'gn-collection-snapshot';\n      this.grid = this.querySelector(this.gridSelector);\n      this.controls = this.querySelector('.gn-scroll-controls');\n      if (!this.grid || !this.controls || !('IntersectionObserver' in window)) return;\n      this.started = true;\n      this.key = keyFor(location.href);\n      this.pages = [cleanURL(location.href).href];\n      this.next = this.dataset.next;\n      this.offset = Number(this.dataset.offset);\n      this.more = this.querySelector('[data-gn-more]');\n      this.status = this.querySelector('[data-gn-status]');\n      this.count = this.querySelector('[data-gn-count]');\n      this.events = new AbortController();\n      const options = { signal: this.events.signal };\n      this.addEventListener('click', (event) => this.onClick(event), options);\n      this.navigation = this.querySelector('.gn-scroll-links');\n      if (this.navigation) {\n        const topButton = this.navigation.querySelector('[data-gn-top]');\n        const updateTopButton = () => {\n          this.topButtonFrame = null;\n          this.navigation.style.display = window.scrollY < 600 ? 'none' : '';\n        };\n        updateTopButton();\n        window.addEventListener('scroll', () => {\n          if (this.topButtonFrame == null) this.topButtonFrame = requestAnimationFrame(updateTopButton);\n        }, { passive: true, signal: this.events.signal });\n        document.body.append(this.navigation);\n        this.navigation.addEventListener('click', (event) => this.onClick(event), options);\n      }\n      document.addEventListener('gn:collection-reset', () => this.stop(), options);\n      window.addEventListener('pagehide', () => this.save(this.navigationCard), options);\n      window.addEventListener('pageshow', (event) => {\n        if (event.persisted) { this.busy = false; this.update(); this.observe(); }\n      }, options);\n      this.controls.hidden = false;\n      this.classList.add('gn-scroll-ready');\n      this.update();\n      const state = history.state?.gnScroll;\n      if (state?.key === this.key && Date.now() - state.time < 1800000) {\n        await this.restore(state);\n      }\n      this.observe();\n    }\n    stop() {\n      this.stopped = true;\n      this.observer?.disconnect();\n      this.request?.abort();\n    }\n    disconnectedCallback() {\n      this.stop();\n      this.events?.abort();\n      if (this.topButtonFrame != null) cancelAnimationFrame(this.topButtonFrame);\n      this.navigation?.remove();\n      this.cancelPositioning?.();\n      clearTimeout(this.restoreTimer);\n    }\n    observe() {\n      this.observer?.disconnect();\n      if (!this.isConnected || this.stopped || this.paused || this.failed || !this.next) return;\n      this.observer = new IntersectionObserver((entries) => {\n        if (entries.some((entry) => entry.isIntersecting)) this.load();\n      }, { rootMargin: '0px 0px 700px 0px' });\n      this.observer.observe(this.more);\n    }\n    update() {\n      const shown = Math.min(Number(this.dataset.total), this.offset + this.grid.children.length);\n      this.count.textContent = this.dataset.countText.replace('[shown]', shown.toLocaleString(document.documentElement.lang)).replace('[total]', Number(this.dataset.total).toLocaleString(document.documentElement.lang));\n      this.more.hidden = !this.next;\n      if (this.next) this.more.href = cleanURL(this.next).href;\n      this.more.setAttribute('aria-disabled', String(Boolean(this.busy)));\n      this.grid.setAttribute('aria-busy', String(Boolean(this.busy)));\n      this.status.textContent = this.busy ? this.dataset.loadingText : this.failed ? this.dataset.errorText : !this.next ? this.dataset.doneText : '';\n    }\n    async getPage(input) {\n      const url = cleanURL(input);\n      if (url.origin !== location.origin || keyFor(url) !== this.key) throw new Error('Invalid collection page');\n      const preview = new URL(location.href).searchParams.get('preview_theme_id');\n      if (preview) url.searchParams.set('preview_theme_id', preview);\n      const sectionURL = new URL(url);\n      sectionURL.searchParams.set('section_id', this.dataset.section);\n      for (const requestURL of [sectionURL, url]) {\n        const request = new AbortController();\n        this.request = request;\n        const timeout = setTimeout(() => request.abort(), 20000);\n        try {\n          const response = await fetch(requestURL, { signal: request.signal, credentials: 'same-origin' });\n          if (!response.ok) throw new Error('Collection unavailable');\n          const html = new DOMParser().parseFromString(await response.text(), 'text/html');\n          const root = html.querySelector('gn-collection-scroll');\n          if (!root?.querySelector(this.gridSelector)) throw new Error('Product grid missing');\n          return root;\n        } catch (error) {\n          if (this.stopped || this.paused || !this.isConnected || requestURL === url) throw error;\n        } finally {\n          clearTimeout(timeout);\n        }\n      }\n    }\n    append(root, input, replace = false) {\n      const source = root.querySelector(this.gridSelector);\n      if (replace) this.grid.replaceChildren();\n      const seen = new Set([...this.grid.children].map((card) => card.dataset.gnProduct));\n      const cards = [...source.children].filter((card) => !seen.has(card.dataset.gnProduct));\n      for (const card of cards) {\n        card.classList.add('scroll-trigger--cancel');\n        card.querySelectorAll('.scroll-trigger').forEach((node) => node.classList.add('scroll-trigger--cancel'));\n        card.querySelectorAll('img').forEach((image) => { image.loading = 'lazy'; image.decoding = 'async'; });\n      }\n      if (!cards.length && root.dataset.next) throw new Error('No new products');\n      this.grid.append(...cards);\n      requestAnimationFrame(() => {\n        if (!this.isConnected) return;\n        const heights = cards.map((card) => card.getBoundingClientRect().height);\n        cards.forEach((card, index) => {\n          if (heights[index] > 0) {\n            card.style.containIntrinsicBlockSize = `auto ${heights[index]}px`;\n            card.classList.add('gn-scroll-card');\n          }\n        });\n      });\n      const href = cleanURL(input).href;\n      if (!this.pages.includes(href)) this.pages.push(href);\n      this.next = root.dataset.next;\n      this.dataset.total = root.dataset.total;\n      this.lastPage = root.dataset.page;\n      if (window.Loox?.refresh) window.Loox.refresh();\n      this.dispatchEvent(new CustomEvent('gn:products-added', { bubbles: true, detail: { count: cards.length } }));\n    }\n    async load(manual = false) {\n      if (this.busy || this.stopped || !this.next || keyFor(location.href) !== this.key) return;\n      if (!manual && (this.paused || this.failed)) return;\n      if (manual) { this.paused = false; this.failed = false; }\n      const url = cleanURL(this.next);\n      if (this.pages.includes(url.href)) { this.next = ''; this.update(); return; }\n      this.busy = true;\n      this.update();\n      this.observer?.disconnect();\n      try {\n        const root = await this.getPage(url);\n        if (!this.isConnected || this.stopped || keyFor(location.href) !== this.key) return;\n        this.append(root, url);\n      } catch (error) {\n        if (!this.stopped && !this.paused) this.failed = true;\n      } finally {\n        this.busy = false;\n        if (this.isConnected && !this.stopped) { this.update(); this.observe(); }\n      }\n    }\n    onClick(event) {\n      const more = event.target.closest('[data-gn-more]');\n      if (more) {\n        if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || this.failed) return;\n        event.preventDefault();\n        this.load(true);\n        return;\n      }\n      if (event.target.closest('[data-gn-top]')) {\n        this.grid.scrollIntoView({ block: 'start', behavior: 'instant' });\n        this.grid.querySelector('[data-gn-product] a')?.focus({ preventScroll: true });\n      }\n      if (event.target.closest('[data-gn-footer]')) {\n        this.paused = true;\n        this.observer?.disconnect();\n        this.request?.abort();\n        const footer = document.querySelector('footer') || this.closest('.shopify-section')?.nextElementSibling;\n        footer?.scrollIntoView({ block: 'start', behavior: 'instant' });\n        const link = footer?.querySelector('a');\n        link?.focus({ preventScroll: true });\n      }\n      if (event.target.closest('a[href*=\"/products/\"]') || event.target.closest('[data-gn-product] a[href*=\"/blogs/\"]')) {\n        this.navigationCard = event.target.closest('[data-gn-product]');\n        this.save(this.navigationCard);\n      }\n    }\n    save(card) {\n      if (!this.started || this.stopped || !this.isConnected) return;\n      card ||= [...this.grid.children].find((item) => item.getBoundingClientRect().bottom > 100);\n      const state = {\n        key: this.key, pages: this.pages, next: this.next, offset: this.offset,\n        product: card?.dataset.gnProduct, delta: card?.getBoundingClientRect().top || 0,\n        y: window.scrollY, time: Date.now(), paused: Boolean(this.paused)\n      };\n      const url = cleanURL(location.href);\n      if (card?.dataset.gnPage) url.searchParams.set('page', card.dataset.gnPage);\n      try {\n        const html = this.grid.innerHTML;\n        sessionStorage.removeItem(this.snapshotKey);\n        if (html.length < 1500000) sessionStorage.setItem(this.snapshotKey, JSON.stringify({ key: this.key, time: state.time, html }));\n      } catch (_) {}\n      history.replaceState({ ...history.state, searchParams: url.search.slice(1), gnScroll: state }, '', url);\n    }\n    async restore(state) {\n      this.busy = true;\n      this.paused = state.paused;\n      this.update();\n      let restored = false;\n      try {\n        const cached = JSON.parse(sessionStorage.getItem(this.snapshotKey) || 'null');\n        if (cached?.key === this.key && cached.time === state.time) {\n          const template = document.createElement('template');\n          template.innerHTML = cached.html;\n          template.content.querySelectorAll('pf-swatches').forEach((element) => element.remove());\n          this.grid.replaceChildren(template.content);\n          restored = true;\n        }\n      } catch (_) {}\n      if (!restored) {\n        try {\n          this.pages = [];\n          for (let i = 0; i < state.pages.length; i++) {\n            const root = await this.getPage(state.pages[i]);\n            if (this.stopped || !this.isConnected) return;\n            this.append(root, state.pages[i], i === 0);\n          }\n          restored = true;\n        } catch (_) { this.failed = true; }\n      }\n      if (restored) {\n        this.pages = state.pages;\n        this.next = state.next;\n        this.offset = state.offset;\n      }\n      this.busy = false;\n      this.update();\n      const reposition = () => {\n        if (!this.isConnected || this.stopped) return;\n        const card = [...this.grid.children].find((item) => item.dataset.gnProduct === state.product);\n        if (card) window.scrollTo({ top: window.scrollY + card.getBoundingClientRect().top - state.delta, behavior: 'instant' });\n        else window.scrollTo({ top: state.y, behavior: 'instant' });\n      };\n      const positioning = new AbortController();\n      const resize = new ResizeObserver(() => requestAnimationFrame(reposition));\n      const cancel = () => { resize.disconnect(); positioning.abort(); clearTimeout(this.restoreTimer); };\n      this.cancelPositioning = cancel;\n      for (const name of ['wheel', 'touchstart', 'pointerdown', 'keydown']) {\n        window.addEventListener(name, cancel, { once: true, passive: true, signal: positioning.signal });\n      }\n      requestAnimationFrame(() => { reposition(); resize.observe(this.grid); });\n      this.restoreTimer = setTimeout(cancel, 2500);\n    }\n  }\n  customElements.define('gn-collection-scroll', CollectionScroll);\n})();\n"],
  "mappings": "CAAC,IAAM,CACL,GAAI,eAAe,IAAI,sBAAsB,EAAG,OAChD,MAAM,SAAY,OAAU,CAC1B,MAAM,IAAM,IAAI,IAAI,MAAO,SAAS,IAAI,EACxC,IAAI,aAAa,OAAO,YAAY,EACpC,IAAI,aAAa,OAAO,UAAU,EAClC,SAAW,CAAC,KAAM,KAAK,GAAK,CAAC,GAAG,IAAI,YAAY,EAC1C,KAAK,WAAW,SAAS,GAAK,QAAU,IAAI,IAAI,aAAa,OAAO,IAAI,EAE9E,WAAI,KAAO,GACJ,GACT,EACM,OAAU,OAAU,CACxB,MAAM,IAAM,SAAS,KAAK,EAC1B,UAAW,OAAQ,CAAC,GAAG,IAAI,aAAa,KAAK,CAAC,EACxC,OAAS,WAAa,CAAC,KAAK,WAAW,SAAS,GAAG,IAAI,aAAa,OAAO,IAAI,EAErF,WAAI,aAAa,KAAK,EACf,IAAI,SAAW,IAAI,MAC5B,EACA,MAAM,yBAAyB,WAAY,CACzC,mBAAoB,CAClB,sBAAsB,IAAM,KAAK,KAAK,CAAC,CACzC,CACA,MAAM,MAAO,CAMX,GALI,CAAC,KAAK,aAAe,KAAK,UAC9B,KAAK,aAAe,KAAK,QAAQ,MAAQ,gBACzC,KAAK,YAAc,KAAK,QAAQ,aAAe,yBAC/C,KAAK,KAAO,KAAK,cAAc,KAAK,YAAY,EAChD,KAAK,SAAW,KAAK,cAAc,qBAAqB,EACpD,CAAC,KAAK,MAAQ,CAAC,KAAK,UAAY,EAAE,yBAA0B,SAAS,OACzE,KAAK,QAAU,GACf,KAAK,IAAM,OAAO,SAAS,IAAI,EAC/B,KAAK,MAAQ,CAAC,SAAS,SAAS,IAAI,EAAE,IAAI,EAC1C,KAAK,KAAO,KAAK,QAAQ,KACzB,KAAK,OAAS,OAAO,KAAK,QAAQ,MAAM,EACxC,KAAK,KAAO,KAAK,cAAc,gBAAgB,EAC/C,KAAK,OAAS,KAAK,cAAc,kBAAkB,EACnD,KAAK,MAAQ,KAAK,cAAc,iBAAiB,EACjD,KAAK,OAAS,IAAI,gBAClB,MAAM,QAAU,CAAE,OAAQ,KAAK,OAAO,MAAO,EAG7C,GAFA,KAAK,iBAAiB,QAAU,OAAU,KAAK,QAAQ,KAAK,EAAG,OAAO,EACtE,KAAK,WAAa,KAAK,cAAc,kBAAkB,EACnD,KAAK,WAAY,CACnB,MAAM,UAAY,KAAK,WAAW,cAAc,eAAe,EACzD,gBAAkB,IAAM,CAC5B,KAAK,eAAiB,KACtB,KAAK,WAAW,MAAM,QAAU,OAAO,QAAU,IAAM,OAAS,EAClE,EACA,gBAAgB,EAChB,OAAO,iBAAiB,SAAU,IAAM,CAClC,KAAK,gBAAkB,OAAM,KAAK,eAAiB,sBAAsB,eAAe,EAC9F,EAAG,CAAE,QAAS,GAAM,OAAQ,KAAK,OAAO,MAAO,CAAC,EAChD,SAAS,KAAK,OAAO,KAAK,UAAU,EACpC,KAAK,WAAW,iBAAiB,QAAU,OAAU,KAAK,QAAQ,KAAK,EAAG,OAAO,CACnF,CACA,SAAS,iBAAiB,sBAAuB,IAAM,KAAK,KAAK,EAAG,OAAO,EAC3E,OAAO,iBAAiB,WAAY,IAAM,KAAK,KAAK,KAAK,cAAc,EAAG,OAAO,EACjF,OAAO,iBAAiB,WAAa,OAAU,CACzC,MAAM,YAAa,KAAK,KAAO,GAAO,KAAK,OAAO,EAAG,KAAK,QAAQ,EACxE,EAAG,OAAO,EACV,KAAK,SAAS,OAAS,GACvB,KAAK,UAAU,IAAI,iBAAiB,EACpC,KAAK,OAAO,EACZ,MAAM,MAAQ,QAAQ,OAAO,SACzB,OAAO,MAAQ,KAAK,KAAO,KAAK,IAAI,EAAI,MAAM,KAAO,MACvD,MAAM,KAAK,QAAQ,KAAK,EAE1B,KAAK,QAAQ,CACf,CACA,MAAO,CACL,KAAK,QAAU,GACf,KAAK,UAAU,WAAW,EAC1B,KAAK,SAAS,MAAM,CACtB,CACA,sBAAuB,CACrB,KAAK,KAAK,EACV,KAAK,QAAQ,MAAM,EACf,KAAK,gBAAkB,MAAM,qBAAqB,KAAK,cAAc,EACzE,KAAK,YAAY,OAAO,EACxB,KAAK,oBAAoB,EACzB,aAAa,KAAK,YAAY,CAChC,CACA,SAAU,CACR,KAAK,UAAU,WAAW,EACtB,GAAC,KAAK,aAAe,KAAK,SAAW,KAAK,QAAU,KAAK,QAAU,CAAC,KAAK,QAC7E,KAAK,SAAW,IAAI,qBAAsB,SAAY,CAChD,QAAQ,KAAM,OAAU,MAAM,cAAc,GAAG,KAAK,KAAK,CAC/D,EAAG,CAAE,WAAY,mBAAoB,CAAC,EACtC,KAAK,SAAS,QAAQ,KAAK,IAAI,EACjC,CACA,QAAS,CACP,MAAM,MAAQ,KAAK,IAAI,OAAO,KAAK,QAAQ,KAAK,EAAG,KAAK,OAAS,KAAK,KAAK,SAAS,MAAM,EAC1F,KAAK,MAAM,YAAc,KAAK,QAAQ,UAAU,QAAQ,UAAW,MAAM,eAAe,SAAS,gBAAgB,IAAI,CAAC,EAAE,QAAQ,UAAW,OAAO,KAAK,QAAQ,KAAK,EAAE,eAAe,SAAS,gBAAgB,IAAI,CAAC,EACnN,KAAK,KAAK,OAAS,CAAC,KAAK,KACrB,KAAK,OAAM,KAAK,KAAK,KAAO,SAAS,KAAK,IAAI,EAAE,MACpD,KAAK,KAAK,aAAa,gBAAiB,OAAO,EAAQ,KAAK,IAAK,CAAC,EAClE,KAAK,KAAK,aAAa,YAAa,OAAO,EAAQ,KAAK,IAAK,CAAC,EAC9D,KAAK,OAAO,YAAc,KAAK,KAAO,KAAK,QAAQ,YAAc,KAAK,OAAS,KAAK,QAAQ,UAAa,KAAK,KAA+B,GAAxB,KAAK,QAAQ,QACpI,CACA,MAAM,QAAQ,MAAO,CACnB,MAAM,IAAM,SAAS,KAAK,EAC1B,GAAI,IAAI,SAAW,SAAS,QAAU,OAAO,GAAG,IAAM,KAAK,IAAK,MAAM,IAAI,MAAM,yBAAyB,EACzG,MAAM,QAAU,IAAI,IAAI,SAAS,IAAI,EAAE,aAAa,IAAI,kBAAkB,EACtE,SAAS,IAAI,aAAa,IAAI,mBAAoB,OAAO,EAC7D,MAAM,WAAa,IAAI,IAAI,GAAG,EAC9B,WAAW,aAAa,IAAI,aAAc,KAAK,QAAQ,OAAO,EAC9D,UAAW,aAAc,CAAC,WAAY,GAAG,EAAG,CAC1C,MAAM,QAAU,IAAI,gBACpB,KAAK,QAAU,QACf,MAAM,QAAU,WAAW,IAAM,QAAQ,MAAM,EAAG,GAAK,EACvD,GAAI,CACF,MAAM,SAAW,MAAM,MAAM,WAAY,CAAE,OAAQ,QAAQ,OAAQ,YAAa,aAAc,CAAC,EAC/F,GAAI,CAAC,SAAS,GAAI,MAAM,IAAI,MAAM,wBAAwB,EAE1D,MAAM,KADO,IAAI,UAAU,EAAE,gBAAgB,MAAM,SAAS,KAAK,EAAG,WAAW,EAC7D,cAAc,sBAAsB,EACtD,GAAI,CAAC,MAAM,cAAc,KAAK,YAAY,EAAG,MAAM,IAAI,MAAM,sBAAsB,EACnF,OAAO,IACT,OAAS,MAAO,CACd,GAAI,KAAK,SAAW,KAAK,QAAU,CAAC,KAAK,aAAe,aAAe,IAAK,MAAM,KACpF,QAAE,CACA,aAAa,OAAO,CACtB,CACF,CACF,CACA,OAAO,KAAM,MAAO,QAAU,GAAO,CACnC,MAAM,OAAS,KAAK,cAAc,KAAK,YAAY,EAC/C,SAAS,KAAK,KAAK,gBAAgB,EACvC,MAAM,KAAO,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK,QAAQ,EAAE,IAAK,MAAS,KAAK,QAAQ,SAAS,CAAC,EAC5E,MAAQ,CAAC,GAAG,OAAO,QAAQ,EAAE,OAAQ,MAAS,CAAC,KAAK,IAAI,KAAK,QAAQ,SAAS,CAAC,EACrF,UAAW,QAAQ,MACjB,KAAK,UAAU,IAAI,wBAAwB,EAC3C,KAAK,iBAAiB,iBAAiB,EAAE,QAAS,MAAS,KAAK,UAAU,IAAI,wBAAwB,CAAC,EACvG,KAAK,iBAAiB,KAAK,EAAE,QAAS,OAAU,CAAE,MAAM,QAAU,OAAQ,MAAM,SAAW,OAAS,CAAC,EAEvG,GAAI,CAAC,MAAM,QAAU,KAAK,QAAQ,KAAM,MAAM,IAAI,MAAM,iBAAiB,EACzE,KAAK,KAAK,OAAO,GAAG,KAAK,EACzB,sBAAsB,IAAM,CAC1B,GAAI,CAAC,KAAK,YAAa,OACvB,MAAM,QAAU,MAAM,IAAK,MAAS,KAAK,sBAAsB,EAAE,MAAM,EACvE,MAAM,QAAQ,CAAC,KAAM,QAAU,CACzB,QAAQ,KAAK,EAAI,IACnB,KAAK,MAAM,0BAA4B,QAAQ,QAAQ,KAAK,CAAC,KAC7D,KAAK,UAAU,IAAI,gBAAgB,EAEvC,CAAC,CACH,CAAC,EACD,MAAM,KAAO,SAAS,KAAK,EAAE,KACxB,KAAK,MAAM,SAAS,IAAI,GAAG,KAAK,MAAM,KAAK,IAAI,EACpD,KAAK,KAAO,KAAK,QAAQ,KACzB,KAAK,QAAQ,MAAQ,KAAK,QAAQ,MAClC,KAAK,SAAW,KAAK,QAAQ,KACzB,OAAO,MAAM,SAAS,OAAO,KAAK,QAAQ,EAC9C,KAAK,cAAc,IAAI,YAAY,oBAAqB,CAAE,QAAS,GAAM,OAAQ,CAAE,MAAO,MAAM,MAAO,CAAE,CAAC,CAAC,CAC7G,CACA,MAAM,KAAK,OAAS,GAAO,CAEzB,GADI,KAAK,MAAQ,KAAK,SAAW,CAAC,KAAK,MAAQ,OAAO,SAAS,IAAI,IAAM,KAAK,KAC1E,CAAC,SAAW,KAAK,QAAU,KAAK,QAAS,OACzC,SAAU,KAAK,OAAS,GAAO,KAAK,OAAS,IACjD,MAAM,IAAM,SAAS,KAAK,IAAI,EAC9B,GAAI,KAAK,MAAM,SAAS,IAAI,IAAI,EAAG,CAAE,KAAK,KAAO,GAAI,KAAK,OAAO,EAAG,MAAQ,CAC5E,KAAK,KAAO,GACZ,KAAK,OAAO,EACZ,KAAK,UAAU,WAAW,EAC1B,GAAI,CACF,MAAM,KAAO,MAAM,KAAK,QAAQ,GAAG,EACnC,GAAI,CAAC,KAAK,aAAe,KAAK,SAAW,OAAO,SAAS,IAAI,IAAM,KAAK,IAAK,OAC7E,KAAK,OAAO,KAAM,GAAG,CACvB,MAAgB,CACV,CAAC,KAAK,SAAW,CAAC,KAAK,SAAQ,KAAK,OAAS,GACnD,QAAE,CACA,KAAK,KAAO,GACR,KAAK,aAAe,CAAC,KAAK,UAAW,KAAK,OAAO,EAAG,KAAK,QAAQ,EACvE,CACF,CACA,QAAQ,MAAO,CAEb,GADa,MAAM,OAAO,QAAQ,gBAAgB,EACxC,CACR,GAAI,MAAM,SAAW,MAAM,SAAW,MAAM,UAAY,MAAM,QAAU,KAAK,OAAQ,OACrF,MAAM,eAAe,EACrB,KAAK,KAAK,EAAI,EACd,MACF,CAKA,GAJI,MAAM,OAAO,QAAQ,eAAe,IACtC,KAAK,KAAK,eAAe,CAAE,MAAO,QAAS,SAAU,SAAU,CAAC,EAChE,KAAK,KAAK,cAAc,qBAAqB,GAAG,MAAM,CAAE,cAAe,EAAK,CAAC,GAE3E,MAAM,OAAO,QAAQ,kBAAkB,EAAG,CAC5C,KAAK,OAAS,GACd,KAAK,UAAU,WAAW,EAC1B,KAAK,SAAS,MAAM,EACpB,MAAM,OAAS,SAAS,cAAc,QAAQ,GAAK,KAAK,QAAQ,kBAAkB,GAAG,mBACrF,QAAQ,eAAe,CAAE,MAAO,QAAS,SAAU,SAAU,CAAC,EACjD,QAAQ,cAAc,GAAG,GAChC,MAAM,CAAE,cAAe,EAAK,CAAC,CACrC,EACI,MAAM,OAAO,QAAQ,uBAAuB,GAAK,MAAM,OAAO,QAAQ,sCAAsC,KAC9G,KAAK,eAAiB,MAAM,OAAO,QAAQ,mBAAmB,EAC9D,KAAK,KAAK,KAAK,cAAc,EAEjC,CACA,KAAK,KAAM,CACT,GAAI,CAAC,KAAK,SAAW,KAAK,SAAW,CAAC,KAAK,YAAa,OACxD,OAAS,CAAC,GAAG,KAAK,KAAK,QAAQ,EAAE,KAAM,MAAS,KAAK,sBAAsB,EAAE,OAAS,GAAG,EACzF,MAAM,MAAQ,CACZ,IAAK,KAAK,IAAK,MAAO,KAAK,MAAO,KAAM,KAAK,KAAM,OAAQ,KAAK,OAChE,QAAS,MAAM,QAAQ,UAAW,MAAO,MAAM,sBAAsB,EAAE,KAAO,EAC9E,EAAG,OAAO,QAAS,KAAM,KAAK,IAAI,EAAG,OAAQ,EAAQ,KAAK,MAC5D,EACM,IAAM,SAAS,SAAS,IAAI,EAC9B,MAAM,QAAQ,QAAQ,IAAI,aAAa,IAAI,OAAQ,KAAK,QAAQ,MAAM,EAC1E,GAAI,CACF,MAAM,KAAO,KAAK,KAAK,UACvB,eAAe,WAAW,KAAK,WAAW,EACtC,KAAK,OAAS,MAAS,eAAe,QAAQ,KAAK,YAAa,KAAK,UAAU,CAAE,IAAK,KAAK,IAAK,KAAM,MAAM,KAAM,IAAK,CAAC,CAAC,CAC/H,MAAY,CAAC,CACb,QAAQ,aAAa,CAAE,GAAG,QAAQ,MAAO,aAAc,IAAI,OAAO,MAAM,CAAC,EAAG,SAAU,KAAM,EAAG,GAAI,GAAG,CACxG,CACA,MAAM,QAAQ,MAAO,CACnB,KAAK,KAAO,GACZ,KAAK,OAAS,MAAM,OACpB,KAAK,OAAO,EACZ,IAAI,SAAW,GACf,GAAI,CACF,MAAM,OAAS,KAAK,MAAM,eAAe,QAAQ,KAAK,WAAW,GAAK,MAAM,EAC5E,GAAI,QAAQ,MAAQ,KAAK,KAAO,OAAO,OAAS,MAAM,KAAM,CAC1D,MAAM,SAAW,SAAS,cAAc,UAAU,EAClD,SAAS,UAAY,OAAO,KAC5B,SAAS,QAAQ,iBAAiB,aAAa,EAAE,QAAS,SAAY,QAAQ,OAAO,CAAC,EACtF,KAAK,KAAK,gBAAgB,SAAS,OAAO,EAC1C,SAAW,EACb,CACF,MAAY,CAAC,CACb,GAAI,CAAC,SACH,GAAI,CACF,KAAK,MAAQ,CAAC,EACd,QAAS,EAAI,EAAG,EAAI,MAAM,MAAM,OAAQ,IAAK,CAC3C,MAAM,KAAO,MAAM,KAAK,QAAQ,MAAM,MAAM,CAAC,CAAC,EAC9C,GAAI,KAAK,SAAW,CAAC,KAAK,YAAa,OACvC,KAAK,OAAO,KAAM,MAAM,MAAM,CAAC,EAAG,IAAM,CAAC,CAC3C,CACA,SAAW,EACb,MAAY,CAAE,KAAK,OAAS,EAAM,CAEhC,WACF,KAAK,MAAQ,MAAM,MACnB,KAAK,KAAO,MAAM,KAClB,KAAK,OAAS,MAAM,QAEtB,KAAK,KAAO,GACZ,KAAK,OAAO,EACZ,MAAM,WAAa,IAAM,CACvB,GAAI,CAAC,KAAK,aAAe,KAAK,QAAS,OACvC,MAAM,KAAO,CAAC,GAAG,KAAK,KAAK,QAAQ,EAAE,KAAM,MAAS,KAAK,QAAQ,YAAc,MAAM,OAAO,EACxF,KAAM,OAAO,SAAS,CAAE,IAAK,OAAO,QAAU,KAAK,sBAAsB,EAAE,IAAM,MAAM,MAAO,SAAU,SAAU,CAAC,EAClH,OAAO,SAAS,CAAE,IAAK,MAAM,EAAG,SAAU,SAAU,CAAC,CAC5D,EACM,YAAc,IAAI,gBAClB,OAAS,IAAI,eAAe,IAAM,sBAAsB,UAAU,CAAC,EACnE,OAAS,IAAM,CAAE,OAAO,WAAW,EAAG,YAAY,MAAM,EAAG,aAAa,KAAK,YAAY,CAAG,EAClG,KAAK,kBAAoB,OACzB,UAAW,OAAQ,CAAC,QAAS,aAAc,cAAe,SAAS,EACjE,OAAO,iBAAiB,KAAM,OAAQ,CAAE,KAAM,GAAM,QAAS,GAAM,OAAQ,YAAY,MAAO,CAAC,EAEjG,sBAAsB,IAAM,CAAE,WAAW,EAAG,OAAO,QAAQ,KAAK,IAAI,CAAG,CAAC,EACxE,KAAK,aAAe,WAAW,OAAQ,IAAI,CAC7C,CACF,CACA,eAAe,OAAO,uBAAwB,gBAAgB,CAChE,GAAG",
  "names": []
}
