PageSourceSearch

https://www.guardsquare.com/hubfs/hub_generated/template_assets/1/…/1790842818723/template_slick.min.js

js guardsquare.com collected 2026-10-01 10:15:00 UTC 83,393 bytes, 2,012 lines download raw bytes

vendor: 83,393 bytes, lines 1-2012
1(function(factory) {
2    "use strict";
3    if (typeof define === "function" && define.amd) {
4        define(["jquery"], factory)
5    } else if (typeof exports !== "undefined") {
6        module.exports = factory(require("jquery"))
7    } else {
8        factory(jQuery)
9    }
10})(function($) {
11    "use strict";
12    var Slick = window.Slick || {};
13    Slick = function() {
14        var instanceUid = 0;
15
16        function Slick(element, settings) {
17            var _ = this,
18                dataSettings;
19            _.defaults = {
20                accessibility: true,
21                adaptiveHeight: false,
22                appendArrows: $(element),
23                appendDots: $(element),
24                arrows: true,
25                asNavFor: null,
26                prevArrow: '<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',
27                nextArrow: '<button class="slick-next" aria-label="Next" type="button">Next</button>',
28                autoplay: false,
29                autoplaySpeed: 3e3,
30                centerMode: false,
31                centerPadding: "50px",
32                cssEase: "ease",
33                customPaging: function(slider, i) {
34                    return $('<button type="button" />').text(i + 1)
35                },
36                dots: false,
37                dotsClass: "slick-dots",
38                draggable: true,
39                easing: "linear",
40                edgeFriction: .35,
41                fade: false,
42                focusOnSelect: false,
43                focusOnChange: false,
44                infinite: true,
45                initialSlide: 0,
46                lazyLoad: "ondemand",
47                mobileFirst: false,
48                pauseOnHover: true,
49                pauseOnFocus: true,
50                pauseOnDotsHover: false,
51                respondTo: "window",
52                responsive: null,
53                rows: 1,
54                rtl: false,
55                slide: "",
56                slidesPerRow: 1,
57                slidesToShow: 1,
58                slidesToScroll: 1,
59                speed: 500,
60                swipe: true,
61                swipeToSlide: false,
62                touchMove: true,
63                touchThreshold: 5,
64                useCSS: true,
65                useTransform: true,
66                variableWidth: false,
67                vertical: false,
68                verticalSwiping: false,
69                waitForAnimate: true,
70                zIndex: 1e3
71            };
72            _.initials = {
73                animating: false,
74                dragging: false,
75                autoPlayTimer: null,
76                currentDirection: 0,
77                currentLeft: null,
78                currentSlide: 0,
79                direction: 1,
80                $dots: null,
81                listWidth: null,
82                listHeight: null,
83                loadIndex: 0,
84                $nextArrow: null,
85                $prevArrow: null,
86                scrolling: false,
87                slideCount: null,
88                slideWidth: null,
89                $slideTrack: null,
90                $slides: null,
91                sliding: false,
92                slideOffset: 0,
93                swipeLeft: null,
94                swiping: false,
95                $list: null,
96                touchObject: {},
97                transformsEnabled: false,
98                unslicked: false
99            };
100            $.extend(_, _.initials);
101            _.activeBreakpoint = null;
102            _.animType = null;
103            _.animProp = null;
104            _.breakpoints = [];
105            _.breakpointSettings = [];
106            _.cssTransitions = false;
107            _.focussed = false;
108            _.interrupted = false;
109            _.hidden = "hidden";
110            _.paused = true;
111            _.positionProp = null;
112            _.respondTo = null;
113            _.rowCount = 1;
114            _.shouldClick = true;
115            _.$slider = $(element);
116            _.$slidesCache = null;
117            _.transformType = null;
118            _.transitionType = null;
119            _.visibilityChange = "visibilitychange";
120            _.windowWidth = 0;
121            _.windowTimer = null;
122            dataSettings = $(element).data("slick") || {};
123            _.options = $.extend({}, _.defaults, settings, dataSettings);
124            _.currentSlide = _.options.initialSlide;
125            _.originalSettings = _.options;
126            if (typeof document.mozHidden !== "undefined") {
127                _.hidden = "mozHidden";
128                _.visibilityChange = "mozvisibilitychange"
129            } else if (typeof document.webkitHidden !== "undefined") {
130                _.hidden = "webkitHidden";
131                _.visibilityChange = "webkitvisibilitychange"
132            }
133            _.autoPlay = $.proxy(_.autoPlay, _);
134            _.autoPlayClear = $.proxy(_.autoPlayClear, _);
135            _.autoPlayIterator = $.proxy(_.autoPlayIterator, _);
136            _.changeSlide = $.proxy(_.changeSlide, _);
137            _.clickHandler = $.proxy(_.clickHandler, _);
138            _.selectHandler = $.proxy(_.selectHandler, _);
139            _.setPosition = $.proxy(_.setPosition, _);
140            _.swipeHandler = $.proxy(_.swipeHandler, _);
141            _.dragHandler = $.proxy(_.dragHandler, _);
142            _.keyHandler = $.proxy(_.keyHandler, _);
143            _.instanceUid = instanceUid++;
144            _.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/;
145            _.registerBreakpoints();
146            _.init(true)
147        }
148        return Slick
149    }();
150    Slick.prototype.activateADA = function() {
151        var _ = this;
152        _.$slideTrack.find(".slick-active").attr({
153            "aria-hidden": "false"
154        }).find("a, input, button, select").attr({
155            tabindex: "0"
156        })
157    };
158    Slick.prototype.addSlide = Slick.prototype.slickAdd = function(markup, index, addBefore) {
159        var _ = this;
160        if (typeof index === "boolean") {
161            addBefore = index;
162            index = null
163        } else if (index < 0 || index >= _.slideCount) {
164            return false
165        }
166        _.unload();
167        if (typeof index === "number") {
168            if (index === 0 && _.$slides.length === 0) {
169                $(markup).appendTo(_.$slideTrack)
170            } else if (addBefore) {
171                $(markup).insertBefore(_.$slides.eq(index))
172            } else {
173                $(markup).insertAfter(_.$slides.eq(index))
174            }
175        } else {
176            if (addBefore === true) {
177                $(markup).prependTo(_.$slideTrack)
178            } else {
179                $(markup).appendTo(_.$slideTrack)
180            }
181        }
182        _.$slides = _.$slideTrack.children(this.options.slide);
183        _.$slideTrack.children(this.options.slide).detach();
184        _.$slideTrack.append(_.$slides);
185        _.$slides.each(function(index, element) {
186            $(element).attr("data-slick-index", index)
187        });
188        _.$slidesCache = _.$slides;
189        _.reinit()
190    };
191    Slick.prototype.animateHeight = function() {
192        var _ = this;
193        if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
194            var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
195            _.$list.animate({
196                height: targetHeight
197            }, _.options.speed)
198        }
199    };
200    Slick.prototype.animateSlide = function(targetLeft, callback) {
201        var animProps = {},
202            _ = this;
203        _.animateHeight();
204        if (_.options.rtl === true && _.options.vertical === false) {
205            targetLeft = -targetLeft
206        }
207        if (_.transformsEnabled === false) {
208            if (_.options.vertical === false) {
209                _.$slideTrack.animate({
210                    left: targetLeft
211                }, _.options.speed, _.options.easing, callback)
212            } else {
213                _.$slideTrack.animate({
214                    top: targetLeft
215                }, _.options.speed, _.options.easing, callback)
216            }
217        } else {
218            if (_.cssTransitions === false) {
219                if (_.options.rtl === true) {
220                    _.currentLeft = -_.currentLeft
221                }
222                $({
223                    animStart: _.currentLeft
224                }).animate({
225                    animStart: targetLeft
226                }, {
227                    duration: _.options.speed,
228                    easing: _.options.easing,
229                    step: function(now) {
230                        now = Math.ceil(now);
231                        if (_.options.vertical === false) {
232                            animProps[_.animType] = "translate(" + now + "px, 0px)";
233                            _.$slideTrack.css(animProps)
234                        } else {
235                            animProps[_.animType] = "translate(0px," + now + "px)";
236                            _.$slideTrack.css(animProps)
237                        }
238                    },
239                    complete: function() {
240                        if (callback) {
241                            callback.call()
242                        }
243                    }
244                })
245            } else {
246                _.applyTransition();
247                targetLeft = Math.ceil(targetLeft);
248                if (_.options.vertical === false) {
249                    animProps[_.animType] = "translate3d(" + targetLeft + "px, 0px, 0px)"
250                } else {
251                    animProps[_.animType] = "translate3d(0px," + targetLeft + "px, 0px)"
252                }
253                _.$slideTrack.css(animProps);
254                if (callback) {
255                    setTimeout(function() {
256                        _.disableTransition();
257                        callback.call()
258                    }, _.options.speed)
259                }
260            }
261        }
262    };
263    Slick.prototype.getNavTarget = function() {
264        var _ = this,
265            asNavFor = _.options.asNavFor;
266        if (asNavFor && asNavFor !== null) {
267            asNavFor = $(asNavFor).not(_.$slider)
268        }
269        return asNavFor
270    };
271    Slick.prototype.asNavFor = function(index) {
272        var _ = this,
273            asNavFor = _.getNavTarget();
274        if (asNavFor !== null && typeof asNavFor === "object") {
275            asNavFor.each(function() {
276                var target = $(this).slick("getSlick");
277                if (!target.unslicked) {
278                    target.slideHandler(index, true)
279                }
280            })
281        }
282    };
283    Slick.prototype.applyTransition = function(slide) {
284        var _ = this,
285            transition = {};
286        if (_.options.fade === false) {
287            transition[_.transitionType] = _.transformType + " " + _.options.speed + "ms " + _.options.cssEase
288        } else {
289            transition[_.transitionType] = "opacity " + _.options.speed + "ms " + _.options.cssEase
290        }
291        if (_.options.fade === false) {
292            _.$slideTrack.css(transition)
293        } else {
294            _.$slides.eq(slide).css(transition)
295        }
296    };
297    Slick.prototype.autoPlay = function() {
298        var _ = this;
299        _.autoPlayClear();
300        if (_.slideCount > _.options.slidesToShow) {
301            _.autoPlayTimer = setInterval(_.autoPlayIterator, _.options.autoplaySpeed)
302        }
303    };
304    Slick.prototype.autoPlayClear = function() {
305        var _ = this;
306        if (_.autoPlayTimer) {
307            clearInterval(_.autoPlayTimer)
308        }
309    };
310    Slick.prototype.autoPlayIterator = function() {
311        var _ = this,
312            slideTo = _.currentSlide + _.options.slidesToScroll;
313        if (!_.paused && !_.interrupted && !_.focussed) {
314            if (_.options.infinite === false) {
315                if (_.direction === 1 && _.currentSlide + 1 === _.slideCount - 1) {
316                    _.direction = 0
317                } else if (_.direction === 0) {
318                    slideTo = _.currentSlide - _.options.slidesToScroll;
319                    if (_.currentSlide - 1 === 0) {
320                        _.direction = 1
321                    }
322                }
323            }
324            _.slideHandler(slideTo)
325        }
326    };
327    Slick.prototype.buildArrows = function() {
328        var _ = this;
329        if (_.options.arrows === true) {
330            _.$prevArrow = $(_.options.prevArrow).addClass("slick-arrow");
331            _.$nextArrow = $(_.options.nextArrow).addClass("slick-arrow");
332            if (_.slideCount > _.options.slidesToShow) {
333                _.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex");
334                _.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex");
335                if (_.htmlExpr.test(_.options.prevArrow)) {
336                    _.$prevArrow.prependTo(_.options.appendArrows)
337                }
338                if (_.htmlExpr.test(_.options.nextArrow)) {
339                    _.$nextArrow.appendTo(_.options.appendArrows)
340                }
341                if (_.options.infinite !== true) {
342                    _.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true")
343                }
344            } else {
345                _.$prevArrow.add(_.$nextArrow).addClass("slick-hidden").attr({
346                    "aria-disabled": "true",
347                    tabindex: "-1"
348                })
349            }
350        }
351    };
352    Slick.prototype.buildDots = function() {
353        var _ = this,
354            i, dot;
355        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
356            _.$slider.addClass("slick-dotted");
357            dot = $("<ul />").addClass(_.options.dotsClass);
358            for (i = 0; i <= _.getDotCount(); i += 1) {
359                dot.append($("<li />").append(_.options.customPaging.call(this, _, i)))
360            }
361            _.$dots = dot.appendTo(_.options.appendDots);
362            _.$dots.find("li").first().addClass("slick-active")
363        }
364    };
365    Slick.prototype.buildOut = function() {
366        var _ = this;
367        _.$slides = _.$slider.children(_.options.slide + ":not(.slick-cloned)").addClass("slick-slide");
368        _.slideCount = _.$slides.length;
369        _.$slides.each(function(index, element) {
370            $(element).attr("data-slick-index", index).data("originalStyling", $(element).attr("style") || "")
371        });
372        _.$slider.addClass("slick-slider");
373        _.$slideTrack = _.slideCount === 0 ? $('<div class="slick-track"/>').appendTo(_.$slider) : _.$slides.wrapAll('<div class="slick-track"/>').parent();
374        _.$list = _.$slideTrack.wrap('<div class="slick-list"/>').parent();
375        _.$slideTrack.css("opacity", 0);
376        if (_.options.centerMode === true || _.options.swipeToSlide === true) {
377            _.options.slidesToScroll = 1
378        }
379        $("img[data-lazy]", _.$slider).not("[src]").addClass("slick-loading");
380        _.setupInfinite();
381        _.buildArrows();
382        _.buildDots();
383        _.updateDots();
384        _.setSlideClasses(typeof _.currentSlide === "number" ? _.currentSlide : 0);
385        if (_.options.draggable === true) {
386            _.$list.addClass("draggable")
387        }
388    };
389    Slick.prototype.buildRows = function() {
390        var _ = this,
391            a, b, c, newSlides, numOfSlides, originalSlides, slidesPerSection;
392        newSlides = document.createDocumentFragment();
393        originalSlides = _.$slider.children();
394        if (_.options.rows > 0) {
395            slidesPerSection = _.options.slidesPerRow * _.options.rows;
396            numOfSlides = Math.ceil(originalSlides.length / slidesPerSection);
397            for (a = 0; a < numOfSlides; a++) {
398                var slide = document.createElement("div");
399                for (b = 0; b < _.options.rows; b++) {
400                    var row = document.createElement("div");
401                    for (c = 0; c < _.options.slidesPerRow; c++) {
402                        var target = a * slidesPerSection + (b * _.options.slidesPerRow + c);
403                        if (originalSlides.get(target)) {
404                            row.appendChild(originalSlides.get(target))
405                        }
406                    }
407                    slide.appendChild(row)
408                }
409                newSlides.appendChild(slide)
410            }
411            _.$slider.empty().append(newSlides);
412            _.$slider.children().children().children().css({
413                width: 100 / _.options.slidesPerRow + "%",
414                display: "inline-block"
415            })
416        }
417    };
418    Slick.prototype.checkResponsive = function(initial, forceUpdate) {
419        var _ = this,
420            breakpoint, targetBreakpoint, respondToWidth, triggerBreakpoint = false;
421        var sliderWidth = _.$slider.width();
422        var windowWidth = window.innerWidth || $(window).width();
423        if (_.respondTo === "window") {
424            respondToWidth = windowWidth
425        } else if (_.respondTo === "slider") {
426            respondToWidth = sliderWidth
427        } else if (_.respondTo === "min") {
428            respondToWidth = Math.min(windowWidth, sliderWidth)
429        }
430        if (_.options.responsive && _.options.responsive.length && _.options.responsive !== null) {
431            targetBreakpoint = null;
432            for (breakpoint in _.breakpoints) {
433                if (_.breakpoints.hasOwnProperty(breakpoint)) {
434                    if (_.originalSettings.mobileFirst === false) {
435                        if (respondToWidth < _.breakpoints[breakpoint]) {
436                            targetBreakpoint = _.breakpoints[breakpoint]
437                        }
438                    } else {
439                        if (respondToWidth > _.breakpoints[breakpoint]) {
440                            targetBreakpoint = _.breakpoints[breakpoint]
441                        }
442                    }
443                }
444            }
445            if (targetBreakpoint !== null) {
446                if (_.activeBreakpoint !== null) {
447                    if (targetBreakpoint !== _.activeBreakpoint || forceUpdate) {
448                        _.activeBreakpoint = targetBreakpoint;
449                        if (_.breakpointSettings[targetBreakpoint] === "unslick") {
450                            _.unslick(targetBreakpoint)
451                        } else {
452                            _.options = $.extend({}, _.originalSettings, _.breakpointSettings[targetBreakpoint]);
453                            if (initial === true) {
454                                _.currentSlide = _.options.initialSlide
455                            }
456                            _.refresh(initial)
457                        }
458                        triggerBreakpoint = targetBreakpoint
459                    }
460                } else {
461                    _.activeBreakpoint = targetBreakpoint;
462                    if (_.breakpointSettings[targetBreakpoint] === "unslick") {
463                        _.unslick(targetBreakpoint)
464                    } else {
465                        _.options = $.extend({}, _.originalSettings, _.breakpointSettings[targetBreakpoint]);
466                        if (initial === true) {
467                            _.currentSlide = _.options.initialSlide
468                        }
469                        _.refresh(initial)
470                    }
471                    triggerBreakpoint = targetBreakpoint
472                }
473            } else {
474                if (_.activeBreakpoint !== null) {
475                    _.activeBreakpoint = null;
476                    _.options = _.originalSettings;
477                    if (initial === true) {
478                        _.currentSlide = _.options.initialSlide
479                    }
480                    _.refresh(initial);
481                    triggerBreakpoint = targetBreakpoint
482                }
483            }
484            if (!initial && triggerBreakpoint !== false) {
485                _.$slider.trigger("breakpoint", [_, triggerBreakpoint])
486            }
487        }
488    };
489    Slick.prototype.changeSlide = function(event, dontAnimate) {
490        var _ = this,
491            $target = $(event.currentTarget),
492            indexOffset, slideOffset, unevenOffset;
493        if ($target.is("a")) {
494            event.preventDefault()
495        }
496        if (!$target.is("li")) {
497            $target = $target.closest("li")
498        }
499        unevenOffset = _.slideCount % _.options.slidesToScroll !== 0;
500        indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll;
501        switch (event.data.message) {
502            case "previous":
503                slideOffset = indexOffset === 0 ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset;
504                if (_.slideCount > _.options.slidesToShow) {
505                    _.slideHandler(_.currentSlide - slideOffset, false, dontAnimate)
506                }
507                break;
508            case "next":
509                slideOffset = indexOffset === 0 ? _.options.slidesToScroll : indexOffset;
510                if (_.slideCount > _.options.slidesToShow) {
511                    _.slideHandler(_.currentSlide + slideOffset, false, dontAnimate)
512                }
513                break;
514            case "index":
515                var index = event.data.index === 0 ? 0 : event.data.index || $target.index() * _.options.slidesToScroll;
516                _.slideHandler(_.checkNavigable(index), false, dontAnimate);
517                $target.children().trigger("focus");
518                break;
519            default:
520                return
521        }
522    };
523    Slick.prototype.checkNavigable = function(index) {
524        var _ = this,
525            navigables, prevNavigable;
526        navigables = _.getNavigableIndexes();
527        prevNavigable = 0;
528        if (index > navigables[navigables.length - 1]) {
529            index = navigables[navigables.length - 1]
530        } else {
531            for (var n in navigables) {
532                if (index < navigables[n]) {
533                    index = prevNavigable;
534                    break
535                }
536                prevNavigable = navigables[n]
537            }
538        }
539        return index
540    };
541    Slick.prototype.cleanUpEvents = function() {
542        var _ = this;
543        if (_.options.dots && _.$dots !== null) {
544            $("li", _.$dots).off("click.slick", _.changeSlide).off("mouseenter.slick", $.proxy(_.interrupt, _, true)).off("mouseleave.slick", $.proxy(_.interrupt, _, false));
545            if (_.options.accessibility === true) {
546                _.$dots.off("keydown.slick", _.keyHandler)
547            }
548        }
549        _.$slider.off("focus.slick blur.slick");
550        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
551            _.$prevArrow && _.$prevArrow.off("click.slick", _.changeSlide);
552            _.$nextArrow && _.$nextArrow.off("click.slick", _.changeSlide);
553            if (_.options.accessibility === true) {
554                _.$prevArrow && _.$prevArrow.off("keydown.slick", _.keyHandler);
555                _.$nextArrow && _.$nextArrow.off("keydown.slick", _.keyHandler)
556            }
557        }
558        _.$list.off("touchstart.slick mousedown.slick", _.swipeHandler);
559        _.$list.off("touchmove.slick mousemove.slick", _.swipeHandler);
560        _.$list.off("touchend.slick mouseup.slick", _.swipeHandler);
561        _.$list.off("touchcancel.slick mouseleave.slick", _.swipeHandler);
562        _.$list.off("click.slick", _.clickHandler);
563        $(document).off(_.visibilityChange, _.visibility);
564        _.cleanUpSlideEvents();
565        if (_.options.accessibility === true) {
566            _.$list.off("keydown.slick", _.keyHandler)
567        }
568        if (_.options.focusOnSelect === true) {
569            $(_.$slideTrack).children().off("click.slick", _.selectHandler)
570        }
571        $(window).off("orientationchange.slick.slick-" + _.instanceUid, _.orientationChange);
572        $(window).off("resize.slick.slick-" + _.instanceUid, _.resize);
573        $("[draggable!=true]", _.$slideTrack).off("dragstart", _.preventDefault);
574        $(window).off("load.slick.slick-" + _.instanceUid, _.setPosition)
575    };
576    Slick.prototype.cleanUpSlideEvents = function() {
577        var _ = this;
578        _.$list.off("mouseenter.slick", $.proxy(_.interrupt, _, true));
579        _.$list.off("mouseleave.slick", $.proxy(_.interrupt, _, false))
580    };
581    Slick.prototype.cleanUpRows = function() {
582        var _ = this,
583            originalSlides;
584        if (_.options.rows > 0) {
585            originalSlides = _.$slides.children().children();
586            originalSlides.removeAttr("style");
587            _.$slider.empty().append(originalSlides)
588        }
589    };
590    Slick.prototype.clickHandler = function(event) {
591        var _ = this;
592        if (_.shouldClick === false) {
593            event.stopImmediatePropagation();
594            event.stopPropagation();
595            event.preventDefault()
596        }
597    };
598    Slick.prototype.destroy = function(refresh) {
599        var _ = this;
600        _.autoPlayClear();
601        _.touchObject = {};
602        _.cleanUpEvents();
603        $(".slick-cloned", _.$slider).detach();
604        if (_.$dots) {
605            _.$dots.remove()
606        }
607        if (_.$prevArrow && _.$prevArrow.length) {
608            _.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", "");
609            if (_.htmlExpr.test(_.options.prevArrow)) {
610                _.$prevArrow.remove()
611            }
612        }
613        if (_.$nextArrow && _.$nextArrow.length) {
614            _.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", "");
615            if (_.htmlExpr.test(_.options.nextArrow)) {
616                _.$nextArrow.remove()
617            }
618        }
619        if (_.$slides) {
620            _.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function() {
621                $(this).attr("style", $(this).data("originalStyling"))
622            });
623            _.$slideTrack.children(this.options.slide).detach();
624            _.$slideTrack.detach();
625            _.$list.detach();
626            _.$slider.append(_.$slides)
627        }
628        _.cleanUpRows();
629        _.$slider.removeClass("slick-slider");
630        _.$slider.removeClass("slick-initialized");
631        _.$slider.removeClass("slick-dotted");
632        _.unslicked = true;
633        if (!refresh) {
634            _.$slider.trigger("destroy", [_])
635        }
636    };
637    Slick.prototype.disableTransition = function(slide) {
638        var _ = this,
639            transition = {};
640        transition[_.transitionType] = "";
641        if (_.options.fade === false) {
642            _.$slideTrack.css(transition)
643        } else {
644            _.$slides.eq(slide).css(transition)
645        }
646    };
647    Slick.prototype.fadeSlide = function(slideIndex, callback) {
648        var _ = this;
649        if (_.cssTransitions === false) {
650            _.$slides.eq(slideIndex).css({
651                zIndex: _.options.zIndex
652            });
653            _.$slides.eq(slideIndex).animate({
654                opacity: 1
655            }, _.options.speed, _.options.easing, callback)
656        } else {
657            _.applyTransition(slideIndex);
658            _.$slides.eq(slideIndex).css({
659                opacity: 1,
660                zIndex: _.options.zIndex
661            });
662            if (callback) {
663                setTimeout(function() {
664                    _.disableTransition(slideIndex);
665                    callback.call()
666                }, _.options.speed)
667            }
668        }
669    };
670    Slick.prototype.fadeSlideOut = function(slideIndex) {
671        var _ = this;
672        if (_.cssTransitions === false) {
673            _.$slides.eq(slideIndex).animate({
674                opacity: 0,
675                zIndex: _.options.zIndex - 2
676            }, _.options.speed, _.options.easing)
677        } else {
678            _.applyTransition(slideIndex);
679            _.$slides.eq(slideIndex).css({
680                opacity: 0,
681                zIndex: _.options.zIndex - 2
682            })
683        }
684    };
685    Slick.prototype.filterSlides = Slick.prototype.slickFilter = function(filter) {
686        var _ = this;
687        if (filter !== null) {
688            _.$slidesCache = _.$slides;
689            _.unload();
690            _.$slideTrack.children(this.options.slide).detach();
691            _.$slidesCache.filter(filter).appendTo(_.$slideTrack);
692            _.reinit()
693        }
694    };
695    Slick.prototype.focusHandler = function() {
696        var _ = this;
697        _.$slider.off("focus.slick blur.slick").on("focus.slick", "*", function(event) {
698            var $sf = $(this);
699            setTimeout(function() {
700                if (_.options.pauseOnFocus) {
701                    if ($sf.is(":focus")) {
702                        _.focussed = true;
703                        _.autoPlay()
704                    }
705                }
706            }, 0)
707        }).on("blur.slick", "*", function(event) {
708            var $sf = $(this);
709            if (_.options.pauseOnFocus) {
710                _.focussed = false;
711                _.autoPlay()
712            }
713        })
714    };
715    Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function() {
716        var _ = this;
717        return _.currentSlide
718    };
719    Slick.prototype.getDotCount = function() {
720        var _ = this;
721        var breakPoint = 0;
722        var counter = 0;
723        var pagerQty = 0;
724        if (_.options.infinite === true) {
725            if (_.slideCount <= _.options.slidesToShow) {
726                ++pagerQty
727            } else {
728                while (breakPoint < _.slideCount) {
729                    ++pagerQty;
730                    breakPoint = counter + _.options.slidesToScroll;
731                    counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow
732                }
733            }
734        } else if (_.options.centerMode === true) {
735            pagerQty = _.slideCount
736        } else if (!_.options.asNavFor) {
737            pagerQty = 1 + Math.ceil((_.slideCount - _.options.slidesToShow) / _.options.slidesToScroll)
738        } else {
739            while (breakPoint < _.slideCount) {
740                ++pagerQty;
741                breakPoint = counter + _.options.slidesToScroll;
742                counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow
743            }
744        }
745        return pagerQty - 1
746    };
747    Slick.prototype.getLeft = function(slideIndex) {
748        var _ = this,
749            targetLeft, verticalHeight, verticalOffset = 0,
750            targetSlide, coef;
751        _.slideOffset = 0;
752        verticalHeight = _.$slides.first().outerHeight(true);
753        if (_.options.infinite === true) {
754            if (_.slideCount > _.options.slidesToShow) {
755                _.slideOffset = _.slideWidth * _.options.slidesToShow * -1;
756                coef = -1;
757                if (_.options.vertical === true && _.options.centerMode === true) {
758                    if (_.options.slidesToShow === 2) {
759                        coef = -1.5
760                    } else if (_.options.slidesToShow === 1) {
761                        coef = -2
762                    }
763                }
764                verticalOffset = verticalHeight * _.options.slidesToShow * coef
765            }
766            if (_.slideCount % _.options.slidesToScroll !== 0) {
767                if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) {
768                    if (slideIndex > _.slideCount) {
769                        _.slideOffset = (_.options.slidesToShow - (slideIndex - _.slideCount)) * _.slideWidth * -1;
770                        verticalOffset = (_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight * -1
771                    } else {
772                        _.slideOffset = _.slideCount % _.options.slidesToScroll * _.slideWidth * -1;
773                        verticalOffset = _.slideCount % _.options.slidesToScroll * verticalHeight * -1
774                    }
775                }
776            }
777        } else {
778            if (slideIndex + _.options.slidesToShow > _.slideCount) {
779                _.slideOffset = (slideIndex + _.options.slidesToShow - _.slideCount) * _.slideWidth;
780                verticalOffset = (slideIndex + _.options.slidesToShow - _.slideCount) * verticalHeight
781            }
782        }
783        if (_.slideCount <= _.options.slidesToShow) {
784            _.slideOffset = 0;
785            verticalOffset = 0
786        }
787        if (_.options.centerMode === true && _.slideCount <= _.options.slidesToShow) {
788            _.slideOffset = _.slideWidth * Math.floor(_.options.slidesToShow) / 2 - _.slideWidth * _.slideCount / 2
789        } else if (_.options.centerMode === true && _.options.infinite === true) {
790            _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth
791        } else if (_.options.centerMode === true) {
792            _.slideOffset = 0;
793            _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2)
794        }
795        if (_.options.vertical === false) {
796            targetLeft = slideIndex * _.slideWidth * -1 + _.slideOffset
797        } else {
798            targetLeft = slideIndex * verticalHeight * -1 + verticalOffset
799        }
800        if (_.options.variableWidth === true) {
801            if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
802                targetSlide = _.$slideTrack.children(".slick-slide").eq(slideIndex)
803            } else {
804                targetSlide = _.$slideTrack.children(".slick-slide").eq(slideIndex + _.options.slidesToShow)
805            }
806            if (_.options.rtl === true) {
807                if (targetSlide[0]) {
808                    targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1
809                } else {
810                    targetLeft = 0
811                }
812            } else {
813                targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0
814            }
815            if (_.options.centerMode === true) {
816                if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
817                    targetSlide = _.$slideTrack.children(".slick-slide").eq(slideIndex)
818                } else {
819                    targetSlide = _.$slideTrack.children(".slick-slide").eq(slideIndex + _.options.slidesToShow + 1)
820                }
821                if (_.options.rtl === true) {
822                    if (targetSlide[0]) {
823                        targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1
824                    } else {
825                        targetLeft = 0
826                    }
827                } else {
828                    targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0
829                }
830                targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2
831            }
832        }
833        return targetLeft
834    };
835    Slick.prototype.getOption = Slick.prototype.slickGetOption = function(option) {
836        var _ = this;
837        return _.options[option]
838    };
839    Slick.prototype.getNavigableIndexes = function() {
840        var _ = this,
841            breakPoint = 0,
842            counter = 0,
843            indexes = [],
844            max;
845        if (_.options.infinite === false) {
846            max = _.slideCount
847        } else {
848            breakPoint = _.options.slidesToScroll * -1;
849            counter = _.options.slidesToScroll * -1;
850            max = _.slideCount * 2
851        }
852        while (breakPoint < max) {
853            indexes.push(breakPoint);
854            breakPoint = counter + _.options.slidesToScroll;
855            counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow
856        }
857        return indexes
858    };
859    Slick.prototype.getSlick = function() {
860        return this
861    };
862    Slick.prototype.getSlideCount = function() {
863        var _ = this,
864            slidesTraversed, swipedSlide, swipeTarget, centerOffset;
865        centerOffset = _.options.centerMode === true ? Math.floor(_.$list.width() / 2) : 0;
866        swipeTarget = _.swipeLeft * -1 + centerOffset;
867        if (_.options.swipeToSlide === true) {
868            _.$slideTrack.find(".slick-slide").each(function(index, slide) {
869                var slideOuterWidth, slideOffset, slideRightBoundary;
870                slideOuterWidth = $(slide).outerWidth();
871                slideOffset = slide.offsetLeft;
872                if (_.options.centerMode !== true) {
873                    slideOffset += slideOuterWidth / 2
874                }
875                slideRightBoundary = slideOffset + slideOuterWidth;
876                if (swipeTarget < slideRightBoundary) {
877                    swipedSlide = slide;
878                    return false
879                }
880            });
881            slidesTraversed = Math.abs($(swipedSlide).attr("data-slick-index") - _.currentSlide) || 1;
882            return slidesTraversed
883        } else {
884            return _.options.slidesToScroll
885        }
886    };
887    Slick.prototype.goTo = Slick.prototype.slickGoTo = function(slide, dontAnimate) {
888        var _ = this;
889        _.changeSlide({
890            data: {
891                message: "index",
892                index: parseInt(slide)
893            }
894        }, dontAnimate)
895    };
896    Slick.prototype.init = function(creation) {
897        var _ = this;
898        if (!$(_.$slider).hasClass("slick-initialized")) {
899            $(_.$slider).addClass("slick-initialized");
900            _.buildRows();
901            _.buildOut();
902            _.setProps();
903            _.startLoad();
904            _.loadSlider();
905            _.initializeEvents();
906            _.updateArrows();
907            _.updateDots();
908            _.checkResponsive(true);
909            _.focusHandler()
910        }
911        if (creation) {
912            _.$slider.trigger("init", [_])
913        }
914        if (_.options.accessibility === true) {
915            _.initADA()
916        }
917        if (_.options.autoplay) {
918            _.paused = false;
919            _.autoPlay()
920        }
921    };
922    Slick.prototype.initADA = function() {
923        var _ = this,
924            numDotGroups = Math.ceil(_.slideCount / _.options.slidesToShow),
925            tabControlIndexes = _.getNavigableIndexes().filter(function(val) {
926                return val >= 0 && val < _.slideCount
927            });
928        _.$slides.add(_.$slideTrack.find(".slick-cloned")).attr({
929            "aria-hidden": "true",
930            tabindex: "-1"
931        }).find("a, input, button, select").attr({
932            tabindex: "-1"
933        });
934        if (_.$dots !== null) {
935            _.$slides.not(_.$slideTrack.find(".slick-cloned")).each(function(i) {
936                var slideControlIndex = tabControlIndexes.indexOf(i);
937                $(this).attr({
938                    role: "tabpanel",
939                    id: "slick-slide" + _.instanceUid + i,
940                    tabindex: -1
941                });
942                if (slideControlIndex !== -1) {
943                    var ariaButtonControl = "slick-slide-control" + _.instanceUid + slideControlIndex;
944                    if ($("#" + ariaButtonControl).length) {
945                        $(this).attr({
946                            "aria-describedby": ariaButtonControl
947                        })
948                    }
949                }
950            });
951            _.$dots.attr("role", "tablist").find("li").each(function(i) {
952                var mappedSlideIndex = tabControlIndexes[i];
953                $(this).attr({
954                    role: "presentation"
955                });
956                $(this).find("button").first().attr({
957                    role: "tab",
958                    id: "slick-slide-control" + _.instanceUid + i,
959                    "aria-controls": "slick-slide" + _.instanceUid + mappedSlideIndex,
960                    "aria-label": i + 1 + " of " + numDotGroups,
961                    "aria-selected": null,
962                    tabindex: "-1"
963                })
964            }).eq(_.currentSlide).find("button").attr({
965                "aria-selected": "true",
966                tabindex: "0"
967            }).end()
968        }
969        for (var i = _.currentSlide, max = i + _.options.slidesToShow; i < max; i++) {
970            if (_.options.focusOnChange) {
971                _.$slides.eq(i).attr({
972                    tabindex: "0"
973                })
974            } else {
975                _.$slides.eq(i).removeAttr("tabindex")
976            }
977        }
978        _.activateADA()
979    };
980    Slick.prototype.initArrowEvents = function() {
981        var _ = this;
982        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
983            _.$prevArrow.off("click.slick").on("click.slick", {
984                message: "previous"
985            }, _.changeSlide);
986            _.$nextArrow.off("click.slick").on("click.slick", {
987                message: "next"
988            }, _.changeSlide);
989            if (_.options.accessibility === true) {
990                _.$prevArrow.on("keydown.slick", _.keyHandler);
991                _.$nextArrow.on("keydown.slick", _.keyHandler)
992            }
993        }
994    };
995    Slick.prototype.initDotEvents = function() {
996        var _ = this;
997        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
998            $("li", _.$dots).on("click.slick", {
999                message: "index"
1000            }, _.changeSlide);
1001            if (_.options.accessibility === true) {
1002                _.$dots.on("keydown.slick", _.keyHandler)
1003            }
1004        }
1005        if (_.options.dots === true && _.options.pauseOnDotsHover === true && _.slideCount > _.options.slidesToShow) {
1006            $("li", _.$dots).on("mouseenter.slick", $.proxy(_.interrupt, _, true)).on("mouseleave.slick", $.proxy(_.interrupt, _, false))
1007        }
1008    };
1009    Slick.prototype.initSlideEvents = function() {
1010        var _ = this;
1011        if (_.options.pauseOnHover) {
1012            _.$list.on("mouseenter.slick", $.proxy(_.interrupt, _, true));
1013            _.$list.on("mouseleave.slick", $.proxy(_.interrupt, _, false))
1014        }
1015    };
1016    Slick.prototype.initializeEvents = function() {
1017        var _ = this;
1018        _.initArrowEvents();
1019        _.initDotEvents();
1020        _.initSlideEvents();
1021        _.$list.on("touchstart.slick mousedown.slick", {
1022            action: "start"
1023        }, _.swipeHandler);
1024        _.$list.on("touchmove.slick mousemove.slick", {
1025            action: "move"
1026        }, _.swipeHandler);
1027        _.$list.on("touchend.slick mouseup.slick", {
1028            action: "end"
1029        }, _.swipeHandler);
1030        _.$list.on("touchcancel.slick mouseleave.slick", {
1031            action: "end"
1032        }, _.swipeHandler);
1033        _.$list.on("click.slick", _.clickHandler);
1034        $(document).on(_.visibilityChange, $.proxy(_.visibility, _));
1035        if (_.options.accessibility === true) {
1036            _.$list.on("keydown.slick", _.keyHandler)
1037        }
1038        if (_.options.focusOnSelect === true) {
1039            $(_.$slideTrack).children().on("click.slick", _.selectHandler)
1040        }
1041        $(window).on("orientationchange.slick.slick-" + _.instanceUid, $.proxy(_.orientationChange, _));
1042        $(window).on("resize.slick.slick-" + _.instanceUid, $.proxy(_.resize, _));
1043        $("[draggable!=true]", _.$slideTrack).on("dragstart", _.preventDefault);
1044        $(window).on("load.slick.slick-" + _.instanceUid, _.setPosition);
1045        $(_.setPosition)
1046    };
1047    Slick.prototype.initUI = function() {
1048        var _ = this;
1049        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
1050            _.$prevArrow.show();
1051            _.$nextArrow.show()
1052        }
1053        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
1054            _.$dots.show()
1055        }
1056    };
1057    Slick.prototype.keyHandler = function(event) {
1058        var _ = this;
1059        if (!event.target.tagName.match("TEXTAREA|INPUT|SELECT")) {
1060            if (event.keyCode === 37 && _.options.accessibility === true) {
1061                _.changeSlide({
1062                    data: {
1063                        message: _.options.rtl === true ? "next" : "previous"
1064                    }
1065                })
1066            } else if (event.keyCode === 39 && _.options.accessibility === true) {
1067                _.changeSlide({
1068                    data: {
1069                        message: _.options.rtl === true ? "previous" : "next"
1070                    }
1071                })
1072            }
1073        }
1074    };
1075    Slick.prototype.lazyLoad = function() {
1076        var _ = this,
1077            loadRange, cloneRange, rangeStart, rangeEnd;
1078
1079        function loadImages(imagesScope) {
1080            $("img[data-lazy]", imagesScope).each(function() {
1081                var image = $(this),
1082                    imageSource = $(this).attr("data-lazy"),
1083                    imageSrcSet = $(this).attr("data-srcset"),
1084                    imageSizes = $(this).attr("data-sizes") || _.$slider.attr("data-sizes"),
1085                    imageToLoad = document.createElement("img");
1086                imageToLoad.onload = function() {
1087                    image.animate({
1088                        opacity: 0
1089                    }, 100, function() {
1090                        if (imageSrcSet) {
1091                            image.attr("srcset", imageSrcSet);
1092                            if (imageSizes) {
1093                                image.attr("sizes", imageSizes)
1094                            }
1095                        }
1096                        image.attr("src", imageSource).animate({
1097                            opacity: 1
1098                        }, 200, function() {
1099                            image.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")
1100                        });
1101                        _.$slider.trigger("lazyLoaded", [_, image, imageSource])
1102                    })
1103                };
1104                imageToLoad.onerror = function() {
1105                    image.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error");
1106                    _.$slider.trigger("lazyLoadError", [_, image, imageSource])
1107                };
1108                imageToLoad.src = imageSource
1109            })
1110        }
1111        if (_.options.centerMode === true) {
1112            if (_.options.infinite === true) {
1113                rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1);
1114                rangeEnd = rangeStart + _.options.slidesToShow + 2
1115            } else {
1116                rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1));
1117                rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide
1118            }
1119        } else {
1120            rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide;
1121            rangeEnd = Math.ceil(rangeStart + _.options.slidesToShow);
1122            if (_.options.fade === true) {
1123                if (rangeStart > 0) rangeStart--;
1124                if (rangeEnd <= _.slideCount) rangeEnd++
1125            }
1126        }
1127        loadRange = _.$slider.find(".slick-slide").slice(rangeStart, rangeEnd);
1128        if (_.options.lazyLoad === "anticipated") {
1129            var prevSlide = rangeStart - 1,
1130                nextSlide = rangeEnd,
1131                $slides = _.$slider.find(".slick-slide");
1132            for (var i = 0; i < _.options.slidesToScroll; i++) {
1133                if (prevSlide < 0) prevSlide = _.slideCount - 1;
1134                loadRange = loadRange.add($slides.eq(prevSlide));
1135                loadRange = loadRange.add($slides.eq(nextSlide));
1136                prevSlide--;
1137                nextSlide++
1138            }
1139        }
1140        loadImages(loadRange);
1141        if (_.slideCount <= _.options.slidesToShow) {
1142            cloneRange = _.$slider.find(".slick-slide");
1143            loadImages(cloneRange)
1144        } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow) {
1145            cloneRange = _.$slider.find(".slick-cloned").slice(0, _.options.slidesToShow);
1146            loadImages(cloneRange)
1147        } else if (_.currentSlide === 0) {
1148            cloneRange = _.$slider.find(".slick-cloned").slice(_.options.slidesToShow * -1);
1149            loadImages(cloneRange)
1150        }
1151    };
1152    Slick.prototype.loadSlider = function() {
1153        var _ = this;
1154        _.setPosition();
1155        _.$slideTrack.css({
1156            opacity: 1
1157        });
1158        _.$slider.removeClass("slick-loading");
1159        _.initUI();
1160        if (_.options.lazyLoad === "progressive") {
1161            _.progressiveLazyLoad()
1162        }
1163    };
1164    Slick.prototype.next = Slick.prototype.slickNext = function() {
1165        var _ = this;
1166        _.changeSlide({
1167            data: {
1168                message: "next"
1169            }
1170        })
1171    };
1172    Slick.prototype.orientationChange = function() {
1173        var _ = this;
1174        _.checkResponsive();
1175        _.setPosition()
1176    };
1177    Slick.prototype.pause = Slick.prototype.slickPause = function() {
1178        var _ = this;
1179        _.autoPlayClear();
1180        _.paused = true
1181    };
1182    Slick.prototype.play = Slick.prototype.slickPlay = function() {
1183        var _ = this;
1184        _.autoPlay();
1185        _.options.autoplay = true;
1186        _.paused = false;
1187        _.focussed = false;
1188        _.interrupted = false
1189    };
1190    Slick.prototype.postSlide = function(index) {
1191        var _ = this;
1192        if (!_.unslicked) {
1193            _.$slider.trigger("afterChange", [_, index]);
1194            _.animating = false;
1195            if (_.slideCount > _.options.slidesToShow) {
1196                _.setPosition()
1197            }
1198            _.swipeLeft = null;
1199            if (_.options.autoplay) {
1200                _.autoPlay()
1201            }
1202            if (_.options.accessibility === true) {
1203                _.initADA();
1204                if (_.options.focusOnChange) {
1205                    var $currentSlide = $(_.$slides.get(_.currentSlide));
1206                    $currentSlide.attr("tabindex", 0).focus()
1207                }
1208            }
1209        }
1210    };
1211    Slick.prototype.prev = Slick.prototype.slickPrev = function() {
1212        var _ = this;
1213        _.changeSlide({
1214            data: {
1215                message: "previous"
1216            }
1217        })
1218    };
1219    Slick.prototype.preventDefault = function(event) {
1220        event.preventDefault()
1221    };
1222    Slick.prototype.progressiveLazyLoad = function(tryCount) {
1223        tryCount = tryCount || 1;
1224        var _ = this,
1225            $imgsToLoad = $("img[data-lazy]", _.$slider),
1226            image, imageSource, imageSrcSet, imageSizes, imageToLoad;
1227        if ($imgsToLoad.length) {
1228            image = $imgsToLoad.first();
1229            imageSource = image.attr("data-lazy");
1230            imageSrcSet = image.attr("data-srcset");
1231            imageSizes = image.attr("data-sizes") || _.$slider.attr("data-sizes");
1232            imageToLoad = document.createElement("img");
1233            imageToLoad.onload = function() {
1234                if (imageSrcSet) {
1235                    image.attr("srcset", imageSrcSet);
1236                    if (imageSizes) {
1237                        image.attr("sizes", imageSizes)
1238                    }
1239                }
1240                image.attr("src", imageSource).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading");
1241                if (_.options.adaptiveHeight === true) {
1242                    _.setPosition()
1243                }
1244                _.$slider.trigger("lazyLoaded", [_, image, imageSource]);
1245                _.progressiveLazyLoad()
1246            };
1247            imageToLoad.onerror = function() {
1248                if (tryCount < 3) {
1249                    setTimeout(function() {
1250                        _.progressiveLazyLoad(tryCount + 1)
1251                    }, 500)
1252                } else {
1253                    image.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error");
1254                    _.$slider.trigger("lazyLoadError", [_, image, imageSource]);
1255                    _.progressiveLazyLoad()
1256                }
1257            };
1258            imageToLoad.src = imageSource
1259        } else {
1260            _.$slider.trigger("allImagesLoaded", [_])
1261        }
1262    };
1263    Slick.prototype.refresh = function(initializing) {
1264        var _ = this,
1265            currentSlide, lastVisibleIndex;
1266        lastVisibleIndex = _.slideCount - _.options.slidesToShow;
1267        if (!_.options.infinite && _.currentSlide > lastVisibleIndex) {
1268            _.currentSlide = lastVisibleIndex
1269        }
1270        if (_.slideCount <= _.options.slidesToShow) {
1271            _.currentSlide = 0
1272        }
1273        currentSlide = _.currentSlide;
1274        _.destroy(true);
1275        $.extend(_, _.initials, {
1276            currentSlide: currentSlide
1277        });
1278        _.init();
1279        if (!initializing) {
1280            _.changeSlide({
1281                data: {
1282                    message: "index",
1283                    index: currentSlide
1284                }
1285            }, false)
1286        }
1287    };
1288    Slick.prototype.registerBreakpoints = function() {
1289        var _ = this,
1290            breakpoint, currentBreakpoint, l, responsiveSettings = _.options.responsive || null;
1291        if ($.type(responsiveSettings) === "array" && responsiveSettings.length) {
1292            _.respondTo = _.options.respondTo || "window";
1293            for (breakpoint in responsiveSettings) {
1294                l = _.breakpoints.length - 1;
1295                if (responsiveSettings.hasOwnProperty(breakpoint)) {
1296                    currentBreakpoint = responsiveSettings[breakpoint].breakpoint;
1297                    while (l >= 0) {
1298                        if (_.breakpoints[l] && _.breakpoints[l] === currentBreakpoint) {
1299                            _.breakpoints.splice(l, 1)
1300                        }
1301                        l--
1302                    }
1303                    _.breakpoints.push(currentBreakpoint);
1304                    _.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings
1305                }
1306            }
1307            _.breakpoints.sort(function(a, b) {
1308                return _.options.mobileFirst ? a - b : b - a
1309            })
1310        }
1311    };
1312    Slick.prototype.reinit = function() {
1313        var _ = this;
1314        _.$slides = _.$slideTrack.children(_.options.slide).addClass("slick-slide");
1315        _.slideCount = _.$slides.length;
1316        if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) {
1317            _.currentSlide = _.currentSlide - _.options.slidesToScroll
1318        }
1319        if (_.slideCount <= _.options.slidesToShow) {
1320            _.currentSlide = 0
1321        }
1322        _.registerBreakpoints();
1323        _.setProps();
1324        _.setupInfinite();
1325        _.buildArrows();
1326        _.updateArrows();
1327        _.initArrowEvents();
1328        _.buildDots();
1329        _.updateDots();
1330        _.initDotEvents();
1331        _.cleanUpSlideEvents();
1332        _.initSlideEvents();
1333        _.checkResponsive(false, true);
1334        if (_.options.focusOnSelect === true) {
1335            $(_.$slideTrack).children().on("click.slick", _.selectHandler)
1336        }
1337        _.setSlideClasses(typeof _.currentSlide === "number" ? _.currentSlide : 0);
1338        _.setPosition();
1339        _.focusHandler();
1340        _.paused = !_.options.autoplay;
1341        _.autoPlay();
1342        _.$slider.trigger("reInit", [_])
1343    };
1344    Slick.prototype.resize = function() {
1345        var _ = this;
1346        if ($(window).width() !== _.windowWidth) {
1347            clearTimeout(_.windowDelay);
1348            _.windowDelay = window.setTimeout(function() {
1349                _.windowWidth = $(window).width();
1350                _.checkResponsive();
1351                if (!_.unslicked) {
1352                    _.setPosition()
1353                }
1354            }, 50)
1355        }
1356    };
1357    Slick.prototype.removeSlide = Slick.prototype.slickRemove = function(index, removeBefore, removeAll) {
1358        var _ = this;
1359        if (typeof index === "boolean") {
1360            removeBefore = index;
1361            index = removeBefore === true ? 0 : _.slideCount - 1
1362        } else {
1363            index = removeBefore === true ? --index : index
1364        }
1365        if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) {
1366            return false
1367        }
1368        _.unload();
1369        if (removeAll === true) {
1370            _.$slideTrack.children().remove()
1371        } else {
1372            _.$slideTrack.children(this.options.slide).eq(index).remove()
1373        }
1374        _.$slides = _.$slideTrack.children(this.options.slide);
1375        _.$slideTrack.children(this.options.slide).detach();
1376        _.$slideTrack.append(_.$slides);
1377        _.$slidesCache = _.$slides;
1378        _.reinit()
1379    };
1380    Slick.prototype.setCSS = function(position) {
1381        var _ = this,
1382            positionProps = {},
1383            x, y;
1384        if (_.options.rtl === true) {
1385            position = -position
1386        }
1387        x = _.positionProp == "left" ? Math.ceil(position) + "px" : "0px";
1388        y = _.positionProp == "top" ? Math.ceil(position) + "px" : "0px";
1389        positionProps[_.positionProp] = position;
1390        if (_.transformsEnabled === false) {
1391            _.$slideTrack.css(positionProps)
1392        } else {
1393            positionProps = {};
1394            if (_.cssTransitions === false) {
1395                positionProps[_.animType] = "translate(" + x + ", " + y + ")";
1396                _.$slideTrack.css(positionProps)
1397            } else {
1398                positionProps[_.animType] = "translate3d(" + x + ", " + y + ", 0px)";
1399                _.$slideTrack.css(positionProps)
1400            }
1401        }
1402    };
1403    Slick.prototype.setDimensions = function() {
1404        var _ = this;
1405        if (_.options.vertical === false) {
1406            if (_.options.centerMode === true) {
1407                _.$list.css({
1408                    padding: "0px " + _.options.centerPadding
1409                })
1410            }
1411        } else {
1412            _.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow);
1413            if (_.options.centerMode === true) {
1414                _.$list.css({
1415                    padding: _.options.centerPadding + " 0px"
1416                })
1417            }
1418        }
1419        _.listWidth = _.$list.width();
1420        _.listHeight = _.$list.height();
1421        if (_.options.vertical === false && _.options.variableWidth === false) {
1422            _.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow);
1423            _.$slideTrack.width(Math.ceil(_.slideWidth * _.$slideTrack.children(".slick-slide").length))
1424        } else if (_.options.variableWidth === true) {
1425            _.$slideTrack.width(5e3 * _.slideCount)
1426        } else {
1427            _.slideWidth = Math.ceil(_.listWidth);
1428            _.$slideTrack.height(Math.ceil(_.$slides.first().outerHeight(true) * _.$slideTrack.children(".slick-slide").length))
1429        }
1430        var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width();
1431        if (_.options.variableWidth === false) _.$slideTrack.children(".slick-slide").width(_.slideWidth - offset)
1432    };
1433    Slick.prototype.setFade = function() {
1434        var _ = this,
1435            targetLeft;
1436        _.$slides.each(function(index, element) {
1437            targetLeft = _.slideWidth * index * -1;
1438            if (_.options.rtl === true) {
1439                $(element).css({
1440                    position: "relative",
1441                    right: targetLeft,
1442                    top: 0,
1443                    zIndex: _.options.zIndex - 2,
1444                    opacity: 0
1445                })
1446            } else {
1447                $(element).css({
1448                    position: "relative",
1449                    left: targetLeft,
1450                    top: 0,
1451                    zIndex: _.options.zIndex - 2,
1452                    opacity: 0
1453                })
1454            }
1455        });
1456        _.$slides.eq(_.currentSlide).css({
1457            zIndex: _.options.zIndex - 1,
1458            opacity: 1
1459        })
1460    };
1461    Slick.prototype.setHeight = function() {
1462        var _ = this;
1463        if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
1464            var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
1465            _.$list.css("height", targetHeight)
1466        }
1467    };
1468    Slick.prototype.setOption = Slick.prototype.slickSetOption = function() {
1469        var _ = this,
1470            l, item, option, value, refresh = false,
1471            type;
1472        if ($.type(arguments[0]) === "object") {
1473            option = arguments[0];
1474            refresh = arguments[1];
1475            type = "multiple"
1476        } else if ($.type(arguments[0]) === "string") {
1477            option = arguments[0];
1478            value = arguments[1];
1479            refresh = arguments[2];
1480            if (arguments[0] === "responsive" && $.type(arguments[1]) === "array") {
1481                type = "responsive"
1482            } else if (typeof arguments[1] !== "undefined") {
1483                type = "single"
1484            }
1485        }
1486        if (type === "single") {
1487            _.options[option] = value
1488        } else if (type === "multiple") {
1489            $.each(option, function(opt, val) {
1490                _.options[opt] = val
1491            })
1492        } else if (type === "responsive") {
1493            for (item in value) {
1494                if ($.type(_.options.responsive) !== "array") {
1495                    _.options.responsive = [value[item]]
1496                } else {
1497                    l = _.options.responsive.length - 1;
1498                    while (l >= 0) {
1499                        if (_.options.responsive[l].breakpoint === value[item].breakpoint) {
1500                            _.options.responsive.splice(l, 1)
1501                        }
1502                        l--
1503                    }
1504                    _.options.responsive.push(value[item])
1505                }
1506            }
1507        }
1508        if (refresh) {
1509            _.unload();
1510            _.reinit()
1511        }
1512    };
1513    Slick.prototype.setPosition = function() {
1514        var _ = this;
1515        _.setDimensions();
1516        _.setHeight();
1517        if (_.options.fade === false) {
1518            _.setCSS(_.getLeft(_.currentSlide))
1519        } else {
1520            _.setFade()
1521        }
1522        _.$slider.trigger("setPosition", [_])
1523    };
1524    Slick.prototype.setProps = function() {
1525        var _ = this,
1526            bodyStyle = document.body.style;
1527        _.positionProp = _.options.vertical === true ? "top" : "left";
1528        if (_.positionProp === "top") {
1529            _.$slider.addClass("slick-vertical")
1530        } else {
1531            _.$slider.removeClass("slick-vertical")
1532        }
1533        if (bodyStyle.WebkitTransition !== undefined || bodyStyle.MozTransition !== undefined || bodyStyle.msTransition !== undefined) {
1534            if (_.options.useCSS === true) {
1535                _.cssTransitions = true
1536            }
1537        }
1538        if (_.options.fade) {
1539            if (typeof _.options.zIndex === "number") {
1540                if (_.options.zIndex < 3) {
1541                    _.options.zIndex = 3
1542                }
1543            } else {
1544                _.options.zIndex = _.defaults.zIndex
1545            }
1546        }
1547        if (bodyStyle.OTransform !== undefined) {
1548            _.animType = "OTransform";
1549            _.transformType = "-o-transform";
1550            _.transitionType = "OTransition";
1551            if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false
1552        }
1553        if (bodyStyle.MozTransform !== undefined) {
1554            _.animType = "MozTransform";
1555            _.transformType = "-moz-transform";
1556            _.transitionType = "MozTransition";
1557            if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false
1558        }
1559        if (bodyStyle.webkitTransform !== undefined) {
1560            _.animType = "webkitTransform";
1561            _.transformType = "-webkit-transform";
1562            _.transitionType = "webkitTransition";
1563            if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false
1564        }
1565        if (bodyStyle.msTransform !== undefined) {
1566            _.animType = "msTransform";
1567            _.transformType = "-ms-transform";
1568            _.transitionType = "msTransition";
1569            if (bodyStyle.msTransform === undefined) _.animType = false
1570        }
1571        if (bodyStyle.transform !== undefined && _.animType !== false) {
1572            _.animType = "transform";
1573            _.transformType = "transform";
1574            _.transitionType = "transition"
1575        }
1576        _.transformsEnabled = _.options.useTransform && (_.animType !== null && _.animType !== false)
1577    };
1578    Slick.prototype.setSlideClasses = function(index) {
1579        var _ = this,
1580            centerOffset, allSlides, indexOffset, remainder;
1581        allSlides = _.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden", "true");
1582        _.$slides.eq(index).addClass("slick-current");
1583        if (_.options.centerMode === true) {
1584            var evenCoef = _.options.slidesToShow % 2 === 0 ? 1 : 0;
1585            centerOffset = Math.floor(_.options.slidesToShow / 2);
1586            if (_.options.infinite === true) {
1587                if (index >= centerOffset && index <= _.slideCount - 1 - centerOffset) {
1588                    _.$slides.slice(index - centerOffset + evenCoef, index + centerOffset + 1).addClass("slick-active").attr("aria-hidden", "false")
1589                } else {
1590                    indexOffset = _.options.slidesToShow + index;
1591                    allSlides.slice(indexOffset - centerOffset + 1 + evenCoef, indexOffset + centerOffset + 2).addClass("slick-active").attr("aria-hidden", "false")
1592                }
1593                if (index === 0) {
1594                    allSlides.eq(allSlides.length - 1 - _.options.slidesToShow).addClass("slick-center")
1595                } else if (index === _.slideCount - 1) {
1596                    allSlides.eq(_.options.slidesToShow).addClass("slick-center")
1597                }
1598            }
1599            _.$slides.eq(index).addClass("slick-center")
1600        } else {
1601            if (index >= 0 && index <= _.slideCount - _.options.slidesToShow) {
1602                _.$slides.slice(index, index + _.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false")
1603            } else if (allSlides.length <= _.options.slidesToShow) {
1604                allSlides.addClass("slick-active").attr("aria-hidden", "false")
1605            } else {
1606                remainder = _.slideCount % _.options.slidesToShow;
1607                indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index;
1608                if (_.options.slidesToShow == _.options.slidesToScroll && _.slideCount - index < _.options.slidesToShow) {
1609                    allSlides.slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder).addClass("slick-active").attr("aria-hidden", "false")
1610                } else {
1611                    allSlides.slice(indexOffset, indexOffset + _.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false")
1612                }
1613            }
1614        }
1615        if (_.options.lazyLoad === "ondemand" || _.options.lazyLoad === "anticipated") {
1616            _.lazyLoad()
1617        }
1618    };
1619    Slick.prototype.setupInfinite = function() {
1620        var _ = this,
1621            i, slideIndex, infiniteCount;
1622        if (_.options.fade === true) {
1623            _.options.centerMode = false
1624        }
1625        if (_.options.infinite === true && _.options.fade === false) {
1626            slideIndex = null;
1627            if (_.slideCount > _.options.slidesToShow) {
1628                if (_.options.centerMode === true) {
1629                    infiniteCount = _.options.slidesToShow + 1
1630                } else {
1631                    infiniteCount = _.options.slidesToShow
1632                }
1633                for (i = _.slideCount; i > _.slideCount - infiniteCount; i -= 1) {
1634                    slideIndex = i - 1;
1635                    $(_.$slides[slideIndex]).clone(true).attr("id", "").attr("data-slick-index", slideIndex - _.slideCount).prependTo(_.$slideTrack).addClass("slick-cloned")
1636                }
1637                for (i = 0; i < infiniteCount + _.slideCount; i += 1) {
1638                    slideIndex = i;
1639                    $(_.$slides[slideIndex]).clone(true).attr("id", "").attr("data-slick-index", slideIndex + _.slideCount).appendTo(_.$slideTrack).addClass("slick-cloned")
1640                }
1641                _.$slideTrack.find(".slick-cloned").find("[id]").each(function() {
1642                    $(this).attr("id", "")
1643                })
1644            }
1645        }
1646    };
1647    Slick.prototype.interrupt = function(toggle) {
1648        var _ = this;
1649        if (!toggle) {
1650            _.autoPlay()
1651        }
1652        _.interrupted = toggle
1653    };
1654    Slick.prototype.selectHandler = function(event) {
1655        var _ = this;
1656        var targetElement = $(event.target).is(".slick-slide") ? $(event.target) : $(event.target).parents(".slick-slide");
1657        var index = parseInt(targetElement.attr("data-slick-index"));
1658        if (!index) index = 0;
1659        if (_.slideCount <= _.options.slidesToShow) {
1660            _.slideHandler(index, false, true);
1661            return
1662        }
1663        _.slideHandler(index)
1664    };
1665    Slick.prototype.slideHandler = function(index, sync, dontAnimate) {
1666        var targetSlide, animSlide, oldSlide, slideLeft, targetLeft = null,
1667            _ = this,
1668            navTarget;
1669        sync = sync || false;
1670        if (_.animating === true && _.options.waitForAnimate === true) {
1671            return
1672        }
1673        if (_.options.fade === true && _.currentSlide === index) {
1674            return
1675        }
1676        if (sync === false) {
1677            _.asNavFor(index)
1678        }
1679        targetSlide = index;
1680        targetLeft = _.getLeft(targetSlide);
1681        slideLeft = _.getLeft(_.currentSlide);
1682        _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft;
1683        if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > _.getDotCount() * _.options.slidesToScroll)) {
1684            if (_.options.fade === false) {
1685                targetSlide = _.currentSlide;
1686                if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
1687                    _.animateSlide(slideLeft, function() {
1688                        _.postSlide(targetSlide)
1689                    })
1690                } else {
1691                    _.postSlide(targetSlide)
1692                }
1693            }
1694            return
1695        } else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > _.slideCount - _.options.slidesToScroll)) {
1696            if (_.options.fade === false) {
1697                targetSlide = _.currentSlide;
1698                if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
1699                    _.animateSlide(slideLeft, function() {
1700                        _.postSlide(targetSlide)
1701                    })
1702                } else {
1703                    _.postSlide(targetSlide)
1704                }
1705            }
1706            return
1707        }
1708        if (_.options.autoplay) {
1709            clearInterval(_.autoPlayTimer)
1710        }
1711        if (targetSlide < 0) {
1712            if (_.slideCount % _.options.slidesToScroll !== 0) {
1713                animSlide = _.slideCount - _.slideCount % _.options.slidesToScroll
1714            } else {
1715                animSlide = _.slideCount + targetSlide
1716            }
1717        } else if (targetSlide >= _.slideCount) {
1718            if (_.slideCount % _.options.slidesToScroll !== 0) {
1719                animSlide = 0
1720            } else {
1721                animSlide = targetSlide - _.slideCount
1722            }
1723        } else {
1724            animSlide = targetSlide
1725        }
1726        _.animating = true;
1727        _.$slider.trigger("beforeChange", [_, _.currentSlide, animSlide]);
1728        oldSlide = _.currentSlide;
1729        _.currentSlide = animSlide;
1730        _.setSlideClasses(_.currentSlide);
1731        if (_.options.asNavFor) {
1732            navTarget = _.getNavTarget();
1733            navTarget = navTarget.slick("getSlick");
1734            if (navTarget.slideCount <= navTarget.options.slidesToShow) {
1735                navTarget.setSlideClasses(_.currentSlide)
1736            }
1737        }
1738        _.updateDots();
1739        _.updateArrows();
1740        if (_.options.fade === true) {
1741            if (dontAnimate !== true) {
1742                _.fadeSlideOut(oldSlide);
1743                _.fadeSlide(animSlide, function() {
1744                    _.postSlide(animSlide)
1745                })
1746            } else {
1747                _.postSlide(animSlide)
1748            }
1749            _.animateHeight();
1750            return
1751        }
1752        if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
1753            _.animateSlide(targetLeft, function() {
1754                _.postSlide(animSlide)
1755            })
1756        } else {
1757            _.postSlide(animSlide)
1758        }
1759    };
1760    Slick.prototype.startLoad = function() {
1761        var _ = this;
1762        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
1763            _.$prevArrow.hide();
1764            _.$nextArrow.hide()
1765        }
1766        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
1767            _.$dots.hide()
1768        }
1769        _.$slider.addClass("slick-loading")
1770    };
1771    Slick.prototype.swipeDirection = function() {
1772        var xDist, yDist, r, swipeAngle, _ = this;
1773        xDist = _.touchObject.startX - _.touchObject.curX;
1774        yDist = _.touchObject.startY - _.touchObject.curY;
1775        r = Math.atan2(yDist, xDist);
1776        swipeAngle = Math.round(r * 180 / Math.PI);
1777        if (swipeAngle < 0) {
1778            swipeAngle = 360 - Math.abs(swipeAngle)
1779        }
1780        if (swipeAngle <= 45 && swipeAngle >= 0) {
1781            return _.options.rtl === false ? "left" : "right"
1782        }
1783        if (swipeAngle <= 360 && swipeAngle >= 315) {
1784            return _.options.rtl === false ? "left" : "right"
1785        }
1786        if (swipeAngle >= 135 && swipeAngle <= 225) {
1787            return _.options.rtl === false ? "right" : "left"
1788        }
1789        if (_.options.verticalSwiping === true) {
1790            if (swipeAngle >= 35 && swipeAngle <= 135) {
1791                return "down"
1792            } else {
1793                return "up"
1794            }
1795        }
1796        return "vertical"
1797    };
1798    Slick.prototype.swipeEnd = function(event) {
1799        var _ = this,
1800            slideCount, direction;
1801        _.dragging = false;
1802        _.swiping = false;
1803        if (_.scrolling) {
1804            _.scrolling = false;
1805            return false
1806        }
1807        _.interrupted = false;
1808        _.shouldClick = _.touchObject.swipeLength > 10 ? false : true;
1809        if (_.touchObject.curX === undefined) {
1810            return false
1811        }
1812        if (_.touchObject.edgeHit === true) {
1813            _.$slider.trigger("edge", [_, _.swipeDirection()])
1814        }
1815        if (_.touchObject.swipeLength >= _.touchObject.minSwipe) {
1816            direction = _.swipeDirection();
1817            switch (direction) {
1818                case "left":
1819                case "down":
1820                    slideCount = _.options.swipeToSlide ? _.checkNavigable(_.currentSlide + _.getSlideCount()) : _.currentSlide + _.getSlideCount();
1821                    _.currentDirection = 0;
1822                    break;
1823                case "right":
1824                case "up":
1825                    slideCount = _.options.swipeToSlide ? _.checkNavigable(_.currentSlide - _.getSlideCount()) : _.currentSlide - _.getSlideCount();
1826                    _.currentDirection = 1;
1827                    break;
1828                default:
1829            }
1830            if (direction != "vertical") {
1831                _.slideHandler(slideCount);
1832                _.touchObject = {};
1833                _.$slider.trigger("swipe", [_, direction])
1834            }
1835        } else {
1836            if (_.touchObject.startX !== _.touchObject.curX) {
1837                _.slideHandler(_.currentSlide);
1838                _.touchObject = {}
1839            }
1840        }
1841    };
1842    Slick.prototype.swipeHandler = function(event) {
1843        var _ = this;
1844        if (_.options.swipe === false || "ontouchend" in document && _.options.swipe === false) {
1845            return
1846        } else if (_.options.draggable === false && event.type.indexOf("mouse") !== -1) {
1847            return
1848        }
1849        _.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ? event.originalEvent.touches.length : 1;
1850        _.touchObject.minSwipe = _.listWidth / _.options.touchThreshold;
1851        if (_.options.verticalSwiping === true) {
1852            _.touchObject.minSwipe = _.listHeight / _.options.touchThreshold
1853        }
1854        switch (event.data.action) {
1855            case "start":
1856                _.swipeStart(event);
1857                break;
1858            case "move":
1859                _.swipeMove(event);
1860                break;
1861            case "end":
1862                _.swipeEnd(event);
1863                break
1864        }
1865    };
1866    Slick.prototype.swipeMove = function(event) {
1867        var _ = this,
1868            edgeWasHit = false,
1869            curLeft, swipeDirection, swipeLength, positionOffset, touches, verticalSwipeLength;
1870        touches = event.originalEvent !== undefined ? event.originalEvent.touches : null;
1871        if (!_.dragging || _.scrolling || touches && touches.length !== 1) {
1872            return false
1873        }
1874        curLeft = _.getLeft(_.currentSlide);
1875        _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX;
1876        _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY;
1877        _.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(_.touchObject.curX - _.touchObject.startX, 2)));
1878        verticalSwipeLength = Math.round(Math.sqrt(Math.pow(_.touchObject.curY - _.touchObject.startY, 2)));
1879        if (!_.options.verticalSwiping && !_.swiping && verticalSwipeLength > 4) {
1880            _.scrolling = true;
1881            return false
1882        }
1883        if (_.options.verticalSwiping === true) {
1884            _.touchObject.swipeLength = verticalSwipeLength
1885        }
1886        swipeDirection = _.swipeDirection();
1887        if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) {
1888            _.swiping = true;
1889            event.preventDefault()
1890        }
1891        positionOffset = (_.options.rtl === false ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1);
1892        if (_.options.verticalSwiping === true) {
1893            positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1
1894        }
1895        swipeLength = _.touchObject.swipeLength;
1896        _.touchObject.edgeHit = false;
1897        if (_.options.infinite === false) {
1898            if (_.currentSlide === 0 && swipeDirection === "right" || _.currentSlide >= _.getDotCount() && swipeDirection === "left") {
1899                swipeLength = _.touchObject.swipeLength * _.options.edgeFriction;
1900                _.touchObject.edgeHit = true
1901            }
1902        }
1903        if (_.options.vertical === false) {
1904            _.swipeLeft = curLeft + swipeLength * positionOffset
1905        } else {
1906            _.swipeLeft = curLeft + swipeLength * (_.$list.height() / _.listWidth) * positionOffset
1907        }
1908        if (_.options.verticalSwiping === true) {
1909            _.swipeLeft = curLeft + swipeLength * positionOffset
1910        }
1911        if (_.options.fade === true || _.options.touchMove === false) {
1912            return false
1913        }
1914        if (_.animating === true) {
1915            _.swipeLeft = null;
1916            return false
1917        }
1918        _.setCSS(_.swipeLeft)
1919    };
1920    Slick.prototype.swipeStart = function(event) {
1921        var _ = this,
1922            touches;
1923        _.interrupted = true;
1924        if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) {
1925            _.touchObject = {};
1926            return false
1927        }
1928        if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) {
1929            touches = event.originalEvent.touches[0]
1930        }
1931        _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX;
1932        _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY;
1933        _.dragging = true
1934    };
1935    Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function() {
1936        var _ = this;
1937        if (_.$slidesCache !== null) {
1938            _.unload();
1939            _.$slideTrack.children(this.options.slide).detach();
1940            _.$slidesCache.appendTo(_.$slideTrack);
1941            _.reinit()
1942        }
1943    };
1944    Slick.prototype.unload = function() {
1945        var _ = this;
1946        $(".slick-cloned", _.$slider).remove();
1947        if (_.$dots) {
1948            _.$dots.remove()
1949        }
1950        if (_.$prevArrow && _.htmlExpr.test(_.options.prevArrow)) {
1951            _.$prevArrow.remove()
1952        }
1953        if (_.$nextArrow && _.htmlExpr.test(_.options.nextArrow)) {
1954            _.$nextArrow.remove()
1955        }
1956        _.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden", "true").css("width", "")
1957    };
1958    Slick.prototype.unslick = function(fromBreakpoint) {
1959        var _ = this;
1960        _.$slider.trigger("unslick", [_, fromBreakpoint]);
1961        _.destroy()
1962    };
1963    Slick.prototype.updateArrows = function() {
1964        var _ = this,
1965            centerOffset;
1966        centerOffset = Math.floor(_.options.slidesToShow / 2);
1967        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow && !_.options.infinite) {
1968            _.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false");
1969            _.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false");
1970            if (_.currentSlide === 0) {
1971                _.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true");
1972                _.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false")
1973            } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow && _.options.centerMode === false) {
1974                _.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true");
1975                _.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")
1976            } else if (_.currentSlide >= _.slideCount - 1 && _.options.centerMode === true) {
1977                _.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true");
1978                _.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")
1979            }
1980        }
1981    };
1982    Slick.prototype.updateDots = function() {
1983        var _ = this;
1984        if (_.$dots !== null) {
1985            _.$dots.find("li").removeClass("slick-active").end();
1986            _.$dots.find("li").eq(Math.floor(_.currentSlide / _.options.slidesToScroll)).addClass("slick-active")
1987        }
1988    };
1989    Slick.prototype.visibility = function() {
1990        var _ = this;
1991        if (_.options.autoplay) {
1992            if (document[_.hidden]) {
1993                _.interrupted = true
1994            } else {
1995                _.interrupted = false
1996            }
1997        }
1998    };
1999    $.fn.slick = function() {
2000        var _ = this,
2001            opt = arguments[0],
2002            args = Array.prototype.slice.call(arguments, 1),
2003            l = _.length,
2004            i, ret;
2005        for (i = 0; i < l; i++) {
2006            if (typeof opt == "object" || typeof opt == "undefined") _[i].slick = new Slick(_[i], opt);
2007            else ret = _[i].slick[opt].apply(_[i].slick, args);
2008            if (typeof ret != "undefined") return ret
2009        }
2010        return _
2011    }
2012});

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