var oi = Object.defineProperty,
  di = Object.defineProperties
var ci = Object.getOwnPropertyDescriptors
var nt = Object.getOwnPropertySymbols
var fi = Object.prototype.hasOwnProperty,
  ui = Object.prototype.propertyIsEnumerable
var lt = (j, _, Z) =>
    _ in j
      ? oi(j, _, { enumerable: !0, configurable: !0, writable: !0, value: Z })
      : (j[_] = Z),
  Ye = (j, _) => {
    for (var Z in _ || (_ = {})) fi.call(_, Z) && lt(j, Z, _[Z])
    if (nt) for (var Z of nt(_)) ui.call(_, Z) && lt(j, Z, _[Z])
    return j
  },
  Xe = (j, _) => di(j, ci(_))
;(function (j) {
  typeof define == 'function' && define.amd ? define(j) : j()
})(function () {
  'use strict'
  function j(s) {
    return (
      s !== null &&
      typeof s == 'object' &&
      'constructor' in s &&
      s.constructor === Object
    )
  }
  function _(s, e) {
    s === void 0 && (s = {}),
      e === void 0 && (e = {}),
      Object.keys(e).forEach((t) => {
        typeof s[t] == 'undefined'
          ? (s[t] = e[t])
          : j(e[t]) && j(s[t]) && Object.keys(e[t]).length > 0 && _(s[t], e[t])
      })
  }
  const Z = {
    body: {},
    addEventListener() {},
    removeEventListener() {},
    activeElement: { blur() {}, nodeName: '' },
    querySelector() {
      return null
    },
    querySelectorAll() {
      return []
    },
    getElementById() {
      return null
    },
    createEvent() {
      return { initEvent() {} }
    },
    createElement() {
      return {
        children: [],
        childNodes: [],
        style: {},
        setAttribute() {},
        getElementsByTagName() {
          return []
        },
      }
    },
    createElementNS() {
      return {}
    },
    importNode() {
      return null
    },
    location: {
      hash: '',
      host: '',
      hostname: '',
      href: '',
      origin: '',
      pathname: '',
      protocol: '',
      search: '',
    },
  }
  function q() {
    const s = typeof document != 'undefined' ? document : {}
    return _(s, Z), s
  }
  const ot = {
    document: Z,
    navigator: { userAgent: '' },
    location: {
      hash: '',
      host: '',
      hostname: '',
      href: '',
      origin: '',
      pathname: '',
      protocol: '',
      search: '',
    },
    history: { replaceState() {}, pushState() {}, go() {}, back() {} },
    CustomEvent: function () {
      return this
    },
    addEventListener() {},
    removeEventListener() {},
    getComputedStyle() {
      return {
        getPropertyValue() {
          return ''
        },
      }
    },
    Image() {},
    Date() {},
    screen: {},
    setTimeout() {},
    clearTimeout() {},
    matchMedia() {
      return {}
    },
    requestAnimationFrame(s) {
      return typeof setTimeout == 'undefined' ? (s(), null) : setTimeout(s, 0)
    },
    cancelAnimationFrame(s) {
      typeof setTimeout != 'undefined' && clearTimeout(s)
    },
  }
  function X() {
    const s = typeof window != 'undefined' ? window : {}
    return _(s, ot), s
  }
  function ie(s) {
    return (
      s === void 0 && (s = ''),
      s
        .trim()
        .split(' ')
        .filter((e) => !!e.trim())
    )
  }
  function dt(s) {
    const e = s
    Object.keys(e).forEach((t) => {
      try {
        e[t] = null
      } catch {}
      try {
        delete e[t]
      } catch {}
    })
  }
  function ae(s, e) {
    return e === void 0 && (e = 0), setTimeout(s, e)
  }
  function ee() {
    return Date.now()
  }
  function ct(s) {
    const e = X()
    let t
    return (
      e.getComputedStyle && (t = e.getComputedStyle(s, null)),
      !t && s.currentStyle && (t = s.currentStyle),
      t || (t = s.style),
      t
    )
  }
  function Le(s, e) {
    e === void 0 && (e = 'x')
    const t = X()
    let i, r, a
    const f = ct(s)
    return (
      t.WebKitCSSMatrix
        ? ((r = f.transform || f.webkitTransform),
          r.split(',').length > 6 &&
            (r = r
              .split(', ')
              .map((c) => c.replace(',', '.'))
              .join(', ')),
          (a = new t.WebKitCSSMatrix(r === 'none' ? '' : r)))
        : ((a =
            f.MozTransform ||
            f.OTransform ||
            f.MsTransform ||
            f.msTransform ||
            f.transform ||
            f
              .getPropertyValue('transform')
              .replace('translate(', 'matrix(1, 0, 0, 1,')),
          (i = a.toString().split(','))),
      e === 'x' &&
        (t.WebKitCSSMatrix
          ? (r = a.m41)
          : i.length === 16
          ? (r = parseFloat(i[12]))
          : (r = parseFloat(i[4]))),
      e === 'y' &&
        (t.WebKitCSSMatrix
          ? (r = a.m42)
          : i.length === 16
          ? (r = parseFloat(i[13]))
          : (r = parseFloat(i[5]))),
      r || 0
    )
  }
  function ue(s) {
    return (
      typeof s == 'object' &&
      s !== null &&
      s.constructor &&
      Object.prototype.toString.call(s).slice(8, -1) === 'Object'
    )
  }
  function ft(s) {
    return typeof window != 'undefined' &&
      typeof window.HTMLElement != 'undefined'
      ? s instanceof HTMLElement
      : s && (s.nodeType === 1 || s.nodeType === 11)
  }
  function Q() {
    const s = Object(arguments.length <= 0 ? void 0 : arguments[0]),
      e = ['__proto__', 'constructor', 'prototype']
    for (let t = 1; t < arguments.length; t += 1) {
      const i = t < 0 || arguments.length <= t ? void 0 : arguments[t]
      if (i != null && !ft(i)) {
        const r = Object.keys(Object(i)).filter((a) => e.indexOf(a) < 0)
        for (let a = 0, f = r.length; a < f; a += 1) {
          const c = r[a],
            n = Object.getOwnPropertyDescriptor(i, c)
          n !== void 0 &&
            n.enumerable &&
            (ue(s[c]) && ue(i[c])
              ? i[c].__swiper__
                ? (s[c] = i[c])
                : Q(s[c], i[c])
              : !ue(s[c]) && ue(i[c])
              ? ((s[c] = {}), i[c].__swiper__ ? (s[c] = i[c]) : Q(s[c], i[c]))
              : (s[c] = i[c]))
        }
      }
    }
    return s
  }
  function pe(s, e, t) {
    s.style.setProperty(e, t)
  }
  function qe(s) {
    let { swiper: e, targetPosition: t, side: i } = s
    const r = X(),
      a = -e.translate
    let f = null,
      c
    const n = e.params.speed
    ;(e.wrapperEl.style.scrollSnapType = 'none'),
      r.cancelAnimationFrame(e.cssModeFrameID)
    const u = t > a ? 'next' : 'prev',
      o = (d, p) => (u === 'next' && d >= p) || (u === 'prev' && d <= p),
      l = () => {
        ;(c = new Date().getTime()), f === null && (f = c)
        const d = Math.max(Math.min((c - f) / n, 1), 0),
          p = 0.5 - Math.cos(d * Math.PI) / 2
        let h = a + p * (t - a)
        if ((o(h, t) && (h = t), e.wrapperEl.scrollTo({ [i]: h }), o(h, t))) {
          ;(e.wrapperEl.style.overflow = 'hidden'),
            (e.wrapperEl.style.scrollSnapType = ''),
            setTimeout(() => {
              ;(e.wrapperEl.style.overflow = ''),
                e.wrapperEl.scrollTo({ [i]: h })
            }),
            r.cancelAnimationFrame(e.cssModeFrameID)
          return
        }
        e.cssModeFrameID = r.requestAnimationFrame(l)
      }
    l()
  }
  function ne(s) {
    return (
      s.querySelector('.swiper-slide-transform') ||
      (s.shadowRoot && s.shadowRoot.querySelector('.swiper-slide-transform')) ||
      s
    )
  }
  function W(s, e) {
    e === void 0 && (e = '')
    const t = [...s.children]
    return (
      s instanceof HTMLSlotElement && t.push(...s.assignedElements()),
      e ? t.filter((i) => i.matches(e)) : t
    )
  }
  function ut(s, e) {
    const t = e.contains(s)
    return !t && e instanceof HTMLSlotElement
      ? [...e.assignedElements()].includes(s)
      : t
  }
  function ye(s) {
    try {
      console.warn(s)
      return
    } catch {}
  }
  function J(s, e) {
    e === void 0 && (e = [])
    const t = document.createElement(s)
    return t.classList.add(...(Array.isArray(e) ? e : ie(e))), t
  }
  function be(s) {
    const e = X(),
      t = q(),
      i = s.getBoundingClientRect(),
      r = t.body,
      a = s.clientTop || r.clientTop || 0,
      f = s.clientLeft || r.clientLeft || 0,
      c = s === e ? e.scrollY : s.scrollTop,
      n = s === e ? e.scrollX : s.scrollLeft
    return { top: i.top + c - a, left: i.left + n - f }
  }
  function pt(s, e) {
    const t = []
    for (; s.previousElementSibling; ) {
      const i = s.previousElementSibling
      e ? i.matches(e) && t.push(i) : t.push(i), (s = i)
    }
    return t
  }
  function mt(s, e) {
    const t = []
    for (; s.nextElementSibling; ) {
      const i = s.nextElementSibling
      e ? i.matches(e) && t.push(i) : t.push(i), (s = i)
    }
    return t
  }
  function re(s, e) {
    return X().getComputedStyle(s, null).getPropertyValue(e)
  }
  function me(s) {
    let e = s,
      t
    if (e) {
      for (t = 0; (e = e.previousSibling) !== null; )
        e.nodeType === 1 && (t += 1)
      return t
    }
  }
  function le(s, e) {
    const t = []
    let i = s.parentElement
    for (; i; ) e ? i.matches(e) && t.push(i) : t.push(i), (i = i.parentElement)
    return t
  }
  function he(s, e) {
    function t(i) {
      i.target === s &&
        (e.call(s, i), s.removeEventListener('transitionend', t))
    }
    e && s.addEventListener('transitionend', t)
  }
  function Ie(s, e, t) {
    const i = X()
    return t
      ? s[e === 'width' ? 'offsetWidth' : 'offsetHeight'] +
          parseFloat(
            i
              .getComputedStyle(s, null)
              .getPropertyValue(e === 'width' ? 'margin-right' : 'margin-top')
          ) +
          parseFloat(
            i
              .getComputedStyle(s, null)
              .getPropertyValue(e === 'width' ? 'margin-left' : 'margin-bottom')
          )
      : s.offsetWidth
  }
  function N(s) {
    return (Array.isArray(s) ? s : [s]).filter((e) => !!e)
  }
  function Se(s) {
    return (e) =>
      Math.abs(e) > 0 &&
      s.browser &&
      s.browser.need3dFix &&
      Math.abs(e) % 90 == 0
        ? e + 0.001
        : e
  }
  let Ae
  function ht() {
    const s = X(),
      e = q()
    return {
      smoothScroll:
        e.documentElement &&
        e.documentElement.style &&
        'scrollBehavior' in e.documentElement.style,
      touch: !!(
        'ontouchstart' in s ||
        (s.DocumentTouch && e instanceof s.DocumentTouch)
      ),
    }
  }
  function We() {
    return Ae || (Ae = ht()), Ae
  }
  let ze
  function gt(s) {
    let { userAgent: e } = s === void 0 ? {} : s
    const t = We(),
      i = X(),
      r = i.navigator.platform,
      a = e || i.navigator.userAgent,
      f = { ios: !1, android: !1 },
      c = i.screen.width,
      n = i.screen.height,
      u = a.match(/(Android);?[\s\/]+([\d.]+)?/)
    let o = a.match(/(iPad).*OS\s([\d_]+)/)
    const l = a.match(/(iPod)(.*OS\s([\d_]+))?/),
      d = !o && a.match(/(iPhone\sOS|iOS)\s([\d_]+)/),
      p = r === 'Win32'
    let h = r === 'MacIntel'
    const g = [
      '1024x1366',
      '1366x1024',
      '834x1194',
      '1194x834',
      '834x1112',
      '1112x834',
      '768x1024',
      '1024x768',
      '820x1180',
      '1180x820',
      '810x1080',
      '1080x810',
    ]
    return (
      !o &&
        h &&
        t.touch &&
        g.indexOf(`${c}x${n}`) >= 0 &&
        ((o = a.match(/(Version)\/([\d.]+)/)),
        o || (o = [0, 1, '13_0_0']),
        (h = !1)),
      u && !p && ((f.os = 'android'), (f.android = !0)),
      (o || d || l) && ((f.os = 'ios'), (f.ios = !0)),
      f
    )
  }
  function _e(s) {
    return s === void 0 && (s = {}), ze || (ze = gt(s)), ze
  }
  let De
  function vt() {
    const s = X(),
      e = _e()
    let t = !1
    function i() {
      const c = s.navigator.userAgent.toLowerCase()
      return (
        c.indexOf('safari') >= 0 &&
        c.indexOf('chrome') < 0 &&
        c.indexOf('android') < 0
      )
    }
    if (i()) {
      const c = String(s.navigator.userAgent)
      if (c.includes('Version/')) {
        const [n, u] = c
          .split('Version/')[1]
          .split(' ')[0]
          .split('.')
          .map((o) => Number(o))
        t = n < 16 || (n === 16 && u < 2)
      }
    }
    const r = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(
        s.navigator.userAgent
      ),
      a = i(),
      f = a || (r && e.ios)
    return {
      isSafari: t || a,
      needPerspectiveFix: t,
      need3dFix: f,
      isWebView: r,
    }
  }
  function wt() {
    return De || (De = vt()), De
  }
  function yt(s) {
    let { swiper: e, on: t, emit: i } = s
    const r = X()
    let a = null,
      f = null
    const c = () => {
        !e || e.destroyed || !e.initialized || (i('beforeResize'), i('resize'))
      },
      n = () => {
        !e ||
          e.destroyed ||
          !e.initialized ||
          ((a = new ResizeObserver((l) => {
            f = r.requestAnimationFrame(() => {
              const { width: d, height: p } = e
              let h = d,
                g = p
              l.forEach((w) => {
                let { contentBoxSize: y, contentRect: v, target: m } = w
                ;(m && m !== e.el) ||
                  ((h = v ? v.width : (y[0] || y).inlineSize),
                  (g = v ? v.height : (y[0] || y).blockSize))
              }),
                (h !== d || g !== p) && c()
            })
          })),
          a.observe(e.el))
      },
      u = () => {
        f && r.cancelAnimationFrame(f),
          a && a.unobserve && e.el && (a.unobserve(e.el), (a = null))
      },
      o = () => {
        !e || e.destroyed || !e.initialized || i('orientationchange')
      }
    t('init', () => {
      if (e.params.resizeObserver && typeof r.ResizeObserver != 'undefined') {
        n()
        return
      }
      r.addEventListener('resize', c),
        r.addEventListener('orientationchange', o)
    }),
      t('destroy', () => {
        u(),
          r.removeEventListener('resize', c),
          r.removeEventListener('orientationchange', o)
      })
  }
  function bt(s) {
    let { swiper: e, extendParams: t, on: i, emit: r } = s
    const a = [],
      f = X(),
      c = function (o, l) {
        l === void 0 && (l = {})
        const d = f.MutationObserver || f.WebkitMutationObserver,
          p = new d((h) => {
            if (e.__preventObserver__) return
            if (h.length === 1) {
              r('observerUpdate', h[0])
              return
            }
            const g = function () {
              r('observerUpdate', h[0])
            }
            f.requestAnimationFrame
              ? f.requestAnimationFrame(g)
              : f.setTimeout(g, 0)
          })
        p.observe(o, {
          attributes: typeof l.attributes == 'undefined' ? !0 : l.attributes,
          childList:
            e.isElement ||
            (typeof l.childList == 'undefined' ? !0 : l).childList,
          characterData:
            typeof l.characterData == 'undefined' ? !0 : l.characterData,
        }),
          a.push(p)
      },
      n = () => {
        if (!!e.params.observer) {
          if (e.params.observeParents) {
            const o = le(e.hostEl)
            for (let l = 0; l < o.length; l += 1) c(o[l])
          }
          c(e.hostEl, { childList: e.params.observeSlideChildren }),
            c(e.wrapperEl, { attributes: !1 })
        }
      },
      u = () => {
        a.forEach((o) => {
          o.disconnect()
        }),
          a.splice(0, a.length)
      }
    t({ observer: !1, observeParents: !1, observeSlideChildren: !1 }),
      i('init', n),
      i('destroy', u)
  }
  var St = {
    on(s, e, t) {
      const i = this
      if (!i.eventsListeners || i.destroyed || typeof e != 'function') return i
      const r = t ? 'unshift' : 'push'
      return (
        s.split(' ').forEach((a) => {
          i.eventsListeners[a] || (i.eventsListeners[a] = []),
            i.eventsListeners[a][r](e)
        }),
        i
      )
    },
    once(s, e, t) {
      const i = this
      if (!i.eventsListeners || i.destroyed || typeof e != 'function') return i
      function r() {
        i.off(s, r), r.__emitterProxy && delete r.__emitterProxy
        for (var a = arguments.length, f = new Array(a), c = 0; c < a; c++)
          f[c] = arguments[c]
        e.apply(i, f)
      }
      return (r.__emitterProxy = e), i.on(s, r, t)
    },
    onAny(s, e) {
      const t = this
      if (!t.eventsListeners || t.destroyed || typeof s != 'function') return t
      const i = e ? 'unshift' : 'push'
      return (
        t.eventsAnyListeners.indexOf(s) < 0 && t.eventsAnyListeners[i](s), t
      )
    },
    offAny(s) {
      const e = this
      if (!e.eventsListeners || e.destroyed || !e.eventsAnyListeners) return e
      const t = e.eventsAnyListeners.indexOf(s)
      return t >= 0 && e.eventsAnyListeners.splice(t, 1), e
    },
    off(s, e) {
      const t = this
      return (
        !t.eventsListeners ||
          t.destroyed ||
          !t.eventsListeners ||
          s.split(' ').forEach((i) => {
            typeof e == 'undefined'
              ? (t.eventsListeners[i] = [])
              : t.eventsListeners[i] &&
                t.eventsListeners[i].forEach((r, a) => {
                  ;(r === e || (r.__emitterProxy && r.__emitterProxy === e)) &&
                    t.eventsListeners[i].splice(a, 1)
                })
          }),
        t
      )
    },
    emit() {
      const s = this
      if (!s.eventsListeners || s.destroyed || !s.eventsListeners) return s
      let e, t, i
      for (var r = arguments.length, a = new Array(r), f = 0; f < r; f++)
        a[f] = arguments[f]
      return (
        typeof a[0] == 'string' || Array.isArray(a[0])
          ? ((e = a[0]), (t = a.slice(1, a.length)), (i = s))
          : ((e = a[0].events), (t = a[0].data), (i = a[0].context || s)),
        t.unshift(i),
        (Array.isArray(e) ? e : e.split(' ')).forEach((n) => {
          s.eventsAnyListeners &&
            s.eventsAnyListeners.length &&
            s.eventsAnyListeners.forEach((u) => {
              u.apply(i, [n, ...t])
            }),
            s.eventsListeners &&
              s.eventsListeners[n] &&
              s.eventsListeners[n].forEach((u) => {
                u.apply(i, t)
              })
        }),
        s
      )
    },
  }
  function Et() {
    const s = this
    let e, t
    const i = s.el
    typeof s.params.width != 'undefined' && s.params.width !== null
      ? (e = s.params.width)
      : (e = i.clientWidth),
      typeof s.params.height != 'undefined' && s.params.height !== null
        ? (t = s.params.height)
        : (t = i.clientHeight),
      !((e === 0 && s.isHorizontal()) || (t === 0 && s.isVertical())) &&
        ((e =
          e -
          parseInt(re(i, 'padding-left') || 0, 10) -
          parseInt(re(i, 'padding-right') || 0, 10)),
        (t =
          t -
          parseInt(re(i, 'padding-top') || 0, 10) -
          parseInt(re(i, 'padding-bottom') || 0, 10)),
        Number.isNaN(e) && (e = 0),
        Number.isNaN(t) && (t = 0),
        Object.assign(s, {
          width: e,
          height: t,
          size: s.isHorizontal() ? e : t,
        }))
  }
  function xt() {
    const s = this
    function e(P, I) {
      return parseFloat(P.getPropertyValue(s.getDirectionLabel(I)) || 0)
    }
    const t = s.params,
      { wrapperEl: i, slidesEl: r, size: a, rtlTranslate: f, wrongRTL: c } = s,
      n = s.virtual && t.virtual.enabled,
      u = n ? s.virtual.slides.length : s.slides.length,
      o = W(r, `.${s.params.slideClass}, swiper-slide`),
      l = n ? s.virtual.slides.length : o.length
    let d = []
    const p = [],
      h = []
    let g = t.slidesOffsetBefore
    typeof g == 'function' && (g = t.slidesOffsetBefore.call(s))
    let w = t.slidesOffsetAfter
    typeof w == 'function' && (w = t.slidesOffsetAfter.call(s))
    const y = s.snapGrid.length,
      v = s.slidesGrid.length
    let m = t.spaceBetween,
      b = -g,
      S = 0,
      A = 0
    if (typeof a == 'undefined') return
    typeof m == 'string' && m.indexOf('%') >= 0
      ? (m = (parseFloat(m.replace('%', '')) / 100) * a)
      : typeof m == 'string' && (m = parseFloat(m)),
      (s.virtualSize = -m),
      o.forEach((P) => {
        f ? (P.style.marginLeft = '') : (P.style.marginRight = ''),
          (P.style.marginBottom = ''),
          (P.style.marginTop = '')
      }),
      t.centeredSlides &&
        t.cssMode &&
        (pe(i, '--swiper-centered-offset-before', ''),
        pe(i, '--swiper-centered-offset-after', ''))
    const O = t.grid && t.grid.rows > 1 && s.grid
    O ? s.grid.initSlides(o) : s.grid && s.grid.unsetSlides()
    let z
    const T =
      t.slidesPerView === 'auto' &&
      t.breakpoints &&
      Object.keys(t.breakpoints).filter(
        (P) => typeof t.breakpoints[P].slidesPerView != 'undefined'
      ).length > 0
    for (let P = 0; P < l; P += 1) {
      z = 0
      let I
      if (
        (o[P] && (I = o[P]),
        O && s.grid.updateSlide(P, I, o),
        !(o[P] && re(I, 'display') === 'none'))
      ) {
        if (t.slidesPerView === 'auto') {
          T && (o[P].style[s.getDirectionLabel('width')] = '')
          const C = getComputedStyle(I),
            E = I.style.transform,
            x = I.style.webkitTransform
          if (
            (E && (I.style.transform = 'none'),
            x && (I.style.webkitTransform = 'none'),
            t.roundLengths)
          )
            z = s.isHorizontal() ? Ie(I, 'width', !0) : Ie(I, 'height', !0)
          else {
            const D = e(C, 'width'),
              G = e(C, 'padding-left'),
              M = e(C, 'padding-right'),
              L = e(C, 'margin-left'),
              V = e(C, 'margin-right'),
              F = C.getPropertyValue('box-sizing')
            if (F && F === 'border-box') z = D + L + V
            else {
              const { clientWidth: $, offsetWidth: k } = I
              z = D + G + M + L + V + (k - $)
            }
          }
          E && (I.style.transform = E),
            x && (I.style.webkitTransform = x),
            t.roundLengths && (z = Math.floor(z))
        } else
          (z = (a - (t.slidesPerView - 1) * m) / t.slidesPerView),
            t.roundLengths && (z = Math.floor(z)),
            o[P] && (o[P].style[s.getDirectionLabel('width')] = `${z}px`)
        o[P] && (o[P].swiperSlideSize = z),
          h.push(z),
          t.centeredSlides
            ? ((b = b + z / 2 + S / 2 + m),
              S === 0 && P !== 0 && (b = b - a / 2 - m),
              P === 0 && (b = b - a / 2 - m),
              Math.abs(b) < 1 / 1e3 && (b = 0),
              t.roundLengths && (b = Math.floor(b)),
              A % t.slidesPerGroup == 0 && d.push(b),
              p.push(b))
            : (t.roundLengths && (b = Math.floor(b)),
              (A - Math.min(s.params.slidesPerGroupSkip, A)) %
                s.params.slidesPerGroup ==
                0 && d.push(b),
              p.push(b),
              (b = b + z + m)),
          (s.virtualSize += z + m),
          (S = z),
          (A += 1)
      }
    }
    if (
      ((s.virtualSize = Math.max(s.virtualSize, a) + w),
      f &&
        c &&
        (t.effect === 'slide' || t.effect === 'coverflow') &&
        (i.style.width = `${s.virtualSize + m}px`),
      t.setWrapperSize &&
        (i.style[s.getDirectionLabel('width')] = `${s.virtualSize + m}px`),
      O && s.grid.updateWrapperSize(z, d),
      !t.centeredSlides)
    ) {
      const P = []
      for (let I = 0; I < d.length; I += 1) {
        let C = d[I]
        t.roundLengths && (C = Math.floor(C)),
          d[I] <= s.virtualSize - a && P.push(C)
      }
      ;(d = P),
        Math.floor(s.virtualSize - a) - Math.floor(d[d.length - 1]) > 1 &&
          d.push(s.virtualSize - a)
    }
    if (n && t.loop) {
      const P = h[0] + m
      if (t.slidesPerGroup > 1) {
        const I = Math.ceil(
            (s.virtual.slidesBefore + s.virtual.slidesAfter) / t.slidesPerGroup
          ),
          C = P * t.slidesPerGroup
        for (let E = 0; E < I; E += 1) d.push(d[d.length - 1] + C)
      }
      for (
        let I = 0;
        I < s.virtual.slidesBefore + s.virtual.slidesAfter;
        I += 1
      )
        t.slidesPerGroup === 1 && d.push(d[d.length - 1] + P),
          p.push(p[p.length - 1] + P),
          (s.virtualSize += P)
    }
    if ((d.length === 0 && (d = [0]), m !== 0)) {
      const P =
        s.isHorizontal() && f
          ? 'marginLeft'
          : s.getDirectionLabel('marginRight')
      o.filter((I, C) =>
        !t.cssMode || t.loop ? !0 : C !== o.length - 1
      ).forEach((I) => {
        I.style[P] = `${m}px`
      })
    }
    if (t.centeredSlides && t.centeredSlidesBounds) {
      let P = 0
      h.forEach((C) => {
        P += C + (m || 0)
      }),
        (P -= m)
      const I = P > a ? P - a : 0
      d = d.map((C) => (C <= 0 ? -g : C > I ? I + w : C))
    }
    if (t.centerInsufficientSlides) {
      let P = 0
      h.forEach((C) => {
        P += C + (m || 0)
      }),
        (P -= m)
      const I = (t.slidesOffsetBefore || 0) + (t.slidesOffsetAfter || 0)
      if (P + I < a) {
        const C = (a - P - I) / 2
        d.forEach((E, x) => {
          d[x] = E - C
        }),
          p.forEach((E, x) => {
            p[x] = E + C
          })
      }
    }
    if (
      (Object.assign(s, {
        slides: o,
        snapGrid: d,
        slidesGrid: p,
        slidesSizesGrid: h,
      }),
      t.centeredSlides && t.cssMode && !t.centeredSlidesBounds)
    ) {
      pe(i, '--swiper-centered-offset-before', `${-d[0]}px`),
        pe(
          i,
          '--swiper-centered-offset-after',
          `${s.size / 2 - h[h.length - 1] / 2}px`
        )
      const P = -s.snapGrid[0],
        I = -s.slidesGrid[0]
      ;(s.snapGrid = s.snapGrid.map((C) => C + P)),
        (s.slidesGrid = s.slidesGrid.map((C) => C + I))
    }
    if (
      (l !== u && s.emit('slidesLengthChange'),
      d.length !== y &&
        (s.params.watchOverflow && s.checkOverflow(),
        s.emit('snapGridLengthChange')),
      p.length !== v && s.emit('slidesGridLengthChange'),
      t.watchSlidesProgress && s.updateSlidesOffset(),
      s.emit('slidesUpdated'),
      !n && !t.cssMode && (t.effect === 'slide' || t.effect === 'fade'))
    ) {
      const P = `${t.containerModifierClass}backface-hidden`,
        I = s.el.classList.contains(P)
      l <= t.maxBackfaceHiddenSlides
        ? I || s.el.classList.add(P)
        : I && s.el.classList.remove(P)
    }
  }
  function Tt(s) {
    const e = this,
      t = [],
      i = e.virtual && e.params.virtual.enabled
    let r = 0,
      a
    typeof s == 'number'
      ? e.setTransition(s)
      : s === !0 && e.setTransition(e.params.speed)
    const f = (c) => (i ? e.slides[e.getSlideIndexByData(c)] : e.slides[c])
    if (e.params.slidesPerView !== 'auto' && e.params.slidesPerView > 1)
      if (e.params.centeredSlides)
        (e.visibleSlides || []).forEach((c) => {
          t.push(c)
        })
      else
        for (a = 0; a < Math.ceil(e.params.slidesPerView); a += 1) {
          const c = e.activeIndex + a
          if (c > e.slides.length && !i) break
          t.push(f(c))
        }
    else t.push(f(e.activeIndex))
    for (a = 0; a < t.length; a += 1)
      if (typeof t[a] != 'undefined') {
        const c = t[a].offsetHeight
        r = c > r ? c : r
      }
    ;(r || r === 0) && (e.wrapperEl.style.height = `${r}px`)
  }
  function Mt() {
    const s = this,
      e = s.slides,
      t = s.isElement
        ? s.isHorizontal()
          ? s.wrapperEl.offsetLeft
          : s.wrapperEl.offsetTop
        : 0
    for (let i = 0; i < e.length; i += 1)
      e[i].swiperSlideOffset =
        (s.isHorizontal() ? e[i].offsetLeft : e[i].offsetTop) -
        t -
        s.cssOverflowAdjustment()
  }
  const je = (s, e, t) => {
    e && !s.classList.contains(t)
      ? s.classList.add(t)
      : !e && s.classList.contains(t) && s.classList.remove(t)
  }
  function Ct(s) {
    s === void 0 && (s = (this && this.translate) || 0)
    const e = this,
      t = e.params,
      { slides: i, rtlTranslate: r, snapGrid: a } = e
    if (i.length === 0) return
    typeof i[0].swiperSlideOffset == 'undefined' && e.updateSlidesOffset()
    let f = -s
    r && (f = s), (e.visibleSlidesIndexes = []), (e.visibleSlides = [])
    let c = t.spaceBetween
    typeof c == 'string' && c.indexOf('%') >= 0
      ? (c = (parseFloat(c.replace('%', '')) / 100) * e.size)
      : typeof c == 'string' && (c = parseFloat(c))
    for (let n = 0; n < i.length; n += 1) {
      const u = i[n]
      let o = u.swiperSlideOffset
      t.cssMode && t.centeredSlides && (o -= i[0].swiperSlideOffset)
      const l =
          (f + (t.centeredSlides ? e.minTranslate() : 0) - o) /
          (u.swiperSlideSize + c),
        d =
          (f - a[0] + (t.centeredSlides ? e.minTranslate() : 0) - o) /
          (u.swiperSlideSize + c),
        p = -(f - o),
        h = p + e.slidesSizesGrid[n],
        g = p >= 0 && p <= e.size - e.slidesSizesGrid[n],
        w =
          (p >= 0 && p < e.size - 1) ||
          (h > 1 && h <= e.size) ||
          (p <= 0 && h >= e.size)
      w && (e.visibleSlides.push(u), e.visibleSlidesIndexes.push(n)),
        je(u, w, t.slideVisibleClass),
        je(u, g, t.slideFullyVisibleClass),
        (u.progress = r ? -l : l),
        (u.originalProgress = r ? -d : d)
    }
  }
  function Pt(s) {
    const e = this
    if (typeof s == 'undefined') {
      const o = e.rtlTranslate ? -1 : 1
      s = (e && e.translate && e.translate * o) || 0
    }
    const t = e.params,
      i = e.maxTranslate() - e.minTranslate()
    let { progress: r, isBeginning: a, isEnd: f, progressLoop: c } = e
    const n = a,
      u = f
    if (i === 0) (r = 0), (a = !0), (f = !0)
    else {
      r = (s - e.minTranslate()) / i
      const o = Math.abs(s - e.minTranslate()) < 1,
        l = Math.abs(s - e.maxTranslate()) < 1
      ;(a = o || r <= 0), (f = l || r >= 1), o && (r = 0), l && (r = 1)
    }
    if (t.loop) {
      const o = e.getSlideIndexByData(0),
        l = e.getSlideIndexByData(e.slides.length - 1),
        d = e.slidesGrid[o],
        p = e.slidesGrid[l],
        h = e.slidesGrid[e.slidesGrid.length - 1],
        g = Math.abs(s)
      g >= d ? (c = (g - d) / h) : (c = (g + h - p) / h), c > 1 && (c -= 1)
    }
    Object.assign(e, {
      progress: r,
      progressLoop: c,
      isBeginning: a,
      isEnd: f,
    }),
      (t.watchSlidesProgress || (t.centeredSlides && t.autoHeight)) &&
        e.updateSlidesProgress(s),
      a && !n && e.emit('reachBeginning toEdge'),
      f && !u && e.emit('reachEnd toEdge'),
      ((n && !a) || (u && !f)) && e.emit('fromEdge'),
      e.emit('progress', r)
  }
  const Oe = (s, e, t) => {
    e && !s.classList.contains(t)
      ? s.classList.add(t)
      : !e && s.classList.contains(t) && s.classList.remove(t)
  }
  function Lt() {
    const s = this,
      { slides: e, params: t, slidesEl: i, activeIndex: r } = s,
      a = s.virtual && t.virtual.enabled,
      f = s.grid && t.grid && t.grid.rows > 1,
      c = (l) => W(i, `.${t.slideClass}${l}, swiper-slide${l}`)[0]
    let n, u, o
    if (a)
      if (t.loop) {
        let l = r - s.virtual.slidesBefore
        l < 0 && (l = s.virtual.slides.length + l),
          l >= s.virtual.slides.length && (l -= s.virtual.slides.length),
          (n = c(`[data-swiper-slide-index="${l}"]`))
      } else n = c(`[data-swiper-slide-index="${r}"]`)
    else
      f
        ? ((n = e.filter((l) => l.column === r)[0]),
          (o = e.filter((l) => l.column === r + 1)[0]),
          (u = e.filter((l) => l.column === r - 1)[0]))
        : (n = e[r])
    n &&
      (f ||
        ((o = mt(n, `.${t.slideClass}, swiper-slide`)[0]),
        t.loop && !o && (o = e[0]),
        (u = pt(n, `.${t.slideClass}, swiper-slide`)[0]),
        t.loop && !u === 0 && (u = e[e.length - 1]))),
      e.forEach((l) => {
        Oe(l, l === n, t.slideActiveClass),
          Oe(l, l === o, t.slideNextClass),
          Oe(l, l === u, t.slidePrevClass)
      }),
      s.emitSlidesClasses()
  }
  const Ee = (s, e) => {
      if (!s || s.destroyed || !s.params) return
      const t = () =>
          s.isElement ? 'swiper-slide' : `.${s.params.slideClass}`,
        i = e.closest(t())
      if (i) {
        let r = i.querySelector(`.${s.params.lazyPreloaderClass}`)
        !r &&
          s.isElement &&
          (i.shadowRoot
            ? (r = i.shadowRoot.querySelector(
                `.${s.params.lazyPreloaderClass}`
              ))
            : requestAnimationFrame(() => {
                i.shadowRoot &&
                  ((r = i.shadowRoot.querySelector(
                    `.${s.params.lazyPreloaderClass}`
                  )),
                  r && r.remove())
              })),
          r && r.remove()
      }
    },
    $e = (s, e) => {
      if (!s.slides[e]) return
      const t = s.slides[e].querySelector('[loading="lazy"]')
      t && t.removeAttribute('loading')
    },
    ke = (s) => {
      if (!s || s.destroyed || !s.params) return
      let e = s.params.lazyPreloadPrevNext
      const t = s.slides.length
      if (!t || !e || e < 0) return
      e = Math.min(e, t)
      const i =
          s.params.slidesPerView === 'auto'
            ? s.slidesPerViewDynamic()
            : Math.ceil(s.params.slidesPerView),
        r = s.activeIndex
      if (s.params.grid && s.params.grid.rows > 1) {
        const f = r,
          c = [f - e]
        c.push(...Array.from({ length: e }).map((n, u) => f + i + u)),
          s.slides.forEach((n, u) => {
            c.includes(n.column) && $e(s, u)
          })
        return
      }
      const a = r + i - 1
      if (s.params.rewind || s.params.loop)
        for (let f = r - e; f <= a + e; f += 1) {
          const c = ((f % t) + t) % t
          ;(c < r || c > a) && $e(s, c)
        }
      else
        for (let f = Math.max(r - e, 0); f <= Math.min(a + e, t - 1); f += 1)
          f !== r && (f > a || f < r) && $e(s, f)
    }
  function It(s) {
    const { slidesGrid: e, params: t } = s,
      i = s.rtlTranslate ? s.translate : -s.translate
    let r
    for (let a = 0; a < e.length; a += 1)
      typeof e[a + 1] != 'undefined'
        ? i >= e[a] && i < e[a + 1] - (e[a + 1] - e[a]) / 2
          ? (r = a)
          : i >= e[a] && i < e[a + 1] && (r = a + 1)
        : i >= e[a] && (r = a)
    return (
      t.normalizeSlideIndex && (r < 0 || typeof r == 'undefined') && (r = 0), r
    )
  }
  function At(s) {
    const e = this,
      t = e.rtlTranslate ? e.translate : -e.translate,
      { snapGrid: i, params: r, activeIndex: a, realIndex: f, snapIndex: c } = e
    let n = s,
      u
    const o = (p) => {
      let h = p - e.virtual.slidesBefore
      return (
        h < 0 && (h = e.virtual.slides.length + h),
        h >= e.virtual.slides.length && (h -= e.virtual.slides.length),
        h
      )
    }
    if ((typeof n == 'undefined' && (n = It(e)), i.indexOf(t) >= 0))
      u = i.indexOf(t)
    else {
      const p = Math.min(r.slidesPerGroupSkip, n)
      u = p + Math.floor((n - p) / r.slidesPerGroup)
    }
    if ((u >= i.length && (u = i.length - 1), n === a && !e.params.loop)) {
      u !== c && ((e.snapIndex = u), e.emit('snapIndexChange'))
      return
    }
    if (n === a && e.params.loop && e.virtual && e.params.virtual.enabled) {
      e.realIndex = o(n)
      return
    }
    const l = e.grid && r.grid && r.grid.rows > 1
    let d
    if (e.virtual && r.virtual.enabled && r.loop) d = o(n)
    else if (l) {
      const p = e.slides.filter((g) => g.column === n)[0]
      let h = parseInt(p.getAttribute('data-swiper-slide-index'), 10)
      Number.isNaN(h) && (h = Math.max(e.slides.indexOf(p), 0)),
        (d = Math.floor(h / r.grid.rows))
    } else if (e.slides[n]) {
      const p = e.slides[n].getAttribute('data-swiper-slide-index')
      p ? (d = parseInt(p, 10)) : (d = n)
    } else d = n
    Object.assign(e, {
      previousSnapIndex: c,
      snapIndex: u,
      previousRealIndex: f,
      realIndex: d,
      previousIndex: a,
      activeIndex: n,
    }),
      e.initialized && ke(e),
      e.emit('activeIndexChange'),
      e.emit('snapIndexChange'),
      (e.initialized || e.params.runCallbacksOnInit) &&
        (f !== d && e.emit('realIndexChange'), e.emit('slideChange'))
  }
  function zt(s, e) {
    const t = this,
      i = t.params
    let r = s.closest(`.${i.slideClass}, swiper-slide`)
    !r &&
      t.isElement &&
      e &&
      e.length > 1 &&
      e.includes(s) &&
      [...e.slice(e.indexOf(s) + 1, e.length)].forEach((c) => {
        !r &&
          c.matches &&
          c.matches(`.${i.slideClass}, swiper-slide`) &&
          (r = c)
      })
    let a = !1,
      f
    if (r) {
      for (let c = 0; c < t.slides.length; c += 1)
        if (t.slides[c] === r) {
          ;(a = !0), (f = c)
          break
        }
    }
    if (r && a)
      (t.clickedSlide = r),
        t.virtual && t.params.virtual.enabled
          ? (t.clickedIndex = parseInt(
              r.getAttribute('data-swiper-slide-index'),
              10
            ))
          : (t.clickedIndex = f)
    else {
      ;(t.clickedSlide = void 0), (t.clickedIndex = void 0)
      return
    }
    i.slideToClickedSlide &&
      t.clickedIndex !== void 0 &&
      t.clickedIndex !== t.activeIndex &&
      t.slideToClickedSlide()
  }
  var Dt = {
    updateSize: Et,
    updateSlides: xt,
    updateAutoHeight: Tt,
    updateSlidesOffset: Mt,
    updateSlidesProgress: Ct,
    updateProgress: Pt,
    updateSlidesClasses: Lt,
    updateActiveIndex: At,
    updateClickedSlide: zt,
  }
  function Ot(s) {
    s === void 0 && (s = this.isHorizontal() ? 'x' : 'y')
    const e = this,
      { params: t, rtlTranslate: i, translate: r, wrapperEl: a } = e
    if (t.virtualTranslate) return i ? -r : r
    if (t.cssMode) return r
    let f = Le(a, s)
    return (f += e.cssOverflowAdjustment()), i && (f = -f), f || 0
  }
  function $t(s, e) {
    const t = this,
      { rtlTranslate: i, params: r, wrapperEl: a, progress: f } = t
    let c = 0,
      n = 0
    const u = 0
    t.isHorizontal() ? (c = i ? -s : s) : (n = s),
      r.roundLengths && ((c = Math.floor(c)), (n = Math.floor(n))),
      (t.previousTranslate = t.translate),
      (t.translate = t.isHorizontal() ? c : n),
      r.cssMode
        ? (a[t.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = t.isHorizontal()
            ? -c
            : -n)
        : r.virtualTranslate ||
          (t.isHorizontal()
            ? (c -= t.cssOverflowAdjustment())
            : (n -= t.cssOverflowAdjustment()),
          (a.style.transform = `translate3d(${c}px, ${n}px, ${u}px)`))
    let o
    const l = t.maxTranslate() - t.minTranslate()
    l === 0 ? (o = 0) : (o = (s - t.minTranslate()) / l),
      o !== f && t.updateProgress(s),
      t.emit('setTranslate', t.translate, e)
  }
  function kt() {
    return -this.snapGrid[0]
  }
  function Vt() {
    return -this.snapGrid[this.snapGrid.length - 1]
  }
  function Gt(s, e, t, i, r) {
    s === void 0 && (s = 0),
      e === void 0 && (e = this.params.speed),
      t === void 0 && (t = !0),
      i === void 0 && (i = !0)
    const a = this,
      { params: f, wrapperEl: c } = a
    if (a.animating && f.preventInteractionOnTransition) return !1
    const n = a.minTranslate(),
      u = a.maxTranslate()
    let o
    if (
      (i && s > n ? (o = n) : i && s < u ? (o = u) : (o = s),
      a.updateProgress(o),
      f.cssMode)
    ) {
      const l = a.isHorizontal()
      if (e === 0) c[l ? 'scrollLeft' : 'scrollTop'] = -o
      else {
        if (!a.support.smoothScroll)
          return (
            qe({ swiper: a, targetPosition: -o, side: l ? 'left' : 'top' }), !0
          )
        c.scrollTo({ [l ? 'left' : 'top']: -o, behavior: 'smooth' })
      }
      return !0
    }
    return (
      e === 0
        ? (a.setTransition(0),
          a.setTranslate(o),
          t && (a.emit('beforeTransitionStart', e, r), a.emit('transitionEnd')))
        : (a.setTransition(e),
          a.setTranslate(o),
          t &&
            (a.emit('beforeTransitionStart', e, r), a.emit('transitionStart')),
          a.animating ||
            ((a.animating = !0),
            a.onTranslateToWrapperTransitionEnd ||
              (a.onTranslateToWrapperTransitionEnd = function (d) {
                !a ||
                  a.destroyed ||
                  (d.target === this &&
                    (a.wrapperEl.removeEventListener(
                      'transitionend',
                      a.onTranslateToWrapperTransitionEnd
                    ),
                    (a.onTranslateToWrapperTransitionEnd = null),
                    delete a.onTranslateToWrapperTransitionEnd,
                    (a.animating = !1),
                    t && a.emit('transitionEnd')))
              }),
            a.wrapperEl.addEventListener(
              'transitionend',
              a.onTranslateToWrapperTransitionEnd
            ))),
      !0
    )
  }
  var Bt = {
    getTranslate: Ot,
    setTranslate: $t,
    minTranslate: kt,
    maxTranslate: Vt,
    translateTo: Gt,
  }
  function Ht(s, e) {
    const t = this
    t.params.cssMode ||
      ((t.wrapperEl.style.transitionDuration = `${s}ms`),
      (t.wrapperEl.style.transitionDelay = s === 0 ? '0ms' : '')),
      t.emit('setTransition', s, e)
  }
  function Ue(s) {
    let { swiper: e, runCallbacks: t, direction: i, step: r } = s
    const { activeIndex: a, previousIndex: f } = e
    let c = i
    if (
      (c || (a > f ? (c = 'next') : a < f ? (c = 'prev') : (c = 'reset')),
      e.emit(`transition${r}`),
      t && a !== f)
    ) {
      if (c === 'reset') {
        e.emit(`slideResetTransition${r}`)
        return
      }
      e.emit(`slideChangeTransition${r}`),
        c === 'next'
          ? e.emit(`slideNextTransition${r}`)
          : e.emit(`slidePrevTransition${r}`)
    }
  }
  function Ft(s, e) {
    s === void 0 && (s = !0)
    const t = this,
      { params: i } = t
    i.cssMode ||
      (i.autoHeight && t.updateAutoHeight(),
      Ue({ swiper: t, runCallbacks: s, direction: e, step: 'Start' }))
  }
  function Nt(s, e) {
    s === void 0 && (s = !0)
    const t = this,
      { params: i } = t
    ;(t.animating = !1),
      !i.cssMode &&
        (t.setTransition(0),
        Ue({ swiper: t, runCallbacks: s, direction: e, step: 'End' }))
  }
  var Rt = { setTransition: Ht, transitionStart: Ft, transitionEnd: Nt }
  function Yt(s, e, t, i, r) {
    s === void 0 && (s = 0),
      t === void 0 && (t = !0),
      typeof s == 'string' && (s = parseInt(s, 10))
    const a = this
    let f = s
    f < 0 && (f = 0)
    const {
      params: c,
      snapGrid: n,
      slidesGrid: u,
      previousIndex: o,
      activeIndex: l,
      rtlTranslate: d,
      wrapperEl: p,
      enabled: h,
    } = a
    if (
      (!h && !i && !r) ||
      a.destroyed ||
      (a.animating && c.preventInteractionOnTransition)
    )
      return !1
    typeof e == 'undefined' && (e = a.params.speed)
    const g = Math.min(a.params.slidesPerGroupSkip, f)
    let w = g + Math.floor((f - g) / a.params.slidesPerGroup)
    w >= n.length && (w = n.length - 1)
    const y = -n[w]
    if (c.normalizeSlideIndex)
      for (let S = 0; S < u.length; S += 1) {
        const A = -Math.floor(y * 100),
          O = Math.floor(u[S] * 100),
          z = Math.floor(u[S + 1] * 100)
        typeof u[S + 1] != 'undefined'
          ? A >= O && A < z - (z - O) / 2
            ? (f = S)
            : A >= O && A < z && (f = S + 1)
          : A >= O && (f = S)
      }
    if (
      a.initialized &&
      f !== l &&
      ((!a.allowSlideNext &&
        (d
          ? y > a.translate && y > a.minTranslate()
          : y < a.translate && y < a.minTranslate())) ||
        (!a.allowSlidePrev &&
          y > a.translate &&
          y > a.maxTranslate() &&
          (l || 0) !== f))
    )
      return !1
    f !== (o || 0) && t && a.emit('beforeSlideChangeStart'), a.updateProgress(y)
    let v
    f > l ? (v = 'next') : f < l ? (v = 'prev') : (v = 'reset')
    const m = a.virtual && a.params.virtual.enabled
    if (!(m && r) && ((d && -y === a.translate) || (!d && y === a.translate)))
      return (
        a.updateActiveIndex(f),
        c.autoHeight && a.updateAutoHeight(),
        a.updateSlidesClasses(),
        c.effect !== 'slide' && a.setTranslate(y),
        v !== 'reset' && (a.transitionStart(t, v), a.transitionEnd(t, v)),
        !1
      )
    if (c.cssMode) {
      const S = a.isHorizontal(),
        A = d ? y : -y
      if (e === 0)
        m &&
          ((a.wrapperEl.style.scrollSnapType = 'none'),
          (a._immediateVirtual = !0)),
          m && !a._cssModeVirtualInitialSet && a.params.initialSlide > 0
            ? ((a._cssModeVirtualInitialSet = !0),
              requestAnimationFrame(() => {
                p[S ? 'scrollLeft' : 'scrollTop'] = A
              }))
            : (p[S ? 'scrollLeft' : 'scrollTop'] = A),
          m &&
            requestAnimationFrame(() => {
              ;(a.wrapperEl.style.scrollSnapType = ''),
                (a._immediateVirtual = !1)
            })
      else {
        if (!a.support.smoothScroll)
          return (
            qe({ swiper: a, targetPosition: A, side: S ? 'left' : 'top' }), !0
          )
        p.scrollTo({ [S ? 'left' : 'top']: A, behavior: 'smooth' })
      }
      return !0
    }
    return (
      a.setTransition(e),
      a.setTranslate(y),
      a.updateActiveIndex(f),
      a.updateSlidesClasses(),
      a.emit('beforeTransitionStart', e, i),
      a.transitionStart(t, v),
      e === 0
        ? a.transitionEnd(t, v)
        : a.animating ||
          ((a.animating = !0),
          a.onSlideToWrapperTransitionEnd ||
            (a.onSlideToWrapperTransitionEnd = function (A) {
              !a ||
                a.destroyed ||
                (A.target === this &&
                  (a.wrapperEl.removeEventListener(
                    'transitionend',
                    a.onSlideToWrapperTransitionEnd
                  ),
                  (a.onSlideToWrapperTransitionEnd = null),
                  delete a.onSlideToWrapperTransitionEnd,
                  a.transitionEnd(t, v)))
            }),
          a.wrapperEl.addEventListener(
            'transitionend',
            a.onSlideToWrapperTransitionEnd
          )),
      !0
    )
  }
  function Xt(s, e, t, i) {
    s === void 0 && (s = 0),
      t === void 0 && (t = !0),
      typeof s == 'string' && (s = parseInt(s, 10))
    const r = this
    if (r.destroyed) return
    typeof e == 'undefined' && (e = r.params.speed)
    const a = r.grid && r.params.grid && r.params.grid.rows > 1
    let f = s
    if (r.params.loop)
      if (r.virtual && r.params.virtual.enabled) f = f + r.virtual.slidesBefore
      else {
        let c
        if (a) {
          const d = f * r.params.grid.rows
          c = r.slides.filter(
            (p) => p.getAttribute('data-swiper-slide-index') * 1 === d
          )[0].column
        } else c = r.getSlideIndexByData(f)
        const n = a
            ? Math.ceil(r.slides.length / r.params.grid.rows)
            : r.slides.length,
          { centeredSlides: u } = r.params
        let o = r.params.slidesPerView
        o === 'auto'
          ? (o = r.slidesPerViewDynamic())
          : ((o = Math.ceil(parseFloat(r.params.slidesPerView, 10))),
            u && o % 2 == 0 && (o = o + 1))
        let l = n - c < o
        if (
          (u && (l = l || c < Math.ceil(o / 2)),
          i && u && r.params.slidesPerView !== 'auto' && !a && (l = !1),
          l)
        ) {
          const d = u
            ? c < r.activeIndex
              ? 'prev'
              : 'next'
            : c - r.activeIndex - 1 < r.params.slidesPerView
            ? 'next'
            : 'prev'
          r.loopFix({
            direction: d,
            slideTo: !0,
            activeSlideIndex: d === 'next' ? c + 1 : c - n + 1,
            slideRealIndex: d === 'next' ? r.realIndex : void 0,
          })
        }
        if (a) {
          const d = f * r.params.grid.rows
          f = r.slides.filter(
            (p) => p.getAttribute('data-swiper-slide-index') * 1 === d
          )[0].column
        } else f = r.getSlideIndexByData(f)
      }
    return (
      requestAnimationFrame(() => {
        r.slideTo(f, e, t, i)
      }),
      r
    )
  }
  function qt(s, e, t) {
    e === void 0 && (e = !0)
    const i = this,
      { enabled: r, params: a, animating: f } = i
    if (!r || i.destroyed) return i
    typeof s == 'undefined' && (s = i.params.speed)
    let c = a.slidesPerGroup
    a.slidesPerView === 'auto' &&
      a.slidesPerGroup === 1 &&
      a.slidesPerGroupAuto &&
      (c = Math.max(i.slidesPerViewDynamic('current', !0), 1))
    const n = i.activeIndex < a.slidesPerGroupSkip ? 1 : c,
      u = i.virtual && a.virtual.enabled
    if (a.loop) {
      if (f && !u && a.loopPreventsSliding) return !1
      if (
        (i.loopFix({ direction: 'next' }),
        (i._clientLeft = i.wrapperEl.clientLeft),
        i.activeIndex === i.slides.length - 1 && a.cssMode)
      )
        return (
          requestAnimationFrame(() => {
            i.slideTo(i.activeIndex + n, s, e, t)
          }),
          !0
        )
    }
    return a.rewind && i.isEnd
      ? i.slideTo(0, s, e, t)
      : i.slideTo(i.activeIndex + n, s, e, t)
  }
  function Wt(s, e, t) {
    e === void 0 && (e = !0)
    const i = this,
      {
        params: r,
        snapGrid: a,
        slidesGrid: f,
        rtlTranslate: c,
        enabled: n,
        animating: u,
      } = i
    if (!n || i.destroyed) return i
    typeof s == 'undefined' && (s = i.params.speed)
    const o = i.virtual && r.virtual.enabled
    if (r.loop) {
      if (u && !o && r.loopPreventsSliding) return !1
      i.loopFix({ direction: 'prev' }), (i._clientLeft = i.wrapperEl.clientLeft)
    }
    const l = c ? i.translate : -i.translate
    function d(y) {
      return y < 0 ? -Math.floor(Math.abs(y)) : Math.floor(y)
    }
    const p = d(l),
      h = a.map((y) => d(y))
    let g = a[h.indexOf(p) - 1]
    if (typeof g == 'undefined' && r.cssMode) {
      let y
      a.forEach((v, m) => {
        p >= v && (y = m)
      }),
        typeof y != 'undefined' && (g = a[y > 0 ? y - 1 : y])
    }
    let w = 0
    if (
      (typeof g != 'undefined' &&
        ((w = f.indexOf(g)),
        w < 0 && (w = i.activeIndex - 1),
        r.slidesPerView === 'auto' &&
          r.slidesPerGroup === 1 &&
          r.slidesPerGroupAuto &&
          ((w = w - i.slidesPerViewDynamic('previous', !0) + 1),
          (w = Math.max(w, 0)))),
      r.rewind && i.isBeginning)
    ) {
      const y =
        i.params.virtual && i.params.virtual.enabled && i.virtual
          ? i.virtual.slides.length - 1
          : i.slides.length - 1
      return i.slideTo(y, s, e, t)
    } else if (r.loop && i.activeIndex === 0 && r.cssMode)
      return (
        requestAnimationFrame(() => {
          i.slideTo(w, s, e, t)
        }),
        !0
      )
    return i.slideTo(w, s, e, t)
  }
  function _t(s, e, t) {
    e === void 0 && (e = !0)
    const i = this
    if (!i.destroyed)
      return (
        typeof s == 'undefined' && (s = i.params.speed),
        i.slideTo(i.activeIndex, s, e, t)
      )
  }
  function jt(s, e, t, i) {
    e === void 0 && (e = !0), i === void 0 && (i = 0.5)
    const r = this
    if (r.destroyed) return
    typeof s == 'undefined' && (s = r.params.speed)
    let a = r.activeIndex
    const f = Math.min(r.params.slidesPerGroupSkip, a),
      c = f + Math.floor((a - f) / r.params.slidesPerGroup),
      n = r.rtlTranslate ? r.translate : -r.translate
    if (n >= r.snapGrid[c]) {
      const u = r.snapGrid[c],
        o = r.snapGrid[c + 1]
      n - u > (o - u) * i && (a += r.params.slidesPerGroup)
    } else {
      const u = r.snapGrid[c - 1],
        o = r.snapGrid[c]
      n - u <= (o - u) * i && (a -= r.params.slidesPerGroup)
    }
    return (
      (a = Math.max(a, 0)),
      (a = Math.min(a, r.slidesGrid.length - 1)),
      r.slideTo(a, s, e, t)
    )
  }
  function Ut() {
    const s = this
    if (s.destroyed) return
    const { params: e, slidesEl: t } = s,
      i =
        e.slidesPerView === 'auto' ? s.slidesPerViewDynamic() : e.slidesPerView
    let r = s.clickedIndex,
      a
    const f = s.isElement ? 'swiper-slide' : `.${e.slideClass}`
    if (e.loop) {
      if (s.animating) return
      ;(a = parseInt(
        s.clickedSlide.getAttribute('data-swiper-slide-index'),
        10
      )),
        e.centeredSlides
          ? r < s.loopedSlides - i / 2 ||
            r > s.slides.length - s.loopedSlides + i / 2
            ? (s.loopFix(),
              (r = s.getSlideIndex(
                W(t, `${f}[data-swiper-slide-index="${a}"]`)[0]
              )),
              ae(() => {
                s.slideTo(r)
              }))
            : s.slideTo(r)
          : r > s.slides.length - i
          ? (s.loopFix(),
            (r = s.getSlideIndex(
              W(t, `${f}[data-swiper-slide-index="${a}"]`)[0]
            )),
            ae(() => {
              s.slideTo(r)
            }))
          : s.slideTo(r)
    } else s.slideTo(r)
  }
  var Kt = {
    slideTo: Yt,
    slideToLoop: Xt,
    slideNext: qt,
    slidePrev: Wt,
    slideReset: _t,
    slideToClosest: jt,
    slideToClickedSlide: Ut,
  }
  function Zt(s) {
    const e = this,
      { params: t, slidesEl: i } = e
    if (!t.loop || (e.virtual && e.params.virtual.enabled)) return
    const r = () => {
        W(i, `.${t.slideClass}, swiper-slide`).forEach((l, d) => {
          l.setAttribute('data-swiper-slide-index', d)
        })
      },
      a = e.grid && t.grid && t.grid.rows > 1,
      f = t.slidesPerGroup * (a ? t.grid.rows : 1),
      c = e.slides.length % f != 0,
      n = a && e.slides.length % t.grid.rows != 0,
      u = (o) => {
        for (let l = 0; l < o; l += 1) {
          const d = e.isElement
            ? J('swiper-slide', [t.slideBlankClass])
            : J('div', [t.slideClass, t.slideBlankClass])
          e.slidesEl.append(d)
        }
      }
    if (c) {
      if (t.loopAddBlankSlides) {
        const o = f - (e.slides.length % f)
        u(o), e.recalcSlides(), e.updateSlides()
      } else
        ye(
          'Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)'
        )
      r()
    } else if (n) {
      if (t.loopAddBlankSlides) {
        const o = t.grid.rows - (e.slides.length % t.grid.rows)
        u(o), e.recalcSlides(), e.updateSlides()
      } else
        ye(
          'Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)'
        )
      r()
    } else r()
    e.loopFix({
      slideRealIndex: s,
      direction: t.centeredSlides ? void 0 : 'next',
    })
  }
  function Qt(s) {
    let {
      slideRealIndex: e,
      slideTo: t = !0,
      direction: i,
      setTranslate: r,
      activeSlideIndex: a,
      byController: f,
      byMousewheel: c,
    } = s === void 0 ? {} : s
    const n = this
    if (!n.params.loop) return
    n.emit('beforeLoopFix')
    const {
        slides: u,
        allowSlidePrev: o,
        allowSlideNext: l,
        slidesEl: d,
        params: p,
      } = n,
      { centeredSlides: h } = p
    if (
      ((n.allowSlidePrev = !0),
      (n.allowSlideNext = !0),
      n.virtual && p.virtual.enabled)
    ) {
      t &&
        (!p.centeredSlides && n.snapIndex === 0
          ? n.slideTo(n.virtual.slides.length, 0, !1, !0)
          : p.centeredSlides && n.snapIndex < p.slidesPerView
          ? n.slideTo(n.virtual.slides.length + n.snapIndex, 0, !1, !0)
          : n.snapIndex === n.snapGrid.length - 1 &&
            n.slideTo(n.virtual.slidesBefore, 0, !1, !0)),
        (n.allowSlidePrev = o),
        (n.allowSlideNext = l),
        n.emit('loopFix')
      return
    }
    let g = p.slidesPerView
    g === 'auto'
      ? (g = n.slidesPerViewDynamic())
      : ((g = Math.ceil(parseFloat(p.slidesPerView, 10))),
        h && g % 2 == 0 && (g = g + 1))
    const w = p.slidesPerGroupAuto ? g : p.slidesPerGroup
    let y = w
    y % w != 0 && (y += w - (y % w)),
      (y += p.loopAdditionalSlides),
      (n.loopedSlides = y)
    const v = n.grid && p.grid && p.grid.rows > 1
    u.length < g + y
      ? ye(
          'Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters'
        )
      : v &&
        p.grid.fill === 'row' &&
        ye(
          'Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`'
        )
    const m = [],
      b = []
    let S = n.activeIndex
    typeof a == 'undefined'
      ? (a = n.getSlideIndex(
          u.filter((E) => E.classList.contains(p.slideActiveClass))[0]
        ))
      : (S = a)
    const A = i === 'next' || !i,
      O = i === 'prev' || !i
    let z = 0,
      T = 0
    const P = v ? Math.ceil(u.length / p.grid.rows) : u.length,
      C =
        (v ? u[a].column : a) +
        (h && typeof r == 'undefined' ? -g / 2 + 0.5 : 0)
    if (C < y) {
      z = Math.max(y - C, w)
      for (let E = 0; E < y - C; E += 1) {
        const x = E - Math.floor(E / P) * P
        if (v) {
          const D = P - x - 1
          for (let G = u.length - 1; G >= 0; G -= 1)
            u[G].column === D && m.push(G)
        } else m.push(P - x - 1)
      }
    } else if (C + g > P - y) {
      T = Math.max(C - (P - y * 2), w)
      for (let E = 0; E < T; E += 1) {
        const x = E - Math.floor(E / P) * P
        v
          ? u.forEach((D, G) => {
              D.column === x && b.push(G)
            })
          : b.push(x)
      }
    }
    if (
      ((n.__preventObserver__ = !0),
      requestAnimationFrame(() => {
        n.__preventObserver__ = !1
      }),
      O &&
        m.forEach((E) => {
          ;(u[E].swiperLoopMoveDOM = !0),
            d.prepend(u[E]),
            (u[E].swiperLoopMoveDOM = !1)
        }),
      A &&
        b.forEach((E) => {
          ;(u[E].swiperLoopMoveDOM = !0),
            d.append(u[E]),
            (u[E].swiperLoopMoveDOM = !1)
        }),
      n.recalcSlides(),
      p.slidesPerView === 'auto'
        ? n.updateSlides()
        : v &&
          ((m.length > 0 && O) || (b.length > 0 && A)) &&
          n.slides.forEach((E, x) => {
            n.grid.updateSlide(x, E, n.slides)
          }),
      p.watchSlidesProgress && n.updateSlidesOffset(),
      t)
    ) {
      if (m.length > 0 && O) {
        if (typeof e == 'undefined') {
          const E = n.slidesGrid[S],
            D = n.slidesGrid[S + z] - E
          c
            ? n.setTranslate(n.translate - D)
            : (n.slideTo(S + Math.ceil(z), 0, !1, !0),
              r &&
                ((n.touchEventsData.startTranslate =
                  n.touchEventsData.startTranslate - D),
                (n.touchEventsData.currentTranslate =
                  n.touchEventsData.currentTranslate - D)))
        } else if (r) {
          const E = v ? m.length / p.grid.rows : m.length
          n.slideTo(n.activeIndex + E, 0, !1, !0),
            (n.touchEventsData.currentTranslate = n.translate)
        }
      } else if (b.length > 0 && A)
        if (typeof e == 'undefined') {
          const E = n.slidesGrid[S],
            D = n.slidesGrid[S - T] - E
          c
            ? n.setTranslate(n.translate - D)
            : (n.slideTo(S - T, 0, !1, !0),
              r &&
                ((n.touchEventsData.startTranslate =
                  n.touchEventsData.startTranslate - D),
                (n.touchEventsData.currentTranslate =
                  n.touchEventsData.currentTranslate - D)))
        } else {
          const E = v ? b.length / p.grid.rows : b.length
          n.slideTo(n.activeIndex - E, 0, !1, !0)
        }
    }
    if (
      ((n.allowSlidePrev = o),
      (n.allowSlideNext = l),
      n.controller && n.controller.control && !f)
    ) {
      const E = {
        slideRealIndex: e,
        direction: i,
        setTranslate: r,
        activeSlideIndex: a,
        byController: !0,
      }
      Array.isArray(n.controller.control)
        ? n.controller.control.forEach((x) => {
            !x.destroyed &&
              x.params.loop &&
              x.loopFix(
                Xe(Ye({}, E), {
                  slideTo: x.params.slidesPerView === p.slidesPerView ? t : !1,
                })
              )
          })
        : n.controller.control instanceof n.constructor &&
          n.controller.control.params.loop &&
          n.controller.control.loopFix(
            Xe(Ye({}, E), {
              slideTo:
                n.controller.control.params.slidesPerView === p.slidesPerView
                  ? t
                  : !1,
            })
          )
    }
    n.emit('loopFix')
  }
  function Jt() {
    const s = this,
      { params: e, slidesEl: t } = s
    if (!e.loop || (s.virtual && s.params.virtual.enabled)) return
    s.recalcSlides()
    const i = []
    s.slides.forEach((r) => {
      const a =
        typeof r.swiperSlideIndex == 'undefined'
          ? r.getAttribute('data-swiper-slide-index') * 1
          : r.swiperSlideIndex
      i[a] = r
    }),
      s.slides.forEach((r) => {
        r.removeAttribute('data-swiper-slide-index')
      }),
      i.forEach((r) => {
        t.append(r)
      }),
      s.recalcSlides(),
      s.slideTo(s.realIndex, 0)
  }
  var es = { loopCreate: Zt, loopFix: Qt, loopDestroy: Jt }
  function ts(s) {
    const e = this
    if (
      !e.params.simulateTouch ||
      (e.params.watchOverflow && e.isLocked) ||
      e.params.cssMode
    )
      return
    const t = e.params.touchEventsTarget === 'container' ? e.el : e.wrapperEl
    e.isElement && (e.__preventObserver__ = !0),
      (t.style.cursor = 'move'),
      (t.style.cursor = s ? 'grabbing' : 'grab'),
      e.isElement &&
        requestAnimationFrame(() => {
          e.__preventObserver__ = !1
        })
  }
  function ss() {
    const s = this
    ;(s.params.watchOverflow && s.isLocked) ||
      s.params.cssMode ||
      (s.isElement && (s.__preventObserver__ = !0),
      (s[
        s.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'
      ].style.cursor = ''),
      s.isElement &&
        requestAnimationFrame(() => {
          s.__preventObserver__ = !1
        }))
  }
  var is = { setGrabCursor: ts, unsetGrabCursor: ss }
  function rs(s, e) {
    e === void 0 && (e = this)
    function t(i) {
      if (!i || i === q() || i === X()) return null
      i.assignedSlot && (i = i.assignedSlot)
      const r = i.closest(s)
      return !r && !i.getRootNode ? null : r || t(i.getRootNode().host)
    }
    return t(e)
  }
  function Ke(s, e, t) {
    const i = X(),
      { params: r } = s,
      a = r.edgeSwipeDetection,
      f = r.edgeSwipeThreshold
    return a && (t <= f || t >= i.innerWidth - f)
      ? a === 'prevent'
        ? (e.preventDefault(), !0)
        : !1
      : !0
  }
  function as(s) {
    const e = this,
      t = q()
    let i = s
    i.originalEvent && (i = i.originalEvent)
    const r = e.touchEventsData
    if (i.type === 'pointerdown') {
      if (r.pointerId !== null && r.pointerId !== i.pointerId) return
      r.pointerId = i.pointerId
    } else i.type === 'touchstart' && i.targetTouches.length === 1 && (r.touchId = i.targetTouches[0].identifier)
    if (i.type === 'touchstart') {
      Ke(e, i, i.targetTouches[0].pageX)
      return
    }
    const { params: a, touches: f, enabled: c } = e
    if (
      !c ||
      (!a.simulateTouch && i.pointerType === 'mouse') ||
      (e.animating && a.preventInteractionOnTransition)
    )
      return
    !e.animating && a.cssMode && a.loop && e.loopFix()
    let n = i.target
    if (
      (a.touchEventsTarget === 'wrapper' && !ut(n, e.wrapperEl)) ||
      ('which' in i && i.which === 3) ||
      ('button' in i && i.button > 0) ||
      (r.isTouched && r.isMoved)
    )
      return
    const u = !!a.noSwipingClass && a.noSwipingClass !== '',
      o = i.composedPath ? i.composedPath() : i.path
    u && i.target && i.target.shadowRoot && o && (n = o[0])
    const l = a.noSwipingSelector
        ? a.noSwipingSelector
        : `.${a.noSwipingClass}`,
      d = !!(i.target && i.target.shadowRoot)
    if (a.noSwiping && (d ? rs(l, n) : n.closest(l))) {
      e.allowClick = !0
      return
    }
    if (a.swipeHandler && !n.closest(a.swipeHandler)) return
    ;(f.currentX = i.pageX), (f.currentY = i.pageY)
    const p = f.currentX,
      h = f.currentY
    if (!Ke(e, i, p)) return
    Object.assign(r, {
      isTouched: !0,
      isMoved: !1,
      allowTouchCallbacks: !0,
      isScrolling: void 0,
      startMoving: void 0,
    }),
      (f.startX = p),
      (f.startY = h),
      (r.touchStartTime = ee()),
      (e.allowClick = !0),
      e.updateSize(),
      (e.swipeDirection = void 0),
      a.threshold > 0 && (r.allowThresholdMove = !1)
    let g = !0
    n.matches(r.focusableElements) &&
      ((g = !1), n.nodeName === 'SELECT' && (r.isTouched = !1)),
      t.activeElement &&
        t.activeElement.matches(r.focusableElements) &&
        t.activeElement !== n &&
        t.activeElement.blur()
    const w = g && e.allowTouchMove && a.touchStartPreventDefault
    ;(a.touchStartForcePreventDefault || w) &&
      !n.isContentEditable &&
      i.preventDefault(),
      a.freeMode &&
        a.freeMode.enabled &&
        e.freeMode &&
        e.animating &&
        !a.cssMode &&
        e.freeMode.onTouchStart(),
      e.emit('touchStart', i)
  }
  function ns(s) {
    const e = q(),
      t = this,
      i = t.touchEventsData,
      { params: r, touches: a, rtlTranslate: f, enabled: c } = t
    if (!c || (!r.simulateTouch && s.pointerType === 'mouse')) return
    let n = s
    if (
      (n.originalEvent && (n = n.originalEvent),
      n.type === 'pointermove' &&
        (i.touchId !== null || n.pointerId !== i.pointerId))
    )
      return
    let u
    if (n.type === 'touchmove') {
      if (
        ((u = [...n.changedTouches].filter(
          (A) => A.identifier === i.touchId
        )[0]),
        !u || u.identifier !== i.touchId)
      )
        return
    } else u = n
    if (!i.isTouched) {
      i.startMoving && i.isScrolling && t.emit('touchMoveOpposite', n)
      return
    }
    const o = u.pageX,
      l = u.pageY
    if (n.preventedByNestedSwiper) {
      ;(a.startX = o), (a.startY = l)
      return
    }
    if (!t.allowTouchMove) {
      n.target.matches(i.focusableElements) || (t.allowClick = !1),
        i.isTouched &&
          (Object.assign(a, { startX: o, startY: l, currentX: o, currentY: l }),
          (i.touchStartTime = ee()))
      return
    }
    if (r.touchReleaseOnEdges && !r.loop) {
      if (t.isVertical()) {
        if (
          (l < a.startY && t.translate <= t.maxTranslate()) ||
          (l > a.startY && t.translate >= t.minTranslate())
        ) {
          ;(i.isTouched = !1), (i.isMoved = !1)
          return
        }
      } else if (
        (o < a.startX && t.translate <= t.maxTranslate()) ||
        (o > a.startX && t.translate >= t.minTranslate())
      )
        return
    }
    if (
      e.activeElement &&
      n.target === e.activeElement &&
      n.target.matches(i.focusableElements)
    ) {
      ;(i.isMoved = !0), (t.allowClick = !1)
      return
    }
    i.allowTouchCallbacks && t.emit('touchMove', n),
      (a.previousX = a.currentX),
      (a.previousY = a.currentY),
      (a.currentX = o),
      (a.currentY = l)
    const d = a.currentX - a.startX,
      p = a.currentY - a.startY
    if (t.params.threshold && Math.sqrt(d ** 2 + p ** 2) < t.params.threshold)
      return
    if (typeof i.isScrolling == 'undefined') {
      let A
      ;(t.isHorizontal() && a.currentY === a.startY) ||
      (t.isVertical() && a.currentX === a.startX)
        ? (i.isScrolling = !1)
        : d * d + p * p >= 25 &&
          ((A = (Math.atan2(Math.abs(p), Math.abs(d)) * 180) / Math.PI),
          (i.isScrolling = t.isHorizontal()
            ? A > r.touchAngle
            : 90 - A > r.touchAngle))
    }
    if (
      (i.isScrolling && t.emit('touchMoveOpposite', n),
      typeof i.startMoving == 'undefined' &&
        (a.currentX !== a.startX || a.currentY !== a.startY) &&
        (i.startMoving = !0),
      i.isScrolling ||
        (n.type === 'touchmove' && i.preventTouchMoveFromPointerMove))
    ) {
      i.isTouched = !1
      return
    }
    if (!i.startMoving) return
    ;(t.allowClick = !1),
      !r.cssMode && n.cancelable && n.preventDefault(),
      r.touchMoveStopPropagation && !r.nested && n.stopPropagation()
    let h = t.isHorizontal() ? d : p,
      g = t.isHorizontal() ? a.currentX - a.previousX : a.currentY - a.previousY
    r.oneWayMovement &&
      ((h = Math.abs(h) * (f ? 1 : -1)), (g = Math.abs(g) * (f ? 1 : -1))),
      (a.diff = h),
      (h *= r.touchRatio),
      f && ((h = -h), (g = -g))
    const w = t.touchesDirection
    ;(t.swipeDirection = h > 0 ? 'prev' : 'next'),
      (t.touchesDirection = g > 0 ? 'prev' : 'next')
    const y = t.params.loop && !r.cssMode,
      v =
        (t.touchesDirection === 'next' && t.allowSlideNext) ||
        (t.touchesDirection === 'prev' && t.allowSlidePrev)
    if (!i.isMoved) {
      if (
        (y && v && t.loopFix({ direction: t.swipeDirection }),
        (i.startTranslate = t.getTranslate()),
        t.setTransition(0),
        t.animating)
      ) {
        const A = new window.CustomEvent('transitionend', {
          bubbles: !0,
          cancelable: !0,
          detail: { bySwiperTouchMove: !0 },
        })
        t.wrapperEl.dispatchEvent(A)
      }
      ;(i.allowMomentumBounce = !1),
        r.grabCursor &&
          (t.allowSlideNext === !0 || t.allowSlidePrev === !0) &&
          t.setGrabCursor(!0),
        t.emit('sliderFirstMove', n)
    }
    let m
    if (
      (new Date().getTime(),
      i.isMoved &&
        i.allowThresholdMove &&
        w !== t.touchesDirection &&
        y &&
        v &&
        Math.abs(h) >= 1)
    ) {
      Object.assign(a, {
        startX: o,
        startY: l,
        currentX: o,
        currentY: l,
        startTranslate: i.currentTranslate,
      }),
        (i.loopSwapReset = !0),
        (i.startTranslate = i.currentTranslate)
      return
    }
    t.emit('sliderMove', n),
      (i.isMoved = !0),
      (i.currentTranslate = h + i.startTranslate)
    let b = !0,
      S = r.resistanceRatio
    if (
      (r.touchReleaseOnEdges && (S = 0),
      h > 0
        ? (y &&
            v &&
            !m &&
            i.allowThresholdMove &&
            i.currentTranslate >
              (r.centeredSlides
                ? t.minTranslate() -
                  t.slidesSizesGrid[t.activeIndex + 1] -
                  (r.slidesPerView !== 'auto' &&
                  t.slides.length - r.slidesPerView >= 2
                    ? t.slidesSizesGrid[t.activeIndex + 1] +
                      t.params.spaceBetween
                    : 0) -
                  t.params.spaceBetween
                : t.minTranslate()) &&
            t.loopFix({
              direction: 'prev',
              setTranslate: !0,
              activeSlideIndex: 0,
            }),
          i.currentTranslate > t.minTranslate() &&
            ((b = !1),
            r.resistance &&
              (i.currentTranslate =
                t.minTranslate() -
                1 +
                (-t.minTranslate() + i.startTranslate + h) ** S)))
        : h < 0 &&
          (y &&
            v &&
            !m &&
            i.allowThresholdMove &&
            i.currentTranslate <
              (r.centeredSlides
                ? t.maxTranslate() +
                  t.slidesSizesGrid[t.slidesSizesGrid.length - 1] +
                  t.params.spaceBetween +
                  (r.slidesPerView !== 'auto' &&
                  t.slides.length - r.slidesPerView >= 2
                    ? t.slidesSizesGrid[t.slidesSizesGrid.length - 1] +
                      t.params.spaceBetween
                    : 0)
                : t.maxTranslate()) &&
            t.loopFix({
              direction: 'next',
              setTranslate: !0,
              activeSlideIndex:
                t.slides.length -
                (r.slidesPerView === 'auto'
                  ? t.slidesPerViewDynamic()
                  : Math.ceil(parseFloat(r.slidesPerView, 10))),
            }),
          i.currentTranslate < t.maxTranslate() &&
            ((b = !1),
            r.resistance &&
              (i.currentTranslate =
                t.maxTranslate() +
                1 -
                (t.maxTranslate() - i.startTranslate - h) ** S))),
      b && (n.preventedByNestedSwiper = !0),
      !t.allowSlideNext &&
        t.swipeDirection === 'next' &&
        i.currentTranslate < i.startTranslate &&
        (i.currentTranslate = i.startTranslate),
      !t.allowSlidePrev &&
        t.swipeDirection === 'prev' &&
        i.currentTranslate > i.startTranslate &&
        (i.currentTranslate = i.startTranslate),
      !t.allowSlidePrev &&
        !t.allowSlideNext &&
        (i.currentTranslate = i.startTranslate),
      r.threshold > 0)
    )
      if (Math.abs(h) > r.threshold || i.allowThresholdMove) {
        if (!i.allowThresholdMove) {
          ;(i.allowThresholdMove = !0),
            (a.startX = a.currentX),
            (a.startY = a.currentY),
            (i.currentTranslate = i.startTranslate),
            (a.diff = t.isHorizontal()
              ? a.currentX - a.startX
              : a.currentY - a.startY)
          return
        }
      } else {
        i.currentTranslate = i.startTranslate
        return
      }
    !r.followFinger ||
      r.cssMode ||
      (((r.freeMode && r.freeMode.enabled && t.freeMode) ||
        r.watchSlidesProgress) &&
        (t.updateActiveIndex(), t.updateSlidesClasses()),
      r.freeMode &&
        r.freeMode.enabled &&
        t.freeMode &&
        t.freeMode.onTouchMove(),
      t.updateProgress(i.currentTranslate),
      t.setTranslate(i.currentTranslate))
  }
  function ls(s) {
    const e = this,
      t = e.touchEventsData
    let i = s
    i.originalEvent && (i = i.originalEvent)
    let r
    if (i.type === 'touchend' || i.type === 'touchcancel') {
      if (
        ((r = [...i.changedTouches].filter(
          (S) => S.identifier === t.touchId
        )[0]),
        !r || r.identifier !== t.touchId)
      )
        return
    } else {
      if (t.touchId !== null || i.pointerId !== t.pointerId) return
      r = i
    }
    if (
      ['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(
        i.type
      ) &&
      !(
        ['pointercancel', 'contextmenu'].includes(i.type) &&
        (e.browser.isSafari || e.browser.isWebView)
      )
    )
      return
    ;(t.pointerId = null), (t.touchId = null)
    const {
      params: f,
      touches: c,
      rtlTranslate: n,
      slidesGrid: u,
      enabled: o,
    } = e
    if (!o || (!f.simulateTouch && i.pointerType === 'mouse')) return
    if (
      (t.allowTouchCallbacks && e.emit('touchEnd', i),
      (t.allowTouchCallbacks = !1),
      !t.isTouched)
    ) {
      t.isMoved && f.grabCursor && e.setGrabCursor(!1),
        (t.isMoved = !1),
        (t.startMoving = !1)
      return
    }
    f.grabCursor &&
      t.isMoved &&
      t.isTouched &&
      (e.allowSlideNext === !0 || e.allowSlidePrev === !0) &&
      e.setGrabCursor(!1)
    const l = ee(),
      d = l - t.touchStartTime
    if (e.allowClick) {
      const S = i.path || (i.composedPath && i.composedPath())
      e.updateClickedSlide((S && S[0]) || i.target, S),
        e.emit('tap click', i),
        d < 300 &&
          l - t.lastClickTime < 300 &&
          e.emit('doubleTap doubleClick', i)
    }
    if (
      ((t.lastClickTime = ee()),
      ae(() => {
        e.destroyed || (e.allowClick = !0)
      }),
      !t.isTouched ||
        !t.isMoved ||
        !e.swipeDirection ||
        (c.diff === 0 && !t.loopSwapReset) ||
        (t.currentTranslate === t.startTranslate && !t.loopSwapReset))
    ) {
      ;(t.isTouched = !1), (t.isMoved = !1), (t.startMoving = !1)
      return
    }
    ;(t.isTouched = !1), (t.isMoved = !1), (t.startMoving = !1)
    let p
    if (
      (f.followFinger
        ? (p = n ? e.translate : -e.translate)
        : (p = -t.currentTranslate),
      f.cssMode)
    )
      return
    if (f.freeMode && f.freeMode.enabled) {
      e.freeMode.onTouchEnd({ currentPos: p })
      return
    }
    const h = p >= -e.maxTranslate() && !e.params.loop
    let g = 0,
      w = e.slidesSizesGrid[0]
    for (
      let S = 0;
      S < u.length;
      S += S < f.slidesPerGroupSkip ? 1 : f.slidesPerGroup
    ) {
      const A = S < f.slidesPerGroupSkip - 1 ? 1 : f.slidesPerGroup
      typeof u[S + A] != 'undefined'
        ? (h || (p >= u[S] && p < u[S + A])) && ((g = S), (w = u[S + A] - u[S]))
        : (h || p >= u[S]) && ((g = S), (w = u[u.length - 1] - u[u.length - 2]))
    }
    let y = null,
      v = null
    f.rewind &&
      (e.isBeginning
        ? (v =
            f.virtual && f.virtual.enabled && e.virtual
              ? e.virtual.slides.length - 1
              : e.slides.length - 1)
        : e.isEnd && (y = 0))
    const m = (p - u[g]) / w,
      b = g < f.slidesPerGroupSkip - 1 ? 1 : f.slidesPerGroup
    if (d > f.longSwipesMs) {
      if (!f.longSwipes) {
        e.slideTo(e.activeIndex)
        return
      }
      e.swipeDirection === 'next' &&
        (m >= f.longSwipesRatio
          ? e.slideTo(f.rewind && e.isEnd ? y : g + b)
          : e.slideTo(g)),
        e.swipeDirection === 'prev' &&
          (m > 1 - f.longSwipesRatio
            ? e.slideTo(g + b)
            : v !== null && m < 0 && Math.abs(m) > f.longSwipesRatio
            ? e.slideTo(v)
            : e.slideTo(g))
    } else {
      if (!f.shortSwipes) {
        e.slideTo(e.activeIndex)
        return
      }
      e.navigation &&
      (i.target === e.navigation.nextEl || i.target === e.navigation.prevEl)
        ? i.target === e.navigation.nextEl
          ? e.slideTo(g + b)
          : e.slideTo(g)
        : (e.swipeDirection === 'next' && e.slideTo(y !== null ? y : g + b),
          e.swipeDirection === 'prev' && e.slideTo(v !== null ? v : g))
    }
  }
  function Ze() {
    const s = this,
      { params: e, el: t } = s
    if (t && t.offsetWidth === 0) return
    e.breakpoints && s.setBreakpoint()
    const { allowSlideNext: i, allowSlidePrev: r, snapGrid: a } = s,
      f = s.virtual && s.params.virtual.enabled
    ;(s.allowSlideNext = !0),
      (s.allowSlidePrev = !0),
      s.updateSize(),
      s.updateSlides(),
      s.updateSlidesClasses()
    const c = f && e.loop
    ;(e.slidesPerView === 'auto' || e.slidesPerView > 1) &&
    s.isEnd &&
    !s.isBeginning &&
    !s.params.centeredSlides &&
    !c
      ? s.slideTo(s.slides.length - 1, 0, !1, !0)
      : s.params.loop && !f
      ? s.slideToLoop(s.realIndex, 0, !1, !0)
      : s.slideTo(s.activeIndex, 0, !1, !0),
      s.autoplay &&
        s.autoplay.running &&
        s.autoplay.paused &&
        (clearTimeout(s.autoplay.resizeTimeout),
        (s.autoplay.resizeTimeout = setTimeout(() => {
          s.autoplay &&
            s.autoplay.running &&
            s.autoplay.paused &&
            s.autoplay.resume()
        }, 500))),
      (s.allowSlidePrev = r),
      (s.allowSlideNext = i),
      s.params.watchOverflow && a !== s.snapGrid && s.checkOverflow()
  }
  function os(s) {
    const e = this
    !e.enabled ||
      e.allowClick ||
      (e.params.preventClicks && s.preventDefault(),
      e.params.preventClicksPropagation &&
        e.animating &&
        (s.stopPropagation(), s.stopImmediatePropagation()))
  }
  function ds() {
    const s = this,
      { wrapperEl: e, rtlTranslate: t, enabled: i } = s
    if (!i) return
    ;(s.previousTranslate = s.translate),
      s.isHorizontal()
        ? (s.translate = -e.scrollLeft)
        : (s.translate = -e.scrollTop),
      s.translate === 0 && (s.translate = 0),
      s.updateActiveIndex(),
      s.updateSlidesClasses()
    let r
    const a = s.maxTranslate() - s.minTranslate()
    a === 0 ? (r = 0) : (r = (s.translate - s.minTranslate()) / a),
      r !== s.progress && s.updateProgress(t ? -s.translate : s.translate),
      s.emit('setTranslate', s.translate, !1)
  }
  function cs(s) {
    const e = this
    Ee(e, s.target),
      !(
        e.params.cssMode ||
        (e.params.slidesPerView !== 'auto' && !e.params.autoHeight)
      ) && e.update()
  }
  function fs() {
    const s = this
    s.documentTouchHandlerProceeded ||
      ((s.documentTouchHandlerProceeded = !0),
      s.params.touchReleaseOnEdges && (s.el.style.touchAction = 'auto'))
  }
  const Qe = (s, e) => {
    const t = q(),
      { params: i, el: r, wrapperEl: a, device: f } = s,
      c = !!i.nested,
      n = e === 'on' ? 'addEventListener' : 'removeEventListener',
      u = e
    !r ||
      typeof r == 'string' ||
      (t[n]('touchstart', s.onDocumentTouchStart, { passive: !1, capture: c }),
      r[n]('touchstart', s.onTouchStart, { passive: !1 }),
      r[n]('pointerdown', s.onTouchStart, { passive: !1 }),
      t[n]('touchmove', s.onTouchMove, { passive: !1, capture: c }),
      t[n]('pointermove', s.onTouchMove, { passive: !1, capture: c }),
      t[n]('touchend', s.onTouchEnd, { passive: !0 }),
      t[n]('pointerup', s.onTouchEnd, { passive: !0 }),
      t[n]('pointercancel', s.onTouchEnd, { passive: !0 }),
      t[n]('touchcancel', s.onTouchEnd, { passive: !0 }),
      t[n]('pointerout', s.onTouchEnd, { passive: !0 }),
      t[n]('pointerleave', s.onTouchEnd, { passive: !0 }),
      t[n]('contextmenu', s.onTouchEnd, { passive: !0 }),
      (i.preventClicks || i.preventClicksPropagation) &&
        r[n]('click', s.onClick, !0),
      i.cssMode && a[n]('scroll', s.onScroll),
      i.updateOnWindowResize
        ? s[u](
            f.ios || f.android
              ? 'resize orientationchange observerUpdate'
              : 'resize observerUpdate',
            Ze,
            !0
          )
        : s[u]('observerUpdate', Ze, !0),
      r[n]('load', s.onLoad, { capture: !0 }))
  }
  function us() {
    const s = this,
      { params: e } = s
    ;(s.onTouchStart = as.bind(s)),
      (s.onTouchMove = ns.bind(s)),
      (s.onTouchEnd = ls.bind(s)),
      (s.onDocumentTouchStart = fs.bind(s)),
      e.cssMode && (s.onScroll = ds.bind(s)),
      (s.onClick = os.bind(s)),
      (s.onLoad = cs.bind(s)),
      Qe(s, 'on')
  }
  function ps() {
    Qe(this, 'off')
  }
  var ms = { attachEvents: us, detachEvents: ps }
  const Je = (s, e) => s.grid && e.grid && e.grid.rows > 1
  function hs() {
    const s = this,
      { realIndex: e, initialized: t, params: i, el: r } = s,
      a = i.breakpoints
    if (!a || (a && Object.keys(a).length === 0)) return
    const f = s.getBreakpoint(a, s.params.breakpointsBase, s.el)
    if (!f || s.currentBreakpoint === f) return
    const n = (f in a ? a[f] : void 0) || s.originalParams,
      u = Je(s, i),
      o = Je(s, n),
      l = s.params.grabCursor,
      d = n.grabCursor,
      p = i.enabled
    u && !o
      ? (r.classList.remove(
          `${i.containerModifierClass}grid`,
          `${i.containerModifierClass}grid-column`
        ),
        s.emitContainerClasses())
      : !u &&
        o &&
        (r.classList.add(`${i.containerModifierClass}grid`),
        ((n.grid.fill && n.grid.fill === 'column') ||
          (!n.grid.fill && i.grid.fill === 'column')) &&
          r.classList.add(`${i.containerModifierClass}grid-column`),
        s.emitContainerClasses()),
      l && !d ? s.unsetGrabCursor() : !l && d && s.setGrabCursor(),
      ['navigation', 'pagination', 'scrollbar'].forEach((m) => {
        if (typeof n[m] == 'undefined') return
        const b = i[m] && i[m].enabled,
          S = n[m] && n[m].enabled
        b && !S && s[m].disable(), !b && S && s[m].enable()
      })
    const h = n.direction && n.direction !== i.direction,
      g = i.loop && (n.slidesPerView !== i.slidesPerView || h),
      w = i.loop
    h && t && s.changeDirection(), Q(s.params, n)
    const y = s.params.enabled,
      v = s.params.loop
    Object.assign(s, {
      allowTouchMove: s.params.allowTouchMove,
      allowSlideNext: s.params.allowSlideNext,
      allowSlidePrev: s.params.allowSlidePrev,
    }),
      p && !y ? s.disable() : !p && y && s.enable(),
      (s.currentBreakpoint = f),
      s.emit('_beforeBreakpoint', n),
      t &&
        (g
          ? (s.loopDestroy(), s.loopCreate(e), s.updateSlides())
          : !w && v
          ? (s.loopCreate(e), s.updateSlides())
          : w && !v && s.loopDestroy()),
      s.emit('breakpoint', n)
  }
  function gs(s, e, t) {
    if ((e === void 0 && (e = 'window'), !s || (e === 'container' && !t)))
      return
    let i = !1
    const r = X(),
      a = e === 'window' ? r.innerHeight : t.clientHeight,
      f = Object.keys(s).map((c) => {
        if (typeof c == 'string' && c.indexOf('@') === 0) {
          const n = parseFloat(c.substr(1))
          return { value: a * n, point: c }
        }
        return { value: c, point: c }
      })
    f.sort((c, n) => parseInt(c.value, 10) - parseInt(n.value, 10))
    for (let c = 0; c < f.length; c += 1) {
      const { point: n, value: u } = f[c]
      e === 'window'
        ? r.matchMedia(`(min-width: ${u}px)`).matches && (i = n)
        : u <= t.clientWidth && (i = n)
    }
    return i || 'max'
  }
  var vs = { setBreakpoint: hs, getBreakpoint: gs }
  function ws(s, e) {
    const t = []
    return (
      s.forEach((i) => {
        typeof i == 'object'
          ? Object.keys(i).forEach((r) => {
              i[r] && t.push(e + r)
            })
          : typeof i == 'string' && t.push(e + i)
      }),
      t
    )
  }
  function ys() {
    const s = this,
      { classNames: e, params: t, rtl: i, el: r, device: a } = s,
      f = ws(
        [
          'initialized',
          t.direction,
          { 'free-mode': s.params.freeMode && t.freeMode.enabled },
          { autoheight: t.autoHeight },
          { rtl: i },
          { grid: t.grid && t.grid.rows > 1 },
          {
            'grid-column':
              t.grid && t.grid.rows > 1 && t.grid.fill === 'column',
          },
          { android: a.android },
          { ios: a.ios },
          { 'css-mode': t.cssMode },
          { centered: t.cssMode && t.centeredSlides },
          { 'watch-progress': t.watchSlidesProgress },
        ],
        t.containerModifierClass
      )
    e.push(...f), r.classList.add(...e), s.emitContainerClasses()
  }
  function bs() {
    const s = this,
      { el: e, classNames: t } = s
    !e ||
      typeof e == 'string' ||
      (e.classList.remove(...t), s.emitContainerClasses())
  }
  var Ss = { addClasses: ys, removeClasses: bs }
  function Es() {
    const s = this,
      { isLocked: e, params: t } = s,
      { slidesOffsetBefore: i } = t
    if (i) {
      const r = s.slides.length - 1,
        a = s.slidesGrid[r] + s.slidesSizesGrid[r] + i * 2
      s.isLocked = s.size > a
    } else s.isLocked = s.snapGrid.length === 1
    t.allowSlideNext === !0 && (s.allowSlideNext = !s.isLocked),
      t.allowSlidePrev === !0 && (s.allowSlidePrev = !s.isLocked),
      e && e !== s.isLocked && (s.isEnd = !1),
      e !== s.isLocked && s.emit(s.isLocked ? 'lock' : 'unlock')
  }
  var xs = { checkOverflow: Es },
    et = {
      init: !0,
      direction: 'horizontal',
      oneWayMovement: !1,
      swiperElementNodeName: 'SWIPER-CONTAINER',
      touchEventsTarget: 'wrapper',
      initialSlide: 0,
      speed: 300,
      cssMode: !1,
      updateOnWindowResize: !0,
      resizeObserver: !0,
      nested: !1,
      createElements: !1,
      eventsPrefix: 'swiper',
      enabled: !0,
      focusableElements:
        'input, select, option, textarea, button, video, label',
      width: null,
      height: null,
      preventInteractionOnTransition: !1,
      userAgent: null,
      url: null,
      edgeSwipeDetection: !1,
      edgeSwipeThreshold: 20,
      autoHeight: !1,
      setWrapperSize: !1,
      virtualTranslate: !1,
      effect: 'slide',
      breakpoints: void 0,
      breakpointsBase: 'window',
      spaceBetween: 0,
      slidesPerView: 1,
      slidesPerGroup: 1,
      slidesPerGroupSkip: 0,
      slidesPerGroupAuto: !1,
      centeredSlides: !1,
      centeredSlidesBounds: !1,
      slidesOffsetBefore: 0,
      slidesOffsetAfter: 0,
      normalizeSlideIndex: !0,
      centerInsufficientSlides: !1,
      watchOverflow: !0,
      roundLengths: !1,
      touchRatio: 1,
      touchAngle: 45,
      simulateTouch: !0,
      shortSwipes: !0,
      longSwipes: !0,
      longSwipesRatio: 0.5,
      longSwipesMs: 300,
      followFinger: !0,
      allowTouchMove: !0,
      threshold: 5,
      touchMoveStopPropagation: !1,
      touchStartPreventDefault: !0,
      touchStartForcePreventDefault: !1,
      touchReleaseOnEdges: !1,
      uniqueNavElements: !0,
      resistance: !0,
      resistanceRatio: 0.85,
      watchSlidesProgress: !1,
      grabCursor: !1,
      preventClicks: !0,
      preventClicksPropagation: !0,
      slideToClickedSlide: !1,
      loop: !1,
      loopAddBlankSlides: !0,
      loopAdditionalSlides: 0,
      loopPreventsSliding: !0,
      rewind: !1,
      allowSlidePrev: !0,
      allowSlideNext: !0,
      swipeHandler: null,
      noSwiping: !0,
      noSwipingClass: 'swiper-no-swiping',
      noSwipingSelector: null,
      passiveListeners: !0,
      maxBackfaceHiddenSlides: 10,
      containerModifierClass: 'swiper-',
      slideClass: 'swiper-slide',
      slideBlankClass: 'swiper-slide-blank',
      slideActiveClass: 'swiper-slide-active',
      slideVisibleClass: 'swiper-slide-visible',
      slideFullyVisibleClass: 'swiper-slide-fully-visible',
      slideNextClass: 'swiper-slide-next',
      slidePrevClass: 'swiper-slide-prev',
      wrapperClass: 'swiper-wrapper',
      lazyPreloaderClass: 'swiper-lazy-preloader',
      lazyPreloadPrevNext: 0,
      runCallbacksOnInit: !0,
      _emitClasses: !1,
    }
  function Ts(s, e) {
    return function (i) {
      i === void 0 && (i = {})
      const r = Object.keys(i)[0],
        a = i[r]
      if (typeof a != 'object' || a === null) {
        Q(e, i)
        return
      }
      if (
        (s[r] === !0 && (s[r] = { enabled: !0 }),
        r === 'navigation' &&
          s[r] &&
          s[r].enabled &&
          !s[r].prevEl &&
          !s[r].nextEl &&
          (s[r].auto = !0),
        ['pagination', 'scrollbar'].indexOf(r) >= 0 &&
          s[r] &&
          s[r].enabled &&
          !s[r].el &&
          (s[r].auto = !0),
        !(r in s && 'enabled' in a))
      ) {
        Q(e, i)
        return
      }
      typeof s[r] == 'object' && !('enabled' in s[r]) && (s[r].enabled = !0),
        s[r] || (s[r] = { enabled: !1 }),
        Q(e, i)
    }
  }
  const Ve = {
      eventsEmitter: St,
      update: Dt,
      translate: Bt,
      transition: Rt,
      slide: Kt,
      loop: es,
      grabCursor: is,
      events: ms,
      breakpoints: vs,
      checkOverflow: xs,
      classes: Ss,
    },
    Ge = {}
  class K {
    constructor() {
      let e, t
      for (var i = arguments.length, r = new Array(i), a = 0; a < i; a++)
        r[a] = arguments[a]
      r.length === 1 &&
      r[0].constructor &&
      Object.prototype.toString.call(r[0]).slice(8, -1) === 'Object'
        ? (t = r[0])
        : ([e, t] = r),
        t || (t = {}),
        (t = Q({}, t)),
        e && !t.el && (t.el = e)
      const f = q()
      if (
        t.el &&
        typeof t.el == 'string' &&
        f.querySelectorAll(t.el).length > 1
      ) {
        const o = []
        return (
          f.querySelectorAll(t.el).forEach((l) => {
            const d = Q({}, t, { el: l })
            o.push(new K(d))
          }),
          o
        )
      }
      const c = this
      ;(c.__swiper__ = !0),
        (c.support = We()),
        (c.device = _e({ userAgent: t.userAgent })),
        (c.browser = wt()),
        (c.eventsListeners = {}),
        (c.eventsAnyListeners = []),
        (c.modules = [...c.__modules__]),
        t.modules && Array.isArray(t.modules) && c.modules.push(...t.modules)
      const n = {}
      c.modules.forEach((o) => {
        o({
          params: t,
          swiper: c,
          extendParams: Ts(t, n),
          on: c.on.bind(c),
          once: c.once.bind(c),
          off: c.off.bind(c),
          emit: c.emit.bind(c),
        })
      })
      const u = Q({}, et, n)
      return (
        (c.params = Q({}, u, Ge, t)),
        (c.originalParams = Q({}, c.params)),
        (c.passedParams = Q({}, t)),
        c.params &&
          c.params.on &&
          Object.keys(c.params.on).forEach((o) => {
            c.on(o, c.params.on[o])
          }),
        c.params && c.params.onAny && c.onAny(c.params.onAny),
        Object.assign(c, {
          enabled: c.params.enabled,
          el: e,
          classNames: [],
          slides: [],
          slidesGrid: [],
          snapGrid: [],
          slidesSizesGrid: [],
          isHorizontal() {
            return c.params.direction === 'horizontal'
          },
          isVertical() {
            return c.params.direction === 'vertical'
          },
          activeIndex: 0,
          realIndex: 0,
          isBeginning: !0,
          isEnd: !1,
          translate: 0,
          previousTranslate: 0,
          progress: 0,
          velocity: 0,
          animating: !1,
          cssOverflowAdjustment() {
            return Math.trunc(this.translate / 2 ** 23) * 2 ** 23
          },
          allowSlideNext: c.params.allowSlideNext,
          allowSlidePrev: c.params.allowSlidePrev,
          touchEventsData: {
            isTouched: void 0,
            isMoved: void 0,
            allowTouchCallbacks: void 0,
            touchStartTime: void 0,
            isScrolling: void 0,
            currentTranslate: void 0,
            startTranslate: void 0,
            allowThresholdMove: void 0,
            focusableElements: c.params.focusableElements,
            lastClickTime: 0,
            clickTimeout: void 0,
            velocities: [],
            allowMomentumBounce: void 0,
            startMoving: void 0,
            pointerId: null,
            touchId: null,
          },
          allowClick: !0,
          allowTouchMove: c.params.allowTouchMove,
          touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 },
          imagesToLoad: [],
          imagesLoaded: 0,
        }),
        c.emit('_swiper'),
        c.params.init && c.init(),
        c
      )
    }
    getDirectionLabel(e) {
      return this.isHorizontal()
        ? e
        : {
            width: 'height',
            'margin-top': 'margin-left',
            'margin-bottom ': 'margin-right',
            'margin-left': 'margin-top',
            'margin-right': 'margin-bottom',
            'padding-left': 'padding-top',
            'padding-right': 'padding-bottom',
            marginRight: 'marginBottom',
          }[e]
    }
    getSlideIndex(e) {
      const { slidesEl: t, params: i } = this,
        r = W(t, `.${i.slideClass}, swiper-slide`),
        a = me(r[0])
      return me(e) - a
    }
    getSlideIndexByData(e) {
      return this.getSlideIndex(
        this.slides.filter(
          (t) => t.getAttribute('data-swiper-slide-index') * 1 === e
        )[0]
      )
    }
    recalcSlides() {
      const e = this,
        { slidesEl: t, params: i } = e
      e.slides = W(t, `.${i.slideClass}, swiper-slide`)
    }
    enable() {
      const e = this
      e.enabled ||
        ((e.enabled = !0),
        e.params.grabCursor && e.setGrabCursor(),
        e.emit('enable'))
    }
    disable() {
      const e = this
      !e.enabled ||
        ((e.enabled = !1),
        e.params.grabCursor && e.unsetGrabCursor(),
        e.emit('disable'))
    }
    setProgress(e, t) {
      const i = this
      e = Math.min(Math.max(e, 0), 1)
      const r = i.minTranslate(),
        f = (i.maxTranslate() - r) * e + r
      i.translateTo(f, typeof t == 'undefined' ? 0 : t),
        i.updateActiveIndex(),
        i.updateSlidesClasses()
    }
    emitContainerClasses() {
      const e = this
      if (!e.params._emitClasses || !e.el) return
      const t = e.el.className
        .split(' ')
        .filter(
          (i) =>
            i.indexOf('swiper') === 0 ||
            i.indexOf(e.params.containerModifierClass) === 0
        )
      e.emit('_containerClasses', t.join(' '))
    }
    getSlideClasses(e) {
      const t = this
      return t.destroyed
        ? ''
        : e.className
            .split(' ')
            .filter(
              (i) =>
                i.indexOf('swiper-slide') === 0 ||
                i.indexOf(t.params.slideClass) === 0
            )
            .join(' ')
    }
    emitSlidesClasses() {
      const e = this
      if (!e.params._emitClasses || !e.el) return
      const t = []
      e.slides.forEach((i) => {
        const r = e.getSlideClasses(i)
        t.push({ slideEl: i, classNames: r }), e.emit('_slideClass', i, r)
      }),
        e.emit('_slideClasses', t)
    }
    slidesPerViewDynamic(e, t) {
      e === void 0 && (e = 'current'), t === void 0 && (t = !1)
      const i = this,
        {
          params: r,
          slides: a,
          slidesGrid: f,
          slidesSizesGrid: c,
          size: n,
          activeIndex: u,
        } = i
      let o = 1
      if (typeof r.slidesPerView == 'number') return r.slidesPerView
      if (r.centeredSlides) {
        let l = a[u] ? Math.ceil(a[u].swiperSlideSize) : 0,
          d
        for (let p = u + 1; p < a.length; p += 1)
          a[p] &&
            !d &&
            ((l += Math.ceil(a[p].swiperSlideSize)),
            (o += 1),
            l > n && (d = !0))
        for (let p = u - 1; p >= 0; p -= 1)
          a[p] &&
            !d &&
            ((l += a[p].swiperSlideSize), (o += 1), l > n && (d = !0))
      } else if (e === 'current')
        for (let l = u + 1; l < a.length; l += 1)
          (t ? f[l] + c[l] - f[u] < n : f[l] - f[u] < n) && (o += 1)
      else for (let l = u - 1; l >= 0; l -= 1) f[u] - f[l] < n && (o += 1)
      return o
    }
    update() {
      const e = this
      if (!e || e.destroyed) return
      const { snapGrid: t, params: i } = e
      i.breakpoints && e.setBreakpoint(),
        [...e.el.querySelectorAll('[loading="lazy"]')].forEach((f) => {
          f.complete && Ee(e, f)
        }),
        e.updateSize(),
        e.updateSlides(),
        e.updateProgress(),
        e.updateSlidesClasses()
      function r() {
        const f = e.rtlTranslate ? e.translate * -1 : e.translate,
          c = Math.min(Math.max(f, e.maxTranslate()), e.minTranslate())
        e.setTranslate(c), e.updateActiveIndex(), e.updateSlidesClasses()
      }
      let a
      if (i.freeMode && i.freeMode.enabled && !i.cssMode)
        r(), i.autoHeight && e.updateAutoHeight()
      else {
        if (
          (i.slidesPerView === 'auto' || i.slidesPerView > 1) &&
          e.isEnd &&
          !i.centeredSlides
        ) {
          const f = e.virtual && i.virtual.enabled ? e.virtual.slides : e.slides
          a = e.slideTo(f.length - 1, 0, !1, !0)
        } else a = e.slideTo(e.activeIndex, 0, !1, !0)
        a || r()
      }
      i.watchOverflow && t !== e.snapGrid && e.checkOverflow(), e.emit('update')
    }
    changeDirection(e, t) {
      t === void 0 && (t = !0)
      const i = this,
        r = i.params.direction
      return (
        e || (e = r === 'horizontal' ? 'vertical' : 'horizontal'),
        e === r ||
          (e !== 'horizontal' && e !== 'vertical') ||
          (i.el.classList.remove(`${i.params.containerModifierClass}${r}`),
          i.el.classList.add(`${i.params.containerModifierClass}${e}`),
          i.emitContainerClasses(),
          (i.params.direction = e),
          i.slides.forEach((a) => {
            e === 'vertical' ? (a.style.width = '') : (a.style.height = '')
          }),
          i.emit('changeDirection'),
          t && i.update()),
        i
      )
    }
    changeLanguageDirection(e) {
      const t = this
      ;(t.rtl && e === 'rtl') ||
        (!t.rtl && e === 'ltr') ||
        ((t.rtl = e === 'rtl'),
        (t.rtlTranslate = t.params.direction === 'horizontal' && t.rtl),
        t.rtl
          ? (t.el.classList.add(`${t.params.containerModifierClass}rtl`),
            (t.el.dir = 'rtl'))
          : (t.el.classList.remove(`${t.params.containerModifierClass}rtl`),
            (t.el.dir = 'ltr')),
        t.update())
    }
    mount(e) {
      const t = this
      if (t.mounted) return !0
      let i = e || t.params.el
      if ((typeof i == 'string' && (i = document.querySelector(i)), !i))
        return !1
      ;(i.swiper = t),
        i.parentNode &&
          i.parentNode.host &&
          i.parentNode.host.nodeName ===
            t.params.swiperElementNodeName.toUpperCase() &&
          (t.isElement = !0)
      const r = () =>
        `.${(t.params.wrapperClass || '').trim().split(' ').join('.')}`
      let f = (() =>
        i && i.shadowRoot && i.shadowRoot.querySelector
          ? i.shadowRoot.querySelector(r())
          : W(i, r())[0])()
      return (
        !f &&
          t.params.createElements &&
          ((f = J('div', t.params.wrapperClass)),
          i.append(f),
          W(i, `.${t.params.slideClass}`).forEach((c) => {
            f.append(c)
          })),
        Object.assign(t, {
          el: i,
          wrapperEl: f,
          slidesEl:
            t.isElement && !i.parentNode.host.slideSlots
              ? i.parentNode.host
              : f,
          hostEl: t.isElement ? i.parentNode.host : i,
          mounted: !0,
          rtl: i.dir.toLowerCase() === 'rtl' || re(i, 'direction') === 'rtl',
          rtlTranslate:
            t.params.direction === 'horizontal' &&
            (i.dir.toLowerCase() === 'rtl' || re(i, 'direction') === 'rtl'),
          wrongRTL: re(f, 'display') === '-webkit-box',
        }),
        !0
      )
    }
    init(e) {
      const t = this
      if (t.initialized || t.mount(e) === !1) return t
      t.emit('beforeInit'),
        t.params.breakpoints && t.setBreakpoint(),
        t.addClasses(),
        t.updateSize(),
        t.updateSlides(),
        t.params.watchOverflow && t.checkOverflow(),
        t.params.grabCursor && t.enabled && t.setGrabCursor(),
        t.params.loop && t.virtual && t.params.virtual.enabled
          ? t.slideTo(
              t.params.initialSlide + t.virtual.slidesBefore,
              0,
              t.params.runCallbacksOnInit,
              !1,
              !0
            )
          : t.slideTo(
              t.params.initialSlide,
              0,
              t.params.runCallbacksOnInit,
              !1,
              !0
            ),
        t.params.loop && t.loopCreate(),
        t.attachEvents()
      const r = [...t.el.querySelectorAll('[loading="lazy"]')]
      return (
        t.isElement && r.push(...t.hostEl.querySelectorAll('[loading="lazy"]')),
        r.forEach((a) => {
          a.complete
            ? Ee(t, a)
            : a.addEventListener('load', (f) => {
                Ee(t, f.target)
              })
        }),
        ke(t),
        (t.initialized = !0),
        ke(t),
        t.emit('init'),
        t.emit('afterInit'),
        t
      )
    }
    destroy(e, t) {
      e === void 0 && (e = !0), t === void 0 && (t = !0)
      const i = this,
        { params: r, el: a, wrapperEl: f, slides: c } = i
      return (
        typeof i.params == 'undefined' ||
          i.destroyed ||
          (i.emit('beforeDestroy'),
          (i.initialized = !1),
          i.detachEvents(),
          r.loop && i.loopDestroy(),
          t &&
            (i.removeClasses(),
            a && typeof a != 'string' && a.removeAttribute('style'),
            f && f.removeAttribute('style'),
            c &&
              c.length &&
              c.forEach((n) => {
                n.classList.remove(
                  r.slideVisibleClass,
                  r.slideFullyVisibleClass,
                  r.slideActiveClass,
                  r.slideNextClass,
                  r.slidePrevClass
                ),
                  n.removeAttribute('style'),
                  n.removeAttribute('data-swiper-slide-index')
              })),
          i.emit('destroy'),
          Object.keys(i.eventsListeners).forEach((n) => {
            i.off(n)
          }),
          e !== !1 &&
            (i.el && typeof i.el != 'string' && (i.el.swiper = null), dt(i)),
          (i.destroyed = !0)),
        null
      )
    }
    static extendDefaults(e) {
      Q(Ge, e)
    }
    static get extendedDefaults() {
      return Ge
    }
    static get defaults() {
      return et
    }
    static installModule(e) {
      K.prototype.__modules__ || (K.prototype.__modules__ = [])
      const t = K.prototype.__modules__
      typeof e == 'function' && t.indexOf(e) < 0 && t.push(e)
    }
    static use(e) {
      return Array.isArray(e)
        ? (e.forEach((t) => K.installModule(t)), K)
        : (K.installModule(e), K)
    }
  }
  Object.keys(Ve).forEach((s) => {
    Object.keys(Ve[s]).forEach((e) => {
      K.prototype[e] = Ve[s][e]
    })
  }),
    K.use([yt, bt])
  function Ms(s) {
    let { swiper: e, extendParams: t, on: i, emit: r } = s
    t({
      virtual: {
        enabled: !1,
        slides: [],
        cache: !0,
        renderSlide: null,
        renderExternal: null,
        renderExternalUpdate: !0,
        addSlidesBefore: 0,
        addSlidesAfter: 0,
      },
    })
    let a
    const f = q()
    e.virtual = {
      cache: {},
      from: void 0,
      to: void 0,
      slides: [],
      offset: 0,
      slidesGrid: [],
    }
    const c = f.createElement('div')
    function n(h, g) {
      const w = e.params.virtual
      if (w.cache && e.virtual.cache[g]) return e.virtual.cache[g]
      let y
      return (
        w.renderSlide
          ? ((y = w.renderSlide.call(e, h, g)),
            typeof y == 'string' && ((c.innerHTML = y), (y = c.children[0])))
          : e.isElement
          ? (y = J('swiper-slide'))
          : (y = J('div', e.params.slideClass)),
        y.setAttribute('data-swiper-slide-index', g),
        w.renderSlide || (y.innerHTML = h),
        w.cache && (e.virtual.cache[g] = y),
        y
      )
    }
    function u(h, g) {
      const {
        slidesPerView: w,
        slidesPerGroup: y,
        centeredSlides: v,
        loop: m,
        initialSlide: b,
      } = e.params
      if (g && !m && b > 0) return
      const { addSlidesBefore: S, addSlidesAfter: A } = e.params.virtual,
        { from: O, to: z, slides: T, slidesGrid: P, offset: I } = e.virtual
      e.params.cssMode || e.updateActiveIndex()
      const C = e.activeIndex || 0
      let E
      e.rtlTranslate ? (E = 'right') : (E = e.isHorizontal() ? 'left' : 'top')
      let x, D
      v
        ? ((x = Math.floor(w / 2) + y + A), (D = Math.floor(w / 2) + y + S))
        : ((x = w + (y - 1) + A), (D = (m ? w : y) + S))
      let G = C - D,
        M = C + x
      m || ((G = Math.max(G, 0)), (M = Math.min(M, T.length - 1)))
      let L = (e.slidesGrid[G] || 0) - (e.slidesGrid[0] || 0)
      m && C >= D
        ? ((G -= D), v || (L += e.slidesGrid[0]))
        : m && C < D && ((G = -D), v && (L += e.slidesGrid[0])),
        Object.assign(e.virtual, {
          from: G,
          to: M,
          offset: L,
          slidesGrid: e.slidesGrid,
          slidesBefore: D,
          slidesAfter: x,
        })
      function V() {
        e.updateSlides(),
          e.updateProgress(),
          e.updateSlidesClasses(),
          r('virtualUpdate')
      }
      if (O === G && z === M && !h) {
        e.slidesGrid !== P &&
          L !== I &&
          e.slides.forEach((H) => {
            H.style[E] = `${L - Math.abs(e.cssOverflowAdjustment())}px`
          }),
          e.updateProgress(),
          r('virtualUpdate')
        return
      }
      if (e.params.virtual.renderExternal) {
        e.params.virtual.renderExternal.call(e, {
          offset: L,
          from: G,
          to: M,
          slides: (function () {
            const R = []
            for (let U = G; U <= M; U += 1) R.push(T[U])
            return R
          })(),
        }),
          e.params.virtual.renderExternalUpdate ? V() : r('virtualUpdate')
        return
      }
      const F = [],
        $ = [],
        k = (H) => {
          let R = H
          return (
            H < 0 ? (R = T.length + H) : R >= T.length && (R = R - T.length), R
          )
        }
      if (h)
        e.slides
          .filter((H) => H.matches(`.${e.params.slideClass}, swiper-slide`))
          .forEach((H) => {
            H.remove()
          })
      else
        for (let H = O; H <= z; H += 1)
          if (H < G || H > M) {
            const R = k(H)
            e.slides
              .filter((U) =>
                U.matches(
                  `.${e.params.slideClass}[data-swiper-slide-index="${R}"], swiper-slide[data-swiper-slide-index="${R}"]`
                )
              )
              .forEach((U) => {
                U.remove()
              })
          }
      const B = m ? -T.length : 0,
        Y = m ? T.length * 2 : T.length
      for (let H = B; H < Y; H += 1)
        if (H >= G && H <= M) {
          const R = k(H)
          typeof z == 'undefined' || h
            ? $.push(R)
            : (H > z && $.push(R), H < O && F.push(R))
        }
      if (
        ($.forEach((H) => {
          e.slidesEl.append(n(T[H], H))
        }),
        m)
      )
        for (let H = F.length - 1; H >= 0; H -= 1) {
          const R = F[H]
          e.slidesEl.prepend(n(T[R], R))
        }
      else
        F.sort((H, R) => R - H),
          F.forEach((H) => {
            e.slidesEl.prepend(n(T[H], H))
          })
      W(e.slidesEl, '.swiper-slide, swiper-slide').forEach((H) => {
        H.style[E] = `${L - Math.abs(e.cssOverflowAdjustment())}px`
      }),
        V()
    }
    function o(h) {
      if (typeof h == 'object' && 'length' in h)
        for (let g = 0; g < h.length; g += 1)
          h[g] && e.virtual.slides.push(h[g])
      else e.virtual.slides.push(h)
      u(!0)
    }
    function l(h) {
      const g = e.activeIndex
      let w = g + 1,
        y = 1
      if (Array.isArray(h)) {
        for (let v = 0; v < h.length; v += 1)
          h[v] && e.virtual.slides.unshift(h[v])
        ;(w = g + h.length), (y = h.length)
      } else e.virtual.slides.unshift(h)
      if (e.params.virtual.cache) {
        const v = e.virtual.cache,
          m = {}
        Object.keys(v).forEach((b) => {
          const S = v[b],
            A = S.getAttribute('data-swiper-slide-index')
          A && S.setAttribute('data-swiper-slide-index', parseInt(A, 10) + y),
            (m[parseInt(b, 10) + y] = S)
        }),
          (e.virtual.cache = m)
      }
      u(!0), e.slideTo(w, 0)
    }
    function d(h) {
      if (typeof h == 'undefined' || h === null) return
      let g = e.activeIndex
      if (Array.isArray(h))
        for (let w = h.length - 1; w >= 0; w -= 1)
          e.params.virtual.cache &&
            (delete e.virtual.cache[h[w]],
            Object.keys(e.virtual.cache).forEach((y) => {
              y > h &&
                ((e.virtual.cache[y - 1] = e.virtual.cache[y]),
                e.virtual.cache[y - 1].setAttribute(
                  'data-swiper-slide-index',
                  y - 1
                ),
                delete e.virtual.cache[y])
            })),
            e.virtual.slides.splice(h[w], 1),
            h[w] < g && (g -= 1),
            (g = Math.max(g, 0))
      else
        e.params.virtual.cache &&
          (delete e.virtual.cache[h],
          Object.keys(e.virtual.cache).forEach((w) => {
            w > h &&
              ((e.virtual.cache[w - 1] = e.virtual.cache[w]),
              e.virtual.cache[w - 1].setAttribute(
                'data-swiper-slide-index',
                w - 1
              ),
              delete e.virtual.cache[w])
          })),
          e.virtual.slides.splice(h, 1),
          h < g && (g -= 1),
          (g = Math.max(g, 0))
      u(!0), e.slideTo(g, 0)
    }
    function p() {
      ;(e.virtual.slides = []),
        e.params.virtual.cache && (e.virtual.cache = {}),
        u(!0),
        e.slideTo(0, 0)
    }
    i('beforeInit', () => {
      if (!e.params.virtual.enabled) return
      let h
      if (typeof e.passedParams.virtual.slides == 'undefined') {
        const g = [...e.slidesEl.children].filter((w) =>
          w.matches(`.${e.params.slideClass}, swiper-slide`)
        )
        g &&
          g.length &&
          ((e.virtual.slides = [...g]),
          (h = !0),
          g.forEach((w, y) => {
            w.setAttribute('data-swiper-slide-index', y),
              (e.virtual.cache[y] = w),
              w.remove()
          }))
      }
      h || (e.virtual.slides = e.params.virtual.slides),
        e.classNames.push(`${e.params.containerModifierClass}virtual`),
        (e.params.watchSlidesProgress = !0),
        (e.originalParams.watchSlidesProgress = !0),
        u(!1, !0)
    }),
      i('setTranslate', () => {
        !e.params.virtual.enabled ||
          (e.params.cssMode && !e._immediateVirtual
            ? (clearTimeout(a),
              (a = setTimeout(() => {
                u()
              }, 100)))
            : u())
      }),
      i('init update resize', () => {
        !e.params.virtual.enabled ||
          (e.params.cssMode &&
            pe(e.wrapperEl, '--swiper-virtual-size', `${e.virtualSize}px`))
      }),
      Object.assign(e.virtual, {
        appendSlide: o,
        prependSlide: l,
        removeSlide: d,
        removeAllSlides: p,
        update: u,
      })
  }
  function Cs(s) {
    let { swiper: e, extendParams: t, on: i, emit: r } = s
    const a = q(),
      f = X()
    ;(e.keyboard = { enabled: !1 }),
      t({ keyboard: { enabled: !1, onlyInViewport: !0, pageUpDown: !0 } })
    function c(o) {
      if (!e.enabled) return
      const { rtlTranslate: l } = e
      let d = o
      d.originalEvent && (d = d.originalEvent)
      const p = d.keyCode || d.charCode,
        h = e.params.keyboard.pageUpDown,
        g = h && p === 33,
        w = h && p === 34,
        y = p === 37,
        v = p === 39,
        m = p === 38,
        b = p === 40
      if (
        (!e.allowSlideNext &&
          ((e.isHorizontal() && v) || (e.isVertical() && b) || w)) ||
        (!e.allowSlidePrev &&
          ((e.isHorizontal() && y) || (e.isVertical() && m) || g))
      )
        return !1
      if (
        !(d.shiftKey || d.altKey || d.ctrlKey || d.metaKey) &&
        !(
          a.activeElement &&
          a.activeElement.nodeName &&
          (a.activeElement.nodeName.toLowerCase() === 'input' ||
            a.activeElement.nodeName.toLowerCase() === 'textarea')
        )
      ) {
        if (e.params.keyboard.onlyInViewport && (g || w || y || v || m || b)) {
          let S = !1
          if (
            le(e.el, `.${e.params.slideClass}, swiper-slide`).length > 0 &&
            le(e.el, `.${e.params.slideActiveClass}`).length === 0
          )
            return
          const A = e.el,
            O = A.clientWidth,
            z = A.clientHeight,
            T = f.innerWidth,
            P = f.innerHeight,
            I = be(A)
          l && (I.left -= A.scrollLeft)
          const C = [
            [I.left, I.top],
            [I.left + O, I.top],
            [I.left, I.top + z],
            [I.left + O, I.top + z],
          ]
          for (let E = 0; E < C.length; E += 1) {
            const x = C[E]
            if (x[0] >= 0 && x[0] <= T && x[1] >= 0 && x[1] <= P) {
              if (x[0] === 0 && x[1] === 0) continue
              S = !0
            }
          }
          if (!S) return
        }
        e.isHorizontal()
          ? ((g || w || y || v) &&
              (d.preventDefault ? d.preventDefault() : (d.returnValue = !1)),
            (((w || v) && !l) || ((g || y) && l)) && e.slideNext(),
            (((g || y) && !l) || ((w || v) && l)) && e.slidePrev())
          : ((g || w || m || b) &&
              (d.preventDefault ? d.preventDefault() : (d.returnValue = !1)),
            (w || b) && e.slideNext(),
            (g || m) && e.slidePrev()),
          r('keyPress', p)
      }
    }
    function n() {
      e.keyboard.enabled ||
        (a.addEventListener('keydown', c), (e.keyboard.enabled = !0))
    }
    function u() {
      !e.keyboard.enabled ||
        (a.removeEventListener('keydown', c), (e.keyboard.enabled = !1))
    }
    i('init', () => {
      e.params.keyboard.enabled && n()
    }),
      i('destroy', () => {
        e.keyboard.enabled && u()
      }),
      Object.assign(e.keyboard, { enable: n, disable: u })
  }
  function Ps(s) {
    let { swiper: e, extendParams: t, on: i, emit: r } = s
    const a = X()
    t({
      mousewheel: {
        enabled: !1,
        releaseOnEdges: !1,
        invert: !1,
        forceToAxis: !1,
        sensitivity: 1,
        eventsTarget: 'container',
        thresholdDelta: null,
        thresholdTime: null,
        noMousewheelClass: 'swiper-no-mousewheel',
      },
    }),
      (e.mousewheel = { enabled: !1 })
    let f,
      c = ee(),
      n
    const u = []
    function o(m) {
      const b = 10,
        S = 40,
        A = 800
      let O = 0,
        z = 0,
        T = 0,
        P = 0
      return (
        'detail' in m && (z = m.detail),
        'wheelDelta' in m && (z = -m.wheelDelta / 120),
        'wheelDeltaY' in m && (z = -m.wheelDeltaY / 120),
        'wheelDeltaX' in m && (O = -m.wheelDeltaX / 120),
        'axis' in m && m.axis === m.HORIZONTAL_AXIS && ((O = z), (z = 0)),
        (T = O * b),
        (P = z * b),
        'deltaY' in m && (P = m.deltaY),
        'deltaX' in m && (T = m.deltaX),
        m.shiftKey && !T && ((T = P), (P = 0)),
        (T || P) &&
          m.deltaMode &&
          (m.deltaMode === 1 ? ((T *= S), (P *= S)) : ((T *= A), (P *= A))),
        T && !O && (O = T < 1 ? -1 : 1),
        P && !z && (z = P < 1 ? -1 : 1),
        { spinX: O, spinY: z, pixelX: T, pixelY: P }
      )
    }
    function l() {
      !e.enabled || (e.mouseEntered = !0)
    }
    function d() {
      !e.enabled || (e.mouseEntered = !1)
    }
    function p(m) {
      return (e.params.mousewheel.thresholdDelta &&
        m.delta < e.params.mousewheel.thresholdDelta) ||
        (e.params.mousewheel.thresholdTime &&
          ee() - c < e.params.mousewheel.thresholdTime)
        ? !1
        : m.delta >= 6 && ee() - c < 60
        ? !0
        : (m.direction < 0
            ? (!e.isEnd || e.params.loop) &&
              !e.animating &&
              (e.slideNext(), r('scroll', m.raw))
            : (!e.isBeginning || e.params.loop) &&
              !e.animating &&
              (e.slidePrev(), r('scroll', m.raw)),
          (c = new a.Date().getTime()),
          !1)
    }
    function h(m) {
      const b = e.params.mousewheel
      if (m.direction < 0) {
        if (e.isEnd && !e.params.loop && b.releaseOnEdges) return !0
      } else if (e.isBeginning && !e.params.loop && b.releaseOnEdges) return !0
      return !1
    }
    function g(m) {
      let b = m,
        S = !0
      if (
        !e.enabled ||
        m.target.closest(`.${e.params.mousewheel.noMousewheelClass}`)
      )
        return
      const A = e.params.mousewheel
      e.params.cssMode && b.preventDefault()
      let O = e.el
      e.params.mousewheel.eventsTarget !== 'container' &&
        (O = document.querySelector(e.params.mousewheel.eventsTarget))
      const z = O && O.contains(b.target)
      if (!e.mouseEntered && !z && !A.releaseOnEdges) return !0
      b.originalEvent && (b = b.originalEvent)
      let T = 0
      const P = e.rtlTranslate ? -1 : 1,
        I = o(b)
      if (A.forceToAxis)
        if (e.isHorizontal())
          if (Math.abs(I.pixelX) > Math.abs(I.pixelY)) T = -I.pixelX * P
          else return !0
        else if (Math.abs(I.pixelY) > Math.abs(I.pixelX)) T = -I.pixelY
        else return !0
      else
        T = Math.abs(I.pixelX) > Math.abs(I.pixelY) ? -I.pixelX * P : -I.pixelY
      if (T === 0) return !0
      A.invert && (T = -T)
      let C = e.getTranslate() + T * A.sensitivity
      if (
        (C >= e.minTranslate() && (C = e.minTranslate()),
        C <= e.maxTranslate() && (C = e.maxTranslate()),
        (S = e.params.loop
          ? !0
          : !(C === e.minTranslate() || C === e.maxTranslate())),
        S && e.params.nested && b.stopPropagation(),
        !e.params.freeMode || !e.params.freeMode.enabled)
      ) {
        const E = {
          time: ee(),
          delta: Math.abs(T),
          direction: Math.sign(T),
          raw: m,
        }
        u.length >= 2 && u.shift()
        const x = u.length ? u[u.length - 1] : void 0
        if (
          (u.push(E),
          x
            ? (E.direction !== x.direction ||
                E.delta > x.delta ||
                E.time > x.time + 150) &&
              p(E)
            : p(E),
          h(E))
        )
          return !0
      } else {
        const E = { time: ee(), delta: Math.abs(T), direction: Math.sign(T) },
          x =
            n &&
            E.time < n.time + 500 &&
            E.delta <= n.delta &&
            E.direction === n.direction
        if (!x) {
          n = void 0
          let D = e.getTranslate() + T * A.sensitivity
          const G = e.isBeginning,
            M = e.isEnd
          if (
            (D >= e.minTranslate() && (D = e.minTranslate()),
            D <= e.maxTranslate() && (D = e.maxTranslate()),
            e.setTransition(0),
            e.setTranslate(D),
            e.updateProgress(),
            e.updateActiveIndex(),
            e.updateSlidesClasses(),
            ((!G && e.isBeginning) || (!M && e.isEnd)) &&
              e.updateSlidesClasses(),
            e.params.loop &&
              e.loopFix({
                direction: E.direction < 0 ? 'next' : 'prev',
                byMousewheel: !0,
              }),
            e.params.freeMode.sticky)
          ) {
            clearTimeout(f), (f = void 0), u.length >= 15 && u.shift()
            const L = u.length ? u[u.length - 1] : void 0,
              V = u[0]
            if (
              (u.push(E),
              L && (E.delta > L.delta || E.direction !== L.direction))
            )
              u.splice(0)
            else if (
              u.length >= 15 &&
              E.time - V.time < 500 &&
              V.delta - E.delta >= 1 &&
              E.delta <= 6
            ) {
              const F = T > 0 ? 0.8 : 0.2
              ;(n = E),
                u.splice(0),
                (f = ae(() => {
                  e.destroyed ||
                    !e.params ||
                    e.slideToClosest(e.params.speed, !0, void 0, F)
                }, 0))
            }
            f ||
              (f = ae(() => {
                if (e.destroyed || !e.params) return
                const F = 0.5
                ;(n = E),
                  u.splice(0),
                  e.slideToClosest(e.params.speed, !0, void 0, F)
              }, 500))
          }
          if (
            (x || r('scroll', b),
            e.params.autoplay &&
              e.params.autoplayDisableOnInteraction &&
              e.autoplay.stop(),
            A.releaseOnEdges &&
              (D === e.minTranslate() || D === e.maxTranslate()))
          )
            return !0
        }
      }
      return b.preventDefault ? b.preventDefault() : (b.returnValue = !1), !1
    }
    function w(m) {
      let b = e.el
      e.params.mousewheel.eventsTarget !== 'container' &&
        (b = document.querySelector(e.params.mousewheel.eventsTarget)),
        b[m]('mouseenter', l),
        b[m]('mouseleave', d),
        b[m]('wheel', g)
    }
    function y() {
      return e.params.cssMode
        ? (e.wrapperEl.removeEventListener('wheel', g), !0)
        : e.mousewheel.enabled
        ? !1
        : (w('addEventListener'), (e.mousewheel.enabled = !0), !0)
    }
    function v() {
      return e.params.cssMode
        ? (e.wrapperEl.addEventListener(event, g), !0)
        : e.mousewheel.enabled
        ? (w('removeEventListener'), (e.mousewheel.enabled = !1), !0)
        : !1
    }
    i('init', () => {
      !e.params.mousewheel.enabled && e.params.cssMode && v(),
        e.params.mousewheel.enabled && y()
    }),
      i('destroy', () => {
        e.params.cssMode && y(), e.mousewheel.enabled && v()
      }),
      Object.assign(e.mousewheel, { enable: y, disable: v })
  }
  function Be(s, e, t, i) {
    return (
      s.params.createElements &&
        Object.keys(i).forEach((r) => {
          if (!t[r] && t.auto === !0) {
            let a = W(s.el, `.${i[r]}`)[0]
            a || ((a = J('div', i[r])), (a.className = i[r]), s.el.append(a)),
              (t[r] = a),
              (e[r] = a)
          }
        }),
      t
    )
  }
  function Ls(s) {
    let { swiper: e, extendParams: t, on: i, emit: r } = s
    t({
      navigation: {
        nextEl: null,
        prevEl: null,
        hideOnClick: !1,
        disabledClass: 'swiper-button-disabled',
        hiddenClass: 'swiper-button-hidden',
        lockClass: 'swiper-button-lock',
        navigationDisabledClass: 'swiper-navigation-disabled',
      },
    }),
      (e.navigation = { nextEl: null, prevEl: null })
    function a(h) {
      let g
      return h &&
        typeof h == 'string' &&
        e.isElement &&
        ((g = e.el.querySelector(h)), g)
        ? g
        : (h &&
            (typeof h == 'string' && (g = [...document.querySelectorAll(h)]),
            e.params.uniqueNavElements &&
            typeof h == 'string' &&
            g &&
            g.length > 1 &&
            e.el.querySelectorAll(h).length === 1
              ? (g = e.el.querySelector(h))
              : g && g.length === 1 && (g = g[0])),
          h && !g ? h : g)
    }
    function f(h, g) {
      const w = e.params.navigation
      ;(h = N(h)),
        h.forEach((y) => {
          y &&
            (y.classList[g ? 'add' : 'remove'](...w.disabledClass.split(' ')),
            y.tagName === 'BUTTON' && (y.disabled = g),
            e.params.watchOverflow &&
              e.enabled &&
              y.classList[e.isLocked ? 'add' : 'remove'](w.lockClass))
        })
    }
    function c() {
      const { nextEl: h, prevEl: g } = e.navigation
      if (e.params.loop) {
        f(g, !1), f(h, !1)
        return
      }
      f(g, e.isBeginning && !e.params.rewind), f(h, e.isEnd && !e.params.rewind)
    }
    function n(h) {
      h.preventDefault(),
        !(e.isBeginning && !e.params.loop && !e.params.rewind) &&
          (e.slidePrev(), r('navigationPrev'))
    }
    function u(h) {
      h.preventDefault(),
        !(e.isEnd && !e.params.loop && !e.params.rewind) &&
          (e.slideNext(), r('navigationNext'))
    }
    function o() {
      const h = e.params.navigation
      if (
        ((e.params.navigation = Be(
          e,
          e.originalParams.navigation,
          e.params.navigation,
          { nextEl: 'swiper-button-next', prevEl: 'swiper-button-prev' }
        )),
        !(h.nextEl || h.prevEl))
      )
        return
      let g = a(h.nextEl),
        w = a(h.prevEl)
      Object.assign(e.navigation, { nextEl: g, prevEl: w }),
        (g = N(g)),
        (w = N(w))
      const y = (v, m) => {
        v && v.addEventListener('click', m === 'next' ? u : n),
          !e.enabled && v && v.classList.add(...h.lockClass.split(' '))
      }
      g.forEach((v) => y(v, 'next')), w.forEach((v) => y(v, 'prev'))
    }
    function l() {
      let { nextEl: h, prevEl: g } = e.navigation
      ;(h = N(h)), (g = N(g))
      const w = (y, v) => {
        y.removeEventListener('click', v === 'next' ? u : n),
          y.classList.remove(...e.params.navigation.disabledClass.split(' '))
      }
      h.forEach((y) => w(y, 'next')), g.forEach((y) => w(y, 'prev'))
    }
    i('init', () => {
      e.params.navigation.enabled === !1 ? p() : (o(), c())
    }),
      i('toEdge fromEdge lock unlock', () => {
        c()
      }),
      i('destroy', () => {
        l()
      }),
      i('enable disable', () => {
        let { nextEl: h, prevEl: g } = e.navigation
        if (((h = N(h)), (g = N(g)), e.enabled)) {
          c()
          return
        }
        ;[...h, ...g]
          .filter((w) => !!w)
          .forEach((w) => w.classList.add(e.params.navigation.lockClass))
      }),
      i('click', (h, g) => {
        let { nextEl: w, prevEl: y } = e.navigation
        ;(w = N(w)), (y = N(y))
        const v = g.target
        let m = y.includes(v) || w.includes(v)
        if (e.isElement && !m) {
          const b = g.path || (g.composedPath && g.composedPath())
          b && (m = b.find((S) => w.includes(S) || y.includes(S)))
        }
        if (e.params.navigation.hideOnClick && !m) {
          if (
            e.pagination &&
            e.params.pagination &&
            e.params.pagination.clickable &&
            (e.pagination.el === v || e.pagination.el.contains(v))
          )
            return
          let b
          w.length
            ? (b = w[0].classList.contains(e.params.navigation.hiddenClass))
            : y.length &&
              (b = y[0].classList.contains(e.params.navigation.hiddenClass)),
            r(b === !0 ? 'navigationShow' : 'navigationHide'),
            [...w, ...y]
              .filter((S) => !!S)
              .forEach((S) =>
                S.classList.toggle(e.params.navigation.hiddenClass)
              )
        }
      })
    const d = () => {
        e.el.classList.remove(
          ...e.params.navigation.navigationDisabledClass.split(' ')
        ),
          o(),
          c()
      },
      p = () => {
        e.el.classList.add(
          ...e.params.navigation.navigationDisabledClass.split(' ')
        ),
          l()
      }
    Object.assign(e.navigation, {
      enable: d,
      disable: p,
      update: c,
      init: o,
      destroy: l,
    })
  }
  function te(s) {
    return (
      s === void 0 && (s = ''),
      `.${s
        .trim()
        .replace(/([\.:!+\/])/g, '\\$1')
        .replace(/ /g, '.')}`
    )
  }
  function Is(s) {
    let { swiper: e, extendParams: t, on: i, emit: r } = s
    const a = 'swiper-pagination'
    t({
      pagination: {
        el: null,
        bulletElement: 'span',
        clickable: !1,
        hideOnClick: !1,
        renderBullet: null,
        renderProgressbar: null,
        renderFraction: null,
        renderCustom: null,
        progressbarOpposite: !1,
        type: 'bullets',
        dynamicBullets: !1,
        dynamicMainBullets: 1,
        formatFractionCurrent: (v) => v,
        formatFractionTotal: (v) => v,
        bulletClass: `${a}-bullet`,
        bulletActiveClass: `${a}-bullet-active`,
        modifierClass: `${a}-`,
        currentClass: `${a}-current`,
        totalClass: `${a}-total`,
        hiddenClass: `${a}-hidden`,
        progressbarFillClass: `${a}-progressbar-fill`,
        progressbarOppositeClass: `${a}-progressbar-opposite`,
        clickableClass: `${a}-clickable`,
        lockClass: `${a}-lock`,
        horizontalClass: `${a}-horizontal`,
        verticalClass: `${a}-vertical`,
        paginationDisabledClass: `${a}-disabled`,
      },
    }),
      (e.pagination = { el: null, bullets: [] })
    let f,
      c = 0
    function n() {
      return (
        !e.params.pagination.el ||
        !e.pagination.el ||
        (Array.isArray(e.pagination.el) && e.pagination.el.length === 0)
      )
    }
    function u(v, m) {
      const { bulletActiveClass: b } = e.params.pagination
      !v ||
        ((v = v[`${m === 'prev' ? 'previous' : 'next'}ElementSibling`]),
        v &&
          (v.classList.add(`${b}-${m}`),
          (v = v[`${m === 'prev' ? 'previous' : 'next'}ElementSibling`]),
          v && v.classList.add(`${b}-${m}-${m}`)))
    }
    function o(v, m, b) {
      if (((v = v % b), (m = m % b), m === v + 1)) return 'next'
      if (m === v - 1) return 'previous'
    }
    function l(v) {
      const m = v.target.closest(te(e.params.pagination.bulletClass))
      if (!m) return
      v.preventDefault()
      const b = me(m) * e.params.slidesPerGroup
      if (e.params.loop) {
        if (e.realIndex === b) return
        const S = o(e.realIndex, b, e.slides.length)
        S === 'next'
          ? e.slideNext()
          : S === 'previous'
          ? e.slidePrev()
          : e.slideToLoop(b)
      } else e.slideTo(b)
    }
    function d() {
      const v = e.rtl,
        m = e.params.pagination
      if (n()) return
      let b = e.pagination.el
      b = N(b)
      let S, A
      const O =
          e.virtual && e.params.virtual.enabled
            ? e.virtual.slides.length
            : e.slides.length,
        z = e.params.loop
          ? Math.ceil(O / e.params.slidesPerGroup)
          : e.snapGrid.length
      if (
        (e.params.loop
          ? ((A = e.previousRealIndex || 0),
            (S =
              e.params.slidesPerGroup > 1
                ? Math.floor(e.realIndex / e.params.slidesPerGroup)
                : e.realIndex))
          : typeof e.snapIndex != 'undefined'
          ? ((S = e.snapIndex), (A = e.previousSnapIndex))
          : ((A = e.previousIndex || 0), (S = e.activeIndex || 0)),
        m.type === 'bullets' &&
          e.pagination.bullets &&
          e.pagination.bullets.length > 0)
      ) {
        const T = e.pagination.bullets
        let P, I, C
        if (
          (m.dynamicBullets &&
            ((f = Ie(T[0], e.isHorizontal() ? 'width' : 'height', !0)),
            b.forEach((E) => {
              E.style[e.isHorizontal() ? 'width' : 'height'] = `${
                f * (m.dynamicMainBullets + 4)
              }px`
            }),
            m.dynamicMainBullets > 1 &&
              A !== void 0 &&
              ((c += S - (A || 0)),
              c > m.dynamicMainBullets - 1
                ? (c = m.dynamicMainBullets - 1)
                : c < 0 && (c = 0)),
            (P = Math.max(S - c, 0)),
            (I = P + (Math.min(T.length, m.dynamicMainBullets) - 1)),
            (C = (I + P) / 2)),
          T.forEach((E) => {
            const x = [
              ...[
                '',
                '-next',
                '-next-next',
                '-prev',
                '-prev-prev',
                '-main',
              ].map((D) => `${m.bulletActiveClass}${D}`),
            ]
              .map((D) =>
                typeof D == 'string' && D.includes(' ') ? D.split(' ') : D
              )
              .flat()
            E.classList.remove(...x)
          }),
          b.length > 1)
        )
          T.forEach((E) => {
            const x = me(E)
            x === S
              ? E.classList.add(...m.bulletActiveClass.split(' '))
              : e.isElement && E.setAttribute('part', 'bullet'),
              m.dynamicBullets &&
                (x >= P &&
                  x <= I &&
                  E.classList.add(...`${m.bulletActiveClass}-main`.split(' ')),
                x === P && u(E, 'prev'),
                x === I && u(E, 'next'))
          })
        else {
          const E = T[S]
          if (
            (E && E.classList.add(...m.bulletActiveClass.split(' ')),
            e.isElement &&
              T.forEach((x, D) => {
                x.setAttribute('part', D === S ? 'bullet-active' : 'bullet')
              }),
            m.dynamicBullets)
          ) {
            const x = T[P],
              D = T[I]
            for (let G = P; G <= I; G += 1)
              T[G] &&
                T[G].classList.add(...`${m.bulletActiveClass}-main`.split(' '))
            u(x, 'prev'), u(D, 'next')
          }
        }
        if (m.dynamicBullets) {
          const E = Math.min(T.length, m.dynamicMainBullets + 4),
            x = (f * E - f) / 2 - C * f,
            D = v ? 'right' : 'left'
          T.forEach((G) => {
            G.style[e.isHorizontal() ? D : 'top'] = `${x}px`
          })
        }
      }
      b.forEach((T, P) => {
        if (
          (m.type === 'fraction' &&
            (T.querySelectorAll(te(m.currentClass)).forEach((I) => {
              I.textContent = m.formatFractionCurrent(S + 1)
            }),
            T.querySelectorAll(te(m.totalClass)).forEach((I) => {
              I.textContent = m.formatFractionTotal(z)
            })),
          m.type === 'progressbar')
        ) {
          let I
          m.progressbarOpposite
            ? (I = e.isHorizontal() ? 'vertical' : 'horizontal')
            : (I = e.isHorizontal() ? 'horizontal' : 'vertical')
          const C = (S + 1) / z
          let E = 1,
            x = 1
          I === 'horizontal' ? (E = C) : (x = C),
            T.querySelectorAll(te(m.progressbarFillClass)).forEach((D) => {
              ;(D.style.transform = `translate3d(0,0,0) scaleX(${E}) scaleY(${x})`),
                (D.style.transitionDuration = `${e.params.speed}ms`)
            })
        }
        m.type === 'custom' && m.renderCustom
          ? ((T.innerHTML = m.renderCustom(e, S + 1, z)),
            P === 0 && r('paginationRender', T))
          : (P === 0 && r('paginationRender', T), r('paginationUpdate', T)),
          e.params.watchOverflow &&
            e.enabled &&
            T.classList[e.isLocked ? 'add' : 'remove'](m.lockClass)
      })
    }
    function p() {
      const v = e.params.pagination
      if (n()) return
      const m =
        e.virtual && e.params.virtual.enabled
          ? e.virtual.slides.length
          : e.grid && e.params.grid.rows > 1
          ? e.slides.length / Math.ceil(e.params.grid.rows)
          : e.slides.length
      let b = e.pagination.el
      b = N(b)
      let S = ''
      if (v.type === 'bullets') {
        let A = e.params.loop
          ? Math.ceil(m / e.params.slidesPerGroup)
          : e.snapGrid.length
        e.params.freeMode && e.params.freeMode.enabled && A > m && (A = m)
        for (let O = 0; O < A; O += 1)
          v.renderBullet
            ? (S += v.renderBullet.call(e, O, v.bulletClass))
            : (S += `<${v.bulletElement} ${
                e.isElement ? 'part="bullet"' : ''
              } class="${v.bulletClass}"></${v.bulletElement}>`)
      }
      v.type === 'fraction' &&
        (v.renderFraction
          ? (S = v.renderFraction.call(e, v.currentClass, v.totalClass))
          : (S = `<span class="${v.currentClass}"></span> / <span class="${v.totalClass}"></span>`)),
        v.type === 'progressbar' &&
          (v.renderProgressbar
            ? (S = v.renderProgressbar.call(e, v.progressbarFillClass))
            : (S = `<span class="${v.progressbarFillClass}"></span>`)),
        (e.pagination.bullets = []),
        b.forEach((A) => {
          v.type !== 'custom' && (A.innerHTML = S || ''),
            v.type === 'bullets' &&
              e.pagination.bullets.push(
                ...A.querySelectorAll(te(v.bulletClass))
              )
        }),
        v.type !== 'custom' && r('paginationRender', b[0])
    }
    function h() {
      e.params.pagination = Be(
        e,
        e.originalParams.pagination,
        e.params.pagination,
        { el: 'swiper-pagination' }
      )
      const v = e.params.pagination
      if (!v.el) return
      let m
      typeof v.el == 'string' && e.isElement && (m = e.el.querySelector(v.el)),
        !m &&
          typeof v.el == 'string' &&
          (m = [...document.querySelectorAll(v.el)]),
        m || (m = v.el),
        !(!m || m.length === 0) &&
          (e.params.uniqueNavElements &&
            typeof v.el == 'string' &&
            Array.isArray(m) &&
            m.length > 1 &&
            ((m = [...e.el.querySelectorAll(v.el)]),
            m.length > 1 &&
              (m = m.filter((b) => le(b, '.swiper')[0] === e.el)[0])),
          Array.isArray(m) && m.length === 1 && (m = m[0]),
          Object.assign(e.pagination, { el: m }),
          (m = N(m)),
          m.forEach((b) => {
            v.type === 'bullets' &&
              v.clickable &&
              b.classList.add(...(v.clickableClass || '').split(' ')),
              b.classList.add(v.modifierClass + v.type),
              b.classList.add(
                e.isHorizontal() ? v.horizontalClass : v.verticalClass
              ),
              v.type === 'bullets' &&
                v.dynamicBullets &&
                (b.classList.add(`${v.modifierClass}${v.type}-dynamic`),
                (c = 0),
                v.dynamicMainBullets < 1 && (v.dynamicMainBullets = 1)),
              v.type === 'progressbar' &&
                v.progressbarOpposite &&
                b.classList.add(v.progressbarOppositeClass),
              v.clickable && b.addEventListener('click', l),
              e.enabled || b.classList.add(v.lockClass)
          }))
    }
    function g() {
      const v = e.params.pagination
      if (n()) return
      let m = e.pagination.el
      m &&
        ((m = N(m)),
        m.forEach((b) => {
          b.classList.remove(v.hiddenClass),
            b.classList.remove(v.modifierClass + v.type),
            b.classList.remove(
              e.isHorizontal() ? v.horizontalClass : v.verticalClass
            ),
            v.clickable &&
              (b.classList.remove(...(v.clickableClass || '').split(' ')),
              b.removeEventListener('click', l))
        })),
        e.pagination.bullets &&
          e.pagination.bullets.forEach((b) =>
            b.classList.remove(...v.bulletActiveClass.split(' '))
          )
    }
    i('changeDirection', () => {
      if (!e.pagination || !e.pagination.el) return
      const v = e.params.pagination
      let { el: m } = e.pagination
      ;(m = N(m)),
        m.forEach((b) => {
          b.classList.remove(v.horizontalClass, v.verticalClass),
            b.classList.add(
              e.isHorizontal() ? v.horizontalClass : v.verticalClass
            )
        })
    }),
      i('init', () => {
        e.params.pagination.enabled === !1 ? y() : (h(), p(), d())
      }),
      i('activeIndexChange', () => {
        typeof e.snapIndex == 'undefined' && d()
      }),
      i('snapIndexChange', () => {
        d()
      }),
      i('snapGridLengthChange', () => {
        p(), d()
      }),
      i('destroy', () => {
        g()
      }),
      i('enable disable', () => {
        let { el: v } = e.pagination
        v &&
          ((v = N(v)),
          v.forEach((m) =>
            m.classList[e.enabled ? 'remove' : 'add'](
              e.params.pagination.lockClass
            )
          ))
      }),
      i('lock unlock', () => {
        d()
      }),
      i('click', (v, m) => {
        const b = m.target,
          S = N(e.pagination.el)
        if (
          e.params.pagination.el &&
          e.params.pagination.hideOnClick &&
          S &&
          S.length > 0 &&
          !b.classList.contains(e.params.pagination.bulletClass)
        ) {
          if (
            e.navigation &&
            ((e.navigation.nextEl && b === e.navigation.nextEl) ||
              (e.navigation.prevEl && b === e.navigation.prevEl))
          )
            return
          const A = S[0].classList.contains(e.params.pagination.hiddenClass)
          r(A === !0 ? 'paginationShow' : 'paginationHide'),
            S.forEach((O) =>
              O.classList.toggle(e.params.pagination.hiddenClass)
            )
        }
      })
    const w = () => {
        e.el.classList.remove(e.params.pagination.paginationDisabledClass)
        let { el: v } = e.pagination
        v &&
          ((v = N(v)),
          v.forEach((m) =>
            m.classList.remove(e.params.pagination.paginationDisabledClass)
          )),
          h(),
          p(),
          d()
      },
      y = () => {
        e.el.classList.add(e.params.pagination.paginationDisabledClass)
        let { el: v } = e.pagination
        v &&
          ((v = N(v)),
          v.forEach((m) =>
            m.classList.add(e.params.pagination.paginationDisabledClass)
          )),
          g()
      }
    Object.assign(e.pagination, {
      enable: w,
      disable: y,
      render: p,
      update: d,
      init: h,
      destroy: g,
    })
  }
  function As(s) {
    let { swiper: e, extendParams: t, on: i, emit: r } = s
    const a = q()
    let f = !1,
      c = null,
      n = null,
      u,
      o,
      l,
      d
    t({
      scrollbar: {
        el: null,
        dragSize: 'auto',
        hide: !1,
        draggable: !1,
        snapOnRelease: !0,
        lockClass: 'swiper-scrollbar-lock',
        dragClass: 'swiper-scrollbar-drag',
        scrollbarDisabledClass: 'swiper-scrollbar-disabled',
        horizontalClass: 'swiper-scrollbar-horizontal',
        verticalClass: 'swiper-scrollbar-vertical',
      },
    }),
      (e.scrollbar = { el: null, dragEl: null })
    function p() {
      if (!e.params.scrollbar.el || !e.scrollbar.el) return
      const { scrollbar: C, rtlTranslate: E } = e,
        { dragEl: x, el: D } = C,
        G = e.params.scrollbar,
        M = e.params.loop ? e.progressLoop : e.progress
      let L = o,
        V = (l - o) * M
      E
        ? ((V = -V), V > 0 ? ((L = o - V), (V = 0)) : -V + o > l && (L = l + V))
        : V < 0
        ? ((L = o + V), (V = 0))
        : V + o > l && (L = l - V),
        e.isHorizontal()
          ? ((x.style.transform = `translate3d(${V}px, 0, 0)`),
            (x.style.width = `${L}px`))
          : ((x.style.transform = `translate3d(0px, ${V}px, 0)`),
            (x.style.height = `${L}px`)),
        G.hide &&
          (clearTimeout(c),
          (D.style.opacity = 1),
          (c = setTimeout(() => {
            ;(D.style.opacity = 0), (D.style.transitionDuration = '400ms')
          }, 1e3)))
    }
    function h(C) {
      !e.params.scrollbar.el ||
        !e.scrollbar.el ||
        (e.scrollbar.dragEl.style.transitionDuration = `${C}ms`)
    }
    function g() {
      if (!e.params.scrollbar.el || !e.scrollbar.el) return
      const { scrollbar: C } = e,
        { dragEl: E, el: x } = C
      ;(E.style.width = ''),
        (E.style.height = ''),
        (l = e.isHorizontal() ? x.offsetWidth : x.offsetHeight),
        (d =
          e.size /
          (e.virtualSize +
            e.params.slidesOffsetBefore -
            (e.params.centeredSlides ? e.snapGrid[0] : 0))),
        e.params.scrollbar.dragSize === 'auto'
          ? (o = l * d)
          : (o = parseInt(e.params.scrollbar.dragSize, 10)),
        e.isHorizontal()
          ? (E.style.width = `${o}px`)
          : (E.style.height = `${o}px`),
        d >= 1 ? (x.style.display = 'none') : (x.style.display = ''),
        e.params.scrollbar.hide && (x.style.opacity = 0),
        e.params.watchOverflow &&
          e.enabled &&
          C.el.classList[e.isLocked ? 'add' : 'remove'](
            e.params.scrollbar.lockClass
          )
    }
    function w(C) {
      return e.isHorizontal() ? C.clientX : C.clientY
    }
    function y(C) {
      const { scrollbar: E, rtlTranslate: x } = e,
        { el: D } = E
      let G
      ;(G =
        (w(C) -
          be(D)[e.isHorizontal() ? 'left' : 'top'] -
          (u !== null ? u : o / 2)) /
        (l - o)),
        (G = Math.max(Math.min(G, 1), 0)),
        x && (G = 1 - G)
      const M = e.minTranslate() + (e.maxTranslate() - e.minTranslate()) * G
      e.updateProgress(M),
        e.setTranslate(M),
        e.updateActiveIndex(),
        e.updateSlidesClasses()
    }
    function v(C) {
      const E = e.params.scrollbar,
        { scrollbar: x, wrapperEl: D } = e,
        { el: G, dragEl: M } = x
      ;(f = !0),
        (u =
          C.target === M
            ? w(C) -
              C.target.getBoundingClientRect()[
                e.isHorizontal() ? 'left' : 'top'
              ]
            : null),
        C.preventDefault(),
        C.stopPropagation(),
        (D.style.transitionDuration = '100ms'),
        (M.style.transitionDuration = '100ms'),
        y(C),
        clearTimeout(n),
        (G.style.transitionDuration = '0ms'),
        E.hide && (G.style.opacity = 1),
        e.params.cssMode && (e.wrapperEl.style['scroll-snap-type'] = 'none'),
        r('scrollbarDragStart', C)
    }
    function m(C) {
      const { scrollbar: E, wrapperEl: x } = e,
        { el: D, dragEl: G } = E
      !f ||
        (C.preventDefault && C.cancelable
          ? C.preventDefault()
          : (C.returnValue = !1),
        y(C),
        (x.style.transitionDuration = '0ms'),
        (D.style.transitionDuration = '0ms'),
        (G.style.transitionDuration = '0ms'),
        r('scrollbarDragMove', C))
    }
    function b(C) {
      const E = e.params.scrollbar,
        { scrollbar: x, wrapperEl: D } = e,
        { el: G } = x
      !f ||
        ((f = !1),
        e.params.cssMode &&
          ((e.wrapperEl.style['scroll-snap-type'] = ''),
          (D.style.transitionDuration = '')),
        E.hide &&
          (clearTimeout(n),
          (n = ae(() => {
            ;(G.style.opacity = 0), (G.style.transitionDuration = '400ms')
          }, 1e3))),
        r('scrollbarDragEnd', C),
        E.snapOnRelease && e.slideToClosest())
    }
    function S(C) {
      const { scrollbar: E, params: x } = e,
        D = E.el
      if (!D) return
      const G = D,
        M = x.passiveListeners ? { passive: !1, capture: !1 } : !1,
        L = x.passiveListeners ? { passive: !0, capture: !1 } : !1
      if (!G) return
      const V = C === 'on' ? 'addEventListener' : 'removeEventListener'
      G[V]('pointerdown', v, M),
        a[V]('pointermove', m, M),
        a[V]('pointerup', b, L)
    }
    function A() {
      !e.params.scrollbar.el || !e.scrollbar.el || S('on')
    }
    function O() {
      !e.params.scrollbar.el || !e.scrollbar.el || S('off')
    }
    function z() {
      const { scrollbar: C, el: E } = e
      e.params.scrollbar = Be(
        e,
        e.originalParams.scrollbar,
        e.params.scrollbar,
        { el: 'swiper-scrollbar' }
      )
      const x = e.params.scrollbar
      if (!x.el) return
      let D
      if (
        (typeof x.el == 'string' &&
          e.isElement &&
          (D = e.el.querySelector(x.el)),
        !D && typeof x.el == 'string')
      ) {
        if (((D = a.querySelectorAll(x.el)), !D.length)) return
      } else D || (D = x.el)
      e.params.uniqueNavElements &&
        typeof x.el == 'string' &&
        D.length > 1 &&
        E.querySelectorAll(x.el).length === 1 &&
        (D = E.querySelector(x.el)),
        D.length > 0 && (D = D[0]),
        D.classList.add(e.isHorizontal() ? x.horizontalClass : x.verticalClass)
      let G
      D &&
        ((G = D.querySelector(te(e.params.scrollbar.dragClass))),
        G || ((G = J('div', e.params.scrollbar.dragClass)), D.append(G))),
        Object.assign(C, { el: D, dragEl: G }),
        x.draggable && A(),
        D &&
          D.classList[e.enabled ? 'remove' : 'add'](
            ...ie(e.params.scrollbar.lockClass)
          )
    }
    function T() {
      const C = e.params.scrollbar,
        E = e.scrollbar.el
      E &&
        E.classList.remove(
          ...ie(e.isHorizontal() ? C.horizontalClass : C.verticalClass)
        ),
        O()
    }
    i('changeDirection', () => {
      if (!e.scrollbar || !e.scrollbar.el) return
      const C = e.params.scrollbar
      let { el: E } = e.scrollbar
      ;(E = N(E)),
        E.forEach((x) => {
          x.classList.remove(C.horizontalClass, C.verticalClass),
            x.classList.add(
              e.isHorizontal() ? C.horizontalClass : C.verticalClass
            )
        })
    }),
      i('init', () => {
        e.params.scrollbar.enabled === !1 ? I() : (z(), g(), p())
      }),
      i('update resize observerUpdate lock unlock changeDirection', () => {
        g()
      }),
      i('setTranslate', () => {
        p()
      }),
      i('setTransition', (C, E) => {
        h(E)
      }),
      i('enable disable', () => {
        const { el: C } = e.scrollbar
        C &&
          C.classList[e.enabled ? 'remove' : 'add'](
            ...ie(e.params.scrollbar.lockClass)
          )
      }),
      i('destroy', () => {
        T()
      })
    const P = () => {
        e.el.classList.remove(...ie(e.params.scrollbar.scrollbarDisabledClass)),
          e.scrollbar.el &&
            e.scrollbar.el.classList.remove(
              ...ie(e.params.scrollbar.scrollbarDisabledClass)
            ),
          z(),
          g(),
          p()
      },
      I = () => {
        e.el.classList.add(...ie(e.params.scrollbar.scrollbarDisabledClass)),
          e.scrollbar.el &&
            e.scrollbar.el.classList.add(
              ...ie(e.params.scrollbar.scrollbarDisabledClass)
            ),
          T()
      }
    Object.assign(e.scrollbar, {
      enable: P,
      disable: I,
      updateSize: g,
      setTranslate: p,
      init: z,
      destroy: T,
    })
  }
  function zs(s) {
    let { swiper: e, extendParams: t, on: i } = s
    t({ parallax: { enabled: !1 } })
    const r =
        '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',
      a = (n, u) => {
        const { rtl: o } = e,
          l = o ? -1 : 1,
          d = n.getAttribute('data-swiper-parallax') || '0'
        let p = n.getAttribute('data-swiper-parallax-x'),
          h = n.getAttribute('data-swiper-parallax-y')
        const g = n.getAttribute('data-swiper-parallax-scale'),
          w = n.getAttribute('data-swiper-parallax-opacity'),
          y = n.getAttribute('data-swiper-parallax-rotate')
        if (
          (p || h
            ? ((p = p || '0'), (h = h || '0'))
            : e.isHorizontal()
            ? ((p = d), (h = '0'))
            : ((h = d), (p = '0')),
          p.indexOf('%') >= 0
            ? (p = `${parseInt(p, 10) * u * l}%`)
            : (p = `${p * u * l}px`),
          h.indexOf('%') >= 0
            ? (h = `${parseInt(h, 10) * u}%`)
            : (h = `${h * u}px`),
          typeof w != 'undefined' && w !== null)
        ) {
          const m = w - (w - 1) * (1 - Math.abs(u))
          n.style.opacity = m
        }
        let v = `translate3d(${p}, ${h}, 0px)`
        typeof g != 'undefined' &&
          g !== null &&
          (v += ` scale(${g - (g - 1) * (1 - Math.abs(u))})`),
          y &&
            typeof y != 'undefined' &&
            y !== null &&
            (v += ` rotate(${y * u * -1}deg)`),
          (n.style.transform = v)
      },
      f = () => {
        const { el: n, slides: u, progress: o, snapGrid: l, isElement: d } = e,
          p = W(n, r)
        e.isElement && p.push(...W(e.hostEl, r)),
          p.forEach((h) => {
            a(h, o)
          }),
          u.forEach((h, g) => {
            let w = h.progress
            e.params.slidesPerGroup > 1 &&
              e.params.slidesPerView !== 'auto' &&
              (w += Math.ceil(g / 2) - o * (l.length - 1)),
              (w = Math.min(Math.max(w, -1), 1)),
              h
                .querySelectorAll(`${r}, [data-swiper-parallax-rotate]`)
                .forEach((y) => {
                  a(y, w)
                })
          })
      },
      c = function (n) {
        n === void 0 && (n = e.params.speed)
        const { el: u, hostEl: o } = e,
          l = [...u.querySelectorAll(r)]
        e.isElement && l.push(...o.querySelectorAll(r)),
          l.forEach((d) => {
            let p =
              parseInt(d.getAttribute('data-swiper-parallax-duration'), 10) || n
            n === 0 && (p = 0), (d.style.transitionDuration = `${p}ms`)
          })
      }
    i('beforeInit', () => {
      !e.params.parallax.enabled ||
        ((e.params.watchSlidesProgress = !0),
        (e.originalParams.watchSlidesProgress = !0))
    }),
      i('init', () => {
        !e.params.parallax.enabled || f()
      }),
      i('setTranslate', () => {
        !e.params.parallax.enabled || f()
      }),
      i('setTransition', (n, u) => {
        !e.params.parallax.enabled || c(u)
      })
  }
  function Ds(s) {
    let { swiper: e, extendParams: t, on: i, emit: r } = s
    const a = X()
    t({
      zoom: {
        enabled: !1,
        limitToOriginalSize: !1,
        maxRatio: 3,
        minRatio: 1,
        toggle: !0,
        containerClass: 'swiper-zoom-container',
        zoomedSlideClass: 'swiper-slide-zoomed',
      },
    }),
      (e.zoom = { enabled: !1 })
    let f = 1,
      c = !1,
      n,
      u
    const o = [],
      l = {
        originX: 0,
        originY: 0,
        slideEl: void 0,
        slideWidth: void 0,
        slideHeight: void 0,
        imageEl: void 0,
        imageWrapEl: void 0,
        maxRatio: 3,
      },
      d = {
        isTouched: void 0,
        isMoved: void 0,
        currentX: void 0,
        currentY: void 0,
        minX: void 0,
        minY: void 0,
        maxX: void 0,
        maxY: void 0,
        width: void 0,
        height: void 0,
        startX: void 0,
        startY: void 0,
        touchesStart: {},
        touchesCurrent: {},
      },
      p = {
        x: void 0,
        y: void 0,
        prevPositionX: void 0,
        prevPositionY: void 0,
        prevTime: void 0,
      }
    let h = 1
    Object.defineProperty(e.zoom, 'scale', {
      get() {
        return h
      },
      set($) {
        if (h !== $) {
          const k = l.imageEl,
            B = l.slideEl
          r('zoomChange', $, k, B)
        }
        h = $
      },
    })
    function g() {
      if (o.length < 2) return 1
      const $ = o[0].pageX,
        k = o[0].pageY,
        B = o[1].pageX,
        Y = o[1].pageY
      return Math.sqrt((B - $) ** 2 + (Y - k) ** 2)
    }
    function w() {
      const $ = e.params.zoom,
        k = l.imageWrapEl.getAttribute('data-swiper-zoom') || $.maxRatio
      if ($.limitToOriginalSize && l.imageEl && l.imageEl.naturalWidth) {
        const B = l.imageEl.naturalWidth / l.imageEl.offsetWidth
        return Math.min(B, k)
      }
      return k
    }
    function y() {
      if (o.length < 2) return { x: null, y: null }
      const $ = l.imageEl.getBoundingClientRect()
      return [
        (o[0].pageX + (o[1].pageX - o[0].pageX) / 2 - $.x - a.scrollX) / f,
        (o[0].pageY + (o[1].pageY - o[0].pageY) / 2 - $.y - a.scrollY) / f,
      ]
    }
    function v() {
      return e.isElement ? 'swiper-slide' : `.${e.params.slideClass}`
    }
    function m($) {
      const k = v()
      return !!(
        $.target.matches(k) ||
        e.slides.filter((B) => B.contains($.target)).length > 0
      )
    }
    function b($) {
      const k = `.${e.params.zoom.containerClass}`
      return !!(
        $.target.matches(k) ||
        [...e.hostEl.querySelectorAll(k)].filter((B) => B.contains($.target))
          .length > 0
      )
    }
    function S($) {
      if (($.pointerType === 'mouse' && o.splice(0, o.length), !m($))) return
      const k = e.params.zoom
      if (((n = !1), (u = !1), o.push($), !(o.length < 2))) {
        if (((n = !0), (l.scaleStart = g()), !l.slideEl)) {
          ;(l.slideEl = $.target.closest(
            `.${e.params.slideClass}, swiper-slide`
          )),
            l.slideEl || (l.slideEl = e.slides[e.activeIndex])
          let B = l.slideEl.querySelector(`.${k.containerClass}`)
          if (
            (B &&
              (B = B.querySelectorAll(
                'picture, img, svg, canvas, .swiper-zoom-target'
              )[0]),
            (l.imageEl = B),
            B
              ? (l.imageWrapEl = le(l.imageEl, `.${k.containerClass}`)[0])
              : (l.imageWrapEl = void 0),
            !l.imageWrapEl)
          ) {
            l.imageEl = void 0
            return
          }
          l.maxRatio = w()
        }
        if (l.imageEl) {
          const [B, Y] = y()
          ;(l.originX = B),
            (l.originY = Y),
            (l.imageEl.style.transitionDuration = '0ms')
        }
        c = !0
      }
    }
    function A($) {
      if (!m($)) return
      const k = e.params.zoom,
        B = e.zoom,
        Y = o.findIndex((H) => H.pointerId === $.pointerId)
      Y >= 0 && (o[Y] = $),
        !(o.length < 2) &&
          ((u = !0),
          (l.scaleMove = g()),
          !!l.imageEl &&
            ((B.scale = (l.scaleMove / l.scaleStart) * f),
            B.scale > l.maxRatio &&
              (B.scale = l.maxRatio - 1 + (B.scale - l.maxRatio + 1) ** 0.5),
            B.scale < k.minRatio &&
              (B.scale = k.minRatio + 1 - (k.minRatio - B.scale + 1) ** 0.5),
            (l.imageEl.style.transform = `translate3d(0,0,0) scale(${B.scale})`)))
    }
    function O($) {
      if (!m($) || ($.pointerType === 'mouse' && $.type === 'pointerout'))
        return
      const k = e.params.zoom,
        B = e.zoom,
        Y = o.findIndex((H) => H.pointerId === $.pointerId)
      Y >= 0 && o.splice(Y, 1),
        !(!n || !u) &&
          ((n = !1),
          (u = !1),
          !!l.imageEl &&
            ((B.scale = Math.max(Math.min(B.scale, l.maxRatio), k.minRatio)),
            (l.imageEl.style.transitionDuration = `${e.params.speed}ms`),
            (l.imageEl.style.transform = `translate3d(0,0,0) scale(${B.scale})`),
            (f = B.scale),
            (c = !1),
            B.scale > 1 && l.slideEl
              ? l.slideEl.classList.add(`${k.zoomedSlideClass}`)
              : B.scale <= 1 &&
                l.slideEl &&
                l.slideEl.classList.remove(`${k.zoomedSlideClass}`),
            B.scale === 1 &&
              ((l.originX = 0), (l.originY = 0), (l.slideEl = void 0))))
    }
    let z
    function T() {
      e.touchEventsData.preventTouchMoveFromPointerMove = !1
    }
    function P() {
      clearTimeout(z),
        (e.touchEventsData.preventTouchMoveFromPointerMove = !0),
        (z = setTimeout(() => {
          T()
        }))
    }
    function I($) {
      const k = e.device
      if (!l.imageEl || d.isTouched) return
      k.android && $.cancelable && $.preventDefault(), (d.isTouched = !0)
      const B = o.length > 0 ? o[0] : $
      ;(d.touchesStart.x = B.pageX), (d.touchesStart.y = B.pageY)
    }
    function C($) {
      if (!m($) || !b($)) return
      const k = e.zoom
      if (!l.imageEl || !d.isTouched || !l.slideEl) return
      d.isMoved ||
        ((d.width = l.imageEl.offsetWidth || l.imageEl.clientWidth),
        (d.height = l.imageEl.offsetHeight || l.imageEl.clientHeight),
        (d.startX = Le(l.imageWrapEl, 'x') || 0),
        (d.startY = Le(l.imageWrapEl, 'y') || 0),
        (l.slideWidth = l.slideEl.offsetWidth),
        (l.slideHeight = l.slideEl.offsetHeight),
        (l.imageWrapEl.style.transitionDuration = '0ms'))
      const B = d.width * k.scale,
        Y = d.height * k.scale
      if (
        ((d.minX = Math.min(l.slideWidth / 2 - B / 2, 0)),
        (d.maxX = -d.minX),
        (d.minY = Math.min(l.slideHeight / 2 - Y / 2, 0)),
        (d.maxY = -d.minY),
        (d.touchesCurrent.x = o.length > 0 ? o[0].pageX : $.pageX),
        (d.touchesCurrent.y = o.length > 0 ? o[0].pageY : $.pageY),
        Math.max(
          Math.abs(d.touchesCurrent.x - d.touchesStart.x),
          Math.abs(d.touchesCurrent.y - d.touchesStart.y)
        ) > 5 && (e.allowClick = !1),
        !d.isMoved && !c)
      ) {
        if (
          e.isHorizontal() &&
          ((Math.floor(d.minX) === Math.floor(d.startX) &&
            d.touchesCurrent.x < d.touchesStart.x) ||
            (Math.floor(d.maxX) === Math.floor(d.startX) &&
              d.touchesCurrent.x > d.touchesStart.x))
        ) {
          ;(d.isTouched = !1), T()
          return
        }
        if (
          !e.isHorizontal() &&
          ((Math.floor(d.minY) === Math.floor(d.startY) &&
            d.touchesCurrent.y < d.touchesStart.y) ||
            (Math.floor(d.maxY) === Math.floor(d.startY) &&
              d.touchesCurrent.y > d.touchesStart.y))
        ) {
          ;(d.isTouched = !1), T()
          return
        }
      }
      $.cancelable && $.preventDefault(),
        $.stopPropagation(),
        P(),
        (d.isMoved = !0)
      const R = (k.scale - f) / (l.maxRatio - e.params.zoom.minRatio),
        { originX: U, originY: fe } = l
      ;(d.currentX =
        d.touchesCurrent.x -
        d.touchesStart.x +
        d.startX +
        R * (d.width - U * 2)),
        (d.currentY =
          d.touchesCurrent.y -
          d.touchesStart.y +
          d.startY +
          R * (d.height - fe * 2)),
        d.currentX < d.minX &&
          (d.currentX = d.minX + 1 - (d.minX - d.currentX + 1) ** 0.8),
        d.currentX > d.maxX &&
          (d.currentX = d.maxX - 1 + (d.currentX - d.maxX + 1) ** 0.8),
        d.currentY < d.minY &&
          (d.currentY = d.minY + 1 - (d.minY - d.currentY + 1) ** 0.8),
        d.currentY > d.maxY &&
          (d.currentY = d.maxY - 1 + (d.currentY - d.maxY + 1) ** 0.8),
        p.prevPositionX || (p.prevPositionX = d.touchesCurrent.x),
        p.prevPositionY || (p.prevPositionY = d.touchesCurrent.y),
        p.prevTime || (p.prevTime = Date.now()),
        (p.x =
          (d.touchesCurrent.x - p.prevPositionX) /
          (Date.now() - p.prevTime) /
          2),
        (p.y =
          (d.touchesCurrent.y - p.prevPositionY) /
          (Date.now() - p.prevTime) /
          2),
        Math.abs(d.touchesCurrent.x - p.prevPositionX) < 2 && (p.x = 0),
        Math.abs(d.touchesCurrent.y - p.prevPositionY) < 2 && (p.y = 0),
        (p.prevPositionX = d.touchesCurrent.x),
        (p.prevPositionY = d.touchesCurrent.y),
        (p.prevTime = Date.now()),
        (l.imageWrapEl.style.transform = `translate3d(${d.currentX}px, ${d.currentY}px,0)`)
    }
    function E() {
      const $ = e.zoom
      if (!l.imageEl) return
      if (!d.isTouched || !d.isMoved) {
        ;(d.isTouched = !1), (d.isMoved = !1)
        return
      }
      ;(d.isTouched = !1), (d.isMoved = !1)
      let k = 300,
        B = 300
      const Y = p.x * k,
        H = d.currentX + Y,
        R = p.y * B,
        U = d.currentY + R
      p.x !== 0 && (k = Math.abs((H - d.currentX) / p.x)),
        p.y !== 0 && (B = Math.abs((U - d.currentY) / p.y))
      const fe = Math.max(k, B)
      ;(d.currentX = H), (d.currentY = U)
      const Me = d.width * $.scale,
        se = d.height * $.scale
      ;(d.minX = Math.min(l.slideWidth / 2 - Me / 2, 0)),
        (d.maxX = -d.minX),
        (d.minY = Math.min(l.slideHeight / 2 - se / 2, 0)),
        (d.maxY = -d.minY),
        (d.currentX = Math.max(Math.min(d.currentX, d.maxX), d.minX)),
        (d.currentY = Math.max(Math.min(d.currentY, d.maxY), d.minY)),
        (l.imageWrapEl.style.transitionDuration = `${fe}ms`),
        (l.imageWrapEl.style.transform = `translate3d(${d.currentX}px, ${d.currentY}px,0)`)
    }
    function x() {
      const $ = e.zoom
      l.slideEl &&
        e.activeIndex !== e.slides.indexOf(l.slideEl) &&
        (l.imageEl &&
          (l.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'),
        l.imageWrapEl && (l.imageWrapEl.style.transform = 'translate3d(0,0,0)'),
        l.slideEl.classList.remove(`${e.params.zoom.zoomedSlideClass}`),
        ($.scale = 1),
        (f = 1),
        (l.slideEl = void 0),
        (l.imageEl = void 0),
        (l.imageWrapEl = void 0),
        (l.originX = 0),
        (l.originY = 0))
    }
    function D($) {
      const k = e.zoom,
        B = e.params.zoom
      if (!l.slideEl) {
        $ &&
          $.target &&
          (l.slideEl = $.target.closest(
            `.${e.params.slideClass}, swiper-slide`
          )),
          l.slideEl ||
            (e.params.virtual && e.params.virtual.enabled && e.virtual
              ? (l.slideEl = W(e.slidesEl, `.${e.params.slideActiveClass}`)[0])
              : (l.slideEl = e.slides[e.activeIndex]))
        let we = l.slideEl.querySelector(`.${B.containerClass}`)
        we &&
          (we = we.querySelectorAll(
            'picture, img, svg, canvas, .swiper-zoom-target'
          )[0]),
          (l.imageEl = we),
          we
            ? (l.imageWrapEl = le(l.imageEl, `.${B.containerClass}`)[0])
            : (l.imageWrapEl = void 0)
      }
      if (!l.imageEl || !l.imageWrapEl) return
      e.params.cssMode &&
        ((e.wrapperEl.style.overflow = 'hidden'),
        (e.wrapperEl.style.touchAction = 'none')),
        l.slideEl.classList.add(`${B.zoomedSlideClass}`)
      let Y, H, R, U, fe, Me, se, oe, tt, st, it, rt, Ce, Pe, He, Fe, Ne, Re
      typeof d.touchesStart.x == 'undefined' && $
        ? ((Y = $.pageX), (H = $.pageY))
        : ((Y = d.touchesStart.x), (H = d.touchesStart.y))
      const ve = typeof $ == 'number' ? $ : null
      f === 1 &&
        ve &&
        ((Y = void 0),
        (H = void 0),
        (d.touchesStart.x = void 0),
        (d.touchesStart.y = void 0))
      const at = w()
      ;(k.scale = ve || at),
        (f = ve || at),
        $ && !(f === 1 && ve)
          ? ((Ne = l.slideEl.offsetWidth),
            (Re = l.slideEl.offsetHeight),
            (R = be(l.slideEl).left + a.scrollX),
            (U = be(l.slideEl).top + a.scrollY),
            (fe = R + Ne / 2 - Y),
            (Me = U + Re / 2 - H),
            (tt = l.imageEl.offsetWidth || l.imageEl.clientWidth),
            (st = l.imageEl.offsetHeight || l.imageEl.clientHeight),
            (it = tt * k.scale),
            (rt = st * k.scale),
            (Ce = Math.min(Ne / 2 - it / 2, 0)),
            (Pe = Math.min(Re / 2 - rt / 2, 0)),
            (He = -Ce),
            (Fe = -Pe),
            (se = fe * k.scale),
            (oe = Me * k.scale),
            se < Ce && (se = Ce),
            se > He && (se = He),
            oe < Pe && (oe = Pe),
            oe > Fe && (oe = Fe))
          : ((se = 0), (oe = 0)),
        ve && k.scale === 1 && ((l.originX = 0), (l.originY = 0)),
        (l.imageWrapEl.style.transitionDuration = '300ms'),
        (l.imageWrapEl.style.transform = `translate3d(${se}px, ${oe}px,0)`),
        (l.imageEl.style.transitionDuration = '300ms'),
        (l.imageEl.style.transform = `translate3d(0,0,0) scale(${k.scale})`)
    }
    function G() {
      const $ = e.zoom,
        k = e.params.zoom
      if (!l.slideEl) {
        e.params.virtual && e.params.virtual.enabled && e.virtual
          ? (l.slideEl = W(e.slidesEl, `.${e.params.slideActiveClass}`)[0])
          : (l.slideEl = e.slides[e.activeIndex])
        let B = l.slideEl.querySelector(`.${k.containerClass}`)
        B &&
          (B = B.querySelectorAll(
            'picture, img, svg, canvas, .swiper-zoom-target'
          )[0]),
          (l.imageEl = B),
          B
            ? (l.imageWrapEl = le(l.imageEl, `.${k.containerClass}`)[0])
            : (l.imageWrapEl = void 0)
      }
      !l.imageEl ||
        !l.imageWrapEl ||
        (e.params.cssMode &&
          ((e.wrapperEl.style.overflow = ''),
          (e.wrapperEl.style.touchAction = '')),
        ($.scale = 1),
        (f = 1),
        (d.touchesStart.x = void 0),
        (d.touchesStart.y = void 0),
        (l.imageWrapEl.style.transitionDuration = '300ms'),
        (l.imageWrapEl.style.transform = 'translate3d(0,0,0)'),
        (l.imageEl.style.transitionDuration = '300ms'),
        (l.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'),
        l.slideEl.classList.remove(`${k.zoomedSlideClass}`),
        (l.slideEl = void 0),
        (l.originX = 0),
        (l.originY = 0))
    }
    function M($) {
      const k = e.zoom
      k.scale && k.scale !== 1 ? G() : D($)
    }
    function L() {
      const $ = e.params.passiveListeners ? { passive: !0, capture: !1 } : !1,
        k = e.params.passiveListeners ? { passive: !1, capture: !0 } : !0
      return { passiveListener: $, activeListenerWithCapture: k }
    }
    function V() {
      const $ = e.zoom
      if ($.enabled) return
      $.enabled = !0
      const { passiveListener: k, activeListenerWithCapture: B } = L()
      e.wrapperEl.addEventListener('pointerdown', S, k),
        e.wrapperEl.addEventListener('pointermove', A, B),
        ['pointerup', 'pointercancel', 'pointerout'].forEach((Y) => {
          e.wrapperEl.addEventListener(Y, O, k)
        }),
        e.wrapperEl.addEventListener('pointermove', C, B)
    }
    function F() {
      const $ = e.zoom
      if (!$.enabled) return
      $.enabled = !1
      const { passiveListener: k, activeListenerWithCapture: B } = L()
      e.wrapperEl.removeEventListener('pointerdown', S, k),
        e.wrapperEl.removeEventListener('pointermove', A, B),
        ['pointerup', 'pointercancel', 'pointerout'].forEach((Y) => {
          e.wrapperEl.removeEventListener(Y, O, k)
        }),
        e.wrapperEl.removeEventListener('pointermove', C, B)
    }
    i('init', () => {
      e.params.zoom.enabled && V()
    }),
      i('destroy', () => {
        F()
      }),
      i('touchStart', ($, k) => {
        !e.zoom.enabled || I(k)
      }),
      i('touchEnd', ($, k) => {
        !e.zoom.enabled || E()
      }),
      i('doubleTap', ($, k) => {
        !e.animating &&
          e.params.zoom.enabled &&
          e.zoom.enabled &&
          e.params.zoom.toggle &&
          M(k)
      }),
      i('transitionEnd', () => {
        e.zoom.enabled && e.params.zoom.enabled && x()
      }),
      i('slideChange', () => {
        e.zoom.enabled && e.params.zoom.enabled && e.params.cssMode && x()
      }),
      Object.assign(e.zoom, { enable: V, disable: F, in: D, out: G, toggle: M })
  }
  function Os(s) {
    let { swiper: e, extendParams: t, on: i } = s
    t({ controller: { control: void 0, inverse: !1, by: 'slide' } }),
      (e.controller = { control: void 0 })
    function r(u, o) {
      const l = (function () {
        let g, w, y
        return (v, m) => {
          for (w = -1, g = v.length; g - w > 1; )
            (y = (g + w) >> 1), v[y] <= m ? (w = y) : (g = y)
          return g
        }
      })()
      ;(this.x = u), (this.y = o), (this.lastIndex = u.length - 1)
      let d, p
      return (
        (this.interpolate = function (g) {
          return g
            ? ((p = l(this.x, g)),
              (d = p - 1),
              ((g - this.x[d]) * (this.y[p] - this.y[d])) /
                (this.x[p] - this.x[d]) +
                this.y[d])
            : 0
        }),
        this
      )
    }
    function a(u) {
      e.controller.spline = e.params.loop
        ? new r(e.slidesGrid, u.slidesGrid)
        : new r(e.snapGrid, u.snapGrid)
    }
    function f(u, o) {
      const l = e.controller.control
      let d, p
      const h = e.constructor
      function g(w) {
        if (w.destroyed) return
        const y = e.rtlTranslate ? -e.translate : e.translate
        e.params.controller.by === 'slide' &&
          (a(w), (p = -e.controller.spline.interpolate(-y))),
          (!p || e.params.controller.by === 'container') &&
            ((d =
              (w.maxTranslate() - w.minTranslate()) /
              (e.maxTranslate() - e.minTranslate())),
            (Number.isNaN(d) || !Number.isFinite(d)) && (d = 1),
            (p = (y - e.minTranslate()) * d + w.minTranslate())),
          e.params.controller.inverse && (p = w.maxTranslate() - p),
          w.updateProgress(p),
          w.setTranslate(p, e),
          w.updateActiveIndex(),
          w.updateSlidesClasses()
      }
      if (Array.isArray(l))
        for (let w = 0; w < l.length; w += 1)
          l[w] !== o && l[w] instanceof h && g(l[w])
      else l instanceof h && o !== l && g(l)
    }
    function c(u, o) {
      const l = e.constructor,
        d = e.controller.control
      let p
      function h(g) {
        g.destroyed ||
          (g.setTransition(u, e),
          u !== 0 &&
            (g.transitionStart(),
            g.params.autoHeight &&
              ae(() => {
                g.updateAutoHeight()
              }),
            he(g.wrapperEl, () => {
              !d || g.transitionEnd()
            })))
      }
      if (Array.isArray(d))
        for (p = 0; p < d.length; p += 1)
          d[p] !== o && d[p] instanceof l && h(d[p])
      else d instanceof l && o !== d && h(d)
    }
    function n() {
      !e.controller.control ||
        (e.controller.spline &&
          ((e.controller.spline = void 0), delete e.controller.spline))
    }
    i('beforeInit', () => {
      if (
        typeof window != 'undefined' &&
        (typeof e.params.controller.control == 'string' ||
          e.params.controller.control instanceof HTMLElement)
      ) {
        ;(typeof e.params.controller.control == 'string'
          ? [...document.querySelectorAll(e.params.controller.control)]
          : [e.params.controller.control]
        ).forEach((o) => {
          if (
            (e.controller.control || (e.controller.control = []), o && o.swiper)
          )
            e.controller.control.push(o.swiper)
          else if (o) {
            const l = `${e.params.eventsPrefix}init`,
              d = (p) => {
                e.controller.control.push(p.detail[0]),
                  e.update(),
                  o.removeEventListener(l, d)
              }
            o.addEventListener(l, d)
          }
        })
        return
      }
      e.controller.control = e.params.controller.control
    }),
      i('update', () => {
        n()
      }),
      i('resize', () => {
        n()
      }),
      i('observerUpdate', () => {
        n()
      }),
      i('setTranslate', (u, o, l) => {
        !e.controller.control ||
          e.controller.control.destroyed ||
          e.controller.setTranslate(o, l)
      }),
      i('setTransition', (u, o, l) => {
        !e.controller.control ||
          e.controller.control.destroyed ||
          e.controller.setTransition(o, l)
      }),
      Object.assign(e.controller, { setTranslate: f, setTransition: c })
  }
  function $s(s) {
    let { swiper: e, extendParams: t, on: i } = s
    t({
      a11y: {
        enabled: !0,
        notificationClass: 'swiper-notification',
        prevSlideMessage: 'Previous slide',
        nextSlideMessage: 'Next slide',
        firstSlideMessage: 'This is the first slide',
        lastSlideMessage: 'This is the last slide',
        paginationBulletMessage: 'Go to slide {{index}}',
        slideLabelMessage: '{{index}} / {{slidesLength}}',
        containerMessage: null,
        containerRoleDescriptionMessage: null,
        itemRoleDescriptionMessage: null,
        slideRole: 'group',
        id: null,
        scrollOnFocus: !0,
      },
    }),
      (e.a11y = { clicked: !1 })
    let r = null,
      a,
      f,
      c = new Date().getTime()
    function n(M) {
      const L = r
      L.length !== 0 && ((L.innerHTML = ''), (L.innerHTML = M))
    }
    function u(M) {
      M === void 0 && (M = 16)
      const L = () => Math.round(16 * Math.random()).toString(16)
      return 'x'.repeat(M).replace(/x/g, L)
    }
    function o(M) {
      ;(M = N(M)),
        M.forEach((L) => {
          L.setAttribute('tabIndex', '0')
        })
    }
    function l(M) {
      ;(M = N(M)),
        M.forEach((L) => {
          L.setAttribute('tabIndex', '-1')
        })
    }
    function d(M, L) {
      ;(M = N(M)),
        M.forEach((V) => {
          V.setAttribute('role', L)
        })
    }
    function p(M, L) {
      ;(M = N(M)),
        M.forEach((V) => {
          V.setAttribute('aria-roledescription', L)
        })
    }
    function h(M, L) {
      ;(M = N(M)),
        M.forEach((V) => {
          V.setAttribute('aria-controls', L)
        })
    }
    function g(M, L) {
      ;(M = N(M)),
        M.forEach((V) => {
          V.setAttribute('aria-label', L)
        })
    }
    function w(M, L) {
      ;(M = N(M)),
        M.forEach((V) => {
          V.setAttribute('id', L)
        })
    }
    function y(M, L) {
      ;(M = N(M)),
        M.forEach((V) => {
          V.setAttribute('aria-live', L)
        })
    }
    function v(M) {
      ;(M = N(M)),
        M.forEach((L) => {
          L.setAttribute('aria-disabled', !0)
        })
    }
    function m(M) {
      ;(M = N(M)),
        M.forEach((L) => {
          L.setAttribute('aria-disabled', !1)
        })
    }
    function b(M) {
      if (M.keyCode !== 13 && M.keyCode !== 32) return
      const L = e.params.a11y,
        V = M.target
      if (
        !(
          e.pagination &&
          e.pagination.el &&
          (V === e.pagination.el || e.pagination.el.contains(M.target)) &&
          !M.target.matches(te(e.params.pagination.bulletClass))
        )
      ) {
        if (e.navigation && e.navigation.prevEl && e.navigation.nextEl) {
          const F = N(e.navigation.prevEl)
          N(e.navigation.nextEl).includes(V) &&
            ((e.isEnd && !e.params.loop) || e.slideNext(),
            e.isEnd ? n(L.lastSlideMessage) : n(L.nextSlideMessage)),
            F.includes(V) &&
              ((e.isBeginning && !e.params.loop) || e.slidePrev(),
              e.isBeginning ? n(L.firstSlideMessage) : n(L.prevSlideMessage))
        }
        e.pagination &&
          V.matches(te(e.params.pagination.bulletClass)) &&
          V.click()
      }
    }
    function S() {
      if (e.params.loop || e.params.rewind || !e.navigation) return
      const { nextEl: M, prevEl: L } = e.navigation
      L && (e.isBeginning ? (v(L), l(L)) : (m(L), o(L))),
        M && (e.isEnd ? (v(M), l(M)) : (m(M), o(M)))
    }
    function A() {
      return e.pagination && e.pagination.bullets && e.pagination.bullets.length
    }
    function O() {
      return A() && e.params.pagination.clickable
    }
    function z() {
      const M = e.params.a11y
      !A() ||
        e.pagination.bullets.forEach((L) => {
          e.params.pagination.clickable &&
            (o(L),
            e.params.pagination.renderBullet ||
              (d(L, 'button'),
              g(
                L,
                M.paginationBulletMessage.replace(/\{\{index\}\}/, me(L) + 1)
              ))),
            L.matches(te(e.params.pagination.bulletActiveClass))
              ? L.setAttribute('aria-current', 'true')
              : L.removeAttribute('aria-current')
        })
    }
    const T = (M, L, V) => {
        o(M),
          M.tagName !== 'BUTTON' &&
            (d(M, 'button'), M.addEventListener('keydown', b)),
          g(M, V),
          h(M, L)
      },
      P = (M) => {
        f && f !== M.target && !f.contains(M.target) && (a = !0),
          (e.a11y.clicked = !0)
      },
      I = () => {
        ;(a = !1),
          requestAnimationFrame(() => {
            requestAnimationFrame(() => {
              e.destroyed || (e.a11y.clicked = !1)
            })
          })
      },
      C = (M) => {
        c = new Date().getTime()
      },
      E = (M) => {
        if (
          e.a11y.clicked ||
          !e.params.a11y.scrollOnFocus ||
          new Date().getTime() - c < 100
        )
          return
        const L = M.target.closest(`.${e.params.slideClass}, swiper-slide`)
        if (!L || !e.slides.includes(L)) return
        f = L
        const V = e.slides.indexOf(L) === e.activeIndex,
          F =
            e.params.watchSlidesProgress &&
            e.visibleSlides &&
            e.visibleSlides.includes(L)
        V ||
          F ||
          (M.sourceCapabilities && M.sourceCapabilities.firesTouchEvents) ||
          (e.isHorizontal() ? (e.el.scrollLeft = 0) : (e.el.scrollTop = 0),
          requestAnimationFrame(() => {
            a ||
              (e.params.loop
                ? e.slideToLoop(
                    parseInt(L.getAttribute('data-swiper-slide-index')),
                    0
                  )
                : e.slideTo(e.slides.indexOf(L), 0),
              (a = !1))
          }))
      },
      x = () => {
        const M = e.params.a11y
        M.itemRoleDescriptionMessage &&
          p(e.slides, M.itemRoleDescriptionMessage),
          M.slideRole && d(e.slides, M.slideRole)
        const L = e.slides.length
        M.slideLabelMessage &&
          e.slides.forEach((V, F) => {
            const $ = e.params.loop
                ? parseInt(V.getAttribute('data-swiper-slide-index'), 10)
                : F,
              k = M.slideLabelMessage
                .replace(/\{\{index\}\}/, $ + 1)
                .replace(/\{\{slidesLength\}\}/, L)
            g(V, k)
          })
      },
      D = () => {
        const M = e.params.a11y
        e.el.append(r)
        const L = e.el
        M.containerRoleDescriptionMessage &&
          p(L, M.containerRoleDescriptionMessage),
          M.containerMessage && g(L, M.containerMessage)
        const V = e.wrapperEl,
          F = M.id || V.getAttribute('id') || `swiper-wrapper-${u(16)}`,
          $ = e.params.autoplay && e.params.autoplay.enabled ? 'off' : 'polite'
        w(V, F), y(V, $), x()
        let { nextEl: k, prevEl: B } = e.navigation ? e.navigation : {}
        ;(k = N(k)),
          (B = N(B)),
          k && k.forEach((H) => T(H, F, M.nextSlideMessage)),
          B && B.forEach((H) => T(H, F, M.prevSlideMessage)),
          O() &&
            N(e.pagination.el).forEach((R) => {
              R.addEventListener('keydown', b)
            }),
          q().addEventListener('visibilitychange', C),
          e.el.addEventListener('focus', E, !0),
          e.el.addEventListener('focus', E, !0),
          e.el.addEventListener('pointerdown', P, !0),
          e.el.addEventListener('pointerup', I, !0)
      }
    function G() {
      r && r.remove()
      let { nextEl: M, prevEl: L } = e.navigation ? e.navigation : {}
      ;(M = N(M)),
        (L = N(L)),
        M && M.forEach((F) => F.removeEventListener('keydown', b)),
        L && L.forEach((F) => F.removeEventListener('keydown', b)),
        O() &&
          N(e.pagination.el).forEach(($) => {
            $.removeEventListener('keydown', b)
          }),
        q().removeEventListener('visibilitychange', C),
        e.el &&
          typeof e.el != 'string' &&
          (e.el.removeEventListener('focus', E, !0),
          e.el.removeEventListener('pointerdown', P, !0),
          e.el.removeEventListener('pointerup', I, !0))
    }
    i('beforeInit', () => {
      ;(r = J('span', e.params.a11y.notificationClass)),
        r.setAttribute('aria-live', 'assertive'),
        r.setAttribute('aria-atomic', 'true')
    }),
      i('afterInit', () => {
        !e.params.a11y.enabled || D()
      }),
      i(
        'slidesLengthChange snapGridLengthChange slidesGridLengthChange',
        () => {
          !e.params.a11y.enabled || x()
        }
      ),
      i('fromEdge toEdge afterInit lock unlock', () => {
        !e.params.a11y.enabled || S()
      }),
      i('paginationUpdate', () => {
        !e.params.a11y.enabled || z()
      }),
      i('destroy', () => {
        !e.params.a11y.enabled || G()
      })
  }
  function ks(s) {
    let { swiper: e, extendParams: t, on: i } = s
    t({
      history: {
        enabled: !1,
        root: '',
        replaceState: !1,
        key: 'slides',
        keepQuery: !1,
      },
    })
    let r = !1,
      a = {}
    const f = (p) =>
        p
          .toString()
          .replace(/\s+/g, '-')
          .replace(/[^\w-]+/g, '')
          .replace(/--+/g, '-')
          .replace(/^-+/, '')
          .replace(/-+$/, ''),
      c = (p) => {
        const h = X()
        let g
        p ? (g = new URL(p)) : (g = h.location)
        const w = g.pathname
            .slice(1)
            .split('/')
            .filter((b) => b !== ''),
          y = w.length,
          v = w[y - 2],
          m = w[y - 1]
        return { key: v, value: m }
      },
      n = (p, h) => {
        const g = X()
        if (!r || !e.params.history.enabled) return
        let w
        e.params.url ? (w = new URL(e.params.url)) : (w = g.location)
        const y =
          e.virtual && e.params.virtual.enabled
            ? e.slidesEl.querySelector(`[data-swiper-slide-index="${h}"]`)
            : e.slides[h]
        let v = f(y.getAttribute('data-history'))
        if (e.params.history.root.length > 0) {
          let b = e.params.history.root
          b[b.length - 1] === '/' && (b = b.slice(0, b.length - 1)),
            (v = `${b}/${p ? `${p}/` : ''}${v}`)
        } else w.pathname.includes(p) || (v = `${p ? `${p}/` : ''}${v}`)
        e.params.history.keepQuery && (v += w.search)
        const m = g.history.state
        ;(m && m.value === v) ||
          (e.params.history.replaceState
            ? g.history.replaceState({ value: v }, null, v)
            : g.history.pushState({ value: v }, null, v))
      },
      u = (p, h, g) => {
        if (h)
          for (let w = 0, y = e.slides.length; w < y; w += 1) {
            const v = e.slides[w]
            if (f(v.getAttribute('data-history')) === h) {
              const b = e.getSlideIndex(v)
              e.slideTo(b, p, g)
            }
          }
        else e.slideTo(0, p, g)
      },
      o = () => {
        ;(a = c(e.params.url)), u(e.params.speed, a.value, !1)
      },
      l = () => {
        const p = X()
        if (!!e.params.history) {
          if (!p.history || !p.history.pushState) {
            ;(e.params.history.enabled = !1),
              (e.params.hashNavigation.enabled = !0)
            return
          }
          if (((r = !0), (a = c(e.params.url)), !a.key && !a.value)) {
            e.params.history.replaceState || p.addEventListener('popstate', o)
            return
          }
          u(0, a.value, e.params.runCallbacksOnInit),
            e.params.history.replaceState || p.addEventListener('popstate', o)
        }
      },
      d = () => {
        const p = X()
        e.params.history.replaceState || p.removeEventListener('popstate', o)
      }
    i('init', () => {
      e.params.history.enabled && l()
    }),
      i('destroy', () => {
        e.params.history.enabled && d()
      }),
      i('transitionEnd _freeModeNoMomentumRelease', () => {
        r && n(e.params.history.key, e.activeIndex)
      }),
      i('slideChange', () => {
        r && e.params.cssMode && n(e.params.history.key, e.activeIndex)
      })
  }
  function Vs(s) {
    let { swiper: e, extendParams: t, emit: i, on: r } = s,
      a = !1
    const f = q(),
      c = X()
    t({
      hashNavigation: {
        enabled: !1,
        replaceState: !1,
        watchState: !1,
        getSlideIndex(d, p) {
          if (e.virtual && e.params.virtual.enabled) {
            const h = e.slides.filter(
              (w) => w.getAttribute('data-hash') === p
            )[0]
            return h
              ? parseInt(h.getAttribute('data-swiper-slide-index'), 10)
              : 0
          }
          return e.getSlideIndex(
            W(
              e.slidesEl,
              `.${e.params.slideClass}[data-hash="${p}"], swiper-slide[data-hash="${p}"]`
            )[0]
          )
        },
      },
    })
    const n = () => {
        i('hashChange')
        const d = f.location.hash.replace('#', ''),
          p =
            e.virtual && e.params.virtual.enabled
              ? e.slidesEl.querySelector(
                  `[data-swiper-slide-index="${e.activeIndex}"]`
                )
              : e.slides[e.activeIndex],
          h = p ? p.getAttribute('data-hash') : ''
        if (d !== h) {
          const g = e.params.hashNavigation.getSlideIndex(e, d)
          if (typeof g == 'undefined' || Number.isNaN(g)) return
          e.slideTo(g)
        }
      },
      u = () => {
        if (!a || !e.params.hashNavigation.enabled) return
        const d =
            e.virtual && e.params.virtual.enabled
              ? e.slidesEl.querySelector(
                  `[data-swiper-slide-index="${e.activeIndex}"]`
                )
              : e.slides[e.activeIndex],
          p = d
            ? d.getAttribute('data-hash') || d.getAttribute('data-history')
            : ''
        e.params.hashNavigation.replaceState &&
        c.history &&
        c.history.replaceState
          ? (c.history.replaceState(null, null, `#${p}` || ''), i('hashSet'))
          : ((f.location.hash = p || ''), i('hashSet'))
      },
      o = () => {
        if (
          !e.params.hashNavigation.enabled ||
          (e.params.history && e.params.history.enabled)
        )
          return
        a = !0
        const d = f.location.hash.replace('#', '')
        if (d) {
          const p = 0,
            h = e.params.hashNavigation.getSlideIndex(e, d)
          e.slideTo(h || 0, p, e.params.runCallbacksOnInit, !0)
        }
        e.params.hashNavigation.watchState &&
          c.addEventListener('hashchange', n)
      },
      l = () => {
        e.params.hashNavigation.watchState &&
          c.removeEventListener('hashchange', n)
      }
    r('init', () => {
      e.params.hashNavigation.enabled && o()
    }),
      r('destroy', () => {
        e.params.hashNavigation.enabled && l()
      }),
      r('transitionEnd _freeModeNoMomentumRelease', () => {
        a && u()
      }),
      r('slideChange', () => {
        a && e.params.cssMode && u()
      })
  }
  function Gs(s) {
    let { swiper: e, extendParams: t, on: i, emit: r, params: a } = s
    ;(e.autoplay = { running: !1, paused: !1, timeLeft: 0 }),
      t({
        autoplay: {
          enabled: !1,
          delay: 3e3,
          waitForTransition: !0,
          disableOnInteraction: !1,
          stopOnLastSlide: !1,
          reverseDirection: !1,
          pauseOnMouseEnter: !1,
        },
      })
    let f,
      c,
      n = a && a.autoplay ? a.autoplay.delay : 3e3,
      u = a && a.autoplay ? a.autoplay.delay : 3e3,
      o,
      l = new Date().getTime(),
      d,
      p,
      h,
      g,
      w,
      y,
      v
    function m(L) {
      !e ||
        e.destroyed ||
        !e.wrapperEl ||
        (L.target === e.wrapperEl &&
          (e.wrapperEl.removeEventListener('transitionend', m),
          !(v || (L.detail && L.detail.bySwiperTouchMove)) && P()))
    }
    const b = () => {
        if (e.destroyed || !e.autoplay.running) return
        e.autoplay.paused ? (d = !0) : d && ((u = o), (d = !1))
        const L = e.autoplay.paused ? o : l + u - new Date().getTime()
        ;(e.autoplay.timeLeft = L),
          r('autoplayTimeLeft', L, L / n),
          (c = requestAnimationFrame(() => {
            b()
          }))
      },
      S = () => {
        let L
        return (
          e.virtual && e.params.virtual.enabled
            ? (L = e.slides.filter((F) =>
                F.classList.contains('swiper-slide-active')
              )[0])
            : (L = e.slides[e.activeIndex]),
          L ? parseInt(L.getAttribute('data-swiper-autoplay'), 10) : void 0
        )
      },
      A = (L) => {
        if (e.destroyed || !e.autoplay.running) return
        cancelAnimationFrame(c), b()
        let V = typeof L == 'undefined' ? e.params.autoplay.delay : L
        ;(n = e.params.autoplay.delay), (u = e.params.autoplay.delay)
        const F = S()
        !Number.isNaN(F) &&
          F > 0 &&
          typeof L == 'undefined' &&
          ((V = F), (n = F), (u = F)),
          (o = V)
        const $ = e.params.speed,
          k = () => {
            !e ||
              e.destroyed ||
              (e.params.autoplay.reverseDirection
                ? !e.isBeginning || e.params.loop || e.params.rewind
                  ? (e.slidePrev($, !0, !0), r('autoplay'))
                  : e.params.autoplay.stopOnLastSlide ||
                    (e.slideTo(e.slides.length - 1, $, !0, !0), r('autoplay'))
                : !e.isEnd || e.params.loop || e.params.rewind
                ? (e.slideNext($, !0, !0), r('autoplay'))
                : e.params.autoplay.stopOnLastSlide ||
                  (e.slideTo(0, $, !0, !0), r('autoplay')),
              e.params.cssMode &&
                ((l = new Date().getTime()),
                requestAnimationFrame(() => {
                  A()
                })))
          }
        return (
          V > 0
            ? (clearTimeout(f),
              (f = setTimeout(() => {
                k()
              }, V)))
            : requestAnimationFrame(() => {
                k()
              }),
          V
        )
      },
      O = () => {
        ;(l = new Date().getTime()),
          (e.autoplay.running = !0),
          A(),
          r('autoplayStart')
      },
      z = () => {
        ;(e.autoplay.running = !1),
          clearTimeout(f),
          cancelAnimationFrame(c),
          r('autoplayStop')
      },
      T = (L, V) => {
        if (e.destroyed || !e.autoplay.running) return
        clearTimeout(f), L || (y = !0)
        const F = () => {
          r('autoplayPause'),
            e.params.autoplay.waitForTransition
              ? e.wrapperEl.addEventListener('transitionend', m)
              : P()
        }
        if (((e.autoplay.paused = !0), V)) {
          w && (o = e.params.autoplay.delay), (w = !1), F()
          return
        }
        ;(o = (o || e.params.autoplay.delay) - (new Date().getTime() - l)),
          !(e.isEnd && o < 0 && !e.params.loop) && (o < 0 && (o = 0), F())
      },
      P = () => {
        ;(e.isEnd && o < 0 && !e.params.loop) ||
          e.destroyed ||
          !e.autoplay.running ||
          ((l = new Date().getTime()),
          y ? ((y = !1), A(o)) : A(),
          (e.autoplay.paused = !1),
          r('autoplayResume'))
      },
      I = () => {
        if (e.destroyed || !e.autoplay.running) return
        const L = q()
        L.visibilityState === 'hidden' && ((y = !0), T(!0)),
          L.visibilityState === 'visible' && P()
      },
      C = (L) => {
        L.pointerType === 'mouse' &&
          ((y = !0), (v = !0), !(e.animating || e.autoplay.paused) && T(!0))
      },
      E = (L) => {
        L.pointerType === 'mouse' && ((v = !1), e.autoplay.paused && P())
      },
      x = () => {
        e.params.autoplay.pauseOnMouseEnter &&
          (e.el.addEventListener('pointerenter', C),
          e.el.addEventListener('pointerleave', E))
      },
      D = () => {
        e.el &&
          typeof e.el != 'string' &&
          (e.el.removeEventListener('pointerenter', C),
          e.el.removeEventListener('pointerleave', E))
      },
      G = () => {
        q().addEventListener('visibilitychange', I)
      },
      M = () => {
        q().removeEventListener('visibilitychange', I)
      }
    i('init', () => {
      e.params.autoplay.enabled && (x(), G(), O())
    }),
      i('destroy', () => {
        D(), M(), e.autoplay.running && z()
      }),
      i('_freeModeStaticRelease', () => {
        ;(h || y) && P()
      }),
      i('_freeModeNoMomentumRelease', () => {
        e.params.autoplay.disableOnInteraction ? z() : T(!0, !0)
      }),
      i('beforeTransitionStart', (L, V, F) => {
        e.destroyed ||
          !e.autoplay.running ||
          (F || !e.params.autoplay.disableOnInteraction ? T(!0, !0) : z())
      }),
      i('sliderFirstMove', () => {
        if (!(e.destroyed || !e.autoplay.running)) {
          if (e.params.autoplay.disableOnInteraction) {
            z()
            return
          }
          ;(p = !0),
            (h = !1),
            (y = !1),
            (g = setTimeout(() => {
              ;(y = !0), (h = !0), T(!0)
            }, 200))
        }
      }),
      i('touchEnd', () => {
        if (!(e.destroyed || !e.autoplay.running || !p)) {
          if (
            (clearTimeout(g),
            clearTimeout(f),
            e.params.autoplay.disableOnInteraction)
          ) {
            ;(h = !1), (p = !1)
            return
          }
          h && e.params.cssMode && P(), (h = !1), (p = !1)
        }
      }),
      i('slideChange', () => {
        e.destroyed || !e.autoplay.running || (w = !0)
      }),
      Object.assign(e.autoplay, { start: O, stop: z, pause: T, resume: P })
  }
  function Bs(s) {
    let { swiper: e, extendParams: t, on: i } = s
    t({
      thumbs: {
        swiper: null,
        multipleActiveThumbs: !0,
        autoScrollOffset: 0,
        slideThumbActiveClass: 'swiper-slide-thumb-active',
        thumbsContainerClass: 'swiper-thumbs',
      },
    })
    let r = !1,
      a = !1
    e.thumbs = { swiper: null }
    function f() {
      const u = e.thumbs.swiper
      if (!u || u.destroyed) return
      const o = u.clickedIndex,
        l = u.clickedSlide
      if (
        (l && l.classList.contains(e.params.thumbs.slideThumbActiveClass)) ||
        typeof o == 'undefined' ||
        o === null
      )
        return
      let d
      u.params.loop
        ? (d = parseInt(
            u.clickedSlide.getAttribute('data-swiper-slide-index'),
            10
          ))
        : (d = o),
        e.params.loop ? e.slideToLoop(d) : e.slideTo(d)
    }
    function c() {
      const { thumbs: u } = e.params
      if (r) return !1
      r = !0
      const o = e.constructor
      if (u.swiper instanceof o)
        (e.thumbs.swiper = u.swiper),
          Object.assign(e.thumbs.swiper.originalParams, {
            watchSlidesProgress: !0,
            slideToClickedSlide: !1,
          }),
          Object.assign(e.thumbs.swiper.params, {
            watchSlidesProgress: !0,
            slideToClickedSlide: !1,
          }),
          e.thumbs.swiper.update()
      else if (ue(u.swiper)) {
        const l = Object.assign({}, u.swiper)
        Object.assign(l, { watchSlidesProgress: !0, slideToClickedSlide: !1 }),
          (e.thumbs.swiper = new o(l)),
          (a = !0)
      }
      return (
        e.thumbs.swiper.el.classList.add(e.params.thumbs.thumbsContainerClass),
        e.thumbs.swiper.on('tap', f),
        !0
      )
    }
    function n(u) {
      const o = e.thumbs.swiper
      if (!o || o.destroyed) return
      const l =
        o.params.slidesPerView === 'auto'
          ? o.slidesPerViewDynamic()
          : o.params.slidesPerView
      let d = 1
      const p = e.params.thumbs.slideThumbActiveClass
      if (
        (e.params.slidesPerView > 1 &&
          !e.params.centeredSlides &&
          (d = e.params.slidesPerView),
        e.params.thumbs.multipleActiveThumbs || (d = 1),
        (d = Math.floor(d)),
        o.slides.forEach((w) => w.classList.remove(p)),
        o.params.loop || (o.params.virtual && o.params.virtual.enabled))
      )
        for (let w = 0; w < d; w += 1)
          W(
            o.slidesEl,
            `[data-swiper-slide-index="${e.realIndex + w}"]`
          ).forEach((y) => {
            y.classList.add(p)
          })
      else
        for (let w = 0; w < d; w += 1)
          o.slides[e.realIndex + w] &&
            o.slides[e.realIndex + w].classList.add(p)
      const h = e.params.thumbs.autoScrollOffset,
        g = h && !o.params.loop
      if (e.realIndex !== o.realIndex || g) {
        const w = o.activeIndex
        let y, v
        if (o.params.loop) {
          const m = o.slides.filter(
            (b) =>
              b.getAttribute('data-swiper-slide-index') === `${e.realIndex}`
          )[0]
          ;(y = o.slides.indexOf(m)),
            (v = e.activeIndex > e.previousIndex ? 'next' : 'prev')
        } else (y = e.realIndex), (v = y > e.previousIndex ? 'next' : 'prev')
        g && (y += v === 'next' ? h : -1 * h),
          o.visibleSlidesIndexes &&
            o.visibleSlidesIndexes.indexOf(y) < 0 &&
            (o.params.centeredSlides
              ? y > w
                ? (y = y - Math.floor(l / 2) + 1)
                : (y = y + Math.floor(l / 2) - 1)
              : y > w && o.params.slidesPerGroup === 1,
            o.slideTo(y, u ? 0 : void 0))
      }
    }
    i('beforeInit', () => {
      const { thumbs: u } = e.params
      if (!(!u || !u.swiper))
        if (typeof u.swiper == 'string' || u.swiper instanceof HTMLElement) {
          const o = q(),
            l = () => {
              const p =
                typeof u.swiper == 'string'
                  ? o.querySelector(u.swiper)
                  : u.swiper
              if (p && p.swiper) (u.swiper = p.swiper), c(), n(!0)
              else if (p) {
                const h = `${e.params.eventsPrefix}init`,
                  g = (w) => {
                    ;(u.swiper = w.detail[0]),
                      p.removeEventListener(h, g),
                      c(),
                      n(!0),
                      u.swiper.update(),
                      e.update()
                  }
                p.addEventListener(h, g)
              }
              return p
            },
            d = () => {
              if (e.destroyed) return
              l() || requestAnimationFrame(d)
            }
          requestAnimationFrame(d)
        } else c(), n(!0)
    }),
      i('slideChange update resize observerUpdate', () => {
        n()
      }),
      i('setTransition', (u, o) => {
        const l = e.thumbs.swiper
        !l || l.destroyed || l.setTransition(o)
      }),
      i('beforeDestroy', () => {
        const u = e.thumbs.swiper
        !u || u.destroyed || (a && u.destroy())
      }),
      Object.assign(e.thumbs, { init: c, update: n })
  }
  function Hs(s) {
    let { swiper: e, extendParams: t, emit: i, once: r } = s
    t({
      freeMode: {
        enabled: !1,
        momentum: !0,
        momentumRatio: 1,
        momentumBounce: !0,
        momentumBounceRatio: 1,
        momentumVelocityRatio: 1,
        sticky: !1,
        minimumVelocity: 0.02,
      },
    })
    function a() {
      if (e.params.cssMode) return
      const n = e.getTranslate()
      e.setTranslate(n),
        e.setTransition(0),
        (e.touchEventsData.velocities.length = 0),
        e.freeMode.onTouchEnd({
          currentPos: e.rtl ? e.translate : -e.translate,
        })
    }
    function f() {
      if (e.params.cssMode) return
      const { touchEventsData: n, touches: u } = e
      n.velocities.length === 0 &&
        n.velocities.push({
          position: u[e.isHorizontal() ? 'startX' : 'startY'],
          time: n.touchStartTime,
        }),
        n.velocities.push({
          position: u[e.isHorizontal() ? 'currentX' : 'currentY'],
          time: ee(),
        })
    }
    function c(n) {
      let { currentPos: u } = n
      if (e.params.cssMode) return
      const {
          params: o,
          wrapperEl: l,
          rtlTranslate: d,
          snapGrid: p,
          touchEventsData: h,
        } = e,
        w = ee() - h.touchStartTime
      if (u < -e.minTranslate()) {
        e.slideTo(e.activeIndex)
        return
      }
      if (u > -e.maxTranslate()) {
        e.slides.length < p.length
          ? e.slideTo(p.length - 1)
          : e.slideTo(e.slides.length - 1)
        return
      }
      if (o.freeMode.momentum) {
        if (h.velocities.length > 1) {
          const z = h.velocities.pop(),
            T = h.velocities.pop(),
            P = z.position - T.position,
            I = z.time - T.time
          ;(e.velocity = P / I),
            (e.velocity /= 2),
            Math.abs(e.velocity) < o.freeMode.minimumVelocity &&
              (e.velocity = 0),
            (I > 150 || ee() - z.time > 300) && (e.velocity = 0)
        } else e.velocity = 0
        ;(e.velocity *= o.freeMode.momentumVelocityRatio),
          (h.velocities.length = 0)
        let y = 1e3 * o.freeMode.momentumRatio
        const v = e.velocity * y
        let m = e.translate + v
        d && (m = -m)
        let b = !1,
          S
        const A = Math.abs(e.velocity) * 20 * o.freeMode.momentumBounceRatio
        let O
        if (m < e.maxTranslate())
          o.freeMode.momentumBounce
            ? (m + e.maxTranslate() < -A && (m = e.maxTranslate() - A),
              (S = e.maxTranslate()),
              (b = !0),
              (h.allowMomentumBounce = !0))
            : (m = e.maxTranslate()),
            o.loop && o.centeredSlides && (O = !0)
        else if (m > e.minTranslate())
          o.freeMode.momentumBounce
            ? (m - e.minTranslate() > A && (m = e.minTranslate() + A),
              (S = e.minTranslate()),
              (b = !0),
              (h.allowMomentumBounce = !0))
            : (m = e.minTranslate()),
            o.loop && o.centeredSlides && (O = !0)
        else if (o.freeMode.sticky) {
          let z
          for (let T = 0; T < p.length; T += 1)
            if (p[T] > -m) {
              z = T
              break
            }
          Math.abs(p[z] - m) < Math.abs(p[z - 1] - m) ||
          e.swipeDirection === 'next'
            ? (m = p[z])
            : (m = p[z - 1]),
            (m = -m)
        }
        if (
          (O &&
            r('transitionEnd', () => {
              e.loopFix()
            }),
          e.velocity !== 0)
        ) {
          if (
            (d
              ? (y = Math.abs((-m - e.translate) / e.velocity))
              : (y = Math.abs((m - e.translate) / e.velocity)),
            o.freeMode.sticky)
          ) {
            const z = Math.abs((d ? -m : m) - e.translate),
              T = e.slidesSizesGrid[e.activeIndex]
            z < T
              ? (y = o.speed)
              : z < 2 * T
              ? (y = o.speed * 1.5)
              : (y = o.speed * 2.5)
          }
        } else if (o.freeMode.sticky) {
          e.slideToClosest()
          return
        }
        o.freeMode.momentumBounce && b
          ? (e.updateProgress(S),
            e.setTransition(y),
            e.setTranslate(m),
            e.transitionStart(!0, e.swipeDirection),
            (e.animating = !0),
            he(l, () => {
              !e ||
                e.destroyed ||
                !h.allowMomentumBounce ||
                (i('momentumBounce'),
                e.setTransition(o.speed),
                setTimeout(() => {
                  e.setTranslate(S),
                    he(l, () => {
                      !e || e.destroyed || e.transitionEnd()
                    })
                }, 0))
            }))
          : e.velocity
          ? (i('_freeModeNoMomentumRelease'),
            e.updateProgress(m),
            e.setTransition(y),
            e.setTranslate(m),
            e.transitionStart(!0, e.swipeDirection),
            e.animating ||
              ((e.animating = !0),
              he(l, () => {
                !e || e.destroyed || e.transitionEnd()
              })))
          : e.updateProgress(m),
          e.updateActiveIndex(),
          e.updateSlidesClasses()
      } else if (o.freeMode.sticky) {
        e.slideToClosest()
        return
      } else o.freeMode && i('_freeModeNoMomentumRelease')
      ;(!o.freeMode.momentum || w >= o.longSwipesMs) &&
        (i('_freeModeStaticRelease'),
        e.updateProgress(),
        e.updateActiveIndex(),
        e.updateSlidesClasses())
    }
    Object.assign(e, {
      freeMode: { onTouchStart: a, onTouchMove: f, onTouchEnd: c },
    })
  }
  function Fs(s) {
    let { swiper: e, extendParams: t, on: i } = s
    t({ grid: { rows: 1, fill: 'column' } })
    let r, a, f, c
    const n = () => {
        let g = e.params.spaceBetween
        return (
          typeof g == 'string' && g.indexOf('%') >= 0
            ? (g = (parseFloat(g.replace('%', '')) / 100) * e.size)
            : typeof g == 'string' && (g = parseFloat(g)),
          g
        )
      },
      u = (g) => {
        const { slidesPerView: w } = e.params,
          { rows: y, fill: v } = e.params.grid,
          m =
            e.virtual && e.params.virtual.enabled
              ? e.virtual.slides.length
              : g.length
        ;(f = Math.floor(m / y)),
          Math.floor(m / y) === m / y ? (r = m) : (r = Math.ceil(m / y) * y),
          w !== 'auto' && v === 'row' && (r = Math.max(r, w * y)),
          (a = r / y)
      },
      o = () => {
        e.slides &&
          e.slides.forEach((g) => {
            g.swiperSlideGridSet &&
              ((g.style.height = ''),
              (g.style[e.getDirectionLabel('margin-top')] = ''))
          })
      },
      l = (g, w, y) => {
        const { slidesPerGroup: v } = e.params,
          m = n(),
          { rows: b, fill: S } = e.params.grid,
          A =
            e.virtual && e.params.virtual.enabled
              ? e.virtual.slides.length
              : y.length
        let O, z, T
        if (S === 'row' && v > 1) {
          const P = Math.floor(g / (v * b)),
            I = g - b * v * P,
            C = P === 0 ? v : Math.min(Math.ceil((A - P * b * v) / b), v)
          ;(T = Math.floor(I / C)),
            (z = I - T * C + P * v),
            (O = z + (T * r) / b),
            (w.style.order = O)
        } else
          S === 'column'
            ? ((z = Math.floor(g / b)),
              (T = g - z * b),
              (z > f || (z === f && T === b - 1)) &&
                ((T += 1), T >= b && ((T = 0), (z += 1))))
            : ((T = Math.floor(g / a)), (z = g - T * a))
        ;(w.row = T),
          (w.column = z),
          (w.style.height = `calc((100% - ${(b - 1) * m}px) / ${b})`),
          (w.style[e.getDirectionLabel('margin-top')] =
            T !== 0 ? m && `${m}px` : ''),
          (w.swiperSlideGridSet = !0)
      },
      d = (g, w) => {
        const { centeredSlides: y, roundLengths: v } = e.params,
          m = n(),
          { rows: b } = e.params.grid
        if (
          ((e.virtualSize = (g + m) * r),
          (e.virtualSize = Math.ceil(e.virtualSize / b) - m),
          e.params.cssMode ||
            (e.wrapperEl.style[e.getDirectionLabel('width')] = `${
              e.virtualSize + m
            }px`),
          y)
        ) {
          const S = []
          for (let A = 0; A < w.length; A += 1) {
            let O = w[A]
            v && (O = Math.floor(O)), w[A] < e.virtualSize + w[0] && S.push(O)
          }
          w.splice(0, w.length), w.push(...S)
        }
      },
      p = () => {
        c = e.params.grid && e.params.grid.rows > 1
      },
      h = () => {
        const { params: g, el: w } = e,
          y = g.grid && g.grid.rows > 1
        c && !y
          ? (w.classList.remove(
              `${g.containerModifierClass}grid`,
              `${g.containerModifierClass}grid-column`
            ),
            (f = 1),
            e.emitContainerClasses())
          : !c &&
            y &&
            (w.classList.add(`${g.containerModifierClass}grid`),
            g.grid.fill === 'column' &&
              w.classList.add(`${g.containerModifierClass}grid-column`),
            e.emitContainerClasses()),
          (c = y)
      }
    i('init', p),
      i('update', h),
      (e.grid = {
        initSlides: u,
        unsetSlides: o,
        updateSlide: l,
        updateWrapperSize: d,
      })
  }
  function Ns(s) {
    const e = this,
      { params: t, slidesEl: i } = e
    t.loop && e.loopDestroy()
    const r = (a) => {
      if (typeof a == 'string') {
        const f = document.createElement('div')
        ;(f.innerHTML = a), i.append(f.children[0]), (f.innerHTML = '')
      } else i.append(a)
    }
    if (typeof s == 'object' && 'length' in s)
      for (let a = 0; a < s.length; a += 1) s[a] && r(s[a])
    else r(s)
    e.recalcSlides(),
      t.loop && e.loopCreate(),
      (!t.observer || e.isElement) && e.update()
  }
  function Rs(s) {
    const e = this,
      { params: t, activeIndex: i, slidesEl: r } = e
    t.loop && e.loopDestroy()
    let a = i + 1
    const f = (c) => {
      if (typeof c == 'string') {
        const n = document.createElement('div')
        ;(n.innerHTML = c), r.prepend(n.children[0]), (n.innerHTML = '')
      } else r.prepend(c)
    }
    if (typeof s == 'object' && 'length' in s) {
      for (let c = 0; c < s.length; c += 1) s[c] && f(s[c])
      a = i + s.length
    } else f(s)
    e.recalcSlides(),
      t.loop && e.loopCreate(),
      (!t.observer || e.isElement) && e.update(),
      e.slideTo(a, 0, !1)
  }
  function Ys(s, e) {
    const t = this,
      { params: i, activeIndex: r, slidesEl: a } = t
    let f = r
    i.loop && ((f -= t.loopedSlides), t.loopDestroy(), t.recalcSlides())
    const c = t.slides.length
    if (s <= 0) {
      t.prependSlide(e)
      return
    }
    if (s >= c) {
      t.appendSlide(e)
      return
    }
    let n = f > s ? f + 1 : f
    const u = []
    for (let o = c - 1; o >= s; o -= 1) {
      const l = t.slides[o]
      l.remove(), u.unshift(l)
    }
    if (typeof e == 'object' && 'length' in e) {
      for (let o = 0; o < e.length; o += 1) e[o] && a.append(e[o])
      n = f > s ? f + e.length : f
    } else a.append(e)
    for (let o = 0; o < u.length; o += 1) a.append(u[o])
    t.recalcSlides(),
      i.loop && t.loopCreate(),
      (!i.observer || t.isElement) && t.update(),
      i.loop ? t.slideTo(n + t.loopedSlides, 0, !1) : t.slideTo(n, 0, !1)
  }
  function Xs(s) {
    const e = this,
      { params: t, activeIndex: i } = e
    let r = i
    t.loop && ((r -= e.loopedSlides), e.loopDestroy())
    let a = r,
      f
    if (typeof s == 'object' && 'length' in s) {
      for (let c = 0; c < s.length; c += 1)
        (f = s[c]), e.slides[f] && e.slides[f].remove(), f < a && (a -= 1)
      a = Math.max(a, 0)
    } else (f = s), e.slides[f] && e.slides[f].remove(), f < a && (a -= 1), (a = Math.max(a, 0))
    e.recalcSlides(),
      t.loop && e.loopCreate(),
      (!t.observer || e.isElement) && e.update(),
      t.loop ? e.slideTo(a + e.loopedSlides, 0, !1) : e.slideTo(a, 0, !1)
  }
  function qs() {
    const s = this,
      e = []
    for (let t = 0; t < s.slides.length; t += 1) e.push(t)
    s.removeSlide(e)
  }
  function Ws(s) {
    let { swiper: e } = s
    Object.assign(e, {
      appendSlide: Ns.bind(e),
      prependSlide: Rs.bind(e),
      addSlide: Ys.bind(e),
      removeSlide: Xs.bind(e),
      removeAllSlides: qs.bind(e),
    })
  }
  function de(s) {
    const {
      effect: e,
      swiper: t,
      on: i,
      setTranslate: r,
      setTransition: a,
      overwriteParams: f,
      perspective: c,
      recreateShadows: n,
      getEffectParams: u,
    } = s
    i('beforeInit', () => {
      if (t.params.effect !== e) return
      t.classNames.push(`${t.params.containerModifierClass}${e}`),
        c && c() && t.classNames.push(`${t.params.containerModifierClass}3d`)
      const l = f ? f() : {}
      Object.assign(t.params, l), Object.assign(t.originalParams, l)
    }),
      i('setTranslate', () => {
        t.params.effect === e && r()
      }),
      i('setTransition', (l, d) => {
        t.params.effect === e && a(d)
      }),
      i('transitionEnd', () => {
        if (t.params.effect === e && n) {
          if (!u || !u().slideShadows) return
          t.slides.forEach((l) => {
            l.querySelectorAll(
              '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left'
            ).forEach((d) => d.remove())
          }),
            n()
        }
      })
    let o
    i('virtualUpdate', () => {
      t.params.effect === e &&
        (t.slides.length || (o = !0),
        requestAnimationFrame(() => {
          o && t.slides && t.slides.length && (r(), (o = !1))
        }))
    })
  }
  function ge(s, e) {
    const t = ne(e)
    return (
      t !== e &&
        ((t.style.backfaceVisibility = 'hidden'),
        (t.style['-webkit-backface-visibility'] = 'hidden')),
      t
    )
  }
  function xe(s) {
    let { swiper: e, duration: t, transformElements: i, allSlides: r } = s
    const { activeIndex: a } = e,
      f = (c) =>
        c.parentElement
          ? c.parentElement
          : e.slides.filter(
              (u) => u.shadowRoot && u.shadowRoot === c.parentNode
            )[0]
    if (e.params.virtualTranslate && t !== 0) {
      let c = !1,
        n
      r
        ? (n = i)
        : (n = i.filter((u) => {
            const o = u.classList.contains('swiper-slide-transform') ? f(u) : u
            return e.getSlideIndex(o) === a
          })),
        n.forEach((u) => {
          he(u, () => {
            if (c || !e || e.destroyed) return
            ;(c = !0), (e.animating = !1)
            const o = new window.CustomEvent('transitionend', {
              bubbles: !0,
              cancelable: !0,
            })
            e.wrapperEl.dispatchEvent(o)
          })
        })
    }
  }
  function _s(s) {
    let { swiper: e, extendParams: t, on: i } = s
    t({ fadeEffect: { crossFade: !1 } }),
      de({
        effect: 'fade',
        swiper: e,
        on: i,
        setTranslate: () => {
          const { slides: f } = e,
            c = e.params.fadeEffect
          for (let n = 0; n < f.length; n += 1) {
            const u = e.slides[n]
            let l = -u.swiperSlideOffset
            e.params.virtualTranslate || (l -= e.translate)
            let d = 0
            e.isHorizontal() || ((d = l), (l = 0))
            const p = e.params.fadeEffect.crossFade
                ? Math.max(1 - Math.abs(u.progress), 0)
                : 1 + Math.min(Math.max(u.progress, -1), 0),
              h = ge(c, u)
            ;(h.style.opacity = p),
              (h.style.transform = `translate3d(${l}px, ${d}px, 0px)`)
          }
        },
        setTransition: (f) => {
          const c = e.slides.map((n) => ne(n))
          c.forEach((n) => {
            n.style.transitionDuration = `${f}ms`
          }),
            xe({ swiper: e, duration: f, transformElements: c, allSlides: !0 })
        },
        overwriteParams: () => ({
          slidesPerView: 1,
          slidesPerGroup: 1,
          watchSlidesProgress: !0,
          spaceBetween: 0,
          virtualTranslate: !e.params.cssMode,
        }),
      })
  }
  function js(s) {
    let { swiper: e, extendParams: t, on: i } = s
    t({
      cubeEffect: {
        slideShadows: !0,
        shadow: !0,
        shadowOffset: 20,
        shadowScale: 0.94,
      },
    })
    const r = (n, u, o) => {
      let l = o
          ? n.querySelector('.swiper-slide-shadow-left')
          : n.querySelector('.swiper-slide-shadow-top'),
        d = o
          ? n.querySelector('.swiper-slide-shadow-right')
          : n.querySelector('.swiper-slide-shadow-bottom')
      l ||
        ((l = J(
          'div',
          `swiper-slide-shadow-cube swiper-slide-shadow-${
            o ? 'left' : 'top'
          }`.split(' ')
        )),
        n.append(l)),
        d ||
          ((d = J(
            'div',
            `swiper-slide-shadow-cube swiper-slide-shadow-${
              o ? 'right' : 'bottom'
            }`.split(' ')
          )),
          n.append(d)),
        l && (l.style.opacity = Math.max(-u, 0)),
        d && (d.style.opacity = Math.max(u, 0))
    }
    de({
      effect: 'cube',
      swiper: e,
      on: i,
      setTranslate: () => {
        const {
            el: n,
            wrapperEl: u,
            slides: o,
            width: l,
            height: d,
            rtlTranslate: p,
            size: h,
            browser: g,
          } = e,
          w = Se(e),
          y = e.params.cubeEffect,
          v = e.isHorizontal(),
          m = e.virtual && e.params.virtual.enabled
        let b = 0,
          S
        y.shadow &&
          (v
            ? ((S = e.wrapperEl.querySelector('.swiper-cube-shadow')),
              S ||
                ((S = J('div', 'swiper-cube-shadow')), e.wrapperEl.append(S)),
              (S.style.height = `${l}px`))
            : ((S = n.querySelector('.swiper-cube-shadow')),
              S || ((S = J('div', 'swiper-cube-shadow')), n.append(S))))
        for (let O = 0; O < o.length; O += 1) {
          const z = o[O]
          let T = O
          m && (T = parseInt(z.getAttribute('data-swiper-slide-index'), 10))
          let P = T * 90,
            I = Math.floor(P / 360)
          p && ((P = -P), (I = Math.floor(-P / 360)))
          const C = Math.max(Math.min(z.progress, 1), -1)
          let E = 0,
            x = 0,
            D = 0
          T % 4 == 0
            ? ((E = -I * 4 * h), (D = 0))
            : (T - 1) % 4 == 0
            ? ((E = 0), (D = -I * 4 * h))
            : (T - 2) % 4 == 0
            ? ((E = h + I * 4 * h), (D = h))
            : (T - 3) % 4 == 0 && ((E = -h), (D = 3 * h + h * 4 * I)),
            p && (E = -E),
            v || ((x = E), (E = 0))
          const G = `rotateX(${w(v ? 0 : -P)}deg) rotateY(${w(
            v ? P : 0
          )}deg) translate3d(${E}px, ${x}px, ${D}px)`
          C <= 1 &&
            C > -1 &&
            ((b = T * 90 + C * 90), p && (b = -T * 90 - C * 90)),
            (z.style.transform = G),
            y.slideShadows && r(z, C, v)
        }
        if (
          ((u.style.transformOrigin = `50% 50% -${h / 2}px`),
          (u.style['-webkit-transform-origin'] = `50% 50% -${h / 2}px`),
          y.shadow)
        )
          if (v)
            S.style.transform = `translate3d(0px, ${
              l / 2 + y.shadowOffset
            }px, ${-l / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${
              y.shadowScale
            })`
          else {
            const O = Math.abs(b) - Math.floor(Math.abs(b) / 90) * 90,
              z =
                1.5 -
                (Math.sin((O * 2 * Math.PI) / 360) / 2 +
                  Math.cos((O * 2 * Math.PI) / 360) / 2),
              T = y.shadowScale,
              P = y.shadowScale / z,
              I = y.shadowOffset
            S.style.transform = `scale3d(${T}, 1, ${P}) translate3d(0px, ${
              d / 2 + I
            }px, ${-d / 2 / P}px) rotateX(-89.99deg)`
          }
        const A =
          (g.isSafari || g.isWebView) && g.needPerspectiveFix ? -h / 2 : 0
        ;(u.style.transform = `translate3d(0px,0,${A}px) rotateX(${w(
          e.isHorizontal() ? 0 : b
        )}deg) rotateY(${w(e.isHorizontal() ? -b : 0)}deg)`),
          u.style.setProperty('--swiper-cube-translate-z', `${A}px`)
      },
      setTransition: (n) => {
        const { el: u, slides: o } = e
        if (
          (o.forEach((l) => {
            ;(l.style.transitionDuration = `${n}ms`),
              l
                .querySelectorAll(
                  '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left'
                )
                .forEach((d) => {
                  d.style.transitionDuration = `${n}ms`
                })
          }),
          e.params.cubeEffect.shadow && !e.isHorizontal())
        ) {
          const l = u.querySelector('.swiper-cube-shadow')
          l && (l.style.transitionDuration = `${n}ms`)
        }
      },
      recreateShadows: () => {
        const n = e.isHorizontal()
        e.slides.forEach((u) => {
          const o = Math.max(Math.min(u.progress, 1), -1)
          r(u, o, n)
        })
      },
      getEffectParams: () => e.params.cubeEffect,
      perspective: () => !0,
      overwriteParams: () => ({
        slidesPerView: 1,
        slidesPerGroup: 1,
        watchSlidesProgress: !0,
        resistanceRatio: 0,
        spaceBetween: 0,
        centeredSlides: !1,
        virtualTranslate: !0,
      }),
    })
  }
  function ce(s, e, t) {
    const i = `swiper-slide-shadow${t ? `-${t}` : ''}${
        s ? ` swiper-slide-shadow-${s}` : ''
      }`,
      r = ne(e)
    let a = r.querySelector(`.${i.split(' ').join('.')}`)
    return a || ((a = J('div', i.split(' '))), r.append(a)), a
  }
  function Us(s) {
    let { swiper: e, extendParams: t, on: i } = s
    t({ flipEffect: { slideShadows: !0, limitRotation: !0 } })
    const r = (n, u) => {
      let o = e.isHorizontal()
          ? n.querySelector('.swiper-slide-shadow-left')
          : n.querySelector('.swiper-slide-shadow-top'),
        l = e.isHorizontal()
          ? n.querySelector('.swiper-slide-shadow-right')
          : n.querySelector('.swiper-slide-shadow-bottom')
      o || (o = ce('flip', n, e.isHorizontal() ? 'left' : 'top')),
        l || (l = ce('flip', n, e.isHorizontal() ? 'right' : 'bottom')),
        o && (o.style.opacity = Math.max(-u, 0)),
        l && (l.style.opacity = Math.max(u, 0))
    }
    de({
      effect: 'flip',
      swiper: e,
      on: i,
      setTranslate: () => {
        const { slides: n, rtlTranslate: u } = e,
          o = e.params.flipEffect,
          l = Se(e)
        for (let d = 0; d < n.length; d += 1) {
          const p = n[d]
          let h = p.progress
          e.params.flipEffect.limitRotation &&
            (h = Math.max(Math.min(p.progress, 1), -1))
          const g = p.swiperSlideOffset
          let y = -180 * h,
            v = 0,
            m = e.params.cssMode ? -g - e.translate : -g,
            b = 0
          e.isHorizontal()
            ? u && (y = -y)
            : ((b = m), (m = 0), (v = -y), (y = 0)),
            (p.style.zIndex = -Math.abs(Math.round(h)) + n.length),
            o.slideShadows && r(p, h)
          const S = `translate3d(${m}px, ${b}px, 0px) rotateX(${l(
              v
            )}deg) rotateY(${l(y)}deg)`,
            A = ge(o, p)
          A.style.transform = S
        }
      },
      setTransition: (n) => {
        const u = e.slides.map((o) => ne(o))
        u.forEach((o) => {
          ;(o.style.transitionDuration = `${n}ms`),
            o
              .querySelectorAll(
                '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left'
              )
              .forEach((l) => {
                l.style.transitionDuration = `${n}ms`
              })
        }),
          xe({ swiper: e, duration: n, transformElements: u })
      },
      recreateShadows: () => {
        e.params.flipEffect,
          e.slides.forEach((n) => {
            let u = n.progress
            e.params.flipEffect.limitRotation &&
              (u = Math.max(Math.min(n.progress, 1), -1)),
              r(n, u)
          })
      },
      getEffectParams: () => e.params.flipEffect,
      perspective: () => !0,
      overwriteParams: () => ({
        slidesPerView: 1,
        slidesPerGroup: 1,
        watchSlidesProgress: !0,
        spaceBetween: 0,
        virtualTranslate: !e.params.cssMode,
      }),
    })
  }
  function Ks(s) {
    let { swiper: e, extendParams: t, on: i } = s
    t({
      coverflowEffect: {
        rotate: 50,
        stretch: 0,
        depth: 100,
        scale: 1,
        modifier: 1,
        slideShadows: !0,
      },
    }),
      de({
        effect: 'coverflow',
        swiper: e,
        on: i,
        setTranslate: () => {
          const { width: f, height: c, slides: n, slidesSizesGrid: u } = e,
            o = e.params.coverflowEffect,
            l = e.isHorizontal(),
            d = e.translate,
            p = l ? -d + f / 2 : -d + c / 2,
            h = l ? o.rotate : -o.rotate,
            g = o.depth,
            w = Se(e)
          for (let y = 0, v = n.length; y < v; y += 1) {
            const m = n[y],
              b = u[y],
              S = m.swiperSlideOffset,
              A = (p - S - b / 2) / b,
              O =
                typeof o.modifier == 'function' ? o.modifier(A) : A * o.modifier
            let z = l ? h * O : 0,
              T = l ? 0 : h * O,
              P = -g * Math.abs(O),
              I = o.stretch
            typeof I == 'string' &&
              I.indexOf('%') !== -1 &&
              (I = (parseFloat(o.stretch) / 100) * b)
            let C = l ? 0 : I * O,
              E = l ? I * O : 0,
              x = 1 - (1 - o.scale) * Math.abs(O)
            Math.abs(E) < 0.001 && (E = 0),
              Math.abs(C) < 0.001 && (C = 0),
              Math.abs(P) < 0.001 && (P = 0),
              Math.abs(z) < 0.001 && (z = 0),
              Math.abs(T) < 0.001 && (T = 0),
              Math.abs(x) < 0.001 && (x = 0)
            const D = `translate3d(${E}px,${C}px,${P}px)  rotateX(${w(
                T
              )}deg) rotateY(${w(z)}deg) scale(${x})`,
              G = ge(o, m)
            if (
              ((G.style.transform = D),
              (m.style.zIndex = -Math.abs(Math.round(O)) + 1),
              o.slideShadows)
            ) {
              let M = l
                  ? m.querySelector('.swiper-slide-shadow-left')
                  : m.querySelector('.swiper-slide-shadow-top'),
                L = l
                  ? m.querySelector('.swiper-slide-shadow-right')
                  : m.querySelector('.swiper-slide-shadow-bottom')
              M || (M = ce('coverflow', m, l ? 'left' : 'top')),
                L || (L = ce('coverflow', m, l ? 'right' : 'bottom')),
                M && (M.style.opacity = O > 0 ? O : 0),
                L && (L.style.opacity = -O > 0 ? -O : 0)
            }
          }
        },
        setTransition: (f) => {
          e.slides
            .map((n) => ne(n))
            .forEach((n) => {
              ;(n.style.transitionDuration = `${f}ms`),
                n
                  .querySelectorAll(
                    '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left'
                  )
                  .forEach((u) => {
                    u.style.transitionDuration = `${f}ms`
                  })
            })
        },
        perspective: () => !0,
        overwriteParams: () => ({ watchSlidesProgress: !0 }),
      })
  }
  function Zs(s) {
    let { swiper: e, extendParams: t, on: i } = s
    t({
      creativeEffect: {
        limitProgress: 1,
        shadowPerProgress: !1,
        progressMultiplier: 1,
        perspective: !0,
        prev: { translate: [0, 0, 0], rotate: [0, 0, 0], opacity: 1, scale: 1 },
        next: { translate: [0, 0, 0], rotate: [0, 0, 0], opacity: 1, scale: 1 },
      },
    })
    const r = (c) => (typeof c == 'string' ? c : `${c}px`)
    de({
      effect: 'creative',
      swiper: e,
      on: i,
      setTranslate: () => {
        const { slides: c, wrapperEl: n, slidesSizesGrid: u } = e,
          o = e.params.creativeEffect,
          { progressMultiplier: l } = o,
          d = e.params.centeredSlides,
          p = Se(e)
        if (d) {
          const h = u[0] / 2 - e.params.slidesOffsetBefore || 0
          n.style.transform = `translateX(calc(50% - ${h}px))`
        }
        for (let h = 0; h < c.length; h += 1) {
          const g = c[h],
            w = g.progress,
            y = Math.min(
              Math.max(g.progress, -o.limitProgress),
              o.limitProgress
            )
          let v = y
          d ||
            (v = Math.min(
              Math.max(g.originalProgress, -o.limitProgress),
              o.limitProgress
            ))
          const m = g.swiperSlideOffset,
            b = [e.params.cssMode ? -m - e.translate : -m, 0, 0],
            S = [0, 0, 0]
          let A = !1
          e.isHorizontal() || ((b[1] = b[0]), (b[0] = 0))
          let O = {
            translate: [0, 0, 0],
            rotate: [0, 0, 0],
            scale: 1,
            opacity: 1,
          }
          y < 0 ? ((O = o.next), (A = !0)) : y > 0 && ((O = o.prev), (A = !0)),
            b.forEach((x, D) => {
              b[D] = `calc(${x}px + (${r(O.translate[D])} * ${Math.abs(
                y * l
              )}))`
            }),
            S.forEach((x, D) => {
              let G = O.rotate[D] * Math.abs(y * l)
              S[D] = G
            }),
            (g.style.zIndex = -Math.abs(Math.round(w)) + c.length)
          const z = b.join(', '),
            T = `rotateX(${p(S[0])}deg) rotateY(${p(S[1])}deg) rotateZ(${p(
              S[2]
            )}deg)`,
            P =
              v < 0
                ? `scale(${1 + (1 - O.scale) * v * l})`
                : `scale(${1 - (1 - O.scale) * v * l})`,
            I =
              v < 0 ? 1 + (1 - O.opacity) * v * l : 1 - (1 - O.opacity) * v * l,
            C = `translate3d(${z}) ${T} ${P}`
          if ((A && O.shadow) || !A) {
            let x = g.querySelector('.swiper-slide-shadow')
            if ((!x && O.shadow && (x = ce('creative', g)), x)) {
              const D = o.shadowPerProgress ? y * (1 / o.limitProgress) : y
              x.style.opacity = Math.min(Math.max(Math.abs(D), 0), 1)
            }
          }
          const E = ge(o, g)
          ;(E.style.transform = C),
            (E.style.opacity = I),
            O.origin && (E.style.transformOrigin = O.origin)
        }
      },
      setTransition: (c) => {
        const n = e.slides.map((u) => ne(u))
        n.forEach((u) => {
          ;(u.style.transitionDuration = `${c}ms`),
            u.querySelectorAll('.swiper-slide-shadow').forEach((o) => {
              o.style.transitionDuration = `${c}ms`
            })
        }),
          xe({ swiper: e, duration: c, transformElements: n, allSlides: !0 })
      },
      perspective: () => e.params.creativeEffect.perspective,
      overwriteParams: () => ({
        watchSlidesProgress: !0,
        virtualTranslate: !e.params.cssMode,
      }),
    })
  }
  function Qs(s) {
    let { swiper: e, extendParams: t, on: i } = s
    t({
      cardsEffect: {
        slideShadows: !0,
        rotate: !0,
        perSlideRotate: 2,
        perSlideOffset: 8,
      },
    }),
      de({
        effect: 'cards',
        swiper: e,
        on: i,
        setTranslate: () => {
          const { slides: f, activeIndex: c, rtlTranslate: n } = e,
            u = e.params.cardsEffect,
            { startTranslate: o, isTouched: l } = e.touchEventsData,
            d = n ? -e.translate : e.translate
          for (let p = 0; p < f.length; p += 1) {
            const h = f[p],
              g = h.progress,
              w = Math.min(Math.max(g, -4), 4)
            let y = h.swiperSlideOffset
            e.params.centeredSlides &&
              !e.params.cssMode &&
              (e.wrapperEl.style.transform = `translateX(${e.minTranslate()}px)`),
              e.params.centeredSlides &&
                e.params.cssMode &&
                (y -= f[0].swiperSlideOffset)
            let v = e.params.cssMode ? -y - e.translate : -y,
              m = 0
            const b = -100 * Math.abs(w)
            let S = 1,
              A = -u.perSlideRotate * w,
              O = u.perSlideOffset - Math.abs(w) * 0.75
            const z =
                e.virtual && e.params.virtual.enabled ? e.virtual.from + p : p,
              T =
                (z === c || z === c - 1) &&
                w > 0 &&
                w < 1 &&
                (l || e.params.cssMode) &&
                d < o,
              P =
                (z === c || z === c + 1) &&
                w < 0 &&
                w > -1 &&
                (l || e.params.cssMode) &&
                d > o
            if (T || P) {
              const x = (1 - Math.abs((Math.abs(w) - 0.5) / 0.5)) ** 0.5
              ;(A += -28 * w * x),
                (S += -0.5 * x),
                (O += 96 * x),
                (m = `${-25 * x * Math.abs(w)}%`)
            }
            if (
              (w < 0
                ? (v = `calc(${v}px ${n ? '-' : '+'} (${O * Math.abs(w)}%))`)
                : w > 0
                ? (v = `calc(${v}px ${n ? '-' : '+'} (-${O * Math.abs(w)}%))`)
                : (v = `${v}px`),
              !e.isHorizontal())
            ) {
              const x = m
              ;(m = v), (v = x)
            }
            const I = w < 0 ? `${1 + (1 - S) * w}` : `${1 - (1 - S) * w}`,
              C = `
        translate3d(${v}, ${m}, ${b}px)
        rotateZ(${u.rotate ? (n ? -A : A) : 0}deg)
        scale(${I})
      `
            if (u.slideShadows) {
              let x = h.querySelector('.swiper-slide-shadow')
              x || (x = ce('cards', h)),
                x &&
                  (x.style.opacity = Math.min(
                    Math.max((Math.abs(w) - 0.5) / 0.5, 0),
                    1
                  ))
            }
            h.style.zIndex = -Math.abs(Math.round(g)) + f.length
            const E = ge(u, h)
            E.style.transform = C
          }
        },
        setTransition: (f) => {
          const c = e.slides.map((n) => ne(n))
          c.forEach((n) => {
            ;(n.style.transitionDuration = `${f}ms`),
              n.querySelectorAll('.swiper-slide-shadow').forEach((u) => {
                u.style.transitionDuration = `${f}ms`
              })
          }),
            xe({ swiper: e, duration: f, transformElements: c })
        },
        perspective: () => !0,
        overwriteParams: () => ({
          watchSlidesProgress: !0,
          virtualTranslate: !e.params.cssMode,
        }),
      })
  }
  const Js = [
    Ms,
    Cs,
    Ps,
    Ls,
    Is,
    As,
    zs,
    Ds,
    Os,
    $s,
    ks,
    Vs,
    Gs,
    Bs,
    Hs,
    Fs,
    Ws,
    _s,
    js,
    Us,
    Ks,
    Zs,
    Qs,
  ]
  K.use(Js)
  var Te = function () {
      return (
        (Te =
          Object.assign ||
          function (s) {
            for (var e, t = 1, i = arguments.length; t < i; t++)
              for (var r in (e = arguments[t]))
                Object.prototype.hasOwnProperty.call(e, r) && (s[r] = e[r])
            return s
          }),
        Te.apply(this, arguments)
      )
    },
    ei = (function () {
      function s(e, t, i) {
        var r = this
        ;(this.endVal = t),
          (this.options = i),
          (this.version = '2.8.0'),
          (this.defaults = {
            startVal: 0,
            decimalPlaces: 0,
            duration: 2,
            useEasing: !0,
            useGrouping: !0,
            useIndianSeparators: !1,
            smartEasingThreshold: 999,
            smartEasingAmount: 333,
            separator: ',',
            decimal: '.',
            prefix: '',
            suffix: '',
            enableScrollSpy: !1,
            scrollSpyDelay: 200,
            scrollSpyOnce: !1,
          }),
          (this.finalEndVal = null),
          (this.useEasing = !0),
          (this.countDown = !1),
          (this.error = ''),
          (this.startVal = 0),
          (this.paused = !0),
          (this.once = !1),
          (this.count = function (a) {
            r.startTime || (r.startTime = a)
            var f = a - r.startTime
            ;(r.remaining = r.duration - f),
              r.useEasing
                ? r.countDown
                  ? (r.frameVal =
                      r.startVal -
                      r.easingFn(f, 0, r.startVal - r.endVal, r.duration))
                  : (r.frameVal = r.easingFn(
                      f,
                      r.startVal,
                      r.endVal - r.startVal,
                      r.duration
                    ))
                : (r.frameVal =
                    r.startVal + (r.endVal - r.startVal) * (f / r.duration))
            var c = r.countDown ? r.frameVal < r.endVal : r.frameVal > r.endVal
            ;(r.frameVal = c ? r.endVal : r.frameVal),
              (r.frameVal = Number(
                r.frameVal.toFixed(r.options.decimalPlaces)
              )),
              r.printValue(r.frameVal),
              f < r.duration
                ? (r.rAF = requestAnimationFrame(r.count))
                : r.finalEndVal !== null
                ? r.update(r.finalEndVal)
                : r.options.onCompleteCallback && r.options.onCompleteCallback()
          }),
          (this.formatNumber = function (a) {
            var f,
              c,
              n,
              u,
              o = a < 0 ? '-' : ''
            f = Math.abs(a).toFixed(r.options.decimalPlaces)
            var l = (f += '').split('.')
            if (
              ((c = l[0]),
              (n = l.length > 1 ? r.options.decimal + l[1] : ''),
              r.options.useGrouping)
            ) {
              u = ''
              for (var d = 3, p = 0, h = 0, g = c.length; h < g; ++h)
                r.options.useIndianSeparators && h === 4 && ((d = 2), (p = 1)),
                  h !== 0 && p % d == 0 && (u = r.options.separator + u),
                  p++,
                  (u = c[g - h - 1] + u)
              c = u
            }
            return (
              r.options.numerals &&
                r.options.numerals.length &&
                ((c = c.replace(/[0-9]/g, function (w) {
                  return r.options.numerals[+w]
                })),
                (n = n.replace(/[0-9]/g, function (w) {
                  return r.options.numerals[+w]
                }))),
              o + r.options.prefix + c + n + r.options.suffix
            )
          }),
          (this.easeOutExpo = function (a, f, c, n) {
            return (c * (1 - Math.pow(2, (-10 * a) / n)) * 1024) / 1023 + f
          }),
          (this.options = Te(Te({}, this.defaults), i)),
          (this.formattingFn = this.options.formattingFn
            ? this.options.formattingFn
            : this.formatNumber),
          (this.easingFn = this.options.easingFn
            ? this.options.easingFn
            : this.easeOutExpo),
          (this.startVal = this.validateValue(this.options.startVal)),
          (this.frameVal = this.startVal),
          (this.endVal = this.validateValue(t)),
          (this.options.decimalPlaces = Math.max(this.options.decimalPlaces)),
          this.resetDuration(),
          (this.options.separator = String(this.options.separator)),
          (this.useEasing = this.options.useEasing),
          this.options.separator === '' && (this.options.useGrouping = !1),
          (this.el = typeof e == 'string' ? document.getElementById(e) : e),
          this.el
            ? this.printValue(this.startVal)
            : (this.error = '[CountUp] target is null or undefined'),
          typeof window != 'undefined' &&
            this.options.enableScrollSpy &&
            (this.error
              ? console.error(this.error, e)
              : ((window.onScrollFns = window.onScrollFns || []),
                window.onScrollFns.push(function () {
                  return r.handleScroll(r)
                }),
                (window.onscroll = function () {
                  window.onScrollFns.forEach(function (a) {
                    return a()
                  })
                }),
                this.handleScroll(this)))
      }
      return (
        (s.prototype.handleScroll = function (e) {
          if (e && window && !e.once) {
            var t = window.innerHeight + window.scrollY,
              i = e.el.getBoundingClientRect(),
              r = i.top + window.pageYOffset,
              a = i.top + i.height + window.pageYOffset
            a < t && a > window.scrollY && e.paused
              ? ((e.paused = !1),
                setTimeout(function () {
                  return e.start()
                }, e.options.scrollSpyDelay),
                e.options.scrollSpyOnce && (e.once = !0))
              : (window.scrollY > a || r > t) && !e.paused && e.reset()
          }
        }),
        (s.prototype.determineDirectionAndSmartEasing = function () {
          var e = this.finalEndVal ? this.finalEndVal : this.endVal
          this.countDown = this.startVal > e
          var t = e - this.startVal
          if (
            Math.abs(t) > this.options.smartEasingThreshold &&
            this.options.useEasing
          ) {
            this.finalEndVal = e
            var i = this.countDown ? 1 : -1
            ;(this.endVal = e + i * this.options.smartEasingAmount),
              (this.duration = this.duration / 2)
          } else (this.endVal = e), (this.finalEndVal = null)
          this.finalEndVal !== null
            ? (this.useEasing = !1)
            : (this.useEasing = this.options.useEasing)
        }),
        (s.prototype.start = function (e) {
          this.error ||
            (this.options.onStartCallback && this.options.onStartCallback(),
            e && (this.options.onCompleteCallback = e),
            this.duration > 0
              ? (this.determineDirectionAndSmartEasing(),
                (this.paused = !1),
                (this.rAF = requestAnimationFrame(this.count)))
              : this.printValue(this.endVal))
        }),
        (s.prototype.pauseResume = function () {
          this.paused
            ? ((this.startTime = null),
              (this.duration = this.remaining),
              (this.startVal = this.frameVal),
              this.determineDirectionAndSmartEasing(),
              (this.rAF = requestAnimationFrame(this.count)))
            : cancelAnimationFrame(this.rAF),
            (this.paused = !this.paused)
        }),
        (s.prototype.reset = function () {
          cancelAnimationFrame(this.rAF),
            (this.paused = !0),
            this.resetDuration(),
            (this.startVal = this.validateValue(this.options.startVal)),
            (this.frameVal = this.startVal),
            this.printValue(this.startVal)
        }),
        (s.prototype.update = function (e) {
          cancelAnimationFrame(this.rAF),
            (this.startTime = null),
            (this.endVal = this.validateValue(e)),
            this.endVal !== this.frameVal &&
              ((this.startVal = this.frameVal),
              this.finalEndVal == null && this.resetDuration(),
              (this.finalEndVal = null),
              this.determineDirectionAndSmartEasing(),
              (this.rAF = requestAnimationFrame(this.count)))
        }),
        (s.prototype.printValue = function (e) {
          var t
          if (this.el) {
            var i = this.formattingFn(e)
            ;(
              (t = this.options.plugin) === null || t === void 0
                ? void 0
                : t.render
            )
              ? this.options.plugin.render(this.el, i)
              : this.el.tagName === 'INPUT'
              ? (this.el.value = i)
              : this.el.tagName === 'text' || this.el.tagName === 'tspan'
              ? (this.el.textContent = i)
              : (this.el.innerHTML = i)
          }
        }),
        (s.prototype.ensureNumber = function (e) {
          return typeof e == 'number' && !isNaN(e)
        }),
        (s.prototype.validateValue = function (e) {
          var t = Number(e)
          return this.ensureNumber(t)
            ? t
            : ((this.error = '[CountUp] invalid start or end value: '.concat(
                e
              )),
              null)
        }),
        (s.prototype.resetDuration = function () {
          ;(this.startTime = null),
            (this.duration = 1e3 * Number(this.options.duration)),
            (this.remaining = this.duration)
        }),
        s
      )
    })()
  function ti() {
    const s = document.querySelector('.header')
    function e() {
      window.scrollY > 0
        ? s.classList.add('fixed')
        : s.classList.remove('fixed')
    }
    e(), window.addEventListener('scroll', e)
  }
  function si() {
    document.querySelectorAll('.swiper-step').length &&
      document.querySelectorAll('.swiper-step').forEach((s) => {
        new K(s, {
          loop: !1,
          slidesPerView: 'auto',
          spaceBetween: 15,
          scrollbar: { el: '.swiper-scrollbar', draggable: !0 },
          breakpoints: { 768: { slidesPerView: 'auto', spaceBetween: 36 } },
        })
      }),
      document.querySelectorAll('.blog-swiper').length &&
        document.querySelectorAll('.blog-swiper').forEach((s) => {
          const e = s.closest('.section-article'),
            t = e == null ? void 0 : e.querySelector('.swiper-prev'),
            i = e == null ? void 0 : e.querySelector('.swiper-next')
          new K(s, {
            loop: !0,
            slidesPerView: 1,
            spaceBetween: 15,
            breakpoints: {
              768: { slidesPerView: 2, spaceBetween: 20 },
              1024: { slidesPerView: 3, spaceBetween: 20 },
              1200: { slidesPerView: 3, spaceBetween: 36 },
            },
            navigation: { nextEl: i, prevEl: t },
          })
        })
  }
  function ii() {
    document.querySelectorAll('.tab-block').length &&
      document.querySelectorAll('.tab-block').forEach((s) => {
        var c, n
        const e = s.querySelectorAll('.tab-link'),
          t = s.querySelectorAll('.tab'),
          i = s.querySelectorAll('.acc-drop'),
          r = s.querySelectorAll('.acc-link')
        let a = 0
        ;(c = e[a]) == null || c.classList.add('active'),
          (n = t[a]) == null || n.classList.add('active')
        function f() {
          i.forEach((u) => {
            u.style.setProperty('--height', u.scrollHeight + 'px')
          })
        }
        f(),
          window.addEventListener('resize', f),
          e.forEach((u, o) => {
            u.addEventListener('click', (l) => {
              var d, p
              l.preventDefault(),
                a != o &&
                  ((d = e[a]) == null || d.classList.remove('active'),
                  (p = t[a]) == null || p.classList.remove('active')),
                (a = o),
                u.classList.add('active'),
                t[o].classList.add('active')
            })
          }),
          r.forEach((u, o) => {
            u.addEventListener('click', (l) => {
              var d
              l.preventDefault(),
                a != o &&
                  ((d = t[a]) == null || d.classList.remove('acc-active')),
                (a = o),
                t[o].classList.toggle('acc-active')
            })
          })
      })
  }
  function ri() {
    document.querySelectorAll('.acc-block').length &&
      document.querySelectorAll('.acc-block').forEach((s) => {
        var f
        const e = s.querySelectorAll('.acc-item'),
          t = s.querySelectorAll('.acc-slide'),
          i = s.querySelectorAll('.acc-opener')
        let r = 0
        ;(f = e[r]) == null || f.classList.add('active')
        function a() {
          t.forEach((c) => {
            c.style.setProperty('--height', c.scrollHeight + 'px')
          })
        }
        a(),
          window.addEventListener('resize', a),
          i.forEach((c, n) => {
            c.addEventListener('click', (u) => {
              var o
              u.preventDefault(),
                r != n &&
                  ((o = e[r]) == null || o.classList.remove('acc-active')),
                (r = n),
                e[n].classList.toggle('acc-active')
            })
          })
      })
  }
  function ai() {
    const s = document.querySelector('.nav-opener'),
      e = document.body
    s == null ||
      s.addEventListener('click', (t) => {
        t.preventDefault(), e.classList.toggle('nav-active')
      })
  }
  function ni() {
    document.querySelectorAll('.counterup').forEach((e) => {
      const t = new ei(e, e.innerText, {
        enableScrollSpy: !0,
        startVal: 0,
        scrollSpyOnce: !0,
      })
      t.error ? console.error(t.error) : t.start()
    })
  }
  document.addEventListener('DOMContentLoaded', function () {
    document.body.classList.add('loaded'),
      ii(),
      ri(),
      si(),
      ai(),
      ti(),
      ni(),
      li()
  })
  function li() {
    jQuery('.error-block') &&
      jQuery('.error-block').closest('.section').css('display', 'none'),
      jQuery('.paging').on('click', 'a', function () {
        const s = jQuery(this)
        setTimeout(function () {
          console.log(s.closest('.section').offset().top),
            jQuery('body, html').animate({
              scrollTop: s.closest('.section').offset().top,
            })
        }, 200)
      })
  }
})