分支自 SuZhouGuanHong/TaiYuanTaiZhong

dengjunjie
2024-01-16 5884c9023393061afbe6d3d6e709e53e672ddde8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
/*!
 * Flat UI Free v2.2.2 (http://designmodo.github.io/Flat-UI/)
 * Copyright 2013-2014 Designmodo, Inc.
 */
/*!
 * jQuery UI Core 1.10.4
 * http://jqueryui.com
 *
 * Copyright 2014 jQuery Foundation and other contributors
 * Released under the MIT license.
 * http://jquery.org/license
 *
 * http://api.jqueryui.com/category/ui-core/
 */
/*!
 * Bootstrap v3.2.0 (http://getbootstrap.com)
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
if (function (a, b) { function c(b, c) { var e, f, g, h = b.nodeName.toLowerCase(); return "area" === h ? (e = b.parentNode, f = e.name, b.href && f && "map" === e.nodeName.toLowerCase() ? (g = a("img[usemap=#" + f + "]")[0], !!g && d(g)) : !1) : (/input|select|textarea|button|object/.test(h) ? !b.disabled : "a" === h ? b.href || c : c) && d(b) } function d(b) { return a.expr.filters.visible(b) && !a(b).parents().addBack().filter(function () { return "hidden" === a.css(this, "visibility") }).length } var e = 0, f = /^ui-id-\d+$/; a.ui = a.ui || {}, a.extend(a.ui, { version: "1.10.4", keyCode: { BACKSPACE: 8, COMMA: 188, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, LEFT: 37, NUMPAD_ADD: 107, NUMPAD_DECIMAL: 110, NUMPAD_DIVIDE: 111, NUMPAD_ENTER: 108, NUMPAD_MULTIPLY: 106, NUMPAD_SUBTRACT: 109, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SPACE: 32, TAB: 9, UP: 38 } }), a.fn.extend({ focus: function (b) { return function (c, d) { return "number" == typeof c ? this.each(function () { var b = this; setTimeout(function () { a(b).focus(), d && d.call(b) }, c) }) : b.apply(this, arguments) } }(a.fn.focus), scrollParent: function () { var b; return b = a.ui.ie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function () { return /(relative|absolute|fixed)/.test(a.css(this, "position")) && /(auto|scroll)/.test(a.css(this, "overflow") + a.css(this, "overflow-y") + a.css(this, "overflow-x")) }).eq(0) : this.parents().filter(function () { return /(auto|scroll)/.test(a.css(this, "overflow") + a.css(this, "overflow-y") + a.css(this, "overflow-x")) }).eq(0), /fixed/.test(this.css("position")) || !b.length ? a(document) : b }, zIndex: function (c) { if (c !== b) return this.css("zIndex", c); if (this.length) for (var d, e, f = a(this[0]) ; f.length && f[0] !== document;) { if (d = f.css("position"), ("absolute" === d || "relative" === d || "fixed" === d) && (e = parseInt(f.css("zIndex"), 10), !isNaN(e) && 0 !== e)) return e; f = f.parent() } return 0 }, uniqueId: function () { return this.each(function () { this.id || (this.id = "ui-id-" + ++e) }) }, removeUniqueId: function () { return this.each(function () { f.test(this.id) && a(this).removeAttr("id") }) } }), a.extend(a.expr[":"], { data: a.expr.createPseudo ? a.expr.createPseudo(function (b) { return function (c) { return !!a.data(c, b) } }) : function (b, c, d) { return !!a.data(b, d[3]) }, focusable: function (b) { return c(b, !isNaN(a.attr(b, "tabindex"))) }, tabbable: function (b) { var d = a.attr(b, "tabindex"), e = isNaN(d); return (e || d >= 0) && c(b, !e) } }), a("<a>").outerWidth(1).jquery || a.each(["Width", "Height"], function (c, d) { function e(b, c, d, e) { return a.each(f, function () { c -= parseFloat(a.css(b, "padding" + this)) || 0, d && (c -= parseFloat(a.css(b, "border" + this + "Width")) || 0), e && (c -= parseFloat(a.css(b, "margin" + this)) || 0) }), c } var f = "Width" === d ? ["Left", "Right"] : ["Top", "Bottom"], g = d.toLowerCase(), h = { innerWidth: a.fn.innerWidth, innerHeight: a.fn.innerHeight, outerWidth: a.fn.outerWidth, outerHeight: a.fn.outerHeight }; a.fn["inner" + d] = function (c) { return c === b ? h["inner" + d].call(this) : this.each(function () { a(this).css(g, e(this, c) + "px") }) }, a.fn["outer" + d] = function (b, c) { return "number" != typeof b ? h["outer" + d].call(this, b) : this.each(function () { a(this).css(g, e(this, b, !0, c) + "px") }) } }), a.fn.addBack || (a.fn.addBack = function (a) { return this.add(null == a ? this.prevObject : this.prevObject.filter(a)) }), a("<a>").data("a-b", "a").removeData("a-b").data("a-b") && (a.fn.removeData = function (b) { return function (c) { return arguments.length ? b.call(this, a.camelCase(c)) : b.call(this) } }(a.fn.removeData)), a.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()), a.support.selectstart = "onselectstart" in document.createElement("div"), a.fn.extend({ disableSelection: function () { return this.bind((a.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function (a) { a.preventDefault() }) }, enableSelection: function () { return this.unbind(".ui-disableSelection") } }), a.extend(a.ui, { plugin: { add: function (b, c, d) { var e, f = a.ui[b].prototype; for (e in d) f.plugins[e] = f.plugins[e] || [], f.plugins[e].push([c, d[e]]) }, call: function (a, b, c) { var d, e = a.plugins[b]; if (e && a.element[0].parentNode && 11 !== a.element[0].parentNode.nodeType) for (d = 0; d < e.length; d++) a.options[e[d][0]] && e[d][1].apply(a.element, c) } }, hasScroll: function (b, c) { if ("hidden" === a(b).css("overflow")) return !1; var d = c && "left" === c ? "scrollLeft" : "scrollTop", e = !1; return b[d] > 0 ? !0 : (b[d] = 1, e = b[d] > 0, b[d] = 0, e) } }) }(jQuery),/*!
 * jQuery UI Widget 1.10.4
 * http://jqueryui.com
 *
 * Copyright 2014 jQuery Foundation and other contributors
 * Released under the MIT license.
 * http://jquery.org/license
 *
 * http://api.jqueryui.com/jQuery.widget/
 */
function (a, b) { var c = 0, d = Array.prototype.slice, e = a.cleanData; a.cleanData = function (b) { for (var c, d = 0; null != (c = b[d]) ; d++) try { a(c).triggerHandler("remove") } catch (f) { } e(b) }, a.widget = function (b, c, d) { var e, f, g, h, i = {}, j = b.split(".")[0]; b = b.split(".")[1], e = j + "-" + b, d || (d = c, c = a.Widget), a.expr[":"][e.toLowerCase()] = function (b) { return !!a.data(b, e) }, a[j] = a[j] || {}, f = a[j][b], g = a[j][b] = function (a, b) { return this._createWidget ? void (arguments.length && this._createWidget(a, b)) : new g(a, b) }, a.extend(g, f, { version: d.version, _proto: a.extend({}, d), _childConstructors: [] }), h = new c, h.options = a.widget.extend({}, h.options), a.each(d, function (b, d) { return a.isFunction(d) ? void (i[b] = function () { var a = function () { return c.prototype[b].apply(this, arguments) }, e = function (a) { return c.prototype[b].apply(this, a) }; return function () { var b, c = this._super, f = this._superApply; return this._super = a, this._superApply = e, b = d.apply(this, arguments), this._super = c, this._superApply = f, b } }()) : void (i[b] = d) }), g.prototype = a.widget.extend(h, { widgetEventPrefix: f ? h.widgetEventPrefix || b : b }, i, { constructor: g, namespace: j, widgetName: b, widgetFullName: e }), f ? (a.each(f._childConstructors, function (b, c) { var d = c.prototype; a.widget(d.namespace + "." + d.widgetName, g, c._proto) }), delete f._childConstructors) : c._childConstructors.push(g), a.widget.bridge(b, g) }, a.widget.extend = function (c) { for (var e, f, g = d.call(arguments, 1), h = 0, i = g.length; i > h; h++) for (e in g[h]) f = g[h][e], g[h].hasOwnProperty(e) && f !== b && (c[e] = a.isPlainObject(f) ? a.isPlainObject(c[e]) ? a.widget.extend({}, c[e], f) : a.widget.extend({}, f) : f); return c }, a.widget.bridge = function (c, e) { var f = e.prototype.widgetFullName || c; a.fn[c] = function (g) { var h = "string" == typeof g, i = d.call(arguments, 1), j = this; return g = !h && i.length ? a.widget.extend.apply(null, [g].concat(i)) : g, this.each(h ? function () { var d, e = a.data(this, f); return e ? a.isFunction(e[g]) && "_" !== g.charAt(0) ? (d = e[g].apply(e, i), d !== e && d !== b ? (j = d && d.jquery ? j.pushStack(d.get()) : d, !1) : void 0) : a.error("no such method '" + g + "' for" + c + " widget instance") : a.error("cannot call methods on " + c + " prior to initialization; attempted to call method '" + g + "'") } : function () { var b = a.data(this, f); b ? b.option(g || {})._init() : a.data(this, f, new e(g, this)) }), j } }, a.Widget = function () { }, a.Widget._childConstructors = [], a.Widget.prototype = { widgetName: "widget", widgetEventPrefix: "", defaultElement: "<div>", options: { disabled: !1, create: null }, _createWidget: function (b, d) { d = a(d || this.defaultElement || this)[0], this.element = a(d), this.uuid = c++, this.eventNamespace = "." + this.widgetName + this.uuid, this.options = a.widget.extend({}, this.options, this._getCreateOptions(), b), this.bindings = a(), this.hoverable = a(), this.focusable = a(), d !== this && (a.data(d, this.widgetFullName, this), this._on(!0, this.element, { remove: function (a) { a.target === d && this.destroy() } }), this.document = a(d.style ? d.ownerDocument : d.document || d), this.window = a(this.document[0].defaultView || this.document[0].parentWindow)), this._create(), this._trigger("create", null, this._getCreateEventData()), this._init() }, _getCreateOptions: a.noop, _getCreateEventData: a.noop, _create: a.noop, _init: a.noop, destroy: function () { this._destroy(), this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(a.camelCase(this.widgetFullName)), this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled ui-state-disabled"), this.bindings.unbind(this.eventNamespace), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus") }, _destroy: a.noop, widget: function () { return this.element }, option: function (c, d) { var e, f, g, h = c; if (0 === arguments.length) return a.widget.extend({}, this.options); if ("string" == typeof c) if (h = {}, e = c.split("."), c = e.shift(), e.length) { for (f = h[c] = a.widget.extend({}, this.options[c]), g = 0; g < e.length - 1; g++) f[e[g]] = f[e[g]] || {}, f = f[e[g]]; if (c = e.pop(), 1 === arguments.length) return f[c] === b ? null : f[c]; f[c] = d } else { if (1 === arguments.length) return this.options[c] === b ? null : this.options[c]; h[c] = d } return this._setOptions(h), this }, _setOptions: function (a) { var b; for (b in a) this._setOption(b, a[b]); return this }, _setOption: function (a, b) { return this.options[a] = b, "disabled" === a && (this.widget().toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !!b).attr("aria-disabled", b), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")), this }, enable: function () { return this._setOption("disabled", !1) }, disable: function () { return this._setOption("disabled", !0) }, _on: function (b, c, d) { var e, f = this; "boolean" != typeof b && (d = c, c = b, b = !1), d ? (c = e = a(c), this.bindings = this.bindings.add(c)) : (d = c, c = this.element, e = this.widget()), a.each(d, function (d, g) { function h() { return b || f.options.disabled !== !0 && !a(this).hasClass("ui-state-disabled") ? ("string" == typeof g ? f[g] : g).apply(f, arguments) : void 0 } "string" != typeof g && (h.guid = g.guid = g.guid || h.guid || a.guid++); var i = d.match(/^(\w+)\s*(.*)$/), j = i[1] + f.eventNamespace, k = i[2]; k ? e.delegate(k, j, h) : c.bind(j, h) }) }, _off: function (a, b) { b = (b || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, a.unbind(b).undelegate(b) }, _delay: function (a, b) { function c() { return ("string" == typeof a ? d[a] : a).apply(d, arguments) } var d = this; return setTimeout(c, b || 0) }, _hoverable: function (b) { this.hoverable = this.hoverable.add(b), this._on(b, { mouseenter: function (b) { a(b.currentTarget).addClass("ui-state-hover") }, mouseleave: function (b) { a(b.currentTarget).removeClass("ui-state-hover") } }) }, _focusable: function (b) { this.focusable = this.focusable.add(b), this._on(b, { focusin: function (b) { a(b.currentTarget).addClass("ui-state-focus") }, focusout: function (b) { a(b.currentTarget).removeClass("ui-state-focus") } }) }, _trigger: function (b, c, d) { var e, f, g = this.options[b]; if (d = d || {}, c = a.Event(c), c.type = (b === this.widgetEventPrefix ? b : this.widgetEventPrefix + b).toLowerCase(), c.target = this.element[0], f = c.originalEvent) for (e in f) e in c || (c[e] = f[e]); return this.element.trigger(c, d), !(a.isFunction(g) && g.apply(this.element[0], [c].concat(d)) === !1 || c.isDefaultPrevented()) } }, a.each({ show: "fadeIn", hide: "fadeOut" }, function (b, c) { a.Widget.prototype["_" + b] = function (d, e, f) { "string" == typeof e && (e = { effect: e }); var g, h = e ? e === !0 || "number" == typeof e ? c : e.effect || c : b; e = e || {}, "number" == typeof e && (e = { duration: e }), g = !a.isEmptyObject(e), e.complete = f, e.delay && d.delay(e.delay), g && a.effects && a.effects.effect[h] ? d[b](e) : h !== b && d[h] ? d[h](e.duration, e.easing, f) : d.queue(function (c) { a(this)[b](), f && f.call(d[0]), c() }) } }) }(jQuery),/*!
 * jQuery UI Mouse 1.10.4
 * http://jqueryui.com
 *
 * Copyright 2014 jQuery Foundation and other contributors
 * Released under the MIT license.
 * http://jquery.org/license
 *
 * http://api.jqueryui.com/mouse/
 *
 * Depends:
 *    jquery.ui.widget.js
 */
function (a) { var b = !1; a(document).mouseup(function () { b = !1 }), a.widget("ui.mouse", { version: "1.10.4", options: { cancel: "input,textarea,button,select,option", distance: 1, delay: 0 }, _mouseInit: function () { var b = this; this.element.bind("mousedown." + this.widgetName, function (a) { return b._mouseDown(a) }).bind("click." + this.widgetName, function (c) { return !0 === a.data(c.target, b.widgetName + ".preventClickEvent") ? (a.removeData(c.target, b.widgetName + ".preventClickEvent"), c.stopImmediatePropagation(), !1) : void 0 }), this.started = !1 }, _mouseDestroy: function () { this.element.unbind("." + this.widgetName), this._mouseMoveDelegate && a(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate) }, _mouseDown: function (c) { if (!b) { this._mouseStarted && this._mouseUp(c), this._mouseDownEvent = c; var d = this, e = 1 === c.which, f = "string" == typeof this.options.cancel && c.target.nodeName ? a(c.target).closest(this.options.cancel).length : !1; return e && !f && this._mouseCapture(c) ? (this.mouseDelayMet = !this.options.delay, this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function () { d.mouseDelayMet = !0 }, this.options.delay)), this._mouseDistanceMet(c) && this._mouseDelayMet(c) && (this._mouseStarted = this._mouseStart(c) !== !1, !this._mouseStarted) ? (c.preventDefault(), !0) : (!0 === a.data(c.target, this.widgetName + ".preventClickEvent") && a.removeData(c.target, this.widgetName + ".preventClickEvent"), this._mouseMoveDelegate = function (a) { return d._mouseMove(a) }, this._mouseUpDelegate = function (a) { return d._mouseUp(a) }, a(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate), c.preventDefault(), b = !0, !0)) : !0 } }, _mouseMove: function (b) { return a.ui.ie && (!document.documentMode || document.documentMode < 9) && !b.button ? this._mouseUp(b) : this._mouseStarted ? (this._mouseDrag(b), b.preventDefault()) : (this._mouseDistanceMet(b) && this._mouseDelayMet(b) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, b) !== !1, this._mouseStarted ? this._mouseDrag(b) : this._mouseUp(b)), !this._mouseStarted) }, _mouseUp: function (b) { return a(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate), this._mouseStarted && (this._mouseStarted = !1, b.target === this._mouseDownEvent.target && a.data(b.target, this.widgetName + ".preventClickEvent", !0), this._mouseStop(b)), !1 }, _mouseDistanceMet: function (a) { return Math.max(Math.abs(this._mouseDownEvent.pageX - a.pageX), Math.abs(this._mouseDownEvent.pageY - a.pageY)) >= this.options.distance }, _mouseDelayMet: function () { return this.mouseDelayMet }, _mouseStart: function () { }, _mouseDrag: function () { }, _mouseStop: function () { }, _mouseCapture: function () { return !0 } }) }(jQuery),/*!
 * jQuery UI Position 1.10.4
 * http://jqueryui.com
 *
 * Copyright 2014 jQuery Foundation and other contributors
 * Released under the MIT license.
 * http://jquery.org/license
 *
 * http://api.jqueryui.com/position/
 */
function (a, b) { function c(a, b, c) { return [parseFloat(a[0]) * (n.test(a[0]) ? b / 100 : 1), parseFloat(a[1]) * (n.test(a[1]) ? c / 100 : 1)] } function d(b, c) { return parseInt(a.css(b, c), 10) || 0 } function e(b) { var c = b[0]; return 9 === c.nodeType ? { width: b.width(), height: b.height(), offset: { top: 0, left: 0 } } : a.isWindow(c) ? { width: b.width(), height: b.height(), offset: { top: b.scrollTop(), left: b.scrollLeft() } } : c.preventDefault ? { width: 0, height: 0, offset: { top: c.pageY, left: c.pageX } } : { width: b.outerWidth(), height: b.outerHeight(), offset: b.offset() } } a.ui = a.ui || {}; var f, g = Math.max, h = Math.abs, i = Math.round, j = /left|center|right/, k = /top|center|bottom/, l = /[\+\-]\d+(\.[\d]+)?%?/, m = /^\w+/, n = /%$/, o = a.fn.position; a.position = { scrollbarWidth: function () { if (f !== b) return f; var c, d, e = a("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"), g = e.children()[0]; return a("body").append(e), c = g.offsetWidth, e.css("overflow", "scroll"), d = g.offsetWidth, c === d && (d = e[0].clientWidth), e.remove(), f = c - d }, getScrollInfo: function (b) { var c = b.isWindow || b.isDocument ? "" : b.element.css("overflow-x"), d = b.isWindow || b.isDocument ? "" : b.element.css("overflow-y"), e = "scroll" === c || "auto" === c && b.width < b.element[0].scrollWidth, f = "scroll" === d || "auto" === d && b.height < b.element[0].scrollHeight; return { width: f ? a.position.scrollbarWidth() : 0, height: e ? a.position.scrollbarWidth() : 0 } }, getWithinInfo: function (b) { var c = a(b || window), d = a.isWindow(c[0]), e = !!c[0] && 9 === c[0].nodeType; return { element: c, isWindow: d, isDocument: e, offset: c.offset() || { left: 0, top: 0 }, scrollLeft: c.scrollLeft(), scrollTop: c.scrollTop(), width: d ? c.width() : c.outerWidth(), height: d ? c.height() : c.outerHeight() } } }, a.fn.position = function (b) { if (!b || !b.of) return o.apply(this, arguments); b = a.extend({}, b); var f, n, p, q, r, s, t = a(b.of), u = a.position.getWithinInfo(b.within), v = a.position.getScrollInfo(u), w = (b.collision || "flip").split(" "), x = {}; return s = e(t), t[0].preventDefault && (b.at = "left top"), n = s.width, p = s.height, q = s.offset, r = a.extend({}, q), a.each(["my", "at"], function () { var a, c, d = (b[this] || "").split(" "); 1 === d.length && (d = j.test(d[0]) ? d.concat(["center"]) : k.test(d[0]) ? ["center"].concat(d) : ["center", "center"]), d[0] = j.test(d[0]) ? d[0] : "center", d[1] = k.test(d[1]) ? d[1] : "center", a = l.exec(d[0]), c = l.exec(d[1]), x[this] = [a ? a[0] : 0, c ? c[0] : 0], b[this] = [m.exec(d[0])[0], m.exec(d[1])[0]] }), 1 === w.length && (w[1] = w[0]), "right" === b.at[0] ? r.left += n : "center" === b.at[0] && (r.left += n / 2), "bottom" === b.at[1] ? r.top += p : "center" === b.at[1] && (r.top += p / 2), f = c(x.at, n, p), r.left += f[0], r.top += f[1], this.each(function () { var e, j, k = a(this), l = k.outerWidth(), m = k.outerHeight(), o = d(this, "marginLeft"), s = d(this, "marginTop"), y = l + o + d(this, "marginRight") + v.width, z = m + s + d(this, "marginBottom") + v.height, A = a.extend({}, r), B = c(x.my, k.outerWidth(), k.outerHeight()); "right" === b.my[0] ? A.left -= l : "center" === b.my[0] && (A.left -= l / 2), "bottom" === b.my[1] ? A.top -= m : "center" === b.my[1] && (A.top -= m / 2), A.left += B[0], A.top += B[1], a.support.offsetFractions || (A.left = i(A.left), A.top = i(A.top)), e = { marginLeft: o, marginTop: s }, a.each(["left", "top"], function (c, d) { a.ui.position[w[c]] && a.ui.position[w[c]][d](A, { targetWidth: n, targetHeight: p, elemWidth: l, elemHeight: m, collisionPosition: e, collisionWidth: y, collisionHeight: z, offset: [f[0] + B[0], f[1] + B[1]], my: b.my, at: b.at, within: u, elem: k }) }), b.using && (j = function (a) { var c = q.left - A.left, d = c + n - l, e = q.top - A.top, f = e + p - m, i = { target: { element: t, left: q.left, top: q.top, width: n, height: p }, element: { element: k, left: A.left, top: A.top, width: l, height: m }, horizontal: 0 > d ? "left" : c > 0 ? "right" : "center", vertical: 0 > f ? "top" : e > 0 ? "bottom" : "middle" }; l > n && h(c + d) < n && (i.horizontal = "center"), m > p && h(e + f) < p && (i.vertical = "middle"), i.important = g(h(c), h(d)) > g(h(e), h(f)) ? "horizontal" : "vertical", b.using.call(this, a, i) }), k.offset(a.extend(A, { using: j })) }) }, a.ui.position = { fit: { left: function (a, b) { var c, d = b.within, e = d.isWindow ? d.scrollLeft : d.offset.left, f = d.width, h = a.left - b.collisionPosition.marginLeft, i = e - h, j = h + b.collisionWidth - f - e; b.collisionWidth > f ? i > 0 && 0 >= j ? (c = a.left + i + b.collisionWidth - f - e, a.left += i - c) : a.left = j > 0 && 0 >= i ? e : i > j ? e + f - b.collisionWidth : e : i > 0 ? a.left += i : j > 0 ? a.left -= j : a.left = g(a.left - h, a.left) }, top: function (a, b) { var c, d = b.within, e = d.isWindow ? d.scrollTop : d.offset.top, f = b.within.height, h = a.top - b.collisionPosition.marginTop, i = e - h, j = h + b.collisionHeight - f - e; b.collisionHeight > f ? i > 0 && 0 >= j ? (c = a.top + i + b.collisionHeight - f - e, a.top += i - c) : a.top = j > 0 && 0 >= i ? e : i > j ? e + f - b.collisionHeight : e : i > 0 ? a.top += i : j > 0 ? a.top -= j : a.top = g(a.top - h, a.top) } }, flip: { left: function (a, b) { var c, d, e = b.within, f = e.offset.left + e.scrollLeft, g = e.width, i = e.isWindow ? e.scrollLeft : e.offset.left, j = a.left - b.collisionPosition.marginLeft, k = j - i, l = j + b.collisionWidth - g - i, m = "left" === b.my[0] ? -b.elemWidth : "right" === b.my[0] ? b.elemWidth : 0, n = "left" === b.at[0] ? b.targetWidth : "right" === b.at[0] ? -b.targetWidth : 0, o = -2 * b.offset[0]; 0 > k ? (c = a.left + m + n + o + b.collisionWidth - g - f, (0 > c || c < h(k)) && (a.left += m + n + o)) : l > 0 && (d = a.left - b.collisionPosition.marginLeft + m + n + o - i, (d > 0 || h(d) < l) && (a.left += m + n + o)) }, top: function (a, b) { var c, d, e = b.within, f = e.offset.top + e.scrollTop, g = e.height, i = e.isWindow ? e.scrollTop : e.offset.top, j = a.top - b.collisionPosition.marginTop, k = j - i, l = j + b.collisionHeight - g - i, m = "top" === b.my[1], n = m ? -b.elemHeight : "bottom" === b.my[1] ? b.elemHeight : 0, o = "top" === b.at[1] ? b.targetHeight : "bottom" === b.at[1] ? -b.targetHeight : 0, p = -2 * b.offset[1]; 0 > k ? (d = a.top + n + o + p + b.collisionHeight - g - f, a.top + n + o + p > k && (0 > d || d < h(k)) && (a.top += n + o + p)) : l > 0 && (c = a.top - b.collisionPosition.marginTop + n + o + p - i, a.top + n + o + p > l && (c > 0 || h(c) < l) && (a.top += n + o + p)) } }, flipfit: { left: function () { a.ui.position.flip.left.apply(this, arguments), a.ui.position.fit.left.apply(this, arguments) }, top: function () { a.ui.position.flip.top.apply(this, arguments), a.ui.position.fit.top.apply(this, arguments) } } }, function () { var b, c, d, e, f, g = document.getElementsByTagName("body")[0], h = document.createElement("div"); b = document.createElement(g ? "div" : "body"), d = { visibility: "hidden", width: 0, height: 0, border: 0, margin: 0, background: "none" }, g && a.extend(d, { position: "absolute", left: "-1000px", top: "-1000px" }); for (f in d) b.style[f] = d[f]; b.appendChild(h), c = g || document.documentElement, c.insertBefore(b, c.firstChild), h.style.cssText = "position: absolute; left: 10.7432222px;", e = a(h).offset().left, a.support.offsetFractions = e > 10 && 11 > e, b.innerHTML = "", c.removeChild(b) }() }(jQuery),/*!
 * jQuery UI Button 1.10.4
 * http://jqueryui.com
 *
 * Copyright 2014 jQuery Foundation and other contributors
 * Released under the MIT license.
 * http://jquery.org/license
 *
 * http://api.jqueryui.com/button/
 *
 * Depends:
 *    jquery.ui.core.js
 *    jquery.ui.widget.js
 */
function (a) { var b, c = "ui-button ui-widget ui-state-default ui-corner-all", d = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only", e = function () { var b = a(this); setTimeout(function () { b.find(":ui-button").button("refresh") }, 1) }, f = function (b) { var c = b.name, d = b.form, e = a([]); return c && (c = c.replace(/'/g, "\\'"), e = d ? a(d).find("[name='" + c + "']") : a("[name='" + c + "']", b.ownerDocument).filter(function () { return !this.form })), e }; a.widget("ui.button", { version: "1.10.4", defaultElement: "<button>", options: { disabled: null, text: !0, label: null, icons: { primary: null, secondary: null } }, _create: function () { this.element.closest("form").unbind("reset" + this.eventNamespace).bind("reset" + this.eventNamespace, e), "boolean" != typeof this.options.disabled ? this.options.disabled = !!this.element.prop("disabled") : this.element.prop("disabled", this.options.disabled), this._determineButtonType(), this.hasTitle = !!this.buttonElement.attr("title"); var d = this, g = this.options, h = "checkbox" === this.type || "radio" === this.type, i = h ? "" : "ui-state-active"; null === g.label && (g.label = "input" === this.type ? this.buttonElement.val() : this.buttonElement.html()), this._hoverable(this.buttonElement), this.buttonElement.addClass(c).attr("role", "button").bind("mouseenter" + this.eventNamespace, function () { g.disabled || this === b && a(this).addClass("ui-state-active") }).bind("mouseleave" + this.eventNamespace, function () { g.disabled || a(this).removeClass(i) }).bind("click" + this.eventNamespace, function (a) { g.disabled && (a.preventDefault(), a.stopImmediatePropagation()) }), this._on({ focus: function () { this.buttonElement.addClass("ui-state-focus") }, blur: function () { this.buttonElement.removeClass("ui-state-focus") } }), h && this.element.bind("change" + this.eventNamespace, function () { d.refresh() }), "checkbox" === this.type ? this.buttonElement.bind("click" + this.eventNamespace, function () { return g.disabled ? !1 : void 0 }) : "radio" === this.type ? this.buttonElement.bind("click" + this.eventNamespace, function () { if (g.disabled) return !1; a(this).addClass("ui-state-active"), d.buttonElement.attr("aria-pressed", "true"); var b = d.element[0]; f(b).not(b).map(function () { return a(this).button("widget")[0] }).removeClass("ui-state-active").attr("aria-pressed", "false") }) : (this.buttonElement.bind("mousedown" + this.eventNamespace, function () { return g.disabled ? !1 : (a(this).addClass("ui-state-active"), b = this, void d.document.one("mouseup", function () { b = null })) }).bind("mouseup" + this.eventNamespace, function () { return g.disabled ? !1 : void a(this).removeClass("ui-state-active") }).bind("keydown" + this.eventNamespace, function (b) { return g.disabled ? !1 : void ((b.keyCode === a.ui.keyCode.SPACE || b.keyCode === a.ui.keyCode.ENTER) && a(this).addClass("ui-state-active")) }).bind("keyup" + this.eventNamespace + " blur" + this.eventNamespace, function () { a(this).removeClass("ui-state-active") }), this.buttonElement.is("a") && this.buttonElement.keyup(function (b) { b.keyCode === a.ui.keyCode.SPACE && a(this).click() })), this._setOption("disabled", g.disabled), this._resetButton() }, _determineButtonType: function () { var a, b, c; this.type = this.element.is("[type=checkbox]") ? "checkbox" : this.element.is("[type=radio]") ? "radio" : this.element.is("input") ? "input" : "button", "checkbox" === this.type || "radio" === this.type ? (a = this.element.parents().last(), b = "label[for='" + this.element.attr("id") + "']", this.buttonElement = a.find(b), this.buttonElement.length || (a = a.length ? a.siblings() : this.element.siblings(), this.buttonElement = a.filter(b), this.buttonElement.length || (this.buttonElement = a.find(b))), this.element.addClass("ui-helper-hidden-accessible"), c = this.element.is(":checked"), c && this.buttonElement.addClass("ui-state-active"), this.buttonElement.prop("aria-pressed", c)) : this.buttonElement = this.element }, widget: function () { return this.buttonElement }, _destroy: function () { this.element.removeClass("ui-helper-hidden-accessible"), this.buttonElement.removeClass(c + " ui-state-active " + d).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()), this.hasTitle || this.buttonElement.removeAttr("title") }, _setOption: function (a, b) { return this._super(a, b), "disabled" === a ? (this.element.prop("disabled", !!b), void (b && this.buttonElement.removeClass("ui-state-focus"))) : void this._resetButton() }, refresh: function () { var b = this.element.is("input, button") ? this.element.is(":disabled") : this.element.hasClass("ui-button-disabled"); b !== this.options.disabled && this._setOption("disabled", b), "radio" === this.type ? f(this.element[0]).each(function () { a(this).is(":checked") ? a(this).button("widget").addClass("ui-state-active").attr("aria-pressed", "true") : a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", "false") }) : "checkbox" === this.type && (this.element.is(":checked") ? this.buttonElement.addClass("ui-state-active").attr("aria-pressed", "true") : this.buttonElement.removeClass("ui-state-active").attr("aria-pressed", "false")) }, _resetButton: function () { if ("input" === this.type) return void (this.options.label && this.element.val(this.options.label)); var b = this.buttonElement.removeClass(d), c = a("<span></span>", this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(), e = this.options.icons, f = e.primary && e.secondary, g = []; e.primary || e.secondary ? (this.options.text && g.push("ui-button-text-icon" + (f ? "s" : e.primary ? "-primary" : "-secondary")), e.primary && b.prepend("<span class='ui-button-icon-primary ui-icon " + e.primary + "'></span>"), e.secondary && b.append("<span class='ui-button-icon-secondary ui-icon " + e.secondary + "'></span>"), this.options.text || (g.push(f ? "ui-button-icons-only" : "ui-button-icon-only"), this.hasTitle || b.attr("title", a.trim(c)))) : g.push("ui-button-text-only"), b.addClass(g.join(" ")) } }), a.widget("ui.buttonset", { version: "1.10.4", options: { items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)" }, _create: function () { this.element.addClass("ui-buttonset") }, _init: function () { this.refresh() }, _setOption: function (a, b) { "disabled" === a && this.buttons.button("option", a, b), this._super(a, b) }, refresh: function () { var b = "rtl" === this.element.css("direction"); this.buttons = this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function () { return a(this).button("widget")[0] }).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b ? "ui-corner-right" : "ui-corner-left").end().filter(":last").addClass(b ? "ui-corner-left" : "ui-corner-right").end().end() }, _destroy: function () { this.element.removeClass("ui-buttonset"), this.buttons.map(function () { return a(this).button("widget")[0] }).removeClass("ui-corner-left ui-corner-right").end().button("destroy") } }) }(jQuery),/*!
 * jQuery UI Slider 1.10.4
 * http://jqueryui.com
 *
 * Copyright 2014 jQuery Foundation and other contributors
 * Released under the MIT license.
 * http://jquery.org/license
 *
 * http://api.jqueryui.com/slider/
 *
 * Depends:
 *    jquery.ui.core.js
 *    jquery.ui.mouse.js
 *    jquery.ui.widget.js
 */
function (a) { var b = 5; a.widget("ui.slider", a.ui.mouse, { version: "1.10.4", widgetEventPrefix: "slide", options: { animate: !1, distance: 0, max: 100, min: 0, orientation: "horizontal", range: !1, step: 1, value: 0, values: null, change: null, slide: null, start: null, stop: null }, _create: function () { this._keySliding = !1, this._mouseSliding = !1, this._animateOff = !0, this._handleIndex = null, this._detectOrientation(), this._mouseInit(), this.element.addClass("ui-slider ui-slider-" + this.orientation + " ui-widget ui-widget-content ui-corner-all"), this._refresh(), this._setOption("disabled", this.options.disabled), this._animateOff = !1 }, _refresh: function () { this._createRange(), this._createHandles(), this._setupEvents(), this._refreshValue() }, _createHandles: function () { var b, c, d = this.options, e = this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"), f = "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>", g = []; for (c = d.values && d.values.length || 1, e.length > c && (e.slice(c).remove(), e = e.slice(0, c)), b = e.length; c > b; b++) g.push(f); this.handles = e.add(a(g.join("")).appendTo(this.element)), this.handle = this.handles.eq(0), this.handles.each(function (b) { a(this).data("ui-slider-handle-index", b) }) }, _createRange: function () { var b = this.options, c = ""; b.range ? (b.range === !0 && (b.values ? b.values.length && 2 !== b.values.length ? b.values = [b.values[0], b.values[0]] : a.isArray(b.values) && (b.values = b.values.slice(0)) : b.values = [this._valueMin(), this._valueMin()]), this.range && this.range.length ? this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({ left: "", bottom: "" }) : (this.range = a("<div></div>").appendTo(this.element), c = "ui-slider-range ui-widget-header ui-corner-all"), this.range.addClass(c + ("min" === b.range || "max" === b.range ? " ui-slider-range-" + b.range : ""))) : (this.range && this.range.remove(), this.range = null) }, _setupEvents: function () { var a = this.handles.add(this.range).filter("a"); this._off(a), this._on(a, this._handleEvents), this._hoverable(a), this._focusable(a) }, _destroy: function () { this.handles.remove(), this.range && this.range.remove(), this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"), this._mouseDestroy() }, _mouseCapture: function (b) { var c, d, e, f, g, h, i, j, k = this, l = this.options; return l.disabled ? !1 : (this.elementSize = { width: this.element.outerWidth(), height: this.element.outerHeight() }, this.elementOffset = this.element.offset(), c = { x: b.pageX, y: b.pageY }, d = this._normValueFromMouse(c), e = this._valueMax() - this._valueMin() + 1, this.handles.each(function (b) { var c = Math.abs(d - k.values(b)); (e > c || e === c && (b === k._lastChangedValue || k.values(b) === l.min)) && (e = c, f = a(this), g = b) }), h = this._start(b, g), h === !1 ? !1 : (this._mouseSliding = !0, this._handleIndex = g, f.addClass("ui-state-active").focus(), i = f.offset(), j = !a(b.target).parents().addBack().is(".ui-slider-handle"), this._clickOffset = j ? { left: 0, top: 0 } : { left: b.pageX - i.left - f.width() / 2, top: b.pageY - i.top - f.height() / 2 - (parseInt(f.css("borderTopWidth"), 10) || 0) - (parseInt(f.css("borderBottomWidth"), 10) || 0) + (parseInt(f.css("marginTop"), 10) || 0) }, this.handles.hasClass("ui-state-hover") || this._slide(b, g, d), this._animateOff = !0, !0)) }, _mouseStart: function () { return !0 }, _mouseDrag: function (a) { var b = { x: a.pageX, y: a.pageY }, c = this._normValueFromMouse(b); return this._slide(a, this._handleIndex, c), !1 }, _mouseStop: function (a) { return this.handles.removeClass("ui-state-active"), this._mouseSliding = !1, this._stop(a, this._handleIndex), this._change(a, this._handleIndex), this._handleIndex = null, this._clickOffset = null, this._animateOff = !1, !1 }, _detectOrientation: function () { this.orientation = "vertical" === this.options.orientation ? "vertical" : "horizontal" }, _normValueFromMouse: function (a) { var b, c, d, e, f; return "horizontal" === this.orientation ? (b = this.elementSize.width, c = a.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (b = this.elementSize.height, c = a.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)), d = c / b, d > 1 && (d = 1), 0 > d && (d = 0), "vertical" === this.orientation && (d = 1 - d), e = this._valueMax() - this._valueMin(), f = this._valueMin() + d * e, this._trimAlignValue(f) }, _start: function (a, b) { var c = { handle: this.handles[b], value: this.value() }; return this.options.values && this.options.values.length && (c.value = this.values(b), c.values = this.values()), this._trigger("start", a, c) }, _slide: function (a, b, c) { var d, e, f; this.options.values && this.options.values.length ? (d = this.values(b ? 0 : 1), 2 === this.options.values.length && this.options.range === !0 && (0 === b && c > d || 1 === b && d > c) && (c = d), c !== this.values(b) && (e = this.values(), e[b] = c, f = this._trigger("slide", a, { handle: this.handles[b], value: c, values: e }), d = this.values(b ? 0 : 1), f !== !1 && this.values(b, c))) : c !== this.value() && (f = this._trigger("slide", a, { handle: this.handles[b], value: c }), f !== !1 && this.value(c)) }, _stop: function (a, b) { var c = { handle: this.handles[b], value: this.value() }; this.options.values && this.options.values.length && (c.value = this.values(b), c.values = this.values()), this._trigger("stop", a, c) }, _change: function (a, b) { if (!this._keySliding && !this._mouseSliding) { var c = { handle: this.handles[b], value: this.value() }; this.options.values && this.options.values.length && (c.value = this.values(b), c.values = this.values()), this._lastChangedValue = b, this._trigger("change", a, c) } }, value: function (a) { return arguments.length ? (this.options.value = this._trimAlignValue(a), this._refreshValue(), void this._change(null, 0)) : this._value() }, values: function (b, c) { var d, e, f; if (arguments.length > 1) return this.options.values[b] = this._trimAlignValue(c), this._refreshValue(), void this._change(null, b); if (!arguments.length) return this._values(); if (!a.isArray(arguments[0])) return this.options.values && this.options.values.length ? this._values(b) : this.value(); for (d = this.options.values, e = arguments[0], f = 0; f < d.length; f += 1) d[f] = this._trimAlignValue(e[f]), this._change(null, f); this._refreshValue() }, _setOption: function (b, c) { var d, e = 0; switch ("range" === b && this.options.range === !0 && ("min" === c ? (this.options.value = this._values(0), this.options.values = null) : "max" === c && (this.options.value = this._values(this.options.values.length - 1), this.options.values = null)), a.isArray(this.options.values) && (e = this.options.values.length), a.Widget.prototype._setOption.apply(this, arguments), b) { case "orientation": this._detectOrientation(), this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-" + this.orientation), this._refreshValue(); break; case "value": this._animateOff = !0, this._refreshValue(), this._change(null, 0), this._animateOff = !1; break; case "values": for (this._animateOff = !0, this._refreshValue(), d = 0; e > d; d += 1) this._change(null, d); this._animateOff = !1; break; case "min": case "max": this._animateOff = !0, this._refreshValue(), this._animateOff = !1; break; case "range": this._animateOff = !0, this._refresh(), this._animateOff = !1 } }, _value: function () { var a = this.options.value; return a = this._trimAlignValue(a) }, _values: function (a) { var b, c, d; if (arguments.length) return b = this.options.values[a], b = this._trimAlignValue(b); if (this.options.values && this.options.values.length) { for (c = this.options.values.slice(), d = 0; d < c.length; d += 1) c[d] = this._trimAlignValue(c[d]); return c } return [] }, _trimAlignValue: function (a) { if (a <= this._valueMin()) return this._valueMin(); if (a >= this._valueMax()) return this._valueMax(); var b = this.options.step > 0 ? this.options.step : 1, c = (a - this._valueMin()) % b, d = a - c; return 2 * Math.abs(c) >= b && (d += c > 0 ? b : -b), parseFloat(d.toFixed(5)) }, _valueMin: function () { return this.options.min }, _valueMax: function () { return this.options.max }, _refreshValue: function () { var b, c, d, e, f, g = this.options.range, h = this.options, i = this, j = this._animateOff ? !1 : h.animate, k = {}; this.options.values && this.options.values.length ? this.handles.each(function (d) { c = (i.values(d) - i._valueMin()) / (i._valueMax() - i._valueMin()) * 100, k["horizontal" === i.orientation ? "left" : "bottom"] = c + "%", a(this).stop(1, 1)[j ? "animate" : "css"](k, h.animate), i.options.range === !0 && ("horizontal" === i.orientation ? (0 === d && i.range.stop(1, 1)[j ? "animate" : "css"]({ left: c + "%" }, h.animate), 1 === d && i.range[j ? "animate" : "css"]({ width: c - b + "%" }, { queue: !1, duration: h.animate })) : (0 === d && i.range.stop(1, 1)[j ? "animate" : "css"]({ bottom: c + "%" }, h.animate), 1 === d && i.range[j ? "animate" : "css"]({ height: c - b + "%" }, { queue: !1, duration: h.animate }))), b = c }) : (d = this.value(), e = this._valueMin(), f = this._valueMax(), c = f !== e ? (d - e) / (f - e) * 100 : 0, k["horizontal" === this.orientation ? "left" : "bottom"] = c + "%", this.handle.stop(1, 1)[j ? "animate" : "css"](k, h.animate), "min" === g && "horizontal" === this.orientation && this.range.stop(1, 1)[j ? "animate" : "css"]({ width: c + "%" }, h.animate), "max" === g && "horizontal" === this.orientation && this.range[j ? "animate" : "css"]({ width: 100 - c + "%" }, { queue: !1, duration: h.animate }), "min" === g && "vertical" === this.orientation && this.range.stop(1, 1)[j ? "animate" : "css"]({ height: c + "%" }, h.animate), "max" === g && "vertical" === this.orientation && this.range[j ? "animate" : "css"]({ height: 100 - c + "%" }, { queue: !1, duration: h.animate })) }, _handleEvents: { keydown: function (c) { var d, e, f, g, h = a(c.target).data("ui-slider-handle-index"); switch (c.keyCode) { case a.ui.keyCode.HOME: case a.ui.keyCode.END: case a.ui.keyCode.PAGE_UP: case a.ui.keyCode.PAGE_DOWN: case a.ui.keyCode.UP: case a.ui.keyCode.RIGHT: case a.ui.keyCode.DOWN: case a.ui.keyCode.LEFT: if (c.preventDefault(), !this._keySliding && (this._keySliding = !0, a(c.target).addClass("ui-state-active"), d = this._start(c, h), d === !1)) return } switch (g = this.options.step, e = f = this.options.values && this.options.values.length ? this.values(h) : this.value(), c.keyCode) { case a.ui.keyCode.HOME: f = this._valueMin(); break; case a.ui.keyCode.END: f = this._valueMax(); break; case a.ui.keyCode.PAGE_UP: f = this._trimAlignValue(e + (this._valueMax() - this._valueMin()) / b); break; case a.ui.keyCode.PAGE_DOWN: f = this._trimAlignValue(e - (this._valueMax() - this._valueMin()) / b); break; case a.ui.keyCode.UP: case a.ui.keyCode.RIGHT: if (e === this._valueMax()) return; f = this._trimAlignValue(e + g); break; case a.ui.keyCode.DOWN: case a.ui.keyCode.LEFT: if (e === this._valueMin()) return; f = this._trimAlignValue(e - g) } this._slide(c, h, f) }, click: function (a) { a.preventDefault() }, keyup: function (b) { var c = a(b.target).data("ui-slider-handle-index"); this._keySliding && (this._keySliding = !1, this._stop(b, c), this._change(b, c), a(b.target).removeClass("ui-state-active")) } } }) }(jQuery),/*!
 * jQuery UI Effects 1.10.4
 * http://jqueryui.com
 *
 * Copyright 2014 jQuery Foundation and other contributors
 * Released under the MIT license.
 * http://jquery.org/license
 *
 * http://api.jqueryui.com/category/effects-core/
 */
function (a, b) {
var c = "ui-effects-"; a.effects = { effect: {} },/*!
 * jQuery Color Animations v2.1.2
 * https://github.com/jquery/jquery-color
 *
 * Copyright 2013 jQuery Foundation and other contributors
 * Released under the MIT license.
 * http://jquery.org/license
 *
 * Date: Wed Jan 16 08:47:09 2013 -0600
 */
function (a, b) { function c(a, b, c) { var d = l[b.type] || {}; return null == a ? c || !b.def ? null : b.def : (a = d.floor ? ~~a : parseFloat(a), isNaN(a) ? b.def : d.mod ? (a + d.mod) % d.mod : 0 > a ? 0 : d.max < a ? d.max : a) } function d(b) { var c = j(), d = c._rgba = []; return b = b.toLowerCase(), o(i, function (a, e) { var f, g = e.re.exec(b), h = g && e.parse(g), i = e.space || "rgba"; return h ? (f = c[i](h), c[k[i].cache] = f[k[i].cache], d = c._rgba = f._rgba, !1) : void 0 }), d.length ? ("0,0,0,0" === d.join() && a.extend(d, f.transparent), c) : f[b] } function e(a, b, c) { return c = (c + 1) % 1, 1 > 6 * c ? a + (b - a) * c * 6 : 1 > 2 * c ? b : 2 > 3 * c ? a + (b - a) * (2 / 3 - c) * 6 : a } var f, g = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", h = /^([\-+])=\s*(\d+\.?\d*)/, i = [{ re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function (a) { return [a[1], a[2], a[3], a[4]] } }, { re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function (a) { return [2.55 * a[1], 2.55 * a[2], 2.55 * a[3], a[4]] } }, { re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, parse: function (a) { return [parseInt(a[1], 16), parseInt(a[2], 16), parseInt(a[3], 16)] } }, { re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, parse: function (a) { return [parseInt(a[1] + a[1], 16), parseInt(a[2] + a[2], 16), parseInt(a[3] + a[3], 16)] } }, { re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, space: "hsla", parse: function (a) { return [a[1], a[2] / 100, a[3] / 100, a[4]] } }], j = a.Color = function (b, c, d, e) { return new a.Color.fn.parse(b, c, d, e) }, k = { rgba: { props: { red: { idx: 0, type: "byte" }, green: { idx: 1, type: "byte" }, blue: { idx: 2, type: "byte" } } }, hsla: { props: { hue: { idx: 0, type: "degrees" }, saturation: { idx: 1, type: "percent" }, lightness: { idx: 2, type: "percent" } } } }, l = { "byte": { floor: !0, max: 255 }, percent: { max: 1 }, degrees: { mod: 360, floor: !0 } }, m = j.support = {}, n = a("<p>")[0], o = a.each; n.style.cssText = "background-color:rgba(1,1,1,.5)", m.rgba = n.style.backgroundColor.indexOf("rgba") > -1, o(k, function (a, b) { b.cache = "_" + a, b.props.alpha = { idx: 3, type: "percent", def: 1 } }), j.fn = a.extend(j.prototype, { parse: function (e, g, h, i) { if (e === b) return this._rgba = [null, null, null, null], this; (e.jquery || e.nodeType) && (e = a(e).css(g), g = b); var l = this, m = a.type(e), n = this._rgba = []; return g !== b && (e = [e, g, h, i], m = "array"), "string" === m ? this.parse(d(e) || f._default) : "array" === m ? (o(k.rgba.props, function (a, b) { n[b.idx] = c(e[b.idx], b) }), this) : "object" === m ? (e instanceof j ? o(k, function (a, b) { e[b.cache] && (l[b.cache] = e[b.cache].slice()) }) : o(k, function (b, d) { var f = d.cache; o(d.props, function (a, b) { if (!l[f] && d.to) { if ("alpha" === a || null == e[a]) return; l[f] = d.to(l._rgba) } l[f][b.idx] = c(e[a], b, !0) }), l[f] && a.inArray(null, l[f].slice(0, 3)) < 0 && (l[f][3] = 1, d.from && (l._rgba = d.from(l[f]))) }), this) : void 0 }, is: function (a) { var b = j(a), c = !0, d = this; return o(k, function (a, e) { var f, g = b[e.cache]; return g && (f = d[e.cache] || e.to && e.to(d._rgba) || [], o(e.props, function (a, b) { return null != g[b.idx] ? c = g[b.idx] === f[b.idx] : void 0 })), c }), c }, _space: function () { var a = [], b = this; return o(k, function (c, d) { b[d.cache] && a.push(c) }), a.pop() }, transition: function (a, b) { var d = j(a), e = d._space(), f = k[e], g = 0 === this.alpha() ? j("transparent") : this, h = g[f.cache] || f.to(g._rgba), i = h.slice(); return d = d[f.cache], o(f.props, function (a, e) { var f = e.idx, g = h[f], j = d[f], k = l[e.type] || {}; null !== j && (null === g ? i[f] = j : (k.mod && (j - g > k.mod / 2 ? g += k.mod : g - j > k.mod / 2 && (g -= k.mod)), i[f] = c((j - g) * b + g, e))) }), this[e](i) }, blend: function (b) { if (1 === this._rgba[3]) return this; var c = this._rgba.slice(), d = c.pop(), e = j(b)._rgba; return j(a.map(c, function (a, b) { return (1 - d) * e[b] + d * a })) }, toRgbaString: function () { var b = "rgba(", c = a.map(this._rgba, function (a, b) { return null == a ? b > 2 ? 1 : 0 : a }); return 1 === c[3] && (c.pop(), b = "rgb("), b + c.join() + ")" }, toHslaString: function () { var b = "hsla(", c = a.map(this.hsla(), function (a, b) { return null == a && (a = b > 2 ? 1 : 0), b && 3 > b && (a = Math.round(100 * a) + "%"), a }); return 1 === c[3] && (c.pop(), b = "hsl("), b + c.join() + ")" }, toHexString: function (b) { var c = this._rgba.slice(), d = c.pop(); return b && c.push(~~(255 * d)), "#" + a.map(c, function (a) { return a = (a || 0).toString(16), 1 === a.length ? "0" + a : a }).join("") }, toString: function () { return 0 === this._rgba[3] ? "transparent" : this.toRgbaString() } }), j.fn.parse.prototype = j.fn, k.hsla.to = function (a) { if (null == a[0] || null == a[1] || null == a[2]) return [null, null, null, a[3]]; var b, c, d = a[0] / 255, e = a[1] / 255, f = a[2] / 255, g = a[3], h = Math.max(d, e, f), i = Math.min(d, e, f), j = h - i, k = h + i, l = .5 * k; return b = i === h ? 0 : d === h ? 60 * (e - f) / j + 360 : e === h ? 60 * (f - d) / j + 120 : 60 * (d - e) / j + 240, c = 0 === j ? 0 : .5 >= l ? j / k : j / (2 - k), [Math.round(b) % 360, c, l, null == g ? 1 : g] }, k.hsla.from = function (a) { if (null == a[0] || null == a[1] || null == a[2]) return [null, null, null, a[3]]; var b = a[0] / 360, c = a[1], d = a[2], f = a[3], g = .5 >= d ? d * (1 + c) : d + c - d * c, h = 2 * d - g; return [Math.round(255 * e(h, g, b + 1 / 3)), Math.round(255 * e(h, g, b)), Math.round(255 * e(h, g, b - 1 / 3)), f] }, o(k, function (d, e) { var f = e.props, g = e.cache, i = e.to, k = e.from; j.fn[d] = function (d) { if (i && !this[g] && (this[g] = i(this._rgba)), d === b) return this[g].slice(); var e, h = a.type(d), l = "array" === h || "object" === h ? d : arguments, m = this[g].slice(); return o(f, function (a, b) { var d = l["object" === h ? a : b.idx]; null == d && (d = m[b.idx]), m[b.idx] = c(d, b) }), k ? (e = j(k(m)), e[g] = m, e) : j(m) }, o(f, function (b, c) { j.fn[b] || (j.fn[b] = function (e) { var f, g = a.type(e), i = "alpha" === b ? this._hsla ? "hsla" : "rgba" : d, j = this[i](), k = j[c.idx]; return "undefined" === g ? k : ("function" === g && (e = e.call(this, k), g = a.type(e)), null == e && c.empty ? this : ("string" === g && (f = h.exec(e), f && (e = k + parseFloat(f[2]) * ("+" === f[1] ? 1 : -1))), j[c.idx] = e, this[i](j))) }) }) }), j.hook = function (b) { var c = b.split(" "); o(c, function (b, c) { a.cssHooks[c] = { set: function (b, e) { var f, g, h = ""; if ("transparent" !== e && ("string" !== a.type(e) || (f = d(e)))) { if (e = j(f || e), !m.rgba && 1 !== e._rgba[3]) { for (g = "backgroundColor" === c ? b.parentNode : b; ("" === h || "transparent" === h) && g && g.style;) try { h = a.css(g, "backgroundColor"), g = g.parentNode } catch (i) { } e = e.blend(h && "transparent" !== h ? h : "_default") } e = e.toRgbaString() } try { b.style[c] = e } catch (i) { } } }, a.fx.step[c] = function (b) { b.colorInit || (b.start = j(b.elem, c), b.end = j(b.end), b.colorInit = !0), a.cssHooks[c].set(b.elem, b.start.transition(b.end, b.pos)) } }) }, j.hook(g), a.cssHooks.borderColor = { expand: function (a) { var b = {}; return o(["Top", "Right", "Bottom", "Left"], function (c, d) { b["border" + d + "Color"] = a }), b } }, f = a.Color.names = { aqua: "#00ffff", black: "#000000", blue: "#0000ff", fuchsia: "#ff00ff", gray: "#808080", green: "#008000", lime: "#00ff00", maroon: "#800000", navy: "#000080", olive: "#808000", purple: "#800080", red: "#ff0000", silver: "#c0c0c0", teal: "#008080", white: "#ffffff", yellow: "#ffff00", transparent: [null, null, null, 0], _default: "#ffffff" } }(jQuery), function () { function c(b) { var c, d, e = b.ownerDocument.defaultView ? b.ownerDocument.defaultView.getComputedStyle(b, null) : b.currentStyle, f = {}; if (e && e.length && e[0] && e[e[0]]) for (d = e.length; d--;) c = e[d], "string" == typeof e[c] && (f[a.camelCase(c)] = e[c]); else for (c in e) "string" == typeof e[c] && (f[c] = e[c]); return f } function d(b, c) { var d, e, g = {}; for (d in c) e = c[d], b[d] !== e && (f[d] || (a.fx.step[d] || !isNaN(parseFloat(e))) && (g[d] = e)); return g } var e = ["add", "remove", "toggle"], f = { border: 1, borderBottom: 1, borderColor: 1, borderLeft: 1, borderRight: 1, borderTop: 1, borderWidth: 1, margin: 1, padding: 1 }; a.each(["borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"], function (b, c) { a.fx.step[c] = function (a) { ("none" !== a.end && !a.setAttr || 1 === a.pos && !a.setAttr) && (jQuery.style(a.elem, c, a.end), a.setAttr = !0) } }), a.fn.addBack || (a.fn.addBack = function (a) { return this.add(null == a ? this.prevObject : this.prevObject.filter(a)) }), a.effects.animateClass = function (b, f, g, h) { var i = a.speed(f, g, h); return this.queue(function () { var f, g = a(this), h = g.attr("class") || "", j = i.children ? g.find("*").addBack() : g; j = j.map(function () { var b = a(this); return { el: b, start: c(this) } }), f = function () { a.each(e, function (a, c) { b[c] && g[c + "Class"](b[c]) }) }, f(), j = j.map(function () { return this.end = c(this.el[0]), this.diff = d(this.start, this.end), this }), g.attr("class", h), j = j.map(function () { var b = this, c = a.Deferred(), d = a.extend({}, i, { queue: !1, complete: function () { c.resolve(b) } }); return this.el.animate(this.diff, d), c.promise() }), a.when.apply(a, j.get()).done(function () { f(), a.each(arguments, function () { var b = this.el; a.each(this.diff, function (a) { b.css(a, "") }) }), i.complete.call(g[0]) }) }) }, a.fn.extend({ addClass: function (b) { return function (c, d, e, f) { return d ? a.effects.animateClass.call(this, { add: c }, d, e, f) : b.apply(this, arguments) } }(a.fn.addClass), removeClass: function (b) { return function (c, d, e, f) { return arguments.length > 1 ? a.effects.animateClass.call(this, { remove: c }, d, e, f) : b.apply(this, arguments) } }(a.fn.removeClass), toggleClass: function (c) { return function (d, e, f, g, h) { return "boolean" == typeof e || e === b ? f ? a.effects.animateClass.call(this, e ? { add: d } : { remove: d }, f, g, h) : c.apply(this, arguments) : a.effects.animateClass.call(this, { toggle: d }, e, f, g) } }(a.fn.toggleClass), switchClass: function (b, c, d, e, f) { return a.effects.animateClass.call(this, { add: c, remove: b }, d, e, f) } }) }(), function () { function d(b, c, d, e) { return a.isPlainObject(b) && (c = b, b = b.effect), b = { effect: b }, null == c && (c = {}), a.isFunction(c) && (e = c, d = null, c = {}), ("number" == typeof c || a.fx.speeds[c]) && (e = d, d = c, c = {}), a.isFunction(d) && (e = d, d = null), c && a.extend(b, c), d = d || c.duration, b.duration = a.fx.off ? 0 : "number" == typeof d ? d : d in a.fx.speeds ? a.fx.speeds[d] : a.fx.speeds._default, b.complete = e || c.complete, b } function e(b) { return !b || "number" == typeof b || a.fx.speeds[b] ? !0 : "string" != typeof b || a.effects.effect[b] ? a.isFunction(b) ? !0 : "object" != typeof b || b.effect ? !1 : !0 : !0 } a.extend(a.effects, { version: "1.10.4", save: function (a, b) { for (var d = 0; d < b.length; d++) null !== b[d] && a.data(c + b[d], a[0].style[b[d]]) }, restore: function (a, d) { var e, f; for (f = 0; f < d.length; f++) null !== d[f] && (e = a.data(c + d[f]), e === b && (e = ""), a.css(d[f], e)) }, setMode: function (a, b) { return "toggle" === b && (b = a.is(":hidden") ? "show" : "hide"), b }, getBaseline: function (a, b) { var c, d; switch (a[0]) { case "top": c = 0; break; case "middle": c = .5; break; case "bottom": c = 1; break; default: c = a[0] / b.height } switch (a[1]) { case "left": d = 0; break; case "center": d = .5; break; case "right": d = 1; break; default: d = a[1] / b.width } return { x: d, y: c } }, createWrapper: function (b) { if (b.parent().is(".ui-effects-wrapper")) return b.parent(); var c = { width: b.outerWidth(!0), height: b.outerHeight(!0), "float": b.css("float") }, d = a("<div></div>").addClass("ui-effects-wrapper").css({ fontSize: "100%", background: "transparent", border: "none", margin: 0, padding: 0 }), e = { width: b.width(), height: b.height() }, f = document.activeElement; try { f.id } catch (g) { f = document.body } return b.wrap(d), (b[0] === f || a.contains(b[0], f)) && a(f).focus(), d = b.parent(), "static" === b.css("position") ? (d.css({ position: "relative" }), b.css({ position: "relative" })) : (a.extend(c, { position: b.css("position"), zIndex: b.css("z-index") }), a.each(["top", "left", "bottom", "right"], function (a, d) { c[d] = b.css(d), isNaN(parseInt(c[d], 10)) && (c[d] = "auto") }), b.css({ position: "relative", top: 0, left: 0, right: "auto", bottom: "auto" })), b.css(e), d.css(c).show() }, removeWrapper: function (b) { var c = document.activeElement; return b.parent().is(".ui-effects-wrapper") && (b.parent().replaceWith(b), (b[0] === c || a.contains(b[0], c)) && a(c).focus()), b }, setTransition: function (b, c, d, e) { return e = e || {}, a.each(c, function (a, c) { var f = b.cssUnit(c); f[0] > 0 && (e[c] = f[0] * d + f[1]) }), e } }), a.fn.extend({ effect: function () { function b(b) { function d() { a.isFunction(f) && f.call(e[0]), a.isFunction(b) && b() } var e = a(this), f = c.complete, h = c.mode; (e.is(":hidden") ? "hide" === h : "show" === h) ? (e[h](), d()) : g.call(e[0], c, d) } var c = d.apply(this, arguments), e = c.mode, f = c.queue, g = a.effects.effect[c.effect]; return a.fx.off || !g ? e ? this[e](c.duration, c.complete) : this.each(function () { c.complete && c.complete.call(this) }) : f === !1 ? this.each(b) : this.queue(f || "fx", b) }, show: function (a) { return function (b) { if (e(b)) return a.apply(this, arguments); var c = d.apply(this, arguments); return c.mode = "show", this.effect.call(this, c) } }(a.fn.show), hide: function (a) { return function (b) { if (e(b)) return a.apply(this, arguments); var c = d.apply(this, arguments); return c.mode = "hide", this.effect.call(this, c) } }(a.fn.hide), toggle: function (a) { return function (b) { if (e(b) || "boolean" == typeof b) return a.apply(this, arguments); var c = d.apply(this, arguments); return c.mode = "toggle", this.effect.call(this, c) } }(a.fn.toggle), cssUnit: function (b) { var c = this.css(b), d = []; return a.each(["em", "px", "%", "pt"], function (a, b) { c.indexOf(b) > 0 && (d = [parseFloat(c), b]) }), d } }) }(), function () { var b = {}; a.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function (a, c) { b[c] = function (b) { return Math.pow(b, a + 2) } }), a.extend(b, { Sine: function (a) { return 1 - Math.cos(a * Math.PI / 2) }, Circ: function (a) { return 1 - Math.sqrt(1 - a * a) }, Elastic: function (a) { return 0 === a || 1 === a ? a : -Math.pow(2, 8 * (a - 1)) * Math.sin((80 * (a - 1) - 7.5) * Math.PI / 15) }, Back: function (a) { return a * a * (3 * a - 2) }, Bounce: function (a) { for (var b, c = 4; a < ((b = Math.pow(2, --c)) - 1) / 11;); return 1 / Math.pow(4, 3 - c) - 7.5625 * Math.pow((3 * b - 2) / 22 - a, 2) } }), a.each(b, function (b, c) { a.easing["easeIn" + b] = c, a.easing["easeOut" + b] = function (a) { return 1 - c(1 - a) }, a.easing["easeInOut" + b] = function (a) { return .5 > a ? c(2 * a) / 2 : 1 - c(-2 * a + 2) / 2 } }) }()
}(jQuery),/*!
 * jQuery UI Touch Punch 0.2.2
 *
 * Copyright 2011, Dave Furfero
 * Dual licensed under the MIT or GPL Version 2 licenses.
 *
 * Depends:
 *  jquery.ui.widget.js
 *  jquery.ui.mouse.js
 */
function (a) { function b(a, b) { if (!(a.originalEvent.touches.length > 1)) { a.preventDefault(); var c = a.originalEvent.changedTouches[0], d = document.createEvent("MouseEvents"); d.initMouseEvent(b, !0, !0, window, 1, c.screenX, c.screenY, c.clientX, c.clientY, !1, !1, !1, !1, 0, null), a.target.dispatchEvent(d) } } if (a.support.touch = "ontouchend" in document, a.support.touch) { var c, d = a.ui.mouse.prototype, e = d._mouseInit; d._touchStart = function (a) { var d = this; !c && d._mouseCapture(a.originalEvent.changedTouches[0]) && (c = !0, d._touchMoved = !1, b(a, "mouseover"), b(a, "mousemove"), b(a, "mousedown")) }, d._touchMove = function (a) { c && (this._touchMoved = !0, b(a, "mousemove")) }, d._touchEnd = function (a) { c && (b(a, "mouseup"), b(a, "mouseout"), this._touchMoved || b(a, "click"), c = !1) }, d._mouseInit = function () { var b = this; b.element.bind("touchstart", a.proxy(b, "_touchStart")).bind("touchmove", a.proxy(b, "_touchMove")).bind("touchend", a.proxy(b, "_touchEnd")), e.call(b) } } }(jQuery), "undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery"); +function (a) { "use strict"; function b() { var a = document.createElement("bootstrap"), b = { WebkitTransition: "webkitTransitionEnd", MozTransition: "transitionend", OTransition: "oTransitionEnd otransitionend", transition: "transitionend" }; for (var c in b) if (void 0 !== a.style[c]) return { end: b[c] }; return !1 } a.fn.emulateTransitionEnd = function (b) { var c = !1, d = this; a(this).one("bsTransitionEnd", function () { c = !0 }); var e = function () { c || a(d).trigger(a.support.transition.end) }; return setTimeout(e, b), this }, a(function () { a.support.transition = b(), a.support.transition && (a.event.special.bsTransitionEnd = { bindType: a.support.transition.end, delegateType: a.support.transition.end, handle: function (b) { return a(b.target).is(this) ? b.handleObj.handler.apply(this, arguments) : void 0 } }) }) }(jQuery), +function (a) { "use strict"; function b(b) { return this.each(function () { var c = a(this), e = c.data("bs.alert"); e || c.data("bs.alert", e = new d(this)), "string" == typeof b && e[b].call(c) }) } var c = '[data-dismiss="alert"]', d = function (b) { a(b).on("click", c, this.close) }; d.VERSION = "3.2.0", d.prototype.close = function (b) { function c() { f.detach().trigger("closed.bs.alert").remove() } var d = a(this), e = d.attr("data-target"); e || (e = d.attr("href"), e = e && e.replace(/.*(?=#[^\s]*$)/, "")); var f = a(e); b && b.preventDefault(), f.length || (f = d.hasClass("alert") ? d : d.parent()), f.trigger(b = a.Event("close.bs.alert")), b.isDefaultPrevented() || (f.removeClass("in"), a.support.transition && f.hasClass("fade") ? f.one("bsTransitionEnd", c).emulateTransitionEnd(150) : c()) }; var e = a.fn.alert; a.fn.alert = b, a.fn.alert.Constructor = d, a.fn.alert.noConflict = function () { return a.fn.alert = e, this }, a(document).on("click.bs.alert.data-api", c, d.prototype.close) }(jQuery), +function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.button"), f = "object" == typeof b && b; e || d.data("bs.button", e = new c(this, f)), "toggle" == b ? e.toggle() : b && e.setState(b) }) } var c = function (b, d) { this.$element = a(b), this.options = a.extend({}, c.DEFAULTS, d), this.isLoading = !1 }; c.VERSION = "3.2.0", c.DEFAULTS = { loadingText: "loading..." }, c.prototype.setState = function (b) { var c = "disabled", d = this.$element, e = d.is("input") ? "val" : "html", f = d.data(); b += "Text", null == f.resetText && d.data("resetText", d[e]()), d[e](null == f[b] ? this.options[b] : f[b]), setTimeout(a.proxy(function () { "loadingText" == b ? (this.isLoading = !0, d.addClass(c).attr(c, c)) : this.isLoading && (this.isLoading = !1, d.removeClass(c).removeAttr(c)) }, this), 0) }, c.prototype.toggle = function () { var a = !0, b = this.$element.closest('[data-toggle="buttons"]'); if (b.length) { var c = this.$element.find("input"); "radio" == c.prop("type") && (c.prop("checked") && this.$element.hasClass("active") ? a = !1 : b.find(".active").removeClass("active")), a && c.prop("checked", !this.$element.hasClass("active")).trigger("change") } a && this.$element.toggleClass("active") }; var d = a.fn.button; a.fn.button = b, a.fn.button.Constructor = c, a.fn.button.noConflict = function () { return a.fn.button = d, this }, a(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function (c) { var d = a(c.target); d.hasClass("btn") || (d = d.closest(".btn")), b.call(d, "toggle"), c.preventDefault() }) }(jQuery), +function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.carousel"), f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b), g = "string" == typeof b ? b : f.slide; e || d.data("bs.carousel", e = new c(this, f)), "number" == typeof b ? e.to(b) : g ? e[g]() : f.interval && e.pause().cycle() }) } var c = function (b, c) { this.$element = a(b).on("keydown.bs.carousel", a.proxy(this.keydown, this)), this.$indicators = this.$element.find(".carousel-indicators"), this.options = c, this.paused = this.sliding = this.interval = this.$active = this.$items = null, "hover" == this.options.pause && this.$element.on("mouseenter.bs.carousel", a.proxy(this.pause, this)).on("mouseleave.bs.carousel", a.proxy(this.cycle, this)) }; c.VERSION = "3.2.0", c.DEFAULTS = { interval: 5e3, pause: "hover", wrap: !0 }, c.prototype.keydown = function (a) { switch (a.which) { case 37: this.prev(); break; case 39: this.next(); break; default: return } a.preventDefault() }, c.prototype.cycle = function (b) { return b || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), this }, c.prototype.getItemIndex = function (a) { return this.$items = a.parent().children(".item"), this.$items.index(a || this.$active) }, c.prototype.to = function (b) { var c = this, d = this.getItemIndex(this.$active = this.$element.find(".item.active")); return b > this.$items.length - 1 || 0 > b ? void 0 : this.sliding ? this.$element.one("slid.bs.carousel", function () { c.to(b) }) : d == b ? this.pause().cycle() : this.slide(b > d ? "next" : "prev", a(this.$items[b])) }, c.prototype.pause = function (b) { return b || (this.paused = !0), this.$element.find(".next, .prev").length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this }, c.prototype.next = function () { return this.sliding ? void 0 : this.slide("next") }, c.prototype.prev = function () { return this.sliding ? void 0 : this.slide("prev") }, c.prototype.slide = function (b, c) { var d = this.$element.find(".item.active"), e = c || d[b](), f = this.interval, g = "next" == b ? "left" : "right", h = "next" == b ? "first" : "last", i = this; if (!e.length) { if (!this.options.wrap) return; e = this.$element.find(".item")[h]() } if (e.hasClass("active")) return this.sliding = !1; var j = e[0], k = a.Event("slide.bs.carousel", { relatedTarget: j, direction: g }); if (this.$element.trigger(k), !k.isDefaultPrevented()) { if (this.sliding = !0, f && this.pause(), this.$indicators.length) { this.$indicators.find(".active").removeClass("active"); var l = a(this.$indicators.children()[this.getItemIndex(e)]); l && l.addClass("active") } var m = a.Event("slid.bs.carousel", { relatedTarget: j, direction: g }); return a.support.transition && this.$element.hasClass("slide") ? (e.addClass(b), e[0].offsetWidth, d.addClass(g), e.addClass(g), d.one("bsTransitionEnd", function () { e.removeClass([b, g].join(" ")).addClass("active"), d.removeClass(["active", g].join(" ")), i.sliding = !1, setTimeout(function () { i.$element.trigger(m) }, 0) }).emulateTransitionEnd(1e3 * d.css("transition-duration").slice(0, -1))) : (d.removeClass("active"), e.addClass("active"), this.sliding = !1, this.$element.trigger(m)), f && this.cycle(), this } }; var d = a.fn.carousel; a.fn.carousel = b, a.fn.carousel.Constructor = c, a.fn.carousel.noConflict = function () { return a.fn.carousel = d, this }, a(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]", function (c) { var d, e = a(this), f = a(e.attr("data-target") || (d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, "")); if (f.hasClass("carousel")) { var g = a.extend({}, f.data(), e.data()), h = e.attr("data-slide-to"); h && (g.interval = !1), b.call(f, g), h && f.data("bs.carousel").to(h), c.preventDefault() } }), a(window).on("load", function () { a('[data-ride="carousel"]').each(function () { var c = a(this); b.call(c, c.data()) }) }) }(jQuery), +function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.collapse"), f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b); !e && f.toggle && "show" == b && (b = !b), e || d.data("bs.collapse", e = new c(this, f)), "string" == typeof b && e[b]() }) } var c = function (b, d) { this.$element = a(b), this.options = a.extend({}, c.DEFAULTS, d), this.transitioning = null, this.options.parent && (this.$parent = a(this.options.parent)), this.options.toggle && this.toggle() }; c.VERSION = "3.2.0", c.DEFAULTS = { toggle: !0 }, c.prototype.dimension = function () { var a = this.$element.hasClass("width"); return a ? "width" : "height" }, c.prototype.show = function () { if (!this.transitioning && !this.$element.hasClass("in")) { var c = a.Event("show.bs.collapse"); if (this.$element.trigger(c), !c.isDefaultPrevented()) { var d = this.$parent && this.$parent.find("> .panel > .in"); if (d && d.length) { var e = d.data("bs.collapse"); if (e && e.transitioning) return; b.call(d, "hide"), e || d.data("bs.collapse", null) } var f = this.dimension(); this.$element.removeClass("collapse").addClass("collapsing")[f](0), this.transitioning = 1; var g = function () { this.$element.removeClass("collapsing").addClass("collapse in")[f](""), this.transitioning = 0, this.$element.trigger("shown.bs.collapse") }; if (!a.support.transition) return g.call(this); var h = a.camelCase(["scroll", f].join("-")); this.$element.one("bsTransitionEnd", a.proxy(g, this)).emulateTransitionEnd(350)[f](this.$element[0][h]) } } }, c.prototype.hide = function () { if (!this.transitioning && this.$element.hasClass("in")) { var b = a.Event("hide.bs.collapse"); if (this.$element.trigger(b), !b.isDefaultPrevented()) { var c = this.dimension(); this.$element[c](this.$element[c]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"), this.transitioning = 1; var d = function () { this.transitioning = 0, this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse") }; return a.support.transition ? void this.$element[c](0).one("bsTransitionEnd", a.proxy(d, this)).emulateTransitionEnd(350) : d.call(this) } } }, c.prototype.toggle = function () { this[this.$element.hasClass("in") ? "hide" : "show"]() }; var d = a.fn.collapse; a.fn.collapse = b, a.fn.collapse.Constructor = c, a.fn.collapse.noConflict = function () { return a.fn.collapse = d, this }, a(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function (c) { var d, e = a(this), f = e.attr("data-target") || c.preventDefault() || (d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, ""), g = a(f), h = g.data("bs.collapse"), i = h ? "toggle" : e.data(), j = e.attr("data-parent"), k = j && a(j); h && h.transitioning || (k && k.find('[data-toggle="collapse"][data-parent="' + j + '"]').not(e).addClass("collapsed"), e[g.hasClass("in") ? "addClass" : "removeClass"]("collapsed")), b.call(g, i) }) }(jQuery), +function (a) { "use strict"; function b(b) { b && 3 === b.which || (a(e).remove(), a(f).each(function () { var d = c(a(this)), e = { relatedTarget: this }; d.hasClass("open") && (d.trigger(b = a.Event("hide.bs.dropdown", e)), b.isDefaultPrevented() || d.removeClass("open").trigger("hidden.bs.dropdown", e)) })) } function c(b) { var c = b.attr("data-target"); c || (c = b.attr("href"), c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, "")); var d = c && a(c); return d && d.length ? d : b.parent() } function d(b) { return this.each(function () { var c = a(this), d = c.data("bs.dropdown"); d || c.data("bs.dropdown", d = new g(this)), "string" == typeof b && d[b].call(c) }) } var e = ".dropdown-backdrop", f = '[data-toggle="dropdown"]', g = function (b) { a(b).on("click.bs.dropdown", this.toggle) }; g.VERSION = "3.2.0", g.prototype.toggle = function (d) { var e = a(this); if (!e.is(".disabled, :disabled")) { var f = c(e), g = f.hasClass("open"); if (b(), !g) { "ontouchstart" in document.documentElement && !f.closest(".navbar-nav").length && a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click", b); var h = { relatedTarget: this }; if (f.trigger(d = a.Event("show.bs.dropdown", h)), d.isDefaultPrevented()) return; e.trigger("focus"), f.toggleClass("open").trigger("shown.bs.dropdown", h) } return !1 } }, g.prototype.keydown = function (b) { if (/(38|40|27)/.test(b.keyCode)) { var d = a(this); if (b.preventDefault(), b.stopPropagation(), !d.is(".disabled, :disabled")) { var e = c(d), g = e.hasClass("open"); if (!g || g && 27 == b.keyCode) return 27 == b.which && e.find(f).trigger("focus"), d.trigger("click"); var h = " li:not(.divider):visible a", i = e.find('[role="menu"]' + h + ', [role="listbox"]' + h); if (i.length) { var j = i.index(i.filter(":focus")); 38 == b.keyCode && j > 0 && j--, 40 == b.keyCode && j < i.length - 1 && j++, ~j || (j = 0), i.eq(j).trigger("focus") } } } }; var h = a.fn.dropdown; a.fn.dropdown = d, a.fn.dropdown.Constructor = g, a.fn.dropdown.noConflict = function () { return a.fn.dropdown = h, this }, a(document).on("click.bs.dropdown.data-api", b).on("click.bs.dropdown.data-api", ".dropdown form", function (a) { a.stopPropagation() }).on("click.bs.dropdown.data-api", f, g.prototype.toggle).on("keydown.bs.dropdown.data-api", f + ', [role="menu"], [role="listbox"]', g.prototype.keydown) }(jQuery), +function (a) { "use strict"; function b(b, d) { return this.each(function () { var e = a(this), f = e.data("bs.modal"), g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b); f || e.data("bs.modal", f = new c(this, g)), "string" == typeof b ? f[b](d) : g.show && f.show(d) }) } var c = function (b, c) { this.options = c, this.$body = a(document.body), this.$element = a(b), this.$backdrop = this.isShown = null, this.scrollbarWidth = 0, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, a.proxy(function () { this.$element.trigger("loaded.bs.modal") }, this)) }; c.VERSION = "3.2.0", c.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }, c.prototype.toggle = function (a) { return this.isShown ? this.hide() : this.show(a) }, c.prototype.show = function (b) { var c = this, d = a.Event("show.bs.modal", { relatedTarget: b }); this.$element.trigger(d), this.isShown || d.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.$body.addClass("modal-open"), this.setScrollbar(), this.escape(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.backdrop(function () { var d = a.support.transition && c.$element.hasClass("fade"); c.$element.parent().length || c.$element.appendTo(c.$body), c.$element.show().scrollTop(0), d && c.$element[0].offsetWidth, c.$element.addClass("in").attr("aria-hidden", !1), c.enforceFocus(); var e = a.Event("shown.bs.modal", { relatedTarget: b }); d ? c.$element.find(".modal-dialog").one("bsTransitionEnd", function () { c.$element.trigger("focus").trigger(e) }).emulateTransitionEnd(300) : c.$element.trigger("focus").trigger(e) })) }, c.prototype.hide = function (b) { b && b.preventDefault(), b = a.Event("hide.bs.modal"), this.$element.trigger(b), this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.$body.removeClass("modal-open"), this.resetScrollbar(), this.escape(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").attr("aria-hidden", !0).off("click.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", a.proxy(this.hideModal, this)).emulateTransitionEnd(300) : this.hideModal()) }, c.prototype.enforceFocus = function () { a(document).off("focusin.bs.modal").on("focusin.bs.modal", a.proxy(function (a) { this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.trigger("focus") }, this)) }, c.prototype.escape = function () { this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.bs.modal", a.proxy(function (a) { 27 == a.which && this.hide() }, this)) : this.isShown || this.$element.off("keyup.dismiss.bs.modal") }, c.prototype.hideModal = function () { var a = this; this.$element.hide(), this.backdrop(function () { a.$element.trigger("hidden.bs.modal") }) }, c.prototype.removeBackdrop = function () { this.$backdrop && this.$backdrop.remove(), this.$backdrop = null }, c.prototype.backdrop = function (b) { var c = this, d = this.$element.hasClass("fade") ? "fade" : ""; if (this.isShown && this.options.backdrop) { var e = a.support.transition && d; if (this.$backdrop = a('<div class="modal-backdrop ' + d + '" />').appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", a.proxy(function (a) { a.target === a.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus.call(this.$element[0]) : this.hide.call(this)) }, this)), e && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !b) return; e ? this.$backdrop.one("bsTransitionEnd", b).emulateTransitionEnd(150) : b() } else if (!this.isShown && this.$backdrop) { this.$backdrop.removeClass("in"); var f = function () { c.removeBackdrop(), b && b() }; a.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", f).emulateTransitionEnd(150) : f() } else b && b() }, c.prototype.checkScrollbar = function () { document.body.clientWidth >= window.innerWidth || (this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar()) }, c.prototype.setScrollbar = function () { var a = parseInt(this.$body.css("padding-right") || 0, 10); this.scrollbarWidth && this.$body.css("padding-right", a + this.scrollbarWidth) }, c.prototype.resetScrollbar = function () { this.$body.css("padding-right", "") }, c.prototype.measureScrollbar = function () { var a = document.createElement("div"); a.className = "modal-scrollbar-measure", this.$body.append(a); var b = a.offsetWidth - a.clientWidth; return this.$body[0].removeChild(a), b }; var d = a.fn.modal; a.fn.modal = b, a.fn.modal.Constructor = c, a.fn.modal.noConflict = function () { return a.fn.modal = d, this }, a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function (c) { var d = a(this), e = d.attr("href"), f = a(d.attr("data-target") || e && e.replace(/.*(?=#[^\s]+$)/, "")), g = f.data("bs.modal") ? "toggle" : a.extend({ remote: !/#/.test(e) && e }, f.data(), d.data()); d.is("a") && c.preventDefault(), f.one("show.bs.modal", function (a) { a.isDefaultPrevented() || f.one("hidden.bs.modal", function () { d.is(":visible") && d.trigger("focus") }) }), b.call(f, g, this) }) }(jQuery), +function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.tooltip"), f = "object" == typeof b && b; (e || "destroy" != b) && (e || d.data("bs.tooltip", e = new c(this, f)), "string" == typeof b && e[b]()) }) } var c = function (a, b) { this.type = this.options = this.enabled = this.timeout = this.hoverState = this.$element = null, this.init("tooltip", a, b) }; c.VERSION = "3.2.0", c.DEFAULTS = { animation: !0, placement: "top", selector: !1, template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', trigger: "hover focus", title: "", delay: 0, html: !1, container: !1, viewport: { selector: "body", padding: 0 } }, c.prototype.init = function (b, c, d) { this.enabled = !0, this.type = b, this.$element = a(c), this.options = this.getOptions(d), this.$viewport = this.options.viewport && a(this.options.viewport.selector || this.options.viewport); for (var e = this.options.trigger.split(" "), f = e.length; f--;) { var g = e[f]; if ("click" == g) this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this)); else if ("manual" != g) { var h = "hover" == g ? "mouseenter" : "focusin", i = "hover" == g ? "mouseleave" : "focusout"; this.$element.on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), this.$element.on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this)) } } this.options.selector ? this._options = a.extend({}, this.options, { trigger: "manual", selector: "" }) : this.fixTitle() }, c.prototype.getDefaults = function () { return c.DEFAULTS }, c.prototype.getOptions = function (b) { return b = a.extend({}, this.getDefaults(), this.$element.data(), b), b.delay && "number" == typeof b.delay && (b.delay = { show: b.delay, hide: b.delay }), b }, c.prototype.getDelegateOptions = function () { var b = {}, c = this.getDefaults(); return this._options && a.each(this._options, function (a, d) { c[a] != d && (b[a] = d) }), b }, c.prototype.enter = function (b) { var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), clearTimeout(c.timeout), c.hoverState = "in", c.options.delay && c.options.delay.show ? void (c.timeout = setTimeout(function () { "in" == c.hoverState && c.show() }, c.options.delay.show)) : c.show() }, c.prototype.leave = function (b) { var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), clearTimeout(c.timeout), c.hoverState = "out", c.options.delay && c.options.delay.hide ? void (c.timeout = setTimeout(function () { "out" == c.hoverState && c.hide() }, c.options.delay.hide)) : c.hide() }, c.prototype.show = function () { var b = a.Event("show.bs." + this.type); if (this.hasContent() && this.enabled) { this.$element.trigger(b); var c = a.contains(document.documentElement, this.$element[0]); if (b.isDefaultPrevented() || !c) return; var d = this, e = this.tip(), f = this.getUID(this.type); this.setContent(), e.attr("id", f), this.$element.attr("aria-describedby", f), this.options.animation && e.addClass("fade"); var g = "function" == typeof this.options.placement ? this.options.placement.call(this, e[0], this.$element[0]) : this.options.placement, h = /\s?auto?\s?/i, i = h.test(g); i && (g = g.replace(h, "") || "top"), e.detach().css({ top: 0, left: 0, display: "block" }).addClass(g).data("bs." + this.type, this), this.options.container ? e.appendTo(this.options.container) : e.insertAfter(this.$element); var j = this.getPosition(), k = e[0].offsetWidth, l = e[0].offsetHeight; if (i) { var m = g, n = this.$element.parent(), o = this.getPosition(n); g = "bottom" == g && j.top + j.height + l - o.scroll > o.height ? "top" : "top" == g && j.top - o.scroll - l < 0 ? "bottom" : "right" == g && j.right + k > o.width ? "left" : "left" == g && j.left - k < o.left ? "right" : g, e.removeClass(m).addClass(g) } var p = this.getCalculatedOffset(g, j, k, l); this.applyPlacement(p, g); var q = function () { d.$element.trigger("shown.bs." + d.type), d.hoverState = null }; a.support.transition && this.$tip.hasClass("fade") ? e.one("bsTransitionEnd", q).emulateTransitionEnd(150) : q() } }, c.prototype.applyPlacement = function (b, c) { var d = this.tip(), e = d[0].offsetWidth, f = d[0].offsetHeight, g = parseInt(d.css("margin-top"), 10), h = parseInt(d.css("margin-left"), 10); isNaN(g) && (g = 0), isNaN(h) && (h = 0), b.top = b.top + g, b.left = b.left + h, a.offset.setOffset(d[0], a.extend({ using: function (a) { d.css({ top: Math.round(a.top), left: Math.round(a.left) }) } }, b), 0), d.addClass("in"); var i = d[0].offsetWidth, j = d[0].offsetHeight; "top" == c && j != f && (b.top = b.top + f - j); var k = this.getViewportAdjustedDelta(c, b, i, j); k.left ? b.left += k.left : b.top += k.top; var l = k.left ? 2 * k.left - e + i : 2 * k.top - f + j, m = k.left ? "left" : "top", n = k.left ? "offsetWidth" : "offsetHeight"; d.offset(b), this.replaceArrow(l, d[0][n], m) }, c.prototype.replaceArrow = function (a, b, c) { this.arrow().css(c, a ? 50 * (1 - a / b) + "%" : "") }, c.prototype.setContent = function () { var a = this.tip(), b = this.getTitle(); a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), a.removeClass("fade in top bottom left right") }, c.prototype.hide = function () { function b() { "in" != c.hoverState && d.detach(), c.$element.trigger("hidden.bs." + c.type) } var c = this, d = this.tip(), e = a.Event("hide.bs." + this.type); return this.$element.removeAttr("aria-describedby"), this.$element.trigger(e), e.isDefaultPrevented() ? void 0 : (d.removeClass("in"), a.support.transition && this.$tip.hasClass("fade") ? d.one("bsTransitionEnd", b).emulateTransitionEnd(150) : b(), this.hoverState = null, this) }, c.prototype.fixTitle = function () { var a = this.$element; (a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").attr("title", "") }, c.prototype.hasContent = function () { return this.getTitle() }, c.prototype.getPosition = function (b) { b = b || this.$element; var c = b[0], d = "BODY" == c.tagName; return a.extend({}, "function" == typeof c.getBoundingClientRect ? c.getBoundingClientRect() : null, { scroll: d ? document.documentElement.scrollTop || document.body.scrollTop : b.scrollTop(), width: d ? a(window).width() : b.outerWidth(), height: d ? a(window).height() : b.outerHeight() }, d ? { top: 0, left: 0 } : b.offset()) }, c.prototype.getCalculatedOffset = function (a, b, c, d) { return "bottom" == a ? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 } : "top" == a ? { top: b.top - d, left: b.left + b.width / 2 - c / 2 } : "left" == a ? { top: b.top + b.height / 2 - d / 2, left: b.left - c } : { top: b.top + b.height / 2 - d / 2, left: b.left + b.width } }, c.prototype.getViewportAdjustedDelta = function (a, b, c, d) { var e = { top: 0, left: 0 }; if (!this.$viewport) return e; var f = this.options.viewport && this.options.viewport.padding || 0, g = this.getPosition(this.$viewport); if (/right|left/.test(a)) { var h = b.top - f - g.scroll, i = b.top + f - g.scroll + d; h < g.top ? e.top = g.top - h : i > g.top + g.height && (e.top = g.top + g.height - i) } else { var j = b.left - f, k = b.left + f + c; j < g.left ? e.left = g.left - j : k > g.width && (e.left = g.left + g.width - k) } return e }, c.prototype.getTitle = function () { var a, b = this.$element, c = this.options; return a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title) }, c.prototype.getUID = function (a) { do a += ~~(1e6 * Math.random()); while (document.getElementById(a)); return a }, c.prototype.tip = function () { return this.$tip = this.$tip || a(this.options.template) }, c.prototype.arrow = function () { return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow") }, c.prototype.validate = function () { this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null) }, c.prototype.enable = function () { this.enabled = !0 }, c.prototype.disable = function () { this.enabled = !1 }, c.prototype.toggleEnabled = function () { this.enabled = !this.enabled }, c.prototype.toggle = function (b) { var c = this; b && (c = a(b.currentTarget).data("bs." + this.type), c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c))), c.tip().hasClass("in") ? c.leave(c) : c.enter(c) }, c.prototype.destroy = function () { clearTimeout(this.timeout), this.hide().$element.off("." + this.type).removeData("bs." + this.type) }; var d = a.fn.tooltip; a.fn.tooltip = b, a.fn.tooltip.Constructor = c, a.fn.tooltip.noConflict = function () { return a.fn.tooltip = d, this } }(jQuery), +function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.popover"), f = "object" == typeof b && b; (e || "destroy" != b) && (e || d.data("bs.popover", e = new c(this, f)), "string" == typeof b && e[b]()) }) } var c = function (a, b) { this.init("popover", a, b) }; if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js"); c.VERSION = "3.2.0", c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { placement: "right", trigger: "click", content: "", template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' }), c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), c.prototype.constructor = c, c.prototype.getDefaults = function () { return c.DEFAULTS }, c.prototype.setContent = function () { var a = this.tip(), b = this.getTitle(), c = this.getContent(); a.find(".popover-title")[this.options.html ? "html" : "text"](b), a.find(".popover-content").empty()[this.options.html ? "string" == typeof c ? "html" : "append" : "text"](c), a.removeClass("fade top bottom left right in"), a.find(".popover-title").html() || a.find(".popover-title").hide() }, c.prototype.hasContent = function () { return this.getTitle() || this.getContent() }, c.prototype.getContent = function () { var a = this.$element, b = this.options; return a.attr("data-content") || ("function" == typeof b.content ? b.content.call(a[0]) : b.content) }, c.prototype.arrow = function () { return this.$arrow = this.$arrow || this.tip().find(".arrow") }, c.prototype.tip = function () { return this.$tip || (this.$tip = a(this.options.template)), this.$tip }; var d = a.fn.popover; a.fn.popover = b, a.fn.popover.Constructor = c, a.fn.popover.noConflict = function () { return a.fn.popover = d, this } }(jQuery), +function (a) { "use strict"; function b(c, d) { var e = a.proxy(this.process, this); this.$body = a("body"), this.$scrollElement = a(a(c).is("body") ? window : c), this.options = a.extend({}, b.DEFAULTS, d), this.selector = (this.options.target || "") + " .nav li > a", this.offsets = [], this.targets = [], this.activeTarget = null, this.scrollHeight = 0, this.$scrollElement.on("scroll.bs.scrollspy", e), this.refresh(), this.process() } function c(c) { return this.each(function () { var d = a(this), e = d.data("bs.scrollspy"), f = "object" == typeof c && c; e || d.data("bs.scrollspy", e = new b(this, f)), "string" == typeof c && e[c]() }) } b.VERSION = "3.2.0", b.DEFAULTS = { offset: 10 }, b.prototype.getScrollHeight = function () { return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) }, b.prototype.refresh = function () { var b = "offset", c = 0; a.isWindow(this.$scrollElement[0]) || (b = "position", c = this.$scrollElement.scrollTop()), this.offsets = [], this.targets = [], this.scrollHeight = this.getScrollHeight(); var d = this; this.$body.find(this.selector).map(function () { var d = a(this), e = d.data("target") || d.attr("href"), f = /^#./.test(e) && a(e); return f && f.length && f.is(":visible") && [[f[b]().top + c, e]] || null }).sort(function (a, b) { return a[0] - b[0] }).each(function () { d.offsets.push(this[0]), d.targets.push(this[1]) }) }, b.prototype.process = function () { var a, b = this.$scrollElement.scrollTop() + this.options.offset, c = this.getScrollHeight(), d = this.options.offset + c - this.$scrollElement.height(), e = this.offsets, f = this.targets, g = this.activeTarget; if (this.scrollHeight != c && this.refresh(), b >= d) return g != (a = f[f.length - 1]) && this.activate(a); if (g && b <= e[0]) return g != (a = f[0]) && this.activate(a); for (a = e.length; a--;) g != f[a] && b >= e[a] && (!e[a + 1] || b <= e[a + 1]) && this.activate(f[a]) }, b.prototype.activate = function (b) { this.activeTarget = b, a(this.selector).parentsUntil(this.options.target, ".active").removeClass("active"); var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]', d = a(c).parents("li").addClass("active"); d.parent(".dropdown-menu").length && (d = d.closest("li.dropdown").addClass("active")), d.trigger("activate.bs.scrollspy") }; var d = a.fn.scrollspy; a.fn.scrollspy = c, a.fn.scrollspy.Constructor = b, a.fn.scrollspy.noConflict = function () { return a.fn.scrollspy = d, this }, a(window).on("load.bs.scrollspy.data-api", function () { a('[data-spy="scroll"]').each(function () { var b = a(this); c.call(b, b.data()) }) }) }(jQuery), +function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.tab"); e || d.data("bs.tab", e = new c(this)), "string" == typeof b && e[b]() }) } var c = function (b) { this.element = a(b) }; c.VERSION = "3.2.0", c.prototype.show = function () { var b = this.element, c = b.closest("ul:not(.dropdown-menu)"), d = b.data("target"); if (d || (d = b.attr("href"), d = d && d.replace(/.*(?=#[^\s]*$)/, "")), !b.parent("li").hasClass("active")) { var e = c.find(".active:last a")[0], f = a.Event("show.bs.tab", { relatedTarget: e }); if (b.trigger(f), !f.isDefaultPrevented()) { var g = a(d); this.activate(b.closest("li"), c), this.activate(g, g.parent(), function () { b.trigger({ type: "shown.bs.tab", relatedTarget: e }) }) } } }, c.prototype.activate = function (b, c, d) { function e() { f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"), b.addClass("active"), g ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), b.parent(".dropdown-menu") && b.closest("li.dropdown").addClass("active"), d && d() } var f = c.find("> .active"), g = d && a.support.transition && f.hasClass("fade"); g ? f.one("bsTransitionEnd", e).emulateTransitionEnd(150) : e(), f.removeClass("in") }; var d = a.fn.tab; a.fn.tab = b, a.fn.tab.Constructor = c, a.fn.tab.noConflict = function () { return a.fn.tab = d, this }, a(document).on("click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]', function (c) { c.preventDefault(), b.call(a(this), "show") }) }(jQuery), +function (a) {
    "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.affix"), f = "object" == typeof b && b; e || d.data("bs.affix", e = new c(this, f)), "string" == typeof b && e[b]() }) } var c = function (b, d) { this.options = a.extend({}, c.DEFAULTS, d), this.$target = a(this.options.target).on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this)), this.$element = a(b), this.affixed = this.unpin = this.pinnedOffset = null, this.checkPosition() }; c.VERSION = "3.2.0", c.RESET = "affix affix-top affix-bottom", c.DEFAULTS = { offset: 0, target: window }, c.prototype.getPinnedOffset = function () { if (this.pinnedOffset) return this.pinnedOffset; this.$element.removeClass(c.RESET).addClass("affix"); var a = this.$target.scrollTop(), b = this.$element.offset(); return this.pinnedOffset = b.top - a }, c.prototype.checkPositionWithEventLoop = function () { setTimeout(a.proxy(this.checkPosition, this), 1) }, c.prototype.checkPosition = function () {
        if (this.$element.is(":visible")) {
            var b = a(document).height(), d = this.$target.scrollTop(), e = this.$element.offset(), f = this.options.offset, g = f.top, h = f.bottom; "object" != typeof f && (h = g = f), "function" == typeof g && (g = f.top(this.$element)), "function" == typeof h && (h = f.bottom(this.$element)); var i = null != this.unpin && d + this.unpin <= e.top ? !1 : null != h && e.top + this.$element.height() >= b - h ? "bottom" : null != g && g >= d ? "top" : !1; if (this.affixed !== i) {
                null != this.unpin && this.$element.css("top", ""); var j = "affix" + (i ? "-" + i : ""), k = a.Event(j + ".bs.affix"); this.$element.trigger(k), k.isDefaultPrevented() || (this.affixed = i, this.unpin = "bottom" == i ? this.getPinnedOffset() : null, this.$element.removeClass(c.RESET).addClass(j).trigger(a.Event(j.replace("affix", "affixed"))), "bottom" == i && this.$element.offset({ top: b - this.$element.height() - h }))
            }
        }
    }; var d = a.fn.affix; a.fn.affix = b, a.fn.affix.Constructor = c, a.fn.affix.noConflict = function () { return a.fn.affix = d, this }, a(window).on("load", function () { a('[data-spy="affix"]').each(function () { var c = a(this), d = c.data(); d.offset = d.offset || {}, d.offsetBottom && (d.offset.bottom = d.offsetBottom), d.offsetTop && (d.offset.top = d.offsetTop), b.call(c, d) }) })
}(jQuery), function () { var a = [].slice; !function (b, c) { "use strict"; var d; return d = function () { function a(a, c) { null == c && (c = {}), this.$element = b(a), this.options = b.extend({}, b.fn.bootstrapSwitch.defaults, { state: this.$element.is(":checked"), size: this.$element.data("size"), animate: this.$element.data("animate"), disabled: this.$element.is(":disabled"), readonly: this.$element.is("[readonly]"), indeterminate: this.$element.data("indeterminate"), onColor: this.$element.data("on-color"), offColor: this.$element.data("off-color"), onText: this.$element.data("on-text"), offText: this.$element.data("off-text"), labelText: this.$element.data("label-text"), baseClass: this.$element.data("base-class"), wrapperClass: this.$element.data("wrapper-class"), radioAllOff: this.$element.data("radio-all-off") }, c), this.$wrapper = b("<div>", { "class": function (a) { return function () { var b; return b = ["" + a.options.baseClass].concat(a._getClasses(a.options.wrapperClass)), b.push(a.options.state ? "" + a.options.baseClass + "-on" : "" + a.options.baseClass + "-off"), null != a.options.size && b.push("" + a.options.baseClass + "-" + a.options.size), a.options.animate && b.push("" + a.options.baseClass + "-animate"), a.options.disabled && b.push("" + a.options.baseClass + "-disabled"), a.options.readonly && b.push("" + a.options.baseClass + "-readonly"), a.options.indeterminate && b.push("" + a.options.baseClass + "-indeterminate"), a.$element.attr("id") && b.push("" + a.options.baseClass + "-id-" + a.$element.attr("id")), b.join(" ") } }(this)() }), this.$container = b("<div>", { "class": "" + this.options.baseClass + "-container" }), this.$on = b("<span>", { html: this.options.onText, "class": "" + this.options.baseClass + "-handle-on " + this.options.baseClass + "-" + this.options.onColor }), this.$off = b("<span>", { html: this.options.offText, "class": "" + this.options.baseClass + "-handle-off " + this.options.baseClass + "-" + this.options.offColor }), this.$label = b("<label>", { html: this.options.labelText, "class": "" + this.options.baseClass + "-label" }), this.options.indeterminate && this.$element.prop("indeterminate", !0), this.$element.on("init.bootstrapSwitch", function (b) { return function () { return b.options.onInit.apply(a, arguments) } }(this)), this.$element.on("switchChange.bootstrapSwitch", function (b) { return function () { return b.options.onSwitchChange.apply(a, arguments) } }(this)), this.$container = this.$element.wrap(this.$container).parent(), this.$wrapper = this.$container.wrap(this.$wrapper).parent(), this.$element.before(this.$on).before(this.$label).before(this.$off).trigger("init.bootstrapSwitch"), this._elementHandlers(), this._handleHandlers(), this._labelHandlers(), this._formHandler() } return a.prototype._constructor = a, a.prototype.state = function (a, b) { return "undefined" == typeof a ? this.options.state : this.options.disabled || this.options.readonly || this.options.indeterminate ? this.$element : this.options.state && !this.options.radioAllOff && this.$element.is(":radio") ? this.$element : (a = !!a, this.$element.prop("checked", a).trigger("change.bootstrapSwitch", b), this.$element) }, a.prototype.toggleState = function (a) { return this.options.disabled || this.options.readonly || this.options.indeterminate ? this.$element : this.$element.prop("checked", !this.options.state).trigger("change.bootstrapSwitch", a) }, a.prototype.size = function (a) { return "undefined" == typeof a ? this.options.size : (null != this.options.size && this.$wrapper.removeClass("" + this.options.baseClass + "-" + this.options.size), a && this.$wrapper.addClass("" + this.options.baseClass + "-" + a), this.options.size = a, this.$element) }, a.prototype.animate = function (a) { return "undefined" == typeof a ? this.options.animate : (a = !!a, this.$wrapper[a ? "addClass" : "removeClass"]("" + this.options.baseClass + "-animate"), this.options.animate = a, this.$element) }, a.prototype.disabled = function (a) { return "undefined" == typeof a ? this.options.disabled : (a = !!a, this.$wrapper[a ? "addClass" : "removeClass"]("" + this.options.baseClass + "-disabled"), this.$element.prop("disabled", a), this.options.disabled = a, this.$element) }, a.prototype.toggleDisabled = function () { return this.$element.prop("disabled", !this.options.disabled), this.$wrapper.toggleClass("" + this.options.baseClass + "-disabled"), this.options.disabled = !this.options.disabled, this.$element }, a.prototype.readonly = function (a) { return "undefined" == typeof a ? this.options.readonly : (a = !!a, this.$wrapper[a ? "addClass" : "removeClass"]("" + this.options.baseClass + "-readonly"), this.$element.prop("readonly", a), this.options.readonly = a, this.$element) }, a.prototype.toggleReadonly = function () { return this.$element.prop("readonly", !this.options.readonly), this.$wrapper.toggleClass("" + this.options.baseClass + "-readonly"), this.options.readonly = !this.options.readonly, this.$element }, a.prototype.indeterminate = function (a) { return "undefined" == typeof a ? this.options.indeterminate : (a = !!a, this.$wrapper[a ? "addClass" : "removeClass"]("" + this.options.baseClass + "-indeterminate"), this.$element.prop("indeterminate", a), this.options.indeterminate = a, this.$element) }, a.prototype.toggleIndeterminate = function () { return this.$element.prop("indeterminate", !this.options.indeterminate), this.$wrapper.toggleClass("" + this.options.baseClass + "-indeterminate"), this.options.indeterminate = !this.options.indeterminate, this.$element }, a.prototype.onColor = function (a) { var b; return b = this.options.onColor, "undefined" == typeof a ? b : (null != b && this.$on.removeClass("" + this.options.baseClass + "-" + b), this.$on.addClass("" + this.options.baseClass + "-" + a), this.options.onColor = a, this.$element) }, a.prototype.offColor = function (a) { var b; return b = this.options.offColor, "undefined" == typeof a ? b : (null != b && this.$off.removeClass("" + this.options.baseClass + "-" + b), this.$off.addClass("" + this.options.baseClass + "-" + a), this.options.offColor = a, this.$element) }, a.prototype.onText = function (a) { return "undefined" == typeof a ? this.options.onText : (this.$on.html(a), this.options.onText = a, this.$element) }, a.prototype.offText = function (a) { return "undefined" == typeof a ? this.options.offText : (this.$off.html(a), this.options.offText = a, this.$element) }, a.prototype.labelText = function (a) { return "undefined" == typeof a ? this.options.labelText : (this.$label.html(a), this.options.labelText = a, this.$element) }, a.prototype.baseClass = function () { return this.options.baseClass }, a.prototype.wrapperClass = function (a) { return "undefined" == typeof a ? this.options.wrapperClass : (a || (a = b.fn.bootstrapSwitch.defaults.wrapperClass), this.$wrapper.removeClass(this._getClasses(this.options.wrapperClass).join(" ")), this.$wrapper.addClass(this._getClasses(a).join(" ")), this.options.wrapperClass = a, this.$element) }, a.prototype.radioAllOff = function (a) { return "undefined" == typeof a ? this.options.radioAllOff : (this.options.radioAllOff = a, this.$element) }, a.prototype.onInit = function (a) { return "undefined" == typeof a ? this.options.onInit : (a || (a = b.fn.bootstrapSwitch.defaults.onInit), this.options.onInit = a, this.$element) }, a.prototype.onSwitchChange = function (a) { return "undefined" == typeof a ? this.options.onSwitchChange : (a || (a = b.fn.bootstrapSwitch.defaults.onSwitchChange), this.options.onSwitchChange = a, this.$element) }, a.prototype.destroy = function () { var a; return a = this.$element.closest("form"), a.length && a.off("reset.bootstrapSwitch").removeData("bootstrap-switch"), this.$container.children().not(this.$element).remove(), this.$element.unwrap().unwrap().off(".bootstrapSwitch").removeData("bootstrap-switch"), this.$element }, a.prototype._elementHandlers = function () { return this.$element.on({ "change.bootstrapSwitch": function (a) { return function (c, d) { var e; return c.preventDefault(), c.stopImmediatePropagation(), e = a.$element.is(":checked"), e !== a.options.state ? (a.options.state = e, a.$wrapper.removeClass(e ? "" + a.options.baseClass + "-off" : "" + a.options.baseClass + "-on").addClass(e ? "" + a.options.baseClass + "-on" : "" + a.options.baseClass + "-off"), d ? void 0 : (a.$element.is(":radio") && b("[name='" + a.$element.attr("name") + "']").not(a.$element).prop("checked", !1).trigger("change.bootstrapSwitch", !0), a.$element.trigger("switchChange.bootstrapSwitch", [e]))) : void 0 } }(this), "focus.bootstrapSwitch": function (a) { return function (b) { return b.preventDefault(), a.$wrapper.addClass("" + a.options.baseClass + "-focused") } }(this), "blur.bootstrapSwitch": function (a) { return function (b) { return b.preventDefault(), a.$wrapper.removeClass("" + a.options.baseClass + "-focused") } }(this), "keydown.bootstrapSwitch": function (a) { return function (b) { if (b.which && !a.options.disabled && !a.options.readonly && !a.options.indeterminate) switch (b.which) { case 37: return b.preventDefault(), b.stopImmediatePropagation(), a.state(!1); case 39: return b.preventDefault(), b.stopImmediatePropagation(), a.state(!0) } } }(this) }) }, a.prototype._handleHandlers = function () { return this.$on.on("click.bootstrapSwitch", function (a) { return function () { return a.state(!1), a.$element.trigger("focus.bootstrapSwitch") } }(this)), this.$off.on("click.bootstrapSwitch", function (a) { return function () { return a.state(!0), a.$element.trigger("focus.bootstrapSwitch") } }(this)) }, a.prototype._labelHandlers = function () { return this.$label.on({ "mousemove.bootstrapSwitch touchmove.bootstrapSwitch": function (a) { return function (b) { var c, d, e, f; if (a.isLabelDragging) return b.preventDefault(), a.isLabelDragged = !0, d = b.pageX || b.originalEvent.touches[0].pageX, e = (d - a.$wrapper.offset().left) / a.$wrapper.width() * 100, c = 25, f = 75, a.options.animate && a.$wrapper.removeClass("" + a.options.baseClass + "-animate"), c > e ? e = c : e > f && (e = f), a.$container.css("margin-left", "" + (e - f) + "%"), a.$element.trigger("focus.bootstrapSwitch") } }(this), "mousedown.bootstrapSwitch touchstart.bootstrapSwitch": function (a) { return function (b) { return a.isLabelDragging || a.options.disabled || a.options.readonly || a.options.indeterminate ? void 0 : (b.preventDefault(), a.isLabelDragging = !0, a.$element.trigger("focus.bootstrapSwitch")) } }(this), "mouseup.bootstrapSwitch touchend.bootstrapSwitch": function (a) { return function (b) { return a.isLabelDragging ? (b.preventDefault(), a.isLabelDragged ? (a.isLabelDragged = !1, a.state(parseInt(a.$container.css("margin-left"), 10) > -(a.$container.width() / 6)), a.options.animate && a.$wrapper.addClass("" + a.options.baseClass + "-animate"), a.$container.css("margin-left", "")) : a.state(!a.options.state), a.isLabelDragging = !1) : void 0 } }(this), "mouseleave.bootstrapSwitch": function (a) { return function () { return a.$label.trigger("mouseup.bootstrapSwitch") } }(this) }) }, a.prototype._formHandler = function () { var a; return a = this.$element.closest("form"), a.data("bootstrap-switch") ? void 0 : a.on("reset.bootstrapSwitch", function () { return c.setTimeout(function () { return a.find("input").filter(function () { return b(this).data("bootstrap-switch") }).each(function () { return b(this).bootstrapSwitch("state", this.checked) }) }, 1) }).data("bootstrap-switch", !0) }, a.prototype._getClasses = function (a) { var c, d, e, f; if (!b.isArray(a)) return ["" + this.options.baseClass + "-" + a]; for (d = [], e = 0, f = a.length; f > e; e++) c = a[e], d.push("" + this.options.baseClass + "-" + c); return d }, a }(), b.fn.bootstrapSwitch = function () { var c, e, f; return e = arguments[0], c = 2 <= arguments.length ? a.call(arguments, 1) : [], f = this, this.each(function () { var a, g; return a = b(this), g = a.data("bootstrap-switch"), g || a.data("bootstrap-switch", g = new d(this, e)), "string" == typeof e ? f = g[e].apply(g, c) : void 0 }), f }, b.fn.bootstrapSwitch.Constructor = d, b.fn.bootstrapSwitch.defaults = { state: !0, size: null, animate: !0, disabled: !1, readonly: !1, indeterminate: !1, onColor: "primary", offColor: "default", onText: "ON", offText: "OFF", labelText: "&nbsp;", baseClass: "bootstrap-switch", wrapperClass: "wrapper", radioAllOff: !1, onInit: function () { }, onSwitchChange: function () { } } }(window.jQuery, window) }.call(this), function (a) { "use strict"; function b(b, c) { this.itemsArray = [], this.$element = a(b), this.$element.hide(), this.isSelect = "SELECT" === b.tagName, this.multiple = this.isSelect && b.hasAttribute("multiple"), this.objectItems = c && c.itemValue, this.placeholderText = b.hasAttribute("placeholder") ? this.$element.attr("placeholder") : "", this.inputSize = Math.max(1, this.placeholderText.length), this.$container = a('<div class="bootstrap-tagsinput"></div>'), this.$input = a('<input type="text" placeholder="' + this.placeholderText + '"/>').appendTo(this.$container), this.$element.after(this.$container); var d = (this.inputSize < 3 ? 3 : this.inputSize) + "em"; this.$input.get(0).style.cssText = "width: " + d + " !important;", this.build(c) } function c(a, b) { if ("function" != typeof a[b]) { var c = a[b]; a[b] = function (a) { return a[c] } } } function d(a, b) { if ("function" != typeof a[b]) { var c = a[b]; a[b] = function () { return c } } } function e(a) { return a ? i.text(a).html() : "" } function f(a) { var b = 0; if (document.selection) { a.focus(); var c = document.selection.createRange(); c.moveStart("character", -a.value.length), b = c.text.length } else (a.selectionStart || "0" == a.selectionStart) && (b = a.selectionStart); return b } function g(b, c) { var d = !1; return a.each(c, function (a, c) { if ("number" == typeof c && b.which === c) return d = !0, !1; if (b.which === c.which) { var e = !c.hasOwnProperty("altKey") || b.altKey === c.altKey, f = !c.hasOwnProperty("shiftKey") || b.shiftKey === c.shiftKey, g = !c.hasOwnProperty("ctrlKey") || b.ctrlKey === c.ctrlKey; if (e && f && g) return d = !0, !1 } }), d } var h = { tagClass: function () { return "label label-info" }, itemValue: function (a) { return a ? a.toString() : a }, itemText: function (a) { return this.itemValue(a) }, freeInput: !0, addOnBlur: !0, maxTags: void 0, maxChars: void 0, confirmKeys: [13, 44], onTagExists: function (a, b) { b.hide().fadeIn() }, trimValue: !1, allowDuplicates: !1 }; b.prototype = { constructor: b, add: function (b, c) { var d = this; if (!(d.options.maxTags && d.itemsArray.length >= d.options.maxTags || b !== !1 && !b)) { if ("string" == typeof b && d.options.trimValue && (b = a.trim(b)), "object" == typeof b && !d.objectItems) throw "Can't add objects when itemValue option is not set"; if (!b.toString().match(/^\s*$/)) { if (d.isSelect && !d.multiple && d.itemsArray.length > 0 && d.remove(d.itemsArray[0]), "string" == typeof b && "INPUT" === this.$element[0].tagName) { var f = b.split(","); if (f.length > 1) { for (var g = 0; g < f.length; g++) this.add(f[g], !0); return void (c || d.pushVal()) } } var h = d.options.itemValue(b), i = d.options.itemText(b), j = d.options.tagClass(b), k = a.grep(d.itemsArray, function (a) { return d.options.itemValue(a) === h })[0]; if (!k || d.options.allowDuplicates) { if (!(d.items().toString().length + b.length + 1 > d.options.maxInputLength)) { var l = a.Event("beforeItemAdd", { item: b, cancel: !1 }); if (d.$element.trigger(l), !l.cancel) { d.itemsArray.push(b); var m = a('<span class="tag ' + e(j) + '">' + e(i) + '<span data-role="remove"></span></span>'); if (m.data("item", b), d.findInputWrapper().before(m), m.after(" "), d.isSelect && !a('option[value="' + encodeURIComponent(h) + '"]', d.$element)[0]) { var n = a("<option selected>" + e(i) + "</option>"); n.data("item", b), n.attr("value", h), d.$element.append(n) } c || d.pushVal(), (d.options.maxTags === d.itemsArray.length || d.items().toString().length === d.options.maxInputLength) && d.$container.addClass("bootstrap-tagsinput-max"), d.$element.trigger(a.Event("itemAdded", { item: b })) } } } else if (d.options.onTagExists) { var o = a(".tag", d.$container).filter(function () { return a(this).data("item") === k }); d.options.onTagExists(b, o) } } } }, remove: function (b, c) { var d = this; if (d.objectItems && (b = "object" == typeof b ? a.grep(d.itemsArray, function (a) { return d.options.itemValue(a) == d.options.itemValue(b) }) : a.grep(d.itemsArray, function (a) { return d.options.itemValue(a) == b }), b = b[b.length - 1]), b) { var e = a.Event("beforeItemRemove", { item: b, cancel: !1 }); if (d.$element.trigger(e), e.cancel) return; a(".tag", d.$container).filter(function () { return a(this).data("item") === b }).remove(), a("option", d.$element).filter(function () { return a(this).data("item") === b }).remove(), -1 !== a.inArray(b, d.itemsArray) && d.itemsArray.splice(a.inArray(b, d.itemsArray), 1) } c || d.pushVal(), d.options.maxTags > d.itemsArray.length && d.$container.removeClass("bootstrap-tagsinput-max"), d.$element.trigger(a.Event("itemRemoved", { item: b })) }, removeAll: function () { var b = this; for (a(".tag", b.$container).remove(), a("option", b.$element).remove() ; b.itemsArray.length > 0;) b.itemsArray.pop(); b.pushVal() }, refresh: function () { var b = this; a(".tag", b.$container).each(function () { var c = a(this), d = c.data("item"), f = b.options.itemValue(d), g = b.options.itemText(d), h = b.options.tagClass(d); if (c.attr("class", null), c.addClass("tag " + e(h)), c.contents().filter(function () { return 3 == this.nodeType })[0].nodeValue = e(g), b.isSelect) { var i = a("option", b.$element).filter(function () { return a(this).data("item") === d }); i.attr("value", f) } }) }, items: function () { return this.itemsArray }, pushVal: function () { var b = this, c = a.map(b.items(), function (a) { return b.options.itemValue(a).toString() }); b.$element.val(c, !0).trigger("change") }, build: function (b) { var e = this; if (e.options = a.extend({}, h, b), e.objectItems && (e.options.freeInput = !1), c(e.options, "itemValue"), c(e.options, "itemText"), d(e.options, "tagClass"), e.options.typeahead) { var i = e.options.typeahead || {}; d(i, "source"), e.$input.typeahead(a.extend({}, i, { source: function (b, c) { function d(a) { for (var b = [], d = 0; d < a.length; d++) { var g = e.options.itemText(a[d]); f[g] = a[d], b.push(g) } c(b) } this.map = {}; var f = this.map, g = i.source(b); a.isFunction(g.success) ? g.success(d) : a.isFunction(g.then) ? g.then(d) : a.when(g).then(d) }, updater: function (a) { e.add(this.map[a]) }, matcher: function (a) { return -1 !== a.toLowerCase().indexOf(this.query.trim().toLowerCase()) }, sorter: function (a) { return a.sort() }, highlighter: function (a) { var b = new RegExp("(" + this.query + ")", "gi"); return a.replace(b, "<strong>$1</strong>") } })) } if (e.options.typeaheadjs) { var j = e.options.typeaheadjs || {}; e.$input.typeahead(null, j).on("typeahead:selected", a.proxy(function (a, b) { e.add(j.valueKey ? b[j.valueKey] : b), e.$input.typeahead("val", "") }, e)) } e.$container.on("click", a.proxy(function () { e.$element.attr("disabled") || e.$input.removeAttr("disabled"), e.$input.focus() }, e)), e.options.addOnBlur && e.options.freeInput && e.$input.on("focusout", a.proxy(function () { 0 === a(".typeahead, .twitter-typeahead", e.$container).length && (e.add(e.$input.val()), e.$input.val("")) }, e)), e.$container.on("keydown", "input", a.proxy(function (b) { var c = a(b.target), d = e.findInputWrapper(); if (e.$element.attr("disabled")) return void e.$input.attr("disabled", "disabled"); switch (b.which) { case 8: if (0 === f(c[0])) { var g = d.prev(); g && e.remove(g.data("item")) } break; case 46: if (0 === f(c[0])) { var h = d.next(); h && e.remove(h.data("item")) } break; case 37: var i = d.prev(); 0 === c.val().length && i[0] && (i.before(d), c.focus()); break; case 39: var j = d.next(); 0 === c.val().length && j[0] && (j.after(d), c.focus()) } { var k = c.val().length; Math.ceil(k / 5) } c.attr("size", Math.max(this.inputSize, c.val().length)) }, e)), e.$container.on("keypress", "input", a.proxy(function (b) { var c = a(b.target); if (e.$element.attr("disabled")) return void e.$input.attr("disabled", "disabled"); var d = c.val(), f = e.options.maxChars && d.length >= e.options.maxChars; e.options.freeInput && (g(b, e.options.confirmKeys) || f) && (e.add(f ? d.substr(0, e.options.maxChars) : d), c.val(""), b.preventDefault()); { var h = c.val().length; Math.ceil(h / 5) } c.attr("size", Math.max(this.inputSize, c.val().length)) }, e)), e.$container.on("click", "[data-role=remove]", a.proxy(function (b) { e.$element.attr("disabled") || e.remove(a(b.target).closest(".tag").data("item")) }, e)), e.options.itemValue === h.itemValue && ("INPUT" === e.$element[0].tagName ? e.add(e.$element.val()) : a("option", e.$element).each(function () { e.add(a(this).attr("value"), !0) })) }, destroy: function () { var a = this; a.$container.off("keypress", "input"), a.$container.off("click", "[role=remove]"), a.$container.remove(), a.$element.removeData("tagsinput"), a.$element.show() }, focus: function () { this.$input.focus() }, input: function () { return this.$input }, findInputWrapper: function () { for (var b = this.$input[0], c = this.$container[0]; b && b.parentNode !== c;) b = b.parentNode; return a(b) } }, a.fn.tagsinput = function (c, d) { var e = []; return this.each(function () { var f = a(this).data("tagsinput"); if (f) if (c || d) { if (void 0 !== f[c]) { var g = f[c](d); void 0 !== g && e.push(g) } } else e.push(f); else f = new b(this, c), a(this).data("tagsinput", f), e.push(f), "SELECT" === this.tagName && a("option", a(this)).attr("selected", "selected"), a(this).val(a(this).val()) }), "string" == typeof c ? e.length > 1 ? e : e[0] : e }, a.fn.tagsinput.Constructor = b; var i = a("<div />"); a(function () { a("input[data-role=tagsinput], select[multiple][data-role=tagsinput]").tagsinput() }) }(window.jQuery),/*!
 
Holder - client side image placeholders
Version 2.4.0+bxlim
© 2014 Ivan Malopinsky - http://imsky.co
 
Site:    http://imsky.github.io/holder
Issues:   https://github.com/imsky/holder/issues
License:  http://opensource.org/licenses/MIT
 
*/
!function (a, b, c) { b[a] = c }("onDomReady", this, function (a) { "use strict"; function b(a) { if (!v) { if (!g.body) return e(b); for (v = !0; a = w.shift() ;) e(a) } } function c(a) { (t || a.type === i || g[m] === l) && (d(), b()) } function d() { t ? (g[s](q, c, j), a[s](i, c, j)) : (g[o](r, c), a[o](k, c)) } function e(a, b) { setTimeout(a, +b >= 0 ? b : 1) } function f(a) { v ? e(a) : w.push(a) } null == document.readyState && document.addEventListener && (document.addEventListener("DOMContentLoaded", function y() { document.removeEventListener("DOMContentLoaded", y, !1), document.readyState = "complete" }, !1), document.readyState = "loading"); var g = a.document, h = g.documentElement, i = "load", j = !1, k = "on" + i, l = "complete", m = "readyState", n = "attachEvent", o = "detachEvent", p = "addEventListener", q = "DOMContentLoaded", r = "onreadystatechange", s = "removeEventListener", t = p in g, u = j, v = j, w = []; if (g[m] === l) e(b); else if (t) g[p](q, c, j), a[p](i, c, j); else { g[n](r, c), a[n](k, c); try { u = null == a.frameElement && h } catch (x) { } u && u.doScroll && !function z() { if (!v) { try { u.doScroll("left") } catch (a) { return e(z, 50) } d(), b() } }() } return f.version = "1.4.0", f.isReady = function () { return v }, f }(this)), document.querySelectorAll || (document.querySelectorAll = function (a) { var b, c = document.createElement("style"), d = []; for (document.documentElement.firstChild.appendChild(c), document._qsa = [], c.styleSheet.cssText = a + "{x-qsa:expression(document._qsa && document._qsa.push(this))}", window.scrollBy(0, 0), c.parentNode.removeChild(c) ; document._qsa.length;) b = document._qsa.shift(), b.style.removeAttribute("x-qsa"), d.push(b); return document._qsa = null, d }), document.querySelector || (document.querySelector = function (a) { var b = document.querySelectorAll(a); return b.length ? b[0] : null }), document.getElementsByClassName || (document.getElementsByClassName = function (a) { return a = String(a).replace(/^|\s+/g, "."), document.querySelectorAll(a) }), Object.keys || (Object.keys = function (a) { if (a !== Object(a)) throw TypeError("Object.keys called on non-object"); var b, c = []; for (b in a) Object.prototype.hasOwnProperty.call(a, b) && c.push(b); return c }), function (a) { var b = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; a.atob = a.atob || function (a) { a = String(a); var c, d = 0, e = [], f = 0, g = 0; if (a = a.replace(/\s/g, ""), a.length % 4 === 0 && (a = a.replace(/=+$/, "")), a.length % 4 === 1) throw Error("InvalidCharacterError"); if (/[^+/0-9A-Za-z]/.test(a)) throw Error("InvalidCharacterError"); for (; d < a.length;) c = b.indexOf(a.charAt(d)), f = f << 6 | c, g += 6, 24 === g && (e.push(String.fromCharCode(f >> 16 & 255)), e.push(String.fromCharCode(f >> 8 & 255)), e.push(String.fromCharCode(255 & f)), g = 0, f = 0), d += 1; return 12 === g ? (f >>= 4, e.push(String.fromCharCode(255 & f))) : 18 === g && (f >>= 2, e.push(String.fromCharCode(f >> 8 & 255)), e.push(String.fromCharCode(255 & f))), e.join("") }, a.btoa = a.btoa || function (a) { a = String(a); var c, d, e, f, g, h, i, j = 0, k = []; if (/[^\x00-\xFF]/.test(a)) throw Error("InvalidCharacterError"); for (; j < a.length;) c = a.charCodeAt(j++), d = a.charCodeAt(j++), e = a.charCodeAt(j++), f = c >> 2, g = (3 & c) << 4 | d >> 4, h = (15 & d) << 2 | e >> 6, i = 63 & e, j === a.length + 2 ? (h = 64, i = 64) : j === a.length + 1 && (i = 64), k.push(b.charAt(f), b.charAt(g), b.charAt(h), b.charAt(i)); return k.join("") } }(this), function () { function a(b, c, d) { b.document; var e, f = b.currentStyle[c].match(/([\d\.]+)(%|cm|em|in|mm|pc|pt|)/) || [0, 0, ""], g = f[1], h = f[2]; return d = d ? /%|em/.test(h) && b.parentElement ? a(b.parentElement, "fontSize", null) : 16 : d, e = "fontSize" == c ? d : /width/i.test(c) ? b.clientWidth : b.clientHeight, "%" == h ? g / 100 * e : "cm" == h ? .3937 * g * 96 : "em" == h ? g * d : "in" == h ? 96 * g : "mm" == h ? .3937 * g * 96 / 10 : "pc" == h ? 12 * g * 96 / 72 : "pt" == h ? 96 * g / 72 : g } function b(a, b) { var c = "border" == b ? "Width" : "", d = b + "Top" + c, e = b + "Right" + c, f = b + "Bottom" + c, g = b + "Left" + c; a[b] = (a[d] == a[e] && a[d] == a[f] && a[d] == a[g] ? [a[d]] : a[d] == a[f] && a[g] == a[e] ? [a[d], a[e]] : a[g] == a[e] ? [a[d], a[e], a[f]] : [a[d], a[e], a[f], a[g]]).join(" ") } function c(c) { var d, e = this, f = c.currentStyle, g = a(c, "fontSize"), h = function (a) { return "-" + a.toLowerCase() }; for (d in f) if (Array.prototype.push.call(e, "styleFloat" == d ? "float" : d.replace(/[A-Z]/, h)), "width" == d) e[d] = c.offsetWidth + "px"; else if ("height" == d) e[d] = c.offsetHeight + "px"; else if ("styleFloat" == d) e.float = f[d]; else if (/margin.|padding.|border.+W/.test(d) && "auto" != e[d]) e[d] = Math.round(a(c, d, g)) + "px"; else if (/^outline/.test(d)) try { e[d] = f[d] } catch (i) { e.outlineColor = f.color, e.outlineStyle = e.outlineStyle || "none", e.outlineWidth = e.outlineWidth || "0px", e.outline = [e.outlineColor, e.outlineWidth, e.outlineStyle].join(" ") } else e[d] = f[d]; b(e, "margin"), b(e, "padding"), b(e, "border"), e.fontSize = Math.round(g) + "px" } window.getComputedStyle || (c.prototype = { constructor: c, getPropertyPriority: function () { throw new Error("NotSupportedError: DOM Exception 9") }, getPropertyValue: function (a) { return this[a.replace(/-\w/g, function (a) { return a[1].toUpperCase() })] }, item: function (a) { return this[a] }, removeProperty: function () { throw new Error("NoModificationAllowedError: DOM Exception 7") }, setProperty: function () { throw new Error("NoModificationAllowedError: DOM Exception 7") }, getPropertyCSSValue: function () { throw new Error("NotSupportedError: DOM Exception 9") } }, window.getComputedStyle = Window.prototype.getComputedStyle = function (a) { return new c(a) }) }(), Object.prototype.hasOwnProperty || (Object.prototype.hasOwnProperty = function (a) { var b = this.__proto__ || this.constructor.prototype; return a in this && (!(a in b) || b[a] !== this[a]) }), function (a, b) { a.augment = b() }(this, function () { "use strict"; var a = function () { }, b = Array.prototype.slice, c = function (c, d) { var e = a.prototype = "function" == typeof c ? c.prototype : c, f = new a, g = d.apply(f, b.call(arguments, 2).concat(e)); if ("object" == typeof g) for (var h in g) f[h] = g[h]; if (!f.hasOwnProperty("constructor")) return f; var i = f.constructor; return i.prototype = f, i }; return c.defclass = function (a) { var b = a.constructor; return b.prototype = a, b }, c.extend = function (a, b) { return c(a, function (a) { return this.uber = a, b }) }, c }), function (a, b) { function c(a, b, c, f) { var g = d(c.substr(c.lastIndexOf(a.domain)), a); g && e(null, f, g, b) } function d(a, b) { for (var c = { theme: p(A.settings.themes.gray, null), stylesheets: b.stylesheets, holderURL: [] }, d = !1, e = String.fromCharCode(11), f = a.replace(/([^\\])\//g, "$1" + e).split(e), g = /%[0-9a-f]{2}/gi, h = f.length, i = 0; h > i; i++) { var j = f[i]; if (j.match(g)) try { j = decodeURIComponent(j) } catch (k) { j = f[i] } var l = !1; if (A.flags.dimensions.match(j)) d = !0, c.dimensions = A.flags.dimensions.output(j), l = !0; else if (A.flags.fluid.match(j)) d = !0, c.dimensions = A.flags.fluid.output(j), c.fluid = !0, l = !0; else if (A.flags.textmode.match(j)) c.textmode = A.flags.textmode.output(j), l = !0; else if (A.flags.colors.match(j)) { var m = A.flags.colors.output(j); c.theme = p(c.theme, m), l = !0 } else if (b.themes[j]) b.themes.hasOwnProperty(j) && (c.theme = p(b.themes[j], null)), l = !0; else if (A.flags.font.match(j)) c.font = A.flags.font.output(j), l = !0; else if (A.flags.auto.match(j)) c.auto = !0, l = !0; else if (A.flags.text.match(j)) c.text = A.flags.text.output(j), l = !0; else if (A.flags.random.match(j)) { null == A.vars.cache.themeKeys && (A.vars.cache.themeKeys = Object.keys(b.themes)); var n = A.vars.cache.themeKeys[0 | Math.random() * A.vars.cache.themeKeys.length]; c.theme = p(b.themes[n], null), l = !0 } l && c.holderURL.push(j) } return c.holderURL.unshift(b.domain), c.holderURL = c.holderURL.join("/"), d ? c : !1 } function e(a, b, c, d) { var e = c.dimensions, g = c.theme, h = e.width + "x" + e.height; if (a = null == a ? c.fluid ? "fluid" : "image" : a, null != c.text && (g.text = c.text, "object" === b.nodeName.toLowerCase())) { for (var j = g.text.split("\\n"), l = 0; l < j.length; l++) j[l] = v(j[l]); g.text = j.join("\\n") } var n = c.holderURL, o = p(d, null); c.font && (g.font = c.font, !o.noFontFallback && "img" === b.nodeName.toLowerCase() && A.setup.supportsCanvas && "svg" === o.renderer && (o = p(o, { renderer: "canvas" }))), c.font && "canvas" == o.renderer && (o.reRender = !0), "background" == a ? null == b.getAttribute("data-background-src") && m(b, { "data-background-src": n }) : m(b, { "data-src": n }), c.theme = g, b.holderData = { flags: c, renderSettings: o }, ("image" == a || "fluid" == a) && m(b, { alt: g.text ? (g.text.length > 16 ? g.text.substring(0, 16) + "…" : g.text) + " [" + h + "]" : h }), "image" == a ? ("html" != o.renderer && c.auto || (b.style.width = e.width + "px", b.style.height = e.height + "px"), "html" == o.renderer ? b.style.backgroundColor = g.background : (f(a, { dimensions: e, theme: g, flags: c }, b, o), c.textmode && "exact" == c.textmode && (A.vars.resizableImages.push(b), i(b)))) : "background" == a && "html" != o.renderer ? f(a, { dimensions: e, theme: g, flags: c }, b, o) : "fluid" == a && ("%" == e.height.slice(-1) ? b.style.height = e.height : null != c.auto && c.auto || (b.style.height = e.height + "px"), "%" == e.width.slice(-1) ? b.style.width = e.width : null != c.auto && c.auto || (b.style.width = e.width + "px"), ("inline" == b.style.display || "" === b.style.display || "none" == b.style.display) && (b.style.display = "block"), k(b), "html" == o.renderer ? b.style.backgroundColor = g.background : (A.vars.resizableImages.push(b), i(b))) } function f(a, b, c, d) { function e() { var a = null; switch (d.renderer) { case "canvas": a = C(i); break; case "svg": a = D(i, d); break; default: throw "Holder: invalid renderer: " + d.renderer } return a } var f = null; switch (d.renderer) { case "svg": if (!A.setup.supportsSVG) return; break; case "canvas": if (!A.setup.supportsCanvas) return; break; default: return } var h = { width: b.dimensions.width, height: b.dimensions.height, theme: b.theme, flags: b.flags }, i = g(h); if ({ text: h.text, width: h.width, height: h.height, textHeight: h.font.size, font: h.font.family, fontWeight: h.font.weight, template: h.theme }, f = e(), null == f) throw "Holder: couldn't render placeholder"; "background" == a ? (c.style.backgroundImage = "url(" + f + ")", c.style.backgroundSize = h.width + "px " + h.height + "px") : ("img" === c.nodeName.toLowerCase() ? m(c, { src: f }) : "object" === c.nodeName.toLowerCase() && (m(c, { data: f }), m(c, { type: "image/svg+xml" })), d.reRender && setTimeout(function () { var a = e(); if (null == a) throw "Holder: couldn't render placeholder"; "img" === c.nodeName.toLowerCase() ? m(c, { src: a }) : "object" === c.nodeName.toLowerCase() && (m(c, { data: a }), m(c, { type: "image/svg+xml" })) }, 100)), m(c, { "data-holder-rendered": !0 }) } function g(a) { function b(a, b, c, d) { b.width = c, b.height = d, a.width = Math.max(a.width, b.width), a.height += b.height, a.add(b) } switch (a.font = { family: a.theme.font ? a.theme.font : "Arial, Helvetica, Open Sans, sans-serif", size: h(a.width, a.height, a.theme.size ? a.theme.size : 12), weight: a.theme.fontweight ? a.theme.fontweight : "bold" }, a.text = a.theme.text ? a.theme.text : Math.floor(a.width) + "x" + Math.floor(a.height), a.flags.textmode) { case "literal": a.text = a.flags.dimensions.width + "x" + a.flags.dimensions.height; break; case "exact": if (!a.flags.exactDimensions) break; a.text = Math.floor(a.flags.exactDimensions.width) + "x" + Math.floor(a.flags.exactDimensions.height) } var c = new E({ width: a.width, height: a.height }), d = c.Shape, e = new d.Rect("holderBg", { fill: a.theme.background }); e.resize(a.width, a.height), c.root.add(e); var f = new d.Group("holderTextGroup", { text: a.text, align: "center", font: a.font, fill: a.theme.foreground }); f.moveTo(null, null, 1), c.root.add(f); var g = f.textPositionData = B(c); if (!g) throw "Holder: staging fallback not supported yet."; f.properties.leading = g.boundingBox.height; var i = null, j = null; if (g.lineCount > 1) { var k = 0, l = 0, m = a.width * A.setup.lineWrapRatio, n = 0; j = new d.Group("line" + n); for (var o = 0; o < g.words.length; o++) { var p = g.words[o]; i = new d.Text(p.text); var q = "\\n" == p.text; (k + p.width >= m || q === !0) && (b(f, j, k, f.properties.leading), k = 0, l += f.properties.leading, n += 1, j = new d.Group("line" + n), j.y = l), q !== !0 && (i.moveTo(k, 0), k += g.spaceWidth + p.width, j.add(i)) } b(f, j, k, f.properties.leading); for (var r in f.children) j = f.children[r], j.moveTo((f.width - j.width) / 2, null, null); f.moveTo((a.width - f.width) / 2, (a.height - f.height) / 2, null), (a.height - f.height) / 2 < 0 && f.moveTo(null, 0, null) } else i = new d.Text(a.text), j = new d.Group("line0"), j.add(i), f.add(j), f.moveTo((a.width - g.boundingBox.width) / 2, (a.height - g.boundingBox.height) / 2, null); return c } function h(a, b, c) { b = parseInt(b, 10), a = parseInt(a, 10); var d = Math.max(b, a), e = Math.min(b, a), f = 1 / 12, g = Math.min(.75 * e, .75 * d * f); return Math.round(Math.max(c, g)) } function i(a) { var b; b = null == a || null == a.nodeType ? A.vars.resizableImages : [a]; for (var c in b) if (b.hasOwnProperty(c)) { var d = b[c]; if (d.holderData) { var e = d.holderData.flags, g = j(d, z.invisibleErrorFn(i)); if (g) { if (e.fluid && e.auto) { var h = d.holderData.fluidConfig; switch (h.mode) { case "width": g.height = g.width / h.ratio; break; case "height": g.width = g.height * h.ratio } } var k = { dimensions: g, theme: e.theme, flags: e }; e.textmode && "exact" == e.textmode && (e.exactDimensions = g, k.dimensions = e.dimensions), f("image", k, d, d.holderData.renderSettings) } } } } function j(a, b) { var c = { height: a.clientHeight, width: a.clientWidth }; return c.height || c.width ? (a.removeAttribute("data-holder-invisible"), c) : (m(a, { "data-holder-invisible": !0 }), void b.call(this, a)) } function k(a) { if (a.holderData) { var b = j(a, z.invisibleErrorFn(k)); if (b) { var c = a.holderData.flags, d = { fluidHeight: "%" == c.dimensions.height.slice(-1), fluidWidth: "%" == c.dimensions.width.slice(-1), mode: null, initialDimensions: b }; d.fluidWidth && !d.fluidHeight ? (d.mode = "width", d.ratio = d.initialDimensions.width / parseFloat(c.dimensions.height)) : !d.fluidWidth && d.fluidHeight && (d.mode = "height", d.ratio = parseFloat(c.dimensions.width) / d.initialDimensions.height), a.holderData.fluidConfig = d } } } function l(a, b) { return null == b ? y.createElement(a) : y.createElementNS(b, a) } function m(a, b) { for (var c in b) a.setAttribute(c, b[c]) } function n(a, b, c) { if (null == a) { a = l("svg", x); var d = l("defs", x); a.appendChild(d) } return a.webkitMatchesSelector && a.setAttribute("xmlns", x), m(a, { width: b, height: c, viewBox: "0 0 " + b + " " + c, preserveAspectRatio: "none" }), a } function o(a, c) { if (b.XMLSerializer) { var d = new XMLSerializer, e = "", f = c.stylesheets; if (a.querySelector("defs"), c.svgXMLStylesheet) { for (var g = (new DOMParser).parseFromString("<xml />", "application/xml"), h = f.length - 1; h >= 0; h--) { var i = g.createProcessingInstruction("xml-stylesheet", 'href="' + f[h] + '" rel="stylesheet"'); g.insertBefore(i, g.firstChild) } var j = g.createProcessingInstruction("xml", 'version="1.0" encoding="UTF-8" standalone="yes"'); g.insertBefore(j, g.firstChild), g.removeChild(g.documentElement), e = d.serializeToString(g) } var k = d.serializeToString(a); return k = k.replace(/\&amp;(\#[0-9]{2,}\;)/g, "&$1"), e + k } } function p(a, b) { var c = {}; for (var d in a) a.hasOwnProperty(d) && (c[d] = a[d]); if (null != b) for (var e in b) b.hasOwnProperty(e) && (c[e] = b[e]); return c } function q(a) { var b = []; for (var c in a) a.hasOwnProperty(c) && b.push(c + ":" + a[c]); return b.join(";") } function r(a) { A.vars.debounceTimer || a.call(this), A.vars.debounceTimer && clearTimeout(A.vars.debounceTimer), A.vars.debounceTimer = setTimeout(function () { A.vars.debounceTimer = null, a.call(this) }, A.setup.debounce) } function s() { r(function () { i(null) }) } function t(a) { var c = null; return "string" == typeof a ? c = y.querySelectorAll(a) : b.NodeList && a instanceof b.NodeList ? c = a : b.Node && a instanceof b.Node ? c = [a] : b.HTMLCollection && a instanceof b.HTMLCollection ? c = a : null === a && (c = []), c } function u(a, b) { var c = new Image; c.onerror = function () { b.call(this, !1, a) }, c.onload = function () { b.call(this, !0, a) }, c.src = a.src } function v(a) { for (var b = [], c = 0, d = a.length - 1; d >= 0; d--) c = a[d].charCodeAt(), b.unshift(c > 128 ? ["&#", c, ";"].join("") : a[d]); return b.join("") } function w(a) { return a.replace(/&#(\d+);/g, function (a, b) { return String.fromCharCode(b) }) } var x = "http://www.w3.org/2000/svg", y = b.document, z = { addTheme: function (a, b) { return null != a && null != b && (A.settings.themes[a] = b), delete A.vars.cache.themeKeys, this }, addImage: function (a, b) { var c = y.querySelectorAll(b); if (c.length) for (var d = 0, e = c.length; e > d; d++) { var f = l("img"); m(f, { "data-src": a }), c[d].appendChild(f) } return this }, run: function (a) { a = a || {}; var f = {}; A.vars.preempted = !0; var g = p(A.settings, a); f.renderer = g.renderer ? g.renderer : A.setup.renderer, -1 === A.setup.renderers.join(",").indexOf(f.renderer) && (f.renderer = A.setup.supportsSVG ? "svg" : A.setup.supportsCanvas ? "canvas" : "html"), g.use_canvas ? f.renderer = "canvas" : g.use_svg && (f.renderer = "svg"); var h = t(g.images), i = t(g.bgnodes), j = t(g.stylenodes), k = t(g.objects); f.stylesheets = [], f.svgXMLStylesheet = !0, f.noFontFallback = g.noFontFallback ? g.noFontFallback : !1; for (var m = 0; m < j.length; m++) { var n = j[m]; if (n.attributes.rel && n.attributes.href && "stylesheet" == n.attributes.rel.value) { var o = n.attributes.href.value, q = l("a"); q.href = o; var r = q.protocol + "//" + q.host + q.pathname + q.search; f.stylesheets.push(r) } } for (m = 0; m < i.length; m++) { var s = b.getComputedStyle(i[m], null).getPropertyValue("background-image"), v = i[m].getAttribute("data-background-src"), w = null; w = null == v ? s : v; var x = null, y = "?" + g.domain + "/"; if (0 === w.indexOf(y)) x = w.slice(1); else if (-1 != w.indexOf(y)) { var z = w.substr(w.indexOf(y)).slice(1), B = z.match(/([^\"]*)"?\)/); null != B && (x = B[1]) } if (null != x) { var C = d(x, g); C && e("background", i[m], C, f) } } for (m = 0; m < k.length; m++) { var D = k[m], E = {}; try { E.data = D.getAttribute("data"), E.dataSrc = D.getAttribute("data-src") } catch (F) { } var G = null != E.data && 0 === E.data.indexOf(g.domain), H = null != E.dataSrc && 0 === E.dataSrc.indexOf(g.domain); G ? c(g, f, E.data, D) : H && c(g, f, E.dataSrc, D) } for (m = 0; m < h.length; m++) { var I = h[m], J = {}; try { J.src = I.getAttribute("src"), J.dataSrc = I.getAttribute("data-src"), J.rendered = I.getAttribute("data-holder-rendered") } catch (F) { } var K = null != J.src, L = null != J.dataSrc && 0 === J.dataSrc.indexOf(g.domain), M = null != J.rendered && "true" == J.rendered; K ? 0 === J.src.indexOf(g.domain) ? c(g, f, J.src, I) : L && (M ? c(g, f, J.dataSrc, I) : u({ src: J.src, options: g, renderSettings: f, dataSrc: J.dataSrc, image: I }, function (a, b) { a || c(b.options, b.renderSettings, b.dataSrc, b.image) })) : L && c(g, f, J.dataSrc, I) } return this }, invisibleErrorFn: function () { return function (a) { if (a.hasAttribute("data-holder-invisible")) throw "Holder: invisible placeholder" } } }; z.add_theme = z.addTheme, z.add_image = z.addImage, z.invisible_error_fn = z.invisibleErrorFn; var A = { settings: { domain: "holder.js", images: "img", objects: "object", bgnodes: "body .holderjs", stylenodes: "head link.holderjs", stylesheets: [], themes: { gray: { background: "#EEEEEE", foreground: "#AAAAAA" }, social: { background: "#3a5a97", foreground: "#FFFFFF" }, industrial: { background: "#434A52", foreground: "#C2F200" }, sky: { background: "#0D8FDB", foreground: "#FFFFFF" }, vine: { background: "#39DBAC", foreground: "#1E292C" }, lava: { background: "#F8591A", foreground: "#1C2846", size: 12 } } }, flags: { dimensions: { regex: /^(\d+)x(\d+)$/, output: function (a) { var b = this.regex.exec(a); return { width: +b[1], height: +b[2] } } }, fluid: { regex: /^([0-9]+%?)x([0-9]+%?)$/, output: function (a) { var b = this.regex.exec(a); return { width: b[1], height: b[2] } } }, colors: { regex: /(?:#|\^)([0-9a-f]{3,})\:(?:#|\^)([0-9a-f]{3,})/i, output: function (a) { var b = this.regex.exec(a); return { foreground: "#" + b[2], background: "#" + b[1] } } }, text: { regex: /text\:(.*)/, output: function (a) { return this.regex.exec(a)[1].replace("\\/", "/") } }, font: { regex: /font\:(.*)/, output: function (a) { return this.regex.exec(a)[1] } }, auto: { regex: /^auto$/ }, textmode: { regex: /textmode\:(.*)/, output: function (a) { return this.regex.exec(a)[1] } }, random: { regex: /^random$/ } } }, B = function () { var a = null, b = null, c = null; return function (d) { var e = d.root; if (A.setup.supportsSVG) { var f = !1, g = function (a) { return y.createTextNode(a) }; null == a && (f = !0), a = n(a, e.properties.width, e.properties.height), f && (b = l("text", x), c = g(null), m(b, { x: 0 }), b.appendChild(c), a.appendChild(b), y.body.appendChild(a), a.style.visibility = "hidden", a.style.position = "absolute", a.style.top = "-100%", a.style.left = "-100%"); var h = e.children.holderTextGroup, i = h.properties; m(b, { y: i.font.size, style: q({ "font-weight": i.font.weight, "font-size": i.font.size + "px", "font-family": i.font.family, "dominant-baseline": "middle" }) }), c.nodeValue = i.text; var j = b.getBBox(), k = Math.ceil(j.width / (e.properties.width * A.setup.lineWrapRatio)), o = i.text.split(" "), p = i.text.match(/\\n/g); k += null == p ? 0 : p.length, c.nodeValue = i.text.replace(/[ ]+/g, ""); var r = b.getComputedTextLength(), s = j.width - r, t = Math.round(s / Math.max(1, o.length - 1)), u = []; if (k > 1) { c.nodeValue = ""; for (var v = 0; v < o.length; v++) if (0 !== o[v].length) { c.nodeValue = w(o[v]); var z = b.getBBox(); u.push({ text: o[v], width: z.width }) } } return { spaceWidth: t, lineCount: k, boundingBox: j, words: u } } return !1 } }(), C = function () { var a = l("canvas"), b = null; return function (c) { null == b && (b = a.getContext("2d")); var d = c.root; a.width = A.dpr(d.properties.width), a.height = A.dpr(d.properties.height), b.textBaseline = "middle", b.fillStyle = d.children.holderBg.properties.fill, b.fillRect(0, 0, A.dpr(d.children.holderBg.width), A.dpr(d.children.holderBg.height)); var e = d.children.holderTextGroup; e.properties, b.font = e.properties.font.weight + " " + A.dpr(e.properties.font.size) + "px " + e.properties.font.family + ", monospace", b.fillStyle = e.properties.fill; for (var f in e.children) { var g = e.children[f]; for (var h in g.children) { var i = g.children[h], j = A.dpr(e.x + g.x + i.x), k = A.dpr(e.y + g.y + i.y + e.properties.leading / 2); b.fillText(i.properties.text, j, k) } } return a.toDataURL("image/png") } }(), D = function () { if (b.XMLSerializer) { var a = n(null, 0, 0), c = l("rect", x); return a.appendChild(c), function (b, d) { var e = b.root; n(a, e.properties.width, e.properties.height); for (var f = a.querySelectorAll("g"), g = 0; g < f.length; g++) f[g].parentNode.removeChild(f[g]); m(c, { width: e.children.holderBg.width, height: e.children.holderBg.height, fill: e.children.holderBg.properties.fill }); var h = e.children.holderTextGroup, i = h.properties, j = l("g", x); a.appendChild(j); for (var k in h.children) { var p = h.children[k]; for (var r in p.children) { var s = p.children[r], t = h.x + p.x + s.x, u = h.y + p.y + s.y + h.properties.leading / 2, v = l("text", x), w = y.createTextNode(null); m(v, { x: t, y: u, style: q({ fill: i.fill, "font-weight": i.font.weight, "font-family": i.font.family + ", monospace", "font-size": i.font.size + "px", "dominant-baseline": "central" }) }), w.nodeValue = s.properties.text, v.appendChild(w), j.appendChild(v) } } var z = "data:image/svg+xml;base64," + btoa(unescape(encodeURIComponent(o(a, d)))); return z } } }(), E = function (a) { function b(a, b) { for (var c in b) a[c] = b[c]; return a } var c = 1, d = augment.defclass({ constructor: function (a) { c++, this.parent = null, this.children = {}, this.id = c, this.name = "n" + c, null != a && (this.name = a), this.x = 0, this.y = 0, this.z = 0, this.width = 0, this.height = 0 }, resize: function (a, b) { null != a && (this.width = a), null != b && (this.height = b) }, moveTo: function (a, b, c) { this.x = null != a ? a : this.x, this.y = null != b ? b : this.y, this.z = null != c ? c : this.z }, add: function (a) { var b = a.name; if (null != this.children[b]) throw "SceneGraph: child with that name already exists: " + b; this.children[b] = a, a.parent = this } }), e = augment(d, function (b) { this.constructor = function () { b.constructor.call(this, "root"), this.properties = a } }), f = augment(d, function (a) { function c(c, d) { if (a.constructor.call(this, c), this.properties = { fill: "#000" }, null != d) b(this.properties, d); else if (null != c && "string" != typeof c) throw "SceneGraph: invalid node name" } this.Group = augment.extend(this, { constructor: c, type: "group" }), this.Rect = augment.extend(this, { constructor: c, type: "rect" }), this.Text = augment.extend(this, { constructor: function (a) { c.call(this), this.properties.text = a }, type: "text" }) }), g = new e; return this.Shape = f, this.root = g, this }; for (var F in A.flags) A.flags.hasOwnProperty(F) && (A.flags[F].match = function (a) { return a.match(this.regex) }); A.setup = { renderer: "html", debounce: 100, ratio: 1, supportsCanvas: !1, supportsSVG: !1, lineWrapRatio: .9, renderers: ["html", "canvas", "svg"] }, A.dpr = function (a) { return a * A.setup.ratio }, A.vars = { preempted: !1, resizableImages: [], debounceTimer: null, cache: {} }, function () { var a = 1, c = 1, d = l("canvas"), e = null; d.getContext && -1 != d.toDataURL("image/png").indexOf("data:image/png") && (A.setup.renderer = "canvas", e = d.getContext("2d"), A.setup.supportsCanvas = !0), A.setup.supportsCanvas && (a = b.devicePixelRatio || 1, c = e.webkitBackingStorePixelRatio || e.mozBackingStorePixelRatio || e.msBackingStorePixelRatio || e.oBackingStorePixelRatio || e.backingStorePixelRatio || 1), A.setup.ratio = a / c, y.createElementNS && y.createElementNS(x, "svg").createSVGRect && (A.setup.renderer = "svg", A.setup.supportsSVG = !0) }(), a(z, "Holder", b), b.onDomReady && b.onDomReady(function () { A.vars.preempted || z.run(), b.addEventListener ? (b.addEventListener("resize", s, !1), b.addEventListener("orientationchange", s, !1)) : b.attachEvent("onresize", s), "object" == typeof b.Turbolinks && b.document.addEventListener("page:change", function () { z.run() }) }) }(function (a, b, c) { var d = "function" == typeof define && define.amd; d ? define(a) : c[b] = a }, this),/*!
 * typeahead.js 0.10.5
 * https://github.com/twitter/typeahead.js
 * Copyright 2013-2014 Twitter, Inc. and other contributors; Licensed MIT
 */
function (a) { var b = function () { "use strict"; return { isMsie: function () { return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : !1 }, isBlankString: function (a) { return !a || /^\s*$/.test(a) }, escapeRegExChars: function (a) { return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&") }, isString: function (a) { return "string" == typeof a }, isNumber: function (a) { return "number" == typeof a }, isArray: a.isArray, isFunction: a.isFunction, isObject: a.isPlainObject, isUndefined: function (a) { return "undefined" == typeof a }, toStr: function (a) { return b.isUndefined(a) || null === a ? "" : a + "" }, bind: a.proxy, each: function (b, c) { function d(a, b) { return c(b, a) } a.each(b, d) }, map: a.map, filter: a.grep, every: function (b, c) { var d = !0; return b ? (a.each(b, function (a, e) { return (d = c.call(null, e, a, b)) ? void 0 : !1 }), !!d) : d }, some: function (b, c) { var d = !1; return b ? (a.each(b, function (a, e) { return (d = c.call(null, e, a, b)) ? !1 : void 0 }), !!d) : d }, mixin: a.extend, getUniqueId: function () { var a = 0; return function () { return a++ } }(), templatify: function (b) { function c() { return String(b) } return a.isFunction(b) ? b : c }, defer: function (a) { setTimeout(a, 0) }, debounce: function (a, b, c) { var d, e; return function () { var f, g, h = this, i = arguments; return f = function () { d = null, c || (e = a.apply(h, i)) }, g = c && !d, clearTimeout(d), d = setTimeout(f, b), g && (e = a.apply(h, i)), e } }, throttle: function (a, b) { var c, d, e, f, g, h; return g = 0, h = function () { g = new Date, e = null, f = a.apply(c, d) }, function () { var i = new Date, j = b - (i - g); return c = this, d = arguments, 0 >= j ? (clearTimeout(e), e = null, g = i, f = a.apply(c, d)) : e || (e = setTimeout(h, j)), f } }, noop: function () { } } }(), c = "0.10.5", d = function () { "use strict"; function a(a) { return a = b.toStr(a), a ? a.split(/\s+/) : [] } function c(a) { return a = b.toStr(a), a ? a.split(/\W+/) : [] } function d(a) { return function () { var c = [].slice.call(arguments, 0); return function (d) { var e = []; return b.each(c, function (c) { e = e.concat(a(b.toStr(d[c]))) }), e } } } return { nonword: c, whitespace: a, obj: { nonword: d(c), whitespace: d(a) } } }(), e = function () { "use strict"; function c(c) { this.maxSize = b.isNumber(c) ? c : 100, this.reset(), this.maxSize <= 0 && (this.set = this.get = a.noop) } function d() { this.head = this.tail = null } function e(a, b) { this.key = a, this.val = b, this.prev = this.next = null } return b.mixin(c.prototype, { set: function (a, b) { var c, d = this.list.tail; this.size >= this.maxSize && (this.list.remove(d), delete this.hash[d.key]), (c = this.hash[a]) ? (c.val = b, this.list.moveToFront(c)) : (c = new e(a, b), this.list.add(c), this.hash[a] = c, this.size++) }, get: function (a) { var b = this.hash[a]; return b ? (this.list.moveToFront(b), b.val) : void 0 }, reset: function () { this.size = 0, this.hash = {}, this.list = new d } }), b.mixin(d.prototype, { add: function (a) { this.head && (a.next = this.head, this.head.prev = a), this.head = a, this.tail = this.tail || a }, remove: function (a) { a.prev ? a.prev.next = a.next : this.head = a.next, a.next ? a.next.prev = a.prev : this.tail = a.prev }, moveToFront: function (a) { this.remove(a), this.add(a) } }), c }(), f = function () { "use strict"; function a(a) { this.prefix = ["__", a, "__"].join(""), this.ttlKey = "__ttl__", this.keyMatcher = new RegExp("^" + b.escapeRegExChars(this.prefix)) } function c() { return (new Date).getTime() } function d(a) { return JSON.stringify(b.isUndefined(a) ? null : a) } function e(a) { return JSON.parse(a) } var f, g; try { f = window.localStorage, f.setItem("~~~", "!"), f.removeItem("~~~") } catch (h) { f = null } return g = f && window.JSON ? { _prefix: function (a) { return this.prefix + a }, _ttlKey: function (a) { return this._prefix(a) + this.ttlKey }, get: function (a) { return this.isExpired(a) && this.remove(a), e(f.getItem(this._prefix(a))) }, set: function (a, e, g) { return b.isNumber(g) ? f.setItem(this._ttlKey(a), d(c() + g)) : f.removeItem(this._ttlKey(a)), f.setItem(this._prefix(a), d(e)) }, remove: function (a) { return f.removeItem(this._ttlKey(a)), f.removeItem(this._prefix(a)), this }, clear: function () { var a, b, c = [], d = f.length; for (a = 0; d > a; a++) (b = f.key(a)).match(this.keyMatcher) && c.push(b.replace(this.keyMatcher, "")); for (a = c.length; a--;) this.remove(c[a]); return this }, isExpired: function (a) { var d = e(f.getItem(this._ttlKey(a))); return b.isNumber(d) && c() > d ? !0 : !1 } } : { get: b.noop, set: b.noop, remove: b.noop, clear: b.noop, isExpired: b.noop }, b.mixin(a.prototype, g), a }(), g = function () { "use strict"; function c(b) { b = b || {}, this.cancelled = !1, this.lastUrl = null, this._send = b.transport ? d(b.transport) : a.ajax, this._get = b.rateLimiter ? b.rateLimiter(this._get) : this._get, this._cache = b.cache === !1 ? new e(0) : i } function d(c) { return function (d, e) { function f(a) { b.defer(function () { h.resolve(a) }) } function g(a) { b.defer(function () { h.reject(a) }) } var h = a.Deferred(); return c(d, e, f, g), h } } var f = 0, g = {}, h = 6, i = new e(10); return c.setMaxPendingRequests = function (a) { h = a }, c.resetCache = function () { i.reset() }, b.mixin(c.prototype, { _get: function (a, b, c) { function d(b) { c && c(null, b), k._cache.set(a, b) } function e() { c && c(!0) } function i() { f--, delete g[a], k.onDeckRequestArgs && (k._get.apply(k, k.onDeckRequestArgs), k.onDeckRequestArgs = null) } var j, k = this; this.cancelled || a !== this.lastUrl || ((j = g[a]) ? j.done(d).fail(e) : h > f ? (f++, g[a] = this._send(a, b).done(d).fail(e).always(i)) : this.onDeckRequestArgs = [].slice.call(arguments, 0)) }, get: function (a, c, d) { var e; return b.isFunction(c) && (d = c, c = {}), this.cancelled = !1, this.lastUrl = a, (e = this._cache.get(a)) ? b.defer(function () { d && d(null, e) }) : this._get(a, c, d), !!e }, cancel: function () { this.cancelled = !0 } }), c }(), h = function () { "use strict"; function c(b) { b = b || {}, b.datumTokenizer && b.queryTokenizer || a.error("datumTokenizer and queryTokenizer are both required"), this.datumTokenizer = b.datumTokenizer, this.queryTokenizer = b.queryTokenizer, this.reset() } function d(a) { return a = b.filter(a, function (a) { return !!a }), a = b.map(a, function (a) { return a.toLowerCase() }) } function e() { return { ids: [], children: {} } } function f(a) { for (var b = {}, c = [], d = 0, e = a.length; e > d; d++) b[a[d]] || (b[a[d]] = !0, c.push(a[d])); return c } function g(a, b) { function c(a, b) { return a - b } var d = 0, e = 0, f = []; a = a.sort(c), b = b.sort(c); for (var g = a.length, h = b.length; g > d && h > e;) a[d] < b[e] ? d++ : a[d] > b[e] ? e++ : (f.push(a[d]), d++, e++); return f } return b.mixin(c.prototype, { bootstrap: function (a) { this.datums = a.datums, this.trie = a.trie }, add: function (a) { var c = this; a = b.isArray(a) ? a : [a], b.each(a, function (a) { var f, g; f = c.datums.push(a) - 1, g = d(c.datumTokenizer(a)), b.each(g, function (a) { var b, d, g; for (b = c.trie, d = a.split("") ; g = d.shift() ;) b = b.children[g] || (b.children[g] = e()), b.ids.push(f) }) }) }, get: function (a) { var c, e, h = this; return c = d(this.queryTokenizer(a)), b.each(c, function (a) { var b, c, d, f; if (e && 0 === e.length) return !1; for (b = h.trie, c = a.split("") ; b && (d = c.shift()) ;) b = b.children[d]; return b && 0 === c.length ? (f = b.ids.slice(0), void (e = e ? g(e, f) : f)) : (e = [], !1) }), e ? b.map(f(e), function (a) { return h.datums[a] }) : [] }, reset: function () { this.datums = [], this.trie = e() }, serialize: function () { return { datums: this.datums, trie: this.trie } } }), c }(), i = function () { "use strict"; function d(a) { return a.local || null } function e(d) { var e, f; return f = { url: null, thumbprint: "", ttl: 864e5, filter: null, ajax: {} }, (e = d.prefetch || null) && (e = b.isString(e) ? { url: e } : e, e = b.mixin(f, e), e.thumbprint = c + e.thumbprint, e.ajax.type = e.ajax.type || "GET", e.ajax.dataType = e.ajax.dataType || "json", !e.url && a.error("prefetch requires url to be set")), e } function f(c) { function d(a) { return function (c) { return b.debounce(c, a) } } function e(a) { return function (c) { return b.throttle(c, a) } } var f, g; return g = { url: null, cache: !0, wildcard: "%QUERY", replace: null, rateLimitBy: "debounce", rateLimitWait: 300, send: null, filter: null, ajax: {} }, (f = c.remote || null) && (f = b.isString(f) ? { url: f } : f, f = b.mixin(g, f), f.rateLimiter = /^throttle$/i.test(f.rateLimitBy) ? e(f.rateLimitWait) : d(f.rateLimitWait), f.ajax.type = f.ajax.type || "GET", f.ajax.dataType = f.ajax.dataType || "json", delete f.rateLimitBy, delete f.rateLimitWait, !f.url && a.error("remote requires url to be set")), f } return { local: d, prefetch: e, remote: f } }(); !function (c) { "use strict"; function e(b) { b && (b.local || b.prefetch || b.remote) || a.error("one of local, prefetch, or remote is required"), this.limit = b.limit || 5, this.sorter = j(b.sorter), this.dupDetector = b.dupDetector || k, this.local = i.local(b), this.prefetch = i.prefetch(b), this.remote = i.remote(b), this.cacheKey = this.prefetch ? this.prefetch.cacheKey || this.prefetch.url : null, this.index = new h({ datumTokenizer: b.datumTokenizer, queryTokenizer: b.queryTokenizer }), this.storage = this.cacheKey ? new f(this.cacheKey) : null } function j(a) { function c(b) { return b.sort(a) } function d(a) { return a } return b.isFunction(a) ? c : d } function k() { return !1 } var l, m; return l = c.Bloodhound, m = { data: "data", protocol: "protocol", thumbprint: "thumbprint" }, c.Bloodhound = e, e.noConflict = function () { return c.Bloodhound = l, e }, e.tokenizers = d, b.mixin(e.prototype, { _loadPrefetch: function (b) { function c(a) { f.clear(), f.add(b.filter ? b.filter(a) : a), f._saveToStorage(f.index.serialize(), b.thumbprint, b.ttl) } var d, e, f = this; return (d = this._readFromStorage(b.thumbprint)) ? (this.index.bootstrap(d), e = a.Deferred().resolve()) : e = a.ajax(b.url, b.ajax).done(c), e }, _getFromRemote: function (a, b) { function c(a, c) { b(a ? [] : f.remote.filter ? f.remote.filter(c) : c) } var d, e, f = this; if (this.transport) return a = a || "", e = encodeURIComponent(a), d = this.remote.replace ? this.remote.replace(this.remote.url, a) : this.remote.url.replace(this.remote.wildcard, e), this.transport.get(d, this.remote.ajax, c) }, _cancelLastRemoteRequest: function () { this.transport && this.transport.cancel() }, _saveToStorage: function (a, b, c) { this.storage && (this.storage.set(m.data, a, c), this.storage.set(m.protocol, location.protocol, c), this.storage.set(m.thumbprint, b, c)) }, _readFromStorage: function (a) { var b, c = {}; return this.storage && (c.data = this.storage.get(m.data), c.protocol = this.storage.get(m.protocol), c.thumbprint = this.storage.get(m.thumbprint)), b = c.thumbprint !== a || c.protocol !== location.protocol, c.data && !b ? c.data : null }, _initialize: function () { function c() { e.add(b.isFunction(f) ? f() : f) } var d, e = this, f = this.local; return d = this.prefetch ? this._loadPrefetch(this.prefetch) : a.Deferred().resolve(), f && d.done(c), this.transport = this.remote ? new g(this.remote) : null, this.initPromise = d.promise() }, initialize: function (a) { return !this.initPromise || a ? this._initialize() : this.initPromise }, add: function (a) { this.index.add(a) }, get: function (a, c) { function d(a) { var d = f.slice(0); b.each(a, function (a) { var c; return c = b.some(d, function (b) { return e.dupDetector(a, b) }), !c && d.push(a), d.length < e.limit }), c && c(e.sorter(d)) } var e = this, f = [], g = !1; f = this.index.get(a), f = this.sorter(f).slice(0, this.limit), f.length < this.limit ? g = this._getFromRemote(a, d) : this._cancelLastRemoteRequest(), g || (f.length > 0 || !this.transport) && c && c(f) }, clear: function () { this.index.reset() }, clearPrefetchCache: function () { this.storage && this.storage.clear() }, clearRemoteCache: function () { this.transport && g.resetCache() }, ttAdapter: function () { return b.bind(this.get, this) } }), e }(this); var j = function () { return { wrapper: '<span class="twitter-typeahead"></span>', dropdown: '<span class="tt-dropdown-menu"></span>', dataset: '<div class="tt-dataset-%CLASS%"></div>', suggestions: '<span class="tt-suggestions"></span>', suggestion: '<div class="tt-suggestion"></div>' } }(), k = function () { "use strict"; var a = { wrapper: { position: "relative", display: "inline-block" }, hint: { position: "absolute", top: "0", left: "0", borderColor: "transparent", boxShadow: "none", opacity: "1" }, input: { position: "relative", verticalAlign: "top", backgroundColor: "transparent" }, inputWithNoHint: { position: "relative", verticalAlign: "top" }, dropdown: { position: "absolute", top: "100%", left: "0", zIndex: "100", display: "none" }, suggestions: { display: "block" }, suggestion: { whiteSpace: "nowrap", cursor: "pointer" }, suggestionChild: { whiteSpace: "normal" }, ltr: { left: "0", right: "auto" }, rtl: { left: "auto", right: " 0" } }; return b.isMsie() && b.mixin(a.input, { backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" }), b.isMsie() && b.isMsie() <= 7 && b.mixin(a.input, { marginTop: "-1px" }), a }(), l = function () { "use strict"; function c(b) { b && b.el || a.error("EventBus initialized without el"), this.$el = a(b.el) } var d = "typeahead:"; return b.mixin(c.prototype, { trigger: function (a) { var b = [].slice.call(arguments, 1); this.$el.trigger(d + a, b) } }), c }(), m = function () { "use strict"; function a(a, b, c, d) { var e; if (!c) return this; for (b = b.split(i), c = d ? h(c, d) : c, this._callbacks = this._callbacks || {}; e = b.shift() ;) this._callbacks[e] = this._callbacks[e] || { sync: [], async: [] }, this._callbacks[e][a].push(c); return this } function b(b, c, d) { return a.call(this, "async", b, c, d) } function c(b, c, d) { return a.call(this, "sync", b, c, d) } function d(a) { var b; if (!this._callbacks) return this; for (a = a.split(i) ; b = a.shift() ;) delete this._callbacks[b]; return this } function e(a) { var b, c, d, e, g; if (!this._callbacks) return this; for (a = a.split(i), d = [].slice.call(arguments, 1) ; (b = a.shift()) && (c = this._callbacks[b]) ;) e = f(c.sync, this, [b].concat(d)), g = f(c.async, this, [b].concat(d)), e() && j(g); return this } function f(a, b, c) { function d() { for (var d, e = 0, f = a.length; !d && f > e; e += 1) d = a[e].apply(b, c) === !1; return !d } return d } function g() { var a; return a = window.setImmediate ? function (a) { setImmediate(function () { a() }) } : function (a) { setTimeout(function () { a() }, 0) } } function h(a, b) { return a.bind ? a.bind(b) : function () { a.apply(b, [].slice.call(arguments, 0)) } } var i = /\s+/, j = g(); return { onSync: c, onAsync: b, off: d, trigger: e } }(), n = function (a) { "use strict"; function c(a, c, d) { for (var e, f = [], g = 0, h = a.length; h > g; g++) f.push(b.escapeRegExChars(a[g])); return e = d ? "\\b(" + f.join("|") + ")\\b" : "(" + f.join("|") + ")", c ? new RegExp(e) : new RegExp(e, "i") } var d = { node: null, pattern: null, tagName: "strong", className: null, wordsOnly: !1, caseSensitive: !1 }; return function (e) { function f(b) { var c, d, f; return (c = h.exec(b.data)) && (f = a.createElement(e.tagName), e.className && (f.className = e.className), d = b.splitText(c.index), d.splitText(c[0].length), f.appendChild(d.cloneNode(!0)), b.parentNode.replaceChild(f, d)), !!c } function g(a, b) { for (var c, d = 3, e = 0; e < a.childNodes.length; e++) c = a.childNodes[e], c.nodeType === d ? e += b(c) ? 1 : 0 : g(c, b) } var h; e = b.mixin({}, d, e), e.node && e.pattern && (e.pattern = b.isArray(e.pattern) ? e.pattern : [e.pattern], h = c(e.pattern, e.caseSensitive, e.wordsOnly), g(e.node, f)) } }(window.document), o = function () { "use strict"; function c(c) { var e, f, h, i, j = this; c = c || {}, c.input || a.error("input is missing"), e = b.bind(this._onBlur, this), f = b.bind(this._onFocus, this), h = b.bind(this._onKeydown, this), i = b.bind(this._onInput, this), this.$hint = a(c.hint), this.$input = a(c.input).on("blur.tt", e).on("focus.tt", f).on("keydown.tt", h), 0 === this.$hint.length && (this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = b.noop), b.isMsie() ? this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function (a) { g[a.which || a.keyCode] || b.defer(b.bind(j._onInput, j, a)) }) : this.$input.on("input.tt", i), this.query = this.$input.val(), this.$overflowHelper = d(this.$input) } function d(b) { return a('<pre aria-hidden="true"></pre>').css({ position: "absolute", visibility: "hidden", whiteSpace: "pre", fontFamily: b.css("font-family"), fontSize: b.css("font-size"), fontStyle: b.css("font-style"), fontVariant: b.css("font-variant"), fontWeight: b.css("font-weight"), wordSpacing: b.css("word-spacing"), letterSpacing: b.css("letter-spacing"), textIndent: b.css("text-indent"), textRendering: b.css("text-rendering"), textTransform: b.css("text-transform") }).insertAfter(b) } function e(a, b) { return c.normalizeQuery(a) === c.normalizeQuery(b) } function f(a) { return a.altKey || a.ctrlKey || a.metaKey || a.shiftKey } var g; return g = { 9: "tab", 27: "esc", 37: "left", 39: "right", 13: "enter", 38: "up", 40: "down" }, c.normalizeQuery = function (a) { return (a || "").replace(/^\s*/g, "").replace(/\s{2,}/g, " ") }, b.mixin(c.prototype, m, { _onBlur: function () { this.resetInputValue(), this.trigger("blurred") }, _onFocus: function () { this.trigger("focused") }, _onKeydown: function (a) { var b = g[a.which || a.keyCode]; this._managePreventDefault(b, a), b && this._shouldTrigger(b, a) && this.trigger(b + "Keyed", a) }, _onInput: function () { this._checkInputValue() }, _managePreventDefault: function (a, b) { var c, d, e; switch (a) { case "tab": d = this.getHint(), e = this.getInputValue(), c = d && d !== e && !f(b); break; case "up": case "down": c = !f(b); break; default: c = !1 } c && b.preventDefault() }, _shouldTrigger: function (a, b) { var c; switch (a) { case "tab": c = !f(b); break; default: c = !0 } return c }, _checkInputValue: function () { var a, b, c; a = this.getInputValue(), b = e(a, this.query), c = b ? this.query.length !== a.length : !1, this.query = a, b ? c && this.trigger("whitespaceChanged", this.query) : this.trigger("queryChanged", this.query) }, focus: function () { this.$input.focus() }, blur: function () { this.$input.blur() }, getQuery: function () { return this.query }, setQuery: function (a) { this.query = a }, getInputValue: function () { return this.$input.val() }, setInputValue: function (a, b) { this.$input.val(a), b ? this.clearHint() : this._checkInputValue() }, resetInputValue: function () { this.setInputValue(this.query, !0) }, getHint: function () { return this.$hint.val() }, setHint: function (a) { this.$hint.val(a) }, clearHint: function () { this.setHint("") }, clearHintIfInvalid: function () { var a, b, c, d; a = this.getInputValue(), b = this.getHint(), c = a !== b && 0 === b.indexOf(a), d = "" !== a && c && !this.hasOverflow(), !d && this.clearHint() }, getLanguageDirection: function () { return (this.$input.css("direction") || "ltr").toLowerCase() }, hasOverflow: function () { var a = this.$input.width() - 2; return this.$overflowHelper.text(this.getInputValue()), this.$overflowHelper.width() >= a }, isCursorAtEnd: function () { var a, c, d; return a = this.$input.val().length, c = this.$input[0].selectionStart, b.isNumber(c) ? c === a : document.selection ? (d = document.selection.createRange(), d.moveStart("character", -a), a === d.text.length) : !0 }, destroy: function () { this.$hint.off(".tt"), this.$input.off(".tt"), this.$hint = this.$input = this.$overflowHelper = null } }), c }(), p = function () { "use strict"; function c(c) { c = c || {}, c.templates = c.templates || {}, c.source || a.error("missing source"), c.name && !f(c.name) && a.error("invalid dataset name: " + c.name), this.query = null, this.highlight = !!c.highlight, this.name = c.name || b.getUniqueId(), this.source = c.source, this.displayFn = d(c.display || c.displayKey), this.templates = e(c.templates, this.displayFn), this.$el = a(j.dataset.replace("%CLASS%", this.name)) } function d(a) { function c(b) { return b[a] } return a = a || "value", b.isFunction(a) ? a : c } function e(a, c) { function d(a) { return "<p>" + c(a) + "</p>" } return { empty: a.empty && b.templatify(a.empty), header: a.header && b.templatify(a.header), footer: a.footer && b.templatify(a.footer), suggestion: a.suggestion || d } } function f(a) { return /^[_a-zA-Z0-9-]+$/.test(a) } var g = "ttDataset", h = "ttValue", i = "ttDatum"; return c.extractDatasetName = function (b) { return a(b).data(g) }, c.extractValue = function (b) { return a(b).data(h) }, c.extractDatum = function (b) { return a(b).data(i) }, b.mixin(c.prototype, m, { _render: function (c, d) { function e() { return p.templates.empty({ query: c, isEmpty: !0 }) } function f() { function e(b) { var c; return c = a(j.suggestion).append(p.templates.suggestion(b)).data(g, p.name).data(h, p.displayFn(b)).data(i, b), c.children().each(function () { a(this).css(k.suggestionChild) }), c } var f, l; return f = a(j.suggestions).css(k.suggestions), l = b.map(d, e), f.append.apply(f, l), p.highlight && n({ className: "tt-highlight", node: f[0], pattern: c }), f } function l() { return p.templates.header({ query: c, isEmpty: !o }) } function m() { return p.templates.footer({ query: c, isEmpty: !o }) } if (this.$el) { var o, p = this; this.$el.empty(), o = d && d.length, !o && this.templates.empty ? this.$el.html(e()).prepend(p.templates.header ? l() : null).append(p.templates.footer ? m() : null) : o && this.$el.html(f()).prepend(p.templates.header ? l() : null).append(p.templates.footer ? m() : null), this.trigger("rendered") } }, getRoot: function () { return this.$el }, update: function (a) { function b(b) { c.canceled || a !== c.query || c._render(a, b) } var c = this; this.query = a, this.canceled = !1, this.source(a, b) }, cancel: function () { this.canceled = !0 }, clear: function () { this.cancel(), this.$el.empty(), this.trigger("rendered") }, isEmpty: function () { return this.$el.is(":empty") }, destroy: function () { this.$el = null } }), c }(), q = function () { "use strict"; function c(c) { var e, f, g, h = this; c = c || {}, c.menu || a.error("menu is required"), this.isOpen = !1, this.isEmpty = !0, this.datasets = b.map(c.datasets, d), e = b.bind(this._onSuggestionClick, this), f = b.bind(this._onSuggestionMouseEnter, this), g = b.bind(this._onSuggestionMouseLeave, this), this.$menu = a(c.menu).on("click.tt", ".tt-suggestion", e).on("mouseenter.tt", ".tt-suggestion", f).on("mouseleave.tt", ".tt-suggestion", g), b.each(this.datasets, function (a) { h.$menu.append(a.getRoot()), a.onSync("rendered", h._onRendered, h) }) } function d(a) { return new p(a) } return b.mixin(c.prototype, m, { _onSuggestionClick: function (b) { this.trigger("suggestionClicked", a(b.currentTarget)) }, _onSuggestionMouseEnter: function (b) { this._removeCursor(), this._setCursor(a(b.currentTarget), !0) }, _onSuggestionMouseLeave: function () { this._removeCursor() }, _onRendered: function () { function a(a) { return a.isEmpty() } this.isEmpty = b.every(this.datasets, a), this.isEmpty ? this._hide() : this.isOpen && this._show(), this.trigger("datasetRendered") }, _hide: function () { this.$menu.hide() }, _show: function () { this.$menu.css("display", "block") }, _getSuggestions: function () { return this.$menu.find(".tt-suggestion") }, _getCursor: function () { return this.$menu.find(".tt-cursor").first() }, _setCursor: function (a, b) { a.first().addClass("tt-cursor"), !b && this.trigger("cursorMoved") }, _removeCursor: function () { this._getCursor().removeClass("tt-cursor") }, _moveCursor: function (a) { var b, c, d, e; if (this.isOpen) { if (c = this._getCursor(), b = this._getSuggestions(), this._removeCursor(), d = b.index(c) + a, d = (d + 1) % (b.length + 1) - 1, -1 === d) return void this.trigger("cursorRemoved"); -1 > d && (d = b.length - 1), this._setCursor(e = b.eq(d)), this._ensureVisible(e) } }, _ensureVisible: function (a) { var b, c, d, e; b = a.position().top, c = b + a.outerHeight(!0), d = this.$menu.scrollTop(), e = this.$menu.height() + parseInt(this.$menu.css("paddingTop"), 10) + parseInt(this.$menu.css("paddingBottom"), 10), 0 > b ? this.$menu.scrollTop(d + b) : c > e && this.$menu.scrollTop(d + (c - e)) }, close: function () { this.isOpen && (this.isOpen = !1, this._removeCursor(), this._hide(), this.trigger("closed")) }, open: function () { this.isOpen || (this.isOpen = !0, !this.isEmpty && this._show(), this.trigger("opened")) }, setLanguageDirection: function (a) { this.$menu.css("ltr" === a ? k.ltr : k.rtl) }, moveCursorUp: function () { this._moveCursor(-1) }, moveCursorDown: function () { this._moveCursor(1) }, getDatumForSuggestion: function (a) { var b = null; return a.length && (b = { raw: p.extractDatum(a), value: p.extractValue(a), datasetName: p.extractDatasetName(a) }), b }, getDatumForCursor: function () { return this.getDatumForSuggestion(this._getCursor().first()) }, getDatumForTopSuggestion: function () { return this.getDatumForSuggestion(this._getSuggestions().first()) }, update: function (a) { function c(b) { b.update(a) } b.each(this.datasets, c) }, empty: function () { function a(a) { a.clear() } b.each(this.datasets, a), this.isEmpty = !0 }, isVisible: function () { return this.isOpen && !this.isEmpty }, destroy: function () { function a(a) { a.destroy() } this.$menu.off(".tt"), this.$menu = null, b.each(this.datasets, a) } }), c }(), r = function () { "use strict"; function c(c) { var e, f, g; c = c || {}, c.input || a.error("missing input"), this.isActivated = !1, this.autoselect = !!c.autoselect, this.minLength = b.isNumber(c.minLength) ? c.minLength : 1, this.$node = d(c.input, c.withHint), e = this.$node.find(".tt-dropdown-menu"), f = this.$node.find(".tt-input"), g = this.$node.find(".tt-hint"), f.on("blur.tt", function (a) { var c, d, g; c = document.activeElement, d = e.is(c), g = e.has(c).length > 0, b.isMsie() && (d || g) && (a.preventDefault(), a.stopImmediatePropagation(), b.defer(function () { f.focus() })) }), e.on("mousedown.tt", function (a) { a.preventDefault() }), this.eventBus = c.eventBus || new l({ el: f }), this.dropdown = new q({ menu: e, datasets: c.datasets }).onSync("suggestionClicked", this._onSuggestionClicked, this).onSync("cursorMoved", this._onCursorMoved, this).onSync("cursorRemoved", this._onCursorRemoved, this).onSync("opened", this._onOpened, this).onSync("closed", this._onClosed, this).onAsync("datasetRendered", this._onDatasetRendered, this), this.input = new o({ input: f, hint: g }).onSync("focused", this._onFocused, this).onSync("blurred", this._onBlurred, this).onSync("enterKeyed", this._onEnterKeyed, this).onSync("tabKeyed", this._onTabKeyed, this).onSync("escKeyed", this._onEscKeyed, this).onSync("upKeyed", this._onUpKeyed, this).onSync("downKeyed", this._onDownKeyed, this).onSync("leftKeyed", this._onLeftKeyed, this).onSync("rightKeyed", this._onRightKeyed, this).onSync("queryChanged", this._onQueryChanged, this).onSync("whitespaceChanged", this._onWhitespaceChanged, this), this._setLanguageDirection() } function d(b, c) { var d, f, h, i; d = a(b), f = a(j.wrapper).css(k.wrapper), h = a(j.dropdown).css(k.dropdown), i = d.clone().css(k.hint).css(e(d)), i.val("").removeData().addClass("tt-hint").removeAttr("id name placeholder required").prop("readonly", !0).attr({ autocomplete: "off", spellcheck: "false", tabindex: -1 }), d.data(g, { dir: d.attr("dir"), autocomplete: d.attr("autocomplete"), spellcheck: d.attr("spellcheck"), style: d.attr("style") }), d.addClass("tt-input").attr({ autocomplete: "off", spellcheck: !1 }).css(c ? k.input : k.inputWithNoHint); try { !d.attr("dir") && d.attr("dir", "auto") } catch (l) { } return d.wrap(f).parent().prepend(c ? i : null).append(h) } function e(a) { return { backgroundAttachment: a.css("background-attachment"), backgroundClip: a.css("background-clip"), backgroundColor: a.css("background-color"), backgroundImage: a.css("background-image"), backgroundOrigin: a.css("background-origin"), backgroundPosition: a.css("background-position"), backgroundRepeat: a.css("background-repeat"), backgroundSize: a.css("background-size") } } function f(a) { var c = a.find(".tt-input"); b.each(c.data(g), function (a, d) { b.isUndefined(a) ? c.removeAttr(d) : c.attr(d, a) }), c.detach().removeData(g).removeClass("tt-input").insertAfter(a), a.remove() } var g = "ttAttrs"; return b.mixin(c.prototype, { _onSuggestionClicked: function (a, b) { var c; (c = this.dropdown.getDatumForSuggestion(b)) && this._select(c) }, _onCursorMoved: function () { var a = this.dropdown.getDatumForCursor(); this.input.setInputValue(a.value, !0), this.eventBus.trigger("cursorchanged", a.raw, a.datasetName) }, _onCursorRemoved: function () { this.input.resetInputValue(), this._updateHint() }, _onDatasetRendered: function () { this._updateHint() }, _onOpened: function () { this._updateHint(), this.eventBus.trigger("opened") }, _onClosed: function () { this.input.clearHint(), this.eventBus.trigger("closed") }, _onFocused: function () { this.isActivated = !0, this.dropdown.open() }, _onBlurred: function () { this.isActivated = !1, this.dropdown.empty(), this.dropdown.close() }, _onEnterKeyed: function (a, b) { var c, d; c = this.dropdown.getDatumForCursor(), d = this.dropdown.getDatumForTopSuggestion(), c ? (this._select(c), b.preventDefault()) : this.autoselect && d && (this._select(d), b.preventDefault()) }, _onTabKeyed: function (a, b) { var c; (c = this.dropdown.getDatumForCursor()) ? (this._select(c), b.preventDefault()) : this._autocomplete(!0) }, _onEscKeyed: function () { this.dropdown.close(), this.input.resetInputValue() }, _onUpKeyed: function () { var a = this.input.getQuery(); this.dropdown.isEmpty && a.length >= this.minLength ? this.dropdown.update(a) : this.dropdown.moveCursorUp(), this.dropdown.open() }, _onDownKeyed: function () { var a = this.input.getQuery(); this.dropdown.isEmpty && a.length >= this.minLength ? this.dropdown.update(a) : this.dropdown.moveCursorDown(), this.dropdown.open() }, _onLeftKeyed: function () { "rtl" === this.dir && this._autocomplete() }, _onRightKeyed: function () { "ltr" === this.dir && this._autocomplete() }, _onQueryChanged: function (a, b) { this.input.clearHintIfInvalid(), b.length >= this.minLength ? this.dropdown.update(b) : this.dropdown.empty(), this.dropdown.open(), this._setLanguageDirection() }, _onWhitespaceChanged: function () { this._updateHint(), this.dropdown.open() }, _setLanguageDirection: function () { var a; this.dir !== (a = this.input.getLanguageDirection()) && (this.dir = a, this.$node.css("direction", a), this.dropdown.setLanguageDirection(a)) }, _updateHint: function () { var a, c, d, e, f, g; a = this.dropdown.getDatumForTopSuggestion(), a && this.dropdown.isVisible() && !this.input.hasOverflow() ? (c = this.input.getInputValue(), d = o.normalizeQuery(c), e = b.escapeRegExChars(d), f = new RegExp("^(?:" + e + ")(.+$)", "i"), g = f.exec(a.value), g ? this.input.setHint(c + g[1]) : this.input.clearHint()) : this.input.clearHint() }, _autocomplete: function (a) { var b, c, d, e; b = this.input.getHint(), c = this.input.getQuery(), d = a || this.input.isCursorAtEnd(), b && c !== b && d && (e = this.dropdown.getDatumForTopSuggestion(), e && this.input.setInputValue(e.value), this.eventBus.trigger("autocompleted", e.raw, e.datasetName)) }, _select: function (a) { this.input.setQuery(a.value), this.input.setInputValue(a.value, !0), this._setLanguageDirection(), this.eventBus.trigger("selected", a.raw, a.datasetName), this.dropdown.close(), b.defer(b.bind(this.dropdown.empty, this.dropdown)) }, open: function () { this.dropdown.open() }, close: function () { this.dropdown.close() }, setVal: function (a) { a = b.toStr(a), this.isActivated ? this.input.setInputValue(a) : (this.input.setQuery(a), this.input.setInputValue(a, !0)), this._setLanguageDirection() }, getVal: function () { return this.input.getQuery() }, destroy: function () { this.input.destroy(), this.dropdown.destroy(), f(this.$node), this.$node = null } }), c }(); !function () { "use strict"; var c, d, e; c = a.fn.typeahead, d = "ttTypeahead", e = { initialize: function (c, e) { function f() { var f, g, h = a(this); b.each(e, function (a) { a.highlight = !!c.highlight }), g = new r({ input: h, eventBus: f = new l({ el: h }), withHint: b.isUndefined(c.hint) ? !0 : !!c.hint, minLength: c.minLength, autoselect: c.autoselect, datasets: e }), h.data(d, g) } return e = b.isArray(e) ? e : [].slice.call(arguments, 1), c = c || {}, this.each(f) }, open: function () { function b() { var b, c = a(this); (b = c.data(d)) && b.open() } return this.each(b) }, close: function () { function b() { var b, c = a(this); (b = c.data(d)) && b.close() } return this.each(b) }, val: function (b) { function c() { var c, e = a(this); (c = e.data(d)) && c.setVal(b) } function e(a) { var b, c; return (b = a.data(d)) && (c = b.getVal()), c } return arguments.length ? this.each(c) : e(this.first()) }, destroy: function () { function b() { var b, c = a(this); (b = c.data(d)) && (b.destroy(), c.removeData(d)) } return this.each(b) } }, a.fn.typeahead = function (b) { var c; return e[b] && "initialize" !== b ? (c = this.filter(function () { return !!a(this).data(d) }), e[b].apply(c, [].slice.call(arguments, 1))) : e.initialize.apply(this, arguments) }, a.fn.typeahead.noConflict = function () { return a.fn.typeahead = c, this } }() }(window.jQuery), function (a) { "undefined" == typeof a.fn.each2 && a.extend(a.fn, { each2: function (b) { for (var c = a([0]), d = -1, e = this.length; ++d < e && (c.context = c[0] = this[d]) && b.call(c[0], d, c) !== !1;); return this } }) }(jQuery), function (a, b) {
    "use strict"; function c(b) { var c = a(document.createTextNode("")); b.before(c), c.before(b), c.remove() } function d(a) { function b(a) { return O[a] || a } return a.replace(/[^\u0000-\u007E]/g, b) } function e(a, b) { for (var c = 0, d = b.length; d > c; c += 1) if (g(a, b[c])) return c; return -1 } function f() { var b = a(N); b.appendTo("body"); var c = { width: b.width() - b[0].clientWidth, height: b.height() - b[0].clientHeight }; return b.remove(), c } function g(a, c) { return a === c ? !0 : a === b || c === b ? !1 : null === a || null === c ? !1 : a.constructor === String ? a + "" == c + "" : c.constructor === String ? c + "" == a + "" : !1 } function h(b, c) { var d, e, f; if (null === b || b.length < 1) return []; for (d = b.split(c), e = 0, f = d.length; f > e; e += 1) d[e] = a.trim(d[e]); return d } function i(a) { return a.outerWidth(!1) - a.width() } function j(c) { var d = "keyup-change-value"; c.on("keydown", function () { a.data(c, d) === b && a.data(c, d, c.val()) }), c.on("keyup", function () { var e = a.data(c, d); e !== b && c.val() !== e && (a.removeData(c, d), c.trigger("keyup-change")) }) } function k(c) { c.on("mousemove", function (c) { var d = M; (d === b || d.x !== c.pageX || d.y !== c.pageY) && a(c.target).trigger("mousemove-filtered", c) }) } function l(a, c, d) { d = d || b; var e; return function () { var b = arguments; window.clearTimeout(e), e = window.setTimeout(function () { c.apply(d, b) }, a) } } function m(a, b) { var c = l(a, function (a) { b.trigger("scroll-debounced", a) }); b.on("scroll", function (a) { e(a.target, b.get()) >= 0 && c(a) }) } function n(a) { a[0] !== document.activeElement && window.setTimeout(function () { var b, c = a[0], d = a.val().length; a.focus(); var e = c.offsetWidth > 0 || c.offsetHeight > 0; e && c === document.activeElement && (c.setSelectionRange ? c.setSelectionRange(d, d) : c.createTextRange && (b = c.createTextRange(), b.collapse(!1), b.select())) }, 0) } function o(b) { b = a(b)[0]; var c = 0, d = 0; if ("selectionStart" in b) c = b.selectionStart, d = b.selectionEnd - c; else if ("selection" in document) { b.focus(); var e = document.selection.createRange(); d = document.selection.createRange().text.length, e.moveStart("character", -b.value.length), c = e.text.length - d } return { offset: c, length: d } } function p(a) { a.preventDefault(), a.stopPropagation() } function q(a) { a.preventDefault(), a.stopImmediatePropagation() } function r(b) {
        if (!J) {
            var c = b[0].currentStyle || window.getComputedStyle(b[0], null); J = a(document.createElement("div")).css({ position: "absolute", left: "-10000px", top: "-10000px", display: "none", fontSize: c.fontSize, fontFamily: c.fontFamily, fontStyle: c.fontStyle, fontWeight: c.fontWeight, letterSpacing: c.letterSpacing, textTransform: c.textTransform, whiteSpace: "nowrap" }), J.attr("class", "select2-sizer"), a("body").append(J)
        } return J.text(b.val()), J.width()
    } function s(b, c, d) { var e, f, g = []; e = a.trim(b.attr("class")), e && (e = "" + e, a(e.split(/\s+/)).each2(function () { 0 === this.indexOf("select2-") && g.push(this) })), e = a.trim(c.attr("class")), e && (e = "" + e, a(e.split(/\s+/)).each2(function () { 0 !== this.indexOf("select2-") && (f = d(this), f && g.push(f)) })), b.attr("class", g.join(" ")) } function t(a, b, c, e) { var f = d(a.toUpperCase()).indexOf(d(b.toUpperCase())), g = b.length; return 0 > f ? void c.push(e(a)) : (c.push(e(a.substring(0, f))), c.push("<span class='select2-match'>"), c.push(e(a.substring(f, f + g))), c.push("</span>"), void c.push(e(a.substring(f + g, a.length)))) } function u(a) { var b = { "\\": "&#92;", "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;", "/": "&#47;" }; return String(a).replace(/[&<>"'\/\\]/g, function (a) { return b[a] }) } function v(c) { var d, e = null, f = c.quietMillis || 100, g = c.url, h = this; return function (i) { window.clearTimeout(d), d = window.setTimeout(function () { var d = c.data, f = g, j = c.transport || a.fn.select2.ajaxDefaults.transport, k = { type: c.type || "GET", cache: c.cache || !1, jsonpCallback: c.jsonpCallback || b, dataType: c.dataType || "json" }, l = a.extend({}, a.fn.select2.ajaxDefaults.params, k); d = d ? d.call(h, i.term, i.page, i.context) : null, f = "function" == typeof f ? f.call(h, i.term, i.page, i.context) : f, e && "function" == typeof e.abort && e.abort(), c.params && (a.isFunction(c.params) ? a.extend(l, c.params.call(h)) : a.extend(l, c.params)), a.extend(l, { url: f, dataType: c.dataType, data: d, success: function (a) { var b = c.results(a, i.page, i); i.callback(b) }, error: function (a, b, c) { var d = { hasError: !0, jqXHR: a, textStatus: b, errorThrown: c }; i.callback(d) } }), e = j.call(h, l) }, f) } } function w(b) { var c, d, e = b, f = function (a) { return "" + a.text }; a.isArray(e) && (d = e, e = { results: d }), a.isFunction(e) === !1 && (d = e, e = function () { return d }); var g = e(); return g.text && (f = g.text, a.isFunction(f) || (c = g.text, f = function (a) { return a[c] })), function (b) { var c, d = b.term, g = { results: [] }; return "" === d ? void b.callback(e()) : (c = function (e, g) { var h, i; if (e = e[0], e.children) { h = {}; for (i in e) e.hasOwnProperty(i) && (h[i] = e[i]); h.children = [], a(e.children).each2(function (a, b) { c(b, h.children) }), (h.children.length || b.matcher(d, f(h), e)) && g.push(h) } else b.matcher(d, f(e), e) && g.push(e) }, a(e().results).each2(function (a, b) { c(b, g.results) }), void b.callback(g)) } } function x(c) { var d = a.isFunction(c); return function (e) { var f = e.term, g = { results: [] }, h = d ? c(e) : c; a.isArray(h) && (a(h).each(function () { var a = this.text !== b, c = a ? this.text : this; ("" === f || e.matcher(f, c)) && g.results.push(a ? this : { id: this, text: this }) }), e.callback(g)) } } function y(b, c) { if (a.isFunction(b)) return !0; if (!b) return !1; if ("string" == typeof b) return !0; throw new Error(c + " must be a string, function, or falsy value") } function z(b, c) { if (a.isFunction(b)) { var d = Array.prototype.slice.call(arguments, 2); return b.apply(c, d) } return b } function A(b) { var c = 0; return a.each(b, function (a, b) { b.children ? c += A(b.children) : c++ }), c } function B(a, c, d, e) { var f, h, i, j, k, l = a, m = !1; if (!e.createSearchChoice || !e.tokenSeparators || e.tokenSeparators.length < 1) return b; for (; ;) { for (h = -1, i = 0, j = e.tokenSeparators.length; j > i && (k = e.tokenSeparators[i], h = a.indexOf(k), !(h >= 0)) ; i++); if (0 > h) break; if (f = a.substring(0, h), a = a.substring(h + k.length), f.length > 0 && (f = e.createSearchChoice.call(this, f, c), f !== b && null !== f && e.id(f) !== b && null !== e.id(f))) { for (m = !1, i = 0, j = c.length; j > i; i++) if (g(e.id(f), e.id(c[i]))) { m = !0; break } m || d(f) } } return l !== a ? a : void 0 } function C() { var b = this; a.each(arguments, function (a, c) { b[c].remove(), b[c] = null }) } function D(b, c) { var d = function () { }; return d.prototype = new b, d.prototype.constructor = d, d.prototype.parent = b.prototype, d.prototype = a.extend(d.prototype, c), d } if (window.Select2 === b) {
        var E, F, G, H, I, J, K, L, M = { x: 0, y: 0 }, E = { TAB: 9, ENTER: 13, ESC: 27, SPACE: 32, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, SHIFT: 16, CTRL: 17, ALT: 18, PAGE_UP: 33, PAGE_DOWN: 34, HOME: 36, END: 35, BACKSPACE: 8, DELETE: 46, isArrow: function (a) { switch (a = a.which ? a.which : a) { case E.LEFT: case E.RIGHT: case E.UP: case E.DOWN: return !0 } return !1 }, isControl: function (a) { var b = a.which; switch (b) { case E.SHIFT: case E.CTRL: case E.ALT: return !0 } return a.metaKey ? !0 : !1 }, isFunctionKey: function (a) { return a = a.which ? a.which : a, a >= 112 && 123 >= a } }, N = "<div class='select2-measure-scrollbar'></div>", O = { "Ⓐ": "A", "A": "A", "À": "A", "Á": "A", "Â": "A", "Ầ": "A", "Ấ": "A", "Ẫ": "A", "Ẩ": "A", "Ã": "A", "Ā": "A", "Ă": "A", "Ằ": "A", "Ắ": "A", "Ẵ": "A", "Ẳ": "A", "Ȧ": "A", "Ǡ": "A", "Ä": "A", "Ǟ": "A", "Ả": "A", "Å": "A", "Ǻ": "A", "Ǎ": "A", "Ȁ": "A", "Ȃ": "A", "Ạ": "A", "Ậ": "A", "Ặ": "A", "Ḁ": "A", "Ą": "A", "Ⱥ": "A", "Ɐ": "A", "Ꜳ": "AA", "Æ": "AE", "Ǽ": "AE", "Ǣ": "AE", "Ꜵ": "AO", "Ꜷ": "AU", "Ꜹ": "AV", "Ꜻ": "AV", "Ꜽ": "AY", "Ⓑ": "B", "B": "B", "Ḃ": "B", "Ḅ": "B", "Ḇ": "B", "Ƀ": "B", "Ƃ": "B", "Ɓ": "B", "Ⓒ": "C", "C": "C", "Ć": "C", "Ĉ": "C", "Ċ": "C", "Č": "C", "Ç": "C", "Ḉ": "C", "Ƈ": "C", "Ȼ": "C", "Ꜿ": "C", "Ⓓ": "D", "D": "D", "Ḋ": "D", "Ď": "D", "Ḍ": "D", "Ḑ": "D", "Ḓ": "D", "Ḏ": "D", "Đ": "D", "Ƌ": "D", "Ɗ": "D", "Ɖ": "D", "Ꝺ": "D", "DZ": "DZ", "DŽ": "DZ", "Dz": "Dz", "Dž": "Dz", "Ⓔ": "E", "E": "E", "È": "E", "É": "E", "Ê": "E", "Ề": "E", "Ế": "E", "Ễ": "E", "Ể": "E", "Ẽ": "E", "Ē": "E", "Ḕ": "E", "Ḗ": "E", "Ĕ": "E", "Ė": "E", "Ë": "E", "Ẻ": "E", "Ě": "E", "Ȅ": "E", "Ȇ": "E", "Ẹ": "E", "Ệ": "E", "Ȩ": "E", "Ḝ": "E", "Ę": "E", "Ḙ": "E", "Ḛ": "E", "Ɛ": "E", "Ǝ": "E", "Ⓕ": "F", "F": "F", "Ḟ": "F", "Ƒ": "F", "Ꝼ": "F", "Ⓖ": "G", "G": "G", "Ǵ": "G", "Ĝ": "G", "Ḡ": "G", "Ğ": "G", "Ġ": "G", "Ǧ": "G", "Ģ": "G", "Ǥ": "G", "Ɠ": "G", "Ꞡ": "G", "Ᵹ": "G", "Ꝿ": "G", "Ⓗ": "H", "H": "H", "Ĥ": "H", "Ḣ": "H", "Ḧ": "H", "Ȟ": "H", "Ḥ": "H", "Ḩ": "H", "Ḫ": "H", "Ħ": "H", "Ⱨ": "H", "Ⱶ": "H", "Ɥ": "H", "Ⓘ": "I", "I": "I", "Ì": "I", "Í": "I", "Î": "I", "Ĩ": "I", "Ī": "I", "Ĭ": "I", "İ": "I", "Ï": "I", "Ḯ": "I", "Ỉ": "I", "Ǐ": "I", "Ȉ": "I", "Ȋ": "I", "Ị": "I", "Į": "I", "Ḭ": "I", "Ɨ": "I", "Ⓙ": "J", "J": "J", "Ĵ": "J", "Ɉ": "J", "Ⓚ": "K", "K": "K", "Ḱ": "K", "Ǩ": "K", "Ḳ": "K", "Ķ": "K", "Ḵ": "K", "Ƙ": "K", "Ⱪ": "K", "Ꝁ": "K", "Ꝃ": "K", "Ꝅ": "K", "Ꞣ": "K", "Ⓛ": "L", "L": "L", "Ŀ": "L", "Ĺ": "L", "Ľ": "L", "Ḷ": "L", "Ḹ": "L", "Ļ": "L", "Ḽ": "L", "Ḻ": "L", "Ł": "L", "Ƚ": "L", "Ɫ": "L", "Ⱡ": "L", "Ꝉ": "L", "Ꝇ": "L", "Ꞁ": "L", "LJ": "LJ", "Lj": "Lj", "Ⓜ": "M", "M": "M", "Ḿ": "M", "Ṁ": "M", "Ṃ": "M", "Ɱ": "M", "Ɯ": "M", "Ⓝ": "N", "N": "N", "Ǹ": "N", "Ń": "N", "Ñ": "N", "Ṅ": "N", "Ň": "N", "Ṇ": "N", "Ņ": "N", "Ṋ": "N", "Ṉ": "N", "Ƞ": "N", "Ɲ": "N", "Ꞑ": "N", "Ꞥ": "N", "NJ": "NJ", "Nj": "Nj", "Ⓞ": "O", "O": "O", "Ò": "O", "Ó": "O", "Ô": "O", "Ồ": "O", "Ố": "O", "Ỗ": "O", "Ổ": "O", "Õ": "O", "Ṍ": "O", "Ȭ": "O", "Ṏ": "O", "Ō": "O", "Ṑ": "O", "Ṓ": "O", "Ŏ": "O", "Ȯ": "O", "Ȱ": "O", "Ö": "O", "Ȫ": "O", "Ỏ": "O", "Ő": "O", "Ǒ": "O", "Ȍ": "O", "Ȏ": "O", "Ơ": "O", "Ờ": "O", "Ớ": "O", "Ỡ": "O", "Ở": "O", "Ợ": "O", "Ọ": "O", "Ộ": "O", "Ǫ": "O", "Ǭ": "O", "Ø": "O", "Ǿ": "O", "Ɔ": "O", "Ɵ": "O", "Ꝋ": "O", "Ꝍ": "O", "Ƣ": "OI", "Ꝏ": "OO", "Ȣ": "OU", "Ⓟ": "P", "P": "P", "Ṕ": "P", "Ṗ": "P", "Ƥ": "P", "Ᵽ": "P", "Ꝑ": "P", "Ꝓ": "P", "Ꝕ": "P", "Ⓠ": "Q", "Q": "Q", "Ꝗ": "Q", "Ꝙ": "Q", "Ɋ": "Q", "Ⓡ": "R", "R": "R", "Ŕ": "R", "Ṙ": "R", "Ř": "R", "Ȑ": "R", "Ȓ": "R", "Ṛ": "R", "Ṝ": "R", "Ŗ": "R", "Ṟ": "R", "Ɍ": "R", "Ɽ": "R", "Ꝛ": "R", "Ꞧ": "R", "Ꞃ": "R", "Ⓢ": "S", "S": "S", "ẞ": "S", "Ś": "S", "Ṥ": "S", "Ŝ": "S", "Ṡ": "S", "Š": "S", "Ṧ": "S", "Ṣ": "S", "Ṩ": "S", "Ș": "S", "Ş": "S", "Ȿ": "S", "Ꞩ": "S", "Ꞅ": "S", "Ⓣ": "T", "T": "T", "Ṫ": "T", "Ť": "T", "Ṭ": "T", "Ț": "T", "Ţ": "T", "Ṱ": "T", "Ṯ": "T", "Ŧ": "T", "Ƭ": "T", "Ʈ": "T", "Ⱦ": "T", "Ꞇ": "T", "Ꜩ": "TZ", "Ⓤ": "U", "U": "U", "Ù": "U", "Ú": "U", "Û": "U", "Ũ": "U", "Ṹ": "U", "Ū": "U", "Ṻ": "U", "Ŭ": "U", "Ü": "U", "Ǜ": "U", "Ǘ": "U", "Ǖ": "U", "Ǚ": "U", "Ủ": "U", "Ů": "U", "Ű": "U", "Ǔ": "U", "Ȕ": "U", "Ȗ": "U", "Ư": "U", "Ừ": "U", "Ứ": "U", "Ữ": "U", "Ử": "U", "Ự": "U", "Ụ": "U", "Ṳ": "U", "Ų": "U", "Ṷ": "U", "Ṵ": "U", "Ʉ": "U", "Ⓥ": "V", "V": "V", "Ṽ": "V", "Ṿ": "V", "Ʋ": "V", "Ꝟ": "V", "Ʌ": "V", "Ꝡ": "VY", "Ⓦ": "W", "W": "W", "Ẁ": "W", "Ẃ": "W", "Ŵ": "W", "Ẇ": "W", "Ẅ": "W", "Ẉ": "W", "Ⱳ": "W", "Ⓧ": "X", "X": "X", "Ẋ": "X", "Ẍ": "X", "Ⓨ": "Y", "Y": "Y", "Ỳ": "Y", "Ý": "Y", "Ŷ": "Y", "Ỹ": "Y", "Ȳ": "Y", "Ẏ": "Y", "Ÿ": "Y", "Ỷ": "Y", "Ỵ": "Y", "Ƴ": "Y", "Ɏ": "Y", "Ỿ": "Y", "Ⓩ": "Z", "Z": "Z", "Ź": "Z", "Ẑ": "Z", "Ż": "Z", "Ž": "Z", "Ẓ": "Z", "Ẕ": "Z", "Ƶ": "Z", "Ȥ": "Z", "Ɀ": "Z", "Ⱬ": "Z", "Ꝣ": "Z", "ⓐ": "a", "a": "a", "ẚ": "a", "à": "a", "á": "a", "â": "a", "ầ": "a", "ấ": "a", "ẫ": "a", "ẩ": "a", "ã": "a", "ā": "a", "ă": "a", "ằ": "a", "ắ": "a", "ẵ": "a", "ẳ": "a", "ȧ": "a", "ǡ": "a", "ä": "a", "ǟ": "a", "ả": "a", "å": "a", "ǻ": "a", "ǎ": "a", "ȁ": "a", "ȃ": "a", "ạ": "a", "ậ": "a", "ặ": "a", "ḁ": "a", "ą": "a", "ⱥ": "a", "ɐ": "a", "ꜳ": "aa", "æ": "ae", "ǽ": "ae", "ǣ": "ae", "ꜵ": "ao", "ꜷ": "au", "ꜹ": "av", "ꜻ": "av", "ꜽ": "ay", "ⓑ": "b", "b": "b", "ḃ": "b", "ḅ": "b", "ḇ": "b", "ƀ": "b", "ƃ": "b", "ɓ": "b", "ⓒ": "c", "c": "c", "ć": "c", "ĉ": "c", "ċ": "c", "č": "c", "ç": "c", "ḉ": "c", "ƈ": "c", "ȼ": "c", "ꜿ": "c", "ↄ": "c", "ⓓ": "d", "d": "d", "ḋ": "d", "ď": "d", "ḍ": "d", "ḑ": "d", "ḓ": "d", "ḏ": "d", "đ": "d", "ƌ": "d", "ɖ": "d", "ɗ": "d", "ꝺ": "d", "dz": "dz", "dž": "dz", "ⓔ": "e", "e": "e", "è": "e", "é": "e", "ê": "e", "ề": "e", "ế": "e", "ễ": "e", "ể": "e", "ẽ": "e", "ē": "e", "ḕ": "e", "ḗ": "e", "ĕ": "e", "ė": "e", "ë": "e", "ẻ": "e", "ě": "e", "ȅ": "e", "ȇ": "e", "ẹ": "e", "ệ": "e", "ȩ": "e", "ḝ": "e", "ę": "e", "ḙ": "e", "ḛ": "e", "ɇ": "e", "ɛ": "e", "ǝ": "e", "ⓕ": "f", "f": "f", "ḟ": "f", "ƒ": "f", "ꝼ": "f", "ⓖ": "g", "g": "g", "ǵ": "g", "ĝ": "g", "ḡ": "g", "ğ": "g", "ġ": "g", "ǧ": "g", "ģ": "g", "ǥ": "g", "ɠ": "g", "ꞡ": "g", "ᵹ": "g", "ꝿ": "g", "ⓗ": "h", "h": "h", "ĥ": "h", "ḣ": "h", "ḧ": "h", "ȟ": "h", "ḥ": "h", "ḩ": "h", "ḫ": "h", "ẖ": "h", "ħ": "h", "ⱨ": "h", "ⱶ": "h", "ɥ": "h", "ƕ": "hv", "ⓘ": "i", "i": "i", "ì": "i", "í": "i", "î": "i", "ĩ": "i", "ī": "i", "ĭ": "i", "ï": "i", "ḯ": "i", "ỉ": "i", "ǐ": "i", "ȉ": "i", "ȋ": "i", "ị": "i", "į": "i", "ḭ": "i", "ɨ": "i", "ı": "i", "ⓙ": "j", "j": "j", "ĵ": "j", "ǰ": "j", "ɉ": "j", "ⓚ": "k", "k": "k", "ḱ": "k", "ǩ": "k", "ḳ": "k", "ķ": "k", "ḵ": "k", "ƙ": "k", "ⱪ": "k", "ꝁ": "k", "ꝃ": "k", "ꝅ": "k", "ꞣ": "k", "ⓛ": "l", "l": "l", "ŀ": "l", "ĺ": "l", "ľ": "l", "ḷ": "l", "ḹ": "l", "ļ": "l", "ḽ": "l", "ḻ": "l", "ſ": "l", "ł": "l", "ƚ": "l", "ɫ": "l", "ⱡ": "l", "ꝉ": "l", "ꞁ": "l", "ꝇ": "l", "lj": "lj", "ⓜ": "m", "m": "m", "ḿ": "m", "ṁ": "m", "ṃ": "m", "ɱ": "m", "ɯ": "m", "ⓝ": "n", "n": "n", "ǹ": "n", "ń": "n", "ñ": "n", "ṅ": "n", "ň": "n", "ṇ": "n", "ņ": "n", "ṋ": "n", "ṉ": "n", "ƞ": "n", "ɲ": "n", "ʼn": "n", "ꞑ": "n", "ꞥ": "n", "nj": "nj", "ⓞ": "o", "o": "o", "ò": "o", "ó": "o", "ô": "o", "ồ": "o", "ố": "o", "ỗ": "o", "ổ": "o", "õ": "o", "ṍ": "o", "ȭ": "o", "ṏ": "o", "ō": "o", "ṑ": "o", "ṓ": "o", "ŏ": "o", "ȯ": "o", "ȱ": "o", "ö": "o", "ȫ": "o", "ỏ": "o", "ő": "o", "ǒ": "o", "ȍ": "o", "ȏ": "o", "ơ": "o", "ờ": "o", "ớ": "o", "ỡ": "o", "ở": "o", "ợ": "o", "ọ": "o", "ộ": "o", "ǫ": "o", "ǭ": "o", "ø": "o", "ǿ": "o", "ɔ": "o", "ꝋ": "o", "ꝍ": "o", "ɵ": "o", "ƣ": "oi", "ȣ": "ou", "ꝏ": "oo", "ⓟ": "p", "p": "p", "ṕ": "p", "ṗ": "p", "ƥ": "p", "ᵽ": "p", "ꝑ": "p", "ꝓ": "p", "ꝕ": "p", "ⓠ": "q", "q": "q", "ɋ": "q", "ꝗ": "q", "ꝙ": "q", "ⓡ": "r", "r": "r", "ŕ": "r", "ṙ": "r", "ř": "r", "ȑ": "r", "ȓ": "r", "ṛ": "r", "ṝ": "r", "ŗ": "r", "ṟ": "r", "ɍ": "r", "ɽ": "r", "ꝛ": "r", "ꞧ": "r", "ꞃ": "r", "ⓢ": "s", "s": "s", "ß": "s", "ś": "s", "ṥ": "s", "ŝ": "s", "ṡ": "s", "š": "s", "ṧ": "s", "ṣ": "s", "ṩ": "s", "ș": "s", "ş": "s", "ȿ": "s", "ꞩ": "s", "ꞅ": "s", "ẛ": "s", "ⓣ": "t", "t": "t", "ṫ": "t", "ẗ": "t", "ť": "t", "ṭ": "t", "ț": "t", "ţ": "t", "ṱ": "t", "ṯ": "t", "ŧ": "t", "ƭ": "t", "ʈ": "t", "ⱦ": "t", "ꞇ": "t", "ꜩ": "tz", "ⓤ": "u", "u": "u", "ù": "u", "ú": "u", "û": "u", "ũ": "u", "ṹ": "u", "ū": "u", "ṻ": "u", "ŭ": "u", "ü": "u", "ǜ": "u", "ǘ": "u", "ǖ": "u", "ǚ": "u", "ủ": "u", "ů": "u", "ű": "u", "ǔ": "u", "ȕ": "u", "ȗ": "u", "ư": "u", "ừ": "u", "ứ": "u", "ữ": "u", "ử": "u", "ự": "u", "ụ": "u", "ṳ": "u", "ų": "u", "ṷ": "u", "ṵ": "u", "ʉ": "u", "ⓥ": "v", "v": "v", "ṽ": "v", "ṿ": "v", "ʋ": "v", "ꝟ": "v", "ʌ": "v", "ꝡ": "vy", "ⓦ": "w", "w": "w", "ẁ": "w", "ẃ": "w", "ŵ": "w", "ẇ": "w", "ẅ": "w", "ẘ": "w", "ẉ": "w", "ⱳ": "w", "ⓧ": "x", "x": "x", "ẋ": "x", "ẍ": "x", "ⓨ": "y", "y": "y", "ỳ": "y", "ý": "y", "ŷ": "y", "ỹ": "y", "ȳ": "y", "ẏ": "y", "ÿ": "y", "ỷ": "y", "ẙ": "y", "ỵ": "y", "ƴ": "y", "ɏ": "y", "ỿ": "y", "ⓩ": "z", "z": "z", "ź": "z", "ẑ": "z", "ż": "z", "ž": "z", "ẓ": "z", "ẕ": "z", "ƶ": "z", "ȥ": "z", "ɀ": "z", "ⱬ": "z", "ꝣ": "z", "Ά": "Α", "Έ": "Ε", "Ή": "Η", "Ί": "Ι", "Ϊ": "Ι", "Ό": "Ο", "Ύ": "Υ", "Ϋ": "Υ", "Ώ": "Ω", "ά": "α", "έ": "ε", "ή": "η", "ί": "ι", "ϊ": "ι", "ΐ": "ι", "ό": "ο", "ύ": "υ", "ϋ": "υ", "ΰ": "υ", "ω": "ω", "ς": "σ" }; K = a(document), I = function () { var a = 1; return function () { return a++ } }(), F = D(Object, { bind: function (a) { var b = this; return function () { a.apply(b, arguments) } }, init: function (c) { var d, e, g = ".select2-results"; this.opts = c = this.prepareOpts(c), this.id = c.id, c.element.data("select2") !== b && null !== c.element.data("select2") && c.element.data("select2").destroy(), this.container = this.createContainer(), this.liveRegion = a("<span>", { role: "status", "aria-live": "polite" }).addClass("select2-hidden-accessible").appendTo(document.body), this.containerId = "s2id_" + (c.element.attr("id") || "autogen" + I()), this.containerEventName = this.containerId.replace(/([.])/g, "_").replace(/([;&,\-\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g, "\\$1"), this.container.attr("id", this.containerId), this.container.attr("title", c.element.attr("title")), this.body = a("body"), s(this.container, this.opts.element, this.opts.adaptContainerCssClass), this.container.attr("style", c.element.attr("style")), this.container.css(z(c.containerCss, this.opts.element)), this.container.addClass(z(c.containerCssClass, this.opts.element)), this.elementTabIndex = this.opts.element.attr("tabindex"), this.opts.element.data("select2", this).attr("tabindex", "-1").before(this.container).on("click.select2", p), this.container.data("select2", this), this.dropdown = this.container.find(".select2-drop"), s(this.dropdown, this.opts.element, this.opts.adaptDropdownCssClass), this.dropdown.addClass(z(c.dropdownCssClass, this.opts.element)), this.dropdown.data("select2", this), this.dropdown.on("click", p), this.results = d = this.container.find(g), this.search = e = this.container.find("input.select2-input"), this.queryCount = 0, this.resultsPage = 0, this.context = null, this.initContainer(), this.container.on("click", p), k(this.results), this.dropdown.on("mousemove-filtered", g, this.bind(this.highlightUnderEvent)), this.dropdown.on("touchstart touchmove touchend", g, this.bind(function (a) { this._touchEvent = !0, this.highlightUnderEvent(a) })), this.dropdown.on("touchmove", g, this.bind(this.touchMoved)), this.dropdown.on("touchstart touchend", g, this.bind(this.clearTouchMoved)), this.dropdown.on("click", this.bind(function () { this._touchEvent && (this._touchEvent = !1, this.selectHighlighted()) })), m(80, this.results), this.dropdown.on("scroll-debounced", g, this.bind(this.loadMoreIfNeeded)), a(this.container).on("change", ".select2-input", function (a) { a.stopPropagation() }), a(this.dropdown).on("change", ".select2-input", function (a) { a.stopPropagation() }), a.fn.mousewheel && d.mousewheel(function (a, b, c, e) { var f = d.scrollTop(); e > 0 && 0 >= f - e ? (d.scrollTop(0), p(a)) : 0 > e && d.get(0).scrollHeight - d.scrollTop() + e <= d.height() && (d.scrollTop(d.get(0).scrollHeight - d.height()), p(a)) }), j(e), e.on("keyup-change input paste", this.bind(this.updateResults)), e.on("focus", function () { e.addClass("select2-focused") }), e.on("blur", function () { e.removeClass("select2-focused") }), this.dropdown.on("mouseup", g, this.bind(function (b) { a(b.target).closest(".select2-result-selectable").length > 0 && (this.highlightUnderEvent(b), this.selectHighlighted(b)) })), this.dropdown.on("click mouseup mousedown touchstart touchend focusin", function (a) { a.stopPropagation() }), this.nextSearchTerm = b, a.isFunction(this.opts.initSelection) && (this.initSelection(), this.monitorSource()), null !== c.maximumInputLength && this.search.attr("maxlength", c.maximumInputLength); var h = c.element.prop("disabled"); h === b && (h = !1), this.enable(!h); var i = c.element.prop("readonly"); i === b && (i = !1), this.readonly(i), L = L || f(), this.autofocus = c.element.prop("autofocus"), c.element.prop("autofocus", !1), this.autofocus && this.focus(), this.search.attr("placeholder", c.searchInputPlaceholder) }, destroy: function () { var a = this.opts.element, c = a.data("select2"), d = this; this.close(), a.length && a[0].detachEvent && a.each(function () { this.detachEvent("onpropertychange", d._sync) }), this.propertyObserver && (this.propertyObserver.disconnect(), this.propertyObserver = null), this._sync = null, c !== b && (c.container.remove(), c.liveRegion.remove(), c.dropdown.remove(), a.removeClass("select2-offscreen").removeData("select2").off(".select2").prop("autofocus", this.autofocus || !1), this.elementTabIndex ? a.attr({ tabindex: this.elementTabIndex }) : a.removeAttr("tabindex"), a.show()), C.call(this, "container", "liveRegion", "dropdown", "results", "search") }, optionToData: function (a) { return a.is("option") ? { id: a.prop("value"), text: a.text(), element: a.get(), css: a.attr("class"), disabled: a.prop("disabled"), locked: g(a.attr("locked"), "locked") || g(a.data("locked"), !0) } : a.is("optgroup") ? { text: a.attr("label"), children: [], element: a.get(), css: a.attr("class") } : void 0 }, prepareOpts: function (c) { var d, e, f, i, j = this; if (d = c.element, "select" === d.get(0).tagName.toLowerCase() && (this.select = e = c.element), e && a.each(["id", "multiple", "ajax", "query", "createSearchChoice", "initSelection", "data", "tags"], function () { if (this in c) throw new Error("Option '" + this + "' is not allowed forSelect2 when attached to a <select> element.") }), c = a.extend({}, { populateResults: function (d, e, f) { var g, h = this.opts.id, i = this.liveRegion; (g = function (d, e, k) { var l, m, n, o, p, q, r, s, t, u; d = c.sortResults(d, e, f); var v = []; for (l = 0, m = d.length; m > l; l += 1) n = d[l], p = n.disabled === !0, o = !p && h(n) !== b, q = n.children && n.children.length > 0, r = a("<li></li>"), r.addClass("select2-results-dept-" + k), r.addClass("select2-result"), r.addClass(o ? "select2-result-selectable" : "select2-result-unselectable"), p && r.addClass("select2-disabled"), q && r.addClass("select2-result-with-children"), r.addClass(j.opts.formatResultCssClass(n)), r.attr("role", "presentation"), s = a(document.createElement("div")), s.addClass("select2-result-label"), s.attr("id", "select2-result-label-" + I()), s.attr("role", "option"), u = c.formatResult(n, s, f, j.opts.escapeMarkup), u !== b && (s.html(u), r.append(s)), q && (t = a("<ul></ul>"), t.addClass("select2-result-sub"), g(n.children, t, k + 1), r.append(t)), r.data("select2-data", n), v.push(r[0]); e.append(v), i.text(c.formatMatches(d.length)) })(e, d, 0) } }, a.fn.select2.defaults, c), "function" != typeof c.id && (f = c.id, c.id = function (a) { return a[f] }), a.isArray(c.element.data("select2Tags"))) { if ("tags" in c) throw "tags specified as both an attribute 'data-select2-tags' and in options of Select2 " + c.element.attr("id"); c.tags = c.element.data("select2Tags") } if (e ? (c.query = this.bind(function (a) { var c, e, f, g = { results: [], more: !1 }, h = a.term; f = function (b, c) { var d; b.is("option") ? a.matcher(h, b.text(), b) && c.push(j.optionToData(b)) : b.is("optgroup") && (d = j.optionToData(b), b.children().each2(function (a, b) { f(b, d.children) }), d.children.length > 0 && c.push(d)) }, c = d.children(), this.getPlaceholder() !== b && c.length > 0 && (e = this.getPlaceholderOption(), e && (c = c.not(e))), c.each2(function (a, b) { f(b, g.results) }), a.callback(g) }), c.id = function (a) { return a.id }) : "query" in c || ("ajax" in c ? (i = c.element.data("ajax-url"), i && i.length > 0 && (c.ajax.url = i), c.query = v.call(c.element, c.ajax)) : "data" in c ? c.query = w(c.data) : "tags" in c && (c.query = x(c.tags), c.createSearchChoice === b && (c.createSearchChoice = function (b) { return { id: a.trim(b), text: a.trim(b) } }), c.initSelection === b && (c.initSelection = function (b, d) { var e = []; a(h(b.val(), c.separator)).each(function () { var b = { id: this, text: this }, d = c.tags; a.isFunction(d) && (d = d()), a(d).each(function () { return g(this.id, b.id) ? (b = this, !1) : void 0 }), e.push(b) }), d(e) }))), "function" != typeof c.query) throw "query function not defined forSelect2 " + c.element.attr("id"); if ("top" === c.createSearchChoicePosition) c.createSearchChoicePosition = function (a, b) { a.unshift(b) }; else if ("bottom" === c.createSearchChoicePosition) c.createSearchChoicePosition = function (a, b) { a.push(b) }; else if ("function" != typeof c.createSearchChoicePosition) throw "invalid createSearchChoicePosition option must be 'top', 'bottom' or a custom function"; return c }, monitorSource: function () { var c, d = this.opts.element, e = this; d.on("change.select2", this.bind(function () { this.opts.element.data("select2-change-triggered") !== !0 && this.initSelection() })), this._sync = this.bind(function () { var a = d.prop("disabled"); a === b && (a = !1), this.enable(!a); var c = d.prop("readonly"); c === b && (c = !1), this.readonly(c), s(this.container, this.opts.element, this.opts.adaptContainerCssClass), this.container.addClass(z(this.opts.containerCssClass, this.opts.element)), s(this.dropdown, this.opts.element, this.opts.adaptDropdownCssClass), this.dropdown.addClass(z(this.opts.dropdownCssClass, this.opts.element)) }), d.length && d[0].attachEvent && d.each(function () { this.attachEvent("onpropertychange", e._sync) }), c = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver, c !== b && (this.propertyObserver && (delete this.propertyObserver, this.propertyObserver = null), this.propertyObserver = new c(function (b) { a.each(b, e._sync) }), this.propertyObserver.observe(d.get(0), { attributes: !0, subtree: !1 })) }, triggerSelect: function (b) { var c = a.Event("select2-selecting", { val: this.id(b), object: b, choice: b }); return this.opts.element.trigger(c), !c.isDefaultPrevented() }, triggerChange: function (b) { b = b || {}, b = a.extend({}, b, { type: "change", val: this.val() }), this.opts.element.data("select2-change-triggered", !0), this.opts.element.trigger(b), this.opts.element.data("select2-change-triggered", !1), this.opts.element.click(), this.opts.blurOnChange && this.opts.element.blur() }, isInterfaceEnabled: function () { return this.enabledInterface === !0 }, enableInterface: function () { var a = this._enabled && !this._readonly, b = !a; return a === this.enabledInterface ? !1 : (this.container.toggleClass("select2-container-disabled", b), this.close(), this.enabledInterface = a, !0) }, enable: function (a) { a === b && (a = !0), this._enabled !== a && (this._enabled = a, this.opts.element.prop("disabled", !a), this.enableInterface()) }, disable: function () { this.enable(!1) }, readonly: function (a) { a === b && (a = !1), this._readonly !== a && (this._readonly = a, this.opts.element.prop("readonly", a), this.enableInterface()) }, opened: function () { return this.container ? this.container.hasClass("select2-dropdown-open") : !1 }, positionDropdown: function () { var b, c, d, e, f, g = this.dropdown, h = this.container.offset(), i = this.container.outerHeight(!1), j = this.container.outerWidth(!1), k = g.outerHeight(!1), l = a(window), m = l.width(), n = l.height(), o = l.scrollLeft() + m, p = l.scrollTop() + n, q = h.top + i, r = h.left, s = p >= q + k, t = h.top - k >= l.scrollTop(), u = g.outerWidth(!1), v = o >= r + u, w = g.hasClass("select2-drop-above"); w ? (c = !0, !t && s && (d = !0, c = !1)) : (c = !1, !s && t && (d = !0, c = !0)), d && (g.hide(), h = this.container.offset(), i = this.container.outerHeight(!1), j = this.container.outerWidth(!1), k = g.outerHeight(!1), o = l.scrollLeft() + m, p = l.scrollTop() + n, q = h.top + i, r = h.left, u = g.outerWidth(!1), v = o >= r + u, g.show(), this.focusSearch()), this.opts.dropdownAutoWidth ? (f = a(".select2-results", g)[0], g.addClass("select2-drop-auto-width"), g.css("width", ""), u = g.outerWidth(!1) + (f.scrollHeight === f.clientHeight ? 0 : L.width), u > j ? j = u : u = j, k = g.outerHeight(!1), v = o >= r + u) : this.container.removeClass("select2-drop-auto-width"), "static" !== this.body.css("position") && (b = this.body.offset(), q -= b.top, r -= b.left), v || (r = h.left + this.container.outerWidth(!1) - u), e = { left: r, width: j }, c ? (e.top = h.top - k, e.bottom = "auto", this.container.addClass("select2-drop-above"), g.addClass("select2-drop-above")) : (e.top = q, e.bottom = "auto", this.container.removeClass("select2-drop-above"), g.removeClass("select2-drop-above")), e = a.extend(e, z(this.opts.dropdownCss, this.opts.element)), g.css(e) }, shouldOpen: function () { var b; return this.opened() ? !1 : this._enabled === !1 || this._readonly === !0 ? !1 : (b = a.Event("select2-opening"), this.opts.element.trigger(b), !b.isDefaultPrevented()) }, clearDropdownAlignmentPreference: function () { this.container.removeClass("select2-drop-above"), this.dropdown.removeClass("select2-drop-above") }, open: function () { return this.shouldOpen() ? (this.opening(), K.on("mousemove.select2Event", function (a) { M.x = a.pageX, M.y = a.pageY }), !0) : !1 }, opening: function () { var b, d = this.containerEventName, e = "scroll." + d, f = "resize." + d, g = "orientationchange." + d; this.container.addClass("select2-dropdown-open").addClass("select2-container-active"), this.clearDropdownAlignmentPreference(), this.dropdown[0] !== this.body.children().last()[0] && this.dropdown.detach().appendTo(this.body), b = a("#select2-drop-mask"), 0 == b.length && (b = a(document.createElement("div")), b.attr("id", "select2-drop-mask").attr("class", "select2-drop-mask"), b.hide(), b.appendTo(this.body), b.on("mousedown touchstart click", function (d) { c(b); var e, f = a("#select2-drop"); f.length > 0 && (e = f.data("select2"), e.opts.selectOnBlur && e.selectHighlighted({ noFocus: !0 }), e.close(), d.preventDefault(), d.stopPropagation()) })), this.dropdown.prev()[0] !== b[0] && this.dropdown.before(b), a("#select2-drop").removeAttr("id"), this.dropdown.attr("id", "select2-drop"), b.show(), this.positionDropdown(), this.dropdown.show(), this.positionDropdown(), this.dropdown.addClass("select2-drop-active"); var h = this; this.container.parents().add(window).each(function () { a(this).on(f + " " + e + " " + g, function () { h.opened() && h.positionDropdown() }) }) }, close: function () { if (this.opened()) { var b = this.containerEventName, c = "scroll." + b, d = "resize." + b, e = "orientationchange." + b; this.container.parents().add(window).each(function () { a(this).off(c).off(d).off(e) }), this.clearDropdownAlignmentPreference(), a("#select2-drop-mask").hide(), this.dropdown.removeAttr("id"), this.dropdown.hide(), this.container.removeClass("select2-dropdown-open").removeClass("select2-container-active"), this.results.empty(), K.off("mousemove.select2Event"), this.clearSearch(), this.search.removeClass("select2-active"), this.opts.element.trigger(a.Event("select2-close")) } }, externalSearch: function (a) { this.open(), this.search.val(a), this.updateResults(!1) }, clearSearch: function () { }, getMaximumSelectionSize: function () { return z(this.opts.maximumSelectionSize, this.opts.element) }, ensureHighlightVisible: function () { var b, c, d, e, f, g, h, i, j = this.results; if (c = this.highlight(), !(0 > c)) { if (0 == c) return void j.scrollTop(0); b = this.findHighlightableChoices().find(".select2-result-label"), d = a(b[c]), i = (d.offset() || {}).top || 0, e = i + d.outerHeight(!0), c === b.length - 1 && (h = j.find("li.select2-more-results"), h.length > 0 && (e = h.offset().top + h.outerHeight(!0))), f = j.offset().top + j.outerHeight(!0), e > f && j.scrollTop(j.scrollTop() + (e - f)), g = i - j.offset().top, 0 > g && "none" != d.css("display") && j.scrollTop(j.scrollTop() + g) } }, findHighlightableChoices: function () { return this.results.find(".select2-result-selectable:not(.select2-disabled):not(.select2-selected)") }, moveHighlight: function (b) { for (var c = this.findHighlightableChoices(), d = this.highlight() ; d > -1 && d < c.length;) { d += b; var e = a(c[d]); if (e.hasClass("select2-result-selectable") && !e.hasClass("select2-disabled") && !e.hasClass("select2-selected")) { this.highlight(d); break } } }, highlight: function (b) { var c, d, f = this.findHighlightableChoices(); return 0 === arguments.length ? e(f.filter(".select2-highlighted")[0], f.get()) : (b >= f.length && (b = f.length - 1), 0 > b && (b = 0), this.removeHighlight(), c = a(f[b]), c.addClass("select2-highlighted"), this.search.attr("aria-activedescendant", c.find(".select2-result-label").attr("id")), this.ensureHighlightVisible(), this.liveRegion.text(c.text()), d = c.data("select2-data"), void (d && this.opts.element.trigger({ type: "select2-highlight", val: this.id(d), choice: d }))) }, removeHighlight: function () { this.results.find(".select2-highlighted").removeClass("select2-highlighted") }, touchMoved: function () { this._touchMoved = !0 }, clearTouchMoved: function () { this._touchMoved = !1 }, countSelectableResults: function () { return this.findHighlightableChoices().length }, highlightUnderEvent: function (b) { var c = a(b.target).closest(".select2-result-selectable"); if (c.length > 0 && !c.is(".select2-highlighted")) { var d = this.findHighlightableChoices(); this.highlight(d.index(c)) } else 0 == c.length && this.removeHighlight() }, loadMoreIfNeeded: function () { var a, b = this.results, c = b.find("li.select2-more-results"), d = this.resultsPage + 1, e = this, f = this.search.val(), g = this.context; 0 !== c.length && (a = c.offset().top - b.offset().top - b.height(), a <= this.opts.loadMorePadding && (c.addClass("select2-active"), this.opts.query({ element: this.opts.element, term: f, page: d, context: g, matcher: this.opts.matcher, callback: this.bind(function (a) { e.opened() && (e.opts.populateResults.call(this, b, a.results, { term: f, page: d, context: g }), e.postprocessResults(a, !1, !1), a.more === !0 ? (c.detach().appendTo(b).text(z(e.opts.formatLoadMore, e.opts.element, d + 1)), window.setTimeout(function () { e.loadMoreIfNeeded() }, 10)) : c.remove(), e.positionDropdown(), e.resultsPage = d, e.context = a.context, this.opts.element.trigger({ type: "select2-loaded", items: a })) }) }))) }, tokenize: function () { }, updateResults: function (c) { function d() { j.removeClass("select2-active"), m.positionDropdown(), m.liveRegion.text(k.find(".select2-no-results,.select2-selection-limit,.select2-searching").length ? k.text() : m.opts.formatMatches(k.find(".select2-result-selectable").length)) } function e(a) { k.html(a), d() } var f, h, i, j = this.search, k = this.results, l = this.opts, m = this, n = j.val(), o = a.data(this.container, "select2-last-term"); if ((c === !0 || !o || !g(n, o)) && (a.data(this.container, "select2-last-term", n), c === !0 || this.showSearchInput !== !1 && this.opened())) { i = ++this.queryCount; var p = this.getMaximumSelectionSize(); if (p >= 1 && (f = this.data(), a.isArray(f) && f.length >= p && y(l.formatSelectionTooBig, "formatSelectionTooBig"))) return void e("<li class='select2-selection-limit'>" + z(l.formatSelectionTooBig, l.element, p) + "</li>"); if (j.val().length < l.minimumInputLength) return e(y(l.formatInputTooShort, "formatInputTooShort") ? "<li class='select2-no-results'>" + z(l.formatInputTooShort, l.element, j.val(), l.minimumInputLength) + "</li>" : ""), void (c && this.showSearch && this.showSearch(!0)); if (l.maximumInputLength && j.val().length > l.maximumInputLength) return void e(y(l.formatInputTooLong, "formatInputTooLong") ? "<li class='select2-no-results'>" + z(l.formatInputTooLong, l.element, j.val(), l.maximumInputLength) + "</li>" : ""); l.formatSearching && 0 === this.findHighlightableChoices().length && e("<li class='select2-searching'>" + z(l.formatSearching, l.element) + "</li>"), j.addClass("select2-active"), this.removeHighlight(), h = this.tokenize(), h != b && null != h && j.val(h), this.resultsPage = 1, l.query({ element: l.element, term: j.val(), page: this.resultsPage, context: null, matcher: l.matcher, callback: this.bind(function (f) { var h; if (i == this.queryCount) { if (!this.opened()) return void this.search.removeClass("select2-active"); if (f.hasError !== b && y(l.formatAjaxError, "formatAjaxError")) return void e("<li class='select2-ajax-error'>" + z(l.formatAjaxError, l.element, f.jqXHR, f.textStatus, f.errorThrown) + "</li>"); if (this.context = f.context === b ? null : f.context, this.opts.createSearchChoice && "" !== j.val() && (h = this.opts.createSearchChoice.call(m, j.val(), f.results), h !== b && null !== h && m.id(h) !== b && null !== m.id(h) && 0 === a(f.results).filter(function () { return g(m.id(this), m.id(h)) }).length && this.opts.createSearchChoicePosition(f.results, h)), 0 === f.results.length && y(l.formatNoMatches, "formatNoMatches")) return void e("<li class='select2-no-results'>" + z(l.formatNoMatches, l.element, j.val()) + "</li>"); k.empty(), m.opts.populateResults.call(this, k, f.results, { term: j.val(), page: this.resultsPage, context: null }), f.more === !0 && y(l.formatLoadMore, "formatLoadMore") && (k.append("<li class='select2-more-results'>" + l.escapeMarkup(z(l.formatLoadMore, l.element, this.resultsPage)) + "</li>"), window.setTimeout(function () { m.loadMoreIfNeeded() }, 10)), this.postprocessResults(f, c), d(), this.opts.element.trigger({ type: "select2-loaded", items: f }) } }) }) } }, cancel: function () { this.close() }, blur: function () { this.opts.selectOnBlur && this.selectHighlighted({ noFocus: !0 }), this.close(), this.container.removeClass("select2-container-active"), this.search[0] === document.activeElement && this.search.blur(), this.clearSearch(), this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus") }, focusSearch: function () { n(this.search) }, selectHighlighted: function (a) { if (this._touchMoved) return void this.clearTouchMoved(); var b = this.highlight(), c = this.results.find(".select2-highlighted"), d = c.closest(".select2-result").data("select2-data"); d ? (this.highlight(b), this.onSelect(d, a)) : a && a.noFocus && this.close() }, getPlaceholder: function () { var a; return this.opts.element.attr("placeholder") || this.opts.element.attr("data-placeholder") || this.opts.element.data("placeholder") || this.opts.placeholder || ((a = this.getPlaceholderOption()) !== b ? a.text() : b) }, getPlaceholderOption: function () { if (this.select) { var c = this.select.children("option").first(); if (this.opts.placeholderOption !== b) return "first" === this.opts.placeholderOption && c || "function" == typeof this.opts.placeholderOption && this.opts.placeholderOption(this.select); if ("" === a.trim(c.text()) && "" === c.val()) return c } }, initContainerWidth: function () { function c() { var c, d, e, f, g, h; if ("off" === this.opts.width) return null; if ("element" === this.opts.width) return 0 === this.opts.element.outerWidth(!1) ? "auto" : this.opts.element.outerWidth(!1) + "px"; if ("copy" === this.opts.width || "resolve" === this.opts.width) { if (c = this.opts.element.attr("style"), c !== b) for (d = c.split(";"), f = 0, g = d.length; g > f; f += 1) if (h = d[f].replace(/\s/g, ""), e = h.match(/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i), null !== e && e.length >= 1) return e[1]; return "resolve" === this.opts.width ? (c = this.opts.element.css("width"), c.indexOf("%") > 0 ? c : 0 === this.opts.element.outerWidth(!1) ? "auto" : this.opts.element.outerWidth(!1) + "px") : null } return a.isFunction(this.opts.width) ? this.opts.width() : this.opts.width } var d = c.call(this); null !== d && this.container.css("width", d) } }), G = D(F, {
            createContainer: function () {
               
                var b = a(document.createElement("div")).attr({ "class": "select2-container" }).html(["<a href='javascript:void(0)' class='select2-choice' tabindex='-1'>",
                    "    <span class='select2-chosen'>&#160;</span><abbr class='select2-search-choice-close'></abbr>",
                    "   <span class='select2-arrow' role='presentation'><b role='presentation'></b></span>", "</a>", "<label for='' class='select2-offscreen'></label>",
                    "<input class='select2-focusser select2-offscreen' type='text' aria-haspopup='true' role='button' />",
                    "<div class='select2-drop select2-display-none'>", "   <div class='select2-search'>",
                    "      <label for='' class='select2-offscreen'></label>",
                    "      <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input' role='combobox' aria-expanded='true'", "      aria-autocomplete='list' />", "   </div>",
                    "   <ul class='select2-results' role='listbox'>", "   </ul>", "</div>"].join(""));
                return b
            }, enableInterface: function () { this.parent.enableInterface.apply(this, arguments) && this.focusser.prop("disabled", !this.isInterfaceEnabled()) },
            opening: function () {
 
                var c, d, e; this.opts.minimumResultsForSearch >= 0 && this.showSearch(!0), this.parent.opening.apply(this, arguments),
                    this.showSearchInput !== !1 && this.search.val(this.focusser.val()), this.opts.shouldFocusInput(this) && (this.search.focus(),
                c = this.search.get(0), c.createTextRange ? (d = c.createTextRange(), d.collapse(!1), d.select()) : c.setSelectionRange &&
                (e = this.search.val().length, c.setSelectionRange(e, e))), "" === this.search.val() && this.nextSearchTerm != b && (this.search.val(this.nextSearchTerm),
                this.search.select()), this.focusser.prop("disabled", !0).val(""), this.updateResults(!0), this.opts.element.trigger(a.Event("select2-open"))
            }, close: function () {
 
                this.opened() && (this.parent.close.apply(this, arguments), this.focusser.prop("disabled", !1),
                    this.opts.shouldFocusInput(this) && this.focusser.focus())
            }, focus: function () { this.opened() ? this.close() : (this.focusser.prop("disabled", !1), this.opts.shouldFocusInput(this) && this.focusser.focus()) }, isFocused: function ()
            { return this.container.hasClass("select2-container-active") }, cancel: function () {
                this.parent.cancel.apply(this, arguments), this.focusser.prop("disabled", !1),
                    this.opts.shouldFocusInput(this) && this.focusser.focus()
            }, destroy: function () {
 
                a("label[for='" + this.focusser.attr("id") + "']").attr("for", this.opts.element.attr("id")), this.parent.destroy.apply(this, arguments),
                    C.call(this, "selection", "focusser")
            }, initContainer: function () {
                
                var b, d, e = this.container, f = this.dropdown, g = I(); this.showSearch(this.opts.minimumResultsForSearch < 0 ? !1 : !0), this.selection = b = e.find(".select2-choice"),
                this.focusser = e.find(".select2-focusser"), b.find(".select2-chosen").attr("id", "select2-chosen-" + g),
                this.focusser.attr("aria-labelledby", "select2-chosen-" + g),
                this.results.attr("id", "select2-results-" + g),
                this.search.attr("aria-owns", "select2-results-" + g),
                this.focusser.attr("id", "s2id_autogen" + g), d = a("label[for='" + this.opts.element.attr("id") + "']"), this.focusser.prev().text(d.text()).attr("for", this.focusser.attr("id"));
                var h = this.opts.element.attr("title"); this.opts.element.attr("title", h || d.text()), this.focusser.attr("tabindex", this.elementTabIndex),
                this.search.attr("id", this.focusser.attr("id") + "_search"), this.search.prev().text(a("label[for='" +
                   this.focusser.attr("id") + "']").text()).attr("for", this.search.attr("id")), this.search.on("keydown", this.bind(function (a) {
 
                       if (this.isInterfaceEnabled() && 229 != a.keyCode) {
                           if (a.which === E.PAGE_UP || a.which === E.PAGE_DOWN) return void p(a); switch (a.which) {
                               case E.UP: case E.DOWN: return this.moveHighlight(a.which === E.UP ? -1 : 1), void p(a); case E.ENTER: return this.selectHighlighted(), void p(a); case E.TAB: return void this.selectHighlighted({ noFocus: !0 }); case E.ESC: return this.cancel(a), void p(a)
                           }
                       }
                   })), this.search.on("blur", this.bind(function () { document.activeElement === this.body.get(0) && window.setTimeout(this.bind(function () { this.opened() && this.search.focus() }), 0) })), this.focusser.on("keydown", this.bind(function (a) { if (this.isInterfaceEnabled() && a.which !== E.TAB && !E.isControl(a) && !E.isFunctionKey(a) && a.which !== E.ESC) { if (this.opts.openOnEnter === !1 && a.which === E.ENTER) return void p(a); if (a.which == E.DOWN || a.which == E.UP || a.which == E.ENTER && this.opts.openOnEnter) { if (a.altKey || a.ctrlKey || a.shiftKey || a.metaKey) return; return this.open(), void p(a) } return a.which == E.DELETE || a.which == E.BACKSPACE ? (this.opts.allowClear && this.clear(), void p(a)) : void 0 } })), j(this.focusser), this.focusser.on("keyup-change input", this.bind(function (a) { if (this.opts.minimumResultsForSearch >= 0) { if (a.stopPropagation(), this.opened()) return; this.open() } })), b.on("mousedown touchstart", "abbr", this.bind(function (a) { this.isInterfaceEnabled() && (this.clear(), q(a), this.close(), this.selection.focus()) })), b.on("mousedown touchstart", this.bind(function (d) { c(b), this.container.hasClass("select2-container-active") || this.opts.element.trigger(a.Event("select2-focus")), this.opened() ? this.close() : this.isInterfaceEnabled() && this.open(), p(d) })), f.on("mousedown touchstart", this.bind(function () { this.opts.shouldFocusInput(this) && this.search.focus() })), b.on("focus", this.bind(function (a) { p(a) })), this.focusser.on("focus", this.bind(function () { this.container.hasClass("select2-container-active") || this.opts.element.trigger(a.Event("select2-focus")), this.container.addClass("select2-container-active") })).on("blur", this.bind(function () { this.opened() || (this.container.removeClass("select2-container-active"), this.opts.element.trigger(a.Event("select2-blur"))) })), this.search.on("focus", this.bind(function () { this.container.hasClass("select2-container-active") || this.opts.element.trigger(a.Event("select2-focus")), this.container.addClass("select2-container-active") })), this.initContainerWidth(), this.opts.element.addClass("select2-offscreen"), this.setPlaceholder()
            }, clear: function (b) {
 
                var c = this.selection.data("select2-data"); if (c) {
                    var d = a.Event("select2-clearing"); if (this.opts.element.trigger(d), d.isDefaultPrevented()) return; var e = this.getPlaceholderOption(); this.opts.element.val(e ? e.val() : ""),
                        this.selection.find(".select2-chosen").empty(), this.selection.removeData("select2-data"), this.setPlaceholder(), b !== !1 && (this.opts.element.trigger({ type: "select2-removed", val: this.id(c), choice: c }), this.triggerChange({ removed: c }))
                }
            }, initSelection: function () { if (this.isPlaceholderOptionSelected()) this.updateSelection(null), this.close(), this.setPlaceholder(); else { var a = this; this.opts.initSelection.call(null, this.opts.element, function (c) { c !== b && null !== c && (a.updateSelection(c), a.close(), a.setPlaceholder(), a.nextSearchTerm = a.opts.nextSearchTerm(c, a.search.val())) }) } }, isPlaceholderOptionSelected: function () { var a; return this.getPlaceholder() === b ? !1 : (a = this.getPlaceholderOption()) !== b && a.prop("selected") || "" === this.opts.element.val() || this.opts.element.val() === b || null === this.opts.element.val() }, prepareOpts: function () { var b = this.parent.prepareOpts.apply(this, arguments), c = this; return "select" === b.element.get(0).tagName.toLowerCase() ? b.initSelection = function (a, b) { var d = a.find("option").filter(function () { return this.selected && !this.disabled }); b(c.optionToData(d)) } : "data" in b && (b.initSelection = b.initSelection || function (c, d) { var e = c.val(), f = null; b.query({ matcher: function (a, c, d) { var h = g(e, b.id(d)); return h && (f = d), h }, callback: a.isFunction(d) ? function () { d(f) } : a.noop }) }), b }, getPlaceholder: function () { return this.select && this.getPlaceholderOption() === b ? b : this.parent.getPlaceholder.apply(this, arguments) }, setPlaceholder: function () {
                var a = this.getPlaceholder(); if (this.isPlaceholderOptionSelected() && a !== b) {
                    if (this.select && this.getPlaceholderOption() === b) return;
                    this.selection.find(".select2-chosen").html(this.opts.escapeMarkup(a)), this.selection.addClass("select2-default"), this.container.removeClass("select2-allowclear")
                }
            }, postprocessResults: function (a, b, c) { var d = 0, e = this; if (this.findHighlightableChoices().each2(function (a, b) { return g(e.id(b.data("select2-data")), e.opts.element.val()) ? (d = a, !1) : void 0 }), c !== !1 && this.highlight(b === !0 && d >= 0 ? d : 0), b === !0) { var f = this.opts.minimumResultsForSearch; f >= 0 && this.showSearch(A(a.results) >= f) } }, showSearch: function (b) { this.showSearchInput !== b && (this.showSearchInput = b, this.dropdown.find(".select2-search").toggleClass("select2-search-hidden", !b), this.dropdown.find(".select2-search").toggleClass("select2-offscreen", !b), a(this.dropdown, this.container).toggleClass("select2-with-searchbox", b)) }, onSelect: function (a, b) { if (this.triggerSelect(a)) { var c = this.opts.element.val(), d = this.data(); this.opts.element.val(this.id(a)), this.updateSelection(a), this.opts.element.trigger({ type: "select2-selected", val: this.id(a), choice: a }), this.nextSearchTerm = this.opts.nextSearchTerm(a, this.search.val()), this.close(), b && b.noFocus || !this.opts.shouldFocusInput(this) || this.focusser.focus(), g(c, this.id(a)) || this.triggerChange({ added: a, removed: d }) } }, updateSelection: function (a) {
                var c, d, e = this.selection.find(".select2-chosen");
                this.selection.data("select2-data", a),  e.empty(), null !== a && (c = this.opts.formatSelection(a, e, this.opts.escapeMarkup)), c !== b && e.append(c),
                d = this.opts.formatSelectionCssClass(a, e), d !== b && e.addClass(d),
                 this.selection.removeClass("select2-default"), this.opts.allowClear && this.getPlaceholder() !== b && this.container.addClass("select2-allowclear")
            },
            val: function () { var a, c = !1, d = null, e = this, f = this.data(); if (0 === arguments.length) return this.opts.element.val(); if (a = arguments[0], arguments.length > 1 && (c = arguments[1]), this.select) this.select.val(a).find("option").filter(function () { return this.selected }).each2(function (a, b) { return d = e.optionToData(b), !1 }), this.updateSelection(d), this.setPlaceholder(), c && this.triggerChange({ added: d, removed: f }); else { if (!a && 0 !== a) return void this.clear(c); if (this.opts.initSelection === b) throw new Error("cannot call val() ifinitSelection() is not defined"); this.opts.element.val(a), this.opts.initSelection(this.opts.element, function (a) { e.opts.element.val(a ? e.id(a) : ""), e.updateSelection(a), e.setPlaceholder(), c && e.triggerChange({ added: a, removed: f }) }) } }, clearSearch: function () { this.search.val(""), this.focusser.val("") }, data: function (a) { var c, d = !1; return 0 === arguments.length ? (c = this.selection.data("select2-data"), c == b && (c = null), c) : (arguments.length > 1 && (d = arguments[1]), void (a ? (c = this.data(), this.opts.element.val(a ? this.id(a) : ""), this.updateSelection(a), d && this.triggerChange({ added: a, removed: c })) : this.clear(d))) }
        }), H = D(F, { createContainer: function () { var b = a(document.createElement("div")).attr({ "class": "select2-container select2-container-multi" }).html(["<ul class='select2-choices'>", "  <li class='select2-search-field'>", "    <label for='' class='select2-offscreen'></label>", "    <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input'>", "  </li>", "</ul>", "<div class='select2-drop select2-drop-multi select2-display-none'>", "   <ul class='select2-results'>", "   </ul>", "</div>"].join("")); return b }, prepareOpts: function () { var b = this.parent.prepareOpts.apply(this, arguments), c = this; return "select" === b.element.get(0).tagName.toLowerCase() ? b.initSelection = function (a, b) { var d = []; a.find("option").filter(function () { return this.selected && !this.disabled }).each2(function (a, b) { d.push(c.optionToData(b)) }), b(d) } : "data" in b && (b.initSelection = b.initSelection || function (c, d) { var e = h(c.val(), b.separator), f = []; b.query({ matcher: function (c, d, h) { var i = a.grep(e, function (a) { return g(a, b.id(h)) }).length; return i && f.push(h), i }, callback: a.isFunction(d) ? function () { for (var a = [], c = 0; c < e.length; c++) for (var h = e[c], i = 0; i < f.length; i++) { var j = f[i]; if (g(h, b.id(j))) { a.push(j), f.splice(i, 1); break } } d(a) } : a.noop }) }), b }, selectChoice: function (a) { var b = this.container.find(".select2-search-choice-focus"); b.length && a && a[0] == b[0] || (b.length && this.opts.element.trigger("choice-deselected", b), b.removeClass("select2-search-choice-focus"), a && a.length && (this.close(), a.addClass("select2-search-choice-focus"), this.opts.element.trigger("choice-selected", a))) }, destroy: function () { a("label[for='" + this.search.attr("id") + "']").attr("for", this.opts.element.attr("id")), this.parent.destroy.apply(this, arguments), C.call(this, "searchContainer", "selection") }, initContainer: function () { var b, c = ".select2-choices"; this.searchContainer = this.container.find(".select2-search-field"), this.selection = b = this.container.find(c); var d = this; this.selection.on("click", ".select2-search-choice:not(.select2-locked)", function () { d.search[0].focus(), d.selectChoice(a(this)) }), this.search.attr("id", "s2id_autogen" + I()), this.search.prev().text(a("label[for='" + this.opts.element.attr("id") + "']").text()).attr("for", this.search.attr("id")), this.search.on("input paste", this.bind(function () { this.search.attr("placeholder") && 0 == this.search.val().length || this.isInterfaceEnabled() && (this.opened() || this.open()) })), this.search.attr("tabindex", this.elementTabIndex), this.keydowns = 0, this.search.on("keydown", this.bind(function (a) { if (this.isInterfaceEnabled()) { ++this.keydowns; var c = b.find(".select2-search-choice-focus"), d = c.prev(".select2-search-choice:not(.select2-locked)"), e = c.next(".select2-search-choice:not(.select2-locked)"), f = o(this.search); if (c.length && (a.which == E.LEFT || a.which == E.RIGHT || a.which == E.BACKSPACE || a.which == E.DELETE || a.which == E.ENTER)) { var g = c; return a.which == E.LEFT && d.length ? g = d : a.which == E.RIGHT ? g = e.length ? e : null : a.which === E.BACKSPACE ? this.unselect(c.first()) && (this.search.width(10), g = d.length ? d : e) : a.which == E.DELETE ? this.unselect(c.first()) && (this.search.width(10), g = e.length ? e : null) : a.which == E.ENTER && (g = null), this.selectChoice(g), p(a), void (g && g.length || this.open()) } if ((a.which === E.BACKSPACE && 1 == this.keydowns || a.which == E.LEFT) && 0 == f.offset && !f.length) return this.selectChoice(b.find(".select2-search-choice:not(.select2-locked)").last()), void p(a); if (this.selectChoice(null), this.opened()) switch (a.which) { case E.UP: case E.DOWN: return this.moveHighlight(a.which === E.UP ? -1 : 1), void p(a); case E.ENTER: return this.selectHighlighted(), void p(a); case E.TAB: return this.selectHighlighted({ noFocus: !0 }), void this.close(); case E.ESC: return this.cancel(a), void p(a) } if (a.which !== E.TAB && !E.isControl(a) && !E.isFunctionKey(a) && a.which !== E.BACKSPACE && a.which !== E.ESC) { if (a.which === E.ENTER) { if (this.opts.openOnEnter === !1) return; if (a.altKey || a.ctrlKey || a.shiftKey || a.metaKey) return } this.open(), (a.which === E.PAGE_UP || a.which === E.PAGE_DOWN) && p(a), a.which === E.ENTER && p(a) } } })), this.search.on("keyup", this.bind(function () { this.keydowns = 0, this.resizeSearch() })), this.search.on("blur", this.bind(function (b) { this.container.removeClass("select2-container-active"), this.search.removeClass("select2-focused"), this.selectChoice(null), this.opened() || this.clearSearch(), b.stopImmediatePropagation(), this.opts.element.trigger(a.Event("select2-blur")) })), this.container.on("click", c, this.bind(function (b) { this.isInterfaceEnabled() && (a(b.target).closest(".select2-search-choice").length > 0 || (this.selectChoice(null), this.clearPlaceholder(), this.container.hasClass("select2-container-active") || this.opts.element.trigger(a.Event("select2-focus")), this.open(), this.focusSearch(), b.preventDefault())) })), this.container.on("focus", c, this.bind(function () { this.isInterfaceEnabled() && (this.container.hasClass("select2-container-active") || this.opts.element.trigger(a.Event("select2-focus")), this.container.addClass("select2-container-active"), this.dropdown.addClass("select2-drop-active"), this.clearPlaceholder()) })), this.initContainerWidth(), this.opts.element.addClass("select2-offscreen"), this.clearSearch() }, enableInterface: function () { this.parent.enableInterface.apply(this, arguments) && this.search.prop("disabled", !this.isInterfaceEnabled()) }, initSelection: function () { if ("" === this.opts.element.val() && "" === this.opts.element.text() && (this.updateSelection([]), this.close(), this.clearSearch()), this.select || "" !== this.opts.element.val()) { var a = this; this.opts.initSelection.call(null, this.opts.element, function (c) { c !== b && null !== c && (a.updateSelection(c), a.close(), a.clearSearch()) }) } }, clearSearch: function () { var a = this.getPlaceholder(), c = this.getMaxSearchWidth(); a !== b && 0 === this.getVal().length && this.search.hasClass("select2-focused") === !1 ? (this.search.val(a).addClass("select2-default"), this.search.width(c > 0 ? c : this.container.css("width"))) : this.search.val("").width(10) }, clearPlaceholder: function () { this.search.hasClass("select2-default") && this.search.val("").removeClass("select2-default") }, opening: function () { this.clearPlaceholder(), this.resizeSearch(), this.parent.opening.apply(this, arguments), this.focusSearch(), "" === this.search.val() && this.nextSearchTerm != b && (this.search.val(this.nextSearchTerm), this.search.select()), this.updateResults(!0), this.opts.shouldFocusInput(this) && this.search.focus(), this.opts.element.trigger(a.Event("select2-open")) }, close: function () { this.opened() && this.parent.close.apply(this, arguments) }, focus: function () { this.close(), this.search.focus() }, isFocused: function () { return this.search.hasClass("select2-focused") }, updateSelection: function (b) { var c = [], d = [], f = this; a(b).each(function () { e(f.id(this), c) < 0 && (c.push(f.id(this)), d.push(this)) }), b = d, this.selection.find(".select2-search-choice").remove(), a(b).each(function () { f.addSelectedChoice(this) }), f.postprocessResults() }, tokenize: function () { var a = this.search.val(); a = this.opts.tokenizer.call(this, a, this.data(), this.bind(this.onSelect), this.opts), null != a && a != b && (this.search.val(a), a.length > 0 && this.open()) }, onSelect: function (a, c) { this.triggerSelect(a) && "" !== a.text && (this.addSelectedChoice(a), this.opts.element.trigger({ type: "selected", val: this.id(a), choice: a }), this.nextSearchTerm = this.opts.nextSearchTerm(a, this.search.val()), this.clearSearch(), this.updateResults(), (this.select || !this.opts.closeOnSelect) && this.postprocessResults(a, !1, this.opts.closeOnSelect === !0), this.opts.closeOnSelect ? (this.close(), this.search.width(10)) : this.countSelectableResults() > 0 ? (this.search.width(10), this.resizeSearch(), this.getMaximumSelectionSize() > 0 && this.val().length >= this.getMaximumSelectionSize() ? this.updateResults(!0) : this.nextSearchTerm != b && (this.search.val(this.nextSearchTerm), this.updateResults(), this.search.select()), this.positionDropdown()) : (this.close(), this.search.width(10)), this.triggerChange({ added: a }), c && c.noFocus || this.focusSearch()) }, cancel: function () { this.close(), this.focusSearch() }, addSelectedChoice: function (c) { var d, e, f = !c.locked, g = a("<li class='select2-search-choice'>    <div></div>    <a href='#' class='select2-search-choice-close' tabindex='-1'></a></li>"), h = a("<li class='select2-search-choice select2-locked'><div></div></li>"), i = f ? g : h, j = this.id(c), k = this.getVal(); d = this.opts.formatSelection(c, i.find("div"), this.opts.escapeMarkup), d != b && i.find("div").replaceWith("<div>" + d + "</div>"), e = this.opts.formatSelectionCssClass(c, i.find("div")), e != b && i.addClass(e), f && i.find(".select2-search-choice-close").on("mousedown", p).on("click dblclick", this.bind(function (b) { this.isInterfaceEnabled() && (this.unselect(a(b.target)), this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus"), p(b), this.close(), this.focusSearch()) })).on("focus", this.bind(function () { this.isInterfaceEnabled() && (this.container.addClass("select2-container-active"), this.dropdown.addClass("select2-drop-active")) })), i.data("select2-data", c), i.insertBefore(this.searchContainer), k.push(j), this.setVal(k) }, unselect: function (b) { var c, d, f = this.getVal(); if (b = b.closest(".select2-search-choice"), 0 === b.length) throw "Invalid argument: " + b + ". Must be .select2-search-choice"; if (c = b.data("select2-data")) { var g = a.Event("select2-removing"); if (g.val = this.id(c), g.choice = c, this.opts.element.trigger(g), g.isDefaultPrevented()) return !1; for (; (d = e(this.id(c), f)) >= 0;) f.splice(d, 1), this.setVal(f), this.select && this.postprocessResults(); return b.remove(), this.opts.element.trigger({ type: "select2-removed", val: this.id(c), choice: c }), this.triggerChange({ removed: c }), !0 } }, postprocessResults: function (a, b, c) { var d = this.getVal(), f = this.results.find(".select2-result"), g = this.results.find(".select2-result-with-children"), h = this; f.each2(function (a, b) { var c = h.id(b.data("select2-data")); e(c, d) >= 0 && (b.addClass("select2-selected"), b.find(".select2-result-selectable").addClass("select2-selected")) }), g.each2(function (a, b) { b.is(".select2-result-selectable") || 0 !== b.find(".select2-result-selectable:not(.select2-selected)").length || b.addClass("select2-selected") }), -1 == this.highlight() && c !== !1 && h.highlight(0), !this.opts.createSearchChoice && !f.filter(".select2-result:not(.select2-selected)").length > 0 && (!a || a && !a.more && 0 === this.results.find(".select2-no-results").length) && y(h.opts.formatNoMatches, "formatNoMatches") && this.results.append("<li class='select2-no-results'>" + z(h.opts.formatNoMatches, h.opts.element, h.search.val()) + "</li>") }, getMaxSearchWidth: function () { return this.selection.width() - i(this.search) }, resizeSearch: function () { var a, b, c, d, e, f = i(this.search); a = r(this.search) + 10, b = this.search.offset().left, c = this.selection.width(), d = this.selection.offset().left, e = c - (b - d) - f, a > e && (e = c - f), 40 > e && (e = c - f), 0 >= e && (e = a), this.search.width(Math.floor(e)) }, getVal: function () { var a; return this.select ? (a = this.select.val(), null === a ? [] : a) : (a = this.opts.element.val(), h(a, this.opts.separator)) }, setVal: function (b) { var c; this.select ? this.select.val(b) : (c = [], a(b).each(function () { e(this, c) < 0 && c.push(this) }), this.opts.element.val(0 === c.length ? "" : c.join(this.opts.separator))) }, buildChangeDetails: function (a, b) { for (var b = b.slice(0), a = a.slice(0), c = 0; c < b.length; c++) for (var d = 0; d < a.length; d++) g(this.opts.id(b[c]), this.opts.id(a[d])) && (b.splice(c, 1), c > 0 && c--, a.splice(d, 1), d--); return { added: b, removed: a } }, val: function (c, d) { var e, f = this; if (0 === arguments.length) return this.getVal(); if (e = this.data(), e.length || (e = []), !c && 0 !== c) return this.opts.element.val(""), this.updateSelection([]), this.clearSearch(), void (d && this.triggerChange({ added: this.data(), removed: e })); if (this.setVal(c), this.select) this.opts.initSelection(this.select, this.bind(this.updateSelection)), d && this.triggerChange(this.buildChangeDetails(e, this.data())); else { if (this.opts.initSelection === b) throw new Error("val() cannot be called ifinitSelection() is not defined"); this.opts.initSelection(this.opts.element, function (b) { var c = a.map(b, f.id); f.setVal(c), f.updateSelection(b), f.clearSearch(), d && f.triggerChange(f.buildChangeDetails(e, f.data())) }) } this.clearSearch() }, onSortStart: function () { if (this.select) throw new Error("Sorting of elements is not supported when attached to <select>. Attach to <input type='hidden'/> instead."); this.search.width(0), this.searchContainer.hide() }, onSortEnd: function () { var b = [], c = this; this.searchContainer.show(), this.searchContainer.appendTo(this.searchContainer.parent()), this.resizeSearch(), this.selection.find(".select2-search-choice").each(function () { b.push(c.opts.id(a(this).data("select2-data"))) }), this.setVal(b), this.triggerChange() }, data: function (b, c) { var d, e, f = this; return 0 === arguments.length ? this.selection.children(".select2-search-choice").map(function () { return a(this).data("select2-data") }).get() : (e = this.data(), b || (b = []), d = a.map(b, function (a) { return f.opts.id(a) }), this.setVal(d), this.updateSelection(b), this.clearSearch(), c && this.triggerChange(this.buildChangeDetails(e, this.data())), void 0) } }), a.fn.select2 = function () { var c, d, f, g, h, i = Array.prototype.slice.call(arguments, 0), j = ["val", "destroy", "opened", "open", "close", "focus", "isFocused", "container", "dropdown", "onSortStart", "onSortEnd", "enable", "disable", "readonly", "positionDropdown", "data", "search"], k = ["opened", "isFocused", "container", "dropdown"], l = ["val", "data"], m = { search: "externalSearch" }; return this.each(function () { if (0 === i.length || "object" == typeof i[0]) c = 0 === i.length ? {} : a.extend({}, i[0]), c.element = a(this), "select" === c.element.get(0).tagName.toLowerCase() ? h = c.element.prop("multiple") : (h = c.multiple || !1, "tags" in c && (c.multiple = h = !0)), d = h ? new window.Select2["class"].multi : new window.Select2["class"].single, d.init(c); else { if ("string" != typeof i[0]) throw "Invalid arguments to select2 plugin: " + i; if (e(i[0], j) < 0) throw "Unknown method: " + i[0]; if (g = b, d = a(this).data("select2"), d === b) return; if (f = i[0], "container" === f ? g = d.container : "dropdown" === f ? g = d.dropdown : (m[f] && (f = m[f]), g = d[f].apply(d, i.slice(1))), e(i[0], k) >= 0 || e(i[0], l) >= 0 && 1 == i.length) return !1 } }), g === b ? this : g }, a.fn.select2.defaults = { width: "copy", loadMorePadding: 0, closeOnSelect: !0, openOnEnter: !0, containerCss: {}, dropdownCss: {}, containerCssClass: "", dropdownCssClass: "", formatResult: function (a, b, c, d) { var e = []; return t(a.text, c.term, e, d), e.join("") }, formatSelection: function (a, c, d) { return a ? d(a.text) : b }, sortResults: function (a) { return a }, formatResultCssClass: function (a) { return a.css }, formatSelectionCssClass: function () { return b }, minimumResultsForSearch: 0, minimumInputLength: 0, maximumInputLength: null, maximumSelectionSize: 0, id: function (a) { return a == b ? null : a.id }, matcher: function (a, b) { return d("" + b).toUpperCase().indexOf(d("" + a).toUpperCase()) >= 0 }, separator: ",", tokenSeparators: [], tokenizer: B, escapeMarkup: u, blurOnChange: !1, selectOnBlur: !1, adaptContainerCssClass: function (a) { return a }, adaptDropdownCssClass: function () { return null }, nextSearchTerm: function () { return b }, searchInputPlaceholder: "", createSearchChoicePosition: "top", shouldFocusInput: function (a) { var b = "ontouchstart" in window || navigator.msMaxTouchPoints > 0; return b && a.opts.minimumResultsForSearch < 0 ? !1 : !0 } }, a.fn.select2.locales = [], a.fn.select2.locales.en = { formatMatches: function (a) { return 1 === a ? "One result is available, press enter to select it." : a + " results are available, use up and down arrow keys to navigate." }, formatNoMatches: function () { return "No matches found" }, formatAjaxError: function () { return "Loading failed" }, formatInputTooShort: function (a, b) { var c = b - a.length; return "Please enter " + c + " or more character" + (1 == c ? "" : "s") }, formatInputTooLong: function (a, b) { var c = a.length - b; return "Please delete " + c + " character" + (1 == c ? "" : "s") }, formatSelectionTooBig: function (a) { return "You can only select " + a + " item" + (1 == a ? "" : "s") }, formatLoadMore: function () { return "Loading more results…" }, formatSearching: function () { return "Searching…" } }, a.extend(a.fn.select2.defaults, a.fn.select2.locales.en), a.fn.select2.ajaxDefaults = { transport: a.ajax, params: { type: "GET", cache: !1, dataType: "json" } }, window.Select2 = { query: { ajax: v, local: w, tags: x }, util: { debounce: l, markMatch: t, escapeMarkup: u, stripDiacritics: d }, "class": { "abstract": F, single: G, multi: H } }
    }
}(jQuery), +function (a, b) { "use strict"; function c(c) { return this.each(function () { var e = b(this), f = e.data("radiocheck"), g = "object" == typeof c && c; if (f || "destroy" != c) { f || e.data("radiocheck", f = new d(this, g)), "string" == typeof c && f[c](); var h = /mobile|tablet|phone|ip(ad|od)|android|silk|webos/i.test(a.navigator.userAgent); h === !0 && e.parent().hover(function () { e.addClass("nohover") }, function () { e.removeClass("nohover") }) } }) } var d = function (a, b) { this.init("radiocheck", a, b) }; d.DEFAULTS = { checkboxClass: "custom-checkbox", radioClass: "custom-radio", checkboxTemplate: '<span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>', radioTemplate: '<span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>' }, d.prototype.init = function (a, c, e) { this.$element = b(c), this.options = b.extend({}, d.DEFAULTS, this.$element.data(), e), "checkbox" == this.$element.attr("type") ? (this.$element.addClass(this.options.checkboxClass), this.$element.after(this.options.checkboxTemplate)) : "radio" == this.$element.attr("type") && (this.$element.addClass(this.options.radioClass), this.$element.after(this.options.radioTemplate)) }, d.prototype.check = function () { this.$element.prop("checked", !0), this.$element.trigger("change.radiocheck").trigger("checked.radiocheck") }, d.prototype.uncheck = function () { this.$element.prop("checked", !1), this.$element.trigger("change.radiocheck").trigger("unchecked.radiocheck") }, d.prototype.toggle = function () { this.$element.prop("checked", function (a, b) { return !b }), this.$element.trigger("change.radiocheck").trigger("toggled.radiocheck") }, d.prototype.indeterminate = function () { this.$element.prop("indeterminate", !0), this.$element.trigger("change.radiocheck").trigger("indeterminated.radiocheck") }, d.prototype.determinate = function () { this.$element.prop("indeterminate", !1), this.$element.trigger("change.radiocheck").trigger("determinated.radiocheck") }, d.prototype.disable = function () { this.$element.prop("disabled", !0), this.$element.trigger("change.radiocheck").trigger("disabled.radiocheck") }, d.prototype.enable = function () { this.$element.prop("disabled", !1), this.$element.trigger("change.radiocheck").trigger("enabled.radiocheck") }, d.prototype.destroy = function () { this.$element.removeData().removeClass(this.options.checkboxClass + " " + this.options.radioClass).next(".icons").remove(), this.$element.trigger("destroyed.radiocheck") }; var e = b.fn.radiocheck; b.fn.radiocheck = c, b.fn.radiocheck.Constructor = d, b.fn.radiocheck.noConflict = function () { return b.fn.radiocheck = e, this } }(this, jQuery);