/*! jQuery UI - v1.12.0 - 2016-08-11
 * http://jqueryui.com
 * Includes: widget.js, keycode.js, widgets/mouse.js, widgets/slider.js
 * Copyright jQuery Foundation and other contributors; Licensed MIT */

(function (t) {
    "function" == typeof define && define.amd ? define(["jquery"], t) : t(jQuery);
})(function (t) {
    (t.ui = t.ui || {}), (t.ui.version = "1.12.0");
    var e = 0,
        i = Array.prototype.slice;
    (t.cleanData = (function (e) {
        return function (i) {
            var s, n, o;
            for (o = 0; null != (n = i[o]); o++)
                try {
                    (s = t._data(n, "events")), s && s.remove && t(n).triggerHandler("remove");
                } catch (a) {}
            e(i);
        };
    })(t.cleanData)),
        (t.widget = function (e, i, s) {
            var n,
                o,
                a,
                r = {},
                l = e.split(".")[0];
            e = e.split(".")[1];
            var h = l + "-" + e;
            return (
                s || ((s = i), (i = t.Widget)),
                t.isArray(s) && (s = t.extend.apply(null, [{}].concat(s))),
                (t.expr[":"][h.toLowerCase()] = function (e) {
                    return !!t.data(e, h);
                }),
                (t[l] = t[l] || {}),
                (n = t[l][e]),
                (o = t[l][e] = function (t, e) {
                    return this._createWidget ? (arguments.length && this._createWidget(t, e), void 0) : new o(t, e);
                }),
                t.extend(o, n, { version: s.version, _proto: t.extend({}, s), _childConstructors: [] }),
                (a = new i()),
                (a.options = t.widget.extend({}, a.options)),
                t.each(s, function (e, s) {
                    return t.isFunction(s)
                        ? ((r[e] = (function () {
                              function t() {
                                  return i.prototype[e].apply(this, arguments);
                              }
                              function n(t) {
                                  return i.prototype[e].apply(this, t);
                              }
                              return function () {
                                  var e,
                                      i = this._super,
                                      o = this._superApply;
                                  return (this._super = t), (this._superApply = n), (e = s.apply(this, arguments)), (this._super = i), (this._superApply = o), e;
                              };
                          })()),
                          void 0)
                        : ((r[e] = s), void 0);
                }),
                (o.prototype = t.widget.extend(a, { widgetEventPrefix: n ? a.widgetEventPrefix || e : e }, r, { constructor: o, namespace: l, widgetName: e, widgetFullName: h })),
                n
                    ? (t.each(n._childConstructors, function (e, i) {
                          var s = i.prototype;
                          t.widget(s.namespace + "." + s.widgetName, o, i._proto);
                      }),
                      delete n._childConstructors)
                    : i._childConstructors.push(o),
                t.widget.bridge(e, o),
                o
            );
        }),
        (t.widget.extend = function (e) {
            for (var s, n, o = i.call(arguments, 1), a = 0, r = o.length; r > a; a++)
                for (s in o[a]) (n = o[a][s]), o[a].hasOwnProperty(s) && void 0 !== n && (e[s] = t.isPlainObject(n) ? (t.isPlainObject(e[s]) ? t.widget.extend({}, e[s], n) : t.widget.extend({}, n)) : n);
            return e;
        }),
        (t.widget.bridge = function (e, s) {
            var n = s.prototype.widgetFullName || e;
            t.fn[e] = function (o) {
                var a = "string" == typeof o,
                    r = i.call(arguments, 1),
                    l = this;
                return (
                    a
                        ? this.each(function () {
                              var i,
                                  s = t.data(this, n);
                              return "instance" === o
                                  ? ((l = s), !1)
                                  : s
                                  ? t.isFunction(s[o]) && "_" !== o.charAt(0)
                                      ? ((i = s[o].apply(s, r)), i !== s && void 0 !== i ? ((l = i && i.jquery ? l.pushStack(i.get()) : i), !1) : void 0)
                                      : t.error("no such method '" + o + "' for " + e + " widget instance")
                                  : t.error("cannot call methods on " + e + " prior to initialization; " + "attempted to call method '" + o + "'");
                          })
                        : (r.length && (o = t.widget.extend.apply(null, [o].concat(r))),
                          this.each(function () {
                              var e = t.data(this, n);
                              e ? (e.option(o || {}), e._init && e._init()) : t.data(this, n, new s(o, this));
                          })),
                    l
                );
            };
        }),
        (t.Widget = function () {}),
        (t.Widget._childConstructors = []),
        (t.Widget.prototype = {
            widgetName: "widget",
            widgetEventPrefix: "",
            defaultElement: "<div>",
            options: { classes: {}, disabled: !1, create: null },
            _createWidget: function (i, s) {
                (s = t(s || this.defaultElement || this)[0]),
                    (this.element = t(s)),
                    (this.uuid = e++),
                    (this.eventNamespace = "." + this.widgetName + this.uuid),
                    (this.bindings = t()),
                    (this.hoverable = t()),
                    (this.focusable = t()),
                    (this.classesElementLookup = {}),
                    s !== this &&
                        (t.data(s, this.widgetFullName, this),
                        this._on(!0, this.element, {
                            remove: function (t) {
                                t.target === s && this.destroy();
                            },
                        }),
                        (this.document = t(s.style ? s.ownerDocument : s.document || s)),
                        (this.window = t(this.document[0].defaultView || this.document[0].parentWindow))),
                    (this.options = t.widget.extend({}, this.options, this._getCreateOptions(), i)),
                    this._create(),
                    this.options.disabled && this._setOptionDisabled(this.options.disabled),
                    this._trigger("create", null, this._getCreateEventData()),
                    this._init();
            },
            _getCreateOptions: function () {
                return {};
            },
            _getCreateEventData: t.noop,
            _create: t.noop,
            _init: t.noop,
            destroy: function () {
                var e = this;
                this._destroy(),
                    t.each(this.classesElementLookup, function (t, i) {
                        e._removeClass(i, t);
                    }),
                    this.element.off(this.eventNamespace).removeData(this.widgetFullName),
                    this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),
                    this.bindings.off(this.eventNamespace);
            },
            _destroy: t.noop,
            widget: function () {
                return this.element;
            },
            option: function (e, i) {
                var s,
                    n,
                    o,
                    a = e;
                if (0 === arguments.length) return t.widget.extend({}, this.options);
                if ("string" == typeof e)
                    if (((a = {}), (s = e.split(".")), (e = s.shift()), s.length)) {
                        for (n = a[e] = t.widget.extend({}, this.options[e]), o = 0; s.length - 1 > o; o++) (n[s[o]] = n[s[o]] || {}), (n = n[s[o]]);
                        if (((e = s.pop()), 1 === arguments.length)) return void 0 === n[e] ? null : n[e];
                        n[e] = i;
                    } else {
                        if (1 === arguments.length) return void 0 === this.options[e] ? null : this.options[e];
                        a[e] = i;
                    }
                return this._setOptions(a), this;
            },
            _setOptions: function (t) {
                var e;
                for (e in t) this._setOption(e, t[e]);
                return this;
            },
            _setOption: function (t, e) {
                return "classes" === t && this._setOptionClasses(e), (this.options[t] = e), "disabled" === t && this._setOptionDisabled(e), this;
            },
            _setOptionClasses: function (e) {
                var i, s, n;
                for (i in e) (n = this.classesElementLookup[i]), e[i] !== this.options.classes[i] && n && n.length && ((s = t(n.get())), this._removeClass(n, i), s.addClass(this._classes({ element: s, keys: i, classes: e, add: !0 })));
            },
            _setOptionDisabled: function (t) {
                this._toggleClass(this.widget(), this.widgetFullName + "-disabled", null, !!t), t && (this._removeClass(this.hoverable, null, "ui-state-hover"), this._removeClass(this.focusable, null, "ui-state-focus"));
            },
            enable: function () {
                return this._setOptions({ disabled: !1 });
            },
            disable: function () {
                return this._setOptions({ disabled: !0 });
            },
            _classes: function (e) {
                function i(i, o) {
                    var a, r;
                    for (r = 0; i.length > r; r++)
                        (a = n.classesElementLookup[i[r]] || t()),
                            (a = e.add ? t(t.unique(a.get().concat(e.element.get()))) : t(a.not(e.element).get())),
                            (n.classesElementLookup[i[r]] = a),
                            s.push(i[r]),
                            o && e.classes[i[r]] && s.push(e.classes[i[r]]);
                }
                var s = [],
                    n = this;
                return (e = t.extend({ element: this.element, classes: this.options.classes || {} }, e)), e.keys && i(e.keys.match(/\S+/g) || [], !0), e.extra && i(e.extra.match(/\S+/g) || []), s.join(" ");
            },
            _removeClass: function (t, e, i) {
                return this._toggleClass(t, e, i, !1);
            },
            _addClass: function (t, e, i) {
                return this._toggleClass(t, e, i, !0);
            },
            _toggleClass: function (t, e, i, s) {
                s = "boolean" == typeof s ? s : i;
                var n = "string" == typeof t || null === t,
                    o = { extra: n ? e : i, keys: n ? t : e, element: n ? this.element : t, add: s };
                return o.element.toggleClass(this._classes(o), s), this;
            },
            _on: function (e, i, s) {
                var n,
                    o = this;
                "boolean" != typeof e && ((s = i), (i = e), (e = !1)),
                    s ? ((i = n = t(i)), (this.bindings = this.bindings.add(i))) : ((s = i), (i = this.element), (n = this.widget())),
                    t.each(s, function (s, a) {
                        function r() {
                            return e || (o.options.disabled !== !0 && !t(this).hasClass("ui-state-disabled")) ? ("string" == typeof a ? o[a] : a).apply(o, arguments) : void 0;
                        }
                        "string" != typeof a && (r.guid = a.guid = a.guid || r.guid || t.guid++);
                        var l = s.match(/^([\w:-]*)\s*(.*)$/),
                            h = l[1] + o.eventNamespace,
                            c = l[2];
                        c ? n.on(h, c, r) : i.on(h, r);
                    });
            },
            _off: function (e, i) {
                (i = (i || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace),
                    e.off(i).off(i),
                    (this.bindings = t(this.bindings.not(e).get())),
                    (this.focusable = t(this.focusable.not(e).get())),
                    (this.hoverable = t(this.hoverable.not(e).get()));
            },
            _delay: function (t, e) {
                function i() {
                    return ("string" == typeof t ? s[t] : t).apply(s, arguments);
                }
                var s = this;
                return setTimeout(i, e || 0);
            },
            _hoverable: function (e) {
                (this.hoverable = this.hoverable.add(e)),
                    this._on(e, {
                        mouseenter: function (e) {
                            this._addClass(t(e.currentTarget), null, "ui-state-hover");
                        },
                        mouseleave: function (e) {
                            this._removeClass(t(e.currentTarget), null, "ui-state-hover");
                        },
                    });
            },
            _focusable: function (e) {
                (this.focusable = this.focusable.add(e)),
                    this._on(e, {
                        focusin: function (e) {
                            this._addClass(t(e.currentTarget), null, "ui-state-focus");
                        },
                        focusout: function (e) {
                            this._removeClass(t(e.currentTarget), null, "ui-state-focus");
                        },
                    });
            },
            _trigger: function (e, i, s) {
                var n,
                    o,
                    a = this.options[e];
                if (((s = s || {}), (i = t.Event(i)), (i.type = (e === this.widgetEventPrefix ? e : this.widgetEventPrefix + e).toLowerCase()), (i.target = this.element[0]), (o = i.originalEvent))) for (n in o) n in i || (i[n] = o[n]);
                return this.element.trigger(i, s), !((t.isFunction(a) && a.apply(this.element[0], [i].concat(s)) === !1) || i.isDefaultPrevented());
            },
        }),
        t.each({ show: "fadeIn", hide: "fadeOut" }, function (e, i) {
            t.Widget.prototype["_" + e] = function (s, n, o) {
                "string" == typeof n && (n = { effect: n });
                var a,
                    r = n ? (n === !0 || "number" == typeof n ? i : n.effect || i) : e;
                (n = n || {}),
                    "number" == typeof n && (n = { duration: n }),
                    (a = !t.isEmptyObject(n)),
                    (n.complete = o),
                    n.delay && s.delay(n.delay),
                    a && t.effects && t.effects.effect[r]
                        ? s[e](n)
                        : r !== e && s[r]
                        ? s[r](n.duration, n.easing, o)
                        : s.queue(function (i) {
                              t(this)[e](), o && o.call(s[0]), i();
                          });
            };
        }),
        t.widget,
        (t.ui.keyCode = { BACKSPACE: 8, COMMA: 188, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, LEFT: 37, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SPACE: 32, TAB: 9, UP: 38 }),
        (t.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()));
    var s = !1;
    t(document).on("mouseup", function () {
        s = !1;
    }),
        t.widget("ui.mouse", {
            version: "1.12.0",
            options: { cancel: "input, textarea, button, select, option", distance: 1, delay: 0 },
            _mouseInit: function () {
                var e = this;
                this.element
                    .on("mousedown." + this.widgetName, function (t) {
                        return e._mouseDown(t);
                    })
                    .on("click." + this.widgetName, function (i) {
                        return !0 === t.data(i.target, e.widgetName + ".preventClickEvent") ? (t.removeData(i.target, e.widgetName + ".preventClickEvent"), i.stopImmediatePropagation(), !1) : void 0;
                    }),
                    (this.started = !1);
            },
            _mouseDestroy: function () {
                this.element.off("." + this.widgetName), this._mouseMoveDelegate && this.document.off("mousemove." + this.widgetName, this._mouseMoveDelegate).off("mouseup." + this.widgetName, this._mouseUpDelegate);
            },
            _mouseDown: function (e) {
                if (!s) {
                    (this._mouseMoved = !1), this._mouseStarted && this._mouseUp(e), (this._mouseDownEvent = e);
                    var i = this,
                        n = 1 === e.which,
                        o = "string" == typeof this.options.cancel && e.target.nodeName ? t(e.target).closest(this.options.cancel).length : !1;
                    return n && !o && this._mouseCapture(e)
                        ? ((this.mouseDelayMet = !this.options.delay),
                          this.mouseDelayMet ||
                              (this._mouseDelayTimer = setTimeout(function () {
                                  i.mouseDelayMet = !0;
                              }, this.options.delay)),
                          this._mouseDistanceMet(e) && this._mouseDelayMet(e) && ((this._mouseStarted = this._mouseStart(e) !== !1), !this._mouseStarted)
                              ? (e.preventDefault(), !0)
                              : (!0 === t.data(e.target, this.widgetName + ".preventClickEvent") && t.removeData(e.target, this.widgetName + ".preventClickEvent"),
                                (this._mouseMoveDelegate = function (t) {
                                    return i._mouseMove(t);
                                }),
                                (this._mouseUpDelegate = function (t) {
                                    return i._mouseUp(t);
                                }),
                                this.document.on("mousemove." + this.widgetName, this._mouseMoveDelegate).on("mouseup." + this.widgetName, this._mouseUpDelegate),
                                e.preventDefault(),
                                (s = !0),
                                !0))
                        : !0;
                }
            },
            _mouseMove: function (e) {
                if (this._mouseMoved) {
                    if (t.ui.ie && (!document.documentMode || 9 > document.documentMode) && !e.button) return this._mouseUp(e);
                    if (!e.which)
                        if (e.originalEvent.altKey || e.originalEvent.ctrlKey || e.originalEvent.metaKey || e.originalEvent.shiftKey) this.ignoreMissingWhich = !0;
                        else if (!this.ignoreMissingWhich) return this._mouseUp(e);
                }
                return (
                    (e.which || e.button) && (this._mouseMoved = !0),
                    this._mouseStarted
                        ? (this._mouseDrag(e), e.preventDefault())
                        : (this._mouseDistanceMet(e) && this._mouseDelayMet(e) && ((this._mouseStarted = this._mouseStart(this._mouseDownEvent, e) !== !1), this._mouseStarted ? this._mouseDrag(e) : this._mouseUp(e)), !this._mouseStarted)
                );
            },
            _mouseUp: function (e) {
                this.document.off("mousemove." + this.widgetName, this._mouseMoveDelegate).off("mouseup." + this.widgetName, this._mouseUpDelegate),
                    this._mouseStarted && ((this._mouseStarted = !1), e.target === this._mouseDownEvent.target && t.data(e.target, this.widgetName + ".preventClickEvent", !0), this._mouseStop(e)),
                    this._mouseDelayTimer && (clearTimeout(this._mouseDelayTimer), delete this._mouseDelayTimer),
                    (this.ignoreMissingWhich = !1),
                    (s = !1),
                    e.preventDefault();
            },
            _mouseDistanceMet: function (t) {
                return Math.max(Math.abs(this._mouseDownEvent.pageX - t.pageX), Math.abs(this._mouseDownEvent.pageY - t.pageY)) >= this.options.distance;
            },
            _mouseDelayMet: function () {
                return this.mouseDelayMet;
            },
            _mouseStart: function () {},
            _mouseDrag: function () {},
            _mouseStop: function () {},
            _mouseCapture: function () {
                return !0;
            },
        }),
        t.widget("ui.slider", t.ui.mouse, {
            version: "1.12.0",
            widgetEventPrefix: "slide",
            options: {
                animate: !1,
                classes: { "ui-slider": "ui-corner-all", "ui-slider-handle": "ui-corner-all", "ui-slider-range": "ui-corner-all ui-widget-header" },
                distance: 0,
                max: 100,
                min: 0,
                orientation: "horizontal",
                range: !1,
                step: 1,
                value: 0,
                values: null,
                change: null,
                slide: null,
                start: null,
                stop: null,
            },
            numPages: 5,
            _create: function () {
                (this._keySliding = !1),
                    (this._mouseSliding = !1),
                    (this._animateOff = !0),
                    (this._handleIndex = null),
                    this._detectOrientation(),
                    this._mouseInit(),
                    this._calculateNewMax(),
                    this._addClass("ui-slider ui-slider-" + this.orientation, "ui-widget ui-widget-content"),
                    this._refresh(),
                    (this._animateOff = !1);
            },
            _refresh: function () {
                this._createRange(), this._createHandles(), this._setupEvents(), this._refreshValue();
            },
            _createHandles: function () {
                var e,
                    i,
                    s = this.options,
                    n = this.element.find(".ui-slider-handle"),
                    o = "<span tabindex='0'></span>",
                    a = [];
                for (i = (s.values && s.values.length) || 1, n.length > i && (n.slice(i).remove(), (n = n.slice(0, i))), e = n.length; i > e; e++) a.push(o);
                (this.handles = n.add(t(a.join("")).appendTo(this.element))),
                    this._addClass(this.handles, "ui-slider-handle", "ui-state-default"),
                    (this.handle = this.handles.eq(0)),
                    this.handles.each(function (e) {
                        t(this).data("ui-slider-handle-index", e);
                    });
            },
            _createRange: function () {
                var e = this.options;
                e.range
                    ? (e.range === !0 &&
                          (e.values ? (e.values.length && 2 !== e.values.length ? (e.values = [e.values[0], e.values[0]]) : t.isArray(e.values) && (e.values = e.values.slice(0))) : (e.values = [this._valueMin(), this._valueMin()])),
                      this.range && this.range.length
                          ? (this._removeClass(this.range, "ui-slider-range-min ui-slider-range-max"), this.range.css({ left: "", bottom: "" }))
                          : ((this.range = t("<div>").appendTo(this.element)), this._addClass(this.range, "ui-slider-range")),
                      ("min" === e.range || "max" === e.range) && this._addClass(this.range, "ui-slider-range-" + e.range))
                    : (this.range && this.range.remove(), (this.range = null));
            },
            _setupEvents: function () {
                this._off(this.handles), this._on(this.handles, this._handleEvents), this._hoverable(this.handles), this._focusable(this.handles);
            },
            _destroy: function () {
                this.handles.remove(), this.range && this.range.remove(), this._mouseDestroy();
            },
            _mouseCapture: function (e) {
                var i,
                    s,
                    n,
                    o,
                    a,
                    r,
                    l,
                    h,
                    c = this,
                    u = this.options;
                return u.disabled
                    ? !1
                    : ((this.elementSize = { width: this.element.outerWidth(), height: this.element.outerHeight() }),
                      (this.elementOffset = this.element.offset()),
                      (i = { x: e.pageX, y: e.pageY }),
                      (s = this._normValueFromMouse(i)),
                      (n = this._valueMax() - this._valueMin() + 1),
                      this.handles.each(function (e) {
                          var i = Math.abs(s - c.values(e));
                          (n > i || (n === i && (e === c._lastChangedValue || c.values(e) === u.min))) && ((n = i), (o = t(this)), (a = e));
                      }),
                      (r = this._start(e, a)),
                      r === !1
                          ? !1
                          : ((this._mouseSliding = !0),
                            (this._handleIndex = a),
                            this._addClass(o, null, "ui-state-active"),
                            o.trigger("focus"),
                            (l = o.offset()),
                            (h = !t(e.target).parents().addBack().is(".ui-slider-handle")),
                            (this._clickOffset = h
                                ? { left: 0, top: 0 }
                                : {
                                      left: e.pageX - l.left - o.width() / 2,
                                      top: e.pageY - l.top - o.height() / 2 - (parseInt(o.css("borderTopWidth"), 10) || 0) - (parseInt(o.css("borderBottomWidth"), 10) || 0) + (parseInt(o.css("marginTop"), 10) || 0),
                                  }),
                            this.handles.hasClass("ui-state-hover") || this._slide(e, a, s),
                            (this._animateOff = !0),
                            !0));
            },
            _mouseStart: function () {
                return !0;
            },
            _mouseDrag: function (t) {
                var e = { x: t.pageX, y: t.pageY },
                    i = this._normValueFromMouse(e);
                return this._slide(t, this._handleIndex, i), !1;
            },
            _mouseStop: function (t) {
                return (
                    this._removeClass(this.handles, null, "ui-state-active"),
                    (this._mouseSliding = !1),
                    this._stop(t, this._handleIndex),
                    this._change(t, this._handleIndex),
                    (this._handleIndex = null),
                    (this._clickOffset = null),
                    (this._animateOff = !1),
                    !1
                );
            },
            _detectOrientation: function () {
                this.orientation = "vertical" === this.options.orientation ? "vertical" : "horizontal";
            },
            _normValueFromMouse: function (t) {
                var e, i, s, n, o;
                return (
                    "horizontal" === this.orientation
                        ? ((e = this.elementSize.width), (i = t.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)))
                        : ((e = this.elementSize.height), (i = t.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0))),
                    (s = i / e),
                    s > 1 && (s = 1),
                    0 > s && (s = 0),
                    "vertical" === this.orientation && (s = 1 - s),
                    (n = this._valueMax() - this._valueMin()),
                    (o = this._valueMin() + s * n),
                    this._trimAlignValue(o)
                );
            },
            _uiHash: function (t, e, i) {
                var s = { handle: this.handles[t], handleIndex: t, value: void 0 !== e ? e : this.value() };
                return this._hasMultipleValues() && ((s.value = void 0 !== e ? e : this.values(t)), (s.values = i || this.values())), s;
            },
            _hasMultipleValues: function () {
                return this.options.values && this.options.values.length;
            },
            _start: function (t, e) {
                return this._trigger("start", t, this._uiHash(e));
            },
            _slide: function (t, e, i) {
                var s,
                    n,
                    o = this.value(),
                    a = this.values();
                this._hasMultipleValues() && ((n = this.values(e ? 0 : 1)), (o = this.values(e)), 2 === this.options.values.length && this.options.range === !0 && (i = 0 === e ? Math.min(n, i) : Math.max(n, i)), (a[e] = i)),
                    i !== o && ((s = this._trigger("slide", t, this._uiHash(e, i, a))), s !== !1 && (this._hasMultipleValues() ? this.values(e, i) : this.value(i)));
            },
            _stop: function (t, e) {
                this._trigger("stop", t, this._uiHash(e));
            },
            _change: function (t, e) {
                this._keySliding || this._mouseSliding || ((this._lastChangedValue = e), this._trigger("change", t, this._uiHash(e)));
            },
            value: function (t) {
                return arguments.length ? ((this.options.value = this._trimAlignValue(t)), this._refreshValue(), this._change(null, 0), void 0) : this._value();
            },
            values: function (e, i) {
                var s, n, o;
                if (arguments.length > 1) return (this.options.values[e] = this._trimAlignValue(i)), this._refreshValue(), this._change(null, e), void 0;
                if (!arguments.length) return this._values();
                if (!t.isArray(arguments[0])) return this._hasMultipleValues() ? this._values(e) : this.value();
                for (s = this.options.values, n = arguments[0], o = 0; s.length > o; o += 1) (s[o] = this._trimAlignValue(n[o])), this._change(null, o);
                this._refreshValue();
            },
            _setOption: function (e, i) {
                var s,
                    n = 0;
                switch (
                    ("range" === e &&
                        this.options.range === !0 &&
                        ("min" === i ? ((this.options.value = this._values(0)), (this.options.values = null)) : "max" === i && ((this.options.value = this._values(this.options.values.length - 1)), (this.options.values = null))),
                    t.isArray(this.options.values) && (n = this.options.values.length),
                    this._super(e, i),
                    e)
                ) {
                    case "orientation":
                        this._detectOrientation(),
                            this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-" + this.orientation),
                            this._refreshValue(),
                            this.options.range && this._refreshRange(i),
                            this.handles.css("horizontal" === i ? "bottom" : "left", "");
                        break;
                    case "value":
                        (this._animateOff = !0), this._refreshValue(), this._change(null, 0), (this._animateOff = !1);
                        break;
                    case "values":
                        for (this._animateOff = !0, this._refreshValue(), s = n - 1; s >= 0; s--) this._change(null, s);
                        this._animateOff = !1;
                        break;
                    case "step":
                    case "min":
                    case "max":
                        (this._animateOff = !0), this._calculateNewMax(), this._refreshValue(), (this._animateOff = !1);
                        break;
                    case "range":
                        (this._animateOff = !0), this._refresh(), (this._animateOff = !1);
                }
            },
            _setOptionDisabled: function (t) {
                this._super(t), this._toggleClass(null, "ui-state-disabled", !!t);
            },
            _value: function () {
                var t = this.options.value;
                return (t = this._trimAlignValue(t));
            },
            _values: function (t) {
                var e, i, s;
                if (arguments.length) return (e = this.options.values[t]), (e = this._trimAlignValue(e));
                if (this._hasMultipleValues()) {
                    for (i = this.options.values.slice(), s = 0; i.length > s; s += 1) i[s] = this._trimAlignValue(i[s]);
                    return i;
                }
                return [];
            },
            _trimAlignValue: function (t) {
                if (this._valueMin() >= t) return this._valueMin();
                if (t >= this._valueMax()) return this._valueMax();
                var e = this.options.step > 0 ? this.options.step : 1,
                    i = (t - this._valueMin()) % e,
                    s = t - i;
                return 2 * Math.abs(i) >= e && (s += i > 0 ? e : -e), parseFloat(s.toFixed(5));
            },
            _calculateNewMax: function () {
                var t = this.options.max,
                    e = this._valueMin(),
                    i = this.options.step,
                    s = Math.round((t - e) / i) * i;
                (t = s + e), t > this.options.max && (t -= i), (this.max = parseFloat(t.toFixed(this._precision())));
            },
            _precision: function () {
                var t = this._precisionOf(this.options.step);
                return null !== this.options.min && (t = Math.max(t, this._precisionOf(this.options.min))), t;
            },
            _precisionOf: function (t) {
                var e = "" + t,
                    i = e.indexOf(".");
                return -1 === i ? 0 : e.length - i - 1;
            },
            _valueMin: function () {
                return this.options.min;
            },
            _valueMax: function () {
                return this.max;
            },
            _refreshRange: function (t) {
                "vertical" === t && this.range.css({ width: "", left: "" }), "horizontal" === t && this.range.css({ height: "", bottom: "" });
            },
            _refreshValue: function () {
                var e,
                    i,
                    s,
                    n,
                    o,
                    a = this.options.range,
                    r = this.options,
                    l = this,
                    h = this._animateOff ? !1 : r.animate,
                    c = {};
                this._hasMultipleValues()
                    ? this.handles.each(function (s) {
                          (i = 100 * ((l.values(s) - l._valueMin()) / (l._valueMax() - l._valueMin()))),
                              (c["horizontal" === l.orientation ? "left" : "bottom"] = i + "%"),
                              t(this).stop(1, 1)[h ? "animate" : "css"](c, r.animate),
                              l.options.range === !0 &&
                                  ("horizontal" === l.orientation
                                      ? (0 === s && l.range.stop(1, 1)[h ? "animate" : "css"]({ left: i + "%" }, r.animate), 1 === s && l.range[h ? "animate" : "css"]({ width: i - e + "%" }, { queue: !1, duration: r.animate }))
                                      : (0 === s && l.range.stop(1, 1)[h ? "animate" : "css"]({ bottom: i + "%" }, r.animate), 1 === s && l.range[h ? "animate" : "css"]({ height: i - e + "%" }, { queue: !1, duration: r.animate }))),
                              (e = i);
                      })
                    : ((s = this.value()),
                      (n = this._valueMin()),
                      (o = this._valueMax()),
                      (i = o !== n ? 100 * ((s - n) / (o - n)) : 0),
                      (c["horizontal" === this.orientation ? "left" : "bottom"] = i + "%"),
                      this.handle.stop(1, 1)[h ? "animate" : "css"](c, r.animate),
                      "min" === a && "horizontal" === this.orientation && this.range.stop(1, 1)[h ? "animate" : "css"]({ width: i + "%" }, r.animate),
                      "max" === a && "horizontal" === this.orientation && this.range.stop(1, 1)[h ? "animate" : "css"]({ width: 100 - i + "%" }, r.animate),
                      "min" === a && "vertical" === this.orientation && this.range.stop(1, 1)[h ? "animate" : "css"]({ height: i + "%" }, r.animate),
                      "max" === a && "vertical" === this.orientation && this.range.stop(1, 1)[h ? "animate" : "css"]({ height: 100 - i + "%" }, r.animate));
            },
            _handleEvents: {
                keydown: function (e) {
                    var i,
                        s,
                        n,
                        o,
                        a = t(e.target).data("ui-slider-handle-index");
                    switch (e.keyCode) {
                        case t.ui.keyCode.HOME:
                        case t.ui.keyCode.END:
                        case t.ui.keyCode.PAGE_UP:
                        case t.ui.keyCode.PAGE_DOWN:
                        case t.ui.keyCode.UP:
                        case t.ui.keyCode.RIGHT:
                        case t.ui.keyCode.DOWN:
                        case t.ui.keyCode.LEFT:
                            if ((e.preventDefault(), !this._keySliding && ((this._keySliding = !0), this._addClass(t(e.target), null, "ui-state-active"), (i = this._start(e, a)), i === !1))) return;
                    }
                    switch (((o = this.options.step), (s = n = this._hasMultipleValues() ? this.values(a) : this.value()), e.keyCode)) {
                        case t.ui.keyCode.HOME:
                            n = this._valueMin();
                            break;
                        case t.ui.keyCode.END:
                            n = this._valueMax();
                            break;
                        case t.ui.keyCode.PAGE_UP:
                            n = this._trimAlignValue(s + (this._valueMax() - this._valueMin()) / this.numPages);
                            break;
                        case t.ui.keyCode.PAGE_DOWN:
                            n = this._trimAlignValue(s - (this._valueMax() - this._valueMin()) / this.numPages);
                            break;
                        case t.ui.keyCode.UP:
                        case t.ui.keyCode.RIGHT:
                            if (s === this._valueMax()) return;
                            n = this._trimAlignValue(s + o);
                            break;
                        case t.ui.keyCode.DOWN:
                        case t.ui.keyCode.LEFT:
                            if (s === this._valueMin()) return;
                            n = this._trimAlignValue(s - o);
                    }
                    this._slide(e, a, n);
                },
                keyup: function (e) {
                    var i = t(e.target).data("ui-slider-handle-index");
                    this._keySliding && ((this._keySliding = !1), this._stop(e, i), this._change(e, i), this._removeClass(t(e.target), null, "ui-state-active"));
                },
            },
        });
});
