!function(i) {
    "use strict";
    "function" == typeof define && define.amd ? define(["jquery"], i) : "undefined" != typeof exports ? module.exports = i(require("jquery")) : i(jQuery)
}(function(i) {
    "use strict";
    var e = window.Slick || {};
    (e = function() {
        var e = 0;
        return function(t, o) {
            var s, n = this;
            n.defaults = {
                accessibility: !0,
                adaptiveHeight: !1,
                appendArrows: i(t),
                appendDots: i(t),
                arrows: !0,
                asNavFor: null,
                prevArrow: '<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',
                nextArrow: '<button class="slick-next" aria-label="Next" type="button">Next</button>',
                autoplay: !1,
                autoplaySpeed: 3e3,
                centerMode: !1,
                centerPadding: "50px",
                cssEase: "ease",
                customPaging: function(e, t) {
                    return i('<button type="button" />').text(t + 1)
                },
                dots: !1,
                dotsClass: "slick-dots",
                draggable: !0,
                easing: "linear",
                edgeFriction: .35,
                fade: !1,
                focusOnSelect: !1,
                focusOnChange: !1,
                infinite: !0,
                initialSlide: 0,
                lazyLoad: "ondemand",
                mobileFirst: !1,
                pauseOnHover: !0,
                pauseOnFocus: !0,
                pauseOnDotsHover: !1,
                respondTo: "window",
                responsive: null,
                rows: 1,
                rtl: !1,
                slide: "",
                slidesPerRow: 1,
                slidesToShow: 1,
                slidesToScroll: 1,
                speed: 500,
                swipe: !0,
                swipeToSlide: !1,
                touchMove: !0,
                touchThreshold: 5,
                useCSS: !0,
                useTransform: !0,
                variableWidth: !1,
                vertical: !1,
                verticalSwiping: !1,
                waitForAnimate: !0,
                zIndex: 1e3
            },
            n.initials = {
                animating: !1,
                dragging: !1,
                autoPlayTimer: null,
                currentDirection: 0,
                currentLeft: null,
                currentSlide: 0,
                direction: 1,
                $dots: null,
                listWidth: null,
                listHeight: null,
                loadIndex: 0,
                $nextArrow: null,
                $prevArrow: null,
                scrolling: !1,
                slideCount: null,
                slideWidth: null,
                $slideTrack: null,
                $slides: null,
                sliding: !1,
                slideOffset: 0,
                swipeLeft: null,
                swiping: !1,
                $list: null,
                touchObject: {},
                transformsEnabled: !1,
                unslicked: !1
            },
            i.extend(n, n.initials),
            n.activeBreakpoint = null,
            n.animType = null,
            n.animProp = null,
            n.breakpoints = [],
            n.breakpointSettings = [],
            n.cssTransitions = !1,
            n.focussed = !1,
            n.interrupted = !1,
            n.hidden = "hidden",
            n.paused = !0,
            n.positionProp = null,
            n.respondTo = null,
            n.rowCount = 1,
            n.shouldClick = !0,
            n.$slider = i(t),
            n.$slidesCache = null,
            n.transformType = null,
            n.transitionType = null,
            n.visibilityChange = "visibilitychange",
            n.windowWidth = 0,
            n.windowTimer = null,
            s = i(t).data("slick") || {},
            n.options = i.extend({}, n.defaults, o, s),
            n.currentSlide = n.options.initialSlide,
            n.originalSettings = n.options,
            void 0 !== document.mozHidden ? (n.hidden = "mozHidden",
            n.visibilityChange = "mozvisibilitychange") : void 0 !== document.webkitHidden && (n.hidden = "webkitHidden",
            n.visibilityChange = "webkitvisibilitychange"),
            n.autoPlay = i.proxy(n.autoPlay, n),
            n.autoPlayClear = i.proxy(n.autoPlayClear, n),
            n.autoPlayIterator = i.proxy(n.autoPlayIterator, n),
            n.changeSlide = i.proxy(n.changeSlide, n),
            n.clickHandler = i.proxy(n.clickHandler, n),
            n.selectHandler = i.proxy(n.selectHandler, n),
            n.setPosition = i.proxy(n.setPosition, n),
            n.swipeHandler = i.proxy(n.swipeHandler, n),
            n.dragHandler = i.proxy(n.dragHandler, n),
            n.keyHandler = i.proxy(n.keyHandler, n),
            n.instanceUid = e++,
            n.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/,
            n.registerBreakpoints(),
            n.init(!0)
        }
    }()).prototype.activateADA = function() {
        this.$slideTrack.find(".slick-active").attr({
            "aria-hidden": "false"
        }).find("a, input, button, select").attr({
            tabindex: "0"
        })
    }
    ,
    e.prototype.addSlide = e.prototype.slickAdd = function(e, t, o) {
        var s = this;
        if ("boolean" == typeof t)
            o = t,
            t = null;
        else if (t < 0 || t >= s.slideCount)
            return !1;
        s.unload(),
        "number" == typeof t ? 0 === t && 0 === s.$slides.length ? i(e).appendTo(s.$slideTrack) : o ? i(e).insertBefore(s.$slides.eq(t)) : i(e).insertAfter(s.$slides.eq(t)) : !0 === o ? i(e).prependTo(s.$slideTrack) : i(e).appendTo(s.$slideTrack),
        s.$slides = s.$slideTrack.children(this.options.slide),
        s.$slideTrack.children(this.options.slide).detach(),
        s.$slideTrack.append(s.$slides),
        s.$slides.each(function(e, t) {
            i(t).attr("data-slick-index", e)
        }),
        s.$slidesCache = s.$slides,
        s.reinit()
    }
    ,
    e.prototype.animateHeight = function() {
        var i = this;
        if (1 === i.options.slidesToShow && !0 === i.options.adaptiveHeight && !1 === i.options.vertical) {
            var e = i.$slides.eq(i.currentSlide).outerHeight(!0);
            i.$list.animate({
                height: e
            }, i.options.speed)
        }
    }
    ,
    e.prototype.animateSlide = function(e, t) {
        var o = {}
          , s = this;
        s.animateHeight(),
        !0 === s.options.rtl && !1 === s.options.vertical && (e = -e),
        !1 === s.transformsEnabled ? !1 === s.options.vertical ? s.$slideTrack.animate({
            left: e
        }, s.options.speed, s.options.easing, t) : s.$slideTrack.animate({
            top: e
        }, s.options.speed, s.options.easing, t) : !1 === s.cssTransitions ? (!0 === s.options.rtl && (s.currentLeft = -s.currentLeft),
        i({
            animStart: s.currentLeft
        }).animate({
            animStart: e
        }, {
            duration: s.options.speed,
            easing: s.options.easing,
            step: function(i) {
                i = Math.ceil(i),
                !1 === s.options.vertical ? (o[s.animType] = "translate(" + i + "px, 0px)",
                s.$slideTrack.css(o)) : (o[s.animType] = "translate(0px," + i + "px)",
                s.$slideTrack.css(o))
            },
            complete: function() {
                t && t.call()
            }
        })) : (s.applyTransition(),
        e = Math.ceil(e),
        !1 === s.options.vertical ? o[s.animType] = "translate3d(" + e + "px, 0px, 0px)" : o[s.animType] = "translate3d(0px," + e + "px, 0px)",
        s.$slideTrack.css(o),
        t && setTimeout(function() {
            s.disableTransition(),
            t.call()
        }, s.options.speed))
    }
    ,
    e.prototype.getNavTarget = function() {
        var e = this
          , t = e.options.asNavFor;
        return t && null !== t && (t = i(t).not(e.$slider)),
        t
    }
    ,
    e.prototype.asNavFor = function(e) {
        var t = this.getNavTarget();
        null !== t && "object" == typeof t && t.each(function() {
            var t = i(this).slick("getSlick");
            t.unslicked || t.slideHandler(e, !0)
        })
    }
    ,
    e.prototype.applyTransition = function(i) {
        var e = this
          , t = {};
        !1 === e.options.fade ? t[e.transitionType] = e.transformType + " " + e.options.speed + "ms " + e.options.cssEase : t[e.transitionType] = "opacity " + e.options.speed + "ms " + e.options.cssEase,
        !1 === e.options.fade ? e.$slideTrack.css(t) : e.$slides.eq(i).css(t)
    }
    ,
    e.prototype.autoPlay = function() {
        var i = this;
        i.autoPlayClear(),
        i.slideCount > i.options.slidesToShow && (i.autoPlayTimer = setInterval(i.autoPlayIterator, i.options.autoplaySpeed))
    }
    ,
    e.prototype.autoPlayClear = function() {
        var i = this;
        i.autoPlayTimer && clearInterval(i.autoPlayTimer)
    }
    ,
    e.prototype.autoPlayIterator = function() {
        var i = this
          , e = i.currentSlide + i.options.slidesToScroll;
        i.paused || i.interrupted || i.focussed || (!1 === i.options.infinite && (1 === i.direction && i.currentSlide + 1 === i.slideCount - 1 ? i.direction = 0 : 0 === i.direction && (e = i.currentSlide - i.options.slidesToScroll,
        i.currentSlide - 1 == 0 && (i.direction = 1))),
        i.slideHandler(e))
    }
    ,
    e.prototype.buildArrows = function() {
        var e = this;
        !0 === e.options.arrows && (e.$prevArrow = i(e.options.prevArrow).addClass("slick-arrow"),
        e.$nextArrow = i(e.options.nextArrow).addClass("slick-arrow"),
        e.slideCount > e.options.slidesToShow ? (e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),
        e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),
        e.htmlExpr.test(e.options.prevArrow) && e.$prevArrow.prependTo(e.options.appendArrows),
        e.htmlExpr.test(e.options.nextArrow) && e.$nextArrow.appendTo(e.options.appendArrows),
        !0 !== e.options.infinite && e.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true")) : e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({
            "aria-disabled": "true",
            tabindex: "-1"
        }))
    }
    ,
    e.prototype.buildDots = function() {
        var e, t, o = this;
        if (!0 === o.options.dots) {
            for (o.$slider.addClass("slick-dotted"),
            t = i("<ul />").addClass(o.options.dotsClass),
            e = 0; e <= o.getDotCount(); e += 1)
                t.append(i("<li />").append(o.options.customPaging.call(this, o, e)));
            o.$dots = t.appendTo(o.options.appendDots),
            o.$dots.find("li").first().addClass("slick-active")
        }
    }
    ,
    e.prototype.buildOut = function() {
        var e = this;
        e.$slides = e.$slider.children(e.options.slide + ":not(.slick-cloned)").addClass("slick-slide"),
        e.slideCount = e.$slides.length,
        e.$slides.each(function(e, t) {
            i(t).attr("data-slick-index", e).data("originalStyling", i(t).attr("style") || "")
        }),
        e.$slider.addClass("slick-slider"),
        e.$slideTrack = 0 === e.slideCount ? i('<div class="slick-track"/>').appendTo(e.$slider) : e.$slides.wrapAll('<div class="slick-track"/>').parent(),
        e.$list = e.$slideTrack.wrap('<div class="slick-list"/>').parent(),
        e.$slideTrack.css("opacity", 0),
        !0 !== e.options.centerMode && !0 !== e.options.swipeToSlide || (e.options.slidesToScroll = 1),
        i("img[data-lazy]", e.$slider).not("[src]").addClass("slick-loading"),
        e.setupInfinite(),
        e.buildArrows(),
        e.buildDots(),
        e.updateDots(),
        e.setSlideClasses("number" == typeof e.currentSlide ? e.currentSlide : 0),
        !0 === e.options.draggable && e.$list.addClass("draggable")
    }
    ,
    e.prototype.buildRows = function() {
        var i, e, t, o, s, n, r, l = this;
        if (o = document.createDocumentFragment(),
        n = l.$slider.children(),
        l.options.rows > 1) {
            for (r = l.options.slidesPerRow * l.options.rows,
            s = Math.ceil(n.length / r),
            i = 0; i < s; i++) {
                var d = document.createElement("div");
                for (e = 0; e < l.options.rows; e++) {
                    var a = document.createElement("div");
                    for (t = 0; t < l.options.slidesPerRow; t++) {
                        var c = i * r + (e * l.options.slidesPerRow + t);
                        n.get(c) && a.appendChild(n.get(c))
                    }
                    d.appendChild(a)
                }
                o.appendChild(d)
            }
            l.$slider.empty().append(o),
            l.$slider.children().children().children().css({
                width: 100 / l.options.slidesPerRow + "%",
                display: "inline-block"
            })
        }
    }
    ,
    e.prototype.checkResponsive = function(e, t) {
        var o, s, n, r = this, l = !1, d = r.$slider.width(), a = window.innerWidth || i(window).width();
        if ("window" === r.respondTo ? n = a : "slider" === r.respondTo ? n = d : "min" === r.respondTo && (n = Math.min(a, d)),
        r.options.responsive && r.options.responsive.length && null !== r.options.responsive) {
            s = null;
            for (o in r.breakpoints)
                r.breakpoints.hasOwnProperty(o) && (!1 === r.originalSettings.mobileFirst ? n < r.breakpoints[o] && (s = r.breakpoints[o]) : n > r.breakpoints[o] && (s = r.breakpoints[o]));
            null !== s ? null !== r.activeBreakpoint ? (s !== r.activeBreakpoint || t) && (r.activeBreakpoint = s,
            "unslick" === r.breakpointSettings[s] ? r.unslick(s) : (r.options = i.extend({}, r.originalSettings, r.breakpointSettings[s]),
            !0 === e && (r.currentSlide = r.options.initialSlide),
            r.refresh(e)),
            l = s) : (r.activeBreakpoint = s,
            "unslick" === r.breakpointSettings[s] ? r.unslick(s) : (r.options = i.extend({}, r.originalSettings, r.breakpointSettings[s]),
            !0 === e && (r.currentSlide = r.options.initialSlide),
            r.refresh(e)),
            l = s) : null !== r.activeBreakpoint && (r.activeBreakpoint = null,
            r.options = r.originalSettings,
            !0 === e && (r.currentSlide = r.options.initialSlide),
            r.refresh(e),
            l = s),
            e || !1 === l || r.$slider.trigger("breakpoint", [r, l])
        }
    }
    ,
    e.prototype.changeSlide = function(e, t) {
        var o, s, n, r = this, l = i(e.currentTarget);
        switch (l.is("a") && e.preventDefault(),
        l.is("li") || (l = l.closest("li")),
        n = r.slideCount % r.options.slidesToScroll != 0,
        o = n ? 0 : (r.slideCount - r.currentSlide) % r.options.slidesToScroll,
        e.data.message) {
        case "previous":
            s = 0 === o ? r.options.slidesToScroll : r.options.slidesToShow - o,
            r.slideCount > r.options.slidesToShow && r.slideHandler(r.currentSlide - s, !1, t);
            break;
        case "next":
            s = 0 === o ? r.options.slidesToScroll : o,
            r.slideCount > r.options.slidesToShow && r.slideHandler(r.currentSlide + s, !1, t);
            break;
        case "index":
            var d = 0 === e.data.index ? 0 : e.data.index || l.index() * r.options.slidesToScroll;
            r.slideHandler(r.checkNavigable(d), !1, t),
            l.children().trigger("focus");
            break;
        default:
            return
        }
    }
    ,
    e.prototype.checkNavigable = function(i) {
        var e, t;
        if (e = this.getNavigableIndexes(),
        t = 0,
        i > e[e.length - 1])
            i = e[e.length - 1];
        else
            for (var o in e) {
                if (i < e[o]) {
                    i = t;
                    break
                }
                t = e[o]
            }
        return i
    }
    ,
    e.prototype.cleanUpEvents = function() {
        var e = this;
        e.options.dots && null !== e.$dots && (i("li", e.$dots).off("click.slick", e.changeSlide).off("mouseenter.slick", i.proxy(e.interrupt, e, !0)).off("mouseleave.slick", i.proxy(e.interrupt, e, !1)),
        !0 === e.options.accessibility && e.$dots.off("keydown.slick", e.keyHandler)),
        e.$slider.off("focus.slick blur.slick"),
        !0 === e.options.arrows && e.slideCount > e.options.slidesToShow && (e.$prevArrow && e.$prevArrow.off("click.slick", e.changeSlide),
        e.$nextArrow && e.$nextArrow.off("click.slick", e.changeSlide),
        !0 === e.options.accessibility && (e.$prevArrow && e.$prevArrow.off("keydown.slick", e.keyHandler),
        e.$nextArrow && e.$nextArrow.off("keydown.slick", e.keyHandler))),
        e.$list.off("touchstart.slick mousedown.slick", e.swipeHandler),
        e.$list.off("touchmove.slick mousemove.slick", e.swipeHandler),
        e.$list.off("touchend.slick mouseup.slick", e.swipeHandler),
        e.$list.off("touchcancel.slick mouseleave.slick", e.swipeHandler),
        e.$list.off("click.slick", e.clickHandler),
        i(document).off(e.visibilityChange, e.visibility),
        e.cleanUpSlideEvents(),
        !0 === e.options.accessibility && e.$list.off("keydown.slick", e.keyHandler),
        !0 === e.options.focusOnSelect && i(e.$slideTrack).children().off("click.slick", e.selectHandler),
        i(window).off("orientationchange.slick.slick-" + e.instanceUid, e.orientationChange),
        i(window).off("resize.slick.slick-" + e.instanceUid, e.resize),
        i("[draggable!=true]", e.$slideTrack).off("dragstart", e.preventDefault),
        i(window).off("load.slick.slick-" + e.instanceUid, e.setPosition)
    }
    ,
    e.prototype.cleanUpSlideEvents = function() {
        var e = this;
        e.$list.off("mouseenter.slick", i.proxy(e.interrupt, e, !0)),
        e.$list.off("mouseleave.slick", i.proxy(e.interrupt, e, !1))
    }
    ,
    e.prototype.cleanUpRows = function() {
        var i, e = this;
        e.options.rows > 1 && ((i = e.$slides.children().children()).removeAttr("style"),
        e.$slider.empty().append(i))
    }
    ,
    e.prototype.clickHandler = function(i) {
        !1 === this.shouldClick && (i.stopImmediatePropagation(),
        i.stopPropagation(),
        i.preventDefault())
    }
    ,
    e.prototype.destroy = function(e) {
        var t = this;
        t.autoPlayClear(),
        t.touchObject = {},
        t.cleanUpEvents(),
        i(".slick-cloned", t.$slider).detach(),
        t.$dots && t.$dots.remove(),
        t.$prevArrow && t.$prevArrow.length && (t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""),
        t.htmlExpr.test(t.options.prevArrow) && t.$prevArrow.remove()),
        t.$nextArrow && t.$nextArrow.length && (t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""),
        t.htmlExpr.test(t.options.nextArrow) && t.$nextArrow.remove()),
        t.$slides && (t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function() {
            i(this).attr("style", i(this).data("originalStyling"))
        }),
        t.$slideTrack.children(this.options.slide).detach(),
        t.$slideTrack.detach(),
        t.$list.detach(),
        t.$slider.append(t.$slides)),
        t.cleanUpRows(),
        t.$slider.removeClass("slick-slider"),
        t.$slider.removeClass("slick-initialized"),
        t.$slider.removeClass("slick-dotted"),
        t.unslicked = !0,
        e || t.$slider.trigger("destroy", [t])
    }
    ,
    e.prototype.disableTransition = function(i) {
        var e = this
          , t = {};
        t[e.transitionType] = "",
        !1 === e.options.fade ? e.$slideTrack.css(t) : e.$slides.eq(i).css(t)
    }
    ,
    e.prototype.fadeSlide = function(i, e) {
        var t = this;
        !1 === t.cssTransitions ? (t.$slides.eq(i).css({
            zIndex: t.options.zIndex
        }),
        t.$slides.eq(i).animate({
            opacity: 1
        }, t.options.speed, t.options.easing, e)) : (t.applyTransition(i),
        t.$slides.eq(i).css({
            opacity: 1,
            zIndex: t.options.zIndex
        }),
        e && setTimeout(function() {
            t.disableTransition(i),
            e.call()
        }, t.options.speed))
    }
    ,
    e.prototype.fadeSlideOut = function(i) {
        var e = this;
        !1 === e.cssTransitions ? e.$slides.eq(i).animate({
            opacity: 0,
            zIndex: e.options.zIndex - 2
        }, e.options.speed, e.options.easing) : (e.applyTransition(i),
        e.$slides.eq(i).css({
            opacity: 0,
            zIndex: e.options.zIndex - 2
        }))
    }
    ,
    e.prototype.filterSlides = e.prototype.slickFilter = function(i) {
        var e = this;
        null !== i && (e.$slidesCache = e.$slides,
        e.unload(),
        e.$slideTrack.children(this.options.slide).detach(),
        e.$slidesCache.filter(i).appendTo(e.$slideTrack),
        e.reinit())
    }
    ,
    e.prototype.focusHandler = function() {
        var e = this;
        e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick", "*", function(t) {
            t.stopImmediatePropagation();
            var o = i(this);
            setTimeout(function() {
                e.options.pauseOnFocus && (e.focussed = o.is(":focus"),
                e.autoPlay())
            }, 0)
        })
    }
    ,
    e.prototype.getCurrent = e.prototype.slickCurrentSlide = function() {
        return this.currentSlide
    }
    ,
    e.prototype.getDotCount = function() {
        var i = this
          , e = 0
          , t = 0
          , o = 0;
        if (!0 === i.options.infinite)
            if (i.slideCount <= i.options.slidesToShow)
                ++o;
            else
                for (; e < i.slideCount; )
                    ++o,
                    e = t + i.options.slidesToScroll,
                    t += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow;
        else if (!0 === i.options.centerMode)
            o = i.slideCount;
        else if (i.options.asNavFor)
            for (; e < i.slideCount; )
                ++o,
                e = t + i.options.slidesToScroll,
                t += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow;
        else
            o = 1 + Math.ceil((i.slideCount - i.options.slidesToShow) / i.options.slidesToScroll);
        return o - 1
    }
    ,
    e.prototype.getLeft = function(i) {
        var e, t, o, s, n = this, r = 0;
        return n.slideOffset = 0,
        t = n.$slides.first().outerHeight(!0),
        !0 === n.options.infinite ? (n.slideCount > n.options.slidesToShow && (n.slideOffset = n.slideWidth * n.options.slidesToShow * -1,
        s = -1,
        !0 === n.options.vertical && !0 === n.options.centerMode && (2 === n.options.slidesToShow ? s = -1.5 : 1 === n.options.slidesToShow && (s = -2)),
        r = t * n.options.slidesToShow * s),
        n.slideCount % n.options.slidesToScroll != 0 && i + n.options.slidesToScroll > n.slideCount && n.slideCount > n.options.slidesToShow && (i > n.slideCount ? (n.slideOffset = (n.options.slidesToShow - (i - n.slideCount)) * n.slideWidth * -1,
        r = (n.options.slidesToShow - (i - n.slideCount)) * t * -1) : (n.slideOffset = n.slideCount % n.options.slidesToScroll * n.slideWidth * -1,
        r = n.slideCount % n.options.slidesToScroll * t * -1))) : i + n.options.slidesToShow > n.slideCount && (n.slideOffset = (i + n.options.slidesToShow - n.slideCount) * n.slideWidth,
        r = (i + n.options.slidesToShow - n.slideCount) * t),
        n.slideCount <= n.options.slidesToShow && (n.slideOffset = 0,
        r = 0),
        !0 === n.options.centerMode && n.slideCount <= n.options.slidesToShow ? n.slideOffset = n.slideWidth * Math.floor(n.options.slidesToShow) / 2 - n.slideWidth * n.slideCount / 2 : !0 === n.options.centerMode && !0 === n.options.infinite ? n.slideOffset += n.slideWidth * Math.floor(n.options.slidesToShow / 2) - n.slideWidth : !0 === n.options.centerMode && (n.slideOffset = 0,
        n.slideOffset += n.slideWidth * Math.floor(n.options.slidesToShow / 2)),
        e = !1 === n.options.vertical ? i * n.slideWidth * -1 + n.slideOffset : i * t * -1 + r,
        !0 === n.options.variableWidth && (o = n.slideCount <= n.options.slidesToShow || !1 === n.options.infinite ? n.$slideTrack.children(".slick-slide").eq(i) : n.$slideTrack.children(".slick-slide").eq(i + n.options.slidesToShow),
        e = !0 === n.options.rtl ? o[0] ? -1 * (n.$slideTrack.width() - o[0].offsetLeft - o.width()) : 0 : o[0] ? -1 * o[0].offsetLeft : 0,
        !0 === n.options.centerMode && (o = n.slideCount <= n.options.slidesToShow || !1 === n.options.infinite ? n.$slideTrack.children(".slick-slide").eq(i) : n.$slideTrack.children(".slick-slide").eq(i + n.options.slidesToShow + 1),
        e = !0 === n.options.rtl ? o[0] ? -1 * (n.$slideTrack.width() - o[0].offsetLeft - o.width()) : 0 : o[0] ? -1 * o[0].offsetLeft : 0,
        e += (n.$list.width() - o.outerWidth()) / 2)),
        e
    }
    ,
    e.prototype.getOption = e.prototype.slickGetOption = function(i) {
        return this.options[i]
    }
    ,
    e.prototype.getNavigableIndexes = function() {
        var i, e = this, t = 0, o = 0, s = [];
        for (!1 === e.options.infinite ? i = e.slideCount : (t = -1 * e.options.slidesToScroll,
        o = -1 * e.options.slidesToScroll,
        i = 2 * e.slideCount); t < i; )
            s.push(t),
            t = o + e.options.slidesToScroll,
            o += e.options.slidesToScroll <= e.options.slidesToShow ? e.options.slidesToScroll : e.options.slidesToShow;
        return s
    }
    ,
    e.prototype.getSlick = function() {
        return this
    }
    ,
    e.prototype.getSlideCount = function() {
        var e, t, o = this;
        return t = !0 === o.options.centerMode ? o.slideWidth * Math.floor(o.options.slidesToShow / 2) : 0,
        !0 === o.options.swipeToSlide ? (o.$slideTrack.find(".slick-slide").each(function(s, n) {
            if (n.offsetLeft - t + i(n).outerWidth() / 2 > -1 * o.swipeLeft)
                return e = n,
                !1
        }),
        Math.abs(i(e).attr("data-slick-index") - o.currentSlide) || 1) : o.options.slidesToScroll
    }
    ,
    e.prototype.goTo = e.prototype.slickGoTo = function(i, e) {
        this.changeSlide({
            data: {
                message: "index",
                index: parseInt(i)
            }
        }, e)
    }
    ,
    e.prototype.init = function(e) {
        var t = this;
        i(t.$slider).hasClass("slick-initialized") || (i(t.$slider).addClass("slick-initialized"),
        t.buildRows(),
        t.buildOut(),
        t.setProps(),
        t.startLoad(),
        t.loadSlider(),
        t.initializeEvents(),
        t.updateArrows(),
        t.updateDots(),
        t.checkResponsive(!0),
        t.focusHandler()),
        e && t.$slider.trigger("init", [t]),
        !0 === t.options.accessibility && t.initADA(),
        t.options.autoplay && (t.paused = !1,
        t.autoPlay())
    }
    ,
    e.prototype.initADA = function() {
        var e = this
          , t = Math.ceil(e.slideCount / e.options.slidesToShow)
          , o = e.getNavigableIndexes().filter(function(i) {
            return i >= 0 && i < e.slideCount
        });
        e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({
            "aria-hidden": "true",
            tabindex: "-1"
        }).find("a, input, button, select").attr({
            tabindex: "-1"
        }),
        null !== e.$dots && (e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function(t) {
            var s = o.indexOf(t);
            i(this).attr({
                role: "tabpanel",
                id: "slick-slide" + e.instanceUid + t,
                tabindex: -1
            }),
            -1 !== s && i(this).attr({
                "aria-describedby": "slick-slide-control" + e.instanceUid + s
            })
        }),
        e.$dots.attr("role", "tablist").find("li").each(function(s) {
            var n = o[s];
            i(this).attr({
                role: "presentation"
            }),
            i(this).find("button").first().attr({
                role: "tab",
                id: "slick-slide-control" + e.instanceUid + s,
                "aria-controls": "slick-slide" + e.instanceUid + n,
                "aria-label": s + 1 + " of " + t,
                "aria-selected": null,
                tabindex: "-1"
            })
        }).eq(e.currentSlide).find("button").attr({
            "aria-selected": "true",
            tabindex: "0"
        }).end());
        for (var s = e.currentSlide, n = s + e.options.slidesToShow; s < n; s++)
            e.$slides.eq(s).attr("tabindex", 0);
        e.activateADA()
    }
    ,
    e.prototype.initArrowEvents = function() {
        var i = this;
        !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.off("click.slick").on("click.slick", {
            message: "previous"
        }, i.changeSlide),
        i.$nextArrow.off("click.slick").on("click.slick", {
            message: "next"
        }, i.changeSlide),
        !0 === i.options.accessibility && (i.$prevArrow.on("keydown.slick", i.keyHandler),
        i.$nextArrow.on("keydown.slick", i.keyHandler)))
    }
    ,
    e.prototype.initDotEvents = function() {
        var e = this;
        !0 === e.options.dots && (i("li", e.$dots).on("click.slick", {
            message: "index"
        }, e.changeSlide),
        !0 === e.options.accessibility && e.$dots.on("keydown.slick", e.keyHandler)),
        !0 === e.options.dots && !0 === e.options.pauseOnDotsHover && i("li", e.$dots).on("mouseenter.slick", i.proxy(e.interrupt, e, !0)).on("mouseleave.slick", i.proxy(e.interrupt, e, !1))
    }
    ,
    e.prototype.initSlideEvents = function() {
        var e = this;
        e.options.pauseOnHover && (e.$list.on("mouseenter.slick", i.proxy(e.interrupt, e, !0)),
        e.$list.on("mouseleave.slick", i.proxy(e.interrupt, e, !1)))
    }
    ,
    e.prototype.initializeEvents = function() {
        var e = this;
        e.initArrowEvents(),
        e.initDotEvents(),
        e.initSlideEvents(),
        e.$list.on("touchstart.slick mousedown.slick", {
            action: "start"
        }, e.swipeHandler),
        e.$list.on("touchmove.slick mousemove.slick", {
            action: "move"
        }, e.swipeHandler),
        e.$list.on("touchend.slick mouseup.slick", {
            action: "end"
        }, e.swipeHandler),
        e.$list.on("touchcancel.slick mouseleave.slick", {
            action: "end"
        }, e.swipeHandler),
        e.$list.on("click.slick", e.clickHandler),
        i(document).on(e.visibilityChange, i.proxy(e.visibility, e)),
        !0 === e.options.accessibility && e.$list.on("keydown.slick", e.keyHandler),
        !0 === e.options.focusOnSelect && i(e.$slideTrack).children().on("click.slick", e.selectHandler),
        i(window).on("orientationchange.slick.slick-" + e.instanceUid, i.proxy(e.orientationChange, e)),
        i(window).on("resize.slick.slick-" + e.instanceUid, i.proxy(e.resize, e)),
        i("[draggable!=true]", e.$slideTrack).on("dragstart", e.preventDefault),
        i(window).on("load.slick.slick-" + e.instanceUid, e.setPosition),
        i(e.setPosition)
    }
    ,
    e.prototype.initUI = function() {
        var i = this;
        !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.show(),
        i.$nextArrow.show()),
        !0 === i.options.dots && i.slideCount > i.options.slidesToShow && i.$dots.show()
    }
    ,
    e.prototype.keyHandler = function(i) {
        var e = this;
        i.target.tagName.match("TEXTAREA|INPUT|SELECT") || (37 === i.keyCode && !0 === e.options.accessibility ? e.changeSlide({
            data: {
                message: !0 === e.options.rtl ? "next" : "previous"
            }
        }) : 39 === i.keyCode && !0 === e.options.accessibility && e.changeSlide({
            data: {
                message: !0 === e.options.rtl ? "previous" : "next"
            }
        }))
    }
    ,
    e.prototype.lazyLoad = function() {
        function e(e) {
            i("img[data-lazy]", e).each(function() {
                var e = i(this)
                  , t = i(this).attr("data-lazy")
                  , o = i(this).attr("data-srcset")
                  , s = i(this).attr("data-sizes") || n.$slider.attr("data-sizes")
                  , r = document.createElement("img");
                r.onload = function() {
                    e.animate({
                        opacity: 0
                    }, 100, function() {
                        o && (e.attr("srcset", o),
                        s && e.attr("sizes", s)),
                        e.attr("src", t).animate({
                            opacity: 1
                        }, 200, function() {
                            e.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")
                        }),
                        n.$slider.trigger("lazyLoaded", [n, e, t])
                    })
                }
                ,
                r.onerror = function() {
                    e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),
                    n.$slider.trigger("lazyLoadError", [n, e, t])
                }
                ,
                r.src = t
            })
        }
        var t, o, s, n = this;
        if (!0 === n.options.centerMode ? !0 === n.options.infinite ? s = (o = n.currentSlide + (n.options.slidesToShow / 2 + 1)) + n.options.slidesToShow + 2 : (o = Math.max(0, n.currentSlide - (n.options.slidesToShow / 2 + 1)),
        s = n.options.slidesToShow / 2 + 1 + 2 + n.currentSlide) : (o = n.options.infinite ? n.options.slidesToShow + n.currentSlide : n.currentSlide,
        s = Math.ceil(o + n.options.slidesToShow),
        !0 === n.options.fade && (o > 0 && o--,
        s <= n.slideCount && s++)),
        t = n.$slider.find(".slick-slide").slice(o, s),
        "anticipated" === n.options.lazyLoad)
            for (var r = o - 1, l = s, d = n.$slider.find(".slick-slide"), a = 0; a < n.options.slidesToScroll; a++)
                r < 0 && (r = n.slideCount - 1),
                t = (t = t.add(d.eq(r))).add(d.eq(l)),
                r--,
                l++;
        e(t),
        n.slideCount <= n.options.slidesToShow ? e(n.$slider.find(".slick-slide")) : n.currentSlide >= n.slideCount - n.options.slidesToShow ? e(n.$slider.find(".slick-cloned").slice(0, n.options.slidesToShow)) : 0 === n.currentSlide && e(n.$slider.find(".slick-cloned").slice(-1 * n.options.slidesToShow))
    }
    ,
    e.prototype.loadSlider = function() {
        var i = this;
        i.setPosition(),
        i.$slideTrack.css({
            opacity: 1
        }),
        i.$slider.removeClass("slick-loading"),
        i.initUI(),
        "progressive" === i.options.lazyLoad && i.progressiveLazyLoad()
    }
    ,
    e.prototype.next = e.prototype.slickNext = function() {
        this.changeSlide({
            data: {
                message: "next"
            }
        })
    }
    ,
    e.prototype.orientationChange = function() {
        var i = this;
        i.checkResponsive(),
        i.setPosition()
    }
    ,
    e.prototype.pause = e.prototype.slickPause = function() {
        var i = this;
        i.autoPlayClear(),
        i.paused = !0
    }
    ,
    e.prototype.play = e.prototype.slickPlay = function() {
        var i = this;
        i.autoPlay(),
        i.options.autoplay = !0,
        i.paused = !1,
        i.focussed = !1,
        i.interrupted = !1
    }
    ,
    e.prototype.postSlide = function(e) {
        var t = this;
        t.unslicked || (t.$slider.trigger("afterChange", [t, e]),
        t.animating = !1,
        t.slideCount > t.options.slidesToShow && t.setPosition(),
        t.swipeLeft = null,
        t.options.autoplay && t.autoPlay(),
        !0 === t.options.accessibility && (t.initADA(),
        t.options.focusOnChange && i(t.$slides.get(t.currentSlide)).attr("tabindex", 0).focus()))
    }
    ,
    e.prototype.prev = e.prototype.slickPrev = function() {
        this.changeSlide({
            data: {
                message: "previous"
            }
        })
    }
    ,
    e.prototype.preventDefault = function(i) {
        i.preventDefault()
    }
    ,
    e.prototype.progressiveLazyLoad = function(e) {
        e = e || 1;
        var t, o, s, n, r, l = this, d = i("img[data-lazy]", l.$slider);
        d.length ? (t = d.first(),
        o = t.attr("data-lazy"),
        s = t.attr("data-srcset"),
        n = t.attr("data-sizes") || l.$slider.attr("data-sizes"),
        (r = document.createElement("img")).onload = function() {
            s && (t.attr("srcset", s),
            n && t.attr("sizes", n)),
            t.attr("src", o).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"),
            !0 === l.options.adaptiveHeight && l.setPosition(),
            l.$slider.trigger("lazyLoaded", [l, t, o]),
            l.progressiveLazyLoad()
        }
        ,
        r.onerror = function() {
            e < 3 ? setTimeout(function() {
                l.progressiveLazyLoad(e + 1)
            }, 500) : (t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),
            l.$slider.trigger("lazyLoadError", [l, t, o]),
            l.progressiveLazyLoad())
        }
        ,
        r.src = o) : l.$slider.trigger("allImagesLoaded", [l])
    }
    ,
    e.prototype.refresh = function(e) {
        var t, o, s = this;
        o = s.slideCount - s.options.slidesToShow,
        !s.options.infinite && s.currentSlide > o && (s.currentSlide = o),
        s.slideCount <= s.options.slidesToShow && (s.currentSlide = 0),
        t = s.currentSlide,
        s.destroy(!0),
        i.extend(s, s.initials, {
            currentSlide: t
        }),
        s.init(),
        e || s.changeSlide({
            data: {
                message: "index",
                index: t
            }
        }, !1)
    }
    ,
    e.prototype.registerBreakpoints = function() {
        var e, t, o, s = this, n = s.options.responsive || null;
        if ("array" === i.type(n) && n.length) {
            s.respondTo = s.options.respondTo || "window";
            for (e in n)
                if (o = s.breakpoints.length - 1,
                n.hasOwnProperty(e)) {
                    for (t = n[e].breakpoint; o >= 0; )
                        s.breakpoints[o] && s.breakpoints[o] === t && s.breakpoints.splice(o, 1),
                        o--;
                    s.breakpoints.push(t),
                    s.breakpointSettings[t] = n[e].settings
                }
            s.breakpoints.sort(function(i, e) {
                return s.options.mobileFirst ? i - e : e - i
            })
        }
    }
    ,
    e.prototype.reinit = function() {
        var e = this;
        e.$slides = e.$slideTrack.children(e.options.slide).addClass("slick-slide"),
        e.slideCount = e.$slides.length,
        e.currentSlide >= e.slideCount && 0 !== e.currentSlide && (e.currentSlide = e.currentSlide - e.options.slidesToScroll),
        e.slideCount <= e.options.slidesToShow && (e.currentSlide = 0),
        e.registerBreakpoints(),
        e.setProps(),
        e.setupInfinite(),
        e.buildArrows(),
        e.updateArrows(),
        e.initArrowEvents(),
        e.buildDots(),
        e.updateDots(),
        e.initDotEvents(),
        e.cleanUpSlideEvents(),
        e.initSlideEvents(),
        e.checkResponsive(!1, !0),
        !0 === e.options.focusOnSelect && i(e.$slideTrack).children().on("click.slick", e.selectHandler),
        e.setSlideClasses("number" == typeof e.currentSlide ? e.currentSlide : 0),
        e.setPosition(),
        e.focusHandler(),
        e.paused = !e.options.autoplay,
        e.autoPlay(),
        e.$slider.trigger("reInit", [e])
    }
    ,
    e.prototype.resize = function() {
        var e = this;
        i(window).width() !== e.windowWidth && (clearTimeout(e.windowDelay),
        e.windowDelay = window.setTimeout(function() {
            e.windowWidth = i(window).width(),
            e.checkResponsive(),
            e.unslicked || e.setPosition()
        }, 50))
    }
    ,
    e.prototype.removeSlide = e.prototype.slickRemove = function(i, e, t) {
        var o = this;
        if (i = "boolean" == typeof i ? !0 === (e = i) ? 0 : o.slideCount - 1 : !0 === e ? --i : i,
        o.slideCount < 1 || i < 0 || i > o.slideCount - 1)
            return !1;
        o.unload(),
        !0 === t ? o.$slideTrack.children().remove() : o.$slideTrack.children(this.options.slide).eq(i).remove(),
        o.$slides = o.$slideTrack.children(this.options.slide),
        o.$slideTrack.children(this.options.slide).detach(),
        o.$slideTrack.append(o.$slides),
        o.$slidesCache = o.$slides,
        o.reinit()
    }
    ,
    e.prototype.setCSS = function(i) {
        var e, t, o = this, s = {};
        !0 === o.options.rtl && (i = -i),
        e = "left" == o.positionProp ? Math.ceil(i) + "px" : "0px",
        t = "top" == o.positionProp ? Math.ceil(i) + "px" : "0px",
        s[o.positionProp] = i,
        !1 === o.transformsEnabled ? o.$slideTrack.css(s) : (s = {},
        !1 === o.cssTransitions ? (s[o.animType] = "translate(" + e + ", " + t + ")",
        o.$slideTrack.css(s)) : (s[o.animType] = "translate3d(" + e + ", " + t + ", 0px)",
        o.$slideTrack.css(s)))
    }
    ,
    e.prototype.setDimensions = function() {
        var i = this;
        !1 === i.options.vertical ? !0 === i.options.centerMode && i.$list.css({
            padding: "0px " + i.options.centerPadding
        }) : (i.$list.height(i.$slides.first().outerHeight(!0) * i.options.slidesToShow),
        !0 === i.options.centerMode && i.$list.css({
            padding: i.options.centerPadding + " 0px"
        })),
        i.listWidth = i.$list.width(),
        i.listHeight = i.$list.height(),
        !1 === i.options.vertical && !1 === i.options.variableWidth ? (i.slideWidth = Math.ceil(i.listWidth / i.options.slidesToShow),
        i.$slideTrack.width(Math.ceil(i.slideWidth * i.$slideTrack.children(".slick-slide").length))) : !0 === i.options.variableWidth ? i.$slideTrack.width(5e3 * i.slideCount) : (i.slideWidth = Math.ceil(i.listWidth),
        i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0) * i.$slideTrack.children(".slick-slide").length)));
        var e = i.$slides.first().outerWidth(!0) - i.$slides.first().width();
        !1 === i.options.variableWidth && i.$slideTrack.children(".slick-slide").width(i.slideWidth - e)
    }
    ,
    e.prototype.setFade = function() {
        var e, t = this;
        t.$slides.each(function(o, s) {
            e = t.slideWidth * o * -1,
            !0 === t.options.rtl ? i(s).css({
                position: "relative",
                right: e,
                top: 0,
                zIndex: t.options.zIndex - 2,
                opacity: 0
            }) : i(s).css({
                position: "relative",
                left: e,
                top: 0,
                zIndex: t.options.zIndex - 2,
                opacity: 0
            })
        }),
        t.$slides.eq(t.currentSlide).css({
            zIndex: t.options.zIndex - 1,
            opacity: 1
        })
    }
    ,
    e.prototype.setHeight = function() {
        var i = this;
        if (1 === i.options.slidesToShow && !0 === i.options.adaptiveHeight && !1 === i.options.vertical) {
            var e = i.$slides.eq(i.currentSlide).outerHeight(!0);
            i.$list.css("height", e)
        }
    }
    ,
    e.prototype.setOption = e.prototype.slickSetOption = function() {
        var e, t, o, s, n, r = this, l = !1;
        if ("object" === i.type(arguments[0]) ? (o = arguments[0],
        l = arguments[1],
        n = "multiple") : "string" === i.type(arguments[0]) && (o = arguments[0],
        s = arguments[1],
        l = arguments[2],
        "responsive" === arguments[0] && "array" === i.type(arguments[1]) ? n = "responsive" : void 0 !== arguments[1] && (n = "single")),
        "single" === n)
            r.options[o] = s;
        else if ("multiple" === n)
            i.each(o, function(i, e) {
                r.options[i] = e
            });
        else if ("responsive" === n)
            for (t in s)
                if ("array" !== i.type(r.options.responsive))
                    r.options.responsive = [s[t]];
                else {
                    for (e = r.options.responsive.length - 1; e >= 0; )
                        r.options.responsive[e].breakpoint === s[t].breakpoint && r.options.responsive.splice(e, 1),
                        e--;
                    r.options.responsive.push(s[t])
                }
        l && (r.unload(),
        r.reinit())
    }
    ,
    e.prototype.setPosition = function() {
        var i = this;
        i.setDimensions(),
        i.setHeight(),
        !1 === i.options.fade ? i.setCSS(i.getLeft(i.currentSlide)) : i.setFade(),
        i.$slider.trigger("setPosition", [i])
    }
    ,
    e.prototype.setProps = function() {
        var i = this
          , e = document.body.style;
        i.positionProp = !0 === i.options.vertical ? "top" : "left",
        "top" === i.positionProp ? i.$slider.addClass("slick-vertical") : i.$slider.removeClass("slick-vertical"),
        void 0 === e.WebkitTransition && void 0 === e.MozTransition && void 0 === e.msTransition || !0 === i.options.useCSS && (i.cssTransitions = !0),
        i.options.fade && ("number" == typeof i.options.zIndex ? i.options.zIndex < 3 && (i.options.zIndex = 3) : i.options.zIndex = i.defaults.zIndex),
        void 0 !== e.OTransform && (i.animType = "OTransform",
        i.transformType = "-o-transform",
        i.transitionType = "OTransition",
        void 0 === e.perspectiveProperty && void 0 === e.webkitPerspective && (i.animType = !1)),
        void 0 !== e.MozTransform && (i.animType = "MozTransform",
        i.transformType = "-moz-transform",
        i.transitionType = "MozTransition",
        void 0 === e.perspectiveProperty && void 0 === e.MozPerspective && (i.animType = !1)),
        void 0 !== e.webkitTransform && (i.animType = "webkitTransform",
        i.transformType = "-webkit-transform",
        i.transitionType = "webkitTransition",
        void 0 === e.perspectiveProperty && void 0 === e.webkitPerspective && (i.animType = !1)),
        void 0 !== e.msTransform && (i.animType = "msTransform",
        i.transformType = "-ms-transform",
        i.transitionType = "msTransition",
        void 0 === e.msTransform && (i.animType = !1)),
        void 0 !== e.transform && !1 !== i.animType && (i.animType = "transform",
        i.transformType = "transform",
        i.transitionType = "transition"),
        i.transformsEnabled = i.options.useTransform && null !== i.animType && !1 !== i.animType
    }
    ,
    e.prototype.setSlideClasses = function(i) {
        var e, t, o, s, n = this;
        if (t = n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden", "true"),
        n.$slides.eq(i).addClass("slick-current"),
        !0 === n.options.centerMode) {
            var r = n.options.slidesToShow % 2 == 0 ? 1 : 0;
            e = Math.floor(n.options.slidesToShow / 2),
            !0 === n.options.infinite && (i >= e && i <= n.slideCount - 1 - e ? n.$slides.slice(i - e + r, i + e + 1).addClass("slick-active").attr("aria-hidden", "false") : (o = n.options.slidesToShow + i,
            t.slice(o - e + 1 + r, o + e + 2).addClass("slick-active").attr("aria-hidden", "false")),
            0 === i ? t.eq(t.length - 1 - n.options.slidesToShow).addClass("slick-center") : i === n.slideCount - 1 && t.eq(n.options.slidesToShow).addClass("slick-center")),
            n.$slides.eq(i).addClass("slick-center")
        } else
            i >= 0 && i <= n.slideCount - n.options.slidesToShow ? n.$slides.slice(i, i + n.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false") : t.length <= n.options.slidesToShow ? t.addClass("slick-active").attr("aria-hidden", "false") : (s = n.slideCount % n.options.slidesToShow,
            o = !0 === n.options.infinite ? n.options.slidesToShow + i : i,
            n.options.slidesToShow == n.options.slidesToScroll && n.slideCount - i < n.options.slidesToShow ? t.slice(o - (n.options.slidesToShow - s), o + s).addClass("slick-active").attr("aria-hidden", "false") : t.slice(o, o + n.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false"));
        "ondemand" !== n.options.lazyLoad && "anticipated" !== n.options.lazyLoad || n.lazyLoad()
    }
    ,
    e.prototype.setupInfinite = function() {
        var e, t, o, s = this;
        if (!0 === s.options.fade && (s.options.centerMode = !1),
        !0 === s.options.infinite && !1 === s.options.fade && (t = null,
        s.slideCount > s.options.slidesToShow)) {
            for (o = !0 === s.options.centerMode ? s.options.slidesToShow + 1 : s.options.slidesToShow,
            e = s.slideCount; e > s.slideCount - o; e -= 1)
                t = e - 1,
                i(s.$slides[t]).clone(!0).attr("id", "").attr("data-slick-index", t - s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned");
            for (e = 0; e < o + s.slideCount; e += 1)
                t = e,
                i(s.$slides[t]).clone(!0).attr("id", "").attr("data-slick-index", t + s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned");
            s.$slideTrack.find(".slick-cloned").find("[id]").each(function() {
                i(this).attr("id", "")
            })
        }
    }
    ,
    e.prototype.interrupt = function(i) {
        var e = this;
        i || e.autoPlay(),
        e.interrupted = i
    }
    ,
    e.prototype.selectHandler = function(e) {
        var t = this
          , o = i(e.target).is(".slick-slide") ? i(e.target) : i(e.target).parents(".slick-slide")
          , s = parseInt(o.attr("data-slick-index"));
        s || (s = 0),
        t.slideCount <= t.options.slidesToShow ? t.slideHandler(s, !1, !0) : t.slideHandler(s)
    }
    ,
    e.prototype.slideHandler = function(i, e, t) {
        var o, s, n, r, l, d = null, a = this;
        if (e = e || !1,
        !(!0 === a.animating && !0 === a.options.waitForAnimate || !0 === a.options.fade && a.currentSlide === i))
            if (!1 === e && a.asNavFor(i),
            o = i,
            d = a.getLeft(o),
            r = a.getLeft(a.currentSlide),
            a.currentLeft = null === a.swipeLeft ? r : a.swipeLeft,
            !1 === a.options.infinite && !1 === a.options.centerMode && (i < 0 || i > a.getDotCount() * a.options.slidesToScroll))
                !1 === a.options.fade && (o = a.currentSlide,
                !0 !== t ? a.animateSlide(r, function() {
                    a.postSlide(o)
                }) : a.postSlide(o));
            else if (!1 === a.options.infinite && !0 === a.options.centerMode && (i < 0 || i > a.slideCount - a.options.slidesToScroll))
                !1 === a.options.fade && (o = a.currentSlide,
                !0 !== t ? a.animateSlide(r, function() {
                    a.postSlide(o)
                }) : a.postSlide(o));
            else {
                if (a.options.autoplay && clearInterval(a.autoPlayTimer),
                s = o < 0 ? a.slideCount % a.options.slidesToScroll != 0 ? a.slideCount - a.slideCount % a.options.slidesToScroll : a.slideCount + o : o >= a.slideCount ? a.slideCount % a.options.slidesToScroll != 0 ? 0 : o - a.slideCount : o,
                a.animating = !0,
                a.$slider.trigger("beforeChange", [a, a.currentSlide, s]),
                n = a.currentSlide,
                a.currentSlide = s,
                a.setSlideClasses(a.currentSlide),
                a.options.asNavFor && (l = (l = a.getNavTarget()).slick("getSlick")).slideCount <= l.options.slidesToShow && l.setSlideClasses(a.currentSlide),
                a.updateDots(),
                a.updateArrows(),
                !0 === a.options.fade)
                    return !0 !== t ? (a.fadeSlideOut(n),
                    a.fadeSlide(s, function() {
                        a.postSlide(s)
                    })) : a.postSlide(s),
                    void a.animateHeight();
                !0 !== t ? a.animateSlide(d, function() {
                    a.postSlide(s)
                }) : a.postSlide(s)
            }
    }
    ,
    e.prototype.startLoad = function() {
        var i = this;
        !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.hide(),
        i.$nextArrow.hide()),
        !0 === i.options.dots && i.slideCount > i.options.slidesToShow && i.$dots.hide(),
        i.$slider.addClass("slick-loading")
    }
    ,
    e.prototype.swipeDirection = function() {
        var i, e, t, o, s = this;
        return i = s.touchObject.startX - s.touchObject.curX,
        e = s.touchObject.startY - s.touchObject.curY,
        t = Math.atan2(e, i),
        (o = Math.round(180 * t / Math.PI)) < 0 && (o = 360 - Math.abs(o)),
        o <= 45 && o >= 0 ? !1 === s.options.rtl ? "left" : "right" : o <= 360 && o >= 315 ? !1 === s.options.rtl ? "left" : "right" : o >= 135 && o <= 225 ? !1 === s.options.rtl ? "right" : "left" : !0 === s.options.verticalSwiping ? o >= 35 && o <= 135 ? "down" : "up" : "vertical"
    }
    ,
    e.prototype.swipeEnd = function(i) {
        var e, t, o = this;
        if (o.dragging = !1,
        o.swiping = !1,
        o.scrolling)
            return o.scrolling = !1,
            !1;
        if (o.interrupted = !1,
        o.shouldClick = !(o.touchObject.swipeLength > 10),
        void 0 === o.touchObject.curX)
            return !1;
        if (!0 === o.touchObject.edgeHit && o.$slider.trigger("edge", [o, o.swipeDirection()]),
        o.touchObject.swipeLength >= o.touchObject.minSwipe) {
            switch (t = o.swipeDirection()) {
            case "left":
            case "down":
                e = o.options.swipeToSlide ? o.checkNavigable(o.currentSlide + o.getSlideCount()) : o.currentSlide + o.getSlideCount(),
                o.currentDirection = 0;
                break;
            case "right":
            case "up":
                e = o.options.swipeToSlide ? o.checkNavigable(o.currentSlide - o.getSlideCount()) : o.currentSlide - o.getSlideCount(),
                o.currentDirection = 1
            }
            "vertical" != t && (o.slideHandler(e),
            o.touchObject = {},
            o.$slider.trigger("swipe", [o, t]))
        } else
            o.touchObject.startX !== o.touchObject.curX && (o.slideHandler(o.currentSlide),
            o.touchObject = {})
    }
    ,
    e.prototype.swipeHandler = function(i) {
        var e = this;
        if (!(!1 === e.options.swipe || "ontouchend"in document && !1 === e.options.swipe || !1 === e.options.draggable && -1 !== i.type.indexOf("mouse")))
            switch (e.touchObject.fingerCount = i.originalEvent && void 0 !== i.originalEvent.touches ? i.originalEvent.touches.length : 1,
            e.touchObject.minSwipe = e.listWidth / e.options.touchThreshold,
            !0 === e.options.verticalSwiping && (e.touchObject.minSwipe = e.listHeight / e.options.touchThreshold),
            i.data.action) {
            case "start":
                e.swipeStart(i);
                break;
            case "move":
                e.swipeMove(i);
                break;
            case "end":
                e.swipeEnd(i)
            }
    }
    ,
    e.prototype.swipeMove = function(i) {
        var e, t, o, s, n, r, l = this;
        return n = void 0 !== i.originalEvent ? i.originalEvent.touches : null,
        !(!l.dragging || l.scrolling || n && 1 !== n.length) && (e = l.getLeft(l.currentSlide),
        l.touchObject.curX = void 0 !== n ? n[0].pageX : i.clientX,
        l.touchObject.curY = void 0 !== n ? n[0].pageY : i.clientY,
        l.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(l.touchObject.curX - l.touchObject.startX, 2))),
        r = Math.round(Math.sqrt(Math.pow(l.touchObject.curY - l.touchObject.startY, 2))),
        !l.options.verticalSwiping && !l.swiping && r > 4 ? (l.scrolling = !0,
        !1) : (!0 === l.options.verticalSwiping && (l.touchObject.swipeLength = r),
        t = l.swipeDirection(),
        void 0 !== i.originalEvent && l.touchObject.swipeLength > 4 && (l.swiping = !0,
        i.preventDefault()),
        s = (!1 === l.options.rtl ? 1 : -1) * (l.touchObject.curX > l.touchObject.startX ? 1 : -1),
        !0 === l.options.verticalSwiping && (s = l.touchObject.curY > l.touchObject.startY ? 1 : -1),
        o = l.touchObject.swipeLength,
        l.touchObject.edgeHit = !1,
        !1 === l.options.infinite && (0 === l.currentSlide && "right" === t || l.currentSlide >= l.getDotCount() && "left" === t) && (o = l.touchObject.swipeLength * l.options.edgeFriction,
        l.touchObject.edgeHit = !0),
        !1 === l.options.vertical ? l.swipeLeft = e + o * s : l.swipeLeft = e + o * (l.$list.height() / l.listWidth) * s,
        !0 === l.options.verticalSwiping && (l.swipeLeft = e + o * s),
        !0 !== l.options.fade && !1 !== l.options.touchMove && (!0 === l.animating ? (l.swipeLeft = null,
        !1) : void l.setCSS(l.swipeLeft))))
    }
    ,
    e.prototype.swipeStart = function(i) {
        var e, t = this;
        if (t.interrupted = !0,
        1 !== t.touchObject.fingerCount || t.slideCount <= t.options.slidesToShow)
            return t.touchObject = {},
            !1;
        void 0 !== i.originalEvent && void 0 !== i.originalEvent.touches && (e = i.originalEvent.touches[0]),
        t.touchObject.startX = t.touchObject.curX = void 0 !== e ? e.pageX : i.clientX,
        t.touchObject.startY = t.touchObject.curY = void 0 !== e ? e.pageY : i.clientY,
        t.dragging = !0
    }
    ,
    e.prototype.unfilterSlides = e.prototype.slickUnfilter = function() {
        var i = this;
        null !== i.$slidesCache && (i.unload(),
        i.$slideTrack.children(this.options.slide).detach(),
        i.$slidesCache.appendTo(i.$slideTrack),
        i.reinit())
    }
    ,
    e.prototype.unload = function() {
        var e = this;
        i(".slick-cloned", e.$slider).remove(),
        e.$dots && e.$dots.remove(),
        e.$prevArrow && e.htmlExpr.test(e.options.prevArrow) && e.$prevArrow.remove(),
        e.$nextArrow && e.htmlExpr.test(e.options.nextArrow) && e.$nextArrow.remove(),
        e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden", "true").css("width", "")
    }
    ,
    e.prototype.unslick = function(i) {
        var e = this;
        e.$slider.trigger("unslick", [e, i]),
        e.destroy()
    }
    ,
    e.prototype.updateArrows = function() {
        var i = this;
        Math.floor(i.options.slidesToShow / 2),
        !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && !i.options.infinite && (i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"),
        i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false"),
        0 === i.currentSlide ? (i.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true"),
        i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : i.currentSlide >= i.slideCount - i.options.slidesToShow && !1 === i.options.centerMode ? (i.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"),
        i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : i.currentSlide >= i.slideCount - 1 && !0 === i.options.centerMode && (i.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"),
        i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")))
    }
    ,
    e.prototype.updateDots = function() {
        var i = this;
        null !== i.$dots && (i.$dots.find("li").removeClass("slick-active").end(),
        i.$dots.find("li").eq(Math.floor(i.currentSlide / i.options.slidesToScroll)).addClass("slick-active"))
    }
    ,
    e.prototype.visibility = function() {
        var i = this;
        i.options.autoplay && (document[i.hidden] ? i.interrupted = !0 : i.interrupted = !1)
    }
    ,
    i.fn.slick = function() {
        var i, t, o = this, s = arguments[0], n = Array.prototype.slice.call(arguments, 1), r = o.length;
        for (i = 0; i < r; i++)
            if ("object" == typeof s || void 0 === s ? o[i].slick = new e(o[i],s) : t = o[i].slick[s].apply(o[i].slick, n),
            void 0 !== t)
                return t;
        return o
    }
});
$( () => {
    const t = document.querySelector("#back_to_top");
    t && (t.onclick = n => (n.preventDefault(),
    $(document.documentElement).animate({
        scrollTop: 0
    }, 500),
    !1),
    window.onscroll = () => {
        if (document.documentElement.scrollTop > document.documentElement.clientHeight) {
            t.hidden = !1;
            return
        }
        t.hidden = !0
    }
    );
    const o = document.querySelectorAll(".password_input_trigger");
    o.length && o.forEach(n => {
        const t = n.parentNode.querySelector("input[type=password]");
        n.onclick = () => {
            if (t.type === "password") {
                t.type = "text";
                return
            }
            t.type = "password"
        }
    }
    );
    const n = document.querySelectorAll(".refresh_balance");
    if (n.length) {
        const e = document.querySelectorAll(".locked_balance_container")
          , o = document.querySelectorAll(".total_balance")
          , s = document.querySelectorAll(".total_locked_balance")
          , t = document.querySelectorAll(".unread_announcements_button")
          , h = document.querySelectorAll(".loyalty_level")
          , c = document.querySelectorAll(".loyalty_point")
          , l = document.querySelectorAll(".loyalty_experience_progress")
          , i = document.querySelector("#loyalty_experience_percentage")
          , r = document.querySelector("#loyalty_experience_amount")
          , a = () => {
            const n = document.querySelector("#resolved_ticket_ids");
            n && window.$.ajax({
                type: "POST",
                url: "/Session/ReadResolvedTransactions",
                data: JSON.stringify({
                    ticketNumbers: n.value.split(",")
                }),
                contentType: "application/json; charset=utf-8",
                dataType: "json"
            })
        }
          , v = () => {
            window.$.ajax({
                type: "POST",
                url: "/Session/ResolvedTransactionsPopup",
                success: n => {
                    registerPopup({
                        content: n,
                        cssClass: "concise-transaction-popup",
                        onClose: a
                    });
                    const t = document.querySelector("#resolved_transaction_items");
                    if (t) {
                        $(t).slick({
                            centerMode: !0,
                            centerPadding: "8px",
                            slidesToShow: 1,
                            slidesToScroll: 1,
                            dots: !0,
                            dotsClass: "carousel-indicators",
                            infinite: !1,
                            autoplay: !1,
                            arrows: !0,
                            adaptiveHeight: !1
                        });
                        const n = document.querySelectorAll("#resolved_transaction_items .copy_ticket_button");
                        Array.from(n).forEach(n => {
                            addCopyAction(n)
                        }
                        )
                    }
                }
            })
        }
          , u = async () => {
            Array.prototype.slice.call(n).some(n => n.dataset.loading === "true") || (Array.prototype.slice.call(n).forEach(n => n.dataset.loading = !0),
            await window.$.ajax({
                type: "POST",
                url: "/Session/ScheduledUpdate",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: n => {
                    const f = n.wallet
                      , y = window.formatCurrency(f.balance)
                      , p = window.formatCurrency(f.lockedBalance);
                    Array.prototype.slice.call(e).forEach(n => {
                        n.hidden = !f.hasLockedBalance
                    }
                    );
                    Array.prototype.slice.call(o).forEach(n => {
                        n.innerText = y
                    }
                    );
                    Array.prototype.slice.call(s).forEach(n => {
                        n.innerText = p
                    }
                    );
                    f.hasNewResolvedTransactions && v();
                    f.vendorBalanceCategories.length && f.vendorBalanceCategories.forEach(n => {
                        n.vendorBalances.forEach(n => {
                            Array.prototype.slice.call(document.querySelectorAll(`[data-vendor-game-code="${n.gameCode}"]`)).forEach(t => {
                                t.innerText = n.success ? window.formatCurrency(n.balance) : n.errorMessage
                            }
                            )
                        }
                        )
                    }
                    );
                    const a = n.notification;
                    t && a && Array.from(t).forEach(n => n.dataset.announcementCount = a.newMessageCount);
                    const u = n.loyalty;
                    if (u) {
                        const t = {
                            "0": "bronze",
                            "1": "silver",
                            "2": "gold",
                            "3": "platinum",
                            "4": "diamond"
                        }
                          , n = u.experiencePercentage > 100 ? 100 : u.experiencePercentage;
                        Array.prototype.slice.call(h).forEach(n => {
                            n.src = `${n.dataset.imagePath}${t[u.loyaltyLevel]}.svg`
                        }
                        );
                        Array.prototype.slice.call(c).forEach(n => {
                            n.innerText = u.loyaltyPoint.toLocaleString()
                        }
                        );
                        Array.prototype.slice.call(l).forEach(t => {
                            t.style.width = `${n}%`
                        }
                        );
                        i && (i.innerText = `${n}%`);
                        r && (r.innerHTML = `<span>${u.experiencePoint.toLocaleString()}</span>/${u.nextLevelExperiencePoint.toLocaleString()} EXP`)
                    }
                }
                ,
                error: function(n) {
                    const t = n.getResponseHeader("Redirect-Reason");
                    n.status === 200 && t && (window.closeWindows(),
                    window.location.href = "/home/" + t)
                }
            }),
            Array.prototype.slice.call(n).forEach(n => n.dataset.loading = !1))
        }
        ;
        Array.prototype.slice.call(n).forEach(n => n.onclick = u);
        const y = 1e4
          , f = async () => {
            setTimeout(async () => {
                await u(),
                f()
            }
            , y)
        }
        ;
        f()
    }
    const e = document.querySelector("#site_side_menu_trigger_input");
    e && (e.onchange = () => {
        if (e.checked) {
            document.body.classList.add("modal-open");
            return
        }
        document.body.classList.remove("modal-open")
    }
    );
    const a = document.querySelector(".carousel");
    a && $(".carousel").bcSwipe({
        threshold: 50
    });
    window.initializeIntro = n => {
        const t = document.querySelector("#mobile_loyalty_info_container")
          , r = document.querySelector("#desktop_loyalty_info_container")
          , u = window.getComputedStyle(t)
          , f = window.getComputedStyle(r);
        if (t || r) {
            const e = async () => {
                await window.$.ajax({
                    type: "POST",
                    url: "/Profile/UpdateUserAction",
                    data: JSON.stringify({
                        userAction: "GuidanceForLoyaltyHomePage"
                    }),
                    contentType: "application/json; charset=utf-8",
                    dataType: "json"
                })
            }
              , o = () => {
                const i = [];
                t && u.display !== "none" && (i[0] = document.querySelector("#intro_mobile_loyalty_section"),
                i[1] = document.querySelector("#intro_mobile_loyalty_point"),
                i[2] = document.querySelector("#intro_mobile_loyalty_experience"));
                r && f.display !== "none" && (i[0] = document.querySelector("#desktop_loyalty_level"),
                i[1] = document.querySelector("#desktop_loyalty_point"),
                i[2] = document.querySelector("#desktop_loyalty_experience"));
                n.redemptionStore == !0 ? introJs().setOptions({
                    steps: [{
                        title: n.loyaltyLevelTitle,
                        element: i[0],
                        intro: `<div class='subtitle'>${n.loyaltyLevelSubtitle}</div><p>${n.loyaltyLevelContent}</p>`
                    }, {
                        title: n.loyaltyPointTitle,
                        element: i[1],
                        intro: `<div class='subtitle'>${n.loyaltyPointSubtitle}</div><p>${n.loyaltyPointContent}</p>`
                    }, {
                        title: n.loyaltyExperienceTitle,
                        element: i[2],
                        intro: `<div class='subtitle'>${n.loyaltyExperienceSubtitle}</div><p>${n.loyaltyExperienceContent}</p>`
                    }],
                    scrollToElement: !1
                }).start() : introJs().setOptions({
                    steps: [{
                        title: n.loyaltyLevelTitle,
                        element: i[0],
                        intro: `<div class='subtitle'>${n.loyaltyLevelSubtitle}</div><p>${n.loyaltyLevelContent}</p>`
                    }, {
                        title: n.loyaltyExperienceTitle,
                        element: i[2],
                        intro: `<div class='subtitle'>${n.loyaltyExperienceSubtitle}</div><p>${n.loyaltyExperienceContent}</p>`
                    }],
                    scrollToElement: !1
                }).start();
                e();
                clearInterval(s)
            }
            ;
            i();
            const s = setInterval( () => {
                i() == !1 && o()
            }
            , 2e3)
        }
    }
    ;
    window.initializeWalletIntro = n => {
        const t = document.querySelector("#intro_mobile_wallet_balance")
          , r = document.querySelector("#wallet_container")
          , u = window.getComputedStyle(t)
          , f = window.getComputedStyle(r);
        if (t || r) {
            const e = async () => {
                await window.$.ajax({
                    type: "POST",
                    url: "/Profile/UpdateUserAction",
                    data: JSON.stringify({
                        userAction: "GuidanceForWallet"
                    }),
                    contentType: "application/json; charset=utf-8",
                    dataType: "json"
                })
            }
              , o = () => {
                var i;
                t && u.display !== "none" && (i = t);
                r && f.display !== "none" && (i = r);
                introJs().setOptions({
                    steps: [{
                        element: i,
                        intro: `<div class='subtitle'>${n.translations.walletUpdateTitle}</div><p>${n.translations.walletUpdateContent}</p>`,
                        tooltipClass: "wallet-guidance-tooltip wallet_guidance_tooltip"
                    }],
                    scrollToElement: !1,
                    doneLabel: "OK"
                }).start();
                e();
                clearInterval(s)
            }
            ;
            i();
            const s = setInterval( () => {
                i() == !1 && o()
            }
            , 2e3)
        }
    }
    ;
    const i = () => {
        const n = document.querySelectorAll(".introjs-tooltip");
        return n.length > 0 || document.querySelectorAll(".modal.show").length > 0 || document.querySelectorAll(".modal.in").length > 0 ? !0 : !1
    }
      , s = document.querySelector("#floating_action_button_trigger");
    if (s) {
        const n = document.querySelector("#floating_action_button_list");
        s.onclick = () => {
            n.classList.toggle("visible")
        }
    }
    const h = document.querySelector("#contact_verification_popup")
      , c = document.querySelectorAll(".open_contact_verification_popup_button");
    h && c.length && Array.from(c).forEach(n => {
        n.onclick || (n.onclick = () => h.classList.add("open"))
    }
    );
    const l = document.querySelector("#close_contact_verification_popup_button");
    if (l) {
        const n = document.querySelector("#contact_verification_popup");
        l.onclick = () => n.classList.remove("open")
    }
    const r = document.querySelector("#menu_slides");
    if (r) {
        const n = r.querySelector("ul")
          , u = r.querySelector(".left_trigger")
          , f = r.querySelector(".right_trigger")
          , t = n.querySelector("li");
        u.onclick = () => n.scrollLeft -= t.clientWidth;
        f.onclick = () => n.scrollLeft += t.clientWidth;
        const i = n.querySelector('li[data-active="true"]');
        i && i.scrollIntoView(!1)
    }
    window.initializeThumbmark = async () => {
        const n = new ThumbmarkJS.Thumbmark({
            include: ["system.browser.name", "system.browser.version", "system.os.name", "system.os.version", "navigator.user_agent", "navigator.hardware_concurrency", "navigator.device_memory", "screen.resolution", "screen.color_depth", "screen.pixel_depth", "navigator.language", "timezone.offset"],
            exclude: ["audio", "canvas", "webgl", "fonts", "permissions", "performance", "media", "plugins"],
            stabilize: ["private", "iframe"],
            logging: !1,
            performance: !1
        });
        try {
            const i = await n.get()
              , r = await crypto.subtle.digest("SHA-256", (new TextEncoder).encode(i.thumbmark.toLowerCase().trim()))
              , u = Array.from(new Uint8Array(r))
              , f = u.map(n => n.toString(16).padStart(2, "0")).join("")
              , t = document.querySelectorAll(".visitor_id_input");
            t && t.length > 0 && Array.from(t).forEach(n => n.value = f)
        } catch (t) {
            console.log("Error generating thumbmark: " + t.message)
        }
    }
    ;
    window.initializeCountryCodeDropdown = n => {
        const t = document.querySelectorAll(`${n.parentForm} .country_code_dropdown`);
        t && t.length > 0 && n.parentForm && ($.validator.addMethod("contactNumberLength", function(n, t) {
            var r = t.parentElement.querySelector(".dialing_code_prefix_hidden_input")
              , i = n.replace(/\D/g, "");
            return r.value === "+62" && i.length > 0 ? i.length >= 9 && i.length <= 12 : !0
        }, n.translations.contactNumberLengthErrorMessage),
        Array.from(t).forEach(n => {
            const s = n.querySelector(".country_flag")
              , e = n.nextElementSibling.querySelector(".dialing_code_prefix")
              , t = n.nextElementSibling.querySelector(".contact_input")
              , i = n.parentElement.querySelector(".country_code_selection_dropdown")
              , r = n.nextElementSibling.querySelector(".dialing_code_prefix_hidden_input")
              , h = () => {
                i.classList.add("open"),
                n.setAttribute("aria-expanded", "true")
            }
              , u = () => {
                i.classList.remove("open"),
                n.setAttribute("aria-expanded", "false")
            }
              , c = (n, t) => {
                const i = $(t).outerWidth() + 12;
                $(n).css("padding-left", i + "px")
            }
            ;
            $(t).rules("add", {
                contactNumberLength: !0,
                remote: {
                    param: {
                        url: `/validate/${t.dataset.remoteValidationFieldName}`,
                        data: {
                            whatsappDialingCode: () => $(r).val(),
                            whatsapp: () => $(t).val()
                        }
                    },
                    depends: () => $(t).val() != "" && t.dataset.remoteValidationFieldName !== undefined
                }
            });
            const l = () => {
                t && t.value != "" && ($(t).removeData("previousValue"),
                $(t).valid())
            }
              , o = n => {
                const i = n.dataset.dialingCode
                  , u = n.dataset.flagUrl;
                i && (s.src = u,
                e.innerText = i,
                r.value = i,
                c(t, e),
                l())
            }
            ;
            n.addEventListener("click", n => {
                n.stopPropagation();
                const t = document.querySelectorAll(".country_code_selection_dropdown");
                t && t.length > 0 && Array.from(t).forEach(n => {
                    i !== n && n.classList.remove("open")
                }
                );
                i.classList.contains("open") ? u() : h()
            }
            );
            i.addEventListener("click", n => {
                const t = n.target.closest(".country_option");
                t && (o(t),
                u())
            }
            );
            document.addEventListener("click", t => {
                n.contains(t.target) || u()
            }
            );
            document.addEventListener("keydown", n => {
                n.key === "Escape" && u()
            }
            );
            let f = i.querySelector(".country_option");
            r && (f = i.querySelector(`.country_option[data-dialing-code='${r.value}']`));
            f && o(f)
        }
        ))
    }
    ;
    const u = document.querySelector("body")
      , f = document.querySelector("#download_apk_notification");
    if (f) {
        const r = () => /iPhone|iPad|iPod|C-APK/i.test(navigator.userAgent);
        if (r()) {
            f.style.display = "none";
            u.classList.remove("has-apk-download-notification");
            return
        }
        const n = n => {
            const i = new Date
              , t = new Date(i.getTime() + n * 864e5);
            t.setHours(0, 0, 0, 0);
            const r = `expires=${t.toString()}`
              , u = moment(t).format("YYYY-MM-DD HH:mm:ss");
            document.cookie = `close-apk-download-notification=${u.toString()}; ${r}; path=/`
        }
          , e = window.readCookie("close-apk-download-notification");
        e == null && u.classList.add("has-apk-download-notification");
        const t = document.querySelector("#close_download_apk_notification");
        t && (t.onclick = () => {
            n(7),
            f.style.display = "none",
            u.classList.remove("has-apk-download-notification")
        }
        );
        const i = document.querySelector("#dont_show_again_today");
        i && (i.onclick = () => {
            n(1),
            f.style.display = "none",
            u.classList.remove("has-apk-download-notification")
        }
        )
    }
}
);
window.initializeCopyButton = () => {
    const n = document.querySelectorAll("[data-copy-button]");
    Array.from(n).forEach(n => {
        addCopyAction(n)
    }
    )
}
;
window.addCopyAction = n => {
    $(n).popover({
        content: n.dataset.popoverText,
        placement: "top",
        trigger: "manual"
    }),
    n.onclick = () => {
        if (navigator.clipboard) {
            const t = n.closest("[data-copy-element-container]");
            if (t) {
                const i = t.querySelectorAll("[data-copy-element]")
                  , r = Array.from(i).map(t => t.tagName === "INPUT" ? t.value.replaceAll("-", "") : n.dataset.copyOriginal === "true" ? t.innerText : t.innerText.replaceAll("-", "")).join("");
                navigator.clipboard.writeText(r).then( () => {
                    const t = $(n);
                    t.popover("show");
                    setTimeout( () => t.popover("hide"), 500)
                }
                ).catch(n => console.log("Error when copying account number: " + n))
            }
        }
    }
}
;
window.insertPseudoEventListener = (n, t) => {
    const i = document.createElement("div");
    i.classList.add("pseudo_event_listener");
    i.style.position = "absolute";
    i.addEventListener("click", t);
    const r = () => {
        const t = n.getBoundingClientRect();
        i.style.height = `${t.height}px`;
        i.style.width = `${t.width}px`
    }
    ;
    r();
    n.parentElement.insertBefore(i, n);
    n.style.pointerEvents = "none";
    const u = () => {
        i.timeoutId && clearTimeout(i.timeoutId),
        i.timeoutId = setTimeout(r, 300)
    }
    ;
    window.addEventListener("resize", u)
}
;
window.initializeQrButton = () => {
    const n = document.querySelectorAll("[data-qr-button]");
    Array.from(n).forEach(n => {
        addQrAction(n)
    }
    )
}
;
window.addQrAction = n => {
    $(n).popover({
        html: !0,
        content: n.dataset.popoverContent,
        placement: "left",
        trigger: "focus"
    })
}
;
initializeQrButton();
!function(i) {
    i.fn.easyTicker = function(n) {
        n = i.extend({
            direction: "up",
            easing: "swing",
            speed: "slow",
            interval: 2e3,
            height: "auto",
            visible: 0,
            mousePause: 0,
            controls: {
                up: "",
                down: "",
                toggle: ""
            }
        }, n);
        var t = 0
          , e = i("body")
          , s = i(n.controls.up)
          , o = i(n.controls.down)
          , c = i(n.controls.toggle)
          , a = function(t, e, s) {
            if (t.is(":visible")) {
                if ("up" == s)
                    var o = ":first-child"
                      , c = "-="
                      , a = "appendTo";
                else
                    o = ":last-child",
                    c = "+=",
                    a = "prependTo";
                var r = i(e).children(o)
                  , u = r.outerHeight();
                i(e).stop(!0, !0).animate({
                    top: c + u + "px"
                }, n.speed, n.easing, function() {
                    r.hide()[a](e).fadeIn(),
                    i(e).css("top", 0),
                    0 != n.visible && "auto" == n.height && l(t, e)
                })
            }
        }
          , r = function(i, s) {
            (0 == c.length || c.hasClass("et-run")) && (t = setInterval(function() {
                1 == e.attr("data-focus") && a(i, s, n.direction)
            }, n.interval))
        }
          , u = function(i) {
            clearInterval(t)
        }
          , l = function(t, e) {
            var s = 0;
            i(e).children(":lt(" + n.visible + ")").each(function() {
                s += i(this).outerHeight()
            }),
            t.stop(!0, !0).animate({
                height: s
            }, n.speed)
        }
          , h = function(n, t) {
            var e = 0
              , s = n.css("display");
            return n.css("display", "block"),
            i(t).children().each(function() {
                e += i(this).outerHeight()
            }),
            n.css("display", s),
            e
        };
        function d() {
            e.attr("data-focus", 0)
        }
        function f() {
            e.attr("data-focus", 1)
        }
        return i(window).bind("focus mouseover", f),
        i(window).bind("blur", d),
        this.each(function() {
            var t = i(this)
              , e = t.children(":first-child");
            !function(i, t) {
                t.children().css("margin", 0).children().css("margin", 0),
                i.css({
                    position: "relative",
                    height: "auto" == n.height ? h(i, t) : n.height,
                    overflow: "hidden"
                }),
                t.css({
                    position: "absolute",
                    margin: 0
                }).children().css("margin", 0),
                0 != n.visible && "auto" == n.height && l(i, t),
                c.addClass("et-run"),
                r(i, t)
            }(t, e),
            1 == n.mousePause && t.mouseover(function() {
                u()
            }).mouseleave(function() {
                r(t, e)
            }),
            c.on("click", function() {
                i(this).hasClass("et-run") ? (u(),
                i(this).removeClass("et-run")) : (i(this).addClass("et-run"),
                r(t, e))
            }),
            s.on("click", function() {
                a(t, e, "up")
            }),
            o.on("click", function() {
                a(t, e, "down")
            })
        })
    }
}(jQuery);
$( () => {
    const i = document.querySelector("#progressive_jackpot");
    if (i && i.dataset.progressiveJackpotUrl) {
        const t = {
            refresh: 4e3,
            update: 500
        }
          , n = {
            current: null,
            gap: .05
        }
          , r = async () => {
            await window.$.ajax({
                type: "GET",
                url: i.dataset.progressiveJackpotUrl + "/progressive-jackpot",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: i => {
                    if (isFinite(i) != !1 && !(i <= 0)) {
                        if (n.current === null) {
                            n.current = i - n.gap * (t.refresh / t.update);
                            return
                        }
                        n.gap = (i - n.current) / (t.refresh / t.update)
                    }
                }
                ,
                complete: () => {
                    setTimeout(r, t.refresh)
                }
            })
        }
        ;
        r();
        const u = () => {
            let r = "UPDATING";
            n.current !== null && (n.current += n.gap,
            r = n.current.toLocaleString(undefined, {
                minimumFractionDigits: 0,
                maximumFractionDigits: 0
            }));
            i.innerText = r;
            setTimeout(u, t.update)
        }
        ;
        u()
    }
}
);
$( () => {
    $("#winners_ticker").easyTicker()
}
);
$( () => {
    const n = document.querySelector("#download_apk");
    if (n) {
        const t = n.querySelector(":scope > div:first-child")
          , i = n.querySelector(":scope > div:last-child")
          , f = () => {
            const i = n.getBoundingClientRect()
              , t = 1 - i.top / window.innerHeight;
            return t > 1 ? 1 - t : t
        }
          , r = () => {
            const n = f();
            n > .4 && (t.style.transform = `translateX(0%)`,
            i.style.transform = `translateX(0%)`,
            t.style.opacity = 1,
            i.style.opacity = 1)
        }
          , u = document.querySelector("#scroll_container");
        if (u) {
            u.addEventListener("scroll", r);
            return
        }
        window.addEventListener("scroll", r)
    }
}
);
$( () => {
    window.initializeCopyAccountNumber = n => {
        const t = document.querySelectorAll(".copy_account_number_button");
        t.forEach(t => {
            $(t).popover({
                content: n.translations.copied,
                placement: "top",
                trigger: "manual"
            }),
            t.onclick = () => {
                if (navigator.clipboard) {
                    const n = t.previousElementSibling;
                    navigator.clipboard.writeText(n.innerText.replaceAll("-", "")).then( () => {
                        const n = $(t);
                        n.popover("show");
                        setTimeout( () => n.popover("hide"), 500)
                    }
                    ).catch(n => console.log("Error when copying account number: " + n))
                }
            }
        }
        )
    }
}
);
jQuery.fn.endlessRiver = function(n) {
    return n = jQuery.extend({
        speed: 30,
        pause: !0,
        buttons: !1
    }, n),
    this.each(function() {
        function h(n, i) {
            t.animate({
                left: "-=" + n
            }, i, "linear", function() {
                t.children("li:first").appendTo(t);
                t.css("left", 0);
                u = t.children("li:first").outerWidth(!0);
                o = i / n * u;
                r && h(u, o)
            })
        }
        function a() {
            t.hover(b, k)
        }
        function b() {
            r = !1;
            t.stop()
        }
        function k() {
            r = !0;
            var i = t.offset().left
              , n = i + t.children("li:first").outerWidth(!0) - c
              , f = o / u * n;
            h(n, f)
        }
        var i = jQuery, t = i(this), f = "ER_" + (new Date).getTime(), v, e;
        t.wrap('<div id="' + f + '"><\/div>');
        t.css({
            margin: "0 !important",
            padding: "0 !important"
        });
        var u, o, r = !0, c = t.offset().left, s = 1;
        t.children("li.tick-clones").remove();
        t.addClass("newsticker");
        for (var d = t.wrap("<div class='mask'><\/div>"), l = t.parent().wrap("<div class='tickercontainer'><\/div>"), y = t.children("li"), p = function() {
            s = 1;
            t.append(y.clone(!0).addClass("tick-clones"));
            t.children("li").each(function(n) {
                s += i(this, n).outerWidth(!0)
            })
        }, w = l.outerWidth(!0); s < w; )
            p();
        if (t.width(s),
        u = t.children("li:first").outerWidth(!0),
        o = u / n.speed * 1e3,
        h(u, o),
        n.pause && a(),
        n.buttons) {
            v = i('<ul class="er-controls"><li class="prev glyphicon glyphicon-chevron-left"><\/li><li class="pause glyphicon glyphicon-pause"><\/li><li class="next glyphicon glyphicon-chevron-right"><\/li><\/ul>');
            v.insertAfter(l);
            i("body").on("click", "#" + f + " .er-controls > .pause", function() {
                if (!r)
                    return !1;
                i(this).toggleClass("pause glyphicon-pause play glyphicon-play");
                t.unbind("mouseenter mouseleave");
                r = !1
            });
            i("body").on("click", "#" + f + " .er-controls > .play", function() {
                if (r)
                    return !1;
                i(this).toggleClass("pause glyphicon-pause play glyphicon-play");
                r = !0;
                a();
                var f = t.offset().left
                  , n = f + t.children("li:first").outerWidth(!0) - c
                  , e = o / u * n;
                h(n, e)
            });
            e = !1;
            i("body").on("click", "#" + f + " .er-controls > .next", function() {
                if (r) {
                    i("#" + f + " .er-controls > .pause").toggleClass("pause glyphicon-pause play glyphicon-play");
                    r = !1;
                    return
                }
                if (e)
                    return !1;
                var u = t.children("li:first").outerWidth(!0)
                  , o = u / n.speed * 1e3;
                e = !0;
                t.stop(!0, !0).animate({
                    left: "-=" + u
                }, o, "linear", function() {
                    t.children("li:first").appendTo(t);
                    t.css("left", 0);
                    e = !1
                })
            });
            i("body").on("click", "#" + f + " .er-controls > .prev", function() {
                var u, o;
                if (r) {
                    i("#" + f + " .er-controls > .pause").toggleClass("pause glyphicon-pause play glyphicon-play");
                    r = !1;
                    return
                }
                if (e)
                    return !1;
                u = t.children("li:last").outerWidth(!0);
                t.css("left", "-" + u + "px");
                t.children("li:last").prependTo(t);
                o = u / n.speed * 1e3;
                e = !0;
                t.stop(!0, !0).animate({
                    left: "+=" + u
                }, o, "linear", function() {
                    e = !1
                })
            })
        }
    })
}
;
$( () => {
    String.prototype.padStart || (String.prototype.padStart = function(n, t) {
        return n = n >> 0,
        t = String(typeof t != "undefined" ? t : " "),
        this.length > n ? String(this) : (n = n - this.length,
        n > t.length && (t += t.repeat(n / t.length)),
        t.slice(0, n) + String(this))
    }
    );
    const i = n => Math.floor(n / 60).toString().padStart(2, "0") + ":" + Math.floor(n % 60).toString().padStart(2, "0")
      , n = (n, t, r) => {
        n = n + 1;
        const u = function() {
            if (n -= 1,
            t) {
                if (n < 0) {
                    t.disabled = !1;
                    t.classList.remove("disabled");
                    t.innerText = t.dataset.title;
                    return
                }
                t.innerText = r + ` [${i(n)}]`
            }
            setTimeout(u, 1e3)
        };
        u()
    }
      , t = n => {
        const i = document.querySelector("#otp_popup .otp-popup-content")
          , r = document.querySelector("#otp_popup .otp-input-outer-container");
        if (!i || !r)
            return null;
        const u = i.querySelector(".otp-resend-error");
        u && u.remove();
        const t = document.createElement("span");
        return t.className = "field-validation-error otp-resend-error",
        t.innerHTML = n,
        i.insertBefore(t, r),
        t
    }
      , r = (n, i, r, u, f=null) => {
        const o = !!(document.querySelector("#otp_popup .otp-popup-content") && document.querySelector("#otp_popup .otp-input-outer-container"));
        if (o || f) {
            const v = !isNaN(r) && r > 0;
            let e = v ? r : 10;
            const s = o ? t(n) : (f.innerHTML = n,
            null)
              , h = document.querySelector("#otpthreshold");
            h && (h.textContent = i);
            const c = document.querySelector("#otp_min")
              , l = document.querySelector("#otp_sec")
              , a = () => {
                if (e -= 1,
                e <= 0) {
                    s && s.remove();
                    typeof u == "function" && u();
                    return
                }
                c && (c.textContent = Math.floor(e / 60));
                l && (l.textContent = e % 60);
                setTimeout(a, 1e3)
            }
            ;
            a()
        }
    }
      , u = (n, t) => {
        n.innerText = t;
        const i = parseInt(n.dataset.intervalInSeconds) * 1e3 || 3e4;
        setTimeout( () => {
            n.disabled = !1,
            n.classList.remove("disabled"),
            n.innerText = n.dataset.title
        }
        , i)
    }
    ;
    window.initializeOtp = (i=false, f=0, e, o={}, s="") => {
        const h = document.querySelectorAll(".request_otp_button");
        Array.prototype.slice.call(h).forEach(h => {
            if (!h.onclick && (h.onclick = i => {
                i.preventDefault();
                h.disabled = !0;
                h.classList.add("disabled");
                const f = h.dataset.otpAction;
                let u = h.dataset.otpType;
                if (!u) {
                    const n = document.querySelector(`.otp_type_select[data-otp-action="${f}"]`);
                    u = n.value
                }
                const e = h.dataset.otpSent !== "true"
                  , c = s !== "" ? s : e ? `/otp/request/${u}/${f}` : `/otp/resend/${u}/${f}`;
                window.$.ajax({
                    type: "POST",
                    url: c,
                    data: JSON.stringify(o),
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: i => {
                        const u = document.querySelector("#otp_code_id_container")
                          , f = document.querySelector("#otp_popup .otp-popup-content .otp-resend-error");
                        if (f && f.remove(),
                        !e) {
                            if (i.errorCode === 413) {
                                const n = h.dataset.resendLimitMessage || i.message;
                                h.dataset.otpSent = "false";
                                r(n, i.resendThreshold, i.expiryInSeconds, () => {
                                    h.disabled = !1,
                                    h.classList.remove("disabled"),
                                    h.innerText = h.dataset.title
                                }
                                , h);
                                return
                            }
                            if (i.errorCode === 401) {
                                t(i.message);
                                u && (u.style.display = "none");
                                h.dataset.otpSent = "false";
                                h.disabled = !1;
                                h.classList.remove("disabled");
                                h.innerText = h.dataset.title;
                                return
                            }
                        }
                        if (h.dataset.otpSent = "true",
                        u && (u.innerHTML = `${i.otpId}-`,
                        u.style.display = ""),
                        e)
                            h.disabled = !1,
                            h.classList.remove("disabled"),
                            h.innerText = h.dataset.title;
                        else {
                            const t = parseInt(h.dataset.intervalInSeconds) || 30;
                            n(t, h, i.message)
                        }
                    }
                    ,
                    error: () => {
                        h.disabled = !1,
                        h.classList.remove("disabled")
                    }
                })
            }
            ,
            i)) {
                if (isNaN(f) || f <= 0) {
                    u(h, e);
                    return
                }
                n(f, h, e)
            }
        }
        )
    }
    ;
    window.initializeOtp()
}
);
$( () => {
    const n = () => registerPopup({
        content: "Please try again in few minutes. Code:007OR"
    });
    window.getOtpPopup = (t, i, r, u) => {
        $.ajax({
            type: "POST",
            url: `/OtpV2/OtpPopup`,
            data: JSON.stringify({
                channelType: r,
                actionName: u
            }),
            contentType: "application/json; charset=utf-8",
            dataType: "html",
            success: n => {
                t.innerHTML = n;
                i.disabled = !1;
                const r = t.querySelector("#otp_popup");
                r.classList.add("open");
                window.initializeOtp();
                window.initializeOtpPopup(!0, null);
                window.initializeChangeOtpChannelButton()
            }
            ,
            error: n
        })
    }
    ;
    window.initializeOtpPopupButton = () => {
        const i = document.querySelectorAll(".show_otp_popup_button")
          , t = document.querySelector("#otp_popup_container");
        i.length > 0 && t && Array.from(i).forEach(i => {
            const u = document.querySelector(`.input_verification_value[data-channel-type="${i.dataset.otpChannelType}"]`)
              , f = u.parentElement.querySelector(".dialing_code_prefix_hidden_input");
            let e = "";
            (f && (e = f.value),
            i.onclick) || (i.onclick = () => {
                const f = document.querySelector("#contact_verification_form")
                  , o = document.querySelector("#withdrawal_form");
                f ? $("#contact_verification_form").valid() && (t.innerHTML = "",
                i.disabled = !0,
                $.ajax({
                    type: "POST",
                    url: `/OtpV2/UpdateContact`,
                    data: JSON.stringify({
                        channelType: i.dataset.otpChannelType,
                        dialingCode: e,
                        value: u.value
                    }),
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: n => {
                        if (n.errorCode === 0)
                            getOtpPopup(t, i, i.dataset.otpChannelType, i.dataset.otpActionName);
                        else {
                            const t = document.querySelector("#verification_form_group");
                            if (t) {
                                const u = document.querySelector("#verification_input_note")
                                  , r = document.createElement("span");
                                r.className = "error";
                                r.id = "contact_verification_error";
                                r.innerText = n.message;
                                t.insertBefore(r, u);
                                i.disabled = !1
                            }
                        }
                    }
                    ,
                    error: n
                })) : o ? r({
                    onSuccess: () => getOtpPopup(t, i, i.dataset.otpChannelType, i.dataset.otpActionName)
                }) : getOtpPopup(t, i, i.dataset.otpChannelType, i.dataset.otpActionName)
            }
            )
        }
        )
    }
    ;
    window.initializeOtpPopupButton();
    const t = (t, i, r, u, f, e) => {
        const o = document.querySelector("#loader_container");
        o.classList.remove("hide");
        o.classList.add("display");
        t.innerHTML = "";
        $.ajax({
            type: "POST",
            url: `/OtpV2/ContactVerificationForm`,
            data: JSON.stringify({
                channelType: i,
                actionName: r,
                redirectRoute: u,
                showDismissButton: f
            }),
            contentType: "application/json; charset=utf-8",
            dataType: "html",
            success: i => {
                o.classList.remove("display");
                o.classList.add("hide");
                t.innerHTML = i;
                const r = document.querySelector("#contact_verification_form")
                  , u = document.querySelector(".show_otp_popup_button");
                r && u && ($("#contact_verification_form").validate(),
                r.addEventListener("keydown", n => {
                    n.key === "Enter" && n.target.nodeName === "INPUT" && (n.preventDefault(),
                    u.click())
                }
                ));
                const f = document.querySelector("#whatsapp_verification_input");
                f && ($("#whatsapp_verification_input").rules("add", {
                    required: !0,
                    regex: /^(?=.*[0-9])[0-9\-]+$/,
                    contactNumberLength: !0,
                    messages: {
                        required: e.translations.whatsappRequiredMessage,
                        regex: e.translations.whatsappDigitErrorMessage
                    }
                }),
                f.onfocus = () => {
                    const n = document.querySelector("#contact_verification_error");
                    n && n.remove()
                }
                );
                const s = document.querySelector("#email_verification_input");
                s && ($("#email_verification_input").rules("add", {
                    required: !0,
                    email: !0,
                    messages: {
                        required: e.translations.emailRequiredMessage,
                        email: e.translations.emailErrorMessage
                    }
                }),
                s.onfocus = () => {
                    const n = document.querySelector("#contact_verification_error");
                    n && n.remove()
                }
                );
                initializeCountryCodeDropdown({
                    parentForm: "#contact_verification_form",
                    translations: {
                        contactNumberLengthErrorMessage: e.translations.whatsappLengthErrorMessage
                    }
                });
                r.onsubmit = t => {
                    t.preventDefault();
                    const h = document.querySelector("#request_verification_token")
                      , i = document.querySelector(".otp_hidden_input")
                      , r = document.querySelector(".input_verification_value")
                      , f = r.parentElement.querySelector(".dialing_code_prefix_hidden_input")
                      , e = document.querySelector("#otp_popup_container .otp-popup-content .field-validation-error")
                      , o = document.querySelector("#otp_submit_button");
                    let s = "";
                    f && (s = f.value);
                    e && e.remove();
                    u.disabled = !0;
                    o.disabled = !0;
                    $.ajax({
                        type: "POST",
                        url: `/OtpV2/SubmitVerification`,
                        headers: {
                            requestVerificationToken: h.value
                        },
                        data: JSON.stringify({
                            otp: i.value,
                            dialingCode: s,
                            value: r.value,
                            channelType: i.dataset.channelType
                        }),
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: n => {
                            if (n.errorCode === 0) {
                                const r = document.querySelector("#otp_popup");
                                r.classList.remove("open");
                                const t = document.querySelector("#verification_success_popup")
                                  , u = document.querySelector("#verification_success_message")
                                  , i = document.querySelector("#close_verification_success_btn");
                                t && (t.classList.add("open"),
                                u.innerText = n.message,
                                i && (i.onclick = () => {
                                    window.location.reload()
                                }
                                ))
                            } else {
                                const t = document.querySelector("#otp_popup_container .otp-popup-content")
                                  , i = document.querySelector(".otp-input-outer-container");
                                if (t) {
                                    const r = document.createElement("span");
                                    r.className = "field-validation-error";
                                    r.innerText = n.message;
                                    t.insertBefore(r, i)
                                }
                                o.disabled = !1
                            }
                        }
                        ,
                        error: n
                    })
                }
                ;
                window.initializeChangeVerificationMethod(e);
                window.initializeOtp();
                window.initializeOtpPopup(!0, null);
                window.initializeOtpPopupButton();
                const h = document.querySelector("#dismiss_verification_popup_button");
                if (h) {
                    const n = document.querySelector("#contact_verification_popup");
                    h.onclick = () => {
                        n.classList.remove("open")
                    }
                }
            }
            ,
            error: n
        })
    }
    ;
    window.initializeVerificationForm = n => {
        const i = document.querySelector("#contact_verification_container");
        i && t(i, i.dataset.channelType, i.dataset.actionName, i.dataset.redirectRoute, i.dataset.showDismissButton, n)
    }
    ;
    window.initializeChangeVerificationMethod = n => {
        const i = document.querySelector("#contact_verification_container")
          , r = document.querySelectorAll(".change_verification_method_button");
        i && r.length > 0 && Array.from(r).forEach(r => {
            r.onclick || (r.onclick = () => {
                t(i, r.dataset.channelType, r.dataset.actionName, r.dataset.redirectRoute, r.dataset.showDismissButton, n)
            }
            )
        }
        )
    }
    ;
    window.initializeChangeOtpChannelButton = () => {
        const t = document.querySelectorAll(".change_otp_channel_button")
          , n = document.querySelector(".show_otp_popup_button")
          , i = document.querySelector(`.otp_hidden_input`);
        t && Array.from(t).forEach(t => {
            t.onclick || (t.onclick = () => {
                i.dataset.channelType = t.dataset.channelType,
                n.dataset.otpChannelType = t.dataset.channelType,
                n.dataset.otpActionName = t.dataset.actionName,
                n.click()
            }
            )
        }
        )
    }
    ;
    const i = (n, t) => {
        const i = document.createElement("div");
        i.className = "form-group";
        i.id = "error_container";
        const r = document.createElement("div");
        r.className = "alert-danger";
        r.innerText = t;
        i.appendChild(r);
        n.insertBefore(i, withdrawalForm)
    }
      , r = ({onSuccess: t}) => {
        const u = document.querySelector("#withdrawal_form")
          , r = document.querySelector("#withdrawal_container")
          , f = document.querySelector("#error_container")
          , e = document.querySelector("#otp_popup");
        if (f && f.remove(),
        u) {
            const f = Object.fromEntries(new FormData(u).entries());
            $.ajax({
                type: "POST",
                url: `/Wallet/PreWithdrawalCheck`,
                data: JSON.stringify(f),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: f => {
                    if (f.errorCode === 0)
                        if (f.isOtpRequired)
                            t();
                        else {
                            const e = Object.fromEntries(new FormData(u).entries())
                              , t = document.querySelector("input[name=__RequestVerificationToken]")
                              , o = document.querySelector("input[type=radio][name=PaymentType]:checked").value
                              , f = document.querySelector(".otp-popup-content .field-validation-error");
                            f && f.remove();
                            $.ajax({
                                type: "POST",
                                url: `/Wallet/${o}WithdrawalAsync`,
                                headers: {
                                    __RequestVerificationToken: t.value
                                },
                                data: e,
                                dataType: "json",
                                success: n => {
                                    n.errorCode === 0 ? (registerPopup({
                                        content: n.message
                                    }),
                                    window.location.replace("/home")) : (t.outerHTML = n.antiForgeryHtmlInput,
                                    r && i(r, n.message))
                                }
                                ,
                                error: n
                            })
                        }
                    else
                        e && e.classList.remove("open"),
                        r && i(r, f.message)
                }
                ,
                error: n
            })
        }
    }
    ;
    window.initializeOtpPopup = (t=true, i=null) => {
        const u = document.querySelector("#otp_popup")
          , f = document.querySelector(".request_otp_button");
        if (u) {
            f && t && f.click();
            const e = document.querySelector("#otp_input");
            if (e) {
                const s = u.dataset.channelType
                  , t = document.querySelectorAll("#otp_fake_inputs div")
                  , f = document.querySelector(`.otp_hidden_input[data-channel-type="${s}"]`)
                  , o = document.querySelector("#otp_submit_button")
                  , l = document.querySelector(`.show_otp_popup_button[data-otp-channel-type="${s}"]`)
                  , a = document.querySelector("#close_otp_popup_button")
                  , h = function() {
                    t.forEach(n => n.classList.remove("focused"))
                }
                  , c = function(n) {
                    h();
                    n < t.length && t[n].classList.add("focused")
                };
                e.addEventListener("input", n => {
                    const i = n.target.value;
                    for (let n = 0; n < t.length; n++)
                        i[n] ? (t[n].textContent = i[n],
                        t[n].classList.add("filled")) : (t[n].textContent = "",
                        t[n].classList.remove("filled"));
                    c(i.length);
                    f.value = i;
                    o.disabled = f.value.length < 6 ? !0 : !1
                }
                );
                e.addEventListener("focus", () => {
                    c(e.value.length)
                }
                );
                e.addEventListener("blur", () => {
                    h()
                }
                );
                o.onclick = () => {
                    const t = document.querySelector("#withdrawal_form");
                    f.value.length == 6 && (t ? r({
                        onSuccess: () => {
                            const u = Object.fromEntries(new FormData(t).entries())
                              , i = document.querySelector("input[name=__RequestVerificationToken]")
                              , f = document.querySelector("input[type=radio][name=PaymentType]:checked").value
                              , r = document.querySelector(".otp-popup-content .field-validation-error");
                            r && r.remove();
                            $.ajax({
                                type: "POST",
                                url: `/Wallet/${f}WithdrawalAsync`,
                                headers: {
                                    __RequestVerificationToken: i.value
                                },
                                data: u,
                                dataType: "json",
                                success: n => {
                                    if (n.errorCode === 0) {
                                        const t = document.querySelector(".otp-popup");
                                        t && t.classList.remove("open");
                                        registerPopup({
                                            content: n.message
                                        });
                                        window.location.replace("/home")
                                    } else {
                                        const t = document.querySelector(".otp-popup-content")
                                          , r = document.querySelector(".otp-input-outer-container");
                                        if (i.outerHTML = n.antiForgeryHtmlInput,
                                        t) {
                                            const i = document.createElement("span");
                                            i.className = "field-validation-error";
                                            i.innerText = n.message;
                                            t.insertBefore(i, r)
                                        }
                                    }
                                }
                                ,
                                error: n
                            })
                        }
                    }) : i ? i.dispatchEvent(new Event("submit",{
                        bubbles: !0,
                        cancelable: !0
                    })) : l.closest("form").dispatchEvent(new Event("submit",{
                        bubbles: !0,
                        cancelable: !0
                    })))
                }
                ;
                a.onclick = () => {
                    u.classList.remove("open")
                }
            }
        }
    }
    ;
    window.initializeOtpPopup(!0, null);
    window.initializeLoginOtpPopupButton = () => {
        const i = document.querySelector("#telegram_login_get_otp_submit_button")
          , e = document.querySelector("#login_otp_username")
          , t = document.querySelector("#login_otp_form")
          , r = document.querySelector("#telegram_login_popup_modal")
          , u = document.querySelector("#telegram_error_popup_modal")
          , f = document.querySelector("#login_otp_popup_container");
        if (i && (i.onclick = () => {
            if (t) {
                if ($(t).valid() == !1)
                    return;
                const h = i.dataset.otpChannel
                  , o = e.value
                  , s = `/login-otp/request/${h}`;
                $.ajax({
                    type: "POST",
                    url: s,
                    data: JSON.stringify({
                        username: o
                    }),
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: t => {
                        switch (t.errorCode) {
                        case 400:
                        case 0:
                            $.ajax({
                                type: "POST",
                                url: `/Account/LoginOtpPopup`,
                                data: JSON.stringify({
                                    channelType: i.dataset.otpChannel,
                                    receiver: t.receiver
                                }),
                                contentType: "application/json; charset=utf-8",
                                dataType: "html",
                                success: n => {
                                    f.innerHTML = n;
                                    $(".modal").modal("hide");
                                    const r = f.querySelector("#otp_popup");
                                    r.classList.add("open");
                                    window.initializeOtp(!0, t.expiryInSeconds, t.message, {
                                        username: o
                                    }, s);
                                    window.initializeOtpPopup(!1, null);
                                    const i = document.querySelector("#otp_code_id_container");
                                    i && (t.otpId !== null || t.otpId !== "") && (i.innerHTML = `${t.otpId}-`)
                                }
                                ,
                                error: n
                            });
                            break;
                        case 37:
                        case 39:
                            const h = document.querySelector("#error_container");
                            h.innerHTML = "";
                            const e = document.createElement("div");
                            e.className = "alert-danger popup-error-container";
                            const c = document.createElement("div");
                            if (c.innerText = t.message,
                            e.appendChild(c),
                            t.statusReason) {
                                const n = document.createElement("div");
                                n.className = "alert-failure-reason";
                                n.innerText = `${t.statusReason}`;
                                e.appendChild(n)
                            }
                            h.appendChild(e);
                            break;
                        default:
                            if (u) {
                                const n = u.querySelector("#otp_login_error");
                                n.innerHTML = t.message;
                                $(r).modal("hide");
                                $(u).modal("show")
                            } else
                                registerPopup({
                                    content: t.message
                                })
                        }
                    }
                    ,
                    error: n
                })
            }
        }
        ),
        t && (t.addEventListener("submit", n => {
            n.preventDefault(),
            t.submit()
        }
        ),
        t.addEventListener("keydown", n => {
            n.key === "Enter" && (n.preventDefault(),
            i.click())
        }
        )),
        r)
            $(r).on("hidden.bs.modal", () => {
                const n = document.querySelector("#error_container");
                n && (n.innerHTML = "")
            }
            )
    }
    ;
    window.initializeLoginOtpPopupButton()
}
);
$( () => {
    window.handleSocialAccountSignIn = n => {
        const t = document.querySelector("#social_login_form")
          , i = document.querySelector("#login_social_token_input")
          , r = document.querySelector("#login_social_link_client_input");
        t && i && r && (i.value = n.token,
        r.value = n.socialLinkClient,
        t.submit())
    }
    ,
    window.handleSocialAccountSignUp = n => {
        const t = n => $.ajax({
            type: "GET",
            url: `/validate/social-account?Email=${n.socialContact}&SocialId=${n.socialId}&SocialLinkClient=${n.socialLinkClient}`,
            dataType: "JSON"
        });
        $.ajax({
            type: "POST",
            url: "/Account/GetSocialAccountInfo",
            data: {
                token: n.token,
                socialLinkClient: n.socialLinkClient
            },
            dataType: "JSON",
            success: async i => {
                if (i.errorCode === 0) {
                    const r = i.socialAccountProfile
                      , u = await t(r);
                    if (u === !0) {
                        const t = document.querySelector("#register_modal");
                        if (t) {
                            const u = document.querySelector("#register_method_selection_modal");
                            $(u).modal("hide");
                            t.dataset.socialLinkClient = r.socialLinkClient;
                            const i = document.createElement("input");
                            i.type = "hidden";
                            i.id = "temp_access_token_input";
                            i.value = n.token;
                            t.appendChild(i);
                            $(t).modal("show")
                        }
                    } else
                        registerPopup({
                            content: u,
                            onClose: () => {
                                const n = document.querySelector("#register_method_selection_modal");
                                n && $(n).modal("show")
                            }
                        })
                } else
                    registerPopup({
                        content: i.message
                    })
            }
        })
    }
    ,
    window.initializeGoogleLogin = n => {
        const u = n.clientId;
        let t = null
          , i = null;
        const f = t => {
            const u = t.access_token
              , f = n.socialLinkClient
              , r = {
                token: u,
                socialLinkClient: f
            };
            switch (i) {
            case "signin":
                return handleSocialAccountSignIn(r);
            case "signup":
                return handleSocialAccountSignUp(r);
            case "link-account":
                return handleLinkAccount(r);
            case "unlink-account":
                return handleUnlinkAccount(r);
            default:
                return
            }
        }
          , r = (n="") => {
            window.google?.accounts?.oauth2 && (t = google.accounts.oauth2.initTokenClient({
                client_id: u,
                scope: "openid email profile",
                ...(n ? {
                    prompt: n
                } : {}),
                callback: f
            }))
        }
        ;
        r();
        document.addEventListener("click", n => {
            const u = n.target.closest(".google_signin_button");
            u && (i = u.dataset.socialAction,
            i === "unlink-account" ? r("consent") : r(),
            t) && t.requestAccessToken()
        }
        )
    }
}
);
( () => {
    const n = () => {
        const i = document.querySelectorAll("[data-drawer-toggle]")
          , r = document.querySelectorAll("[data-input-drawer-toggle]")
          , o = () => {
            const f = () => {
                const n = document.createElement("div");
                n.className = "drawer-container";
                n.dataset.drawer = "input";
                const t = document.createElement("div");
                t.className = "drawer-handle";
                const i = document.createElement("div");
                return i.className = "drawer-content",
                n.appendChild(t),
                n.appendChild(i),
                document.body.appendChild(n),
                n
            }
              , n = f()
              , i = n => {
                const u = n.name
                  , r = document.createElement("div");
                return r.id = `${u}_section`,
                r.style.display = "none",
                Array.from(n.options).forEach(f => {
                    const o = document.createElement("label");
                    o.textContent = f.text;
                    const e = document.createElement("input");
                    e.type = "radio";
                    e.name = `${u}DrawerOption`;
                    e.value = f.value;
                    e.checked = e.value === n.value;
                    e.onchange = () => {
                        if (n.value = e.value,
                        n.onchange && n.onchange(),
                        t(),
                        n.dataset.drawerChainTarget) {
                            const t = document.querySelector(`#${n.dataset.drawerChainTarget}`)
                              , r = document.querySelector(`#${t.name}_section`);
                            r && r.remove();
                            document.querySelector('[data-drawer="input"] .drawer-content').appendChild(i(t));
                            window.dispatchEvent(new Event("resize"))
                        }
                    }
                    ;
                    o.appendChild(e);
                    r.appendChild(o)
                }
                ),
                r
            }
              , e = t => {
                const i = n.querySelectorAll(".drawer-content > div");
                Array.from(i).forEach(n => {
                    n.style.display = "none"
                }
                );
                n.querySelector(`#${t.name}_section`).style.display = "flex"
            }
            ;
            Array.from(r).forEach(r => {
                document.querySelector('[data-drawer="input"] .drawer-content').appendChild(i(r)),
                window.insertPseudoEventListener(r, () => {
                    e(r),
                    t({
                        excludeTarget: "input"
                    }),
                    u(),
                    n.classList.add("displayed")
                }
                )
            }
            )
        }
          , u = () => {
            n && n.classList.add("displayed"),
            document.querySelector("body").classList.add("overlay")
        }
          , f = () => {
            n && n.classList.remove("displayed"),
            document.querySelector("body").classList.remove("overlay")
        }
          , t = (n=false) => {
            let t = document.querySelectorAll(`[data-drawer]`);
            n && (t = document.querySelectorAll(`[data-drawer]:not([data-drawer="${n}"])`));
            Array.from(t).forEach(n => {
                n.classList.remove("displayed")
            }
            );
            f()
        }
          , s = n => {
            const t = document.querySelector(`[data-drawer="${n}"`);
            t.classList.remove("displayed");
            f()
        }
        ;
        r && o();
        const e = document.querySelectorAll(".drawer-handle")
          , n = document.querySelector("#backdrop_overlay");
        n && (n.onclick = () => {
            t()
        }
        );
        i && Array.from(i).forEach(n => {
            n.onclick = () => {
                const i = document.querySelector(`[data-drawer="${n.dataset.drawerToggle}"`);
                t(n.dataset.drawerToggle);
                u();
                i.classList.add("displayed")
            }
        }
        );
        e && Array.from(e).forEach(n => {
            n.onclick = () => {
                const t = n.parentElement.dataset.drawer;
                s(t)
            }
        }
        )
    }
    ;
    n()
}
)();
$( () => {
    const f = document.querySelector("#announcement_list");
    f && f.childElementCount > 0 && $(f).endlessRiver();
    const n = document.querySelector("#popular_slots_games");
    if (n) {
        const r = document.querySelector("#previous_popular_slots_game")
          , i = document.querySelector("#next_popular_slots_game")
          , t = 250;
        r.onclick = () => {
            const i = Math.ceil(n.querySelector(".item").clientWidth)
              , r = Math.ceil(n.scrollLeft / i) - 1
              , u = Math.floor(n.scrollWidth / i)
              , f = Math.ceil(r * i);
            if (r < 0) {
                $(n).animate({
                    scrollLeft: u * i
                }, t);
                return
            }
            if (u - r == 1 && n.scrollLeft - f < i) {
                $(n).animate({
                    scrollLeft: Math.ceil((r - 1) * i)
                }, t);
                return
            }
            $(n).animate({
                scrollLeft: f
            }, t)
        }
        ;
        i.onclick = () => {
            const i = Math.ceil(n.querySelector(".item").clientWidth)
              , r = Math.ceil(n.scrollLeft / i) + 1
              , f = Math.floor(n.scrollWidth / i)
              , u = Math.ceil(r * i);
            if (r >= f) {
                $(n).animate({
                    scrollLeft: 0
                }, t);
                return
            }
            if (n.scrollWidth - n.scrollLeft <= n.clientWidth && n.scrollWidth - u < n.clientWidth) {
                $(n).animate({
                    scrollLeft: 0
                }, t);
                return
            }
            $(n).animate({
                scrollLeft: u
            }, t)
        }
        ;
        setInterval(function() {
            i.click()
        }, 5e3)
    }
    const t = document.querySelector("#new_slots_games");
    if (t) {
        const i = document.querySelector("#previous_new_slots_game")
          , r = document.querySelector("#next_new_slots_game")
          , n = 250;
        i.onclick = () => {
            const i = Math.ceil(t.querySelector("a").clientWidth)
              , r = Math.ceil(t.scrollLeft / i) - 1
              , u = Math.floor(t.scrollWidth / i)
              , f = Math.ceil(r * i);
            if (r < 0) {
                $(t).animate({
                    scrollLeft: u * i
                }, n);
                return
            }
            if (u - r == 1 && t.scrollLeft - f < i) {
                $(t).animate({
                    scrollLeft: Math.ceil((r - 1) * i)
                }, n);
                return
            }
            $(t).animate({
                scrollLeft: f
            }, n)
        }
        ;
        r.onclick = () => {
            const i = Math.ceil(t.querySelector("a").clientWidth)
              , r = Math.ceil(t.scrollLeft / i) + 1
              , f = Math.floor(t.scrollWidth / i)
              , u = Math.ceil(r * i);
            if (r >= f) {
                $(t).animate({
                    scrollLeft: 0
                }, n);
                return
            }
            if (t.scrollWidth - t.scrollLeft <= t.clientWidth && t.scrollWidth - u < t.clientWidth) {
                $(t).animate({
                    scrollLeft: 0
                }, n);
                return
            }
            $(t).animate({
                scrollLeft: u
            }, n)
        }
    }
    const i = document.querySelector(".favourite_games");
    if (i) {
        const t = document.querySelector("#previous_favourite_game")
          , r = document.querySelector("#next_favourite_game")
          , n = 250;
        t.onclick = () => {
            const t = Math.ceil(i.querySelector("a").clientWidth)
              , r = Math.ceil(i.scrollLeft / t) - 1
              , u = Math.floor(i.scrollWidth / t)
              , f = Math.ceil(r * t);
            if (r < 0) {
                $(i).animate({
                    scrollLeft: u * t
                }, n);
                return
            }
            if (u - r == 1 && i.scrollLeft - f < t) {
                $(i).animate({
                    scrollLeft: Math.ceil((r - 1) * t)
                }, n);
                return
            }
            $(i).animate({
                scrollLeft: f
            }, n)
        }
        ;
        r.onclick = () => {
            const t = Math.ceil(i.querySelector("a").clientWidth)
              , r = Math.ceil(i.scrollLeft / t) + 1
              , f = Math.floor(i.scrollWidth / t)
              , u = Math.ceil(r * t);
            if (r >= f) {
                $(i).animate({
                    scrollLeft: 0
                }, n);
                return
            }
            if (i.scrollWidth - i.scrollLeft <= i.clientWidth && i.scrollWidth - u < i.clientWidth) {
                $(i).animate({
                    scrollLeft: 0
                }, n);
                return
            }
            $(i).animate({
                scrollLeft: u
            }, n)
        }
    }
    const r = document.querySelector("#recent_games");
    if (r) {
        const t = document.querySelector("#previous_recent_game")
          , i = document.querySelector("#next_recent_game")
          , n = 250;
        t.onclick = () => {
            const t = Math.ceil(r.querySelector("a").clientWidth)
              , i = Math.ceil(r.scrollLeft / t) - 1
              , u = Math.floor(r.scrollWidth / t)
              , f = Math.ceil(i * t);
            if (i < 0) {
                $(r).animate({
                    scrollLeft: u * t
                }, n);
                return
            }
            if (u - i == 1 && r.scrollLeft - f < t) {
                $(r).animate({
                    scrollLeft: Math.ceil((i - 1) * t)
                }, n);
                return
            }
            $(r).animate({
                scrollLeft: f
            }, n)
        }
        ;
        i.onclick = () => {
            const t = Math.ceil(r.querySelector("a").clientWidth)
              , i = Math.ceil(r.scrollLeft / t) + 1
              , f = Math.floor(r.scrollWidth / t)
              , u = Math.ceil(i * t);
            if (i >= f) {
                $(r).animate({
                    scrollLeft: 0
                }, n);
                return
            }
            if (r.scrollWidth - r.scrollLeft <= r.clientWidth && r.scrollWidth - u < r.clientWidth) {
                $(r).animate({
                    scrollLeft: 0
                }, n);
                return
            }
            $(r).animate({
                scrollLeft: u
            }, n)
        }
    }
    const u = document.querySelector("#home_popular_games");
    if (u) {
        const t = document.querySelector("#previous_home_popular_game")
          , i = document.querySelector("#next_home_popular_game")
          , n = 250;
        t.onclick = () => {
            const t = Math.ceil(u.querySelector(".game-container").clientWidth)
              , i = Math.ceil(u.scrollLeft / t) - 1
              , r = Math.floor(u.scrollWidth / t)
              , f = Math.ceil(i * t);
            if (i < 0) {
                $(u).animate({
                    scrollLeft: r * t
                }, n);
                return
            }
            if (r - i == 1 && u.scrollLeft - f < t) {
                $(u).animate({
                    scrollLeft: Math.ceil((i - 1) * t)
                }, n);
                return
            }
            $(u).animate({
                scrollLeft: f
            }, n)
        }
        ;
        i.onclick = () => {
            const t = Math.ceil(u.querySelector(".game-container").clientWidth)
              , i = Math.ceil(u.scrollLeft / t) + 1
              , f = Math.floor(u.scrollWidth / t)
              , r = Math.ceil(i * t);
            if (i >= f) {
                $(u).animate({
                    scrollLeft: 0
                }, n);
                return
            }
            if (u.scrollWidth - u.scrollLeft <= u.clientWidth && u.scrollWidth - r < u.clientWidth) {
                $(u).animate({
                    scrollLeft: 0
                }, n);
                return
            }
            $(u).animate({
                scrollLeft: r
            }, n)
        }
    }
    const o = document.getElementById("menu_preview_container");
    if (o) {
        const n = document.querySelectorAll("#main_menu_outer_container a[data-game-category]")
          , t = document.querySelectorAll("#menu_preview_container .game-list-container");
        n.length && n.forEach(i => {
            i.onclick = r => {
                if (window.innerWidth <= 1024) {
                    r.preventDefault();
                    const e = i.dataset.gameCategory
                      , u = document.querySelector(`#menu_preview_container .game-list-container[data-game-category=${e}] .game-list`);
                    u.querySelector(".game_list_content") || $.ajax({
                        type: "GET",
                        url: `/home/menu-games`,
                        contentType: "application/json; charset=utf-8",
                        dataType: "html",
                        data: {
                            menu: e,
                            platform: "Default"
                        },
                        success: n => {
                            u.innerHTML = n;
                            const t = u.querySelectorAll(".view_all");
                            t.length && t.forEach(n => {
                                n.onclick = () => {
                                    const t = u.querySelectorAll(`.game-item[hidden]`);
                                    t.forEach(n => {
                                        n.hidden = !1
                                    }
                                    );
                                    n.style.display = "none"
                                }
                            }
                            )
                        }
                        ,
                        error: () => registerPopup({
                            content: "Please try again in few minutes. Code:003GL"
                        })
                    });
                    n.forEach(n => {
                        n.dataset.active = !1
                    }
                    );
                    const o = i.dataset.gameCategory
                      , f = document.querySelector(`#menu_preview_container .game-list-container[data-game-category="${o}"]`);
                    if (f) {
                        const n = f.classList.contains("active");
                        t.forEach(n => {
                            n.classList.remove("active")
                        }
                        );
                        n || (i.dataset.active = !0,
                        f.classList.add("active"))
                    }
                }
            }
        }
        )
    }
    const e = document.querySelector("#banner_carousel");
    if (e) {
        $(e).slick({
            slidesToShow: 1,
            slidesToScroll: 1,
            dots: !0,
            dotsClass: "carousel-indicators",
            infinite: !0,
            autoplay: !0,
            autoplaySpeed: 5e3,
            arrows: !0,
            prevArrow: $(".main-prev"),
            nextArrow: $(".main-next"),
            adaptiveHeight: !1
        });
        const n = document.querySelectorAll(".banner-group-vertical");
        Array.from(n).forEach(n => {
            const t = n.closest(".vertical-wrapper");
            let i = !1
              , r = !1;
            t && (i = t.querySelector(".sub-up"),
            r = t.querySelector(".sub-down"));
            $(n).slick({
                slidesToShow: 1,
                slidesToScroll: 1,
                dots: !0,
                dotsClass: "carousel-indicators",
                infinite: !0,
                autoplay: !0,
                autoplaySpeed: 3e3,
                adaptiveHeight: !1,
                vertical: !0,
                verticalSwiping: !0,
                arrows: !0,
                prevArrow: i,
                nextArrow: r
            });
            $(n).on("touchend mouseover mouseout", function() {
                $("#banner_carousel").slick("slickSetOption", "swipe", !0, !1)
            })
        }
        )
    }
}
);
window.addEventListener("DOMContentLoaded", () => {
    $("body").on("click", "[data-require-login]", function(n) {
        if (n.preventDefault(),
        document.body.dataset.loggedIn === "true") {
            const n = this.dataset.requireLogin;
            n && (window.location.href = n);
            return
        }
        $(".modal").modal("hide");
        $("#login_modal").modal("show")
    })
}
);
