PageSourceSearch

https://www.tlm.de/cpresources/7cb03823/js/swiper-DzFEnCGn.js

js tlm.de collected 2026-10-01 11:54:19 UTC 102,075 bytes, 2,179 lines download raw bytes

vendor: 4,830 bytes, lines 1-174
1function isObject$1(e) {
2	return typeof e == "object" && !!e && "constructor" in e && e.constructor === Object;
3}
4function extend$1(w, T) {
5	w === void 0 && (w = {}), T === void 0 && (T = {});
6	let E = [
7		"__proto__",
8		"constructor",
9		"prototype"
10	];
11	Object.keys(T).filter((e) => E.indexOf(e) < 0).forEach((E) => {
12		w[E] === void 0 ? w[E] = T[E] : isObject$1(T[E]) && isObject$1(w[E]) && Object.keys(T[E]).length > 0 && extend$1(w[E], T[E]);
13	});
14}
15var ssrDocument = {
16	body: {},
17	addEventListener() {},
18	removeEventListener() {},
19	activeElement: {
20		blur() {},
21		nodeName: ""
22	},
23	querySelector() {
24		return null;
25	},
26	querySelectorAll() {
27		return [];
28	},
29	getElementById() {
30		return null;
31	},
32	createEvent() {
33		return { initEvent() {} };
34	},
35	createElement() {
36		return {
37			children: [],
38			childNodes: [],
39			style: {},
40			setAttribute() {},
41			getElementsByTagName() {
42				return [];
43			}
44		};
45	},
46	createElementNS() {
47		return {};
48	},
49	importNode() {
50		return null;
51	},
52	location: {
53		hash: "",
54		host: "",
55		hostname: "",
56		href: "",
57		origin: "",
58		pathname: "",
59		protocol: "",
60		search: ""
61	}
62};
63function getDocument() {
64	let e = typeof document < "u" ? document : {};
65	return extend$1(e, ssrDocument), e;
66}
67var ssrWindow = {
68	document: ssrDocument,
69	navigator: { userAgent: "" },
70	location: {
71		hash: "",
72		host: "",
73		hostname: "",
74		href: "",
75		origin: "",
76		pathname: "",
77		protocol: "",
78		search: ""
79	},
80	history: {
81		replaceState() {},
82		pushState() {},
83		go() {},
84		back() {}
85	},
86	CustomEvent: function() {
87		return this;
88	},
89	addEventListener() {},
90	removeEventListener() {},
91	getComputedStyle() {
92		return { getPropertyValue() {
93			return "";
94		} };
95	},
96	Image() {},
97	Date() {},
98	screen: {},
99	setTimeout() {},
100	clearTimeout() {},
101	matchMedia() {
102		return {};
103	},
104	requestAnimationFrame(e) {
105		return typeof setTimeout > "u" ? (e(), null) : setTimeout(e, 0);
106	},
107	cancelAnimationFrame(e) {
108		typeof setTimeout > "u" || clearTimeout(e);
109	}
110};
111function getWindow() {
112	let e = typeof window < "u" ? window : {};
113	return extend$1(e, ssrWindow), e;
114}
115function classesToTokens(e) {
116	return e === void 0 && (e = ""), e.trim().split(" ").filter((e) => !!e.trim());
117}
118function deleteProps(e) {
119	let C = e;
120	Object.keys(C).forEach((e) => {
121		try {
122			C[e] = null;
123		} catch {}
124		try {
125			delete C[e];
126		} catch {}
127	});
128}
129function nextTick(e, C) {
130	return C === void 0 && (C = 0), setTimeout(e, C);
131}
132function now() {
133	return Date.now();
134}
135function getComputedStyle$1(e) {
136	let C = getWindow(), w;
137	return C.getComputedStyle && (w = C.getComputedStyle(e, null)), !w && e.currentStyle && (w = e.currentStyle), w ||= e.style, w;
138}
139function getTranslate(e, C) {
140	C === void 0 && (C = "x");
141	let w = getWindow(), T, E, O, k = getComputedStyle$1(e);
142	return w.WebKitCSSMatrix ? (E = k.transform || k.webkitTransform, E.split(",").length > 6 && (E = E.split(", ").map((e) => e.replace(",", ".")).join(", ")), O = new w.WebKitCSSMatrix(E === "none" ? "" : E)) : (O = k.MozTransform || k.OTransform || k.MsTransform || k.msTransform || k.transform || k.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,"), T = O.toString().split(",")), C === "x" && (E = w.WebKitCSSMatrix ? O.m41 : T.length === 16 ? parseFloat(T[12]) : parseFloat(T[4])), C === "y" && (E = w.WebKitCSSMatrix ? O.m42 : T.length === 16 ? parseFloat(T[13]) : parseFloat(T[5])), E || 0;
143}
144function isObject(e) {
145	return typeof e == "object" && !!e && e.constructor && Object.prototype.toString.call(e).slice(8, -1) === "Object";
146}
147function isNode(e) {
148	return typeof window < "u" && window.HTMLElement !== void 0 ? e instanceof HTMLElement : e && (e.nodeType === 1 || e.nodeType === 11);
149}
150function extend() {
151	let e = Object(arguments.length <= 0 ? void 0 : arguments[0]), C = [
152		"__proto__",
153		"constructor",
154		"prototype"
155	];
156	for (let w = 1; w < arguments.length; w += 1) {
157		let T = w < 0 || arguments.length <= w ? void 0 : arguments[w];
158		if (T != null && !isNode(T)) {
159			let w = Object.keys(Object(T)).filter((e) => C.indexOf(e) < 0);
160			for (let C = 0, E = w.length; C < E; C += 1) {
161				let E = w[C], D = Object.getOwnPropertyDescriptor(T, E);
162				D !== void 0 && D.enumerable && (isObject(e[E]) && isObject(T[E]) ? T[E].__swiper__ ? e[E] = T[E] : extend(e[E], T[E]) : !isObject(e[E]) && isObject(T[E]) ? (e[E] = {}, T[E].__swiper__ ? e[E] = T[E] : extend(e[E], T[E])) : e[E] = T[E]);
163			}
164		}
165	}
166	return e;
167}
168function setCSSProperty(e, C, w) {
169	e.style.setProperty(C, w);
170}
171function animateCSSModeScroll(e) {
172	let { swiper: C, targetPosition: w, side: T } = e, E = getWindow(), O = -C.translate, k = null, A, j = C.params.speed;
173	C.wrapperEl.style.scrollSnapType = "none", E.cancelAnimationFrame(C.cssModeFrameID);
174	let M = w > O ? "next" : "prev", N = (e, C) => M === "next" && e >= C || M === "prev" && e <= C, P = () => {
175		A = (/* @__PURE__ */ new Date()).getTime(), k === null && (k = A);
176		let e = Math.max(Math.min((A - k) / j, 1), 0), D = O + (.5 - Math.cos(e * Math.PI) / 2) * (w - O);
177		if (N(D, w) && (D = w), C.wrapperEl.scrollTo({ [T]: D }), N(D, w)) {
178			C.wrapperEl.style.overflow = "hidden", C.wrapperEl.style.scrollSnapType = "", setTimeout(() => {
179				C.wrapperEl.style.overflow = "", C.wrapperEl.scrollTo({ [T]: D });
180			}), E.cancelAnimationFrame(C.cssModeFrameID);
181			return;
182		}
183		C.cssModeFrameID = E.requestAnimationFrame(P);
184	};
185	P();
186}
187function getSlideTransformEl(e) {
188	return e.querySelector(".swiper-slide-transform") || e.shadowRoot && e.shadowRoot.querySelector(".swiper-slide-transform") || e;
189}
190function elementChildren(e, C) {
191	C === void 0 && (C = "");
192	let w = getWindow(), T = [...e.children];
193	return w.HTMLSlotElement && e instanceof HTMLSlotElement && T.push(...e.assignedElements()), C ? T.filter((e) => e.matches(C)) : T;
194}
195function elementIsChildOfSlot(e, C) {
196	let w = [C];
197	for (; w.length > 0;) {
198		let C = w.shift();
199		if (e === C) return !0;
200		w.push(...C.children, ...C.shadowRoot ? C.shadowRoot.children : [], ...C.assignedElements ? C.assignedElements() : []);
201	}
202}
203function elementIsChildOf(e, C) {
204	let w = getWindow(), T = C.contains(e);
205	return !T && w.HTMLSlotElement && C instanceof HTMLSlotElement && (T = [...C.assignedElements()].includes(e), T ||= elementIsChildOfSlot(e, C)), T;
206}
207function showWarning(e) {
208	try {
209		console.warn(e);
210		return;
211	} catch {}
212}
213function createElement(e, C) {
214	C === void 0 && (C = []);
215	let w = document.createElement(e);
216	return w.classList.add(...Array.isArray(C) ? C : classesToTokens(C)), w;
217}
218function elementOffset(e) {
219	let C = getWindow(), w = getDocument(), E = e.getBoundingClientRect(), O = w.body, k = e.clientTop || O.clientTop || 0, A = e.clientLeft || O.clientLeft || 0, j = e === C ? C.scrollY : e.scrollTop, M = e === C ? C.scrollX : e.scrollLeft;
220	return {
221		top: E.top + j - k,
222		left: E.left + M - A
223	};
224}
225function elementPrevAll(e, C) {
226	let w = [];
227	for (; e.previousElementSibling;) {
228		let T = e.previousElementSibling;
229		C ? T.matches(C) && w.push(T) : w.push(T), e = T;
230	}
231	return w;
232}
233function elementNextAll(e, C) {
234	let w = [];
235	for (; e.nextElementSibling;) {
236		let T = e.nextElementSibling;
237		C ? T.matches(C) && w.push(T) : w.push(T), e = T;
238	}
239	return w;
240}
241function elementStyle(e, C) {
242	return getWindow().getComputedStyle(e, null).getPropertyValue(C);
243}
244function elementIndex(e) {
245	let C = e, w;
246	if (C) {
247		for (w = 0; (C = C.previousSibling) !== null;) C.nodeType === 1 && (w += 1);
248		return w;
249	}
250}
251function elementParents(e, C) {
252	let w = [], T = e.parentElement;
253	for (; T;) C ? T.matches(C) && w.push(T) : w.push(T), T = T.parentElement;
254	return w;
255}
256function elementTransitionEnd(e, C) {
257	function w(T) {
258		T.target === e && (C.call(e, T), e.removeEventListener("transitionend", w));
259	}
260	C && e.addEventListener("transitionend", w);
261}
262function elementOuterSize(e, C, w) {
263	let T = getWindow();
264	return w ? e[C === "width" ? "offsetWidth" : "offsetHeight"] + parseFloat(T.getComputedStyle(e, null).getPropertyValue(C === "width" ? "margin-right" : "margin-top")) + parseFloat(T.getComputedStyle(e, null).getPropertyValue(C === "width" ? "margin-left" : "margin-bottom")) : e.offsetWidth;
265}
266function makeElementsArray(e) {
267	return (Array.isArray(e) ? e : [e]).filter((e) => !!e);
268}
269function getRotateFix(e) {
270	return (C) => Math.abs(C) > 0 && e.browser && e.browser.need3dFix && Math.abs(C) % 90 == 0 ? C + .001 : C;
271}
272function setInnerHTML(e, C) {
273	C === void 0 && (C = ""), typeof trustedTypes < "u" ? e.innerHTML = trustedTypes.createPolicy("html", { createHTML: (e) => e }).createHTML(C) : e.innerHTML = C;
274}
275var support;
276function calcSupport() {
277	let e = getWindow(), C = getDocument();
278	return {
279		smoothScroll: C.documentElement && C.documentElement.style && "scrollBehavior" in C.documentElement.style,
280		touch: !!("ontouchstart" in e || e.DocumentTouch && C instanceof e.DocumentTouch)
281	};
282}
283function getSupport() {
284	return support ||= calcSupport(), support;
285}
286var deviceCached;
287function calcDevice(e) {
288	let { userAgent: C } = e === void 0 ? {}
288 : e, w = getSupport(), T = getWindow(), E = T.navigator.platform, O = C || T.navigator.userAgent, k = {
289		ios: !1,
290		android: !1
291	}, A = T.screen.width, j = T.screen.height, M = O.match(/(Android);?[\s\/]+([\d.]+)?/), N = O.match(/(iPad).*OS\s([\d_]+)/), P = O.match(/(iPod)(.*OS\s([\d_]+))?/), F = !N && O.match(/(iPhone\sOS|iOS)\s([\d_]+)/), I = E === "Win32", L = E === "MacIntel";
292	return !N && L && w.touch && [
293		"1024x1366",
294		"1366x1024",
295		"834x1194",
296		"1194x834",
297		"834x1112",
298		"1112x834",
299		"768x1024",
300		"1024x768",
301		"820x1180",
302		"1180x820",
303		"810x1080",
304		"1080x810"
305	].indexOf(`${A}x${j}`) >= 0 && (N = O.match(/(Version)\/([\d.]+)/), N ||= [
306		0,
307		1,
308		"13_0_0"
309	], L = !1), M && !I && (k.os = "android", k.android = !0), (N || F || P) && (k.os = "ios", k.ios = !0), k;
310}
311function getDevice(e) {
312	return e === void 0 && (e = {}), deviceCached ||= calcDevice(e), deviceCached;
313}
314var browser;
315function calcBrowser() {
316	let e = getWindow(), C = getDevice(), w = !1;
317	function T() {
318		let C = e.navigator.userAgent.toLowerCase();
319		return C.indexOf("safari") >= 0 && C.indexOf("chrome") < 0 && C.indexOf("android") < 0;
320	}
321	if (T()) {
322		let C = String(e.navigator.userAgent);
323		if (C.includes("Version/")) {
324			let [e, T] = C.split("Version/")[1].split(" ")[0].split(".").map((e) => Number(e));
325			w = e < 16 || e === 16 && T < 2;
326		}
327	}
328	let E = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent), O = T(), k = O || E && C.ios;
329	return {
330		isSafari: w || O,
331		needPerspectiveFix: w,
332		need3dFix: k,
333		isWebView: E
334	};
335}
336function getBrowser() {
337	return browser ||= calcBrowser(), browser;
338}
339function Resize(e) {
340	let { swiper: C, on: w, emit: T } = e, E = getWindow(), O = null, k = null, A = () => {
341		!C || C.destroyed || !C.initialized || (T("beforeResize"), T("resize"));
342	}, j = () => {
343		!C || C.destroyed || !C.initialized || (O = new ResizeObserver((e) => {
344			k = E.requestAnimationFrame(() => {
345				let { width: w, height: T } = C, E = w, D = T;
346				e.forEach((e) => {
347					let { contentBoxSize: w, contentRect: T, target: O } = e;
348					O && O !== C.el || (E = T ? T.width : (w[0] || w).inlineSize, D = T ? T.height : (w[0] || w).blockSize);
349				}), (E !== w || D !== T) && A();
350			});
351		}), O.observe(C.el));
352	}, M = () => {
353		k && E.cancelAnimationFrame(k), O && O.unobserve && C.el && (O.unobserve(C.el), O = null);
354	}, N = () => {
355		!C || C.destroyed || !C.initialized || T("orientationchange");
356	};
357	w("init", () => {
358		if (C.params.resizeObserver && E.ResizeObserver !== void 0) {
359			j();
360			return;
361		}
362		E.addEventListener("resize", A), E.addEventListener("orientationchange", N);
363	}), w("destroy", () => {
364		M(), E.removeEventListener("resize", A), E.removeEventListener("orientationchange", N);
365	});
366}
367function Observer(e) {
368	let { swiper: C, extendParams: w, on: T, emit: E } = e, O = [], k = getWindow(), A = function(e, w) {
369		w === void 0 && (w = {});
370		let T = new (k.MutationObserver || k.WebkitMutationObserver)((e) => {
371			if (C.__preventObserver__) return;
372			if (e.length === 1) {
373				E("observerUpdate", e[0]);
374				return;
375			}
376			let w = function() {
377				E("observerUpdate", e[0]);
378			};
379			k.requestAnimationFrame ? k.requestAnimationFrame(w) : k.setTimeout(w, 0);
380		});
381		T.observe(e, {
382			attributes: w.attributes === void 0 ? !0 : w.attributes,
383			childList: C.isElement || (w.childList === void 0 ? !0 : w).childList,
384			characterData: w.characterData === void 0 ? !0 : w.characterData
385		}), O.push(T);
386	};
387	w({
388		observer: !1,
389		observeParents: !1,
390		observeSlideChildren: !1
391	}), T("init", () => {
392		if (C.params.observer) {
393			if (C.params.observeParents) {
394				let e = elementParents(C.hostEl);
395				for (let C = 0; C < e.length; C += 1) A(e[C]);
396			}
397			A(C.hostEl, { childList: C.params.observeSlideChildren }), A(C.wrapperEl, { attributes: !1 });
398		}
399	}), T("destroy", () => {
400		O.forEach((e) => {
401			e.disconnect();
402		}), O.splice(0, O.length);
403	});
404}
405var eventsEmitter = {
406	on(e, C, w) {
407		let T = this;
408		if (!T.eventsListeners || T.destroyed || typeof C != "function") return T;
409		let E = w ? "unshift" : "push";
410		return e.split(" ").forEach((e) => {
411			T.eventsListeners[e] || (T.eventsListeners[e] = []), T.eventsListeners[e][E](C);
412		}), T;
413	},
414	once(e, C, w) {
415		let T = this;
416		if (!T.eventsListeners || T.destroyed || typeof C != "function") return T;
417		function E() {
418			T.off(e, E), E.__emitterProxy && delete E.__emitterProxy;
419			var w = [...arguments];
420			C.apply(T, w);
421		}
422		return E.__emitterProxy = C, T.on(e, E, w);
423	},
424	onAny(e, C) {
425		let w = this;
426		if (!w.eventsListeners || w.destroyed || typeof e != "function") return w;
427		let T = C ? "unshift" : "push";
428		return w.eventsAnyListeners.indexOf(e) < 0 && w.eventsAnyListeners[T](e), w;
429	},
430	offAny(e) {
431		let C = this;
432		if (!C.eventsListeners || C.destroyed || !C.eventsAnyListeners) return C;
433		let w = C.eventsAnyListeners.indexOf(e);
434		return w >= 0 && C.eventsAnyListeners.splice(w, 1), C;
435	},
436	off(e, C) {
437		let w = this;
438		return !w.eventsListeners || w.destroyed || !w.eventsListeners || e.split(" ").forEach((e) => {
439			C === void 0 ? w.eventsListeners[e] = [] : w.eventsListeners[e] && w.eventsListeners[e].forEach((T, E) => {
440				(T === C || T.__emitterProxy && T.__emitterProxy === C) && w.eventsListeners[e].splice(E, 1);
441			});
442		}), w;
443	},
444	emit() {
445		let e = this;
446		if (!e.eventsListeners || e.destroyed || !e.eventsListeners) return e;
447		let C, w, T;
448		var E = [...arguments];
449		return typeof E[0] == "string" || Array.isArray(E[0]) ? (C = E[0], w = E.slice(1, E.length), T = e) : (C = E[0].events, w = E[0].data, T = E[0].c
449ontext || e), w.unshift(T), (Array.isArray(C) ? C : C.split(" ")).forEach((C) => {
450			e.eventsAnyListeners && e.eventsAnyListeners.length && e.eventsAnyListeners.forEach((e) => {
451				e.apply(T, [C, ...w]);
452			}), e.eventsListeners && e.eventsListeners[C] && e.eventsListeners[C].forEach((e) => {
453				e.apply(T, w);
454			});
455		}), e;
456	}
457};
458function updateSize() {
459	let e = this, C, w, T = e.el;
460	C = e.params.width !== void 0 && e.params.width !== null ? e.params.width : T.clientWidth, w = e.params.height !== void 0 && e.params.height !== null ? e.params.height : T.clientHeight, !(C === 0 && e.isHorizontal() || w === 0 && e.isVertical()) && (C = C - parseInt(elementStyle(T, "padding-left") || 0, 10) - parseInt(elementStyle(T, "padding-right") || 0, 10), w = w - parseInt(elementStyle(T, "padding-top") || 0, 10) - parseInt(elementStyle(T, "padding-bottom") || 0, 10), Number.isNaN(C) && (C = 0), Number.isNaN(w) && (w = 0), Object.assign(e, {
461		width: C,
462		height: w,
463		size: e.isHorizontal() ? C : w
464	}));
465}
466function updateSlides() {
467	let e = this;
468	function C(C, w) {
469		return parseFloat(C.getPropertyValue(e.getDirectionLabel(w)) || 0);
470	}
471	let w = e.params, { wrapperEl: T, slidesEl: E, size: D, rtlTranslate: O, wrongRTL: k } = e, A = e.virtual && w.virtual.enabled, j = A ? e.virtual.slides.length : e.slides.length, M = elementChildren(E, `.${e.params.slideClass}, swiper-slide`), N = A ? e.virtual.slides.length : M.length, P = [], F = [], I = [], R = w.slidesOffsetBefore;
472	typeof R == "function" && (R = w.slidesOffsetBefore.call(e));
473	let z = w.slidesOffsetAfter;
474	typeof z == "function" && (z = w.slidesOffsetAfter.call(e));
475	let V = e.snapGrid.length, H = e.slidesGrid.length, U = w.spaceBetween, W = -R, G = 0, K = 0;
476	if (D === void 0) return;
477	typeof U == "string" && U.indexOf("%") >= 0 ? U = parseFloat(U.replace("%", "")) / 100 * D : typeof U == "string" && (U = parseFloat(U)), e.virtualSize = -U, M.forEach((e) => {
478		O ? e.style.marginLeft = "" : e.style.marginRight = "", e.style.marginBottom = "", e.style.marginTop = "";
479	}), w.centeredSlides && w.cssMode && (setCSSProperty(T, "--swiper-centered-offset-before", ""), setCSSProperty(T, "--swiper-centered-offset-after", ""));
480	let q = w.grid && w.grid.rows > 1 && e.grid;
481	q ? e.grid.initSlides(M) : e.grid && e.grid.unsetSlides();
482	let Y, X = w.slidesPerView === "auto" && w.breakpoints && Object.keys(w.breakpoints).filter((e) => w.breakpoints[e].slidesPerView !== void 0).length > 0;
483	for (let T = 0; T < N; T += 1) {
484		Y = 0;
485		let E;
486		if (M[T] && (E = M[T]), q && e.grid.updateSlide(T, E, M), !(M[T] && elementStyle(E, "display") === "none")) {
487			if (w.slidesPerView === "auto") {
488				X && (M[T].style[e.getDirectionLabel("width")] = "");
489				let D = getComputedStyle(E), O = E.style.transform, k = E.style.webkitTransform;
490				if (O && (E.style.transform = "none"), k && (E.style.webkitTransform = "none"), w.roundLengths) Y = e.isHorizontal() ? elementOuterSize(E, "width", !0) : elementOuterSize(E, "height", !0);
491				else {
492					let e = C(D, "width"), w = C(D, "padding-left"), T = C(D, "padding-right"), O = C(D, "margin-left"), k = C(D, "margin-right"), A = D.getPropertyValue("box-sizing");
493					if (A && A === "border-box") Y = e + O + k;
494					else {
495						let { clientWidth: C, offsetWidth: D } = E;
496						Y = e + w + T + O + k + (D - C);
497					}
498				}
499				O && (E.style.transform = O), k && (E.style.webkitTransform = k), w.roundLengths && (Y = Math.floor(Y));
500			} else Y = (D - (w.slidesPerView - 1) * U) / w.slidesPerView, w.roundLengths && (Y = Math.floor(Y)), M[T] && (M[T].style[e.getDirectionLabel("width")] = `${Y}px`);
501			M[T] && (M[T].swiperSlideSize = Y), I.push(Y), w.centeredSlides ? (W = W + Y / 2 + G / 2 + U, G === 0 && T !== 0 && (W = W - D / 2 - U), T === 0 && (W = W - D / 2 - U), Math.abs(W) < 1 / 1e3 && (W = 0), w.roundLengths && (W = Math.floor(W)), K % w.slidesPerGroup === 0 && P.push(W), F.push(W)) : (w.roundLengths && (W = Math.floor(W)), (K - Math.min(e.params.slidesPerGroupSkip, K)) % e.params.slidesPerGroup === 0 && P.push(W), F.push(W), W = W + Y + U), e.virtualSize += Y + U, G = Y, K += 1;
502		}
503	}
504	if (e.virtualSize = Math.max(e.virtualSize, D) + z, O && k && (w.effect === "slide" || w.effect === "coverflow") && (T.style.width = `${e.virtualSize + U}px`), w.setWrapperSize && (T.style[e.getDirectionLabel("width")] = `${e.virtualSize + U}px`), q && e.grid.updateWrapperSize(Y, P), !w.centeredSlides) {
505		let C = [];
506		for (let T = 0; T < P.length; T += 1) {
507			let E = P[T];
508			w.roundLengths && (E = Math.floor(E)), P[T] <= e.virtualSize - D && C.push(E);
509		}
510		P = C, Math.floor(e.virtualSize - D) - Math.floor(P[P.length - 1]) > 1 && P.push(e.virtualSize - D);
511	}
512	if (A && w.loop) {
513		let C = I[0] + U;
514		if (w.slidesPerGroup > 1) {
vendor: 4,468 bytes, lines 515-603
515			let T = Math.ceil((e.virtual.slidesBefore + e.virtual.slidesAfter) / w.slidesPerGroup), E = C * w.slidesPerGroup;
516			for (let e = 0; e < T; e += 1) P.push(P[P.length - 1] + E);
517		}
518		for (let T = 0; T < e.virtual.slidesBefore + e.virtual.slidesAfter; T += 1) w.slidesPerGroup === 1 && P.push(P[P.length - 1] + C), F.push(F[F.length - 1] + C), e.virtualSize += C;
519	}
520	if (P.length === 0 && (P = [0]), U !== 0) {
521		let C = e.isHorizontal() && O ? "marginLeft" : e.getDirectionLabel("marginRight");
522		M.filter((e, C) => !w.cssMode || w.loop ? !0 : C !== M.length - 1).forEach((e) => {
523			e.style[C] = `${U}px`;
524		});
525	}
526	if (w.centeredSlides && w.centeredSlidesBounds) {
527		let e = 0;
528		I.forEach((C) => {
529			e += C + (U || 0);
530		}), e -= U;
531		let C = e > D ? e - D : 0;
532		P = P.map((e) => e <= 0 ? -R : e > C ? C + z : e);
533	}
534	if (w.centerInsufficientSlides) {
535		let e = 0;
536		I.forEach((C) => {
537			e += C + (U || 0);
538		}), e -= U;
539		let C = (w.slidesOffsetBefore || 0) + (w.slidesOffsetAfter || 0);
540		if (e + C < D) {
541			let w = (D - e - C) / 2;
542			P.forEach((e, C) => {
543				P[C] = e - w;
544			}), F.forEach((e, C) => {
545				F[C] = e + w;
546			});
547		}
548	}
549	if (Object.assign(e, {
550		slides: M,
551		snapGrid: P,
552		slidesGrid: F,
553		slidesSizesGrid: I
554	}), w.centeredSlides && w.cssMode && !w.centeredSlidesBounds) {
555		setCSSProperty(T, "--swiper-centered-offset-before", `${-P[0]}px`), setCSSProperty(T, "--swiper-centered-offset-after", `${e.size / 2 - I[I.length - 1] / 2}px`);
556		let C = -e.snapGrid[0], w = -e.slidesGrid[0];
557		e.snapGrid = e.snapGrid.map((e) => e + C), e.slidesGrid = e.slidesGrid.map((e) => e + w);
558	}
559	if (N !== j && e.emit("slidesLengthChange"), P.length !== V && (e.params.watchOverflow && e.checkOverflow(), e.emit("snapGridLengthChange")), F.length !== H && e.emit("slidesGridLengthChange"), w.watchSlidesProgress && e.updateSlidesOffset(), e.emit("slidesUpdated"), !A && !w.cssMode && (w.effect === "slide" || w.effect === "fade")) {
560		let C = `${w.containerModifierClass}backface-hidden`, T = e.el.classList.contains(C);
561		N <= w.maxBackfaceHiddenSlides ? T || e.el.classList.add(C) : T && e.el.classList.remove(C);
562	}
563}
564function updateAutoHeight(e) {
565	let C = this, w = [], T = C.virtual && C.params.virtual.enabled, E = 0, D;
566	typeof e == "number" ? C.setTransition(e) : e === !0 && C.setTransition(C.params.speed);
567	let O = (e) => T ? C.slides[C.getSlideIndexByData(e)] : C.slides[e];
568	if (C.params.slidesPerView !== "auto" && C.params.slidesPerView > 1) if (C.params.centeredSlides) (C.visibleSlides || []).forEach((e) => {
569		w.push(e);
570	});
571	else for (D = 0; D < Math.ceil(C.params.slidesPerView); D += 1) {
572		let e = C.activeIndex + D;
573		if (e > C.slides.length && !T) break;
574		w.push(O(e));
575	}
576	else w.push(O(C.activeIndex));
577	for (D = 0; D < w.length; D += 1) if (w[D] !== void 0) {
578		let e = w[D].offsetHeight;
579		E = e > E ? e : E;
580	}
581	(E || E === 0) && (C.wrapperEl.style.height = `${E}px`);
582}
583function updateSlidesOffset() {
584	let e = this, C = e.slides, w = e.isElement ? e.isHorizontal() ? e.wrapperEl.offsetLeft : e.wrapperEl.offsetTop : 0;
585	for (let T = 0; T < C.length; T += 1) C[T].swiperSlideOffset = (e.isHorizontal() ? C[T].offsetLeft : C[T].offsetTop) - w - e.cssOverflowAdjustment();
586}
587var toggleSlideClasses$1 = (e, C, w) => {
588	C && !e.classList.contains(w) ? e.classList.add(w) : !C && e.classList.contains(w) && e.classList.remove(w);
589};
590function updateSlidesProgress(e) {
591	e === void 0 && (e = this && this.translate || 0);
592	let C = this, w = C.params, { slides: T, rtlTranslate: E, snapGrid: D } = C;
593	if (T.length === 0) return;
594	T[0].swiperSlideOffset === void 0 && C.updateSlidesOffset();
595	let O = -e;
596	E && (O = e), C.visibleSlidesIndexes = [], C.visibleSlides = [];
597	let k = w.spaceBetween;
598	typeof k == "string" && k.indexOf("%") >= 0 ? k = parseFloat(k.replace("%", "")) / 100 * C.size : typeof k == "string" && (k = parseFloat(k));
599	for (let e = 0; e < T.length; e += 1) {
600		let A = T[e], j = A.swiperSlideOffset;
601		w.cssMode && w.centeredSlides && (j -= T[0].swiperSlideOffset);
602		let M = (O + (w.centeredSlides ? C.minTranslate() : 0) - j) / (A.swiperSlideSize + k), N = (O - D[0] + (w.centeredSlides ? C.minTranslate() : 0) - j) / (A.swiperSlideSize + k), P = -(O - j), F = P + C.slidesSizesGrid[e], I = P >= 0 && P <= C.size - C.slidesSizesGrid[e], L = P >= 0 && P < C.size - 1 || F > 1 && F <= C.size || P <= 0 && F >= C.size;
603		L && (C.visibleSlides.push(A), C.visibleSlidesIndexes.push(e)), toggleSlideClasses$
6031(A, L, w.slideVisibleClass), toggleSlideClasses$1(A, I, w.slideFullyVisibleClass), A.progress = E ? -M : M, A.originalProgress = E ? -N : N;
604	}
605}
606function updateProgress(e) {
607	let C = this;
608	if (e === void 0) {
609		let w = C.rtlTranslate ? -1 : 1;
610		e = C && C.translate && C.translate * w || 0;
611	}
612	let w = C.params, T = C.maxTranslate() - C.minTranslate(), { progress: E, isBeginning: D, isEnd: O, progressLoop: k } = C, A = D, j = O;
613	if (T === 0) E = 0, D = !0, O = !0;
614	else {
615		E = (e - C.minTranslate()) / T;
616		let w = Math.abs(e - C.minTranslate()) < 1, k = Math.abs(e - C.maxTranslate()) < 1;
617		D = w || E <= 0, O = k || E >= 1, w && (E = 0), k && (E = 1);
618	}
619	if (w.loop) {
620		let w = C.getSlideIndexByData(0), T = C.getSlideIndexByData(C.slides.length - 1), E = C.slidesGrid[w], D = C.slidesGrid[T], O = C.slidesGrid[C.slidesGrid.length - 1], A = Math.abs(e);
621		k = A >= E ? (A - E) / O : (A + O - D) / O, k > 1 && --k;
622	}
623	Object.assign(C, {
624		progress: E,
625		progressLoop: k,
626		isBeginning: D,
627		isEnd: O
628	}), (w.watchSlidesProgress || w.centeredSlides && w.autoHeight) && C.updateSlidesProgress(e), D && !A && C.emit("reachBeginning toEdge"), O && !j && C.emit("reachEnd toEdge"), (A && !D || j && !O) && C.emit("fromEdge"), C.emit("progress", E);
629}
630var toggleSlideClasses = (e, C, w) => {
631	C && !e.classList.contains(w) ? e.classList.add(w) : !C && e.classList.contains(w) && e.classList.remove(w);
632};
633function updateSlidesClasses() {
634	let e = this, { slides: C, params: w, slidesEl: T, activeIndex: E } = e, D = e.virtual && w.virtual.enabled, O = e.grid && w.grid && w.grid.rows > 1, k = (e) => elementChildren(T, `.${w.slideClass}${e}, swiper-slide${e}`)[0], A, j, M;
635	if (D) if (w.loop) {
636		let C = E - e.virtual.slidesBefore;
637		C < 0 && (C = e.virtual.slides.length + C), C >= e.virtual.slides.length && (C -= e.virtual.slides.length), A = k(`[data-swiper-slide-index="${C}"]`);
638	} else A = k(`[data-swiper-slide-index="${E}"]`);
639	else O ? (A = C.find((e) => e.column === E), M = C.find((e) => e.column === E + 1), j = C.find((e) => e.column === E - 1)) : A = C[E];
640	A && (O || (M = elementNextAll(A, `.${w.slideClass}, swiper-slide`)[0], w.loop && !M && (M = C[0]), j = elementPrevAll(A, `.${w.slideClass}, swiper-slide`)[0], w.loop)), C.forEach((e) => {
641		toggleSlideClasses(e, e === A, w.slideActiveClass), toggleSlideClasses(e, e === M, w.slideNextClass), toggleSlideClasses(e, e === j, w.slidePrevClass);
642	}), e.emitSlidesClasses();
643}
644var processLazyPreloader = (e, C) => {
645	if (!e || e.destroyed || !e.params) return;
646	let w = C.closest((() => e.isElement ? "swiper-slide" : `.${e.params.slideClass}`)());
647	if (w) {
648		let C = w.querySelector(`.${e.params.lazyPreloaderClass}`);
649		!C && e.isElement && (w.shadowRoot ? C = w.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`) : requestAnimationFrame(() => {
650			w.shadowRoot && (C = w.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`), C && C.remove());
651		})), C && C.remove();
652	}
653}, unlazy = (e, C) => {
654	if (!e.slides[C]) return;
655	let w = e.slides[C].querySelector("[loading=\"lazy\"]");
656	w && w.removeAttribute("loading");
657}, preload = (e) => {
658	if (!e || e.destroyed || !e.params) return;
659	let C = e.params.lazyPreloadPrevNext, w = e.slides.length;
660	if (!w || !C || C < 0) return;
661	C = Math.min(C, w);
662	let T = e.params.slidesPerView === "auto" ? e.slidesPerViewDynamic() : Math.ceil(e.params.slidesPerView), E = e.activeIndex;
663	if (e.params.grid && e.params.grid.rows > 1) {
664		let w = E, D = [w - C];
665		D.push(...Array.from({ length: C }).map((e, C) => w + T + C)), e.slides.forEach((C, w) => {
666			D.includes(C.column) && unlazy(e, w);
667		});
668		return;
669	}
670	let D = E + T - 1;
671	if (e.params.rewind || e.params.loop) for (let T = E - C; T <= D + C; T += 1) {
672		let C = (T % w + w) % w;
673		(C < E || C > D) && unlazy(e, C);
674	}
675	else for (let T = Math.max(E - C, 0); T <= Math.min(D + C, w - 1); T += 1) T !== E && (T > D || T < E) && unlazy(e, T);
676};
677function getActiveIndexByTranslate(e) {
678	let { slidesGrid: C, params: w } = e, T = e.rtlTranslate ? e.translate : -e.translate, E;
679	for (let e = 0; e < C.length; e += 1) C[e + 1] === void 0 ? T >= C[e] && (E = e) : T >= C[e] && T < C[e + 1] - (C[e + 1] - C[e]) / 2 ? E = e : T >= C[e] && T < C[e + 1] && (E = e + 1);
680	return w.normalizeSlideIndex && (E < 0 || E === void 0) && (E = 0), E;
681}
682function updateActiveIndex(e) {
683	let C = this, w = C.rtlTranslate ? C.translate : -C.translate, { snapGrid: T, params: E, activeIndex: D, realIndex: O, snapIndex: k } = C, A = e, j, M = (e) => {
684		let w = e - C.virtual.slidesBefore;
685		return w < 0 && (w = C.virtual.slides.length + w), w >= C.virtual.slides.length && (w -= C.virtual.slides.length), w;
686	};
687	if (A === void 0 && (A = getActiveIndexByTranslate(C)), T.indexOf(w) >= 0) j = T.indexOf(w);
688	else {
689		let e = Math.min(E.slidesPerGroupSkip, A);
690		j = e + Math.floor((A - e) / E.slidesPerGroup);
691	}
692	if (j >= T.length && (j = T.length - 1), A === D && !C.params.loop) {
693		j !== k && (C.snapIndex = j, C.emit("snapIndexChange"));
694		return;
695	}
696	if (A === D && C.params.loop && C.virtual && C.params.virtual.enabled) {
697		C.realIndex = M(A);
698		return;
699	}
700	let N = C.grid && E.grid && E.grid.rows > 1, P;
701	if (C.virtual && E.virtual.enabled && E.loop) P = M(A);
702	else if (N) {
703		let e = C.slides.find((e) => e.column === A), w = parseInt(e.getAttribute("data-swiper-slide-index"), 10);
704		Number.isNaN(w) && (w = Math.max(C.slides.indexOf(e), 0)), P = Math.floor(w / E.grid.rows);
705	} else if (C.slides[A]) {
706		let e = C.slides[A].getAttribute("data-swiper-slide-index");
707		P = e ? parseInt(e, 10) : A;
708	} else P = A;
709	Object.assign(C, {
710		previousSnapIndex: k,
711		snapIndex: j,
712		previousRealIndex: O,
713		realIndex: P,
714		previousIndex: D,
715		activeIndex: A
716	}), C.initialized && preload(C), C.emit("activeIndexChange"), C.emit("snapIndexChange"), (C.initialized || C.params.runCallbacksOnInit) && (O !== P && C.emit("realIndexChange"), C.emit("slideChange"));
717}
718function updateClickedSlide(e, C) {
719	let w = this, T = w.params, E = e.closest(`.${T.slideClass}, swiper-slide`);
720	!E && w.isElement && C && C.length > 1 && C.includes(e) && [...C.slice(C.indexOf(e) + 1, C.length)].forEac
vendor: 9,697 bytes, lines 720-921
720h((e) => {
721		!E && e.matches && e.matches(`.${T.slideClass}, swiper-slide`) && (E = e);
722	});
723	let D = !1, O;
724	if (E) {
725		for (let e = 0; e < w.slides.length; e += 1) if (w.slides[e] === E) {
726			D = !0, O = e;
727			break;
728		}
729	}
730	if (E && D) w.clickedSlide = E, w.virtual && w.params.virtual.enabled ? w.clickedIndex = parseInt(E.getAttribute("data-swiper-slide-index"), 10) : w.clickedIndex = O;
731	else {
732		w.clickedSlide = void 0, w.clickedIndex = void 0;
733		return;
734	}
735	T.slideToClickedSlide && w.clickedIndex !== void 0 && w.clickedIndex !== w.activeIndex && w.slideToClickedSlide();
736}
737var update = {
738	updateSize,
739	updateSlides,
740	updateAutoHeight,
741	updateSlidesOffset,
742	updateSlidesProgress,
743	updateProgress,
744	updateSlidesClasses,
745	updateActiveIndex,
746	updateClickedSlide
747};
748function getSwiperTranslate(e) {
749	e === void 0 && (e = this.isHorizontal() ? "x" : "y");
750	let C = this, { params: w, rtlTranslate: T, translate: E, wrapperEl: D } = C;
751	if (w.virtualTranslate) return T ? -E : E;
752	if (w.cssMode) return E;
753	let O = getTranslate(D, e);
754	return O += C.cssOverflowAdjustment(), T && (O = -O), O || 0;
755}
756function setTranslate(e, C) {
757	let w = this, { rtlTranslate: T, params: E, wrapperEl: D, progress: O } = w, k = 0, A = 0;
758	w.isHorizontal() ? k = T ? -e : e : A = e, E.roundLengths && (k = Math.floor(k), A = Math.floor(A)), w.previousTranslate = w.translate, w.translate = w.isHorizontal() ? k : A, E.cssMode ? D[w.isHorizontal() ? "scrollLeft" : "scrollTop"] = w.isHorizontal() ? -k : -A : E.virtualTranslate || (w.isHorizontal() ? k -= w.cssOverflowAdjustment() : A -= w.cssOverflowAdjustment(), D.style.transform = `translate3d(${k}px, ${A}px, 0px)`);
759	let j, M = w.maxTranslate() - w.minTranslate();
760	j = M === 0 ? 0 : (e - w.minTranslate()) / M, j !== O && w.updateProgress(e), w.emit("setTranslate", w.translate, C);
761}
762function minTranslate() {
763	return -this.snapGrid[0];
764}
765function maxTranslate() {
766	return -this.snapGrid[this.snapGrid.length - 1];
767}
768function translateTo(e, C, w, T, E) {
769	e === void 0 && (e = 0), C === void 0 && (C = this.params.speed), w === void 0 && (w = !0), T === void 0 && (T = !0);
770	let D = this, { params: O, wrapperEl: k } = D;
771	if (D.animating && O.preventInteractionOnTransition) return !1;
772	let A = D.minTranslate(), j = D.maxTranslate(), M;
773	if (M = T && e > A ? A : T && e < j ? j : e, D.updateProgress(M), O.cssMode) {
774		let e = D.isHorizontal();
775		if (C === 0) k[e ? "scrollLeft" : "scrollTop"] = -M;
776		else {
777			if (!D.support.smoothScroll) return animateCSSModeScroll({
778				swiper: D,
779				targetPosition: -M,
780				side: e ? "left" : "top"
781			}), !0;
782			k.scrollTo({
783				[e ? "left" : "top"]: -M,
784				behavior: "smooth"
785			});
786		}
787		return !0;
788	}
789	return C === 0 ? (D.setTransition(0), D.setTranslate(M), w && (D.emit("beforeTransitionStart", C, E), D.emit("transitionEnd"))) : (D.setTransition(C), D.setTranslate(M), w && (D.emit("beforeTransitionStart", C, E), D.emit("transitionStart")), D.animating || (D.animating = !0, D.onTranslateToWrapperTransitionEnd ||= function(e) {
790		!D || D.destroyed || e.target === this && (D.wrapperEl.removeEventListener("transitionend", D.onTranslateToWrapperTransitionEnd), D.onTranslateToWrapperTransitionEnd = null, delete D.onTranslateToWrapperTransitionEnd, D.animating = !1, w && D.emit("transitionEnd"));
791	}, D.wrapperEl.addEventListener("transitionend", D.onTranslateToWrapperTransitionEnd))), !0;
792}
793var translate = {
794	getTranslate: getSwiperTranslate,
795	setTranslate,
796	minTranslate,
797	maxTranslate,
798	translateTo
799};
800function setTransition(e, C) {
801	let w = this;
802	w.params.cssMode || (w.wrapperEl.style.transitionDuration = `${e}ms`, w.wrapperEl.style.transitionDelay = e === 0 ? "0ms" : ""), w.emit("setTransition", e, C);
803}
804function transitionEmit(e) {
805	let { swiper: C, runCallbacks: w, direction: T, step: E } = e, { activeIndex: D, previousIndex: O } = C, k = T;
806	k ||= D > O ? "next" : D < O ? "prev" : "reset", C.emit(`transition${E}`), w && k === "reset" ? C.emit(`slideResetTransition${E}`) : w && D !== O && (C.emit(`slideChangeTransition${E}`), k === "next" ? C.emit(`slideNextTransition${E}`) : C.emit(`slidePrevTransition${E}`));
807}
808function transitionStart(e, C) {
809	e === void 0 && (e = !0);
810	let w = this, { params: T } = w;
811	T.cssMode || (T.autoHeight && w.updateAutoHeight(), transitionEmit({
812		swiper: w,
813		runCallbacks: e,
814		direction: C,
815		step: "Start"
816	}));
817}
818function transitionEnd(e, C) {
819	e === void 0 && (e = !0);
820	let w = this, { params: T } = w;
821	w.animating = !1, !T.cssMode && (w.setTransition(0), transitionEmit({
822		swiper: w,
823		runCallbacks: e,
824		direction: C,
825		step: "End"
826	}));
827}
828var transition = {
829	setTransition,
830	transitionStart,
831	transitionEnd
832};
833function slideTo(e, C, w, T, E) {
834	e === void 0 && (e = 0), w === void 0 && (w = !0), typeof e == "string" && (e = parseInt(e, 10));
835	let D = this, O = e;
836	O < 0 && (O = 0);
837	let { params: k, snapGrid: A, slidesGrid: j, previousIndex: M, activeIndex: N, rtlTranslate: P, wrapperEl: F, enabled: I } = D;
838	if (!I && !T && !E || D.destroyed || D.animating && k.preventInteractionOnTransition) return !1;
839	C === void 0 && (C = D.params.speed);
840	let L = Math.min(D.params.slidesPerGroupSkip, O), z = L + Math.floor((O - L) / D.params.slidesPerGroup);
841	z >= A.length && (z = A.length - 1);
842	let B = -A[z];
843	if (k.normalizeSlideIndex) for (let e = 0; e < j.length; e += 1) {
844		let C = -Math.floor(B * 100), w = Math.floor(j[e] * 100), T = Math.floor(j[e + 1] * 100);
845		j[e + 1] === void 0 ? C >= w && (O = e) : C >= w && C < T - (T - w) / 2 ? O = e : C >= w && C < T && (O = e + 1);
846	}
847	if (D.initialized && O !== N && (!D.allowSlideNext && (P ? B > D.translate && B > D.minTranslate() : B < D.translate && B < D.minTranslate()) || !D.allowSlidePrev && B > D.translate && B > D.maxTranslate() && (N || 0) !== O)) return !1;
848	O !== (M || 0) && w && D.emit("beforeSlideChangeStart"), D.updateProgress(B);
849	let V;
850	V = O > N ? "next" : O < N ? "prev" : "reset";
851	let H = D.virtual && D.params.virtual.enabled;
852	if (!(H && E) && (P && -B === D.translate || !P && B === D.translate)) return D.updateActiveIndex(O), k.autoHeight && D.updateAutoHeight(), D.updateSlidesClasses(), k.effect !== "slide" && D.setTranslate(B), V !== "reset" && (D.transitionStart(w, V), D.transitionEnd(w, V)), !1;
853	if (k.cssMode) {
854		let e = D.isHorizontal(), w = P ? B : -B;
855		if (C === 0) H && (D.wrapperEl.style.scrollSnapType = "none", D._immediateVirtual = !0), H && !D._cssModeVirtualInitialSet && D.params.initialSlide > 0 ? (D._cssModeVirtualInitialSet = !0, requestAnimationFrame(() => {
856			F[e ? "scrollLeft" : "scrollTop"] = w;
857		})) : F[e ? "scrollLeft" : "scrollTop"] = w, H && requestAnimationFrame(() => {
858			D.wrapperEl.style.scrollSnapType = "", D._immediateVirtual = !1;
859		});
860		else {
861			if (!D.support.smoothScroll) return animateCSSModeScroll({
862				swiper: D,
863				targetPosition: w,
864				side: e ? "left" : "top"
865			}), !0;
866			F.scrollTo({
867				[e ? "left" : "top"]: w,
868				behavior: "smooth"
869			});
870		}
871		return !0;
872	}
873	let U = getBrowser().isSafari;
874	return H && !E && U && D.isElement && D.virtual.update(!1, !1, O), D.setTransition(C), D.setTranslate(B), D.updateActiveIndex(O), D.updateSlidesClasses(), D.emit("beforeTransitionStart", C, T), D.transitionStart(w, V), C === 0 ? D.transitionEnd(w, V) : D.animating || (D.animating = !0, D.onSlideToWrapperTransitionEnd ||= function(e) {
875		!D || D.destroyed || e.target === this && (D.wrapperEl.removeEventListener("transitionend", D.onSlideToWrapperTransitionEnd), D.onSlideToWrapperTransitionEnd = null, delete D.onSlideToWrapperTransitionEnd, D.transitionEnd(w, V));
876	}, D.wrapperEl.addEventListener("transitionend", D.onSlideToWrapperTransitionEnd)), !0;
877}
878function slideToLoop(e, C, w, T) {
879	e === void 0 && (e = 0), w === void 0 && (w = !0), typeof e == "string" && (e = parseInt(e, 10));
880	let E = this;
881	if (E.destroyed) return;
882	C === void 0 && (C = E.params.speed);
883	let D = E.grid && E.params.grid && E.params.grid.rows > 1, O = e;
884	if (E.params.loop) if (E.virtual && E.params.virtual.enabled) O += E.virtual.slidesBefore;
885	else {
886		let e;
887		if (D) {
888			let C = O * E.params.grid.rows;
889			e = E.slides.find((e) => e.getAttribute("data-swiper-slide-index") * 1 === C).column;
890		} else e = E.getSlideIndexByData(O);
891		let C = D ? Math.ceil(E.slides.length / E.params.grid.rows) : E.slides.length, { centeredSlides: w } = E.params, k = E.params.slidesPerView;
892		k === "auto" ? k = E.slidesPerViewDynamic() : (k = Math.ceil(parseFloat(E.params.slidesPerView, 10)), w && k % 2 == 0 && (k += 1));
893		let A = C - e < k;
894		if (w && (A ||= e < Math.ceil(k / 2)), T && w && E.params.slidesPerView !== "auto" && !D && (A = !1), A) {
895			let T = w ? e < E.activeIndex ? "prev" : "next" : e - E.activeIndex - 1 < E.params.slidesPerView ? "next" : "prev";
896			E.loopFix({
897				direction: T,
898				slideTo: !0,
899				activeSlideIndex: T === "next" ? e + 1 : e - C + 1,
900				slideRealIndex: T === "next" ? E.realIndex : void 0
901			});
902		}
903		if (D) {
904			let e = O * E.params.grid.rows;
905			O = E.slides.find((C) => C.getAttribute("data-swiper-slide-index") * 1 === e).column;
906		} else O = E.getSlideIndexByData(O);
907	}
908	return requestAnimationFrame(() => {
909		E.slideTo(O, C, w, T);
910	}), E;
911}
912function slideNext(e, C, w) {
913	C === void 0 && (C = !0);
914	let T = this, { enabled: E, params: D, animating: O } = T;
915	if (!E || T.destroyed) return T;
916	e === void 0 && (e = T.params.speed);
917	let k = D.slidesPerGroup;
918	D.slidesPerView === "auto" && D.slidesPerGroup === 1 && D.slidesPerGroupAuto && (k = Math.max(T.slidesPerViewDynamic("current", !0), 1));
919	let A = T.activeIndex < D.slidesPerGroupSkip ? 1 : k, j = T.virtual && D.virtual.enabled;
920	if (D.loop) {
921		if (O && !j && D.loopPreventsSliding) return !1;
922		if (T.loopFix({ direction: "next" }), T._clientLeft = T.wrapperEl.clientLeft, T.activeIndex === T.slides.length - 1 && D.cssMode) return requestAnimationFrame(() => {
923			T.slideTo(T.activeIndex + A, e, C, w);
924		}), !0;
925	}
926	return D.rewind && T.isEnd ? T.slideTo(0, e, C, w) : T.slideTo(T.activeIndex + A, e, C, w);
927}
928function slidePrev(e, C, w) {
929	C === void 0 && (C = !0);
930	let T = this, { params: E, snapGrid: D, slidesGrid: O, rtlTranslate: k, enabled: A, animating: j } = T;
931	if (!A || T.destroyed) return T;
932	e === void 0 && (e = T.params.speed);
933	let M = T.virtual && E.virtual.enabled;
934	if (E.loop) {
935		if (j && !M && E.loopPreventsSliding) return !1;
936		T.loopFix({ direction: "prev" }), T._clientLeft = T.wrapperEl.clientLeft;
937	}
938	let N = k ? T.translate : -T.translate;
939	function P(e) {
940		return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e);
941	}
942	let F = P(N), I = D.map((e) => P(e)), L = E.freeMode && E.freeMode.enabled, R = D[I.indexOf(F) - 1];
943	if (R === void 0 && (E.cssMode || L)) {
944		let e;
945		D.forEach((C, w) => {
946			F >= C && (e = w);
947		}), e !== void 0 && (R = L ? D[e] : D[e > 0 ? e - 1 : e]);
948	}
949	let z = 0;
950	if (R !== void 0 && (z = O.indexOf(R), z < 0 && (z = T.activeIndex - 1), E.slidesPerView === "auto" && E.slidesPerGroup === 1 && E.slidesPerGroupAuto && (z = z - T.slidesPerViewDynamic("previous", !0) + 1, z = Math.max(z, 0))), E.rewind && T.isBeginning) {
951		let E = T.params.virtual && T.params.virtual.enabled && T.virtual ? T.virtual.slides.length - 1 : T.slides.length - 1;
952		return T.slideTo(E, e, C, w);
953	} else if (E.loop && T.activeIndex === 0 && E.cssMode) return requestAnimationFrame(() => {
954		T.slideTo(z, e, C, w);
955	}), !0;
956	return T.slideTo(z, e, C, w);
957}
958function slideReset(e, C, w) {
959	C === void 0 && (C = !0);
960	let T = this;
961	if (!T.destroyed) return e === void 0 && (e = T.params.speed), T.slideTo(T.activeIndex, e, C, w);
962}
963function slideToClosest(e, C, w, T) {
964	C === void 0 && (C = !0), T === void 0 && (T = .5);
965	let E = this;
966	if (E.destroyed) return;
967	e === void 0 && (e = E.params.speed);
968	let D = E.activeIndex, O = Math.min(E.params.slidesPerGroupSkip, D), k = O + Math.floor((D - O) / E.params.slidesPerGroup), A = E.rtlTranslate ? E.translate : -E.translate;
969	if (A >= E.snapGrid[k]) {
970		let e = E.snapGrid[k], C = E.snapGrid[k + 1];
971		A - e > (C - e) * T && (D += E.params.slidesPerGroup);
972	} else {
973		let e = E.snapGrid[k - 1], C = E.snapGrid[k];
974		A - e <= (C - e) * T && (D -= E.params.slidesPerGroup);
975	}
976	return D = Math.max(D, 0), D = Math.min(D, E.slidesGrid.length - 1), E.slideTo(D, e, C, w);
977}
978function slideToClickedSlide() {
979	let e = this;
980	if (e.destroyed) return;
981	let { params: C, slidesEl: w } = e, T = C.slidesPerView === "auto" ? e.slidesPerViewDynamic() : C.slidesPerView, E = e.getSlideIndexWhenGrid(e.clickedIndex), D, O = e.isElement ? "swiper-slide" : `.${C.slideClass}`, k = e.grid && e.params.grid && e.params.grid.rows > 1;
982	if (C.loop) {
983		if (e.animating) return;
984		D = parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"), 10), C.centeredSlides ? e.slideToLoop(D) : E > (k ? (e.slides.length - T) / 2 - (e.params.grid.rows - 1) : e.slides.length - T) ? (e.loopFix(), E = e.getSlideIndex(elementChildren(w, `${O}[data-swiper-slide-index="${D}"]`)[0]), nextTick(() => {
985			e.slideTo(E);
986		})) : e.slideTo(E);
987	} else e.slideTo(E);
988}
989var slide = {
990	slideTo,
991	slideToLoop,
992	slideNext,
993	slidePrev,
994	slideReset,
995	slideToClosest,
996	slideToClickedSlide
997};
998function loopCreate(e, C) {
999	let w = this, { params: T, slidesEl: E } = w;
1000	if (!T.loop || w.virtual && w.params.virtual.enabled) return;
1001	let D = () => {
1002		elementChildren(E, `.${T.slideClass}, swiper-slide`).forEach((e, C) => {
1003			e.setAttribute("data-swiper-slide-index", C);
1004		});
1005	}, O = () => {
1006		let e = elementChildren(E, `.${T.slideBlankClass}`);
1007		e.forEach((e) => {
1008			e.remove();
1009		}), e.length > 0 && (w.recalcSlides(), w.updateSlides());
1010	}, k = w.grid && T.grid && T.grid.rows > 1;
1011	T.loopAddBlankSlides && (T.slidesPerGroup > 1 || k) && O();
1012	let A = T.slidesPerGroup * (k ? T.grid.rows : 1), j = w.slides.length % A !== 0, M = k && w.slides.length % T.grid.rows !== 0, N = (e) => {
1013		for (let C = 0; C < e; C += 1) {
1014			let e = w.isElement ? createElement("swiper-slide", [T.slideBlankClass]) : createElement("div", [T.slideClass, T.slideBlankClass]);
1015			w.slidesEl.append(e);
1016		}
1017	};
1018	j ? (T.loopAddBlankSlides ? (N(A - w.slides.length % A), w.recalcSlides(), w.updateSlides()) : showWarning("Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may 
1018not function properly. You need to add more slides (or make duplicates, or empty slides)"), D()) : (M && (T.loopAddBlankSlides ? (N(T.grid.rows - w.slides.length % T.grid.rows), w.recalcSlides(), w.updateSlides()) : showWarning("Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)")), D()), w.loopFix({
1019		slideRealIndex: e,
1020		direction: T.centeredSlides ? void 0 : "next",
1021		initial: C
1022	});
1023}
1024function loopFix(e) {
1025	let { slideRealIndex: C, slideTo: w = !0, direction: T, setTranslate: E, activeSlideIndex: D, initial: O, byController: k, byMousewheel: A } = e === void 0 ? {} : e, j = this;
1026	if (!j.params.loop) return;
1027	j.emit("beforeLoopFix");
1028	let { slides: M, allowSlidePrev: N, allowSlideNext: P, slidesEl: F, params: I } = j, { centeredSlides: L, initialSlide: R } = I;
1029	if (j.allowSlidePrev = !0, j.allowSlideNext = !0, j.virtual && I.virtual.enabled) {
1030		w && (!I.centeredSlides && j.snapIndex === 0 ? j.slideTo(j.virtual.slides.length, 0, !1, !0) : I.centeredSlides && j.snapIndex < I.slidesPerView ? j.slideTo(j.virtual.slides.length + j.snapIndex, 0, !1, !0) : j.snapIndex === j.snapGrid.length - 1 && j.slideTo(j.virtual.slidesBefore, 0, !1, !0)), j.allowSlidePrev = N, j.allowSlideNext = P, j.emit("loopFix");
1031		return;
1032	}
1033	let z = I.slidesPerView;
1034	z === "auto" ? z = j.slidesPerViewDynamic() : (z = Math.ceil(parseFloat(I.slidesPerView, 10)), L && z % 2 == 0 && (z += 1));
1035	let B = I.slidesPerGroupAuto ? z : I.slidesPerGroup, V = L ? Math.max(B, Math.ceil(z / 2)) : B;
1036	V % B !== 0 && (V += B - V % B), V += I.loopAdditionalSlides, j.loopedSlides = V;
1037	let H = j.grid && I.grid && I.grid.rows > 1;
1038	M.length < z + V || j.params.effect === "cards" && M.length < z + V * 2 ? showWarning("Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters") : H && I.grid.fill === "row" && showWarning("Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`");
1039	let W = [], G = [], K = H ? Math.ceil(M.length / I.grid.rows) : M.length, q = O && K - R < z && !L, J = q ? R : j.activeIndex;
1040	D === void 0 ? D = j.getSlideIndex(M.find((e) => e.classList.contains(I.slideActiveClass))) : J = D;
1041	let Y = T === "next" || !T, X = T === "prev" || !T, Z = 0, Q = 0, $ = (H ? M[D].column : D) + (L && E === void 0 ? -z / 2 + .5 : 0);
1042	if ($ < V) {
1043		Z = Math.max(V - $, B);
1044		for (let e = 0; e < V - $; e += 1) {
1045			let C = e - Math.floor(e / K) * K;
1046			if (H) {
1047				let e = K - C - 1;
1048				for (let C = M.length - 1; C >= 0; --C) M[C].column === e && W.push(C);
1049			} else W.push(K - C - 1);
1050		}
1051	} else if ($ + z > K - V) {
1052		Q = Math.max($ - (K - V * 2), B), q && (Q = Math.max(Q, z - K + R + 1));
1053		for (let e = 0; e < Q; e += 1) {
1054			let C = e - Math.floor(e / K) * K;
1055			H ? M.forEach((e, w) => {
1056				e.column === C && G.push(w);
1057			}) : G.push(C);
1058		}
1059	}
1060	if (j.__preventObserver__ = !0, requestAnimationFrame(() => {
1061		j.__preventObserver__ = !1;
1062	}), j.params.effect === "cards" && M.length < z + V * 2 && (G.includes(D) && G.splice(G.indexOf(D), 1), W.includes(D) && W.splice(W.indexOf(D), 1)), X && W.forEach((e) => {
1063		M[e].swiperLoopMoveDOM = !0, F.prepend(M[e]), M[e].swiperLoopMoveDOM = !1;
1064	}), Y && G.forEach((e) => {
1065		M[e].swiperLoopMoveDOM = !0, F.append(M[e]), M[e].swiperLoopMoveDOM = !1;
1066	}), j.recalcSlides(), I.slidesPerView === "auto" ? j.updateSlides() : H && (W.length > 0 && X || G.length > 0 && Y) && j.slides.forEach((e, C) => {
1067		j.grid.updateSlide(C, e, j.slides);
1068	}), I.watchSlidesProgress && j.updateSlidesOffset(), w) {
1069		if (W.length > 0 && X) {
1070			if (C === void 0) {
1071				let e = j.slidesGrid[J], C = j.slidesGrid[J + Z] - e;
1072				A ? j.setTranslate(j.translate - C) : (j.slideTo(J + Math.ceil(Z), 0, !1, !0), E && (j.touchEventsData.startTranslate = j.touchEventsData.startTranslate - C, j.touchEventsData.currentTranslate = j.touchEventsData.currentTranslate - C));
1073			} else if (E) {
1074				let e = H ? W.length / I.grid.rows : W.length;
1075				j.slideTo(j.activeIndex + e, 0, !1, !0), j.touchEventsData.currentTranslate = j.translate;
1076			}
1077		} else if (G.length > 0 && Y) if (C === void 0) {
1078			let e = j.slidesGrid[J], C = j.slidesGrid[J - Q] - e;
1079			A ? j.setTranslate(j.translate - C) : (j.slideTo(J - Q, 0, !1, !0), E && (j.touchEventsData.startTranslate = j.touchEventsData.startTranslate - C, j.touchEventsData.currentTranslate = j.touchEventsData.currentTranslate - C));
1080		} else {
1081			let e = H ? G.length / I.grid.rows : G.length;
1082			j.slideTo(j.activeIndex - e, 0, !1, !0);
1083		}
1084	}
1085	if (j.allowSlidePrev = N, j.allowSlideNext = P, j.controller && j.controller.control && !k) {
1086		let e = {
1087			slideRealIndex: C,
1088			direction: T,
1089			setTranslate: E,
1090			activeSlideIndex: D,
1091			byController: !0
1092		};
1093		Array.isArray(j.controller.control) ? j.controller.control.forEach((C) => {
1094			!C.destroyed && C.params.loop && C.loopFix({
1095				...e,
1096				slideTo: C.params.slidesPerView === I.slidesPerView ? w : !1
1097			});
1098		}) : j.controller.control instanceof j.constructor && j.controller.control.params.loop && j.controller.control.loopFix({
1099			...e,
1100			slideTo: j.controller.control.params.slidesPerView === I.slidesPerView ? w : !1
1101		});
1102	}
1103	j.emit("loopFix");
1104}
1105function loopDestroy() {
1106	let e = this, { params: C, slidesEl: w } = e;
1107	if (!C.loop || !w || e.virtual && e.params.virtual.enabled) return;
1108	e.recalcSlides();
1109	let T = [];
1110	e.slides.forEach((e) => {
1111		let C = e.swiperSlideIndex === void 0 ? e.getAttribute("data-swiper-slide-index") * 1 : e.swiperSlideIndex;
1112		T[C] = e;
1113	}), e.slides.forEach((e) => {
1114		e.removeAttribute("data-swiper-slide-index");
1115	}), T.forEach((e) => {
1116		w.append(e);
1117	}), e.recalcSlides(), e.slideTo(e.realIndex, 0);
1118}
1119var loop = {
1120	loopCreate,
1121	loopFix,
1122	loopDestroy
1123};
1124function setGrabCursor(e) {
1125	let C = this;
1126	if (!C.params.simulateTouch || C.params.watchOverflow && C.isLocked || C.params.cssMode) return;
1127	let w = C.params.touchEventsTarget === "container" ? C.el : C.wrapperEl;
1128	C.isElement && (C.__preventObserver__ = !0), w.style.cursor = "move", w.style.cursor = e ? "grabbing" : "grab", C.isElement && requestAnimationFrame(() => {
1129		C.__preventObserver__ = !1;
1130	});
1131}
1132function unsetGrabCursor() {
1133	let e = this;
1134	e.params.watchOverflow && e.isLocked || e.params.cssMode || (e.isElement && (e.__preventObserver__ = !0), e[e.params.touchEventsTarget === "container" ? "el" : "wrapperEl"].style.cursor = "", e.isElement && requestAnimationFrame(() => {
1135		e.__preventObserver__ = !1;
1136	}));
1137}
1138var grabCursor = {
1139	setGrabCursor,
1140	unsetGrabCursor
1141};
1142function closestElement(e, C) {
1143	C === void 0 && (C = this);
1144	function w(C) {
1145		if (!C || C === getDocument() || C === getWindow()) return null;
1146		C.assignedSlot && (C = C.assignedSlot);
1147		let E = C.closest(e);
1148		return !E && !C.getRootNode ? null : E || w(C.getRootNode().host);
1149	}
1150	return w(C);
1151}
1152function preventEdgeSwipe(e, C, w) {
1153	let T = getWindow(), { params: E } = e, O = E.edgeSwipeDetection, k = E.edgeSwipeThreshold;
1154	return O && (w <= k || w >= T.innerWidth - k) ? O === "prevent" ? (C.preventDefault(), !0) : !1 : !0;
1155}
1156function onTouchStart(e) {
1157	let C = this, w = getDocument(), E = e;
1158	E.originalEvent && (E = E.originalEvent);
1159	let D = C.touchEventsData;
1160	if (E.type === "pointerdown") {
1161		if (D.pointerId !== null && D.pointerId !== E.pointerId) return;
1162		D.pointerId = E.pointerId;
1163	} else E.type === "touchstart" && E.targetTouches.length === 1 && (D.touchId = E.targetTouches[0].identifier);
1164	if (E.type === "touchstart") {
1165		preventEdgeSwipe(C, E, E.targetTouches[0].pageX);
1166		return;
1167	}
1168	let { params: O, touches: k, enabled: A } = C;
1169	if (!A || !O.simulateTouch && E.pointerType === "mouse" || C.animating && O.preventInteractionOnTransition) return;
1170	!C.animating && O.cssMode && O.loop && C.loopFix();
1171	let M = E.target;
1172	if (O.touchEventsTarget === "wrapper" && !elementIsChildOf(M, C.wrapperEl) || "which" in E && E.which === 3 || "button" in E && E.button > 0 || D.isTouched && D.isMoved) return;
1173	let N = !!O.noSwipingClass && O.noSwipingClass !== "", P = E.composedPath ? E.composedPath() : E.path;
1174	N && E.target && E.target.shadowRoot && P && (M = P[0]);
1175	let F = O.noSwipingSelector ? O.noSwipingSelector : `.${O.noSwipingClass}`, I = !!(E.target && E.target.shadowRoot);
1176	if (O.noSwiping && (I ? closestElement(F, M) : M.closest(F))) {
1177		C.allowClick = !0;
1178		return;
1179	}
1180	if (O.swipeHandler && !M.closest(O.swipeHandler)) return;
1181	k.currentX = E.pageX, k.currentY = E.pageY;
1182	let L = k.currentX, R = k.currentY;
1183	if (!preventEdgeSwipe(C, E, L)) return;
1184	Object.assign(D, {
1185		isTouched: !0,
1186		isMoved: !1,
1187		allowTouchCallbacks: !0,
1188		isScrolling: void 0,
1189		startMoving: void 0
1190	}
vendor: 4,355 bytes, lines 1190-1260
1190), k.startX = L, k.startY = R, D.touchStartTime = now(), C.allowClick = !0, C.updateSize(), C.swipeDirection = void 0, O.threshold > 0 && (D.allowThresholdMove = !1);
1191	let z = !0;
1192	M.matches(D.focusableElements) && (z = !1, M.nodeName === "SELECT" && (D.isTouched = !1)), w.activeElement && w.activeElement.matches(D.focusableElements) && w.activeElement !== M && (E.pointerType === "mouse" || E.pointerType !== "mouse" && !M.matches(D.focusableElements)) && w.activeElement.blur();
1193	let B = z && C.allowTouchMove && O.touchStartPreventDefault;
1194	(O.touchStartForcePreventDefault || B) && !M.isContentEditable && E.preventDefault(), O.freeMode && O.freeMode.enabled && C.freeMode && C.animating && !O.cssMode && C.freeMode.onTouchStart(), C.emit("touchStart", E);
1195}
1196function onTouchMove(e) {
1197	let C = getDocument(), w = this, E = w.touchEventsData, { params: D, touches: O, rtlTranslate: k, enabled: A } = w;
1198	if (!A || !D.simulateTouch && e.pointerType === "mouse") return;
1199	let M = e;
1200	if (M.originalEvent && (M = M.originalEvent), M.type === "pointermove" && (E.touchId !== null || M.pointerId !== E.pointerId)) return;
1201	let N;
1202	if (M.type === "touchmove") {
1203		if (N = [...M.changedTouches].find((e) => e.identifier === E.touchId), !N || N.identifier !== E.touchId) return;
1204	} else N = M;
1205	if (!E.isTouched) {
1206		E.startMoving && E.isScrolling && w.emit("touchMoveOpposite", M);
1207		return;
1208	}
1209	let P = N.pageX, F = N.pageY;
1210	if (M.preventedByNestedSwiper) {
1211		O.startX = P, O.startY = F;
1212		return;
1213	}
1214	if (!w.allowTouchMove) {
1215		M.target.matches(E.focusableElements) || (w.allowClick = !1), E.isTouched && (Object.assign(O, {
1216			startX: P,
1217			startY: F,
1218			currentX: P,
1219			currentY: F
1220		}), E.touchStartTime = now());
1221		return;
1222	}
1223	if (D.touchReleaseOnEdges && !D.loop) {
1224		if (w.isVertical()) {
1225			if (F < O.startY && w.translate <= w.maxTranslate() || F > O.startY && w.translate >= w.minTranslate()) {
1226				E.isTouched = !1, E.isMoved = !1;
1227				return;
1228			}
1229		} else if (k && (P > O.startX && -w.translate <= w.maxTranslate() || P < O.startX && -w.translate >= w.minTranslate())) return;
1230		else if (!k && (P < O.startX && w.translate <= w.maxTranslate() || P > O.startX && w.translate >= w.minTranslate())) return;
1231	}
1232	if (C.activeElement && C.activeElement.matches(E.focusableElements) && C.activeElement !== M.target && M.pointerType !== "mouse" && C.activeElement.blur(), C.activeElement && M.target === C.activeElement && M.target.matches(E.focusableElements)) {
1233		E.isMoved = !0, w.allowClick = !1;
1234		return;
1235	}
1236	E.allowTouchCallbacks && w.emit("touchMove", M), O.previousX = O.currentX, O.previousY = O.currentY, O.currentX = P, O.currentY = F;
1237	let I = O.currentX - O.startX, L = O.currentY - O.startY;
1238	if (w.params.threshold && Math.sqrt(I ** 2 + L ** 2) < w.params.threshold) return;
1239	if (E.isScrolling === void 0) {
1240		let e;
1241		w.isHorizontal() && O.currentY === O.startY || w.isVertical() && O.currentX === O.startX ? E.isScrolling = !1 : I * I + L * L >= 25 && (e = Math.atan2(Math.abs(L), Math.abs(I)) * 180 / Math.PI, E.isScrolling = w.isHorizontal() ? e > D.touchAngle : 90 - e > D.touchAngle);
1242	}
1243	if (E.isScrolling && w.emit("touchMoveOpposite", M), E.startMoving === void 0 && (O.currentX !== O.startX || O.currentY !== O.startY) && (E.startMoving = !0), E.isScrolling || M.type === "touchmove" && E.preventTouchMoveFromPointerMove) {
1244		E.isTouched = !1;
1245		return;
1246	}
1247	if (!E.startMoving) return;
1248	w.allowClick = !1, !D.cssMode && M.cancelable && M.preventDefault(), D.touchMoveStopPropagation && !D.nested && M.stopPropagation();
1249	let R = w.isHorizontal() ? I : L, z = w.isHorizontal() ? O.currentX - O.previousX : O.currentY - O.previousY;
1250	D.oneWayMovement && (R = Math.abs(R) * (k ? 1 : -1), z = Math.abs(z) * (k ? 1 : -1)), O.diff = R, R *= D.touchRatio, k && (R = -R, z = -z);
1251	let B = w.touchesDirection;
1252	w.swipeDirection = R > 0 ? "prev" : "next", w.touchesDirection = z > 0 ? "prev" : "next";
1253	let V = w.params.loop && !D.cssMode, H = w.touchesDirection === "next" && w.allowSlideNext || w.touchesDirection === "prev" && w.allowSlidePrev;
1254	if (!E.isMoved) {
1255		if (V && H && w.loopFix({ direction: w.swipeDirection }), E.startTranslate = w.getTranslate(), w.setTransition(0), w.animating) {
1256			let e = new window.CustomEvent("transitionend", {
1257				bubbles: !0,
1258				cancelable: !0,
1259				detail: { bySwiperTouchMove: !0 }
1260			});
vendor: 5,433 bytes, lines 1261-1343
1261			w.wrapperEl.dispatchEvent(e);
1262		}
1263		E.allowMomentumBounce = !1, D.grabCursor && (w.allowSlideNext === !0 || w.allowSlidePrev === !0) && w.setGrabCursor(!0), w.emit("sliderFirstMove", M);
1264	}
1265	if ((/* @__PURE__ */ new Date()).getTime(), D._loopSwapReset !== !1 && E.isMoved && E.allowThresholdMove && B !== w.touchesDirection && V && H && Math.abs(R) >= 1) {
1266		Object.assign(O, {
1267			startX: P,
1268			startY: F,
1269			currentX: P,
1270			currentY: F,
1271			startTranslate: E.currentTranslate
1272		}), E.loopSwapReset = !0, E.startTranslate = E.currentTranslate;
1273		return;
1274	}
1275	w.emit("sliderMove", M), E.isMoved = !0, E.currentTranslate = R + E.startTranslate;
1276	let U = !0, W = D.resistanceRatio;
1277	if (D.touchReleaseOnEdges && (W = 0), R > 0 ? (V && H && E.allowThresholdMove && E.currentTranslate > (D.centeredSlides ? w.minTranslate() - w.slidesSizesGrid[w.activeIndex + 1] - (D.slidesPerView !== "auto" && w.slides.length - D.slidesPerView >= 2 ? w.slidesSizesGrid[w.activeIndex + 1] + w.params.spaceBetween : 0) - w.params.spaceBetween : w.minTranslate()) && w.loopFix({
1278		direction: "prev",
1279		setTranslate: !0,
1280		activeSlideIndex: 0
1281	}), E.currentTranslate > w.minTranslate() && (U = !1, D.resistance && (E.currentTranslate = w.minTranslate() - 1 + (-w.minTranslate() + E.startTranslate + R) ** W))) : R < 0 && (V && H && E.allowThresholdMove && E.currentTranslate < (D.centeredSlides ? w.maxTranslate() + w.slidesSizesGrid[w.slidesSizesGrid.length - 1] + w.params.spaceBetween + (D.slidesPerView !== "auto" && w.slides.length - D.slidesPerView >= 2 ? w.slidesSizesGrid[w.slidesSizesGrid.length - 1] + w.params.spaceBetween : 0) : w.maxTranslate()) && w.loopFix({
1282		direction: "next",
1283		setTranslate: !0,
1284		activeSlideIndex: w.slides.length - (D.slidesPerView === "auto" ? w.slidesPerViewDynamic() : Math.ceil(parseFloat(D.slidesPerView, 10)))
1285	}), E.currentTranslate < w.maxTranslate() && (U = !1, D.resistance && (E.currentTranslate = w.maxTranslate() + 1 - (w.maxTranslate() - E.startTranslate - R) ** W))), U && (M.preventedByNestedSwiper = !0), !w.allowSlideNext && w.swipeDirection === "next" && E.currentTranslate < E.startTranslate && (E.currentTranslate = E.startTranslate), !w.allowSlidePrev && w.swipeDirection === "prev" && E.currentTranslate > E.startTranslate && (E.currentTranslate = E.startTranslate), !w.allowSlidePrev && !w.allowSlideNext && (E.currentTranslate = E.startTranslate), D.threshold > 0) if (Math.abs(R) > D.threshold || E.allowThresholdMove) {
1286		if (!E.allowThresholdMove) {
1287			E.allowThresholdMove = !0, O.startX = O.currentX, O.startY = O.currentY, E.currentTranslate = E.startTranslate, O.diff = w.isHorizontal() ? O.currentX - O.startX : O.currentY - O.startY;
1288			return;
1289		}
1290	} else {
1291		E.currentTranslate = E.startTranslate;
1292		return;
1293	}
1294	!D.followFinger || D.cssMode || ((D.freeMode && D.freeMode.enabled && w.freeMode || D.watchSlidesProgress) && (w.updateActiveIndex(), w.updateSlidesClasses()), D.freeMode && D.freeMode.enabled && w.freeMode && w.freeMode.onTouchMove(), w.updateProgress(E.currentTranslate), w.setTranslate(E.currentTranslate));
1295}
1296function onTouchEnd(e) {
1297	let C = this, w = C.touchEventsData, T = e;
1298	T.originalEvent && (T = T.originalEvent);
1299	let E;
1300	if (T.type === "touchend" || T.type === "touchcancel") {
1301		if (E = [...T.changedTouches].find((e) => e.identifier === w.touchId), !E || E.identifier !== w.touchId) return;
1302	} else {
1303		if (w.touchId !== null || T.pointerId !== w.pointerId) return;
1304		E = T;
1305	}
1306	if ([
1307		"pointercancel",
1308		"pointerout",
1309		"pointerleave",
1310		"contextmenu"
1311	].includes(T.type) && !(["pointercancel", "contextmenu"].includes(T.type) && (C.browser.isSafari || C.browser.isWebView))) return;
1312	w.pointerId = null, w.touchId = null;
1313	let { params: D, touches: O, rtlTranslate: k, slidesGrid: M, enabled: N } = C;
1314	if (!N || !D.simulateTouch && T.pointerType === "mouse") return;
1315	if (w.allowTouchCallbacks && C.emit("touchEnd", T), w.allowTouchCallbacks = !1, !w.isTouched) {
1316		w.isMoved && D.grabCursor && C.setGrabCursor(!1), w.isMoved = !1, w.startMoving = !1;
1317		return;
1318	}
1319	D.grabCursor && w.isMoved && w.isTouched && (C.allowSlideNext === !0 || C.allowSlidePrev === !0) && C.setGrabCursor(!1);
1320	let P = now(), F = P - w.touchStartTime;
1321	if (C.allowClick) {
1322		let e = T.path || T.composedPath && T.composedPath();
1323		C.updateClickedSlide(e && e[0] || T.target, e), C.emit("tap click", T), F < 300 && P - w.lastClickTime < 300 && C.emit("doubleTap doubleClick", T);
1324	}
1325	if (w.lastClickTime = now(), nextTick(() => {
1326		C.destroyed || (C.allowClick = !0);
1327	}), !w.isTouched || !w.isMoved || !C.swipeDirection || O.diff === 0 && !w.loopSwapReset || w.currentTranslate === w.startTranslate && !w.loopSwapReset) {
1328		w.isTouched = !1, w.isMoved = !1, w.startMoving = !1;
1329		return;
1330	}
1331	w.isTouched = !1, w.isMoved = !1, w.startMoving = !1;
1332	let I;
1333	if (I = D.followFinger ? k ? C.translate : -C.translate : -w.currentTranslate, D.cssMode) return;
1334	if (D.freeMode && D.freeMode.enabled) {
1335		C.freeMode.onTouchEnd({ currentPos: I });
1336		return;
1337	}
1338	let L = I >= -C.maxTranslate() && !C.params.loop, R = 0, z = C.slidesSizesGrid[0];
1339	for (let e = 0; e < M.length; e += e < D.slidesPerGroupSkip ? 1 : D.slidesPerGroup) {
1340		let C = e < D.slidesPerGroupSkip - 1 ? 1 : D.slidesPerGroup;
1341		M[e + C] === void 0 ? (L || I >= M[e]) && (R = e, z = M[M.length - 1] - M[M.length - 2]) : (L || I >= M[e] && I < M[e + C]) && (R = e, z = M[e + C] - M[e]);
1342	}
1343	let B = null, V = null;
vendor: 9,372 bytes, lines 1344-1513
1344	D.rewind && (C.isBeginning ? V = D.virtual && D.virtual.enabled && C.virtual ? C.virtual.slides.length - 1 : C.slides.length - 1 : C.isEnd && (B = 0));
1345	let H = (I - M[R]) / z, U = R < D.slidesPerGroupSkip - 1 ? 1 : D.slidesPerGroup;
1346	if (F > D.longSwipesMs) {
1347		if (!D.longSwipes) {
1348			C.slideTo(C.activeIndex);
1349			return;
1350		}
1351		C.swipeDirection === "next" && (H >= D.longSwipesRatio ? C.slideTo(D.rewind && C.isEnd ? B : R + U) : C.slideTo(R)), C.swipeDirection === "prev" && (H > 1 - D.longSwipesRatio ? C.slideTo(R + U) : V !== null && H < 0 && Math.abs(H) > D.longSwipesRatio ? C.slideTo(V) : C.slideTo(R));
1352	} else {
1353		if (!D.shortSwipes) {
1354			C.slideTo(C.activeIndex);
1355			return;
1356		}
1357		C.navigation && (T.target === C.navigation.nextEl || T.target === C.navigation.prevEl) ? T.target === C.navigation.nextEl ? C.slideTo(R + U) : C.slideTo(R) : (C.swipeDirection === "next" && C.slideTo(B === null ? R + U : B), C.swipeDirection === "prev" && C.slideTo(V === null ? R : V));
1358	}
1359}
1360function onResize() {
1361	let e = this, { params: C, el: w } = e;
1362	if (w && w.offsetWidth === 0) return;
1363	C.breakpoints && e.setBreakpoint();
1364	let { allowSlideNext: T, allowSlidePrev: E, snapGrid: D } = e, O = e.virtual && e.params.virtual.enabled;
1365	e.allowSlideNext = !0, e.allowSlidePrev = !0, e.updateSize(), e.updateSlides(), e.updateSlidesClasses();
1366	let k = O && C.loop;
1367	(C.slidesPerView === "auto" || C.slidesPerView > 1) && e.isEnd && !e.isBeginning && !e.params.centeredSlides && !k ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.params.loop && !O ? e.slideToLoop(e.realIndex, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0), e.autoplay && e.autoplay.running && e.autoplay.paused && (clearTimeout(e.autoplay.resizeTimeout), e.autoplay.resizeTimeout = setTimeout(() => {
1368		e.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.resume();
1369	}, 500)), e.allowSlidePrev = E, e.allowSlideNext = T, e.params.watchOverflow && D !== e.snapGrid && e.checkOverflow();
1370}
1371function onClick(e) {
1372	let C = this;
1373	C.enabled && (C.allowClick || (C.params.preventClicks && e.preventDefault(), C.params.preventClicksPropagation && C.animating && (e.stopPropagation(), e.stopImmediatePropagation())));
1374}
1375function onScroll() {
1376	let e = this, { wrapperEl: C, rtlTranslate: w, enabled: T } = e;
1377	if (!T) return;
1378	e.previousTranslate = e.translate, e.isHorizontal() ? e.translate = -C.scrollLeft : e.translate = -C.scrollTop, e.translate === 0 && (e.translate = 0), e.updateActiveIndex(), e.updateSlidesClasses();
1379	let E, D = e.maxTranslate() - e.minTranslate();
1380	E = D === 0 ? 0 : (e.translate - e.minTranslate()) / D, E !== e.progress && e.updateProgress(w ? -e.translate : e.translate), e.emit("setTranslate", e.translate, !1);
1381}
1382function onLoad(e) {
1383	let C = this;
1384	processLazyPreloader(C, e.target), !(C.params.cssMode || C.params.slidesPerView !== "auto" && !C.params.autoHeight) && C.update();
1385}
1386function onDocumentTouchStart() {
1387	let e = this;
1388	e.documentTouchHandlerProceeded || (e.documentTouchHandlerProceeded = !0, e.params.touchReleaseOnEdges && (e.el.style.touchAction = "auto"));
1389}
1390var events = (e, C) => {
1391	let w = getDocument(), { params: E, el: D, wrapperEl: O, device: k } = e, A = !!E.nested, j = C === "on" ? "addEventListener" : "removeEventListener", M = C;
1392	!D || typeof D == "string" || (w[j]("touchstart", e.onDocumentTouchStart, {
1393		passive: !1,
1394		capture: A
1395	}), D[j]("touchstart", e.onTouchStart, { passive: !1 }), D[j]("pointerdown", e.onTouchStart, { passive: !1 }), w[j]("touchmove", e.onTouchMove, {
1396		passive: !1,
1397		capture: A
1398	}), w[j]("pointermove", e.onTouchMove, {
1399		passive: !1,
1400		capture: A
1401	}), w[j]("touchend", e.onTouchEnd, { passive: !0 }), w[j]("pointerup", e.onTouchEnd, { passive: !0 }), w[j]("pointercancel", e.onTouchEnd, { passive: !0 }), w[j]("touchcancel", e.onTouchEnd, { passive: !0 }), w[j]("pointerout", e.onTouchEnd, { passive: !0 }), w[j]("pointerleave", e.onTouchEnd, { passive: !0 }), w[j]("contextmenu", e.onTouchEnd, { passive: !0 }), (E.preventClicks || E.preventClicksPropagation) && D[j]("click", e.onClick, !0), E.cssMode && O[j]("scroll", e.onScroll), E.updateOnWindowResize ? e[M](k.ios || k.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", onResize, !0) : e[M]("observerUpdate", onResize, !0), D[j]("load", e.onLoad, { capture: !0 }));
1402};
1403function attachEvents() {
1404	let e = this, { params: C } = e;
1405	e.onTouchStart = onTouchStart.bind(e), e.onTouchMove = onTouchMove.bind(e), e.onTouchEnd = onTouchEnd.bind(e), e.onDocumentTouchStart = onDocumentTouchStart.bind(e), C.cssMode && (e.onScroll = onScroll.bind(e)), e.onClick = onClick.bind(e), e.onLoad = onLoad.bind(e), events(e, "on");
1406}
1407function detachEvents() {
1408	events(this, "off");
1409}
1410var events$1 = {
1411	attachEvents,
1412	detachEvents
1413}, isGridEnabled = (e, C) => e.grid && C.grid && C.grid.rows > 1;
1414function setBreakpoint() {
1415	let e = this, { realIndex: C, initialized: w, params: E, el: D } = e, O = E.breakpoints;
1416	if (!O || O && Object.keys(O).length === 0) return;
1417	let k = getDocument(), A = E.breakpointsBase === "window" || !E.breakpointsBase ? E.breakpointsBase : "container", j = ["window", "container"].includes(E.breakpointsBase) || !E.breakpointsBase ? e.el : k.querySelector(E.breakpointsBase), M = e.getBreakpoint(O, A, j);
1418	if (!M || e.currentBreakpoint === M) return;
1419	let N = (M in O ? O[M] : void 0) || e.originalParams, P = isGridEnabled(e, E), F = isGridEnabled(e, N), L = e.params.grabCursor, R = N.grabCursor, z = E.enabled;
1420	P && !F ? (D.classList.remove(`${E.containerModifierClass}grid`, `${E.containerModifierClass}grid-column`), e.emitContainerClasses()) : !P && F && (D.classList.add(`${E.containerModifierClass}grid`), (N.grid.fill && N.grid.fill === "column" || !N.grid.fill && E.grid.fill === "column") && D.classList.add(`${E.containerModifierClass}grid-column`), e.emitContainerClasses()), L && !R ? e.unsetGrabCursor() : !L && R && e.setGrabCursor(), [
1421		"navigation",
1422		"pagination",
1423		"scrollbar"
1424	].forEach((C) => {
1425		if (N[C] === void 0) return;
1426		let w = E[C] && E[C].enabled, T = N[C] && N[C].enabled;
1427		w && !T && e[C].disable(), !w && T && e[C].enable();
1428	});
1429	let B = N.direction && N.direction !== E.direction, V = E.loop && (N.slidesPerView !== E.slidesPerView || B), H = E.loop;
1430	B && w && e.changeDirection(), extend(e.params, N);
1431	let U = e.params.enabled, W = e.params.loop;
1432	Object.assign(e, {
1433		allowTouchMove: e.params.allowTouchMove,
1434		allowSlideNext: e.params.allowSlideNext,
1435		allowSlidePrev: e.params.allowSlidePrev
1436	}), z && !U ? e.disable() : !z && U && e.enable(), e.currentBreakpoint = M, e.emit("_beforeBreakpoint", N), w && (V ? (e.loopDestroy(), e.loopCreate(C), e.updateSlides()) : !H && W ? (e.loopCreate(C), e.updateSlides()) : H && !W && e.loopDestroy()), e.emit("breakpoint", N);
1437}
1438function getBreakpoint(e, C, w) {
1439	if (C === void 0 && (C = "window"), !e || C === "container" && !w) return;
1440	let T = !1, E = getWindow(), O = C === "window" ? E.innerHeight : w.clientHeight, k = Object.keys(e).map((e) => typeof e == "string" && e.indexOf("@") === 0 ? {
1441		value: O * parseFloat(e.substr(1)),
1442		point: e
1443	} : {
1444		value: e,
1445		point: e
1446	});
1447	k.sort((e, C) => parseInt(e.value, 10) - parseInt(C.value, 10));
1448	for (let e = 0; e < k.length; e += 1) {
1449		let { point: D, value: O } = k[e];
1450		C === "window" ? E.matchMedia(`(min-width: ${O}px)`).matches && (T = D) : O <= w.clientWidth && (T = D);
1451	}
1452	return T || "max";
1453}
1454var breakpoints = {
1455	setBreakpoint,
1456	getBreakpoint
1457};
1458function prepareClasses(e, C) {
1459	let w = [];
1460	return e.forEach((e) => {
1461		typeof e == "object" ? Object.keys(e).forEach((T) => {
1462			e[T] && w.push(C + T);
1463		}) : typeof e == "string" && w.push(C + e);
1464	}), w;
1465}
1466function addClasses() {
1467	let e = this, { classNames: C, params: w, rtl: T, el: E, device: D } = e, O = prepareClasses([
1468		"initialized",
1469		w.direction,
1470		{ "free-mode": e.params.freeMode && w.freeMode.enabled },
1471		{ autoheight: w.autoHeight },
1472		{ rtl: T },
1473		{ grid: w.grid && w.grid.rows > 1 },
1474		{ "grid-column": w.grid && w.grid.rows > 1 && w.grid.fill === "column" },
1475		{ android: D.android },
1476		{ ios: D.ios },
1477		{ "css-mode": w.cssMode },
1478		{ centered: w.cssMode && w.centeredSlides },
1479		{ "watch-progress": w.watchSlidesProgress }
1480	], w.containerModifierClass);
1481	C.push(...O), E.classList.add(...C), e.emitContainerClasses();
1482}
1483function removeClasses() {
1484	let e = this, { el: C, classNames: w } = e;
1485	!C || typeof C == "string" || (C.classList.remove(...w), e.emitContainerClasses());
1486}
1487var classes = {
1488	addClasses,
1489	removeClasses
1490};
1491function checkOverflow() {
1492	let e = this, { isLocked: C, params: w } = e, { slidesOffsetBefore: T } = w;
1493	if (T) {
1494		let C = e.slides.length - 1, w = e.slidesGrid[C] + e.slidesSizesGrid[C] + T * 2;
1495		e.isLocked = e.size > w;
1496	} else e.isLocked = e.snapGrid.length === 1;
1497	w.allowSlideNext === !0 && (e.allowSlideNext = !e.isLocked), w.allowSlidePrev === !0 && (e.allowSlidePrev = !e.isLocked), C && C !== e.isLocked && (e.isEnd = !1), C !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock");
1498}
1499var checkOverflow$1 = { checkOverflow }, defaults = {
1500	init: !0,
1501	direction: "horizontal",
1502	oneWayMovement: !1,
1503	swiperElementNodeName: "SWIPER-CONTAINER",
1504	touchEventsTarget: "wrapper",
1505	initialSlide: 0,
1506	speed: 300,
1507	cssMode: !1,
1508	updateOnWindowResize: !0,
1509	resizeObserver: !0,
1510	nested: !1,
1511	createElements: !1,
1512	eventsPrefix: "swiper",
1513	enabled: !0,
1514	focusableElements: "input, select, option, textarea, button, video, label",
1515	width: null,
1516	height: null,
1517	preventInteractionOnTransition: !1,
1518	userAgent: null,
1519	url: null,
1520	edgeSwipeDetection: !1,
1521	edgeSwipeThreshold: 20,
1522	autoHeight: !1,
1523	setWrapperSize: !1,
1524	virtualTranslate: !1,
1525	effect: "slide",
1526	breakpoints: void 0,
1527	breakpointsBase: "window",
1528	spaceBetween: 0,
1529	slidesPerView: 1,
1530	slidesPerGroup: 1,
1531	slidesPerGroupSkip: 0,
1532	slidesPerGroupAuto: !1,
1533	centeredSlides: !1,
1534	centeredSlidesBounds: !1,
1535	slidesOffsetBefore: 0,
1536	slidesOffsetAfter: 0,
1537	normalizeSlideIndex: !0,
1538	centerInsufficientSlides: !1,
1539	watchOverflow: !0,
1540	roundLengths: !1,
1541	touchRatio: 1,
1542	touchAngle: 45,
1543	simulateTouch: !0,
1544	shortSwipes: !0,
1545	longSwipes: !0,
1546	longSwipesRatio: .5,
1547	longSwipesMs: 300,
1548	followFinger: !0,
1549	allowTouchMove: !0,
1550	threshold: 5,
1551	touchMoveStopPropagation: !1,
1552	touchStartPreventDefault: !0,
1553	touchStartForcePreventDefault: !1,
1554	touchReleaseOnEdges: !1,
1555	uniqueNavElements: !0,
1556	resistance: !0,
1557	resistanceRatio: .85,
1558	watchSlidesProgress: !1,
1559	grabCursor: !1,
1560	preventClicks: !0,
1561	preventClicksPropagation: !0,
1562	slideToClickedSlide: !1,
1563	loop: !1,
1564	loopAddBlankSlides: !0,
1565	loopAdditionalSlides: 0,
1566	loopPreventsSliding: !0,
1567	rewind: !1,
1568	allowSlidePrev: !0,
1569	allowSlideNext: !0,
1570	swipeHandler: null,
1571	noSwiping: !0,
1572	noSwipingClass: "swiper-no-swiping",
1573	noSwipingSelector: null,
1574	passiveListeners: !0,
1575	maxBackfaceHiddenSlides: 10,
1576	containerModifierClass: "swiper-",
1577	slideClass: "swiper-slide",
1578	slideBlankClass: "swiper-slide-blank",
1579	slideActiveClass: "swiper-slide-active",
1580	slideVisibleClass: "swiper-slide-visible",
1581	slideFullyVisibleClass: "swiper-slide-fully-visible",
1582	slideNextClass: "swiper-slide-next",
1583	slidePrevClass: "swiper-slide-prev",
1584	wrapperClass: "swiper-wrapper",
1585	lazyPreloaderClass: "swiper-lazy-preloader",
1586	lazyPreloadPrevNext: 0,
1587	runCallbacksOnInit: !0,
1588	_emitClasses: !1
1589};
1590function moduleExtendParams(e, C) {
1591	return function(w) {
1592		w === void 0 && (w = {});
1593		let T = Object.keys(w)[0], E = w[T];
1594		if (typeof E != "object" || !E) {
1595			extend(C, w);
1596			return;
1597		}
1598		if (e[T] === !0 && (e[T] = { enabled: !0 }), T === "navigation" && e[T] && e[T].enabled && !e[T].prevEl && !e[T].nextEl && (e[T].auto = !0), ["pagination", "scrollbar"].indexOf(T) >= 0 && e[T] && e[T].enabled && !e[T].el && (e[T].auto = !0), !(T in e && "enabled" in E)) {
1599			extend(C, w);
1600			return;
1601		}
1602		typeof e[T] == "object" && !("enabled" in e[T]) && (e[T].enabled = !0), e[T] || (e[T] = { enabled: !1 }), extend(C, w);
1603	};
1604}
1605var prototypes = {
1606	eventsEmitter,
1607	update,
1608	translate,
1609	transition,
1610	slide,
1611	loop,
1612	grabCursor,
1613	events: events$1,
1614	breakpoints,
1615	checkOverflow: checkOverflow$1,
1616	classes
1617}, extendedDefaults = {}, Swiper = class e {
1618	constructor() {
1619		let C, w;
1620		var E = [...arguments];
1621		E.length === 1 && E[0].constructor && Object.prototype.toString.call(E[0]).slice(8, -1) === "Object" ? w = E[0] : [C, w] = E, w ||= {}, w = extend({}, w), C && !w.el && (w.el = C);
1622		let D = getDocument();
1623		if (w.el && typeof w.el == "string" && D.querySelectorAll(w.el).length > 1) {
1624			let C = [];
1625			return D.querySelectorAll(w.el).forEach((T) => {
1626				let E = extend({}, w, { el: T });
1627				C.push(new e(E));
1628			}), C;
1629		}
1630		let O = this;
1631		O.__swiper__ = !0, O.support = getSupport(), O.device = getDevice({ userAgent: w.userAgent }), O.browser = getBrowser(), O.eventsListeners = {}, O.eventsAnyListeners = [], O.modules = [...O.__modules__], w.modules && Array.isArray(w.modules) && O.modules.push(...w.modules);
1632		let k = {};
1633		return O.modules.forEach((e) => {
1634			e({
1635				params: w,
1636				swiper: O,
1637				extendParams: moduleExtendParams(w, k),
1638				on: O.on.bind(O),
1639				once: O.once.bind(O),
1640				off: O.off.bind(O),
1641				emit: O.emit.bind(O)
1642			});
1643		}), O.params = extend({}, extend({}, defaults, k), extendedDefaults, w), O.originalParams = extend({}, O.params), O.passedParams = extend({}, w), O.params && O.params.on && Object.keys(O.params.on).forEach((e) => {
1644			O.on(e, O.params.on[e]);
1645		}), O.params && O.params.onAny && O.onAny(O.params.onAny), Object.assign(O, {
1646			enabled: O.params.enabled,
1647			el: C,
1648			classNames: [],
1649			slides: [],
1650			slidesGrid: [],
1651			snapGrid: [],
1652			slidesSizesGrid: [],
1653			isHorizontal() {
1654				return O.params.direction === "horizontal";
1655			},
1656			isVertical() {
1657				return O.params.direction === "vertical";
1658			},
1659			activeIndex: 0,
1660			realIndex: 0,
1661			isBeginning: !0,
1662			isEnd: !1,
1663			translate: 0,
1664			previousTranslate: 0,
1665			progress: 0,
1666			velocity: 0,
1667			animating: !1,
1668			cssOverflowAdjustment() {
1669				return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;
1670			},
1671			allowSlideNext: O.params.allowSlideNext,
1672			allowSlidePrev: O.params.allowSlidePrev,
1673			touchEventsData: {
1674				isTouched: void 0,
1675				isMoved: void 0,
1676				allowTouchCallbacks: void 0,
1677				touchStartTime: void 0,
1678				isScrolling: void 0,
1679				currentTranslate: void 0,
1680				startTranslate: void 0,
1681				allowThresholdMove: void 0,
1682				focusableElements: O.params.focusableElements,
1683				lastClickTime: 0,
1684				clickTimeout: void 0,
1685				velocities: [],
1686				allowMomentumBounce: void 0,
1687				startMoving: void 0,
1688				pointerId: null,
1689				touchId: null
1690			},
1691			allowClick: !0,
1692			allowTouchMove: O.params.allowTouchMove,
1693			touches: {
1694				startX: 0,
1695				startY: 0,
1696				currentX: 0,
1697				currentY: 0,
1698				diff: 0
1699			},
1700			imagesToLoad: [],
1701			imagesLoaded: 0
1702		}), O.emit("_swiper"), O.params.init && O.init(), O;
1703	}
1704	getDirectionLabel(e) {
1705		return this.isHorizontal() ? e : {
1706			width: "height",
1707			"margin-top": "margin-left",
1708			"margin-bottom ": "margin-right",
1709			"margin-left": "margin-top",
1710			"margin-right": "margin-bottom",
1711			"padding-left": "padding-top",
1712			"padding-right": "padding-bottom",
1713			marginRight: "marginBottom"
1714		}[e];
1715	}
1716	getSlideIndex(e) {
1717		let { slidesEl: C, params: w } = this, T = elementIndex(elementChildren(C, `.${w.slideClass}, swiper-slide`)[0]);
1718		return elementIndex(e) - T;
1719	}
1720	getSlideIndexByData(e) {
1721		return this.getSlideIndex(this.slides.find((C) => C.getAttribute("data-swiper-slide-index") * 1 === e));
1722	}
1723	getSlideIndexWhenGrid(e) {
1724		return this.grid && this.params.grid && this.params.grid.rows > 1 && (this.params.grid.fill === "column" ? e = Math.floor(e / this.params.grid.rows) : this.params.grid.fill === "row" && (e %= Math.ceil(this.slides.length / this.params.grid.rows))), e;
1725	}
1726	recalcSlides() {
1727		let e = this, { slidesEl: C, params: w } = e;
1728		e.slides = elementChildren(C, `.${w.slideClass}, swiper-slide`);
1729	}
1730	enable() {
1731		let e = this;
1732		e.enabled || (e.enabled = !0, e.params.grabCursor && e.setGrabCursor(), e.emit("enable"));
1733	}
1734	disable() {
1735		let e = this;
1736		e.enabled && (e.enabled = !1, e.params.grabCursor && e.unsetGrabCursor(), e.emit("disable"));
1737	}
1738	setProgress(e, C) {
1739		let w = this;
1740		e = Math.min(Math.max(e, 0), 1);
1741		let T = w.minTranslate(), E = (w.maxTranslate() - T) * e + T;
1742		w.translateTo(E, C === void 0 ? 0 : C), w.updateActiveIndex(), w.updateSlidesClasses();
1743	}
1744	emitContainerClasses() {
1745		let e = this;
1746		if (!e.params._emitClasses || !e.el) return;
1747		let C = e.el.className.split(" ").filter((C) => C.indexOf("swiper") === 0 || C.indexOf(e.params.containerModifierClass) === 0);
1748		e.emit("_containerClasses", C.join(" "));
1749	}
1750	getSlideClasses(e) {
1751		let C = this;
1752		return C.destroyed ? "" : e.className.split(" ").filter((e) => e.indexOf("swiper-slide") === 0 || e.indexOf(C.params.slideClass) === 0).join(" ");
1753	}
1754	emitSlidesClasses() {
1755		let e = this;
1756		if (!e.params._emitClasses || !e.el) return;
1757		let C = [];
1758		e.slides.forEach((w) => {
1759			let T = e.getSlideClasses(w);
1760			C.push({
1761				slideEl: w,
1762				classNames: T
1763			}), e.emit("_slideClass", w, T);
1764		}), e.emit("_slideClasses", C);
1765	}
1766	slidesPerViewDynamic(e, C) {
1767		e === void 0 && (e = "current"), C === void 0 && (C = !1);
1768		let { params: w, slides: T, slidesGrid: E, slidesSizesGrid: D, size: O, activeIndex: k } = this, A = 1;
1769		if (typeof w.slidesPerView == "number") return w.slidesPerView;
1770		if (w.centeredSlides) {
1771			let e = T[k] ? Math.ceil(T[k].swiperSlideSize) : 0, C;
1772			for (let w = k + 1; w < T.length; w += 1) T[w] && !C && (e += Math.ceil(T[w].swiperSlideSize), A += 1, e > O && (C = !0));
1773			for (let w = k - 1; w >= 0; --w) T[w] && !C && (e += T[w].swiperSlideSize, A += 1, e > O && (C = !0));
1774		} else if (e === "current") for (let e = k + 1; e < T.length; e += 1) (C ? E[e] + D[e] - E[k] < O : E[e] - E[k] < O) && (A += 1);
1775		else for (let e = k - 1; e >= 0; --e) E[k] - E[e] < O && (A += 1);
1776		return A;
1777	}
1778	update() {
1779		let e = this;
1780		if (!e || e.destroyed) return;
1781		let { snapGrid: C, params: w } = e;
1782		w.breakpoints && e.setBreakpoint(), [...e.el.querySelectorAll("[loading=\"lazy\"]")].forEach((C) => {
1783			C.complete && processLazyPreloader(e, C);
1784		}), e.updateSize(), e.updateSlides(), e.updateProgress(), e.updateSlidesClasses();
1785		function T() {
1786			let C = e.rtlTranslate ? e.translate * -1 : e.translate, w = Math.min(Math.max(C, e.maxTranslate()), e.minTranslate());
1787			e.setTranslate(w), e.updateActiveIndex(), e.updateSlidesClasses();
1788		}
1789		let E;
1790		if (w.freeMode && w.freeMode.enabled && !w.cssMode) T(), w.autoHeight && e.updateAutoHeight();
1791		else {
1792			if ((w.slidesPerView === "auto" || w.slidesPerView > 1) && e.isEnd && !w.centeredSlides) {
1793				let C = e.virtual && w.virtual.enabled ? e.virtual.slides : e.slides;
1794				E = e.slideTo(C.length - 1, 0, !1, !0);
1795			} else E = e.slideTo(e.activeIndex, 0, !1, !0);
1796			E || T();
1797		}
1798		w.watchOverflow && C !== e.snapGrid && e.checkOverflow(), e.emit("update");
1799	}
1800	changeDirection(e, C) {
1801		C === void 0 && (C = !0);
1802		let w = this, T = w.params.direction;
1803		return e ||= T === "horizontal" ? "vertical" : "horizontal", e === T || e !== "horizontal" && e !== "vertical" ? w : (w.el.classList.remove(`${w.params.containerModifierClass}${T}`), w.el.classList.add(`${w.params.containerModifierClass}${e}`), w.emitContainerClasses(), w.params.direction = e, w.slides.forEach((C) => {
1804			e === "vertical" ? C.style.width = "" : C.style.height = "";
1805		}), w.emit("changeDirection"), C && w.update(), w);
1806	}
1807	changeLanguageDirection(e) {
1808		let C = this;
1809		C.rtl && e === "rtl" || !C.rtl && e === "ltr" || (C.rtl = e === "rtl", C.rtlTranslate = C.params.direction === "horizontal" && C.rtl, C.rtl ? (C.el.classList.add(`${C.params.containerModifierClass}rtl`), C.el.dir = "rtl") : (C.el.classList.remove(`${C.params.containerModifierClass}rtl`), C.el.dir = "ltr"), C.update());
1810	}
1811	mount(e) {
1812		let C = this;
1813		if (C.mounted) return !0;
1814		let w = e || C.params.el;
1815		if (typeof w == "string" && (w = document.querySelector(w)), !w) return !1;
1816		w.swiper = C, w.parentNode && w.parentNode.host && w.parentNode.host.nodeName === C.params.swiperElementNodeName.toUpperCase() && (C.isElement = !0);
1817		let T = () => `.${(C.params.wrapperClass || "").trim().split(" ").join(".")}`, E = (() => w && w.shadowRoot && w.shadowRoot.querySelector ? w.shadowRoot.querySelector(T()) : elementChildren(w, T())[0])();
1818		return !E && C.params.createElements && (E = createElement("div", C.params.wrapperClass), w.append(E), elementChildren(w, `.${C.params.slideClass}`).forEach((e) => {
1819			E.append(e);
1820		})), Object.assign(C, {
1821			el: w,
1822			wrapperEl: E,
1823			slidesEl: C.isElement && !w.parentNode.host.slideSlots ? w.parentNode.host : E,
1824			hostEl: C.isElement ? w.parentNode.host : w,
1825			mounted: !0,
1826			rtl: w.dir.toLowerCase() === "rtl" || elementStyle(w, "direction") === "rtl",
1827			rtlTranslate: C.params.direction === "horizontal" && (w.dir.toLowerCase() === "rtl" || elementStyle(w, "direction") === "rtl"),
1828			wrongRTL: elementStyle(E, "display") === "-webkit-box"
1829		}), !0;
1830	}
1831	init(e) {
1832		let C = this;
1833		if (C.initialized || C.mount(e) === !1) return C;
1834		C.emit("beforeInit"), C.params.breakpoints && C.setBreakpoint(), C.addClasses(), C.updateSize(), C.updateSlides(), C.params.watchOverflow && C.checkOverflow(), C.params.grabCursor && C.enabled && C.setGrabCursor(
vendor: 9,911 bytes, lines 1834-2054
1834), C.params.loop && C.virtual && C.params.virtual.enabled ? C.slideTo(C.params.initialSlide + C.virtual.slidesBefore, 0, C.params.runCallbacksOnInit, !1, !0) : C.slideTo(C.params.initialSlide, 0, C.params.runCallbacksOnInit, !1, !0), C.params.loop && C.loopCreate(void 0, !0), C.attachEvents();
1835		let w = [...C.el.querySelectorAll("[loading=\"lazy\"]")];
1836		return C.isElement && w.push(...C.hostEl.querySelectorAll("[loading=\"lazy\"]")), w.forEach((e) => {
1837			e.complete ? processLazyPreloader(C, e) : e.addEventListener("load", (e) => {
1838				processLazyPreloader(C, e.target);
1839			});
1840		}), preload(C), C.initialized = !0, preload(C), C.emit("init"), C.emit("afterInit"), C;
1841	}
1842	destroy(e, C) {
1843		e === void 0 && (e = !0), C === void 0 && (C = !0);
1844		let w = this, { params: T, el: E, wrapperEl: D, slides: O } = w;
1845		return w.params === void 0 || w.destroyed ? null : (w.emit("beforeDestroy"), w.initialized = !1, w.detachEvents(), T.loop && w.loopDestroy(), C && (w.removeClasses(), E && typeof E != "string" && E.removeAttribute("style"), D && D.removeAttribute("style"), O && O.length && O.forEach((e) => {
1846			e.classList.remove(T.slideVisibleClass, T.slideFullyVisibleClass, T.slideActiveClass, T.slideNextClass, T.slidePrevClass), e.removeAttribute("style"), e.removeAttribute("data-swiper-slide-index");
1847		})), w.emit("destroy"), Object.keys(w.eventsListeners).forEach((e) => {
1848			w.off(e);
1849		}), e !== !1 && (w.el && typeof w.el != "string" && (w.el.swiper = null), deleteProps(w)), w.destroyed = !0, null);
1850	}
1851	static extendDefaults(e) {
1852		extend(extendedDefaults, e);
1853	}
1854	static get extendedDefaults() {
1855		return extendedDefaults;
1856	}
1857	static get defaults() {
1858		return defaults;
1859	}
1860	static installModule(C) {
1861		e.prototype.__modules__ || (e.prototype.__modules__ = []);
1862		let w = e.prototype.__modules__;
1863		typeof C == "function" && w.indexOf(C) < 0 && w.push(C);
1864	}
1865	static use(C) {
1866		return Array.isArray(C) ? (C.forEach((C) => e.installModule(C)), e) : (e.installModule(C), e);
1867	}
1868};
1869Object.keys(prototypes).forEach((e) => {
1870	Object.keys(prototypes[e]).forEach((C) => {
1871		Swiper.prototype[C] = prototypes[e][C];
1872	});
1873}), Swiper.use([Resize, Observer]);
1874function createElementIfNotDefined(e, C, w, T) {
1875	return e.params.createElements && Object.keys(T).forEach((E) => {
1876		if (!w[E] && w.auto === !0) {
1877			let D = elementChildren(e.el, `.${T[E]}`)[0];
1878			D || (D = createElement("div", T[E]), D.className = T[E], e.el.append(D)), w[E] = D, C[E] = D;
1879		}
1880	}), w;
1881}
1882function Navigation(e) {
1883	let { swiper: C, extendParams: w, on: T, emit: E } = e;
1884	w({ navigation: {
1885		nextEl: null,
1886		prevEl: null,
1887		hideOnClick: !1,
1888		disabledClass: "swiper-button-disabled",
1889		hiddenClass: "swiper-button-hidden",
1890		lockClass: "swiper-button-lock",
1891		navigationDisabledClass: "swiper-navigation-disabled"
1892	} }), C.navigation = {
1893		nextEl: null,
1894		prevEl: null
1895	};
1896	function D(e) {
1897		let w;
1898		return e && typeof e == "string" && C.isElement && (w = C.el.querySelector(e) || C.hostEl.querySelector(e), w) ? w : (e && (typeof e == "string" && (w = [...document.querySelectorAll(e)]), C.params.uniqueNavElements && typeof e == "string" && w && w.length > 1 && C.el.querySelectorAll(e).length === 1 ? w = C.el.querySelector(e) : w && w.length === 1 && (w = w[0])), e && !w ? e : w);
1899	}
1900	function O(e, w) {
1901		let T = C.params.navigation;
1902		e = makeElementsArray(e), e.forEach((e) => {
1903			e && (e.classList[w ? "add" : "remove"](...T.disabledClass.split(" ")), e.tagName === "BUTTON" && (e.disabled = w), C.params.watchOverflow && C.enabled && e.classList[C.isLocked ? "add" : "remove"](T.lockClass));
1904		});
1905	}
1906	function k() {
1907		let { nextEl: e, prevEl: w } = C.navigation;
1908		if (C.params.loop) {
1909			O(w, !1), O(e, !1);
1910			return;
1911		}
1912		O(w, C.isBeginning && !C.params.rewind), O(e, C.isEnd && !C.params.rewind);
1913	}
1914	function A(e) {
1915		e.preventDefault(), !(C.isBeginning && !C.params.loop && !C.params.rewind) && (C.slidePrev(), E("navigationPrev"));
1916	}
1917	function j(e) {
1918		e.preventDefault(), !(C.isEnd && !C.params.loop && !C.params.rewind) && (C.slideNext(), E("navigationNext"));
1919	}
1920	function M() {
1921		let e = C.params.navigation;
1922		if (C.params.navigation = createElementIfNotDefined(C, C.originalParams.navigation, C.params.navigation, {
1923			nextEl: "swiper-button-next",
1924			prevEl: "swiper-button-prev"
1925		}), !(e.nextEl || e.prevEl)) return;
1926		let w = D(e.nextEl), T = D(e.prevEl);
1927		Object.assign(C.navigation, {
1928			nextEl: w,
1929			prevEl: T
1930		}), w = makeElementsArray(w), T = makeElementsArray(T);
1931		let E = (w, T) => {
1932			w && w.addEventListener("click", T === "next" ? j : A), !C.enabled && w && w.classList.add(...e.lockClass.split(" "));
1933		};
1934		w.forEach((e) => E(e, "next")), T.forEach((e) => E(e, "prev"));
1935	}
1936	function N() {
1937		let { nextEl: e, prevEl: w } = C.navigation;
1938		e = makeElementsArray(e), w = makeElementsArray(w);
1939		let T = (e, w) => {
1940			e.removeEventListener("click", w === "next" ? j : A), e.classList.remove(...C.params.navigation.disabledClass.split(" "));
1941		};
1942		e.forEach((e) => T(e, "next")), w.forEach((e) => T(e, "prev"));
1943	}
1944	T("init", () => {
1945		C.params.navigation.enabled === !1 ? F() : (M(), k());
1946	}), T("toEdge fromEdge lock unlock", () => {
1947		k();
1948	}), T("destroy", () => {
1949		N();
1950	}), T("enable disable", () => {
1951		let { nextEl: e, prevEl: w } = C.navigation;
1952		if (e = makeElementsArray(e), w = makeElementsArray(w), C.enabled) {
1953			k();
1954			return;
1955		}
1956		[...e, ...w].filter((e) => !!e).forEach((e) => e.classList.add(C.params.navigation.lockClass));
1957	}), T("click", (e, w) => {
1958		let { nextEl: T, prevEl: D } = C.navigation;
1959		T = makeElementsArray(T), D = makeElementsArray(D);
1960		let O = w.target, k = D.includes(O) || T.includes(O);
1961		if (C.isElement && !k) {
1962			let e = w.path || w.composedPath && w.composedPath();
1963			e && (k = e.find((e) => T.includes(e) || D.includes(e)));
1964		}
1965		if (C.params.navigation.hideOnClick && !k) {
1966			if (C.pagination && C.params.pagination && C.params.pagination.clickable && (C.pagination.el === O || C.pagination.el.contains(O))) return;
1967			let e;
1968			T.length ? e = T[0].classList.contains(C.params.navigation.hiddenClass) : D.length && (e = D[0].classList.contains(C.params.navigation.hiddenClass)), E(e === !0 ? "navigationShow" : "navigationHide"), [...T, ...D].filter((e) => !!e).forEach((e) => e.classList.toggle(C.params.navigation.hiddenClass));
1969		}
1970	});
1971	let P = () => {
1972		C.el.classList.remove(...C.params.navigation.navigationDisabledClass.split(" ")), M(), k();
1973	}, F = () => {
1974		C.el.classList.add(...C.params.navigation.navigationDisabledClass.split(" ")), N();
1975	};
1976	Object.assign(C.navigation, {
1977		enable: P,
1978		disable: F,
1979		update: k,
1980		init: M,
1981		destroy: N
1982	});
1983}
1984function classesToSelector(e) {
1985	return e === void 0 && (e = ""), `.${e.trim().replace(/([\.:!+\/()[\]])/g, "\\$1").replace(/ /g, ".")}`;
1986}
1987function Pagination(e) {
1988	let { swiper: C, extendParams: w, on: T, emit: E } = e, D = "swiper-pagination";
1989	w({ pagination: {
1990		el: null,
1991		bulletElement: "span",
1992		clickable: !1,
1993		hideOnClick: !1,
1994		renderBullet: null,
1995		renderProgressbar: null,
1996		renderFraction: null,
1997		renderCustom: null,
1998		progressbarOpposite: !1,
1999		type: "bullets",
2000		dynamicBullets: !1,
2001		dynamicMainBullets: 1,
2002		formatFractionCurrent: (e) => e,
2003		formatFractionTotal: (e) => e,
2004		bulletClass: `${D}-bullet`,
2005		bulletActiveClass: `${D}-bullet-active`,
2006		modifierClass: `${D}-`,
2007		currentClass: `${D}-current`,
2008		totalClass: `${D}-total`,
2009		hiddenClass: `${D}-hidden`,
2010		progressbarFillClass: `${D}-progressbar-fill`,
2011		progressbarOppositeClass: `${D}-progressbar-opposite`,
2012		clickableClass: `${D}-clickable`,
2013		lockClass: `${D}-lock`,
2014		horizontalClass: `${D}-horizontal`,
2015		verticalClass: `${D}-vertical`,
2016		paginationDisabledClass: `${D}-disabled`
2017	} }), C.pagination = {
2018		el: null,
2019		bullets: []
2020	};
2021	let O, k = 0;
2022	function A() {
2023		return !C.params.pagination.el || !C.pagination.el || Array.isArray(C.pagination.el) && C.pagination.el.length === 0;
2024	}
2025	function j(e, w) {
2026		let { bulletActiveClass: T } = C.params.pagination;
2027		e && (e = e[`${w === "prev" ? "previous" : "next"}ElementSibling`], e && (e.classList.add(`${T}-${w}`), e = e[`${w === "prev" ? "previous" : "next"}ElementSibling`], e && e.classList.add(`${T}-${w}-${w}`)));
2028	}
2029	function M(e, C, w) {
2030		if (e %= w, C %= w, C === e + 1) return "next";
2031		if (C === e - 1) return "previous";
2032	}
2033	function N(e) {
2034		let w = e.target.closest(classesToSelector(C.params.pagination.bulletClass));
2035		if (!w) return;
2036		e.preventDefault();
2037		let T = elementIndex(w) * C.params.slidesPerGroup;
2038		if (C.params.loop) {
2039			if (C.realIndex === T) return;
2040			let e = M(C.realIndex, T, C.slides.length);
2041			e === "next" ? C.slideNext() : e === "previous" ? C.slidePrev() : C.slideToLoop(T);
2042		} else C.slideTo(T);
2043	}
2044	function P() {
2045		let e = C.rtl, w = C.params.pagination;
2046		if (A()) return;
2047		let T = C.pagination.el;
2048		T = makeElementsArray(T);
2049		let D, M, N = C.virtual && C.params.virtual.enabled ? C.virtual.slides.length : C.slides.length, P = C.params.loop ? Math.ceil(N / C.params.slidesPerGroup) : C.snapGrid.length;
2050		if (C.params.loop ? (M = C.previousRealIndex || 0, D = C.params.slidesPerGroup > 1 ? Math.floor(C.realIndex / C.params.slidesPerGroup) : C.realIndex) : C.snapIndex === void 0 ? (M = C.previousIndex || 0, D = C.activeIndex || 0) : (D = C.snapIndex, M = C.previousSnapIndex), w.type === "bullets" && C.pagination.bullets && C.pagination.bullets.length > 0) {
2051			let E = C.pagination.bullets, A, N, P;
2052			if (w.dynamicBullets && (O = elementOuterSize(E[0], C.isHorizontal() ? "width" : "height", !0), T.forEach((e) => {
2053				e.style[C.isHorizontal() ? "width" : "height"] = `${O * (w.dynamicMainBullets + 4)}px`;
2054			}), w.dynamicMainBullets > 1 && M !== void 0 && (k += D - (M || 0), k > w.dynamicMainBullets - 1 ? k = w.dynamicMainBullets - 1 : k < 0 && (k = 0)), A = Math.max(D - k, 0), N = A + (Math.min(E.length, w.dynamicMainBullets) - 1), P = (N + A) / 2), E.forEac
2054h((e) => {
2055				let C = [...[
2056					"",
2057					"-next",
2058					"-next-next",
2059					"-prev",
2060					"-prev-prev",
2061					"-main"
2062				].map((e) => `${w.bulletActiveClass}${e}`)].map((e) => typeof e == "string" && e.includes(" ") ? e.split(" ") : e).flat();
2063				e.classList.remove(...C);
2064			}), T.length > 1) E.forEach((e) => {
2065				let T = elementIndex(e);
2066				T === D ? e.classList.add(...w.bulletActiveClass.split(" ")) : C.isElement && e.setAttribute("part", "bullet"), w.dynamicBullets && (T >= A && T <= N && e.classList.add(...`${w.bulletActiveClass}-main`.split(" ")), T === A && j(e, "prev"), T === N && j(e, "next"));
2067			});
2068			else {
2069				let e = E[D];
2070				if (e && e.classList.add(...w.bulletActiveClass.split(" ")), C.isElement && E.forEach((e, C) => {
2071					e.setAttribute("part", C === D ? "bullet-active" : "bullet");
2072				}), w.dynamicBullets) {
2073					let e = E[A], C = E[N];
2074					for (let e = A; e <= N; e += 1) E[e] && E[e].classList.add(...`${w.bulletActiveClass}-main`.split(" "));
2075					j(e, "prev"), j(C, "next");
2076				}
2077			}
2078			if (w.dynamicBullets) {
2079				let T = Math.min(E.length, w.dynamicMainBullets + 4), D = (O * T - O) / 2 - P * O, k = e ? "right" : "left";
2080				E.forEach((e) => {
2081					e.style[C.isHorizontal() ? k : "top"] = `${D}px`;
2082				});
2083			}
2084		}
2085		T.forEach((e, T) => {
2086			if (w.type === "fraction" && (e.querySelectorAll(classesToSelector(w.currentClass)).forEach((e) => {
2087				e.textContent = w.formatFractionCurrent(D + 1);
2088			}), e.querySelectorAll(classesToSelector(w.totalClass)).forEach((e) => {
2089				e.textContent = w.formatFractionTotal(P);
2090			})), w.type === "progressbar") {
2091				let T;
2092				T = w.progressbarOpposite ? C.isHorizontal() ? "vertical" : "horizontal" : C.isHorizontal() ? "horizontal" : "vertical";
2093				let E = (D + 1) / P, O = 1, k = 1;
2094				T === "horizontal" ? O = E : k = E, e.querySelectorAll(classesToSelector(w.progressbarFillClass)).forEach((e) => {
2095					e.style.transform = `translate3d(0,0,0) scaleX(${O}) scaleY(${k})`, e.style.transitionDuration = `${C.params.speed}ms`;
2096				});
2097			}
2098			w.type === "custom" && w.renderCustom ? (setInnerHTML(e, w.renderCustom(C, D + 1, P)), T === 0 && E("paginationRender", e)) : (T === 0 && E("paginationRender", e), E("paginationUpdate", e)), C.params.watchOverflow && C.enabled && e.classList[C.isLocked ? "add" : "remove"](w.lockClass);
2099		});
2100	}
2101	function F() {
2102		let e = C.params.pagination;
2103		if (A()) return;
2104		let w = C.virtual && C.params.virtual.enabled ? C.virtual.slides.length : C.grid && C.params.grid.rows > 1 ? C.slides.length / Math.ceil(C.params.grid.rows) : C.slides.length, T = C.pagination.el;
2105		T = makeElementsArray(T);
2106		let D = "";
2107		if (e.type === "bullets") {
2108			let T = C.params.loop ? Math.ceil(w / C.params.slidesPerGroup) : C.snapGrid.length;
2109			C.params.freeMode && C.params.freeMode.enabled && T > w && (T = w);
2110			for (let w = 0; w < T; w += 1) e.renderBullet ? D += e.renderBullet.call(C, w, e.bulletClass) : D += `<${e.bulletElement} ${C.isElement ? "part=\"bullet\"" : ""} class="${e.bulletClass}"></${e.bulletElement}>`;
2111		}
2112		e.type === "fraction" && (D = e.renderFraction ? e.renderFraction.call(C, e.currentClass, e.totalClass) : `<span class="${e.currentClass}"></span> / <span class="${e.totalClass}"></span>`), e.type === "progressbar" && (D = e.renderProgressbar ? e.renderProgressbar.call(C, e.progressbarFillClass) : `<span class="${e.progressbarFillClass}"></span>`), C.pagination.bullets = [], T.forEach((w) => {
2113			e.type !== "custom" && setInnerHTML(w, D || ""), e.type === "bullets" && C.pagination.bullets.push(...w.querySelectorAll(classesToSelector(e.bulletClass)));
2114		}), e.type !== "custom" && E("paginationRender", T[0]);
2115	}
2116	function I() {
2117		C.params.pagination = createElementIfNotDefined(C, C.originalParams.pagination, C.params.pagination, { el: "swiper-pagination" });
2118		let e = C.params.pagination;
2119		if (!e.el) return;
2120		let w;
2121		typeof e.el == "string" && C.isElement && (w = C.el.querySelector(e.el)), !w && typeof e.el == "string" && (w = [...document.querySelectorAll(e.el)]), w ||= e.el, !(!w || w.length === 0) && (C.params.uniqueNavElements && typeof e.el == "string" && Array.isArray(w) && w.length > 1 && (w = [...C.el.querySelectorAll(e.el)], w.length > 1 && (w = w.find((e) => elementParents(e, ".swiper")[0] === C.el))), Array.isArray(w) && w.length === 1 && (w = w[0]), Object.assign(C.pagination, { el: w }
vendor: 3,633 bytes, lines 2121-2179
2121), w = makeElementsArray(w), w.forEach((w) => {
2122			e.type === "bullets" && e.clickable && w.classList.add(...(e.clickableClass || "").split(" ")), w.classList.add(e.modifierClass + e.type), w.classList.add(C.isHorizontal() ? e.horizontalClass : e.verticalClass), e.type === "bullets" && e.dynamicBullets && (w.classList.add(`${e.modifierClass}${e.type}-dynamic`), k = 0, e.dynamicMainBullets < 1 && (e.dynamicMainBullets = 1)), e.type === "progressbar" && e.progressbarOpposite && w.classList.add(e.progressbarOppositeClass), e.clickable && w.addEventListener("click", N), C.enabled || w.classList.add(e.lockClass);
2123		}));
2124	}
2125	function L() {
2126		let e = C.params.pagination;
2127		if (A()) return;
2128		let w = C.pagination.el;
2129		w && (w = makeElementsArray(w), w.forEach((w) => {
2130			w.classList.remove(e.hiddenClass), w.classList.remove(e.modifierClass + e.type), w.classList.remove(C.isHorizontal() ? e.horizontalClass : e.verticalClass), e.clickable && (w.classList.remove(...(e.clickableClass || "").split(" ")), w.removeEventListener("click", N));
2131		})), C.pagination.bullets && C.pagination.bullets.forEach((C) => C.classList.remove(...e.bulletActiveClass.split(" ")));
2132	}
2133	T("changeDirection", () => {
2134		if (!C.pagination || !C.pagination.el) return;
2135		let e = C.params.pagination, { el: w } = C.pagination;
2136		w = makeElementsArray(w), w.forEach((w) => {
2137			w.classList.remove(e.horizontalClass, e.verticalClass), w.classList.add(C.isHorizontal() ? e.horizontalClass : e.verticalClass);
2138		});
2139	}), T("init", () => {
2140		C.params.pagination.enabled === !1 ? z() : (I(), F(), P());
2141	}), T("activeIndexChange", () => {
2142		C.snapIndex === void 0 && P();
2143	}), T("snapIndexChange", () => {
2144		P();
2145	}), T("snapGridLengthChange", () => {
2146		F(), P();
2147	}), T("destroy", () => {
2148		L();
2149	}), T("enable disable", () => {
2150		let { el: e } = C.pagination;
2151		e && (e = makeElementsArray(e), e.forEach((e) => e.classList[C.enabled ? "remove" : "add"](C.params.pagination.lockClass)));
2152	}), T("lock unlock", () => {
2153		P();
2154	}), T("click", (e, w) => {
2155		let T = w.target, D = makeElementsArray(C.pagination.el);
2156		if (C.params.pagination.el && C.params.pagination.hideOnClick && D && D.length > 0 && !T.classList.contains(C.params.pagination.bulletClass)) {
2157			if (C.navigation && (C.navigation.nextEl && T === C.navigation.nextEl || C.navigation.prevEl && T === C.navigation.prevEl)) return;
2158			D[0].classList.contains(C.params.pagination.hiddenClass) === !0 ? E("paginationShow") : E("paginationHide"), D.forEach((e) => e.classList.toggle(C.params.pagination.hiddenClass));
2159		}
2160	});
2161	let R = () => {
2162		C.el.classList.remove(C.params.pagination.paginationDisabledClass);
2163		let { el: e } = C.pagination;
2164		e && (e = makeElementsArray(e), e.forEach((e) => e.classList.remove(C.params.pagination.paginationDisabledClass))), I(), F(), P();
2165	}, z = () => {
2166		C.el.classList.add(C.params.pagination.paginationDisabledClass);
2167		let { el: e } = C.pagination;
2168		e && (e = makeElementsArray(e), e.forEach((e) => e.classList.add(C.params.pagination.paginationDisabledClass))), L();
2169	};
2170	Object.assign(C.pagination, {
2171		enable: R,
2172		disable: z,
2173		render: F,
2174		update: P,
2175		init: I,
2176		destroy: L
2177	});
2178}
2179export { getWindow as C, getDocument as S, makeElementsArray as _, Swiper as a, setCSSProperty as b, elementChildren as c, elementParents as d, elementTransitionEnd as f, isObject as g, getTranslate as h, createElementIfNotDefined as i, elementIndex as l, getSlideTransformEl as m, classesToSelector as n, classesToTokens as o, getRotateFix as p, Navigation as r, createElement as s, Pagination as t, elementOffset as u, nextTick as v, setInnerHTML as x, now as y };

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.