CINXE.COM

Shlok Srivastava | Founder & CEO | Overlays Clothing

<!doctype html> <html> <head> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"/> <title>Shlok Srivastava | Founder & CEO | Overlays Clothing</title> <meta name="keywords" content="highquality,sustainability,enviormentfriendly- Fibre2Fashion" /> <meta name="description" content="Overlays Clothing is a forward-thinking brand dedicated to empowering creative individuals with high-quality, unique products that seamlessly blend fashion, comfort, and functionality. Committed to sustainability, Overlays focuses on refining details and creating eco-friendly designs that inspire positive change while safeguarding the environment." /> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport" /> <meta name="Revisit-After" content="1 Day" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="Robots" content="ALL, INDEX, FOLLOW" /> <meta name="language" content="EN" /> <meta http-equiv="content-language" content="en-US" /> <meta name="document-type" content="Public" /> <meta name="document-classification" content="Business to Business" /> <meta name="coverage" content="Worldwide" /> <meta name="author" content="www.fibre2fashion.com" /> <meta name="distribution" content="global" /> <meta name="twitter:card" content="summary_large_image" /> <meta property="og:title" content="Shlok Srivastava | Founder & CEO | Overlays Clothing" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://www.fibre2fashion.com/interviews/industry-speak/overlays-clothing/shlok-srivastava/14025/" /> <meta property="og:description" content="Overlays Clothing is a forward-thinking brand dedicated to empowering creative individuals with high-quality, unique products that seamlessly blend fashion, comfort, and functionality. Committed to sustainability, Overlays focuses on refining details and creating eco-friendly designs that inspire positive change while safeguarding the environment." /> <meta property="og:image" content="https://static.fibre2fashion.com/InterviewResources/UserImages/4244/headshot.jpg" /> <meta name="twitter:image" content="https://static.fibre2fashion.com/InterviewResources/UserImages/4244/headshot.jpg" /> <link rel='canonical' href='https://www.fibre2fashion.com/interviews/industry-speak/overlays-clothing/shlok-srivastava/14025' /> <script type="text/javascript" defer> function ReadCookie(cookieName) { var re = new RegExp('[; ]' + cookieName + '=([^\\s;]*)'); var sMatch = (' ' + document.cookie).match(re); if (cookieName && sMatch) return unescape(sMatch[1]); return ''; } function SetCookie(cookieName, cookieValue, nDays) { var today = new Date(); var expire = new Date(); if (nDays === null || nDays === 0) nDays = 1; expire.setTime(today.getTime() + 3600000 * 24 * nDays); document.cookie = cookieName + "=" + escape(cookieValue) + ";path=/;domain=.fibre2fashion.com;expires=" + expire.toGMTString(); } function makeid() { var text = ""; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for (var i = 0; i < 9; i++) text += possible.charAt(Math.floor(Math.random() * possible.length)); return text; } uival = ReadCookie("flthiga") if (uival == "") { var jcval = makeid() SetCookie("flthiga", jcval, 365); uival = jcval; } Psection = ReadCookie("paidsection") </script> <script defer type="text/javascript" language="javascript" src="https://static.fibre2fashion.com//VirtualPageView/SetVirtualPageView.js?V=1.4"></script> <!-- Google Tag Manager --> <script defer> (function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-NDR3B7');</script> <!-- End Google Tag Manager --> <!-- Webengage Script Start --> <script defer id="_webengage_script_tag" type="text/javascript" language="javascript" src="https://static.fibre2fashion.com/staticresources/js/externalplugin/f2fwebengage.min.js?var=1.0"></script> <script defer type="text/javascript" async language="javascript" src="https://static.fibre2fashion.com/staticresources/js/externalplugin/webengagecookie.min.js"></script> <!-- Webengage Script End --> <link rel="shortcut icon" href="https://static.fibre2fashion.com/images/favicon.ico" type="image/x-icon"> <link rel="icon" href="https://static.fibre2fashion.com/images/favicon.ico" type="image/x-icon"> <script type="text/javascript"> var BASEPATHURL = "/interviews/" </script> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/css/bootstrap.min.css" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/css/colorbox.min.css" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/css/font-awesome.min.css" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/owl.carousel.min.css?var=2.44" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/owl.theme.default.min.css?var=2.44" rel="stylesheet" /> <link href="/interviews/bundles/InterviewCss?v=NHU56DXw6K5J_SCc5qF5y_XG0TuWQItL6qhrOnWJ1oU1" rel="stylesheet"/> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/css/esteemed-clients.min.css?ver=1.1" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/commonV1.min.css?var=2.44" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/header-home-css.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/responsive.min.css?var=2.44" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/footer-home-css.min.css?var=2.44" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/custom.min.css?var=2.44" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/StaticResources/css/jquery.selectric.min.css?var=2.44" rel="stylesheet" /> <script src="https://static.fibre2fashion.com/staticresources/js/jquery/1_11/jquery.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources/js/jquery/plugins/jquery.validate.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources/js/jquery/plugins/jquery.validate.unobtrusive.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources/js/jquery/plugins/jquery-ui.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources/js/bootstrap/bootstrap.min.js"></script> <script src="https://static.fibre2fashion.com/StaticResources/js/others/custom.min.js"></script> <script src="https://static.fibre2fashion.com/StaticResources/js/jquery/plugins/jquery.selectric.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources/js/jquery/plugins/tooltip.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources/js/jquery/plugins/jquery.colorbox.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources/js/jquery/plugins/jquery.flexisel.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources/js/f2f/esteemedclients.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources/js/f2f/plugins/Common.min.js?var=1.4"></script> <script src="/interviews/bundles/javascripts?v=s_tqR9vkge9zbilji2wSFzt-xvhyNpah9i01QuIZM3s1"></script> <script src="https://static.fibre2fashion.com/js/jQuery/plugins/tooltipImage.js" type="text/javascript"></script> <script type="text/javascript" src="https://platform-api.sharethis.com/js/sharethis.js#property=642685c7ecda000012fb0dd1&product=inline-share-buttons&source=platform" async="async"></script> <style> #st-1 .st-btn, #st-2 .st-btn { padding: 0 !important; height: 30px !important; line-height: 30px !important; width: 30px !important; } #st-1 .st-btn > img, #st-2 .st-btn > img { top: 4px !important; height: 22px !important; width: 22px !important; } </style> <script> $(window).on('load', function() { $(".st-btn").attr("style", "inline-block") }); function MixPanelSharingClick(Platform, Type) { var myObject = { F2FContentType: JSConstants.F2FContentType.Interview, F2FSharePlatform: Platform, F2FEventType: JSConstants.EventType.Icon, F2FEventName: JSConstants.EventName.ShareClicked, F2FSection: Type, F2FType: JSConstants.Type.Sttc }; MixpanelWrapper.EventTracking(myObject); } </script> <script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async='async'></script> <script src="https://cdn.fibre2fashion.com/staticresources/js/others/init.min.js"></script> </head> <body> <!-- Google Tag Manager --> <noscript> <iframe src="//www.googletagmanager.com/ns.html?id=GTM-NDR3B7" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- End Google Tag Manager --> <style> .hide { display: none !important; } </style> <style> #advsearchhide a, #advsearchhide1 a, .selectric .label { text-transform: uppercase; font-family: var(--boldfonts) } .newsletter-main { width: 80% !important } .footercheckbox { width: 100% !important; margin: 20px auto !important } .search-icon { width: 22px; height: 22px; float: left; margin-right: 10px; cursor: pointer } .search-icon:last-child { margin-right: 0 } .search-icon .fa-angle-down { position: absolute; color: #0f275f; top: 5px; right: -8px; font-size: 18px } .bordernone { border-left: 0 !important } .search-close-icon { position: absolute; right: 22px; top: 0; font-size: 36px; color: #8d98b3; font-weight: 400; opacity: .6; cursor: pointer } .icon-group { margin-top: 18px } .new-search { border: 1px solid #ccc; border-radius: 5px; display: flex; align-items: center; justify-content: space-between; padding: 5px 10px } .new-search .input-group-addon { border: none; width: 6% } .stylish-input-group .headersearch.f2fsearchtext { border: none } .greyscale img { -webkit-filter: grayscale(100%); filter: grayscale(100%); opacity: .4 } .searchicon { width: 36px; height: 36px; display: inline-block; background: 0 0; border: 0 } .searchicon img { opacity: .5; padding-right: 10px } .m-auto { margin: 0 auto; float: none } .space-none { padding-top: 0 !important; height: 390px !important } .hidden-menu { width: 100%; position: absolute; display: none; left: 0; background-color: #fff; box-shadow: 0 1px 13px 0 rgba(24,26,31,.16); top: 100%; border-top: 1px solid #c9c9c9; right: 0; padding-bottom: 3%; padding-top: 3%; z-index: 9999 } .hidden-menuheight { height: 360px } .esAutoSuggest.ui-widget { font-size: var(--smallfontsize) !important; font-family: var(--regularfonts) !important } .stylish-input-group .headersearch { width: 75% !important } .esAutoSuggest .f2fsection { color: #999; font-size: 12px } .selectric .label, .selectric-items li, .selectric-items ul { font-size: var(--smallfontsize); font-size: var(--smallfontsize) } .show { position: fixed; top: 0; left: 0; z-index: 1039; width: 100vw; height: 100vh; opacity: .5; background-color: #000 } .selectric { background: 0 0 !important } .selectric .label { margin: 0 !important; text-align: left; color: #777 } .selectric-esCategory { width: 170px !important; float: left } .selectric .button:after { border-width: 6px !important } .searchadvertisement ul { margin: 0; padding: 0; list-style-type: none } .searchadvertisement li { float: left; width: 25%; padding: 0 15px } .commontopspace { margin-top: 85px } .esAutoSuggest.ui-menu .ui-menu-item { padding: 10px 1em 8px .8em !important; line-height: 1.4 !important } .searchadvertisement { width: 68%; margin: 20px auto } .advancesearchmenu { width: 65%; margin: 10px auto } .advancesearchmenu .advance-search-title { text-align: right; width: 100%; text-transform: uppercase } a#advanceSearch { text-decoration: underline; color: #000; cursor: pointer } a:hover#advanceSearch { color: #000 } .advancesearchmenu .form-control { padding: 6px 3px; font-size: 13px; box-shadow: none; border-color: #ebebeb } .advancesearchmenu label { font-weight: 400; color: #000; font-size: 13px } .advancesearchmenu .express-postingbtn { border: 0; font-family: var(--boldfonts); font-size: 16px; padding: 6px 30px; text-align: center; width: auto } .advancesearchmenu #divAdvanceSearch .tag-ctn { height: 35px !important; min-height: inherit; border-color: #ebebeb } #advanceSearch .middle-container { width: 100%; margin: 0 } .advancesearchmenu #advsearchhide, .advancesearchmenu #divAdvanceSearch { width: 100% !important } #advsearchhide a, #advsearchhide1 a { float: left; width: 100%; text-align: left; font-size: 16px; margin: 0 0 30px; color: #000; cursor: pointer } #advsearchhide a .fa, #advsearchhide1 a .fa { font-size: 25px; color: #b2bacc; margin-right: 8px; vertical-align: bottom } @media (max-width:1024px) { .searchadvertisement { width: 86% } .hidden-menu .col-md-8 { width: 85% } .advancesearchmenu { width: 82% } .icon-group { margin-right: 20px } .newsletter-main .col-md-6.first-section { width: 85%; margin: 0 auto; float: none } .newsletter-main .col-md-6 { width: 100% } } @media (max-width:992px) { .commontopspace { margin-top: 135px } } @media (max-width:800px) { .hidden-menu .col-md-8, .searchadvertisement { width: 100% } .advancesearchmenu { width: 98% } .search-icon.btn3 { padding-top: 1px } } nav.sponsored-alert { z-index: 1040 !important } .navbar-fixed-bottom, .navbar-fixed-top { z-index: 1040 } @media (max-width:768px) { .commontopspace { margin-top: 43px } } </style> <script defer> !function () { "use strict"; var e, a = function (s, i) { function r(e) { return Math.floor(e) } function n() { var e = T.params.autoplay, a = T.slides.eq(T.activeIndex); a.attr("data-swiper-autoplay") && (e = a.attr("data-swiper-autoplay") || T.params.autoplay), T.autoplayTimeoutId = setTimeout(function () { T.params.loop ? (T.fixLoop(), T._slideNext(), T.emit("onAutoplay", T)) : T.isEnd ? i.autoplayStopOnLast ? T.stopAutoplay() : (T._slideTo(0), T.emit("onAutoplay", T)) : (T._slideNext(), T.emit("onAutoplay", T)) }, e) } function o(a, t) { var s = e(a.target); if (!s.is(t)) if ("string" == typeof t) s = s.parents(t); else if (t.nodeType) { var i; return s.parents().each(function (e, a) { a === t && (i = t) }), i ? t : void 0 } if (0 !== s.length) return s[0] } function l(e, a) { a = a || {}; var t = window.MutationObserver || window.WebkitMutationObserver, s = new t(function (e) { e.forEach(function (e) { T.onResize(!0), T.emit("onObserverUpdate", T, e) }) }); s.observe(e, { attributes: void 0 === a.attributes || a.attributes, childList: void 0 === a.childList || a.childList, characterData: void 0 === a.characterData || a.characterData }), T.observers.push(s) } function p(e) { e.originalEvent && (e = e.originalEvent); var a = e.keyCode || e.charCode; if (!T.params.allowSwipeToNext && (T.isHorizontal() && 39 === a || !T.isHorizontal() && 40 === a)) return !1; if (!T.params.allowSwipeToPrev && (T.isHorizontal() && 37 === a || !T.isHorizontal() && 38 === a)) return !1; if (!(e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || document.activeElement && document.activeElement.nodeName && ("input" === document.activeElement.nodeName.toLowerCase() || "textarea" === document.activeElement.nodeName.toLowerCase()))) { if (37 === a || 39 === a || 38 === a || 40 === a) { var t = !1; if (T.container.parents("." + T.params.slideClass).length > 0 && 0 === T.container.parents("." + T.params.slideActiveClass).length) return; var s = { left: window.pageXOffset, top: window.pageYOffset }, i = window.innerWidth, r = window.innerHeight, n = T.container.offset(); T.rtl && (n.left = n.left - T.container[0].scrollLeft); for (var o = [[n.left, n.top], [n.left + T.width, n.top], [n.left, n.top + T.height], [n.left + T.width, n.top + T.height]], l = 0; l < o.length; l++) { var p = o[l]; p[0] >= s.left && p[0] <= s.left + i && p[1] >= s.top && p[1] <= s.top + r && (t = !0) } if (!t) return } T.isHorizontal() ? (37 !== a && 39 !== a || (e.preventDefault ? e.preventDefault() : e.returnValue = !1), (39 === a && !T.rtl || 37 === a && T.rtl) && T.slideNext(), (37 === a && !T.rtl || 39 === a && T.rtl) && T.slidePrev()) : (38 !== a && 40 !== a || (e.preventDefault ? e.preventDefault() : e.returnValue = !1), 40 === a && T.slideNext(), 38 === a && T.slidePrev()), T.emit("onKeyPress", T, a) } } function d(e) { var a = 0, t = 0, s = 0, i = 0; return "detail" in e && (t = e.detail), "wheelDelta" in e && (t = -e.wheelDelta / 120), "wheelDeltaY" in e && (t = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (a = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && (a = t, t = 0), s = 10 * a, i = 10 * t, "deltaY" in e && (i = e.deltaY), "deltaX" in e && (s = e.deltaX), (s || i) && e.deltaMode && (1 === e.deltaMode ? (s *= 40, i *= 40) : (s *= 800, i *= 800)), s && !a && (a = s < 1 ? -1 : 1), i && !t && (t = i < 1 ? -1 : 1), { spinX: a, spinY: t, pixelX: s, pixelY: i } } function u(e) { e.originalEvent && (e = e.originalEvent); var a = 0, t = T.rtl ? -1 : 1, s = d(e); if (T.params.mousewheelForceToAxis) if (T.isHorizontal()) { if (!(Math.abs(s.pixelX) > Math.abs(s.pixelY))) return; a = s.pixelX * t } else { if (!(Math.abs(s.pixelY) > Math.abs(s.pixelX))) return; a = s.pixelY } else a = Math.abs(s.pixelX) > Math.abs(s.pixelY) ? -s.pixelX * t : -s.pixelY; if (0 !== a) { if (T.params.mousewheelInvert && (a = -a), T.params.freeMode) { var i = T.getWrapperTranslate() + a * T.params.mousewheelSensitivity, r = T.isBeginning, n = T.isEnd; if (i >= T.minTranslate() && (i = T.minTranslate()), i <= T.maxTranslate() && (i = T.maxTranslate()), T.setWrapperTransition(0), T.setWrapperTranslate(i), T.updateProgress(), T.updateActiveIndex(), (!r && T.isBeginning || !n && T.isEnd) && T.updateClasses(), T.params.freeModeSticky ? (clearTimeout(T.mousewheel.timeout), T.mousewheel.timeout = setTimeout(function () { T.slideReset() }, 300)) : T.params.lazyLoading && T.lazy && T.lazy.load(), T.emit("onScroll", T, e), T.params.autoplay && T.params.autoplayDisableOnInteraction && T.stopAutoplay(), 0 === i || i === T.maxTranslate()) return } else { if ((new window.Date).getTime() - T.mousewheel.lastScrollTime > 60) if (a < 0) if (T.isEnd && !T.params.loop || T.animating) { if (T.params.mousewheelReleaseOnEdges) return !0 } else T.slideNext(), T.emit("onScroll", T, e); else if (T.isBeginning && !T.params.loop || T.animating) { if (T.params.mousewheelReleaseOnEdges) return !0 } else T.slidePrev(), T.emit("onScroll", T, e); T.mousewheel.lastScrollTime = (new window.Date).getTime() } return e.preventDefault ? e.preventDefault() : e.returnValue = !1, !1 } } function c(a, t) { a = e(a); var s, i, r, n = T.rtl ? -1 : 1; s = a.attr("data-swiper-parallax") || "0", i = a.attr("data-swiper-parallax-x"), r = a.attr("data-swiper-parallax-y"), i || r ? (i = i || "0", r = r || "0") : T.isHorizontal() ? (i = s, r = "0") : (r = s, i = "0"), i = i.indexOf("%") >= 0 ? parseInt(i, 10) * t * n + "%" : i * t * n + "px", r = r.indexOf("%") >= 0 ? parseInt(r, 10) * t + "%" : r * t + "px", a.transform("translate3d(" + i + ", " + r + ",0px)") } function m(e) { return 0 !== e.indexOf("on") && (e = e[0] !== e[0].toUpperCase() ? "on" + e[0].toUpperCase() + e.substring(1) : "on" + e), e } if (!(this instanceof a)) return new a(s, i); var h = { direction: "horizontal", touchEventsTarget: "container", initialSlide: 0, speed: 300, autoplay: !1, autoplayDisableOnInteraction: !0, autoplayStopOnLast: !1, iOSEdgeSwipeDetection: !1, iOSEdgeSwipeThreshold: 20, freeMode: !1, freeModeMomentum: !0, freeModeMomentumRatio: 1, freeModeMomentumBounce: !0, freeModeMomentumBounceRatio: 1, freeModeMomentumVelocityRatio: 1, freeModeSticky: !1, freeModeMinimumVelocity: .02, autoHeight: !1, setWrapperSize: !1, virtualTranslate: !1, effect: "slide", coverflow: { rotate: 50, stretch: 0, depth: 100, modifier: 1, slideShadows: !0 }, flip: { slideShadows: !0, limitRotation: !0 }, cube: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: .94 }, fade: { crossFade: !1 }, parallax: !1, zoom: !1, zoomMax: 3, zoomMin: 1, zoomToggle: !0, scrollbar: null, scrollbarHide: !0, scrollbarDraggable: !1, scrollbarSnapOnRelease: !1, keyboardControl: !1, mousewheelControl: !1, mousewheelReleaseOnEdges: !1, mousewheelInvert: !1, mousewheelForceToAxis: !1, mousewheelSensitivity: 1, mousewheelEventsTarged: "container", hashnav: !1, hashnavWatchState: !1, history: !1, replaceState: !1, breakpoints: void 0, spaceBetween: 0, slidesPerView: 1, slidesPerColumn: 1, slidesPerColumnFill: "column", slidesPerGroup: 1, centeredSlides: !1, slidesOffsetBefore: 0, slidesOffsetAfter: 0, roundLengths: !1, touchRatio: 1, touchAngle: 45, simulateTouch: !0, shortSwipes: !0, longSwipes: !0, longSwipesRatio: .5, longSwipesMs: 300, followFinger: !0, onlyExternal: !1, threshold: 0, touchMoveStopPropagation: !0, touchReleaseOnEdges: !1, uniqueNavElements: !0, pagination: null, paginationElement: "span", paginationClickable: !1, paginationHide: !1, paginationBulletRender: null, paginationProgressRender: null, paginationFractionRender: null, paginationCustomRender: null, paginationType: "bullets", resistance: !0, resistanceRatio: .85, nextButton: null, prevButton: null, watchSlidesProgress: !1, watchSlidesVisibility: !1, grabCursor: !1, preventClicks: !0, preventClicksPropagation: !0, slideToClickedSlide: !1, lazyLoading: !1, lazyLoadingInPrevNext: !1, lazyLoadingInPrevNextAmount: 1, lazyLoadingOnTransitionStart: !1, preloadImages: !0, updateOnImagesReady: !0, loop: !1, loopAdditionalSlides: 0, loopedSlides: null, control: void 0, controlInverse: !1, controlBy: "slide", normalizeSlideIndex: !0, allowSwipeToPrev: !0, allowSwipeToNext: !0, swipeHandler: null, noSwiping: !0, noSwipingClass: "swiper-no-swiping", passiveListeners: !0, containerModifierClass: "swiper-container-", slideClass: "swiper-slide", slideActiveClass: "swiper-slide-active", slideDuplicateActiveClass: "swiper-slide-duplicate-active", slideVisibleClass: "swiper-slide-visible", slideDuplicateClass: "swiper-slide-duplicate", slideNextClass: "swiper-slide-next", slideDuplicateNextClass: "swiper-slide-duplicate-next", slidePrevClass: "swiper-slide-prev", slideDuplicatePrevClass: "swiper-slide-duplicate-prev", wrapperClass: "swiper-wrapper", bulletClass: "swiper-pagination-bullet", bulletActiveClass: "swiper-pagination-bullet-active", buttonDisabledClass: "swiper-button-disabled", paginationCurrentClass: "swiper-pagination-current", paginationTotalClass: "swiper-pagination-total", paginationHiddenClass: "swiper-pagination-hidden", paginationProgressbarClass: "swiper-pagination-progressbar", paginationClickableClass: "swiper-pagination-clickable", paginationModifierClass: "swiper-pagination-", lazyLoadingClass: "swiper-lazy", lazyStatusLoadingClass: "swiper-lazy-loading", lazyStatusLoadedClass: "swiper-lazy-loaded", lazyPreloaderClass: "swiper-lazy-preloader", notificationClass: "swiper-notification", preloaderClass: "preloader", zoomContainerClass: "swiper-zoom-container", observer: !1, observeParents: !1, a11y: !1, prevSlideMessage: "Previous slide", nextSlideMessage: "Next slide", firstSlideMessage: "This is the first slide", lastSlideMessage: "This is the last slide", paginationBulletMessage: "Go to slide {{index}}", runCallbacksOnInit: !0 }, g = i && i.virtualTranslate; i = i || {}; var f = {}; for (var v in i) if ("object" != typeof i[v] || null === i[v] || (i[v].nodeType || i[v] === window || i[v] === document || void 0 !== t && i[v] instanceof t || "undefined" != typeof jQuery && i[v] instanceof jQuery)) f[v] = i[v]; else { f[v] = {}; for (var w in i[v]) f[v][w] = i[v][w] } for (var y in h) if (void 0 === i[y]) i[y] = h[y]; else if ("object" == typeof i[y]) for (var x in h[y]) void 0 === i[y][x] && (i[y][x] = h[y][x]); var T = this; if (T.params = i, T.originalParams = f, T.classNames = [], void 0 !== e && void 0 !== t && (e = t), (void 0 !== e || (e = void 0 === t ? window.Dom7 || window.Zepto || window.jQuery : t)) && (T.$ = e, T.currentBreakpoint = void 0, T.getActiveBreakpoint = function () { if (!T.params.breakpoints) return !1; var e, a = !1, t = []; for (e in T.params.breakpoints) T.params.breakpoints.hasOwnProperty(e) && t.push(e); t.sort(function (e, a) { return parseInt(e, 10) > parseInt(a, 10) }); for (var s = 0; s < t.length; s++)(e = t[s]) >= window.innerWidth && !a && (a = e); return a || "max" }, T.setBreakpoint = function () { var e = T.getActiveBreakpoint(); if (e && T.currentBreakpoint !== e) { var a = e in T.params.breakpoints ? T.params.breakpoints[e] : T.originalParams, t = T.params.loop && a.slidesPerView !== T.params.slidesPerView; for (var s in a) T.params[s] = a[s]; T.currentBreakpoint = e, t && T.destroyLoop && T.reLoop(!0) } }, T.params.breakpoints && T.setBreakpoint(), T.container = e(s), 0 !== T.container.length)) { if (T.container.length > 1) { var b = []; return T.container.each(function () { b.push(new a(this, i)) }), b } T.container[0].swiper = T, T.container.data("swiper", T), T.classNames.push(T.params.containerModifierClass + T.params.direction), T.params.freeMode && T.classNames.push(T.params.containerModifierClass + "free-mode"), T.support.flexbox || (T.classNames.push(T.params.containerModifierClass + "no-flexbox"), T.params.slidesPerColumn = 1), T.params.autoHeight && T.classNames.push(T.params.containerModifierClass + "autoheight"), (T.params.parallax || T.params.watchSlidesVisibility) && (T.params.watchSlidesProgress = !0), T.params.touchReleaseOnEdges && (T.params.resistanceRatio = 0), ["cube", "coverflow", "flip"].indexOf(T.params.effect) >= 0 && (T.support.transforms3d ? (T.params.watchSlidesProgress = !0, T.classNames.push(T.params.containerModifierClass + "3d")) : T.params.effect = "slide"), "slide" !== T.params.effect && T.classNames.push(T.params.containerModifierClass + T.params.effect), "cube" === T.params.effect && (T.params.resistanceRatio = 0, T.params.slidesPerView = 1, T.params.slidesPerColumn = 1, T.params.slidesPerGroup = 1, T.params.centeredSlides = !1, T.params.spaceBetween = 0, T.params.virtualTranslate = !0), "fade" !== T.params.effect && "flip" !== T.params.effect || (T.params.slidesPerView = 1, T.params.slidesPerColumn = 1, T.params.slidesPerGroup = 1, T.params.watchSlidesProgress = !0, T.params.spaceBetween = 0, void 0 === g && (T.params.virtualTranslate = !0)), T.params.grabCursor && T.support.touch && (T.params.grabCursor = !1), T.wrapper = T.container.children("." + T.params.wrapperClass), T.params.pagination && (T.paginationContainer = e(T.params.pagination), T.params.uniqueNavElements && "string" == typeof T.params.pagination && T.paginationContainer.length > 1 && 1 === T.container.find(T.params.pagination).length && (T.paginationContainer = T.container.find(T.params.pagination)), "bullets" === T.params.paginationType && T.params.paginationClickable ? T.paginationContainer.addClass(T.params.paginationModifierClass + "clickable") : T.params.paginationClickable = !1, T.paginationContainer.addClass(T.params.paginationModifierClass + T.params.paginationType)), (T.params.nextButton || T.params.prevButton) && (T.params.nextButton && (T.nextButton = e(T.params.nextButton), T.params.uniqueNavElements && "string" == typeof T.params.nextButton && T.nextButton.length > 1 && 1 === T.container.find(T.params.nextButton).length && (T.nextButton = T.container.find(T.params.nextButton))), T.params.prevButton && (T.prevButton = e(T.params.prevButton), T.params.uniqueNavElements && "string" == typeof T.params.prevButton && T.prevButton.length > 1 && 1 === T.container.find(T.params.prevButton).length && (T.prevButton = T.container.find(T.params.prevButton)))), T.isHorizontal = function () { return "horizontal" === T.params.direction }, T.rtl = T.isHorizontal() && ("rtl" === T.container[0].dir.toLowerCase() || "rtl" === T.container.css("direction")), T.rtl && T.classNames.push(T.params.containerModifierClass + "rtl"), T.rtl && (T.wrongRTL = "-webkit-box" === T.wrapper.css("display")), T.params.slidesPerColumn > 1 && T.classNames.push(T.params.containerModifierClass + "multirow"), T.device.android && T.classNames.push(T.params.containerModifierClass + "android"), T.container.addClass(T.classNames.join(" ")), T.translate = 0, T.progress = 0, T.velocity = 0, T.lockSwipeToNext = function () { T.params.allowSwipeToNext = !1, T.params.allowSwipeToPrev === !1 && T.params.grabCursor && T.unsetGrabCursor() }, T.lockSwipeToPrev = function () { T.params.allowSwipeToPrev = !1, T.params.allowSwipeToNext === !1 && T.params.grabCursor && T.unsetGrabCursor() }, T.lockSwipes = function () { T.params.allowSwipeToNext = T.params.allowSwipeToPrev = !1, T.params.grabCursor && T.unsetGrabCursor() }, T.unlockSwipeToNext = function () { T.params.allowSwipeToNext = !0, T.params.allowSwipeToPrev === !0 && T.params.grabCursor && T.setGrabCursor() }, T.unlockSwipeToPrev = function () { T.params.allowSwipeToPrev = !0, T.params.allowSwipeToNext === !0 && T.params.grabCursor && T.setGrabCursor() }, T.unlockSwipes = function () { T.params.allowSwipeToNext = T.params.allowSwipeToPrev = !0, T.params.grabCursor && T.setGrabCursor() }, T.setGrabCursor = function (e) { T.container[0].style.cursor = "move", T.container[0].style.cursor = e ? "-webkit-grabbing" : "-webkit-grab", T.container[0].style.cursor = e ? "-moz-grabbin" : "-moz-grab", T.container[0].style.cursor = e ? "grabbing" : "grab" }, T.unsetGrabCursor = function () { T.container[0].style.cursor = "" }, T.params.grabCursor && T.setGrabCursor(), T.imagesToLoad = [], T.imagesLoaded = 0, T.loadImage = function (e, a, t, s, i, r) { function n() { r && r() } var o; e.complete && i ? n() : a ? (o = new window.Image, o.onload = n, o.onerror = n, s && (o.sizes = s), t && (o.srcset = t), a && (o.src = a)) : n() }, T.preloadImages = function () { function e() { void 0 !== T && null !== T && T && (void 0 !== T.imagesLoaded && T.imagesLoaded++, T.imagesLoaded === T.imagesToLoad.length && (T.params.updateOnImagesReady && T.update(), T.emit("onImagesReady", T))) } T.imagesToLoad = T.container.find("img"); for (var a = 0; a < T.imagesToLoad.length; a++)T.loadImage(T.imagesToLoad[a], T.imagesToLoad[a].currentSrc || T.imagesToLoad[a].getAttribute("src"), T.imagesToLoad[a].srcset || T.imagesToLoad[a].getAttribute("srcset"), T.imagesToLoad[a].sizes || T.imagesToLoad[a].getAttribute("sizes"), !0, e) }, T.autoplayTimeoutId = void 0, T.autoplaying = !1, T.autoplayPaused = !1, T.startAutoplay = function () { return void 0 === T.autoplayTimeoutId && (!!T.params.autoplay && (!T.autoplaying && (T.autoplaying = !0, T.emit("onAutoplayStart", T), void n()))) }, T.stopAutoplay = function (e) { T.autoplayTimeoutId && (T.autoplayTimeoutId && clearTimeout(T.autoplayTimeoutId), T.autoplaying = !1, T.autoplayTimeoutId = void 0, T.emit("onAutoplayStop", T)) }, T.pauseAutoplay = function (e) { T.autoplayPaused || (T.autoplayTimeoutId && clearTimeout(T.autoplayTimeoutId), T.autoplayPaused = !0, 0 === e ? (T.autoplayPaused = !1, n()) : T.wrapper.transitionEnd(function () { T && (T.autoplayPaused = !1, T.autoplaying ? n() : T.stopAutoplay()) })) }, T.minTranslate = function () { return -T.snapGrid[0] }, T.maxTranslate = function () { return -T.snapGrid[T.snapGrid.length - 1] }, T.updateAutoHeight = function () { var e, a = [], t = 0; if ("auto" !== T.params.slidesPerView && T.params.slidesPerView > 1) for (e = 0; e < Math.ceil(T.params.slidesPerView); e++) { var s = T.activeIndex + e; if (s > T.slides.length) break; a.push(T.slides.eq(s)[0]) } else a.push(T.slides.eq(T.activeIndex)[0]); for (e = 0; e < a.length; e++)if (void 0 !== a[e]) { var i = a[e].offsetHeight; t = i > t ? i : t } t && T.wrapper.css("height", t + "px") }, T.updateContainerSize = function () { var e, a; e = void 0 !== T.params.width ? T.params.width : T.container[0].clientWidth, a = void 0 !== T.params.height ? T.params.height : T.container[0].clientHeight, 0 === e && T.isHorizontal() || 0 === a && !T.isHorizontal() || (e = e - parseInt(T.container.css("padding-left"), 10) - parseInt(T.container.css("padding-right"), 10), a = a - parseInt(T.container.css("padding-top"), 10) - parseInt(T.container.css("padding-bottom"), 10), T.width = e, T.height = a, T.size = T.isHorizontal() ? T.width : T.height) }, T.updateSlidesSize = function () { T.slides = T.wrapper.children("." + T.params.slideClass), T.snapGrid = [], T.slidesGrid = [], T.slidesSizesGrid = []; var e, a = T.params.spaceBetween, t = -T.params.slidesOffsetBefore, s = 0, i = 0; if (void 0 !== T.size) { "string" == typeof a && a.indexOf("%") >= 0 && (a = parseFloat(a.replace("%", "")) / 100 * T.size), T.virtualSize = -a, T.rtl ? T.slides.css({ marginLeft: "", marginTop: "" }) : T.slides.css({ marginRight: "", marginBottom: "" }); var n; T.params.slidesPerColumn > 1 && (n = Math.floor(T.slides.length / T.params.slidesPerColumn) === T.slides.length / T.params.slidesPerColumn ? T.slides.length : Math.ceil(T.slides.length / T.params.slidesPerColumn) * T.params.slidesPerColumn, "auto" !== T.params.slidesPerView && "row" === T.params.slidesPerColumnFill && (n = Math.max(n, T.params.slidesPerView * T.params.slidesPerColumn))); var o, l = T.params.slidesPerColumn, p = n / l, d = p - (T.params.slidesPerColumn * p - T.slides.length); for (e = 0; e < T.slides.length; e++) { o = 0; var u = T.slides.eq(e); if (T.params.slidesPerColumn > 1) { var c, m, h; "column" === T.params.slidesPerColumnFill ? (m = Math.floor(e / l), h = e - m * l, (m > d || m === d && h === l - 1) && ++h >= l && (h = 0, m++), c = m + h * n / l, u.css({ "-webkit-box-ordinal-group": c, "-moz-box-ordinal-group": c, "-ms-flex-order": c, "-webkit-order": c, order: c })) : (h = Math.floor(e / p), m = e - h * p), u.css("margin-" + (T.isHorizontal() ? "top" : "left"), 0 !== h && T.params.spaceBetween && T.params.spaceBetween + "px").attr("data-swiper-column", m).attr("data-swiper-row", h) } "none" !== u.css("display") && ("auto" === T.params.slidesPerView ? (o = T.isHorizontal() ? u.outerWidth(!0) : u.outerHeight(!0), T.params.roundLengths && (o = r(o))) : (o = (T.size - (T.params.slidesPerView - 1) * a) / T.params.slidesPerView, T.params.roundLengths && (o = r(o)), T.isHorizontal() ? T.slides[e].style.width = o + "px" : T.slides[e].style.height = o + "px"), T.slides[e].swiperSlideSize = o, T.slidesSizesGrid.push(o), T.params.centeredSlides ? (t = t + o / 2 + s / 2 + a, 0 === s && 0 !== e && (t = t - T.size / 2 - a), 0 === e && (t = t - T.size / 2 - a), Math.abs(t) < .001 && (t = 0), i % T.params.slidesPerGroup == 0 && T.snapGrid.push(t), T.slidesGrid.push(t)) : (i % T.params.slidesPerGroup == 0 && T.snapGrid.push(t), T.slidesGrid.push(t), t = t + o + a), T.virtualSize += o + a, s = o, i++) } T.virtualSize = Math.max(T.virtualSize, T.size) + T.params.slidesOffsetAfter; var g; if (T.rtl && T.wrongRTL && ("slide" === T.params.effect || "coverflow" === T.params.effect) && T.wrapper.css({ width: T.virtualSize + T.params.spaceBetween + "px" }), T.support.flexbox && !T.params.setWrapperSize || (T.isHorizontal() ? T.wrapper.css({ width: T.virtualSize + T.params.spaceBetween + "px" }) : T.wrapper.css({ height: T.virtualSize + T.params.spaceBetween + "px" })), T.params.slidesPerColumn > 1 && (T.virtualSize = (o + T.params.spaceBetween) * n, T.virtualSize = Math.ceil(T.virtualSize / T.params.slidesPerColumn) - T.params.spaceBetween, T.isHorizontal() ? T.wrapper.css({ width: T.virtualSize + T.params.spaceBetween + "px" }) : T.wrapper.css({ height: T.virtualSize + T.params.spaceBetween + "px" }), T.params.centeredSlides)) { for (g = [], e = 0; e < T.snapGrid.length; e++)T.snapGrid[e] < T.virtualSize + T.snapGrid[0] && g.push(T.snapGrid[e]); T.snapGrid = g } if (!T.params.centeredSlides) { for (g = [], e = 0; e < T.snapGrid.length; e++)T.snapGrid[e] <= T.virtualSize - T.size && g.push(T.snapGrid[e]); T.snapGrid = g, Math.floor(T.virtualSize - T.size) - Math.floor(T.snapGrid[T.snapGrid.length - 1]) > 1 && T.snapGrid.push(T.virtualSize - T.size) } 0 === T.snapGrid.length && (T.snapGrid = [0]), 0 !== T.params.spaceBetween && (T.isHorizontal() ? T.rtl ? T.slides.css({ marginLeft: a + "px" }) : T.slides.css({ marginRight: a + "px" }) : T.slides.css({ marginBottom: a + "px" })), T.params.watchSlidesProgress && T.updateSlidesOffset() } }, T.updateSlidesOffset = function () { for (var e = 0; e < T.slides.length; e++)T.slides[e].swiperSlideOffset = T.isHorizontal() ? T.slides[e].offsetLeft : T.slides[e].offsetTop }, T.currentSlidesPerView = function () { var e, a, t = 1; if (T.params.centeredSlides) { var s, i = T.slides[T.activeIndex].swiperSlideSize; for (e = T.activeIndex + 1; e < T.slides.length; e++)T.slides[e] && !s && (i += T.slides[e].swiperSlideSize, t++, i > T.size && (s = !0)); for (a = T.activeIndex - 1; a >= 0; a--)T.slides[a] && !s && (i += T.slides[a].swiperSlideSize, t++, i > T.size && (s = !0)) } else for (e = T.activeIndex + 1; e < T.slides.length; e++)T.slidesGrid[e] - T.slidesGrid[T.activeIndex] < T.size && t++; return t }, T.updateSlidesProgress = function (e) { if (void 0 === e && (e = T.translate || 0), 0 !== T.slides.length) { void 0 === T.slides[0].swiperSlideOffset && T.updateSlidesOffset(); var a = -e; T.rtl && (a = e), T.slides.removeClass(T.params.slideVisibleClass); for (var t = 0; t < T.slides.length; t++) { var s = T.slides[t], i = (a + (T.params.centeredSlides ? T.minTranslate() : 0) - s.swiperSlideOffset) / (s.swiperSlideSize + T.params.spaceBetween); if (T.params.watchSlidesVisibility) { var r = -(a - s.swiperSlideOffset), n = r + T.slidesSizesGrid[t]; (r >= 0 && r < T.size || n > 0 && n <= T.size || r <= 0 && n >= T.size) && T.slides.eq(t).addClass(T.params.slideVisibleClass) } s.progress = T.rtl ? -i : i } } }, T.updateProgress = function (e) { void 0 === e && (e = T.translate || 0); var a = T.maxTranslate() - T.minTranslate(), t = T.isBeginning, s = T.isEnd; 0 === a ? (T.progress = 0, T.isBeginning = T.isEnd = !0) : (T.progress = (e - T.minTranslate()) / a, T.isBeginning = T.progress <= 0, T.isEnd = T.progress >= 1), T.isBeginning && !t && T.emit("onReachBeginning", T), T.isEnd && !s && T.emit("onReachEnd", T), T.params.watchSlidesProgress && T.updateSlidesProgress(e), T.emit("onProgress", T, T.progress) }, T.updateActiveIndex = function () { var e, a, t, s = T.rtl ? T.translate : -T.translate; for (a = 0; a < T.slidesGrid.length; a++)void 0 !== T.slidesGrid[a + 1] ? s >= T.slidesGrid[a] && s < T.slidesGrid[a + 1] - (T.slidesGrid[a + 1] - T.slidesGrid[a]) / 2 ? e = a : s >= T.slidesGrid[a] && s < T.slidesGrid[a + 1] && (e = a + 1) : s >= T.slidesGrid[a] && (e = a); T.params.normalizeSlideIndex && (e < 0 || void 0 === e) && (e = 0), t = Math.floor(e / T.params.slidesPerGroup), t >= T.snapGrid.length && (t = T.snapGrid.length - 1), e !== T.activeIndex && (T.snapIndex = t, T.previousIndex = T.activeIndex, T.activeIndex = e, T.updateClasses(), T.updateRealIndex()) }, T.updateRealIndex = function () { T.realIndex = parseInt(T.slides.eq(T.activeIndex).attr("data-swiper-slide-index") || T.activeIndex, 10) }, T.updateClasses = function () { T.slides.removeClass(T.params.slideActiveClass + " " + T.params.slideNextClass + " " + T.params.slidePrevClass + " " + T.params.slideDuplicateActiveClass + " " + T.params.slideDuplicateNextClass + " " + T.params.slideDuplicatePrevClass); var a = T.slides.eq(T.activeIndex); a.addClass(T.params.slideActiveClass), i.loop && (a.hasClass(T.params.slideDuplicateClass) ? T.wrapper.children("." + T.params.slideClass + ":not(." + T.params.slideDuplicateClass + ')[data-swiper-slide-index="' + T.realIndex + '"]').addClass(T.params.slideDuplicateActiveClass) : T.wrapper.children("." + T.params.slideClass + "." + T.params.slideDuplicateClass + '[data-swiper-slide-index="' + T.realIndex + '"]').addClass(T.params.slideDuplicateActiveClass)); var t = a.next("." + T.params.slideClass).addClass(T.params.slideNextClass); T.params.loop && 0 === t.length && (t = T.slides.eq(0), t.addClass(T.params.slideNextClass)); var s = a.prev("." + T.params.slideClass).addClass(T.params.slidePrevClass); if (T.params.loop && 0 === s.length && (s = T.slides.eq(-1), s.addClass(T.params.slidePrevClass)), i.loop && (t.hasClass(T.params.slideDuplicateClass) ? T.wrapper.children("." + T.params.slideClass + ":not(." + T.params.slideDuplicateClass + ')[data-swiper-slide-index="' + t.attr("data-swiper-slide-index") + '"]').addClass(T.params.slideDuplicateNextClass) : T.wrapper.children("." + T.params.slideClass + "." + T.params.slideDuplicateClass + '[data-swiper-slide-index="' + t.attr("data-swiper-slide-index") + '"]').addClass(T.params.slideDuplicateNextClass), s.hasClass(T.params.slideDuplicateClass) ? T.wrapper.children("." + T.params.slideClass + ":not(." + T.params.slideDuplicateClass + ')[data-swiper-slide-index="' + s.attr("data-swiper-slide-index") + '"]').addClass(T.params.slideDuplicatePrevClass) : T.wrapper.children("." + T.params.slideClass + "." + T.params.slideDuplicateClass + '[data-swiper-slide-index="' + s.attr("data-swiper-slide-index") + '"]').addClass(T.params.slideDuplicatePrevClass)), T.paginationContainer && T.paginationContainer.length > 0) { var r, n = T.params.loop ? Math.ceil((T.slides.length - 2 * T.loopedSlides) / T.params.slidesPerGroup) : T.snapGrid.length; if (T.params.loop ? (r = Math.ceil((T.activeIndex - T.loopedSlides) / T.params.slidesPerGroup), r > T.slides.length - 1 - 2 * T.loopedSlides && (r -= T.slides.length - 2 * T.loopedSlides), r > n - 1 && (r -= n), r < 0 && "bullets" !== T.params.paginationType && (r = n + r)) : r = void 0 !== T.snapIndex ? T.snapIndex : T.activeIndex || 0, "bullets" === T.params.paginationType && T.bullets && T.bullets.length > 0 && (T.bullets.removeClass(T.params.bulletActiveClass), T.paginationContainer.length > 1 ? T.bullets.each(function () { e(this).index() === r && e(this).addClass(T.params.bulletActiveClass) }) : T.bullets.eq(r).addClass(T.params.bulletActiveClass)), "fraction" === T.params.paginationType && (T.paginationContainer.find("." + T.params.paginationCurrentClass).text(r + 1), T.paginationContainer.find("." + T.params.paginationTotalClass).text(n)), "progress" === T.params.paginationType) { var o = (r + 1) / n, l = o, p = 1; T.isHorizontal() || (p = o, l = 1), T.paginationContainer.find("." + T.params.paginationProgressbarClass).transform("translate3d(0,0,0) scaleX(" + l + ") scaleY(" + p + ")").transition(T.params.speed) } "custom" === T.params.paginationType && T.params.paginationCustomRender && (T.paginationContainer.html(T.params.paginationCustomRender(T, r + 1, n)), T.emit("onPaginationRendered", T, T.paginationContainer[0])) } T.params.loop || (T.params.prevButton && T.prevButton && T.prevButton.length > 0 && (T.isBeginning ? (T.prevButton.addClass(T.params.buttonDisabledClass), T.params.a11y && T.a11y && T.a11y.disable(T.prevButton)) : (T.prevButton.removeClass(T.params.buttonDisabledClass), T.params.a11y && T.a11y && T.a11y.enable(T.prevButton))), T.params.nextButton && T.nextButton && T.nextButton.length > 0 && (T.isEnd ? (T.nextButton.addClass(T.params.buttonDisabledClass), T.params.a11y && T.a11y && T.a11y.disable(T.nextButton)) : (T.nextButton.removeClass(T.params.buttonDisabledClass), T.params.a11y && T.a11y && T.a11y.enable(T.nextButton)))) }, T.updatePagination = function () { if (T.params.pagination && T.paginationContainer && T.paginationContainer.length > 0) { var e = ""; if ("bullets" === T.params.paginationType) { for (var a = T.params.loop ? Math.ceil((T.slides.length - 2 * T.loopedSlides) / T.params.slidesPerGroup) : T.snapGrid.length, t = 0; t < a; t++)e += T.params.paginationBulletRender ? T.params.paginationBulletRender(T, t, T.params.bulletClass) : "<" + T.params.paginationElement + ' class="' + T.params.bulletClass + '"></' + T.params.paginationElement + ">"; T.paginationContainer.html(e), T.bullets = T.paginationContainer.find("." + T.params.bulletClass), T.params.paginationClickable && T.params.a11y && T.a11y && T.a11y.initPagination() } "fraction" === T.params.paginationType && (e = T.params.paginationFractionRender ? T.params.paginationFractionRender(T, T.params.paginationCurrentClass, T.params.paginationTotalClass) : '<span class="' + T.params.paginationCurrentClass + '"></span> / <span class="' + T.params.paginationTotalClass + '"></span>', T.paginationContainer.html(e)), "progress" === T.params.paginationType && (e = T.params.paginationProgressRender ? T.params.paginationProgressRender(T, T.params.paginationProgressbarClass) : '<span class="' + T.params.paginationProgressbarClass + '"></span>', T.paginationContainer.html(e)), "custom" !== T.params.paginationType && T.emit("onPaginationRendered", T, T.paginationContainer[0]) } }, T.update = function (e) { function a() { T.rtl, T.translate; t = Math.min(Math.max(T.translate, T.maxTranslate()), T.minTranslate()), T.setWrapperTranslate(t), T.updateActiveIndex(), T.updateClasses() } if (T) { T.updateContainerSize(), T.updateSlidesSize(), T.updateProgress(), T.updatePagination(), T.updateClasses(), T.params.scrollbar && T.scrollbar && T.scrollbar.set(); var t; if (e) { T.controller && T.controller.spline && (T.controller.spline = void 0), T.params.freeMode ? (a(), T.params.autoHeight && T.updateAutoHeight()) : (("auto" === T.params.slidesPerView || T.params.slidesPerView > 1) && T.isEnd && !T.params.centeredSlides ? T.slideTo(T.slides.length - 1, 0, !1, !0) : T.slideTo(T.activeIndex, 0, !1, !0)) || a() } else T.params.autoHeight && T.updateAutoHeight() } }, T.onResize = function (e) { T.params.onBeforeResize && T.params.onBeforeResize(T), T.params.breakpoints && T.setBreakpoint(); var a = T.params.allowSwipeToPrev, t = T.params.allowSwipeToNext; T.params.allowSwipeToPrev = T.params.allowSwipeToNext = !0, T.updateContainerSize(), T.updateSlidesSize(), ("auto" === T.params.slidesPerView || T.params.freeMode || e) && T.updatePagination(), T.params.scrollbar && T.scrollbar && T.scrollbar.set(), T.controller && T.controller.spline && (T.controller.spline = void 0); var s = !1; if (T.params.freeMode) { var i = Math.min(Math.max(T.translate, T.maxTranslate()), T.minTranslate()); T.setWrapperTranslate(i), T.updateActiveIndex(), T.updateClasses(), T.params.autoHeight && T.updateAutoHeight() } else T.updateClasses(), s = ("auto" === T.params.slidesPerView || T.params.slidesPerView > 1) && T.isEnd && !T.params.centeredSlides ? T.slideTo(T.slides.length - 1, 0, !1, !0) : T.slideTo(T.activeIndex, 0, !1, !0); T.params.lazyLoading && !s && T.lazy && T.lazy.load(), T.params.allowSwipeToPrev = a, T.params.allowSwipeToNext = t, T.params.onAfterResize && T.params.onAfterResize(T) }, T.touchEventsDesktop = { start: "mousedown", move: "mousemove", end: "mouseup" }, window.navigator.pointerEnabled ? T.touchEventsDesktop = { start: "pointerdown", move: "pointermove", end: "pointerup" } : window.navigator.msPointerEnabled && (T.touchEventsDesktop = { start: "MSPointerDown", move: "MSPointerMove", end: "MSPointerUp" }), T.touchEvents = { start: T.support.touch || !T.params.simulateTouch ? "touchstart" : T.touchEventsDesktop.start, move: T.support.touch || !T.params.simulateTouch ? "touchmove" : T.touchEventsDesktop.move, end: T.support.touch || !T.params.simulateTouch ? "touchend" : T.touchEventsDesktop.end }, (window.navigator.pointerEnabled || window.navigator.msPointerEnabled) && ("container" === T.params.touchEventsTarget ? T.container : T.wrapper).addClass("swiper-wp8-" + T.params.direction), T.initEvents = function (e) { var a = e ? "off" : "on", t = e ? "removeEventListener" : "addEventListener", s = "container" === T.params.touchEventsTarget ? T.container[0] : T.wrapper[0], r = T.support.touch ? s : document, n = !!T.params.nested; if (T.browser.ie) s[t](T.touchEvents.start, T.onTouchStart, !1), r[t](T.touchEvents.move, T.onTouchMove, n), r[t](T.touchEvents.end, T.onTouchEnd, !1); else { if (T.support.touch) { var o = !("touchstart" !== T.touchEvents.start || !T.support.passiveListener || !T.params.passiveListeners) && { passive: !0, capture: !1 }; s[t](T.touchEvents.start, T.onTouchStart, o), s[t](T.touchEvents.move, T.onTouchMove, n), s[t](T.touchEvents.end, T.onTouchEnd, o) } (i.simulateTouch && !T.device.ios && !T.device.android || i.simulateTouch && !T.support.touch && T.device.ios) && (s[t]("mousedown", T.onTouchStart, !1), document[t]("mousemove", T.onTouchMove, n), document[t]("mouseup", T.onTouchEnd, !1)) } window[t]("resize", T.onResize), T.params.nextButton && T.nextButton && T.nextButton.length > 0 && (T.nextButton[a]("click", T.onClickNext), T.params.a11y && T.a11y && T.nextButton[a]("keydown", T.a11y.onEnterKey)), T.params.prevButton && T.prevButton && T.prevButton.length > 0 && (T.prevButton[a]("click", T.onClickPrev), T.params.a11y && T.a11y && T.prevButton[a]("keydown", T.a11y.onEnterKey)), T.params.pagination && T.params.paginationClickable && (T.paginationContainer[a]("click", "." + T.params.bulletClass, T.onClickIndex), T.params.a11y && T.a11y && T.paginationContainer[a]("keydown", "." + T.params.bulletClass, T.a11y.onEnterKey)), (T.params.preventClicks || T.params.preventClicksPropagation) && s[t]("click", T.preventClicks, !0) }, T.attachEvents = function () { T.initEvents() }, T.detachEvents = function () { T.initEvents(!0) }, T.allowClick = !0, T.preventClicks = function (e) { T.allowClick || (T.params.preventClicks && e.preventDefault(), T.params.preventClicksPropagation && T.animating && (e.stopPropagation(), e.stopImmediatePropagation())) }, T.onClickNext = function (e) { e.preventDefault(), T.isEnd && !T.params.loop || T.slideNext() }, T.onClickPrev = function (e) { e.preventDefault(), T.isBeginning && !T.params.loop || T.slidePrev() }, T.onClickIndex = function (a) { a.preventDefault(); var t = e(this).index() * T.params.slidesPerGroup; T.params.loop && (t += T.loopedSlides), T.slideTo(t) }, T.updateClickedSlide = function (a) { var t = o(a, "." + T.params.slideClass), s = !1; if (t) for (var i = 0; i < T.slides.length; i++)T.slides[i] === t && (s = !0); if (!t || !s) return T.clickedSlide = void 0, void (T.clickedIndex = void 0); if (T.clickedSlide = t, T.clickedIndex = e(t).index(), T.params.slideToClickedSlide && void 0 !== T.clickedIndex && T.clickedIndex !== T.activeIndex) { var r, n = T.clickedIndex, l = "auto" === T.params.slidesPerView ? T.currentSlidesPerView() : T.params.slidesPerView; if (T.params.loop) { if (T.animating) return; r = parseInt(e(T.clickedSlide).attr("data-swiper-slide-index"), 10), T.params.centeredSlides ? n < T.loopedSlides - l / 2 || n > T.slides.length - T.loopedSlides + l / 2 ? (T.fixLoop(), n = T.wrapper.children("." + T.params.slideClass + '[data-swiper-slide-index="' + r + '"]:not(.' + T.params.slideDuplicateClass + ")").eq(0).index(), setTimeout(function () { T.slideTo(n) }, 0)) : T.slideTo(n) : n > T.slides.length - l ? (T.fixLoop(), n = T.wrapper.children("." + T.params.slideClass + '[data-swiper-slide-index="' + r + '"]:not(.' + T.params.slideDuplicateClass + ")").eq(0).index(), setTimeout(function () { T.slideTo(n) }, 0)) : T.slideTo(n) } else T.slideTo(n) } }; var S, C, z, M, E, P, I, k, L, D, B = "input, select, textarea, button, video", H = Date.now(), G = []; T.animating = !1, T.touches = { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 }; var X, A; T.onTouchStart = function (a) { if (a.originalEvent && (a = a.originalEvent), (X = "touchstart" === a.type) || !("which" in a) || 3 !== a.which) { if (T.params.noSwiping && o(a, "." + T.params.noSwipingClass)) return void (T.allowClick = !0); if (!T.params.swipeHandler || o(a, T.params.swipeHandler)) { var t = T.touches.currentX = "touchstart" === a.type ? a.targetTouches[0].pageX : a.pageX, s = T.touches.currentY = "touchstart" === a.type ? a.targetTouches[0].pageY : a.pageY; if (!(T.device.ios && T.params.iOSEdgeSwipeDetection && t <= T.params.iOSEdgeSwipeThreshold)) { if (S = !0, C = !1, z = !0, E = void 0, A = void 0, T.touches.startX = t, T.touches.startY = s, M = Date.now(), T.allowClick = !0, T.updateContainerSize(), T.swipeDirection = void 0, T.params.threshold > 0 && (k = !1), "touchstart" !== a.type) { var i = !0; e(a.target).is(B) && (i = !1), document.activeElement && e(document.activeElement).is(B) && document.activeElement.blur(), i && a.preventDefault() } T.emit("onTouchStart", T, a) } } } }, T.onTouchMove = function (a) { if (a.originalEvent && (a = a.originalEvent), !X || "mousemove" !== a.type) { if (a.preventedByNestedSwiper) return T.touches.startX = "touchmove" === a.type ? a.targetTouches[0].pageX : a.pageX, void (T.touches.startY = "touchmove" === a.type ? a.targetTouches[0].pageY : a.pageY); if (T.params.onlyExternal) return T.allowClick = !1, void (S && (T.touches.startX = T.touches.currentX = "touchmove" === a.type ? a.targetTouches[0].pageX : a.pageX, T.touches.startY = T.touches.currentY = "touchmove" === a.type ? a.targetTouches[0].pageY : a.pageY, M = Date.now())); if (X && T.params.touchReleaseOnEdges && !T.params.loop) if (T.isHorizontal()) { if (T.touches.currentX < T.touches.startX && T.translate <= T.maxTranslate() || T.touches.currentX > T.touches.startX && T.translate >= T.minTranslate()) return } else if (T.touches.currentY < T.touches.startY && T.translate <= T.maxTranslate() || T.touches.currentY > T.touches.startY && T.translate >= T.minTranslate()) return; if (X && document.activeElement && a.target === document.activeElement && e(a.target).is(B)) return C = !0, void (T.allowClick = !1); if (z && T.emit("onTouchMove", T, a), !(a.targetTouches && a.targetTouches.length > 1)) { if (T.touches.currentX = "touchmove" === a.type ? a.targetTouches[0].pageX : a.pageX, T.touches.currentY = "touchmove" === a.type ? a.targetTouches[0].pageY : a.pageY, void 0 === E) { var t; T.isHorizontal() && T.touches.currentY === T.touches.startY || !T.isHorizontal() && T.touches.currentX === T.touches.startX ? E = !1 : (t = 180 * Math.atan2(Math.abs(T.touches.currentY - T.touches.startY), Math.abs(T.touches.currentX - T.touches.startX)) / Math.PI, E = T.isHorizontal() ? t > T.params.touchAngle : 90 - t > T.params.touchAngle) } if (E && T.emit("onTouchMoveOpposite", T, a), void 0 === A && (T.touches.currentX === T.touches.startX && T.touches.currentY === T.touches.startY || (A = !0)), S) { if (E) return void (S = !1); if (A) { T.allowClick = !1, T.emit("onSliderMove", T, a), a.preventDefault(), T.params.touchMoveStopPropagation && !T.params.nested && a.stopPropagation(), C || (i.loop && T.fixLoop(), I = T.getWrapperTranslate(), T.setWrapperTransition(0), T.animating && T.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"), T.params.autoplay && T.autoplaying && (T.params.autoplayDisableOnInteraction ? T.stopAutoplay() : T.pauseAutoplay()), D = !1, !T.params.grabCursor || T.params.allowSwipeToNext !== !0 && T.params.allowSwipeToPrev !== !0 || T.setGrabCursor(!0)), C = !0; var s = T.touches.diff = T.isHorizontal() ? T.touches.currentX - T.touches.startX : T.touches.currentY - T.touches.startY; s *= T.params.touchRatio, T.rtl && (s = -s), T.swipeDirection = s > 0 ? "prev" : "next", P = s + I; var r = !0; if (s > 0 && P > T.minTranslate() ? (r = !1, T.params.resistance && (P = T.minTranslate() - 1 + Math.pow(-T.minTranslate() + I + s, T.params.resistanceRatio))) : s < 0 && P < T.maxTranslate() && (r = !1, T.params.resistance && (P = T.maxTranslate() + 1 - Math.pow(T.maxTranslate() - I - s, T.params.resistanceRatio))), r && (a.preventedByNestedSwiper = !0), !T.params.allowSwipeToNext && "next" === T.swipeDirection && P < I && (P = I), !T.params.allowSwipeToPrev && "prev" === T.swipeDirection && P > I && (P = I), T.params.threshold > 0) { if (!(Math.abs(s) > T.params.threshold || k)) return void (P = I); if (!k) return k = !0, T.touches.startX = T.touches.currentX, T.touches.startY = T.touches.currentY, P = I, void (T.touches.diff = T.isHorizontal() ? T.touches.currentX - T.touches.startX : T.touches.currentY - T.touches.startY) } T.params.followFinger && ((T.params.freeMode || T.params.watchSlidesProgress) && T.updateActiveIndex(), T.params.freeMode && (0 === G.length && G.push({ position: T.touches[T.isHorizontal() ? "startX" : "startY"], time: M }), G.push({ position: T.touches[T.isHorizontal() ? "currentX" : "currentY"], time: (new window.Date).getTime() })), T.updateProgress(P), T.setWrapperTranslate(P)) } } } } }, T.onTouchEnd = function (a) { if (a.originalEvent && (a = a.originalEvent), z && T.emit("onTouchEnd", T, a), z = !1, S) { T.params.grabCursor && C && S && (T.params.allowSwipeToNext === !0 || T.params.allowSwipeToPrev === !0) && T.setGrabCursor(!1); var t = Date.now(), s = t - M; if (T.allowClick && (T.updateClickedSlide(a), T.emit("onTap", T, a), s < 300 && t - H > 300 && (L && clearTimeout(L), L = setTimeout(function () { T && (T.params.paginationHide && T.paginationContainer.length > 0 && !e(a.target).hasClass(T.params.bulletClass) && T.paginationContainer.toggleClass(T.params.paginationHiddenClass), T.emit("onClick", T, a)) }, 300)), s < 300 && t - H < 300 && (L && clearTimeout(L), T.emit("onDoubleTap", T, a))), H = Date.now(), setTimeout(function () { T && (T.allowClick = !0) }, 0), !S || !C || !T.swipeDirection || 0 === T.touches.diff || P === I) return void (S = C = !1); S = C = !1; var i; if (i = T.params.followFinger ? T.rtl ? T.translate : -T.translate : -P, T.params.freeMode) { if (i < -T.minTranslate()) return void T.slideTo(T.activeIndex); if (i > -T.maxTranslate()) return void (T.slides.length < T.snapGrid.length ? T.slideTo(T.snapGrid.length - 1) : T.slideTo(T.slides.length - 1)); if (T.params.freeModeMomentum) { if (G.length > 1) { var r = G.pop(), n = G.pop(), o = r.position - n.position, l = r.time - n.time; T.velocity = o / l, T.velocity = T.velocity / 2, Math.abs(T.velocity) < T.params.freeModeMinimumVelocity && (T.velocity = 0), (l > 150 || (new window.Date).getTime() - r.time > 300) && (T.velocity = 0) } else T.velocity = 0; T.velocity = T.velocity * T.params.freeModeMomentumVelocityRatio, G.length = 0; var p = 1e3 * T.params.freeModeMomentumRatio, d = T.velocity * p, u = T.translate + d; T.rtl && (u = -u); var c, m = !1, h = 20 * Math.abs(T.velocity) * T.params.freeModeMomentumBounceRatio; if (u < T.maxTranslate()) T.params.freeModeMomentumBounce ? (u + T.maxTranslate() < -h && (u = T.maxTranslate() - h), c = T.maxTranslate(), m = !0, D = !0) : u = T.maxTranslate(); else if (u > T.minTranslate()) T.params.freeModeMomentumBounce ? (u - T.minTranslate() > h && (u = T.minTranslate() + h), c = T.minTranslate(), m = !0, D = !0) : u = T.minTranslate(); else if (T.params.freeModeSticky) { var g, f = 0; for (f = 0; f < T.snapGrid.length; f += 1)if (T.snapGrid[f] > -u) { g = f; break } u = Math.abs(T.snapGrid[g] - u) < Math.abs(T.snapGrid[g - 1] - u) || "next" === T.swipeDirection ? T.snapGrid[g] : T.snapGrid[g - 1], T.rtl || (u = -u) } if (0 !== T.velocity) p = T.rtl ? Math.abs((-u - T.translate) / T.velocity) : Math.abs((u - T.translate) / T.velocity); else if (T.params.freeModeSticky) return void T.slideReset(); T.params.freeModeMomentumBounce && m ? (T.updateProgress(c), T.setWrapperTransition(p), T.setWrapperTranslate(u), T.onTransitionStart(), T.animating = !0, T.wrapper.transitionEnd(function () { T && D && (T.emit("onMomentumBounce", T), T.setWrapperTransition(T.params.speed), T.setWrapperTranslate(c), T.wrapper.transitionEnd(function () { T && T.onTransitionEnd() })) })) : T.velocity ? (T.updateProgress(u), T.setWrapperTransition(p), T.setWrapperTranslate(u), T.onTransitionStart(), T.animating || (T.animating = !0, T.wrapper.transitionEnd(function () { T && T.onTransitionEnd() }))) : T.updateProgress(u), T.updateActiveIndex() } return void ((!T.params.freeModeMomentum || s >= T.params.longSwipesMs) && (T.updateProgress(), T.updateActiveIndex())) } var v, w = 0, y = T.slidesSizesGrid[0]; for (v = 0; v < T.slidesGrid.length; v += T.params.slidesPerGroup)void 0 !== T.slidesGrid[v + T.params.slidesPerGroup] ? i >= T.slidesGrid[v] && i < T.slidesGrid[v + T.params.slidesPerGroup] && (w = v, y = T.slidesGrid[v + T.params.slidesPerGroup] - T.slidesGrid[v]) : i >= T.slidesGrid[v] && (w = v, y = T.slidesGrid[T.slidesGrid.length - 1] - T.slidesGrid[T.slidesGrid.length - 2]); var x = (i - T.slidesGrid[w]) / y; if (s > T.params.longSwipesMs) { if (!T.params.longSwipes) return void T.slideTo(T.activeIndex); "next" === T.swipeDirection && (x >= T.params.longSwipesRatio ? T.slideTo(w + T.params.slidesPerGroup) : T.slideTo(w)), "prev" === T.swipeDirection && (x > 1 - T.params.longSwipesRatio ? T.slideTo(w + T.params.slidesPerGroup) : T.slideTo(w)) } else { if (!T.params.shortSwipes) return void T.slideTo(T.activeIndex); "next" === T.swipeDirection && T.slideTo(w + T.params.slidesPerGroup), "prev" === T.swipeDirection && T.slideTo(w) } } }, T._slideTo = function (e, a) { return T.slideTo(e, a, !0, !0) }, T.slideTo = function (e, a, t, s) { void 0 === t && (t = !0), void 0 === e && (e = 0), e < 0 && (e = 0), T.snapIndex = Math.floor(e / T.params.slidesPerGroup), T.snapIndex >= T.snapGrid.length && (T.snapIndex = T.snapGrid.length - 1); var i = -T.snapGrid[T.snapIndex]; if (T.params.autoplay && T.autoplaying && (s || !T.params.autoplayDisableOnInteraction ? T.pauseAutoplay(a) : T.stopAutoplay()), T.updateProgress(i), T.params.normalizeSlideIndex) for (var r = 0; r < T.slidesGrid.length; r++)-Math.floor(100 * i) >= Math.floor(100 * T.slidesGrid[r]) && (e = r); return !(!T.params.allowSwipeToNext && i < T.translate && i < T.minTranslate()) && (!(!T.params.allowSwipeToPrev && i > T.translate && i > T.maxTranslate() && (T.activeIndex || 0) !== e) && (void 0 === a && (a = T.params.speed), T.previousIndex = T.activeIndex || 0, T.activeIndex = e, T.updateRealIndex(), T.rtl && -i === T.translate || !T.rtl && i === T.translate ? (T.params.autoHeight && T.updateAutoHeight(), T.updateClasses(), "slide" !== T.params.effect && T.setWrapperTranslate(i), !1) : (T.updateClasses(), T.onTransitionStart(t), 0 === a || T.browser.lteIE9 ? (T.setWrapperTranslate(i), T.setWrapperTransition(0), T.onTransitionEnd(t)) : (T.setWrapperTranslate(i), T.setWrapperTransition(a), T.animating || (T.animating = !0, T.wrapper.transitionEnd(function () { T && T.onTransitionEnd(t) }))), !0))) }, T.onTransitionStart = function (e) { void 0 === e && (e = !0), T.params.autoHeight && T.updateAutoHeight(), T.lazy && T.lazy.onTransitionStart(), e && (T.emit("onTransitionStart", T), T.activeIndex !== T.previousIndex && (T.emit("onSlideChangeStart", T), T.activeIndex > T.previousIndex ? T.emit("onSlideNextStart", T) : T.emit("onSlidePrevStart", T))) }, T.onTransitionEnd = function (e) { T.animating = !1, T.setWrapperTransition(0), void 0 === e && (e = !0), T.lazy && T.lazy.onTransitionEnd(), e && (T.emit("onTransitionEnd", T), T.activeIndex !== T.previousIndex && (T.emit("onSlideChangeEnd", T), T.activeIndex > T.previousIndex ? T.emit("onSlideNextEnd", T) : T.emit("onSlidePrevEnd", T))), T.params.history && T.history && T.history.setHistory(T.params.history, T.activeIndex), T.params.hashnav && T.hashnav && T.hashnav.setHash() }, T.slideNext = function (e, a, t) { if (T.params.loop) { if (T.animating) return !1; T.fixLoop(); T.container[0].clientLeft; return T.slideTo(T.activeIndex + T.params.slidesPerGroup, a, e, t) } return T.slideTo(T.activeIndex + T.params.slidesPerGroup, a, e, t) }, T._slideNext = function (e) { return T.slideNext(!0, e, !0) }, T.slidePrev = function (e, a, t) { if (T.params.loop) { if (T.animating) return !1; T.fixLoop(); T.container[0].clientLeft; return T.slideTo(T.activeIndex - 1, a, e, t) } return T.slideTo(T.activeIndex - 1, a, e, t) }, T._slidePrev = function (e) { return T.slidePrev(!0, e, !0) }, T.slideReset = function (e, a, t) { return T.slideTo(T.activeIndex, a, e) }, T.disableTouchControl = function () { return T.params.onlyExternal = !0, !0 }, T.enableTouchControl = function () { return T.params.onlyExternal = !1, !0 }, T.setWrapperTransition = function (e, a) { T.wrapper.transition(e), "slide" !== T.params.effect && T.effects[T.params.effect] && T.effects[T.params.effect].setTransition(e), T.params.parallax && T.parallax && T.parallax.setTransition(e), T.params.scrollbar && T.scrollbar && T.scrollbar.setTransition(e), T.params.control && T.controller && T.controller.setTransition(e, a), T.emit("onSetTransition", T, e) }, T.setWrapperTranslate = function (e, a, t) { var s = 0, i = 0; T.isHorizontal() ? s = T.rtl ? -e : e : i = e, T.params.roundLengths && (s = r(s), i = r(i)), T.params.virtualTranslate || (T.support.transforms3d ? T.wrapper.transform("translate3d(" + s + "px, " + i + "px, 0px)") : T.wrapper.transform("translate(" + s + "px, " + i + "px)")), T.translate = T.isHorizontal() ? s : i; var n, o = T.maxTranslate() - T.minTranslate(); n = 0 === o ? 0 : (e - T.minTranslate()) / o, n !== T.progress && T.updateProgress(e), a && T.updateActiveIndex(), "slide" !== T.params.effect && T.effects[T.params.effect] && T.effects[T.params.effect].setTranslate(T.translate), T.params.parallax && T.parallax && T.parallax.setTranslate(T.translate), T.params.scrollbar && T.scrollbar && T.scrollbar.setTranslate(T.translate), T.params.control && T.controller && T.controller.setTranslate(T.translate, t), T.emit("onSetTranslate", T, T.translate) }, T.getTranslate = function (e, a) { var t, s, i, r; return void 0 === a && (a = "x"), T.params.virtualTranslate ? T.rtl ? -T.translate : T.translate : (i = window.getComputedStyle(e, null), window.WebKitCSSMatrix ? (s = i.transform || i.webkitTransform, s.split(",").length > 6 && (s = s.split(", ").map(function (e) { return e.replace(",", ".") }).join(", ")), r = new window.WebKitCSSMatrix("none" === s ? "" : s)) : (r = i.MozTransform || i.OTransform || i.MsTransform || i.msTransform || i.transform || i.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,"), t = r.toString().split(",")), "x" === a && (s = window.WebKitCSSMatrix ? r.m41 : 16 === t.length ? parseFloat(t[12]) : parseFloat(t[4])), "y" === a && (s = window.WebKitCSSMatrix ? r.m42 : 16 === t.length ? parseFloat(t[13]) : parseFloat(t[5])), T.rtl && s && (s = -s), s || 0) }, T.getWrapperTranslate = function (e) { return void 0 === e && (e = T.isHorizontal() ? "x" : "y"), T.getTranslate(T.wrapper[0], e) }, T.observers = [], T.initObservers = function () { if (T.params.observeParents) for (var e = T.container.parents(), a = 0; a < e.length; a++)l(e[a]); l(T.container[0], { childList: !1 }), l(T.wrapper[0], { attributes: !1 }) }, T.disconnectObservers = function () { for (var e = 0; e < T.observers.length; e++)T.observers[e].disconnect(); T.observers = [] }, T.createLoop = function () { T.wrapper.children("." + T.params.slideClass + "." + T.params.slideDuplicateClass).remove(); var a = T.wrapper.children("." + T.params.slideClass); "auto" !== T.params.slidesPerView || T.params.loopedSlides || (T.params.loopedSlides = a.length), T.loopedSlides = parseInt(T.params.loopedSlides || T.params.slidesPerView, 10), T.loopedSlides = T.loopedSlides + T.params.loopAdditionalSlides, T.loopedSlides > a.length && (T.loopedSlides = a.length); var t, s = [], i = []; for (a.each(function (t, r) { var n = e(this); t < T.loopedSlides && i.push(r), t < a.length && t >= a.length - T.loopedSlides && s.push(r), n.attr("data-swiper-slide-index", t) }), t = 0; t < i.length; t++)T.wrapper.append(e(i[t].cloneNode(!0)).addClass(T.params.slideDuplicateClass)); for (t = s.length - 1; t >= 0; t--)T.wrapper.prepend(e(s[t].cloneNode(!0)).addClass(T.params.slideDuplicateClass)) }, T.destroyLoop = function () { T.wrapper.children("." + T.params.slideClass + "." + T.params.slideDuplicateClass).remove(), T.slides.removeAttr("data-swiper-slide-index") }, T.reLoop = function (e) { var a = T.activeIndex - T.loopedSlides; T.destroyLoop(), T.createLoop(), T.updateSlidesSize(), e && T.slideTo(a + T.loopedSlides, 0, !1) }, T.fixLoop = function () { var e; T.activeIndex < T.loopedSlides ? (e = T.slides.length - 3 * T.loopedSlides + T.activeIndex, e += T.loopedSlides, T.slideTo(e, 0, !1, !0)) : ("auto" === T.params.slidesPerView && T.activeIndex >= 2 * T.loopedSlides || T.activeIndex > T.slides.length - 2 * T.params.slidesPerView) && (e = -T.slides.length + T.activeIndex + T.loopedSlides, e += T.loopedSlides, T.slideTo(e, 0, !1, !0)) }, T.appendSlide = function (e) { if (T.params.loop && T.destroyLoop(), "object" == typeof e && e.length) for (var a = 0; a < e.length; a++)e[a] && T.wrapper.append(e[a]); else T.wrapper.append(e); T.params.loop && T.createLoop(), T.params.observer && T.support.observer || T.update(!0) }, T.prependSlide = function (e) { T.params.loop && T.destroyLoop(); var a = T.activeIndex + 1; if ("object" == typeof e && e.length) { for (var t = 0; t < e.length; t++)e[t] && T.wrapper.prepend(e[t]); a = T.activeIndex + e.length } else T.wrapper.prepend(e); T.params.loop && T.createLoop(), T.params.observer && T.support.observer || T.update(!0), T.slideTo(a, 0, !1) }, T.removeSlide = function (e) { T.params.loop && (T.destroyLoop(), T.slides = T.wrapper.children("." + T.params.slideClass)); var a, t = T.activeIndex; if ("object" == typeof e && e.length) { for (var s = 0; s < e.length; s++)a = e[s], T.slides[a] && T.slides.eq(a).remove(), a < t && t--; t = Math.max(t, 0) } else a = e, T.slides[a] && T.slides.eq(a).remove(), a < t && t--, t = Math.max(t, 0); T.params.loop && T.createLoop(), T.params.observer && T.support.observer || T.update(!0), T.params.loop ? T.slideTo(t + T.loopedSlides, 0, !1) : T.slideTo(t, 0, !1) }, T.removeAllSlides = function () { for (var e = [], a = 0; a < T.slides.length; a++)e.push(a); T.removeSlide(e) }, T.effects = { fade: { setTranslate: function () { for (var e = 0; e < T.slides.length; e++) { var a = T.slides.eq(e), t = a[0].swiperSlideOffset, s = -t; T.params.virtualTranslate || (s -= T.translate); var i = 0; T.isHorizontal() || (i = s, s = 0); var r = T.params.fade.crossFade ? Math.max(1 - Math.abs(a[0].progress), 0) : 1 + Math.min(Math.max(a[0].progress, -1), 0); a.css({ opacity: r }).transform("translate3d(" + s + "px, " + i + "px, 0px)") } }, setTransition: function (e) { if (T.slides.transition(e), T.params.virtualTranslate && 0 !== e) { var a = !1; T.slides.transitionEnd(function () { if (!a && T) { a = !0, T.animating = !1; for (var e = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], t = 0; t < e.length; t++)T.wrapper.trigger(e[t]) } }) } } }, flip: { setTranslate: function () { for (var a = 0; a < T.slides.length; a++) { var t = T.slides.eq(a), s = t[0].progress; T.params.flip.limitRotation && (s = Math.max(Math.min(t[0].progress, 1), -1)); var i = t[0].swiperSlideOffset, r = -180 * s, n = r, o = 0, l = -i, p = 0; if (T.isHorizontal() ? T.rtl && (n = -n) : (p = l, l = 0, o = -n, n = 0), t[0].style.zIndex = -Math.abs(Math.round(s)) + T.slides.length, T.params.flip.slideShadows) { var d = T.isHorizontal() ? t.find(".swiper-slide-shadow-left") : t.find(".swiper-slide-shadow-top"), u = T.isHorizontal() ? t.find(".swiper-slide-shadow-right") : t.find(".swiper-slide-shadow-bottom"); 0 === d.length && (d = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "left" : "top") + '"></div>'), t.append(d)), 0 === u.length && (u = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "right" : "bottom") + '"></div>'), t.append(u)), d.length && (d[0].style.opacity = Math.max(-s, 0)), u.length && (u[0].style.opacity = Math.max(s, 0)) } t.transform("translate3d(" + l + "px, " + p + "px, 0px) rotateX(" + o + "deg) rotateY(" + n + "deg)") } }, setTransition: function (a) { if (T.slides.transition(a).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(a), T.params.virtualTranslate && 0 !== a) { var t = !1; T.slides.eq(T.activeIndex).transitionEnd(function () { if (!t && T && e(this).hasClass(T.params.slideActiveClass)) { t = !0, T.animating = !1; for (var a = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], s = 0; s < a.length; s++)T.wrapper.trigger(a[s]) } }) } } }, cube: { setTranslate: function () { var a, t = 0; T.params.cube.shadow && (T.isHorizontal() ? (a = T.wrapper.find(".swiper-cube-shadow"), 0 === a.length && (a = e('<div class="swiper-cube-shadow"></div>'), T.wrapper.append(a)), a.css({ height: T.width + "px" })) : (a = T.container.find(".swiper-cube-shadow"), 0 === a.length && (a = e('<div class="swiper-cube-shadow"></div>'), T.container.append(a)))); for (var s = 0; s < T.slides.length; s++) { var i = T.slides.eq(s), r = 90 * s, n = Math.floor(r / 360); T.rtl && (r = -r, n = Math.floor(-r / 360)); var o = Math.max(Math.min(i[0].progress, 1), -1), l = 0, p = 0, d = 0; s % 4 == 0 ? (l = 4 * -n * T.size, d = 0) : (s - 1) % 4 == 0 ? (l = 0, d = 4 * -n * T.size) : (s - 2) % 4 == 0 ? (l = T.size + 4 * n * T.size, d = T.size) : (s - 3) % 4 == 0 && (l = -T.size, d = 3 * T.size + 4 * T.size * n), T.rtl && (l = -l), T.isHorizontal() || (p = l, l = 0); var u = "rotateX(" + (T.isHorizontal() ? 0 : -r) + "deg) rotateY(" + (T.isHorizontal() ? r : 0) + "deg) translate3d(" + l + "px, " + p + "px, " + d + "px)"; if (o <= 1 && o > -1 && (t = 90 * s + 90 * o, T.rtl && (t = 90 * -s - 90 * o)), i.transform(u), T.params.cube.slideShadows) { var c = T.isHorizontal() ? i.find(".swiper-slide-shadow-left") : i.find(".swiper-slide-shadow-top"), m = T.isHorizontal() ? i.find(".swiper-slide-shadow-right") : i.find(".swiper-slide-shadow-bottom"); 0 === c.length && (c = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "left" : "top") + '"></div>'), i.append(c)), 0 === m.length && (m = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "right" : "bottom") + '"></div>'), i.append(m)), c.length && (c[0].style.opacity = Math.max(-o, 0)), m.length && (m[0].style.opacity = Math.max(o, 0)) } } if (T.wrapper.css({ "-webkit-transform-origin": "50% 50% -" + T.size / 2 + "px", "-moz-transform-origin": "50% 50% -" + T.size / 2 + "px", "-ms-transform-origin": "50% 50% -" + T.size / 2 + "px", "transform-origin": "50% 50% -" + T.size / 2 + "px" }), T.params.cube.shadow) if (T.isHorizontal()) a.transform("translate3d(0px, " + (T.width / 2 + T.params.cube.shadowOffset) + "px, " + -T.width / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + T.params.cube.shadowScale + ")"); else { var h = Math.abs(t) - 90 * Math.floor(Math.abs(t) / 90), g = 1.5 - (Math.sin(2 * h * Math.PI / 360) / 2 + Math.cos(2 * h * Math.PI / 360) / 2), f = T.params.cube.shadowScale, v = T.params.cube.shadowScale / g, w = T.params.cube.shadowOffset; a.transform("scale3d(" + f + ", 1, " + v + ") translate3d(0px, " + (T.height / 2 + w) + "px, " + -T.height / 2 / v + "px) rotateX(-90deg)") } var y = T.isSafari || T.isUiWebView ? -T.size / 2 : 0; T.wrapper.transform("translate3d(0px,0," + y + "px) rotateX(" + (T.isHorizontal() ? 0 : t) + "deg) rotateY(" + (T.isHorizontal() ? -t : 0) + "deg)") }, setTransition: function (e) { T.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), T.params.cube.shadow && !T.isHorizontal() && T.container.find(".swiper-cube-shadow").transition(e) } }, coverflow: { setTranslate: function () { for (var a = T.translate, t = T.isHorizontal() ? -a + T.width / 2 : -a + T.height / 2, s = T.isHorizontal() ? T.params.coverflow.rotate : -T.params.coverflow.rotate, i = T.params.coverflow.depth, r = 0, n = T.slides.length; r < n; r++) { var o = T.slides.eq(r), l = T.slidesSizesGrid[r], p = o[0].swiperSlideOffset, d = (t - p - l / 2) / l * T.params.coverflow.modifier, u = T.isHorizontal() ? s * d : 0, c = T.isHorizontal() ? 0 : s * d, m = -i * Math.abs(d), h = T.isHorizontal() ? 0 : T.params.coverflow.stretch * d, g = T.isHorizontal() ? T.params.coverflow.stretch * d : 0; Math.abs(g) < .001 && (g = 0), Math.abs(h) < .001 && (h = 0), Math.abs(m) < .001 && (m = 0), Math.abs(u) < .001 && (u = 0), Math.abs(c) < .001 && (c = 0); var f = "translate3d(" + g + "px," + h + "px," + m + "px) rotateX(" + c + "deg) rotateY(" + u + "deg)"; if (o.transform(f), o[0].style.zIndex = 1 - Math.abs(Math.round(d)), T.params.coverflow.slideShadows) { var v = T.isHorizontal() ? o.find(".swiper-slide-shadow-left") : o.find(".swiper-slide-shadow-top"), w = T.isHorizontal() ? o.find(".swiper-slide-shadow-right") : o.find(".swiper-slide-shadow-bottom"); 0 === v.length && (v = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "left" : "top") + '"></div>'), o.append(v)), 0 === w.length && (w = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "right" : "bottom") + '"></div>'), o.append(w)), v.length && (v[0].style.opacity = d > 0 ? d : 0), w.length && (w[0].style.opacity = -d > 0 ? -d : 0) } } if (T.browser.ie) { T.wrapper[0].style.perspectiveOrigin = t + "px 50%" } }, setTransition: function (e) { T.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e) } } }, T.lazy = { initialImageLoaded: !1, loadImageInSlide: function (a, t) { if (void 0 !== a && (void 0 === t && (t = !0), 0 !== T.slides.length)) { var s = T.slides.eq(a), i = s.find("." + T.params.lazyLoadingClass + ":not(." + T.params.lazyStatusLoadedClass + "):not(." + T.params.lazyStatusLoadingClass + ")"); !s.hasClass(T.params.lazyLoadingClass) || s.hasClass(T.params.lazyStatusLoadedClass) || s.hasClass(T.params.lazyStatusLoadingClass) || (i = i.add(s[0])), 0 !== i.length && i.each(function () { var a = e(this); a.addClass(T.params.lazyStatusLoadingClass); var i = a.attr("data-background"), r = a.attr("data-src"), n = a.attr("data-srcset"), o = a.attr("data-sizes"); T.loadImage(a[0], r || i, n, o, !1, function () { if (void 0 !== T && null !== T && T) { if (i ? (a.css("background-image", 'url("' + i + '")'), a.removeAttr("data-background")) : (n && (a.attr("srcset", n), a.removeAttr("data-srcset")), o && (a.attr("sizes", o), a.removeAttr("data-sizes")), r && (a.attr("src", r), a.removeAttr("data-src"))), a.addClass(T.params.lazyStatusLoadedClass).removeClass(T.params.lazyStatusLoadingClass), s.find("." + T.params.lazyPreloaderClass + ", ." + T.params.preloaderClass).remove(), T.params.loop && t) { var e = s.attr("data-swiper-slide-index"); if (s.hasClass(T.params.slideDuplicateClass)) { var l = T.wrapper.children('[data-swiper-slide-index="' + e + '"]:not(.' + T.params.slideDuplicateClass + ")"); T.lazy.loadImageInSlide(l.index(), !1) } else { var p = T.wrapper.children("." + T.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]'); T.lazy.loadImageInSlide(p.index(), !1) } } T.emit("onLazyImageReady", T, s[0], a[0]) } }), T.emit("onLazyImageLoad", T, s[0], a[0]) }) } }, load: function () { var a, t = T.params.slidesPerView; if ("auto" === t && (t = 0), T.lazy.initialImageLoaded || (T.lazy.initialImageLoaded = !0), T.params.watchSlidesVisibility) T.wrapper.children("." + T.params.slideVisibleClass).each(function () { T.lazy.loadImageInSlide(e(this).index()) }); else if (t > 1) for (a = T.activeIndex; a < T.activeIndex + t; a++)T.slides[a] && T.lazy.loadImageInSlide(a); else T.lazy.loadImageInSlide(T.activeIndex); if (T.params.lazyLoadingInPrevNext) if (t > 1 || T.params.lazyLoadingInPrevNextAmount && T.params.lazyLoadingInPrevNextAmount > 1) { var s = T.params.lazyLoadingInPrevNextAmount, i = t, r = Math.min(T.activeIndex + i + Math.max(s, i), T.slides.length), n = Math.max(T.activeIndex - Math.max(i, s), 0); for (a = T.activeIndex + t; a < r; a++)T.slides[a] && T.lazy.loadImageInSlide(a); for (a = n; a < T.activeIndex; a++)T.slides[a] && T.lazy.loadImageInSlide(a) } else { var o = T.wrapper.children("." + T.params.slideNextClass); o.length > 0 && T.lazy.loadImageInSlide(o.index()); var l = T.wrapper.children("." + T.params.slidePrevClass); l.length > 0 && T.lazy.loadImageInSlide(l.index()) } }, onTransitionStart: function () { T.params.lazyLoading && (T.params.lazyLoadingOnTransitionStart || !T.params.lazyLoadingOnTransitionStart && !T.lazy.initialImageLoaded) && T.lazy.load() }, onTransitionEnd: function () { T.params.lazyLoading && !T.params.lazyLoadingOnTransitionStart && T.lazy.load() } }, T.scrollbar = { isTouched: !1, setDragPosition: function (e) { var a = T.scrollbar, t = T.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX || e.clientX : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY || e.clientY, s = t - a.track.offset()[T.isHorizontal() ? "left" : "top"] - a.dragSize / 2, i = -T.minTranslate() * a.moveDivider, r = -T.maxTranslate() * a.moveDivider; s < i ? s = i : s > r && (s = r), s = -s / a.moveDivider, T.updateProgress(s), T.setWrapperTranslate(s, !0) }, dragStart: function (e) { var a = T.scrollbar; a.isTouched = !0, e.preventDefault(), e.stopPropagation(), a.setDragPosition(e), clearTimeout(a.dragTimeout), a.track.transition(0), T.params.scrollbarHide && a.track.css("opacity", 1), T.wrapper.transition(100), a.drag.transition(100), T.emit("onScrollbarDragStart", T) }, dragMove: function (e) { var a = T.scrollbar; a.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1, a.setDragPosition(e), T.wrapper.transition(0), a.track.transition(0), a.drag.transition(0), T.emit("onScrollbarDragMove", T)) }, dragEnd: function (e) { var a = T.scrollbar; a.isTouched && (a.isTouched = !1, T.params.scrollbarHide && (clearTimeout(a.dragTimeout), a.dragTimeout = setTimeout(function () { a.track.css("opacity", 0), a.track.transition(400) }, 1e3)), T.emit("onScrollbarDragEnd", T), T.params.scrollbarSnapOnRelease && T.slideReset()) }, draggableEvents: function () { return T.params.simulateTouch !== !1 || T.support.touch ? T.touchEvents : T.touchEventsDesktop }(), enableDraggable: function () { var a = T.scrollbar, t = T.support.touch ? a.track : document; e(a.track).on(a.draggableEvents.start, a.dragStart), e(t).on(a.draggableEvents.move, a.dragMove), e(t).on(a.draggableEvents.end, a.dragEnd) }, disableDraggable: function () { var a = T.scrollbar, t = T.support.touch ? a.track : document; e(a.track).off(a.draggableEvents.start, a.dragStart), e(t).off(a.draggableEvents.move, a.dragMove), e(t).off(a.draggableEvents.end, a.dragEnd) }, set: function () { if (T.params.scrollbar) { var a = T.scrollbar; a.track = e(T.params.scrollbar), T.params.uniqueNavElements && "string" == typeof T.params.scrollbar && a.track.length > 1 && 1 === T.container.find(T.params.scrollbar).length && (a.track = T.container.find(T.params.scrollbar)), a.drag = a.track.find(".swiper-scrollbar-drag"), 0 === a.drag.length && (a.drag = e('<div class="swiper-scrollbar-drag"></div>'), a.track.append(a.drag)), a.drag[0].style.width = "", a.drag[0].style.height = "", a.trackSize = T.isHorizontal() ? a.track[0].offsetWidth : a.track[0].offsetHeight, a.divider = T.size / T.virtualSize, a.moveDivider = a.divider * (a.trackSize / T.size), a.dragSize = a.trackSize * a.divider, T.isHorizontal() ? a.drag[0].style.width = a.dragSize + "px" : a.drag[0].style.height = a.dragSize + "px", a.divider >= 1 ? a.track[0].style.display = "none" : a.track[0].style.display = "", T.params.scrollbarHide && (a.track[0].style.opacity = 0) } }, setTranslate: function () { if (T.params.scrollbar) { var e, a = T.scrollbar, t = (T.translate, a.dragSize); e = (a.trackSize - a.dragSize) * T.progress, T.rtl && T.isHorizontal() ? (e = -e, e > 0 ? (t = a.dragSize - e, e = 0) : -e + a.dragSize > a.trackSize && (t = a.trackSize + e)) : e < 0 ? (t = a.dragSize + e, e = 0) : e + a.dragSize > a.trackSize && (t = a.trackSize - e), T.isHorizontal() ? (T.support.transforms3d ? a.drag.transform("translate3d(" + e + "px, 0, 0)") : a.drag.transform("translateX(" + e + "px)"), a.drag[0].style.width = t + "px") : (T.support.transforms3d ? a.drag.transform("translate3d(0px, " + e + "px, 0)") : a.drag.transform("translateY(" + e + "px)"), a.drag[0].style.height = t + "px"), T.params.scrollbarHide && (clearTimeout(a.timeout), a.track[0].style.opacity = 1, a.timeout = setTimeout(function () { a.track[0].style.opacity = 0, a.track.transition(400) }, 1e3)) } }, setTransition: function (e) { T.params.scrollbar && T.scrollbar.drag.transition(e) } }, T.controller = { LinearSpline: function (e, a) { var t = function () { var e, a, t; return function (s, i) { for (a = -1, e = s.length; e - a > 1;)s[t = e + a >> 1] <= i ? a = t : e = t; return e } }(); this.x = e, this.y = a, this.lastIndex = e.length - 1; var s, i; this.x.length; this.interpolate = function (e) { return e ? (i = t(this.x, e), s = i - 1, (e - this.x[s]) * (this.y[i] - this.y[s]) / (this.x[i] - this.x[s]) + this.y[s]) : 0 } }, getInterpolateFunction: function (e) { T.controller.spline || (T.controller.spline = T.params.loop ? new T.controller.LinearSpline(T.slidesGrid, e.slidesGrid) : new T.controller.LinearSpline(T.snapGrid, e.snapGrid)) }, setTranslate: function (e, t) { function s(a) { e = a.rtl && "horizontal" === a.params.direction ? -T.translate : T.translate, "slide" === T.params.controlBy && (T.controller.getInterpolateFunction(a), r = -T.controller.spline.interpolate(-e)), r && "container" !== T.params.controlBy || (i = (a.maxTranslate() - a.minTranslate()) / (T.maxTranslate() - T.minTranslate()), r = (e - T.minTranslate()) * i + a.minTranslate()), T.params.controlInverse && (r = a.maxTranslate() - r), a.updateProgress(r), a.setWrapperTranslate(r, !1, T), a.updateActiveIndex() } var i, r, n = T.params.control; if (Array.isArray(n)) for (var o = 0; o < n.length; o++)n[o] !== t && n[o] instanceof a && s(n[o]); else n instanceof a && t !== n && s(n) }, setTransition: function (e, t) { function s(a) { a.setWrapperTransition(e, T), 0 !== e && (a.onTransitionStart(), a.wrapper.transitionEnd(function () { r && (a.params.loop && "slide" === T.params.controlBy && a.fixLoop(), a.onTransitionEnd()) })) } var i, r = T.params.control; if (Array.isArray(r)) for (i = 0; i < r.length; i++)r[i] !== t && r[i] instanceof a && s(r[i]); else r instanceof a && t !== r && s(r) } }, T.hashnav = { onHashCange: function (e, a) { var t = document.location.hash.replace("#", ""); t !== T.slides.eq(T.activeIndex).attr("data-hash") && T.slideTo(T.wrapper.children("." + T.params.slideClass + '[data-hash="' + t + '"]').index()) }, attachEvents: function (a) { var t = a ? "off" : "on"; e(window)[t]("hashchange", T.hashnav.onHashCange) }, setHash: function () { if (T.hashnav.initialized && T.params.hashnav) if (T.params.replaceState && window.history && window.history.replaceState) window.history.replaceState(null, null, "#" + T.slides.eq(T.activeIndex).attr("data-hash") || ""); else { var e = T.slides.eq(T.activeIndex), a = e.attr("data-hash") || e.attr("data-history"); document.location.hash = a || "" } }, init: function () { if (T.params.hashnav && !T.params.history) { T.hashnav.initialized = !0; var e = document.location.hash.replace("#", ""); if (e) for (var a = 0, t = T.slides.length; a < t; a++) { var s = T.slides.eq(a), i = s.attr("data-hash") || s.attr("data-history"); if (i === e && !s.hasClass(T.params.slideDuplicateClass)) { var r = s.index(); T.slideTo(r, 0, T.params.runCallbacksOnInit, !0) } } T.params.hashnavWatchState && T.hashnav.attachEvents() } }, destroy: function () { T.params.hashnavWatchState && T.hashnav.attachEvents(!0) } }, T.history = { init: function () { if (T.params.history) { if (!window.history || !window.history.pushState) return T.params.history = !1, void (T.params.hashnav = !0); T.history.initialized = !0, this.paths = this.getPathValues(), (this.paths.key || this.paths.value) && (this.scrollToSlide(0, this.paths.value, T.params.runCallbacksOnInit), T.params.replaceState || window.addEventListener("popstate", this.setHistoryPopState)) } }, setHistoryPopState: function () { T.history.paths = T.history.getPathValues(), T.history.scrollToSlide(T.params.speed, T.history.paths.value, !1) }, getPathValues: function () { var e = window.location.pathname.slice(1).split("/"), a = e.length; return { key: e[a - 2], value: e[a - 1] } }, setHistory: function (e, a) { if (T.history.initialized && T.params.history) { var t = T.slides.eq(a), s = this.slugify(t.attr("data-history")); window.location.pathname.includes(e) || (s = e + "/" + s), T.params.replaceState ? window.history.replaceState(null, null, s) : window.history.pushState(null, null, s) } }, slugify: function (e) { return e.toString().toLowerCase().replace(/\s+/g, "-").replace(/[^\w\-]+/g, "").replace(/\-\-+/g, "-").replace(/^-+/, "").replace(/-+$/, "") }, scrollToSlide: function (e, a, t) { if (a) for (var s = 0, i = T.slides.length; s < i; s++) { var r = T.slides.eq(s), n = this.slugify(r.attr("data-history")); if (n === a && !r.hasClass(T.params.slideDuplicateClass)) { var o = r.index(); T.slideTo(o, e, t) } } else T.slideTo(0, e, t) } }, T.disableKeyboardControl = function () { T.params.keyboardControl = !1, e(document).off("keydown", p) }, T.enableKeyboardControl = function () { T.params.keyboardControl = !0, e(document).on("keydown", p) }, T.mousewheel = { event: !1, lastScrollTime: (new window.Date).getTime() }, T.params.mousewheelControl && (T.mousewheel.event = navigator.userAgent.indexOf("firefox") > -1 ? "DOMMouseScroll" : function () { var e = "onwheel" in document; if (!e) { var a = document.createElement("div"); a.setAttribute("onwheel", "return;"), e = "function" == typeof a.onwheel } return !e && document.implementation && document.implementation.hasFeature && document.implementation.hasFeature("", "") !== !0 && (e = document.implementation.hasFeature("Events.wheel", "3.0")), e }() ? "wheel" : "mousewheel"), T.disableMousewheelControl = function () { if (!T.mousewheel.event) return !1; var a = T.container; return "container" !== T.params.mousewheelEventsTarged && (a = e(T.params.mousewheelEventsTarged)), a.off(T.mousewheel.event, u), T.params.mousewheelControl = !1, !0 }, T.enableMousewheelControl = function () { if (!T.mousewheel.event) return !1; var a = T.container; return "container" !== T.params.mousewheelEventsTarged && (a = e(T.params.mousewheelEventsTarged)), a.on(T.mousewheel.event, u), T.params.mousewheelControl = !0, !0 }, T.parallax = { setTranslate: function () { T.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function () { c(this, T.progress) }), T.slides.each(function () { var a = e(this); a.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function () { c(this, Math.min(Math.max(a[0].progress, -1), 1)) }) }) }, setTransition: function (a) { void 0 === a && (a = T.params.speed), T.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function () { var t = e(this), s = parseInt(t.attr("data-swiper-parallax-duration"), 10) || a; 0 === a && (s = 0), t.transition(s) }) } }, T.zoom = { scale: 1, currentScale: 1, isScaling: !1, gesture: { slide: void 0, slideWidth: void 0, slideHeight: void 0, image: void 0, imageWrap: void 0, zoomMax: T.params.zoomMax }, image: { isTouched: void 0, isMoved: void 0, currentX: void 0, currentY: void 0, minX: void 0, minY: void 0, maxX: void 0, maxY: void 0, width: void 0, height: void 0, startX: void 0, startY: void 0, touchesStart: {}, touchesCurrent: {} }, velocity: { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0 }, getDistanceBetweenTouches: function (e) { if (e.targetTouches.length < 2) return 1; var a = e.targetTouches[0].pageX, t = e.targetTouches[0].pageY, s = e.targetTouches[1].pageX, i = e.targetTouches[1].pageY; return Math.sqrt(Math.pow(s - a, 2) + Math.pow(i - t, 2)) }, onGestureStart: function (a) { var t = T.zoom; if (!T.support.gestures) { if ("touchstart" !== a.type || "touchstart" === a.type && a.targetTouches.length < 2) return; t.gesture.scaleStart = t.getDistanceBetweenTouches(a) } if (!(t.gesture.slide && t.gesture.slide.length || (t.gesture.slide = e(this), 0 === t.gesture.slide.length && (t.gesture.slide = T.slides.eq(T.activeIndex)), t.gesture.image = t.gesture.slide.find("img, svg, canvas"), t.gesture.imageWrap = t.gesture.image.parent("." + T.params.zoomContainerClass), t.gesture.zoomMax = t.gesture.imageWrap.attr("data-swiper-zoom") || T.params.zoomMax, 0 !== t.gesture.imageWrap.length))) return void (t.gesture.image = void 0); t.gesture.image.transition(0), t.isScaling = !0 }, onGestureChange: function (e) { var a = T.zoom; if (!T.support.gestures) { if ("touchmove" !== e.type || "touchmove" === e.type && e.targetTouches.length < 2) return; a.gesture.scaleMove = a.getDistanceBetweenTouches(e) } a.gesture.image && 0 !== a.gesture.image.length && (T.support.gestures ? a.scale = e.scale * a.currentScale : a.scale = a.gesture.scaleMove / a.gesture.scaleStart * a.currentScale, a.scale > a.gesture.zoomMax && (a.scale = a.gesture.zoomMax - 1 + Math.pow(a.scale - a.gesture.zoomMax + 1, .5)), a.scale < T.params.zoomMin && (a.scale = T.params.zoomMin + 1 - Math.pow(T.params.zoomMin - a.scale + 1, .5)), a.gesture.image.transform("translate3d(0,0,0) scale(" + a.scale + ")")) }, onGestureEnd: function (e) { var a = T.zoom; !T.support.gestures && ("touchend" !== e.type || "touchend" === e.type && e.changedTouches.length < 2) || a.gesture.image && 0 !== a.gesture.image.length && (a.scale = Math.max(Math.min(a.scale, a.gesture.zoomMax), T.params.zoomMin), a.gesture.image.transition(T.params.speed).transform("translate3d(0,0,0) scale(" + a.scale + ")"), a.currentScale = a.scale, a.isScaling = !1, 1 === a.scale && (a.gesture.slide = void 0)) }, onTouchStart: function (e, a) { var t = e.zoom; t.gesture.image && 0 !== t.gesture.image.length && (t.image.isTouched || ("android" === e.device.os && a.preventDefault(), t.image.isTouched = !0, t.image.touchesStart.x = "touchstart" === a.type ? a.targetTouches[0].pageX : a.pageX, t.image.touchesStart.y = "touchstart" === a.type ? a.targetTouches[0].pageY : a.pageY)) }, onTouchMove: function (e) { var a = T.zoom; if (a.gesture.image && 0 !== a.gesture.image.length && (T.allowClick = !1, a.image.isTouched && a.gesture.slide)) { a.image.isMoved || (a.image.width = a.gesture.image[0].offsetWidth, a.image.height = a.gesture.image[0].offsetHeight, a.image.startX = T.getTranslate(a.gesture.imageWrap[0], "x") || 0, a.image.startY = T.getTranslate(a.gesture.imageWrap[0], "y") || 0, a.gesture.slideWidth = a.gesture.slide[0].offsetWidth, a.gesture.slideHeight = a.gesture.slide[0].offsetHeight, a.gesture.imageWrap.transition(0), T.rtl && (a.image.startX = -a.image.startX), T.rtl && (a.image.startY = -a.image.startY)); var t = a.image.width * a.scale, s = a.image.height * a.scale; if (!(t < a.gesture.slideWidth && s < a.gesture.slideHeight)) { if (a.image.minX = Math.min(a.gesture.slideWidth / 2 - t / 2, 0), a.image.maxX = -a.image.minX, a.image.minY = Math.min(a.gesture.slideHeight / 2 - s / 2, 0), a.image.maxY = -a.image.minY, a.image.touchesCurrent.x = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX, a.image.touchesCurrent.y = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY, !a.image.isMoved && !a.isScaling) { if (T.isHorizontal() && Math.floor(a.image.minX) === Math.floor(a.image.startX) && a.image.touchesCurrent.x < a.image.touchesStart.x || Math.floor(a.image.maxX) === Math.floor(a.image.startX) && a.image.touchesCurrent.x > a.image.touchesStart.x) return void (a.image.isTouched = !1); if (!T.isHorizontal() && Math.floor(a.image.minY) === Math.floor(a.image.startY) && a.image.touchesCurrent.y < a.image.touchesStart.y || Math.floor(a.image.maxY) === Math.floor(a.image.startY) && a.image.touchesCurrent.y > a.image.touchesStart.y) return void (a.image.isTouched = !1) } e.preventDefault(), e.stopPropagation(), a.image.isMoved = !0, a.image.currentX = a.image.touchesCurrent.x - a.image.touchesStart.x + a.image.startX, a.image.currentY = a.image.touchesCurrent.y - a.image.touchesStart.y + a.image.startY, a.image.currentX < a.image.minX && (a.image.currentX = a.image.minX + 1 - Math.pow(a.image.minX - a.image.currentX + 1, .8)), a.image.currentX > a.image.maxX && (a.image.currentX = a.image.maxX - 1 + Math.pow(a.image.currentX - a.image.maxX + 1, .8)), a.image.currentY < a.image.minY && (a.image.currentY = a.image.minY + 1 - Math.pow(a.image.minY - a.image.currentY + 1, .8)), a.image.currentY > a.image.maxY && (a.image.currentY = a.image.maxY - 1 + Math.pow(a.image.currentY - a.image.maxY + 1, .8)), a.velocity.prevPositionX || (a.velocity.prevPositionX = a.image.touchesCurrent.x), a.velocity.prevPositionY || (a.velocity.prevPositionY = a.image.touchesCurrent.y), a.velocity.prevTime || (a.velocity.prevTime = Date.now()), a.velocity.x = (a.image.touchesCurrent.x - a.velocity.prevPositionX) / (Date.now() - a.velocity.prevTime) / 2, a.velocity.y = (a.image.touchesCurrent.y - a.velocity.prevPositionY) / (Date.now() - a.velocity.prevTime) / 2, Math.abs(a.image.touchesCurrent.x - a.velocity.prevPositionX) < 2 && (a.velocity.x = 0), Math.abs(a.image.touchesCurrent.y - a.velocity.prevPositionY) < 2 && (a.velocity.y = 0), a.velocity.prevPositionX = a.image.touchesCurrent.x, a.velocity.prevPositionY = a.image.touchesCurrent.y, a.velocity.prevTime = Date.now(), a.gesture.imageWrap.transform("translate3d(" + a.image.currentX + "px, " + a.image.currentY + "px,0)") } } }, onTouchEnd: function (e, a) { var t = e.zoom; if (t.gesture.image && 0 !== t.gesture.image.length) { if (!t.image.isTouched || !t.image.isMoved) return t.image.isTouched = !1, void (t.image.isMoved = !1); t.image.isTouched = !1, t.image.isMoved = !1; var s = 300, i = 300, r = t.velocity.x * s, n = t.image.currentX + r, o = t.velocity.y * i, l = t.image.currentY + o; 0 !== t.velocity.x && (s = Math.abs((n - t.image.currentX) / t.velocity.x)), 0 !== t.velocity.y && (i = Math.abs((l - t.image.currentY) / t.velocity.y)); var p = Math.max(s, i); t.image.currentX = n, t.image.currentY = l; var d = t.image.width * t.scale, u = t.image.height * t.scale; t.image.minX = Math.min(t.gesture.slideWidth / 2 - d / 2, 0), t.image.maxX = -t.image.minX, t.image.minY = Math.min(t.gesture.slideHeight / 2 - u / 2, 0), t.image.maxY = -t.image.minY, t.image.currentX = Math.max(Math.min(t.image.currentX, t.image.maxX), t.image.minX), t.image.currentY = Math.max(Math.min(t.image.currentY, t.image.maxY), t.image.minY), t.gesture.imageWrap.transition(p).transform("translate3d(" + t.image.currentX + "px, " + t.image.currentY + "px,0)") } }, onTransitionEnd: function (e) { var a = e.zoom; a.gesture.slide && e.previousIndex !== e.activeIndex && (a.gesture.image.transform("translate3d(0,0,0) scale(1)"), a.gesture.imageWrap.transform("translate3d(0,0,0)"), a.gesture.slide = a.gesture.image = a.gesture.imageWrap = void 0, a.scale = a.currentScale = 1) }, toggleZoom: function (a, t) { var s = a.zoom; if (s.gesture.slide || (s.gesture.slide = a.clickedSlide ? e(a.clickedSlide) : a.slides.eq(a.activeIndex), s.gesture.image = s.gesture.slide.find("img, svg, canvas"), s.gesture.imageWrap = s.gesture.image.parent("." + a.params.zoomContainerClass)), s.gesture.image && 0 !== s.gesture.image.length) { var i, r, n, o, l, p, d, u, c, m, h, g, f, v, w, y, x, T; void 0 === s.image.touchesStart.x && t ? (i = "touchend" === t.type ? t.changedTouches[0].pageX : t.pageX, r = "touchend" === t.type ? t.changedTouches[0].pageY : t.pageY) : (i = s.image.touchesStart.x, r = s.image.touchesStart.y), s.scale && 1 !== s.scale ? (s.scale = s.currentScale = 1, s.gesture.imageWrap.transition(300).transform("translate3d(0,0,0)"), s.gesture.image.transition(300).transform("translate3d(0,0,0) scale(1)"), s.gesture.slide = void 0) : (s.scale = s.currentScale = s.gesture.imageWrap.attr("data-swiper-zoom") || a.params.zoomMax, t ? (x = s.gesture.slide[0].offsetWidth, T = s.gesture.slide[0].offsetHeight, n = s.gesture.slide.offset().left, o = s.gesture.slide.offset().top, l = n + x / 2 - i, p = o + T / 2 - r, c = s.gesture.image[0].offsetWidth, m = s.gesture.image[0].offsetHeight, h = c * s.scale, g = m * s.scale, f = Math.min(x / 2 - h / 2, 0), v = Math.min(T / 2 - g / 2, 0), w = -f, y = -v, d = l * s.scale, u = p * s.scale, d < f && (d = f), d > w && (d = w), u < v && (u = v), u > y && (u = y)) : (d = 0, u = 0), s.gesture.imageWrap.transition(300).transform("translate3d(" + d + "px, " + u + "px,0)"), s.gesture.image.transition(300).transform("translate3d(0,0,0) scale(" + s.scale + ")")) } }, attachEvents: function (a) { var t = a ? "off" : "on"; if (T.params.zoom) { var s = (T.slides, !("touchstart" !== T.touchEvents.start || !T.support.passiveListener || !T.params.passiveListeners) && { passive: !0, capture: !1 }); T.support.gestures ? (T.slides[t]("gesturestart", T.zoom.onGestureStart, s), T.slides[t]("gesturechange", T.zoom.onGestureChange, s), T.slides[t]("gestureend", T.zoom.onGestureEnd, s)) : "touchstart" === T.touchEvents.start && (T.slides[t](T.touchEvents.start, T.zoom.onGestureStart, s), T.slides[t](T.touchEvents.move, T.zoom.onGestureChange, s), T.slides[t](T.touchEvents.end, T.zoom.onGestureEnd, s)), T[t]("touchStart", T.zoom.onTouchStart), T.slides.each(function (a, s) { e(s).find("." + T.params.zoomContainerClass).length > 0 && e(s)[t](T.touchEvents.move, T.zoom.onTouchMove) }), T[t]("touchEnd", T.zoom.onTouchEnd), T[t]("transitionEnd", T.zoom.onTransitionEnd), T.params.zoomToggle && T.on("doubleTap", T.zoom.toggleZoom) } }, init: function () { T.zoom.attachEvents() }, destroy: function () { T.zoom.attachEvents(!0) } }, T._plugins = []; for (var Y in T.plugins) { var O = T.plugins[Y](T, T.params[Y]); O && T._plugins.push(O) } return T.callPlugins = function (e) { for (var a = 0; a < T._plugins.length; a++)e in T._plugins[a] && T._plugins[a][e](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]) }, T.emitterEventListeners = {}, T.emit = function (e) { T.params[e] && T.params[e](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]); var a; if (T.emitterEventListeners[e]) for (a = 0; a < T.emitterEventListeners[e].length; a++)T.emitterEventListeners[e][a](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]); T.callPlugins && T.callPlugins(e, arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]) }, T.on = function (e, a) { return e = m(e), T.emitterEventListeners[e] || (T.emitterEventListeners[e] = []), T.emitterEventListeners[e].push(a), T }, T.off = function (e, a) { var t; if (e = m(e), void 0 === a) return T.emitterEventListeners[e] = [], T; if (T.emitterEventListeners[e] && 0 !== T.emitterEventListeners[e].length) { for (t = 0; t < T.emitterEventListeners[e].length; t++)T.emitterEventListeners[e][t] === a && T.emitterEventListeners[e].splice(t, 1); return T } }, T.once = function (e, a) { e = m(e); var t = function () { a(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]), T.off(e, t) }; return T.on(e, t), T }, T.a11y = { makeFocusable: function (e) { return e.attr("tabIndex", "0"), e }, addRole: function (e, a) { return e.attr("role", a), e }, addLabel: function (e, a) { return e.attr("aria-label", a), e }, disable: function (e) { return e.attr("aria-disabled", !0), e }, enable: function (e) { return e.attr("aria-disabled", !1), e }, onEnterKey: function (a) { 13 === a.keyCode && (e(a.target).is(T.params.nextButton) ? (T.onClickNext(a), T.isEnd ? T.a11y.notify(T.params.lastSlideMessage) : T.a11y.notify(T.params.nextSlideMessage)) : e(a.target).is(T.params.prevButton) && (T.onClickPrev(a), T.isBeginning ? T.a11y.notify(T.params.firstSlideMessage) : T.a11y.notify(T.params.prevSlideMessage)), e(a.target).is("." + T.params.bulletClass) && e(a.target)[0].click()) }, liveRegion: e('<span class="' + T.params.notificationClass + '" aria-live="assertive" aria-atomic="true"></span>'), notify: function (e) { var a = T.a11y.liveRegion; 0 !== a.length && (a.html(""), a.html(e)) }, init: function () { T.params.nextButton && T.nextButton && T.nextButton.length > 0 && (T.a11y.makeFocusable(T.nextButton), T.a11y.addRole(T.nextButton, "button"), T.a11y.addLabel(T.nextButton, T.params.nextSlideMessage)), T.params.prevButton && T.prevButton && T.prevButton.length > 0 && (T.a11y.makeFocusable(T.prevButton), T.a11y.addRole(T.prevButton, "button"), T.a11y.addLabel(T.prevButton, T.params.prevSlideMessage)), e(T.container).append(T.a11y.liveRegion) }, initPagination: function () { T.params.pagination && T.params.paginationClickable && T.bullets && T.bullets.length && T.bullets.each(function () { var a = e(this); T.a11y.makeFocusable(a), T.a11y.addRole(a, "button"), T.a11y.addLabel(a, T.params.paginationBulletMessage.replace(/{{index}}/, a.index() + 1)) }) }, destroy: function () { T.a11y.liveRegion && T.a11y.liveRegion.length > 0 && T.a11y.liveRegion.remove() } }, T.init = function () { T.params.loop && T.createLoop(), T.updateContainerSize(), T.updateSlidesSize(), T.updatePagination(), T.params.scrollbar && T.scrollbar && (T.scrollbar.set(), T.params.scrollbarDraggable && T.scrollbar.enableDraggable()), "slide" !== T.params.effect && T.effects[T.params.effect] && (T.params.loop || T.updateProgress(), T.effects[T.params.effect].setTranslate()), T.params.loop ? T.slideTo(T.params.initialSlide + T.loopedSlides, 0, T.params.runCallbacksOnInit) : (T.slideTo(T.params.initialSlide, 0, T.params.runCallbacksOnInit), 0 === T.params.initialSlide && (T.parallax && T.params.parallax && T.parallax.setTranslate(), T.lazy && T.params.lazyLoading && (T.lazy.load(), T.lazy.initialImageLoaded = !0))), T.attachEvents(), T.params.observer && T.support.observer && T.initObservers(), T.params.preloadImages && !T.params.lazyLoading && T.preloadImages(), T.params.zoom && T.zoom && T.zoom.init(), T.params.autoplay && T.startAutoplay(), T.params.keyboardControl && T.enableKeyboardControl && T.enableKeyboardControl(), T.params.mousewheelControl && T.enableMousewheelControl && T.enableMousewheelControl(), T.params.hashnavReplaceState && (T.params.replaceState = T.params.hashnavReplaceState), T.params.history && T.history && T.history.init(), T.params.hashnav && T.hashnav && T.hashnav.init(), T.params.a11y && T.a11y && T.a11y.init(), T.emit("onInit", T) }, T.cleanupStyles = function () { T.container.removeClass(T.classNames.join(" ")).removeAttr("style"), T.wrapper.removeAttr("style"), T.slides && T.slides.length && T.slides.removeClass([T.params.slideVisibleClass, T.params.slideActiveClass, T.params.slideNextClass, T.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"), T.paginationContainer && T.paginationContainer.length && T.paginationContainer.removeClass(T.params.paginationHiddenClass), T.bullets && T.bullets.length && T.bullets.removeClass(T.params.bulletActiveClass), T.params.prevButton && e(T.params.prevButton).removeClass(T.params.buttonDisabledClass), T.params.nextButton && e(T.params.nextButton).removeClass(T.params.buttonDisabledClass), T.params.scrollbar && T.scrollbar && (T.scrollbar.track && T.scrollbar.track.length && T.scrollbar.track.removeAttr("style"), T.scrollbar.drag && T.scrollbar.drag.length && T.scrollbar.drag.removeAttr("style")) }, T.destroy = function (e, a) { T.detachEvents(), T.stopAutoplay(), T.params.scrollbar && T.scrollbar && T.params.scrollbarDraggable && T.scrollbar.disableDraggable(), T.params.loop && T.destroyLoop(), a && T.cleanupStyles(), T.disconnectObservers(), T.params.zoom && T.zoom && T.zoom.destroy(), T.params.keyboardControl && T.disableKeyboardControl && T.disableKeyboardControl(), T.params.mousewheelControl && T.disableMousewheelControl && T.disableMousewheelControl(), T.params.a11y && T.a11y && T.a11y.destroy(), T.params.history && !T.params.replaceState && window.removeEventListener("popstate", T.history.setHistoryPopState), T.params.hashnav && T.hashnav && T.hashnav.destroy(), T.emit("onDestroy"), e !== !1 && (T = null) }, T.init(), T } }; a.prototype = { isSafari: function () { var e = window.navigator.userAgent.toLowerCase(); return e.indexOf("safari") >= 0 && e.indexOf("chrome") < 0 && e.indexOf("android") < 0 }(), isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent), isArray: function (e) { return "[object Array]" === Object.prototype.toString.apply(e) }, browser: { ie: window.navigator.pointerEnabled || window.navigator.msPointerEnabled, ieTouch: window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 1 || window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 1, lteIE9: function () { var e = document.createElement("div"); return e.innerHTML = "<!--[if lte IE 9]><i></i><![endif]-->", 1 === e.getElementsByTagName("i").length }() }, device: function () { var e = window.navigator.userAgent, a = e.match(/(Android);?[\s\/]+([\d.]+)?/), t = e.match(/(iPad).*OS\s([\d_]+)/), s = e.match(/(iPod)(.*OS\s([\d_]+))?/), i = !t && e.match(/(iPhone\sOS|iOS)\s([\d_]+)/); return { ios: t || i || s, android: a } }(), support: { touch: window.Modernizr && Modernizr.touch === !0 || function () { return !!("ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch) }(), transforms3d: window.Modernizr && Modernizr.csstransforms3d === !0 || function () { var e = document.createElement("div").style; return "webkitPerspective" in e || "MozPerspective" in e || "OPerspective" in e || "MsPerspective" in e || "perspective" in e }(), flexbox: function () { for (var e = document.createElement("div").style, a = "alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "), t = 0; t < a.length; t++)if (a[t] in e) return !0 }(), observer: function () { return "MutationObserver" in window || "WebkitMutationObserver" in window }(), passiveListener: function () { var e = !1; try { var a = Object.defineProperty({}, "passive", { get: function () { e = !0 } }); window.addEventListener("testPassiveListener", null, a) } catch (e) { } return e }(), gestures: function () { return "ongesturestart" in window }() }, plugins: {} }; for (var t = (function () { var e = function (e) { var a = this, t = 0; for (t = 0; t < e.length; t++)a[t] = e[t]; return a.length = e.length, this }, a = function (a, t) { var s = [], i = 0; if (a && !t && a instanceof e) return a; if (a) if ("string" == typeof a) { var r, n, o = a.trim(); if (o.indexOf("<") >= 0 && o.indexOf(">") >= 0) { var l = "div"; for (0 === o.indexOf("<li") && (l = "ul"), 0 === o.indexOf("<tr") && (l = "tbody"), 0 !== o.indexOf("<td") && 0 !== o.indexOf("<th") || (l = "tr"), 0 === o.indexOf("<tbody") && (l = "table"), 0 === o.indexOf("<option") && (l = "select"), n = document.createElement(l), n.innerHTML = a, i = 0; i < n.childNodes.length; i++)s.push(n.childNodes[i]) } else for (r = t || "#" !== a[0] || a.match(/[ .<>:~]/) ? (t || document).querySelectorAll(a) : [document.getElementById(a.split("#")[1])], i = 0; i < r.length; i++)r[i] && s.push(r[i]) } else if (a.nodeType || a === window || a === document) s.push(a); else if (a.length > 0 && a[0].nodeType) for (i = 0; i < a.length; i++)s.push(a[i]); return new e(s) }; return e.prototype = { addClass: function (e) { if (void 0 === e) return this; for (var a = e.split(" "), t = 0; t < a.length; t++)for (var s = 0; s < this.length; s++)this[s].classList.add(a[t]); return this }, removeClass: function (e) { for (var a = e.split(" "), t = 0; t < a.length; t++)for (var s = 0; s < this.length; s++)this[s].classList.remove(a[t]); return this }, hasClass: function (e) { return !!this[0] && this[0].classList.contains(e) }, toggleClass: function (e) { for (var a = e.split(" "), t = 0; t < a.length; t++)for (var s = 0; s < this.length; s++)this[s].classList.toggle(a[t]); return this }, attr: function (e, a) { if (1 === arguments.length && "string" == typeof e) return this[0] ? this[0].getAttribute(e) : void 0; for (var t = 0; t < this.length; t++)if (2 === arguments.length) this[t].setAttribute(e, a); else for (var s in e) this[t][s] = e[s], this[t].setAttribute(s, e[s]); return this }, removeAttr: function (e) { for (var a = 0; a < this.length; a++)this[a].removeAttribute(e); return this }, data: function (e, a) { if (void 0 !== a) { for (var t = 0; t < this.length; t++) { var s = this[t]; s.dom7ElementDataStorage || (s.dom7ElementDataStorage = {}), s.dom7ElementDataStorage[e] = a } return this } if (this[0]) { var i = this[0].getAttribute("data-" + e); return i ? i : this[0].dom7ElementDataStorage && e in this[0].dom7ElementDataStorage ? this[0].dom7ElementDataStorage[e] : void 0 } }, transform: function (e) { for (var a = 0; a < this.length; a++) { var t = this[a].style; t.webkitTransform = t.MsTransform = t.msTransform = t.MozTransform = t.OTransform = t.transform = e } return this }, transition: function (e) { "string" != typeof e && (e += "ms"); for (var a = 0; a < this.length; a++) { var t = this[a].style; t.webkitTransitionDuration = t.MsTransitionDuration = t.msTransitionDuration = t.MozTransitionDuration = t.OTransitionDuration = t.transitionDuration = e } return this }, on: function (e, t, s, i) { function r(e) { var i = e.target; if (a(i).is(t)) s.call(i, e); else for (var r = a(i).parents(), n = 0; n < r.length; n++)a(r[n]).is(t) && s.call(r[n], e) } var n, o, l = e.split(" "); for (n = 0; n < this.length; n++)if ("function" == typeof t || t === !1) for ("function" == typeof t && (s = arguments[1], i = arguments[2] || !1), o = 0; o < l.length; o++)this[n].addEventListener(l[o], s, i); else for (o = 0; o < l.length; o++)this[n].dom7LiveListeners || (this[n].dom7LiveListeners = []), this[n].dom7LiveListeners.push({ listener: s, liveListener: r }), this[n].addEventListener(l[o], r, i); return this }, off: function (e, a, t, s) { for (var i = e.split(" "), r = 0; r < i.length; r++)for (var n = 0; n < this.length; n++)if ("function" == typeof a || a === !1) "function" == typeof a && (t = arguments[1], s = arguments[2] || !1), this[n].removeEventListener(i[r], t, s); else if (this[n].dom7LiveListeners) for (var o = 0; o < this[n].dom7LiveListeners.length; o++)this[n].dom7LiveListeners[o].listener === t && this[n].removeEventListener(i[r], this[n].dom7LiveListeners[o].liveListener, s); return this }, once: function (e, a, t, s) { function i(n) { t(n), r.off(e, a, i, s) } var r = this; "function" == typeof a && (a = !1, t = arguments[1], s = arguments[2]), r.on(e, a, i, s) }, trigger: function (e, a) { for (var t = 0; t < this.length; t++) { var s; try { s = new window.CustomEvent(e, { detail: a, bubbles: !0, cancelable: !0 }) } catch (t) { s = document.createEvent("Event"), s.initEvent(e, !0, !0), s.detail = a } this[t].dispatchEvent(s) } return this }, transitionEnd: function (e) { function a(r) { if (r.target === this) for (e.call(this, r), t = 0; t < s.length; t++)i.off(s[t], a) } var t, s = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], i = this; if (e) for (t = 0; t < s.length; t++)i.on(s[t], a); return this }, width: function () { return this[0] === window ? window.innerWidth : this.length > 0 ? parseFloat(this.css("width")) : null }, outerWidth: function (e) { return this.length > 0 ? e ? this[0].offsetWidth + parseFloat(this.css("margin-right")) + parseFloat(this.css("margin-left")) : this[0].offsetWidth : null }, height: function () { return this[0] === window ? window.innerHeight : this.length > 0 ? parseFloat(this.css("height")) : null }, outerHeight: function (e) { return this.length > 0 ? e ? this[0].offsetHeight + parseFloat(this.css("margin-top")) + parseFloat(this.css("margin-bottom")) : this[0].offsetHeight : null }, offset: function () { if (this.length > 0) { var e = this[0], a = e.getBoundingClientRect(), t = document.body, s = e.clientTop || t.clientTop || 0, i = e.clientLeft || t.clientLeft || 0, r = window.pageYOffset || e.scrollTop, n = window.pageXOffset || e.scrollLeft; return { top: a.top + r - s, left: a.left + n - i } } return null }, css: function (e, a) { var t; if (1 === arguments.length) { if ("string" != typeof e) { for (t = 0; t < this.length; t++)for (var s in e) this[t].style[s] = e[s]; return this } if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(e) } if (2 === arguments.length && "string" == typeof e) { for (t = 0; t < this.length; t++)this[t].style[e] = a; return this } return this }, each: function (e) { for (var a = 0; a < this.length; a++)e.call(this[a], a, this[a]); return this }, html: function (e) { if (void 0 === e) return this[0] ? this[0].innerHTML : void 0; for (var a = 0; a < this.length; a++)this[a].innerHTML = e; return this }, text: function (e) { if (void 0 === e) return this[0] ? this[0].textContent.trim() : null; for (var a = 0; a < this.length; a++)this[a].textContent = e; return this }, is: function (t) { if (!this[0]) return !1; var s, i; if ("string" == typeof t) { var r = this[0]; if (r === document) return t === document; if (r === window) return t === window; if (r.matches) return r.matches(t); if (r.webkitMatchesSelector) return r.webkitMatchesSelector(t); if (r.mozMatchesSelector) return r.mozMatchesSelector(t); if (r.msMatchesSelector) return r.msMatchesSelector(t); for (s = a(t), i = 0; i < s.length; i++)if (s[i] === this[0]) return !0; return !1 } if (t === document) return this[0] === document; if (t === window) return this[0] === window; if (t.nodeType || t instanceof e) { for (s = t.nodeType ? [t] : t, i = 0; i < s.length; i++)if (s[i] === this[0]) return !0; return !1 } return !1 }, index: function () { if (this[0]) { for (var e = this[0], a = 0; null !== (e = e.previousSibling);)1 === e.nodeType && a++; return a } }, eq: function (a) { if (void 0 === a) return this; var t, s = this.length; return a > s - 1 ? new e([]) : a < 0 ? (t = s + a, new e(t < 0 ? [] : [this[t]])) : new e([this[a]]) }, append: function (a) { var t, s; for (t = 0; t < this.length; t++)if ("string" == typeof a) { var i = document.createElement("div"); for (i.innerHTML = a; i.firstChild;)this[t].appendChild(i.firstChild) } else if (a instanceof e) for (s = 0; s < a.length; s++)this[t].appendChild(a[s]); else this[t].appendChild(a); return this }, prepend: function (a) { var t, s; for (t = 0; t < this.length; t++)if ("string" == typeof a) { var i = document.createElement("div"); for (i.innerHTML = a, s = i.childNodes.length - 1; s >= 0; s--)this[t].insertBefore(i.childNodes[s], this[t].childNodes[0]) } else if (a instanceof e) for (s = 0; s < a.length; s++)this[t].insertBefore(a[s], this[t].childNodes[0]); else this[t].insertBefore(a, this[t].childNodes[0]); return this }, insertBefore: function (e) { for (var t = a(e), s = 0; s < this.length; s++)if (1 === t.length) t[0].parentNode.insertBefore(this[s], t[0]); else if (t.length > 1) for (var i = 0; i < t.length; i++)t[i].parentNode.insertBefore(this[s].cloneNode(!0), t[i]) }, insertAfter: function (e) { for (var t = a(e), s = 0; s < this.length; s++)if (1 === t.length) t[0].parentNode.insertBefore(this[s], t[0].nextSibling); else if (t.length > 1) for (var i = 0; i < t.length; i++)t[i].parentNode.insertBefore(this[s].cloneNode(!0), t[i].nextSibling) }, next: function (t) { return new e(this.length > 0 ? t ? this[0].nextElementSibling && a(this[0].nextElementSibling).is(t) ? [this[0].nextElementSibling] : [] : this[0].nextElementSibling ? [this[0].nextElementSibling] : [] : []) }, nextAll: function (t) { var s = [], i = this[0]; if (!i) return new e([]); for (; i.nextElementSibling;) { var r = i.nextElementSibling; t ? a(r).is(t) && s.push(r) : s.push(r), i = r } return new e(s) }, prev: function (t) { return new e(this.length > 0 ? t ? this[0].previousElementSibling && a(this[0].previousElementSibling).is(t) ? [this[0].previousElementSibling] : [] : this[0].previousElementSibling ? [this[0].previousElementSibling] : [] : []) }, prevAll: function (t) { var s = [], i = this[0]; if (!i) return new e([]); for (; i.previousElementSibling;) { var r = i.previousElementSibling; t ? a(r).is(t) && s.push(r) : s.push(r), i = r } return new e(s) }, parent: function (e) { for (var t = [], s = 0; s < this.length; s++)e ? a(this[s].parentNode).is(e) && t.push(this[s].parentNode) : t.push(this[s].parentNode); return a(a.unique(t)) }, parents: function (e) { for (var t = [], s = 0; s < this.length; s++)for (var i = this[s].parentNode; i;)e ? a(i).is(e) && t.push(i) : t.push(i), i = i.parentNode; return a(a.unique(t)) }, find: function (a) { for (var t = [], s = 0; s < this.length; s++)for (var i = this[s].querySelectorAll(a), r = 0; r < i.length; r++)t.push(i[r]); return new e(t) }, children: function (t) { for (var s = [], i = 0; i < this.length; i++)for (var r = this[i].childNodes, n = 0; n < r.length; n++)t ? 1 === r[n].nodeType && a(r[n]).is(t) && s.push(r[n]) : 1 === r[n].nodeType && s.push(r[n]); return new e(a.unique(s)) }, remove: function () { for (var e = 0; e < this.length; e++)this[e].parentNode && this[e].parentNode.removeChild(this[e]); return this }, add: function () { var e, t, s = this; for (e = 0; e < arguments.length; e++) { var i = a(arguments[e]); for (t = 0; t < i.length; t++)s[s.length] = i[t], s.length++ } return s } }, a.fn = e.prototype, a.unique = function (e) { for (var a = [], t = 0; t < e.length; t++)a.indexOf(e[t]) === -1 && a.push(e[t]); return a }, a }()), s = ["jQuery", "Zepto", "Dom7"], i = 0; i < s.length; i++)window[s[i]] && function (e) { e.fn.swiper = function (t) { var s; return e(this).each(function () { var e = new a(this, t); s || (s = e) }), s } }(window[s[i]]); var r; r = void 0 === t ? window.Dom7 || window.Zepto || window.jQuery : t, r && ("transitionEnd" in r.fn || (r.fn.transitionEnd = function (e) { function a(r) { if (r.target === this) for (e.call(this, r), t = 0; t < s.length; t++)i.off(s[t], a) } var t, s = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], i = this; if (e) for (t = 0; t < s.length; t++)i.on(s[t], a); return this }), "transform" in r.fn || (r.fn.transform = function (e) { for (var a = 0; a < this.length; a++) { var t = this[a].style; t.webkitTransform = t.MsTransform = t.msTransform = t.MozTransform = t.OTransform = t.transform = e } return this }), "transition" in r.fn || (r.fn.transition = function (e) { "string" != typeof e && (e += "ms"); for (var a = 0; a < this.length; a++) { var t = this[a].style; t.webkitTransitionDuration = t.MsTransitionDuration = t.msTransitionDuration = t.MozTransitionDuration = t.OTransitionDuration = t.transitionDuration = e } return this }), "outerWidth" in r.fn || (r.fn.outerWidth = function (e) { return this.length > 0 ? e ? this[0].offsetWidth + parseFloat(this.css("margin-right")) + parseFloat(this.css("margin-left")) : this[0].offsetWidth : null })), window.Swiper = a }(), "undefined" != typeof module ? module.exports = window.Swiper : "function" == typeof define && define.amd && define([], function () { "use strict"; return window.Swiper }); //# sourceMappingURL=maps/swiper.min.js.map </script> <style> #slideshow1.swiper-container, .swiper-wrapper, .swiper-slide { /*width: 100%; height: 18px;*/ } #slideshow1 .swiper-slide { text-align: center; /*font-size: 18px;*/ background: #fff; display: flex; } #slideshow1 .swiper-container { margin-left: auto; margin-right: auto; position: relative; overflow: hidden; z-index: 1; left: 10px; } </style> <style> .social-icons ul li,.sustainability-social .pipe,.sustainability-social a{display:inline-block;list-style-type:none}#HelloBarTextAds .social-icons ul li i{background-color:#b9b9b9}nav.sponsored-alert{display:block;position:fixed;top:0;left:0;width:100%;padding:0;height:auto;min-height:auto;line-height:normal;background:#fff;z-index:9999;border-radius:0;border-bottom:1px solid #e5e5e5!important;border:0}#slideshow1 .swiper-container-vertical>.swiper-wrapper{width:100%;height:18px}.left-tag{background:#7d663f;background:-moz-linear-gradient(left,#7d663f 0,#7d663f 6%,#c29c66 50%,#896d43 89%,#896d43 100%);background:-webkit-gradient(left top,right top,color-stop(0,#7d663f),color-stop(6%,#7d663f),color-stop(50%,#c29c66),color-stop(89%,#896d43),color-stop(100%,#896d43));background:-webkit-linear-gradient(left,#7d663f 0,#7d663f 6%,#c29c66 50%,#896d43 89%,#896d43 100%);background:-o-linear-gradient(left,#7d663f 0,#7d663f 6%,#c29c66 50%,#896d43 89%,#896d43 100%);background:-ms-linear-gradient(left,#7d663f 0,#7d663f 6%,#c29c66 50%,#896d43 89%,#896d43 100%);background:linear-gradient(to right,#7d663f 0,#7d663f 6%,#c29c66 50%,#896d43 89%,#896d43 100%);float:left;padding:13px 30px 13px 10px;color:#fff;position:relative;background-color:#c5dff9;overflow:hidden}.left-tag:before{width:0;height:0;border-top:60px solid #a88656;border-right:34px solid transparent;position:absolute;content:"";top:0;right:0;z-index:9;background:#fff;display:none}.left-tag span{position:relative;z-index:99;font-size:14px;font-family:oxygenbold}.text-content{color:rgba(0,0,0,.7);padding:12px 15px}.text-content a{color:#004c5c;font-size:13px;font-family:oxygenbold}.text-content span{color:#c6c6c6}.text-content span a{color:#b3b3b3!important}.f2ftopmenu .navbar.navbar50{top:42px}.f2ftopmenu .navbar,body.body50{margin-top:42px}.social-icons li,.social-icons-top.toprightsocialheader li{position:relative;margin:0 auto!important;display:inline-block}nav.sponsored-alert .social-icons ul{padding:0;margin:0}nav.sponsored-alert .social-icons ul li i{padding:5px 7px;width:25px;height:25px;line-height:15px;font-size:13px}.sponsored-left-content{width:calc(100% - 285px)}.nav.sponsored-alert{border:0!important;border-bottom:1px solid #e5e5e5!important}.pattern-bg{margin-top:105px}@media screen and (max-width:991px){.pattern-bg{margin-top:135px}.sponsored-left-content{width:calc(100% - 250px)}.sponsored-alert .social-icons{width:250px}nav.sponsored-alert .container{width:100%;padding:0}nav.sponsored-alert .container>div:first-child{padding:0}nav.sponsored-alert .container>div:last-child{padding-left:0}.text-content{padding:13px 0}nav.sponsored-alert .social-icons ul li i{font-size:13px;width:24px;height:24px;line-height:15px}}#textadsdisplay .text-content a{color:#2f2f2f}#slideshow>div{position:absolute;top:12px;left:10px;right:10px;bottom:10px}.social-icons-top.toprightsocialheader li .fa{padding:4px 0;color:#868686;width:22px;height:22px;font-size:12px;background-color:#fff;border-radius:50%;transition:.5s;border:1px solid #595959;text-align:center}.social-icons-top.toprightsocialheader li{padding:0 1px}.social-icons-top li .fa.fa-facebook{padding:4px 8px}.left-tag.leftheadertag span{position:relative;z-index:99;font-size:12px;font-family:oxygenregular;font-weight:400;border-right:1px solid #e5e5e5;padding:5px 10px 5px 0}.left-tag.leftheadertag{background:#fff;float:left;padding:13px 0 10px 10px;color:#000;position:relative;overflow:hidden}.social-icons-top.toprightsocialheader li:before{border:0;display:none}.welcometext{margin-top:3px!important}.sponsored-alert .social-icons{padding:0 5px!important;border-left:0 solid #e5e5e5!important;text-align:right!important;float:right!important;width:auto!important}.social-icons li{padding:0 10px}.social-icons li:before{content:"";position:absolute;left:0;width:1px;height:100%;border-left:1px solid #e5e5e5}.sourcing-btn{text-align:right;display:inline-block}.sourcing-btn a{background:#c46bd6;float:left;border-radius:10px;padding:3px 17px;color:#fff;margin-top:11px;font-size:11px;margin-left:0;background:linear-gradient(92deg,#30478a -19%,#007cad 61%,#d09203 95%)}.social-icons-top.toprightsocialheader{margin-right:1.5%;padding-top:10px;text-align:right;display:inline-block;float:right}.social-icons-top ul{margin:0;padding:0}@media only screen and (max-width:1280px){.sourcing-btn a{margin-left:-18px}}@media (max-width:1024px){.text-content a{font-size:10px}#textadsdisplay .text-content a{margin-top:4px}.sourcing-btn a{display:none}}@media only screen and (max-width:991px){.sponsored-alert .social-icons{width:300px!important}.sponsored-alert .social-icons ul li{max-width:90px;padding:0}} </style> <div class="wrapper"> <div class="top-header"> <div class="container"> <div class="top-header-details"> <div class="top-header-left"> <div class="top-header-btn"> <span class="sponsored-btn">Sponsored</span> </div> <span> <div id="slideshow1"> <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide" id="slide-0"> <a class="gaclicktracking" href='https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8Mqlw8ipGGIbh7S4/J+X7DaTMbFQE93Yfr88HN8IqXhOTGK79GiRL8t8A0OiE9i+xMJ/LHDhTrrzvh06F0CGFsfykcGWgZ5nM5gmfK691cvx1cDo+H8tVXhWAqE+yhcqKubcqgexADOKLR9BFNJe8+cFmCtaVIcXjOZKcoUCylfyabyUQ2LnxdzzJIxaug6P3t+GBHZwXfR3gj6HCR4dOz0kXI2yx8Ooxel3SzgMgM+6hepW6yoh+sF95SmAOWjooinyQDwAjQvC0kACAb7D3DKs5oDJ0eTeczDHhGzWhcLRHsoT3BPd2IgbPKEmQfKzyBWARIWD9QLtFPV7HNEiMIWWKiS7NFh/w6uTZZIpJDkusEE/8v5zwcBRpDleoB1dOQEEMa6FrFplMJVqFW1L9gn9UBixNtWBVWbGaN7ZK/OtLjUipJXgt5d+nMylo1+kByJvsS4egCoK+M=' target='_blank' title="Ensure product quality with Testex&#39;s wide range of testing solutions | Know More" placementid="14395" adsid="2575" displayorder="3" pcstartdate="29/10/2024" pcenddate="29/10/2024" platform="Desktop" channel="F2F" region="All" zone="TextAd" campaigncode="TESTEX AG_ Swiss Textile Testing Institute - 2024" companyname="TESTEX AG, Swiss Textile Testing Institute" uid="800632" country="Switzerland" zonedesc="Text Ads"> Ensure product quality with Testex&#39;s wide range of testing solutions | Know More <img style='display: block; height:1px !important; width:1px !important;' src='https://adsclick.fibre2fashion.com/Images/spacer.gif' class='gaTracking' /> </a> </div> <div class="swiper-slide" id="slide-1"> <a class="gaclicktracking" href='https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqdvA3kOGpXB05uRU5AsVSezjFGqtnIhOukTYitR7xKul9JX4/XrV8Z2Qdnf50Rwr9AxD8/7/au13Kawoh8x4OHymN5WkBt20GnRCYDyWLoq8LV0xgbZZEQYq+KdaVWJPXwPnfIImY4Fm3YWIK+ICPl88WZ9XRMAEX0Q4OwrluwW9y2JaMIpEsmhQK9OSXMrdRfTEkp8uMj2s4uGorEgrRDwgdyPumFIbW05xF9co65PEpEV7jKsrbI/EqzgCydvjL5B6lO65R9RVGNP4iq+2SXYkPZBjXRPtCGfQb68fnoXpX6qU3nmzqL1vwtJ/Il/LRZZLf0vn+/CXU0rm7vhSs4BgupxWVIGSUpmZc8vZBLQzO+SbWkOE2pbwT1bo3AEXrd89jcv0Vo0os3Au0cDi7TxFdwjG8gR2YM9vhtZTE8L0aaPOs5QvntIiUc2EjOeH47kVnrZjogp8W7nJZTCItC3ZtVg8BXZ3xobz97vDeG64=' target='_blank' title="Texworld Apparel Sourcing Paris Weaving the Future | Get Your Free Badge" placementid="14446" adsid="2596" displayorder="2" pcstartdate="14/11/2024" pcenddate="14/11/2024" platform="Desktop" channel="F2F" region="All" zone="TextAd" campaigncode="Messe Frankfurt France - 24-25" companyname="Messe Frankfurt France" uid="884755" country="France" zonedesc="Text Ads"> Texworld Apparel Sourcing Paris Weaving the Future | Get Your Free Badge <img style='display: block; height:1px !important; width:1px !important;' src='https://adsclick.fibre2fashion.com/Images/spacer.gif' class='gaTracking' /> </a> </div> <div class="swiper-slide" id="slide-2"> <a class="gaclicktracking" href='https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqTeVhOocKBic23uKdQd6WIar2vuftX9BkVLvCw7aL4yHeD55WSVjMvxZv7T0gOlBWQw16N7PUqtbJu90o/vfZmRsj2tn3sAZtCdeuafdfz69jGK9+HWAlJ9WnpXwto2iERjr8WlX0NpeThrAyCsIf/fk5cmEw6zrvWsG8hH9Hv3a77/rIRs5pFuapNXY65A9fmR2c8oDOh0+k3+3e9/d4ZbpvME0vM37io+1+zWrKtzOg4mAWkPKsF0UpB28Tvi8ISb+BJ/jNyvw4e4vf1TS50lUq1+43xqm906+O3lQPkujETU4I/dT6lH5Gdjv8U1LKXiYCsPtvseZ/cPCIClXgI+/Y0smb7/e9QoP3eom4F38BITo9HD6ZZAnmrvM7Aa0ifOMXEGsm0jO3wWTgtbsD3DVrsWn8o2uei3QEDeitOuM8roVzw0a0oGJe6ufxgWhDLM+oOjiNifEiZIlVcCtHDv1auAq12O9l1g9x1mzM/qa0thzoZi1wBVvb/mjdqO2v9bBLWTPPMolwow+1HSR10e9/6R8FMWtPdOMRJ/4yG5yNSLhMfqJLwIg9ptJP+Qq29ivhZnrDjTY=' target='_blank' title="Discover the Oeko-Tex Labelling Guide for Your Products | Learn More" placementid="14471" adsid="2587" displayorder="1" pcstartdate="19/11/2024" pcenddate="19/11/2024" platform="Desktop" channel="F2F" region="All" zone="TextAd" campaigncode="OEKO-TEX Service GmbH - 24" companyname="OEKO-TEX Service GmbH" uid="908805" country="Switzerland" zonedesc="Text Ads"> Discover the Oeko-Tex Labelling Guide for Your Products | Learn More <img style='display: block; height:1px !important; width:1px !important;' src='https://adsclick.fibre2fashion.com/Images/spacer.gif' class='gaTracking' /> </a> </div> <script> var swiper = new Swiper('#slideshow1 .swiper-container', { direction: 'vertical', mousewheelControl: true, loop: true, autoplay: { delay: 5, disableOnInteraction: false }, slidesPerView: 'auto', grabCursor: true, mousewheelControl: true, keyboardControl: true, speed: 1000, autoplay: 10000, slidesPerView: 'auto', parallax: false, // freeMode: true, // freeModeSticky: true }); </script> </div> </div> </div> </span> </div> <div class="top-header-right"> <ul> <li> <a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon&quot;,&quot;F2FSection&quot;:&quot;Header&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;LinkedIn&quot;}" target="_blank" itemprop="sameAs" href="https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqMRZW4UcT4tJyXrC7wetq2g/f5PxccIrdSTgubU0MnWNAtMjRQhpzFV1mCe2QDZXSGeTGRENhpRN/7SKysz2j6mam+U0z1DDKqXzaBDMYfBMgAJ0GcoO2xIJnrtoRLz0a3zeoljvBpdVZhjpqT6MOoJ3UnioFRyg/tjYuDcWbGVu46pD8gmgj3quhb/OKM+sqccgn8wfayouL1UXZy+UW6jEYgOWplbbPRP2PetZ2oRxR5H1u4rCcif/EPBBAazPI6uy8uswS4rqoyd0br4rx7QoQzL90X1anSsfAZNELU82dun+xfwiDIeC2gr9QsOpUWdsIL+DWeSxqur95wi2n/rGnZImZVNggOZcRMO0LDTqy3Tm4+5AFFVTx/GJ7aurUA6UfN0obFA6yYbEhYqCoN7GMz3M+sf3abePoxRbacnfmDKmj1HKmMeG8n54iUlAHRfc2W1a48Ek="> <img width="122" height="27" src="https://static.fibre2fashion.com/staticresources/images/followusonlinkedin.png" alt="Linkdin" title="Linkdin"> </a> </li> <li class="weglotdiv multilanguage"></li> <script defer> var Weglot = function () { "use strict"; var e = { v1: [], v2: ["ABBR", "ACRONYM", "B", "BDO", "BIG", "CITE", "EM", "I", "KBD", "Q", "SMALL", "STRONG", "SUB", "SUP", "U"], v3: ["A", "BDI", "BR", "DEL", "DFN", "INS", "S", "SPAN"] }; e.v2.unshift("#text"); var t = e, n = { excluded_blocks: [], media_enabled: !1, external_enabled: !1, extra_definitions: [], translation_engine: 2, noTranslateAttribute: "data-wg-notranslate", mergeNodes: [] }, r = { ddtags: "env:prod", clientToken: "pub4efaec96ce2494088ba70a2049d58dc3", site: "datadoghq.com" }, o = { "dd-api-key": "pub4efaec96ce2494088ba70a2049d58dc3", ddsource: "browser" }, a = "prod"; function i(e) { var t = e.service; function n(e, n, i) { var c = i.sendToConsole; void 0 === c && (c = !0); var s = i.consoleOverride, l = i.sendToDatadog; if (void 0 === l && (l = !0), l && "dev" !== a && function (e, t, n) { "string" == typeof t && (t = { message: t }); var a = Object.assign({}, t, { service: e, status: n }, window.location && { view: { url: window.location.href } }, t.message && { message: t.message }, t.stack && { stack: t.stack }, t.status && { logStatus: t.status }, r); window.Weglot && window.Weglot.options && (a.projectInfo = ["host", "api_key", "url_type", "technology_name", "technology_id", "is_connect", "auto_switch"].reduce((function (e, t) { var n; return Object.assign({}, e, ((n = {})[t] = window.Weglot.options[t], n)) }), {})); var i = Object.keys(o).map((function (e) { return e + "=" + o[e] })).join("&"); fetch("https://http-intake.logs.datadoghq.com/api/v2/logs?" + i, { method: "POST", body: JSON.stringify(a), headers: { "Content-Type": "application/json" } }) }(t, e, n), c) { var u = s || e, f = ["notice", "info"].includes(n) ? "log" : n; console[f]("[Weglot]", u) } } var i = function (e) { return function (t, r) { return void 0 === r && (r = {}), n(t, e, r) } }; return { log: i("info"), info: i("info"), notice: i("notice"), warn: i("warn"), error: i("error") } } var c = i({ service: "html-parser-engine" }), s = function () { try { return JSON.parse('{"TRANSLATION":"translations.weglot.io","SWITCHER":"switchers.weglot.io","EXCLUSION":"exclusions.weglot.io","DEFINITION":"definitions.weglot.io"}') } catch (e) { return {} } }(), l = Object.keys(s).map((function (e) { return s[e] })); function u(e) { for (var t = 0, n = l; t < n.length; t += 1) { var r = n[t]; if (-1 !== e.indexOf(r)) return !0 } return !1 } function f(e, t, n) { var r = t && t[e]; if (r && r.textContent === t.textContent) return r.result; var o = n(t); return t ? (t[e] = { result: o, textContent: t.textContent }, o) : o } function d(e) { return f("__validMergeNodes", e, (function (e) { return e && p(e) && g(e) && !function (e) { return f("__containsNoTranslateNodes", e, (function (e) { return 1 === e.nodeType && (!!e.querySelector("[" + n.noTranslateAttribute + "]") || h(e)) })) }(e) })) } function g(e, t) { return void 0 === t && (t = !0), f("__validTextNodes", e, (function (e) { return !(!e.textContent || t && !e.textContent.trim() || -1 !== e.textContent.indexOf("BESbswy") || e.parentNode && e.parentNode.nodeName && -1 !== ["script", "style", "noscript"].indexOf(e.parentNode.nodeName.toLowerCase()) || function (e) { if (!(e = e.trim())) return !1; var t = e.charAt(0); if ("[" !== t && "{" !== t) return !1; var n = e[e.length - 1]; if ("]" !== n && "}" !== n) return !1; return e = e.replace(/\\(?:["\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""), /^[\],:{}\s]*$/.test(e) }(e.textContent)) })) } function _(e) { try { if (n.mergedSelectorRemove && e.closest && e.closest(n.mergedSelectorRemove)) return !1 } catch (e) { } return !(!n.mergeNodes || -1 === n.mergeNodes.indexOf(e.nodeName)) || (e.dataset && e.dataset.wgMerge || n.selectorMerging && e.matches && e.matches(n.selectorMerging)) } function p(e) { return f("__onlyInlineChildsNodes", e, (function (e) { if (!e.childNodes) return !0; for (var t = 0, n = e.childNodes; t < n.length; t += 1) { var r = n[t]; if (r.weglot || !_(r) || !p(r)) return !1 } return !0 })) } function h(e) { if (!e.children) return !1; for (var t = 0, n = e.children; t < n.length; t += 1) { var r = n[t]; if (r.wgNoTranslate || h(r)) return !0 } return !1 } function m(e) { return !!e && (!!e.wgNoTranslate || m(e.parentNode)) } function v(e) { if (!e) return !1; var t = e.closest ? e : e.parentNode; return !!(t && t.closest && t.closest("[" + n.noTranslateAttribute + "]")) || m(e) } var w = function (e, t) { return function (n, r) { try { var o = r; return -1 !== o.indexOf(":") && (o = o.replace(/([^\\]):/g, "$1\\:")), n[e] ? n[e](o) : t } catch (o) { try { return n[e] ? n[e](r) : t } catch (e) { c.warn(e, { consoleOverride: "Your CSS rules are incorrect: " + r, sendToDatadog: !1 }) } } return t } }, y = w("querySelectorAll", []), b = w("matches", !1); var k = new WeakMap; function E(e) { if (!e) return []; var t = e.querySelectorAll ? e : e.parentNode; if (!t) return []; if (function (e) { var t = n.excluded_blocks; if (t && t.length) { var r = t.map((function (e) { return e.value })), o = r.join(","); if (b(e, o)) { if (n.private_mode) { var a = r.find((function (t) { return b(e, t) })); e.wgNoTranslate = "Excluded by selector: " + a } else e.wgNoTranslate = !0; return } var i = y(e, o); if (i) for (var c = function () { var e = l[s]; if (n.private_mode) { var t = r.find((function (t) { return b(e, t) })); e.wgNoTranslate = "Excluded by selector: " + t } else e.wgNoTranslate = !0 }, s = 0, l = i; s < l.length; s += 1)c() } }(t), !n.whitelist || !n.whitelist.length) return [].concat(function (e) { var t = document.getElementsByTagName("title")[0]; if (e !== document.documentElement || !document.title || !t || v(t)) return []; return [{ element: t.firstChild, type: 9, words: t.textContent, properties: {} }] }(t), C(t)); var r = n.whitelist.map((function (e) { return e.value })).join(","); if (t.closest && t.closest(r)) return C(t); for (var o = [], a = 0, i = y(t, r); a < i.length; a += 1) { var c = i[a];[].push.apply(o, C(c)) } return o } function C(e) { return [].concat(function (e) { var t = []; return U.forEach((function (n) { for (var r, o, a, i = n.attribute, c = n.type, s = n.selectors, l = 0, u = (r = e, o = [], a = s.join(","), r.matches && r.matches(a) && o.push(r), r.childElementCount > 0 && o.push.apply(o, r.querySelectorAll(a)), o); l < u.length; l += 1) { var f = u[l]; if (!v(f)) { var d = i.get(f); L(d) || t.push({ element: f, words: d, type: c, attrSetter: i.set, attrName: i.name }) } } })), t }(e), function (e) { var t, r = [], o = n.translation_engine >= 2, a = document.createTreeWalker(e, 4, x, !1); for (; t = a.nextNode();) { var i = (o && (_(t.parentNode) || t.parentNode.childNodes.length > 1) ? S : O)(t, a); i && r.push(i) } return r }(e)) } function x(e) { return !g(e) || v(e) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT } function S(e, t) { var r = function (e) { if (e.wgResolved) return !1; var t = e; do { if (t.wgResolved) return t; t = t.parentElement || t.parentNode } while (null !== t && 1 === t.nodeType); return !1 }(e); if (r && k.has(r)) { var o = k.get(r); return { element: o[0], words: o[1], type: 1, properties: o[2] } } var a = function (e, t) { var r = [], o = e; for (; d(e.parentNode);)e = e.parentNode, o.textContent.trim() !== e.textContent.trim() && (o = e); o.textContent.trim() === e.textContent.trim() && (e = o); for (; t.nextNode();)if (!e.contains || !e.contains(t.currentNode)) { t.previousNode(); break } var a = e.cloneNode(!0); if (n.translation_engine > 2) { N(e, (function (e) { if (1 === e.nodeType) { var t = function (e) { for (var t = [], n = 0, r = e.attributes; n < r.length; n += 1) { var o = r[n]; t.push(o) } return t }(e); r.push({ attributes: t, child: e }) } })); var i = 1; N(a, (function (e) { 1 === e.nodeType && (!function (e) { if (!e.attributes) return e; for (; e.attributes.length > 0;)e.removeAttribute(e.attributes[0].name) }(e), e.setAttribute("wg-" + i++, "")) })) } if (e) { return e.wgResolved = !0, [e, (a.innerHTML || a.textContent || "").replace(/<!--[^>]*-->/g, ""), r] } }(e, t); if (a) { var i = a[0], c = a[1], s = a[2]; if (!L(c)) return k.set(i, a), { element: i, words: c, type: 1, properties: s } } } function O(e) { var t = e.textContent; if (!L(t)) return { element: e, words: t, type: 1, properties: {} } } function N(e, t) { if (e.childNodes) for (var n = 0, r = e.childNodes; n < r.length; n += 1) { var o = r[n]; if (!o) return; t(o), N(o, t) } } function L(e) { return !e || !e.trim() || !isNaN(e) || "​" === e } function T(e, t) { for (var n = 0, r = e; n < r.length; n += 1) { var o = r[n], a = o.weglot.content; if (a && o.isConnected) { for (var i = 0, c = a; i < c.length; i += 1) { var s = c[i], l = s.original, u = s.properties, f = s.attrSetter, d = s.translations[t] || l; u && (o.weglot.setted = !0, A(o, d, u, e)), f && (o.weglot.setted = !0, f(o, d, l)) } o.wgResolved = !1 } } } function A(e, t, n, r) { if (1 === e.nodeType) { var o = function (e, t, n) { var r = document.createElement("div"); return r.innerHTML = e, j(t, r, n) }(t, e, n); return e.innerHTML = "", void e.appendChild(o) } if (-1 !== t.indexOf("<") && -1 !== t.indexOf(">")) { if (!e.parentNode) return c.warn("Unable to translate some words, please contact support@weglot.com."), void c.warn(e, { sendToDatadog: !1 }); if (1 === e.parentNode.childNodes.length) return e.parentNode.weglot = e.weglot, void (r ? r.push(e.parentNode) : A(e.parentNode, t, n)); var a = e.closest && e.closest("[data-wg-translation-wrapper]") || e.parentNode.closest("[data-wg-translation-wrapper]"); if (!a || a.innerHTML !== t) { var i = document.createElement("span"); i.dataset.wgTranslationWrapper = "", i.weglot = e.weglot, e.parentNode.replaceChild(i, e), r ? r.push(i) : A(e.parentNode, t, n) } } else e.textContent = t } function j(e, t, n) { var r = document.createDocumentFragment(); if (1 !== e.nodeType) return r.appendChild(t), r; for (var o = t.childNodes.length, a = 0; a < o; a++) { var i, s = t.firstChild; if (i = P(s)) { var l = n[i - 1]; if (!l) continue; var u = l.used ? l.child.cloneNode(!0) : l.child, f = j(u, s, n); if (f.contains(u)) return c.error("There is an HTML error in the translation of: " + e.innerHTML), r; u.innerHTML = "", u.appendChild(f), r.appendChild(u), document.createDocumentFragment().appendChild(s), l.used = !0 } else r.appendChild(s) } return r } function P(e) { if (e && 1 === e.nodeType && e.attributes && e.attributes[0]) { var t = parseInt(e.attributes[0].name.split("wg-")[1]); return isNaN(t) ? void 0 : t } } function I(e) { return { name: e, get: function (t) { return t.getAttribute(e) }, set: function (t, n) { return t.setAttribute(e, n) } } } function R(e, t) { if (e.parentNode && "PICTURE" === e.parentNode.tagName) for (var n = 0, r = e.parentNode.children; n < r.length; n += 1) { var o = r[n]; "SOURCE" === o.tagName && (o.getAttribute("srcset") && o.setAttribute("srcset", t)) } } function D(e) { return e && e.split && e.split("www.")[1] || e } function W(e) { var t = [{ type: 1, selectors: ["[title]"], attribute: I("title") }, { type: 2, selectors: ["input[type='submit']", "input[type='button']", "button"], attribute: I("value") }, { type: 3, selectors: ["input[placeholder]", "textarea[placeholder]"], attribute: I("placeholder") }, { type: 4, selectors: ["meta[name='description']", "meta[property='og:description']", "meta[property='og:site_name']", "meta[property='og:image:alt']", "meta[name='twitter:description']", "meta[itemprop='description']", "meta[itemprop='name']"], attribute: I("content") }, { type: 7, selectors: ["img"], attribute: I("alt") }, { type: 8, selectors: ["[href$='.pdf']", "[href$='.docx']", "[href$='.doc']"], attribute: I("href") }, { type: 9, selectors: ["meta[property='og:title']", "meta[name='twitter:title']"], attribute: I("content") }]; if (!e) return t; if (e.media_enabled && t.push({ type: 5, selectors: ["youtube.com", "youtu.be", "vimeo.com", "dailymotion.com"].map((function (e) { return "iframe[src*='" + e + "']" })), attribute: I("src") }, { type: 6, selectors: ["img", "source"], attribute: { name: "src", get: function (e) { var t = e.getAttribute("src"); if (!t || !t.split) return ""; if (0 === t.indexOf("data:image")) return ""; var n = t.split("?"); return n[1] && (e.queryString = n[1]), n[0] }, set: function (e, t, n) { var r = e.getAttribute("src"), o = e.getAttribute("srcset"); if (t === n) { if (e.removeAttribute("data-wgtranslated"), e.isChanged) { var a = "" + t + (e.queryString ? "?" + e.queryString : ""); e.setAttribute("src", a), R(e, a), e.hasAttribute("wgsrcset") && (e.setAttribute("srcset", e.getAttribute("wgsrcset") || e.dataset.srcset), e.removeAttribute("wgsrcset")) } } else r.split("?")[0] !== t && n !== t && (e.setAttribute("src", t), R(e, t), e.hasAttribute("srcset") && (e.setAttribute("wgsrcset", o), e.setAttribute("srcset", "")), e.dataset.wgtranslated = !0, e.isChanged = !0) } } }, { type: 6, selectors: ["meta[property='og:image']", "meta[property='og:logo']"], attribute: I("content") }, { type: 6, selectors: ["img"], attribute: I("srcset") }), e.translate_aria && t.push({ type: 1, selectors: ["[aria-label]"], attribute: I("aria-label") }), e.external_enabled) { var n = D(function () { var e = window.location, t = e.hostname, n = e.search; if (!u(t) || !n) return t; var r = decodeURIComponent(n).match(/url=https?:\/\/([^/]+)/); return r ? r[1] : (c.warn("[Weglot] Unable to get current hostname"), t) }()); t.push({ type: 10, selectors: ["iframe"], attribute: I("src") }, { type: 10, selectors: ["a[rel=external]"], attribute: I("href") }, { type: 10, selectors: ['[href^="mailto"]'], attribute: I("href") }, { type: 10, selectors: ['[href^="tel"]'], attribute: I("href") }, { type: 10, selectors: ["http:", "https:", "//"].map((function (e) { return '[href^="' + e + '"]:not(link)' })), attribute: { name: "href", get: function (e) { if (!e.href || !e.href.split) return ""; var t = e.href.split("/")[2]; return t && D(t) !== n ? e.getAttribute("href") : "" }, set: function (e, t) { return e.setAttribute("href", t) } } }) } if (e.extra_definitions && e.extra_definitions.length) for (var r = function () { var e = a[o], n = e.type, r = e.selector, i = e.attribute; i && r ? t.push({ type: n, selectors: [r], attribute: { name: i, get: function (e) { return e.getAttribute(i) }, set: function (e, t) { return e.setAttribute(i, t) } } }) : c.warn("Each extra definition option needs at least {attribute,selector} https://bit.ly/2yDsLxy", { sendToDatadog: !1 }) }, o = 0, a = e.extra_definitions; o < a.length; o += 1)r(); return t } x.acceptNode = x; var U = []; function H(e, r) { if (!r || !r.translation_engine) throw "translation_engine is required"; var o; return Object.assign(n, r), n.document = e, n.mergeNodes = (o = r.translation_engine, t.v2.unshift("#text", "#comment"), Object.keys(t).reduce((function (e, n, r) { return o >= r + 1 && [].push.apply(e, t[n]), e }), [])), Array.isArray(n.extra_merged_selectors) && (n.selectorMerging = r.extra_merged_selectors.filter((function (e) { return e && "string" == typeof e })).join(",")), r.merged_selectors_remove && (n.mergedSelectorRemove = r.merged_selectors_remove.map((function (e) { return e.value })).join(",")), { getTextNodes: E, setTextNodes: T, definitions: U = W(n) } } var M = i({ service: "js-library" }), q = "https://cdn.weglot.com/projects-settings/", z = "preview.weglot.io", F = "wglang", B = "wg-style-trans", $ = "data-wg-notranslate", V = "wg-translations", G = "wg-slugs", J = "Shopify", Y = "BigCommerce", K = "Jimdo", X = "Squarespace", Z = "Wix", Q = "Webflow", ee = "Square Online", te = "Bubble", ne = "Salesforce", re = ["excluded_blocks", "excluded_blocks_remove", "dynamics", "excluded_paths", "dangerously_force_dynamic", "extra_definitions", "translate_event"], oe = ["polyfillReady", "languageChanged", "initialized", "start", "switchersReady"], ae = { button_style: { full_name: !0, with_name: !0, is_dropdown: !0, with_flags: !1, flag_type: "" }, switchers: [], auto_switch: !1, auto_switch_fallback: "", excluded_blocks: [], excluded_blocks_remove: [], whitelist: [], translate_event: [{ selector: "[data-wg-translate-event]", eventName: null }], customer_tag: !1, order_tag: !0, dynamics: [], excluded_paths: [], wait_transition: !0, hide_switcher: !1, translate_search: !1, media_enabled: !1, search_forms: "", cache: !1, live: !0, loading_bar: !0, search_parameter: "", translation_engine: 2, override_hreflang: !0 }, ie = ["none", "shiny", "square", "circle", "rectangle_mat"], ce = {}; !function (e) { var t = function () { try { return !!Symbol.iterator } catch (e) { return !1 } }(), n = function (e) { var n = { next: function () { var t = e.shift(); return { done: void 0 === t, value: t } } }; return t && (n[Symbol.iterator] = function () { return n }), n }, r = function (e) { try { return encodeURIComponent(e).replace(/%20/g, "+") } catch (t) { return e } }, o = function (e) { try { return decodeURIComponent(String(e).replace(/\+/g, " ")) } catch (t) { return e } }; (function () { try { var t = e.URLSearchParams; return "a=1" === new t("?a=1").toString() && "function" == typeof t.prototype.set && "function" == typeof t.prototype.entries } catch (e) { return !1 } })() || function () { var o = function (e) { Object.defineProperty(this, "_entries", { writable: !0, value: {} }); var t = typeof e; if ("undefined" === t); else if ("string" === t) "" !== e && this._fromString(e); else if (e instanceof o) { var n = this; e.forEach((function (e, t) { n.append(t, e) })) } else { if (null === e || "object" !== t) throw new TypeError("Unsupported input's type for URLSearchParams"); if ("[object Array]" === Object.prototype.toString.call(e)) for (var r = 0; r < e.length; r++) { var a = e[r]; if ("[object Array]" !== Object.prototype.toString.call(a) && 2 === a.length) throw new TypeError("Expected [string, any] as entry at index " + r + " of URLSearchParams's input"); this.append(a[0], a[1]) } else for (var i in e) e.hasOwnProperty(i) && this.append(i, e[i]) } }, a = o.prototype; a.append = function (e, t) { e in this._entries ? this._entries[e].push(String(t)) : this._entries[e] = [String(t)] }, a.delete = function (e) { delete this._entries[e] }, a.get = function (e) { return e in this._entries ? this._entries[e][0] : null }, a.getAll = function (e) { return e in this._entries ? this._entries[e].slice(0) : [] }, a.has = function (e) { return e in this._entries }, a.set = function (e, t) { this._entries[e] = [String(t)] }, a.forEach = function (e, t) { var n; for (var r in this._entries) if (this._entries.hasOwnProperty(r)) { n = this._entries[r]; for (var o = 0; o < n.length; o++)e.call(t, n[o], r, this) } }, a.keys = function () { var e = []; return this.forEach((function (t, n) { e.push(n) })), n(e) }, a.values = function () { var e = []; return this.forEach((function (t) { e.push(t) })), n(e) }, a.entries = function () { var e = []; return this.forEach((function (t, n) { e.push([n, t]) })), n(e) }, t && (a[Symbol.iterator] = a.entries), a.toString = function () { var e = []; return this.forEach((function (t, n) { e.push(r(n) + "=" + r(t)) })), e.join("&") }, e.URLSearchParams = o }(); var a = e.URLSearchParams.prototype; "function" != typeof a.sort && (a.sort = function () { var e = this, t = []; this.forEach((function (n, r) { t.push([r, n]), e._entries || e.delete(r) })), t.sort((function (e, t) { return e[0] < t[0] ? -1 : e[0] > t[0] ? 1 : 0 })), e._entries && (e._entries = {}); for (var n = 0; n < t.length; n++)this.append(t[n][0], t[n][1]) }), "function" != typeof a._fromString && Object.defineProperty(a, "_fromString", { enumerable: !1, configurable: !1, writable: !1, value: function (e) { if (this._entries) this._entries = {}; else { var t = []; this.forEach((function (e, n) { t.push(n) })); for (var n = 0; n < t.length; n++)this.delete(t[n]) } var r, a = (e = e.replace(/^\?/, "")).split("&"); for (n = 0; n < a.length; n++)r = a[n].split("="), this.append(o(r[0]), r.length > 1 ? o(r[1]) : "") } }) }(ce), function (e) { if (function () { try { var t = new e.URL("b", "http://a"); return t.pathname = "c d", "http://a/c%20d" === t.href && t.searchParams } catch (e) { return !1 } }() || function () { var t = e.URL, n = function (t, n) { "string" != typeof t && (t = String(t)), n && "string" != typeof n && (n = String(n)); var r, o = document; if (n && (void 0 === e.location || n !== e.location.href)) { n = n.toLowerCase(), (r = (o = document.implementation.createHTMLDocument("")).createElement("base")).href = n, o.head.appendChild(r); try { if (0 !== r.href.indexOf(n)) throw new Error(r.href) } catch (e) { throw new Error("URL unable to set base " + n + " due to " + e) } } var a = o.createElement("a"); a.href = t, r && (o.body.appendChild(a), a.href = a.href); var i = o.createElement("input"); if (i.type = "url", i.value = t, ":" === a.protocol || !/:/.test(a.href) || !i.checkValidity() && !n) throw new TypeError("Invalid URL"); Object.defineProperty(this, "_anchorElement", { value: a }); var c = new e.URLSearchParams(this.search), s = !0, l = !0, u = this;["append", "delete", "set"].forEach((function (e) { var t = c[e]; c[e] = function () { t.apply(c, arguments), s && (l = !1, u.search = c.toString(), l = !0) } })), Object.defineProperty(this, "searchParams", { value: c, enumerable: !0 }); var f = void 0; Object.defineProperty(this, "_updateSearchParams", { enumerable: !1, configurable: !1, writable: !1, value: function () { this.search !== f && (f = this.search, l && (s = !1, this.searchParams._fromString(this.search), s = !0)) } }) }, r = n.prototype;["hash", "host", "hostname", "port", "protocol"].forEach((function (e) { !function (e) { Object.defineProperty(r, e, { get: function () { return this._anchorElement[e] }, set: function (t) { this._anchorElement[e] = t }, enumerable: !0 }) }(e) })), Object.defineProperty(r, "search", { get: function () { return this._anchorElement.search }, set: function (e) { this._anchorElement.search = e, this._updateSearchParams() }, enumerable: !0 }), Object.defineProperties(r, { toString: { get: function () { var e = this; return function () { return e.href } } }, href: { get: function () { return this._anchorElement.href.replace(/\?$/, "") }, set: function (e) { this._anchorElement.href = e, this._updateSearchParams() }, enumerable: !0 }, pathname: { get: function () { return this._anchorElement.pathname.replace(/(^\/?)/, "/") }, set: function (e) { this._anchorElement.pathname = e }, enumerable: !0 }, origin: { get: function () { var e = { "http:": 80, "https:": 443, "ftp:": 21 }[this._anchorElement.protocol], t = this._anchorElement.port != e && "" !== this._anchorElement.port; return this._anchorElement.protocol + "//" + this._anchorElement.hostname + (t ? ":" + this._anchorElement.port : "") }, enumerable: !0 }, password: { get: function () { return "" }, set: function (e) { }, enumerable: !0 }, username: { get: function () { return "" }, set: function (e) { }, enumerable: !0 } }), n.createObjectURL = function (e) { return t.createObjectURL.apply(t, arguments) }, n.revokeObjectURL = function (e) { return t.revokeObjectURL.apply(t, arguments) }, e.URL = n }(), void 0 !== e.location && !("origin" in e.location)) { var t = function () { return e.location.protocol + "//" + e.location.hostname + (e.location.port ? ":" + e.location.port : "") }; try { Object.defineProperty(e.location, "origin", { get: t, enumerable: !0 }) } catch (n) { setInterval((function () { e.location.origin = t() }), 100) } } }(ce); var se = ce.URL, le = function (e, t) { return function (n, r) { if (!n || !n[e] || !r) return t; try { return n[e](r) } catch (e) { M.error(e, { consoleOverride: "The CSS selectors that you provided are incorrect: " + r, sendToDatadog: !1 }) } return t } }, ue = le("querySelectorAll", []), fe = le("querySelector", null), de = le("closest", null), ge = function (e) { return document.getElementById(e) }; function _e(e) { e && e.parentNode && e.parentNode.removeChild(e) } function pe(e) { e = "" + e; return ["&nbsp;", "&amp;", "&quot;", "&lt;", "&gt;"].some((function (t) { return -1 !== e.indexOf(t) })) ? e.replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&quot;/g, '"').replace(/&lt;/g, "<").replace(/&gt;/g, ">") : e } function he(e) { var t = window.location.search.slice(1).split("&").map((function (e) { return e && e.split("=") })).find((function (t) { return t[0] === e })); return t && t[1] } function me() { try { if (window.frameElement || window.self !== window.top) return "with-window-top" } catch (e) { return "no-window-top" } } function ve(e, t) { var n = document.createElement("style"); _e(ge(t)), n.id = t, n.type = "text/css", n.styleSheet ? n.styleSheet.cssText = e : n.appendChild(document.createTextNode(e)), document.head.appendChild(n) } var we = function () { return /google|facebook|bing|yahoo|baidu|yandex|lighthouse/i.test(navigator.userAgent) }; function ye(e) { try { document.createDocumentFragment().querySelector(e) } catch (e) { return !1 } return !0 } var be = function (e, t, n) { var r = new se(e, location.href); return r.searchParams.set(t, n), "" + r.pathname + r.search }; function ke(e) { "loading" !== document.readyState ? e() : document.addEventListener("DOMContentLoaded", (function () { return e() })) } var Ee = function (e, t) { var n; return void 0 === t && (t = 1e3), function () { for (var r = this, o = [], a = arguments.length; a--;)o[a] = arguments[a]; clearTimeout(n), n = setTimeout((function () { e.apply(r, o) }), t) } }, Ce = function (e) { var t = (new Date).getTime().toString(); try { var n = e.contentWindow; return n[t] = "asd", "asd" === n[t] } catch (e) { return !1 } }; var xe = {}, Se = function (e, t) { xe[e] = t }, Oe = function (e, t) { if (xe[e]) return xe[e](t) }; var Ne, Le = {}; try { document.cookie, Ne = !0 } catch (lr) { Ne = !1 } Le.set = function (e, t, n, r, o) { Ne && (e = e.replace(/[^+#$&^`|]/g, encodeURIComponent).replace("(", "%28").replace(")", "%29"), t = t.toString().replace(/[^+#$&/:<-[\]-}]/g, encodeURIComponent), !n && xt.is_connect && (xt.subdomain ? n = xt.host.split("www.").pop() : xt.subdirectory && (n = xt.host)), n = n ? ";domain=" + n : "", o = o ? ";expires=" + o : "", r = r || "", document.cookie = e + "=" + t + n + ";path=/" + r + o + ";SameSite=None;Secure") }, Le.get = function (e) { if (!Ne) return null; for (var t = document.cookie.split(";"); t.length;) { var n = t.pop(), r = n.indexOf("="); if (r = r < 0 ? n.length : r, decodeURIComponent(n.slice(0, r).replace(/^\s+/, "")) === e) return decodeURIComponent(n.slice(r + 1)) } return null }, Le.erase = function (e, t, n) { Le.set(e, "", t, n, "Thu, 01 Jan 1970 00:00:00 GMT") }; var Te = []; function Ae(e, t, n) { if (e) return n(); je(t, n, !0) } function je(e, t, n) { return "function" != typeof t ? (M.error("You should provide a callback function as second argument", { sendToDatadog: n }), !1) : !n && oe.indexOf(e) < 0 ? (M.error("No Weglot event is named " + e, { sendToDatadog: !1 }), !1) : (Te.push({ name: e, callback: t, internal: n }), !0) } function Pe(e) { for (var t = [], n = arguments.length - 1; n-- > 0;)t[n] = arguments[n + 1]; for (var r = Te.filter((function (t) { return t.name === e })), o = 0, a = r; o < a.length; o += 1) { var i = a[o]; try { i.callback.apply(i, t) } catch (e) { if (i.internal) throw e; M.error("Error triggering callback function: " + e, { sendToDatadog: !1 }) } } } function Ie() { if (!u(window.location.hostname) || !document.baseURI) { var e = window.location; return { url: e.href, hostname: e.hostname, pathname: e.pathname, search: e.search } } var t = new se(document.baseURI), n = t.hostname, r = t.pathname, o = t.search; return { url: document.baseURI, hostname: n, pathname: r, search: o } } var Re = Ie(); Ae(xt && Object.keys(xt).length > 0, "onOptionsReady", (function () { if (xt.dynamicPushState) { var e = history.pushState; history.pushState = function () { for (var t = [], n = arguments.length; n--;)t[n] = arguments[n]; e.apply(history, t); var r = Ie(); Re.hostname = r.hostname, Re.pathname = r.pathname, Re.url = r.url, Pe("onCurrentLocationChanged") } } })); var De, We = {}; function Ue(e) { var t = 1; return e.replace(/\((.*?)\)/g, (function () { return "$" + t++ })) } function He() { var e = Re.pathname, t = xt.localeRules; void 0 === t && (t = []); var n = xt.languages, r = { position: 0, translatedFormat: "CODE", originalFormat: "", addedByDefault: !0 }, o = xt.language_from; if (t.length) { var a = []; t.map((function (e) { var t = e.position, n = e.translatedFormat; n && "CODE" !== n && a.push(t || 0) })); var i = a.filter((function (e, t, n) { return n.indexOf(e) === t })).map((function (e) { return Object.assign({}, r, { position: e }) })); t.unshift.apply(t, i) } else t.push(r); var c = null, s = null, l = t.find((function (t) { var r = t.position; void 0 === r && (r = 0); var a = t.translatedFormat; void 0 === a && (a = "CODE"); var i = t.originalFormat; void 0 === i && (i = ""); var l = t.addedByDefault; if (!a.includes("CODE")) return !1; var u = e.split("/"); if (u.length <= r) return !1; var f = u[r + 1], d = n.find((function (e) { var t = e.custom_code || e.language_to, n = a.replace("CODE", t), r = new RegExp("^" + n + "$", "g"); return !!r.test(f) && (s = r, !0) })); if (d) return c = d.custom_code || d.language_to, !0; if (i) { var g = i.replace("CODE", o); return new RegExp("^" + g + "$", "g").test(f) } return !l })) || r; return We.convertLocale = function (t, n, r, a) { if (void 0 === n && (n = e), void 0 === r && (r = c || o), void 0 === a && (a = null), r === t) return n; var i = l.position; void 0 === i && (i = 0); var u = l.originalFormat; void 0 === u && (u = ""); var f = l.translatedFormat; void 0 === f && (f = "CODE"); var d = n.split("/"); if (d.length <= i) return n; var g = d[i + 1]; if (r === o) { var _ = f.replace(/CODE/g, t), p = !1; if (u) { var h = u.replace(/CODE/g, o), m = new RegExp("^" + h + "$", "g"), v = Ue(_); _ = g.replace(m, v), a && !m.test(g) && (p = !0, _ = a.split("/")[i + 1]) } var w = u && !p ? 2 : 1; return d.slice(0, i + 1).concat([_], d.slice(i + w)).join("/") } if (t === o && !u) return d.slice(0, i + 1).concat(d.slice(i + 2)).join("/"); var y = Ue((t === o ? u : f).replace(/CODE/g, t)), b = g.replace(s, y); return d.slice(0, i + 1).concat([b], d.slice(i + 2)).join("/") }, We.language = c || o, We } function Me() { var e = Re.hostname, t = xt.languages.find((function (t) { return t.connect_host_destination && t.connect_host_destination.host === e })); return t ? t.custom_code || t.language_to : xt.language_from } function qe() { return He().language } function ze() { if (De) return De; if (xt.is_connect) { var e = document.documentElement.dataset.wgTranslated; return e ? (De = e, e) : De = xt.subdirectory ? qe() : Me() } return De = xt.language_from } function Fe(e, t) { var n = t; n || (n = ze()); for (var r = 0, o = e; r < o.length; r += 1) { var a = o[r]; if (!a || !a.dataset || !a.dataset.wgOnlyDisplay) return; a.hidden = a.dataset.wgOnlyDisplay !== n } } je("onCurrentLocationChanged", (function () { We = {} }), !0); var Be = { getItem: function (e) { return Le.get(e) }, setItem: function (e, t, n) { void 0 === n && (n = {}); var r = n.domain, o = n.path, a = n.expires; Le.set(e, t, r, o, a) }, removeItem: function (e) { return Le.erase(e) } }, $e = { getItem: function () { }, setItem: function () { }, removeItem: function () { } }; function Ve(e) { void 0 === e && (e = {}); var t = e.type || "local"; try { return "cookie" === t ? Be : window[t + "Storage"] } catch (e) { } return e.type ? $e : Ve({ type: "local" === t ? "cookie" : "local" }) } var Ge = { slugs: {}, version: 0, network: void 0 }; function Je() { return new Promise((function (e) { for (var t = xt.languages, n = {}, r = function () { var r = a[o], i = r.custom_code, c = r.language_to; (function (e) { var t = xt.api_key, n = xt.versions; if (!n || !n.slugTranslation) return Promise.resolve({}); var r = "https://cdn-api-weglot.com/translations/slugs?api_key=" + t + "&language_to=" + e + "&v=" + n.slugTranslation; return fetch(r).then((function (e) { return e.json() })).then((function (e) { return Array.isArray(e) ? {} : e })).catch((function (e) { return M.error(e), {} })) })(c).then((function (r) { n[i || c] = r, Object.keys(n).length === t.length && e(n) })) }, o = 0, a = t; o < a.length; o += 1)r() })) } function Ye(e) { return e ? Object.keys(e).reduce((function (t, n) { return t[n] = function (e) { return Object.keys(e).reduce((function (t, n) { return e[n] && (t.original[n] = e[n], t.translated[e[n]] = n), t }), { original: {}, translated: {} }) }(e[n]), t }), {}) : {} } function Ke(e) { var t = xt.versions; if (t && t.slugTranslation) { var n = t.slugTranslation; Ge.version < n && (Ge.network ? Ge.network.resolved || Ge.network.then((function (t) { return e(Ye(t)) })) : Ge.network = Je().then((function (t) { return Ge.network.resolved = !0, function (e) { var t = xt.versions, n = { version: t ? t.slugTranslation : 1, slugs: e }; try { var r = Ve({ type: "local" }); r && r.setItem(G, JSON.stringify(n)) } catch (e) { M.warn(e) } Ge = Object.assign({}, Ge, n) }(t), e(Ye(t)), t })).catch((function () { return e({}), {} }))), e(Ye(Ge.slugs)) } else e({}) } !function () { if (Object.keys(Ge.slugs).length) return Ge.slugs; try { var e = Ve({ type: "local" }); if (!e) return {}; var t = e.getItem(G); t && (Object.assign(Ge, JSON.parse(t)), Ge.slugs) } catch (e) { return {} } }(); var Xe = {}; function Ze(e, t) { return e.split("/").map((function (e) { return t[decodeURIComponent(e)] || e })).join("/") } function Qe(e, t) { xt.is_tld && xt.auto_switch && (e === xt.language_from ? t.searchParams.set("no_redirect", "true") : t.searchParams.delete("no_redirect")) } function et(e, t) { var n = ze(), r = new se(Re.url); r.searchParams.has("lang") && r.searchParams.delete("lang"), Qe(e, r); var o = function (e) { if (xt.subdirectory) return !1; var t = xt.language_from, n = xt.host, r = xt.languages; if (e === t) return n; var o = r.find((function (t) { return t.custom_code === e || t.language_to === e })) || {}, a = o.connect_host_destination; return a && a.host }(e); return o && (r.hostname = o), r.pathname = function (e, t, n, r) { if (!Object.keys(e).length) return t; if (!Xe.originalPath) if (n !== xt.language_from && e[n]) { var o = e[n].translated; Xe.originalPath = Ze(t, o) } else Xe.originalPath = t; return r === xt.language_from ? Xe.originalPath : e[r] && e[r].original ? Ze(Xe.originalPath, e[r].original) : t }(t, r.pathname, n, e), xt.subdirectory && e && (r.pathname = He().convertLocale(e, r.pathname)), r.toString() } function tt(e, t) { if (!xt.is_connect || !e) return t("#"); var n = xt.dynamicPushState, r = xt.injectedData; void 0 === r && (r = {}); var o = r.allLanguageUrls; if (void 0 === o && (o = {}), !n && o && o[e]) { var a = new se(o[e]); return Qe(e, a), t(a.toString()) } Ke((function (n) { return t(et(e, n)) })) } je("onCurrentLocationChanged", (function () { Xe = {} }), !0); var nt = {}; function rt() { var e = xt.host; return void 0 === e && (e = window.location.hostname), 0 === e.indexOf("www.") ? e.slice(3) : "." + e } function ot() { var e = document.cookie.match(/(^cart=[^;]+|[\W]cart=[^;]+)/g); if (e) { var t = e.map((function (e) { return e.split("=").pop() })); 1 !== t.length && t[0] === t[1] || Le.set("cart", t[0], rt()) } else setTimeout(ot, 100) } function at(e) { var t = "/checkout?locale=" + e + (xt.shopify_skip_shop_pay ? "&skip_shop_pay=true" : ""); fetch(t).then((function (e) { document.location.href = e.url })).catch((function () { document.location.href = t })) } function it(e) { var t = e || ze(), n = ct(t), r = [{ name: "locale", value: n }].concat(xt.shopify_skip_shop_pay ? [{ name: "skip_shop_pay", value: "true" }] : []);[{ name: "action", selector: ['form[method="post"][action*="/cart"]', 'form[method="post"][action*="/checkout"]'], testRegex: /\/(cart|checkout|)\/?(\?|$)/, event: "submit" }, { name: "href", selector: ['a[href*="/checkout"]', 'a[href*="/cart/checkout"]'], testRegex: /\/(cart\/)?checkout\/?(\?|$)/, event: "click" }].forEach((function (e) { for (var o = e.name, a = e.selector, i = e.testRegex, c = e.event, s = document.querySelectorAll(a.join(",")), l = function () { var e = f[u], a = e.getAttribute(o); if (i.test(a) && !r.every((function (e) { return a.includes(e.name + "=" + e.value) }))) { for (var s = 0, l = r; s < l.length; s += 1) { var d = l[s]; a = be(a, d.name, d.value) } e.setAttribute(o, a), e.wgCheckoutListener && e.removeEventListener(c, e.wgCheckoutListener), t !== xt.language_from && xt.fix_shopify_checkout_locale && (e.wgCheckoutListener = function (e) { return e.preventDefault(), e.stopPropagation(), xt.is_connect && !xt.subdirectory ? (Ve({ type: "cookie" }).setItem("wg_checkout_redirect", t), document.location.href = (xt.is_https ? "https:" : "http:") + "//" + xt.host) : at(n), !1 }, e.addEventListener(c, e.wgCheckoutListener)) } }, u = 0, f = s; u < f.length; u += 1)l() })) } function ct(e) { var t = { pt: "pt-PT", ro: "ro-RO", fl: "fil", zh: "zh-CN", tw: "zh-TW" }; return t[e] ? t[e] : e.substr(0, 2) } function st(e) { var t, n, r, o = e || ze(), a = document.getElementById("create_customer") || document.querySelector('form[action="' + (t = o, n = "/account", (xt.is_connect && t !== xt.language_from ? nt[n] ? nt[n] : (Ke((function (e) { var o = e && e[t] ? Ze(n, e[t].original) : n; r = xt.subdirectory ? He().convertLocale(t, o, xt.language_from) : o })), nt[n] = r, r) : n) + '"]')) || "string" == typeof xt.customer_tag && fe(document, xt.customer_tag); if (a) { var i = document.getElementById("weglot-lang-form"); i && i.parentNode.removeChild(i); var c = document.createElement("input"); Object.assign(c, { type: "hidden", id: "weglot-lang-form", name: "customer[tags]", value: "#wg" + o + "#wg" }), a.appendChild(c) } } function lt(e) { var t = function () { var e = document.getElementById("shopify-features"); if (!e) return null; var t = e.textContent.match(/"shopId":(\d*)/); return t ? t[1] : null }(); t && Le.set("checkout_locale", ct(e), null, t) } function ut(e) { var t = e || ze(); if (!xt.visual_editor && !me()) { var n = xt.cart_attributes, r = xt.is_connect, o = xt.original_shopify_checkout, a = xt.subdirectory, i = xt.language_from, c = Ve({ type: "cookie" }).getItem("cart"), s = Ve({ type: "session" }).getItem("wg-cart-update-token"); if (Ve({ type: "session" }).getItem("wg-cart-update-lang") !== ct(t) || c !== s) { var l = n.map((function (e) { return "attributes[" + e + "]=" + ct(t) })).join("&"), u = fetch("/cart/update.js", { method: "POST", body: l, headers: { "Content-Type": "application/x-www-form-urlencoded" }, credentials: "same-origin" }); !1 !== o && r && !a && i === ze() && u.then((function (e) { return e.json() })).then((function (e) { var t = e.token; return Le.set("cart", t, rt()) })), Ve({ type: "session" }).setItem("wg-cart-update-token", c), Ve({ type: "session" }).setItem("wg-cart-update-lang", ct(t)) } for (var f = document.querySelectorAll('a[href*="/cart/"]'), d = "attributes[lang]=" + t, g = 0, _ = f; g < _.length; g += 1) { var p = _[g], h = p.getAttribute("href"); if (h) { var m = h.match(/\/cart\/\d+:\d+(\?)?/); m && (h = h.replace(/&?attributes\[lang\]=([a-zA-Z-]+)/g, ""), p.setAttribute("href", h + (m[1] ? "&" : "?") + d)) } } } } function ft(e) { if (xt.language_from !== e) { window.Shopify && (window.Shopify.locale = e), !we() && xt.order_tag && ut(e), it(e), lt(e); var t = document.querySelectorAll("[data-wg-only-display]"); t.length && Fe(t, e), xt.customer_tag && st(e) } } je("onCurrentLocationChanged", (function () { nt = {} }), !0), Se("onWeglotSetup", (function () { !1 !== xt.original_shopify_checkout && xt.is_connect && !xt.subdirectory && xt.language_from === ze() && ot() })); var dt = ["#isp_search_result_page_container", ".snize-ac-results", "#snize_results", ".snize-recommendation", ".snize-modal", ".snize-search-results-header", "div>span.cc-message", ".hc-widget", ".jdgm-rev-widg__header", ".jdgm-rev__body", ".jdgm-rev-title", ".yotpo-main-widget", "#swell-popup", ".swell-tab", ".yotpo-widget-override-css", ".cw-row", ".mini-popup-container", "email-field cw-form-control", "phone-field cw-form-control", ".sms-policy-text", ".wlo-content-holder", ".wlo-wheel-holder", ".yotpo-smsbump-modal__content", ".cw-compliance-text", "#saso-notifications", ".saso-cross-sell-popup", ".saso-cart-item-discount-notes", ".saso-cart-item-upsell-notes", ".saso-volume-discount-tiers", ".opw-leading-normal", ".opw-my-2.opw-leading-normal.opw-text-lg.opw-text-left", ".opinew-navbar.opw-flex.opw-items-center.opw-justify-between.opw-flex-wrap.opw-py-4.opw-px-6", ".main-content-container.opw--mx-1", ".opw-text-center.opw-text-sm.opw-border-solid.opw-border-0.opw-mt-3", ".summary-card-container.opw-mx-1", ".opw-reviews-container.opw-mt-3.opw--mx-1", ".opinew-reviews-title.opw-flex.opw-items-center.opw-flex-no-shrink.opw-mr-6", ".opw-flex.opw-flex-row-reverse", "#opinew-app-container", ".gem_dynamic-content", ".pp_tracking_content", ".pp_all_form_div", ".pp_tracking_result_title", ".progress-bar-style", ".pp_tracking_left", ".pp_num_status_show", ".pp_tracking_status_tips", ".pp_page_map_div", ".pp_tracking_result_parent", ".pp_tracking_right", ".pp_recommend_product_parent", ".currency-converter-cart-note", ".cbb-shipping-rates-calculator", ".cbb-frequently-bought-container", ".cbb-frequently-bought-discount-applied-message", ".cbb-also-bought-container", "#zonos", ".buddha-menu-item", ".R-GlobalModal", ".ruk-rating-snippet-count", ".R-ContentList-container", ".R-ReviewsList-container", ".R-SliderIndicator-group", ".R-TextBody", ".widgetId-reviewsio-carousel-widget", ".REVIEWSIO-FloatingMinimised", ".REVIEWSIO-FloatingMinimised__Container", ".reviewsio-carousel-widget", ".reviews-io-floating-widget", ".reviews_container", ".site-nav.style--sidebar .site-nav-container .subtitle", ".search-more", ".variant-quantity", ".lion-claimed-rewards-list", ".lion-header", ".lion-header__join-buttons", ".lion-header__join-today", ".lion-history-table", ".lion-integrated-page-section__heading-text", ".lion-loyalty-panel", ".lion-loyalty-splash", ".lion-loyalty-widget", ".lion-modal__content", ".lion-modal__header", ".lion-referral-widget", ".lion-rewards-list", ".lion-rules-list", ".lion-tier-overview", ".ccpops-popup__content__bottom-text", ".ccpops-popup__content__top-text", ".ccpops-trigger__text", ".ks-table-row", ".klaviyo-form"]; var gt = {}; function _t(e) { return e ? "string" != typeof e ? e : e.split(",").map((function (e) { return { value: e } })) : [] } function pt(e, t) { if (void 0 === t && (t = ""), !e) return ae.button_style; var n = e.classF || "", r = n.match(/flag-(\d)/), o = { with_name: e.withname, full_name: !!e.fullname, is_dropdown: !!e.is_dropdown, with_flags: -1 !== n.indexOf("wg-flags"), flag_type: r && r[1] ? ie[r[1]] : "", invert_flags: !0 }; return t && (o.custom_css = t), o } function ht(e) { var t = e.styleOpt, n = e.containerCss, r = e.target, o = e.sibling; return { style: pt(t, n), location: { target: r, sibling: o } } } gt[J] = function () { je("initialized", (function () { var e = Ve({ type: "cookie" }).getItem("wg_checkout_redirect"); e && (Ve({ type: "cookie" }).removeItem("wg_checkout_redirect"), Ve({ type: "cookie" }).setItem("wg_checkout_language", e), at(e)), window.langify && M.log("%c Please, uninstall langify to properly use Weglot", { sendToDatadog: !1 }), we() || !xt.order_tag || xt.is_connect && xt.language_from !== ze() || ut(), it(); var t, n = document.querySelectorAll("[data-wg-only-display]"); n.length && Fe(n), xt.customer_tag && st(), document.getElementsByClassName("shopify-payment-button").length && (t = window.fetch, window.fetch = function () { if ("/wallets/checkouts.json" === arguments[0]) try { var e = JSON.parse(arguments[1].body), n = ct(ze()); e.checkout.attributes = {}, xt.cart_attributes.forEach((function (t) { return e.checkout.attributes[t] = n })), arguments[1].body = JSON.stringify(e) } catch (e) { } return t.apply(window, arguments) }) }), !0), Se("onConnectPageLoad", (function (e) { return ft(e) })), Se("onPageLanguageSet", (function (e) { return ft(e) })), Se("onDynamicDetected", (function () { it(ze()) })), Se("startWhen", (function () { return ge("admin-bar-iframe") || ge("preview-bar-iframe") || xt.private_mode || function () { for (var e = 0, t = document.scripts; e < t.length; e += 1)if (-1 !== t[e].src.indexOf("preview_bar_injector")) return !0; return !1 }() })); var e = [".shopify-payment-button button"].concat(dt).concat(xt.is_connect ? [] : ["form.cart.ajaxcart", "form.cart-drawer", "#cross-sell", ".wheelio_holder", ".mini-cart", "#shopify-product-reviews", "#esc-oos-form", ".product__add-to-cart-button", "select.product-variants>option:not([value])", ".ui-autocomplete", ".shopify-payment-button__button", "#shopify-section-static-recently-viewed-products", "#recently-viewed-products", "#shopify-section-product-recommendations", ".action_button.add_to_cart"]), t = /^\/(\d+\/checkouts|checkouts\/[a-z]{1,2})\/(?:\w{2}-)?\w{32}/.test(document.location.pathname), n = "loox.io" === document.location.hostname && me(); return Object.assign({}, { cart_attributes: ["lang", "Invoice Language"], excluded_blocks: ["input[type='radio']", "span.money", ".price", ".product__prices", "#admin-bar-iframe", ".notranslate", ".skiptranslate", "#isp_refine_nevigation", "#isp_header_subtitle", ".isp_sorting_and_result_view_wrapper", "#isp_results_did_you_mean > span", ".isp_facet_show_hide_values", "#isp_main_search_box", ".snize-filter-variant-count", ".snize-search-results-header a", ".snize-search-results-header b", ".hc-author__text", ".hc-avatar__initials", ".hc-rating-chart__count", ".hc-rating-chart__percentage-value", ".yotpo-review-date", ".yotpo-user-name", ".yotpo-user-letter", ".yotpo .avg-score", ".yotpo .sr-only", ".yotpo-mandatory-mark"].map((function (e) { return { value: e } })), search_forms: "form[action='/pages/search-results'],form[action='/search']", search_parameter: "q" }, n && xt.is_connect && { dynamicPushState: !0 }, { dynamics: e.map((function (e) { return { value: e } })), extra_definitions: [{ type: 1, selector: ".snize-color-swatch", attribute: "data-sntooltip" }, { type: 1, selector: "button[data-pf-type=ProductATC]", attribute: "data-soldout" }, { type: 1, selector: "button[data-pf-type=ProductATC]", attribute: "data-adding" }, { type: 1, selector: "button[data-pf-type=ProductATC]", attribute: "data-added" }], shopifyCheckout: t }) }, gt[Y] = function () { return Se("onPageLanguageSet", (function (e) { !function (e) { for (var t = 0, n = document.querySelectorAll('[href*="/checkout.php"],[href*="/cart.php"]'); t < n.length; t += 1) { var r = n[t]; r.setAttribute("href", be(r.getAttribute("href"), "lang", e)) } }(e) })), { dynamics: [".quick-shop-details", "#QuickViewProductDetails", ".QuickViewModal", ".modalContainer", ".ng-checkout-container", ".previewCartAction", "#checkout-app"].map((function (e) { return { value: e } })), search_forms: "form[action='/search.php']", search_parameter: "search_query" } }, gt[te] = function () { return xt.is_connect ? {} : { dynamics: [{ value: ".content" }] } }, gt[K] = function () { return { excluded_blocks: ['[data-display="cms-only"]', ".j-admin-links", ".cc-m-status-empty"].map((function (e) { return { value: e } })) } }, gt[X] = function () { var e = [], t = ["body.sqs-is-page-editing"]; document.getElementById("sqs-cart-root") && (e.push("#sqs-cart-container"), t.push("#sqs-cart-container [class*=subtotalPrice]", "#sqs-cart-container .cart-container .item-price")), document.getElementById("sqs-standard-checkout") && (e.push("#checkout"), t.push("#checkout span.money", "#checkout [data-test*=incomplete] [class^=PaymentCard-container]", "#checkout [data-test*=incomplete] [class^=CustomerAddress-container]", "#checkout [class^=CustomerInfoSection-email]", "#checkout [class^=GoogleResultsList]")); var n = window.location.host.endsWith("squarespace.com"); if (je("initialized", (function () { try { var e = window.ExtensionScriptsSDK; if (!e) return; e["1.0"].page.events.dispatchScriptLoadEvent("Weglot") } catch (e) { } })), !xt.is_connect) try { document.querySelectorAll(".animation-segment-wrapper").forEach((function (e) { e.parentNode.dataset.dynamicStrings = e.textContent })), document.querySelectorAll(".animation-segment-parent-hidden").forEach((function (e) { e.dataset.dynamicStrings = "" })), t.push(".animation-segment-wrapper"), t.push(".animation-segment-parent-hidden > *") } catch (e) { } return { force_translation: e.join(","), dynamics: ["#sqs-cart-container", "#checkout", ".sqs-widgets-confirmation", ".video-player", ".jdgm-widget", ".calendar-block", ".opentable-v2-block", ".blog-item-comments"].map((function (e) { return { value: e } })).concat(xt.is_connect ? [{ value: ".sqs-add-to-cart-button.cart-adding" }, { value: ".sqs-add-to-cart-button.cart-added" }] : [{ value: "[data-dynamic-strings]" }, { value: ".sqs-add-to-cart-button" }, { value: ".variant-select-wrapper" }]), excluded_blocks: t.map((function (e) { return { value: e } })).concat(xt.is_connect ? [{ value: ".comment-body" }] : []), forceDisableConnect: n, merged_selectors_remove: [{ value: ".plyr__menu__container" }, { value: ".product-price .original-price" }, { value: ".comment-btn-wrapper" }], extra_definitions: [{ type: 1, selector: ".variant-select-wrapper", attribute: "data-text" }] } }, gt[Z] = function () { var e = { dynamics: document.documentElement.getAttribute("data-wg-translated") ? [] : [{ value: "#SITE_CONTAINER" }], dynamicPushState: !0 }; if (window.wixBiSession && "bolt" !== window.wixBiSession.renderType && !xt.visual_editor && (document.addEventListener("DOMContentLoaded", (function () { new MutationObserver((function (e) { for (var t = 0; t < e.length; t++) { "SUCCESS" === e[t].target.getAttribute("data-santa-render-status") && (this.disconnect(), Pe("start")) } })).observe(document.getElementById("SITE_CONTAINER"), { attributes: !0, attributeFilter: ["data-santa-render-status"] }) })), e.delayStart = !0, e.wait_transition = !1), window.wixBiSession && "bolt" === window.wixBiSession.renderType) { var t = 0, n = setInterval((function () { (document.body && window.sssr || 40 === t) && (Pe("start"), clearInterval(n)), t++ }), 100); e.delayStart = !0, e.wait_transition = !1 } return e }, gt[Q] = function () { return je("switchersReady", (function () { var e = document.querySelector(".weglot-container"); e && e.classList.add("weglot-container--left") })), { forceDisableConnect: window.Webflow && window.Webflow.env && !!window.Webflow.env("editor"), excluded_blocks: [".wg-element-wrapper"].map((function (e) { return { value: e } })), linkHooksConfig: { additionalCheckSelectors: [".weglot-switcher-component a[lang]"], buildAdditionalSelectors: function (e) { return ['.weglot-switcher-component a[lang="' + e + '"]'] }, onLinkActive: function (e) { e.classList.add("w--current"), e.setAttribute("aria-current", "lang") }, offLinkActive: function (e) { e.classList.remove("w--current"), e.removeAttribute("aria-current") } } } }, gt[ee] = function () { return { dynamics: [".w-container", ".w-wrapper", ".product-header", ".product-messages", ".error", "button"].map((function (e) { return { value: e } })) } }, gt[ne] = function () { return { ignoreDynamicFragments: !0, dynamicPushState: !0, merged_selectors_remove: [{ value: ".themeProfileMenu" }] } }; var mt = [{ from: "originalLanguage", to: "language_from" }, { from: "autoSwitch", to: "auto_switch" }, { from: "autoSwitchFallback", to: "auto_switch_fallback" }, { from: "waitTransition", to: "wait_transition" }, { from: "subDomain", to: "subdomain" }, { from: "translateSearch", to: "translate_search" }, { from: "searchsForms", to: "search_forms" }, { from: "searchParameter", to: "search_parameter" }, { from: "hideSwitcher", to: "hide_switcher" }, { from: "dangerouslyForceDynamic", to: "dangerously_force_dynamic" }, { from: "loadingBar", to: "loading_bar" }, { from: "customerTag", to: "customer_tag" }, { from: "orderTag", to: "order_tag" }, { from: "translateImages", to: "media_enabled" }, { from: "extraDefinitions", to: "extra_definitions" }, { from: "excludePaths", to: "excluded_paths", func: function (e) { return e ? "string" != typeof e ? e : e.split(",").filter((function (e) { return !!e })).map((function (e) { return { value: e, type: "CONTAIN" } })) : [] } }, { from: "exceptions", to: "excluded_blocks", func: _t }, { from: "whiteList", to: "whitelist", func: _t }, { from: "styleOpt", to: "button_style", func: pt }, { from: "destinationLanguages", to: "languages", func: function (e) { return "string" != typeof e ? e : e.split(",").map((function (e) { return { language_to: e, provider: null, automatic_translation_enabled: !0 } })) } }]; function vt(e) { var t = Object.assign({}, e); return t.switchers && ("string" == typeof t.switchers && (t.switchers = JSON.parse(t.switchers)), t.switchers.length && t.switchers[0].styleOpt && (t.switchers = t.switchers.map(ht)), t.scriptParamSwitcher = !0), Array.isArray(t.dynamic) && (t.dynamic = t.dynamic.join(",")), Array.isArray(t.translate_iframes) && (t.translate_iframes = t.translate_iframes.join(",")), t.translate_images && (t.media_enabled = !0), mt.forEach((function (e) { var n = e.from, r = e.to, o = e.func; void 0 !== t[n] && (t[r] = o ? o(t[n]) : t[n], delete t[n]) })), t } function wt(e, t) { var n = {}; for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && -1 === t.indexOf(r) && (n[r] = e[r]); return n } var yt = {}; function bt(e) { if (!e || !e.api_key) throw Error("You have to provide at least a key"); var t = e.api_key.split("wg_").pop(), n = vt(e); return function (e) { if (u(window.location.hostname)) return fetch("https://api.weglot.com/projects/settings?api_key=wg_" + e).then((function (e) { return e.json() })); var t = kt(); if (t) { var n = t.settings, r = wt(t, ["settings"]); return n.injectedData = r, Promise.resolve(n) } var o = function (e) { if (!e.includes(z)) return null; var t = e.split(".")[0]; if (t.includes("-")) { return t.split("-").reverse()[0] } return t }(window.location.hostname); if (o) return fetch("" + q + o + ".json").then((function (e) { return e.json() })).then((function (e) { return "SUBDOMAIN" === e.url_type && (e.languages = e.languages.map((function (e) { return Object.assign({}, e, { connect_host_destination: Object.assign({}, e.connect_host_destination, { is_dns_set: !0, created_on_aws: 1, host: (e.custom_code || e.language_to) + "-" + o + "." + z }) }) }))), e.is_dns_set = !0, e.previewHash = o, e })); return fetch("" + q + e + ".json").then((function (e) { return e.json() })) }(t).then((function (e) { var t = e.custom_settings, r = wt(e, ["custom_settings"]); n.button_style = Object.assign(t ? t.button_style : {}, n.button_style); var o = r.language_from, a = r.languages; o && (n.language_from = o), a && (n.languages = a), t && t.localeRules && (n.localeRules = t.localeRules); var i = Ct(Object.assign({}, r, t, n)); return Pe("onOptionsReady"), i })).catch((function (e) { M.error(e, { consoleOverride: e && e.wgErrMsg || "Cannot fetch Weglot options. Is your key correct?", sendToDatadog: !1 }) })) } function kt() { var e = ge("weglot-data"); if (!e) return null; try { var t = JSON.parse(e.innerHTML); return t.settings ? t : null } catch (e) { return null } } function Et() { var e = kt(); e && (delete e.settings, yt.injectedData = e) } function Ct(e) { if (e.deleted_at) throw { wgErrMsg: "Cannot load Weglot because the project has been deleted" }; e.injectedData || ke(Et), "SUBDIRECTORY" === e.url_type && e.is_dns_set && (e.subdirectory = !0), e.languages.length || (e.languages = []), yt.is_connect = e.subdirectory || e.languages.some((function (e) { return e.connect_host_destination && e.connect_host_destination.is_dns_set && e.connect_host_destination.created_on_aws })), e.subdomain = !e.subdirectory && (e.subdomain || yt.is_connect), e.dynamic && (e.dynamics || (e.dynamics = e.dynamic.split(",").map((function (e) { return { value: e.trim() } }))), delete e.dynamic), u(window.location.hostname) && (yt.visual_editor = !0), (function () { -1 !== location.search.indexOf("weglot-private=0") && Ve().removeItem("wg-private-mode"); var e = document.getElementById("admin-bar-iframe") || document.getElementById("preview-bar-iframe") || -1 !== location.search.indexOf("weglot-private=1") || "1" === Ve({ type: "cookie" }).getItem("wg-private-mode"); return e && Ve({ type: "cookie" }).setItem("wg-private-mode", "1"), e }() || yt.switcher_editor || yt.visual_editor) && (yt.private_mode = !0); var t, n, r, o = e.technology_name || yt.technology_name, a = (t = o) && gt[t] ? gt[t]() : {}, i = Object.assign({}, ae, a); if (Object.assign(yt, i, e), re.forEach((function (e) { var t, n; yt[e] !== i[e] && (yt[e] = (t = yt[e], (n = i[e]) ? Array.isArray(t) ? [].concat(t, n) : "object" == typeof t ? Object.assign({}, t, n) : (t = t.split(",").filter((function (e) { return e })).join(",")) && t.length > 0 && t !== n ? t += "," + n : t = n : t)) })), n = "https://cdn.weglot.com/weglot.min.css?v=4", (r = document.createElement("link")).rel = "stylesheet", r.type = "text/css", r.href = n, document.head.appendChild(r), yt.button_style && yt.button_style.custom_css && ve(yt.button_style.custom_css, "weglot-custom-style"), yt.switchers && 0 !== yt.switchers.length ? yt.switchers = yt.switchers.map((function (e) { var t = e.button_style, n = wt(e, ["button_style"]); return Object.assign({}, { style: n.style || t }, n) })) : yt.switchers = [{ style: yt.button_style, location: {}, default: !0 }], yt.cache && yt.visual_editor && (yt.cache = !1), yt.api_key.length < 36 && (yt.translation_engine = 1), yt.excluded_blocks_remove && (yt.excluded_blocks = yt.excluded_blocks.filter((function (e) { return !yt.excluded_blocks_remove.includes(e.value) }))), yt.dangerously_force_dynamic && (yt.dynamics = yt.dynamics.concat(yt.dangerously_force_dynamic.split(",").map((function (e) { return { value: e.trim() } })))), yt.excluded_blocks = yt.excluded_blocks.filter((function (e) { return ye(e.value) })), yt.dynamics = yt.dynamics.filter((function (e) { return ye(e.value) })), yt.dynamics_remove && (yt.dynamics = yt.dynamics.filter((function (e) { return !yt.dynamics_remove.includes(e.value) }))), yt.is_tld = !1, a.forceDisableConnect && (yt.is_connect = !1), yt.is_connect && !yt.previewHash) { var c = yt.host.split("www.").pop(); yt.is_tld = yt.languages.some((function (e) { if (e.connect_host_destination && e.connect_host_destination.host) return -1 === e.connect_host_destination.host.indexOf(c) })) } return yt.whitelist && !Array.isArray(yt.whitelist) && (yt.whitelist = [{ value: String(yt.whitelist) }]), yt } var xt = yt; var St = { "Node.prototype.contains": document.contains, "Element.prototype.cloneNode": "document" in self && "cloneNode" in document.documentElement, "location.origin": "location" in self && "origin" in self.location, MutationObserver: "MutationObserver" in self, Promise: "Promise" in self && "resolve" in Promise, "Element.prototype.matches": "document" in self && "matches" in document.documentElement, "Element.prototype.closest": "document" in self && "closest" in document.documentElement, "Element.prototype.classList": "document" in self && "classList" in document.documentElement && function () { var e = document.createElement("div"); if (!(e.classList && e.classList.add && e.classList.remove && e.classList.contains && e.classList.toggle)) return !1; var t = !0; e.classList.add("add1", "add2"), t = t && e.className.indexOf("add1") >= 0 && e.className.indexOf("add2") >= 0, e.className = "remove1 remove2 remove3", e.classList.remove("remove1", "remove3"), t = t && -1 === e.className.indexOf("remove1") && e.className.indexOf("remove2") >= 0 && -1 === e.className.indexOf("remove3"); try { e.remove() } catch (t) { e = null } return t }(), "String.prototype.includes": "includes" in String.prototype, fetch: "fetch" in self, "Array.prototype.find": "find" in Array.prototype, "Array.prototype.findIndex": "findIndex" in Array.prototype, "Object.assign": "assign" in Object, "Array.prototype.includes": "includes" in Array.prototype, URL: function (e) { try { var t = new e.URL("http://weglot.com"); if ("href" in t && "searchParams" in t) { var n = new URL("http://weglot.com"); if (n.search = "a=1&b=2", "http://weglot.com/?a=1&b=2" === n.href && (n.search = "", "http://weglot.com/" === n.href)) { var r = new e.URLSearchParams("a=1"), o = new e.URLSearchParams(r); if ("a=1" === String(o)) return !0 } } return !1 } catch (e) { return !1 } }(self) }, Ot = !1; function Nt() { Ot = !0, Pe("polyfillReady") } function Lt() { return Ot } !function (e) { window.Prototype && (delete Object.prototype.toJSON, delete Array.prototype.toJSON); var t = Object.keys(St).filter((function (e) { return !St[e] })); if (t.length) { !function (e, t, n) { var r = !1; function o() { r || (r = !0, setTimeout((function () { return t(n) }), 20)) } var a = document.getElementsByTagName("head")[0] || document.documentElement, i = document.createElement("script"); i.type = "text/javascript", i.src = e, i.addEventListener ? (i.addEventListener("load", o, !1), i.addEventListener("error", o, !1)) : i.readyState && (i.onreadystatechange = o), a.insertBefore(i, a.firstChild) }("https://cdn.polyfill.io/v2/polyfill.min.js?callback=Weglot.polyReady&features=" + t.join(","), (function () { })) } else e() }(Nt); var Tt = [{ condition: [{ type: "TECHNOLOGY_ID", payload: 2 }], value: [{ original: "^/checkouts/(?:[\\w]{32})(/.*)?$", formatted: "/checkouts$1" }, { original: "^/account/(orders|activate)/(?:[\\w]{32})$", formatted: "/account/$1/" }, { original: "^/orders/(?:[\\w]{32})$", formatted: "/orders/" }, { original: "^/wallets/checkouts/(?:.*)$", formatted: "/wallets/checkouts/" }, { original: "^/(.+)\\.(json|xml)$", formatted: "/$1" }] }], At = !1, jt = {}, Pt = {}, It = Ve({ type: "local" }); if (It.getItem(V)) try { jt = JSON.parse(It.getItem(V)), Object.keys(jt).forEach((function (e) { Object.keys(jt[e]).forEach((function (t) { if (2 === t.length) { Pt[t] || (Pt[t] = {}); var n = jt[e][t]; Pt[t][n] = e } })) })), At = !0 } catch (lr) { At = !0 } function Rt(e) { return jt[e] } function Dt(e, t, n, r) { var o, a = Rt(e); a ? (a[r] = n, a.createdTime = (new Date).getTime(), a.t = t) : jt[e] = ((o = {})[r] = n, o.createdTime = (new Date).getTime(), o.t = t, o), Pt[r] || (Pt[r] = {}), Pt[r][n] = e, xt.cache && Ee(Wt)() } var Wt = function () { return jt && It.setItem(V, JSON.stringify(jt)) }; var Ut = [], Ht = new Set, Mt = !1, qt = function (e) { return Ht.has(pe(e).trim()) }, zt = function (e) { return Ht.add(pe(e).trim()) }; function Ft(e, t) { void 0 === e && (e = document.documentElement); var n = ze(); return E(e).filter((function (e) { return (t || Bt)(e) })).map(function (e) { return function (t) { var n = t.element, r = t.words, o = t.type, a = t.properties, i = t.attrSetter; n.weglot || (n.weglot = { content: [] }); var c, s, l = n.weglot, u = {}, f = (c = r, !!Pt[s = e] && Pt[s][c]); if (f && (u[e] = r, r = f), a) { var d = l.content.find((function (e) { return e.html })); d ? Object.assign(d, { original: r, properties: a, translations: u }) : l.content.push({ html: !0, original: r, type: o, properties: a, translations: u }) } if (i) { var g = l.content.find((function (e) { return e.attrSetter === i })), _ = { attrSetter: i, original: r, type: o, translations: u }; g ? Object.assign(g, _) : l.content.push(_) } return n } }(n)) } function Bt(e) { var t = e.element, n = e.words; return !t.weglot || !t.weglot.content || !t.weglot.content.some((function (e) { var t, r = e.original, o = e.translations; return r === n || (t = o, Object.keys(t).map((function (e) { return t[e] }))).includes(pe(n)) })) } function $t(e) { for (var t = [], n = 0, r = e; n < r.length; n += 1) { var o = r[n]; -1 === Ut.indexOf(o) && t.push(o) } return [].push.apply(Ut, t), t } function Vt(e, t) { void 0 === e && (e = Ut), void 0 === t && (t = {}); var n = xt.prevent_retranslation, r = xt.injectedData; void 0 === r && (r = {}); var o = xt.is_connect; if (n && o && !Mt) { var a = r.translatedWordsList; void 0 === a && (a = []), a.forEach((function (e) { return zt(e) })), Mt = !0 } for (var i = [], c = {}, s = 0, l = e; s < l.length; s += 1)for (var u = 0, f = l[s].weglot.content; u < f.length; u += 1) { var d = f[u], g = d.original, _ = d.type; c[g] || (n && qt(g) || (c[g] = !0, i.push(Object.assign({}, { t: _, w: g }, t.label && { l: t.label })))) } return i } function Gt(e, t, n) { if (void 0 === t && (t = ze()), void 0 === n && (n = Ut), e && e.to_words && e.to_words.length) for (var r = e.from_words, o = e.to_words, a = 0, i = n; a < i.length; a += 1)for (var c = 0, s = i[a].weglot.content || {}; c < s.length; c += 1) { var l = s[c], u = l.original, f = l.translations, d = r.indexOf(pe(u)); if (-1 !== d && !f[t]) { var g = (_ = o[d]) && _.replace && _.replace(/wg-(\d+)=""(\s*)\/(\s*)>/g, 'wg-$1="">'); xt.prevent_retranslation && zt(g), f[t] = g } } var _; try { T(n, t) } catch (e) { M.error(e) } } function Jt(e) { if (e && e.toLowerCase) { var t = e.toLowerCase(), n = xt.languages.find((function (e) { var n = e.language_to, r = e.custom_code; return n === t || (r ? r.toLowerCase() === t : void 0) })); return n ? n.language_to : e } } function Yt(e, t) { var n; void 0 === t && (t = { cdn: !1, search: !1 }); var r = e.l_to, o = e.words; e.l_to = Jt(r); var a, i = o; if (!xt.visual_editor) { if (n = function (e, t) { var n = [], r = [], o = []; return e.forEach((function (e) { var a = Rt(e.w); a && a[t] ? (n.push(a[t]), r.push(pe(e.w))) : o.push(e) })), { cachedWords: { to_words: n, from_words: r }, newWords: o } }(o, r), i = n.newWords, (a = n.cachedWords).to_words.length && !t.search) { if (!i.length) return Promise.resolve(a); Gt(a, r, t.nodes) } At && [].push.apply(i, function () { At = !1; var e = (new Date).getTime(); return Object.keys(jt).filter((function (t) { return jt[t].createdTime + 216e5 < e })).map((function (e) { return { t: jt[e].t, w: e } })) }()) } return i.length ? (e.words = i, e.request_url = function () { var e = function () { if (xt.visual_editor) return new se(Re.url); var e = xt.technology_name, t = xt.injectedData; if (e === Z) return new se(window.location.href); if (t && t.originalCanonicalUrl) try { return new se(t.originalCanonicalUrl) } catch (e) { } var n = document.querySelector("link[rel='canonical'][href]"); if (n) try { return new se(n.href) } catch (e) { } return new se(window.location.href) }(); e.pathname = (t = e.pathname, t.split("/").filter((function (e) { return !e || isNaN(Number(e)) })).join("/")); var t; for (var n = 0, r = Tt.filter((function (e) { return e.condition.some((function (e) { var t = e.type, n = e.payload; return "TECHNOLOGY_ID" === t && n === xt.technology_id })) })); n < r.length; n += 1) { var o = r[n].value; try { for (var a = 0, i = o; a < i.length; a += 1) { var c = i[a], s = c.original, l = c.formatted, u = e.pathname.replace(new RegExp(s), l); if (u !== e.pathname) return e.pathname = u, e.toString() } } catch (e) { M.warn(e, { consoleOverride: "Invalid URL regex, " + e.stack }) } } return e.toString() }(), function (e) { var t = xt.versions && xt.versions.translation || 1, n = ["api_key=" + xt.api_key, "v=" + t], r = "https://" + (xt.bypass_cdn_api ? "api.weglot.com" : "cdn-api-weglot.com") + "/translate?" + n.join("&"); return fetch(r, { method: "POST", body: Kt(JSON.stringify(e)) }).then(Xt).then((function (e) { return e.json() })).then((function (e) { if (!e || !e.to_words) throw M.warn(e), Error("An error occurred, please try again later"); return e })) }(e).then((function (e) { return i.forEach((function (t, n) { var o = e.to_words[n]; Dt(t.w, t.t, o, r) })), e }))) : t.search && a ? Promise.resolve(a) : Promise.resolve({ to_words: [], from_words: [] }) } function Kt(e) { return e.replace(/[\u007F-\uFFFF]/g, (function (e) { return "\\u" + ("0000" + e.charCodeAt(0).toString(16)).substr(-4) })) } function Xt(e) { if (400 === e.status) throw Error("You reached Weglot limitation. Please upgrade your plan."); if (401 === e.status) throw Error("Your Weglot API key seems wrong."); if (e.status >= 402) throw Error(e.statusText); return e } function Zt(e) { var t = xt.api_key; return fetch("https://api.weglot.com/pageviews?api_key=" + t, { method: "POST", body: JSON.stringify({ url: e || Re.url, language: ze(), browser_language: navigator.language }) }) } var Qt, en = {}; function tn(e) { return { START_WITH: function (t) { return 0 === e.indexOf(t) }, NOT_START_WITH: function (t) { return 0 !== e.indexOf(t) }, END_WITH: function (t) { return -1 !== e.indexOf(t, e.length - t.length) }, NOT_END_WITH: function (t) { return -1 === e.indexOf(t, e.length - t.length) }, CONTAIN: function (t) { return -1 !== e.indexOf(t) }, NOT_CONTAIN: function (t) { return -1 === e.indexOf(t) }, IS_EXACTLY: function (t) { return e === t }, NOT_IS_EXACTLY: function (t) { return e !== t }, MATCH_REGEX: function (t) { try { return new RegExp(t, "i").test(e) } catch (e) { return M.warn(e, { consoleOverride: t + " is an invalid regex", sendToDatadog: !1 }), !1 } } } } function nn(e) { var t = xt.excluded_paths, n = Re.pathname; if (n = n.toLowerCase(), "shopify.weglot.com" === window.location.host || !t || !t.length) return !1; if ("string" == typeof t && t.split(",").some((function (e) { return new RegExp(e, "i").test(n) }))) return { allExcluded: !0, language_button_displayed: !0 }; var r = e || Jt(ze()); return void 0 !== en[r] && en.currentLang === r || (en.currentLang = r, xt.injectedData && xt.injectedData.originalPath && (n = xt.injectedData.originalPath.toLowerCase()), t.some((function (e) { var t = e.type, o = e.value, a = e.excluded_languages, i = e.language_button_displayed, c = e.regex; o = o.toLowerCase(); var s = { language_button_displayed: i, allExcluded: !(!a || !(0 === a.length || a.length >= xt.languages.length)) }; if (a && a.length && !a.includes(r)) return !1; var l = tn(n); if (c && !t.startsWith("NOT") ? l.MATCH_REGEX(c) : l[t](o)) return en[r] = s, !0; var u = n; try { u = decodeURIComponent(n) } catch (e) { return } if (u !== n) { var f = tn(u); return (c && !t.startsWith("NOT") ? f.MATCH_REGEX(c) : f[t](o)) ? (en[r] = s, !0) : void 0 } }))), en[r] } function rn() { if (Qt) return Qt; if (!xt.api_key) return M.warn("Weglot must be initialized to use it.", { sendToDatadog: !1 }), []; var e = (xt.languages || []).filter((function (e) { var t = nn(e.language_to), n = !t || t.language_button_displayed; return (!1 !== e.enabled || xt.private_mode) && n && (xt.subdirectory || !xt.is_connect || e.connect_host_destination && e.connect_host_destination.created_on_aws) })).map((function (e) { return e.custom_code || e.language_to })), t = [xt.language_from].concat(e); return Qt = t.filter((function (e, n) { return e && t.indexOf(e) == n })), e.length || M.log("No public language available.", { sendToDatadog: !1 }), Qt } je("onCurrentLocationChanged", (function () { en = {} }), !0), je("onCurrentLocationChanged", (function () { Qt = null }), !0); var on = [{ codes: ["no"], pattern: /^(nn|nb)(-[a-z]+)?$/i }, { codes: ["zh"], pattern: /^zh(-hans(-\w{2})?)?(-(cn|sg))?$/i }, { codes: ["tw", "zh-TW"], pattern: /^zh-(hant)?-?(tw|hk|mo)?$/i }, { codes: ["br"], pattern: /^pt-br$/i }, { codes: ["fl"], pattern: /^fil$/i }]; function an(e) { void 0 === e && (e = rn()); for (var t = {}, n = {}, r = 0, o = e; r < o.length; r += 1) { var a = o[r], i = a.toLowerCase(), c = i.substring(0, 2); t[c] || (t[c] = []), t[c].push(i), n[i] = a } for (var s = 0, l = navigator.languages || [navigator.language]; s < l.length; s += 1) { var u = l[s], f = u.toLowerCase(), d = f.substring(0, 2); if (n[f]) return n[f]; for (var g = 0, _ = on; g < _.length; g += 1) { var p = _[g], h = p.codes, m = p.pattern, v = h.find((function (t) { return e.includes(t) })); if (v && m.test(u)) return v } if (t[d]) { if ("zh" === d) continue; var w = t[d].indexOf(d); return w >= 0 ? n[t[d][w]] : n[t[d].shift()] } } } function cn() { var e = window.location.search.indexOf("no_redirect=true") > -1; if (!(!xt.auto_switch || xt.subdirectory || e || Ve({ type: "cookie" }).getItem("WG_CHOOSE_ORIGINAL") || we() || xt.visual_editor)) { var t = an(); return t && !nn(t) ? t : xt.auto_switch_fallback && !nn(xt.auto_switch_fallback) ? xt.auto_switch_fallback : void 0 } e && sn(ze()) } function sn(e) { if (e === xt.language_from) { var t = new Date; t.setTime(t.getTime() + 2592e6), Ve({ type: "cookie" }).setItem("WG_CHOOSE_ORIGINAL", "1", { expires: t.toUTCString() }) } else Ve({ type: "cookie" }).removeItem("WG_CHOOSE_ORIGINAL") } function ln() { var e = Ve().getItem(F); if (e && rn().includes(e)) return e } var un = function (e) { return e && Ve().setItem(F, e) }; function fn() { _e(ge(B)) } function dn(e, t, n) { void 0 === n && (n = {}); n = Object.assign({}, { title: !0, cdn: !1, search: !1 }, n); var r = { l_from: xt.language_from, l_to: t, words: e }; return n.title && (r.title = document.title), Yt(r, n) } function gn(e, t) { if ("string" != typeof e || "function" != typeof t) return !1; var n = ze(); return n === xt.language_from ? (t(e), !1) : (Yt({ l_from: n, l_to: xt.language_from, words: [{ t: 2, w: e }] }, { cdn: !0, search: !0 }).then((function (e) { return e.to_words[0].toLowerCase().trim() })).then(t), !0) } var _n = []; function pn(e) { var t = e.langTo; void 0 === t && (t = ze()); var n = e.node; void 0 === n && (n = document.documentElement); var r = xt.proxify_iframes, o = xt.api_key, a = xt.language_from; if (r && r.length && Array.isArray(r)) for (var i = 0, c = ue(n, r.join(",")); i < c.length; i += 1) { var s = c[i], l = s.src; if (!l) return; if (s.weglot || (s.weglot = {}), !l.includes("proxy.weglot.com/")) { if (s.weglot.originalFrameSrc || (s.weglot.originalFrameSrc = l), t === a) return; try { s.src = l.replace("://", "://proxy.weglot.com/" + o + "/" + a + "/" + t + "/") } catch (e) { } return } if (!t || t === a) { var u = (s.weglot || {}).originalFrameSrc; return void (u && (s.src = u)) } var f = new RegExp(o + "/" + a + "/[^/]+/"); return void (s.src = l.replace(f, o + "/" + a + "/" + t + "/")) } } function hn(e) { void 0 === e && (e = ze()), function (e) { void 0 === e && (e = ze()); for (var t = { message: "Weglot.setLanguage", payload: e }, n = 0, r = _n; n < r.length; n += 1) { var o = r[n]; try { o.postMessage(t, "*") } catch (e) { console.warn(e) } } }(e), pn({ langTo: e }) } function mn(e) { if (e.data && "null" !== e.origin) { var t = e.data, n = t.message, r = t.payload; if (n) { if ("Weglot.iframe" === n) { var o = { message: "Weglot.setLanguage", payload: ze() }; return e.source.postMessage(o, e.origin), void _n.push(e.source) } "Weglot.setLanguage" !== n || ia(r) } } } function vn(e) { var t = xt.linkHooksConfig && xt.linkHooksConfig.buildAdditionalSelectors; return ["a[href='#Weglot-" + e + "']", "a[href*='change-language.weglot.com/" + e + "']"].concat(t ? t(e) : []).join(",") } var wn, yn, bn, kn, En, Cn, xn, Sn, On = {}, Nn = [], Ln = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i; function Tn(e, t) { for (var n in t) e[n] = t[n]; return e } function An(e) { var t = e.parentNode; t && t.removeChild(e) } function jn(e, t, n) { var r, o, a, i = {}; for (a in t) "key" == a ? r = t[a] : "ref" == a ? o = t[a] : i[a] = t[a]; if (arguments.length > 2 && (i.children = arguments.length > 3 ? wn.call(arguments, 2) : n), "function" == typeof e && null != e.defaultProps) for (a in e.defaultProps) void 0 === i[a] && (i[a] = e.defaultProps[a]); return Pn(e, i, r, o, null) } function Pn(e, t, n, r, o) { var a = { type: e, props: t, key: n, ref: r, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, __h: null, constructor: void 0, __v: null == o ? ++bn : o }; return null == o && null != yn.vnode && yn.vnode(a), a } function In(e) { return e.children } function Rn(e, t) { this.props = e, this.context = t } function Dn(e, t) { if (null == t) return e.__ ? Dn(e.__, e.__.__k.indexOf(e) + 1) : null; for (var n; t < e.__k.length; t++)if (null != (n = e.__k[t]) && null != n.__e) return n.__e; return "function" == typeof e.type ? Dn(e) : null } function Wn(e) { var t, n; if (null != (e = e.__) && null != e.__c) { for (e.__e = e.__c.base = null, t = 0; t < e.__k.length; t++)if (null != (n = e.__k[t]) && null != n.__e) { e.__e = e.__c.base = n.__e; break } return Wn(e) } } function Un(e) { (!e.__d && (e.__d = !0) && kn.push(e) && !Hn.__r++ || En !== yn.debounceRendering) && ((En = yn.debounceRendering) || Cn)(Hn) } function Hn() { var e, t, n, r, o, a, i, c; for (kn.sort(xn); e = kn.shift();)e.__d && (t = kn.length, r = void 0, o = void 0, i = (a = (n = e).__v).__e, (c = n.__P) && (r = [], (o = Tn({}, a)).__v = a.__v + 1, Yn(c, a, o, n.__n, void 0 !== c.ownerSVGElement, null != a.__h ? [i] : null, r, null == i ? Dn(a) : i, a.__h), Kn(r, a), a.__e != i && Wn(a)), kn.length > t && kn.sort(xn)); Hn.__r = 0 } function Mn(e, t, n, r, o, a, i, c, s, l) { var u, f, d, g, _, p, h, m = r && r.__k || Nn, v = m.length; for (n.__k = [], u = 0; u < t.length; u++)if (null != (g = n.__k[u] = null == (g = t[u]) || "boolean" == typeof g || "function" == typeof g ? null : "string" == typeof g || "number" == typeof g || "bigint" == typeof g ? Pn(null, g, null, null, g) : Array.isArray(g) ? Pn(In, { children: g }, null, null, null) : g.__b > 0 ? Pn(g.type, g.props, g.key, g.ref ? g.ref : null, g.__v) : g)) { if (g.__ = n, g.__b = n.__b + 1, null === (d = m[u]) || d && g.key == d.key && g.type === d.type) m[u] = void 0; else for (f = 0; f < v; f++) { if ((d = m[f]) && g.key == d.key && g.type === d.type) { m[f] = void 0; break } d = null } Yn(e, g, d = d || On, o, a, i, c, s, l), _ = g.__e, (f = g.ref) && d.ref != f && (h || (h = []), d.ref && h.push(d.ref, null, g), h.push(f, g.__c || _, g)), null != _ ? (null == p && (p = _), "function" == typeof g.type && g.__k === d.__k ? g.__d = s = qn(g, s, e) : s = Fn(e, g, d, m, _, s), "function" == typeof n.type && (n.__d = s)) : s && d.__e == s && s.parentNode != e && (s = Dn(d)) } for (n.__e = p, u = v; u--;)null != m[u] && ("function" == typeof n.type && null != m[u].__e && m[u].__e == n.__d && (n.__d = Bn(r).nextSibling), Qn(m[u], m[u])); if (h) for (u = 0; u < h.length; u++)Zn(h[u], h[++u], h[++u]) } function qn(e, t, n) { for (var r, o = e.__k, a = 0; o && a < o.length; a++)(r = o[a]) && (r.__ = e, t = "function" == typeof r.type ? qn(r, t, n) : Fn(n, r, r, o, r.__e, t)); return t } function zn(e, t) { return t = t || [], null == e || "boolean" == typeof e || (Array.isArray(e) ? e.some((function (e) { zn(e, t) })) : t.push(e)), t } function Fn(e, t, n, r, o, a) { var i, c, s; if (void 0 !== t.__d) i = t.__d, t.__d = void 0; else if (null == n || o != a || null == o.parentNode) e: if (null == a || a.parentNode !== e) e.appendChild(o), i = null; else { for (c = a, s = 0; (c = c.nextSibling) && s < r.length; s += 1)if (c == o) break e; e.insertBefore(o, a), i = a } return void 0 !== i ? i : o.nextSibling } function Bn(e) { var t, n, r; if (null == e.type || "string" == typeof e.type) return e.__e; if (e.__k) for (t = e.__k.length - 1; t >= 0; t--)if ((n = e.__k[t]) && (r = Bn(n))) return r; return null } function $n(e, t, n) { "-" === t[0] ? e.setProperty(t, null == n ? "" : n) : e[t] = null == n ? "" : "number" != typeof n || Ln.test(t) ? n : n + "px" } function Vn(e, t, n, r, o) { var a; e: if ("style" === t) if ("string" == typeof n) e.style.cssText = n; else { if ("string" == typeof r && (e.style.cssText = r = ""), r) for (t in r) n && t in n || $n(e.style, t, ""); if (n) for (t in n) r && n[t] === r[t] || $n(e.style, t, n[t]) } else if ("o" === t[0] && "n" === t[1]) a = t !== (t = t.replace(/Capture$/, "")), t = t.toLowerCase() in e ? t.toLowerCase().slice(2) : t.slice(2), e.l || (e.l = {}), e.l[t + a] = n, n ? r || e.addEventListener(t, a ? Jn : Gn, a) : e.removeEventListener(t, a ? Jn : Gn, a); else if ("dangerouslySetInnerHTML" !== t) { if (o) t = t.replace(/xlink(H|:h)/, "h").replace(/sName$/, "s"); else if ("width" !== t && "height" !== t && "href" !== t && "list" !== t && "form" !== t && "tabIndex" !== t && "download" !== t && t in e) try { e[t] = null == n ? "" : n; break e } catch (e) { } "function" == typeof n || (null == n || !1 === n && "-" !== t[4] ? e.removeAttribute(t) : e.setAttribute(t, n)) } } function Gn(e) { return this.l[e.type + !1](yn.event ? yn.event(e) : e) } function Jn(e) { return this.l[e.type + !0](yn.event ? yn.event(e) : e) } function Yn(e, t, n, r, o, a, i, c, s) { var l, u, f, d, g, _, p, h, m, v, w, y, b, k, E, C = t.type; if (void 0 !== t.constructor) return null; null != n.__h && (s = n.__h, c = t.__e = n.__e, t.__h = null, a = [c]), (l = yn.__b) && l(t); try { e: if ("function" == typeof C) { if (h = t.props, m = (l = C.contextType) && r[l.__c], v = l ? m ? m.props.value : l.__ : r, n.__c ? p = (u = t.__c = n.__c).__ = u.__E : ("prototype" in C && C.prototype.render ? t.__c = u = new C(h, v) : (t.__c = u = new Rn(h, v), u.constructor = C, u.render = er), m && m.sub(u), u.props = h, u.state || (u.state = {}), u.context = v, u.__n = r, f = u.__d = !0, u.__h = [], u._sb = []), null == u.__s && (u.__s = u.state), null != C.getDerivedStateFromProps && (u.__s == u.state && (u.__s = Tn({}, u.__s)), Tn(u.__s, C.getDerivedStateFromProps(h, u.__s))), d = u.props, g = u.state, u.__v = t, f) null == C.getDerivedStateFromProps && null != u.componentWillMount && u.componentWillMount(), null != u.componentDidMount && u.__h.push(u.componentDidMount); else { if (null == C.getDerivedStateFromProps && h !== d && null != u.componentWillReceiveProps && u.componentWillReceiveProps(h, v), !u.__e && null != u.shouldComponentUpdate && !1 === u.shouldComponentUpdate(h, u.__s, v) || t.__v === n.__v) { for (t.__v !== n.__v && (u.props = h, u.state = u.__s, u.__d = !1), u.__e = !1, t.__e = n.__e, t.__k = n.__k, t.__k.forEach((function (e) { e && (e.__ = t) })), w = 0; w < u._sb.length; w++)u.__h.push(u._sb[w]); u._sb = [], u.__h.length && i.push(u); break e } null != u.componentWillUpdate && u.componentWillUpdate(h, u.__s, v), null != u.componentDidUpdate && u.__h.push((function () { u.componentDidUpdate(d, g, _) })) } if (u.context = v, u.props = h, u.__P = e, y = yn.__r, b = 0, "prototype" in C && C.prototype.render) { for (u.state = u.__s, u.__d = !1, y && y(t), l = u.render(u.props, u.state, u.context), k = 0; k < u._sb.length; k++)u.__h.push(u._sb[k]); u._sb = [] } else do { u.__d = !1, y && y(t), l = u.render(u.props, u.state, u.context), u.state = u.__s } while (u.__d && ++b < 25); u.state = u.__s, null != u.getChildContext && (r = Tn(Tn({}, r), u.getChildContext())), f || null == u.getSnapshotBeforeUpdate || (_ = u.getSnapshotBeforeUpdate(d, g)), E = null != l && l.type === In && null == l.key ? l.props.children : l, Mn(e, Array.isArray(E) ? E : [E], t, n, r, o, a, i, c, s), u.base = t.__e, t.__h = null, u.__h.length && i.push(u), p && (u.__E = u.__ = null), u.__e = !1 } else null == a && t.__v === n.__v ? (t.__k = n.__k, t.__e = n.__e) : t.__e = Xn(n.__e, t, n, r, o, a, i, s); (l = yn.diffed) && l(t) } catch (e) { t.__v = null, (s || null != a) && (t.__e = c, t.__h = !!s, a[a.indexOf(c)] = null), yn.__e(e, t, n) } } function Kn(e, t) { yn.__c && yn.__c(t, e), e.some((function (t) { try { e = t.__h, t.__h = [], e.some((function (e) { e.call(t) })) } catch (e) { yn.__e(e, t.__v) } })) } function Xn(e, t, n, r, o, a, i, c) { var s, l, u, f = n.props, d = t.props, g = t.type, _ = 0; if ("svg" === g && (o = !0), null != a) for (; _ < a.length; _++)if ((s = a[_]) && "setAttribute" in s == !!g && (g ? s.localName === g : 3 === s.nodeType)) { e = s, a[_] = null; break } if (null == e) { if (null === g) return document.createTextNode(d); e = o ? document.createElementNS("http://www.w3.org/2000/svg", g) : document.createElement(g, d.is && d), a = null, c = !1 } if (null === g) f === d || c && e.data === d || (e.data = d); else { if (a = a && wn.call(e.childNodes), l = (f = n.props || On).dangerouslySetInnerHTML, u = d.dangerouslySetInnerHTML, !c) { if (null != a) for (f = {}, _ = 0; _ < e.attributes.length; _++)f[e.attributes[_].name] = e.attributes[_].value; (u || l) && (u && (l && u.__html == l.__html || u.__html === e.innerHTML) || (e.innerHTML = u && u.__html || "")) } if (function (e, t, n, r, o) { var a; for (a in n) "children" === a || "key" === a || a in t || Vn(e, a, null, n[a], r); for (a in t) o && "function" != typeof t[a] || "children" === a || "key" === a || "value" === a || "checked" === a || n[a] === t[a] || Vn(e, a, t[a], n[a], r) }(e, d, f, o, c), u) t.__k = []; else if (_ = t.props.children, Mn(e, Array.isArray(_) ? _ : [_], t, n, r, o && "foreignObject" !== g, a, i, a ? a[0] : n.__k && Dn(n, 0), c), null != a) for (_ = a.length; _--;)null != a[_] && An(a[_]); c || ("value" in d && void 0 !== (_ = d.value) && (_ !== e.value || "progress" === g && !_ || "option" === g && _ !== f.value) && Vn(e, "value", _, f.value, !1), "checked" in d && void 0 !== (_ = d.checked) && _ !== e.checked && Vn(e, "checked", _, f.checked, !1)) } return e } function Zn(e, t, n) { try { "function" == typeof e ? e(t) : e.current = t } catch (e) { yn.__e(e, n) } } function Qn(e, t, n) { var r, o; if (yn.unmount && yn.unmount(e), (r = e.ref) && (r.current && r.current !== e.__e || Zn(r, null, t)), null != (r = e.__c)) { if (r.componentWillUnmount) try { r.componentWillUnmount() } catch (e) { yn.__e(e, t) } r.base = r.__P = null, e.__c = void 0 } if (r = e.__k) for (o = 0; o < r.length; o++)r[o] && Qn(r[o], t, n || "function" != typeof e.type); n || null == e.__e || An(e.__e), e.__ = e.__e = e.__d = void 0 } function er(e, t, n) { return this.constructor(e, n) } function tr(e) { var t, n, r = ""; if ("string" == typeof e || "number" == typeof e) r += e; else if ("object" == typeof e) if (Array.isArray(e)) for (t = 0; t < e.length; t++)e[t] && (n = tr(e[t])) && (r && (r += " "), r += n); else for (t in e) e[t] && (r && (r += " "), r += t); return r } wn = Nn.slice, yn = { __e: function (e, t, n, r) { for (var o, a, i; t = t.__;)if ((o = t.__c) && !o.__) try { if ((a = o.constructor) && null != a.getDerivedStateFromError && (o.setState(a.getDerivedStateFromError(e)), i = o.__d), null != o.componentDidCatch && (o.componentDidCatch(e, r || {}), i = o.__d), i) return o.__E = o } catch (t) { e = t } throw e } }, bn = 0, Rn.prototype.setState = function (e, t) { var n; n = null != this.__s && this.__s !== this.state ? this.__s : this.__s = Tn({}, this.state), "function" == typeof e && (e = e(Tn({}, n), this.props)), e && Tn(n, e), null != e && this.__v && (t && this._sb.push(t), Un(this)) }, Rn.prototype.forceUpdate = function (e) { this.__v && (this.__e = !0, e && this.__h.push(e), Un(this)) }, Rn.prototype.render = In, kn = [], Cn = "function" == typeof Promise ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, xn = function (e, t) { return e.__v.__b - t.__v.__b }, Hn.__r = 0, Sn = 0; var nr, rr, or, ar, ir = 0, cr = [], sr = [], lr = yn.__b, ur = yn.__r, fr = yn.diffed, dr = yn.__c, gr = yn.unmount; function _r(e, t) { yn.__h && yn.__h(rr, e, ir || t), ir = 0; var n = rr.__H || (rr.__H = { __: [], __h: [] }); return e >= n.__.length && n.__.push({ __V: sr }), n.__[e] } function pr(e) { return ir = 1, function (e, t, n) { var r = _r(nr++, 2); if (r.t = e, !r.__c && (r.__ = [n ? n(t) : Cr(void 0, t), function (e) { var t = r.__N ? r.__N[0] : r.__[0], n = r.t(t, e); t !== n && (r.__N = [n, r.__[1]], r.__c.setState({})) }], r.__c = rr, !rr.u)) { var o = function (e, t, n) { if (!r.__c.__H) return !0; var o = r.__c.__H.__.filter((function (e) { return e.__c })); if (o.every((function (e) { return !e.__N }))) return !a || a.call(this, e, t, n); var i = !1; return o.forEach((function (e) { if (e.__N) { var t = e.__[0]; e.__ = e.__N, e.__N = void 0, t !== e.__[0] && (i = !0) } })), !(!i && r.__c.props === e) && (!a || a.call(this, e, t, n)) }; rr.u = !0; var a = rr.shouldComponentUpdate, i = rr.componentWillUpdate; rr.componentWillUpdate = function (e, t, n) { if (this.__e) { var r = a; a = void 0, o(e, t, n), a = r } i && i.call(this, e, t, n) }, rr.shouldComponentUpdate = o } return r.__N || r.__ }(Cr, e) } function hr(e, t) { var n = _r(nr++, 3); !yn.__s && Er(n.__H, t) && (n.__ = e, n.i = t, rr.__H.__h.push(n)) } function mr(e) { return ir = 5, function (e, t) { var n = _r(nr++, 7); return Er(n.__H, t) ? (n.__V = e(), n.i = t, n.__h = e, n.__V) : n.__ }((function () { return { current: e } }), []) } function vr() { for (var e; e = cr.shift();)if (e.__P && e.__H) try { e.__H.__h.forEach(br), e.__H.__h.forEach(kr), e.__H.__h = [] } catch (t) { e.__H.__h = [], yn.__e(t, e.__v) } } yn.__b = function (e) { rr = null, lr && lr(e) }, yn.__r = function (e) { ur && ur(e), nr = 0; var t = (rr = e.__c).__H; t && (or === rr ? (t.__h = [], rr.__h = [], t.__.forEach((function (e) { e.__N && (e.__ = e.__N), e.__V = sr, e.__N = e.i = void 0 }))) : (t.__h.forEach(br), t.__h.forEach(kr), t.__h = [])), or = rr }, yn.diffed = function (e) { fr && fr(e); var t = e.__c; t && t.__H && (t.__H.__h.length && (1 !== cr.push(t) && ar === yn.requestAnimationFrame || ((ar = yn.requestAnimationFrame) || yr)(vr)), t.__H.__.forEach((function (e) { e.i && (e.__H = e.i), e.__V !== sr && (e.__ = e.__V), e.i = void 0, e.__V = sr }))), or = rr = null }, yn.__c = function (e, t) { t.some((function (e) { try { e.__h.forEach(br), e.__h = e.__h.filter((function (e) { return !e.__ || kr(e) })) } catch (n) { t.some((function (e) { e.__h && (e.__h = []) })), t = [], yn.__e(n, e.__v) } })), dr && dr(e, t) }, yn.unmount = function (e) { gr && gr(e); var t, n = e.__c; n && n.__H && (n.__H.__.forEach((function (e) { try { br(e) } catch (e) { t = e } })), n.__H = void 0, t && yn.__e(t, n.__v)) }; var wr = "function" == typeof requestAnimationFrame; function yr(e) { var t, n = function () { clearTimeout(r), wr && cancelAnimationFrame(t), setTimeout(e) }, r = setTimeout(n, 100); wr && (t = requestAnimationFrame(n)) } function br(e) { var t = rr, n = e.__c; "function" == typeof n && (e.__c = void 0, n()), rr = t } function kr(e) { var t = rr; e.__c = e.__(), rr = t } function Er(e, t) { return !e || e.length !== t.length || t.some((function (t, n) { return t !== e[n] })) } function Cr(e, t) { return "function" == typeof t ? t(e) : t } function xr(e, t) { for (var n in t) e[n] = t[n]; return e } function Sr(e, t) { for (var n in e) if ("__source" !== n && !(n in t)) return !0; for (var r in t) if ("__source" !== r && e[r] !== t[r]) return !0; return !1 } function Or(e) { this.props = e } (Or.prototype = new Rn).isPureReactComponent = !0, Or.prototype.shouldComponentUpdate = function (e, t) { return Sr(this.props, e) || Sr(this.state, t) }; var Nr = yn.__b; yn.__b = function (e) { e.type && e.type.__f && e.ref && (e.props.ref = e.ref, e.ref = null), Nr && Nr(e) }; var Lr = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.forward_ref") || 3911; var Tr = yn.__e; yn.__e = function (e, t, n, r) { if (e.then) for (var o, a = t; a = a.__;)if ((o = a.__c) && o.__c) return null == t.__e && (t.__e = n.__e, t.__k = n.__k), o.__c(e, t); Tr(e, t, n, r) }; var Ar = yn.unmount; function jr(e, t, n) { return e && (e.__c && e.__c.__H && (e.__c.__H.__.forEach((function (e) { "function" == typeof e.__c && e.__c() })), e.__c.__H = null), null != (e = xr({}, e)).__c && (e.__c.__P === n && (e.__c.__P = t), e.__c = null), e.__k = e.__k && e.__k.map((function (e) { return jr(e, t, n) }))), e } function Pr(e, t, n) { return e && (e.__v = null, e.__k = e.__k && e.__k.map((function (e) { return Pr(e, t, n) })), e.__c && e.__c.__P === t && (e.__e && n.insertBefore(e.__e, e.__d), e.__c.__e = !0, e.__c.__P = n)), e } function Ir() { this.__u = 0, this.t = null, this.__b = null } function Rr(e) { var t = e.__.__c; return t && t.__a && t.__a(e) } function Dr() { this.u = null, this.o = null } yn.unmount = function (e) { var t = e.__c; t && t.__R && t.__R(), t && !0 === e.__h && (e.type = null), Ar && Ar(e) }, (Ir.prototype = new Rn).__c = function (e, t) { var n = t.__c, r = this; null == r.t && (r.t = []), r.t.push(n); var o = Rr(r.__v), a = !1, i = function () { a || (a = !0, n.__R = null, o ? o(c) : c()) }; n.__R = i; var c = function () { if (!--r.__u) { if (r.state.__a) { var e = r.state.__a; r.__v.__k[0] = Pr(e, e.__c.__P, e.__c.__O) } var t; for (r.setState({ __a: r.__b = null }); t = r.t.pop();)t.forceUpdate() } }, s = !0 === t.__h; r.__u++ || s || r.setState({ __a: r.__b = r.__v.__k[0] }), e.then(i, i) }, Ir.prototype.componentWillUnmount = function () { this.t = [] }, Ir.prototype.render = function (e, t) { if (this.__b) { if (this.__v.__k) { var n = document.createElement("div"), r = this.__v.__k[0].__c; this.__v.__k[0] = jr(this.__b, n, r.__O = r.__P) } this.__b = null } var o = t.__a && jn(In, null, e.fallback); return o && (o.__h = null), [jn(In, null, t.__a ? null : e.children), o] }; var Wr = function (e, t, n) { if (++n[1] === n[0] && e.o.delete(t), e.props.revealOrder && ("t" !== e.props.revealOrder[0] || !e.o.size)) for (n = e.u; n;) { for (; n.length > 3;)n.pop()(); if (n[1] < n[0]) break; e.u = n = n[2] } }; (Dr.prototype = new Rn).__a = function (e) { var t = this, n = Rr(t.__v), r = t.o.get(e); return r[0]++, function (o) { var a = function () { t.props.revealOrder ? (r.push(o), Wr(t, e, r)) : o() }; n ? n(a) : a() } }, Dr.prototype.render = function (e) { this.u = null, this.o = new Map; var t = zn(e.children); e.revealOrder && "b" === e.revealOrder[0] && t.reverse(); for (var n = t.length; n--;)this.o.set(t[n], this.u = [1, 0, this.u]); return e.children }, Dr.prototype.componentDidUpdate = Dr.prototype.componentDidMount = function () { var e = this; this.o.forEach((function (t, n) { Wr(e, n, t) })) }; var Ur = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103, Hr = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/, Mr = /^on(Ani|Tra|Tou|BeforeInp|Compo)/, qr = /[A-Z0-9]/g, zr = "undefined" != typeof document, Fr = function (e) { return ("undefined" != typeof Symbol && "symbol" == typeof Symbol() ? /fil|che|rad/ : /fil|che|ra/).test(e) }; Rn.prototype.isReactComponent = {}, ["componentWillMount", "componentWillReceiveProps", "componentWillUpdate"].forEach((function (e) { Object.defineProperty(Rn.prototype, e, { configurable: !0, get: function () { return this["UNSAFE_" + e] }, set: function (t) { Object.defineProperty(this, e, { configurable: !0, writable: !0, value: t }) } }) })); var Br = yn.event; function $r() { } function Vr() { return this.cancelBubble } function Gr() { return this.defaultPrevented } yn.event = function (e) { return Br && (e = Br(e)), e.persist = $r, e.isPropagationStopped = Vr, e.isDefaultPrevented = Gr, e.nativeEvent = e }; var Jr = { enumerable: !1, configurable: !0, get: function () { return this.class } }, Yr = yn.vnode; yn.vnode = function (e) { "string" == typeof e.type && function (e) { var t = e.props, n = e.type, r = {}; for (var o in t) { var a = t[o]; if (!("value" === o && "defaultValue" in t && null == a || zr && "children" === o && "noscript" === n || "class" === o || "className" === o)) { var i = o.toLowerCase(); "defaultValue" === o && "value" in t && null == t.value ? o = "value" : "download" === o && !0 === a ? a = "" : "ondoubleclick" === i ? o = "ondblclick" : "onchange" !== i || "input" !== n && "textarea" !== n || Fr(t.type) ? "onfocus" === i ? o = "onfocusin" : "onblur" === i ? o = "onfocusout" : Mr.test(o) ? o = i : -1 === n.indexOf("-") && Hr.test(o) ? o = o.replace(qr, "-$&").toLowerCase() : null === a && (a = void 0) : i = o = "oninput", "oninput" === i && r[o = i] && (o = "oninputCapture"), r[o] = a } } "select" == n && r.multiple && Array.isArray(r.value) && (r.value = zn(t.children).forEach((function (e) { e.props.selected = -1 != r.value.indexOf(e.props.value) }))), "select" == n && null != r.defaultValue && (r.value = zn(t.children).forEach((function (e) { e.props.selected = r.multiple ? -1 != r.defaultValue.indexOf(e.props.value) : r.defaultValue == e.props.value }))), t.class && !t.className ? (r.class = t.class, Object.defineProperty(r, "className", Jr)) : (t.className && !t.class || t.class && t.className) && (r.class = r.className = t.className), e.props = r }(e), e.$$typeof = Ur, Yr && Yr(e) }; var Kr = yn.__r; yn.__r = function (e) { Kr && Kr(e), e.__c }; var Xr = yn.diffed; yn.diffed = function (e) { Xr && Xr(e); var t = e.props, n = e.__e; null != n && "textarea" === e.type && "value" in t && t.value !== n.value && (n.value = null == t.value ? "" : t.value) }; var Zr = function (e, t) { var n = { __c: t = "__cC" + Sn++, __: e, Consumer: function (e, t) { return e.children(t) }, Provider: function (e) { var n, r; return this.getChildContext || (n = [], (r = {})[t] = this, this.getChildContext = function () { return r }, this.shouldComponentUpdate = function (e) { this.props.value !== e.value && n.some((function (e) { e.__e = !0, Un(e) })) }, this.sub = function (e) { n.push(e); var t = e.componentWillUnmount; e.componentWillUnmount = function () { n.splice(n.indexOf(e), 1), t && t.call(e) } }), e.children } }; return n.Provider.__ = n.Consumer.contextType = n }({}), Qr = function (e, t) { return function (n) { var r = t || {}, o = r.shouldForwardProp, a = r.label; var i = function (e, t) { function n(e) { var n = this.props.ref, r = n == e.ref; return !r && n && (n.call ? n(null) : n.current = null), t ? !t(this.props, e) || !r : Sr(this.props, e) } function r(t) { return this.shouldComponentUpdate = n, jn(e, t) } return r.displayName = "Memo(" + (e.displayName || e.name) + ")", r.prototype.isReactComponent = !0, r.__f = !0, r }(function (e) { function t(t) { var n = xr({}, t); return delete n.ref, e(n, t.ref || null) } return t.$$typeof = Lr, t.render = t, t.prototype.isReactComponent = t.__f = !0, t.displayName = "ForwardRef(" + (e.displayName || e.name) + ")", t }((function (t, r) { var a = t || {}, i = a.children, c = a.as; void 0 === c && (c = e); var s = a.style; void 0 === s && (s = {}); var l = function (e, t) { var n = {}; for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && -1 === t.indexOf(r) && (n[r] = e[r]); return n }(a, ["children", "as", "style"]), u = l, f = function (e) { var t = rr.context[e.__c], n = _r(nr++, 9); return n.c = e, t ? (null == n.__ && (n.__ = !0, t.sub(rr)), t.props.value) : e.__ }(Zr); return jn(c, Object.assign({}, { ref: r, style: Object.assign({}, n(Object.assign({}, u, { theme: f })), "function" == typeof s ? s(Object.assign({}, u, { theme: f })) : s) }, o ? function (e, t) { return Object.keys(e).filter(t).reduce((function (t, n) { return t[n] = e[n], t }), {}) }(u, o) : u), i) }))); return i.displayName = (a || e) + "💅", i } }("div")((function () { return { display: "flex", alignItems: "center", justifyContent: "center", height: "100vh" } })); function eo(e) { var t = e.displayError; void 0 === t && (t = !0); var n = e.logger; void 0 === n && (n = function () { }); var r = e.children, o = function (e) { var t = _r(nr++, 10), n = pr(); return t.__ = e, rr.componentDidCatch || (rr.componentDidCatch = function (e, r) { t.__ && t.__(e, r), n[1](e) }), [n[0], function () { n[1](void 0) }] }((function (e) { return n(e.message) })); return o[0] && t ? jn(Qr, null, jn("p", null, "An error has occurred, we apologise for the inconvenience. ", jn("br", null), jn("br", null), "We have been notified and will rectify the situation as soon as possible. ", jn("br", null), jn("br", null), "Please try again later or contact support@weglot.com directly.")) : r } var to = [{ name: "default", editorDropdown: !0, editableProps: ["flag_type", "with_flags", "is_dropdown", "with_name", "full_name", "invert_flags", "open_hover", "close_outside_click"], defaultValues: { style: { with_name: !0, with_flags: !0, full_name: !0, is_dropdown: !0, invert_flags: !0, flag_type: "rectangle_mat" }, opts: { open_hover: !1, close_outside_click: !1 } } }, { name: "toggle", editableProps: ["color"], defaultValues: { style: { full_name: !1, color: "#3D46FB" } } }, { name: "bubble", editorDropdown: !0, editableProps: ["flag_type", "with_flags", "full_name", "color", "open_hover", "close_outside_click"], defaultValues: { style: { with_name: !0, with_flags: !0, full_name: !0, flag_type: "rectangle_mat", color: "#555555" }, opts: { open_hover: !1, close_outside_click: !0 } } }, { name: "vertical_expand", editorDropdown: !0, editableProps: ["with_flags", "full_name", "color", "open_hover", "close_outside_click", "bg_transparent"], defaultValues: { style: { with_name: !0, with_flags: !0, full_name: !1, flag_type: "square", color: "#3D46FB", bg_transparent: !1 }, opts: { open_hover: !0, close_outside_click: !1 } } }, { name: "horizontal_expand", editorDropdown: !1, editableProps: ["color", "open_hover", "close_outside_click"], defaultValues: { style: { with_name: !0, with_flags: !1, full_name: !1, flag_type: "square", color: "#3D46FB" }, opts: { open_hover: !0, close_outside_click: !1 } } }, { name: "underline_edge", editableProps: ["full_name", "color"], maxLanguages: 10, minLanguages: null, defaultValues: { style: { full_name: !1, color: "#FA8072" } } }, { name: "skewed", editorDropdown: !0, editableProps: ["with_flags", "full_name", "color", "open_hover", "close_outside_click", "bg_transparent"], defaultValues: { style: { with_name: !0, with_flags: !0, full_name: !1, flag_type: "square", color: "#3D46FB" }, opts: { open_hover: !0, close_outside_click: !1 } } }, { name: "underline_full", maxLanguages: 10, minLanguages: null, editableProps: ["with_flags", "flag_type", "color"], defaultValues: { style: { full_name: !0, color: "#3D46FB", with_flags: !0, flag_type: "rectangle_mat" } } }].map((function (e) { return Object.assign({}, e, { defaultValues: Object.assign({}, e.defaultValues, { opts: Object.assign({}, e.defaultValues.opts, { is_responsive: !1, display_device: "mobile", pixel_cutoff: 768 }), style: Object.assign({}, e.defaultValues.style, { size_scale: 1 }) }), editableProps: e.editableProps.concat(["is_responsive", "display_device", "pixel_cutoff", "size_scale"]) }) })); function no(e) { var t = function (e) { return void 0 === e && (e = "default"), to.find((function (t) { return t.name === (e || "default") })) }(e), n = t.defaultValues; void 0 === n && (n = {}); var r = n, o = r.style; void 0 === o && (o = {}); var a = r.opts; return void 0 === a && (a = {}), { style: o, opts: a } } var ro = i({ service: "switcher-templates" }), oo = { af: { name: "Afrikaans", flag: "za" }, am: { name: "አማርኛ", flag: "et" }, ar: { name: "العربية‏", flag: "sa" }, az: { name: "Azərbaycan dili", flag: "az" }, ba: { name: "башҡорт теле", flag: "ru" }, be: { name: "Беларуская", flag: "by" }, bg: { name: "Български", flag: "bg" }, bn: { name: "বাংলা", flag: "bd" }, br: { name: "Português Brasileiro", flag: "br" }, bs: { name: "Bosanski", flag: "ba" }, ca: { name: "Català", flag: "es-ca" }, co: { name: "Corsu", flag: "fr-co" }, cs: { name: "Čeština", flag: "cz" }, cy: { name: "Cymraeg", flag: "gb-wls" }, da: { name: "Dansk", flag: "dk" }, de: { name: "Deutsch", flag: "de" }, el: { name: "Ελληνικά", flag: "gr" }, en: { name: "English", flag: "gb" }, eo: { name: "Esperanto", flag: "eo" }, es: { name: "Español", flag: "es" }, et: { name: "Eesti", flag: "ee" }, eu: { name: "Euskara", flag: "eus" }, fa: { name: "فارسی", flag: "ir" }, fi: { name: "Suomi", flag: "fi" }, fj: { name: "Vosa Vakaviti", flag: "fj" }, fl: { name: "Filipino", flag: "ph" }, fr: { name: "Français", flag: "fr" }, fy: { name: "frysk", flag: "nl" }, ga: { name: "Gaeilge", flag: "ie" }, gd: { name: "Gàidhlig", flag: "gb-sct" }, gl: { name: "Galego", flag: "es-ga" }, gu: { name: "ગુજરાતી", flag: "in" }, ha: { name: "هَوُسَ", flag: "ne" }, he: { name: "עברית", flag: "il" }, hi: { name: "हिंदी", flag: "in" }, hr: { name: "Hrvatski", flag: "hr" }, ht: { name: "Kreyòl ayisyen", flag: "ht" }, hu: { name: "Magyar", flag: "hu" }, hw: { name: "‘Ōlelo Hawai‘i", flag: "hw" }, hy: { name: "հայերեն", flag: "am" }, id: { name: "Bahasa Indonesia", flag: "id" }, ig: { name: "Igbo", flag: "ne" }, is: { name: "Íslenska", flag: "is" }, it: { name: "Italiano", flag: "it" }, ja: { name: "日本語", flag: "jp" }, jv: { name: "Wong Jawa", flag: "id" }, ka: { name: "ქართული", flag: "ge" }, kk: { name: "Қазақша", flag: "kz" }, km: { name: "ភាសាខ្មែរ", flag: "kh" }, kn: { name: "ಕನ್ನಡ", flag: "in" }, ko: { name: "한국어", flag: "kr" }, ku: { name: "كوردی", flag: "iq" }, ky: { name: "кыргызча", flag: "kg" }, la: { name: "Latine", flag: "it" }, lb: { name: "Lëtzebuergesch", flag: "lu" }, lo: { name: "ພາສາລາວ", flag: "la" }, lt: { name: "Lietuvių", flag: "lt" }, lv: { name: "Latviešu", flag: "lv" }, lg: { name: "Oluganda", flag: "ug" }, mg: { name: "Malagasy", flag: "mg" }, mi: { name: "te reo Māori", flag: "nz" }, mk: { name: "Македонски", flag: "mk" }, ml: { name: "മലയാളം", flag: "in" }, mn: { name: "Монгол", flag: "mn" }, mr: { name: "मराठी", flag: "in" }, ms: { name: "Bahasa Melayu", flag: "my" }, mt: { name: "Malti", flag: "mt" }, my: { name: "မျန္မာစာ", flag: "mm" }, ne: { name: "नेपाली", flag: "np" }, nl: { name: "Nederlands", flag: "nl" }, no: { name: "Norsk", flag: "no" }, ny: { name: "chiCheŵa", flag: "mw" }, pa: { name: "ਪੰਜਾਬੀ", flag: "in" }, pl: { name: "Polski", flag: "pl" }, ps: { name: "پښت", flag: "af" }, pt: { name: "Português", flag: "pt" }, ro: { name: "Română", flag: "ro" }, ru: { name: "Русский", flag: "ru" }, sd: { name: '"سنڌي، سندھی, सिन्धी"', flag: "pk" }, si: { name: "සිංහල", flag: "lk" }, sk: { name: "Slovenčina", flag: "sk" }, sl: { name: "Slovenščina", flag: "si" }, sm: { name: '"gagana fa\'a Samoa"', flag: "ws" }, sn: { name: "chiShona", flag: "zw" }, so: { name: "Soomaaliga", flag: "so" }, sq: { name: "Shqip", flag: "al" }, sr: { name: "Српски", flag: "rs" }, st: { name: "seSotho", flag: "ng" }, su: { name: "Sundanese", flag: "sd" }, sv: { name: "Svenska", flag: "se" }, sw: { name: "Kiswahili", flag: "ke" }, ta: { name: "தமிழ்", flag: "in" }, te: { name: "తెలుగు", flag: "in" }, tg: { name: "Тоҷикӣ", flag: "tj" }, th: { name: "ภาษาไทย", flag: "th" }, tl: { name: "Tagalog", flag: "ph" }, to: { name: "faka-Tonga", flag: "to" }, tr: { name: "Türkçe", flag: "tr" }, tt: { name: "Tatar", flag: "tr" }, tw: { name: "中文 (繁體)", flag: "tw" }, ty: { name: '"te reo Tahiti, te reo Māʼohi"', flag: "pf" }, uk: { name: "Українська", flag: "ua" }, ur: { name: "اردو", flag: "pk" }, uz: { name: '"O\'zbek"', flag: "uz" }, vi: { name: "Tiếng Việt", flag: "vn" }, xh: { name: "isiXhosa", flag: "za" }, yi: { name: "ייִדיש", flag: "il" }, yo: { name: "Yorùbá", flag: "ng" }, zh: { name: "中文 (简体)", flag: "cn" }, zu: { name: "isiZulu", flag: "za" }, hm: { name: "Hmoob", flag: "hmn" }, cb: { name: "Sugbuanon", flag: "ph" }, or: { name: "ଓଡ଼ିଆ", flag: "in" }, tk: { name: "Türkmen", flag: "tr" }, ug: { name: "ئۇيغۇر", flag: "uig" }, fc: { name: "Français (Canada)", flag: "ca" }, as: { name: "অসমীয়া", flag: "in" }, sa: { name: "Srpski", flag: "rs" }, om: { name: "Afaan Oromoo", flag: "et" }, iu: { name: "ᐃᓄᒃᑎᑐᑦ", flag: "ca" }, ti: { name: "ቲግሪንያ", flag: "er" }, bm: { name: "Bamanankan", flag: "ml" }, bo: { name: "བོད་ཡིག", flag: "cn" }, ak: { name: "Baoulé", flag: "gh" }, rw: { name: "Kinyarwanda", flag: "rw" } }; function ao(e) { if (!e || !e.toLowerCase) return "Unknown"; var t = e.toLowerCase(), n = xt.languages.find((function (e) { var n = e.language_to, r = e.custom_code; return n === t || (r ? r.toLowerCase() === t : void 0) })); return n && n.custom_local_name ? n.custom_local_name : n && n.custom_name ? n.custom_name : t === xt.language_from && xt.language_from_custom_name ? xt.language_from_custom_name : oo[t].name } function io(e, t) { return t[e] ? t[e].flag : "" } function co(e) { return function (e, t, n) { if (!e || !e.toLowerCase) return ""; if (t.language_from === e) return t.language_from_custom_flag || io(e, n); var r = e.toLowerCase(), o = t.languages.find((function (e) { var t = e.language_to, n = e.custom_code; return t === r || n && n.toLowerCase() === r })); return o ? o.custom_flag || io(o.language_to, n) : "" }(e, xt, oo) } function so(e, t, n) { return t < e ? e : t > n ? n : t } function lo(e, t) { return t && 1 !== t ? Math.round(e * t * 100) / 100 : e } function uo(e, t) { return "WordPress" === xt.technology_name && xt.injectedData && !xt.is_connect ? t(xt.injectedData.switcher_links[e]) : tt(e, t) } var fo = 13, go = 27, _o = 38, po = 40; var ho = ["none", "shiny", "square", "circle", "rectangle_mat"]; function mo(e) { return e ? e.getBoundingClientRect() : { bottom: 0, height: 0, left: 0, right: 0, top: 0, width: 0 } } function vo() { var e = pr("WordPress" === xt.technology_name && xt.injectedData && !xt.is_connect ? xt.injectedData.current_language : xt.switcher_editor ? xt.language_from : window.Weglot.getCurrentLang()), t = e[0], n = e[1]; return hr((function () { xt.is_connect || "WordPress" === xt.technology_name || xt.switcher_editor || window.Weglot.on("languageChanged", (function (e) { n(e) })) }), []), [t, n] } function wo(e, t) { var n = window.innerWidth > 0 ? window.innerWidth : screen.width, r = t || 768; return "mobile" === e ? n <= r : n > r } function yo(e, t, n) { var r = pr(!1), o = r[0], a = r[1]; return hr((function () { var r = e.size_scale; if ("default" !== n || r && 1 !== r) { var o, i, c, s, l, u = (o = t(e), i = n, c = xt.button_style && xt.button_style.custom_css, s = "default" === i, l = o.map((function (e) { var t = e.selector, n = e.declarations; return [(s ? "aside.country-selector" : "") + ".weglot_switcher." + i + t + " {", Object.keys(n).map((function (e) { return "\t" + e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase() + ": " + n[e] + ";" })).join("\n"), "}"].join("\n") })).join("\n\n"), !c || xt.switcher_gallery ? l : l + "\n\n" + c); !function (e, t) { if (e) { var n = document.querySelector("style#weglot-switcher-" + t); if (n) n.textContent = e; else { var r = document.createElement("style"); r.id = "weglot-switcher-" + t, r.textContent = e, document.head.appendChild(r) } } }(u, n), a(!0) } }), []), o } function bo(e) { var t = e.close_outside_click; void 0 === t && (t = !1); var n = e.open_hover; void 0 === n && (n = !1); var r = vo(), o = r[0], a = r[1], i = pr(!1), c = i[0], s = i[1], l = function (e) { var t = mr(null); return hr((function () { if (e) return document.addEventListener("mousedown", n), function () { document.removeEventListener("mousedown", n) }; function n(n) { t.current && !t.current.contains(n.target) && e() } }), [t]), t }(t && !n && E), f = mr(null), d = rn().filter((function (e) { return e !== o })), g = pr(null), _ = g[0], p = g[1], h = pr(!1), m = h[0], v = h[1], w = pr(!1), y = w[0], b = w[1]; function k() { var e = mo(l.current), t = e.bottom; void 0 === t && (t = 0); var n = e.left; void 0 === n && (n = 0), b(t > window.innerHeight / 2), v(n > window.innerWidth / 2), s(!0) } function E() { s(!1), p(null) } function C() { return c ? E() : k() } function x(e) { if (xt.switcher_editor) return s(!1); var t; a(e), t = e, "WordPress" === xt.technology_name && xt.injectedData && !xt.is_connect ? uo(t, (function (e) { u(window.location.hostname) ? window.dispatchEvent(new CustomEvent("veLanguageChangeUrl", { detail: { targetUrl: e } })) : window.location.replace(e) })) : window.Weglot.switchTo(t), s(!1) } return hr((function () { _ && f.current.scrollIntoView({ block: "center" }) }), [_]), { open: c, opensUpward: y, opensLeftward: m, language: o, otherLanguages: d, focusedLanguage: _, switcherContainerRef: l, focusedLanguageRef: f, handleMouseEnter: function () { n && k() }, handleMouseLeave: function () { n && E() }, handleKeyDown: function (e) { return e.keyCode === fo ? (e.preventDefault(), _ && x(_), C()) : e.keyCode === po || e.keyCode === _o ? (e.preventDefault(), void function (e) { var t = e === po ? "down" : "up", n = d.slice(-1).pop(), r = d[0], o = mo(l.current).bottom; void 0 === o && (o = 0); var a = o > window.innerHeight / 2; if (!_ || !c) { return p("down" === t ? r : n), void (!c && ("up" === t && a || "down" === t && !a) && k()) } if (!a && "up" === t && _ === r || a && "down" === t && _ === n) return void C(); var i = "up" === t ? -1 : 1, s = d.indexOf(_) + i; if (s === d.length || -1 === s) return; p(d[s]) }(e.keyCode)) : void (e.keyCode === go && c && (e.preventDefault(), C())) }, switchLanguage: x, toggleOpen: C } } var ko = { rectangle_mat: { width: 30, height: 20 }, shiny: { width: 30, height: 20 }, circle: { width: 24, height: 24 }, square: { width: 24, height: 24 } }, Eo = function (e) { var t = e.language, n = e.flagType; void 0 === n && (n = "circle"); var r = e.size_scale, o = co(t), a = ko[n] || {}, i = a.width, c = a.height; if (o) return jn("img", { src: o.indexOf("http") > -1 ? o : "https://cdn.weglot.com/flags/" + n + "/" + o + ".svg", width: lo(i, r), height: lo(c, r), className: "wg-flag", role: "none", alt: ao(t) + " flag" }) }, Co = function (e) { var t = e.styleOpts, n = e.language, r = e.onClick, o = e.legacyFlags, a = e.open; void 0 === a && (a = !1); var i = e.url, c = e.focusedLanguage, s = e.isSelected; void 0 === s && (s = !1); var l = e.focusRef; void 0 === l && (l = null); var u = t.with_name; void 0 === u && (u = !0); var f = t.full_name; void 0 === f && (f = !0); var d = t.with_flags, g = t.size_scale, _ = t.flag_type, p = !!c && n === c, h = f ? ao(n) : n.toUpperCase(), m = s ? "div" : "li", v = ho.indexOf(_ || "rectangle_mat"), w = d ? " wg-flags" + (o ? " flag-" + v + " legacy" : "") : "", y = p && !s ? " focus" : "", b = s ? " wgcurrent" : ""; return jn(m, Object.assign({}, { "data-l": n, onClick: function (e) { return function (e, t) { e.preventDefault(), r(t) }(e, n) }, className: "wg-li " + n + b + w + y }, s ? { role: "combobox", "aria-activedescendant": c ? "weglot-language-" + c : "", "aria-label": "Language", tabindex: "0", "aria-expanded": a, "aria-controls": "weglot-listbox" } : { role: "none", id: "wg-" + n }), jn("a", Object.assign({}, s ? { target: "_self" } : { role: "option" }, { href: i }, !u && { "aria-label": h }, p && !s && { ref: l }, { id: "weglot-language-" + n, tabIndex: -1 }), d && !o && jn(Eo, { language: n, flagType: _, size_scale: g }), u && h)) }; function xo(e) { var t = e.size_scale, n = function (e) { return lo(e, t) }; return [{ selector: ".wg-drop ul", declarations: { top: n(38) + "px", bottom: "auto" } }, { selector: ".wg-drop.weg-openup ul", declarations: { bottom: n(38) + "px", top: "auto" } }, { selector: " a", declarations: { fontSize: n(13) + "px" } }, { selector: ".wg-drop a img.wg-flag", declarations: { height: n(30) + "px" } }, { selector: ".wg-drop .wg-li.wgcurrent", declarations: { height: n(38) + "px", display: "flex", alignItems: "center" } }, { selector: ".wg-drop a", declarations: { height: n(38) + "px" } }, { selector: " .wgcurrent:after", declarations: { height: n(38) + "px", backgroundSize: n(9) + "px" } }, { selector: ".wg-drop .wgcurrent a", declarations: { paddingRight: so(22, n(40), 40) + "px", paddingLeft: so(5, n(10), 10) + "px" } }] } var So, Oo, No, Lo = "default", To = function (e, t) { return function (n) { var r = n || {}, o = r.style; void 0 === o && (o = {}); var a = r.opts; void 0 === a && (a = {}); var i = no(t), c = i.style, s = i.opts, l = document.createElement("div"); return function (e, t, n) { var r, o, a; yn.__ && yn.__(e, t), o = (r = "function" == typeof n) ? null : n && n.__k || t.__k, a = [], Yn(t, e = (!r && n || t).__k = jn(In, null, [e]), o || On, On, void 0 !== t.ownerSVGElement, !r && n ? [n] : o ? null : t.firstChild ? wn.call(t.childNodes) : null, a, !r && n ? n : o ? o.__e : t.firstChild, r), Kn(a, e) }(jn(eo, { logger: ro.error, displayError: !1 }, jn(e, { style: Object.assign({}, c, o), opts: Object.assign({}, s, a) })), l), l.classList.add("weglot-container"), l } }((function (e) { var t = e.style, n = e.opts, r = bo(n), o = r.open, a = r.opensUpward, i = r.opensLeftward, c = r.language, s = r.focusedLanguage, l = r.switcherContainerRef, u = r.focusedLanguageRef, f = r.handleMouseEnter, d = r.handleMouseLeave, g = r.handleKeyDown, _ = r.switchLanguage, p = r.toggleOpen, h = function () { var e = rn(), t = pr(e.reduce((function (e, t) { var n; return Object.assign({}, e, ((n = {})[t] = "", n)) }), {})), n = t[0], r = t[1]; return hr((function () { Promise.all(e.map((function (e) { return new Promise((function (t) { return uo(e, (function (n) { return t({ l: e, url: n }) })) })) }))).then((function (e) { return r(e.reduce((function (e, t) { var n, r = t.l, o = t.url; return Object.assign({}, e, ((n = {})[r] = o, n)) }), {})) })) }), []), n }(), m = function (e) { var t = e.is_responsive, n = e.display_device, r = e.pixel_cutoff, o = pr(!t || wo(n, r)), a = o[0], i = o[1], c = function () { return i(wo(n, r)) }; return hr((function () { if (t) return window.addEventListener("resize", c), function () { window.removeEventListener("resize", c) } }), [t, n, r]), a }(n); yo(t, xo, Lo); var v = xt.switcher_editor, w = t.is_dropdown, y = t.invert_flags, b = w || y, k = rn().filter((function (e) { return !b || e !== c })), E = /background-position/i.test(xt.button_style.custom_css) && !xt.languages.some((function (e) { return e.custom_flag })), C = function () { for (var e, t, n = arguments, r = 0, o = ""; r < arguments.length;)(e = n[r++]) && (t = tr(e)) && (o && (o += " "), o += t); return o }({ open: o, closed: !o, "wg-drop": w, "wg-list": !w, "weg-openup": a && o, "weg-openleft": i && o, "wg-editor": v }); return m ? jn("aside", { ref: l, "data-wg-notranslate": !0, onKeyDown: g, onMouseEnter: f, onMouseLeave: d, className: "weglot_switcher wg-mouse-click country-selector default " + C, "aria-label": "Language selected: " + ao(c) }, b && jn(Co, { styleOpts: t, open: o, focusedLanguage: s, language: c, isSelected: !0, onClick: p, legacyFlags: E, url: "#" }), jn("ul", { role: "listbox", id: "weglot-listbox", style: !o && t.is_dropdown && { display: "none" } }, k.map((function (e) { return jn(Co, { language: e, url: e === c ? "#" : h[e], onClick: _, isSelected: e === c, focusedLanguage: s, key: "wg-" + e, focusRef: u, styleOpts: t, legacyFlags: E }) })))) : jn(In, null) }), Lo), Ao = 0, jo = []; function Po(e, t) { if (void 0 === t && (t = document.documentElement), e && !e.ready) { var n = e.style || xt.button_style, r = e.location; void 0 === r && (r = {}); var o = function (e, t) { void 0 === e && (e = {}); var n = e.target, r = e.sibling; if (!n) return { defaultPosition: !0 }; var o = ue(t, n); if (!o.length) return { error: ye(n) ? "The provided target is not on this page." : "The provided target is not a valid CSS selector." }; var a = ue(t, r); if (!r || !a.length) return { targetNode: o[0], siblingNode: null }; var i = Array.from(o), c = Array.from(a), s = null, l = c.find((function (e) { return s = i.find((function (t) { return e.parentNode === t })), !!s })); return l && s ? { targetNode: s, siblingNode: l } : { error: "The provided sibling selector does not belong to target element." } }(r, t), a = o.error, i = o.targetNode, c = o.siblingNode, s = o.defaultPosition; if (!a) { var l = To(Object.assign({}, e, !xt.switcher_editor && { style: n })); if (l.weglotSwitcher = e, jo.push(l), s) return l.classList.add("wg-default"), document.body.appendChild(l), e.ready = !0, l; l.setAttribute("data-switcher-id", String(++Ao)), l.id = "weglot-switcher-" + Ao, l.setAttribute("data-switcher-style-opt", JSON.stringify(n)), i.insertBefore(l, c), e.ready = !0; for (var u = 0, f = t.querySelectorAll(".weglot-container:empty"); u < f.length; u += 1) { _e(f[u]) } return l } M.warn(a, { sendToDatadog: !1 }) } } function Io(e) { var t = e.name, n = e.hash, r = e.interactive; if (void 0 === r && (r = !1), fe(document.documentElement, "script#weglot-switcher-" + t)) return !1; var o = !xt.switcher_editor && n ? t + "." + n : t, a = document.getElementsByTagName("head")[0] || document.documentElement, i = document.createElement("script"); return i.type = "text/javascript", i.src = "https://cdn.weglot.com/switchers/" + o + ".min.js", i.id = "weglot-switcher-" + t, r && i.setAttribute("interactive", "true"), a.insertBefore(i, a.firstChild), !0 } function Ro() { So || Pe("switchersReady", ze()), So = !0, clearTimeout(No), Oo && Oo.parentNode.removeChild(Oo) } function Do(e) { if (void 0 === e && (e = document), !(rn().length < 2 || xt.hide_switcher)) { var t = e.isConnected ? e : document; (function (e) { void 0 === e && (e = document.body); var t = xt.linkHooksConfig && xt.linkHooksConfig.additionalCheckSelectors || []; if (0 !== ue(e, ['a[href^="#Weglot-"]', 'a[href*="change-language.weglot.com/"]'].concat(t).join(",")).length) { for (var n = rn(), r = ze(), o = !1, a = [], i = function () { var t = s[c], n = ue(e, vn(t)); if (0 !== n.length) { o = !0; for (var i = function () { var e = u[l]; e.setAttribute($, ""), e.classList.add("weglot-link", "weglot-link-" + t), t === r && (e.classList.add("weglot-link--active"), xt.linkHooksConfig && xt.linkHooksConfig.onLinkActive && xt.linkHooksConfig.onLinkActive(e)), tt(t, (function (t) { return e.setAttribute("href", t) })), e.addEventListener("click", (function (e) { e.preventDefault(), e.stopPropagation(), ia(t) })) }, l = 0, u = n; l < u.length; l += 1)i(); a.push({ language: t, links: n }) } }, c = 0, s = n; c < s.length; c += 1)i(); return je("languageChanged", (function (e) { for (var t = 0, n = a; t < n.length; t += 1) { var r = n[t], o = r.language, i = r.links; if (o === e) for (var c = 0, s = i; c < s.length; c += 1) { var l = s[c]; l.classList.add("weglot-link--active"), xt.linkHooksConfig && xt.linkHooksConfig.onLinkActive && xt.linkHooksConfig.onLinkActive(l) } else for (var u = 0, f = i; u < f.length; u += 1) { var d = f[u]; d.classList.remove("weglot-link--active"), xt.linkHooksConfig && xt.linkHooksConfig.offLinkActive && xt.linkHooksConfig.offLinkActive(d) } } }), !0), o } })(t) && Ro(); var n = t.querySelectorAll("#weglot_here:not(.weglot-container),.weglot_here:not(.weglot-container)"); if (n.length) { for (var r = 0, o = n; r < o.length; r += 1) { var a = o[r], i = To({ style: xt.button_style }); i.classList.add("weglot_here"), a.parentNode.insertBefore(i, a), _e(a) } Ro() } for (var c = 0, s = xt.switchers; c < s.length; c += 1) { var l = s[c]; if (!l.default) { var u = l.template; if (u) { if (u.name) { if (!Io(u)) { var f = window.Weglot.switchers && window.Weglot.switchers[u.name]; f && f.addSwitchers(t) } Ro() } } else Po(l, t) && Ro() } } if (!So && !Oo) { var d = xt.switchers.find((function (e) { return e.default })) || { style: xt.button_style }; No = setTimeout((function () { Oo = Po(d), Pe("switchersReady", ze()) })) } } } je("onCurrentLocationChanged", (function () { jo.forEach((function (e) { return e.parentNode && e.parentNode.removeChild(e) })), jo.splice(0), function () { for (var e = window.Weglot.switchers || {}, t = 0, n = Object.keys(e); t < n.length; t += 1)e[n[t]].removeSwitchers() }(), So = null, Oo = null, Ao = 0, xt.button_style.ready = !1, xt.switchers.map((function (e) { return e.ready = !1 })), Do() }), !0); var Wo = 0; function Uo() { var e = ["name", "value"]; xt.translate_event.forEach((function (t) { for (var n = ue(document.body, t.selector), r = function () { var n = a[o]; if (n.alreadyListeningEventInput) return !n.alreadyListeningEventInput.isConnected && Wo < 10 && (Wo++, n.parentNode.insertBefore(n.alreadyListeningEventInput, n.nextSibling)), {}; var r = n.cloneNode(!0); if (!r) return {}; r.name = "", n.alreadyListeningEventInput = r, n.parentNode.insertBefore(r, n.nextSibling), n.style.display = "none", new MutationObserver((function (t) { for (var o = 0, a = t; o < a.length; o += 1) { var i = a[o], c = n.getAttribute(i.attributeName); e.includes(i.attributeName) && r.setAttribute(i.attributeName, c) } })).observe(n, { attributes: !0 }); var i = Ee((function (e) { 13 === e.keyCode && e.target.form ? e.target.form.dispatchEvent(new Event("submit")) : gn(e.target.value, (function (e) { Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set.call(n, e); var r = t.eventName || n.getAttribute("data-wg-translate-event"), o = document.createEvent("HTMLEvents"); o.initEvent("focus", !0, !1), n.dispatchEvent(o), o.initEvent(r, !0, !1), n.dispatchEvent(o) })) }), 400); r.addEventListener("keydown", i) }, o = 0, a = n; o < a.length; o += 1) { var i = r(); if (i) return i.v } })) } try { var Ho = Element.prototype.attachShadow; Element.prototype.attachShadow = function (e) { var t = Ho.call(this, e); return Mo([this]), t } } catch (mr) { } function Mo(e) { if (xt.translate_shadow_roots) { e || (e = ue(document, xt.dynamics.map((function (e) { return e.value })).join(","))); for (var t = 0, n = e; t < n.length; t += 1) { var r = n[t]; if (r.shadowRoot && !r.shadowRoot.wgTranslated) { r.shadowRoot.wgTranslated = !0, Ko(r.shadowRoot); var o = Ft(r.shadowRoot); o.length && ($t(o), na(o)) } } } } var qo, zo = null, Fo = [], Bo = [$, "class", "id"], $o = [], Vo = []; function Go(e, t) { qo && clearTimeout(qo); for (var n = 0, r = t; n < r.length; n += 1) { var o = r[n]; 1 === o.nodeType && Fo.push(o) } Fo.length && (qo = setTimeout((function () { Do(e), Uo(), xt.subdomain && function (e) { var t = window.location.hostname; if (-1 !== [xt.host].concat(l).indexOf(t)) return; for (var n = 0, r = e; n < r.length; n += 1)for (var o = r[n], a = 0, i = ue(o, "[href]"); a < i.length; a += 1) { var c = i[a]; if (!v(c)) { var s = c.getAttribute("href"); s && s.includes("//" + xt.host) && c.setAttribute("href", s.replace(xt.host, t)) } } }(Fo), xt.proxify_iframes && xt.proxify_iframes.length && Fo.forEach((function (e) { return pn({ node: e }) })), Mo(Fo), Oe("onDynamicDetected"), Fo = [] }), 100)) } function Jo(e, t) { var n = xt.dynamics, r = Xo; t !== document ? r = function () { return !0 } : n && 0 !== n.length || (r = function () { return !1 }); try { if (nn()) return; if (e = function (e, t) { var n = [], r = e.filter((function (e) { var r = e.addedNodes, o = e.type, a = e.target; "attributes" === o && function (e) { "IMG" === e.nodeName && e.srcset && e.dataset.wgtranslated && (e.setAttribute("wgsrcset", e.srcset), e.srcset = "") }(a); var i = function (e) { do { if (e.weglot && e.weglot.setted) return e; e = e.parentElement || e.parentNode } while (e) }(a); return i ? (n.push(i), !1) : r.length ? (setTimeout((function () { return Go(a, r) })), !zo || !a || !de(a, zo)) : !Bo.includes(e.attributeName) && t(a) && ("characterData" === o || "attributes" === o) })); if (n.length) for (var o = 0, a = n; o < a.length; o += 1) { a[o].weglot.setted = !1 } return r }(e, r), !n || 0 === n.length) return; if (e.length) try { !function (e, t, n) { void 0 === n && (n = !0); for (var r = [], o = function (e) { var n = e.outerHTML || e.textContent; if (e.wgParsed !== n) { e.wgParsed = n; for (var o = Ft(e, (function (e) { var n = e.element; return !function (e) { return e.weglot && e.weglot.dynamic > 20 }(n) && t(n) })), a = 0, i = o; a < i.length; a += 1) { var c = i[a]; xt.ignoreDynamicFragments && !document.body.contains(c) || (c.weglot.dynamic || (c.weglot.dynamic = 0), c.weglot.dynamic++, r.push(c)) } } }, a = [], i = 0, c = e; i < c.length; i += 1) { var s = c[i], l = s.type, u = s.target, f = s.addedNodes; switch (l) { case "attributes": case "characterData": if (a.includes(u)) break; a.push(u), o(u); break; case "childList": var d = f.length > 1 ? u : f[0]; if (a.includes(d)) break; if (o(d), a.push(d), !n) break; for (var g = 0, _ = f; g < _.length; g += 1) { var p = _[g], h = []; "IFRAME" === p.tagName ? h = [p] : p.querySelectorAll && (h = p.querySelectorAll("iframe")); for (var m = 0; m < h.length; m++) { var w = h[m]; t(w) && Ce(w) && !v(w) && (o(w.contentWindow.document), Ko(w.contentWindow.document)) } } } } r.length && ($t(r), na(r)) }(e, r) } catch (e) { M.warn(e) } } catch (e) { M.warn(e, { consoleOverride: "Error in MutationObserver" }) } } var Yo = !1; function Ko(e) { var t = e !== document ? e : e.body || e, n = new MutationObserver((function (t) { var n; if (Yo) Jo(t, e); else { var r = $o.find((function (t) { return t.documentElement === e })); r ? (n = r.mutations).push.apply(n, t) : $o.push({ documentElement: e, mutations: [].concat(t) }) } })); n.observe(t, { childList: !0, subtree: !0, characterData: !0, attributes: !0 }), Vo.push(n) } function Xo(e) { return !(!xt.dynamics || 0 === xt.dynamics.length) && (e && e.closest || (e = e.parentNode), e && e.closest && de(e, xt.dynamics.map((function (e) { return e.value })).join(", "))) } var Zo, Qo, ea, ta = { times: [], timeout: null, nodes: [] }; function na(e) { void 0 === e && (e = []), clearTimeout(ta.timeout); var t = ze(); if (t !== xt.language_from) { if (ta.times = ta.times.filter((function (e) { return e > Date.now() - 1e3 })), ta.times.length && (ta.timeout || ta.times.length >= 10)) return ta.nodes = ta.nodes.concat(e), void (ta.timeout = setTimeout((function () { return na() }), 1e3)); ta.timeout = null, ta.times.push(Date.now()); var n = ta.nodes.concat(e); return ta.nodes = [], dn(Vt(n), t, { title: !1, cdn: !0, nodes: n }).then((function (e) { return Gt(e, t, n) })) } } function ra() { var e = ge("wg_progress").firstElementChild, t = e.getAttribute("aria-valuenow"), n = parseInt(t) + (4 * Math.random() + 2); n <= 100 && (e.setAttribute("aria-valuenow", n.toString()), e.style.width = n + "%") } function oa(e) { clearInterval(e), _e(ge("wg_progress")) } function aa(e, t, n) { if (n || !e || window.top !== window || !sa(e)) { var r = []; try { $t(r = Ft()) } catch (e) { M.warn(e) } var o = nn(); if (e && t && !o && un(e), !xt.is_connect || xt.dynamicPushState || !o && e !== xt.language_from ? function (e) { void 0 === e && (e = !0); var t = xt.excluded_blocks, n = xt.is_connect; if (Yo = e) if (zo = t && t.length && t.map((function (e) { return e.value })).join(","), n && $o.length > 0) for (var r = function () { var e = a[o], t = e.mutations, n = e.documentElement, r = function () { var e = t.splice(0, 100); e.length > 0 && (Jo(e, n), setTimeout(r, 0)) }; r() }, o = 0, a = $o; o < a.length; o += 1)r(); else $o = [] }() : function () { if (0 !== Vo.length) { for (var e = 0, t = Vo; e < t.length; e += 1)t[e].disconnect(); $o = [] } }(), n || o) ca(e); else if (xt.is_connect && !o && Oe("onConnectPageLoad", e), xt.force_translation) { for (var a = [], i = 0, c = r; i < c.length; i += 1) { var s = c[i]; (s.closest && s.closest(xt.force_translation) || !s.closest && s.parentNode && s.parentNode.closest && s.parentNode.closest(xt.force_translation)) && a.push(s) } na(a) } o && !o.language_button_displayed && o.allExcluded || Do(), o || (xt.remove_unused_link_hooks && function () { var e = rn(), t = xt.languages.map((function (e) { return e.custom_code || e.language_to })).filter((function (t) { return !e.includes(t) })); 1 === e.length && t.push(xt.language_from); for (var n = t.map((function (e) { return vn(e) })).join(","), r = 0, o = ue(document, n); r < o.length; r += 1)_e(o[r]) }(), Mo(), Uo(), function () { window.addEventListener("message", mn, !1); var e = xt.translate_iframes; if (e) for (var t = 0, n = ue(document.body, e); t < n.length; t += 1) { var r = n[t]; r.contentWindow && _n.push(r.contentWindow) } pn({}), Se("onPageLanguageSet", hn), "with-window-top" === me() && window.top.postMessage({ message: "Weglot.iframe" }, "*") }(), ["alert"].forEach((function (e) { var t = window[e]; window[e] = function () { var e = arguments; if ("string" == typeof arguments[0]) { var n = ze(); return xt.language_from === n ? t.apply(window, arguments) : dn([{ t: 2, w: arguments[0] }], n, { title: !1, cdn: !0 }).then((function (n) { return e[0] = n.to_words[0], t.apply(window, e) })) } } }))), Pe("initialized", e) } } function ia(e) { var t = ze(); e !== t && (xt.visual_editor ? tt(e, (function (n) { if ("#" === n) return ca(e, t); window.dispatchEvent(new CustomEvent("veLanguageChangeUrl", { detail: { targetUrl: n } })) })) : ca(e, t)) } function ca(e, t) { if (!rn().includes(e)) return fn(), void M.warn(e + " isn't a language you have added", { sendToDatadog: !1 }); xt.auto_switch && sn(e); var n = nn(); if (xt.is_connect || n || un(e), !sa(e)) { if (xt.loading_bar) var r = function () { try { var e = document.createElement("div"); return e.className = "wg-progress", e.id = "wg_progress", e.innerHTML = '<div class="wg-progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0"></div>', document.body.appendChild(e), setInterval(ra, 100) } catch (e) { } }(); if (function (e) { var t = he("lang"); if (t && t !== e) { var n = window.location.search.replace("lang=" + t, "lang=" + e); try { window.history.replaceState(null, "", window.location.pathname + n) } catch (e) { } } De = e }(e), nn()) return fn(), void oa(r); if (e === xt.language_from) return Oe("onPageLanguageSet", e), fn(), Gt(null, e), xt.loading_bar && oa(r), document.documentElement.setAttribute("lang", e), void Pe("languageChanged", e, t || ""); dn(Vt(), e).then((function (n) { fn(), Gt(n, e), document.documentElement.setAttribute("lang", e), Pe("languageChanged", e, t || ""), xt.loading_bar && oa(r) })).catch((function (e) { throw xt.loading_bar && oa(r), fn(), Ve().removeItem(F), e })), Oe("onPageLanguageSet", e) } } function sa(e) { return !(!xt.is_connect || ze() === e) && (!xt.host || xt.previewHash && window.location.hostname.includes(z) || function () { if (xt.subdirectory) return [xt.host].concat(l); return xt.languages.map((function (e) { return e.connect_host_destination && e.connect_host_destination.host })).concat([xt.host].concat(l)) }().includes(window.location.hostname) ? (tt(e, (function (e) { return window.location.replace(e) })), !0) : (me() || M.warn('"' + window.location.hostname + '" is not configured with Weglot. Please contact support@weglot.com', { sendToDatadog: !1 }), !1)) } je("initialized", (function () { xt.translate_search && !xt.switcher_editor && function () { var e = xt.search_forms, t = xt.search_parameter; if (t) { for (var n = 0, r = ue(document, e); n < r.length; n += 1) { var o = r[n]; o.addEventListener("submit", (function (e) { e.preventDefault(); var n = e.target.elements[t].value; gn(n, (function (e) { Le.set("wg-search-form", n), o.elements[t].value = e, o.submit() })) })); var a = void 0; -1 !== window.location.search.indexOf(t + "=") && o.elements && o.elements[t] && (a = Le.get("wg-search-form")) && (o.elements[t].value = a) } Le.erase("wg-search-form") } else M.warn("Search parameter name required for search translation.", { sendToDatadog: !1 }) }() }), !0); var la = !1; function ua() { window.addEventListener("message", ga, !1); var e = document.createElement("meta"); e.name = "google", e.content = "notranslate", document.head && document.head.appendChild(e); document.documentElement && -1 === ["cms.e.jimdo.com", "proxy.weglot.com"].indexOf(window.location.host) && document.documentElement.setAttribute("translate", "no"); var t = document.head.querySelector("link[href*=weglot_shopify]"); t && document.head.removeChild(t) } function fa() { if (xt.api_key) { je("initialized", (function () { xt.page_views_enabled && (xt.is_connect ? tt(xt.language_from, (function (e) { return Zt(e) })) : Zt()) }), !0); try { H(document, xt) } catch (e) { M.error(e) } if (Oe("onWeglotSetup"), !pa.initialized || window.Turbolinks) { Qo = function () { var e = rn(); if (xt.is_connect) { var t = document.documentElement.dataset.wgTranslated || (xt.subdirectory ? qe() : Me()); if (t !== xt.language_from) return t; if (xt.technology_name === J) { if (Le.get("wg_checkout_redirect")) return xt.language_from; var n = Le.get("wg_checkout_language"); if (n && !xt.shopifyCheckout && !me() && e.includes(n)) return Le.erase("wg_checkout_language"), n } var r = cn(); return t === xt.language_from && r && e.includes(r) ? r : xt.language_from } var o = he("lang"); if (o && e.includes(o)) return la = !0, o; var a = ln(); if (a && e.includes(a)) return a; var i = cn(); if (i && e.includes(i)) return la = !0, i; return xt.language_from }(), ze(); var e = nn(); if ((ea = Qo && Qo !== xt.language_from && document.documentElement.dataset.wgTranslated !== Qo && !e && !document.documentElement.dataset.wgExcludedUrl && !xt.switcher_editor) && xt.wait_transition ? ve("@keyframes wg{from{color:transparent;}to{color:transparent;}}body *{color:transparent!important;animation:1s linear infinite wg!important;}", B) : fn(), xt.delayStart) return je("start", (function () { return da() }), !0); ke(da) } } } function da() { if (!document.querySelector("#has-script-tags") || document.querySelector("#has-script-tags") && (document.head.innerHTML.indexOf("weglot_script_tag") > 0 || document.documentElement.innerHTML.indexOf("weglot_script_tag") > 0)) try { aa(Qo, la, ea) } catch (e) { fn(), M.error(e, { consoleOverride: "There has been an error initializing, " + e.stack }) } else fn(); Zo = !1, pa.initialized = !0 } function ga(e) { if (e.data) try { var t = JSON.parse(e.data); switch (t.message) { case "Weglot.detect": e.source.postMessage(JSON.stringify({ message: "Weglot.ready", data: { initialized: pa.initialized, options: xt } }), e.origin); break; case "Weglot.switchTo": ia(t.language) } } catch (e) { } } function _a(e) { try { for (var t = null, n = 0, r = [/cdn(?:-staging)?\.weglot\.(?:com|us)\/weglot\.min\.js\?([^#]+)/, /cdn(?:-staging)?\.weglot\.(?:com|us)\/weglot-switcher-editor\.js\?([^#]+)/, /cdn(?:-staging)?\.weglot\.(?:com|us)\/weglot_squarespace-[0-9]+\.min\.js\?([^#]+)/]; n < r.length; n += 1) { if (t = r[n].exec(e)) break } if (!t) return null; var o = t[1].split("&").map((function (e) { var t = e.split("="), n = t[0], r = t[1]; try { return [n, decodeURIComponent(r)] } catch (e) { return [n, r] } })).reduce((function (e, t) { var n, r = t[0], o = t[1]; return Object.assign({}, e, ((n = {})[r] = "true" === o || "false" !== o && o, n)) }), { api_key: "" }); return o.api_key ? o : null } catch (e) { console.log(e), M.warn(e) } } var pa = window.Weglot || { initialized: !1, options: xt, dynamic: "", switchTo: ia, setup: function (e) { ua(), Zo || (Zo = !0, Ae(Lt(), "polyfillReady", (function () { bt(e).then((function () { return fa() })).catch((function () { M.warn("Your setup is deprecated, please save settings in your dashboard to hide this message.", { sendToDatadog: !1 }); var t = e.api_key; e.translation_engine = t && t.length >= 36 ? 2 : 1, function (e) { try { var t = ["api_key", "originalLanguage", "destinationLanguages"]; if (!e || t.some((function (t) { return !e[t] }))) throw { wgErrMsg: "You have to provide at least: " + t.join(", ") }; Ct(vt(e)) } catch (e) { throw new Error(e && e.wgErrMsg || "Error while reading Weglot options") } }(e), fa() })) }))) }, initialize: function (e) { ua(), Zo || (Zo = !0, Ae(Lt(), "polyfillReady", (function () { bt(e).then((function () { return fa() })) }))) }, on: function (e, t) { return je(e, t, !1) }, off: function (e, t) { var n, r = !1, o = function (t) { return Te[t].name === e && !Te[t].internal }; n = "function" == typeof t ? function (e) { return o(e) && Te[e].callback === t } : function (e) { return o(e) }; for (var a = Te.length - 1; a >= 0; a--)n(a) && (Te.splice(a, 1), r = !0); return r }, getStoredLang: ln, getLanguageName: ao, getCurrentLang: ze, polyReady: Nt, getCache: function () { return jt }, addNodes: function (e) { var t = Ft(e); return $t(t), na(t) }, search: gn, translate: function (e, t) { void 0 === e && (e = {}); var n = e.words, r = e.languageTo; if (void 0 === r && (r = ze()), !Array.isArray(n) || "object" != typeof n[0]) { var o = "Weglot.translate: 1st arg must be an array of objects"; return M.error(o, { sendToDatadog: !1 }), t && t(null, o), Promise.reject() } return r === xt.language_from ? (t && t(n.map((function (e) { return e.w }))), Promise.resolve(n.map((function (e) { return e.w })))) : new Promise((function (e, o) { dn(n, r, { title: !1, cdn: !0 }).then((function (n) { if (!n || !n.to_words) throw n; t && t(n.to_words), e(n.to_words) })).catch((function (e) { o(e), t && t(null, e) })) })) }, getBestAvailableLanguage: an, getAvailableLanguages: rn }; return Ae(Lt(), "polyfillReady", (function () { Ko(document); for (var e = 0, t = [document.currentScript].concat(Array.from(document.scripts)); e < t.length; e += 1) { var n = t[e], r = n && (n.src || n.getAttribute && n.getAttribute("data-src")); if (r) { var o = _a(r); if (o) return void pa.initialize(o) } } })), pa }(); </script> <script> $(document).ready(function () { Weglot.initialize({ api_key: 'wg_fa101db2d708598edbe4bfdc026b0c555', /*api_key: 'wg_ae00a96caabda8b822622dba8af3b7402',*/ switchers: [ { // Your first language switcher design button_style: { full_name: false, with_name: true, is_dropdown: true, with_flags: true, flag_type: "circle", invert_flags: false }, // Your first language switcher position location: { target: ".weglotdiv", sibling: null } }, { // Your second language switcher design button_style: { full_name: true, with_name: true, is_dropdown: true, with_flags: true, flag_type: "circle", invert_flags: false }, // Your second language switcher position location: { target: ".weglotnavdiv", sibling: null } } ] }); $(".weglotdiv").hover( function () { $(".weglotdiv > .weglot-container > .wg-drop > ul").slideDown('fast'); $('.country-selector .closed').toggleClass('wgcurrent'); }, function () { $(".weglotdiv .weglot-container > .wg-drop > ul").slideUp('fast'); } ); $(".weglotnavdiv").hover( function () { $(".weglotnavdiv > .weglot-container > .wg-drop > ul").slideDown('fast'); $(".weglotnavdiv > .weglot-container > .wg-drop > ul").css("display", "block"); }, function () { $(".weglotnavdiv > .weglot-container > .wg-drop > ul").slideUp('fast'); } ); }); </script> <style> .weglotdiv.multilanguage { top: -5px; margin-left: 12px; position: relative; height: 29px; } .multilanguage .wg-drop.country-selector .wgcurrent { /*background-color: #000;*/ border-radius: 0px; /* padding-right: 18px; width: 140px;*/ } .weglotdiv.multilanguage .wgcurrent a { margin-left:0px; } .multilanguage .wg-drop.country-selector .wgcurrent a { padding: 7px 15px 8px 0px; height: inherit; color: #000; font-size: 13px; } .multilanguage .wg-drop.country-selector .wgcurrent { border: 0px; } .country-selector { display: inline-block; font-size: 13px; position: relative; text-align: left; width: auto; margin-right: 15px; } .multilanguage .wg-drop.weg-openleft ul { right: 0; padding-top: 0px; border-radius: 0px; } .wg-flags a img.wg-flag { height: 24px; margin-right: 2px; border: solid 2px #fff; border-radius: 100%; } .wg-drop.country-selector .wgcurrent:after { /* filter: invert(1);*/ right:0px; } .wg-drop.country-selector:hover .wgcurrent.wg-li.wg-flags:after { transform: rotate(-180deg); } .wg-drop.country-selector .wgcurrent.wg-li.wg-flags:after { transform: rotate(0deg); } .wg-drop ul { right: 0; padding-top: 0px; border-radius: 0px; } .multilanguage .weglot-container ul li a:first-child { padding-left: 0px; font-size: 13px; } <!-- for sticky header --> .weglotnavdiv .wg-drop.country-selector .wgcurrent a { padding: 0; } .weglotnavdiv .wg-drop.country-selector .wgcurrent { border: 0; padding: 10px 0; } .weglotnavdiv #weglot-language-en .wg-flag { margin-right: 0; } .weglotnavdiv .wg-flags a img.wg-flag { height: 24px; margin-right: 10px; border: solid 2px #fff; border-radius: 100%; margin-right: 0; } .weglotnavdiv .wg-drop.weg-openleft ul { text-align: center; display: block; flex-direction: column; -webkit-box-shadow: 0 2px 2px 0 rgb(0 0 0 / 14%), 0 3px 1px -2px rgb(0 0 0 / 12%), 0 1px 5px 0 rgb(0 0 0 / 20%); box-shadow: 0 2px 2px 0 rgb(0 0 0 / 14%), 0 3px 1px -2px rgb(0 0 0 / 12%), 0 1px 5px 0 rgb(0 0 0 / 20%); padding: 10px; border-radius: 5px; border: 0; } .weglotnavdiv .wg-drop.country-selector ul { padding: 5px; width: 130px; flex-direction: column; -webkit-box-shadow: 0 2px 2px 0 rgb(0 0 0 / 14%), 0 3px 1px -2px rgb(0 0 0 / 12%), 0 1px 5px 0 rgb(0 0 0 / 20%); box-shadow: 0 2px 2px 0 rgb(0 0 0 / 14%), 0 3px 1px -2px rgb(0 0 0 / 12%), 0 1px 5px 0 rgb(0 0 0 / 20%); border-radius: 5px; border: 0; } .weglotnavdiv .wg-drop.country-selector li { margin: 5px auto; } .weglotnavdiv .wg-flags a {padding:10px; } .weglotnavdiv .wg-drop.country-selector li a { display: flex; flex-wrap: nowrap; flex-direction: row; padding: 5px; /*height: 30px;*/ justify-content:flex-start; } .wg-flag { height: unset !important; } .weglotnavdiv .wg-drop.country-selector .wgcurrent a { padding-right: 10px; } .wg-drop.country-selector :not(.wgcurrent) a { width: unset; padding: 10px; justify-content: flex-start; margin-left: 5px; } .weglotnavdiv .wg-drop.country-selector li a img { margin-right: 10px; } .country-selector .wg-li { font-size: 13px; } @media screen and (min-width: 1200px) and (max-width: 1300px) { .multilanguage { margin-top: 8px !important; } .multilanguage .weglot-container ul li a { padding-top: 0px; padding-bottom: 0px; } } @media (max-width:1024px) { /* .multilanguage { margin-top: 8px !important; position: absolute; right: 34px; }*/ .weglotnavdiv .wg-drop.weg-openleft ul { right: 0; } } @media (max-width: 800px) { /* .multilanguage { margin-top: 14px !important; position: absolute; right: 32px; }*/ } </style> </ul> </div> </div> </div> </div> </div> <style> .advtbannerimg { margin-top: 8px; margin-right: 2%; position: absolute; z-index: 9999; right: 0px; width: 160px; } .advtbanner { max-width: 1280px; margin: 0px auto; right: 0px; position: relative; z-index: 9999; } .loginadvt { margin-right: 1%; } @media only screen and (max-width: 1024px) { .advtbannerimg { margin-right: 3%; } .loginadvt { margin-right: 2%; } } </style> <!-- header start --> <div class="news-header"> <div class="container"> <div class="row" style="display:flex;align-items: center;"> <div class="col-lg-3 col-md-4 col-sm-5"> <div class="navbar-logo"> <a data-f2feventlogoclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Logo&quot;,&quot;F2FSection&quot;:&quot;Header&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;F2F Icon&quot;}" href="https://www.fibre2fashion.com/"><img class="front-logo" width="300" height="40" src="https://static.fibre2fashion.com/f2flogo/f2flogo-black.svg" class="img-fluid" alt="logo" title=""></a> <a data-f2feventlogoclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Logo&quot;,&quot;F2FSection&quot;:&quot;Header&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;F2F Icon&quot;}" href="https://www.fibre2fashion.com/"><img class="sticky-logo" width="300" height="40" src="https://static.fibre2fashion.com/f2flogo/f2flogo-black.svg" class="img-fluid" alt="logo" title=""></a> </div> </div> <div class="col-lg-6 col-md-7 col-sm-5"> <div class="navbar-menu"> <div class="Other-Header"> <ul> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/garments">Business</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/market-intelligence">Market Intelligence</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/news/">News</a></li> <li> <a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="javascript:void(0);">Services <i class="fa fa-angle-down" aria-hidden="true"></i></a> <ul class="other-sab-menu services-sub-menu"> <div> <li class="sub-menu-title"><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/b2b-membership/">B2B Membership</a></li> <li class="sub-menu-title">Media</li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/prime-content">Prime News</a></li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/media-booster-press-release-packages">Media Booster</a></li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/magazine/">Magazine Subscription</a></li> <li class="sub-menu-title"><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://emerge.fibre2fashion.com/" target="_blank">Emerge - Fashion Accelerator</a></li> <li class="sub-menu-title border-none"><a style="text-decoration: none; display: flex; align-items: center;" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://streamevent.tech/" target="_blank">Stream Event</a></li> </div> <div> <li class="sub-menu-title">Market Intelligence</li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" target="_blank" href="https://www.fibre2fashion.com/market-intelligence/texpro-textile-and-apparel/">TexPro</a></li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" target="_blank" href="https://www.fibre2fashion.com/market-intelligence/customized-research/">Custom Market Research</a></li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" target="_blank" href="https://alchempro.com/">ALCHEMPro</a></li> <li class="sub-menu-title">Advertisement</li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/digital-advertisement-solutions/">Digital Advertisement</a></li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/magazine#PrintAdvertisement">Print Advertisement</a></li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/knowledge/webinar">Webinar</a></li> </div> </ul> </li> <li> <a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="javascript:void(0);">More <i class="fa fa-angle-down" aria-hidden="true"></i></a> <ul class="other-sab-menu"> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/industry-article/">Articles</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/trade-fairs/">Trade Fairs</a> </li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/interviews">Interviews</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.technicaltextile.net/" target="_blank">Technical Textiles</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/web-stories">Web Stories</a></li> </ul> </li> </ul> </div> </div> <header class="header-re" id="header"> <nav class="navbar-re "> <div class="burger" id="burger"> <span class="burger-line"></span> <span class="burger-line"></span> <span class="burger-line"></span> </div> <span class="overlay"></span> <div class="menu" id="menu"> <div class="close-sidebar-wrapper"> <img src="https://static.fibre2fashion.com/staticresources/images/search-close-icon.png"> </div> <div class="clearfix"></div> <a data-f2feventhamburgerlogoclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Logo&quot;,&quot;F2FSection&quot;:&quot;Hambourger Slider&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;F2F Icon&quot;}" class="front-logo-wrapper" href="https://www.fibre2fashion.com/"><img class="front-logo" src="https://static.fibre2fashion.com/f2flogo/f2flogo-black.svg" class="img-fluid" alt="logo" title=""></a> <ul class="menu-inner"> <li class="menu-item"><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/garments">Business</a></li> <li class="menu-item"><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/market-intelligence">Market Intelligence</a></li> <li class="menu-item"><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/news/">News</a></li> <li class="menu-item"> <a data-toggle="collapse" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="#sab-menu-1" role="button" aria-expanded="false" aria-controls="sab-menu-1">Services <i class="pull-right fa fa-angle-down" aria-hidden="true"></i></a> <ul id="sab-menu-1" class="sab-menu-item collapse new-submenu"> <li class="submenutitle">Advertisement</li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/digital-advertisement-solutions/">Digital Advertisement</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/magazine#PrintAdvertisement">Print Advertisement</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/knowledge/webinar">Webinar</a></li> <li class="submenutitle">Market Intelligence</li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/market-intelligence/texpro-textile-and-apparel/">TexPro</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/market-intelligence/customized-research/">Custom Market Research</a></li> <li class="submenutitle">Media</li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/prime-content">Prime News</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/media-booster-press-release-packages">Media Booster</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/magazine/">Magazine Subscription</a></li> <li class="submenutitle border-none"><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/b2b-membership/"> B2B Membership</a></li> <li class="submenutitle border-none"><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://emerge.fibre2fashion.com/" target="_blank">Emerge - Fashion Accelerator</a></li> <li class="submenutitle border-none"><a style="text-decoration: none; display: flex; align-items: center;" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://streamevent.tech/" target="_blank">Stream Event <span class="newtag">NEW</span></a></li> </ul> </li> <li class="menu-item"> <a data-toggle="collapse" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="#sab-menu-2" role="button" aria-expanded="false" aria-controls="sab-menu-2">More <i class="pull-right fa fa-angle-down" aria-hidden="true"></i></a> <ul id="sab-menu-2" class="sab-menu-item collapse"> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/industry-article/">Articles</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/interviews">Interviews</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/trade-fairs/">Trade Fairs</a> </li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.technicaltextile.net/" target="_blank">Technical Textiles</a></li> </ul> </li> </ul> </div> </nav> </header> </div> <div class="col-lg-3 col-md-2 col-sm-3"> <div class="navbar-login icon-angle icon-color"> <ul> <li> <a id="search" style="cursor: pointer; display: flex;" href="/advanced-site-search/" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;,&quot;F2FText&quot;:&quot;Search Beta&quot;}"> <div class="searchbeta"> <img alt="search" class="front-icon" width="21" height="21" style="margin-left: 28px;" src="https://static.fibre2fashion.com/staticresources/images/search.svg" /> <img alt="search" class="back-icon" width="21" height="21" src="https://static.fibre2fashion.com/staticresources/images/search.svg" /> <span>Beta</span> </div>Search </a> </li> <li class="user-menu"> <a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;,&quot;F2FText&quot;:&quot;Sign In&quot;}" href="//members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2finterviews%2findustry-speak%2foverlays-clothing%2fshlok-srivastava%2f14025%2f"> <svg class="front-icon" width="16" height="22" viewBox="0 0 16 22" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M16 21.5002H14V19.5002C14 18.7046 13.6839 17.9415 13.1213 17.3789C12.5587 16.8163 11.7956 16.5002 11 16.5002H5C4.20435 16.5002 3.44129 16.8163 2.87868 17.3789C2.31607 17.9415 2 18.7046 2 19.5002V21.5002H0V19.5002C0 18.1742 0.526784 16.9024 1.46447 15.9647C2.40215 15.027 3.67392 14.5002 5 14.5002H11C12.3261 14.5002 13.5979 15.027 14.5355 15.9647C15.4732 16.9024 16 18.1742 16 19.5002V21.5002ZM8 12.5002C7.21207 12.5002 6.43185 12.345 5.7039 12.0435C4.97595 11.742 4.31451 11.3 3.75736 10.7429C3.20021 10.1857 2.75825 9.5243 2.45672 8.79634C2.15519 8.06839 2 7.28818 2 6.50024C2 5.71231 2.15519 4.9321 2.45672 4.20414C2.75825 3.47619 3.20021 2.81475 3.75736 2.2576C4.31451 1.70045 4.97595 1.2585 5.7039 0.956967C6.43185 0.655439 7.21207 0.500244 8 0.500244C9.5913 0.500244 11.1174 1.13239 12.2426 2.2576C13.3679 3.38282 14 4.90895 14 6.50024C14 8.09154 13.3679 9.61767 12.2426 10.7429C11.1174 11.8681 9.5913 12.5002 8 12.5002V12.5002ZM8 10.5002C9.06087 10.5002 10.0783 10.0788 10.8284 9.32867C11.5786 8.57853 12 7.56111 12 6.50024C12 5.43938 11.5786 4.42196 10.8284 3.67182C10.0783 2.92167 9.06087 2.50024 8 2.50024C6.93913 2.50024 5.92172 2.92167 5.17157 3.67182C4.42143 4.42196 4 5.43938 4 6.50024C4 7.56111 4.42143 8.57853 5.17157 9.32867C5.92172 10.0788 6.93913 10.5002 8 10.5002V10.5002Z" fill="#1A2755" /> </svg> <svg class="back-icon" width="16" height="21" viewBox="0 0 16 21" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M16 21H14V19C14 18.2044 13.6839 17.4413 13.1213 16.8787C12.5587 16.3161 11.7956 16 11 16H5C4.20435 16 3.44129 16.3161 2.87868 16.8787C2.31607 17.4413 2 18.2044 2 19V21H0V19C0 17.6739 0.526784 16.4021 1.46447 15.4645C2.40215 14.5268 3.67392 14 5 14H11C12.3261 14 13.5979 14.5268 14.5355 15.4645C15.4732 16.4021 16 17.6739 16 19V21ZM8 12C7.21207 12 6.43185 11.8448 5.7039 11.5433C4.97595 11.2417 4.31451 10.7998 3.75736 10.2426C3.20021 9.68549 2.75825 9.02405 2.45672 8.2961C2.15519 7.56815 2 6.78793 2 6C2 5.21207 2.15519 4.43185 2.45672 3.7039C2.75825 2.97595 3.20021 2.31451 3.75736 1.75736C4.31451 1.20021 4.97595 0.758251 5.7039 0.456723C6.43185 0.155195 7.21207 -1.17411e-08 8 0C9.5913 2.37122e-08 11.1174 0.632141 12.2426 1.75736C13.3679 2.88258 14 4.4087 14 6C14 7.5913 13.3679 9.11742 12.2426 10.2426C11.1174 11.3679 9.5913 12 8 12ZM8 10C9.06087 10 10.0783 9.57857 10.8284 8.82843C11.5786 8.07828 12 7.06087 12 6C12 4.93913 11.5786 3.92172 10.8284 3.17157C10.0783 2.42143 9.06087 2 8 2C6.93913 2 5.92172 2.42143 5.17157 3.17157C4.42143 3.92172 4 4.93913 4 6C4 7.06087 4.42143 8.07828 5.17157 8.82843C5.92172 9.57857 6.93913 10 8 10Z" fill="#1A2755" /> </svg> Sign In </a> </li> <li style="display:none" class="weglotnavdiv" id="navbarweglot"></li> </ul> </div> </div> <div class="hidden-menu searchblockhideshow" style="display:none;"> <a onclick="HideShow('closeicon');"> <div class="search-close-icon" id="searchclose"> <img src="https://static.fibre2fashion.com/staticresources/images/search-close-icon.png"> </div> </a> <div class="container searchbox"> <div class="col-md-8 m-auto"> <div class="input-group stylish-input-group search-box new-search" id="essearchbox"> <select id="esCategory" name="esCategory" class="esCategory" style="display: none;"> <option class="icon-all" selected="selected" value="" data-url="" data-text="Answer to all your Textile needs">All Categories</option> <option class="icon-articles" value="articles" data-url="//www.fibre2fashion.com/industry-article/search" data-text="Search for well researched articles by industry experts">Articles</option> <option class="icon-news" value="news" data-url="//www.fibre2fashion.com/news/allnews.aspx" data-text="Search For Top News Stories">News</option> <option class="icon-buyer" value="buyer" data-url="https://www.fibre2fashion.com/garments/SearchResult.aspx" data-text="Looking to buy - sell or connect?">Buyers</option> <option class="icon-supplier" value="seller" data-url="https://www.fibre2fashion.com/garments/SearchResult.aspx" data-text="Looking to buy - sell or connect?">Suppliers</option> <option class="icon-trade-fairs" value="tradefairs" data-url="https://www.fibre2fashion.com/trade-fairs/CommonSearchResult.aspx" data-text="Search For Upcoming Tradefairs and Events">Trade Fairs</option> <option class="icon-interview" value="interview" data-url="//www.fibre2fashion.com/interviews/search" data-text="Search For Interview">Interview</option> <option class="icon-mi" value="mi" data-url="//www.fibre2fashion.com/market-intelligence/SearchResult.aspx?page=1" data-text="Search for price trends, trade data and more">Market Intelligence</option> </select> <!-- Uncomment following line if you want to enable auto complete functionality --> <div id="new-ui-container"> <input onkeypress="handle(event);" id="esQuery" name="esQuery" type="text" style="width:150px; visibility:hidden;" class="headersearch f2fsearchtext" placeholder="Answer to all your Textile needs"> <input type="hidden" id="hdnQueryCode" /> <span class="input-group-addon input-group-addon icon-search bordernone"> <a id="esSearch" href="javascript:void(0);"> <button type="submit" class="searchicon"> <span class="f2f-icons icon-search"></span> </button> </a> </span> <div id="f2fAutoSearching"></div><ul id="localStorageData" class="ui-autocomplete ui-front ui-menu ui-widget ui-widget-content esAutoSuggest" style="display:none;"></ul> </div> </div> <input type="hidden" value="no" id="hdnIsMobileSite" /> <input type="hidden" id="hdnUrl" value='https://search.fibre2fashion.com/handler/ESResult.ashx' /> <input type="hidden" id="hdnTrackerUrl" value='https://search.fibre2fashion.com/handler/ESSearchTracker.ashx' /> <link rel='preload' media='all' as="style" onload="this.rel='stylesheet'" type="text/css" href="https://static.fibre2fashion.com/StaticResources/cssv1/search-new-ui.min.css?var=2.4"> <style> @font-face{font-family:icomoon;src:url('https://static.fibre2fashion.com/fonts/category-fonts/fonts/icomoon.eot?auryy8');src:url('https://static.fibre2fashion.com/fonts/category-fonts/fonts/icomoon.eot?auryy8#iefix') format('embedded-opentype'),url('https://static.fibre2fashion.com/fonts/category-fonts/fonts/icomoon.ttf?auryy8') format('truetype'),url('https://static.fibre2fashion.com/fonts/category-fonts/fonts/icomoon.woff?auryy8') format('woff'),url('https://static.fibre2fashion.com/fonts/category-fonts/fonts/icomoon.svg?auryy8#icomoon') format('svg');font-weight:400;font-style:normal;font-display:block}[class*=" f2f-icons"],[class^=f2f-icons]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.f2f-icons.icon-search:before{content:"\e909"}.f2f-icons.icon-recruitment:before{content:"\e900"}.f2f-icons.icon-all:before{content:"\e901"}.f2f-icons.icon-trade-fairs:before{content:"\e902"}.f2f-icons.icon-news:before{content:"\e903"}.f2f-icons.icon-articles:before{content:"\e904"}.f2f-icons.icon-interview:before{content:"\e905"}.f2f-icons.icon-buyer:before{content:"\e906"}.f2f-icons.icon-supplier:before{content:"\e907"}.f2f-icons.icon-mi:before{content:"\e908"} </style> <script> !function (e) { "use strict"; var t = "selectric", s = "Input Items Open Disabled TempShow HideSelect Wrapper Hover Responsive Above Scroll Group GroupLabel", o = ".sl", i = { onChange: function (t) { e(t).change() }, maxHeight: 345, keySearchTimeout: 500, arrowButtonMarkup: '<b class="button">&#x25be;</b>', disableOnMobile: !0, openOnHover: !1, hoverIntentTimeout: 500, expandToItemText: !1, responsive: !1, preventWindowScroll: !0, inheritOriginalWidth: !1, allowWrap: !0, customClass: { prefix: t, camelCase: !1, overwrite: !0 }, optionsItemBuilder: "{text}", labelBuilder: "{text}" }, n = { add: function (e, t, s) { this[e] || (this[e] = {}), this[e][t] = s }, remove: function (e, t) { delete this[e][t] } }, l = { replaceDiacritics: function (e) { for (var t = "40-46 50-53 54-57 62-70 71-74 61 47 77".replace(/\d+/g, "\\3$&").split(" "), s = t.length; s--;)e = e.toLowerCase().replace(RegExp("[" + t[s] + "]", "g"), "aeiouncy".charAt(s)); return e }, format: function (e) { var t = arguments; return ("" + e).replace(/{(\d+|(\w+))}/g, function (e, s, o) { return o && t[1] ? t[1][o] : t[s] }) }, nextEnabledItem: function (e, t) { for (; e[t = (t + 1) % e.length].disabled;); return t }, previousEnabledItem: function (e, t) { for (; e[t = (t > 0 ? t : e.length) - 1].disabled;); return t }, toDash: function (e) { return e.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase() }, triggerCallback: function (s, o) { var i = o.element, a = o.options["on" + s]; e.isFunction(a) && a.call(i, i, o), n[s] && e.each(n[s], function () { this.call(i, i, o) }), e(i).trigger(t + "-" + l.toDash(s), o) } }, a = e(document), r = e(window), c = function (n, c) { function d(t) { if (j.options = e.extend(!0, {}, i, j.options, t), j.classes = {}, j.element = n, l.triggerCallback("BeforeInit", j), j.options.disableOnMobile && Y) return void (j.disableOnMobile = !0); C(!0); var o = j.options.customClass, a = s.split(" "), r = F.width(); e.each(a, function (e, t) { var s = o.prefix + t; j.classes[t.toLowerCase()] = o.camelCase ? s : l.toDash(s) }), x = e("<input/>", { "class": j.classes.input, readonly: Y }), k = e("<div/>", { "class": j.classes.items, tabindex: -1 }), T = e("<div/>", { "class": j.classes.scroll }), D = e("<div/>", { "class": o.prefix, html: j.options.arrowButtonMarkup }), I = e('<p class="label"/>'), y = F.wrap("<div>").parent().append(D.prepend(I), k, x), A = { open: m, close: g, destroy: C, refresh: u, init: d }, F.on(A).wrap('<div class="' + j.classes.hideselect + '">'), e.extend(j, A), $ = j.options.labelBuilder, j.options.inheritOriginalWidth && r > 0 && y.width(r), p() } function p() { j.items = []; var t = F.children(), s = "<ul>", i = F.find("option"), n = i.index(i.filter(":selected")), a = 0; B = S = ~n ? n : 0, (E = t.length) && (t.each(function () { function t() { var t = e(this), o = t.html(), i = t.prop("disabled"), n = j.options.optionsItemBuilder; j.items[a] = { element: t, value: t.val(), text: o, slug: l.replaceDiacritics(o), disabled: i }, s += l.format('<li data-index="{1}" class="{2}">{3}</li>', a, e.trim([a == B ? "selected" : "", a == E - 1 ? "last" : "", i ? "disabled" : ""].join(" ")), e.isFunction(n) ? n(j.items[a], t, a) : l.format(n, j.items[a])), a++ } var o = e(this); if (o.is("optgroup")) { var i = o.prop("disabled"), n = o.children(); s += l.format('<ul class="{1}"><li class="{2}">{3}</li>', e.trim([j.classes.group, i ? "disabled" : "", o.prop("class")].join(" ")), j.classes.grouplabel, o.prop("label")), i && n.prop("disabled", !0), n.each(t), s += "</ul>" } else t.call(o) }), k.append(T.html(s + "</ul>")), I.html(e.isFunction($) ? $(j.items[B]) : l.format($, j.items[B]))), D.add(F).add(y).add(x).off(o), y.prop("class", [j.classes.wrapper, j.options.customClass.overwrite ? F.prop("class").replace(/\S+/g, j.options.customClass.prefix + "-$&") : F.prop("class"), j.options.responsive ? j.classes.responsive : ""].join(" ")), F.prop("disabled") ? (y.addClass(j.classes.disabled), x.prop("disabled", !0)) : (R = !0, y.removeClass(j.classes.disabled).on("mouseenter" + o + " mouseleave" + o, function (t) { e(this).toggleClass(j.classes.hover), j.options.openOnHover && (clearTimeout(j.closeTimer), "mouseleave" == t.type ? j.closeTimer = setTimeout(g, j.options.hoverIntentTimeout) : m()) }), D.on("click" + o, function (e) { L ? g() : m(e) }), x.prop({ tabindex: P, disabled: !1 }).on("keypress" + o, h).on("keydown" + o, function (e) { h(e), clearTimeout(j.resetStr), j.resetStr = setTimeout(function () { x.val("") }, j.options.keySearchTimeout); var t = e.keyCode || e.which; if (t > 36 && 41 > t) { if (!j.options.allowWrap && (39 > t && 0 == S || t > 38 && S + 1 == j.items.length)) return; b(l[(39 > t ? "previous" : "next") + "EnabledItem"](j.items, S)) } }).on("focusin" + o, function (e) { x.one("blur", function () { x.blur() }), L || m(e) }).on("oninput" in x[0] ? "input" : "keyup", function () { x.val().length && e.each(j.items, function (e, t) { return RegExp("^" + x.val(), "i").test(t.slug) && !t.disabled ? (b(e), !1) : void 0 }) }), F.prop("tabindex", !1), O = e("li", k.removeAttr("style")).on({ mousedown: function (e) { e.preventDefault(), e.stopPropagation() }, click: function () { return b(e(this).data("index"), !0), !1 } }).filter("[data-index]")), l.triggerCallback("Init", j) } function u() { l.triggerCallback("Refresh", j), p() } function h(e) { var t = e.keyCode || e.which; 13 == t && e.preventDefault(), /^(9|13|27)$/.test(t) && (e.stopPropagation(), b(S, !0)) } function f() { var e = k.closest(":visible").children(":hidden").addClass(j.classes.tempshow), t = j.options.maxHeight, s = k.outerWidth(), o = D.outerWidth() - (s - k.width()); !j.options.expandToItemText || o > s ? M = o : (k.css("overflow", "scroll"), y.width(9e4), M = k.width(), k.css("overflow", ""), y.width("")), k.width(M).height() > t && k.height(t), e.removeClass(j.classes.tempshow) } function m(s) { l.triggerCallback("BeforeOpen", j), s && (s.preventDefault(), s.stopPropagation()), R && (f(), e("." + j.classes.hideselect, "." + j.classes.open).children()[t]("close"), L = !0, H = k.outerHeight(), W = k.height(), y.addClass(j.classes.open), x.val("").is(":focus") || x.focus(), a.on("click" + o, g).on("scroll" + o, v), v(), j.options.preventWindowScroll && a.on("mousewheel" + o + " DOMMouseScroll" + o, "." + j.classes.scroll, function (t) { var s = t.originalEvent, o = e(this).scrollTop(), i = 0; "detail" in s && (i = -1 * s.detail), "wheelDelta" in s && (i = s.wheelDelta), "wheelDeltaY" in s && (i = s.wheelDeltaY), "deltaY" in s && (i = -1 * s.deltaY), (o == this.scrollHeight - W && 0 > i || 0 == o && i > 0) && t.preventDefault() }), w(S), l.triggerCallback("Open", j)) } function v() { y.toggleClass(j.classes.above, y.offset().top + y.outerHeight() + H > r.scrollTop() + r.height()) } function g() { if (l.triggerCallback("BeforeClose", j), B != S) { l.triggerCallback("BeforeChange", j); var t = j.items[S].text; F.prop("selectedIndex", B = S).data("value", t), I.html(e.isFunction($) ? $(j.items[S]) : l.format($, j.items[S])), l.triggerCallback("Change", j) } a.off(o), y.removeClass(j.classes.open), L = !1, l.triggerCallback("Close", j) } function b(e, t) { void 0 != e && (j.items[e].disabled || (O.removeClass("selected").eq(S = e).addClass("selected"), w(e), t && g())) } function w(e) { var t = O.eq(e).outerHeight(), s = O[e].offsetTop, o = T.scrollTop(), i = s + 2 * t; T.scrollTop(i > o + H ? i - H : o > s - t ? s - t : o) } function C(e) { R && (k.add(D).add(x).remove(), !e && F.removeData(t).removeData("value"), F.prop("tabindex", P).off(o).off(A).unwrap().unwrap(), R = !1) } var x, k, T, D, I, y, O, S, B, H, W, M, E, A, $, j = this, F = e(n), L = !1, R = !1, Y = /android|ip(hone|od|ad)/i.test(navigator.userAgent), P = F.prop("tabindex"); d(c) }; e.fn[t] = function (s) { return this.each(function () { var o = e.data(this, t); o && !o.disableOnMobile ? "" + s === s && o[s] ? o[s]() : o.init(s) : e.data(this, t, new c(this, s)) }) }, e.fn[t].hooks = n }(jQuery); </script> <script defer type="text/javascript" src="https://static.fibre2fashion.com/StaticResources/js/jquery/plugins/jquery.highlight.min.js"></script> <script defer type="text/javascript" src="https://static.fibre2fashion.com/js/jquery/plugins/underscore.min.js"></script> <script type="text/javascript" src="https://static.fibre2fashion.com/staticresources/js/f2f/autosuggestionv5.min.js?v=4.8"></script> <script> $("#esQuery").click(function () { $(".hidden-menu").addClass("hidden-menuheight"); }); $(".searchblockhideshow").click(function (e) { $(".hidden-menu").removeClass("hidden-menuheight"); $("#localStorageData").empty(); $(".esAutoSuggest").empty(); $(".esAutoSuggest").css("display", "none"); }); </script> </div> <div class="clearfix"></div> </div> </div> </div> </div> </div> <script> $(window).scroll(function () { if ($(this).scrollTop() > 50) { $('.header').addClass('sticky'); } else { $('.header').removeClass('sticky'); } }); $(".togal-menu").click(function () { $('.navbar-menu ul').slideToggle(); }); </script> <script> var Searchboxopen = false; function HideShow(val) { if (val == "searchicon") { $("#essearchbox").show() $("#search").hide(); $("#searchclose").show(); $('.hidden-menu').slideToggle("slow"); $("#divAdvanceSearch").hide(); $("#inline_content").hide(); $("#advsearchhide").hide(); $("#advanceSearch").show(); Searchboxopen = true; $("#B2BAdvaceSearch").show(); $("#advsearchhide1").hide(); $("#esQuery").addClass("searchtxt"); $(".hidden-menu").removeClass("hidden-menuheight"); $(".hidden-menu").removeClass("space-none"); $("#bgheadersearch").addClass("show"); $(".wrapper").addClass("search-active"); var FinalObject = {}; FinalObject.F2FEventName = JSConstants.SearchClicked; MixpanelWrapper.EventTracking(FinalObject); } if (val == "closeicon") { if (Searchboxopen) { var FinalObject = {}; FinalObject.F2FEventName = JSConstants.SearchDismissed; MixpanelWrapper.EventTracking(FinalObject); } $('.hidden-menu').slideUp("slow"); $("#searchclose").hide(); $("#search").show(); Searchboxopen = false; $("#esQuery").removeClass("searchtxt"); $("#bgheadersearch").removeClass("show"); $(".hidden-menu").removeClass("space-none"); $(".wrapper").removeClass("search-active"); $(".hidden-menu").removeClass("hidden-menuheight"); $("#advsearchhideB2B").css("display", "none"); } } //$(document).on("click", ".section", function () { // HideShow('closeicon'); //}); $(document).on("click", "#bgheadersearch", function () { HideShow('closeicon'); $(".hidden-menu").removeClass("hidden-menuheight"); }); $(".searchbox").click(function (e) { $("#localStorageData").css("display", "none"); $("#esCategory").css("display", "none"); }); $(".searchblockhideshow").click(function (event) { event.stopPropagation(); }); $('.user-icon').hover(function () { $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn(500); }, function () { $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut(500); }); $(".close-sidebar-wrapper").click(function () { navbarMenu.classList.remove("is-active"); bgOverlay.classList.remove("is-active"); var myObject = { F2FEventType: JSConstants.EventType.Icon, F2FEventName: JSConstants.EventName.HamburgerCollapsed }; MixpanelWrapper.EventTracking(myObject); }); </script> <script> $(window).scroll(function () { if ($(this).scrollTop() > 50) { $('.header').addClass('sticky'); $('#navbarweglot').show(); } else { $('.header').removeClass('sticky'); $('#navbarweglot').hide(); } }); $(".togal-menu").click(function () { $('.Other-Header-navbar-menu ul').slideToggle(); }); </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Organization", "name": "Fibre2Fashion", "legalName" : "Fibre2Fashion Private Limited", "url": "https://www.fibre2fashion.com", "logo": "https://static.fibre2fashion.com/f2flogo/f2flogo-black.svg", "foundingDate": "2000", "founders": [ { "@type": "Person", "name": "Mr. Sanjiv Shah" } ], "address": { "@type": "PostalAddress", "streetAddress": "B-3, Abhishree Corporate Park", "addressLocality": "Iskcon-Ambli Road, Bopal, Ahmedabad", "addressRegion": "Gujarat", "postalCode": "380058", "addressCountry": "India" }, "contactPoint": { "@type": "ContactPoint", "contactType": "Customer Support", "telephone": "[+91-79-71888555]", "email": "inquiry@fibre2fashion.com" }, "sameAs": [ "https://www.linkedin.com/company/fibre2fashion", "https://www.facebook.com/fibre2fashion", "https://twitter.com/fibre2fashion", "https://www.youtube.com/c/Fibre2FashionPvtLtd", "https://www.instagram.com/fibre2fashion" ]} </script> <script> // Show Navbar Menu on Burger Click // Hide Navbar Menu on Overlay Click const navbarMenu = document.getElementById("menu"); const burgerMenu = document.getElementById("burger"); const bgOverlay = document.querySelector(".overlay"); if (burgerMenu && bgOverlay) { burgerMenu.addEventListener("click", () => { navbarMenu.classList.add("is-active"); HideShow('closeicon'); bgOverlay.classList.toggle("is-active"); var myObject = { F2FEventType: JSConstants.EventType.Icon, F2FEventName: JSConstants.EventName.HamburgerClicked }; MixpanelWrapper.EventTracking(myObject); }); bgOverlay.addEventListener("click", () => { navbarMenu.classList.remove("is-active"); bgOverlay.classList.toggle("is-active"); }); } // Hide Navbar Menu on Links Click document.querySelectorAll(".menu-link").forEach((link) => { link.addEventListener("click", () => { navbarMenu.classList.remove("is-active"); bgOverlay.classList.remove("is-active"); }); }); // Open and Hide Search Bar on Toggle Click const searchBlock = document.querySelector(".search-block"); const searchToggle = document.querySelector(".search-toggle"); const searchCancel = document.querySelector(".search-cancel"); if (searchToggle && searchCancel) { searchToggle.addEventListener("click", () => { searchBlock.classList.add("is-active"); }); searchCancel.addEventListener("click", () => { searchBlock.classList.remove("is-active"); }); } $('[data-f2feventlogoclicktrack]').click(function (event) { var myObject = JSON.parse("{}"); if ($(this).attr('data-f2feventlogoclicktrack') != "") { myObject = JSON.parse($(this).attr('data-f2feventlogoclicktrack')); } MixpanelWrapper.EventTracking(myObject); }); $('[data-f2feventhamburgerlogoclicktrack]').click(function (event) { var myObject = JSON.parse("{}"); if ($(this).attr('data-f2feventhamburgerlogoclicktrack') != "") { myObject = JSON.parse($(this).attr('data-f2feventhamburgerlogoclicktrack')); } MixpanelWrapper.EventTracking(myObject); }); </script> <div class="section"> <div class="container"> <div class="subheader"> <script src="https://static.fibre2fashion.com/staticresources/Mobile/js/enscroll-0.6.2.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources/Mobile/js/jquery.scrollTo.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources/mobile/js/tab_swipe.min.js"></script> <div class="col-md-12"><div class="breadcrums text-left col-md-12"><a href="https://www.fibre2fashion.com" title="Home">Home / </a><a href="https://www.fibre2fashion.com/interviews" title="Home">Interviews / </a>Industry Speak</div></div> <div class="col-md-12 col-sm-12 col-xs-12 experts-speaks-top-menu"> <ul class="menu"> <li> <a href="/interviews/face2face" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Hero&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" class="">FACE2FACE</a> </li> <li> <a href="/interviews/industry-speak" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Hero&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" class="active">Industry Speak</a> </li> <li><a href="https://fashiongear.fibre2fashion.com/fashion-talks/view_all.aspx?q=q" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Hero&quot;,&quot;F2FType&quot;:&quot;Static&quot;}">Fashion Talk</a></li> <li class="mobileexp-speak"><a href="https://www.technicaltextile.net/interviews/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Hero&quot;,&quot;F2FType&quot;:&quot;Static&quot;}">Management Dialogue</a></li> <li> <a href="/interviews/editors-pick" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Hero&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" class="">Editor&#39;s Pick</a> </li> </ul> </div> </div> <div class="row"> <div> <input name="__RequestVerificationToken" type="hidden" value="WN4SwWtELh1l12ujktGn1ZkMz6nc09b12-Vlt9t4LL7B4sYGdGFzpTiUBXd8u9g9qk-44eyjwLSn5rkQZ9aDbSN3knc1" /> <div class="advertisement vrads" style="text-align:center;"> </div> <div class="col-md-12 margintop20"><h1 class="section-title">Interview with Shlok Srivastava</h1></div> <div class="clearfix"></div> <div class="col-md-8"> <div class="white-box f2f-margin-top mobileAlignemnet"> <div class="col-md-7 col-sm-7 text-left"> <div class="row"> <div class="f2f-images-main"> <img src=https://static.fibre2fashion.com/InterviewResources/UserImages/4244/headshot.jpg class="face2face-images" alt="Shlok Srivastava" title="Shlok Srivastava" /> </div> <div class="face2face-txt"> <span class="innersectiontitle"> Shlok Srivastava <input type="hidden" value="4244" id="InterviewId" /> </span><br> Founder & CEO<br> <span class="face2face-companyname">Overlays Clothing</span> </div> </div> </div> <div class="col-md-5 col-sm-5 mobileLogoFace2fce"> <div class="row"> <img src=https://static.fibre2fashion.com/InterviewResources/CompanyLogo/4244/final_logo.png class="pull-right" alt="Overlays Clothing" title="Overlays Clothing" /> <!--div class="modal-body addthis_sharing_toolbox" id="socialmedia"> </div--> <!-- ShareThis BEGIN --><div class="modal-body sharethis-inline-share-buttons"></div><!-- ShareThis END --> </div> </div> <div class="clearfix"></div> <hr> <div class="interviewaudio"> <div id="AudioDiv" class="headerbottombar" style="float: left; width: 99%;"> <span class="interview-details-txt selectionShareable"> <div class="audiocls text-center" id="divaudioid"> <audio controls="" preload="auto" controlslist="nodownload" class="mn100" width="290" style="width: 100%;" id="audio"><source id="audioSource" src="https://d2l867q19mer1j.cloudfront.net/2024/11/.689e967e-be8a-4c5c-9727-d6c279847d29.mp3" type="audio/mp3"></audio> </div> </span> </div> <div class="clear"> </div> </div> <script> $(document).ready(function () { var vid = document.getElementById("audio"); vid.onplay = function () { var EventObject = { F2FPlayerState: JSConstants.PlayerState.Play, F2FEventName: JSConstants.EventName.AudioPlayed, F2FSection: JSConstants.Section.Middle, F2FType: JSConstants.Type.Sttc, F2FContentId: '4244', F2FContentTitle: 'We are ready to popularise Overlays worldwide' }; MixpanelWrapper.EventTracking(EventObject); EventTracking(); }; vid.onpause = function () { var PlayedDurationInSec = $(vid)[0].currentTime; var TotalDurationInSec = $(vid)[0].duration; var EventType = JSConstants.PlayerState.Pause; if (PlayedDurationInSec == TotalDurationInSec) { EventType = JSConstants.PlayerState.Ended; } var EventObject = { F2FPlayerState: EventType, F2FEventName: JSConstants.EventName.AudioPlayed, F2FSection: JSConstants.Section.Middle, F2FType: JSConstants.Type.Sttc, F2FContentId: '4244', F2FContentTitle: 'We are ready to popularise Overlays worldwide', F2FTotalDurationInSecond: TotalDurationInSec, F2FPlayedDurationInSecond: PlayedDurationInSec }; MixpanelWrapper.EventTracking(EventObject); }; window.addEventListener("unload", function () { if ($(vid)[0].paused == false) { var PlayedDurationInSec = $(vid)[0].currentTime; var TotalDurationInSec = $(vid)[0].duration; var EventObject = { F2FPlayerState: JSConstants.PlayerState.Leave, F2FEventName: JSConstants.EventName.AudioPlayed, F2FSection: JSConstants.Section.Middle, F2FType: JSConstants.Type.Sttc, F2FContentId: '4244', F2FContentTitle: 'We are ready to popularise Overlays worldwide', F2FTotalDurationInSecond: TotalDurationInSec, F2FPlayedDurationInSecond: PlayedDurationInSec }; MixpanelWrapper.EventTracking(EventObject); } }); }); function EventTracking(){ var expara = [{ key: 'PageURL', value: "https://www.fibre2fashion.com/interviews/industry-speak/overlays-clothing/shlok-srivastava/14025/" }, { key: 'Platform', value: "Desktop" }, { key: 'Country', value: 'Singapore' }] DataLayerTracking('audio play - interviews', 'Interviews', 'Audio Play', expara) } </script> <div class="interview-content"> <span class="innersectiontitle"> We are ready to popularise Overlays worldwide </span> <div> Overlays Clothing is a forward-thinking brand dedicated to empowering creative individuals with high-quality, unique products that seamlessly blend fashion, comfort, and functionality. Committed to sustainability, Overlays focuses on refining details and creating eco-friendly designs that inspire positive change while safeguarding the environment. In an interview with <b>Fibre2Fashion</b>, Founder &amp; CEO <b>Shlok Srivastava</b> discusses sustainable practices, focusing on trend, customer experience and more. </div> <p class="face2face-que face2face-que-paddingnone"> <strong> How do you see the rise of digital platforms and social media influencing the future of fashion marketing and brand visibility, especially for new and emerging brands? </strong> </p> <div class="face2face-ans" style="padding-left: 20px;"> <div>The advancement of digital platforms and social networking sites has benefitted particularly new and developing fashion brands. Nowadays, due to tools such as Google Ads and social networks like Instagram and WhatsApp, every brand has the means of contacting and reaching the worldwide audience in the easiest possible way. But even in such flourishing conditions, a strong ‘why’ remains vital for winning an audience in this space—a strong reason behind the product and the brand. Those brands that are open about the cause they uphold, perform due diligence, and observe the lessons of the trade’s history tend to flourish more. Although this intensity of competition is also negative to manage at times, those who have a better product and equally engaging story will creatively leverage social media to develop a following and grow rapidly. In such a scenario, credibility and good moral standing about the brand is what will help one to become competitive in the fashion business and also help in the longevity of the business.</div> </div> <div id="advertisemntblock"> <div id="hidbanner"> <div style="text-align:center;font-size: 11px;"> <div style="display:inline;font-size: 12px!important;color: #a1a1a1!important;position: relative;top: 9px;">&nbsp;</div> <div style="display:inline;"> <a class="close" style="color: #a1a1a1!important; text-decoration: underline; font-size: 12px; font-weight: normal; position: relative; top: 0px; opacity: 1;" onclick="closecontentbanner()" id="closecontentbanner"> <i class="fa fa-close" style="padding-top: 11px;"></i> </a> </div> </div> <div style="text-align:center;"> <a href="https://www.fibre2fashion.com/texpro/?utm_source=f2f&amp;utm_medium=news_detail&amp;utm_campaign=texpro_2022" target="_blank"> <img src="https://static.fibre2fashion.com/staticresources/images/texpro770x110V2.gif" alt="TexPro" class="img-responsive" style="margin:10px auto;max-width:100%;"> </a> </div> </div> </div> <p class="face2face-que face2face-que-paddingnone"> <strong> What inspired you to start Overlays Clothing, and how did you identify the unique style or gap you wanted to address in the market? </strong> </p> <div class="face2face-ans" style="padding-left: 20px;"> <div>The inspiration behind starting Overlays Clothing came from a simple yet common problem i.e., the wear and tear of cotton T-shirts. After just a few washes, they lose their shape, colour, and softness, and often shrink. So, we wanted to create a T-shirt that would maintain its quality over time, with vibrant colours, a perfect fit, and a great feel. By blending cotton with sustainable fibres, we developed the OV3 fabric, which resists fading, shrinking, and wrinkles, solving 80 per cent of the issues with traditional cotton T-shirts. This obsession with solving everyday clothing problems led to multiple collections and continuous feedback-driven improvements. We did not just want to fill an existing gap, but we also aim to address real needs and create clothing that people want and need. Whether it is comfortable gym wear or everyday essentials, we always prioritise solving the challenges of the discerning customers ensuring that our designs satisfy their requirements.</div> </div> <div id="advertisemntblock"> </div> <p class="face2face-que face2face-que-paddingnone"> <strong> How do you define the core values and aesthetics of Overlays Clothing, and how do they set the brand apart from other streetwear and urban fashion brands? </strong> </p> <div class="face2face-ans" style="padding-left: 20px;"> <div>At Overlays Clothing, our core values are rooted in the belief that change is constant and necessary. This philosophy permeates everything we do—from our design process to our company culture. We embrace change, both as a concept and as a driving force behind innovation. Our designs and prints consistently encourage individuals to embrace positive transformation in their lives, making change not just a theme, but an everyday lifestyle. This distinguishes us from other streetwear and urban fashion brands because we just do not simply make garments, but we also build a movement. Our designs are more than trends—they are reminders for our community to evolve and push boundaries. Whether it is the fabric, the fit, or the messaging, every piece we create reflects the commitment to growth and transformation, making Overlays a brand that speaks to those who are always looking to improve and make a difference, both in fashion and life.</div> </div> <div id="advertisemntblock"> </div> <p class="face2face-que face2face-que-paddingnone"> <strong> Sustainability is becoming more important in the apparel industry. In your opinion, what are the biggest challenges and opportunities for brands in adopting sustainable practices? </strong> </p> <div class="face2face-ans" style="padding-left: 20px;"> <div>Sustainability in the apparel industry presents both challenges and opportunities for brands. One major challenge is the fast-paced nature of fashion trends. Trends today change in less than six months, with some lasting only a few weeks. This rapid turnover pressures brands to constantly produce new items, leading to significant waste when unsold inventory is discarded. Brands with long-term goals, however, can more easily adopt sustainable practices, as they are less reliant on short-lived trends. On the other hand, embracing sustainability while keeping up with trends requires significant investment in new systems, faster production cycles, and disposal of older items. An opportunity lies in exploring innovative, sustainable techniques. For example, we have recently ventured into knitwear, where garments are made directly from yarns, reducing thread, fabric, and yarn waste. By finding and implementing such efficient processes, brands can minimise waste while still meeting market demands.</div> </div> <div id="advertisemntblock"> </div> <p class="face2face-que face2face-que-paddingnone"> <strong> Could you share how Overlays Clothing approaches sustainable practices or aims to reduce its environmental impact? </strong> </p> <div class="face2face-ans" style="padding-left: 20px;"> <div>At Overlays Clothing, sustainability is a core focus. We take a two-pronged approach to reduce our environmental impact. First, our bestselling products are made from a sustainable cotton blend fabric called OV Free Tech. This blend is not only more eco-friendly than traditional cotton, but the fibres used are also less harmful to nature. Second, we prioritise careful inventory management. By using data and customer feedback, we ensure that we produce only what is needed, avoiding overproduction and reducing waste. In 2024, our rejection rate has been near zero, minimising waste from excess garments, water usage, and chemicals. Additionally, we use paper mailers instead of plastic poly bags, further reducing our environmental footprint. Through these practices, we are committed to making fashion more sustainable while meeting customer demand responsibly.</div> </div> <div id="advertisemntblock"> </div> <p class="face2face-que face2face-que-paddingnone"> <strong> Your website showcases a vibrant and unique style. How does the design process work for each collection, and what role do customer preferences play in shaping your collections? </strong> </p> <div class="face2face-ans" style="padding-left: 20px;"> <div>Our design process is ingrained in a culture that prioritises creativity and a deep dedication to our customers. We begin each collection by exploring trends and listening to what our customers truly want, allowing us to create pieces that resonate with their style and preferences. Additionally, customer feedback plays a vital role, while guiding us in refining our designs and ensuring each piece aligns with our brand’s vibrant, unique aesthetic. This commitment to both design innovation and customer satisfaction motivates our team to deliver collections that feel fresh, meaningful, and crafted with care for the people we serve.</div> </div> <div id="advertisemntblock"> </div> <p class="face2face-que face2face-que-paddingnone"> <strong> The fashion industry is known for its rapid trend cycles. How do you think brands can balance staying on-trend with maintaining a consistent brand identity? </strong> </p> <div class="face2face-ans" style="padding-left: 20px;"> <div>The world of fashion is evolving at a great speed and therefore brands are expected to keep up with the changes while doing their best to maintain their brand identity. Unlike most designers, at Overlays we are more concerned with setting trends than with following them. By extensive research on the construction of fabrics, colours, and silhouettes as well as social trends, we manufacture products that are not only relevant to the present and the future but are also intended to be ahead of the game. We place a strong emphasis on designing products that stand out in the market—products that are different from what is already available. We are mindful of trends, but the most important thing is that we want the people in our community to be involved in and passionate about what we are making. We seek the reaction of our audience continually to design things that they would want. It is this combination of introducing new ideas to the existing many, taking into consideration what the community wants, and having set goals for the brand itself that enables us to create such pieces that are trendy yet still within the confines of the brand’s philosophy.</div> </div> <div id="advertisemntblock"> </div> <p class="face2face-que face2face-que-paddingnone"> <strong> How do you ensure Overlays Clothing stays relevant while maintaining its brand identity? </strong> </p> <div class="face2face-ans" style="padding-left: 20px;"> <div>At Overlays Clothing, we ensure relevance by staying one step ahead of trends while preserving the distinctive brand identity. Our design process is deeply embedded in community engagement. Also, we regularly involve our audience through feedback on colourways, prints, and silhouettes, ensuring that every collection resonates with their needs and preferences. Though we keep an eye on emerging trends, we do not follow them blindly. Instead, we innovate by tweaking designs—whether through unique washes, silhouettes, or fabric techniques—so this helps our products to stand out in the market.</div><div>We also prioritise adding new elements to each collection, whether it is introducing new product categories or experimenting with Indian craftsmanship, dyeing, and printing techniques. Each collection is driven by a clear theme, and we incorporate cutting-edge design techniques, ensuring that our clothes remain fresh and distinct. Our consistent visual language, from free-spirited illustrations to vibrant prints, ties everything together, maintaining our brand’s core identity across collections and platforms. This blend of innovation and consistency keeps Overlays relevant and authentic.</div> </div> <div id="advertisemntblock"> </div> <p class="face2face-que face2face-que-paddingnone"> <strong> What challenges have you faced in building and scaling Overlays Clothing, and how have you navigated these challenges? </strong> </p> <div class="face2face-ans" style="padding-left: 20px;"> <div>Over the past three years, Overlays Clothing has been facing an enormous challenge in terms of scaling up its operations to match demand, which has always exceeded our production abilities. We have been making systematic improvements to our inventory, warehousing, and indeed, to all of our operations, in a bid to catch up with the ever-increasing need without compromising on production standards. Additionally, as a company under the public eye, we have encountered unexpected challenges such as website hacks and data breaches that usually larger established businesses typically face later in their growth. Such situations have put our fortitude to the test. To combat such threats, we have strengthened and implemented security measures, formed specialised legal and technical teams, and concentrated on developing better processes to preserve our brand and customer trust. This has made it possible for us to evolve despite the difficulties, and consequently, we have been able to remain dynamic and tackle both operational and security challenges when required.</div> </div> <div id="advertisemntblock"> </div> <p class="face2face-que face2face-que-paddingnone"> <strong> With e-commerce booming, what are some effective ways fashion brands can create memorable, engaging customer experiences online compared to traditional in-store shopping? </strong> </p> <div class="face2face-ans" style="padding-left: 20px;"> <div>With booming e-commerce, fashion brands can develop memorable, engaging online customer experiences by focusing on community building and visual storytelling. At Overlays, we have built a dedicated online community using tools such as Instagram and WhatsApp, through which we interact with our customers, gather feedback, and even involve the customers in the design process. This two-way communication ensures that our products align with what the audience truly wants. Additionally, since customers cannot physically touch or try on products, we emphasise high-quality, visually compelling campaigns and photoshoots that reflect the product’s true essence. Another key aspect is exceptional customer service. We make sure that any issues are resolved swiftly, ensuring that each customer feels valued and part of the Overlays community as this personal touch can create loyalty and a sense of belonging.</div> </div> <div id="advertisemntblock"> </div> <p class="face2face-que face2face-que-paddingnone"> <strong> How has Overlays Clothing leveraged online platforms to reach and engage your target audience? </strong> </p> <div class="face2face-ans" style="padding-left: 20px;"> <div>From the very beginning, Overlays Clothing has embraced e-commerce as the primary channel for growth. With over a decade of expertise in the world of technology via YouTube, I recognised the reach and potential of e-commerce greatly above traditional retail. We were able to connect with a global audience by going online, which would have been extremely difficult to do using offline strategies. We purposely designed our brand to be global, guaranteeing that our products reach clients all over the world. We believe that when a product is exceptional, scaling becomes less complicated. My design expertise plays a key role in this, as I ensure that the collections—whether basic cotton tees or premium jackets—solve actual challenges while delivering exceptional quality.</div><div>Our e-commerce strategy is not just about selling products; it is about reaching untapped potential. We have only scratched the surface of what we can achieve and believe that our products, combined with strong marketing, will drive greater success moving forward.</div> </div> <div id="advertisemntblock"> </div> <p class="face2face-que face2face-que-paddingnone"> <strong> Customer feedback can be a goldmine for any brand. How does Overlays Clothing gather and utilise feedback to refine products and improve the customer experience? </strong> </p> <div class="face2face-ans" style="padding-left: 20px;"> <div>Overlays Clothing pays special attention to customer feedback as this is our main focus. Within the three years that we have been in operation, we have created an interactive community that contributes effectively to every decision we make. Our community, unlike typical brand communities, is highly critical and honest, offering constructive feedback on our products, campaigns, and designs. This approach, which is objective and primarily data-driven, allows the company to get to the expectations of the customers quite well. To do this, we collect responses through the administration of fliers, conducting polls, or engaging on social media. For instance, we share the unreleased designs of our products and ask the community to vote for the one that they like the most. There are even instances when we have decided to throw away designs that we considered great but whom the community did not relate to at all. Their contribution has influenced critical decisions concerning products and campaigns to ensure we are in line with the desires of our clients. So, customer feedback is the very essence of growth and strategy for the brand.</div> </div> <div id="advertisemntblock"> </div> <p class="face2face-que face2face-que-paddingnone"> <strong> As an entrepreneur, what are some key lessons you have learned from launching and growing Overlays Clothing that you would like to share with aspiring fashion founders? </strong> </p> <div class="face2face-ans" style="padding-left: 20px;"> <div>At Overlays Clothing, we are still on a journey of growth and learning, so I would not say that we are in a position to give out advice just yet. But there are a few important points that we have learned over the years. The first one is the fact that product quality cannot be compromised. It does not matter how well you hype the product, if it is not a decent product, it would not speak to the consumers and there is no way to grow the business. The second one is the obsession with the customers. We have been lucky to have customers who have endured difficult times with us and their contribution cannot be overstated. Feedback from those early-stage customers has been one of the strongest catalysts of our growth as they are the ones who endorse the cause and hence the outcome. Therefore, it is crucial to prioritise product quality and create good customer experiences. Once we are at the level of expansion where we can provide further details, we will gladly do so.</div> </div> <div id="advertisemntblock"> </div> <p class="face2face-que face2face-que-paddingnone"> <strong> Looking ahead, what are your goals for Overlays Clothing in the next few years, and are there any new projects or expansions you are particularly excited about? </strong> </p> <div class="face2face-ans" style="padding-left: 20px;"> <div>In prospects, the year 2025 excites us a lot. After spending time improving our systems and adapting our processes, we are prepared for significant expansion. This will entail more designs, more supply, and filling new categories – areas such as motion pictures for instance. History and mythology styles that create an ancient fashion line using semi-precious stones, metals, and crystals in the future is one of the big projects we are excited about. We want to develop such pieces of clothing that will be inspired by the future trends of fashion but will look into the past as well. Furthermore, in the course of our activities, we will do more such photo shoots and runway shows as the recent one which was quite successful. We intend to improve on these, providing exceptional visual appeal. And yes, there is a need to aim at expansion, which is a very important objective. We are ready to popularise Overlays worldwide as it is the time for us to focus on the fashion map beyond our country.</div> </div> <div id="advertisemntblock"> </div> <p class="face2face-que face2face-que-paddingnone"> <strong> Finally, what role do you think technology—such as AI, 3D printing, or virtual reality—will play in the future of fashion design and manufacturing? </strong> </p> <div class="face2face-ans" style="padding-left: 20px;"> <div>The future of fashion design and manufacturing will be defined and transformed by technology especially AI, 3D printing, and virtual reality, amongst others. At Overlays, we have already embraced AI to generate creative ideas, campaign concepts, and visual references, streamlining the design process. AI allows us to play with many designs, colours, and concepts within a very short period, which helps us keep up with trends without compromising on speed. 3D printing can change the game in the product development stage as it allows brands to bring to life intricate and highly personalised designs and make custom fashion pieces on demand reducing waste generation. Although we have not yet done this in product development to the full extent, there are numerous opportunities. C-Games is another technology that allows the consumer to experience the clothes without them being there, for instance, providing virtual change rooms or shops in which the consumer can look at the merchandise without the need to physically be in that space. Fashion creation in the coming era will be faster, more exciting, and tailored to the customer by the brand that understands these technologies.</div> </div> <div id="advertisemntblock"> </div> </div> <div class="clearfix"></div> <div class="personalitydetails"></div> <div class=""> <div class="col-xs-6 text-left fixheight news-date"> <div class="row"> <strong>Interviewer:</strong> Shilpi Panjabi </div> </div> <div class="col-xs-6 text-right fixheight news-date"> <div class="row"> <strong>Published on:</strong> 23/11/2024 </div> </div> </div> <div class="clearfix"></div> <div class="clearfix"></div> <p class="disclamer-main"> <strong>DISCLAIMER:</strong> All views and opinions expressed in this column are solely of the interviewee, and they do not reflect in any way the opinion of Fibre2Fashion.com. </p> <div class="face2face-icons"> <!-- ShareThis BEGIN --><div class="sharethis-inline-share-buttons"></div><!-- ShareThis END --> </div> <div class="printLink"> <a class="iconlink" target="_blank" href="/interviews/printinterview.aspx?Id=14025&amp;sectionType=industry-speak" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"> <i class="fa fa-print yellow-icon-txt"></i> &nbsp;Print this interview </a> </div> <div class="clearfix"></div> </div> </div> <div class="clearfix hidden-lg hidden-md"></div> <div class="col-md-4 mobileAlignemnet"> <div class="advertisement vrads"> </div> <div class="white-box bottom-space marginTopAlignment"> <h4 class="innersectiontitle"> Other Talk </h4> <div class="other-interview-main" id="otherinterviewimage"> <div class="other-interview-image sectorpulse-exp-spk-images-big_new mobResponsive"> <a href="/interviews/industry-speak/leena-singh/ashima-leena/13793/"> <img src="https://static.fibre2fashion.com/spacer.gif" data-src="https://static.fibre2fashion.com/InterviewResources/UserImages/4003/headshot.jpg" class="img-circle onscrollloading" alt="Ashima-Leena" title="Ashima-Leena" /> </a> </div> <div class="other-interview-content"> <span class="other-interview-heading"> <a href="/interviews/industry-speak/leena-singh/ashima-leena/13793/" class="interviews-title"> Ashima-Leena </a> </span><br> Founder<br> Leena Singh<br> </div> <div class="clearfix">&nbsp;</div> <div class="blocktitle"> <a href="/interviews/industry-speak/leena-singh/ashima-leena/13793/"> Our design philosophy is to create classic yet modern ensembles </a> </div> <div class="clearfix"> </div> </div> <div class="other-interview-main" id="otherinterviewimage"> <div class="other-interview-image sectorpulse-exp-spk-images-big_new mobResponsive"> <a href="/interviews/industry-speak/dragon-hill/mayur-solanki/13797/"> <img src="https://static.fibre2fashion.com/spacer.gif" data-src="https://static.fibre2fashion.com/InterviewResources/UserImages/4008/headshot.jpg" class="img-circle onscrollloading" alt="Mayur Solanki" title="Mayur Solanki" /> </a> </div> <div class="other-interview-content"> <span class="other-interview-heading"> <a href="/interviews/industry-speak/dragon-hill/mayur-solanki/13797/" class="interviews-title"> Mayur Solanki </a> </span><br> Founder &amp; CEO<br> Dragon Hill<br> </div> <div class="clearfix">&nbsp;</div> <div class="blocktitle"> <a href="/interviews/industry-speak/dragon-hill/mayur-solanki/13797/"> Being ‘glocal’ is paramount in our approach to cultural sensitivity and... </a> </div> <div class="clearfix"> </div> </div> <div class="other-interview-main" id="otherinterviewimage"> <div class="other-interview-image sectorpulse-exp-spk-images-big_new mobResponsive"> <a href="/interviews/industry-speak/smartex/gilberto-loureiro/14024/"> <img src="https://static.fibre2fashion.com/spacer.gif" data-src="https://static.fibre2fashion.com/InterviewResources/UserImages/4243/headshot.jpg" class="img-circle onscrollloading" alt="Gilberto Loureiro" title="Gilberto Loureiro" /> </a> </div> <div class="other-interview-content"> <span class="other-interview-heading"> <a href="/interviews/industry-speak/smartex/gilberto-loureiro/14024/" class="interviews-title"> Gilberto Loureiro </a> </span><br> Co-Founder &amp; CEO<br> Smartex<br> </div> <div class="clearfix">&nbsp;</div> <div class="blocktitle"> <a href="/interviews/industry-speak/smartex/gilberto-loureiro/14024/"> We help the textile industry operate more sustainably and efficiently </a> </div> <div class="clearfix"> </div> </div> <div class="other-interview-main" id="otherinterviewimage"> <div class="other-interview-image sectorpulse-exp-spk-images-big_new mobResponsive"> <a href="/interviews/industry-speak/ternua/edu-uribesalgo/13656-1"> <img src="https://static.fibre2fashion.com/spacer.gif" data-src="https://static.fibre2fashion.com/InterviewResources/UserImages/3907/headshot.jpg" class="img-circle onscrollloading" alt="Edu Uribesalgo" title="Edu Uribesalgo" /> </a> </div> <div class="other-interview-content"> <span class="other-interview-heading"> <a href="/interviews/industry-speak/ternua/edu-uribesalgo/13656-1" class="interviews-title"> Edu Uribesalgo </a> </span><br> Innovation Director, Sustainability Director &amp; Co-Founder<br> Ternua<br> </div> <div class="clearfix">&nbsp;</div> <div class="blocktitle"> <a href="/interviews/industry-speak/ternua/edu-uribesalgo/13656-1"> Our ambition is to be a reference brand in sustainable innovation </a> </div> <div class="clearfix"> </div> </div> <div class="other-interview-main" id="otherinterviewimage"> <div class="other-interview-image sectorpulse-exp-spk-images-big_new mobResponsive"> <a href="/interviews/industry-speak/reverce-a-modern-day-fusion-streetwear-apparel-brand/raksha-tated/13465-1"> <img src="https://static.fibre2fashion.com/spacer.gif" data-src="https://static.fibre2fashion.com/InterviewResources/UserImages/3739/headshot.jpg" class="img-circle onscrollloading" alt="Raksha Tated" title="Raksha Tated" /> </a> </div> <div class="other-interview-content"> <span class="other-interview-heading"> <a href="/interviews/industry-speak/reverce-a-modern-day-fusion-streetwear-apparel-brand/raksha-tated/13465-1" class="interviews-title"> Raksha Tated </a> </span><br> Founder<br> Reverce, A modern day fusion streetwear apparel brand<br> </div> <div class="clearfix">&nbsp;</div> <div class="blocktitle"> <a href="/interviews/industry-speak/reverce-a-modern-day-fusion-streetwear-apparel-brand/raksha-tated/13465-1"> The fabrics we use are exceptional and long-lasting </a> </div> <div class="clearfix"> </div> </div> <div class="other-interview-main" id="otherinterviewimage"> <div class="other-interview-image sectorpulse-exp-spk-images-big_new mobResponsive"> <a href="/interviews/industry-speak/latin-quarters/rahul-bhalla/13873/"> <img src="https://static.fibre2fashion.com/spacer.gif" data-src="https://static.fibre2fashion.com/InterviewResources/UserImages/4086/headshot.jpg" class="img-circle onscrollloading" alt="Rahul Bhalla" title="Rahul Bhalla" /> </a> </div> <div class="other-interview-content"> <span class="other-interview-heading"> <a href="/interviews/industry-speak/latin-quarters/rahul-bhalla/13873/" class="interviews-title"> Rahul Bhalla </a> </span><br> Co-founder &amp; CEO<br> Latin Quarters<br> </div> <div class="clearfix">&nbsp;</div> <div class="blocktitle"> <a href="/interviews/industry-speak/latin-quarters/rahul-bhalla/13873/"> Our brand’s ethos lies in adopting a ‘Product-First’ approach </a> </div> <div class="clearfix"> </div> </div> <div class="other-interview-main" id="otherinterviewimage"> <div class="other-interview-image sectorpulse-exp-spk-images-big_new mobResponsive"> <a href="/interviews/industry-speak/paxcom/punit-sindhwani/13614-1"> <img src="https://static.fibre2fashion.com/spacer.gif" data-src="https://static.fibre2fashion.com/InterviewResources/UserImages/3877/headshot.jpg" class="img-circle onscrollloading" alt="Punit Sindhwani" title="Punit Sindhwani" /> </a> </div> <div class="other-interview-content"> <span class="other-interview-heading"> <a href="/interviews/industry-speak/paxcom/punit-sindhwani/13614-1" class="interviews-title"> Punit Sindhwani </a> </span><br> CEO<br> Paxcom<br> </div> <div class="clearfix">&nbsp;</div> <div class="blocktitle"> <a href="/interviews/industry-speak/paxcom/punit-sindhwani/13614-1"> Our mission is to simplify and streamline online selling for brands and sellers </a> </div> <div class="clearfix"> </div> </div> <div class="clearfix"></div> </div> <div class="clear"></div> <div class="Trending-News articles-main news-main margintop20"> <div class="row"> <div class="col-md-12"> <div class="read-rticles-main-title"> <div class="read-rticles-detais-title"> <h3 class="section-title"> Trending News </h3> </div> <div class="latest-view-btn"> <a href=https://www.fibre2fashion.com/news/allnews.aspx?SortBy=latest target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FBlockName&quot;:&quot;Trending News&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}">View all</a> </div> </div> </div> </div> <div class="white-box"> <link type="text/css" href="https://static.fibre2fashion.com//staticresources/cssv1/TrendingWeb.css?v=1.9" rel="stylesheet" /> <div class="trending-news recommended-news"> <div class="recommended-news-img"> <a href="https://www.fibre2fashion.com/news/textiles-policy-news/us-delegation-to-bangladesh-highlights-need-for-labour-reforms-299305-newsdetails.htm" target="_blank"> <img width="219" height="146" src="https://static.fibre2fashion.com/staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com/Newsresource/Thumbnail/299/image10_310893.jpg" alt="US delegation to Bangladesh highlights need for labour reforms" title="US delegation to Bangladesh highlights need for labour reforms" class="img-responsive onscrollloading" onerror='NoImage(this,"/interviews/");'> </a> </div> <div class="recommended-news-content"> <div class="related-article"> <a href="/news/textiles-policy-news" class="categoryname" target="_blank">Textiles</a> </div> <a href="https://www.fibre2fashion.com/news/textiles-policy-news/us-delegation-to-bangladesh-highlights-need-for-labour-reforms-299305-newsdetails.htm" class="blocktitle" target="_blank"> US delegation to Bangladesh highlights need for labour reforms </a> <div class="latest-news-date-main"> <div class="latest-news-date"> Nov 27, 2024 </div> <div class="latest-news-read"> 2 min read </div> </div> </div> <div class="clear"></div> </div> <div class="trending-news recommended-news"> <div class="recommended-news-img"> <a href="https://www.fibre2fashion.com/news/cotton-news/multiple-factors-converge-to-end-ice-cotton-rally-299311-newsdetails.htm" target="_blank"> <img width="219" height="146" src="https://static.fibre2fashion.com/staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com/Newsresource/Thumbnail/299/adobestock-910239313_310899.jpg" alt="ICE cotton rally ends due to stronger dollar, higher crop prospects in Brazil" title="ICE cotton rally ends due to stronger dollar, higher crop prospects in Brazil" class="img-responsive onscrollloading" onerror='NoImage(this,"/interviews/");'> </a> </div> <div class="recommended-news-content"> <div class="related-article"> <a href="/news/cotton-news" class="categoryname" target="_blank">Textiles</a> </div> <a href="https://www.fibre2fashion.com/news/cotton-news/multiple-factors-converge-to-end-ice-cotton-rally-299311-newsdetails.htm" class="blocktitle" target="_blank"> Multiple factors converge to end ICE cotton rally </a> <div class="latest-news-date-main"> <div class="latest-news-date"> Nov 27, 2024 </div> <div class="latest-news-read"> 2 min read </div> </div> </div> <div class="clear"></div> </div> <div class="trending-news recommended-news"> <div class="recommended-news-img"> <a href="https://www.fibre2fashion.com/news/textile-fairs-news/jiam-2024-kicks-off-in-osaka-with-157-global-exhibitors-299307-newsdetails.htm" target="_blank"> <img width="219" height="146" src="https://static.fibre2fashion.com/staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com/Newsresource/Thumbnail/299/jiam-2024_310895.jpg" alt=" JIAM 2024 kicks off in Osaka with 157 global exhibitors" title=" JIAM 2024 kicks off in Osaka with 157 global exhibitors" class="img-responsive onscrollloading" onerror='NoImage(this,"/interviews/");'> </a> </div> <div class="recommended-news-content"> <div class="related-article"> <a href="/news/textile-fairs-news" class="categoryname" target="_blank">Textiles</a> </div> <a href="https://www.fibre2fashion.com/news/textile-fairs-news/jiam-2024-kicks-off-in-osaka-with-157-global-exhibitors-299307-newsdetails.htm" class="blocktitle" target="_blank"> JIAM 2024 kicks off in Osaka with 157 global exhibitors </a> <div class="latest-news-date-main"> <div class="latest-news-date"> Nov 27, 2024 </div> <div class="latest-news-read"> 3 min read </div> </div> </div> <div class="clear"></div> </div> <div class="trending-news recommended-news"> <div class="recommended-news-img"> <a href="https://www.fibre2fashion.com/news/nonwoven-textile-news/us-company-first-quality-joins-caregiver-action-network-299291-newsdetails.htm" target="_blank"> <img width="219" height="146" src="https://static.fibre2fashion.com/staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com/Newsresource/Thumbnail/299/firstquality_310879.jpg" alt="US company First Quality joins Caregiver Action Network" title="US company First Quality joins Caregiver Action Network" class="img-responsive onscrollloading" onerror='NoImage(this,"/interviews/");'> </a> </div> <div class="recommended-news-content"> <div class="related-article"> <a href="/news/nonwoven-textile-news" class="categoryname" target="_blank">Technical Textiles</a> </div> <a href="https://www.fibre2fashion.com/news/nonwoven-textile-news/us-company-first-quality-joins-caregiver-action-network-299291-newsdetails.htm" class="blocktitle" target="_blank"> US company First Quality joins Caregiver Action Network </a> <div class="latest-news-date-main"> <div class="latest-news-date"> Nov 26, 2024 </div> <div class="latest-news-read"> 3 min read </div> </div> </div> <div class="clear"></div> </div> <div class="trending-news recommended-news"> <div class="recommended-news-img"> <a href="https://www.fibre2fashion.com/news/chemicals-news/clariant-to-showcase-made-in-india-pharma-products-at-cphi-2024-299292-newsdetails.htm" target="_blank"> <img width="219" height="146" src="https://static.fibre2fashion.com/staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com/Newsresource/Thumbnail/299/13240-large-clapr1939a-2081122-en-jpg_310880.jpg" alt="Clariant to showcase made in India pharma products at CPHI 2024" title="Clariant to showcase made in India pharma products at CPHI 2024" class="img-responsive onscrollloading" onerror='NoImage(this,"/interviews/");'> </a> </div> <div class="recommended-news-content"> <div class="related-article"> <a href="/news/chemicals-news" class="categoryname" target="_blank">Textiles</a> </div> <a href="https://www.fibre2fashion.com/news/chemicals-news/clariant-to-showcase-made-in-india-pharma-products-at-cphi-2024-299292-newsdetails.htm" class="blocktitle" target="_blank"> Clariant to showcase made in India pharma products at CPHI 2024 </a> <div class="latest-news-date-main"> <div class="latest-news-date"> Nov 26, 2024 </div> <div class="latest-news-read"> 5 min read </div> </div> </div> <div class="clear"></div> </div> <div class="trending-news recommended-news"> <div class="recommended-news-img"> <a href="https://www.fibre2fashion.com/news/announcement/india-s-textiles-ministry-to-make-gi-products-go-from-gaon-se-global--299286-newsdetails.htm" target="_blank"> <img width="219" height="146" src="https://static.fibre2fashion.com/staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com/Newsresource/Thumbnail/299/pib_310874.jpg" alt="India’s textiles ministry to make GI products go from ‘Gaon Se Global’ " title="India’s textiles ministry to make GI products go from ‘Gaon Se Global’ " class="img-responsive onscrollloading" onerror='NoImage(this,"/interviews/");'> </a> </div> <div class="recommended-news-content"> <div class="related-article"> <a href="/news/announcement" class="categoryname" target="_blank">Textiles</a> </div> <a href="https://www.fibre2fashion.com/news/announcement/india-s-textiles-ministry-to-make-gi-products-go-from-gaon-se-global--299286-newsdetails.htm" class="blocktitle" target="_blank"> India’s textiles ministry to make GI products go from ‘Gaon Se Global’ </a> <div class="latest-news-date-main"> <div class="latest-news-date"> Nov 26, 2024 </div> <div class="latest-news-read"> 3 min read </div> </div> </div> <div class="clear"></div> </div> <div class="trending-news recommended-news"> <div class="recommended-news-img"> <a href="https://www.fibre2fashion.com/news/retail-results/us-destination-xl-q3-sales-fall-9-8-yoy-comparable-sales-drop-11-3--299287-newsdetails.htm" target="_blank"> <img width="219" height="146" src="https://static.fibre2fashion.com/staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com/Newsresource/Thumbnail/299/lt-241105-dxl-nov-hp-6137-d3_310875.jpeg" alt="US’ Destination XL Q3 sales fall 9.8% YoY, comparable sales drop 11.3%" title="US’ Destination XL Q3 sales fall 9.8% YoY, comparable sales drop 11.3%" class="img-responsive onscrollloading" onerror='NoImage(this,"/interviews/");'> </a> </div> <div class="recommended-news-content"> <div class="related-article"> <a href="/news/retail-results" class="categoryname" target="_blank">Retail</a> </div> <a href="https://www.fibre2fashion.com/news/retail-results/us-destination-xl-q3-sales-fall-9-8-yoy-comparable-sales-drop-11-3--299287-newsdetails.htm" class="blocktitle" target="_blank"> US’ Destination XL Q3 sales fall 9.8% YoY, comparable sales drop 11.3% </a> <div class="latest-news-date-main"> <div class="latest-news-date"> Nov 26, 2024 </div> <div class="latest-news-read"> 5 min read </div> </div> </div> <div class="clear"></div> </div> <div class="trending-news recommended-news"> <div class="recommended-news-img"> <a href="https://www.fibre2fashion.com/news/chemicals-news/dhanuka-agritech-acquires-global-rights-to-bayer-s-key-fungicides-299284-newsdetails.htm" target="_blank"> <img width="219" height="146" src="https://static.fibre2fashion.com/staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com/Newsresource/Thumbnail/299/adobestock-1073808512_310872.jpeg" alt=" Dhanuka Agritech acquires global rights to Bayer’s key fungicides" title=" Dhanuka Agritech acquires global rights to Bayer’s key fungicides" class="img-responsive onscrollloading" onerror='NoImage(this,"/interviews/");'> </a> </div> <div class="recommended-news-content"> <div class="related-article"> <a href="/news/chemicals-news" class="categoryname" target="_blank">Textiles</a> </div> <a href="https://www.fibre2fashion.com/news/chemicals-news/dhanuka-agritech-acquires-global-rights-to-bayer-s-key-fungicides-299284-newsdetails.htm" class="blocktitle" target="_blank"> Dhanuka Agritech acquires global rights to Bayer’s key fungicides </a> <div class="latest-news-date-main"> <div class="latest-news-date"> Nov 26, 2024 </div> <div class="latest-news-read"> 3 min read </div> </div> </div> <div class="clear"></div> </div> <div class="clear"></div> </div> </div> </div> <div class="clear"></div> <script> jQuery(document).ready(function () { jQuery("#Comment").on("click", openCommentPopUp); jQuery("#SubmitComment").on("click", function (e) { event.preventDefault(); SubmitComment(); }); MixpanelF2FEventAttributes.F2FPageName = "Interviews"; }); $(document).on('click', '#st-1 .st-btn', function () { var network = $(this).data('network'); MixPanelSharingClick(network, JSConstants.Section.Middle); }); $(document).on('click', '#st-2 .st-btn', function () { var network = $(this).data('network'); MixPanelSharingClick(network, JSConstants.Section.Footer); }); $(document).ready(function () { MixpanelF2FEventAttributes.F2FPageName = "Interviews"; MixpanelF2FEventAttributes.F2FIsDomainOnly = "False"; MixpanelF2FEventAttributes.F2FIsSubdomainOnly = "False"; MixpanelF2FEventAttributes.F2FIsTopPage = "False"; MixpanelF2FEventAttributes.F2FIsHome = "False"; MixpanelF2FEventAttributes.F2FIsList = "False"; MixpanelF2FEventAttributes.F2FIsInterview = "True"; MixpanelF2FEventAttributes.F2FIsPerson = "True"; MixpanelF2FEventAttributes.F2FPersonName = "Shlok Srivastava"; MixpanelF2FEventAttributes.F2FIsDetail = "True"; MixpanelF2FEventAttributes.F2FIsCategory = "True"; MixpanelF2FEventAttributes.F2FCategory = "IndustrySpeak"; MixpanelF2FEventAttributes.F2FIsSubcategory = "False"; MixpanelF2FEventAttributes.F2FIsProduct = "False"; MixpanelF2FEventAttributes.F2FIsCountryIndia = "True"; MixpanelF2FEventAttributes.F2FCountry = "India"; MixpanelF2FEventAttributes.F2FIsCompany = "True"; MixpanelF2FEventAttributes.F2FCompany = "Overlays Clothing"; MixpanelF2FEventAttributes.F2FPublishDate = "11/23/2024 3:14:29 PM"; }); </script> </div> </div> </div> </div> <div class="clear"></div> <div class="footer"> <div class="container"> <script type="text/javascript"> function validateChecks() { var chks = document.getElementsByName('NLType'); var checkCount = 0; for (var i = 0; i < chks.length; i++) { if (chks[i].checked) { checkCount++; } } if (checkCount < 1) { return false; } return true; } var emailValidationMessage = 'Please enter valid email address.'; function doalert(checkboxElem) { if (checkboxElem.checked) { var chks = document.getElementsByName('NLType'); var checkCount = 0; var checkval = ""; for (var i = 0; i < chks.length; i++) { if (chks[i].checked) { if (checkval == "") { checkval = chks[i].value; } else { checkval = checkval + "~" + chks[i].value; } } } $("#SelNLType").val(checkval); } else { var chks = document.getElementsByName('NLType'); var checkCount = 0; var checkval = ""; for (var i = 0; i < chks.length; i++) { if (chks[i].checked) { if (checkval == "") { checkval = chks[i].value; } else { checkval = checkval + "~" + chks[i].value; } } } $("#SelNLType").val(checkval); } } function NewsSubscription() { debugger; document.getElementById("f2fnewssuball").setAttribute("disabled", true); var email = jQuery.trim(jQuery("#EmailNewsSubscription").val()); var F2FLeadFormEventData = jQuery.trim(jQuery("#frmNewsSubscription #F2FLeadFormEventData").val()); if (ValidEmail(email)) { document.getElementById("f2fnewssuball").removeAttribute("disabled", false); document.getElementById("f2fnewssuball").setAttribute("disabled", true); var formData = "SelNLType=F2F~Tradefair~DailyNews~TTeNews&EmailNewsSubscription=" + email + "&F2FLeadFormEventData=" + F2FLeadFormEventData; // alert(formData); AjaxCall(BASEPATHURL + "/EmbeddedViews/InsertNewsLetterSubscription", formData, "POST", "JSON", 'NewsSubscriptionSuccess'); } else { alert(emailValidationMessage); jQuery("#EmailNewsSubscription").focus(); document.getElementById("f2fnewssuball").removeAttribute("disabled", false); } } function NewsSubscriptionSuccess(data) { if (data != "") { if (data.Status == "OK") { CreateLocalSrorage(data.LocalStorageData, data.Email, data.F2FLeadFormUserEventData, data.F2FLeadFormEventData); } alert(data.Message); var expara = '';//[{key:'Company',value: "F2F Pvt. ltd" }, {key:'Name' , value: 'Jaimin'}] DataLayerTracking('NewsletterSubscribe', 'Homepage', 'NewsletterSubscribe', expara) } document.getElementById("f2fnewssuball").removeAttribute("disabled", false); } </script> <div class="row"> <div class="col-md-12"> <div class="signup-newsletter "> <div class="signup-newsletter-text"> <div class="signup-newsletter-title"> Sign Up for F2F Newsletters </div> <div class="signup-newsletter-pera"> Subscribe and stay updated. </div> </div> <div class="signup-newsletter-form "> <form id="frmNewsSubscription"> <input id="F2FLeadFormEventData" name="F2FLeadFormEventData" type="hidden" value="{&quot;F2FFormType&quot;:&quot;F2F Newsletters&quot;,&quot;F2FFormTitle&quot;:&quot;Signup for F2F Newsletters&quot;,&quot;F2FSubscriptionDate&quot;:&quot;11/27/2024 12:38:57 PM&quot;,&quot;F2FIsSubscribed&quot;:true,&quot;F2FSubscriptionType&quot;:&quot;[\r\n \&quot;F2F\&quot;,\r\n \&quot;Tradefair\&quot;,\r\n \&quot;DailyNews\&quot;,\r\n \&quot;TTeNews\&quot;\r\n]&quot;,&quot;F2FEventName&quot;:&quot;Newsletter Subscribed&quot;,&quot;F2FEventType&quot;:&quot;Newsletter Subscribed&quot;,&quot;F2FBlockName&quot;:null,&quot;F2FSection&quot;:&quot;Footer&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:null,&quot;F2FProductName&quot;:null}"> <input id="EmailNewsSubscription" type="search" name="search" placeholder="Email" /> <input type="button" id="f2fnewssuball" value="Subscribe " onclick="NewsSubscription();"/> </form> <div class="signup-newsletter-form-text"> By submitting, you agree to our <a href="https://www.fibre2fashion.com/terms" target="_blank" style="text-decoration: underline !important; color: #7B86A6 !important;"> Terms of Use</a> and <a href="https://www.fibre2fashion.com/policy" target="_blank" style="text-decoration: underline !important; color: #7B86A6 !important;"> Privacy Policy. </a> </div> </div> </div> </div> </div> </div> <input type="hidden" value="" id="hdncountrycodef2f" /> <div class="footer-detais padding80"> <div class="container"> <div class="footer-wrapper-new"> <div class="footercolumn"> <div class="footer-menu"> <ul> <li><a class="linksheading first-titles" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/news/">News</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/news/textile-news/">Textile News</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/news/apparel-news/">Apparel News</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/news/fashion-news/">Fashion News</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/news/retail-industry/">Retail News</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/news/textiles-technology-news/">Technology News</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/news/e-commerce-industry/">E-Commerce News</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/news/sustainability-news/">Sustainability</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/news/chemicals-news">Chemicals</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/news/from-the-web">Partner News</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.technicaltextile.net/news/">Technical Textile News</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="mailto:editorial@fibre2fashion.com">Submit your press release</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://goo.gl/jm3XjC">Download News App <img src="https://static.fibre2fashion.com/staticresources/images/mobileapp.svg" style="height:15px;" alt="Mobile App Icon" title="Mobile App Icon" /></a></li> </ul> </div> </div> <div class="footercolumn"> <div class="footer-menu"> <ul> <li><a class="linksheading first-titles" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/industry-article/">Articles</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/industry-article/analyst-corner/17">Analyst Corner</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/industry-article/magazine-articles/16">Editor's Pick</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/industry-article/advertorial/470">Advertorials</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/industry-article/authors/">Contributors' Profiles</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/industry-article/submit-free-articles/">Become a Contributor - Submit Your Article</a></li> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/interviews/">Interviews </a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/interviews/face2face/">Face2Face</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/interviews/industry-speak/">Industry Speak</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://fashiongear.fibre2fashion.com/fashion-talks/view_all.aspx">Fashion Talk</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.technicaltextile.net/interviews/">Management Dialogue</a></li> </ul> </div> </div> <div class="footercolumn"> <div class="footer-menu"> <ul> <li><a class="linksheading first-titles" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/market-intelligence/">Market Intelligence</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/market-intelligence/texpro-textile-and-apparel/">TexPro - Take a free demo</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/market-intelligence/textile-market-watch/textile-price-trends/" title="Download Sample Report">Market Watch Report</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/market-intelligence/cotton-price-update/" title=" download sample report">Cotton Report - Download Sample Report</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/market-intelligence/customized-research/">Customised Report</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://onelink.to/g4e42b">Download Texpro App <img src="https://static.fibre2fashion.com/staticresources/images/mobileapp.svg" style="height:15px;" alt="Mobile App Icon" title="Mobile App Icon" /></a></li> </ul> </div> </div> <div class="footercolumn"> <div class="footer-menu"> <ul> <div class="clear"></div> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/videos/">Videos</a></li> <div class="clear"></div> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/knowledge/webinar">Webinars</a></li> <div class="clear"></div> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/web-stories">Web Stories</a></li> <div class="clear"></div> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/resources">Resources</a></li> </ul> </div> </div> <div class="footercolumn"> <div class="footer-menu"> <ul> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/business-solutions/magazine/">Fibre2Fashion Magazine</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/business-solutions/magazine/?q=menu#plans">Subscribe</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/business-solutions/magazine/?q=menu">Advertise in Magazine</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/business-solutions/magazine/#archive">Browse Archives</a></li> <li class="publication"><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://emagazine.fibre2fashion.com/wokmg/ohmw">Sustainability Compendium</a></li> <li class="publication"><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://emagazine.fibre2fashion.com/wokmg/wmkt">Machinery Compendium</a></li> <li class="publication"><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://emagazine.fibre2fashion.com/wokmg/nrrs">Nonwoven Compendium</a></li> </ul> </div> </div> </div> </div> </div> <div class="footer-bottom"> <div class="footer-bottom-left"> <div class="footer-bottom-left-group"> <a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/aboutus/">About</a> <a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/policy/">Privacy</a> <a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/terms/">Terms of Use</a> <a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/cookie/">Cookie Policy</a> <a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/aboutus/contact">Contact</a> <a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/apps/">F2F Apps</a>&nbsp;|&nbsp;&#169; 2024, Fibre2Fashion. All rights reserved. </div> </div> <div class="footer-social"> <a target=" _blank" itemprop="sameAs" href="https://www.facebook.com/fibre2fashion/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon&quot;,&quot;F2FSection&quot;:&quot;Footer&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Facebook&quot;}"> <svg class="fb" width=" 26" height="26" viewBox="0 0 26 26" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M13 0.972168C6.09625 0.972168 0.5 6.56842 0.5 13.4722C0.5 19.7109 5.07125 24.8822 11.0475 25.8209V17.0847H7.8725V13.4722H11.0475V10.7184C11.0475 7.58592 12.9125 5.85592 15.7688 5.85592C17.1362 5.85592 18.5662 6.09967 18.5662 6.09967V9.17467H16.9912C15.4375 9.17467 14.9537 10.1384 14.9537 11.1272V13.4722H18.42L17.8662 17.0847H14.9537V25.8209C20.9287 24.8834 25.5 19.7097 25.5 13.4722C25.5 6.56842 19.9037 0.972168 13 0.972168Z" fill="#51628D" /> </svg> </a> <a target="_blank" itemprop="sameAs" href="https://www.youtube.com/c/Fibre2FashionPvtLtd" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon&quot;,&quot;F2FSection&quot;:&quot;Footer&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;YouTube&quot;}"> <svg class="yt" width="26" height="21" viewBox="0 0 26 21" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M24.9287 3.39333C25.5 5.69508 25.5 10.5001 25.5 10.5001C25.5 10.5001 25.5 15.3051 24.9287 17.6068C24.6112 18.8791 23.6825 19.8802 22.5062 20.2186C20.37 20.8334 13 20.8334 13 20.8334C13 20.8334 5.63375 20.8334 3.49375 20.2186C2.3125 19.875 1.385 18.8752 1.07125 17.6068C0.5 15.3051 0.5 10.5001 0.5 10.5001C0.5 10.5001 0.5 5.69508 1.07125 3.39333C1.38875 2.12104 2.3175 1.12 3.49375 0.781581C5.63375 0.166748 13 0.166748 13 0.166748C13 0.166748 20.37 0.166748 22.5062 0.781581C23.6875 1.12516 24.615 2.12491 24.9287 3.39333ZM10.5 15.0209L18 10.5001L10.5 5.97925V15.0209Z" fill="#51628D" /> </svg> <a target="_blank" itemprop="sameAs" href="https://twitter.com/fibre2fashion" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon&quot;,&quot;F2FSection&quot;:&quot;Footer&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Twitter&quot;}"> <svg width="25" height="30" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> <g clip-path="url(#clip0_7117_39)"> <rect width="30" height="30" transform="matrix(-1 0 0 1 20 -10)"></rect> <path d="M7.5 11L1.8196 18H5L9 13L12.4767 18H18.3333L12.4767 9.66078L17.3333 3H14.5L10.8121 7.78125L7.80039 3H2.33333L7.5 11ZM10.8121 10.4183L15.5326 17.0239H14.4999L10.6886 11.6911L10.0969 10.86L5.14358 3.9283H6.17635L10.8121 10.4183Z" fill="#51628D"></path> </g> <defs> <clipPath id="clip0_7117_39"> <rect width="20" height="20" fill="white" transform="matrix(-1 0 0 -1 20 20)"></rect> </clipPath> </defs> </svg> </a> <a target="_blank" itemprop="sameAs" href="https://www.linkedin.com/company/fibre2fashion" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon&quot;,&quot;F2FSection&quot;:&quot;Footer&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;LinkedIn&quot;}"> <svg class="linkdin" width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M19.9187 20.6879H16.5875V15.2926C16.5875 14.0061 16.5625 12.3502 14.85 12.3502C13.1137 12.3502 12.8488 13.7503 12.8488 15.1983V20.6879H9.51625V9.59375H12.7162V11.105H12.76C13.2075 10.2344 14.295 9.31346 15.92 9.31346C19.295 9.31346 19.92 11.61 19.92 14.5977V20.6879H19.9187ZM5.75375 8.07604C5.49944 8.07638 5.24757 8.02485 5.01258 7.92441C4.77758 7.82396 4.56408 7.67658 4.38432 7.4907C4.20456 7.30483 4.06207 7.08412 3.96501 6.84122C3.86796 6.59833 3.81826 6.33803 3.81875 6.07525C3.819 5.67979 3.93272 5.29328 4.14555 4.96461C4.35838 4.63593 4.66074 4.37985 5.01441 4.22875C5.36808 4.07765 5.75717 4.03831 6.13248 4.11571C6.50778 4.19312 6.85244 4.38378 7.12288 4.6636C7.39332 4.94341 7.57739 5.29981 7.65181 5.68773C7.72623 6.07564 7.68766 6.47765 7.54098 6.84291C7.39429 7.20817 7.14608 7.52029 6.82774 7.73978C6.50939 7.95928 6.13521 8.0763 5.7525 8.07604H5.75375ZM7.42375 20.6879H4.0825V9.59375H7.425V20.6879H7.42375ZM21.5875 0.875H2.41125C1.49125 0.875 0.75 1.62417 0.75 2.55029V22.4497C0.75 23.3758 1.4925 24.125 2.41 24.125H21.5825C22.5 24.125 23.25 23.3758 23.25 22.4497V2.55029C23.25 1.62417 22.5 0.875 21.5825 0.875H21.5863H21.5875Z" fill="#51628D" /> </svg> </a> <a target="_blank" itemprop="sameAs" href="https://www.instagram.com/fibre2fashion/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon&quot;,&quot;F2FSection&quot;:&quot;Footer&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Instagram&quot;}"> <svg class="insta" width="26" height="27" viewBox="0 0 26 27" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M13 0.583252C16.3962 0.583252 16.82 0.596169 18.1525 0.660752C19.4837 0.725335 20.39 0.941044 21.1875 1.26138C22.0125 1.58946 22.7075 2.03379 23.4025 2.75067C24.0381 3.39637 24.5299 4.17743 24.8438 5.0395C25.1525 5.86229 25.3625 6.80004 25.425 8.17567C25.4838 9.55259 25.5 9.99046 25.5 13.4999C25.5 17.0094 25.4875 17.4473 25.425 18.8242C25.3625 20.1998 25.1525 21.1363 24.8438 21.9603C24.5308 22.8229 24.0389 23.6041 23.4025 24.2492C22.7775 24.9058 22.0216 25.4139 21.1875 25.7385C20.3912 26.0575 19.4837 26.2745 18.1525 26.3391C16.82 26.3998 16.3962 26.4166 13 26.4166C9.60375 26.4166 9.18 26.4037 7.8475 26.3391C6.51625 26.2745 5.61 26.0575 4.8125 25.7385C3.97791 25.4149 3.22191 24.9066 2.5975 24.2492C1.96176 23.6036 1.46991 22.8225 1.15625 21.9603C0.84625 21.1375 0.6375 20.1998 0.575 18.8242C0.51625 17.4473 0.5 17.0094 0.5 13.4999C0.5 9.99046 0.5125 9.55259 0.575 8.17567C0.6375 6.79875 0.84625 5.86359 1.15625 5.0395C1.46905 4.1769 1.961 3.39563 2.5975 2.75067C3.22209 2.09351 3.97804 1.58524 4.8125 1.26138C5.61 0.941044 6.515 0.725335 7.8475 0.660752C9.18 0.600044 9.60375 0.583252 13 0.583252ZM13 7.04159C11.3424 7.04159 9.75268 7.72202 8.58058 8.93319C7.40848 10.1444 6.75 11.7871 6.75 13.4999C6.75 15.2128 7.40848 16.8555 8.58058 18.0667C9.75268 19.2778 11.3424 19.9583 13 19.9583C14.6576 19.9583 16.2473 19.2778 17.4194 18.0667C18.5915 16.8555 19.25 15.2128 19.25 13.4999C19.25 11.7871 18.5915 10.1444 17.4194 8.93319C16.2473 7.72202 14.6576 7.04159 13 7.04159ZM21.125 6.71867C21.125 6.29045 20.9604 5.87978 20.6674 5.57699C20.3743 5.27419 19.9769 5.10409 19.5625 5.10409C19.1481 5.10409 18.7507 5.27419 18.4576 5.57699C18.1646 5.87978 18 6.29045 18 6.71867C18 7.14688 18.1646 7.55756 18.4576 7.86035C18.7507 8.16315 19.1481 8.33325 19.5625 8.33325C19.9769 8.33325 20.3743 8.16315 20.6674 7.86035C20.9604 7.55756 21.125 7.14688 21.125 6.71867ZM13 9.62492C13.9946 9.62492 14.9484 10.0332 15.6517 10.7599C16.3549 11.4866 16.75 12.4722 16.75 13.4999C16.75 14.5276 16.3549 15.5133 15.6517 16.24C14.9484 16.9667 13.9946 17.3749 13 17.3749C12.0054 17.3749 11.0516 16.9667 10.3483 16.24C9.64509 15.5133 9.25 14.5276 9.25 13.4999C9.25 12.4722 9.64509 11.4866 10.3483 10.7599C11.0516 10.0332 12.0054 9.62492 13 9.62492Z" fill="#51628D" /> </svg> </a> <a target="_blank" itemprop="sameAs" href="https://www.pinterest.com/fibre2fashion/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon&quot;,&quot;F2FSection&quot;:&quot;Footer&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Pinterest&quot;}"> <svg class="insta pinit" width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M2.00305 14.8024C2.00305 14.796 2.00305 14.7895 2.00305 14.7831C2.00915 14.732 2.01558 14.6813 2.02168 14.6302C2.02439 14.5605 2.02676 14.4911 2.02947 14.4215C2.0332 14.3954 2.03726 14.3694 2.04099 14.3433C2.04099 14.324 2.04099 14.3051 2.04099 14.2858C2.05996 14.1264 2.07893 13.9671 2.0979 13.8078C2.10434 13.7824 2.11111 13.7567 2.11755 13.7313C2.11755 13.712 2.11755 13.6931 2.11721 13.6738C2.12602 13.6105 2.13482 13.5473 2.14363 13.4843C2.17209 13.3389 2.19749 13.1924 2.229 13.0476C2.28625 12.7844 2.34722 12.5218 2.4065 12.259C2.41226 12.2336 2.41802 12.2079 2.42378 12.1825C2.43733 12.1314 2.45054 12.0807 2.46409 12.0296C2.47019 12.0113 2.47595 11.993 2.48205 11.9744C2.51118 11.8865 2.53963 11.7982 2.56944 11.7106C2.64973 11.4741 2.73069 11.2376 2.81098 11.0014C2.8313 10.9497 2.85129 10.8979 2.87161 10.8462C2.87737 10.8364 2.88449 10.8272 2.88923 10.8167C3.04709 10.4828 3.19682 10.1445 3.36416 9.81566C3.98645 8.59435 4.79133 7.50667 5.77304 6.54924C6.46883 5.87059 7.23103 5.27651 8.06775 4.78088C8.39566 4.58669 8.73509 4.4128 9.06944 4.22943C9.40007 4.08937 9.7273 3.94085 10.062 3.81094C10.8791 3.49326 11.7232 3.27268 12.5901 3.14277C12.894 3.0971 13.2012 3.07341 13.5071 3.04466C13.7049 3.02605 13.9038 3.01624 14.102 3.00237C14.1098 3.00237 14.1175 3.00203 14.125 3.00169C14.1491 3.00101 14.1728 3.00068 14.1968 3C14.4092 3 14.6216 3 14.834 3C14.8581 3.00068 14.8818 3.00101 14.9058 3.00169C14.9136 3.00169 14.9211 3.00203 14.9289 3.00237C15.1504 3.01556 15.374 3.01624 15.5935 3.04466C16.064 3.10555 16.5346 3.1722 17.002 3.25204C17.8167 3.39143 18.5979 3.64787 19.3587 3.96656C20.5461 4.46354 21.6291 5.13137 22.6091 5.96532C23.6914 6.8862 24.5915 7.95967 25.3093 9.18572C25.893 10.1827 26.333 11.2396 26.6118 12.3594C26.7266 12.8209 26.8052 13.2918 26.8869 13.7607C26.9245 13.9766 26.9329 14.1975 26.9492 14.4164C26.9661 14.6461 26.9759 14.8761 26.9892 15.1062C26.9925 15.1133 26.9959 15.1204 26.9993 15.1275C26.9993 15.3691 26.9997 15.6106 27 15.8522C26.9966 15.8593 26.9929 15.8664 26.9895 15.8738C26.9702 16.2078 26.9556 16.5423 26.9299 16.8756C26.916 17.0579 26.8835 17.2393 26.8591 17.4209C26.8489 17.4903 26.8391 17.5597 26.8289 17.629C26.8259 17.6425 26.8225 17.6561 26.8194 17.6696C26.7937 17.8097 26.7676 17.9501 26.7419 18.0901C26.7358 18.1155 26.7297 18.1412 26.7232 18.1666C26.6914 18.2941 26.6599 18.4217 26.628 18.5489L26.6226 18.6054L26.5894 18.7207C26.5823 18.7525 26.5755 18.7843 26.5684 18.8165C26.5115 18.9985 26.4549 19.1802 26.398 19.3622C26.3885 19.3964 26.3791 19.4302 26.3696 19.4644C26.3154 19.6115 26.2612 19.759 26.2066 19.9062C26.2002 19.9255 26.1938 19.9444 26.1873 19.9637C26.0149 20.3524 25.8428 20.7411 25.6704 21.1299C25.666 21.1373 25.6616 21.1448 25.6572 21.1522C25.4038 21.6512 25.1189 22.1316 24.8005 22.5917C24.4631 23.0789 24.0986 23.5444 23.6897 23.9741C23.4902 24.1838 23.2869 24.3895 23.0857 24.5972C23.0799 24.603 23.0738 24.6084 23.0681 24.6142C22.7713 24.8659 22.4817 25.1267 22.1755 25.3666C21.8669 25.6085 21.5498 25.8412 21.2215 26.0557C20.9543 26.2303 20.6701 26.3815 20.3845 26.526C19.9824 26.7296 19.5786 26.933 19.1633 27.1072C18.8286 27.2476 18.4759 27.3447 18.1314 27.4621C18.0647 27.4847 17.9997 27.5118 17.9336 27.5368C17.9207 27.5368 17.9082 27.5375 17.8953 27.5379C17.7229 27.5825 17.5508 27.6272 17.3784 27.6715C17.3147 27.6908 17.2507 27.7101 17.187 27.729C17.127 27.7409 17.0678 27.7537 17.0075 27.7639C16.9007 27.7818 16.7937 27.798 16.6867 27.8149C16.6555 27.8244 16.6247 27.8342 16.5935 27.8437C16.562 27.8427 16.5301 27.8369 16.4993 27.8413C16.3262 27.866 16.1535 27.8931 15.9807 27.9191C15.9553 27.9191 15.9295 27.9198 15.9041 27.9202C15.8787 27.9259 15.853 27.9317 15.8276 27.9377C15.8022 27.9445 15.7764 27.9516 15.751 27.9584C15.7256 27.9584 15.6999 27.9584 15.6745 27.9584C15.6491 27.9584 15.6233 27.9577 15.5979 27.9574C15.5467 27.9641 15.4959 27.9706 15.4448 27.9773H15.2917C15.228 27.9838 15.164 27.9902 15.1003 27.9966C15.043 27.9963 14.9861 27.9956 14.9289 27.9953C14.9214 27.9959 14.914 27.997 14.9068 27.9976C14.8764 27.9976 14.8459 27.998 14.8154 27.9983C14.6159 27.999 14.4163 27.9993 14.2171 28C14.1802 27.9993 14.1436 27.9986 14.1067 27.9976C14.0867 27.997 14.0667 27.9959 14.0464 27.9953C14.002 27.9956 13.9577 27.9959 13.9133 27.9963C13.8496 27.9963 13.7856 27.9966 13.7219 27.997C13.6582 27.997 13.5942 27.997 13.5305 27.997C13.5112 27.9905 13.4922 27.9841 13.4729 27.9777L13.3388 27.977C13.2842 27.9689 13.2293 27.9604 13.1748 27.9533C12.9424 27.9229 12.7097 27.8928 12.4773 27.8626C12.4268 27.8538 12.3764 27.8451 12.3259 27.8363C12.2171 27.8132 12.1084 27.7896 11.9997 27.7669C11.872 27.7405 11.7439 27.7148 11.6159 27.6891C11.5904 27.6827 11.5647 27.6766 11.5393 27.6701C11.4062 27.6373 11.273 27.6045 11.1399 27.5717C11.1138 27.5646 11.0881 27.5571 11.062 27.55C10.9654 27.5182 10.8686 27.4864 10.77 27.4536C10.8872 27.253 11 27.0676 11.105 26.8778C11.2964 26.5317 11.4956 26.189 11.6684 25.8334C11.8381 25.4836 11.9787 25.1199 12.1321 24.7623C12.1399 24.7373 12.148 24.7123 12.1558 24.6872C12.1816 24.6108 12.2073 24.5347 12.2331 24.4582C12.2392 24.4389 12.2456 24.42 12.2517 24.4007C12.2896 24.2667 12.3276 24.1327 12.3652 23.9988L12.3784 23.9402C12.3841 23.9331 12.3933 23.9267 12.3957 23.9182C12.4675 23.6388 12.5383 23.3594 12.6094 23.0799C12.6155 23.0481 12.6216 23.0163 12.6277 22.9842C12.6338 22.9774 12.6436 22.9713 12.6457 22.9635C12.706 22.7345 12.7656 22.5055 12.8242 22.2761C12.832 22.2453 12.8337 22.2128 12.8384 22.1813C12.8452 22.1621 12.8516 22.1431 12.8584 22.1238C12.893 22.0071 12.9302 21.8911 12.9614 21.7737C12.9824 21.6942 12.9942 21.6123 13.0105 21.5314C13.0122 21.5213 13.0142 21.5111 13.0159 21.501L13.0498 21.3785C13.0566 21.3592 13.0633 21.3403 13.0701 21.321C13.0843 21.2838 13.0986 21.2469 13.1192 21.1931C13.1535 21.2496 13.1758 21.2899 13.2012 21.3278C13.4285 21.6678 13.7317 21.9236 14.0854 22.1242C14.4045 22.3052 14.7398 22.4439 15.0996 22.5214C15.1121 22.5237 15.1243 22.5261 15.1369 22.5285C15.3621 22.5877 15.5908 22.6249 15.8242 22.6259C15.9472 22.6259 16.0705 22.6259 16.1934 22.6262C16.1995 22.6262 16.2049 22.6242 16.2097 22.6201C16.2415 22.6195 16.2734 22.6188 16.3056 22.6178C16.3926 22.6127 16.48 22.612 16.5661 22.6012C16.6839 22.5863 16.8012 22.564 16.9187 22.5447C16.9251 22.5454 16.9312 22.544 16.9373 22.5413C17.1673 22.4923 17.3974 22.4432 17.6274 22.3941C17.6335 22.3925 17.6396 22.3908 17.6457 22.3891C17.6799 22.3779 17.7138 22.3671 17.748 22.3559C17.7656 22.3505 17.7832 22.3451 17.8008 22.3397C18.1294 22.2433 18.4407 22.1062 18.7388 21.9384C18.7514 21.9313 18.7639 21.9242 18.7764 21.9171C19.1836 21.706 19.5539 21.4425 19.8906 21.1319C19.9031 21.1207 19.916 21.1099 19.9285 21.0987C20.0047 21.0267 20.081 20.9543 20.1572 20.8822L20.1623 20.8792C20.3184 20.7077 20.4746 20.5361 20.6304 20.3649L20.6311 20.3639C20.6419 20.3528 20.6541 20.3426 20.664 20.3304C21.0932 19.801 21.4383 19.2204 21.7124 18.5969C21.9414 18.0759 22.1179 17.538 22.2354 16.9811C22.2375 16.9696 22.2395 16.9581 22.2412 16.9466C22.2524 16.8945 22.2636 16.8421 22.2747 16.79C22.2764 16.7785 22.2778 16.767 22.2795 16.7555C22.292 16.678 22.3045 16.6002 22.3171 16.5227C22.3215 16.5166 22.3259 16.5102 22.3303 16.5038C22.333 16.4814 22.3357 16.4588 22.3388 16.4365C22.3415 16.4273 22.3442 16.4182 22.3472 16.409C22.3489 16.3894 22.3506 16.3701 22.3523 16.3505V16.293C22.3533 16.2808 22.3547 16.2686 22.3557 16.2561C22.3615 16.2494 22.372 16.2433 22.3726 16.2358C22.398 15.9807 22.4224 15.7257 22.4472 15.4706C22.4472 15.4323 22.4472 15.3941 22.4472 15.3559L22.4522 15.2622C22.4563 15.2547 22.46 15.2473 22.4641 15.2398C22.4641 15.2151 22.4641 15.1908 22.4644 15.1661C22.4651 15.1458 22.4658 15.1258 22.4665 15.1059C22.4658 15.068 22.4654 15.0301 22.4648 14.9925C22.4648 14.8528 22.4648 14.7134 22.4648 14.5737C22.461 14.5273 22.4573 14.4813 22.4533 14.435C22.4468 14.3413 22.4444 14.2469 22.4329 14.1535C22.4106 13.9725 22.3828 13.7919 22.357 13.6112C22.354 13.5872 22.3509 13.5635 22.3482 13.5395C22.2937 13.3152 22.2395 13.0909 22.185 12.8666C22.1799 12.848 22.1745 12.8294 22.1694 12.8111C22.0708 12.5364 21.9905 12.2539 21.8706 11.9886C21.1057 10.295 19.8449 9.09911 18.1555 8.34636C17.8554 8.21273 17.5373 8.11733 17.2239 8.01549C17.0169 7.94817 16.8035 7.90081 16.5928 7.84431C16.5823 7.84262 16.5718 7.84092 16.5617 7.83923C16.5146 7.82875 16.4675 7.81826 16.4207 7.80777C16.4082 7.80642 16.396 7.80473 16.3835 7.80337C16.3777 7.80134 16.372 7.79965 16.3662 7.79762C16.3462 7.79458 16.3259 7.79119 16.3059 7.78815C16.2866 7.78815 16.2676 7.78815 16.2483 7.78815C16.2425 7.78544 16.2365 7.78409 16.23 7.78443L15.8845 7.73063C15.872 7.72962 15.8594 7.72827 15.8469 7.72725C15.7764 7.71609 15.706 7.70458 15.6355 7.69342L15.5972 7.69207C15.5271 7.68598 15.457 7.67989 15.3865 7.6738C15.3675 7.67312 15.3482 7.67244 15.3289 7.67211C15.3035 7.67244 15.2778 7.67312 15.2524 7.67346C14.9143 7.66703 14.5759 7.6606 14.2378 7.65418L14.1037 7.67244C14.0654 7.67346 14.0271 7.67481 13.9888 7.67583C13.6436 7.71676 13.2984 7.75804 12.9533 7.79897C12.9282 7.80236 12.9035 7.8054 12.8784 7.80878C12.6545 7.85784 12.4306 7.9069 12.2066 7.95629C12.1873 7.96136 12.168 7.9661 12.1491 7.97117C11.8621 8.06184 11.5755 8.15251 11.2886 8.24318C11.0346 8.35178 10.7761 8.4509 10.5278 8.57067C10.0938 8.78008 9.68462 9.03111 9.3086 9.33356C9.30318 9.33424 9.29946 9.33661 9.29709 9.34134C9.28388 9.35014 9.27033 9.35792 9.25779 9.36739C8.73171 9.77743 8.27304 10.2524 7.88381 10.7934C7.58028 11.2153 7.31944 11.6618 7.12127 12.1436C7.11924 12.15 7.11721 12.1561 7.11518 12.1625C7.01999 12.4237 6.9248 12.6852 6.82961 12.9464C6.82385 12.9501 6.82283 12.9549 6.82622 12.9606C6.7771 13.147 6.72798 13.3334 6.67886 13.5199C6.67717 13.5314 6.67514 13.5425 6.67344 13.554C6.67073 13.5611 6.66802 13.5686 6.66531 13.5757C6.66192 13.5889 6.6582 13.6021 6.65481 13.6153C6.64973 13.6186 6.64126 13.6213 6.64058 13.6257C6.61348 13.7817 6.58299 13.937 6.56233 14.094C6.54539 14.2205 6.54031 14.3487 6.53015 14.4763C6.52608 14.5202 6.52202 14.5646 6.51762 14.6085L6.5061 14.6864C6.5061 14.7628 6.5061 14.8393 6.5061 14.9157C6.50542 14.935 6.50474 14.954 6.50406 14.9732C6.50135 15.0111 6.49865 15.0487 6.49593 15.0866C6.49627 15.158 6.49661 15.229 6.49729 15.3004L6.50339 15.2984C6.50474 15.3495 6.50576 15.4005 6.50711 15.4516C6.50711 15.5152 6.50644 15.5792 6.5061 15.6428C6.51016 15.6624 6.51423 15.682 6.51829 15.7016L6.52507 15.7767C6.53726 15.8843 6.5437 15.9926 6.56267 16.0992C6.58808 16.2416 6.62297 16.382 6.65346 16.5234C6.65583 16.5359 6.65854 16.5484 6.66091 16.5606C6.67717 16.6249 6.69309 16.6888 6.70935 16.7531L6.71714 16.79C6.8794 17.4287 7.13516 18.0275 7.48848 18.5841C7.7002 18.9176 7.9397 19.2299 8.24018 19.4907L8.24424 19.4863L8.23984 19.4904C8.31335 19.5554 8.38347 19.6247 8.46138 19.6839C8.67412 19.8456 8.89329 19.9982 9.15108 20.0811C9.29133 20.1264 9.37839 20.0825 9.43123 19.9475C9.44817 19.9038 9.45461 19.8565 9.46612 19.8108C9.46748 19.7922 9.46917 19.7732 9.47053 19.7546C9.52608 19.5439 9.58164 19.3331 9.63753 19.1227C9.63957 19.1108 9.6416 19.099 9.64363 19.0871C9.70054 18.8628 9.7605 18.6395 9.81267 18.4142C9.83841 18.3022 9.7981 18.2035 9.73035 18.1114C9.63618 17.9832 9.53286 17.8587 9.46172 17.718C9.31436 17.427 9.17446 17.131 9.05386 16.8286C8.98035 16.6438 8.94851 16.4425 8.8977 16.2487C8.896 16.2379 8.89397 16.2274 8.89228 16.2165L8.85772 16.0816C8.85806 16.0751 8.85671 16.0694 8.854 16.0636C8.84892 16.0315 8.84383 15.999 8.83841 15.9669L8.8357 15.93C8.83062 15.9043 8.8252 15.8786 8.82012 15.8532C8.81877 15.8468 8.81741 15.8407 8.81572 15.8343C8.81572 15.796 8.81538 15.7578 8.81504 15.7199C8.81402 15.707 8.81301 15.6939 8.81199 15.681C8.80793 15.6746 8.80352 15.6681 8.79946 15.6617C8.79844 15.6428 8.79709 15.6242 8.79607 15.6052C8.79539 15.548 8.79472 15.4909 8.79404 15.4337C8.79404 15.4273 8.79404 15.4205 8.7937 15.4141C8.7937 15.344 8.79336 15.2743 8.79302 15.2043C8.79302 15.1975 8.79336 15.1908 8.7937 15.184C8.7937 15.1651 8.7937 15.1461 8.7937 15.1272C8.79472 15.0636 8.79539 14.9996 8.79641 14.936V14.8596C8.79743 14.8345 8.79844 14.8095 8.7998 14.7845C8.8042 14.7777 8.8086 14.7713 8.81301 14.7645C8.81369 14.7517 8.81436 14.7388 8.81504 14.7256V14.6681C8.81673 14.6495 8.81775 14.6305 8.81911 14.6119C8.82351 14.6055 8.82791 14.5987 8.83232 14.5923C8.83435 14.548 8.83638 14.5037 8.83841 14.4593C8.84316 14.4526 8.84824 14.4458 8.85298 14.439C8.85434 14.4262 8.85569 14.4133 8.85671 14.4005C8.91565 14.1467 8.97459 13.8927 9.03354 13.6389L9.03286 13.6403C9.03591 13.6328 9.0393 13.6251 9.04234 13.6176C9.04539 13.6051 9.04844 13.5923 9.05149 13.5797C9.08367 13.4938 9.11484 13.4075 9.1477 13.3219C9.5166 12.3594 10.1057 11.562 10.9306 10.9395C11.2622 10.6892 11.6236 10.4909 11.9986 10.3147C12.0115 10.3086 12.0244 10.3025 12.0373 10.2964C12.4133 10.1807 12.7896 10.0653 13.1656 9.94963C13.1782 9.9476 13.1904 9.94557 13.2029 9.94354C13.2425 9.93813 13.2818 9.93373 13.3211 9.9273C13.4732 9.90227 13.6253 9.87689 13.7774 9.85152C13.8093 9.85051 13.8411 9.84915 13.873 9.84814C13.9488 9.84848 14.0251 9.84915 14.1009 9.84949C14.1467 9.84543 14.1924 9.84171 14.2381 9.83765C14.2503 9.8346 14.2625 9.8319 14.2747 9.82885C14.4021 9.83156 14.5295 9.83393 14.6568 9.83663C14.6765 9.83731 14.6965 9.83765 14.7161 9.83833C14.728 9.83866 14.7402 9.83934 14.752 9.83968C14.7595 9.84306 14.7666 9.84645 14.7741 9.84983C14.7801 9.85152 14.7859 9.85084 14.7917 9.8478C14.8428 9.8478 14.8936 9.84746 14.9448 9.84712C14.9766 9.85355 15.0085 9.86032 15.0407 9.86674C15.3198 9.90971 15.6009 9.94219 15.8774 9.99869C16.0867 10.0413 16.2896 10.1144 16.4956 10.1739C16.4993 10.1797 16.5041 10.181 16.5102 10.1777C16.518 10.1814 16.5254 10.1851 16.5332 10.1888C16.5457 10.1929 16.5579 10.1966 16.5705 10.2007C16.6192 10.223 16.6673 10.2463 16.7168 10.2673C17.6125 10.6425 18.3432 11.222 18.8665 12.0418C19.0532 12.3337 19.1887 12.6585 19.3476 12.9681L19.3689 13.0252L19.4963 13.4285C19.5007 13.4475 19.5047 13.4664 19.5091 13.4853C19.5122 13.4938 19.5149 13.5023 19.518 13.5107C19.5203 13.5209 19.5227 13.5314 19.5247 13.5415C19.5488 13.687 19.5732 13.8328 19.5972 13.9783C19.6155 14.0879 19.6338 14.1975 19.6521 14.3071C19.6541 14.3196 19.6565 14.3321 19.6585 14.3447C19.6646 14.4211 19.6707 14.4976 19.6768 14.574C19.6768 14.5926 19.6762 14.6113 19.6758 14.6299C19.6762 14.6437 19.6768 14.6576 19.6772 14.6715C19.6772 14.6891 19.6778 14.7067 19.6778 14.7239C19.6778 14.8724 19.6775 15.0206 19.6772 15.1691C19.6772 15.1867 19.6772 15.204 19.6772 15.2216C19.6772 15.2358 19.6768 15.2496 19.6765 15.2639C19.6765 15.2825 19.6765 15.3011 19.6768 15.3197C19.6768 15.3325 19.6768 15.3451 19.6768 15.3579C19.6629 15.478 19.6467 15.5981 19.6365 15.7185C19.6284 15.8143 19.6274 15.9107 19.6233 16.0068C19.6223 16.02 19.6213 16.0328 19.6203 16.046C19.6148 16.0843 19.6094 16.1225 19.6037 16.1607C19.5959 16.1861 19.5884 16.2118 19.5806 16.2372C19.5766 16.2744 19.5735 16.3116 19.5677 16.3482C19.5457 16.4896 19.523 16.631 19.5003 16.7724L19.4953 16.7768L19.4983 16.7829C19.4871 16.8302 19.4763 16.8779 19.4651 16.9253C19.4624 16.9375 19.46 16.9497 19.4573 16.9619C19.4526 16.9734 19.4461 16.9842 19.4434 16.996C19.3042 17.5563 19.1081 18.0945 18.8252 18.5993C18.5007 19.1778 18.0921 19.6856 17.5383 20.0608C17.3476 20.19 17.1365 20.2898 16.935 20.4032C16.9217 20.4072 16.9085 20.4116 16.8953 20.4157C16.8899 20.4184 16.8841 20.4211 16.8787 20.4238C16.8723 20.4255 16.8655 20.4275 16.8591 20.4292L16.706 20.485C16.687 20.4915 16.6677 20.4979 16.6487 20.5043C16.5271 20.5331 16.4062 20.5629 16.2842 20.5896C16.2276 20.6021 16.1697 20.6085 16.1128 20.6173C16.0874 20.6177 16.0617 20.6183 16.0362 20.6187C15.998 20.6251 15.9597 20.6315 15.9214 20.6376C15.8194 20.6376 15.7171 20.6376 15.6152 20.6376C15.5623 20.6298 15.5095 20.6217 15.4566 20.6139C14.9136 20.5331 14.4682 20.2865 14.146 19.8365C14.0664 19.7252 14.0044 19.601 13.9343 19.483L13.9353 19.4836C13.9224 19.4457 13.9096 19.4079 13.8963 19.3703C13.8875 19.3388 13.8791 19.3077 13.8703 19.2763C13.8574 19.1616 13.8445 19.0469 13.8316 18.9322C13.8316 18.8557 13.8316 18.7793 13.8316 18.7028C13.8316 18.671 13.8316 18.6392 13.8316 18.6071C13.8381 18.5881 13.8445 18.5688 13.8509 18.5496C13.872 18.4477 13.893 18.3456 13.914 18.2437C13.9146 18.2251 13.915 18.2065 13.9157 18.1882C13.94 18.1148 13.9685 18.0424 13.9885 17.968C14.0281 17.8185 14.0633 17.6676 14.1006 17.5174C14.1043 17.513 14.1057 17.5079 14.1043 17.5021C14.1436 17.3827 14.185 17.2636 14.2222 17.1435C14.268 16.995 14.3106 16.8455 14.3547 16.6963C14.3594 16.6767 14.3638 16.6574 14.3686 16.6377C14.3865 16.5934 14.4085 16.5505 14.4217 16.5048C14.4512 16.4033 14.4763 16.3004 14.503 16.1983C14.5071 16.1932 14.5095 16.1875 14.5098 16.181C14.5545 16.0281 14.5989 15.8752 14.6436 15.7219C14.6491 15.6976 14.6548 15.6736 14.6602 15.6492C14.6684 15.638 14.6812 15.6279 14.6843 15.6154C14.7334 15.4147 14.7812 15.2134 14.8293 15.0125C14.8289 14.9871 14.8283 14.9614 14.8279 14.936C14.8533 14.7831 14.8784 14.6302 14.9038 14.4773C14.9058 14.4522 14.9079 14.4269 14.9099 14.4018C14.9143 14.3697 14.9187 14.3376 14.9231 14.3054C14.9231 14.2418 14.9231 14.1779 14.9231 14.1143C14.9109 14.0314 14.8984 13.9485 14.8862 13.8656L14.8852 13.8274C14.8577 13.5432 14.7561 13.2851 14.5901 13.0557C14.2625 12.6034 13.8025 12.443 13.2608 12.4728C13.248 12.4728 13.2354 12.4728 13.2226 12.4728C13.165 12.4728 13.1077 12.4728 13.0501 12.4731C13.0373 12.4792 13.0247 12.485 13.0119 12.491C12.8343 12.5496 12.6426 12.582 12.482 12.6714C11.8415 13.0276 11.4739 13.599 11.2629 14.2841C11.2595 14.2976 11.2561 14.3112 11.2524 14.325C11.2398 14.3697 11.2273 14.4144 11.2148 14.459C11.2121 14.4712 11.2093 14.483 11.2063 14.4952C11.1775 14.6424 11.1484 14.7895 11.1196 14.937C11.1196 14.9563 11.1196 14.9753 11.1192 14.9946L11.1006 15.0903C11.1006 15.1221 11.0999 15.1539 11.0996 15.186C11.0935 15.2307 11.0874 15.2754 11.0813 15.32C11.085 15.4418 11.0891 15.5633 11.0928 15.6851C11.0949 15.7101 11.0972 15.7348 11.0993 15.7598C11.106 15.8617 11.1125 15.9638 11.1192 16.0657C11.1253 16.0975 11.1314 16.1293 11.1375 16.1614C11.143 16.1932 11.1487 16.225 11.1541 16.2571C11.1772 16.3789 11.2002 16.5011 11.2236 16.6229C11.227 16.6347 11.23 16.6465 11.2334 16.6587C11.2402 16.6905 11.247 16.7223 11.2534 16.7545C11.2598 16.7798 11.2663 16.8056 11.2727 16.8309C11.3215 16.969 11.3672 17.108 11.4211 17.2443C11.4472 17.3107 11.4472 17.3712 11.4309 17.4389C11.3753 17.6689 11.3245 17.9003 11.272 18.1311C11.2595 18.1757 11.247 18.2204 11.2344 18.265C11.2341 18.2779 11.2334 18.2904 11.2331 18.3033C11.227 18.3286 11.2205 18.3543 11.2144 18.3797C11.1389 18.6906 11.0623 19.0015 10.9885 19.3128C10.878 19.779 10.7696 20.2459 10.6602 20.7121C10.6538 20.7439 10.647 20.7757 10.6406 20.8078C10.6226 20.8765 10.603 20.9445 10.5871 21.0138C10.5403 21.2192 10.4953 21.4245 10.4495 21.6299C10.4431 21.6492 10.4367 21.6681 10.4302 21.6874C10.3984 21.8214 10.3665 21.955 10.3347 22.089C10.334 22.1018 10.333 22.1144 10.3323 22.1272C10.2883 22.3119 10.2442 22.497 10.1999 22.6817C10.1938 22.6946 10.1877 22.7071 10.1816 22.7199C10.1426 22.9047 10.1033 23.0897 10.0644 23.2744C10.0583 23.2998 10.0522 23.3255 10.0461 23.3509C9.9956 23.6185 9.94512 23.8861 9.89465 24.1541C9.89465 24.1794 9.89397 24.2051 9.89397 24.2305C9.88787 24.2623 9.88177 24.2941 9.87568 24.3263C9.87466 24.3645 9.87398 24.4027 9.87297 24.4409L9.85569 24.6703C9.85434 24.7464 9.85298 24.8226 9.85163 24.8983C9.84587 24.9186 9.83469 24.9393 9.83469 24.9596C9.83435 25.1693 9.8357 25.3794 9.83672 25.5892C9.83672 25.6078 9.83672 25.6264 9.83706 25.645C9.8435 25.6704 9.84993 25.6961 9.85637 25.7215V25.9126C9.85603 25.9255 9.85637 25.938 9.85637 25.9508V26.0083C9.86247 26.072 9.86856 26.1359 9.87466 26.1995C9.875 26.2377 9.87534 26.276 9.87568 26.3142C9.88211 26.3396 9.88855 26.3653 9.89499 26.3906C9.89499 26.4417 9.89499 26.4925 9.89499 26.5436C9.90752 26.6647 9.92039 26.7858 9.93293 26.9069C9.93869 26.9516 9.94478 26.9962 9.95054 27.0409C9.94851 27.0683 9.94614 27.0957 9.94309 27.1339C9.87635 27.1146 9.81707 27.0974 9.75779 27.0801C9.7439 27.0734 9.73001 27.0669 9.71612 27.0602C9.62161 27.0192 9.52744 26.9786 9.43293 26.9377L9.40041 26.9262C9.27066 26.8612 9.13957 26.7983 9.01118 26.7306C8.75373 26.5943 8.49695 26.457 8.24187 26.3162C8.0752 26.2242 7.91226 26.1251 7.74797 26.0293C7.73543 26.0212 7.72324 26.0134 7.7107 26.0053C7.4292 25.806 7.1477 25.6068 6.86653 25.4075C6.86518 25.4021 6.86145 25.3994 6.85603 25.3984C6.48882 25.0729 6.12195 24.7478 5.75474 24.4223C5.74864 24.4162 5.74255 24.4102 5.73645 24.4044L5.73543 24.4034C5.72934 24.3973 5.72324 24.3915 5.71714 24.3855L5.71612 24.3844C5.71003 24.3784 5.70427 24.3723 5.69817 24.3662C5.56369 24.2312 5.42412 24.1009 5.29607 23.9602C5.09519 23.7386 4.90244 23.5099 4.7063 23.2842C4.70528 23.2775 4.70122 23.2734 4.69478 23.2721C4.6897 23.2606 4.68631 23.2477 4.67886 23.2376C4.4336 22.8952 4.17649 22.5603 3.9458 22.2084C3.76253 21.929 3.60535 21.6319 3.44783 21.3366C3.30183 21.0625 3.1626 20.7841 3.03523 20.5009C2.91701 20.2381 2.81809 19.9664 2.7107 19.6988C2.70427 19.6859 2.69783 19.6734 2.6914 19.6606C2.66768 19.5899 2.64397 19.5195 2.62026 19.4488C2.61416 19.4295 2.60772 19.4106 2.60163 19.3913C2.58232 19.3196 2.56504 19.2472 2.54302 19.1761C2.5044 19.0503 2.46274 18.9254 2.42243 18.7999C2.41768 18.7681 2.41294 18.7363 2.4082 18.7042C2.38347 18.5973 2.36111 18.4897 2.33367 18.3834C2.3164 18.3171 2.29167 18.2532 2.26999 18.1879C2.27066 18.1815 2.271 18.175 2.27168 18.1686C2.2666 18.149 2.26186 18.1294 2.25678 18.1097L2.23137 17.9964C2.23442 17.9842 2.24221 17.971 2.23984 17.9599C2.21274 17.8252 2.18428 17.6909 2.15617 17.5566C2.14329 17.4737 2.13042 17.3908 2.11789 17.3079C2.11382 17.2944 2.10976 17.2809 2.10535 17.2673C2.1023 17.2427 2.09959 17.218 2.09654 17.1933C2.07114 16.9575 2.04573 16.7216 2.02033 16.4858C2.01423 16.4094 2.00813 16.3329 2.00169 16.2565C2.00102 16.1672 2.00034 16.0782 2 15.9889C2.00068 15.6702 2.00136 15.3515 2.00237 15.0328C2.00203 14.9563 2.00136 14.8799 2.00102 14.8034L2.00305 14.8024Z" fill="#51628D" /> </svg> </a> </div> </div> <style> .newsapp-nav .btn,a.acceptbtn{text-transform:uppercase;font-size:11px}body,body.full{margin-top:0}.f2ftopmenu .navbar,body.full .f2ftopmenu .navbar{top:0}body.body50{margin-top:50px}.f2ftopmenu .navbar.navbar50{top:50px}.newsapp-content{display:flex;flex-wrap:wrap}.newsapp-content>div{display:table-cell;vertical-align:middle;font-size:var(--smallfontsize);line-height:1.2;color:#fff}#WidgetFloaterPanels,.goog-tooltip,.goog-tooltip:hover,.skiptranslate,a.goog-logo-link{display:none!important}.phone-icon{color:#fff;font-size:35px!important}.newsapp-nav .close-newsapp-nav{position:absolute;right:4px;top:0;cursor:pointer;color:#b9b9b9;opacity:.5;box-shadow:none;font-size:27px;border:0;background-color:transparent}.newsapp-nav .close-newsapp-nav span{margin:0;font-size:25px}.newsapp-nav .form-group{float:left}.newsapp-nav .form-control{height:25px;border-top-right-radius:0;border-bottom-right-radius:0;border-color:#fff;line-height:25px;font-size:11px;width:177px}.newsapp-nav .btn{padding-top:0;padding-bottom:0;background-color:#fff;color:#333;border-color:transparent;margin-left:7px}a.acceptbtn{background-color:var(--white)!important;border:solid 2px var(--primerycolor);cursor:pointer;border-color:#262626;color:var(--primerycolor);padding:5px 14px!important;margin-top:6px;border-radius:5px}a:hover.acceptbtn{background-color:transparent!important;color:var(--white);border-color:var(--white)}.newsapp-nav{background:#2a2a2a;border:none;bottom:10px;right:78px;width:160px;position:fixed!important;padding:16px!important;border-radius:0!important;margin-bottom:0;z-index:9999} </style> <input type="hidden" name="HidHelloBarCName" id="HidHelloBarCName" /> <nav class="navbar navbar-default newsapp-nav alert" role="alert" id="HelloBarNewsBlock" style="display: none;"> <div class="newsapp-content"> <div class="cookiebar"> This website uses cookies to ensure you get the best experience on our website. </div> <a onclick="return CloseCookieBar();" class="acceptbtn">Accept</a> <button type="button" id="BtnHelloBarClose" onclick="return CloseHelloBar();" class=" close close-newsapp-nav" data-dismiss="alert" aria-label="Close"> <span class="" data-dismiss="alert" aria-label="Close">×</span> </button> </div> </nav> <script language="javascript"> function CloseHelloBar() { var gethellobarcookiecap = getCookie("HelloBarNewsAppsCookie"); if (gethellobarcookiecap == "") { setCookie('HelloBarNewsAppsCookie', '1', 1); } else if (gethellobarcookiecap == "1") { DeleteCookie('HelloBarNewsAppsCookie'); setCookie('HelloBarNewsAppsCookie', '2', 1); } else { $('#HelloBarNewsBlock').css({ 'display': 'none' }); } $('#HelloBarNewsBlock').css({ 'display': 'none' }); } /* Cookie function code start */ function CloseCookieBar() { var getCookiebarcookiecap = getCookie("Cookiebar"); if (getCookiebarcookiecap == "") { setCookie('Cookiebar', '1', 365); } else { $('#HelloBarNewsBlock').css({ 'display': 'none' }); } $('#HelloBarNewsBlock').css({ 'display': 'none' }); } /* Cookie function code end */ var IndianIp; $(document).ready(function () { cookiecap = getCookie("HelloBarNewsAppsCookie") if (cookiecap == "yes") { $('#HelloBarNewsBlock').css({ 'display': 'none' }); } else if (cookiecap == "2") { $('#HelloBarNewsBlock').css({ 'display': 'none' }); } else { $('#HelloBarNewsBlock').css({ 'display': 'block' }); } var countryname = document.getElementById($('*[id*=HidHelloBarCName]').attr('id')).value; countryname = IndianIp; //countryname.toLowerCase(); /* Cookie code start */ var getCookiebarcookiecap = getCookie("Cookiebar"); if (getCookiebarcookiecap == "1" || (getCookiebarcookiecap == "" && cookiecap == "2")) { $('#HelloBarNewsBlock').css({ 'display': 'none' }); } else { $('#HelloBarNewsBlock').css({ 'display': 'block' }); } }); function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";domain=fibre2fashion.com;path=/"; } function DeleteCookie(name) { var today = new Date(); var expire = new Date(); var path = "/"; var domain = ".fibre2fashion.com"; expire.setTime(today.getTime() + 3600000 * 24 * (-60)); if (ReadCookie(name) != '') { document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=" + expire.toGMTString(); } } function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1); if (c.indexOf(name) == 0) return c.substring(name.length, c.length); } return ""; } </script> <!-- Include the Mixpanel library --> <!-- Paste this right before your closing </head> tag --> <script type="text/javascript"> (function (f, b) { if (!b.__SV) { var e, g, i, h; window.mixpanel = b; b._i = []; b.init = function (e, f, c) { function g(a, d) { var b = d.split("."); 2 == b.length && ((a = a[b[0]]), (d = b[1])); a[d] = function () { a.push([d].concat(Array.prototype.slice.call(arguments, 0))); }; } var a = b; "undefined" !== typeof c ? (a = b[c] = []) : (c = "mixpanel"); a.people = a.people || []; a.toString = function (a) { var d = "mixpanel"; "mixpanel" !== c && (d += "." + c); a || (d += " (stub)"); return d; }; a.people.toString = function () { return a.toString(1) + ".people (stub)"; }; i = "disable time_event track track_pageview track_links track_forms track_with_groups add_group set_group remove_group register register_once alias unregister identify name_tag set_config reset opt_in_tracking opt_out_tracking has_opted_in_tracking has_opted_out_tracking clear_opt_in_out_tracking start_batch_senders people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user people.remove".split(" "); for (h = 0; h < i.length; h++) g(a, i[h]); var j = "set set_once union unset remove delete".split(" "); a.get_group = function () { function b(c) { d[c] = function () { call2_args = arguments; call2 = [c].concat(Array.prototype.slice.call(call2_args, 0)); a.push([e, call2]); }; } for (var d = {}, e = ["get_group"].concat(Array.prototype.slice.call(arguments, 0)), c = 0; c < j.length; c++) b(j[c]); return d; }; b._i.push([e, f, c]); }; b.__SV = 1.2; e = f.createElement("script"); e.type = "text/javascript"; e.async = !0; e.src = "undefined" !== typeof MIXPANEL_CUSTOM_LIB_URL ? MIXPANEL_CUSTOM_LIB_URL : "file:" === f.location.protocol && "//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//) ? "https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js" : "//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js"; g = f.getElementsByTagName("script")[0]; g.parentNode.insertBefore(e, g); } })(document, window.mixpanel || []); </script> <!-- Include the MixpanelWrapper script --> <script type="text/javascript" src="https://static.fibre2fashion.com/staticresources/js/f2f/F2FTrackEvents.min.js?var=3.2"></script> <script> jQuery(document).ready(function () { // Initialize Mixpanel using your project token //Neet to replace this tocken in config of project var mixpanelToken = "2742f3e9fea554656eb263e67f60fa0f"; MixpanelWrapper.init(mixpanelToken); //calling F2FPageview for the Track PageView. MixpanelWrapper.F2FPageview(); MixpanelWrapper.ClickEventTracking(); /*Advertisement Mixpanel impression Tracking Start*/ //MixpanelWrapper.TrackBannerImpression(); /*Advertisement Mixpanel impression Tracking End*/ /*Advertisement Mixpanel Click Tracking Start*/ MixpanelWrapper.TrackBannerClick(); /*Advertisement Mixpanel Click Tracking End*/ /*Initialize the scroll tracking*/ //MixpanelWrapper.trackScrollScreen(); }); </script> </div> <style> #wechat { position: fixed; display: inline-block; top: 337px; left: 0; opacity: 1; transition: 0.3s; border-radius: 50%; overflow: hidden; } #wechatQR { position: fixed; display: inline-block; top: 290px; padding: 10px 0; left: -165px; transition: .5s; z-index: 99999; } </style> <div id="dwcchiana" style="display: none;"> <div id="wechat"> <a href="Javascript:void(0);" onclick="WCclick()"> <img src="//www.fibre2fashion.com/_footer2015/wechat/images/wechat-icon.png" width="68" height="68" alt="" /></a> </div> <div id="wechatQR"> <a href="Javascript:void(0);" onclick="WCQR()"> <img src="//www.fibre2fashion.com/_footer2015/wechat/images/wechat-QR1.png" alt="" /> </a> </div> </div> <script> wecname = ReadCookie("Country") if(wecname == "China") { $("#dwcchiana").css("display","block"); //$("#dwcchiana").show(); }else { $("#dwcchiana").css("display","none"); //$("#dwcchiana").hide(); } function WCclick() { $("#wechatQR").css("left","0px"); $("#wechat").css("display","none"); } function WCQR() { $("#wechatQR").css("left","-165px"); $("#wechat").css("display","block"); } </script> <script type='text/javascript' src='https://platform-api.sharethis.com/js/sharethis.js#property=642685c7ecda000012fb0dd1&product=inline-share-buttons&source=platform' async='async'></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10