PageSourceSearch

https://snapbox.ai/swiper.js

js snapbox.ai collected 2026-10-05 12:40:49 UTC 236,887 bytes, 7,011 lines download raw bytes

1/**
2 * Swiper 9.2.3
3 * Most modern mobile touch slider and framework with hardware accelerated transitions
4 * https://swiperjs.com
5 *
6 * Copyright 2014-2023 Vladimir Kharlampidi
7 *
8 * Released under the MIT License
9 *
10 * Released on: April 17, 2023
11 */
12
13!(function (e, t) {
14  "object" == typeof exports && "undefined" != typeof module
15    ? (module.exports = t())
16    : "function" == typeof define && define.amd
17    ? define(t)
18    : ((e =
19        "undefined" != typeof globalThis ? globalThis : e || self).SnapSwiper =
20        t());
21})(this, function () {
22  "use strict";
23  function e(e) {
24    return (
25      null !== e &&
26      "object" == typeof e &&
27      "constructor" in e &&
28      e.constructor === Object
29    );
30  }
31  function t(s, a) {
32    void 0 === s && (s = {}),
33      void 0 === a && (a = {}),
34      Object.keys(a).forEach((i) => {
35        void 0 === s[i]
36          ? (s[i] = a[i])
37          : e(a[i]) && e(s[i]) && Object.keys(a[i]).length > 0 && t(s[i], a[i]);
38      });
39  }
40  const s = {
41    body: {},
42    addEventListener() {},
43    removeEventListener() {},
44    activeElement: { blur() {}, nodeName: "" },
45    querySelector: () => null,
46    querySelectorAll: () => [],
47    getElementById: () => null,
48    createEvent: () => ({ initEvent() {} }),
49    createElement: () => ({
50      children: [],
51      childNodes: [],
52      style: {},
53      setAttribute() {},
54      getElementsByTagName: () => [],
55    }),
56    createElementNS: () => ({}),
57    importNode: () => null,
58    location: {
59      hash: "",
60      host: "",
61      hostname: "",
62      href: "",
63      origin: "",
64      pathname: "",
65      protocol: "",
66      search: "",
67    },
68  };
69  function a() {
70    const e = "undefined" != typeof document ? document : {};
71    return t(e, s), e;
72  }
73  const i = {
74    document: s,
75    navigator: { userAgent: "" },
76    location: {
77      hash: "",
78      host: "",
79      hostname: "",
80      href: "",
81      origin: "",
82      pathname: "",
83      protocol: "",
84      search: "",
85    },
86    history: { replaceState() {}, pushState() {}, go() {}, back() {} },
87    CustomEvent: function () {
88      return this;
89    },
90    addEventListener() {},
91    removeEventListener() {},
92    getComputedStyle: () => ({ getPropertyValue: () => "" }),
93    Image() {},
94    Date() {},
95    screen: {},
96    setTimeout() {},
97    clearTimeout() {},
98    matchMedia: () => ({}),
99    requestAnimationFrame: (e) =>
100      "undefined" == typeof setTimeout ? (e(), null) : setTimeout(e, 0),
101    cancelAnimationFrame(e) {
102      "undefined" != typeof setTimeout && clearTimeout(e);
103    },
104  };
105  function r() {
106    const e = "undefined" != typeof window ? window : {};
107    return t(e, i), e;
108  }
109  function n(e, t) {
110    return void 0 === t && (t = 0), setTimeout(e, t);
111  }
112  function l() {
113    return Date.now();
114  }
115  function o(e, t) {
116    void 0 === t && (t = "x");
117    const s = r();
118    let a, i, n;
119    const l = (function (e) {
120      const t = r();
121      let s;
122      return (
123        t.getComputedStyle && (s = t.getComputedStyle(e, null)),
124        !s && e.currentStyle && (s = e.currentStyle),
125        s || (s = e.style),
126        s
127      );
128    })(e);
129    return (
130      s.WebKitCSSMatrix
131        ? ((i = l.transform || l.webkitTransform),
132          i.split(",").length > 6 &&
133            (i = i
134              .split(", ")
135              .map((e) => e.replace(",", "."))
136              .join(", ")),
137          (n = new s.WebKitCSSMatrix("none" === i ? "" : i)))
138        : ((n =
139            l.MozTransform ||
140            l.OTransform ||
141            l.MsTransform ||
142            l.msTransform ||
143            l.transform ||
144            l
145              .getPropertyValue("transform")
146              .replace("translate(", "matrix(1, 0, 0, 1,")),
147          (a = n.toString().split(","))),
148      "x" === t &&
149        (i = s.WebKitCSSMatrix
150          ? n.m41
151          : 16 === a.length
152          ? parseFloat(a[12])
153          : parseFloat(a[4])),
154      "y" === t &&
155        (i = s.WebKitCSSMatrix
156          ? n.m42
157          : 16 === a.length
158          ? parseFloat(a[13])
159          : parseFloat(a[5])),
160      i || 0
161    );
162  }
163  function d(e) {
164    return (
165      "object" == typeof e &&
166      null !== e &&
167      e.constructor &&
168      "Object" === Object.prototype.toString.call(e).slice(8, -1)
169    );
170  }
171  function c(e) {
172    return "undefined" != typeof window && void 0 !== window.HTMLElement
173      ? e instanceof HTMLElement
174      : e && (1 === e.nodeType || 11 === e.nodeType);
175  }
176  function p() {
177    const e = Object(arguments.length <= 0 ? void 0 : arguments[0]),
178      t = ["__proto__", "constructor", "prototype"];
179    for (let s = 1; s < arguments.length; s += 1) {
180      const a = s < 0 || arguments.length <= s ? void 0 : arguments[s];
181      if (null != a && !c(a)) {
182        const s = Object.keys(Object(a)).filter((e) => t.indexOf(e) < 0);
183        for (let t = 0, i = s.length; t < i; t += 1) {
184          const i = s[t],
185            r = Object.getOwnPropertyDescriptor(a, i);
186          void 0 !== r &&
187            r.enumerable &&
188            (d(e[i]) && d(a[i])
189              ? a[i].__swiper__
190                ? (e[i] = a[i])
191                : p(e[i], a[i])
192              : !d(e[i]) && d(a[i])
193              ? ((e[i] = {}), a[i].__swiper__ ? (e[i] = a[i]) : p(e[i], a[i]))
194              : (e[i] = a[i]));
195        }
196      }
197    }
198    return e;
199  }
200  function u(e, t, s) {
201    e.style.setProperty(t, s);
202  }
203  function m(e) {
204    let { swiper: t, targetPosition: s, side: a } = e;
205    const i = r(),
206      n = -t.translate;
207    let l,
208      o = null;
209    const d = t.params.speed;
210    (t.wrapperEl.style.scrollSnapType = "none"),
211      i.cancelAnimationFrame(t.cssModeFrameID);
212    const c = s > n ? "next" : "prev",
213      p = (e, t) => ("next" === c && e >= t) || ("prev" === c && e <= t),
214      u = () => {
215        (l = new Date().getTime()), null === o && (o = l);
216        const e = Math.max(Math.min((l - o) / d, 1), 0),
217          r = 0.5 - Math.cos(e * Math.PI) / 2;
218        let c = n + r * (s - n);
219        if ((p(c, s) && (c = s), t.wrapperEl.scrollTo({ [a]: c }), p(c, s)))
220          return (
221            (t.wrapperEl.style.overflow = "hidden"),
222            (t.wrapperEl.style.scrollSnapType = ""),
223            setTimeout(() => {
224              (t.wrapperEl.style.overflow = ""),
225                t.wrapperEl.scrollTo({ [a]: c });
226            }),
227            void i.cancelAnimationFrame(t.cssModeFrameID)
228          );
229        t.cssModeFrameID = i.requestAnimationFrame(u);
230      };
231    u();
232  }
233  function h(e) {
234    return (
235      e.querySelector(".swiper-slide-transform") ||
236      (e.shadowEl && e.shadowEl.querySelector(".swiper-slide-transform")) ||
237      e
238    );
239  }
240  function f(e, t) {
241    return (
242      void 0 === t && (t = ""), [...e.children].filter((e) => e.matches(t))
243    );
244  }
245  function g(e, t) {
246    void 0 === t && (t = []);
247    const s = document.createElement(e);
248    return s.classList.add(...(Array.isArray(t) ? t : [t])), s;
249  }
250  function v(e) {
251    const t = r(),
252      s = a(),
253      i = e.getBoundingClientRect(),
254      n = s.body,
255      l = e.clientTop || n.clientTop || 0,
256      o = e.clientLeft || n.clientLeft || 0,
257      d = e === t ? t.scrollY : e.scrollTop,
258      c = e === t ? t.scrollX : e.scrollLeft;
259    return { top: i.top + d - l, left: i.left + c - o };
260  }
261  function w(e, t) {
262    return r().getComputedStyle(e, null).getPropertyValue(t);
263  }
264  function b(e) {
265    let t,
266      s = e;
267    if (s) {
268      for (t = 0; null !== (s = s.previousSibling); )
269        1 === s.nodeType && (t += 1);
270      return t;
271    }
272  }
273  function y(e, t) {
274    const s = [];
275    let a = e.parentElement;
276    for (; a; )
277      t ? a.matches(t) && s.push(a) : s.push(a), (a = a.parentElement);
278    return s;
279  }
280  function E(e, t) {
281    t &&
282      e.addEventListener("transitionend", function s(a) {
283        a.target === e &&
284          (t.call(e, a), e.removeEventListener("transitionend", s));
285      });
286  }
287  function x(e, t, s) {
288    const a = r();
289    return s
290      ? e["width" === t ? "offsetWidth" : "offsetHeight"] +
291          parseFloat(
292            a
293              .getComputedStyle(e, null)
294              .getPropertyValue("width" === t ? "margin-right" : "margin-top")
295          ) +
296          parseFloat(
297            a
298              .getComputedStyle(e, null)
299              .getPropertyValue("width" === t ? "margin-left" : "margin-bottom")
300          )
301      : e.offsetWidth;
302  }
303  let S, T, M;
304  function C() {
305    return (
306      S ||
307        (S = (function () {
308          const e = r(),
309            t = a();
310          return {
311            smoothScroll:
312              t.documentElement && "scrollBehavior" in t.documentElement.style,
313            touch: !!(
314              "ontouchstart" in e ||
315              (e.DocumentTouch && t instanceof e.DocumentTouch)
316            ),
317          };
318        })()),
319      S
320    );
321  }
322  function P(e) {
323    return (
324      void 0 === e && (e = {}),
325      T ||
326        (T = (function (e) {
327          let { userAgent: t } = void 0 === e ? {} : e;
328          const s = C(),
329            a = r(),
330            i = a.navigator.platform,
331            n = t || a.navigator.userAgent,
332            l = { ios: !1, android: !1 },
333            o = a.screen.width,
334            d = a.screen.height,
335            c = n.match(/(Android);?[\s\/]+([\d.]+)?/);
336          let p = n.match(/(iPad).*OS\s([\d_]+)/);
337          const u = n.match(/(iPod)(.*OS\s([\d_]+))?/),
338            m = !p && n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),
339            h = "Win32" === i;
340          let f = "MacIntel" === i;
341          return (
342            !p &&
343              f &&
344              s.touch &&
345              [
346                "1024x1366",
347                "1366x1024",
348                "834x1194",
349                "1194x834",
350                "834x1112",
351                "1112x834",
352                "768x1024",
353                "1024x768",
354                "820x1180",
355                "1180x820",
356                "810x1080",
357                "1080x810",
358              ].indexOf(`${o}x${d}`) >= 0 &&
359              ((p = n.match(/(Version)\/([\d.]+)/)),
360              p || (p = [0, 1, "13_0_0"]),
361              (f = !1)),
362            c && !h && ((l.os = "android"), (l.android = !0)),
363            (p || m || u) && ((l.os = "ios"), (l.ios = !0)),
364            l
365          );
366        })(e)),
367      T
368    );
369  }
370  function L() {
371    return (
372      M ||
373        (M = (function () {
374          const e = r();
375          let t = !1;
376          function s() {
377            const t = e.navigator.userAgent.toLowerCase();
378            return (
379              t.indexOf("safari") >= 0 &&
380              t.indexOf("chrome") < 0 &&
381              t.indexOf("android") < 0
382            );
383          }
384          if (s()) {
385            const s = String(e.navigator.userAgent);
386            if (s.includes("Version/")) {
387              const [e, a] = s
388                .split("Version/")[1]
389                .split(" ")[0]
390                .split(".")
391                .map((e) => Number(e));
392              t = e < 16 || (16 === e && a < 2);
393            }
394          }
395          return {
396            isSafari: t || s(),
397            needPerspectiveFix: t,
398            isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(
399              e.navigator.userAgent
400            ),
401          };
402        })()),
403      M
404    );
405  }
406  var z = {
407    on(e, t, s) {
408      const a = this;
409      if (!a.eventsListeners || a.destroyed) return a;
410      if ("function" != typeof t) return a;
411      const i = s ? "unshift" : "push";
412      return (
413        e.split(" ").forEach((e) => {
414          a.eventsListeners[e] || (a.eventsListeners[e] = []),
415            a.eventsListeners[e][i](t);
416        }),
417        a
418      );
419    },
420    once(e, t, s) {
421      const a = this;
422      if (!a.eventsListeners || a.destroyed) return a;
423      if ("function" != typeof t) return a;
424      function i() {
425        a.off(e, i), i.__emitterProxy && delete i.__emitterProxy;
426        for (var s = arguments.length, r = new Array(s), n = 0; n < s; n++)
427          r[n] = arguments[n];
428        t.apply(a, r);
429      }
430      return (i.__emitterProxy = t), a.on(e, i, s);
431    },
432    onAny(e, t) {
433      const s = this;
434      if (!s.eventsListeners || s.destroyed) return s;
435      if ("function" != typeof e) return s;
436      const a = t ? "unshift" : "push";
437      return (
438        s.eventsAnyListeners.indexOf(e) < 0 && s.eventsAnyListeners[a](e), s
439      );
440    },
441    offAny(e) {
442      const t = this;
443      if (!t.eventsListeners || t.destroyed) return t;
444      if (!t.eventsAnyListeners) return t;
445      const s = t.eventsAnyListeners.indexOf(e);
446      return s >= 0 && t.eventsAnyListeners.splice(s, 1), t;
447    },
448    off(e, t) {
449      const s = this;
450      return !s.eventsListeners || s.destroyed
451        ? s
452        : s.eventsListeners
453        ? (e.split(" ").forEach((e) => {
454            void 0 === t
455              ? (s.eventsListeners[e] = [])
456              : s.eventsListeners[e] &&
457                s.eventsListeners[e].forEach((a, i) => {
458                  (a === t || (a.__emitterProxy && a.__emitterProxy === t)) &&
459                    s.eventsListeners[e].splice(i, 1);
460                });
461          }),
462          s)
463        : s;
464    },
465    emit() {
466      const e = this;
467      if (!e.eventsListeners || e.destroyed) return e;
468      if (!e.eventsListeners) return e;
469      let t, s, a;
470      for (var i = arguments.length, r = new Array(i), n = 0; n < i; n++)
471        r[n] = arguments[n];
472      "string" == typeof r[0] || Array.isArray(r[0])
473        ? ((t = r[0]), (s = r.slice(1, r.length)), (a = e))
474        : ((t = r[0].events), (s = r[0].data), (a = r[0].context || e)),
475        s.unshift(a);
476      return (
477        (Array.isArray(t) ? t : t.split(" ")).forEach((t) => {
478          e.eventsAnyListeners &&
479            e.eventsAnyListeners.length &&
480            e.eventsAnyListeners.forEach((e) => {
481              e.apply(a, [t, ...s]);
482            }),
483            e.eventsListeners &&
484              e.eventsListeners[t] &&
485              e.eventsListeners[t].forEach((e) => {
486                e.apply(a, s);
487              });
488        }),
489        e
490      );
491    },
492  };
493  const A = (e, t) => {
494      if (!e || e.destroyed || !e.params) return;
495      const s = t.closest(
496        e.isElement ? "swiper-slide" : `.${e.params.slideClass}`
497      );
498      if (s) {
499        const t = s.querySelector(`.${e.params.lazyPreloaderClass}`);
500        t && t.remove();
501      }
502    },
503    k = (e, t) => {
504      if (!e.slides[t]) return;
505      const s = e.slides[t].querySelector('[loading="lazy"]');
506      s && s.removeAttribute("loading");
507    },
508    $ = (e) => {
509      if (!e || e.destroyed || !e.params) return;
510      let t = e.params.lazyPreloadPrevNext;
511      const s = e.slides.length;
512      if (!s || !t || t < 0) return;
513      t = Math.min(t, s);
514      const a =
515          "auto" === e.params.slidesPerView
516            ? e.slidesPerViewDynamic()
517            : Math.ceil(e.params.slidesPerView),
518        i = e.activeIndex,
519        r = i + a - 1;
520      if (e.params.rewind)
521        for (let a = i - t; a <= r + t; a += 1) {
522          const t = ((a % s) + s) % s;
523          t !== i && t > r && k(e, t);
524        }
525      else
526        for (let a = Math.max(r - t, 0); a <= Math.min(r + t, s - 1); a += 1)
527          a !== i && a > r && k(e, a);
528    };
529  var I = {
530    updateSize: function () {
531      const e = this;
532      let t, s;
533      const a = e.el;
534      (t =
535        void 0 !== e.params.width && null !== e.params.width
536          ? e.params.width
537          : a.clientWidth),
538        (s =
539          void 0 !== e.params.height && null !== e.params.height
540            ? e.params.height
541            : a.clientHeight),
542        (0 === t && e.isHorizontal()) ||
543          (0 === s && e.isVertical()) ||
544          ((t =
545            t -
546            parseInt(w(a, "padding-left") || 0, 10) -
547            parseInt(w(a, "padding-right") || 0, 10)),
548          (s =
549            s -
550            parseInt(w(a, "padding-top") || 0, 10) -
551            parseInt(w(a, "padding-bottom") || 0, 10)),
552          Number.isNaN(t) && (t = 0),
553          Number.isNaN(s) && (s = 0),
554          Object.assign(e, {
555            width: t,
556            height: s,
557            size: e.isHorizontal() ? t : s,
558          }));
559    },
560    updateSlides: function () {
561      const e = this;
562      function t(t) {
563        return e.isHorizontal()
564          ? t
565          : {
566              width: "height",
567              "margin-top": "margin-left",
568              "margin-bottom ": "margin-right",
569              "margin-left": "margin-top",
570              "margin-right": "margin-bottom",
571              "padding-left": "padding-top",
572              "padding-right": "padding-bottom",
573              marginRight: "marginBottom",
574            }[t];
575      }
576      function s(e, s) {
577        return parseFloat(e.getPropertyValue(t(s)) || 0);
578      }
579      const a = e.params,
580        {
581          wrapperEl: i,
582          slidesEl: r,
583          size: n,
584          rtlTranslate: l,
585          wrongRTL: o,
586        } = e,
587        d = e.virtual && a.virtual.enabled,
588        c = d ? e.virtual.slides.length : e.slides.length,
589        p = f(r, `.${e.params.slideClass}, swiper-slide`),
590        m = d ? e.virtual.slides.length : p.length;
591      let h = [];
592      const g = [],
593        v = [];
594      let b = a.slidesOffsetBefore;
595      "function" == typeof b && (b = a.slidesOffsetBefore.call(e));
596      let y = a.slidesOffsetAfter;
597      "function" == typeof y && (y = a.slidesOffsetAfter.call(e));
598      const E = e.snapGrid.length,
599        S = e.slidesGrid.length;
600      let T = a.spaceBetween,
601        M = -b,
602        C = 0,
603        P = 0;
604      if (void 0 === n) return;
605      "string" == typeof T &&
606        T.indexOf("%") >= 0 &&
607        (T = (parseFloat(T.replace("%", "")) / 100) * n),
608        (e.virtualSize = -T),
609        p.forEach((e) => {
610          l ? (e.style.marginLeft = "") : (e.style.marginRight = ""),
611            (e.style.marginBottom = ""),
612            (e.style.marginTop = "");
613        }),
614        a.centeredSlides &&
615          a.cssMode &&
616          (u(i, "--swiper-centered-offset-before", ""),
617          u(i, "--swiper-centered-offset-after", ""));
618      const L = a.grid && a.grid.rows > 1 && e.grid;
619      let z;
620      L && e.grid.initSlides(m);
621      const A =
622        "auto" === a.slidesPerView &&
623        a.breakpoints &&
624        Object.keys(a.breakpoints).filter(
625          (e) => void 0 !== a.breakpoints[e].slidesPerView
626        ).length > 0;
627      for (let i = 0; i < m; i += 1) {
628        let r;
629        if (
630          ((z = 0),
631          p[i] && (r = p[i]),
632          L && e.grid.updateSlide(i, r, m, t),
633          !p[i] || "none" !== w(r, "display"))
634        ) {
635          if ("auto" === a.slidesPerView) {
636            A && (p[i].style[t("width")] = "");
637            const n = getComputedStyle(r),
638              l = r.style.transform,
639              o = r.style.webkitTransform;
640            if (
641              (l && (r.style.transform = "none"),
642              o && (r.style.webkitTransform = "none"),
643              a.roundLengths)
644            )
645              z = e.isHorizontal() ? x(r, "width", !0) : x(r, "height", !0);
646            else {
647              const e = s(n, "width"),
648                t = s(n, "padding-left"),
649                a = s(n, "padding-right"),
650                i = s(n, "margin-left"),
651                l = s(n, "margin-right"),
652                o = n.getPropertyValue("box-sizing");
653              if (o && "border-box" === o) z = e + i + l;
654              else {
655                const { clientWidth: s, offsetWidth: n } = r;
656                z = e + t + a + i + l + (n - s);
657              }
658            }
659            l && (r.style.transform = l),
660              o && (r.style.webkitTransform = o),
661              a.roundLengths && (z = Math.floor(z));
662          } else
663            (z = (n - (a.slidesPerView - 1) * T) / a.slidesPerView),
664              a.roundLengths && (z = Math.floor(z)),
665              p[i] && (p[i].style[t("width")] = `${z}px`);
666          p[i] && (p[i].swiperSlideSize = z),
667            v.push(z),
668            a.centeredSlides
669              ? ((M = M + z / 2 + C / 2 + T),
670                0 === C && 0 !== i && (M = M - n / 2 - T),
671                0 === i && (M = M - n / 2 - T),
672                Math.abs(M) < 0.001 && (M = 0),
673                a.roundLengths && (M = Math.floor(M)),
674                P % a.slidesPerGroup == 0 && h.push(M),
675                g.push(M))
676              : (a.roundLengths && (M = Math.floor(M)),
677                (P - Math.min(e.params.slidesPerGroupSkip, P)) %
678                  e.params.slidesPerGroup ==
679                  0 && h.push(M),
680                g.push(M),
681                (M = M + z + T)),
682            (e.virtualSize += z + T),
683            (C = z),
684            (P += 1);
685        }
686      }
687      if (
688        ((e.virtualSize = Math.max(e.virtualSize, n) + y),
689        l &&
690          o &&
691          ("slide" === a.effect || "coverflow" === a.effect) &&
692          (i.style.width = `${e.virtualSize + a.spaceBetween}px`),
693        a.setWrapperSize &&
694          (i.style[t("width")] = `${e.virtualSize + a.spaceBetween}px`),
695        L && e.grid.updateWrapperSize(z, h, t),
696        !a.centeredSlides)
697      ) {
698        const t = [];
699        for (let s = 0; s < h.length; s += 1) {
700          let i = h[s];
701          a.roundLengths && (i = Math.floor(i)),
702            h[s] <= e.virtualSize - n && t.push(i);
703        }
704        (h = t),
705          Math.floor(e.virtualSize - n) - Math.floor(h[h.length - 1]) > 1 &&
706            h.push(e.virtualSize - n);
707      }
708      if (d && a.loop) {
709        const t = v[0] + T;
710        if (a.slidesPerGroup > 1) {
711          const s = Math.ceil(
712              (e.virtual.slidesBefore + e.virtual.slidesAfter) /
713                a.slidesPerGroup
714            ),
715            i = t * a.slidesPerGroup;
716          for (let e = 0; e < s; e += 1) h.push(h[h.length - 1] + i);
717        }
718        for (
719          let s = 0;
720          s < e.virtual.slidesBefore + e.virtual.slidesAfter;
721          s += 1
722        )
723          1 === a.slidesPerGroup && h.push(h[h.length - 1] + t),
724            g.push(g[g.length - 1] + t),
725            (e.virtualSize += t);
726      }
727      if ((0 === h.length && (h = [0]), 0 !== a.spaceBetween)) {
728        const s = e.isHorizontal() && l ? "marginLeft" : t("marginRight");
729        p.filter(
730          (e, t) => !(a.cssMode && !a.loop) || t !== p.length - 1
731        ).forEach((e) => {
732          e.style[s] = `${T}px`;
733        });
734      }
735      if (a.centeredSlides && a.centeredSlidesBounds) {
736        let e = 0;
737        v.forEach((t) => {
738          e += t + (a.spaceBetween ? a.spaceBetween : 0);
739        }),
740          (e -= a.spaceBetween);
741        const t = e - n;
742        h = h.map((e) => (e < 0 ? -b : e > t ? t + y : e));
743      }
744      if (a.centerInsufficientSlides) {
745        let e = 0;
746        if (
747          (v.forEach((t) => {
748            e += t + (a.spaceBetween ? a.spaceBetween : 0);
749          }),
750          (e -= a.spaceBetween),
751          e < n)
752        ) {
753          const t = (n - e) / 2;
754          h.forEach((e, s) => {
755            h[s] = e - t;
756          }),
757            g.forEach((e, s) => {
758              g[s] = e + t;
759            });
760        }
761      }
762      if (
763        (Object.assign(e, {
764          slides: p,
765          snapGrid: h,
766          slidesGrid: g,
767          slidesSizesGrid: v,
768        }),
769        a.centeredSlides && a.cssMode && !a.centeredSlidesBounds)
770      ) {
771        u(i, "--swiper-centered-offset-before", -h[0] + "px"),
772          u(
773            i,
774            "--swiper-centered-offset-after",
775            e.size / 2 - v[v.length - 1] / 2 + "px"
776          );
777        const t = -e.snapGrid[0],
778          s = -e.slidesGrid[0];
779        (e.snapGrid = e.snapGrid.map((e) => e + t)),
780          (e.slidesGrid = e.slidesGrid.map((e) => e + s));
781      }
782      if (
783        (m !== c && e.emit("slidesLengthChange"),
784        h.length !== E &&
785          (e.params.watchOverflow && e.checkOverflow(),
786          e.emit("snapGridLengthChange")),
787        g.length !== S && e.emit("slidesGridLengthChange"),
788        a.watchSlidesProgress && e.updateSlidesOffset(),
789        !(d || a.cssMode || ("slide" !== a.effect && "fade" !== a.effect)))
790      ) {
791        const t = `${a.containerModifierClass}backface-hidden`,
792          s = e.el.classList.contains(t);
793        m <= a.maxBackfaceHiddenSlides
794          ? s || e.el.classList.add(t)
795          : s && e.el.classList.remove(t);
796      }
797    },
798    updateAutoHeight: function (e) {
799      const t = this,
800        s = [],
801        a = t.virtual && t.params.virtual.enabled;
802      let i,
803        r = 0;
804      "number" == typeof e
805        ? t.setTransition(e)
806        : !0 === e && t.setTransition(t.params.speed);
807      const n = (e) => (a ? t.getSlideIndexByData(e) : t.slides[e]);
808      if ("auto" !== t.params.slidesPerView && t.params.slidesPerView > 1)
809        if (t.params.centeredSlides)
810          (t.visibleSlides || []).forEach((e) => {
811            s.push(e);
812          });
813        else
814          for (i = 0; i < Math.ceil(t.params.slidesPerView); i += 1) {
815            const e = t.activeIndex + i;
816            if (e > t.slides.length && !a) break;
817            s.push(n(e));
818          }
819      else s.push(n(t.activeIndex));
820      for (i = 0; i < s.length; i += 1)
821        if (void 0 !== s[i]) {
822          const e = s[i].offsetHeight;
823          r = e > r ? e : r;
824        }
825      (r || 0 === r) && (t.wrapperEl.style.height = `${r}px`);
826    },
827    updateSlidesOffset: function () {
828      const e = this,
829        t = e.slides,
830        s = e.isElement
831          ? e.isHorizontal()
832            ? e.wrapperEl.offsetLeft
833            : e.wrapperEl.offsetTop
834          : 0;
835      for (let a = 0; a < t.length; a += 1)
836        t[a].swiperSlideOffset =
837          (e.isHorizontal() ? t[a].offsetLeft : t[a].offsetTop) -
838          s -
839          e.cssOverflowAdjustment();
840    },
841    updateSlidesProgress: function (e) {
842      void 0 === e && (e = (this && this.translate) || 0);
843      const t = this,
844        s = t.params,
845        { slides: a, rtlTranslate: i, snapGrid: r } = t;
846      if (0 === a.length) return;
847      void 0 === a[0].swiperSlideOffset && t.updateSlidesOffset();
848      let n = -e;
849      i && (n = e),
850        a.forEach((e) => {
851          e.classList.remove(s.slideVisibleClass);
852        }),
853        (t.visibleSlidesIndexes = []),
854        (t.visibleSlides = []);
855      for (let e = 0; e < a.length; e += 1) {
856        const l = a[e];
857        let o = l.swiperSlideOffset;
858        s.cssMode && s.centeredSlides && (o -= a[0].swiperSlideOffset);
859        const d =
860            (n + (s.centeredSlides ? t.minTranslate() : 0) - o) /
861            (l.swiperSlideSize + s.spaceBetween),
862          c =
863            (n - r[0] + (s.centeredSlides ? t.minTranslate() : 0) - o) /
864            (l.swiperSlideSize + s.spaceBetween),
865          p = -(n - o),
866          u = p + t.slidesSizesGrid[e];
867        ((p >= 0 && p < t.size - 1) ||
868          (u > 1 && u <= t.size) ||
869          (p <= 0 && u >= t.size)) &&
870          (t.visibleSlides.push(l),
871          t.visibleSlidesIndexes.push(e),
872          a[e].classList.add(s.slideVisibleClass)),
873          (l.progress = i ? -d : d),
874          (l.originalProgress = i ? -c : c);
875      }
876    },
877    updateProgress: function (e) {
878      const t = this;
879      if (void 0 === e) {
880        const s = t.rtlTranslate ? -1 : 1;
881        e = (t && t.translate && t.translate * s) || 0;
882      }
883      const s = t.params,
884        a = t.maxTranslate() - t.minTranslate();
885      let { progress: i, isBeginning: r, isEnd: n, progressLoop: l } = t;
886      const o = r,
887        d = n;
888      if (0 === a) (i = 0), (r = !0), (n = !0);
889      else {
890        i = (e - t.minTranslate()) / a;
891        const s = Math.abs(e - t.minTranslate()) < 1,
892          l = Math.abs(e - t.maxTranslate()) < 1;
893        (r = s || i <= 0), (n = l || i >= 1), s && (i = 0), l && (i = 1);
894      }
895      if (s.loop) {
896        const s = t.getSlideIndexByData(0),
897          a = t.getSlideIndexByData(t.slides.length - 1),
898          i = t.slidesGrid[s],
899          r = t.slidesGrid[a],
900          n = t.slidesGrid[t.slidesGrid.length - 1],
901          o = Math.abs(e);
902        (l = o >= i ? (o - i) / n : (o + n - r) / n), l > 1 && (l -= 1);
903      }
904      Object.assign(t, {
905        progress: i,
906        progressLoop: l,
907        isBeginning: r,
908        isEnd: n,
909      }),
910        (s.watchSlidesProgress || (s.centeredSlides && s.autoHeight)) &&
911          t.updateSlidesProgress(e),
912        r && !o && t.emit("reachBeginning toEdge"),
913        n && !d && t.emit("reachEnd toEdge"),
914        ((o && !r) || (d && !n)) && t.emit("fromEdge"),
915        t.emit("progress", i);
916    },
917    updateSlidesClasses: function () {
918      const e = this,
919        { slides: t, params: s, slidesEl: a, activeIndex: i } = e,
920        r = e.virtual && s.virtual.enabled,
921        n = (e) => f(a, `.${s.slideClass}${e}, swiper-slide${e}`)[0];
922      let l;
923      if (
924        (t.forEach((e) => {
925          e.classList.remove(
926            s.slideActiveClass,
927            s.slideNextClass,
928            s.slidePrevClass
929          );
930        }),
931        r)
932      )
933        if (s.loop) {
934          let t = i - e.virtual.slidesBefore;
935          t < 0 && (t = e.virtual.slides.length + t),
936            t >= e.virtual.slides.length && (t -= e.virtual.slides.length),
937            (l = n(`[data-swiper-slide-index="${t}"]`));
938        } else l = n(`[data-swiper-slide-index="${i}"]`);
939      else l = t[i];
940      if (l) {
941        l.classList.add(s.slideActiveClass);
942        let e = (function (e, t) {
943          const s = [];
944          for (; e.nextElementSibling; ) {
945            const a = e.nextElementSibling;
946            t ? a.matches(t) && s.push(a) : s.push(a), (e = a);
947          }
948          return s;
949        })(l, `.${s.slideClass}, swiper-slide`)[0];
950        s.loop && !e && (e = t[0]), e && e.classList.add(s.slideNextClass);
951        let a = (function (e, t) {
952          const s = [];
953          for (; e.previousElementSibling; ) {
954            const a = e.previousElementSibling;
955            t ? a.matches(t) && s.push(a) : s.push(a), (e = a);
956          }
957          return s;
958        })(l, `.${s.slideClass}, swiper-slide`)[0];
959        s.loop && 0 === !a && (a = t[t.length - 1]),
960          a && a.classList.add(s.slidePrevClass);
961      }
962      e.emitSlidesClasses();
963    },
964    updateActiveIndex: function (e) {
965      const t = this,
966        s = t.rtlTranslate ? t.translate : -t.translate,
967        {
968          snapGrid: a,
969          params: i,
970          activeIndex: r,
971          realIndex: n,
972          snapIndex: l,
973        } = t;
974      let o,
975        d = e;
976      const c = (e) => {
977        let s = e - t.virtual.slidesBefore;
978        return (
979          s < 0 && (s = t.virtual.slides.length + s),
980          s >= t.virtual.slides.length && (s -= t.virtual.slides.length),
981          s
982        );
983      };
984      if (
985        (void 0 === d &&
986          (d = (function (e) {
987            const { slidesGrid: t, params: s } = e,
988              a = e.rtlTranslate ? e.translate : -e.translate;
989            let i;
990            for (let e = 0; e < t.length; e += 1)
991              void 0 !== t[e + 1]
992                ? a >= t[e] && a < t[e + 1] - (t[e + 1] - t[e]) / 2
993                  ? (i = e)
994                  : a >= t[e] && a < t[e + 1] && (i = e + 1)
995                : a >= t[e] && (i = e);
996            return (
997              s.normalizeSlideIndex && (i < 0 || void 0 === i) && (i = 0), i
998            );
999          })(t)),
1000        a.indexOf(s) >= 0)
1001      )
1002        o = a.indexOf(s);
1003      else {
1004        const e = Math.min(i.slidesPerGroupSkip, d);
1005        o = e + Math.floor((d - e) / i.slidesPerGroup);
1006      }
1007      if ((o >= a.length && (o = a.length - 1), d === r))
1008        return (
1009          o !== l && ((t.snapIndex = o), t.emit("snapIndexChange")),
1010          void (
1011            t.params.loop &&
1012            t.virtual &&
1013            t.params.virtual.enabled &&
1014            (t.realIndex = c(d))
1015          )
1016        );
1017      let p;
1018      (p =
1019        t.virtual && i.virtual.enabled && i.loop
1020          ? c(d)
1021          : t.slides[d]
1022          ? parseInt(
1023              t.slides[d].getAttribute("data-swiper-slide-index") || d,
1024              10
1025            )
1026          : d),
1027        Object.assign(t, {
1028          previousSnapIndex: l,
1029          snapIndex: o,
1030          previousRealIndex: n,
1031          realIndex: p,
1032          previousIndex: r,
1033          activeIndex: d,
1034        }),
1035        t.initialized && $(t),
1036        t.emit("activeIndexChange"),
1037        t.emit("snapIndexChange"),
1038        n !== p && t.emit("realIndexChange"),
1039        (t.initialized || t.params.runCallbacksOnInit) && t.emit("slideChange");
1040    },
1041    updateClickedSlide: function (e) {
1042      const t = this,
1043        s = t.params,
1044        a = e.closest(`.${s.slideClass}, swiper-slide`);
1045      let i,
1046        r = !1;
1047      if (a)
1048        for (let e = 0; e < t.slides.length; e += 1)
1049          if (t.slides[e] === a) {
1050            (r = !0), (i = e);
1051            break;
1052          }
1053      if (!a || !r)
1054        return (t.clickedSlide = void 0), void (t.clickedIndex = void 0);
1055      (t.clickedSlide = a),
1056        t.virtual && t.params.virtual.enabled
1057          ? (t.clickedIndex = parseInt(
1058              a.getAttribute("data-swiper-slide-index"),
1059              10
1060            ))
1061          : (t.clickedIndex = i),
1062        s.slideToClickedSlide &&
1063          void 0 !== t.clickedIndex &&
1064          t.clickedIndex !== t.activeIndex &&
1065          t.slideToClickedSlide();
1066    },
1067  };
1068  var O = {
1069    getTranslate: function (e) {
1070      void 0 === e && (e = this.isHorizontal() ? "x" : "y");
1071      const { params: t, rtlTranslate: s, translate: a, wrapperEl: i } = this;
1072      if (t.virtualTranslate) return s ? -a : a;
1073      if (t.cssMode) return a;
1074      let r = o(i, e);
1075      return (r += this.cssOverflowAdjustment()), s && (r = -r), r || 0;
1076    },
1077    setTranslate: function (e, t) {
1078      const s = this,
1079        { rtlTranslate: a, params: i, wrapperEl: r, progress: n } = s;
1080      let l,
1081        o = 0,
1082        d = 0;
1083      s.isHorizontal() ? (o = a ? -e : e) : (d = e),
1084        i.roundLengths && ((o = Math.floor(o)), (d = Math.floor(d))),
1085        (s.previousTranslate = s.translate),
1086        (s.translate = s.isHorizontal() ? o : d),
1087        i.cssMode
1088          ? (r[s.isHorizontal() ? "scrollLeft" : "scrollTop"] = s.isHorizontal()
1089              ? -o
1090              : -d)
1091          : i.virtualTranslate ||
1092            (s.isHorizontal()
1093              ? (o -= s.cssOverflowAdjustment())
1094              : (d -= s.cssOverflowAdjustment()),
1095            (r.style.transform = `translate3d(${o}px, ${d}px, 0px)`));
1096      const c = s.maxTranslate() - s.minTranslate();
1097      (l = 0 === c ? 0 : (e - s.minTranslate()) / c),
1098        l !== n && s.updateProgress(e),
1099        s.emit("setTranslate", s.translate, t);
1100    },
1101    minTranslate: function () {
1102      return -this.snapGrid[0];
1103    },
1104    maxTranslate: function () {
1105      return -this.snapGrid[this.snapGrid.length - 1];
1106    },
1107    translateTo: function (e, t, s, a, i) {
1108      void 0 === e && (e = 0),
1109        void 0 === t && (t = this.params.speed),
1110        void 0 === s && (s = !0),
1111        void 0 === a && (a = !0);
1112      const r = this,
1113        { params: n, wrapperEl: l } = r;
1114      if (r.animating && n.preventInteractionOnTransition) return !1;
1115      const o = r.minTranslate(),
1116        d = r.maxTranslate();
1117      let c;
1118      if (
1119        ((c = a && e > o ? o : a && e < d ? d : e),
1120        r.updateProgress(c),
1121        n.cssMode)
1122      ) {
1123        const e = r.isHorizontal();
1124        if (0 === t) l[e ? "scrollLeft" : "scrollTop"] = -c;
1125        else {
1126          if (!r.support.smoothScroll)
1127            return (
1128              m({
1129                swiper: r,
1130                targetPosition: -c,
1131                side: e ? "left" : "top",
1132              }),
1133              !0
1134            );
1135          l.scrollTo({ [e ? "left" : "top"]: -c, behavior: "smooth" });
1136        }
1137        return !0;
1138      }
1139      return (
1140        0 === t
1141          ? (r.setTransition(0),
1142            r.setTranslate(c),
1143            s &&
1144              (r.emit("beforeTransitionStart", t, i), r.emit("transitionEnd")))
1145          : (r.setTransition(t),
1146            r.setTranslate(c),
1147            s &&
1148              (r.emit("beforeTransitionStart", t, i),
1149              r.emit("transitionStart")),
1150            r.animating ||
1151              ((r.animating = !0),
1152              r.onTranslateToWrapperTransitionEnd ||
1153                (r.onTranslateToWrapperTransitionEnd = function (e) {
1154                  r &&
1155                    !r.destroyed &&
1156                    e.target === this &&
1157                    (r.wrapperEl.removeEventListener(
1158                      "transitionend",
1159                      r.onTranslateToWrapperTransitionEnd
1160                    ),
1161                    (r.onTranslateToWrapperTransitionEnd = null),
1162                    delete r.onTranslateToWrapperTransitionEnd,
1163                    s && r.emit("transitionEnd"));
1164                }),
1165              r.wrapperEl.addEventListener(
1166                "transitionend",
1167                r.onTranslateToWrapperTransitionEnd
1168              ))),
1169        !0
1170      );
1171    },
1172  };
1173  function D(e) {
1174    let { swiper: t, runCallbacks: s, direction: a, step: i } = e;
1175    const { activeIndex: r, previousIndex: n } = t;
1176    let l = a;
1177    if (
1178      (l || (l = r > n ? "next" : r < n ? "prev" : "reset"),
1179      t.emit(`transition${i}`),
1180      s && r !== n)
1181    ) {
1182      if ("reset" === l) return void t.emit(`slideResetTransition${i}`);
1183      t.emit(`slideChangeTransition${i}`),
1184        "next" === l
1185          ? t.emit(`slideNextTransition${i}`)
1186          : t.emit(`slidePrevTransition${i}`);
1187    }
1188  }
1189  var G = {
1190    slideTo: function (e, t, s, a, i) {
1191      void 0 === e && (e = 0),
1192        void 0 === t && (t = this.params.speed),
1193        void 0 === s && (s = !0),
1194        "string" == typeof e && (e = parseInt(e, 10));
1195      const r = this;
1196      let n = e;
1197      n < 0 && (n = 0);
1198      const {
1199        params: l,
1200        snapGrid: o,
1201        slidesGrid: d,
1202        previousIndex: c,
1203        activeIndex: p,
1204        rtlTranslate: u,
1205        wrapperEl: h,
1206        enabled: f,
1207      } = r;
1208      if ((r.animating && l.preventInteractionOnTransition) || (!f && !a && !i))
1209        return !1;
1210      const g = Math.min(r.params.slidesPerGroupSkip, n);
1211      let v = g + Math.floor((n - g) / r.params.slidesPerGroup);
1212      v >= o.length && (v = o.length - 1);
1213      const w = -o[v];
1214      if (l.normalizeSlideIndex)
1215        for (let e = 0; e < d.length; e += 1) {
1216          const t = -Math.floor(100 * w),
1217            s = Math.floor(100 * d[e]),
1218            a = Math.floor(100 * d[e + 1]);
1219          void 0 !== d[e + 1]
1220            ? t >= s && t < a - (a - s) / 2
1221              ? (n = e)
1222              : t >= s && t < a && (n = e + 1)
1223            : t >= s && (n = e);
1224        }
1225      if (r.initialized && n !== p) {
1226        if (!r.allowSlideNext && w < r.translate && w < r.minTranslate())
1227          return !1;
1228        if (
1229          !r.allowSlidePrev &&
1230          w > r.translate &&
1231          w > r.maxTranslate() &&
1232          (p || 0) !== n
1233        )
1234          return !1;
1235      }
1236      let b;
1237      if (
1238        (n !== (c || 0) && s && r.emit("beforeSlideChangeStart"),
1239        r.updateProgress(w),
1240        (b = n > p ? "next" : n < p ? "prev" : "reset"),
1241        (u && -w === r.translate) || (!u && w === r.translate))
1242      )
1243        return (
1244          r.updateActiveIndex(n),
1245          l.autoHeight && r.updateAutoHeight(),
1246          r.updateSlidesClasses(),
1247          "slide" !== l.effect && r.setTranslate(w),
1248          "reset" !== b && (r.transitionStart(s, b), r.transitionEnd(s, b)),
1249          !1
1250        );
1251      if (l.cssMode) {
1252        const e = r.isHorizontal(),
1253          s = u ? w : -w;
1254        if (0 === t) {
1255          const t = r.virtual && r.params.virtual.enabled;
1256          t &&
1257            ((r.wrapperEl.style.scrollSnapType = "none"),
1258            (r._immediateVirtual = !0)),
1259            t && !r._cssModeVirtualInitialSet && r.params.initialSlide > 0
1260              ? ((r._cssModeVirtualInitialSet = !0),
1261                requestAnimationFrame(() => {
1262                  h[e ? "scrollLeft" : "scrollTop"] = s;
1263                }))
1264              : (h[e ? "scrollLeft" : "scrollTop"] = s),
1265            t &&
1266              requestAnimationFrame(() => {
1267                (r.wrapperEl.style.scrollSnapType = ""),
1268                  (r._immediateVirtual = !1);
1269              });
1270        } else {
1271          if (!r.support.smoothScroll)
1272            return (
1273              m({
1274                swiper: r,
1275                targetPosition: s,
1276                side: e ? "left" : "top",
1277              }),
1278              !0
1279            );
1280          h.scrollTo({ [e ? "left" : "top"]: s, behavior: "smooth" });
1281        }
1282        return !0;
1283      }
1284      return (
1285        r.setTransition(t),
1286        r.setTranslate(w),
1287        r.updateActiveIndex(n),
1288        r.updateSlidesClasses(),
1289        r.emit("beforeTransitionStart", t, a),
1290        r.transitionStart(s, b),
1291        0 === t
1292          ? r.transitionEnd(s, b)
1293          : r.animating ||
1294            ((r.animating = !0),
1295            r.onSlideToWrapperTransitionEnd ||
1296              (r.onSlideToWrapperTransitionEnd = function (e) {
1297                r &&
1298                  !r.destroyed &&
1299                  e.target === this &&
1300                  (r.wrapperEl.removeEventListener(
1301                    "transitionend",
1302                    r.onSlideToWrapperTransitionEnd
1303                  ),
1304                  (r.onSlideToWrapperTransitionEnd = null),
1305                  delete r.onSlideToWrapperTransitionEnd,
1306                  r.transitionEnd(s, b));
1307              }),
1308            r.wrapperEl.addEventListener(
1309              "transitionend",
1310              r.onSlideToWrapperTransitionEnd
1311            )),
1312        !0
1313      );
1314    },
1315    slideToLoop: function (e, t, s, a) {
1316      if (
1317        (void 0 === e && (e = 0),
1318        void 0 === t && (t = this.params.speed),
1319        void 0 === s && (s = !0),
1320        "string" == typeof e)
1321      ) {
1322        e = parseInt(e, 10);
1323      }
1324      const i = this;
1325      let r = e;
1326      return (
1327        i.params.loop &&
1328          (i.virtual && i.params.virtual.enabled
1329            ? (r += i.virtual.slidesBefore)
1330            : (r = i.getSlideIndexByData(r))),
1331        i.slideTo(r, t, s, a)
1332      );
1333    },
1334    slideNext: function (e, t, s) {
1335      void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
1336      const a = this,
1337        { enabled: i, params: r, animating: n } = a;
1338      if (!i) return a;
1339      let l = r.slidesPerGroup;
1340      "auto" === r.slidesPerView &&
1341        1 === r.slidesPerGroup &&
1342        r.slidesPerGroupAuto &&
1343        (l = Math.max(a.slidesPerViewDynamic("current", !0), 1));
1344      const o = a.activeIndex < r.slidesPerGroupSkip ? 1 : l,
1345        d = a.virtual && r.virtual.enabled;
1346      if (r.loop) {
1347        if (n && !d && r.loopPreventsSliding) return !1;
1348        a.loopFix({ direction: "next" }),
1349          (a._clientLeft = a.wrapperEl.clientLeft);
1350      }
1351      return r.rewind && a.isEnd
1352        ? a.slideTo(0, e, t, s)
1353        : a.slideTo(a.activeIndex + o, e, t, s);
1354    },
1355    slidePrev: function (e, t, s) {
1356      void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
1357      const a = this,
1358        {
1359          params: i,
1360          snapGrid: r,
1361          slidesGrid: n,
1362          rtlTranslate: l,
1363          enabled: o,
1364          animating: d,
1365        } = a;
1366      if (!o) return a;
1367      const c = a.virtual && i.virtual.enabled;
1368      if (i.loop) {
1369        if (d && !c && i.loopPreventsSliding) return !1;
1370        a.loopFix({ direction: "prev" }),
1371          (a._clientLeft = a.wrapperEl.clientLeft);
1372      }
1373      function p(e) {
1374        return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e);
1375      }
1376      const u = p(l ? a.translate : -a.translate),
1377        m = r.map((e) => p(e));
1378      let h = r[m.indexOf(u) - 1];
1379      if (void 0 === h && i.cssMode) {
1380        let e;
1381        r.forEach((t, s) => {
1382          u >= t && (e = s);
1383        }),
1384          void 0 !== e && (h = r[e > 0 ? e - 1 : e]);
1385      }
1386      let f = 0;
1387      if (
1388        (void 0 !== h &&
1389          ((f = n.indexOf(h)),
1390          f < 0 && (f = a.activeIndex - 1),
1391          "auto" === i.slidesPerView &&
1392            1 === i.slidesPerGroup &&
1393            i.slidesPerGroupAuto &&
1394            ((f = f - a.slidesPerViewDynamic("previous", !0) + 1),
1395            (f = Math.max(f, 0)))),
1396        i.rewind && a.isBeginning)
1397      ) {
1398        const i =
1399          a.params.virtual && a.params.virtual.enabled && a.virtual
1400            ? a.virtual.slides.length - 1
1401            : a.slides.length - 1;
1402        return a.slideTo(i, e, t, s);
1403      }
1404      return a.slideTo(f, e, t, s);
1405    },
1406    slideReset: function (e, t, s) {
1407      return (
1408        void 0 === e && (e = this.params.speed),
1409        void 0 === t && (t = !0),
1410        this.slideTo(this.activeIndex, e, t, s)
1411      );
1412    },
1413    slideToClosest: function (e, t, s, a) {
1414      void 0 === e && (e = this.params.speed),
1415        void 0 === t && (t = !0),
1416        void 0 === a && (a = 0.5);
1417      const i = this;
1418      let r = i.activeIndex;
1419      const n = Math.min(i.params.slidesPerGroupSkip, r),
1420        l = n + Math.floor((r - n) / i.params.slidesPerGroup),
1421        o = i.rtlTranslate ? i.translate : -i.translate;
1422      if (o >= i.snapGrid[l]) {
1423        const e = i.snapGrid[l];
1424        o - e > (i.snapGrid[l + 1] - e) * a && (r += i.params.slidesPerGroup);
1425      } else {
1426        const e = i.snapGrid[l - 1];
1427        o - e <= (i.snapGrid[l] - e) * a && (r -= i.params.slidesPerGroup);
1428      }
1429      return (
1430        (r = Math.max(r, 0)),
1431        (r = Math.min(r, i.slidesGrid.length - 1)),
1432        i.slideTo(r, e, t, s)
1433      );
1434    },
1435    slideToClickedSlide: function () {
1436      const e = this,
1437        { params: t, slidesEl: s } = e,
1438        a =
1439          "auto" === t.slidesPerView
1440            ? e.slidesPerViewDynamic()
1441            : t.slidesPerView;
1442      let i,
1443        r = e.clickedIndex;
1444      const l = e.isElement ? "swiper-slide" : `.${t.slideClass}`;
1445      if (t.loop) {
1446        if (e.animating) return;
1447        (i = parseInt(
1448          e.clickedSlide.getAttribute("data-swiper-slide-index"),
1449          10
1450        )),
1451          t.centeredSlides
1452            ? r < e.loopedSlides - a / 2 ||
1453              r > e.slides.length - e.loopedSlides + a / 2
1454              ? (e.loopFix(),
1455                (r = e.getSlideIndex(
1456                  f(s, `${l}[data-swiper-slide-index="${i}"]`)[0]
1457                )),
1458                n(() => {
1459                  e.slideTo(r);
1460                }))
1461              : e.slideTo(r)
1462            : r > e.slides.length - a
1463            ? (e.loopFix(),
1464              (r = e.getSlideIndex(
1465                f(s, `${l}[data-swiper-slide-index="${i}"]`)[0]
1466              )),
1467              n(() => {
1468                e.slideTo(r);
1469              }))
1470            : e.slideTo(r);
1471      } else e.slideTo(r);
1472    },
1473  };
1474  var B = {
1475    loopCreate: function (e) {
1476      const t = this,
1477        { params: s, slidesEl: a } = t;
1478      if (!s.loop || (t.virtual && t.params.virtual.enabled)) return;
1479      f(a, `.${s.slideClass}, swiper-slide`).forEach((e, t) => {
1480        e.setAttribute("data-swiper-slide-index", t);
1481      }),
1482        t.loopFix({
1483          slideRealIndex: e,
1484          direction: s.centeredSlides ? void 0 : "next",
1485        });
1486    },
1487    loopFix: function (e) {
1488      let {
1489        slideRealIndex: t,
1490        slideTo: s = !0,
1491        direction: a,
1492        setTranslate: i,
1493        activeSlideIndex: r,
1494        byController: n,
1495        byMousewheel: l,
1496      } = void 0 === e ? {} : e;
1497      const o = this;
1498      if (!o.params.loop) return;
1499      o.emit("beforeLoopFix");
1500      const {
1501        slides: d,
1502        allowSlidePrev: c,
1503        allowSlideNext: p,
1504        slidesEl: u,
1505        params: m,
1506      } = o;
1507      if (
1508        ((o.allowSlidePrev = !0),
1509        (o.allowSlideNext = !0),
1510        o.virtual && m.virtual.enabled)
1511      )
1512        return (
1513          s &&
1514            (m.centeredSlides || 0 !== o.snapIndex
1515              ? m.centeredSlides && o.snapIndex < m.slidesPerView
1516                ? o.slideTo(o.virtual.slides.length + o.snapIndex, 0, !1, !0)
1517                : o.snapIndex === o.snapGrid.length - 1 &&
1518                  o.slideTo(o.virtual.slidesBefore, 0, !1, !0)
1519              : o.slideTo(o.virtual.slides.length, 0, !1, !0)),
1520          (o.allowSlidePrev = c),
1521          (o.allowSlideNext = p),
1522          void o.emit("loopFix")
1523        );
1524      const h =
1525        "auto" === m.slidesPerView
1526          ? o.slidesPerViewDynamic()
1527          : Math.ceil(parseFloat(m.slidesPerView, 10));
1528      let f = m.loopedSlides || h;
1529      f % m.slidesPerGroup != 0 &&
1530        (f += m.slidesPerGroup - (f % m.slidesPerGroup)),
1531        (o.loopedSlides = f);
1532      const g = [],
1533        v = [];
1534      let w = o.activeIndex;
1535      void 0 === r
1536        ? (r = o.getSlideIndex(
1537            o.slides.filter((e) => e.classList.contains(m.slideActiveClass))[0]
1538          ))
1539        : (w = r);
1540      const b = "next" === a || !a,
1541        y = "prev" === a || !a;
1542      let E = 0,
1543        x = 0;
1544      if (r < f) {
1545        E = Math.max(f - r, m.slidesPerGroup);
1546        for (let e = 0; e < f - r; e += 1) {
1547          const t = e - Math.floor(e / d.length) * d.length;
1548          g.push(d.length - t - 1);
1549        }
1550      } else if (r > o.slides.length - 2 * f) {
1551        x = Math.max(r - (o.slides.length - 2 * f), m.slidesPerGroup);
1552        for (let e = 0; e < x; e += 1) {
1553          const t = e - Math.floor(e / d.length) * d.length;
1554          v.push(t);
1555        }
1556      }
1557      if (
1558        (y &&
1559          g.forEach((e) => {
1560            u.prepend(o.slides[e]);
1561          }),
1562        b &&
1563          v.forEach((e) => {
1564            u.append(o.slides[e]);
1565          }),
1566        o.recalcSlides(),
1567        m.watchSlidesProgress && o.updateSlidesOffset(),
1568        s)
1569      )
1570        if (g.length > 0 && y)
1571          if (void 0 === t) {
1572            const e = o.slidesGrid[w],
1573              t = o.slidesGrid[w + E] - e;
1574            l
1575              ? o.setTranslate(o.translate - t)
1576              : (o.slideTo(w + E, 0, !1, !0),
1577                i && (o.touches[o.isHorizontal() ? "startX" : "startY"] += t));
1578          } else i && o.slideToLoop(t, 0, !1, !0);
1579        else if (v.length > 0 && b)
1580          if (void 0 === t) {
1581            const e = o.slidesGrid[w],
1582              t = o.slidesGrid[w - x] - e;
1583            l
1584              ? o.setTranslate(o.translate - t)
1585              : (o.slideTo(w - x, 0, !1, !0),
1586                i && (o.touches[o.isHorizontal() ? "startX" : "startY"] += t));
1587          } else o.slideToLoop(t, 0, !1, !0);
1588      if (
1589        ((o.allowSlidePrev = c),
1590        (o.allowSlideNext = p),
1591        o.controller && o.controller.control && !n)
1592      ) {
1593        const e = {
1594          slideRealIndex: t,
1595          slideTo: !1,
1596          direction: a,
1597          setTranslate: i,
1598          activeSlideIndex: r,
1599          byController: !0,
1600        };
1601        Array.isArray(o.controller.control)
1602          ? o.controller.control.forEach((t) => {
1603              !t.destroyed && t.params.loop && t.loopFix(e);
1604            })
1605          : o.controller.control instanceof o.constructor &&
1606            o.controller.control.params.loop &&
1607            o.controller.control.loopFix(e);
1608      }
1609      o.emit("loopFix");
1610    },
1611    loopDestroy: function () {
1612      const e = this,
1613        { params: t, slidesEl: s } = e;
1614      if (!t.loop || (e.virtual && e.params.virtual.enabled)) return;
1615      e.recalcSlides();
1616      const a = [];
1617      e.slides.forEach((e) => {
1618        const t =
1619          void 0 === e.swiperSlideIndex
1620            ? 1 * e.getAttribute("data-swiper-slide-index")
1621            : e.swiperSlideIndex;
1622        a[t] = e;
1623      }),
1624        e.slides.forEach((e) => {
1625          e.removeAttribute("data-swiper-slide-index");
1626        }),
1627        a.forEach((e) => {
1628          s.append(e);
1629        }),
1630        e.recalcSlides(),
1631        e.slideTo(e.realIndex, 0);
1632    },
1633  };
1634  function H(e) {
1635    const t = this,
1636      s = a(),
1637      i = r(),
1638      n = t.touchEventsData;
1639    n.evCache.push(e);
1640    const { params: o, touches: d, enabled: c } = t;
1641    if (!c) return;
1642    if (!o.simulateTouch && "mouse" === e.pointerType) return;
1643    if (t.animating && o.preventInteractionOnTransition) return;
1644    !t.animating && o.cssMode && o.loop && t.loopFix();
1645    let p = e;
1646    p.originalEvent && (p = p.originalEvent);
1647    let u = p.target;
1648    if ("wrapper" === o.touchEventsTarget && !t.wrapperEl.contains(u)) return;
1649    if ("which" in p && 3 === p.which) return;
1650    if ("button" in p && p.button > 0) return;
1651    if (n.isTouched && n.isMoved) return;
1652    const m = !!o.noSwipingClass && "" !== o.noSwipingClass,
1653      h = e.composedPath ? e.composedPath() : e.path;
1654    m && p.target && p.target.shadowRoot && h && (u = h[0]);
1655    const f = o.noSwipingSelector
1656        ? o.noSwipingSelector
1657        : `.${o.noSwipingClass}`,
1658      g = !(!p.target || !p.target.shadowRoot);
1659    if (
1660      o.noSwiping &&
1661      (g
1662        ? (function (e, t) {
1663            return (
1664              void 0 === t && (t = this),
1665              (function t(s) {
1666                if (!s || s === a() || s === r()) return null;
1667                s.assignedSlot && (s = s.assignedSlot);
1668                const i = s.closest(e);
1669                return i || s.getRootNode ? i || t(s.getRootNode().host) : null;
1670              })(t)
1671            );
1672          })(f, u)
1673        : u.closest(f))
1674    )
1675      return void (t.allowClick = !0);
1676    if (o.swipeHandler && !u.closest(o.swipeHandler)) return;
1677    (d.currentX = p.pageX), (d.currentY = p.pageY);
1678    const v = d.currentX,
1679      w = d.currentY,
1680      b = o.edgeSwipeDetection || o.iOSEdgeSwipeDetection,
1681      y = o.edgeSwipeThreshold || o.iOSEdgeSwipeThreshold;
1682    if (b && (v <= y || v >= i.innerWidth - y)) {
1683      if ("prevent" !== b) return;
1684      e.preventDefault();
1685    }
1686    Object.assign(n, {
1687      isTouched: !0,
1688      isMoved: !1,
1689      allowTouchCallbacks: !0,
1690      isScrolling: void 0,
1691      startMoving: void 0,
1692    }),
1693      (d.startX = v),
1694      (d.startY = w),
1695      (n.touchStartTime = l()),
1696      (t.allowClick = !0),
1697      t.updateSize(),
1698      (t.swipeDirection = void 0),
1699      o.threshold > 0 && (n.allowThresholdMove = !1);
1700    let E = !0;
1701    u.matches(n.focusableElements) &&
1702      ((E = !1), "SELECT" === u.nodeName && (n.isTouched = !1)),
1703      s.activeElement &&
1704        s.activeElement.matches(n.focusableElements) &&
1705        s.activeElement !== u &&
1706        s.activeElement.blur();
1707    const x = E && t.allowTouchMove && o.touchStartPreventDefault;
1708    (!o.touchStartForcePreventDefault && !x) ||
1709      u.isContentEditable ||
1710      p.preventDefault(),
1711      t.params.freeMode &&
1712        t.params.freeMode.enabled &&
1713        t.freeMode &&
1714        t.animating &&
1715        !o.cssMode &&
1716        t.freeMode.onTouchStart(),
1717      t.emit("touchStart", p);
1718  }
1719  function X(e) {
1720    const t = a(),
1721      s = this,
1722      i = s.touchEventsData,
1723      { params: r, touches: n, rtlTranslate: o, enabled: d } = s;
1724    if (!d) return;
1725    if (!r.simulateTouch && "mouse" === e.pointerType) return;
1726    let c = e;
1727    if ((c.originalEvent && (c = c.originalEvent), !i.isTouched))
1728      return void (
1729        i.startMoving &&
1730        i.isScrolling &&
1731        s.emit("touchMoveOpposite", c)
1732      );
1733    const p = i.evCache.findIndex((e) => e.pointerId === c.pointerId);
1734    p >= 0 && (i.evCache[p] = c);
1735    const u = i.evCache.length > 1 ? i.evCache[0] : c,
1736      m = u.pageX,
1737      h = u.pageY;
1738    if (c.preventedByNestedSwiper) return (n.startX = m), void (n.startY = h);
1739    if (!s.allowTouchMove)
1740      return (
1741        c.target.matches(i.focusableElements) || (s.allowClick = !1),
1742        void (
1743          i.isTouched &&
1744          (Object.assign(n, {
1745            startX: m,
1746            startY: h,
1747            prevX: s.touches.currentX,
1748            prevY: s.touches.currentY,
1749            currentX: m,
1750            currentY: h,
1751          }),
1752          (i.touchStartTime = l()))
1753        )
1754      );
1755    if (r.touchReleaseOnEdges && !r.loop)
1756      if (s.isVertical()) {
1757        if (
1758          (h < n.startY && s.translate <= s.maxTranslate()) ||
1759          (h > n.startY && s.translate >= s.minTranslate())
1760        )
1761          return (i.isTouched = !1), void (i.isMoved = !1);
1762      } else if (
1763        (m < n.startX && s.translate <= s.maxTranslate()) ||
1764        (m > n.startX && s.translate >= s.minTranslate())
1765      )
1766        return;
1767    if (
1768      t.activeElement &&
1769      c.target === t.activeElement &&
1770      c.target.matches(i.focusableElements)
1771    )
1772      return (i.isMoved = !0), void (s.allowClick = !1);
1773    if (
1774      (i.allowTouchCallbacks && s.emit("touchMove", c),
1775      c.targetTouches && c.targetTouches.length > 1)
1776    )
1777      return;
1778    (n.currentX = m), (n.currentY = h);
1779    const f = n.currentX - n.startX,
1780      g = n.currentY - n.startY;
1781    if (s.params.threshold && Math.sqrt(f ** 2 + g ** 2) < s.params.threshold)
1782      return;
1783    if (void 0 === i.isScrolling) {
1784      let e;
1785      (s.isHorizontal() && n.currentY === n.startY) ||
1786      (s.isVertical() && n.currentX === n.startX)
1787        ? (i.isScrolling = !1)
1788        : f * f + g * g >= 25 &&
1789          ((e = (180 * Math.atan2(Math.abs(g), Math.abs(f))) / Math.PI),
1790          (i.isScrolling = s.isHorizontal()
1791            ? e > r.touchAngle
1792            : 90 - e > r.touchAngle));
1793    }
1794    if (
1795      (i.isScrolling && s.emit("touchMoveOpposite", c),
1796      void 0 === i.startMoving &&
1797        ((n.currentX === n.startX && n.currentY === n.startY) ||
1798          (i.startMoving = !0)),
1799      i.isScrolling ||
1800        (s.zoom &&
1801          s.params.zoom &&
1802          s.params.zoom.enabled &&
1803          i.evCache.length > 1))
1804    )
1805      return void (i.isTouched = !1);
1806    if (!i.startMoving) return;
1807    (s.allowClick = !1),
1808      !r.cssMode && c.cancelable && c.preventDefault(),
1809      r.touchMoveStopPropagation && !r.nested && c.stopPropagation();
1810    let v = s.isHorizontal() ? f : g,
1811      w = s.isHorizontal()
1812        ? n.currentX - n.previousX
1813        : n.currentY - n.previousY;
1814    r.oneWayMovement &&
1815      ((v = Math.abs(v) * (o ? 1 : -1)), (w = Math.abs(w) * (o ? 1 : -1))),
1816      (n.diff = v),
1817      (v *= r.touchRatio),
1818      o && ((v = -v), (w = -w));
1819    const b = s.touchesDirection;
1820    (s.swipeDirection = v > 0 ? "prev" : "next"),
1821      (s.touchesDirection = w > 0 ? "prev" : "next");
1822    const y = s.params.loop && !r.cssMode;
1823    if (!i.isMoved) {
1824      if (
1825        (y && s.loopFix({ direction: s.swipeDirection }),
1826        (i.startTranslate = s.getTranslate()),
1827        s.setTransition(0),
1828        s.animating)
1829      ) {
1830        const e = new window.CustomEvent("transitionend", {
1831          bubbles: !0,
1832          cancelable: !0,
1833        });
1834        s.wrapperEl.dispatchEvent(e);
1835      }
1836      (i.allowMomentumBounce = !1),
1837        !r.grabCursor ||
1838          (!0 !== s.allowSlideNext && !0 !== s.allowSlidePrev) ||
1839          s.setGrabCursor(!0),
1840        s.emit("sliderFirstMove", c);
1841    }
1842    let E;
1843    i.isMoved &&
1844      b !== s.touchesDirection &&
1845      y &&
1846      Math.abs(v) >= 1 &&
1847      (s.loopFix({ direction: s.swipeDirection, setTranslate: !0 }), (E = !0)),
1848      s.emit("sliderMove", c),
1849      (i.isMoved = !0),
1850      (i.currentTranslate = v + i.startTranslate);
1851    let x = !0,
1852      S = r.resistanceRatio;
1853    if (
1854      (r.touchReleaseOnEdges && (S = 0),
1855      v > 0
1856        ? (y &&
1857            !E &&
1858            i.currentTranslate >
1859              (r.centeredSlides
1860                ? s.minTranslate() - s.size / 2
1861                : s.minTranslate()) &&
1862            s.loopFix({
1863              direction: "prev",
1864              setTranslate: !0,
1865              activeSlideIndex: 0,
1866            }),
1867          i.currentTranslate > s.minTranslate() &&
1868            ((x = !1),
1869            r.resistance &&
1870              (i.currentTranslate =
1871                s.minTranslate() -
1872                1 +
1873                (-s.minTranslate() + i.startTranslate + v) ** S)))
1874        : v < 0 &&
1875          (y &&
1876            !E &&
1877            i.currentTranslate <
1878              (r.centeredSlides
1879                ? s.maxTranslate() + s.size / 2
1880                : s.maxTranslate()) &&
1881            s.loopFix({
1882              direction: "next",
1883              setTranslate: !0,
1884              activeSlideIndex:
1885                s.slides.length -
1886                ("auto" === r.slidesPerView
1887                  ? s.slidesPerViewDynamic()
1888                  : Math.ceil(parseFloat(r.slidesPerView, 10))),
1889            }),
1890          i.currentTranslate < s.maxTranslate() &&
1891            ((x = !1),
1892            r.resistance &&
1893              (i.currentTranslate =
1894                s.maxTranslate() +
1895                1 -
1896                (s.maxTranslate() - i.startTranslate - v) ** S))),
1897      x && (c.preventedByNestedSwiper = !0),
1898      !s.allowSlideNext &&
1899        "next" === s.swipeDirection &&
1900        i.currentTranslate < i.startTranslate &&
1901        (i.currentTranslate = i.startTranslate),
1902      !s.allowSlidePrev &&
1903        "prev" === s.swipeDirection &&
1904        i.currentTranslate > i.startTranslate &&
1905        (i.currentTranslate = i.startTranslate),
1906      s.allowSlidePrev ||
1907        s.allowSlideNext ||
1908        (i.currentTranslate = i.startTranslate),
1909      r.threshold > 0)
1910    ) {
1911      if (!(Math.abs(v) > r.threshold || i.allowThresholdMove))
1912        return void (i.currentTranslate = i.startTranslate);
1913      if (!i.allowThresholdMove)
1914        return (
1915          (i.allowThresholdMove = !0),
1916          (n.startX = n.currentX),
1917          (n.startY = n.currentY),
1918          (i.currentTranslate = i.startTranslate),
1919          void (n.diff = s.isHorizontal()
1920            ? n.currentX - n.startX
1921            : n.currentY - n.startY)
1922        );
1923    }
1924    r.followFinger &&
1925      !r.cssMode &&
1926      (((r.freeMode && r.freeMode.enabled && s.freeMode) ||
1927        r.watchSlidesProgress) &&
1928        (s.updateActiveIndex(), s.updateSlidesClasses()),
1929      s.params.freeMode &&
1930        r.freeMode.enabled &&
1931        s.freeMode &&
1932        s.freeMode.onTouchMove(),
1933      s.updateProgress(i.currentTranslate),
1934      s.setTranslate(i.currentTranslate));
1935  }
1936  function Y(e) {
1937    const t = this,
1938      s = t.touchEventsData,
1939      a = s.evCache.findIndex((t) => t.pointerId === e.pointerId);
1940    if (
1941      (a >= 0 && s.evCache.splice(a, 1),
1942      ["pointercancel", "pointerout", "pointerleave"].includes(e.type))
1943    ) {
1944      if (
1945        !(
1946          "pointercancel" === e.type &&
1947          (t.browser.isSafari || t.browser.isWebView)
1948        )
1949      )
1950        return;
1951    }
1952    const {
1953      params: i,
1954      touches: r,
1955      rtlTranslate: o,
1956      slidesGrid: d,
1957      enabled: c,
1958    } = t;
1959    if (!c) return;
1960    if (!i.simulateTouch && "mouse" === e.pointerType) return;
1961    let p = e;
1962    if (
1963      (p.originalEvent && (p = p.originalEvent),
1964      s.allowTouchCallbacks && t.emit("touchEnd", p),
1965      (s.allowTouchCallbacks = !1),
1966      !s.isTouched)
1967    )
1968      return (
1969        s.isMoved && i.grabCursor && t.setGrabCursor(!1),
1970        (s.isMoved = !1),
1971        void (s.startMoving = !1)
1972      );
1973    i.grabCursor &&
1974      s.isMoved &&
1975      s.isTouched &&
1976      (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) &&
1977      t.setGrabCursor(!1);
1978    const u = l(),
1979      m = u - s.touchStartTime;
1980    if (t.allowClick) {
1981      const e = p.path || (p.composedPath && p.composedPath());
1982      t.updateClickedSlide((e && e[0]) || p.target),
1983        t.emit("tap click", p),
1984        m < 300 &&
1985          u - s.lastClickTime < 300 &&
1986          t.emit("doubleTap doubleClick", p);
1987    }
1988    if (
1989      ((s.lastClickTime = l()),
1990      n(() => {
1991        t.destroyed || (t.allowClick = !0);
1992      }),
1993      !s.isTouched ||
1994        !s.isMoved ||
1995        !t.swipeDirection ||
1996        0 === r.diff ||
1997        s.currentTranslate === s.startTranslate)
1998    )
1999      return (s.isTouched = !1), (s.isMoved = !1), void (s.startMoving = !1);
2000    let h;
2001    if (
2002      ((s.isTouched = !1),
2003      (s.isMoved = !1),
2004      (s.startMoving = !1),
2005      (h = i.followFinger
2006        ? o
2007          ? t.translate
2008          : -t.translate
2009        : -s.currentTranslate),
2010      i.cssMode)
2011    )
2012      return;
2013    if (t.params.freeMode && i.freeMode.enabled)
2014      return void t.freeMode.onTouchEnd({ currentPos: h });
2015    let f = 0,
2016      g = t.slidesSizesGrid[0];
2017    for (
2018      let e = 0;
2019      e < d.length;
2020      e += e < i.slidesPerGroupSkip ? 1 : i.slidesPerGroup
2021    ) {
2022      const t = e < i.slidesPerGroupSkip - 1 ? 1 : i.slidesPerGroup;
2023      void 0 !== d[e + t]
2024        ? h >= d[e] && h < d[e + t] && ((f = e), (g = d[e + t] - d[e]))
2025        : h >= d[e] && ((f = e), (g = d[d.length - 1] - d[d.length - 2]));
2026    }
2027    let v = null,
2028      w = null;
2029    i.rewind &&
2030      (t.isBeginning
2031        ? (w =
2032            t.params.virtual && t.params.virtual.enabled && t.virtual
2033              ? t.virtual.slides.length - 1
2034              : t.slides.length - 1)
2035        : t.isEnd && (v = 0));
2036    const b = (h - d[f]) / g,
2037      y = f < i.slidesPerGroupSkip - 1 ? 1 : i.slidesPerGroup;
2038    if (m > i.longSwipesMs) {
2039      if (!i.longSwipes) return void t.slideTo(t.activeIndex);
2040      "next" === t.swipeDirection &&
2041        (b >= i.longSwipesRatio
2042          ? t.slideTo(i.rewind && t.isEnd ? v : f + y)
2043          : t.slideTo(f)),
2044        "prev" === t.swipeDirection &&
2045          (b > 1 - i.longSwipesRatio
2046            ? t.slideTo(f + y)
2047            : null !== w && b < 0 && Math.abs(b) > i.longSwipesRatio
2048            ? t.slideTo(w)
2049            : t.slideTo(f));
2050    } else {
2051      if (!i.shortSwipes) return void t.slideTo(t.activeIndex);
2052      t.navigation &&
2053      (p.target === t.navigation.nextEl || p.target === t.navigation.prevEl)
2054        ? p.target === t.navigation.nextEl
2055          ? t.slideTo(f + y)
2056          : t.slideTo(f)
2057        : ("next" === t.swipeDirection && t.slideTo(null !== v ? v : f + y),
2058          "prev" === t.swipeDirection && t.slideTo(null !== w ? w : f));
2059    }
2060  }
2061  function N() {
2062    const e = this,
2063      { params: t, el: s } = e;
2064    if (s && 0 === s.offsetWidth) return;
2065    t.breakpoints && e.setBreakpoint();
2066    const { allowSlideNext: a, allowSlidePrev: i, snapGrid: r } = e,
2067      n = e.virtual && e.params.virtual.enabled;
2068    (e.allowSlideNext = !0),
2069      (e.allowSlidePrev = !0),
2070      e.updateSize(),
2071      e.updateSlides(),
2072      e.updateSlidesClasses();
2073    const l = n && t.loop;
2074    !("auto" === t.slidesPerView || t.slidesPerView > 1) ||
2075    !e.isEnd ||
2076    e.isBeginning ||
2077    e.params.centeredSlides ||
2078    l
2079      ? e.params.loop && !n
2080        ? e.slideToLoop(e.realIndex, 0, !1, !0)
2081        : e.slideTo(e.activeIndex, 0, !1, !0)
2082      : e.slideTo(e.slides.length - 1, 0, !1, !0),
2083      e.autoplay &&
2084        e.autoplay.running &&
2085        e.autoplay.paused &&
2086        (clearTimeout(e.autoplay.resizeTimeout),
2087        (e.autoplay.resizeTimeout = setTimeout(() => {
2088          e.autoplay &&
2089            e.autoplay.running &&
2090            e.autoplay.paused &&
2091            e.autoplay.resume();
2092        }, 500))),
2093      (e.allowSlidePrev = i),
2094      (e.allowSlideNext = a),
2095      e.params.watchOverflow && r !== e.snapGrid && e.checkOverflow();
2096  }
2097  function R(e) {
2098    const t = this;
2099    t.enabled &&
2100      (t.allowClick ||
2101        (t.params.preventClicks && e.preventDefault(),
2102        t.params.preventClicksPropagation &&
2103          t.animating &&
2104          (e.stopPropagation(), e.stopImmediatePropagation())));
2105  }
2106  function q() {
2107    const e = this,
2108      { wrapperEl: t, rtlTranslate: s, enabled: a } = e;
2109    if (!a) return;
2110    let i;
2111    (e.previousTranslate = e.translate),
2112      e.isHorizontal()
2113        ? (e.translate = -t.scrollLeft)
2114        : (e.translate = -t.scrollTop),
2115      0 === e.translate && (e.translate = 0),
2116      e.updateActiveIndex(),
2117      e.updateSlidesClasses();
2118    const r = e.maxTranslate() - e.minTranslate();
2119    (i = 0 === r ? 0 : (e.translate - e.minTranslate()) / r),
2120      i !== e.progress && e.updateProgress(s ? -e.translate : e.translate),
2121      e.emit("setTranslate", e.translate, !1);
2122  }
2123  function _(e) {
2124    A(this, e.target), this.update();
2125  }
2126  let V = !1;
2127  function F() {}
2128  const j = (e, t) => {
2129    const s = a(),
2130      { params: i, el: r, wrapperEl: n, device: l } = e,
2131      o = !!i.nested,
2132      d = "on" === t ? "addEventListener" : "removeEventListener",
2133      c = t;
2134    r[d]("pointerdown", e.onTouchStart, { passive: !1 }),
2135      s[d]("pointermove", e.onTouchMove, { passive: !1, capture: o }),
2136      s[d]("pointerup", e.onTouchEnd, { passive: !0 }),
2137      s[d]("pointercancel", e.onTouchEnd, { passive: !0 }),
2138      s[d]("pointerout", e.onTouchEnd, { passive: !0 }),
2139      s[d]("pointerleave", e.onTouchEnd, { passive: !0 }),
2140      (i.preventClicks || i.preventClicksPropagation) &&
2141        r[d]("click", e.onClick, !0),
2142      i.cssMode && n[d]("scroll", e.onScroll),
2143      i.updateOnWindowResize
2144        ? e[c](
2145            l.ios || l.android
2146              ? "resize orientationchange observerUpdate"
2147              : "resize observerUpdate",
2148            N,
2149            !0
2150          )
2151        : e[c]("observerUpdate", N, !0),
2152      r[d]("load", e.onLoad, { capture: !0 });
2153  };
2154  const W = (e, t) => e.grid && t.grid && t.grid.rows > 1;
2155  var U = {
2156    init: !0,
2157    direction: "horizontal",
2158    oneWayMovement: !1,
2159    touchEventsTarget: "wrapper",
2160    initialSlide: 0,
2161    speed: 300,
2162    cssMode: !1,
2163    updateOnWindowResize: !0,
2164    resizeObserver: !0,
2165    nested: !1,
2166    createElements: !1,
2167    enabled: !0,
2168    focusableElements: "input, select, option, textarea, button, video, label",
2169    width: null,
2170    height: null,
2171    preventInteractionOnTransition: !1,
2172    userAgent: null,
2173    url: null,
2174    edgeSwipeDetection: !1,
2175    edgeSwipeThreshold: 20,
2176    autoHeight: !1,
2177    setWrapperSize: !1,
2178    virtualTranslate: !1,
2179    effect: "slide",
2180    breakpoints: void 0,
2181    breakpointsBase: "window",
2182    spaceBetween: 0,
2183    slidesPerView: 1,
2184    slidesPerGroup: 1,
2185    slidesPerGroupSkip: 0,
2186    slidesPerGroupAuto: !1,
2187    centeredSlides: !1,
2188    centeredSlidesBounds: !1,
2189    slidesOffsetBefore: 0,
2190    slidesOffsetAfter: 0,
2191    normalizeSlideIndex: !0,
2192    centerInsufficientSlides: !1,
2193    watchOverflow: !0,
2194    roundLengths: !1,
2195    touchRatio: 1,
2196    touchAngle: 45,
2197    simulateTouch: !0,
2198    shortSwipes: !0,
2199    longSwipes: !0,
2200    longSwipesRatio: 0.5,
2201    longSwipesMs: 300,
2202    followFinger: !0,
2203    allowTouchMove: !0,
2204    threshold: 5,
2205    touchMoveStopPropagation: !1,
2206    touchStartPreventDefault: !0,
2207    touchStartForcePreventDefault: !1,
2208    touchReleaseOnEdges: !1,
2209    uniqueNavElements: !0,
2210    resistance: !0,
2211    resistanceRatio: 0.85,
2212    watchSlidesProgress: !1,
2213    grabCursor: !1,
2214    preventClicks: !0,
2215    preventClicksPropagation: !0,
2216    slideToClickedSlide: !1,
2217    loop: !1,
2218    loopedSlides: null,
2219    loopPreventsSliding: !0,
2220    rewind: !1,
2221    allowSlidePrev: !0,
2222    allowSlideNext: !0,
2223    swipeHandler: null,
2224    noSwiping: !0,
2225    noSwipingClass: "swiper-no-swiping",
2226    noSwipingSelector: null,
2227    passiveListeners: !0,
2228    maxBackfaceHiddenSlides: 10,
2229    containerModifierClass: "swiper-",
2230    slideClass: "swiper-slide",
2231    slideActiveClass: "swiper-slide-active",
2232    slideVisibleClass: "swiper-slide-visible",
2233    slideNextClass: "swiper-slide-next",
2234    slidePrevClass: "swiper-slide-prev",
2235    wrapperClass: "swiper-wrapper",
2236    lazyPreloaderClass: "swiper-lazy-preloader",
2237    lazyPreloadPrevNext: 0,
2238    runCallbacksOnInit: !0,
2239    _emitClasses: !1,
2240  };
2241  function K(e, t) {
2242    return function (s) {
2243      void 0 === s && (s = {});
2244      const a = Object.keys(s)[0],
2245        i = s[a];
2246      "object" == typeof i && null !== i
2247        ? (["navigation", "pagination", "scrollbar"].indexOf(a) >= 0 &&
2248            !0 === e[a] &&
2249            (e[a] = { auto: !0 }),
2250          a in e && "enabled" in i
2251            ? (!0 === e[a] && (e[a] = { enabled: !0 }),
2252              "object" != typeof e[a] ||
2253                "enabled" in e[a] ||
2254                (e[a].enabled = !0),
2255              e[a] || (e[a] = { enabled: !1 }),
2256              p(t, s))
2257            : p(t, s))
2258        : p(t, s);
2259    };
2260  }
2261  const Z = {
2262      eventsEmitter: z,
2263      update: I,
2264      translate: O,
2265      transition: {
2266        setTransition: function (e, t) {
2267          const s = this;
2268          s.params.cssMode || (s.wrapperEl.style.transitionDuration = `${e}ms`),
2269            s.emit("setTransition", e, t);
2270        },
2271        transitionStart: function (e, t) {
2272          void 0 === e && (e = !0);
2273          const s = this,
2274            { params: a } = s;
2275          a.cssMode ||
2276            (a.autoHeight && s.updateAutoHeight(),
2277            D({
2278              swiper: s,
2279              runCallbacks: e,
2280              direction: t,
2281              step: "Start",
2282            }));
2283        },
2284        transitionEnd: function (e, t) {
2285          void 0 === e && (e = !0);
2286          const s = this,
2287            { params: a } = s;
2288          (s.animating = !1),
2289            a.cssMode ||
2290              (s.setTransition(0),
2291              D({
2292                swiper: s,
2293                runCallbacks: e,
2294                direction: t,
2295                step: "End",
2296              }));
2297        },
2298      },
2299      slide: G,
2300      loop: B,
2301      grabCursor: {
2302        setGrabCursor: function (e) {
2303          const t = this;
2304          if (
2305            !t.params.simulateTouch ||
2306            (t.params.watchOverflow && t.isLocked) ||
2307            t.params.cssMode
2308          )
2309            return;
2310          const s =
2311            "container" === t.params.touchEventsTarget ? t.el : t.wrapperEl;
2312          t.isElement && (t.__preventObserver__ = !0),
2313            (s.style.cursor = "move"),
2314            (s.style.cursor = e ? "grabbing" : "grab"),
2315            t.isElement &&
2316              requestAnimationFrame(() => {
2317                t.__preventObserver__ = !1;
2318              });
2319        },
2320        unsetGrabCursor: function () {
2321          const e = this;
2322          (e.params.watchOverflow && e.isLocked) ||
2323            e.params.cssMode ||
2324            (e.isElement && (e.__preventObserver__ = !0),
2325            (e[
2326              "container" === e.params.touchEventsTarget ? "el" : "wrapperEl"
2327            ].style.cursor = ""),
2328            e.isElement &&
2329              requestAnimationFrame(() => {
2330                e.__preventObserver__ = !1;
2331              }));
2332        },
2333      },
2334      events: {
2335        attachEvents: function () {
2336          const e = this,
2337            t = a(),
2338            { params: s } = e;
2339          (e.onTouchStart = H.bind(e)),
2340            (e.onTouchMove = X.bind(e)),
2341            (e.onTouchEnd = Y.bind(e)),
2342            s.cssMode && (e.onScroll = q.bind(e)),
2343            (e.onClick = R.bind(e)),
2344            (e.onLoad = _.bind(e)),
2345            V || (t.addEventListener("touchstart", F), (V = !0)),
2346            j(e, "on");
2347        },
2348        detachEvents: function () {
2349          j(this, "off");
2350        },
2351      },
2352      breakpoints: {
2353        setBreakpoint: function () {
2354          const e = this,
2355            { realIndex: t, initialized: s, params: a, el: i } = e,
2356            r = a.breakpoints;
2357          if (!r || (r && 0 === Object.keys(r).length)) return;
2358          const n = e.getBreakpoint(r, e.params.breakpointsBase, e.el);
2359          if (!n || e.currentBreakpoint === n) return;
2360          const l = (n in r ? r[n] : void 0) || e.originalParams,
2361            o = W(e, a),
2362            d = W(e, l),
2363            c = a.enabled;
2364          o && !d
2365            ? (i.classList.remove(
2366                `${a.containerModifierClass}grid`,
2367                `${a.containerModifierClass}grid-column`
2368              ),
2369              e.emitContainerClasses())
2370            : !o &&
2371              d &&
2372              (i.classList.add(`${a.containerModifierClass}grid`),
2373              ((l.grid.fill && "column" === l.grid.fill) ||
2374                (!l.grid.fill && "column" === a.grid.fill)) &&
2375                i.classList.add(`${a.containerModifierClass}grid-column`),
2376              e.emitContainerClasses()),
2377            ["navigation", "pagination", "scrollbar"].forEach((t) => {
2378              const s = a[t] && a[t].enabled,
2379                i = l[t] && l[t].enabled;
2380              s && !i && e[t].disable(), !s && i && e[t].enable();
2381            });
2382          const u = l.direction && l.direction !== a.direction,
2383            m = a.loop && (l.slidesPerView !== a.slidesPerView || u);
2384          u && s && e.changeDirection(), p(e.params, l);
2385          const h = e.params.enabled;
2386          Object.assign(e, {
2387            allowTouchMove: e.params.allowTouchMove,
2388            allowSlideNext: e.params.allowSlideNext,
2389            allowSlidePrev: e.params.allowSlidePrev,
2390          }),
2391            c && !h ? e.disable() : !c && h && e.enable(),
2392            (e.currentBreakpoint = n),
2393            e.emit("_beforeBreakpoint", l),
2394            m && s && (e.loopDestroy(), e.loopCreate(t), e.updateSlides()),
2395            e.emit("breakpoint", l);
2396        },
2397        getBreakpoint: function (e, t, s) {
2398          if ((void 0 === t && (t = "window"), !e || ("container" === t && !s)))
2399            return;
2400          let a = !1;
2401          const i = r(),
2402            n = "window" === t ? i.innerHeight : s.clientHeight,
2403            l = Object.keys(e).map((e) => {
2404              if ("string" == typeof e && 0 === e.indexOf("@")) {
2405                const t = parseFloat(e.substr(1));
2406                return { value: n * t, point: e };
2407              }
2408              return { value: e, point: e };
2409            });
2410          l.sort((e, t) => parseInt(e.value, 10) - parseInt(t.value, 10));
2411          for (let e = 0; e < l.length; e += 1) {
2412            const { point: r, value: n } = l[e];
2413            "window" === t
2414              ? i.matchMedia(`(min-width: ${n}px)`).matches && (a = r)
2415              : n <= s.clientWidth && (a = r);
2416          }
2417          return a || "max";
2418        },
2419      },
2420      checkOverflow: {
2421        checkOverflow: function () {
2422          const e = this,
2423            { isLocked: t, params: s } = e,
2424            { slidesOffsetBefore: a } = s;
2425          if (a) {
2426            const t = e.slides.length - 1,
2427              s = e.slidesGrid[t] + e.slidesSizesGrid[t] + 2 * a;
2428            e.isLocked = e.size > s;
2429          } else e.isLocked = 1 === e.snapGrid.length;
2430          !0 === s.allowSlideNext && (e.allowSlideNext = !e.isLocked),
2431            !0 === s.allowSlidePrev && (e.allowSlidePrev = !e.isLocked),
2432            t && t !== e.isLocked && (e.isEnd = !1),
2433            t !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock");
2434        },
2435      },
2436      classes: {
2437        addClasses: function () {
2438          const e = this,
2439            { classNames: t, params: s, rtl: a, el: i, device: r } = e,
2440            n = (function (e, t) {
2441              const s = [];
2442              return (
2443                e.forEach((e) => {
2444                  "object" == typeof e
2445                    ? Object.keys(e).forEach((a) => {
2446                        e[a] && s.push(t + a);
2447                      })
2448                    : "string" == typeof e && s.push(t + e);
2449                }),
2450                s
2451              );
2452            })(
2453              [
2454                "initialized",
2455                s.direction,
2456                {
2457                  "free-mode": e.params.freeMode && s.freeMode.enabled,
2458                },
2459                { autoheight: s.autoHeight },
2460                { rtl: a },
2461                { grid: s.grid && s.grid.rows > 1 },
2462                {
2463                  "grid-column":
2464                    s.grid && s.grid.rows > 1 && "column" === s.grid.fill,
2465                },
2466                { android: r.android },
2467                { ios: r.ios },
2468                { "css-mode": s.cssMode },
2469                { centered: s.cssMode && s.centeredSlides },
2470                { "watch-progress": s.watchSlidesProgress },
2471              ],
2472              s.containerModifierClass
2473            );
2474          t.push(...n), i.classList.add(...t), e.emitContainerClasses();
2475        },
2476        removeClasses: function () {
2477          const { el: e, classNames: t } = this;
2478          e.classList.remove(...t), this.emitContainerClasses();
2479        },
2480      },
2481    },
2482    Q = {};
2483  class J {
2484    constructor() {
2485      let e, t;
2486      for (var s = arguments.length, i = new Array(s), r = 0; r < s; r++)
2487        i[r] = arguments[r];
2488      1 === i.length &&
2489      i[0].constructor &&
2490      "Object" === Object.prototype.toString.call(i[0]).slice(8, -1)
2491        ? (t = i[0])
2492        : ([e, t] = i),
2493        t || (t = {}),
2494        (t = p({}, t)),
2495        e && !t.el && (t.el = e);
2496      const n = a();
2497      if (
2498        t.el &&
2499        "string" == typeof t.el &&
2500        n.querySelectorAll(t.el).length > 1
2501      ) {
2502        const e = [];
2503        return (
2504          n.querySelectorAll(t.el).forEach((s) => {
2505            const a = p({}, t, { el: s });
2506            e.push(new J(a));
2507          }),
2508          e
2509        );
2510      }
2511      const l = this;
2512      (l.__swiper__ = !0),
2513        (l.support = C()),
2514        (l.device = P({ userAgent: t.userAgent })),
2515        (l.browser = L()),
2516        (l.eventsListeners = {}),
2517        (l.eventsAnyListeners = []),
2518        (l.modules = [...l.__modules__]),
2519        t.modules && Array.isArray(t.modules) && l.modules.push(...t.modules);
2520      const o = {};
2521      l.modules.forEach((e) => {
2522        e({
2523          params: t,
2524          swiper: l,
2525          extendParams: K(t, o),
2526          on: l.on.bind(l),
2527          once: l.once.bind(l),
2528          off: l.off.bind(l),
2529          emit: l.emit.bind(l),
2530        });
2531      });
2532      const d = p({}, U, o);
2533      return (
2534        (l.params = p({}, d, Q, t)),
2535        (l.originalParams = p({}, l.params)),
2536        (l.passedParams = p({}, t)),
2537        l.params &&
2538          l.params.on &&
2539          Object.keys(l.params.on).forEach((e) => {
2540            l.on(e, l.params.on[e]);
2541          }),
2542        l.params && l.params.onAny && l.onAny(l.params.onAny),
2543        Object.assign(l, {
2544          enabled: l.params.enabled,
2545          el: e,
2546          classNames: [],
2547          slides: [],
2548          slidesGrid: [],
2549          snapGrid: [],
2550          slidesSizesGrid: [],
2551          isHorizontal: () => "horizontal" === l.params.direction,
2552          isVertical: () => "vertical" === l.params.direction,
2553          activeIndex: 0,
2554          realIndex: 0,
2555          isBeginning: !0,
2556          isEnd: !1,
2557          translate: 0,
2558          previousTranslate: 0,
2559          progress: 0,
2560          velocity: 0,
2561          animating: !1,
2562          cssOverflowAdjustment() {
2563            return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;
2564          },
2565          allowSlideNext: l.params.allowSlideNext,
2566          allowSlidePrev: l.params.allowSlidePrev,
2567          touchEventsData: {
2568            isTouched: void 0,
2569            isMoved: void 0,
2570            allowTouchCallbacks: void 0,
2571            touchStartTime: void 0,
2572            isScrolling: void 0,
2573            currentTranslate: void 0,
2574            startTranslate: void 0,
2575            allowThresholdMove: void 0,
2576            focusableElements: l.params.focusableElements,
2577            lastClickTime: 0,
2578            clickTimeout: void 0,
2579            velocities: [],
2580            allowMomentumBounce: void 0,
2581            startMoving: void 0,
2582            evCache: [],
2583          },
2584          allowClick: !0,
2585          allowTouchMove: l.params.allowTouchMove,
2586          touches: {
2587            startX: 0,
2588            startY: 0,
2589            currentX: 0,
2590            currentY: 0,
2591            diff: 0,
2592          },
2593          imagesToLoad: [],
2594          imagesLoaded: 0,
2595        }),
2596        l.emit("_swiper"),
2597        l.params.init && l.init(),
2598        l
2599      );
2600    }
2601    getSlideIndex(e) {
2602      const { slidesEl: t, params: s } = this,
2603        a = b(f(t, `.${s.slideClass}, swiper-slide`)[0]);
2604      return b(e) - a;
2605    }
2606    getSlideIndexByData(e) {
2607      return this.getSlideIndex(
2608        this.slides.filter(
2609          (t) => 1 * t.getAttribute("data-swiper-slide-index") === e
2610        )[0]
2611      );
2612    }
2613    recalcSlides() {
2614      const { slidesEl: e, params: t } = this;
2615      this.slides = f(e, `.${t.slideClass}, swiper-slide`);
2616    }
2617    enable() {
2618      const e = this;
2619      e.enabled ||
2620        ((e.enabled = !0),
2621        e.params.grabCursor && e.setGrabCursor(),
2622        e.emit("enable"));
2623    }
2624    disable() {
2625      const e = this;
2626      e.enabled &&
2627        ((e.enabled = !1),
2628        e.params.grabCursor && e.unsetGrabCursor(),
2629        e.emit("disable"));
2630    }
2631    setProgress(e, t) {
2632      const s = this;
2633      e = Math.min(Math.max(e, 0), 1);
2634      const a = s.minTranslate(),
2635        i = (s.maxTranslate() - a) * e + a;
2636      s.translateTo(i, void 0 === t ? 0 : t),
2637        s.updateActiveIndex(),
2638        s.updateSlidesClasses();
2639    }
2640    emitContainerClasses() {
2641      const e = this;
2642      if (!e.params._emitClasses || !e.el) return;
2643      const t = e.el.className
2644        .split(" ")
2645        .filter(
2646          (t) =>
2647            0 === t.indexOf("swiper") ||
2648            0 === t.indexOf(e.params.containerModifierClass)
2649        );
2650      e.emit("_containerClasses", t.join(" "));
2651    }
2652    getSlideClasses(e) {
2653      const t = this;
2654      return t.destroyed
2655        ? ""
2656        : e.className
2657            .split(" ")
2658            .filter(
2659              (e) =>
2660                0 === e.indexOf("swiper-slide") ||
2661                0 === e.indexOf(t.params.slideClass)
2662            )
2663            .join(" ");
2664    }
2665    emitSlidesClasses() {
2666      const e = this;
2667      if (!e.params._emitClasses || !e.el) return;
2668      const t = [];
2669      e.slides.forEach((s) => {
2670        const a = e.getSlideClasses(s);
2671        t.push({ slideEl: s, classNames: a }), e.emit("_slideClass", s, a);
2672      }),
2673        e.emit("_slideClasses", t);
2674    }
2675    slidesPerViewDynamic(e, t) {
2676      void 0 === e && (e = "current"), void 0 === t && (t = !1);
2677      const {
2678        params: s,
2679        slides: a,
2680        slidesGrid: i,
2681        slidesSizesGrid: r,
2682        size: n,
2683        activeIndex: l,
2684      } = this;
2685      let o = 1;
2686      if (s.centeredSlides) {
2687        let e,
2688          t = a[l].swiperSlideSize;
2689        for (let s = l + 1; s < a.length; s += 1)
2690          a[s] &&
2691            !e &&
2692            ((t += a[s].swiperSlideSize), (o += 1), t > n && (e = !0));
2693        for (let s = l - 1; s >= 0; s -= 1)
2694          a[s] &&
2695            !e &&
2696            ((t += a[s].swiperSlideSize), (o += 1), t > n && (e = !0));
2697      } else if ("current" === e)
2698        for (let e = l + 1; e < a.length; e += 1) {
2699          (t ? i[e] + r[e] - i[l] < n : i[e] - i[l] < n) && (o += 1);
2700        }
2701      else
2702        for (let e = l - 1; e >= 0; e -= 1) {
2703          i[l] - i[e] < n && (o += 1);
2704        }
2705      return o;
2706    }
2707    update() {
2708      const e = this;
2709      if (!e || e.destroyed) return;
2710      const { snapGrid: t, params: s } = e;
2711      function a() {
2712        const t = e.rtlTranslate ? -1 * e.translate : e.translate,
2713          s = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate());
2714        e.setTranslate(s), e.updateActiveIndex(), e.updateSlidesClasses();
2715      }
2716      let i;
2717      s.breakpoints && e.setBreakpoint(),
2718        [...e.el.querySelectorAll('[loading="lazy"]')].forEach((t) => {
2719          t.complete && A(e, t);
2720        }),
2721        e.updateSize(),
2722        e.updateSlides(),
2723        e.updateProgress(),
2724        e.updateSlidesClasses(),
2725        e.params.freeMode && e.params.freeMode.enabled
2726          ? (a(), e.params.autoHeight && e.updateAutoHeight())
2727          : ((i =
2728              ("auto" === e.params.slidesPerView ||
2729                e.params.slidesPerView > 1) &&
2730              e.isEnd &&
2731              !e.params.centeredSlides
2732                ? e.slideTo(e.slides.length - 1, 0, !1, !0)
2733                : e.slideTo(e.activeIndex, 0, !1, !0)),
2734            i || a()),
2735        s.watchOverflow && t !== e.snapGrid && e.checkOverflow(),
2736        e.emit("update");
2737    }
2738    changeDirection(e, t) {
2739      void 0 === t && (t = !0);
2740      const s = this,
2741        a = s.params.direction;
2742      return (
2743        e || (e = "horizontal" === a ? "vertical" : "horizontal"),
2744        e === a ||
2745          ("horizontal" !== e && "vertical" !== e) ||
2746          (s.el.classList.remove(`${s.params.containerModifierClass}${a}`),
2747          s.el.classList.add(`${s.params.containerModifierClass}${e}`),
2748          s.emitContainerClasses(),
2749          (s.params.direction = e),
2750          s.slides.forEach((t) => {
2751            "vertical" === e ? (t.style.width = "") : (t.style.height = "");
2752          }),
2753          s.emit("changeDirection"),
2754          t && s.update()),
2755        s
2756      );
2757    }
2758    changeLanguageDirection(e) {
2759      const t = this;
2760      (t.rtl && "rtl" === e) ||
2761        (!t.rtl && "ltr" === e) ||
2762        ((t.rtl = "rtl" === e),
2763        (t.rtlTranslate = "horizontal" === t.params.direction && t.rtl),
2764        t.rtl
2765          ? (t.el.classList.add(`${t.params.containerModifierClass}rtl`),
2766            (t.el.dir = "rtl"))
2767          : (t.el.classList.remove(`${t.params.containerModifierClass}rtl`),
2768            (t.el.dir = "ltr")),
2769        t.update());
2770    }
2771    mount(e) {
2772      const t = this;
2773      if (t.mounted) return !0;
2774      let s = e || t.params.el;
2775      if (("string" == typeof s && (s = document.querySelector(s)), !s))
2776        return !1;
2777      (s.swiper = t), s.shadowEl && (t.isElement = !0);
2778      const a = () =>
2779        `.${(t.params.wrapperClass || "").trim().split(" ").join(".")}`;
2780      let i = (() => {
2781        if (s && s.shadowRoot && s.shadowRoot.querySelector) {
2782          return s.shadowRoot.querySelector(a());
2783        }
2784        return f(s, a())[0];
2785      })();
2786      return (
2787        !i &&
2788          t.params.createElements &&
2789          ((i = g("div", t.params.wrapperClass)),
2790          s.append(i),
2791          f(s, `.${t.params.slideClass}`).forEach((e) => {
2792            i.append(e);
2793          })),
2794        Object.assign(t, {
2795          el: s,
2796          wrapperEl: i,
2797          slidesEl: t.isElement ? s : i,
2798          mounted: !0,
2799          rtl: "rtl" === s.dir.toLowerCase() || "rtl" === w(s, "direction"),
2800          rtlTranslate:
2801            "horizontal" === t.params.direction &&
2802            ("rtl" === s.dir.toLowerCase() || "rtl" === w(s, "direction")),
2803          wrongRTL: "-webkit-box" === w(i, "display"),
2804        }),
2805        !0
2806      );
2807    }
2808    init(e) {
2809      const t = this;
2810      if (t.initialized) return t;
2811      return (
2812        !1 === t.mount(e) ||
2813          (t.emit("beforeInit"),
2814          t.params.breakpoints && t.setBreakpoint(),
2815          t.addClasses(),
2816          t.updateSize(),
2817          t.updateSlides(),
2818          t.params.watchOverflow && t.checkOverflow(),
2819          t.params.grabCursor && t.enabled && t.setGrabCursor(),
2820          t.params.loop && t.virtual && t.params.virtual.enabled
2821            ? t.slideTo(
2822                t.params.initialSlide + t.virtual.slidesBefore,
2823                0,
2824                t.params.runCallbacksOnInit,
2825                !1,
2826                !0
2827              )
2828            : t.slideTo(
2829                t.params.initialSlide,
2830                0,
2831                t.params.runCallbacksOnInit,
2832                !1,
2833                !0
2834              ),
2835          t.params.loop && t.loopCreate(),
2836          t.attachEvents(),
2837          [...t.el.querySelectorAll('[loading="lazy"]')].forEach((e) => {
2838            e.complete
2839              ? A(t, e)
2840              : e.addEventListener("load", (e) => {
2841                  A(t, e.target);
2842                });
2843          }),
2844          $(t),
2845          (t.initialized = !0),
2846          $(t),
2847          t.emit("init"),
2848          t.emit("afterInit")),
2849        t
2850      );
2851    }
2852    destroy(e, t) {
2853      void 0 === e && (e = !0), void 0 === t && (t = !0);
2854      const s = this,
2855        { params: a, el: i, wrapperEl: r, slides: n } = s;
2856      return (
2857        void 0 === s.params ||
2858          s.destroyed ||
2859          (s.emit("beforeDestroy"),
2860          (s.initialized = !1),
2861          s.detachEvents(),
2862          a.loop && s.loopDestroy(),
2863          t &&
2864            (s.removeClasses(),
2865            i.removeAttribute("style"),
2866            r.removeAttribute("style"),
2867            n &&
2868              n.length &&
2869              n.forEach((e) => {
2870                e.classList.remove(
2871                  a.slideVisibleClass,
2872                  a.slideActiveClass,
2873                  a.slideNextClass,
2874                  a.slidePrevClass
2875                ),
2876                  e.removeAttribute("style"),
2877                  e.removeAttribute("data-swiper-slide-index");
2878              })),
2879          s.emit("destroy"),
2880          Object.keys(s.eventsListeners).forEach((e) => {
2881            s.off(e);
2882          }),
2883          !1 !== e &&
2884            ((s.el.swiper = null),
2885            (function (e) {
2886              const t = e;
2887              Object.keys(t).forEach((e) => {
2888                try {
2889                  t[e] = null;
2890                } catch (e) {}
2891                try {
2892                  delete t[e];
2893                } catch (e) {}
2894              });
2895            })(s)),
2896          (s.destroyed = !0)),
2897        null
2898      );
2899    }
2900    static extendDefaults(e) {
2901      p(Q, e);
2902    }
2903    static get extendedDefaults() {
2904      return Q;
2905    }
2906    static get defaults() {
2907      return U;
2908    }
2909    static installModule(e) {
2910      J.prototype.__modules__ || (J.prototype.__modules__ = []);
2911      const t = J.prototype.__modules__;
2912      "function" == typeof e && t.indexOf(e) < 0 && t.push(e);
2913    }
2914    static use(e) {
2915      return Array.isArray(e)
2916        ? (e.forEach((e) => J.installModule(e)), J)
2917        : (J.installModule(e), J);
2918    }
2919  }
2920  function ee(e, t, s, a) {
2921    return (
2922      e.params.createElements &&
2923        Object.keys(a).forEach((i) => {
2924          if (!s[i] && !0 === s.auto) {
2925            let r = f(e.el, `.${a[i]}`)[0];
2926            r || ((r = g("div", a[i])), (r.className = a[i]), e.el.append(r)),
2927              (s[i] = r),
2928              (t[i] = r);
2929          }
2930        }),
2931      s
2932    );
2933  }
2934  function te(e) {
2935    return (
2936      void 0 === e && (e = ""),
2937      `.${e
2938        .trim()
2939        .replace(/([\.:!+\/])/g, "\\$1")
2940        .replace(/ /g, ".")}`
2941    );
2942  }
2943  function se(e) {
2944    const t = this,
2945      { params: s, slidesEl: a } = t;
2946    s.loop && t.loopDestroy();
2947    const i = (e) => {
2948      if ("string" == typeof e) {
2949        const t = document.createElement("div");
2950        (t.innerHTML = e), a.append(t.children[0]), (t.innerHTML = "");
2951      } else a.append(e);
2952    };
2953    if ("object" == typeof e && "length" in e)
2954      for (let t = 0; t < e.length; t += 1) e[t] && i(e[t]);
2955    else i(e);
2956    t.recalcSlides(),
2957      s.loop && t.loopCreate(),
2958      (s.observer && !t.isElement) || t.update();
2959  }
2960  function ae(e) {
2961    const t = this,
2962      { params: s, activeIndex: a, slidesEl: i } = t;
2963    s.loop && t.loopDestroy();
2964    let r = a + 1;
2965    const n = (e) => {
2966      if ("string" == typeof e) {
2967        const t = document.createElement("div");
2968        (t.innerHTML = e), i.prepend(t.children[0]), (t.innerHTML = "");
2969      } else i.prepend(e);
2970    };
2971    if ("object" == typeof e && "length" in e) {
2972      for (let t = 0; t < e.length; t += 1) e[t] && n(e[t]);
2973      r = a + e.length;
2974    } else n(e);
2975    t.recalcSlides(),
2976      s.loop && t.loopCreate(),
2977      (s.observer && !t.isElement) || t.update(),
2978      t.slideTo(r, 0, !1);
2979  }
2980  function ie(e, t) {
2981    const s = this,
2982      { params: a, activeIndex: i, slidesEl: r } = s;
2983    let n = i;
2984    a.loop && ((n -= s.loopedSlides), s.loopDestroy(), s.recalcSlides());
2985    const l = s.slides.length;
2986    if (e <= 0) return void s.prependSlide(t);
2987    if (e >= l) return void s.appendSlide(t);
2988    let o = n > e ? n + 1 : n;
2989    const d = [];
2990    for (let t = l - 1; t >= e; t -= 1) {
2991      const e = s.slides[t];
2992      e.remove(), d.unshift(e);
2993    }
2994    if ("object" == typeof t && "length" in t) {
2995      for (let e = 0; e < t.length; e += 1) t[e] && r.append(t[e]);
2996      o = n > e ? n + t.length : n;
2997    } else r.append(t);
2998    for (let e = 0; e < d.length; e += 1) r.append(d[e]);
2999    s.recalcSlides(),
3000      a.loop && s.loopCreate(),
3001      (a.observer && !s.isElement) || s.update(),
3002      a.loop ? s.slideTo(o + s.loopedSlides, 0, !1) : s.slideTo(o, 0, !1);
3003  }
3004  function re(e) {
3005    const t = this,
3006      { params: s, activeIndex: a } = t;
3007    let i = a;
3008    s.loop && ((i -= t.loopedSlides), t.loopDestroy());
3009    let r,
3010      n = i;
3011    if ("object" == typeof e && "length" in e) {
3012      for (let s = 0; s < e.length; s += 1)
3013        (r = e[s]), t.slides[r] && t.slides[r].remove(), r < n && (n -= 1);
3014      n = Math.max(n, 0);
3015    } else (r = e), t.slides[r] && t.slides[r].remove(), r < n && (n -= 1), (n = Math.max(n, 0));
3016    t.recalcSlides(),
3017      s.loop && t.loopCreate(),
3018      (s.observer && !t.isElement) || t.update(),
3019      s.loop ? t.slideTo(n + t.loopedSlides, 0, !1) : t.slideTo(n, 0, !1);
3020  }
3021  function ne() {
3022    const e = this,
3023      t = [];
3024    for (let s = 0; s < e.slides.length; s += 1) t.push(s);
3025    e.removeSlide(t);
3026  }
3027  function le(e) {
3028    const {
3029      effect: t,
3030      swiper: s,
3031      on: a,
3032      setTranslate: i,
3033      setTransition: r,
3034      overwriteParams: n,
3035      perspective: l,
3036      recreateShadows: o,
3037      getEffectParams: d,
3038    } = e;
3039    let c;
3040    a("beforeInit", () => {
3041      if (s.params.effect !== t) return;
3042      s.classNames.push(`${s.params.containerModifierClass}${t}`),
3043        l && l() && s.classNames.push(`${s.params.containerModifierClass}3d`);
3044      const e = n ? n() : {};
3045      Object.assign(s.params, e), Object.assign(s.originalParams, e);
3046    }),
3047      a("setTranslate", () => {
3048        s.params.effect === t && i();
3049      }),
3050      a("setTransition", (e, a) => {
3051        s.params.effect === t && r(a);
3052      }),
3053      a("transitionEnd", () => {
3054        if (s.params.effect === t && o) {
3055          if (!d || !d().slideShadows) return;
3056          s.slides.forEach((e) => {
3057            e.querySelectorAll(
3058              ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
3059            ).forEach((e) => e.remove());
3060          }),
3061            o();
3062        }
3063      }),
3064      a("virtualUpdate", () => {
3065        s.params.effect === t &&
3066          (s.slides.length || (c = !0),
3067          requestAnimationFrame(() => {
3068            c && s.slides && s.slides.length && (i(), (c = !1));
3069          }));
3070      });
3071  }
3072  function oe(e, t) {
3073    const s = h(t);
3074    return (
3075      s !== t &&
3076        ((s.style.backfaceVisibility = "hidden"),
3077        (s.style["-webkit-backface-visibility"] = "hidden")),
3078      s
3079    );
3080  }
3081  function de(e) {
3082    let { swiper: t, duration: s, transformElements: a, allSlides: i } = e;
3083    const { activeIndex: r } = t;
3084    if (t.params.virtualTranslate && 0 !== s) {
3085      let e,
3086        s = !1;
3087      (e = i
3088        ? a
3089        : a.filter((e) => {
3090            const s = e.classList.contains("swiper-slide-transform")
3091              ? ((e) => {
3092                  if (!e.parentElement)
3093                    return t.slides.filter(
3094                      (t) => t.shadowEl && t.shadowEl === e.parentNode
3095                    )[0];
3096                  return e.parentElement;
3097                })(e)
3098              : e;
3099            return t.getSlideIndex(s) === r;
3100          })),
3101        e.forEach((e) => {
3102          E(e, () => {
3103            if (s) return;
3104            if (!t || t.destroyed) return;
3105            (s = !0), (t.animating = !1);
3106            const e = new window.CustomEvent("transitionend", {
3107              bubbles: !0,
3108              cancelable: !0,
3109            });
3110            t.wrapperEl.dispatchEvent(e);
3111          });
3112        });
3113    }
3114  }
3115  function ce(e, t, s) {
3116    const a = "swiper-slide-shadow" + (s ? `-${s}` : ""),
3117      i = h(t);
3118    let r = i.querySelector(`.${a}`);
3119    return (
3120      r ||
3121        ((r = g("div", "swiper-slide-shadow" + (s ? `-${s}` : ""))),
3122        i.append(r)),
3123      r
3124    );
3125  }
3126  Object.keys(Z).forEach((e) => {
3127    Object.keys(Z[e]).forEach((t) => {
3128      J.prototype[t] = Z[e][t];
3129    });
3130  }),
3131    J.use([
3132      function (e) {
3133        let { swiper: t, on: s, emit: a } = e;
3134        const i = r();
3135        let n = null,
3136          l = null;
3137        const o = () => {
3138            t &&
3139              !t.destroyed &&
3140              t.initialized &&
3141              (a("beforeResize"), a("resize"));
3142          },
3143          d = () => {
3144            t && !t.destroyed && t.initialized && a("orientationchange");
3145          };
3146        s("init", () => {
3147          t.params.resizeObserver && void 0 !== i.ResizeObserver
3148            ? t &&
3149              !t.destroyed &&
3150              t.initialized &&
3151              ((n = new ResizeObserver((e) => {
3152                l = i.requestAnimationFrame(() => {
3153                  const { width: s, height: a } = t;
3154                  let i = s,
3155                    r = a;
3156                  e.forEach((e) => {
3157                    let { contentBoxSize: s, contentRect: a, target: n } = e;
3158                    (n && n !== t.el) ||
3159                      ((i = a ? a.width : (s[0] || s).inlineSize),
3160                      (r = a ? a.height : (s[0] || s).blockSize));
3161                  }),
3162                    (i === s && r === a) || o();
3163                });
3164              })),
3165              n.observe(t.el))
3166            : (i.addEventListener("resize", o),
3167              i.addEventListener("orientationchange", d));
3168        }),
3169          s("destroy", () => {
3170            l && i.cancelAnimationFrame(l),
3171              n && n.unobserve && t.el && (n.unobserve(t.el), (n = null)),
3172              i.removeEventListener("resize", o),
3173              i.removeEventListener("orientationchange", d);
3174          });
3175      },
3176      function (e) {
3177        let { swiper: t, extendParams: s, on: a, emit: i } = e;
3178        const n = [],
3179          l = r(),
3180          o = function (e, s) {
3181            void 0 === s && (s = {});
3182            const a = new (l.MutationObserver || l.WebkitMutationObserver)(
3183              (e) => {
3184                if (t.__preventObserver__) return;
3185                if (1 === e.length) return void i("observerUpdate", e[0]);
3186                const s = function () {
3187                  i("observerUpdate", e[0]);
3188                };
3189                l.requestAnimationFrame
3190                  ? l.requestAnimationFrame(s)
3191                  : l.setTimeout(s, 0);
3192              }
3193            );
3194            a.observe(e, {
3195              attributes: void 0 === s.attributes || s.attributes,
3196              childList: void 0 === s.childList || s.childList,
3197              characterData: void 0 === s.characterData || s.characterData,
3198            }),
3199              n.push(a);
3200          };
3201        s({
3202          observer: !1,
3203          observeParents: !1,
3204          observeSlideChildren: !1,
3205        }),
3206          a("init", () => {
3207            if (t.params.observer) {
3208              if (t.params.observeParents) {
3209                const e = y(t.el);
3210                for (let t = 0; t < e.length; t += 1) o(e[t]);
3211              }
3212              o(t.el, {
3213                childList: t.params.observeSlideChildren,
3214              }),
3215                o(t.wrapperEl, { attributes: !1 });
3216            }
3217          }),
3218          a("destroy", () => {
3219            n.forEach((e) => {
3220              e.disconnect();
3221            }),
3222              n.splice(0, n.length);
3223          });
3224      },
3225    ]);
3226  const pe = [
3227    function (e) {
3228      let t,
3229        { swiper: s, extendParams: i, on: r, emit: n } = e;
3230      i({
3231        virtual: {
3232          enabled: !1,
3233          slides: [],
3234          cache: !0,
3235          renderSlide: null,
3236          renderExternal: null,
3237          renderExternalUpdate: !0,
3238          addSlidesBefore: 0,
3239          addSlidesAfter: 0,
3240        },
3241      });
3242      const l = a();
3243      s.virtual = {
3244        cache: {},
3245        from: void 0,
3246        to: void 0,
3247        slides: [],
3248        offset: 0,
3249        slidesGrid: [],
3250      };
3251      const o = l.createElement("div");
3252      function d(e, t) {
3253        const a = s.params.virtual;
3254        if (a.cache && s.virtual.cache[t]) return s.virtual.cache[t];
3255        let i;
3256        return (
3257          a.renderSlide
3258            ? ((i = a.renderSlide.call(s, e, t)),
3259              "string" == typeof i && ((o.innerHTML = i), (i = o.children[0])))
3260            : (i = s.isElement
3261                ? g("swiper-slide")
3262                : g("div", s.params.slideClass)),
3263          i.setAttribute("data-swiper-slide-index", t),
3264          a.renderSlide || (i.innerHTML = e),
3265          a.cache && (s.virtual.cache[t] = i),
3266          i
3267        );
3268      }
3269      function c(e) {
3270        const {
3271            slidesPerView: t,
3272            slidesPerGroup: a,
3273            centeredSlides: i,
3274            loop: r,
3275          } = s.params,
3276          { addSlidesBefore: l, addSlidesAfter: o } = s.params.virtual,
3277          { from: c, to: p, slides: u, slidesGrid: m, offset: h } = s.virtual;
3278        s.params.cssMode || s.updateActiveIndex();
3279        const g = s.activeIndex || 0;
3280        let v, w, b;
3281        (v = s.rtlTranslate ? "right" : s.isHorizontal() ? "left" : "top"),
3282          i
3283            ? ((w = Math.floor(t / 2) + a + o), (b = Math.floor(t / 2) + a + l))
3284            : ((w = t + (a - 1) + o), (b = (r ? t : a) + l));
3285        let y = g - b,
3286          E = g + w;
3287        r || ((y = Math.max(y, 0)), (E = Math.min(E, u.length - 1)));
3288        let x = (s.slidesGrid[y] || 0) - (s.slidesGrid[0] || 0);
3289        function S() {
3290          s.updateSlides(),
3291            s.updateProgress(),
3292            s.updateSlidesClasses(),
3293            n("virtualUpdate");
3294        }
3295        if (
3296          (r && g >= b
3297            ? ((y -= b), i || (x += s.slidesGrid[0]))
3298            : r && g < b && ((y = -b), i && (x += s.slidesGrid[0])),
3299          Object.assign(s.virtual, {
3300            from: y,
3301            to: E,
3302            offset: x,
3303            slidesGrid: s.slidesGrid,
3304            slidesBefore: b,
3305            slidesAfter: w,
3306          }),
3307          c === y && p === E && !e)
3308        )
3309          return (
3310            s.slidesGrid !== m &&
3311              x !== h &&
3312              s.slides.forEach((e) => {
3313                e.style[v] = x - Math.abs(s.cssOverflowAdjustment()) + "px";
3314              }),
3315            s.updateProgress(),
3316            void n("virtualUpdate")
3317          );
3318        if (s.params.virtual.renderExternal)
3319          return (
3320            s.params.virtual.renderExternal.call(s, {
3321              offset: x,
3322              from: y,
3323              to: E,
3324              slides: (function () {
3325                const e = [];
3326                for (let t = y; t <= E; t += 1) e.push(u[t]);
3327                return e;
3328              })(),
3329            }),
3330            void (s.params.virtual.renderExternalUpdate
3331              ? S()
3332              : n("virtualUpdate"))
3333          );
3334        const T = [],
3335          M = [],
3336          C = (e) => {
3337            let t = e;
3338            return (
3339              e < 0 ? (t = u.length + e) : t >= u.length && (t -= u.length), t
3340            );
3341          };
3342        if (e)
3343          s.slidesEl
3344            .querySelectorAll(`.${s.params.slideClass}, swiper-slide`)
3345            .forEach((e) => {
3346              e.remove();
3347            });
3348        else
3349          for (let e = c; e <= p; e += 1)
3350            if (e < y || e > E) {
3351              const t = C(e);
3352              s.slidesEl
3353                .querySelectorAll(
3354                  `.${s.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}"]`
3355                )
3356                .forEach((e) => {
3357                  e.remove();
3358                });
3359            }
3360        const P = r ? -u.length : 0,
3361          L = r ? 2 * u.length : u.length;
3362        for (let t = P; t < L; t += 1)
3363          if (t >= y && t <= E) {
3364            const s = C(t);
3365            void 0 === p || e
3366              ? M.push(s)
3367              : (t > p && M.push(s), t < c && T.push(s));
3368          }
3369        if (
3370          (M.forEach((e) => {
3371            s.slidesEl.append(d(u[e], e));
3372          }),
3373          r)
3374        )
3375          for (let e = T.length - 1; e >= 0; e -= 1) {
3376            const t = T[e];
3377            s.slidesEl.prepend(d(u[t], t));
3378          }
3379        else
3380          T.sort((e, t) => t - e),
3381            T.forEach((e) => {
3382              s.slidesEl.prepend(d(u[e], e));
3383            });
3384        f(s.slidesEl, ".swiper-slide, swiper-slide").forEach((e) => {
3385          e.style[v] = x - Math.abs(s.cssOverflowAdjustment()) + "px";
3386        }),
3387          S();
3388      }
3389      r("beforeInit", () => {
3390        if (!s.params.virtual.enabled) return;
3391        let e;
3392        if (void 0 === s.passedParams.virtual.slides) {
3393          const t = [...s.slidesEl.children].filter((e) =>
3394            e.matches(`.${s.params.slideClass}, swiper-slide`)
3395          );
3396          t &&
3397            t.length &&
3398            ((s.virtual.slides = [...t]),
3399            (e = !0),
3400            t.forEach((e, t) => {
3401              e.setAttribute("data-swiper-slide-index", t),
3402                (s.virtual.cache[t] = e),
3403                e.remove();
3404            }));
3405        }
3406        e || (s.virtual.slides = s.params.virtual.slides),
3407          s.classNames.push(`${s.params.containerModifierClass}virtual`),
3408          (s.params.watchSlidesProgress = !0),
3409          (s.originalParams.watchSlidesProgress = !0),
3410          s.params.initialSlide || c();
3411      }),
3412        r("setTranslate", () => {
3413          s.params.virtual.enabled &&
3414            (s.params.cssMode && !s._immediateVirtual
3415              ? (clearTimeout(t),
3416                (t = setTimeout(() => {
3417                  c();
3418                }, 100)))
3419              : c());
3420        }),
3421        r("init update resize", () => {
3422          s.params.virtual.enabled &&
3423            s.params.cssMode &&
3424            u(s.wrapperEl, "--swiper-virtual-size", `${s.virtualSize}px`);
3425        }),
3426        Object.assign(s.virtual, {
3427          appendSlide: function (e) {
3428            if ("object" == typeof e && "length" in e)
3429              for (let t = 0; t < e.length; t += 1)
3430                e[t] && s.virtual.slides.push(e[t]);
3431            else s.virtual.slides.push(e);
3432            c(!0);
3433          },
3434          prependSlide: function (e) {
3435            const t = s.activeIndex;
3436            let a = t + 1,
3437              i = 1;
3438            if (Array.isArray(e)) {
3439              for (let t = 0; t < e.length; t += 1)
3440                e[t] && s.virtual.slides.unshift(e[t]);
3441              (a = t + e.length), (i = e.length);
3442            } else s.virtual.slides.unshift(e);
3443            if (s.params.virtual.cache) {
3444              const e = s.virtual.cache,
3445                t = {};
3446              Object.keys(e).forEach((s) => {
3447                const a = e[s],
3448                  r = a.getAttribute("data-swiper-slide-index");
3449                r &&
3450                  a.setAttribute(
3451                    "data-swiper-slide-index",
3452                    parseInt(r, 10) + i
3453                  ),
3454                  (t[parseInt(s, 10) + i] = a);
3455              }),
3456                (s.virtual.cache = t);
3457            }
3458            c(!0), s.slideTo(a, 0);
3459          },
3460          removeSlide: function (e) {
3461            if (null == e) return;
3462            let t = s.activeIndex;
3463            if (Array.isArray(e))
3464              for (let a = e.length - 1; a >= 0; a -= 1)
3465                s.virtual.slides.splice(e[a], 1),
3466                  s.params.virtual.cache && delete s.virtual.cache[e[a]],
3467                  e[a] < t && (t -= 1),
3468                  (t = Math.max(t, 0));
3469            else
3470              s.virtual.slides.splice(e, 1),
3471                s.params.virtual.cache && delete s.virtual.cache[e],
3472                e < t && (t -= 1),
3473                (t = Math.max(t, 0));
3474            c(!0), s.slideTo(t, 0);
3475          },
3476          removeAllSlides: function () {
3477            (s.virtual.slides = []),
3478              s.params.virtual.cache && (s.virtual.cache = {}),
3479              c(!0),
3480              s.slideTo(0, 0);
3481          },
3482          update: c,
3483        });
3484    },
3485    function (e) {
3486      let { swiper: t, extendParams: s, on: i, emit: n } = e;
3487      const l = a(),
3488        o = r();
3489      function d(e) {
3490        if (!t.enabled) return;
3491        const { rtlTranslate: s } = t;
3492        let a = e;
3493        a.originalEvent && (a = a.originalEvent);
3494        const i = a.keyCode || a.charCode,
3495          r = t.params.keyboard.pageUpDown,
3496          d = r && 33 === i,
3497          c = r && 34 === i,
3498          p = 37 === i,
3499          u = 39 === i,
3500          m = 38 === i,
3501          h = 40 === i;
3502        if (
3503          !t.allowSlideNext &&
3504          ((t.isHorizontal() && u) || (t.isVertical() && h) || c)
3505        )
3506          return !1;
3507        if (
3508          !t.allowSlidePrev &&
3509          ((t.isHorizontal() && p) || (t.isVertical() && m) || d)
3510        )
3511          return !1;
3512        if (
3513          !(
3514            a.shiftKey ||
3515            a.altKey ||
3516            a.ctrlKey ||
3517            a.metaKey ||
3518            (l.activeElement &&
3519              l.activeElement.nodeName &&
3520              ("input" === l.activeElement.nodeName.toLowerCase() ||
3521                "textarea" === l.activeElement.nodeName.toLowerCase()))
3522          )
3523        ) {
3524          if (
3525            t.params.keyboard.onlyInViewport &&
3526            (d || c || p || u || m || h)
3527          ) {
3528            let e = !1;
3529            if (
3530              y(t.el, `.${t.params.slideClass}, swiper-slide`).length > 0 &&
3531              0 === y(t.el, `.${t.params.slideActiveClass}`).length
3532            )
3533              return;
3534            const a = t.el,
3535              i = a.clientWidth,
3536              r = a.clientHeight,
3537              n = o.innerWidth,
3538              l = o.innerHeight,
3539              d = v(a);
3540            s && (d.left -= a.scrollLeft);
3541            const c = [
3542              [d.left, d.top],
3543              [d.left + i, d.top],
3544              [d.left, d.top + r],
3545              [d.left + i, d.top + r],
3546            ];
3547            for (let t = 0; t < c.length; t += 1) {
3548              const s = c[t];
3549              if (s[0] >= 0 && s[0] <= n && s[1] >= 0 && s[1] <= l) {
3550                if (0 === s[0] && 0 === s[1]) continue;
3551                e = !0;
3552              }
3553            }
3554            if (!e) return;
3555          }
3556          t.isHorizontal()
3557            ? ((d || c || p || u) &&
3558                (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)),
3559              (((c || u) && !s) || ((d || p) && s)) && t.slideNext(),
3560              (((d || p) && !s) || ((c || u) && s)) && t.slidePrev())
3561            : ((d || c || m || h) &&
3562                (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)),
3563              (c || h) && t.slideNext(),
3564              (d || m) && t.slidePrev()),
3565            n("keyPress", i);
3566        }
3567      }
3568      function c() {
3569        t.keyboard.enabled ||
3570          (l.addEventListener("keydown", d), (t.keyboard.enabled = !0));
3571      }
3572      function p() {
3573        t.keyboard.enabled &&
3574          (l.removeEventListener("keydown", d), (t.keyboard.enabled = !1));
3575      }
3576      (t.keyboard = { enabled: !1 }),
3577        s({
3578          keyboard: {
3579            enabled: !1,
3580            onlyInViewport: !0,
3581            pageUpDown: !0,
3582          },
3583        }),
3584        i("init", () => {
3585          t.params.keyboard.enabled && c();
3586        }),
3587        i("destroy", () => {
3588          t.keyboard.enabled && p();
3589        }),
3590        Object.assign(t.keyboard, { enable: c, disable: p });
3591    },
3592    function (e) {
3593      let { swiper: t, extendParams: s, on: a, emit: i } = e;
3594      const o = r();
3595      let d;
3596      s({
3597        mousewheel: {
3598          enabled: !1,
3599          releaseOnEdges: !1,
3600          invert: !1,
3601          forceToAxis: !1,
3602          sensitivity: 1,
3603          eventsTarget: "container",
3604          thresholdDelta: null,
3605          thresholdTime: null,
3606        },
3607      }),
3608        (t.mousewheel = { enabled: !1 });
3609      let c,
3610        p = l();
3611      const u = [];
3612      function m() {
3613        t.enabled && (t.mouseEntered = !0);
3614      }
3615      function h() {
3616        t.enabled && (t.mouseEntered = !1);
3617      }
3618      function f(e) {
3619        return (
3620          !(
3621            t.params.mousewheel.thresholdDelta &&
3622            e.delta < t.params.mousewheel.thresholdDelta
3623          ) &&
3624          !(
3625            t.params.mousewheel.thresholdTime &&
3626            l() - p < t.params.mousewheel.thresholdTime
3627          ) &&
3628          ((e.delta >= 6 && l() - p < 60) ||
3629            (e.direction < 0
3630              ? (t.isEnd && !t.params.loop) ||
3631                t.animating ||
3632                (t.slideNext(), i("scroll", e.raw))
3633              : (t.isBeginning && !t.params.loop) ||
3634                t.animating ||
3635                (t.slidePrev(), i("scroll", e.raw)),
3636            (p = new o.Date().getTime()),
3637            !1))
3638        );
3639      }
3640      function g(e) {
3641        let s = e,
3642          a = !0;
3643        if (!t.enabled) return;
3644        const r = t.params.mousewheel;
3645        t.params.cssMode && s.preventDefault();
3646        let o = t.el;
3647        "container" !== t.params.mousewheel.eventsTarget &&
3648          (o = document.querySelector(t.params.mousewheel.eventsTarget));
3649        const p = o && o.contains(s.target);
3650        if (!t.mouseEntered && !p && !r.releaseOnEdges) return !0;
3651        s.originalEvent && (s = s.originalEvent);
3652        let m = 0;
3653        const h = t.rtlTranslate ? -1 : 1,
3654          g = (function (e) {
3655            let t = 0,
3656              s = 0,
3657              a = 0,
3658              i = 0;
3659            return (
3660              "detail" in e && (s = e.detail),
3661              "wheelDelta" in e && (s = -e.wheelDelta / 120),
3662              "wheelDeltaY" in e && (s = -e.wheelDeltaY / 120),
3663              "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120),
3664              "axis" in e && e.axis === e.HORIZONTAL_AXIS && ((t = s), (s = 0)),
3665              (a = 10 * t),
3666              (i = 10 * s),
3667              "deltaY" in e && (i = e.deltaY),
3668              "deltaX" in e && (a = e.deltaX),
3669              e.shiftKey && !a && ((a = i), (i = 0)),
3670              (a || i) &&
3671                e.deltaMode &&
3672                (1 === e.deltaMode
3673                  ? ((a *= 40), (i *= 40))
3674                  : ((a *= 800), (i *= 800))),
3675              a && !t && (t = a < 1 ? -1 : 1),
3676              i && !s && (s = i < 1 ? -1 : 1),
3677              { spinX: t, spinY: s, pixelX: a, pixelY: i }
3678            );
3679          })(s);
3680        if (r.forceToAxis)
3681          if (t.isHorizontal()) {
3682            if (!(Math.abs(g.pixelX) > Math.abs(g.pixelY))) return !0;
3683            m = -g.pixelX * h;
3684          } else {
3685            if (!(Math.abs(g.pixelY) > Math.abs(g.pixelX))) return !0;
3686            m = -g.pixelY;
3687          }
3688        else
3689          m =
3690            Math.abs(g.pixelX) > Math.abs(g.pixelY) ? -g.pixelX * h : -g.pixelY;
3691        if (0 === m) return !0;
3692        r.invert && (m = -m);
3693        let v = t.getTranslate() + m * r.sensitivity;
3694        if (
3695          (v >= t.minTranslate() && (v = t.minTranslate()),
3696          v <= t.maxTranslate() && (v = t.maxTranslate()),
3697          (a =
3698            !!t.params.loop ||
3699            !(v === t.minTranslate() || v === t.maxTranslate())),
3700          a && t.params.nested && s.stopPropagation(),
3701          t.params.freeMode && t.params.freeMode.enabled)
3702        ) {
3703          const e = {
3704              time: l(),
3705              delta: Math.abs(m),
3706              direction: Math.sign(m),
3707            },
3708            a =
3709              c &&
3710              e.time < c.time + 500 &&
3711              e.delta <= c.delta &&
3712              e.direction === c.direction;
3713          if (!a) {
3714            c = void 0;
3715            let l = t.getTranslate() + m * r.sensitivity;
3716            const o = t.isBeginning,
3717              p = t.isEnd;
3718            if (
3719              (l >= t.minTranslate() && (l = t.minTranslate()),
3720              l <= t.maxTranslate() && (l = t.maxTranslate()),
3721              t.setTransition(0),
3722              t.setTranslate(l),
3723              t.updateProgress(),
3724              t.updateActiveIndex(),
3725              t.updateSlidesClasses(),
3726              ((!o && t.isBeginning) || (!p && t.isEnd)) &&
3727                t.updateSlidesClasses(),
3728              t.params.loop &&
3729                t.loopFix({
3730                  direction: e.direction < 0 ? "next" : "prev",
3731                  byMousewheel: !0,
3732                }),
3733              t.params.freeMode.sticky)
3734            ) {
3735              clearTimeout(d), (d = void 0), u.length >= 15 && u.shift();
3736              const s = u.length ? u[u.length - 1] : void 0,
3737                a = u[0];
3738              if (
3739                (u.push(e),
3740                s && (e.delta > s.delta || e.direction !== s.direction))
3741              )
3742                u.splice(0);
3743              else if (
3744                u.length >= 15 &&
3745                e.time - a.time < 500 &&
3746                a.delta - e.delta >= 1 &&
3747                e.delta <= 6
3748              ) {
3749                const s = m > 0 ? 0.8 : 0.2;
3750                (c = e),
3751                  u.splice(0),
3752                  (d = n(() => {
3753                    t.slideToClosest(t.params.speed, !0, void 0, s);
3754                  }, 0));
3755              }
3756              d ||
3757                (d = n(() => {
3758                  (c = e),
3759                    u.splice(0),
3760                    t.slideToClosest(t.params.speed, !0, void 0, 0.5);
3761                }, 500));
3762            }
3763            if (
3764              (a || i("scroll", s),
3765              t.params.autoplay &&
3766                t.params.autoplayDisableOnInteraction &&
3767                t.autoplay.stop(),
3768              l === t.minTranslate() || l === t.maxTranslate())
3769            )
3770              return !0;
3771          }
3772        } else {
3773          const s = {
3774            time: l(),
3775            delta: Math.abs(m),
3776            direction: Math.sign(m),
3777            raw: e,
3778          };
3779          u.length >= 2 && u.shift();
3780          const a = u.length ? u[u.length - 1] : void 0;
3781          if (
3782            (u.push(s),
3783            a
3784              ? (s.direction !== a.direction ||
3785                  s.delta > a.delta ||
3786                  s.time > a.time + 150) &&
3787                f(s)
3788              : f(s),
3789            (function (e) {
3790              const s = t.params.mousewheel;
3791              if (e.direction < 0) {
3792                if (t.isEnd && !t.params.loop && s.releaseOnEdges) return !0;
3793              } else if (t.isBeginning && !t.params.loop && s.releaseOnEdges)
3794                return !0;
3795              return !1;
3796            })(s))
3797          )
3798            return !0;
3799        }
3800        return s.preventDefault ? s.preventDefault() : (s.returnValue = !1), !1;
3801      }
3802      function v(e) {
3803        let s = t.el;
3804        "container" !== t.params.mousewheel.eventsTarget &&
3805          (s = document.querySelector(t.params.mousewheel.eventsTarget)),
3806          s[e]("mouseenter", m),
3807          s[e]("mouseleave", h),
3808          s[e]("wheel", g);
3809      }
3810      function w() {
3811        return t.params.cssMode
3812          ? (t.wrapperEl.removeEventListener("wheel", g), !0)
3813          : !t.mousewheel.enabled &&
3814              (v("addEventListener"), (t.mousewheel.enabled = !0), !0);
3815      }
3816      function b() {
3817        return t.params.cssMode
3818          ? (t.wrapperEl.addEventListener(event, g), !0)
3819          : !!t.mousewheel.enabled &&
3820              (v("removeEventListener"), (t.mousewheel.enabled = !1), !0);
3821      }
3822      a("init", () => {
3823        !t.params.mousewheel.enabled && t.params.cssMode && b(),
3824          t.params.mousewheel.enabled && w();
3825      }),
3826        a("destroy", () => {
3827          t.params.cssMode && w(), t.mousewheel.enabled && b();
3828        }),
3829        Object.assign(t.mousewheel, { enable: w, disable: b });
3830    },
3831    function (e) {
3832      let { swiper: t, extendParams: s, on: a, emit: i } = e;
3833      s({
3834        navigation: {
3835          nextEl: null,
3836          prevEl: null,
3837          hideOnClick: !1,
3838          disabledClass: "swiper-button-disabled",
3839          hiddenClass: "swiper-button-hidden",
3840          lockClass: "swiper-button-lock",
3841          navigationDisabledClass: "swiper-navigation-disabled",
3842        },
3843      }),
3844        (t.navigation = { nextEl: null, prevEl: null });
3845      const r = (e) => (Array.isArray(e) || (e = [e].filter((e) => !!e)), e);
3846      function n(e) {
3847        let s;
3848        return e &&
3849          "string" == typeof e &&
3850          t.isElement &&
3851          ((s = t.el.shadowRoot.querySelector(e)), s)
3852          ? s
3853          : (e &&
3854              ("string" == typeof e && (s = [...document.querySelectorAll(e)]),
3855              t.params.uniqueNavElements &&
3856                "string" == typeof e &&
3857                s.length > 1 &&
3858                1 === t.el.querySelectorAll(e).length &&
3859                (s = t.el.querySelector(e))),
3860            e && !s ? e : s);
3861      }
3862      function l(e, s) {
3863        const a = t.params.navigation;
3864        (e = r(e)).forEach((e) => {
3865          e &&
3866            (e.classList[s ? "add" : "remove"](...a.disabledClass.split(" ")),
3867            "BUTTON" === e.tagName && (e.disabled = s),
3868            t.params.watchOverflow &&
3869              t.enabled &&
3870              e.classList[t.isLocked ? "add" : "remove"](a.lockClass));
3871        });
3872      }
3873      function o() {
3874        const { nextEl: e, prevEl: s } = t.navigation;
3875        if (t.params.loop) return l(s, !1), void l(e, !1);
3876        l(s, t.isBeginning && !t.params.rewind),
3877          l(e, t.isEnd && !t.params.rewind);
3878      }
3879      function d(e) {
3880        e.preventDefault(),
3881          (!t.isBeginning || t.params.loop || t.params.rewind) &&
3882            (t.slidePrev(), i("navigationPrev"));
3883      }
3884      function c(e) {
3885        e.preventDefault(),
3886          (!t.isEnd || t.params.loop || t.params.rewind) &&
3887            (t.slideNext(), i("navigationNext"));
3888      }
3889      function p() {
3890        const e = t.params.navigation;
3891        if (
3892          ((t.params.navigation = ee(
3893            t,
3894            t.originalParams.navigation,
3895            t.params.navigation,
3896            {
3897              nextEl: "swiper-button-next",
3898              prevEl: "swiper-button-prev",
3899            }
3900          )),
3901          !e.nextEl && !e.prevEl)
3902        )
3903          return;
3904        let s = n(e.nextEl),
3905          a = n(e.prevEl);
3906        Object.assign(t.navigation, { nextEl: s, prevEl: a }),
3907          (s = r(s)),
3908          (a = r(a));
3909        const i = (s, a) => {
3910          s && s.addEventListener("click", "next" === a ? c : d),
3911            !t.enabled && s && s.classList.add(...e.lockClass.split(" "));
3912        };
3913        s.forEach((e) => i(e, "next")), a.forEach((e) => i(e, "prev"));
3914      }
3915      function u() {
3916        let { nextEl: e, prevEl: s } = t.navigation;
3917        (e = r(e)), (s = r(s));
3918        const a = (e, s) => {
3919          e.removeEventListener("click", "next" === s ? c : d),
3920            e.classList.remove(...t.params.navigation.disabledClass.split(" "));
3921        };
3922        e.forEach((e) => a(e, "next")), s.forEach((e) => a(e, "prev"));
3923      }
3924      a("init", () => {
3925        !1 === t.params.navigation.enabled ? m() : (p(), o());
3926      }),
3927        a("toEdge fromEdge lock unlock", () => {
3928          o();
3929        }),
3930        a("destroy", () => {
3931          u();
3932        }),
3933        a("enable disable", () => {
3934          let { nextEl: e, prevEl: s } = t.navigation;
3935          (e = r(e)),
3936            (s = r(s)),
3937            [...e, ...s]
3938              .filter((e) => !!e)
3939              .forEach((e) =>
3940                e.classList[t.enabled ? "remove" : "add"](
3941                  t.params.navigation.lockClass
3942                )
3943              );
3944        }),
3945        a("click", (e, s) => {
3946          let { nextEl: a, prevEl: n } = t.navigation;
3947          (a = r(a)), (n = r(n));
3948          const l = s.target;
3949          if (
3950            t.params.navigation.hideOnClick &&
3951            !n.includes(l) &&
3952            !a.includes(l)
3953          ) {
3954            if (
3955              t.pagination &&
3956              t.params.pagination &&
3957              t.params.pagination.clickable &&
3958              (t.pagination.el === l || t.pagination.el.contains(l))
3959            )
3960              return;
3961            let e;
3962            a.length
3963              ? (e = a[0].classList.contains(t.params.navigation.hiddenClass))
3964              : n.length &&
3965                (e = n[0].classList.contains(t.params.navigation.hiddenClass)),
3966              i(!0 === e ? "navigationShow" : "navigationHide"),
3967              [...a, ...n]
3968                .filter((e) => !!e)
3969                .forEach((e) =>
3970                  e.classList.toggle(t.params.navigation.hiddenClass)
3971                );
3972          }
3973        });
3974      const m = () => {
3975        t.el.classList.add(
3976          ...t.params.navigation.navigationDisabledClass.split(" ")
3977        ),
3978          u();
3979      };
3980      Object.assign(t.navigation, {
3981        enable: () => {
3982          t.el.classList.remove(
3983            ...t.params.navigation.navigationDisabledClass.split(" ")
3984          ),
3985            p(),
3986            o();
3987        },
3988        disable: m,
3989        update: o,
3990        init: p,
3991        destroy: u,
3992      });
3993    },
3994    function (e) {
3995      let { swiper: t, extendParams: s, on: a, emit: i } = e;
3996      const r = "swiper-pagination";
3997      let n;
3998      s({
3999        pagination: {
4000          el: null,
4001          bulletElement: "span",
4002          clickable: !1,
4003          hideOnClick: !1,
4004          renderBullet: null,
4005          renderProgressbar: null,
4006          renderFraction: null,
4007          renderCustom: null,
4008          progressbarOpposite: !1,
4009          type: "bullets",
4010          dynamicBullets: !1,
4011          dynamicMainBullets: 1,
4012          formatFractionCurrent: (e) => e,
4013          formatFractionTotal: (e) => e,
4014          bulletClass: `${r}-bullet`,
4015          bulletActiveClass: `${r}-bullet-active`,
4016          modifierClass: `${r}-`,
4017          currentClass: `${r}-current`,
4018          totalClass: `${r}-total`,
4019          hiddenClass: `${r}-hidden`,
4020          progressbarFillClass: `${r}-progressbar-fill`,
4021          progressbarOppositeClass: `${r}-progressbar-opposite`,
4022          clickableClass: `${r}-clickable`,
4023          lockClass: `${r}-lock`,
4024          horizontalClass: `${r}-horizontal`,
4025          verticalClass: `${r}-vertical`,
4026          paginationDisabledClass: `${r}-disabled`,
4027        },
4028      }),
4029        (t.pagination = { el: null, bullets: [] });
4030      let l = 0;
4031      const o = (e) => (Array.isArray(e) || (e = [e].filter((e) => !!e)), e);
4032      function d() {
4033        return (
4034          !t.params.pagination.el ||
4035          !t.pagination.el ||
4036          (Array.isArray(t.pagination.el) && 0 === t.pagination.el.length)
4037        );
4038      }
4039      function c(e, s) {
4040        const { bulletActiveClass: a } = t.params.pagination;
4041        e &&
4042          (e = e[("prev" === s ? "previous" : "next") + "ElementSibling"]) &&
4043          (e.classList.add(`${a}-${s}`),
4044          (e = e[("prev" === s ? "previous" : "next") + "ElementSibling"]) &&
4045            e.classList.add(`${a}-${s}-${s}`));
4046      }
4047      function p(e) {
4048        const s = e.target.closest(te(t.params.pagination.bulletClass));
4049        if (!s) return;
4050        e.preventDefault();
4051        const a = b(s) * t.params.slidesPerGroup;
4052        if (t.params.loop) {
4053          if (t.realIndex === a) return;
4054          const e = t.getSlideIndexByData(a),
4055            s = t.getSlideIndexByData(t.realIndex);
4056          e > t.slides.length - t.loopedSlides &&
4057            t.loopFix({
4058              direction: e > s ? "next" : "prev",
4059              activeSlideIndex: e,
4060              slideTo: !1,
4061            }),
4062            t.slideToLoop(a);
4063        } else t.slideTo(a);
4064      }
4065      function u() {
4066        const e = t.rtl,
4067          s = t.params.pagination;
4068        if (d()) return;
4069        let a,
4070          r,
4071          p = t.pagination.el;
4072        p = o(p);
4073        const u =
4074            t.virtual && t.params.virtual.enabled
4075              ? t.virtual.slides.length
4076              : t.slides.length,
4077          m = t.params.loop
4078            ? Math.ceil(u / t.params.slidesPerGroup)
4079            : t.snapGrid.length;
4080        if (
4081          (t.params.loop
4082            ? ((r = t.previousRealIndex || 0),
4083              (a =
4084                t.params.slidesPerGroup > 1
4085                  ? Math.floor(t.realIndex / t.params.slidesPerGroup)
4086                  : t.realIndex))
4087            : void 0 !== t.snapIndex
4088            ? ((a = t.snapIndex), (r = t.previousSnapIndex))
4089            : ((r = t.previousIndex || 0), (a = t.activeIndex || 0)),
4090          "bullets" === s.type &&
4091            t.pagination.bullets &&
4092            t.pagination.bullets.length > 0)
4093        ) {
4094          const i = t.pagination.bullets;
4095          let o, d, u;
4096          if (
4097            (s.dynamicBullets &&
4098              ((n = x(i[0], t.isHorizontal() ? "width" : "height", !0)),
4099              p.forEach((e) => {
4100                e.style[t.isHorizontal() ? "width" : "height"] =
4101                  n * (s.dynamicMainBullets + 4) + "px";
4102              }),
4103              s.dynamicMainBullets > 1 &&
4104                void 0 !== r &&
4105                ((l += a - (r || 0)),
4106                l > s.dynamicMainBullets - 1
4107                  ? (l = s.dynamicMainBullets - 1)
4108                  : l < 0 && (l = 0)),
4109              (o = Math.max(a - l, 0)),
4110              (d = o + (Math.min(i.length, s.dynamicMainBullets) - 1)),
4111              (u = (d + o) / 2)),
4112            i.forEach((e) => {
4113              const t = [
4114                ...[
4115                  "",
4116                  "-next",
4117                  "-next-next",
4118                  "-prev",
4119                  "-prev-prev",
4120                  "-main",
4121                ].map((e) => `${s.bulletActiveClass}${e}`),
4122              ]
4123                .map((e) =>
4124                  "string" == typeof e && e.includes(" ") ? e.split(" ") : e
4125                )
4126                .flat();
4127              e.classList.remove(...t);
4128            }),
4129            p.length > 1)
4130          )
4131            i.forEach((e) => {
4132              const t = b(e);
4133              t === a && e.classList.add(...s.bulletActiveClass.split(" ")),
4134                s.dynamicBullets &&
4135                  (t >= o &&
4136                    t <= d &&
4137                    e.classList.add(
4138                      ...`${s.bulletActiveClass}-main`.split(" ")
4139                    ),
4140                  t === o && c(e, "prev"),
4141                  t === d && c(e, "next"));
4142            });
4143          else {
4144            const e = i[a];
4145            if (
4146              (e && e.classList.add(...s.bulletActiveClass.split(" ")),
4147              s.dynamicBullets)
4148            ) {
4149              const e = i[o],
4150                t = i[d];
4151              for (let e = o; e <= d; e += 1)
4152                i[e] &&
4153                  i[e].classList.add(
4154                    ...`${s.bulletActiveClass}-main`.split(" ")
4155                  );
4156              c(e, "prev"), c(t, "next");
4157            }
4158          }
4159          if (s.dynamicBullets) {
4160            const a = Math.min(i.length, s.dynamicMainBullets + 4),
4161              r = (n * a - n) / 2 - u * n,
4162              l = e ? "right" : "left";
4163            i.forEach((e) => {
4164              e.style[t.isHorizontal() ? l : "top"] = `${r}px`;
4165            });
4166          }
4167        }
4168        p.forEach((e, r) => {
4169          if (
4170            ("fraction" === s.type &&
4171              (e.querySelectorAll(te(s.currentClass)).forEach((e) => {
4172                e.textContent = s.formatFractionCurrent(a + 1);
4173              }),
4174              e.querySelectorAll(te(s.totalClass)).forEach((e) => {
4175                e.textContent = s.formatFractionTotal(m);
4176              })),
4177            "progressbar" === s.type)
4178          ) {
4179            let i;
4180            i = s.progressbarOpposite
4181              ? t.isHorizontal()
4182                ? "vertical"
4183                : "horizontal"
4184              : t.isHorizontal()
4185              ? "horizontal"
4186              : "vertical";
4187            const r = (a + 1) / m;
4188            let n = 1,
4189              l = 1;
4190            "horizontal" === i ? (n = r) : (l = r),
4191              e.querySelectorAll(te(s.progressbarFillClass)).forEach((e) => {
4192                (e.style.transform = `translate3d(0,0,0) scaleX(${n}) scaleY(${l})`),
4193                  (e.style.transitionDuration = `${t.params.speed}ms`);
4194              });
4195          }
4196          "custom" === s.type && s.renderCustom
4197            ? ((e.innerHTML = s.renderCustom(t, a + 1, m)),
4198              0 === r && i("paginationRender", e))
4199            : (0 === r && i("paginationRender", e), i("paginationUpdate", e)),
4200            t.params.watchOverflow &&
4201              t.enabled &&
4202              e.classList[t.isLocked ? "add" : "remove"](s.lockClass);
4203        });
4204      }
4205      function m() {
4206        const e = t.params.pagination;
4207        if (d()) return;
4208        const s =
4209          t.virtual && t.params.virtual.enabled
4210            ? t.virtual.slides.length
4211            : t.slides.length;
4212        let a = t.pagination.el;
4213        a = o(a);
4214        let r = "";
4215        if ("bullets" === e.type) {
4216          let a = t.params.loop
4217            ? Math.ceil(s / t.params.slidesPerGroup)
4218            : t.snapGrid.length;
4219          t.params.freeMode && t.params.freeMode.enabled && a > s && (a = s);
4220          for (let s = 0; s < a; s += 1)
4221            e.renderBullet
4222              ? (r += e.renderBullet.call(t, s, e.bulletClass))
4223              : (r += `<${e.bulletElement} class="${e.bulletClass}"></${e.bulletElement}>`);
4224        }
4225        "fraction" === e.type &&
4226          (r = e.renderFraction
4227            ? e.renderFraction.call(t, e.currentClass, e.totalClass)
4228            : `<span class="${e.currentClass}"></span> / <span class="${e.totalClass}"></span>`),
4229          "progressbar" === e.type &&
4230            (r = e.renderProgressbar
4231              ? e.renderProgressbar.call(t, e.progressbarFillClass)
4232              : `<span class="${e.progressbarFillClass}"></span>`),
4233          (t.pagination.bullets = []),
4234          a.forEach((s) => {
4235            "custom" !== e.type && (s.innerHTML = r || ""),
4236              "bullets" === e.type &&
4237                t.pagination.bullets.push(
4238                  ...s.querySelectorAll(te(e.bulletClass))
4239                );
4240          }),
4241          "custom" !== e.type && i("paginationRender", a[0]);
4242      }
4243      function h() {
4244        t.params.pagination = ee(
4245          t,
4246          t.originalParams.pagination,
4247          t.params.pagination,
4248          { el: "swiper-pagination" }
4249        );
4250        const e = t.params.pagination;
4251        if (!e.el) return;
4252        let s;
4253        "string" == typeof e.el &&
4254          t.isElement &&
4255          (s = t.el.shadowRoot.querySelector(e.el)),
4256          s ||
4257            "string" != typeof e.el ||
4258            (s = [...document.querySelectorAll(e.el)]),
4259          s || (s = e.el),
4260          s &&
4261            0 !== s.length &&
4262            (t.params.uniqueNavElements &&
4263              "string" == typeof e.el &&
4264              Array.isArray(s) &&
4265              s.length > 1 &&
4266              ((s = [...t.el.querySelectorAll(e.el)]),
4267              s.length > 1 &&
4268                (s = s.filter((e) => y(e, ".swiper")[0] === t.el)[0])),
4269            Array.isArray(s) && 1 === s.length && (s = s[0]),
4270            Object.assign(t.pagination, { el: s }),
4271            (s = o(s)),
4272            s.forEach((s) => {
4273              "bullets" === e.type &&
4274                e.clickable &&
4275                s.classList.add(e.clickableClass),
4276                s.classList.add(e.modifierClass + e.type),
4277                s.classList.add(
4278                  t.isHorizontal() ? e.horizontalClass : e.verticalClass
4279                ),
4280                "bullets" === e.type &&
4281                  e.dynamicBullets &&
4282                  (s.classList.add(`${e.modifierClass}${e.type}-dynamic`),
4283                  (l = 0),
4284                  e.dynamicMainBullets < 1 && (e.dynamicMainBullets = 1)),
4285                "progressbar" === e.type &&
4286                  e.progressbarOpposite &&
4287                  s.classList.add(e.progressbarOppositeClass),
4288                e.clickable && s.addEventListener("click", p),
4289                t.enabled || s.classList.add(e.lockClass);
4290            }));
4291      }
4292      function f() {
4293        const e = t.params.pagination;
4294        if (d()) return;
4295        let s = t.pagination.el;
4296        s &&
4297          ((s = o(s)),
4298          s.forEach((s) => {
4299            s.classList.remove(e.hiddenClass),
4300              s.classList.remove(e.modifierClass + e.type),
4301              s.classList.remove(
4302                t.isHorizontal() ? e.horizontalClass : e.verticalClass
4303              ),
4304              e.clickable && s.removeEventListener("click", p);
4305          })),
4306          t.pagination.bullets &&
4307            t.pagination.bullets.forEach((t) =>
4308              t.classList.remove(...e.bulletActiveClass.split(" "))
4309            );
4310      }
4311      a("changeDirection", () => {
4312        if (!t.pagination || !t.pagination.el) return;
4313        const e = t.params.pagination;
4314        let { el: s } = t.pagination;
4315        (s = o(s)),
4316          s.forEach((s) => {
4317            s.classList.remove(e.horizontalClass, e.verticalClass),
4318              s.classList.add(
4319                t.isHorizontal() ? e.horizontalClass : e.verticalClass
4320              );
4321          });
4322      }),
4323        a("init", () => {
4324          !1 === t.params.pagination.enabled ? g() : (h(), m(), u());
4325        }),
4326        a("activeIndexChange", () => {
4327          void 0 === t.snapIndex && u();
4328        }),
4329        a("snapIndexChange", () => {
4330          u();
4331        }),
4332        a("snapGridLengthChange", () => {
4333          m(), u();
4334        }),
4335        a("destroy", () => {
4336          f();
4337        }),
4338        a("enable disable", () => {
4339          let { el: e } = t.pagination;
4340          e &&
4341            ((e = o(e)),
4342            e.forEach((e) =>
4343              e.classList[t.enabled ? "remove" : "add"](
4344                t.params.pagination.lockClass
4345              )
4346            ));
4347        }),
4348        a("lock unlock", () => {
4349          u();
4350        }),
4351        a("click", (e, s) => {
4352          const a = s.target;
4353          let { el: r } = t.pagination;
4354          if (
4355            (Array.isArray(r) || (r = [r].filter((e) => !!e)),
4356            t.params.pagination.el &&
4357              t.params.pagination.hideOnClick &&
4358              r &&
4359              r.length > 0 &&
4360              !a.classList.contains(t.params.pagination.bulletClass))
4361          ) {
4362            if (
4363              t.navigation &&
4364              ((t.navigation.nextEl && a === t.navigation.nextEl) ||
4365                (t.navigation.prevEl && a === t.navigation.prevEl))
4366            )
4367              return;
4368            const e = r[0].classList.contains(t.params.pagination.hiddenClass);
4369            i(!0 === e ? "paginationShow" : "paginationHide"),
4370              r.forEach((e) =>
4371                e.classList.toggle(t.params.pagination.hiddenClass)
4372              );
4373          }
4374        });
4375      const g = () => {
4376        t.el.classList.add(t.params.pagination.paginationDisabledClass);
4377        let { el: e } = t.pagination;
4378        e &&
4379          ((e = o(e)),
4380          e.forEach((e) =>
4381            e.classList.add(t.params.pagination.paginationDisabledClass)
4382          )),
4383          f();
4384      };
4385      Object.assign(t.pagination, {
4386        enable: () => {
4387          t.el.classList.remove(t.params.pagination.paginationDisabledClass);
4388          let { el: e } = t.pagination;
4389          e &&
4390            ((e = o(e)),
4391            e.forEach((e) =>
4392              e.classList.remove(t.params.pagination.paginationDisabledClass)
4393            )),
4394            h(),
4395            m(),
4396            u();
4397        },
4398        disable: g,
4399        render: m,
4400        update: u,
4401        init: h,
4402        destroy: f,
4403      });
4404    },
4405    function (e) {
4406      let { swiper: t, extendParams: s, on: i, emit: r }
4406 = e;
4407      const l = a();
4408      let o,
4409        d,
4410        c,
4411        p,
4412        u = !1,
4413        m = null,
4414        h = null;
4415      function f() {
4416        if (!t.params.scrollbar.el || !t.scrollbar.el) return;
4417        const { scrollbar: e, rtlTranslate: s } = t,
4418          { dragEl: a, el: i } = e,
4419          r = t.params.scrollbar,
4420          n = t.params.loop ? t.progressLoop : t.progress;
4421        let l = d,
4422          o = (c - d) * n;
4423        s
4424          ? ((o = -o),
4425            o > 0 ? ((l = d - o), (o = 0)) : -o + d > c && (l = c + o))
4426          : o < 0
4427          ? ((l = d + o), (o = 0))
4428          : o + d > c && (l = c - o),
4429          t.isHorizontal()
4430            ? ((a.style.transform = `translate3d(${o}px, 0, 0)`),
4431              (a.style.width = `${l}px`))
4432            : ((a.style.transform = `translate3d(0px, ${o}px, 0)`),
4433              (a.style.height = `${l}px`)),
4434          r.hide &&
4435            (clearTimeout(m),
4436            (i.style.opacity = 1),
4437            (m = setTimeout(() => {
4438              (i.style.opacity = 0), (i.style.transitionDuration = "400ms");
4439            }, 1e3)));
4440      }
4441      function w() {
4442        if (!t.params.scrollbar.el || !t.scrollbar.el) return;
4443        const { scrollbar: e } = t,
4444          { dragEl: s, el: a } = e;
4445        (s.style.width = ""),
4446          (s.style.height = ""),
4447          (c = t.isHorizontal() ? a.offsetWidth : a.offsetHeight),
4448          (p =
4449            t.size /
4450            (t.virtualSize +
4451              t.params.slidesOffsetBefore -
4452              (t.params.centeredSlides ? t.snapGrid[0] : 0))),
4453          (d =
4454            "auto" === t.params.scrollbar.dragSize
4455              ? c * p
4456              : parseInt(t.params.scrollbar.dragSize, 10)),
4457          t.isHorizontal()
4458            ? (s.style.width = `${d}px`)
4459            : (s.style.height = `${d}px`),
4460          (a.style.display = p >= 1 ? "none" : ""),
4461          t.params.scrollbar.hide && (a.style.opacity = 0),
4462          t.params.watchOverflow &&
4463            t.enabled &&
4464            e.el.classList[t.isLocked ? "add" : "remove"](
4465              t.params.scrollbar.lockClass
4466            );
4467      }
4468      function b(e) {
4469        return t.isHorizontal() ? e.clientX : e.clientY;
4470      }
4471      function y(e) {
4472        const { scrollbar: s, rtlTranslate: a } = t,
4473          { el: i } = s;
4474        let r;
4475        (r =
4476          (b(e) -
4477            v(i)[t.isHorizontal() ? "left" : "top"] -
4478            (null !== o ? o : d / 2)) /
4479          (c - d)),
4480          (r = Math.max(Math.min(r, 1), 0)),
4481          a && (r = 1 - r);
4482        const n = t.minTranslate() + (t.maxTranslate() - t.minTranslate()) * r;
4483        t.updateProgress(n),
4484          t.setTranslate(n),
4485          t.updateActiveIndex(),
4486          t.updateSlidesClasses();
4487      }
4488      function E(e) {
4489        const s = t.params.scrollbar,
4490          { scrollbar: a, wrapperEl: i } = t,
4491          { el: n, dragEl: l } = a;
4492        (u = !0),
4493          (o =
4494            e.target === l
4495              ? b(e) -
4496                e.target.getBoundingClientRect()[
4497                  t.isHorizontal() ? "left" : "top"
4498                ]
4499              : null),
4500          e.preventDefault(),
4501          e.stopPropagation(),
4502          (i.style.transitionDuration = "100ms"),
4503          (l.style.transitionDuration = "100ms"),
4504          y(e),
4505          clearTimeout(h),
4506          (n.style.transitionDuration = "0ms"),
4507          s.hide && (n.style.opacity = 1),
4508          t.params.cssMode && (t.wrapperEl.style["scroll-snap-type"] = "none"),
4509          r("scrollbarDragStart", e);
4510      }
4511      function x(e) {
4512        const { scrollbar: s, wrapperEl: a } = t,
4513          { el: i, dragEl: n } = s;
4514        u &&
4515          (e.preventDefault ? e.preventDefault() : (e.returnValue = !1),
4516          y(e),
4517          (a.style.transitionDuration = "0ms"),
4518          (i.style.transitionDuration = "0ms"),
4519          (n.style.transitionDuration = "0ms"),
4520          r("scrollbarDragMove", e));
4521      }
4522      function S(e) {
4523        const s = t.params.scrollbar,
4524          { scrollbar: a, wrapperEl: i } = t,
4525          { el: l } = a;
4526        u &&
4527          ((u = !1),
4528          t.params.cssMode &&
4529            ((t.wrapperEl.style["scroll-snap-type"] = ""),
4530            (i.style.transitionDuration = "")),
4531          s.hide &&
4532            (clearTimeout(h),
4533            (h = n(() => {
4534              (l.style.opacity = 0), (l.style.transitionDuration = "400ms");
4535            }, 1e3))),
4536          r("scrollbarDragEnd", e),
4537          s.snapOnRelease && t.slideToClosest());
4538      }
4539      function T(e) {
4540        const { scrollbar: s, params: a } = t,
4541          i = s.el;
4542        if (!i) return;
4543        const r = i,
4544          n = !!a.passiveListeners && { passive: !1, capture: !1 },
4545          o = !!a.passiveListeners && { passive: !0, capture: !1 };
4546        if (!r) return;
4547        const d = "on" === e ? "addEventListener" : "removeEventListener";
4548        r[d]("pointerdown", E, n),
4549          l[d]("pointermove", x, n),
4550          l[d]("pointerup", S, o);
4551      }
4552      function M() {
4553        const { scrollbar: e, el: s } = t;
4554        t.params.scrollbar = ee(
4555          t,
4556          t.originalParams.scrollbar,
4557          t.params.scrollbar,
4558          { el: "swiper-scrollbar" }
4559        );
4560        const a = t.params.scrollbar;
4561        if (!a.el) return;
4562        let i, r;
4563        "string" == typeof a.el &&
4564          t.isElement &&
4565          (i = t.el.shadowRoot.querySelector(a.el)),
4566          i || "string" != typeof a.el
4567            ? i || (i = a.el)
4568            : (i = l.querySelectorAll(a.el)),
4569          t.params.uniqueNavElements &&
4570            "string" == typeof a.el &&
4571            i.length > 1 &&
4572            1 === s.querySelectorAll(a.el).length &&
4573            (i = s.querySelector(a.el)),
4574          i.length > 0 && (i = i[0]),
4575          i.classList.add(
4576            t.isHorizontal() ? a.horizontalClass : a.verticalClass
4577          ),
4578          i &&
4579            ((r = i.querySelector(`.${t.params.scrollbar.dragClass}`)),
4580            r || ((r = g("div", t.params.scrollbar.dragClass)), i.append(r))),
4581          Object.assign(e, { el: i, dragEl: r }),
4582          a.draggable && t.params.scrollbar.el && t.scrollbar.el && T("on"),
4583          i &&
4584            i.classList[t.enabled ? "remove" : "add"](
4585              t.params.scrollbar.lockClass
4586            );
4587      }
4588      function C() {
4589        const e = t.params.scrollbar,
4590          s = t.scrollbar.el;
4591        s &&
4592          s.classList.remove(
4593            t.isHorizontal() ? e.horizontalClass : e.verticalClass
4594          ),
4595          t.params.scrollbar.el && t.scrollbar.el && T("off");
4596      }
4597      s({
4598        scrollbar: {
4599          el: null,
4600          dragSize: "auto",
4601          hide: !1,
4602          draggable: !1,
4603          snapOnRelease: !0,
4604          lockClass: "swiper-scrollbar-lock",
4605          dragClass: "swiper-scrollbar-drag",
4606          scrollbarDisabledClass: "swiper-scrollbar-disabled",
4607          horizontalClass: "swiper-scrollbar-horizontal",
4608          verticalClass: "swiper-scrollbar-vertical",
4609        },
4610      }),
4611        (t.scrollbar = { el: null, dragEl: null }),
4612        i("init", () => {
4613          !1 === t.params.scrollbar.enabled ? P() : (M(), w(), f());
4614        }),
4615        i("update resize observerUpdate lock unlock", () => {
4616          w();
4617        }),
4618        i("setTranslate", () => {
4619          f();
4620        }),
4621        i("setTransition", (e, s) => {
4622          !(function (e) {
4623            t.params.scrollbar.el &&
4624              t.scrollbar.el &&
4625              (t.scrollbar.dragEl.style.transitionDuration = `${e}ms`);
4626          })(s);
4627        }),
4628        i("enable disable", () => {
4629          const { el: e } = t.scrollbar;
4630          e &&
4631            e.classList[t.enabled ? "remove" : "add"](
4632              t.params.scrollbar.lockClass
4633            );
4634        }),
4635        i("destroy", () => {
4636          C();
4637        });
4638      const P = () => {
4639        t.el.classList.add(t.params.scrollbar.scrollbarDisabledClass),
4640          t.scrollbar.el &&
4641            t.scrollbar.el.classList.add(
4642              t.params.scrollbar.scrollbarDisabledClass
4643            ),
4644          C();
4645      };
4646      Object.assign(t.scrollbar, {
4647        enable: () => {
4648          t.el.classList.remove(t.params.scrollbar.scrollbarDisabledClass),
4649            t.scrollbar.el &&
4650              t.scrollbar.el.classList.remove(
4651                t.params.scrollbar.scrollbarDisabledClass
4652              ),
4653            M(),
4654            w(),
4655            f();
4656        },
4657        disable: P,
4658        updateSize: w,
4659        setTranslate: f,
4660        init: M,
4661        destroy: C,
4662      });
4663    },
4664    function (e) {
4665      let { swiper: t, extendParams: s, on: a } = e;
4666      s({ parallax: { enabled: !1 } });
4667      const i = (e, s) => {
4668          const { rtl: a } = t,
4669            i = a ? -1 : 1,
4670            r = e.getAttribute("data-swiper-parallax") || "0";
4671          let n = e.getAttribute("data-swiper-parallax-x"),
4672            l = e.getAttribute("data-swiper-parallax-y");
4673          const o = e.getAttribute("data-swiper-parallax-scale"),
4674            d = e.getAttribute("data-swiper-parallax-opacity"),
4675            c = e.getAttribute("data-swiper-parallax-rotate");
4676          if (
4677            (n || l
4678              ? ((n = n || "0"), (l = l || "0"))
4679              : t.isHorizontal()
4680              ? ((n = r), (l = "0"))
4681              : ((l = r), (n = "0")),
4682            (n =
4683              n.indexOf("%") >= 0
4684                ? parseInt(n, 10) * s * i + "%"
4685                : n * s * i + "px"),
4686            (l =
4687              l.indexOf("%") >= 0 ? parseInt(l, 10) * s + "%" : l * s + "px"),
4688            null != d)
4689          ) {
4690            const t = d - (d - 1) * (1 - Math.abs(s));
4691            e.style.opacity = t;
4692          }
4693          let p = `translate3d(${n}, ${l}, 0px)`;
4694          if (null != o) {
4695            p += ` scale(${o - (o - 1) * (1 - Math.abs(s))})`;
4696          }
4697          if (c && null != c) {
4698            p += ` rotate(${c * s * -1}deg)`;
4699          }
4700          e.style.transform = p;
4701        },
4702        r = () => {
4703          const { el: e, slides: s, progress: a, snapGrid: r } = t;
4704          f(
4705            e,
4706            "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]"
4707          ).forEach((e) => {
4708            i(e, a);
4709          }),
4710            s.forEach((e, s) => {
4711              let n = e.progress;
4712              t.params.slidesPerGroup > 1 &&
4713                "auto" !== t.params.slidesPerView &&
4714                (n += Math.ceil(s / 2) - a * (r.length - 1)),
4715                (n = Math.min(Math.max(n, -1), 1)),
4716                e
4717                  .querySelectorAll(
4718                    "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale], [data-swiper-parallax-rotate]"
4719                  )
4720                  .forEach((e) => {
4721                    i(e, n);
4722                  });
4723            });
4724        };
4725      a("beforeInit", () => {
4726        t.params.parallax.enabled &&
4727          ((t.params.watchSlidesProgress = !0),
4728          (t.originalParams.watchSlidesProgress = !0));
4729      }),
4730        a("init", () => {
4731          t.params.parallax.enabled && r();
4732        }),
4733        a("setTranslate", () => {
4734          t.params.parallax.enabled && r();
4735        }),
4736        a("setTransition", (e, s) => {
4737          t.params.parallax.enabled &&
4738            (function (e) {
4739              void 0 === e && (e = t.params.speed);
4740              const { el: s } = t;
4741              s.querySelectorAll(
4742                "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]"
4743              ).forEach((t) => {
4744                let s =
4745                  parseInt(
4746                    t.getAttribute("data-swiper-parallax-duration"),
4747                    10
4748                  ) || e;
4749                0 === e && (s = 0), (t.style.transitionDuration = `${s}ms`);
4750              });
4751            })(s);
4752        });
4753    },
4754    function (e) {
4755      let { swiper: t, extendParams: s, on: a, emit: i } = e;
4756      const n = r();
4757      s({
4758        zoom: {
4759          enabled: !1,
4760          maxRatio: 3,
4761          minRatio: 1,
4762          toggle: !0,
4763          containerClass: "swiper-zoom-container",
4764          zoomedSlideClass: "swiper-slide-zoomed",
4765        },
4766      }),
4767        (t.zoom = { enabled: !1 });
4768      let l,
4769        d,
4770        c = 1,
4771        p = !1;
4772      const u = [],
4773        m = {
4774          originX: 0,
4775          originY: 0,
4776          slideEl: void 0,
4777          slideWidth: void 0,
4778          slideHeight: void 0,
4779          imageEl: void 0,
4780          imageWrapEl: void 0,
4781          maxRatio: 3,
4782        },
4783        h = {
4784          isTouched: void 0,
4785          isMoved: void 0,
4786          currentX: void 0,
4787          currentY: void 0,
4788          minX: void 0,
4789          minY: void 0,
4790          maxX: void 0,
4791          maxY: void 0,
4792          width: void 0,
4793          height: void 0,
4794          startX: void 0,
4795          startY: void 0,
4796          touchesStart: {},
4797          touchesCurrent: {},
4798        },
4799        g = {
4800          x: void 0,
4801          y: void 0,
4802          prevPositionX: void 0,
4803          prevPositionY: void 0,
4804          prevTime: void 0,
4805        };
4806      let w = 1;
4807      function b() {
4808        if (u.length < 2) return 1;
4809        const e = u[0].pageX,
4810          t = u[0].pageY,
4811          s = u[1].pageX,
4812          a = u[1].pageY;
4813        return Math.sqrt((s - e) ** 2 + (a - t) ** 2);
4814      }
4815      function E(e) {
4816        const s = t.isElement ? "swiper-slide" : `.${t.params.slideClass}`;
4817        return (
4818          !!e.target.matches(s) ||
4819          t.slides.filter((t) => t.contains(e.target)).length > 0
4820        );
4821      }
4822      function x(e) {
4823        if (("mouse" === e.pointerType && u.splice(0, u.length), !E(e))) return;
4824        const s = t.params.zoom;
4825        if (((l = !1), (d = !1), u.push(e), !(u.length < 2))) {
4826          if (((l = !0), (m.scaleStart = b()), !m.slideEl)) {
4827            (m.slideEl = e.target.closest(
4828              `.${t.params.slideClass}, swiper-slide`
4829            )),
4830              m.slideEl || (m.slideEl = t.slides[t.activeIndex]);
4831            let a = m.slideEl.querySelector(`.${s.containerClass}`);
4832            if (
4833              (a &&
4834                (a = a.querySelectorAll(
4835                  "picture, img, svg, canvas, .swiper-zoom-target"
4836                )[0]),
4837              (m.imageEl = a),
4838              (m.imageWrapEl = a
4839                ? y(m.imageEl, `.${s.containerClass}`)[0]
4840                : void 0),
4841              !m.imageWrapEl)
4842            )
4843              return void (m.imageEl = void 0);
4844            m.maxRatio =
4845              m.imageWrapEl.getAttribute("data-swiper-zoom") || s.maxRatio;
4846          }
4847          if (m.imageEl) {
4848            const [e, t] = (function () {
4849              if (u.length < 2) return { x: null, y: null };
4850              const e = m.imageEl.getBoundingClientRect();
4851              return [
4852                (u[0].pageX + (u[1].pageX - u[0].pageX) / 2 - e.x) / c,
4853                (u[0].pageY + (u[1].pageY - u[0].pageY) / 2 - e.y) / c,
4854              ];
4855            })();
4856            (m.originX = e),
4857              (m.originY = t),
4858              (m.imageEl.style.transitionDuration = "0ms");
4859          }
4860          p = !0;
4861        }
4862      }
4863      function S(e) {
4864        if (!E(e)) return;
4865        const s = t.params.zoom,
4866          a = t.zoom,
4867          i = u.findIndex((t) => t.pointerId === e.pointerId);
4868        i >= 0 && (u[i] = e),
4869          u.length < 2 ||
4870            ((d = !0),
4871            (m.scaleMove = b()),
4872            m.imageEl &&
4873              ((a.scale = (m.scaleMove / m.scaleStart) * c),
4874              a.scale > m.maxRatio &&
4875                (a.scale = m.maxRatio - 1 + (a.scale - m.maxRatio + 1) ** 0.5),
4876              a.scale < s.minRatio &&
4877                (a.scale = s.minRatio + 1 - (s.minRatio - a.scale + 1) ** 0.5),
4878              (m.imageEl.style.transform = `translate3d(0,0,0) scale(${a.scale})`)));
4879      }
4880      function T(e) {
4881        if (!E(e)) return;
4882        if ("mouse" === e.pointerType && "pointerout" === e.type) return;
4883        const s = t.params.zoom,
4884          a = t.zoom,
4885          i = u.findIndex((t) => t.pointerId === e.pointerId);
4886        i >= 0 && u.splice(i, 1),
4887          l &&
4888            d &&
4889            ((l = !1),
4890            (d = !1),
4891            m.imageEl &&
4892              ((a.scale = Math.max(Math.min(a.scale, m.maxRatio), s.minRatio)),
4893              (m.imageEl.style.transitionDuration = `${t.params.speed}ms`),
4894              (m.imageEl.style.transform = `translate3d(0,0,0) scale(${a.scale})`),
4895              (c = a.scale),
4896              (p = !1),
4897              a.scale > 1 && m.slideEl
4898                ? m.slideEl.classList.add(`${s.zoomedSlideClass}`)
4899                : a.scale <= 1 &&
4900                  m.slideEl &&
4901                  m.slideEl.classList.remove(`${s.zoomedSlideClass}`),
4902              1 === a.scale &&
4903                ((m.originX = 0), (m.originY = 0), (m.slideEl = void 0))));
4904      }
4905      function M(e) {
4906        if (
4907          !E(e) ||
4908          !(function (e) {
4909            const s = `.${t.params.zoom.containerClass}`;
4910            return (
4911              !!e.target.matches(s) ||
4912              [...t.el.querySelectorAll(s)].filter((t) => t.contains(e.target))
4913                .length > 0
4914            );
4915          })(e)
4916        )
4917          return;
4918        const s = t.zoom;
4919        if (!m.imageEl) return;
4920        if (!h.isTouched || !m.slideEl) return;
4921        h.isMoved ||
4922          ((h.width = m.imageEl.offsetWidth),
4923          (h.height = m.imageEl.offsetHeight),
4924          (h.startX = o(m.imageWrapEl, "x") || 0),
4925          (h.startY = o(m.imageWrapEl, "y") || 0),
4926          (m.slideWidth = m.slideEl.offsetWidth),
4927          (m.slideHeight = m.slideEl.offsetHeight),
4928          (m.imageWrapEl.style.transitionDuration = "0ms"));
4929        const a = h.width * s.scale,
4930          i = h.height * s.scale;
4931        if (a < m.slideWidth && i < m.slideHeight) return;
4932        (h.minX = Math.min(m.slideWidth / 2 - a / 2, 0)),
4933          (h.maxX = -h.minX),
4934          (h.minY = Math.min(m.slideHeight / 2 - i / 2, 0)),
4935          (h.maxY = -h.minY),
4936          (h.touchesCurrent.x = u.length > 0 ? u[0].pageX : e.pageX),
4937          (h.touchesCurrent.y = u.length > 0 ? u[0].pageY : e.pageY);
4938        if (
4939          (Math.max(
4940            Math.abs(h.touchesCurrent.x - h.touchesStart.x),
4941            Math.abs(h.touchesCurrent.y - h.touchesStart.y)
4942          ) > 5 && (t.allowClick = !1),
4943          !h.isMoved && !p)
4944        ) {
4945          if (
4946            t.isHorizontal() &&
4947            ((Math.floor(h.minX) === Math.floor(h.startX) &&
4948              h.touchesCurrent.x < h.touchesStart.x) ||
4949              (Math.floor(h.maxX) === Math.floor(h.startX) &&
4950                h.touchesCurrent.x > h.touchesStart.x))
4951          )
4952            return void (h.isTouched = !1);
4953          if (
4954            !t.isHorizontal() &&
4955            ((Math.floor(h.minY) === Math.floor(h.startY) &&
4956              h.touchesCurrent.y < h.touchesStart.y) ||
4957              (Math.floor(h.maxY) === Math.floor(h.startY) &&
4958                h.touchesCurrent.y > h.touchesStart.y))
4959          )
4960            return void (h.isTouched = !1);
4961        }
4962        e.cancelable && e.preventDefault(),
4963          e.stopPropagation(),
4964          (h.isMoved = !0);
4965        const r = (s.scale - c) / (m.maxRatio - t.params.zoom.minRatio),
4966          { originX: n, originY: l } = m;
4967        (h.currentX =
4968          h.touchesCurrent.x -
4969          h.touchesStart.x +
4970          h.startX +
4971          r * (h.width - 2 * n)),
4972          (h.currentY =
4973            h.touchesCurrent.y -
4974            h.touchesStart.y +
4975            h.startY +
4976            r * (h.height - 2 * l)),
4977          h.currentX < h.minX &&
4978            (h.currentX = h.minX + 1 - (h.minX - h.currentX + 1) ** 0.8),
4979          h.currentX > h.maxX &&
4980            (h.currentX = h.maxX - 1 + (h.currentX - h.maxX + 1) ** 0.8),
4981          h.currentY < h.minY &&
4982            (h.currentY = h.minY + 1 - (h.minY - h.currentY + 1) ** 0.8),
4983          h.currentY > h.maxY &&
4984            (h.currentY = h.maxY - 1 + (h.currentY - h.maxY + 1) ** 0.8),
4985          g.prevPositionX || (g.prevPositionX = h.touchesCurrent.x),
4986          g.prevPositionY || (g.prevPositionY = h.touchesCurrent.y),
4987          g.prevTime || (g.prevTime = Date.now()),
4988          (g.x =
4989            (h.touchesCurrent.x - g.prevPositionX) /
4990            (Date.now() - g.prevTime) /
4991            2),
4992          (g.y =
4993            (h.touchesCurrent.y - g.prevPositionY) /
4994            (Date.now() - g.prevTime) /
4995            2),
4996          Math.abs(h.touchesCurrent.x - g.prevPositionX) < 2 && (g.x = 0),
4997          Math.abs(h.touchesCurrent.y - g.prevPositionY) < 2 && (g.y = 0),
4998          (g.prevPositionX = h.touchesCurrent.x),
4999          (g.prevPositionY = h.touchesCurrent.y),
5000          (g.prevTime = Date.now()),
5001          (m.imageWrapEl.style.transform = `translate3d(${h.currentX}px, ${h.currentY}px,0)`);
5002      }
5003      function C() {
5004        const e = t.zoom;
5005        m.slideEl &&
5006          t.activeIndex !== t.slides.indexOf(m.slideEl) &&
5007          (m.imageEl &&
5008            (m.imageEl.style.transform = "translate3d(0,0,0) scale(1)"),
5009          m.imageWrapEl &&
5010            (m.imageWrapEl.style.transform = "translate3d(0,0,0)"),
5011          m.slideEl.classList.remove(`${t.params.zoom.zoomedSlideClass}`),
5012          (e.scale = 1),
5013          (c = 1),
5014          (m.slideEl = void 0),
5015          (m.imageEl = void 0),
5016          (m.imageWrapEl = void 0),
5017          (m.originX = 0),
5018          (m.originY = 0));
5019      }
5020      function P(e) {
5021        const s = t.zoom,
5022          a = t.params.zoom;
5023        if (!m.slideEl) {
5024          e &&
5025            e.target &&
5026            (m.slideEl = e.target.closest(
5027              `.${t.params.slideClass}, swiper-slide`
5028            )),
5029            m.slideEl ||
5030              (t.params.virtual && t.params.virtual.enabled && t.virtual
5031                ? (m.slideEl = f(
5032                    t.slidesEl,
5033                    `.${t.params.slideActiveClass}`
5034                  )[0])
5035                : (m.slideEl = t.slides[t.activeIndex]));
5036          let s = m.slideEl.querySelector(`.${a.containerClass}`);
5037          s &&
5038            (s = s.querySelectorAll(
5039              "picture, img, svg, canvas, .swiper-zoom-target"
5040            )[0]),
5041            (m.imageEl = s),
5042            (m.imageWrapEl = s
5043              ? y(m.imageEl, `.${a.containerClass}`)[0]
5044              : void 0);
5045        }
5046        if (!m.imageEl || !m.imageWrapEl) return;
5047        let i, r, l, o, d, p, u, g, w, b, E, x, S, T, M, C, P, L;
5048        t.params.cssMode &&
5049          ((t.wrapperEl.style.overflow = "hidden"),
5050          (t.wrapperEl.style.touchAction = "none")),
5051          m.slideEl.classList.add(`${a.zoomedSlideClass}`),
5052          void 0 === h.touchesStart.x && e
5053            ? ((i = e.pageX), (r = e.pageY))
5054            : ((i = h.touchesStart.x), (r = h.touchesStart.y));
5055        const z = "number" == typeof e ? e : null;
5056        1 === c && z && ((i = void 0), (r = void 0)),
5057          (s.scale =
5058            z || m.imageWrapEl.getAttribute("data-swiper-zoom") || a.maxRatio),
5059          (c =
5060            z || m.imageWrapEl.getAttribute("data-swiper-zoom") || a.maxRatio),
5061          !e || (1 === c && z)
5062            ? ((u = 0), (g = 0))
5063            : ((P = m.slideEl.offsetWidth),
5064              (L = m.slideEl.offsetHeight),
5065              (l = v(m.slideEl).left + n.scrollX),
5066              (o = v(m.slideEl).top + n.scrollY),
5067              (d = l + P / 2 - i),
5068              (p = o + L / 2 - r),
5069              (w = m.imageEl.offsetWidth),
5070              (b = m.imageEl.offsetHeight),
5071              (E = w * s.scale),
5072              (x = b * s.scale),
5073              (S = Math.min(P / 2 - E / 2, 0)),
5074              (T = Math.min(L / 2 - x / 2, 0)),
5075              (M = -S),
5076              (C = -T),
5077              (u = d * s.scale),
5078              (g = p * s.scale),
5079              u < S && (u = S),
5080              u > M && (u = M),
5081              g < T && (g = T),
5082              g > C && (g = C)),
5083          z && 1 === s.scale && ((m.originX = 0), (m.originY = 0)),
5084          (m.imageWrapEl.style.transitionDuration = "300ms"),
5085          (m.imageWrapEl.style.transform = `translate3d(${u}px, ${g}px,0)`),
5086          (m.imageEl.style.transitionDuration = "300ms"),
5087          (m.imageEl.style.transform = `translate3d(0,0,0) scale(${s.scale})`);
5088      }
5089      function L() {
5090        const e = t.zoom,
5091          s = t.params.zoom;
5092        if (!m.slideEl) {
5093          t.params.virtual && t.params.virtual.enabled && t.virtual
5094            ? (m.slideEl = f(t.slidesEl, `.${t.params.slideActiveClass}`)[0])
5095            : (m.slideEl = t.slides[t.activeIndex]);
5096          let e = m.slideEl.querySelector(`.${s.containerClass}`);
5097          e &&
5098            (e = e.querySelectorAll(
5099              "picture, img, svg, canvas, .swiper-zoom-target"
5100            )[0]),
5101            (m.imageEl = e),
5102            (m.imageWrapEl = e
5103              ? y(m.imageEl, `.${s.containerClass}`)[0]
5104              : void 0);
5105        }
5106        m.imageEl &&
5107          m.imageWrapEl &&
5108          (t.params.cssMode &&
5109            ((t.wrapperEl.style.overflow = ""),
5110            (t.wrapperEl.style.touchAction = "")),
5111          (e.scale = 1),
5112          (c = 1),
5113          (m.imageWrapEl.style.transitionDuration = "300ms"),
5114          (m.imageWrapEl.style.transform = "translate3d(0,0,0)"),
5115          (m.imageEl.style.transitionDuration = "300ms"),
5116          (m.imageEl.style.transform = "translate3d(0,0,0) scale(1)"),
5117          m.slideEl.classList.remove(`${s.zoomedSlideClass}`),
5118          (m.slideEl = void 0),
5119          (m.originX = 0),
5120          (m.originY = 0));
5121      }
5122      function z(e) {
5123        const s = t.zoom;
5124        s.scale && 1 !== s.scale ? L() : P(e);
5125      }
5126      function A() {
5127        return {
5128          passiveListener: !!t.params.passiveListeners && {
5129            passive: !0,
5130            capture: !1,
5131          },
5132          activeListenerWithCapture: !t.params.passiveListeners || {
5133            passive: !1,
5134            capture: !0,
5135          },
5136        };
5137      }
5138      function k() {
5139        const e = t.zoom;
5140        if (e.enabled) return;
5141        e.enabled = !0;
5142        const { passiveListener: s, activeListenerWithCapture: a } = A();
5143        t.wrapperEl.addEventListener("pointerdown", x, s),
5144          t.wrapperEl.addEventListener("pointermove", S, a),
5145          ["pointerup", "pointercancel", "pointerout"].forEach((e) => {
5146            t.wrapperEl.addEventListener(e, T, s);
5147          }),
5148          t.wrapperEl.addEventListener("pointermove", M, a);
5149      }
5150      function $() {
5151        const e = t.zoom;
5152        if (!e.enabled) return;
5153        e.enabled = !1;
5154        const { passiveListener: s, activeListenerWithCapture: a } = A();
5155        t.wrapperEl.removeEventListener("pointerdown", x, s),
5156          t.wrapperEl.removeEventListener("pointermove", S, a),
5157          ["pointerup", "pointercancel", "pointerout"].forEach((e) => {
5158            t.wrapperEl.removeEventListener(e, T, s);
5159          }),
5160          t.wrapperEl.removeEventListener("pointermove", M, a);
5161      }
5162      Object.defineProperty(t.zoom, "scale", {
5163        get: () => w,
5164        set(e) {
5165          if (w !== e) {
5166            const t = m.imageEl,
5167              s = m.slideEl;
5168            i("zoomChange", e, t, s);
5169          }
5170          w = e;
5171        },
5172      }),
5173        a("init", () => {
5174          t.params.zoom.enabled && k();
5175        }),
5176        a("destroy", () => {
5177          $();
5178        }),
5179        a("touchStart", (e, s) => {
5180          t.zoom.enabled &&
5181            (function (e) {
5182              const s = t.device;
5183              if (!m.imageEl) return;
5184              if (h.isTouched) return;
5185              s.android && e.cancelable && e.preventDefault(),
5186                (h.isTouched = !0);
5187              const a = u.length > 0 ? u[0] : e;
5188              (h.touchesStart.x = a.pageX), (h.touchesStart.y = a.pageY);
5189            })(s);
5190        }),
5191        a("touchEnd", (e, s) => {
5192          t.zoom.enabled &&
5193            (function () {
5194              const e = t.zoom;
5195              if (!m.imageEl) return;
5196              if (!h.isTouched || !h.isMoved)
5197                return (h.isTouched = !1), void (h.isMoved = !1);
5198              (h.isTouched = !1), (h.isMoved = !1);
5199              let s = 300,
5200                a = 300;
5201              const i = g.x * s,
5202                r = h.currentX + i,
5203                n = g.y * a,
5204                l = h.currentY + n;
5205              0 !== g.x && (s = Math.abs((r - h.currentX) / g.x)),
5206                0 !== g.y && (a = Math.abs((l - h.currentY) / g.y));
5207              const o = Math.max(s, a);
5208              (h.currentX = r), (h.currentY = l);
5209              const d = h.width * e.scale,
5210                c = h.height * e.scale;
5211              (h.minX = Math.min(m.slideWidth / 2 - d / 2, 0)),
5212                (h.maxX = -h.minX),
5213                (h.minY = Math.min(m.slideHeight / 2 - c / 2, 0)),
5214                (h.maxY = -h.minY),
5215                (h.currentX = Math.max(Math.min(h.currentX, h.maxX), h.minX)),
5216                (h.currentY = Math.max(Math.min(h.currentY, h.maxY), h.minY)),
5217                (m.imageWrapEl.style.transitionDuration = `${o}ms`),
5218                (m.imageWrapEl.style.transform = `translate3d(${h.currentX}px, ${h.currentY}px,0)`);
5219            })();
5220        }),
5221        a("doubleTap", (e, s) => {
5222          !t.animating &&
5223            t.params.zoom.enabled &&
5224            t.zoom.enabled &&
5225            t.params.zoom.toggle &&
5226            z(s);
5227        }),
5228        a("transitionEnd", () => {
5229          t.zoom.enabled && t.params.zoom.enabled && C();
5230        }),
5231        a("slideChange", () => {
5232          t.zoom.enabled && t.params.zoom.enabled && t.params.cssMode && C();
5233        }),
5234        Object.assign(t.zoom, {
5235          enable: k,
5236          disable: $,
5237          in: P,
5238          out: L,
5239          toggle: z,
5240        });
5241    },
5242    function (e) {
5243      let { swiper: t, extendParams: s, on: a } = e;
5244      function i(e, t) {
5245        const s = (function () {
5246          let e, t, s;
5247          return (a, i) => {
5248            for (t = -1, e = a.length; e - t > 1; )
5249              (s = (e + t) >> 1), a[s] <= i ? (t = s) : (e = s);
5250            return e;
5251          };
5252        })();
5253        let a, i;
5254        return (
5255          (this.x = e),
5256          (this.y = t),
5257          (this.lastIndex = e.length - 1),
5258          (this.interpolate = function (e) {
5259            return e
5260              ? ((i = s(this.x, e)),
5261                (a = i - 1),
5262                ((e - this.x[a]) * (this.y[i] - this.y[a])) /
5263                  (this.x[i] - this.x[a]) +
5264                  this.y[a])
5265              : 0;
5266          }),
5267          this
5268        );
5269      }
5270      function r() {
5271        t.controller.control &&
5272          t.controller.spline &&
5273          ((t.controller.spline = void 0), delete t.controller.spline);
5274      }
5275      s({ controller: { control: void 0, inverse: !1, by: "slide" } }),
5276        (t.controller = { control: void 0 }),
5277        a("beforeInit", () => {
5278          if (
5279            "undefined" != typeof window &&
5280            ("string" == typeof t.params.controller.control ||
5281              t.params.controller.control instanceof HTMLElement)
5282          ) {
5283            const e = document.querySelector(t.params.controller.control);
5284            if (e && e.swiper) t.controller.control = e.swiper;
5285            else if (e) {
5286              const s = (a) => {
5287                (t.controller.control = a.detail[0]),
5288                  t.update(),
5289                  e.removeEventListener("init", s);
5290              };
5291              e.addEventListener("init", s);
5292            }
5293          } else t.controller.control = t.params.controller.control;
5294        }),
5295        a("update", () => {
5296          r();
5297        }),
5298        a("resize", () => {
5299          r();
5300        }),
5301        a("observerUpdate", () => {
5302          r();
5303        }),
5304        a("setTranslate", (e, s, a) => {
5305          t.controller.control &&
5306            !t.controller.control.destroyed &&
5307            t.controller.setTranslate(s, a);
5308        }),
5309        a("setTransition", (e, s, a) => {
5310          t.controller.control &&
5311            !t.controller.control.destroyed &&
5312            t.controller.setTransition(s, a);
5313        }),
5314        Object.assign(t.controller, {
5315          setTranslate: function (e, s) {
5316            const a = t.controller.control;
5317            let r, n;
5318            const l = t.constructor;
5319            function o(e) {
5320              if (e.destroyed) return;
5321              const s = t.rtlTranslate ? -t.translate : t.translate;
5322              "slide" === t.params.controller.by &&
5323                (!(function (e) {
5324                  t.controller.spline = t.params.loop
5325                    ? new i(t.slidesGrid, e.slidesGrid)
5326                    : new i(t.snapGrid, e.snapGrid);
5327                })(e),
5328                (n = -t.controller.spline.interpolate(-s))),
5329                (n && "container" !== t.params.controller.by) ||
5330                  ((r =
5331                    (e.maxTranslate() - e.minTranslate()) /
5332                    (t.maxTranslate() - t.minTranslate())),
5333                  (!Number.isNaN(r) && Number.isFinite(r)) || (r = 1),
5334                  (n = (s - t.minTranslate()) * r + e.minTranslate())),
5335                t.params.controller.inverse && (n = e.maxTranslate() - n),
5336                e.updateProgress(n),
5337                e.setTranslate(n, t),
5338                e.updateActiveIndex(),
5339                e.updateSlidesClasses();
5340            }
5341            if (Array.isArray(a))
5342              for (let e = 0; e < a.length; e += 1)
5343                a[e] !== s && a[e] instanceof l && o(a[e]);
5344            else a instanceof l && s !== a && o(a);
5345          },
5346          setTransition: function (e, s) {
5347            const a = t.constructor,
5348              i = t.controller.control;
5349            let r;
5350            function l(s) {
5351              s.destroyed ||
5352                (s.setTransition(e, t),
5353                0 !== e &&
5354                  (s.transitionStart(),
5355                  s.params.autoHeight &&
5356                    n(() => {
5357                      s.updateAutoHeight();
5358                    }),
5359                  E(s.wrapperEl, () => {
5360                    i && s.transitionEnd();
5361                  })));
5362            }
5363            if (Array.isArray(i))
5364              for (r = 0; r < i.length; r += 1)
5365                i[r] !== s && i[r] instanceof a && l(i[r]);
5366            else i instanceof a && s !== i && l(i);
5367          },
5368        });
5369    },
5370    function (e) {
5371      let { swiper: t, extendParams: s, on: a } = e;
5372      s({
5373        a11y: {
5374          enabled: !0,
5375          notificationClass: "swiper-notification",
5376          prevSlideMessage: "Previous slide",
5377          nextSlideMessage: "Next slide",
5378          firstSlideMessage: "This is the first slide",
5379          lastSlideMessage: "This is the last slide",
5380          paginationBulletMessage: "Go to slide {{index}}",
5381          slideLabelMessage: "{{index}} / {{slidesLength}}",
5382          containerMessage: null,
5383          containerRoleDescriptionMessage: null,
5384          itemRoleDescriptionMessage: null,
5385          slideRole: "group",
5386          id: null,
5387        },
5388      }),
5389        (t.a11y = { clicked: !1 });
5390      let i = null;
5391      function r(e) {
5392        const t = i;
5393        0 !== t.length && ((t.innerHTML = ""), (t.innerHTML = e));
5394      }
5395      const n = (e) => (Array.isArray(e) || (e = [e].filter((e) => !!e)), e);
5396      function l(e) {
5397        (e = n(e)).forEach((e) => {
5398          e.setAttribute("tabIndex", "0");
5399        });
5400      }
5401      function o(e) {
5402        (e = n(e)).forEach((e) => {
5403          e.setAttribute("tabIndex", "-1");
5404        });
5405      }
5406      function d(e, t) {
5407        (e = n(e)).forEach((e) => {
5408          e.setAttribute("role", t);
5409        });
5410      }
5411      function c(e, t) {
5412        (e = n(e)).forEach((e) => {
5413          e.setAttribute("aria-roledescription", t);
5414        });
5415      }
5416      function p(e, t) {
5417        (e = n(e)).forEach((e) => {
5418          e.setAttribute("aria-label", t);
5419        });
5420      }
5421      function u(e) {
5422        (e = n(e)).forEach((e) => {
5423          e.setAttribute("aria-disabled", !0);
5424        });
5425      }
5426      function m(e) {
5427        (e = n(e)).forEach((e) => {
5428          e.setAttribute("aria-disabled", !1);
5429        });
5430      }
5431      function h(e) {
5432        if (13 !== e.keyCode && 32 !== e.keyCode) return;
5433        const s = t.params.a11y,
5434          a = e.target;
5435        (t.pagination &&
5436          t.pagination.el &&
5437          (a === t.pagination.el || t.pagination.el.contains(e.target)) &&
5438          !e.target.matches(te(t.params.pagination.bulletClass))) ||
5439          (t.navigation &&
5440            t.navigation.nextEl &&
5441            a === t.navigation.nextEl &&
5442            ((t.isEnd && !t.params.loop) || t.slideNext(),
5443            t.isEnd ? r(s.lastSlideMessage) : r(s.nextSlideMessage)),
5444          t.navigation &&
5445            t.navigation.prevEl &&
5446            a === t.navigation.prevEl &&
5447            ((t.isBeginning && !t.params.loop) || t.slidePrev(),
5448            t.isBeginning ? r(s.firstSlideMessage) : r(s.prevSlideMessage)),
5449          t.pagination &&
5450            a.matches(te(t.params.pagination.bulletClass)) &&
5451            a.click());
5452      }
5453      function f() {
5454        return (
5455          t.pagination && t.pagination.bullets && t.pagination.bullets.length
5456        );
5457      }
5458      function v() {
5459        return f() && t.params.pagination.clickable;
5460      }
5461      const w = (e, t, s) => {
5462          l(e),
5463            "BUTTON" !== e.tagName &&
5464              (d(e, "button"), e.addEventListener("keydown", h)),
5465            p(e, s),
5466            (function (e, t) {
5467              (e = n(e)).forEach((e) => {
5468                e.setAttribute("aria-controls", t);
5469              });
5470            })(e, t);
5471        },
5472        y = () => {
5473          t.a11y.clicked = !0;
5474        },
5475        E = () => {
5476          requestAnimationFrame(() => {
5477            requestAnimationFrame(() => {
5478              t.destroyed || (t.a11y.clicked = !1);
5479            });
5480          });
5481        },
5482        x = (e) => {
5483          if (t.a11y.clicked) return;
5484          const s = e.target.closest(`.${t.params.slideClass}, swiper-slide`);
5485          if (!s || !t.slides.includes(s)) return;
5486          const a = t.slides.indexOf(s) === t.activeIndex,
5487            i =
5488              t.params.watchSlidesProgress &&
5489              t.visibleSlides &&
5490              t.visibleSlides.includes(s);
5491          a ||
5492            i ||
5493            (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) ||
5494            (t.isHorizontal() ? (t.el.scrollLeft = 0) : (t.el.scrollTop = 0),
5495            t.slideTo(t.slides.indexOf(s), 0));
5496        },
5497        S = () => {
5498          const e = t.params.a11y;
5499          e.itemRoleDescriptionMessage &&
5500            c(t.slides, e.itemRoleDescriptionMessage),
5501            e.slideRole && d(t.slides, e.slideRole);
5502          const s = t.slides.length;
5503          e.slideLabelMessage &&
5504            t.slides.forEach((a, i) => {
5505              const r = t.params.loop
5506                ? parseInt(a.getAttribute("data-swiper-slide-index"), 10)
5507                : i;
5508              p(
5509                a,
5510                e.slideLabelMessage
5511                  .replace(/\{\{index\}\}/, r + 1)
5512                  .replace(/\{\{slidesLength\}\}/, s)
5513              );
5514            });
5515        },
5516        T = () => {
5517          const e = t.params.a11y;
5518          t.el.append(i);
5519          const s = t.el;
5520          e.containerRoleDescriptionMessage &&
5521            c(s, e.containerRoleDescriptionMessage),
5522            e.containerMessage && p(s, e.containerMessage);
5523          const a = t.wrapperEl,
5524            r =
5525              e.id ||
5526              a.getAttribute("id") ||
5527              `swiper-wrapper-${
5528                ((l = 16),
5529                void 0 === l && (l = 16),
5530                "x"
5531                  .repeat(l)
5532                  .replace(/x/g, () =>
5533                    Math.round(16 * Math.random()).toString(16)
5534                  ))
5535              }`;
5536          var l;
5537          const o =
5538            t.params.autoplay && t.params.autoplay.enabled ? "off" : "polite";
5539          var d;
5540          (d = r),
5541            n(a).forEach((e) => {
5542              e.setAttribute("id", d);
5543            }),
5544            (function (e, t) {
5545              (e = n(e)).forEach((e) => {
5546                e.setAttribute("aria-live", t);
5547              });
5548            })(a, o),
5549            S();
5550          let { nextEl: u, prevEl: m } = t.navigation ? t.navigation : {};
5551          if (
5552            ((u = n(u)),
5553            (m = n(m)),
5554            u && u.forEach((t) => w(t, r, e.nextSlideMessage)),
5555            m && m.forEach((t) => w(t, r, e.prevSlideMessage)),
5556            v())
5557          ) {
5558            (Array.isArray(t.pagination.el)
5559              ? t.pagination.el
5560              : [t.pagination.el]
5561            ).forEach((e) => {
5562              e.addEventListener("keydown", h);
5563            });
5564          }
5565          t.el.addEventListener("focus", x, !0),
5566            t.el.addEventListener("pointerdown", y, !0),
5567            t.el.addEventListener("pointerup", E, !0);
5568        };
5569      a("beforeInit", () => {
5570        (i = g("span", t.params.a11y.notificationClass)),
5571          i.setAttribute("aria-live", "assertive"),
5572          i.setAttribute("aria-atomic", "true"),
5573          t.isElement && i.setAttribute("slot", "container-end");
5574      }),
5575        a("afterInit", () => {
5576          t.params.a11y.enabled && T();
5577        }),
5578        a(
5579          "slidesLengthChange snapGridLengthChange slidesGridLengthChange",
5580          () => {
5581            t.params.a11y.enabled && S();
5582          }
5583        ),
5584        a("fromEdge toEdge afterInit lock unlock", () => {
5585          t.params.a11y.enabled &&
5586            (function () {
5587              if (t.params.loop || t.params.rewind || !t.navigation) return;
5588              const { nextEl: e, prevEl: s } = t.navigation;
5589              s && (t.isBeginning ? (u(s), o(s)) : (m(s), l(s))),
5590                e && (t.isEnd ? (u(e), o(e)) : (m(e), l(e)));
5591            })();
5592        }),
5593        a("paginationUpdate", () => {
5594          t.params.a11y.enabled &&
5595            (function () {
5596              const e = t.params.a11y;
5597              f() &&
5598                t.pagination.bullets.forEach((s) => {
5599                  t.params.pagination.clickable &&
5600                    (l(s),
5601                    t.params.pagination.renderBullet ||
5602                      (d(s, "button"),
5603                      p(
5604                        s,
5605                        e.paginationBulletMessage.replace(
5606                          /\{\{index\}\}/,
5607                          b(s) + 1
5608                        )
5609                      ))),
5610                    s.matches(te(t.params.pagination.bulletActiveClass))
5611                      ? s.setAttribute("aria-current", "true")
5612                      : s.removeAttribute("aria-current");
5613                });
5614            })();
5615        }),
5616        a("destroy", () => {
5617          t.params.a11y.enabled &&
5618            (function () {
5619              i && i.length > 0 && i.remove();
5620              let { nextEl: e, prevEl: s } = t.navigation ? t.navigation : {};
5621              (e = n(e)),
5622                (s = n(s)),
5623                e && e.forEach((e) => e.removeEventListener("keydown", h)),
5624                s && s.forEach((e) => e.removeEventListener("keydown", h)),
5625                v() &&
5626                  (Array.isArray(t.pagination.el)
5627                    ? t.pagination.el
5628                    : [t.pagination.el]
5629                  ).forEach((e) => {
5630                    e.removeEventListener("keydown", h);
5631                  });
5632              t.el.removeEventListener("focus", x, !0),
5633                t.el.removeEventListener("pointerdown", y, !0),
5634                t.el.removeEventListener("pointerup", E, !0);
5635            })();
5636        });
5637    },
5638    function (e) {
5639      let { swiper: t, extendParams: s, on: a } = e;
5640      s({
5641        history: {
5642          enabled: !1,
5643          root: "",
5644          replaceState: !1,
5645          key: "slides",
5646          keepQuery: !1,
5647        },
5648      });
5649      let i = !1,
5650        n = {};
5651      const l = (e) =>
5652          e
5653            .toString()
5654            .replace(/\s+/g, "-")
5655            .replace(/[^\w-]+/g, "")
5656            .replace(/--+/g, "-")
5657            .replace(/^-+/, "")
5658            .replace(/-+$/, ""),
5659        o = (e) => {
5660          const t = r();
5661          let s;
5662          s = e ? new URL(e) : t.location;
5663          const a = s.pathname
5664              .slice(1)
5665              .split("/")
5666              .filter((e) => "" !== e),
5667            i = a.length;
5668          return { key: a[i - 2], value: a[i - 1] };
5669        },
5670        d = (e, s) => {
5671          const a = r();
5672          if (!i || !t.params.history.enabled) return;
5673          let n;
5674          n = t.params.url ? new URL(t.params.url) : a.location;
5675          const o = t.slides[s];
5676          let d = l(o.getAttribute("data-history"));
5677          if (t.params.history.root.length > 0) {
5678            let s = t.params.history.root;
5679            "/" === s[s.length - 1] && (s = s.slice(0, s.length - 1)),
5680              (d = `${s}/${e ? `${e}/` : ""}${d}`);
5681          } else n.pathname.includes(e) || (d = `${e ? `${e}/` : ""}${d}`);
5682          t.params.history.keepQuery && (d += n.search);
5683          const c = a.history.state;
5684          (c && c.value === d) ||
5685            (t.params.history.replaceState
5686              ? a.history.replaceState({ value: d }, null, d)
5687              : a.history.pushState({ value: d }, null, d));
5688        },
5689        c = (e, s, a) => {
5690          if (s)
5691            for (let i = 0, r = t.slides.length; i < r; i += 1) {
5692              const r = t.slides[i];
5693              if (l(r.getAttribute("data-history")) === s) {
5694                const s = t.getSlideIndex(r);
5695                t.slideTo(s, e, a);
5696              }
5697            }
5698          else t.slideTo(0, e, a);
5699        },
5700        p = () => {
5701          (n = o(t.params.url)), c(t.params.speed, n.value, !1);
5702        };
5703      a("init", () => {
5704        t.params.history.enabled &&
5705          (() => {
5706            const e = r();
5707            if (t.params.history) {
5708              if (!e.history || !e.history.pushState)
5709                return (
5710                  (t.params.history.enabled = !1),
5711                  void (t.params.hashNavigation.enabled = !0)
5712                );
5713              (i = !0),
5714                (n = o(t.params.url)),
5715                n.key || n.value
5716                  ? (c(0, n.value, t.params.runCallbacksOnInit),
5717                    t.params.history.replaceState ||
5718                      e.addEventListener("popstate", p))
5719                  : t.params.history.replaceState ||
5720                    e.addEventListener("popstate", p);
5721            }
5722          })();
5723      }),
5724        a("destroy", () => {
5725          t.params.history.enabled &&
5726            (() => {
5727              const e = r();
5728              t.params.history.replaceState ||
5729                e.removeEventListener("popstate", p);
5730            })();
5731        }),
5732        a("transitionEnd _freeModeNoMomentumRelease", () => {
5733          i && d(t.params.history.key, t.activeIndex);
5734        }),
5735        a("slideChange", () => {
5736          i && t.params.cssMode && d(t.params.history.key, t.activeIndex);
5737        });
5738    },
5739    function (e) {
5740      let { swiper: t, extendParams: s, emit: i, on: n } = e,
5741        l = !1;
5742      const o = a(),
5743        d = r();
5744      s({
5745        hashNavigation: {
5746          enabled: !1,
5747          replaceState: !1,
5748          watchState: !1,
5749        },
5750      });
5751      const c = () => {
5752          i("hashChange");
5753          const e = o.location.hash.replace("#", "");
5754          if (e !== t.slides[t.activeIndex].getAttribute("data-hash")) {
5755            const s = t.getSlideIndex(
5756              f(
5757                t.slidesEl,
5758                `.${t.params.slideClass}[data-hash="${e}"], swiper-slide[data-hash="${e}"]`
5759              )[0]
5760            );
5761            if (void 0 === s) return;
5762            t.slideTo(s);
5763          }
5764        },
5765        p = () => {
5766          if (l && t.params.hashNavigation.enabled)
5767            if (
5768              t.params.hashNavigation.replaceState &&
5769              d.history &&
5770              d.history.replaceState
5771            )
5772              d.history.replaceState(
5773                null,
5774                null,
5775                `#${t.slides[t.activeIndex].getAttribute("data-hash")}` || ""
5776              ),
5777                i("hashSet");
5778            else {
5779              const e = t.slides[t.activeIndex],
5780                s =
5781                  e.getAttribute("data-hash") || e.getAttribute("data-history");
5782              (o.location.hash = s || ""), i("hashSet");
5783            }
5784        };
5785      n("init", () => {
5786        t.params.hashNavigation.enabled &&
5787          (() => {
5788            if (
5789              !t.params.hashNavigation.enabled ||
5790              (t.params.history && t.params.history.enabled)
5791            )
5792              return;
5793            l = !0;
5794            const e = o.location.hash.replace("#", "");
5795            if (e) {
5796              const s = 0;
5797              for (let a = 0, i = t.slides.length; a < i; a += 1) {
5798                const i = t.slides[a];
5799                if (
5800                  (i.getAttribute("data-hash") ||
5801                    i.getAttribute("data-history")) === e
5802                ) {
5803                  const e = t.getSlideIndex(i);
5804                  t.slideTo(e, s, t.params.runCallbacksOnInit, !0);
5805                }
5806              }
5807            }
5808            t.params.hashNavigation.watchState &&
5809              d.addEventListener("hashchange", c);
5810          })();
5811      }),
5812        n("destroy", () => {
5813          t.params.hashNavigation.enabled &&
5814            t.params.hashNavigation.watchState &&
5815            d.removeEventListener("hashchange", c);
5816        }),
5817        n("transitionEnd _freeModeNoMomentumRelease", () => {
5818          l && p();
5819        }),
5820        n("slideChange", () => {
5821          l && t.params.cssMode && p();
5822        });
5823    },
5824    function (e) {
5825      let t,
5826        s,
5827        { swiper: i, extendParams: r, on: n, emit: l, params: o } = e;
5828      (i.autoplay = { running: !1, paused: !1, timeLeft: 0 }),
5829        r({
5830          autoplay: {
5831            enabled: !1,
5832            delay: 3e3,
5833            waitForTransition: !0,
5834            disableOnInteraction: !0,
5835            stopOnLastSlide: !1,
5836            reverseDirection: !1,
5837            pauseOnMouseEnter: !1,
5838          },
5839        });
5840      let d,
5841        c,
5842        p,
5843        u,
5844        m,
5845        h,
5846        f,
5847        g = o && o.autoplay ? o.autoplay.delay : 3e3,
5848        v = o && o.autoplay ? o.autoplay.delay : 3e3,
5849        w = new Date().getTime;
5850      function b(e) {
5851        i &&
5852          !i.destroyed &&
5853          i.wrapperEl &&
5854          e.target === i.wrapperEl &&
5855          (i.wrapperEl.removeEventListener("transitionend", b), M());
5856      }
5857      const y = () => {
5858          if (i.destroyed || !i.autoplay.running) return;
5859          i.autoplay.paused ? (c = !0) : c && ((v = d), (c = !1));
5860          const e = i.autoplay.paused ? d : w + v - new Date().getTime();
5861          (i.autoplay.timeLeft = e),
5862            l("autoplayTimeLeft", e, e / g),
5863            (s = requestAnimationFrame(() => {
5864              y();
5865            }));
5866        },
5867        E = (e) => {
5868          if (i.destroyed || !i.autoplay.running) return;
5869          cancelAnimationFrame(s), y();
5870          let a = void 0 === e ? i.params.autoplay.delay : e;
5871          (g = i.params.autoplay.delay), (v = i.params.autoplay.delay);
5872          const r = (() => {
5873            let e;
5874            if (
5875              ((e =
5876                i.virtual && i.params.virtual.enabled
5877                  ? i.slides.filter((e) =>
5878                      e.classList.contains("swiper-slide-active")
5879                    )[0]
5880                  : i.slides[i.activeIndex]),
5881              !e)
5882            )
5883              return;
5884            return parseInt(e.getAttribute("data-swiper-autoplay"), 10);
5885          })();
5886          !Number.isNaN(r) &&
5887            r > 0 &&
5888            void 0 === e &&
5889            ((a = r), (g = r), (v = r)),
5890            (d = a);
5891          const n = i.params.speed,
5892            o = () => {
5893              i &&
5894                !i.destroyed &&
5895                (i.params.autoplay.reverseDirection
5896                  ? !i.isBeginning || i.params.loop || i.params.rewind
5897                    ? (i.slidePrev(n, !0, !0), l("autoplay"))
5898                    : i.params.autoplay.stopOnLastSlide ||
5899                      (i.slideTo(i.slides.length - 1, n, !0, !0), l("autoplay"))
5900                  : !i.isEnd || i.params.loop || i.params.rewind
5901                  ? (i.slideNext(n, !0, !0), l("autoplay"))
5902                  : i.params.autoplay.stopOnLastSlide ||
5903                    (i.slideTo(0, n, !0, !0), l("autoplay")),
5904                i.params.cssMode &&
5905                  ((w = new Date().getTime()),
5906                  requestAnimationFrame(() => {
5907                    E();
5908                  })));
5909            };
5910          return (
5911            a > 0
5912              ? (clearTimeout(t),
5913                (t = setTimeout(() => {
5914                  o();
5915                }, a)))
5916              : requestAnimationFrame(() => {
5917                  o();
5918                }),
5919            a
5920          );
5921        },
5922        x = () => {
5923          (i.autoplay.running = !0), E(), l("autoplayStart");
5924        },
5925        S = () => {
5926          (i.autoplay.running = !1),
5927            clearTimeout(t),
5928            cancelAnimationFrame(s),
5929            l("autoplayStop");
5930        },
5931        T = (e, s) => {
5932          if (i.destroyed || !i.autoplay.running) return;
5933          clearTimeout(t), e || (f = !0);
5934          const a = () => {
5935            l("autoplayPause"),
5936              i.params.autoplay.waitForTransition
5937                ? i.wrapperEl.addEventListener("transitionend", b)
5938                : M();
5939          };
5940          if (((i.autoplay.paused = !0), s))
5941            return h && (d = i.params.autoplay.delay), (h = !1), void a();
5942          const r = d || i.params.autoplay.delay;
5943          (d = r - (new Date().getTime() - w)),
5944            (i.isEnd && d < 0 && !i.params.loop) || (d < 0 && (d = 0), a());
5945        },
5946        M = () => {
5947          (i.isEnd && d < 0 && !i.params.loop) ||
5948            i.destroyed ||
5949            !i.autoplay.running ||
5950            ((w = new Date().getTime()),
5951            f ? ((f = !1), E(d)) : E(),
5952            (i.autoplay.paused = !1),
5953            l("autoplayResume"));
5954        },
5955        C = () => {
5956          if (i.destroyed || !i.autoplay.running) return;
5957          const e = a();
5958          "hidden" === e.visibilityState && ((f = !0), T(!0)),
5959            "visible" === e.visibilityState && M();
5960        },
5961        P = (e) => {
5962          "mouse" === e.pointerType && ((f = !0), T(!0));
5963        },
5964        L = (e) => {
5965          "mouse" === e.pointerType && i.autoplay.paused && M();
5966        };
5967      n("init", () => {
5968        i.params.autoplay.enabled &&
5969          (i.params.autoplay.pauseOnMouseEnter &&
5970            (i.el.addEventListener("pointerenter", P),
5971            i.el.addEventListener("pointerleave", L)),
5972          a().addEventListener("visibilitychange", C),
5973          (w = new Date().getTime()),
5974          x());
5975      }),
5976        n("destroy", () => {
5977          i.el.removeEventListener("pointerenter", P),
5978            i.el.removeEventListener("pointerleave", L),
5979            a().removeEventListener("visibilitychange", C),
5980            i.autoplay.running && S();
5981        }),
5982        n("beforeTransitionStart", (e, t, s) => {
5983          !i.destroyed &&
5984            i.autoplay.running &&
5985            (s || !i.params.autoplay.disableOnInteraction ? T(!0, !0) : S());
5986        }),
5987        n("sliderFirstMove", () => {
5988          !i.destroyed &&
5989            i.autoplay.running &&
5990            (i.params.autoplay.disableOnInteraction
5991              ? S()
5992              : ((p = !0),
5993                (u = !1),
5994                (f = !1),
5995                (m = setTimeout(() => {
5996                  (f = !0), (u = !0), T(!0);
5997                }, 200))));
5998        }),
5999        n("touchEnd", () => {
6000          if (!i.destroyed && i.autoplay.running && p) {
6001            if (
6002              (clearTimeout(m),
6003              clearTimeout(t),
6004              i.params.autoplay.disableOnInteraction)
6005            )
6006              return (u = !1), void (p = !1);
6007            u && i.params.cssMode && M(), (u = !1), (p = !1);
6008          }
6009        }),
6010        n("slideChange", () => {
6011          !i.destroyed && i.autoplay.running && (h = !0);
6012        }),
6013        Object.assig
6013n(i.autoplay, {
6014          start: x,
6015          stop: S,
6016          pause: T,
6017          resume: M,
6018        });
6019    },
6020    function (e) {
6021      let { swiper: t, extendParams: s, on: i } = e;
6022      s({
6023        thumbs: {
6024          swiper: null,
6025          multipleActiveThumbs: !0,
6026          autoScrollOffset: 0,
6027          slideThumbActiveClass: "swiper-slide-thumb-active",
6028          thumbsContainerClass: "swiper-thumbs",
6029        },
6030      });
6031      let r = !1,
6032        n = !1;
6033      function l() {
6034        const e = t.thumbs.swiper;
6035        if (!e || e.destroyed) return;
6036        const s = e.clickedIndex,
6037          a = e.clickedSlide;
6038        if (a && a.classList.contains(t.params.thumbs.slideThumbActiveClass))
6039          return;
6040        if (null == s) return;
6041        let i;
6042        (i = e.params.loop
6043          ? parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"), 10)
6044          : s),
6045          t.params.loop ? t.slideToLoop(i) : t.slideTo(i);
6046      }
6047      function o() {
6048        const { thumbs: e } = t.params;
6049        if (r) return !1;
6050        r = !0;
6051        const s = t.constructor;
6052        if (e.swiper instanceof s)
6053          (t.thumbs.swiper = e.swiper),
6054            Object.assign(t.thumbs.swiper.originalParams, {
6055              watchSlidesProgress: !0,
6056              slideToClickedSlide: !1,
6057            }),
6058            Object.assign(t.thumbs.swiper.params, {
6059              watchSlidesProgress: !0,
6060              slideToClickedSlide: !1,
6061            }),
6062            t.thumbs.swiper.update();
6063        else if (d(e.swiper)) {
6064          const a = Object.assign({}, e.swiper);
6065          Object.assign(a, {
6066            watchSlidesProgress: !0,
6067            slideToClickedSlide: !1,
6068          }),
6069            (t.thumbs.swiper = new s(a)),
6070            (n = !0);
6071        }
6072        return (
6073          t.thumbs.swiper.el.classList.add(
6074            t.params.thumbs.thumbsContainerClass
6075          ),
6076          t.thumbs.swiper.on("tap", l),
6077          !0
6078        );
6079      }
6080      function c(e) {
6081        const s = t.thumbs.swiper;
6082        if (!s || s.destroyed) return;
6083        const a =
6084          "auto" === s.params.slidesPerView
6085            ? s.slidesPerViewDynamic()
6086            : s.params.slidesPerView;
6087        let i = 1;
6088        const r = t.params.thumbs.slideThumbActiveClass;
6089        if (
6090          (t.params.slidesPerView > 1 &&
6091            !t.params.centeredSlides &&
6092            (i = t.params.slidesPerView),
6093          t.params.thumbs.multipleActiveThumbs || (i = 1),
6094          (i = Math.floor(i)),
6095          s.slides.forEach((e) => e.classList.remove(r)),
6096          s.params.loop || (s.params.virtual && s.params.virtual.enabled))
6097        )
6098          for (let e = 0; e < i; e += 1)
6099            f(
6100              s.slidesEl,
6101              `[data-swiper-slide-index="${t.realIndex + e}"]`
6102            ).forEach((e) => {
6103              e.classList.add(r);
6104            });
6105        else
6106          for (let e = 0; e < i; e += 1)
6107            s.slides[t.realIndex + e] &&
6108              s.slides[t.realIndex + e].classList.add(r);
6109        const n = t.params.thumbs.autoScrollOffset,
6110          l = n && !s.params.loop;
6111        if (t.realIndex !== s.realIndex || l) {
6112          const i = s.activeIndex;
6113          let r, o;
6114          if (s.params.loop) {
6115            const e = s.slides.filter(
6116              (e) =>
6117                e.getAttribute("data-swiper-slide-index") === `${t.realIndex}`
6118            )[0];
6119            (r = s.slides.indexOf(e)),
6120              (o = t.activeIndex > t.previousIndex ? "next" : "prev");
6121          } else (r = t.realIndex), (o = r > t.previousIndex ? "next" : "prev");
6122          l && (r += "next" === o ? n : -1 * n),
6123            s.visibleSlidesIndexes &&
6124              s.visibleSlidesIndexes.indexOf(r) < 0 &&
6125              (s.params.centeredSlides
6126                ? (r =
6127                    r > i
6128                      ? r - Math.floor(a / 2) + 1
6129                      : r + Math.floor(a / 2) - 1)
6130                : r > i && s.params.slidesPerGroup,
6131              s.slideTo(r, e ? 0 : void 0));
6132        }
6133      }
6134      (t.thumbs = { swiper: null }),
6135        i("beforeInit", () => {
6136          const { thumbs: e } = t.params;
6137          if (e && e.swiper)
6138            if (
6139              "string" == typeof e.swiper ||
6140              e.swiper instanceof HTMLElement
6141            ) {
6142              const s = a(),
6143                i = () => {
6144                  const a =
6145                    "string" == typeof e.swiper
6146                      ? s.querySelector(e.swiper)
6147                      : e.swiper;
6148                  if (a && a.swiper) (e.swiper = a.swiper), o(), c(!0);
6149                  else if (a) {
6150                    const s = (i) => {
6151                      (e.swiper = i.detail[0]),
6152                        a.removeEventListener("init", s),
6153                        o(),
6154                        c(!0),
6155                        e.swiper.update(),
6156                        t.update();
6157                    };
6158                    a.addEventListener("init", s);
6159                  }
6160                  return a;
6161                },
6162                r = () => {
6163                  if (t.destroyed) return;
6164                  i() || requestAnimationFrame(r);
6165                };
6166              requestAnimationFrame(r);
6167            } else o(), c(!0);
6168        }),
6169        i("slideChange update resize observerUpdate", () => {
6170          c();
6171        }),
6172        i("setTransition", (e, s) => {
6173          const a = t.thumbs.swiper;
6174          a && !a.destroyed && a.setTransition(s);
6175        }),
6176        i("beforeDestroy", () => {
6177          const e = t.thumbs.swiper;
6178          e && !e.destroyed && n && e.destroy();
6179        }),
6180        Object.assign(t.thumbs, { init: o, update: c });
6181    },
6182    function (e) {
6183      let { swiper: t, extendParams: s, emit: a, once: i } = e;
6184      s({
6185        freeMode: {
6186          enabled: !1,
6187          momentum: !0,
6188          momentumRatio: 1,
6189          momentumBounce: !0,
6190          momentumBounceRatio: 1,
6191          momentumVelocityRatio: 1,
6192          sticky: !1,
6193          minimumVelocity: 0.02,
6194        },
6195      }),
6196        Object.assign(t, {
6197          freeMode: {
6198            onTouchStart: function () {
6199              const e = t.getTranslate();
6200              t.setTranslate(e),
6201                t.setTransition(0),
6202                (t.touchEventsData.velocities.length = 0),
6203                t.freeMode.onTouchEnd({
6204                  currentPos: t.rtl ? t.translate : -t.translate,
6205                });
6206            },
6207            onTouchMove: function () {
6208              const { touchEventsData: e, touches: s } = t;
6209              0 === e.velocities.length &&
6210                e.velocities.push({
6211                  position: s[t.isHorizontal() ? "startX" : "startY"],
6212                  time: e.touchStartTime,
6213                }),
6214                e.velocities.push({
6215                  position: s[t.isHorizontal() ? "currentX" : "currentY"],
6216                  time: l(),
6217                });
6218            },
6219            onTouchEnd: function (e) {
6220              let { currentPos: s } = e;
6221              const {
6222                  params: r,
6223                  wrapperEl: n,
6224                  rtlTranslate: o,
6225                  snapGrid: d,
6226                  touchEventsData: c,
6227                } = t,
6228                p = l() - c.touchStartTime;
6229              if (s < -t.minTranslate()) t.slideTo(t.activeIndex);
6230              else if (s > -t.maxTranslate())
6231                t.slides.length < d.length
6232                  ? t.slideTo(d.length - 1)
6233                  : t.slideTo(t.slides.length - 1);
6234              else {
6235                if (r.freeMode.momentum) {
6236                  if (c.velocities.length > 1) {
6237                    const e = c.velocities.pop(),
6238                      s = c.velocities.pop(),
6239                      a = e.position - s.position,
6240                      i = e.time - s.time;
6241                    (t.velocity = a / i),
6242                      (t.velocity /= 2),
6243                      Math.abs(t.velocity) < r.freeMode.minimumVelocity &&
6244                        (t.velocity = 0),
6245                      (i > 150 || l() - e.time > 300) && (t.velocity = 0);
6246                  } else t.velocity = 0;
6247                  (t.velocity *= r.freeMode.momentumVelocityRatio),
6248                    (c.velocities.length = 0);
6249                  let e = 1e3 * r.freeMode.momentumRatio;
6250                  const s = t.velocity * e;
6251                  let p = t.translate + s;
6252                  o && (p = -p);
6253                  let u,
6254                    m = !1;
6255                  const h =
6256                    20 * Math.abs(t.velocity) * r.freeMode.momentumBounceRatio;
6257                  let f;
6258                  if (p < t.maxTranslate())
6259                    r.freeMode.momentumBounce
6260                      ? (p + t.maxTranslate() < -h &&
6261                          (p = t.maxTranslate() - h),
6262                        (u = t.maxTranslate()),
6263                        (m = !0),
6264                        (c.allowMomentumBounce = !0))
6265                      : (p = t.maxTranslate()),
6266                      r.loop && r.centeredSlides && (f = !0);
6267                  else if (p > t.minTranslate())
6268                    r.freeMode.momentumBounce
6269                      ? (p - t.minTranslate() > h && (p = t.minTranslate() + h),
6270                        (u = t.minTranslate()),
6271                        (m = !0),
6272                        (c.allowMomentumBounce = !0))
6273                      : (p = t.minTranslate()),
6274                      r.loop && r.centeredSlides && (f = !0);
6275                  else if (r.freeMode.sticky) {
6276                    let e;
6277                    for (let t = 0; t < d.length; t += 1)
6278                      if (d[t] > -p) {
6279                        e = t;
6280                        break;
6281                      }
6282                    (p =
6283                      Math.abs(d[e] - p) < Math.abs(d[e - 1] - p) ||
6284                      "next" === t.swipeDirection
6285                        ? d[e]
6286                        : d[e - 1]),
6287                      (p = -p);
6288                  }
6289                  if (
6290                    (f &&
6291                      i("transitionEnd", () => {
6292                        t.loopFix();
6293                      }),
6294                    0 !== t.velocity)
6295                  ) {
6296                    if (
6297                      ((e = o
6298                        ? Math.abs((-p - t.translate) / t.velocity)
6299                        : Math.abs((p - t.translate) / t.velocity)),
6300                      r.freeMode.sticky)
6301                    ) {
6302                      const s = Math.abs((o ? -p : p) - t.translate),
6303                        a = t.slidesSizesGrid[t.activeIndex];
6304                      e =
6305                        s < a
6306                          ? r.speed
6307                          : s < 2 * a
6308                          ? 1.5 * r.speed
6309                          : 2.5 * r.speed;
6310                    }
6311                  } else if (r.freeMode.sticky) return void t.slideToClosest();
6312                  r.freeMode.momentumBounce && m
6313                    ? (t.updateProgress(u),
6314                      t.setTransition(e),
6315                      t.setTranslate(p),
6316                      t.transitionStart(!0, t.swipeDirection),
6317                      (t.animating = !0),
6318                      E(n, () => {
6319                        t &&
6320                          !t.destroyed &&
6321                          c.allowMomentumBounce &&
6322                          (a("momentumBounce"),
6323                          t.setTransition(r.speed),
6324                          setTimeout(() => {
6325                            t.setTranslate(u),
6326                              E(n, () => {
6327                                t && !t.destroyed && t.transitionEnd();
6328                              });
6329                          }, 0));
6330                      }))
6331                    : t.velocity
6332                    ? (a("_freeModeNoMomentumRelease"),
6333                      t.updateProgress(p),
6334                      t.setTransition(e),
6335                      t.setTranslate(p),
6336                      t.transitionStart(!0, t.swipeDirection),
6337                      t.animating ||
6338                        ((t.animating = !0),
6339                        E(n, () => {
6340                          t && !t.destroyed && t.transitionEnd();
6341                        })))
6342                    : t.updateProgress(p),
6343                    t.updateActiveIndex(),
6344                    t.updateSlidesClasses();
6345                } else {
6346                  if (r.freeMode.sticky) return void t.slideToClosest();
6347                  r.freeMode && a("_freeModeNoMomentumRelease");
6348                }
6349                (!r.freeMode.momentum || p >= r.longSwipesMs) &&
6350                  (t.updateProgress(),
6351                  t.updateActiveIndex(),
6352                  t.updateSlidesClasses());
6353              }
6354            },
6355          },
6356        });
6357    },
6358    function (e) {
6359      let t,
6360        s,
6361        a,
6362        { swiper: i, extendParams: r } = e;
6363      r({ grid: { rows: 1, fill: "column" } }),
6364        (i.grid = {
6365          initSlides: (e) => {
6366            const { slidesPerView: r } = i.params,
6367              { rows: n, fill: l } = i.params.grid;
6368            (s = t / n),
6369              (a = Math.floor(e / n)),
6370              (t = Math.floor(e / n) === e / n ? e : Math.ceil(e / n) * n),
6371              "auto" !== r && "row" === l && (t = Math.max(t, r * n));
6372          },
6373          updateSlide: (e, r, n, l) => {
6374            const { slidesPerGroup: o, spaceBetween: d } = i.params,
6375              { rows: c, fill: p } = i.params.grid;
6376            let u, m, h;
6377            if ("row" === p && o > 1) {
6378              const s = Math.floor(e / (o * c)),
6379                a = e - c * o * s,
6380                i = 0 === s ? o : Math.min(Math.ceil((n - s * c * o) / c), o);
6381              (h = Math.floor(a / i)),
6382                (m = a - h * i + s * o),
6383                (u = m + (h * t) / c),
6384                (r.style.order = u);
6385            } else
6386              "column" === p
6387                ? ((m = Math.floor(e / c)),
6388                  (h = e - m * c),
6389                  (m > a || (m === a && h === c - 1)) &&
6390                    ((h += 1), h >= c && ((h = 0), (m += 1))))
6391                : ((h = Math.floor(e / s)), (m = e - h * s));
6392            r.style[l("margin-top")] = 0 !== h ? d && `${d}px` : "";
6393          },
6394          updateWrapperSize: (e, s, a) => {
6395            const {
6396                spaceBetween: r,
6397                centeredSlides: n,
6398                roundLengths: l,
6399              } = i.params,
6400              { rows: o } = i.params.grid;
6401            if (
6402              ((i.virtualSize = (e + r) * t),
6403              (i.virtualSize = Math.ceil(i.virtualSize / o) - r),
6404              (i.wrapperEl.style[a("width")] = `${i.virtualSize + r}px`),
6405              n)
6406            ) {
6407              const e = [];
6408              for (let t = 0; t < s.length; t += 1) {
6409                let a = s[t];
6410                l && (a = Math.floor(a)),
6411                  s[t] < i.virtualSize + s[0] && e.push(a);
6412              }
6413              s.splice(0, s.length), s.push(...e);
6414            }
6415          },
6416        });
6417    },
6418    function (e) {
6419      let { swiper: t } = e;
6420      Object.assign(t, {
6421        appendSlide: se.bind(t),
6422        prependSlide: ae.bind(t),
6423        addSlide: ie.bind(t),
6424        removeSlide: re.bind(t),
6425        removeAllSlides: ne.bind(t),
6426      });
6427    },
6428    function (e) {
6429      let { swiper: t, extendParams: s, on: a } = e;
6430      s({ fadeEffect: { crossFade: !1 } }),
6431        le({
6432          effect: "fade",
6433          swiper: t,
6434          on: a,
6435          setTranslate: () => {
6436            const { slides: e } = t;
6437            t.params.fadeEffect;
6438            for (let s = 0; s < e.length; s += 1) {
6439              const e = t.slides[s];
6440              let a = -e.swiperSlideOffset;
6441              t.params.virtualTranslate || (a -= t.translate);
6442              let i = 0;
6443              t.isHorizontal() || ((i = a), (a = 0));
6444              const r = t.params.fadeEffect.crossFade
6445                  ? Math.max(1 - Math.abs(e.progress), 0)
6446                  : 1 + Math.min(Math.max(e.progress, -1), 0),
6447                n = oe(0, e);
6448              (n.style.opacity = r),
6449                (n.style.transform = `translate3d(${a}px, ${i}px, 0px)`);
6450            }
6451          },
6452          setTransition: (e) => {
6453            const s = t.slides.map((e) => h(e));
6454            s.forEach((t) => {
6455              t.style.transitionDuration = `${e}ms`;
6456            }),
6457              de({
6458                swiper: t,
6459                duration: e,
6460                transformElements: s,
6461                allSlides: !0,
6462              });
6463          },
6464          overwriteParams: () => ({
6465            slidesPerView: 1,
6466            slidesPerGroup: 1,
6467            watchSlidesProgress: !0,
6468            spaceBetween: 0,
6469            virtualTranslate: !t.params.cssMode,
6470          }),
6471        });
6472    },
6473    function (e) {
6474      let { swiper: t, extendParams: s, on: a } = e;
6475      s({
6476        cubeEffect: {
6477          slideShadows: !0,
6478          shadow: !0,
6479          shadowOffset: 20,
6480          shadowScale: 0.94,
6481        },
6482      });
6483      const i = (e, t, s) => {
6484        let a = s
6485            ? e.querySelector(".swiper-slide-shadow-left")
6486            : e.querySelector(".swiper-slide-shadow-top"),
6487          i = s
6488            ? e.querySelector(".swiper-slide-shadow-right")
6489            : e.querySelector(".swiper-slide-shadow-bottom");
6490        a ||
6491          ((a = g("div", "swiper-slide-shadow-" + (s ? "left" : "top"))),
6492          e.append(a)),
6493          i ||
6494            ((i = g("div", "swiper-slide-shadow-" + (s ? "right" : "bottom"))),
6495            e.append(i)),
6496          a && (a.style.opacity = Math.max(-t, 0)),
6497          i && (i.style.opacity = Math.max(t, 0));
6498      };
6499      le({
6500        effect: "cube",
6501        swiper: t,
6502        on: a,
6503        setTranslate: () => {
6504          const {
6505              el: e,
6506              wrapperEl: s,
6507              slides: a,
6508              width: r,
6509              height: n,
6510              rtlTranslate: l,
6511              size: o,
6512              browser: d,
6513            } = t,
6514            c = t.params.cubeEffect,
6515            p = t.isHorizontal(),
6516            u = t.virtual && t.params.virtual.enabled;
6517          let m,
6518            h = 0;
6519          c.shadow &&
6520            (p
6521              ? ((m = t.slidesEl.querySelector(".swiper-cube-shadow")),
6522                m ||
6523                  ((m = g("div", "swiper-cube-shadow")), t.slidesEl.append(m)),
6524                (m.style.height = `${r}px`))
6525              : ((m = e.querySelector(".swiper-cube-shadow")),
6526                m || ((m = g("div", "swiper-cube-shadow")), e.append(m))));
6527          for (let e = 0; e < a.length; e += 1) {
6528            const t = a[e];
6529            let s = e;
6530            u && (s = parseInt(t.getAttribute("data-swiper-slide-index"), 10));
6531            let r = 90 * s,
6532              n = Math.floor(r / 360);
6533            l && ((r = -r), (n = Math.floor(-r / 360)));
6534            const d = Math.max(Math.min(t.progress, 1), -1);
6535            let m = 0,
6536              f = 0,
6537              g = 0;
6538            s % 4 == 0
6539              ? ((m = 4 * -n * o), (g = 0))
6540              : (s - 1) % 4 == 0
6541              ? ((m = 0), (g = 4 * -n * o))
6542              : (s - 2) % 4 == 0
6543              ? ((m = o + 4 * n * o), (g = o))
6544              : (s - 3) % 4 == 0 && ((m = -o), (g = 3 * o + 4 * o * n)),
6545              l && (m = -m),
6546              p || ((f = m), (m = 0));
6547            const v = `rotateX(${p ? 0 : -r}deg) rotateY(${
6548              p ? r : 0
6549            }deg) translate3d(${m}px, ${f}px, ${g}px)`;
6550            d <= 1 &&
6551              d > -1 &&
6552              ((h = 90 * s + 90 * d), l && (h = 90 * -s - 90 * d)),
6553              (t.style.transform = v),
6554              c.slideShadows && i(t, d, p);
6555          }
6556          if (
6557            ((s.style.transformOrigin = `50% 50% -${o / 2}px`),
6558            (s.style["-webkit-transform-origin"] = `50% 50% -${o / 2}px`),
6559            c.shadow)
6560          )
6561            if (p)
6562              m.style.transform = `translate3d(0px, ${
6563                r / 2 + c.shadowOffset
6564              }px, ${-r / 2}px) rotateX(90deg) rotateZ(0deg) scale(${
6565                c.shadowScale
6566              })`;
6567            else {
6568              const e = Math.abs(h) - 90 * Math.floor(Math.abs(h) / 90),
6569                t =
6570                  1.5 -
6571                  (Math.sin((2 * e * Math.PI) / 360) / 2 +
6572                    Math.cos((2 * e * Math.PI) / 360) / 2),
6573                s = c.shadowScale,
6574                a = c.shadowScale / t,
6575                i = c.shadowOffset;
6576              m.style.transform = `scale3d(${s}, 1, ${a}) translate3d(0px, ${
6577                n / 2 + i
6578              }px, ${-n / 2 / a}px) rotateX(-90deg)`;
6579            }
6580          const f =
6581            (d.isSafari || d.isWebView) && d.needPerspectiveFix ? -o / 2 : 0;
6582          (s.style.transform = `translate3d(0px,0,${f}px) rotateX(${
6583            t.isHorizontal() ? 0 : h
6584          }deg) rotateY(${t.isHorizontal() ? -h : 0}deg)`),
6585            s.style.setProperty("--swiper-cube-translate-z", `${f}px`);
6586        },
6587        setTransition: (e) => {
6588          const { el: s, slides: a } = t;
6589          if (
6590            (a.forEach((t) => {
6591              (t.style.transitionDuration = `${e}ms`),
6592                t
6593                  .querySelectorAll(
6594                    ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
6595                  )
6596                  .forEach((t) => {
6597                    t.style.transitionDuration = `${e}ms`;
6598                  });
6599            }),
6600            t.params.cubeEffect.shadow && !t.isHorizontal())
6601          ) {
6602            const t = s.querySelector(".swiper-cube-shadow");
6603            t && (t.style.transitionDuration = `${e}ms`);
6604          }
6605        },
6606        recreateShadows: () => {
6607          const e = t.isHorizontal();
6608          t.slides.forEach((t) => {
6609            const s = Math.max(Math.min(t.progress, 1), -1);
6610            i(t, s, e);
6611          });
6612        },
6613        getEffectParams: () => t.params.cubeEffect,
6614        perspective: () => !0,
6615        overwriteParams: () => ({
6616          slidesPerView: 1,
6617          slidesPerGroup: 1,
6618          watchSlidesProgress: !0,
6619          resistanceRatio: 0,
6620          spaceBetween: 0,
6621          centeredSlides: !1,
6622          virtualTranslate: !0,
6623        }),
6624      });
6625    },
6626    function (e) {
6627      let { swiper: t, extendParams: s, on: a } = e;
6628      s({ flipEffect: { slideShadows: !0, limitRotation: !0 } });
6629      const i = (e, s, a) => {
6630        let i = t.isHorizontal()
6631            ? e.querySelector(".swiper-slide-shadow-left")
6632            : e.querySelector(".swiper-slide-shadow-top"),
6633          r = t.isHorizontal()
6634            ? e.querySelector(".swiper-slide-shadow-right")
6635            : e.querySelector(".swiper-slide-shadow-bottom");
6636        i || (i = ce(0, e, t.isHorizontal() ? "left" : "top")),
6637          r || (r = ce(0, e, t.isHorizontal() ? "right" : "bottom")),
6638          i && (i.style.opacity = Math.max(-s, 0)),
6639          r && (r.style.opacity = Math.max(s, 0));
6640      };
6641      le({
6642        effect: "flip",
6643        swiper: t,
6644        on: a,
6645        setTranslate: () => {
6646          const { slides: e, rtlTranslate: s } = t,
6647            a = t.params.flipEffect;
6648          for (let r = 0; r < e.length; r += 1) {
6649            const n = e[r];
6650            let l = n.progress;
6651            t.params.flipEffect.limitRotation &&
6652              (l = Math.max(Math.min(n.progress, 1), -1));
6653            const o = n.swiperSlideOffset;
6654            let d = -180 * l,
6655              c = 0,
6656              p = t.params.cssMode ? -o - t.translate : -o,
6657              u = 0;
6658            t.isHorizontal()
6659              ? s && (d = -d)
6660              : ((u = p), (p = 0), (c = -d), (d = 0)),
6661              (n.style.zIndex = -Math.abs(Math.round(l)) + e.length),
6662              a.slideShadows && i(n, l);
6663            const m = `translate3d(${p}px, ${u}px, 0px) rotateX(${c}deg) rotateY(${d}deg)`;
6664            oe(0, n).style.transform = m;
6665          }
6666        },
6667        setTransition: (e) => {
6668          const s = t.slides.map((e) => h(e));
6669          s.forEach((t) => {
6670            (t.style.transitionDuration = `${e}ms`),
6671              t
6672                .querySelectorAll(
6673                  ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
6674                )
6675                .forEach((t) => {
6676                  t.style.transitionDuration = `${e}ms`;
6677                });
6678          }),
6679            de({ swiper: t, duration: e, transformElements: s });
6680        },
6681        recreateShadows: () => {
6682          t.params.flipEffect;
6683          t.slides.forEach((e) => {
6684            let s = e.progress;
6685            t.params.flipEffect.limitRotation &&
6686              (s = Math.max(Math.min(e.progress, 1), -1)),
6687              i(e, s);
6688          });
6689        },
6690        getEffectParams: () => t.params.flipEffect,
6691        perspective: () => !0,
6692        overwriteParams: () => ({
6693          slidesPerView: 1,
6694          slidesPerGroup: 1,
6695          watchSlidesProgress: !0,
6696          spaceBetween: 0,
6697          virtualTranslate: !t.params.cssMode,
6698        }),
6699      });
6700    },
6701    function (e) {
6702      let { swiper: t, extendParams: s, on: a } = e;
6703      s({
6704        coverflowEffect: {
6705          rotate: 50,
6706          stretch: 0,
6707          depth: 100,
6708          scale: 1,
6709          modifier: 1,
6710          slideShadows: !0,
6711        },
6712      }),
6713        le({
6714          effect: "coverflow",
6715          swiper: t,
6716          on: a,
6717          setTranslate: () => {
6718            const { width: e, height: s, slides: a, slidesSizesGrid: i } = t,
6719              r = t.params.coverflowEffect,
6720              n = t.isHorizontal(),
6721              l = t.translate,
6722              o = n ? e / 2 - l : s / 2 - l,
6723              d = n ? r.rotate : -r.rotate,
6724              c = r.depth;
6725            for (let e = 0, t = a.length; e < t; e += 1) {
6726              const t = a[e],
6727                s = i[e],
6728                l = (o - t.swiperSlideOffset - s / 2) / s,
6729                p =
6730                  "function" == typeof r.modifier
6731                    ? r.modifier(l)
6732                    : l * r.modifier;
6733              let u = n ? d * p : 0,
6734                m = n ? 0 : d * p,
6735                h = -c * Math.abs(p),
6736                f = r.stretch;
6737              "string" == typeof f &&
6738                -1 !== f.indexOf("%") &&
6739                (f = (parseFloat(r.stretch) / 100) * s);
6740              let g = n ? 0 : f * p,
6741                v = n ? f * p : 0,
6742                w = 1 - (1 - r.scale) * Math.abs(p);
6743              Math.abs(v) < 0.001 && (v = 0),
6744                Math.abs(g) < 0.001 && (g = 0),
6745                Math.abs(h) < 0.001 && (h = 0),
6746                Math.abs(u) < 0.001 && (u = 0),
6747                Math.abs(m) < 0.001 && (m = 0),
6748                Math.abs(w) < 0.001 && (w = 0);
6749              const b = `translate3d(${v}px,${g}px,${h}px)  rotateX(${m}deg) rotateY(${u}deg) scale(${w})`;
6750              if (
6751                ((oe(0, t).style.transform = b),
6752                (t.style.zIndex = 1 - Math.abs(Math.round(p))),
6753                r.slideShadows)
6754              ) {
6755                let e = n
6756                    ? t.querySelector(".swiper-slide-shadow-left")
6757                    : t.querySelector(".swiper-slide-shadow-top"),
6758                  s = n
6759                    ? t.querySelector(".swiper-slide-shadow-right")
6760                    : t.querySelector(".swiper-slide-shadow-bottom");
6761                e || (e = ce(0, t, n ? "left" : "top")),
6762                  s || (s = ce(0, t, n ? "right" : "bottom")),
6763                  e && (e.style.opacity = p > 0 ? p : 0),
6764                  s && (s.style.opacity = -p > 0 ? -p : 0);
6765              }
6766            }
6767          },
6768          setTransition: (e) => {
6769            t.slides
6770              .map((e) => h(e))
6771              .forEach((t) => {
6772                (t.style.transitionDuration = `${e}ms`),
6773                  t
6774                    .querySelectorAll(
6775                      ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
6776                    )
6777                    .forEach((t) => {
6778                      t.style.transitionDuration = `${e}ms`;
6779                    });
6780              });
6781          },
6782          perspective: () => !0,
6783          overwriteParams: () => ({ watchSlidesProgress: !0 }),
6784        });
6785    },
6786    function (e) {
6787      let { swiper: t, extendParams: s, on: a } = e;
6788      s({
6789        creativeEffect: {
6790          limitProgress: 1,
6791          shadowPerProgress: !1,
6792          progressMultiplier: 1,
6793          perspective: !0,
6794          prev: {
6795            translate: [0, 0, 0],
6796            rotate: [0, 0, 0],
6797            opacity: 1,
6798            scale: 1,
6799          },
6800          next: {
6801            translate: [0, 0, 0],
6802            rotate: [0, 0, 0],
6803            opacity: 1,
6804            scale: 1,
6805          },
6806        },
6807      });
6808      const i = (e) => ("string" == typeof e ? e : `${e}px`);
6809      le({
6810        effect: "creative",
6811        swiper: t,
6812        on: a,
6813        setTranslate: () => {
6814          const { slides: e, wrapperEl: s, slidesSizesGrid: a } = t,
6815            r = t.params.creativeEffect,
6816            { progressMultiplier: n } = r,
6817            l = t.params.centeredSlides;
6818          if (l) {
6819            const e = a[0] / 2 - t.params.slidesOffsetBefore || 0;
6820            s.style.transform = `translateX(calc(50% - ${e}px))`;
6821          }
6822          for (let s = 0; s < e.length; s += 1) {
6823            const a = e[s],
6824              o = a.progress,
6825              d = Math.min(
6826                Math.max(a.progress, -r.limitProgress),
6827                r.limitProgress
6828              );
6829            let c = d;
6830            l ||
6831              (c = Math.min(
6832                Math.max(a.originalProgress, -r.limitProgress),
6833                r.limitProgress
6834              ));
6835            const p = a.swiperSlideOffset,
6836              u = [t.params.cssMode ? -p - t.translate : -p, 0, 0],
6837              m = [0, 0, 0];
6838            let h = !1;
6839            t.isHorizontal() || ((u[1] = u[0]), (u[0] = 0));
6840            let f = {
6841              translate: [0, 0, 0],
6842              rotate: [0, 0, 0],
6843              scale: 1,
6844              opacity: 1,
6845            };
6846            d < 0
6847              ? ((f = r.next), (h = !0))
6848              : d > 0 && ((f = r.prev), (h = !0)),
6849              u.forEach((e, t) => {
6850                u[t] = `calc(${e}px + (${i(f.translate[t])} * ${Math.abs(
6851                  d * n
6852                )}))`;
6853              }),
6854              m.forEach((e, t) => {
6855                m[t] = f.rotate[t] * Math.abs(d * n);
6856              }),
6857              (a.style.zIndex = -Math.abs(Math.round(o)) + e.length);
6858            const g = u.join(", "),
6859              v = `rotateX(${m[0]}deg) rotateY(${m[1]}deg) rotateZ(${m[2]}deg)`,
6860              w =
6861                c < 0
6862                  ? `scale(${1 + (1 - f.scale) * c * n})`
6863                  : `scale(${1 - (1 - f.scale) * c * n})`,
6864              b =
6865                c < 0
6866                  ? 1 + (1 - f.opacity) * c * n
6867                  : 1 - (1 - f.opacity) * c * n,
6868              y = `translate3d(${g}) ${v} ${w}`;
6869            if ((h && f.shadow) || !h) {
6870              let e = a.querySelector(".swiper-slide-shadow");
6871              if ((!e && f.shadow && (e = ce(0, a)), e)) {
6872                const t = r.shadowPerProgress ? d * (1 / r.limitProgress) : d;
6873                e.style.opacity = Math.min(Math.max(Math.abs(t), 0), 1);
6874              }
6875            }
6876            const E = oe(0, a);
6877            (E.style.transform = y),
6878              (E.style.opacity = b),
6879              f.origin && (E.style.transformOrigin = f.origin);
6880          }
6881        },
6882        setTransition: (e) => {
6883          const s = t.slides.map((e) => h(e));
6884          s.forEach((t) => {
6885            (t.style.transitionDuration = `${e}ms`),
6886              t.querySelectorAll(".swiper-slide-shadow").forEach((t) => {
6887                t.style.transitionDuration = `${e}ms`;
6888              });
6889          }),
6890            de({
6891              swiper: t,
6892              duration: e,
6893              transformElements: s,
6894              allSlides: !0,
6895            });
6896        },
6897        perspective: () => t.params.creativeEffect.perspective,
6898        overwriteParams: () => ({
6899          watchSlidesProgress: !0,
6900          virtualTranslate: !t.params.cssMode,
6901        }),
6902      });
6903    },
6904    function (e) {
6905      let { swiper: t, extendParams: s, on: a } = e;
6906      s({
6907        cardsEffect: {
6908          slideShadows: !0,
6909          rotate: !0,
6910          perSlideRotate: 2,
6911          perSlideOffset: 8,
6912        },
6913      }),
6914        le({
6915          effect: "cards",
6916          swiper: t,
6917          on: a,
6918          setTranslate: () => {
6919            const { slides: e, activeIndex: s } = t,
6920              a = t.params.cardsEffect,
6921              { startTranslate: i, isTouched: r } = t.touchEventsData,
6922              n = t.translate;
6923            for (let l = 0; l < e.length; l += 1) {
6924              const o = e[l],
6925                d = o.progress,
6926                c = Math.min(Math.max(d, -4), 4);
6927              let p = o.swiperSlideOffset;
6928              t.params.centeredSlides &&
6929                !t.params.cssMode &&
6930                (t.wrapperEl.style.transform = `translateX(${t.minTranslate()}px)`),
6931                t.params.centeredSlides &&
6932                  t.params.cssMode &&
6933                  (p -= e[0].swiperSlideOffset);
6934              let u = t.params.cssMode ? -p - t.translate : -p,
6935                m = 0;
6936              const h = -100 * Math.abs(c);
6937              let f = 1,
6938                g = -a.perSlideRotate * c,
6939                v = a.perSlideOffset - 0.75 * Math.abs(c);
6940              const w =
6941                  t.virtual && t.params.virtual.enabled
6942                    ? t.virtual.from + l
6943                    : l,
6944                b =
6945                  (w === s || w === s - 1) &&
6946                  c > 0 &&
6947                  c < 1 &&
6948                  (r || t.params.cssMode) &&
6949                  n < i,
6950                y =
6951                  (w === s || w === s + 1) &&
6952                  c < 0 &&
6953                  c > -1 &&
6954                  (r || t.params.cssMode) &&
6955                  n > i;
6956              if (b || y) {
6957                const e = (1 - Math.abs((Math.abs(c) - 0.5) / 0.5)) ** 0.5;
6958                (g += -28 * c * e),
6959                  (f += -0.5 * e),
6960                  (v += 96 * e),
6961                  (m = -25 * e * Math.abs(c) + "%");
6962              }
6963              if (
6964                ((u =
6965                  c < 0
6966                    ? `calc(${u}px + (${v * Math.abs(c)}%))`
6967                    : c > 0
6968                    ? `calc(${u}px + (-${v * Math.abs(c)}%))`
6969                    : `${u}px`),
6970                !t.isHorizontal())
6971              ) {
6972                const e = m;
6973                (m = u), (u = e);
6974              }
6975              const E = c < 0 ? "" + (1 + (1 - f) * c) : "" + (1 - (1 - f) * c),
6976                x = `\n        translate3d(${u}, ${m}, ${h}px)\n        rotateZ(${
6977                  a.rotate ? g : 0
6978                }deg)\n        scale(${E})\n      `;
6979              if (a.slideShadows) {
6980                let e = o.querySelector(".swiper-slide-shadow");
6981                e || (e = ce(0, o)),
6982                  e &&
6983                    (e.style.opacity = Math.min(
6984                      Math.max((Math.abs(c) - 0.5) / 0.5, 0),
6985                      1
6986                    ));
6987              }
6988              o.style.zIndex = -Math.abs(Math.round(d)) + e.length;
6989              oe(0, o).style.transform = x;
6990            }
6991          },
6992          setTransition: (e) => {
6993            const s = t.slides.map((e) => h(e));
6994            s.forEach((t) => {
6995              (t.style.transitionDuration = `${e}ms`),
6996                t.querySelectorAll(".swiper-slide-shadow").forEach((t) => {
6997                  t.style.transitionDuration = `${e}ms`;
6998                });
6999            }),
7000              de({ swiper: t, duration: e, transformElements: s });
7001          },
7002          perspective: () => !0,
7003          overwriteParams: () => ({
7004            watchSlidesProgress: !0,
7005            virtualTranslate: !t.params.cssMode,
7006          }),
7007        });
7008    },
7009  ];
7010  return J.use(pe), J;
7011});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.