/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
!(function (n) {
    "function" == typeof define && define.amd
        ? define(["jquery"], n)
        : "object" == typeof module && module.exports
        ? (module.exports = function (e, t) {
              return void 0 === t && (t = "undefined" != typeof window ? require("jquery") : require("jquery")(e)), n(t), t;
          })
        : n(jQuery);
})(function (u) {
    var e = (function () {
            if (u && u.fn && u.fn.select2 && u.fn.select2.amd) var e = u.fn.select2.amd;
            var t, n, r, h, o, s, f, g, m, v, y, _, i, a, b;
            function w(e, t) {
                return i.call(e, t);
            }
            function l(e, t) {
                var n,
                    r,
                    i,
                    o,
                    s,
                    a,
                    l,
                    c,
                    u,
                    d,
                    p,
                    h = t && t.split("/"),
                    f = y.map,
                    g = (f && f["*"]) || {};
                if (e) {
                    for (s = (e = e.split("/")).length - 1, y.nodeIdCompat && b.test(e[s]) && (e[s] = e[s].replace(b, "")), "." === e[0].charAt(0) && h && (e = h.slice(0, h.length - 1).concat(e)), u = 0; u < e.length; u++)
                        if ("." === (p = e[u])) e.splice(u, 1), --u;
                        else if (".." === p) {
                            if (0 === u || (1 === u && ".." === e[2]) || ".." === e[u - 1]) continue;
                            0 < u && (e.splice(u - 1, 2), (u -= 2));
                        }
                    e = e.join("/");
                }
                if ((h || g) && f) {
                    for (u = (n = e.split("/")).length; 0 < u; --u) {
                        if (((r = n.slice(0, u).join("/")), h))
                            for (d = h.length; 0 < d; --d)
                                if ((i = (i = f[h.slice(0, d).join("/")]) && i[r])) {
                                    (o = i), (a = u);
                                    break;
                                }
                        if (o) break;
                        !l && g && g[r] && ((l = g[r]), (c = u));
                    }
                    !o && l && ((o = l), (a = c)), o && (n.splice(0, a, o), (e = n.join("/")));
                }
                return e;
            }
            function A(t, n) {
                return function () {
                    var e = a.call(arguments, 0);
                    return "string" != typeof e[0] && 1 === e.length && e.push(null), s.apply(h, e.concat([t, n]));
                };
            }
            function x(t) {
                return function (e) {
                    m[t] = e;
                };
            }
            function D(e) {
                if (w(v, e)) {
                    var t = v[e];
                    delete v[e], (_[e] = !0), o.apply(h, t);
                }
                if (!w(m, e) && !w(_, e)) throw new Error("No " + e);
                return m[e];
            }
            function c(e) {
                var t,
                    n = e ? e.indexOf("!") : -1;
                return -1 < n && ((t = e.substring(0, n)), (e = e.substring(n + 1, e.length))), [t, e];
            }
            function S(e) {
                return e ? c(e) : [];
            }
            return (
                (e && e.requirejs) ||
                    (e ? (n = e) : (e = {}),
                    (m = {}),
                    (v = {}),
                    (y = {}),
                    (_ = {}),
                    (i = Object.prototype.hasOwnProperty),
                    (a = [].slice),
                    (b = /\.js$/),
                    (f = function (e, t) {
                        var n,
                            r,
                            i = c(e),
                            o = i[0],
                            s = t[1];
                        return (
                            (e = i[1]),
                            o && (n = D((o = l(o, s)))),
                            o
                                ? (e =
                                      n && n.normalize
                                          ? n.normalize(
                                                e,
                                                ((r = s),
                                                function (e) {
                                                    return l(e, r);
                                                })
                                            )
                                          : l(e, s))
                                : ((o = (i = c((e = l(e, s))))[0]), (e = i[1]), o && (n = D(o))),
                            { f: o ? o + "!" + e : e, n: e, pr: o, p: n }
                        );
                    }),
                    (g = {
                        require: function (e) {
                            return A(e);
                        },
                        exports: function (e) {
                            var t = m[e];
                            return void 0 !== t ? t : (m[e] = {});
                        },
                        module: function (e) {
                            return {
                                id: e,
                                uri: "",
                                exports: m[e],
                                config:
                                    ((t = e),
                                    function () {
                                        return (y && y.config && y.config[t]) || {};
                                    }),
                            };
                            var t;
                        },
                    }),
                    (o = function (e, t, n, r) {
                        var i,
                            o,
                            s,
                            a,
                            l,
                            c,
                            u,
                            d = [],
                            p = typeof n;
                        if (((c = S((r = r || e))), "undefined" == p || "function" == p)) {
                            for (t = !t.length && n.length ? ["require", "exports", "module"] : t, l = 0; l < t.length; l += 1)
                                if ("require" === (o = (a = f(t[l], c)).f)) d[l] = g.require(e);
                                else if ("exports" === o) (d[l] = g.exports(e)), (u = !0);
                                else if ("module" === o) i = d[l] = g.module(e);
                                else if (w(m, o) || w(v, o) || w(_, o)) d[l] = D(o);
                                else {
                                    if (!a.p) throw new Error(e + " missing " + o);
                                    a.p.load(a.n, A(r, !0), x(o), {}), (d[l] = m[o]);
                                }
                            (s = n ? n.apply(m[e], d) : void 0), e && (i && i.exports !== h && i.exports !== m[e] ? (m[e] = i.exports) : (s === h && u) || (m[e] = s));
                        } else e && (m[e] = n);
                    }),
                    (t = n = s = function (e, t, n, r, i) {
                        if ("string" == typeof e) return g[e] ? g[e](t) : D(f(e, S(t)).f);
                        if (!e.splice) {
                            if (((y = e).deps && s(y.deps, y.callback), !t)) return;
                            t.splice ? ((e = t), (t = n), (n = null)) : (e = h);
                        }
                        return (
                            (t = t || function () {}),
                            "function" == typeof n && ((n = r), (r = i)),
                            r
                                ? o(h, e, t, n)
                                : setTimeout(function () {
                                      o(h, e, t, n);
                                  }, 4),
                            s
                        );
                    }),
                    (s.config = function (e) {
                        return s(e);
                    }),
                    (t._defined = m),
                    ((r = function (e, t, n) {
                        if ("string" != typeof e) throw new Error("See almond README: incorrect module build, no module name");
                        t.splice || ((n = t), (t = [])), w(m, e) || w(v, e) || (v[e] = [e, t, n]);
                    }).amd = { jQuery: !0 }),
                    (e.requirejs = t),
                    (e.require = n),
                    (e.define = r)),
                e.define("almond", function () {}),
                e.define("jquery", [], function () {
                    var e = u || $;
                    return null == e && console && console.error && console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."), e;
                }),
                e.define("select2/utils", ["jquery"], function (o) {
                    var i = {};
                    function u(e) {
                        var t = e.prototype,
                            n = [];
                        for (var r in t) {
                            "function" == typeof t[r] && "constructor" !== r && n.push(r);
                        }
                        return n;
                    }
                    (i.Extend = function (e, t) {
                        var n = {}.hasOwnProperty;
                        function r() {
                            this.constructor = e;
                        }
                        for (var i in t) n.call(t, i) && (e[i] = t[i]);
                        return (r.prototype = t.prototype), (e.prototype = new r()), (e.__super__ = t.prototype), e;
                    }),
                        (i.Decorate = function (r, i) {
                            var e = u(i),
                                t = u(r);
                            function o() {
                                var e = Array.prototype.unshift,
                                    t = i.prototype.constructor.length,
                                    n = r.prototype.constructor;
                                0 < t && (e.call(arguments, r.prototype.constructor), (n = i.prototype.constructor)), n.apply(this, arguments);
                            }
                            (i.displayName = r.displayName),
                                (o.prototype = new (function () {
                                    this.constructor = o;
                                })());
                            for (var n = 0; n < t.length; n++) {
                                var s = t[n];
                                o.prototype[s] = r.prototype[s];
                            }
                            function a(e) {
                                var t = function () {};
                                e in o.prototype && (t = o.prototype[e]);
                                var n = i.prototype[e];
                                return function () {
                                    return Array.prototype.unshift.call(arguments, t), n.apply(this, arguments);
                                };
                            }
                            for (var l = 0; l < e.length; l++) {
                                var c = e[l];
                                o.prototype[c] = a(c);
                            }
                            return o;
                        });
                    function e() {
                        this.listeners = {};
                    }
                    (e.prototype.on = function (e, t) {
                        (this.listeners = this.listeners || {}), e in this.listeners ? this.listeners[e].push(t) : (this.listeners[e] = [t]);
                    }),
                        (e.prototype.trigger = function (e) {
                            var t = Array.prototype.slice,
                                n = t.call(arguments, 1);
                            (this.listeners = this.listeners || {}),
                                null == n && (n = []),
                                0 === n.length && n.push({}),
                                (n[0]._type = e) in this.listeners && this.invoke(this.listeners[e], t.call(arguments, 1)),
                                "*" in this.listeners && this.invoke(this.listeners["*"], arguments);
                        }),
                        (e.prototype.invoke = function (e, t) {
                            for (var n = 0, r = e.length; n < r; n++) e[n].apply(this, t);
                        }),
                        (i.Observable = e),
                        (i.generateChars = function (e) {
                            for (var t = "", n = 0; n < e; n++) {
                                t += Math.floor(36 * Math.random()).toString(36);
                            }
                            return t;
                        }),
                        (i.bind = function (e, t) {
                            return function () {
                                e.apply(t, arguments);
                            };
                        }),
                        (i._convertData = function (e) {
                            for (var t in e) {
                                var n = t.split("-"),
                                    r = e;
                                if (1 !== n.length) {
                                    for (var i = 0; i < n.length; i++) {
                                        var o = n[i];
                                        (o = o.substring(0, 1).toLowerCase() + o.substring(1)) in r || (r[o] = {}), i == n.length - 1 && (r[o] = e[t]), (r = r[o]);
                                    }
                                    delete e[t];
                                }
                            }
                            return e;
                        }),
                        (i.hasScroll = function (e, t) {
                            var n = o(t),
                                r = t.style.overflowX,
                                i = t.style.overflowY;
                            return (r !== i || ("hidden" !== i && "visible" !== i)) && ("scroll" === r || "scroll" === i || n.innerHeight() < t.scrollHeight || n.innerWidth() < t.scrollWidth);
                        }),
                        (i.escapeMarkup = function (e) {
                            var t = { "\\": "&#92;", "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;", "/": "&#47;" };
                            return "string" != typeof e
                                ? e
                                : String(e).replace(/[&<>"'\/\\]/g, function (e) {
                                      return t[e];
                                  });
                        }),
                        (i.appendMany = function (e, t) {
                            if ("1.7" === o.fn.jquery.substr(0, 3)) {
                                var n = o();
                                o.map(t, function (e) {
                                    n = n.add(e);
                                }),
                                    (t = n);
                            }
                            e.append(t);
                        }),
                        (i.__cache = {});
                    var n = 0;
                    return (
                        (i.GetUniqueElementId = function (e) {
                            var t = e.getAttribute("data-select2-id");
                            return null == t && (e.id ? ((t = e.id), e.setAttribute("data-select2-id", t)) : (e.setAttribute("data-select2-id", ++n), (t = n.toString()))), t;
                        }),
                        (i.StoreData = function (e, t, n) {
                            var r = i.GetUniqueElementId(e);
                            i.__cache[r] || (i.__cache[r] = {}), (i.__cache[r][t] = n);
                        }),
                        (i.GetData = function (e, t) {
                            var n = i.GetUniqueElementId(e);
                            return t ? (i.__cache[n] && null != i.__cache[n][t] ? i.__cache[n][t] : o(e).data(t)) : i.__cache[n];
                        }),
                        (i.RemoveData = function (e) {
                            var t = i.GetUniqueElementId(e);
                            null != i.__cache[t] && delete i.__cache[t], e.removeAttribute("data-select2-id");
                        }),
                        i
                    );
                }),
                e.define("select2/results", ["jquery", "./utils"], function (h, f) {
                    function r(e, t, n) {
                        (this.$element = e), (this.data = n), (this.options = t), r.__super__.constructor.call(this);
                    }
                    return (
                        f.Extend(r, f.Observable),
                        (r.prototype.render = function () {
                            var e = h('<ul class="select2-results__options" role="listbox"></ul>');
                            return this.options.get("multiple") && e.attr("aria-multiselectable", "true"), (this.$results = e);
                        }),
                        (r.prototype.clear = function () {
                            this.$results.empty();
                        }),
                        (r.prototype.displayMessage = function (e) {
                            var t = this.options.get("escapeMarkup");
                            this.clear(), this.hideLoading();
                            var n = h('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),
                                r = this.options.get("translations").get(e.message);
                            n.append(t(r(e.args))), (n[0].className += " select2-results__message"), this.$results.append(n);
                        }),
                        (r.prototype.hideMessages = function () {
                            this.$results.find(".select2-results__message").remove();
                        }),
                        (r.prototype.append = function (e) {
                            this.hideLoading();
                            var t = [];
                            if (null != e.results && 0 !== e.results.length) {
                                e.results = this.sort(e.results);
                                for (var n = 0; n < e.results.length; n++) {
                                    var r = e.results[n],
                                        i = this.option(r);
                                    t.push(i);
                                }
                                this.$results.append(t);
                            } else 0 === this.$results.children().length && this.trigger("results:message", { message: "noResults" });
                        }),
                        (r.prototype.position = function (e, t) {
                            t.find(".select2-results").append(e);
                        }),
                        (r.prototype.sort = function (e) {
                            return this.options.get("sorter")(e);
                        }),
                        (r.prototype.highlightFirstItem = function () {
                            var e = this.$results.find(".select2-results__option[aria-selected]"),
                                t = e.filter("[aria-selected=true]");
                            0 < t.length ? t.first().trigger("mouseenter") : e.first().trigger("mouseenter"), this.ensureHighlightVisible();
                        }),
                        (r.prototype.setClasses = function () {
                            var t = this;
                            this.data.current(function (e) {
                                var r = h.map(e, function (e) {
                                    return e.id.toString();
                                });
                                t.$results.find(".select2-results__option[aria-selected]").each(function () {
                                    var e = h(this),
                                        t = f.GetData(this, "data"),
                                        n = "" + t.id;
                                    (null != t.element && t.element.selected) || (null == t.element && -1 < h.inArray(n, r)) ? e.attr("aria-selected", "true") : e.attr("aria-selected", "false");
                                });
                            });
                        }),
                        (r.prototype.showLoading = function (e) {
                            this.hideLoading();
                            var t = { disabled: !0, loading: !0, text: this.options.get("translations").get("searching")(e) },
                                n = this.option(t);
                            (n.className += " loading-results"), this.$results.prepend(n);
                        }),
                        (r.prototype.hideLoading = function () {
                            this.$results.find(".loading-results").remove();
                        }),
                        (r.prototype.option = function (e) {
                            var t = document.createElement("li");
                            t.className = "select2-results__option";
                            var n = { role: "option", "aria-selected": "false" },
                                r = window.Element.prototype.matches || window.Element.prototype.msMatchesSelector || window.Element.prototype.webkitMatchesSelector;
                            for (var i in (((null != e.element && r.call(e.element, ":disabled")) || (null == e.element && e.disabled)) && (delete n["aria-selected"], (n["aria-disabled"] = "true")),
                            null == e.id && delete n["aria-selected"],
                            null != e._resultId && (t.id = e._resultId),
                            e.title && (t.title = e.title),
                            e.children && ((n.role = "group"), (n["aria-label"] = e.text), delete n["aria-selected"]),
                            n)) {
                                var o = n[i];
                                t.setAttribute(i, o);
                            }
                            if (e.children) {
                                var s = h(t),
                                    a = document.createElement("strong");
                                a.className = "select2-results__group";
                                h(a);
                                this.template(e, a);
                                for (var l = [], c = 0; c < e.children.length; c++) {
                                    var u = e.children[c],
                                        d = this.option(u);
                                    l.push(d);
                                }
                                var p = h("<ul></ul>", { class: "select2-results__options select2-results__options--nested" });
                                p.append(l), s.append(a), s.append(p);
                            } else this.template(e, t);
                            return f.StoreData(t, "data", e), t;
                        }),
                        (r.prototype.bind = function (t, e) {
                            var l = this,
                                n = t.id + "-results";
                            this.$results.attr("id", n),
                                t.on("results:all", function (e) {
                                    l.clear(), l.append(e.data), t.isOpen() && (l.setClasses(), l.highlightFirstItem());
                                }),
                                t.on("results:append", function (e) {
                                    l.append(e.data), t.isOpen() && l.setClasses();
                                }),
                                t.on("query", function (e) {
                                    l.hideMessages(), l.showLoading(e);
                                }),
                                t.on("select", function () {
                                    t.isOpen() && (l.setClasses(), l.options.get("scrollAfterSelect") && l.highlightFirstItem());
                                }),
                                t.on("unselect", function () {
                                    t.isOpen() && (l.setClasses(), l.options.get("scrollAfterSelect") && l.highlightFirstItem());
                                }),
                                t.on("open", function () {
                                    l.$results.attr("aria-expanded", "true"), l.$results.attr("aria-hidden", "false"), l.setClasses(), l.ensureHighlightVisible();
                                }),
                                t.on("close", function () {
                                    l.$results.attr("aria-expanded", "false"), l.$results.attr("aria-hidden", "true"), l.$results.removeAttr("aria-activedescendant");
                                }),
                                t.on("results:toggle", function () {
                                    var e = l.getHighlightedResults();
                                    0 !== e.length && e.trigger("mouseup");
                                }),
                                t.on("results:select", function () {
                                    var e = l.getHighlightedResults();
                                    if (0 !== e.length) {
                                        var t = f.GetData(e[0], "data");
                                        "true" == e.attr("aria-selected") ? l.trigger("close", {}) : l.trigger("select", { data: t });
                                    }
                                }),
                                t.on("results:previous", function () {
                                    var e = l.getHighlightedResults(),
                                        t = l.$results.find("[aria-selected]"),
                                        n = t.index(e);
                                    if (!(n <= 0)) {
                                        var r = n - 1;
                                        0 === e.length && (r = 0);
                                        var i = t.eq(r);
                                        i.trigger("mouseenter");
                                        var o = l.$results.offset().top,
                                            s = i.offset().top,
                                            a = l.$results.scrollTop() + (s - o);
                                        0 === r ? l.$results.scrollTop(0) : s - o < 0 && l.$results.scrollTop(a);
                                    }
                                }),
                                t.on("results:next", function () {
                                    var e = l.getHighlightedResults(),
                                        t = l.$results.find("[aria-selected]"),
                                        n = t.index(e) + 1;
                                    if (!(n >= t.length)) {
                                        var r = t.eq(n);
                                        r.trigger("mouseenter");
                                        var i = l.$results.offset().top + l.$results.outerHeight(!1),
                                            o = r.offset().top + r.outerHeight(!1),
                                            s = l.$results.scrollTop() + o - i;
                                        0 === n ? l.$results.scrollTop(0) : i < o && l.$results.scrollTop(s);
                                    }
                                }),
                                t.on("results:focus", function (e) {
                                    e.element.addClass("select2-results__option--highlighted");
                                }),
                                t.on("results:message", function (e) {
                                    l.displayMessage(e);
                                }),
                                h.fn.mousewheel &&
                                    this.$results.on("mousewheel", function (e) {
                                        var t = l.$results.scrollTop(),
                                            n = l.$results.get(0).scrollHeight - t + e.deltaY,
                                            r = 0 < e.deltaY && t - e.deltaY <= 0,
                                            i = e.deltaY < 0 && n <= l.$results.height();
                                        r ? (l.$results.scrollTop(0), e.preventDefault(), e.stopPropagation()) : i && (l.$results.scrollTop(l.$results.get(0).scrollHeight - l.$results.height()), e.preventDefault(), e.stopPropagation());
                                    }),
                                this.$results.on("mouseup", ".select2-results__option[aria-selected]", function (e) {
                                    var t = h(this),
                                        n = f.GetData(this, "data");
                                    "true" !== t.attr("aria-selected") ? l.trigger("select", { originalEvent: e, data: n }) : l.options.get("multiple") ? l.trigger("unselect", { originalEvent: e, data: n }) : l.trigger("close", {});
                                }),
                                this.$results.on("mouseenter", ".select2-results__option[aria-selected]", function (e) {
                                    var t = f.GetData(this, "data");
                                    l.getHighlightedResults().removeClass("select2-results__option--highlighted"), l.trigger("results:focus", { data: t, element: h(this) });
                                });
                        }),
                        (r.prototype.getHighlightedResults = function () {
                            return this.$results.find(".select2-results__option--highlighted");
                        }),
                        (r.prototype.destroy = function () {
                            this.$results.remove();
                        }),
                        (r.prototype.ensureHighlightVisible = function () {
                            var e = this.getHighlightedResults();
                            if (0 !== e.length) {
                                var t = this.$results.find("[aria-selected]").index(e),
                                    n = this.$results.offset().top,
                                    r = e.offset().top,
                                    i = this.$results.scrollTop() + (r - n),
                                    o = r - n;
                                (i -= 2 * e.outerHeight(!1)), t <= 2 ? this.$results.scrollTop(0) : (o > this.$results.outerHeight() || o < 0) && this.$results.scrollTop(i);
                            }
                        }),
                        (r.prototype.template = function (e, t) {
                            var n = this.options.get("templateResult"),
                                r = this.options.get("escapeMarkup"),
                                i = n(e, t);
                            null == i ? (t.style.display = "none") : "string" == typeof i ? (t.innerHTML = r(i)) : h(t).append(i);
                        }),
                        r
                    );
                }),
                e.define("select2/keys", [], function () {
                    return { BACKSPACE: 8, TAB: 9, ENTER: 13, SHIFT: 16, CTRL: 17, ALT: 18, ESC: 27, SPACE: 32, PAGE_UP: 33, PAGE_DOWN: 34, END: 35, HOME: 36, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, DELETE: 46 };
                }),
                e.define("select2/selection/base", ["jquery", "../utils", "../keys"], function (n, r, i) {
                    function o(e, t) {
                        (this.$element = e), (this.options = t), o.__super__.constructor.call(this);
                    }
                    return (
                        r.Extend(o, r.Observable),
                        (o.prototype.render = function () {
                            var e = n('<span class="select2-selection" role="combobox"  aria-haspopup="true" aria-expanded="false"></span>');
                            return (
                                (this._tabindex = 0),
                                null != r.GetData(this.$element[0], "old-tabindex")
                                    ? (this._tabindex = r.GetData(this.$element[0], "old-tabindex"))
                                    : null != this.$element.attr("tabindex") && (this._tabindex = this.$element.attr("tabindex")),
                                e.attr("title", this.$element.attr("title")),
                                e.attr("tabindex", this._tabindex),
                                e.attr("aria-disabled", "false"),
                                (this.$selection = e)
                            );
                        }),
                        (o.prototype.bind = function (e, t) {
                            var n = this,
                                r = e.id + "-results";
                            (this.container = e),
                                this.$selection.on("focus", function (e) {
                                    n.trigger("focus", e);
                                }),
                                this.$selection.on("blur", function (e) {
                                    n._handleBlur(e);
                                }),
                                this.$selection.on("keydown", function (e) {
                                    n.trigger("keypress", e), e.which === i.SPACE && e.preventDefault();
                                }),
                                e.on("results:focus", function (e) {
                                    n.$selection.attr("aria-activedescendant", e.data._resultId);
                                }),
                                e.on("selection:update", function (e) {
                                    n.update(e.data);
                                }),
                                e.on("open", function () {
                                    n.$selection.attr("aria-expanded", "true"), n.$selection.attr("aria-owns", r), n._attachCloseHandler(e);
                                }),
                                e.on("close", function () {
                                    n.$selection.attr("aria-expanded", "false"), n.$selection.removeAttr("aria-activedescendant"), n.$selection.removeAttr("aria-owns"), n.$selection.trigger("focus"), n._detachCloseHandler(e);
                                }),
                                e.on("enable", function () {
                                    n.$selection.attr("tabindex", n._tabindex), n.$selection.attr("aria-disabled", "false");
                                }),
                                e.on("disable", function () {
                                    n.$selection.attr("tabindex", "-1"), n.$selection.attr("aria-disabled", "true");
                                });
                        }),
                        (o.prototype._handleBlur = function (e) {
                            var t = this;
                            window.setTimeout(function () {
                                document.activeElement == t.$selection[0] || n.contains(t.$selection[0], document.activeElement) || t.trigger("blur", e);
                            }, 1);
                        }),
                        (o.prototype._attachCloseHandler = function (e) {
                            n(document.body).on("mousedown.select2." + e.id, function (e) {
                                var t = n(e.target).closest(".select2");
                                n(".select2.select2-container--open").each(function () {
                                    this != t[0] && r.GetData(this, "element").select2("close");
                                });
                            });
                        }),
                        (o.prototype._detachCloseHandler = function (e) {
                            n(document.body).off("mousedown.select2." + e.id);
                        }),
                        (o.prototype.position = function (e, t) {
                            t.find(".selection").append(e);
                        }),
                        (o.prototype.destroy = function () {
                            this._detachCloseHandler(this.container);
                        }),
                        (o.prototype.update = function (e) {
                            throw new Error("The `update` method must be defined in child classes.");
                        }),
                        (o.prototype.isEnabled = function () {
                            return !this.isDisabled();
                        }),
                        (o.prototype.isDisabled = function () {
                            return this.options.get("disabled");
                        }),
                        o
                    );
                }),
                e.define("select2/selection/single", ["jquery", "./base", "../utils", "../keys"], function (e, t, n, r) {
                    function i() {
                        i.__super__.constructor.apply(this, arguments);
                    }
                    return (
                        n.Extend(i, t),
                        (i.prototype.render = function () {
                            var e = i.__super__.render.call(this);
                            return e.addClass("select2-selection--single"), e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'), e;
                        }),
                        (i.prototype.bind = function (t, e) {
                            var n = this;
                            i.__super__.bind.apply(this, arguments);
                            var r = t.id + "-container";
                            this.$selection.find(".select2-selection__rendered").attr("id", r).attr("role", "textbox").attr("aria-readonly", "true"),
                                this.$selection.attr("aria-labelledby", r),
                                this.$selection.on("mousedown", function (e) {
                                    1 === e.which && n.trigger("toggle", { originalEvent: e });
                                }),
                                this.$selection.on("focus", function (e) {}),
                                this.$selection.on("blur", function (e) {}),
                                t.on("focus", function (e) {
                                    t.isOpen() || n.$selection.trigger("focus");
                                });
                        }),
                        (i.prototype.clear = function () {
                            var e = this.$selection.find(".select2-selection__rendered");
                            e.empty(), e.removeAttr("title");
                        }),
                        (i.prototype.display = function (e, t) {
                            var n = this.options.get("templateSelection");
                            return this.options.get("escapeMarkup")(n(e, t));
                        }),
                        (i.prototype.selectionContainer = function () {
                            return e("<span></span>");
                        }),
                        (i.prototype.update = function (e) {
                            if (0 !== e.length) {
                                var t = e[0],
                                    n = this.$selection.find(".select2-selection__rendered"),
                                    r = this.display(t, n);
                                n.empty().append(r);
                                var i = t.title || t.text;
                                i ? n.attr("title", i) : n.removeAttr("title");
                            } else this.clear();
                        }),
                        i
                    );
                }),
                e.define("select2/selection/multiple", ["jquery", "./base", "../utils"], function (i, e, l) {
                    function n(e, t) {
                        n.__super__.constructor.apply(this, arguments);
                    }
                    return (
                        l.Extend(n, e),
                        (n.prototype.render = function () {
                            var e = n.__super__.render.call(this);
                            return e.addClass("select2-selection--multiple"), e.html('<ul class="select2-selection__rendered"></ul>'), e;
                        }),
                        (n.prototype.bind = function (e, t) {
                            var r = this;
                            n.__super__.bind.apply(this, arguments),
                                this.$selection.on("click", function (e) {
                                    r.trigger("toggle", { originalEvent: e });
                                }),
                                this.$selection.on("click", ".select2-selection__choice__remove", function (e) {
                                    if (!r.isDisabled()) {
                                        var t = i(this).parent(),
                                            n = l.GetData(t[0], "data");
                                        r.trigger("unselect", { originalEvent: e, data: n });
                                    }
                                });
                        }),
                        (n.prototype.clear = function () {
                            var e = this.$selection.find(".select2-selection__rendered");
                            e.empty(), e.removeAttr("title");
                        }),
                        (n.prototype.display = function (e, t) {
                            var n = this.options.get("templateSelection");
                            return this.options.get("escapeMarkup")(n(e, t));
                        }),
                        (n.prototype.selectionContainer = function () {
                            return i('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>');
                        }),
                        (n.prototype.update = function (e) {
                            if ((this.clear(), 0 !== e.length)) {
                                for (var t = [], n = 0; n < e.length; n++) {
                                    var r = e[n],
                                        i = this.selectionContainer(),
                                        o = this.display(r, i);
                                    i.append(o);
                                    var s = r.title || r.text;
                                    s && i.attr("title", s), l.StoreData(i[0], "data", r), t.push(i);
                                }
                                var a = this.$selection.find(".select2-selection__rendered");
                                l.appendMany(a, t);
                            }
                        }),
                        n
                    );
                }),
                e.define("select2/selection/placeholder", ["../utils"], function (e) {
                    function t(e, t, n) {
                        (this.placeholder = this.normalizePlaceholder(n.get("placeholder"))), e.call(this, t, n);
                    }
                    return (
                        (t.prototype.normalizePlaceholder = function (e, t) {
                            return "string" == typeof t && (t = { id: "", text: t }), t;
                        }),
                        (t.prototype.createPlaceholder = function (e, t) {
                            var n = this.selectionContainer();
                            return n.html(this.display(t)), n.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"), n;
                        }),
                        (t.prototype.update = function (e, t) {
                            var n = 1 == t.length && t[0].id != this.placeholder.id;
                            if (1 < t.length || n) return e.call(this, t);
                            this.clear();
                            var r = this.createPlaceholder(this.placeholder);
                            this.$selection.find(".select2-selection__rendered").append(r);
                        }),
                        t
                    );
                }),
                e.define("select2/selection/allowClear", ["jquery", "../keys", "../utils"], function (i, r, a) {
                    function e() {}
                    return (
                        (e.prototype.bind = function (e, t, n) {
                            var r = this;
                            e.call(this, t, n),
                                null == this.placeholder && this.options.get("debug") && window.console && console.error && console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),
                                this.$selection.on("mousedown", ".select2-selection__clear", function (e) {
                                    r._handleClear(e);
                                }),
                                t.on("keypress", function (e) {
                                    r._handleKeyboardClear(e, t);
                                });
                        }),
                        (e.prototype._handleClear = function (e, t) {
                            if (!this.isDisabled()) {
                                var n = this.$selection.find(".select2-selection__clear");
                                if (0 !== n.length) {
                                    t.stopPropagation();
                                    var r = a.GetData(n[0], "data"),
                                        i = this.$element.val();
                                    this.$element.val(this.placeholder.id);
                                    var o = { data: r };
                                    if ((this.trigger("clear", o), o.prevented)) this.$element.val(i);
                                    else {
                                        for (var s = 0; s < r.length; s++) if (((o = { data: r[s] }), this.trigger("unselect", o), o.prevented)) return void this.$element.val(i);
                                        this.$element.trigger("input").trigger("change"), this.trigger("toggle", {});
                                    }
                                }
                            }
                        }),
                        (e.prototype._handleKeyboardClear = function (e, t, n) {
                            n.isOpen() || (t.which != r.DELETE && t.which != r.BACKSPACE) || this._handleClear(t);
                        }),
                        (e.prototype.update = function (e, t) {
                            if ((e.call(this, t), !(0 < this.$selection.find(".select2-selection__placeholder").length || 0 === t.length))) {
                                var n = this.options.get("translations").get("removeAllItems"),
                                    r = i('<span class="select2-selection__clear" title="' + n() + '">&times;</span>');
                                a.StoreData(r[0], "data", t), this.$selection.find(".select2-selection__rendered").prepend(r);
                            }
                        }),
                        e
                    );
                }),
                e.define("select2/selection/search", ["jquery", "../utils", "../keys"], function (r, a, l) {
                    function e(e, t, n) {
                        e.call(this, t, n);
                    }
                    return (
                        (e.prototype.render = function (e) {
                            var t = r(
                                '<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></li>'
                            );
                            (this.$searchContainer = t), (this.$search = t.find("input"));
                            var n = e.call(this);
                            return this._transferTabIndex(), n;
                        }),
                        (e.prototype.bind = function (e, t, n) {
                            var r = this,
                                i = t.id + "-results";
                            e.call(this, t, n),
                                t.on("open", function () {
                                    r.$search.attr("aria-controls", i), r.$search.trigger("focus");
                                }),
                                t.on("close", function () {
                                    r.$search.val(""), r.$search.removeAttr("aria-controls"), r.$search.removeAttr("aria-activedescendant"), r.$search.trigger("focus");
                                }),
                                t.on("enable", function () {
                                    r.$search.prop("disabled", !1), r._transferTabIndex();
                                }),
                                t.on("disable", function () {
                                    r.$search.prop("disabled", !0);
                                }),
                                t.on("focus", function (e) {
                                    r.$search.trigger("focus");
                                }),
                                t.on("results:focus", function (e) {
                                    e.data._resultId ? r.$search.attr("aria-activedescendant", e.data._resultId) : r.$search.removeAttr("aria-activedescendant");
                                }),
                                this.$selection.on("focusin", ".select2-search--inline", function (e) {
                                    r.trigger("focus", e);
                                }),
                                this.$selection.on("focusout", ".select2-search--inline", function (e) {
                                    r._handleBlur(e);
                                }),
                                this.$selection.on("keydown", ".select2-search--inline", function (e) {
                                    if ((e.stopPropagation(), r.trigger("keypress", e), (r._keyUpPrevented = e.isDefaultPrevented()), e.which === l.BACKSPACE && "" === r.$search.val())) {
                                        var t = r.$searchContainer.prev(".select2-selection__choice");
                                        if (0 < t.length) {
                                            var n = a.GetData(t[0], "data");
                                            r.searchRemoveChoice(n), e.preventDefault();
                                        }
                                    }
                                }),
                                this.$selection.on("click", ".select2-search--inline", function (e) {
                                    r.$search.val() && e.stopPropagation();
                                });
                            var o = document.documentMode,
                                s = o && o <= 11;
                            this.$selection.on("input.searchcheck", ".select2-search--inline", function (e) {
                                s ? r.$selection.off("input.search input.searchcheck") : r.$selection.off("keyup.search");
                            }),
                                this.$selection.on("keyup.search input.search", ".select2-search--inline", function (e) {
                                    if (s && "input" === e.type) r.$selection.off("input.search input.searchcheck");
                                    else {
                                        var t = e.which;
                                        t != l.SHIFT && t != l.CTRL && t != l.ALT && t != l.TAB && r.handleSearch(e);
                                    }
                                });
                        }),
                        (e.prototype._transferTabIndex = function (e) {
                            this.$search.attr("tabindex", this.$selection.attr("tabindex")), this.$selection.attr("tabindex", "-1");
                        }),
                        (e.prototype.createPlaceholder = function (e, t) {
                            this.$search.attr("placeholder", t.text);
                        }),
                        (e.prototype.update = function (e, t) {
                            var n = this.$search[0] == document.activeElement;
                            this.$search.attr("placeholder", ""), e.call(this, t), this.$selection.find(".select2-selection__rendered").append(this.$searchContainer), this.resizeSearch(), n && this.$search.trigger("focus");
                        }),
                        (e.prototype.handleSearch = function () {
                            if ((this.resizeSearch(), !this._keyUpPrevented)) {
                                var e = this.$search.val();
                                this.trigger("query", { term: e });
                            }
                            this._keyUpPrevented = !1;
                        }),
                        (e.prototype.searchRemoveChoice = function (e, t) {
                            this.trigger("unselect", { data: t }), this.$search.val(t.text), this.handleSearch();
                        }),
                        (e.prototype.resizeSearch = function () {
                            this.$search.css("width", "25px");
                            var e = "";
                            "" !== this.$search.attr("placeholder") ? (e = this.$selection.find(".select2-selection__rendered").width()) : (e = 0.75 * (this.$search.val().length + 1) + "em");
                            this.$search.css("width", e);
                        }),
                        e
                    );
                }),
                e.define("select2/selection/eventRelay", ["jquery"], function (s) {
                    function e() {}
                    return (
                        (e.prototype.bind = function (e, t, n) {
                            var r = this,
                                i = ["open", "opening", "close", "closing", "select", "selecting", "unselect", "unselecting", "clear", "clearing"],
                                o = ["opening", "closing", "selecting", "unselecting", "clearing"];
                            e.call(this, t, n),
                                t.on("*", function (e, t) {
                                    if (-1 !== s.inArray(e, i)) {
                                        t = t || {};
                                        var n = s.Event("select2:" + e, { params: t });
                                        r.$element.trigger(n), -1 !== s.inArray(e, o) && (t.prevented = n.isDefaultPrevented());
                                    }
                                });
                        }),
                        e
                    );
                }),
                e.define("select2/translation", ["jquery", "require"], function (t, n) {
                    function r(e) {
                        this.dict = e || {};
                    }
                    return (
                        (r.prototype.all = function () {
                            return this.dict;
                        }),
                        (r.prototype.get = function (e) {
                            return this.dict[e];
                        }),
                        (r.prototype.extend = function (e) {
                            this.dict = t.extend({}, e.all(), this.dict);
                        }),
                        (r._cache = {}),
                        (r.loadPath = function (e) {
                            if (!(e in r._cache)) {
                                var t = n(e);
                                r._cache[e] = t;
                            }
                            return new r(r._cache[e]);
                        }),
                        r
                    );
                }),
                e.define("select2/diacritics", [], function () {
                    return {
                        "Ⓐ": "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",
                        "Ⓒ": "C",
                        Ｃ: "C",
                        Ć: "C",
                        Ĉ: "C",
                        Ċ: "C",
                        Č: "C",
                        Ç: "C",
                        Ḉ: "C",
                        Ƈ: "C",
                        Ȼ: "C",
                        Ꜿ: "C",
                        "Ⓓ": "D",
                        Ｄ: "D",
                        Ḋ: "D",
                        Ď: "D",
                        Ḍ: "D",
                        Ḑ: "D",
                        Ḓ: "D",
                        Ḏ: "D",
                        Đ: "D",
                        Ƌ: "D",
                        Ɗ: "D",
                        Ɖ: "D",
                        Ꝺ: "D",
                        Ǳ: "DZ",
                        Ǆ: "DZ",
                        ǲ: "Dz",
                        ǅ: "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",
                        "Ⓕ": "F",
                        Ｆ: "F",
                        Ḟ: "F",
                        Ƒ: "F",
                        Ꝼ: "F",
                        "Ⓖ": "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",
                        "Ⓘ": "I",
                        Ｉ: "I",
                        Ì: "I",
                        Í: "I",
                        Î: "I",
                        Ĩ: "I",
                        Ī: "I",
                        Ĭ: "I",
                        İ: "I",
                        Ï: "I",
                        Ḯ: "I",
                        Ỉ: "I",
                        Ǐ: "I",
                        Ȉ: "I",
                        Ȋ: "I",
                        Ị: "I",
                        Į: "I",
                        Ḭ: "I",
                        Ɨ: "I",
                        "Ⓙ": "J",
                        Ｊ: "J",
                        Ĵ: "J",
                        Ɉ: "J",
                        "Ⓚ": "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",
                        Ǉ: "LJ",
                        ǈ: "Lj",
                        "Ⓜ": "M",
                        Ｍ: "M",
                        Ḿ: "M",
                        Ṁ: "M",
                        Ṃ: "M",
                        Ɱ: "M",
                        Ɯ: "M",
                        "Ⓝ": "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",
                        Œ: "OE",
                        Ƣ: "OI",
                        Ꝏ: "OO",
                        Ȣ: "OU",
                        "Ⓟ": "P",
                        Ｐ: "P",
                        Ṕ: "P",
                        Ṗ: "P",
                        Ƥ: "P",
                        Ᵽ: "P",
                        Ꝑ: "P",
                        Ꝓ: "P",
                        Ꝕ: "P",
                        "Ⓠ": "Q",
                        Ｑ: "Q",
                        Ꝗ: "Q",
                        Ꝙ: "Q",
                        Ɋ: "Q",
                        "Ⓡ": "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",
                        "Ⓣ": "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",
                        "Ⓥ": "V",
                        Ｖ: "V",
                        Ṽ: "V",
                        Ṿ: "V",
                        Ʋ: "V",
                        Ꝟ: "V",
                        Ʌ: "V",
                        Ꝡ: "VY",
                        "Ⓦ": "W",
                        Ｗ: "W",
                        Ẁ: "W",
                        Ẃ: "W",
                        Ŵ: "W",
                        Ẇ: "W",
                        Ẅ: "W",
                        Ẉ: "W",
                        Ⱳ: "W",
                        "Ⓧ": "X",
                        Ｘ: "X",
                        Ẋ: "X",
                        Ẍ: "X",
                        "Ⓨ": "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",
                        "ⓐ": "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",
                        "ⓒ": "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",
                        ǳ: "dz",
                        ǆ: "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",
                        "ⓖ": "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",
                        ƕ: "hv",
                        "ⓘ": "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",
                        "ⓛ": "l",
                        ｌ: "l",
                        ŀ: "l",
                        ĺ: "l",
                        ľ: "l",
                        ḷ: "l",
                        ḹ: "l",
                        ļ: "l",
                        ḽ: "l",
                        ḻ: "l",
                        ſ: "l",
                        ł: "l",
                        ƚ: "l",
                        ɫ: "l",
                        ⱡ: "l",
                        ꝉ: "l",
                        ꞁ: "l",
                        ꝇ: "l",
                        ǉ: "lj",
                        "ⓜ": "m",
                        ｍ: "m",
                        ḿ: "m",
                        ṁ: "m",
                        ṃ: "m",
                        ɱ: "m",
                        ɯ: "m",
                        "ⓝ": "n",
                        ｎ: "n",
                        ǹ: "n",
                        ń: "n",
                        ñ: "n",
                        ṅ: "n",
                        ň: "n",
                        ṇ: "n",
                        ņ: "n",
                        ṋ: "n",
                        ṉ: "n",
                        ƞ: "n",
                        ɲ: "n",
                        ŉ: "n",
                        ꞑ: "n",
                        ꞥ: "n",
                        ǌ: "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",
                        œ: "oe",
                        ƣ: "oi",
                        ȣ: "ou",
                        ꝏ: "oo",
                        "ⓟ": "p",
                        ｐ: "p",
                        ṕ: "p",
                        ṗ: "p",
                        ƥ: "p",
                        ᵽ: "p",
                        ꝑ: "p",
                        ꝓ: "p",
                        ꝕ: "p",
                        "ⓠ": "q",
                        ｑ: "q",
                        ɋ: "q",
                        ꝗ: "q",
                        ꝙ: "q",
                        "ⓡ": "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",
                        "ⓥ": "v",
                        ｖ: "v",
                        ṽ: "v",
                        ṿ: "v",
                        ʋ: "v",
                        ꝟ: "v",
                        ʌ: "v",
                        ꝡ: "vy",
                        "ⓦ": "w",
                        ｗ: "w",
                        ẁ: "w",
                        ẃ: "w",
                        ŵ: "w",
                        ẇ: "w",
                        ẅ: "w",
                        ẘ: "w",
                        ẉ: "w",
                        ⱳ: "w",
                        "ⓧ": "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",
                        Ά: "Α",
                        Έ: "Ε",
                        Ή: "Η",
                        Ί: "Ι",
                        Ϊ: "Ι",
                        Ό: "Ο",
                        Ύ: "Υ",
                        Ϋ: "Υ",
                        Ώ: "Ω",
                        ά: "α",
                        έ: "ε",
                        ή: "η",
                        ί: "ι",
                        ϊ: "ι",
                        ΐ: "ι",
                        ό: "ο",
                        ύ: "υ",
                        ϋ: "υ",
                        ΰ: "υ",
                        ώ: "ω",
                        ς: "σ",
                        "’": "'",
                    };
                }),
                e.define("select2/data/base", ["../utils"], function (r) {
                    function n(e, t) {
                        n.__super__.constructor.call(this);
                    }
                    return (
                        r.Extend(n, r.Observable),
                        (n.prototype.current = function (e) {
                            throw new Error("The `current` method must be defined in child classes.");
                        }),
                        (n.prototype.query = function (e, t) {
                            throw new Error("The `query` method must be defined in child classes.");
                        }),
                        (n.prototype.bind = function (e, t) {}),
                        (n.prototype.destroy = function () {}),
                        (n.prototype.generateResultId = function (e, t) {
                            var n = e.id + "-result-";
                            return (n += r.generateChars(4)), null != t.id ? (n += "-" + t.id.toString()) : (n += "-" + r.generateChars(4)), n;
                        }),
                        n
                    );
                }),
                e.define("select2/data/select", ["./base", "../utils", "jquery"], function (e, a, l) {
                    function n(e, t) {
                        (this.$element = e), (this.options = t), n.__super__.constructor.call(this);
                    }
                    return (
                        a.Extend(n, e),
                        (n.prototype.current = function (e) {
                            var n = [],
                                r = this;
                            this.$element.find(":selected").each(function () {
                                var e = l(this),
                                    t = r.item(e);
                                n.push(t);
                            }),
                                e(n);
                        }),
                        (n.prototype.select = function (i) {
                            var o = this;
                            if (((i.selected = !0), l(i.element).is("option"))) return (i.element.selected = !0), void this.$element.trigger("input").trigger("change");
                            if (this.$element.prop("multiple"))
                                this.current(function (e) {
                                    var t = [];
                                    (i = [i]).push.apply(i, e);
                                    for (var n = 0; n < i.length; n++) {
                                        var r = i[n].id;
                                        -1 === l.inArray(r, t) && t.push(r);
                                    }
                                    o.$element.val(t), o.$element.trigger("input").trigger("change");
                                });
                            else {
                                var e = i.id;
                                this.$element.val(e), this.$element.trigger("input").trigger("change");
                            }
                        }),
                        (n.prototype.unselect = function (i) {
                            var o = this;
                            if (this.$element.prop("multiple")) {
                                if (((i.selected = !1), l(i.element).is("option"))) return (i.element.selected = !1), void this.$element.trigger("input").trigger("change");
                                this.current(function (e) {
                                    for (var t = [], n = 0; n < e.length; n++) {
                                        var r = e[n].id;
                                        r !== i.id && -1 === l.inArray(r, t) && t.push(r);
                                    }
                                    o.$element.val(t), o.$element.trigger("input").trigger("change");
                                });
                            }
                        }),
                        (n.prototype.bind = function (e, t) {
                            var n = this;
                            (this.container = e).on("select", function (e) {
                                n.select(e.data);
                            }),
                                e.on("unselect", function (e) {
                                    n.unselect(e.data);
                                });
                        }),
                        (n.prototype.destroy = function () {
                            this.$element.find("*").each(function () {
                                a.RemoveData(this);
                            });
                        }),
                        (n.prototype.query = function (r, e) {
                            var i = [],
                                o = this;
                            this.$element.children().each(function () {
                                var e = l(this);
                                if (e.is("option") || e.is("optgroup")) {
                                    var t = o.item(e),
                                        n = o.matches(r, t);
                                    null !== n && i.push(n);
                                }
                            }),
                                e({ results: i });
                        }),
                        (n.prototype.addOptions = function (e) {
                            a.appendMany(this.$element, e);
                        }),
                        (n.prototype.option = function (e) {
                            var t;
                            e.children ? ((t = document.createElement("optgroup")).label = e.text) : void 0 !== (t = document.createElement("option")).textContent ? (t.textContent = e.text) : (t.innerText = e.text),
                                void 0 !== e.id && (t.value = e.id),
                                e.disabled && (t.disabled = !0),
                                e.selected && (t.selected = !0),
                                e.title && (t.title = e.title);
                            var n = l(t),
                                r = this._normalizeItem(e);
                            return (r.element = t), a.StoreData(t, "data", r), n;
                        }),
                        (n.prototype.item = function (e) {
                            var t = {};
                            if (null != (t = a.GetData(e[0], "data"))) return t;
                            if (e.is("option")) t = { id: e.val(), text: e.text(), disabled: e.prop("disabled"), selected: e.prop("selected"), title: e.prop("title") };
                            else if (e.is("optgroup")) {
                                t = { text: e.prop("label"), children: [], title: e.prop("title") };
                                for (var n = e.children("option"), r = [], i = 0; i < n.length; i++) {
                                    var o = l(n[i]),
                                        s = this.item(o);
                                    r.push(s);
                                }
                                t.children = r;
                            }
                            return ((t = this._normalizeItem(t)).element = e[0]), a.StoreData(e[0], "data", t), t;
                        }),
                        (n.prototype._normalizeItem = function (e) {
                            e !== Object(e) && (e = { id: e, text: e });
                            return (
                                null != (e = l.extend({}, { text: "" }, e)).id && (e.id = e.id.toString()),
                                null != e.text && (e.text = e.text.toString()),
                                null == e._resultId && e.id && null != this.container && (e._resultId = this.generateResultId(this.container, e)),
                                l.extend({}, { selected: !1, disabled: !1 }, e)
                            );
                        }),
                        (n.prototype.matches = function (e, t) {
                            return this.options.get("matcher")(e, t);
                        }),
                        n
                    );
                }),
                e.define("select2/data/array", ["./select", "../utils", "jquery"], function (e, f, g) {
                    function r(e, t) {
                        (this._dataToConvert = t.get("data") || []), r.__super__.constructor.call(this, e, t);
                    }
                    return (
                        f.Extend(r, e),
                        (r.prototype.bind = function (e, t) {
                            r.__super__.bind.call(this, e, t), this.addOptions(this.convertToOptions(this._dataToConvert));
                        }),
                        (r.prototype.select = function (n) {
                            var e = this.$element.find("option").filter(function (e, t) {
                                return t.value == n.id.toString();
                            });
                            0 === e.length && ((e = this.option(n)), this.addOptions(e)), r.__super__.select.call(this, n);
                        }),
                        (r.prototype.convertToOptions = function (e) {
                            var t = this,
                                n = this.$element.find("option"),
                                r = n
                                    .map(function () {
                                        return t.item(g(this)).id;
                                    })
                                    .get(),
                                i = [];
                            function o(e) {
                                return function () {
                                    return g(this).val() == e.id;
                                };
                            }
                            for (var s = 0; s < e.length; s++) {
                                var a = this._normalizeItem(e[s]);
                                if (0 <= g.inArray(a.id, r)) {
                                    var l = n.filter(o(a)),
                                        c = this.item(l),
                                        u = g.extend(!0, {}, a, c),
                                        d = this.option(u);
                                    l.replaceWith(d);
                                } else {
                                    var p = this.option(a);
                                    if (a.children) {
                                        var h = this.convertToOptions(a.children);
                                        f.appendMany(p, h);
                                    }
                                    i.push(p);
                                }
                            }
                            return i;
                        }),
                        r
                    );
                }),
                e.define("select2/data/ajax", ["./array", "../utils", "jquery"], function (e, t, o) {
                    function n(e, t) {
                        (this.ajaxOptions = this._applyDefaults(t.get("ajax"))), null != this.ajaxOptions.processResults && (this.processResults = this.ajaxOptions.processResults), n.__super__.constructor.call(this, e, t);
                    }
                    return (
                        t.Extend(n, e),
                        (n.prototype._applyDefaults = function (e) {
                            var t = {
                                data: function (e) {
                                    return o.extend({}, e, { q: e.term });
                                },
                                transport: function (e, t, n) {
                                    var r = o.ajax(e);
                                    return r.then(t), r.fail(n), r;
                                },
                            };
                            return o.extend({}, t, e, !0);
                        }),
                        (n.prototype.processResults = function (e) {
                            return e;
                        }),
                        (n.prototype.query = function (n, r) {
                            var i = this;
                            null != this._request && (o.isFunction(this._request.abort) && this._request.abort(), (this._request = null));
                            var t = o.extend({ type: "GET" }, this.ajaxOptions);
                            function e() {
                                var e = t.transport(
                                    t,
                                    function (e) {
                                        var t = i.processResults(e, n);
                                        i.options.get("debug") &&
                                            window.console &&
                                            console.error &&
                                            ((t && t.results && o.isArray(t.results)) || console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),
                                            r(t);
                                    },
                                    function () {
                                        ("status" in e && (0 === e.status || "0" === e.status)) || i.trigger("results:message", { message: "errorLoading" });
                                    }
                                );
                                i._request = e;
                            }
                            "function" == typeof t.url && (t.url = t.url.call(this.$element, n)),
                                "function" == typeof t.data && (t.data = t.data.call(this.$element, n)),
                                this.ajaxOptions.delay && null != n.term ? (this._queryTimeout && window.clearTimeout(this._queryTimeout), (this._queryTimeout = window.setTimeout(e, this.ajaxOptions.delay))) : e();
                        }),
                        n
                    );
                }),
                e.define("select2/data/tags", ["jquery"], function (u) {
                    function e(e, t, n) {
                        var r = n.get("tags"),
                            i = n.get("createTag");
                        void 0 !== i && (this.createTag = i);
                        var o = n.get("insertTag");
                        if ((void 0 !== o && (this.insertTag = o), e.call(this, t, n), u.isArray(r)))
                            for (var s = 0; s < r.length; s++) {
                                var a = r[s],
                                    l = this._normalizeItem(a),
                                    c = this.option(l);
                                this.$element.append(c);
                            }
                    }
                    return (
                        (e.prototype.query = function (e, c, u) {
                            var d = this;
                            this._removeOldTags(),
                                null != c.term && null == c.page
                                    ? e.call(this, c, function e(t, n) {
                                          for (var r = t.results, i = 0; i < r.length; i++) {
                                              var o = r[i],
                                                  s = null != o.children && !e({ results: o.children }, !0);
                                              if ((o.text || "").toUpperCase() === (c.term || "").toUpperCase() || s) return !n && ((t.data = r), void u(t));
                                          }
                                          if (n) return !0;
                                          var a = d.createTag(c);
                                          if (null != a) {
                                              var l = d.option(a);
                                              l.attr("data-select2-tag", !0), d.addOptions([l]), d.insertTag(r, a);
                                          }
                                          (t.results = r), u(t);
                                      })
                                    : e.call(this, c, u);
                        }),
                        (e.prototype.createTag = function (e, t) {
                            var n = u.trim(t.term);
                            return "" === n ? null : { id: n, text: n };
                        }),
                        (e.prototype.insertTag = function (e, t, n) {
                            t.unshift(n);
                        }),
                        (e.prototype._removeOldTags = function (e) {
                            this.$element.find("option[data-select2-tag]").each(function () {
                                this.selected || u(this).remove();
                            });
                        }),
                        e
                    );
                }),
                e.define("select2/data/tokenizer", ["jquery"], function (d) {
                    function e(e, t, n) {
                        var r = n.get("tokenizer");
                        void 0 !== r && (this.tokenizer = r), e.call(this, t, n);
                    }
                    return (
                        (e.prototype.bind = function (e, t, n) {
                            e.call(this, t, n), (this.$search = t.dropdown.$search || t.selection.$search || n.find(".select2-search__field"));
                        }),
                        (e.prototype.query = function (e, t, n) {
                            var i = this;
                            t.term = t.term || "";
                            var r = this.tokenizer(t, this.options, function (e) {
                                var t,
                                    n = i._normalizeItem(e);
                                if (
                                    !i.$element.find("option").filter(function () {
                                        return d(this).val() === n.id;
                                    }).length
                                ) {
                                    var r = i.option(n);
                                    r.attr("data-select2-tag", !0), i._removeOldTags(), i.addOptions([r]);
                                }
                                (t = n), i.trigger("select", { data: t });
                            });
                            r.term !== t.term && (this.$search.length && (this.$search.val(r.term), this.$search.trigger("focus")), (t.term = r.term)), e.call(this, t, n);
                        }),
                        (e.prototype.tokenizer = function (e, t, n, r) {
                            for (
                                var i = n.get("tokenSeparators") || [],
                                    o = t.term,
                                    s = 0,
                                    a =
                                        this.createTag ||
                                        function (e) {
                                            return { id: e.term, text: e.term };
                                        };
                                s < o.length;

                            ) {
                                var l = o[s];
                                if (-1 !== d.inArray(l, i)) {
                                    var c = o.substr(0, s),
                                        u = a(d.extend({}, t, { term: c }));
                                    null != u ? (r(u), (o = o.substr(s + 1) || ""), (s = 0)) : s++;
                                } else s++;
                            }
                            return { term: o };
                        }),
                        e
                    );
                }),
                e.define("select2/data/minimumInputLength", [], function () {
                    function e(e, t, n) {
                        (this.minimumInputLength = n.get("minimumInputLength")), e.call(this, t, n);
                    }
                    return (
                        (e.prototype.query = function (e, t, n) {
                            (t.term = t.term || ""),
                                t.term.length < this.minimumInputLength ? this.trigger("results:message", { message: "inputTooShort", args: { minimum: this.minimumInputLength, input: t.term, params: t } }) : e.call(this, t, n);
                        }),
                        e
                    );
                }),
                e.define("select2/data/maximumInputLength", [], function () {
                    function e(e, t, n) {
                        (this.maximumInputLength = n.get("maximumInputLength")), e.call(this, t, n);
                    }
                    return (
                        (e.prototype.query = function (e, t, n) {
                            (t.term = t.term || ""),
                                0 < this.maximumInputLength && t.term.length > this.maximumInputLength
                                    ? this.trigger("results:message", { message: "inputTooLong", args: { maximum: this.maximumInputLength, input: t.term, params: t } })
                                    : e.call(this, t, n);
                        }),
                        e
                    );
                }),
                e.define("select2/data/maximumSelectionLength", [], function () {
                    function e(e, t, n) {
                        (this.maximumSelectionLength = n.get("maximumSelectionLength")), e.call(this, t, n);
                    }
                    return (
                        (e.prototype.bind = function (e, t, n) {
                            var r = this;
                            e.call(this, t, n),
                                t.on("select", function () {
                                    r._checkIfMaximumSelected();
                                });
                        }),
                        (e.prototype.query = function (e, t, n) {
                            var r = this;
                            this._checkIfMaximumSelected(function () {
                                e.call(r, t, n);
                            });
                        }),
                        (e.prototype._checkIfMaximumSelected = function (e, n) {
                            var r = this;
                            this.current(function (e) {
                                var t = null != e ? e.length : 0;
                                0 < r.maximumSelectionLength && t >= r.maximumSelectionLength ? r.trigger("results:message", { message: "maximumSelected", args: { maximum: r.maximumSelectionLength } }) : n && n();
                            });
                        }),
                        e
                    );
                }),
                e.define("select2/dropdown", ["jquery", "./utils"], function (t, e) {
                    function n(e, t) {
                        (this.$element = e), (this.options = t), n.__super__.constructor.call(this);
                    }
                    return (
                        e.Extend(n, e.Observable),
                        (n.prototype.render = function () {
                            var e = t('<span class="select2-dropdown"><span class="select2-results"></span></span>');
                            return e.attr("dir", this.options.get("dir")), (this.$dropdown = e);
                        }),
                        (n.prototype.bind = function () {}),
                        (n.prototype.position = function (e, t) {}),
                        (n.prototype.destroy = function () {
                            this.$dropdown.remove();
                        }),
                        n
                    );
                }),
                e.define("select2/dropdown/search", ["jquery", "../utils"], function (o, e) {
                    function t() {}
                    return (
                        (t.prototype.render = function (e) {
                            var t = e.call(this),
                                n = o(
                                    '<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></span>'
                                );
                            return (this.$searchContainer = n), (this.$search = n.find("input")), t.prepend(n), t;
                        }),
                        (t.prototype.bind = function (e, t, n) {
                            var r = this,
                                i = t.id + "-results";
                            e.call(this, t, n),
                                this.$search.on("keydown", function (e) {
                                    r.trigger("keypress", e), (r._keyUpPrevented = e.isDefaultPrevented());
                                }),
                                this.$search.on("input", function (e) {
                                    o(this).off("keyup");
                                }),
                                this.$search.on("keyup input", function (e) {
                                    r.handleSearch(e);
                                }),
                                t.on("open", function () {
                                    r.$search.attr("tabindex", 0),
                                        r.$search.attr("aria-controls", i),
                                        r.$search.trigger("focus"),
                                        window.setTimeout(function () {
                                            r.$search.trigger("focus");
                                        }, 0);
                                }),
                                t.on("close", function () {
                                    r.$search.attr("tabindex", -1), r.$search.removeAttr("aria-controls"), r.$search.removeAttr("aria-activedescendant"), r.$search.val(""), r.$search.trigger("blur");
                                }),
                                t.on("focus", function () {
                                    t.isOpen() || r.$search.trigger("focus");
                                }),
                                t.on("results:all", function (e) {
                                    (null != e.query.term && "" !== e.query.term) || (r.showSearch(e) ? r.$searchContainer.removeClass("select2-search--hide") : r.$searchContainer.addClass("select2-search--hide"));
                                }),
                                t.on("results:focus", function (e) {
                                    e.data._resultId ? r.$search.attr("aria-activedescendant", e.data._resultId) : r.$search.removeAttr("aria-activedescendant");
                                });
                        }),
                        (t.prototype.handleSearch = function (e) {
                            if (!this._keyUpPrevented) {
                                var t = this.$search.val();
                                this.trigger("query", { term: t });
                            }
                            this._keyUpPrevented = !1;
                        }),
                        (t.prototype.showSearch = function (e, t) {
                            return !0;
                        }),
                        t
                    );
                }),
                e.define("select2/dropdown/hidePlaceholder", [], function () {
                    function e(e, t, n, r) {
                        (this.placeholder = this.normalizePlaceholder(n.get("placeholder"))), e.call(this, t, n, r);
                    }
                    return (
                        (e.prototype.append = function (e, t) {
                            (t.results = this.removePlaceholder(t.results)), e.call(this, t);
                        }),
                        (e.prototype.normalizePlaceholder = function (e, t) {
                            return "string" == typeof t && (t = { id: "", text: t }), t;
                        }),
                        (e.prototype.removePlaceholder = function (e, t) {
                            for (var n = t.slice(0), r = t.length - 1; 0 <= r; r--) {
                                var i = t[r];
                                this.placeholder.id === i.id && n.splice(r, 1);
                            }
                            return n;
                        }),
                        e
                    );
                }),
                e.define("select2/dropdown/infiniteScroll", ["jquery"], function (n) {
                    function e(e, t, n, r) {
                        (this.lastParams = {}), e.call(this, t, n, r), (this.$loadingMore = this.createLoadingMore()), (this.loading = !1);
                    }
                    return (
                        (e.prototype.append = function (e, t) {
                            this.$loadingMore.remove(), (this.loading = !1), e.call(this, t), this.showLoadingMore(t) && (this.$results.append(this.$loadingMore), this.loadMoreIfNeeded());
                        }),
                        (e.prototype.bind = function (e, t, n) {
                            var r = this;
                            e.call(this, t, n),
                                t.on("query", function (e) {
                                    (r.lastParams = e), (r.loading = !0);
                                }),
                                t.on("query:append", function (e) {
                                    (r.lastParams = e), (r.loading = !0);
                                }),
                                this.$results.on("scroll", this.loadMoreIfNeeded.bind(this));
                        }),
                        (e.prototype.loadMoreIfNeeded = function () {
                            var e = n.contains(document.documentElement, this.$loadingMore[0]);
                            if (!this.loading && e) {
                                var t = this.$results.offset().top + this.$results.outerHeight(!1);
                                this.$loadingMore.offset().top + this.$loadingMore.outerHeight(!1) <= t + 50 && this.loadMore();
                            }
                        }),
                        (e.prototype.loadMore = function () {
                            this.loading = !0;
                            var e = n.extend({}, { page: 1 }, this.lastParams);
                            e.page++, this.trigger("query:append", e);
                        }),
                        (e.prototype.showLoadingMore = function (e, t) {
                            return t.pagination && t.pagination.more;
                        }),
                        (e.prototype.createLoadingMore = function () {
                            var e = n('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),
                                t = this.options.get("translations").get("loadingMore");
                            return e.html(t(this.lastParams)), e;
                        }),
                        e
                    );
                }),
                e.define("select2/dropdown/attachBody", ["jquery", "../utils"], function (f, a) {
                    function e(e, t, n) {
                        (this.$dropdownParent = f(n.get("dropdownParent") || document.body)), e.call(this, t, n);
                    }
                    return (
                        (e.prototype.bind = function (e, t, n) {
                            var r = this;
                            e.call(this, t, n),
                                t.on("open", function () {
                                    r._showDropdown(), r._attachPositioningHandler(t), r._bindContainerResultHandlers(t);
                                }),
                                t.on("close", function () {
                                    r._hideDropdown(), r._detachPositioningHandler(t);
                                }),
                                this.$dropdownContainer.on("mousedown", function (e) {
                                    e.stopPropagation();
                                });
                        }),
                        (e.prototype.destroy = function (e) {
                            e.call(this), this.$dropdownContainer.remove();
                        }),
                        (e.prototype.position = function (e, t, n) {
                            t.attr("class", n.attr("class")), t.removeClass("select2"), t.addClass("select2-container--open"), t.css({ position: "absolute", top: -999999 }), (this.$container = n);
                        }),
                        (e.prototype.render = function (e) {
                            var t = f("<span></span>"),
                                n = e.call(this);
                            return t.append(n), (this.$dropdownContainer = t);
                        }),
                        (e.prototype._hideDropdown = function (e) {
                            this.$dropdownContainer.detach();
                        }),
                        (e.prototype._bindContainerResultHandlers = function (e, t) {
                            if (!this._containerResultsHandlersBound) {
                                var n = this;
                                t.on("results:all", function () {
                                    n._positionDropdown(), n._resizeDropdown();
                                }),
                                    t.on("results:append", function () {
                                        n._positionDropdown(), n._resizeDropdown();
                                    }),
                                    t.on("results:message", function () {
                                        n._positionDropdown(), n._resizeDropdown();
                                    }),
                                    t.on("select", function () {
                                        n._positionDropdown(), n._resizeDropdown();
                                    }),
                                    t.on("unselect", function () {
                                        n._positionDropdown(), n._resizeDropdown();
                                    }),
                                    (this._containerResultsHandlersBound = !0);
                            }
                        }),
                        (e.prototype._attachPositioningHandler = function (e, t) {
                            var n = this,
                                r = "scroll.select2." + t.id,
                                i = "resize.select2." + t.id,
                                o = "orientationchange.select2." + t.id,
                                s = this.$container.parents().filter(a.hasScroll);
                            s.each(function () {
                                a.StoreData(this, "select2-scroll-position", { x: f(this).scrollLeft(), y: f(this).scrollTop() });
                            }),
                                s.on(r, function (e) {
                                    var t = a.GetData(this, "select2-scroll-position");
                                    f(this).scrollTop(t.y);
                                }),
                                f(window).on(r + " " + i + " " + o, function (e) {
                                    n._positionDropdown(), n._resizeDropdown();
                                });
                        }),
                        (e.prototype._detachPositioningHandler = function (e, t) {
                            var n = "scroll.select2." + t.id,
                                r = "resize.select2." + t.id,
                                i = "orientationchange.select2." + t.id;
                            this.$container.parents().filter(a.hasScroll).off(n), f(window).off(n + " " + r + " " + i);
                        }),
                        (e.prototype._positionDropdown = function () {
                            var e = f(window),
                                t = this.$dropdown.hasClass("select2-dropdown--above"),
                                n = this.$dropdown.hasClass("select2-dropdown--below"),
                                r = null,
                                i = this.$container.offset();
                            i.bottom = i.top + this.$container.outerHeight(!1);
                            var o = { height: this.$container.outerHeight(!1) };
                            (o.top = i.top), (o.bottom = i.top + o.height);
                            var s = this.$dropdown.outerHeight(!1),
                                a = e.scrollTop(),
                                l = e.scrollTop() + e.height(),
                                c = a < i.top - s,
                                u = l > i.bottom + s,
                                d = { left: i.left, top: o.bottom },
                                p = this.$dropdownParent;
                            "static" === p.css("position") && (p = p.offsetParent());
                            var h = { top: 0, left: 0 };
                            (f.contains(document.body, p[0]) || p[0].isConnected) && (h = p.offset()),
                                (d.top -= h.top),
                                (d.left -= h.left),
                                t || n || (r = "below"),
                                u || !c || t ? !c && u && t && (r = "below") : (r = "above"),
                                ("above" == r || (t && "below" !== r)) && (d.top = o.top - h.top - s),
                                null != r &&
                                    (this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--" + r),
                                    this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--" + r)),
                                this.$dropdownContainer.css(d);
                        }),
                        (e.prototype._resizeDropdown = function () {
                            var e = { width: this.$container.outerWidth(!1) + "px" };
                            this.options.get("dropdownAutoWidth") && ((e.minWidth = e.width), (e.position = "relative"), (e.width = "auto")), this.$dropdown.css(e);
                        }),
                        (e.prototype._showDropdown = function (e) {
                            this.$dropdownContainer.appendTo(this.$dropdownParent), this._positionDropdown(), this._resizeDropdown();
                        }),
                        e
                    );
                }),
                e.define("select2/dropdown/minimumResultsForSearch", [], function () {
                    function e(e, t, n, r) {
                        (this.minimumResultsForSearch = n.get("minimumResultsForSearch")), this.minimumResultsForSearch < 0 && (this.minimumResultsForSearch = 1 / 0), e.call(this, t, n, r);
                    }
                    return (
                        (e.prototype.showSearch = function (e, t) {
                            return (
                                !(
                                    (function e(t) {
                                        for (var n = 0, r = 0; r < t.length; r++) {
                                            var i = t[r];
                                            i.children ? (n += e(i.children)) : n++;
                                        }
                                        return n;
                                    })(t.data.results) < this.minimumResultsForSearch
                                ) && e.call(this, t)
                            );
                        }),
                        e
                    );
                }),
                e.define("select2/dropdown/selectOnClose", ["../utils"], function (o) {
                    function e() {}
                    return (
                        (e.prototype.bind = function (e, t, n) {
                            var r = this;
                            e.call(this, t, n),
                                t.on("close", function (e) {
                                    r._handleSelectOnClose(e);
                                });
                        }),
                        (e.prototype._handleSelectOnClose = function (e, t) {
                            if (t && null != t.originalSelect2Event) {
                                var n = t.originalSelect2Event;
                                if ("select" === n._type || "unselect" === n._type) return;
                            }
                            var r = this.getHighlightedResults();
                            if (!(r.length < 1)) {
                                var i = o.GetData(r[0], "data");
                                (null != i.element && i.element.selected) || (null == i.element && i.selected) || this.trigger("select", { data: i });
                            }
                        }),
                        e
                    );
                }),
                e.define("select2/dropdown/closeOnSelect", [], function () {
                    function e() {}
                    return (
                        (e.prototype.bind = function (e, t, n) {
                            var r = this;
                            e.call(this, t, n),
                                t.on("select", function (e) {
                                    r._selectTriggered(e);
                                }),
                                t.on("unselect", function (e) {
                                    r._selectTriggered(e);
                                });
                        }),
                        (e.prototype._selectTriggered = function (e, t) {
                            var n = t.originalEvent;
                            (n && (n.ctrlKey || n.metaKey)) || this.trigger("close", { originalEvent: n, originalSelect2Event: t });
                        }),
                        e
                    );
                }),
                e.define("select2/i18n/en", [], function () {
                    return {
                        errorLoading: function () {
                            return "The results could not be loaded.";
                        },
                        inputTooLong: function (e) {
                            var t = e.input.length - e.maximum,
                                n = "Please delete " + t + " character";
                            return 1 != t && (n += "s"), n;
                        },
                        inputTooShort: function (e) {
                            return "Please enter " + (e.minimum - e.input.length) + " or more characters";
                        },
                        loadingMore: function () {
                            return "Loading more results…";
                        },
                        maximumSelected: function (e) {
                            var t = "You can only select " + e.maximum + " item";
                            return 1 != e.maximum && (t += "s"), t;
                        },
                        noResults: function () {
                            return "No results found";
                        },
                        searching: function () {
                            return "Searching…";
                        },
                        removeAllItems: function () {
                            return "Remove all items";
                        },
                    };
                }),
                e.define(
                    "select2/defaults",
                    [
                        "jquery",
                        "require",
                        "./results",
                        "./selection/single",
                        "./selection/multiple",
                        "./selection/placeholder",
                        "./selection/allowClear",
                        "./selection/search",
                        "./selection/eventRelay",
                        "./utils",
                        "./translation",
                        "./diacritics",
                        "./data/select",
                        "./data/array",
                        "./data/ajax",
                        "./data/tags",
                        "./data/tokenizer",
                        "./data/minimumInputLength",
                        "./data/maximumInputLength",
                        "./data/maximumSelectionLength",
                        "./dropdown",
                        "./dropdown/search",
                        "./dropdown/hidePlaceholder",
                        "./dropdown/infiniteScroll",
                        "./dropdown/attachBody",
                        "./dropdown/minimumResultsForSearch",
                        "./dropdown/selectOnClose",
                        "./dropdown/closeOnSelect",
                        "./i18n/en",
                    ],
                    function (c, u, d, p, h, f, g, m, v, y, s, t, _, $, b, w, A, x, D, S, E, C, O, T, q, L, I, j, e) {
                        function n() {
                            this.reset();
                        }
                        return (
                            (n.prototype.apply = function (e) {
                                if (null == (e = c.extend(!0, {}, this.defaults, e)).dataAdapter) {
                                    if (
                                        (null != e.ajax ? (e.dataAdapter = b) : null != e.data ? (e.dataAdapter = $) : (e.dataAdapter = _),
                                        0 < e.minimumInputLength && (e.dataAdapter = y.Decorate(e.dataAdapter, x)),
                                        0 < e.maximumInputLength && (e.dataAdapter = y.Decorate(e.dataAdapter, D)),
                                        0 < e.maximumSelectionLength && (e.dataAdapter = y.Decorate(e.dataAdapter, S)),
                                        e.tags && (e.dataAdapter = y.Decorate(e.dataAdapter, w)),
                                        (null == e.tokenSeparators && null == e.tokenizer) || (e.dataAdapter = y.Decorate(e.dataAdapter, A)),
                                        null != e.query)
                                    ) {
                                        var t = u(e.amdBase + "compat/query");
                                        e.dataAdapter = y.Decorate(e.dataAdapter, t);
                                    }
                                    if (null != e.initSelection) {
                                        var n = u(e.amdBase + "compat/initSelection");
                                        e.dataAdapter = y.Decorate(e.dataAdapter, n);
                                    }
                                }
                                if (
                                    (null == e.resultsAdapter &&
                                        ((e.resultsAdapter = d),
                                        null != e.ajax && (e.resultsAdapter = y.Decorate(e.resultsAdapter, T)),
                                        null != e.placeholder && (e.resultsAdapter = y.Decorate(e.resultsAdapter, O)),
                                        e.selectOnClose && (e.resultsAdapter = y.Decorate(e.resultsAdapter, I))),
                                    null == e.dropdownAdapter)
                                ) {
                                    if (e.multiple) e.dropdownAdapter = E;
                                    else {
                                        var r = y.Decorate(E, C);
                                        e.dropdownAdapter = r;
                                    }
                                    if (
                                        (0 !== e.minimumResultsForSearch && (e.dropdownAdapter = y.Decorate(e.dropdownAdapter, L)),
                                        e.closeOnSelect && (e.dropdownAdapter = y.Decorate(e.dropdownAdapter, j)),
                                        null != e.dropdownCssClass || null != e.dropdownCss || null != e.adaptDropdownCssClass)
                                    ) {
                                        var i = u(e.amdBase + "compat/dropdownCss");
                                        e.dropdownAdapter = y.Decorate(e.dropdownAdapter, i);
                                    }
                                    e.dropdownAdapter = y.Decorate(e.dropdownAdapter, q);
                                }
                                if (null == e.selectionAdapter) {
                                    if (
                                        (e.multiple ? (e.selectionAdapter = h) : (e.selectionAdapter = p),
                                        null != e.placeholder && (e.selectionAdapter = y.Decorate(e.selectionAdapter, f)),
                                        e.allowClear && (e.selectionAdapter = y.Decorate(e.selectionAdapter, g)),
                                        e.multiple && (e.selectionAdapter = y.Decorate(e.selectionAdapter, m)),
                                        null != e.containerCssClass || null != e.containerCss || null != e.adaptContainerCssClass)
                                    ) {
                                        var o = u(e.amdBase + "compat/containerCss");
                                        e.selectionAdapter = y.Decorate(e.selectionAdapter, o);
                                    }
                                    e.selectionAdapter = y.Decorate(e.selectionAdapter, v);
                                }
                                (e.language = this._resolveLanguage(e.language)), e.language.push("en");
                                for (var s = [], a = 0; a < e.language.length; a++) {
                                    var l = e.language[a];
                                    -1 === s.indexOf(l) && s.push(l);
                                }
                                return (e.language = s), (e.translations = this._processTranslations(e.language, e.debug)), e;
                            }),
                            (n.prototype.reset = function () {
                                function a(e) {
                                    return e.replace(/[^\u0000-\u007E]/g, function (e) {
                                        return t[e] || e;
                                    });
                                }
                                this.defaults = {
                                    amdBase: "./",
                                    amdLanguageBase: "./i18n/",
                                    closeOnSelect: !0,
                                    debug: !1,
                                    dropdownAutoWidth: !1,
                                    escapeMarkup: y.escapeMarkup,
                                    language: {},
                                    matcher: function e(t, n) {
                                        if ("" === c.trim(t.term)) return n;
                                        if (n.children && 0 < n.children.length) {
                                            for (var r = c.extend(!0, {}, n), i = n.children.length - 1; 0 <= i; i--) null == e(t, n.children[i]) && r.children.splice(i, 1);
                                            return 0 < r.children.length ? r : e(t, r);
                                        }
                                        var o = a(n.text).toUpperCase(),
                                            s = a(t.term).toUpperCase();
                                        return -1 < o.indexOf(s) ? n : null;
                                    },
                                    minimumInputLength: 0,
                                    maximumInputLength: 0,
                                    maximumSelectionLength: 0,
                                    minimumResultsForSearch: 0,
                                    selectOnClose: !1,
                                    scrollAfterSelect: !1,
                                    sorter: function (e) {
                                        return e;
                                    },
                                    templateResult: function (e) {
                                        return e.text;
                                    },
                                    templateSelection: function (e) {
                                        return e.text;
                                    },
                                    theme: "default",
                                    width: "resolve",
                                };
                            }),
                            (n.prototype.applyFromElement = function (e, t) {
                                var n = e.language,
                                    r = this.defaults.language,
                                    i = t.prop("lang"),
                                    o = t.closest("[lang]").prop("lang"),
                                    s = Array.prototype.concat.call(this._resolveLanguage(i), this._resolveLanguage(n), this._resolveLanguage(r), this._resolveLanguage(o));
                                return (e.language = s), e;
                            }),
                            (n.prototype._resolveLanguage = function (e) {
                                if (!e) return [];
                                if (c.isEmptyObject(e)) return [];
                                if (c.isPlainObject(e)) return [e];
                                var t;
                                t = c.isArray(e) ? e : [e];
                                for (var n = [], r = 0; r < t.length; r++)
                                    if ((n.push(t[r]), "string" == typeof t[r] && 0 < t[r].indexOf("-"))) {
                                        var i = t[r].split("-")[0];
                                        n.push(i);
                                    }
                                return n;
                            }),
                            (n.prototype._processTranslations = function (e, t) {
                                for (var n = new s(), r = 0; r < e.length; r++) {
                                    var i = new s(),
                                        o = e[r];
                                    if ("string" == typeof o)
                                        try {
                                            i = s.loadPath(o);
                                        } catch (e) {
                                            try {
                                                (o = this.defaults.amdLanguageBase + o), (i = s.loadPath(o));
                                            } catch (e) {
                                                t && window.console && console.warn && console.warn('Select2: The language file for "' + o + '" could not be automatically loaded. A fallback will be used instead.');
                                            }
                                        }
                                    else i = c.isPlainObject(o) ? new s(o) : o;
                                    n.extend(i);
                                }
                                return n;
                            }),
                            (n.prototype.set = function (e, t) {
                                var n = {};
                                n[c.camelCase(e)] = t;
                                var r = y._convertData(n);
                                c.extend(!0, this.defaults, r);
                            }),
                            new n()
                        );
                    }
                ),
                e.define("select2/options", ["require", "jquery", "./defaults", "./utils"], function (r, d, i, p) {
                    function e(e, t) {
                        if (((this.options = e), null != t && this.fromElement(t), null != t && (this.options = i.applyFromElement(this.options, t)), (this.options = i.apply(this.options)), t && t.is("input"))) {
                            var n = r(this.get("amdBase") + "compat/inputData");
                            this.options.dataAdapter = p.Decorate(this.options.dataAdapter, n);
                        }
                    }
                    return (
                        (e.prototype.fromElement = function (e) {
                            var t = ["select2"];
                            null == this.options.multiple && (this.options.multiple = e.prop("multiple")),
                                null == this.options.disabled && (this.options.disabled = e.prop("disabled")),
                                null == this.options.dir && (e.prop("dir") ? (this.options.dir = e.prop("dir")) : e.closest("[dir]").prop("dir") ? (this.options.dir = e.closest("[dir]").prop("dir")) : (this.options.dir = "ltr")),
                                e.prop("disabled", this.options.disabled),
                                e.prop("multiple", this.options.multiple),
                                p.GetData(e[0], "select2Tags") &&
                                    (this.options.debug &&
                                        window.console &&
                                        console.warn &&
                                        console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),
                                    p.StoreData(e[0], "data", p.GetData(e[0], "select2Tags")),
                                    p.StoreData(e[0], "tags", !0)),
                                p.GetData(e[0], "ajaxUrl") &&
                                    (this.options.debug &&
                                        window.console &&
                                        console.warn &&
                                        console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),
                                    e.attr("ajax--url", p.GetData(e[0], "ajaxUrl")),
                                    p.StoreData(e[0], "ajax-Url", p.GetData(e[0], "ajaxUrl")));
                            var n = {};
                            function r(e, t) {
                                return t.toUpperCase();
                            }
                            for (var i = 0; i < e[0].attributes.length; i++) {
                                var o = e[0].attributes[i].name,
                                    s = "data-";
                                if (o.substr(0, s.length) == s) {
                                    var a = o.substring(s.length),
                                        l = p.GetData(e[0], a);
                                    n[a.replace(/-([a-z])/g, r)] = l;
                                }
                            }
                            d.fn.jquery && "1." == d.fn.jquery.substr(0, 2) && e[0].dataset && (n = d.extend(!0, {}, e[0].dataset, n));
                            var c = d.extend(!0, {}, p.GetData(e[0]), n);
                            for (var u in (c = p._convertData(c))) -1 < d.inArray(u, t) || (d.isPlainObject(this.options[u]) ? d.extend(this.options[u], c[u]) : (this.options[u] = c[u]));
                            return this;
                        }),
                        (e.prototype.get = function (e) {
                            return this.options[e];
                        }),
                        (e.prototype.set = function (e, t) {
                            this.options[e] = t;
                        }),
                        e
                    );
                }),
                e.define("select2/core", ["jquery", "./options", "./utils", "./keys"], function (o, c, u, r) {
                    var d = function (e, t) {
                        null != u.GetData(e[0], "select2") && u.GetData(e[0], "select2").destroy(), (this.$element = e), (this.id = this._generateId(e)), (t = t || {}), (this.options = new c(t, e)), d.__super__.constructor.call(this);
                        var n = e.attr("tabindex") || 0;
                        u.StoreData(e[0], "old-tabindex", n), e.attr("tabindex", "-1");
                        var r = this.options.get("dataAdapter");
                        this.dataAdapter = new r(e, this.options);
                        var i = this.render();
                        this._placeContainer(i);
                        var o = this.options.get("selectionAdapter");
                        (this.selection = new o(e, this.options)), (this.$selection = this.selection.render()), this.selection.position(this.$selection, i);
                        var s = this.options.get("dropdownAdapter");
                        (this.dropdown = new s(e, this.options)), (this.$dropdown = this.dropdown.render()), this.dropdown.position(this.$dropdown, i);
                        var a = this.options.get("resultsAdapter");
                        (this.results = new a(e, this.options, this.dataAdapter)), (this.$results = this.results.render()), this.results.position(this.$results, this.$dropdown);
                        var l = this;
                        this._bindAdapters(),
                            this._registerDomEvents(),
                            this._registerDataEvents(),
                            this._registerSelectionEvents(),
                            this._registerDropdownEvents(),
                            this._registerResultsEvents(),
                            this._registerEvents(),
                            this.dataAdapter.current(function (e) {
                                l.trigger("selection:update", { data: e });
                            }),
                            e.addClass("select2-hidden-accessible"),
                            e.attr("aria-hidden", "true"),
                            this._syncAttributes(),
                            u.StoreData(e[0], "select2", this),
                            e.data("select2", this);
                    };
                    return (
                        u.Extend(d, u.Observable),
                        (d.prototype._generateId = function (e) {
                            return "select2-" + (null != e.attr("id") ? e.attr("id") : null != e.attr("name") ? e.attr("name") + "-" + u.generateChars(2) : u.generateChars(4)).replace(/(:|\.|\[|\]|,)/g, "");
                        }),
                        (d.prototype._placeContainer = function (e) {
                            e.insertAfter(this.$element);
                            var t = this._resolveWidth(this.$element, this.options.get("width"));
                            null != t && e.css("width", t);
                        }),
                        (d.prototype._resolveWidth = function (e, t) {
                            var n = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;
                            if ("resolve" == t) {
                                var r = this._resolveWidth(e, "style");
                                return null != r ? r : this._resolveWidth(e, "element");
                            }
                            if ("element" == t) {
                                var i = e.outerWidth(!1);
                                return i <= 0 ? "auto" : i + "px";
                            }
                            if ("style" != t) return "computedstyle" != t ? t : window.getComputedStyle(e[0]).width;
                            var o = e.attr("style");
                            if ("string" != typeof o) return null;
                            for (var s = o.split(";"), a = 0, l = s.length; a < l; a += 1) {
                                var c = s[a].replace(/\s/g, "").match(n);
                                if (null !== c && 1 <= c.length) return c[1];
                            }
                            return null;
                        }),
                        (d.prototype._bindAdapters = function () {
                            this.dataAdapter.bind(this, this.$container), this.selection.bind(this, this.$container), this.dropdown.bind(this, this.$container), this.results.bind(this, this.$container);
                        }),
                        (d.prototype._registerDomEvents = function () {
                            var t = this;
                            this.$element.on("change.select2", function () {
                                t.dataAdapter.current(function (e) {
                                    t.trigger("selection:update", { data: e });
                                });
                            }),
                                this.$element.on("focus.select2", function (e) {
                                    t.trigger("focus", e);
                                }),
                                (this._syncA = u.bind(this._syncAttributes, this)),
                                (this._syncS = u.bind(this._syncSubtree, this)),
                                this.$element[0].attachEvent && this.$element[0].attachEvent("onpropertychange", this._syncA);
                            var e = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
                            null != e
                                ? ((this._observer = new e(function (e) {
                                      t._syncA(), t._syncS(null, e);
                                  })),
                                  this._observer.observe(this.$element[0], { attributes: !0, childList: !0, subtree: !1 }))
                                : this.$element[0].addEventListener &&
                                  (this.$element[0].addEventListener("DOMAttrModified", t._syncA, !1), this.$element[0].addEventListener("DOMNodeInserted", t._syncS, !1), this.$element[0].addEventListener("DOMNodeRemoved", t._syncS, !1));
                        }),
                        (d.prototype._registerDataEvents = function () {
                            var n = this;
                            this.dataAdapter.on("*", function (e, t) {
                                n.trigger(e, t);
                            });
                        }),
                        (d.prototype._registerSelectionEvents = function () {
                            var n = this,
                                r = ["toggle", "focus"];
                            this.selection.on("toggle", function () {
                                n.toggleDropdown();
                            }),
                                this.selection.on("focus", function (e) {
                                    n.focus(e);
                                }),
                                this.selection.on("*", function (e, t) {
                                    -1 === o.inArray(e, r) && n.trigger(e, t);
                                });
                        }),
                        (d.prototype._registerDropdownEvents = function () {
                            var n = this;
                            this.dropdown.on("*", function (e, t) {
                                n.trigger(e, t);
                            });
                        }),
                        (d.prototype._registerResultsEvents = function () {
                            var n = this;
                            this.results.on("*", function (e, t) {
                                n.trigger(e, t);
                            });
                        }),
                        (d.prototype._registerEvents = function () {
                            var n = this;
                            this.on("open", function () {
                                n.$container.addClass("select2-container--open");
                            }),
                                this.on("close", function () {
                                    n.$container.removeClass("select2-container--open");
                                }),
                                this.on("enable", function () {
                                    n.$container.removeClass("select2-container--disabled");
                                }),
                                this.on("disable", function () {
                                    n.$container.addClass("select2-container--disabled");
                                }),
                                this.on("blur", function () {
                                    n.$container.removeClass("select2-container--focus");
                                }),
                                this.on("query", function (t) {
                                    n.isOpen() || n.trigger("open", {}),
                                        this.dataAdapter.query(t, function (e) {
                                            n.trigger("results:all", { data: e, query: t });
                                        });
                                }),
                                this.on("query:append", function (t) {
                                    this.dataAdapter.query(t, function (e) {
                                        n.trigger("results:append", { data: e, query: t });
                                    });
                                }),
                                this.on("keypress", function (e) {
                                    var t = e.which;
                                    n.isOpen()
                                        ? t === r.ESC || t === r.TAB || (t === r.UP && e.altKey)
                                            ? (n.close(e), e.preventDefault())
                                            : t === r.ENTER
                                            ? (n.trigger("results:select", {}), e.preventDefault())
                                            : t === r.SPACE && e.ctrlKey
                                            ? (n.trigger("results:toggle", {}), e.preventDefault())
                                            : t === r.UP
                                            ? (n.trigger("results:previous", {}), e.preventDefault())
                                            : t === r.DOWN && (n.trigger("results:next", {}), e.preventDefault())
                                        : (t === r.ENTER || t === r.SPACE || (t === r.DOWN && e.altKey)) && (n.open(), e.preventDefault());
                                });
                        }),
                        (d.prototype._syncAttributes = function () {
                            this.options.set("disabled", this.$element.prop("disabled")), this.isDisabled() ? (this.isOpen() && this.close(), this.trigger("disable", {})) : this.trigger("enable", {});
                        }),
                        (d.prototype._isChangeMutation = function (e, t) {
                            var n = !1,
                                r = this;
                            if (!e || !e.target || "OPTION" === e.target.nodeName || "OPTGROUP" === e.target.nodeName) {
                                if (t)
                                    if (t.addedNodes && 0 < t.addedNodes.length)
                                        for (var i = 0; i < t.addedNodes.length; i++) {
                                            t.addedNodes[i].selected && (n = !0);
                                        }
                                    else
                                        t.removedNodes && 0 < t.removedNodes.length
                                            ? (n = !0)
                                            : o.isArray(t) &&
                                              o.each(t, function (e, t) {
                                                  if (r._isChangeMutation(e, t)) return !(n = !0);
                                              });
                                else n = !0;
                                return n;
                            }
                        }),
                        (d.prototype._syncSubtree = function (e, t) {
                            var n = this._isChangeMutation(e, t),
                                r = this;
                            n &&
                                this.dataAdapter.current(function (e) {
                                    r.trigger("selection:update", { data: e });
                                });
                        }),
                        (d.prototype.trigger = function (e, t) {
                            var n = d.__super__.trigger,
                                r = { open: "opening", close: "closing", select: "selecting", unselect: "unselecting", clear: "clearing" };
                            if ((void 0 === t && (t = {}), e in r)) {
                                var i = r[e],
                                    o = { prevented: !1, name: e, args: t };
                                if ((n.call(this, i, o), o.prevented)) return void (t.prevented = !0);
                            }
                            n.call(this, e, t);
                        }),
                        (d.prototype.toggleDropdown = function () {
                            this.isDisabled() || (this.isOpen() ? this.close() : this.open());
                        }),
                        (d.prototype.open = function () {
                            this.isOpen() || this.isDisabled() || this.trigger("query", {});
                        }),
                        (d.prototype.close = function (e) {
                            this.isOpen() && this.trigger("close", { originalEvent: e });
                        }),
                        (d.prototype.isEnabled = function () {
                            return !this.isDisabled();
                        }),
                        (d.prototype.isDisabled = function () {
                            return this.options.get("disabled");
                        }),
                        (d.prototype.isOpen = function () {
                            return this.$container.hasClass("select2-container--open");
                        }),
                        (d.prototype.hasFocus = function () {
                            return this.$container.hasClass("select2-container--focus");
                        }),
                        (d.prototype.focus = function (e) {
                            this.hasFocus() || (this.$container.addClass("select2-container--focus"), this.trigger("focus", {}));
                        }),
                        (d.prototype.enable = function (e) {
                            this.options.get("debug") &&
                                window.console &&
                                console.warn &&
                                console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),
                                (null != e && 0 !== e.length) || (e = [!0]);
                            var t = !e[0];
                            this.$element.prop("disabled", t);
                        }),
                        (d.prototype.data = function () {
                            this.options.get("debug") &&
                                0 < arguments.length &&
                                window.console &&
                                console.warn &&
                                console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');
                            var t = [];
                            return (
                                this.dataAdapter.current(function (e) {
                                    t = e;
                                }),
                                t
                            );
                        }),
                        (d.prototype.val = function (e) {
                            if (
                                (this.options.get("debug") &&
                                    window.console &&
                                    console.warn &&
                                    console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),
                                null == e || 0 === e.length)
                            )
                                return this.$element.val();
                            var t = e[0];
                            o.isArray(t) &&
                                (t = o.map(t, function (e) {
                                    return e.toString();
                                })),
                                this.$element.val(t).trigger("input").trigger("change");
                        }),
                        (d.prototype.destroy = function () {
                            this.$container.remove(),
                                this.$element[0].detachEvent && this.$element[0].detachEvent("onpropertychange", this._syncA),
                                null != this._observer
                                    ? (this._observer.disconnect(), (this._observer = null))
                                    : this.$element[0].removeEventListener &&
                                      (this.$element[0].removeEventListener("DOMAttrModified", this._syncA, !1),
                                      this.$element[0].removeEventListener("DOMNodeInserted", this._syncS, !1),
                                      this.$element[0].removeEventListener("DOMNodeRemoved", this._syncS, !1)),
                                (this._syncA = null),
                                (this._syncS = null),
                                this.$element.off(".select2"),
                                this.$element.attr("tabindex", u.GetData(this.$element[0], "old-tabindex")),
                                this.$element.removeClass("select2-hidden-accessible"),
                                this.$element.attr("aria-hidden", "false"),
                                u.RemoveData(this.$element[0]),
                                this.$element.removeData("select2"),
                                this.dataAdapter.destroy(),
                                this.selection.destroy(),
                                this.dropdown.destroy(),
                                this.results.destroy(),
                                (this.dataAdapter = null),
                                (this.selection = null),
                                (this.dropdown = null),
                                (this.results = null);
                        }),
                        (d.prototype.render = function () {
                            var e = o('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');
                            return e.attr("dir", this.options.get("dir")), (this.$container = e), this.$container.addClass("select2-container--" + this.options.get("theme")), u.StoreData(e[0], "element", this.$element), e;
                        }),
                        d
                    );
                }),
                e.define("jquery-mousewheel", ["jquery"], function (e) {
                    return e;
                }),
                e.define("jquery.select2", ["jquery", "jquery-mousewheel", "./select2/core", "./select2/defaults", "./select2/utils"], function (i, e, o, t, s) {
                    if (null == i.fn.select2) {
                        var a = ["open", "close", "destroy"];
                        i.fn.select2 = function (t) {
                            if ("object" == typeof (t = t || {}))
                                return (
                                    this.each(function () {
                                        var e = i.extend(!0, {}, t);
                                        new o(i(this), e);
                                    }),
                                    this
                                );
                            if ("string" != typeof t) throw new Error("Invalid arguments for Select2: " + t);
                            var n,
                                r = Array.prototype.slice.call(arguments, 1);
                            return (
                                this.each(function () {
                                    var e = s.GetData(this, "select2");
                                    null == e && window.console && console.error && console.error("The select2('" + t + "') method was called on an element that is not using Select2."), (n = e[t].apply(e, r));
                                }),
                                -1 < i.inArray(t, a) ? this : n
                            );
                        };
                    }
                    return null == i.fn.select2.defaults && (i.fn.select2.defaults = t), o;
                }),
                { define: e.define, require: e.require }
            );
        })(),
        t = e.require("jquery.select2");
    return (u.fn.select2.amd = e), t;
});