PageSourceSearch

http://fuso.or.kr/js/swiper.min.js?ver=191202

js fuso.or.kr collected 2026-10-08 23:03:46 UTC 256,704 bytes, 5,942 lines download raw bytes

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

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.