/*! jQuery v1.9.0 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license */
//@ sourceMappingURL=jquery.min.map;
//     Underscore.js 1.4.4
//     http://underscorejs.org
//     (c) 2009-2013 Jeremy Ashkenas, DocumentCloud Inc.
//     Underscore may be freely distributed under the MIT license.
//     (c) 2010-2012 Jeremy Ashkenas, DocumentCloud Inc.
//     Backbone may be freely distributed under the MIT license.
//     For all details and documentation:
//     http://backbonejs.org
/**
 * @license RequireJS text 2.0.5 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
 * Available via the MIT or new BSD license.
 * see: http://github.com/requirejs/text for details
 */
/**
 * bootstrap.js v3.0.0 by @fat and @mdo
 * Copyright 2013 Twitter Inc.
 * http://www.apache.org/licenses/LICENSE-2.0
 */
/* ========================================================================
 * Bootstrap: transition.js v3.0.0
 * http://twbs.github.com/bootstrap/javascript.html#transitions
 * ========================================================================
 * Copyright 2013 Twitter, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ======================================================================== */
/* ========================================================================
 * Bootstrap: alert.js v3.0.0
 * http://twbs.github.com/bootstrap/javascript.html#alerts
 * ========================================================================
 * Copyright 2013 Twitter, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ======================================================================== */
/* ========================================================================
 * Bootstrap: button.js v3.0.0
 * http://twbs.github.com/bootstrap/javascript.html#buttons
 * ========================================================================
 * Copyright 2013 Twitter, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ======================================================================== */
/* ========================================================================
 * Bootstrap: carousel.js v3.0.0
 * http://twbs.github.com/bootstrap/javascript.html#carousel
 * ========================================================================
 * Copyright 2012 Twitter, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ======================================================================== */
/* ========================================================================
 * Bootstrap: collapse.js v3.0.0
 * http://twbs.github.com/bootstrap/javascript.html#collapse
 * ========================================================================
 * Copyright 2012 Twitter, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ======================================================================== */
/* ========================================================================
 * Bootstrap: dropdown.js v3.0.0
 * http://twbs.github.com/bootstrap/javascript.html#dropdowns
 * ========================================================================
 * Copyright 2012 Twitter, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ======================================================================== */
/* ========================================================================
 * Bootstrap: modal.js v3.0.0
 * http://twbs.github.com/bootstrap/javascript.html#modals
 * ========================================================================
 * Copyright 2012 Twitter, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ======================================================================== */
/* ========================================================================
 * Bootstrap: tooltip.js v3.0.0
 * http://twbs.github.com/bootstrap/javascript.html#tooltip
 * Inspired by the original jQuery.tipsy by Jason Frame
 * ========================================================================
 * Copyright 2012 Twitter, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ======================================================================== */
/* ========================================================================
 * Bootstrap: popover.js v3.0.0
 * http://twbs.github.com/bootstrap/javascript.html#popovers
 * ========================================================================
 * Copyright 2012 Twitter, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ======================================================================== */
/* ========================================================================
 * Bootstrap: scrollspy.js v3.0.0
 * http://twbs.github.com/bootstrap/javascript.html#scrollspy
 * ========================================================================
 * Copyright 2012 Twitter, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ======================================================================== */
/* ========================================================================
 * Bootstrap: tab.js v3.0.0
 * http://twbs.github.com/bootstrap/javascript.html#tabs
 * ========================================================================
 * Copyright 2012 Twitter, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ======================================================================== */
/* ========================================================================
 * Bootstrap: affix.js v3.0.0
 * http://twbs.github.com/bootstrap/javascript.html#affix
 * ========================================================================
 * Copyright 2012 Twitter, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ======================================================================== */
var j = 5;

function guidS4() {
  return ((65536 * (1 + Math.random())) | 0).toString(16).substring(1);
}

function generateGuid() {
  return (
    guidS4() +
    guidS4() +
    "-" +
    guidS4() +
    "-" +
    guidS4() +
    "-" +
    guidS4() +
    "-" +
    guidS4() +
    guidS4() +
    guidS4()
  );
}
(function (e, t) {
  function n(e) {
    var t = e.length,
      n = ut.type(e);
    return ut.isWindow(e)
      ? !1
      : 1 === e.nodeType && t
      ? !0
      : "array" === n ||
        ("function" !== n &&
          (0 === t || ("number" == typeof t && t > 0 && t - 1 in e)));
  }

  function r(e) {
    var t = (Et[e] = {});
    return (
      ut.each(e.match(ft) || [], function (e, n) {
        t[n] = !0;
      }),
      t
    );
  }

  function i(e, n, r, i) {
    if (ut.acceptData(e)) {
      var s,
        o,
        u = ut.expando,
        a = "string" == typeof n,
        f = e.nodeType,
        l = f ? ut.cache : e,
        c = f ? e[u] : e[u] && u;
      if ((c && l[c] && (i || l[c].data)) || !a || r !== t)
        return (
          c || (f ? (e[u] = c = Y.pop() || ut.guid++) : (c = u)),
          l[c] || ((l[c] = {}), f || (l[c].toJSON = ut.noop)),
          ("object" == typeof n || "function" == typeof n) &&
            (i
              ? (l[c] = ut.extend(l[c], n))
              : (l[c].data = ut.extend(l[c].data, n))),
          (s = l[c]),
          i || (s.data || (s.data = {}), (s = s.data)),
          r !== t && (s[ut.camelCase(n)] = r),
          a ? ((o = s[n]), null == o && (o = s[ut.camelCase(n)])) : (o = s),
          o
        );
    }
  }

  function s(e, t, n) {
    if (ut.acceptData(e)) {
      var r,
        i,
        s,
        o = e.nodeType,
        a = o ? ut.cache : e,
        f = o ? e[ut.expando] : ut.expando;
      if (a[f]) {
        if (t && (r = n ? a[f] : a[f].data)) {
          ut.isArray(t)
            ? (t = t.concat(ut.map(t, ut.camelCase)))
            : t in r
            ? (t = [t])
            : ((t = ut.camelCase(t)), (t = t in r ? [t] : t.split(" ")));
          for (i = 0, s = t.length; s > i; i++) delete r[t[i]];
          if (!(n ? u : ut.isEmptyObject)(r)) return;
        }
        (n || (delete a[f].data, u(a[f]))) &&
          (o
            ? ut.cleanData([e], !0)
            : ut.support.deleteExpando || a != a.window
            ? delete a[f]
            : (a[f] = null));
      }
    }
  }

  function o(e, n, r) {
    if (r === t && 1 === e.nodeType) {
      var i = "data-" + n.replace(xt, "-$1").toLowerCase();
      if (((r = e.getAttribute(i)), "string" == typeof r)) {
        try {
          r =
            "true" === r
              ? !0
              : "false" === r
              ? !1
              : "null" === r
              ? null
              : +r + "" === r
              ? +r
              : St.test(r)
              ? ut.parseJSON(r)
              : r;
        } catch (s) {}
        ut.data(e, n, r);
      } else r = t;
    }
    return r;
  }

  function u(e) {
    var t;
    for (t in e)
      if (("data" !== t || !ut.isEmptyObject(e[t])) && "toJSON" !== t)
        return !1;
    return !0;
  }

  function a() {
    return !0;
  }

  function f() {
    return !1;
  }

  function l(e, t) {
    do e = e[t];
    while (e && 1 !== e.nodeType);
    return e;
  }

  function c(e, t, n) {
    if (((t = t || 0), ut.isFunction(t)))
      return ut.grep(e, function (e, r) {
        var i = !!t.call(e, r, e);
        return i === n;
      });
    if (t.nodeType)
      return ut.grep(e, function (e) {
        return (e === t) === n;
      });
    if ("string" == typeof t) {
      var r = ut.grep(e, function (e) {
        return 1 === e.nodeType;
      });
      if (Rt.test(t)) return ut.filter(t, r, !n);
      t = ut.filter(t, r);
    }
    return ut.grep(e, function (e) {
      return ut.inArray(e, t) >= 0 === n;
    });
  }

  function h(e) {
    var t = Wt.split("|"),
      n = e.createDocumentFragment();
    if (n.createElement) for (; t.length; ) n.createElement(t.pop());
    return n;
  }

  function p(e, t) {
    return (
      e.getElementsByTagName(t)[0] ||
      e.appendChild(e.ownerDocument.createElement(t))
    );
  }

  function d(e) {
    var t = e.getAttributeNode("type");
    return (e.type = (t && t.specified) + "/" + e.type), e;
  }

  function v(e) {
    var t = nn.exec(e.type);
    return t ? (e.type = t[1]) : e.removeAttribute("type"), e;
  }

  function m(e, t) {
    for (var n, r = 0; null != (n = e[r]); r++)
      ut._data(n, "globalEval", !t || ut._data(t[r], "globalEval"));
  }

  function g(e, t) {
    if (1 === t.nodeType && ut.hasData(e)) {
      var n,
        r,
        i,
        s = ut._data(e),
        o = ut._data(t, s),
        u = s.events;
      if (u) {
        delete o.handle, (o.events = {});
        for (n in u)
          for (r = 0, i = u[n].length; i > r; r++) ut.event.add(t, n, u[n][r]);
      }
      o.data && (o.data = ut.extend({}, o.data));
    }
  }

  function y(e, t) {
    var n, r, i;
    if (1 === t.nodeType) {
      if (
        ((n = t.nodeName.toLowerCase()),
        !ut.support.noCloneEvent && t[ut.expando])
      ) {
        r = ut._data(t);
        for (i in r.events) ut.removeEvent(t, i, r.handle);
        t.removeAttribute(ut.expando);
      }
      "script" === n && t.text !== e.text
        ? ((d(t).text = e.text), v(t))
        : "object" === n
        ? (t.parentNode && (t.outerHTML = e.outerHTML),
          ut.support.html5Clone &&
            e.innerHTML &&
            !ut.trim(t.innerHTML) &&
            (t.innerHTML = e.innerHTML))
        : "input" === n && Zt.test(e.type)
        ? ((t.defaultChecked = t.checked = e.checked),
          t.value !== e.value && (t.value = e.value))
        : "option" === n
        ? (t.defaultSelected = t.selected = e.defaultSelected)
        : ("input" === n || "textarea" === n) &&
          (t.defaultValue = e.defaultValue);
    }
  }

  function b(e, n) {
    var r,
      i,
      s = 0,
      o =
        e.getElementsByTagName !== t
          ? e.getElementsByTagName(n || "*")
          : e.querySelectorAll !== t
          ? e.querySelectorAll(n || "*")
          : t;
    if (!o)
      for (o = [], r = e.childNodes || e; null != (i = r[s]); s++)
        !n || ut.nodeName(i, n) ? o.push(i) : ut.merge(o, b(i, n));
    return n === t || (n && ut.nodeName(e, n)) ? ut.merge([e], o) : o;
  }

  function w(e) {
    Zt.test(e.type) && (e.defaultChecked = e.checked);
  }

  function E(e, t) {
    if (t in e) return t;
    for (
      var n = t.charAt(0).toUpperCase() + t.slice(1), r = t, i = xn.length;
      i--;

    )
      if (((t = xn[i] + n), t in e)) return t;
    return r;
  }

  function S(e, t) {
    return (
      (e = t || e),
      "none" === ut.css(e, "display") || !ut.contains(e.ownerDocument, e)
    );
  }

  function x(e, t) {
    for (var n, r = [], i = 0, s = e.length; s > i; i++)
      (n = e[i]),
        n.style &&
          ((r[i] = ut._data(n, "olddisplay")),
          t
            ? (r[i] || "none" !== n.style.display || (n.style.display = ""),
              "" === n.style.display &&
                S(n) &&
                (r[i] = ut._data(n, "olddisplay", k(n.nodeName))))
            : r[i] || S(n) || ut._data(n, "olddisplay", ut.css(n, "display")));
    for (i = 0; s > i; i++)
      (n = e[i]),
        n.style &&
          ((t && "none" !== n.style.display && "" !== n.style.display) ||
            (n.style.display = t ? r[i] || "" : "none"));
    return e;
  }

  function T(e, t, n) {
    var r = mn.exec(t);
    return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || "px") : t;
  }

  function N(e, t, n, r, i) {
    for (
      var s = n === (r ? "border" : "content") ? 4 : "width" === t ? 1 : 0,
        o = 0;
      4 > s;
      s += 2
    )
      "margin" === n && (o += ut.css(e, n + Sn[s], !0, i)),
        r
          ? ("content" === n && (o -= ut.css(e, "padding" + Sn[s], !0, i)),
            "margin" !== n &&
              (o -= ut.css(e, "border" + Sn[s] + "Width", !0, i)))
          : ((o += ut.css(e, "padding" + Sn[s], !0, i)),
            "padding" !== n &&
              (o += ut.css(e, "border" + Sn[s] + "Width", !0, i)));
    return o;
  }

  function C(e, t, n) {
    var r = !0,
      i = "width" === t ? e.offsetWidth : e.offsetHeight,
      s = fn(e),
      o =
        ut.support.boxSizing && "border-box" === ut.css(e, "boxSizing", !1, s);
    if (0 >= i || null == i) {
      if (
        ((i = an(e, t, s)),
        (0 > i || null == i) && (i = e.style[t]),
        gn.test(i))
      )
        return i;
      (r = o && (ut.support.boxSizingReliable || i === e.style[t])),
        (i = parseFloat(i) || 0);
    }
    return i + N(e, t, n || (o ? "border" : "content"), r, s) + "px";
  }

  function k(e) {
    var t = $,
      n = bn[e];
    return (
      n ||
        ((n = L(e, t)),
        ("none" !== n && n) ||
          ((ln = (
            ln ||
            ut("<iframe frameborder='0' width='0' height='0'/>").css(
              "cssText",
              "display:block !important"
            )
          ).appendTo(t.documentElement)),
          (t = (ln[0].contentWindow || ln[0].contentDocument).document),
          t.write("<!doctype html><html><body>"),
          t.close(),
          (n = L(e, t)),
          ln.detach()),
        (bn[e] = n)),
      n
    );
  }

  function L(e, t) {
    var n = ut(t.createElement(e)).appendTo(t.body),
      r = ut.css(n[0], "display");
    return n.remove(), r;
  }

  function A(e, t, n, r) {
    var i;
    if (ut.isArray(t))
      ut.each(t, function (t, i) {
        n || Nn.test(e)
          ? r(e, i)
          : A(e + "[" + ("object" == typeof i ? t : "") + "]", i, n, r);
      });
    else if (n || "object" !== ut.type(t)) r(e, t);
    else for (i in t) A(e + "[" + i + "]", t[i], n, r);
  }

  function O(e) {
    return function (t, n) {
      "string" != typeof t && ((n = t), (t = "*"));
      var r,
        i = 0,
        s = t.toLowerCase().match(ft) || [];
      if (ut.isFunction(n))
        for (; (r = s[i++]); )
          "+" === r[0]
            ? ((r = r.slice(1) || "*"), (e[r] = e[r] || []).unshift(n))
            : (e[r] = e[r] || []).push(n);
    };
  }

  function M(e, n, r, i) {
    function s(a) {
      var f;
      return (
        (o[a] = !0),
        ut.each(e[a] || [], function (e, a) {
          var l = a(n, r, i);
          return "string" != typeof l || u || o[l]
            ? u
              ? !(f = l)
              : t
            : (n.dataTypes.unshift(l), s(l), !1);
        }),
        f
      );
    }
    var o = {},
      u = e === Un;
    return s(n.dataTypes[0]) || (!o["*"] && s("*"));
  }

  function _(e, n) {
    var r,
      i,
      s = ut.ajaxSettings.flatOptions || {};
    for (r in n) n[r] !== t && ((s[r] ? e : i || (i = {}))[r] = n[r]);
    return i && ut.extend(!0, e, i), e;
  }

  function D(e, n, r) {
    var i,
      s,
      o,
      u,
      a = e.contents,
      f = e.dataTypes,
      l = e.responseFields;
    for (s in l) s in r && (n[l[s]] = r[s]);
    for (; "*" === f[0]; )
      f.shift(),
        i === t && (i = e.mimeType || n.getResponseHeader("Content-Type"));
    if (i)
      for (s in a)
        if (a[s] && a[s].test(i)) {
          f.unshift(s);
          break;
        }
    if (f[0] in r) o = f[0];
    else {
      for (s in r) {
        if (!f[0] || e.converters[s + " " + f[0]]) {
          o = s;
          break;
        }
        u || (u = s);
      }
      o = o || u;
    }
    return o ? (o !== f[0] && f.unshift(o), r[o]) : t;
  }

  function P(e, t) {
    var n,
      r,
      i,
      s,
      o = {},
      u = 0,
      a = e.dataTypes.slice(),
      f = a[0];
    if ((e.dataFilter && (t = e.dataFilter(t, e.dataType)), a[1]))
      for (n in e.converters) o[n.toLowerCase()] = e.converters[n];
    for (; (i = a[++u]); )
      if ("*" !== i) {
        if ("*" !== f && f !== i) {
          if (((n = o[f + " " + i] || o["* " + i]), !n))
            for (r in o)
              if (
                ((s = r.split(" ")),
                s[1] === i && (n = o[f + " " + s[0]] || o["* " + s[0]]))
              ) {
                n === !0
                  ? (n = o[r])
                  : o[r] !== !0 && ((i = s[0]), a.splice(u--, 0, i));
                break;
              }
          if (n !== !0)
            if (n && e["throws"]) t = n(t);
            else
              try {
                t = n(t);
              } catch (l) {
                return {
                  state: "parsererror",
                  error: n ? l : "No conversion from " + f + " to " + i,
                };
              }
        }
        f = i;
      }
    return {
      state: "success",
      data: t,
    };
  }

  function H() {
    try {
      return new e.XMLHttpRequest();
    } catch (t) {}
  }

  function B() {
    try {
      return new e.ActiveXObject("Microsoft.XMLHTTP");
    } catch (t) {}
  }

  function j() {
    return (
      setTimeout(function () {
        Gn = t;
      }),
      (Gn = ut.now())
    );
  }

  function F(e, t) {
    ut.each(t, function (t, n) {
      for (
        var r = (rr[t] || []).concat(rr["*"]), i = 0, s = r.length;
        s > i;
        i++
      )
        if (r[i].call(e, t, n)) return;
    });
  }

  function I(e, t, n) {
    var r,
      i,
      s = 0,
      o = nr.length,
      u = ut.Deferred().always(function () {
        delete a.elem;
      }),
      a = function () {
        if (i) return !1;
        for (
          var t = Gn || j(),
            n = Math.max(0, f.startTime + f.duration - t),
            r = n / f.duration || 0,
            s = 1 - r,
            o = 0,
            a = f.tweens.length;
          a > o;
          o++
        )
          f.tweens[o].run(s);
        return (
          u.notifyWith(e, [f, s, n]),
          1 > s && a ? n : (u.resolveWith(e, [f]), !1)
        );
      },
      f = u.promise({
        elem: e,
        props: ut.extend({}, t),
        opts: ut.extend(
          !0,
          {
            specialEasing: {},
          },
          n
        ),
        originalProperties: t,
        originalOptions: n,
        startTime: Gn || j(),
        duration: n.duration,
        tweens: [],
        createTween: function (t, n) {
          var r = ut.Tween(
            e,
            f.opts,
            t,
            n,
            f.opts.specialEasing[t] || f.opts.easing
          );
          return f.tweens.push(r), r;
        },
        stop: function (t) {
          var n = 0,
            r = t ? f.tweens.length : 0;
          if (i) return this;
          for (i = !0; r > n; n++) f.tweens[n].run(1);
          return t ? u.resolveWith(e, [f, t]) : u.rejectWith(e, [f, t]), this;
        },
      }),
      l = f.props;
    for (q(l, f.opts.specialEasing); o > s; s++)
      if ((r = nr[s].call(f, e, l, f.opts))) return r;
    return (
      F(f, l),
      ut.isFunction(f.opts.start) && f.opts.start.call(e, f),
      ut.fx.timer(
        ut.extend(a, {
          elem: e,
          anim: f,
          queue: f.opts.queue,
        })
      ),
      f
        .progress(f.opts.progress)
        .done(f.opts.done, f.opts.complete)
        .fail(f.opts.fail)
        .always(f.opts.always)
    );
  }

  function q(e, t) {
    var n, r, i, s, o;
    for (n in e)
      if (
        ((r = ut.camelCase(n)),
        (i = t[r]),
        (s = e[n]),
        ut.isArray(s) && ((i = s[1]), (s = e[n] = s[0])),
        n !== r && ((e[r] = s), delete e[n]),
        (o = ut.cssHooks[r]),
        o && "expand" in o)
      ) {
        (s = o.expand(s)), delete e[r];
        for (n in s) n in e || ((e[n] = s[n]), (t[n] = i));
      } else t[r] = i;
  }

  function R(e, t, n) {
    var r,
      i,
      s,
      o,
      u,
      a,
      f,
      l,
      c,
      h = this,
      p = e.style,
      d = {},
      v = [],
      m = e.nodeType && S(e);
    n.queue ||
      ((l = ut._queueHooks(e, "fx")),
      null == l.unqueued &&
        ((l.unqueued = 0),
        (c = l.empty.fire),
        (l.empty.fire = function () {
          l.unqueued || c();
        })),
      l.unqueued++,
      h.always(function () {
        h.always(function () {
          l.unqueued--, ut.queue(e, "fx").length || l.empty.fire();
        });
      })),
      1 === e.nodeType &&
        ("height" in t || "width" in t) &&
        ((n.overflow = [p.overflow, p.overflowX, p.overflowY]),
        "inline" === ut.css(e, "display") &&
          "none" === ut.css(e, "float") &&
          (ut.support.inlineBlockNeedsLayout && "inline" !== k(e.nodeName)
            ? (p.zoom = 1)
            : (p.display = "inline-block"))),
      n.overflow &&
        ((p.overflow = "hidden"),
        ut.support.shrinkWrapBlocks ||
          h.done(function () {
            (p.overflow = n.overflow[0]),
              (p.overflowX = n.overflow[1]),
              (p.overflowY = n.overflow[2]);
          }));
    for (r in t)
      if (((s = t[r]), Zn.exec(s))) {
        if (
          (delete t[r], (a = a || "toggle" === s), s === (m ? "hide" : "show"))
        )
          continue;
        v.push(r);
      }
    if ((o = v.length)) {
      (u = ut._data(e, "fxshow") || ut._data(e, "fxshow", {})),
        "hidden" in u && (m = u.hidden),
        a && (u.hidden = !m),
        m
          ? ut(e).show()
          : h.done(function () {
              ut(e).hide();
            }),
        h.done(function () {
          var t;
          ut._removeData(e, "fxshow");
          for (t in d) ut.style(e, t, d[t]);
        });
      for (r = 0; o > r; r++)
        (i = v[r]),
          (f = h.createTween(i, m ? u[i] : 0)),
          (d[i] = u[i] || ut.style(e, i)),
          i in u ||
            ((u[i] = f.start),
            m &&
              ((f.end = f.start),
              (f.start = "width" === i || "height" === i ? 1 : 0)));
    }
  }

  function U(e, t, n, r, i) {
    return new U.prototype.init(e, t, n, r, i);
  }

  function z(e, t) {
    var n,
      r = {
        height: e,
      },
      i = 0;
    for (t = t ? 1 : 0; 4 > i; i += 2 - t)
      (n = Sn[i]), (r["margin" + n] = r["padding" + n] = e);
    return t && (r.opacity = r.width = e), r;
  }

  function W(e) {
    return ut.isWindow(e)
      ? e
      : 9 === e.nodeType
      ? e.defaultView || e.parentWindow
      : !1;
  }
  var X,
    V,
    $ = e.document,
    J = e.location,
    K = e.jQuery,
    Q = e.$,
    G = {},
    Y = [],
    Z = "1.9.0",
    et = Y.concat,
    tt = Y.push,
    nt = Y.slice,
    rt = Y.indexOf,
    it = G.toString,
    st = G.hasOwnProperty,
    ot = Z.trim,
    ut = function (e, t) {
      return new ut.fn.init(e, t, X);
    },
    at = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
    ft = /\S+/g,
    lt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
    ct = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,
    ht = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
    pt = /^[\],:{}\s]*$/,
    dt = /(?:^|:|,)(?:\s*\[)+/g,
    vt = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
    mt = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,
    gt = /^-ms-/,
    yt = /-([\da-z])/gi,
    bt = function (e, t) {
      return t.toUpperCase();
    },
    wt = function () {
      $.addEventListener
        ? ($.removeEventListener("DOMContentLoaded", wt, !1), ut.ready())
        : "complete" === $.readyState &&
          ($.detachEvent("onreadystatechange", wt), ut.ready());
    };
  (ut.fn = ut.prototype =
    {
      jquery: Z,
      constructor: ut,
      init: function (e, n, r) {
        var i, s;
        if (!e) return this;
        if ("string" == typeof e) {
          if (
            ((i =
              "<" === e.charAt(0) &&
              ">" === e.charAt(e.length - 1) &&
              e.length >= 3
                ? [null, e, null]
                : ct.exec(e)),
            !i || (!i[1] && n))
          )
            return !n || n.jquery
              ? (n || r).find(e)
              : this.constructor(n).find(e);
          if (i[1]) {
            if (
              ((n = n instanceof ut ? n[0] : n),
              ut.merge(
                this,
                ut.parseHTML(
                  i[1],
                  n && n.nodeType ? n.ownerDocument || n : $,
                  !0
                )
              ),
              ht.test(i[1]) && ut.isPlainObject(n))
            )
              for (i in n)
                ut.isFunction(this[i]) ? this[i](n[i]) : this.attr(i, n[i]);
            return this;
          }
          if (((s = $.getElementById(i[2])), s && s.parentNode)) {
            if (s.id !== i[2]) return r.find(e);
            (this.length = 1), (this[0] = s);
          }
          return (this.context = $), (this.selector = e), this;
        }
        return e.nodeType
          ? ((this.context = this[0] = e), (this.length = 1), this)
          : ut.isFunction(e)
          ? r.ready(e)
          : (e.selector !== t &&
              ((this.selector = e.selector), (this.context = e.context)),
            ut.makeArray(e, this));
      },
      selector: "",
      length: 0,
      size: function () {
        return this.length;
      },
      toArray: function () {
        return nt.call(this);
      },
      get: function (e) {
        return null == e
          ? this.toArray()
          : 0 > e
          ? this[this.length + e]
          : this[e];
      },
      pushStack: function (e) {
        var t = ut.merge(this.constructor(), e);
        return (t.prevObject = this), (t.context = this.context), t;
      },
      each: function (e, t) {
        return ut.each(this, e, t);
      },
      ready: function (e) {
        return ut.ready.promise().done(e), this;
      },
      slice: function () {
        return this.pushStack(nt.apply(this, arguments));
      },
      first: function () {
        return this.eq(0);
      },
      last: function () {
        return this.eq(-1);
      },
      eq: function (e) {
        var t = this.length,
          n = +e + (0 > e ? t : 0);
        return this.pushStack(n >= 0 && t > n ? [this[n]] : []);
      },
      map: function (e) {
        return this.pushStack(
          ut.map(this, function (t, n) {
            return e.call(t, n, t);
          })
        );
      },
      end: function () {
        return this.prevObject || this.constructor(null);
      },
      push: tt,
      sort: [].sort,
      splice: [].splice,
    }),
    (ut.fn.init.prototype = ut.fn),
    (ut.extend = ut.fn.extend =
      function () {
        var e,
          n,
          r,
          i,
          s,
          o,
          u = arguments[0] || {},
          a = 1,
          f = arguments.length,
          l = !1;
        for (
          "boolean" == typeof u && ((l = u), (u = arguments[1] || {}), (a = 2)),
            "object" == typeof u || ut.isFunction(u) || (u = {}),
            f === a && ((u = this), --a);
          f > a;
          a++
        )
          if (null != (e = arguments[a]))
            for (n in e)
              (r = u[n]),
                (i = e[n]),
                u !== i &&
                  (l && i && (ut.isPlainObject(i) || (s = ut.isArray(i)))
                    ? (s
                        ? ((s = !1), (o = r && ut.isArray(r) ? r : []))
                        : (o = r && ut.isPlainObject(r) ? r : {}),
                      (u[n] = ut.extend(l, o, i)))
                    : i !== t && (u[n] = i));
        return u;
      }),
    ut.extend({
      noConflict: function (t) {
        return (
          e.$ === ut && (e.$ = Q), t && e.jQuery === ut && (e.jQuery = K), ut
        );
      },
      isReady: !1,
      readyWait: 1,
      holdReady: function (e) {
        e ? ut.readyWait++ : ut.ready(!0);
      },
      ready: function (e) {
        if (e === !0 ? !--ut.readyWait : !ut.isReady) {
          if (!$.body) return setTimeout(ut.ready);
          (ut.isReady = !0),
            (e !== !0 && --ut.readyWait > 0) ||
              (V.resolveWith($, [ut]),
              ut.fn.trigger && ut($).trigger("ready").off("ready"));
        }
      },
      isFunction: function (e) {
        return "function" === ut.type(e);
      },
      isArray:
        Array.isArray ||
        function (e) {
          return "array" === ut.type(e);
        },
      isWindow: function (e) {
        return null != e && e == e.window;
      },
      isNumeric: function (e) {
        return !isNaN(parseFloat(e)) && isFinite(e);
      },
      type: function (e) {
        return null == e
          ? e + ""
          : "object" == typeof e || "function" == typeof e
          ? G[it.call(e)] || "object"
          : typeof e;
      },
      isPlainObject: function (e) {
        if (!e || "object" !== ut.type(e) || e.nodeType || ut.isWindow(e))
          return !1;
        try {
          if (
            e.constructor &&
            !st.call(e, "constructor") &&
            !st.call(e.constructor.prototype, "isPrototypeOf")
          )
            return !1;
        } catch (n) {
          return !1;
        }
        var r;
        for (r in e);
        return r === t || st.call(e, r);
      },
      isEmptyObject: function (e) {
        var t;
        for (t in e) return !1;
        return !0;
      },
      error: function (e) {
        throw Error(e);
      },
      parseHTML: function (e, t, n) {
        if (!e || "string" != typeof e) return null;
        "boolean" == typeof t && ((n = t), (t = !1)), (t = t || $);
        var r = ht.exec(e),
          i = !n && [];
        return r
          ? [t.createElement(r[1])]
          : ((r = ut.buildFragment([e], t, i)),
            i && ut(i).remove(),
            ut.merge([], r.childNodes));
      },
      parseJSON: function (n) {
        return e.JSON && e.JSON.parse
          ? e.JSON.parse(n)
          : null === n
          ? n
          : "string" == typeof n &&
            ((n = ut.trim(n)),
            n && pt.test(n.replace(vt, "@").replace(mt, "]").replace(dt, "")))
          ? Function("return " + n)()
          : (ut.error("Invalid JSON: " + n), t);
      },
      parseXML: function (n) {
        var r, i;
        if (!n || "string" != typeof n) return null;
        try {
          e.DOMParser
            ? ((i = new DOMParser()), (r = i.parseFromString(n, "text/xml")))
            : ((r = new ActiveXObject("Microsoft.XMLDOM")),
              (r.async = "false"),
              r.loadXML(n));
        } catch (s) {
          r = t;
        }
        return (
          (r &&
            r.documentElement &&
            !r.getElementsByTagName("parsererror").length) ||
            ut.error("Invalid XML: " + n),
          r
        );
      },
      noop: function () {},
      globalEval: function (t) {
        t &&
          ut.trim(t) &&
          (
            e.execScript ||
            function (t) {
              e.eval.call(e, t);
            }
          )(t);
      },
      camelCase: function (e) {
        return e.replace(gt, "ms-").replace(yt, bt);
      },
      nodeName: function (e, t) {
        return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase();
      },
      each: function (e, t, r) {
        var i,
          s = 0,
          o = e.length,
          u = n(e);
        if (r) {
          if (u) for (; o > s && ((i = t.apply(e[s], r)), i !== !1); s++);
          else for (s in e) if (((i = t.apply(e[s], r)), i === !1)) break;
        } else if (u)
          for (; o > s && ((i = t.call(e[s], s, e[s])), i !== !1); s++);
        else for (s in e) if (((i = t.call(e[s], s, e[s])), i === !1)) break;
        return e;
      },
      trim:
        ot && !ot.call("﻿ ")
          ? function (e) {
              return null == e ? "" : ot.call(e);
            }
          : function (e) {
              return null == e ? "" : (e + "").replace(lt, "");
            },
      makeArray: function (e, t) {
        var r = t || [];
        return (
          null != e &&
            (n(Object(e))
              ? ut.merge(r, "string" == typeof e ? [e] : e)
              : tt.call(r, e)),
          r
        );
      },
      inArray: function (e, t, n) {
        var r;
        if (t) {
          if (rt) return rt.call(t, e, n);
          for (
            r = t.length, n = n ? (0 > n ? Math.max(0, r + n) : n) : 0;
            r > n;
            n++
          )
            if (n in t && t[n] === e) return n;
        }
        return -1;
      },
      merge: function (e, n) {
        var r = n.length,
          i = e.length,
          s = 0;
        if ("number" == typeof r) for (; r > s; s++) e[i++] = n[s];
        else for (; n[s] !== t; ) e[i++] = n[s++];
        return (e.length = i), e;
      },
      grep: function (e, t, n) {
        var r,
          i = [],
          s = 0,
          o = e.length;
        for (n = !!n; o > s; s++) (r = !!t(e[s], s)), n !== r && i.push(e[s]);
        return i;
      },
      map: function (e, t, r) {
        var i,
          s = 0,
          o = e.length,
          u = n(e),
          a = [];
        if (u)
          for (; o > s; s++)
            (i = t(e[s], s, r)), null != i && (a[a.length] = i);
        else for (s in e) (i = t(e[s], s, r)), null != i && (a[a.length] = i);
        return et.apply([], a);
      },
      guid: 1,
      proxy: function (e, n) {
        var r, i, s;
        return (
          "string" == typeof n && ((r = e[n]), (n = e), (e = r)),
          ut.isFunction(e)
            ? ((i = nt.call(arguments, 2)),
              (s = function () {
                return e.apply(n || this, i.concat(nt.call(arguments)));
              }),
              (s.guid = e.guid = e.guid || ut.guid++),
              s)
            : t
        );
      },
      access: function (e, n, r, i, s, o, u) {
        var a = 0,
          f = e.length,
          l = null == r;
        if ("object" === ut.type(r)) {
          s = !0;
          for (a in r) ut.access(e, n, a, r[a], !0, o, u);
        } else if (
          i !== t &&
          ((s = !0),
          ut.isFunction(i) || (u = !0),
          l &&
            (u
              ? (n.call(e, i), (n = null))
              : ((l = n),
                (n = function (e, t, n) {
                  return l.call(ut(e), n);
                }))),
          n)
        )
          for (; f > a; a++) n(e[a], r, u ? i : i.call(e[a], a, n(e[a], r)));
        return s ? e : l ? n.call(e) : f ? n(e[0], r) : o;
      },
      now: function () {
        return new Date().getTime();
      },
    }),
    (ut.ready.promise = function (t) {
      if (!V)
        if (((V = ut.Deferred()), "complete" === $.readyState))
          setTimeout(ut.ready);
        else if ($.addEventListener)
          $.addEventListener("DOMContentLoaded", wt, !1),
            e.addEventListener("load", ut.ready, !1);
        else {
          $.attachEvent("onreadystatechange", wt),
            e.attachEvent("onload", ut.ready);
          var n = !1;
          try {
            n = null == e.frameElement && $.documentElement;
          } catch (r) {}
          n &&
            n.doScroll &&
            (function i() {
              if (!ut.isReady) {
                try {
                  n.doScroll("left");
                } catch (e) {
                  return setTimeout(i, 50);
                }
                ut.ready();
              }
            })();
        }
      return V.promise(t);
    }),
    ut.each(
      "Boolean Number String Function Array Date RegExp Object Error".split(
        " "
      ),
      function (e, t) {
        G["[object " + t + "]"] = t.toLowerCase();
      }
    ),
    (X = ut($));
  var Et = {};
  (ut.Callbacks = function (e) {
    e = "string" == typeof e ? Et[e] || r(e) : ut.extend({}, e);
    var n,
      i,
      s,
      o,
      u,
      a,
      f = [],
      l = !e.once && [],
      c = function (t) {
        for (
          n = e.memory && t, i = !0, a = o || 0, o = 0, u = f.length, s = !0;
          f && u > a;
          a++
        )
          if (f[a].apply(t[0], t[1]) === !1 && e.stopOnFalse) {
            n = !1;
            break;
          }
        (s = !1),
          f && (l ? l.length && c(l.shift()) : n ? (f = []) : h.disable());
      },
      h = {
        add: function () {
          if (f) {
            var t = f.length;
            (function r(t) {
              ut.each(t, function (t, n) {
                var i = ut.type(n);
                "function" === i
                  ? (e.unique && h.has(n)) || f.push(n)
                  : n && n.length && "string" !== i && r(n);
              });
            })(arguments),
              s ? (u = f.length) : n && ((o = t), c(n));
          }
          return this;
        },
        remove: function () {
          return (
            f &&
              ut.each(arguments, function (e, t) {
                for (var n; (n = ut.inArray(t, f, n)) > -1; )
                  f.splice(n, 1), s && (u >= n && u--, a >= n && a--);
              }),
            this
          );
        },
        has: function (e) {
          return ut.inArray(e, f) > -1;
        },
        empty: function () {
          return (f = []), this;
        },
        disable: function () {
          return (f = l = n = t), this;
        },
        disabled: function () {
          return !f;
        },
        lock: function () {
          return (l = t), n || h.disable(), this;
        },
        locked: function () {
          return !l;
        },
        fireWith: function (e, t) {
          return (
            (t = t || []),
            (t = [e, t.slice ? t.slice() : t]),
            !f || (i && !l) || (s ? l.push(t) : c(t)),
            this
          );
        },
        fire: function () {
          return h.fireWith(this, arguments), this;
        },
        fired: function () {
          return !!i;
        },
      };
    return h;
  }),
    ut.extend({
      Deferred: function (e) {
        var t = [
            ["resolve", "done", ut.Callbacks("once memory"), "resolved"],
            ["reject", "fail", ut.Callbacks("once memory"), "rejected"],
            ["notify", "progress", ut.Callbacks("memory")],
          ],
          n = "pending",
          r = {
            state: function () {
              return n;
            },
            always: function () {
              return i.done(arguments).fail(arguments), this;
            },
            then: function () {
              var e = arguments;
              return ut
                .Deferred(function (n) {
                  ut.each(t, function (t, s) {
                    var o = s[0],
                      u = ut.isFunction(e[t]) && e[t];
                    i[s[1]](function () {
                      var e = u && u.apply(this, arguments);
                      e && ut.isFunction(e.promise)
                        ? e
                            .promise()
                            .done(n.resolve)
                            .fail(n.reject)
                            .progress(n.notify)
                        : n[o + "With"](
                            this === r ? n.promise() : this,
                            u ? [e] : arguments
                          );
                    });
                  }),
                    (e = null);
                })
                .promise();
            },
            promise: function (e) {
              return null != e ? ut.extend(e, r) : r;
            },
          },
          i = {};
        return (
          (r.pipe = r.then),
          ut.each(t, function (e, s) {
            var o = s[2],
              u = s[3];
            (r[s[1]] = o.add),
              u &&
                o.add(
                  function () {
                    n = u;
                  },
                  t[1 ^ e][2].disable,
                  t[2][2].lock
                ),
              (i[s[0]] = function () {
                return i[s[0] + "With"](this === i ? r : this, arguments), this;
              }),
              (i[s[0] + "With"] = o.fireWith);
          }),
          r.promise(i),
          e && e.call(i, i),
          i
        );
      },
      when: function (e) {
        var t,
          n,
          r,
          i = 0,
          s = nt.call(arguments),
          o = s.length,
          u = 1 !== o || (e && ut.isFunction(e.promise)) ? o : 0,
          a = 1 === u ? e : ut.Deferred(),
          f = function (e, n, r) {
            return function (i) {
              (n[e] = this),
                (r[e] = arguments.length > 1 ? nt.call(arguments) : i),
                r === t ? a.notifyWith(n, r) : --u || a.resolveWith(n, r);
            };
          };
        if (o > 1)
          for (t = Array(o), n = Array(o), r = Array(o); o > i; i++)
            s[i] && ut.isFunction(s[i].promise)
              ? s[i]
                  .promise()
                  .done(f(i, r, s))
                  .fail(a.reject)
                  .progress(f(i, n, t))
              : --u;
        return u || a.resolveWith(r, s), a.promise();
      },
    }),
    (ut.support = (function () {
      var n,
        r,
        i,
        s,
        o,
        u,
        a,
        f,
        l,
        c,
        h = $.createElement("div");
      if (
        (h.setAttribute("className", "t"),
        (h.innerHTML =
          "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"),
        (r = h.getElementsByTagName("*")),
        (i = h.getElementsByTagName("a")[0]),
        !r || !i || !r.length)
      )
        return {};
      (s = $.createElement("select")),
        (o = s.appendChild($.createElement("option"))),
        (u = h.getElementsByTagName("input")[0]),
        (i.style.cssText = "top:1px;float:left;opacity:.5"),
        (n = {
          getSetAttribute: "t" !== h.className,
          leadingWhitespace: 3 === h.firstChild.nodeType,
          tbody: !h.getElementsByTagName("tbody").length,
          htmlSerialize: !!h.getElementsByTagName("link").length,
          style: /top/.test(i.getAttribute("style")),
          hrefNormalized: "/a" === i.getAttribute("href"),
          opacity: /^0.5/.test(i.style.opacity),
          cssFloat: !!i.style.cssFloat,
          checkOn: !!u.value,
          optSelected: o.selected,
          enctype: !!$.createElement("form").enctype,
          html5Clone:
            "<:nav></:nav>" !== $.createElement("nav").cloneNode(!0).outerHTML,
          boxModel: "CSS1Compat" === $.compatMode,
          deleteExpando: !0,
          noCloneEvent: !0,
          inlineBlockNeedsLayout: !1,
          shrinkWrapBlocks: !1,
          reliableMarginRight: !0,
          boxSizingReliable: !0,
          pixelPosition: !1,
        }),
        (u.checked = !0),
        (n.noCloneChecked = u.cloneNode(!0).checked),
        (s.disabled = !0),
        (n.optDisabled = !o.disabled);
      try {
        delete h.test;
      } catch (p) {
        n.deleteExpando = !1;
      }
      (u = $.createElement("input")),
        u.setAttribute("value", ""),
        (n.input = "" === u.getAttribute("value")),
        (u.value = "t"),
        u.setAttribute("type", "radio"),
        (n.radioValue = "t" === u.value),
        u.setAttribute("checked", "t"),
        u.setAttribute("name", "t"),
        (a = $.createDocumentFragment()),
        a.appendChild(u),
        (n.appendChecked = u.checked),
        (n.checkClone = a.cloneNode(!0).cloneNode(!0).lastChild.checked),
        h.attachEvent &&
          (h.attachEvent("onclick", function () {
            n.noCloneEvent = !1;
          }),
          h.cloneNode(!0).click());
      for (c in {
        submit: !0,
        change: !0,
        focusin: !0,
      })
        h.setAttribute((f = "on" + c), "t"),
          (n[c + "Bubbles"] = f in e || h.attributes[f].expando === !1);
      return (
        (h.style.backgroundClip = "content-box"),
        (h.cloneNode(!0).style.backgroundClip = ""),
        (n.clearCloneStyle = "content-box" === h.style.backgroundClip),
        ut(function () {
          var r,
            i,
            s,
            o =
              "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",
            u = $.getElementsByTagName("body")[0];
          u &&
            ((r = $.createElement("div")),
            (r.style.cssText =
              "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"),
            u.appendChild(r).appendChild(h),
            (h.innerHTML = "<table><tr><td></td><td>t</td></tr></table>"),
            (s = h.getElementsByTagName("td")),
            (s[0].style.cssText = "padding:0;margin:0;border:0;display:none"),
            (l = 0 === s[0].offsetHeight),
            (s[0].style.display = ""),
            (s[1].style.display = "none"),
            (n.reliableHiddenOffsets = l && 0 === s[0].offsetHeight),
            (h.innerHTML = ""),
            (h.style.cssText =
              "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"),
            (n.boxSizing = 4 === h.offsetWidth),
            (n.doesNotIncludeMarginInBodyOffset = 1 !== u.offsetTop),
            e.getComputedStyle &&
              ((n.pixelPosition =
                "1%" !== (e.getComputedStyle(h, null) || {}).top),
              (n.boxSizingReliable =
                "4px" ===
                (
                  e.getComputedStyle(h, null) || {
                    width: "4px",
                  }
                ).width),
              (i = h.appendChild($.createElement("div"))),
              (i.style.cssText = h.style.cssText = o),
              (i.style.marginRight = i.style.width = "0"),
              (h.style.width = "1px"),
              (n.reliableMarginRight = !parseFloat(
                (e.getComputedStyle(i, null) || {}).marginRight
              ))),
            h.style.zoom !== t &&
              ((h.innerHTML = ""),
              (h.style.cssText =
                o + "width:1px;padding:1px;display:inline;zoom:1"),
              (n.inlineBlockNeedsLayout = 3 === h.offsetWidth),
              (h.style.display = "block"),
              (h.innerHTML = "<div></div>"),
              (h.firstChild.style.width = "5px"),
              (n.shrinkWrapBlocks = 3 !== h.offsetWidth),
              (u.style.zoom = 1)),
            u.removeChild(r),
            (r = h = s = i = null));
        }),
        (r = s = a = o = i = u = null),
        n
      );
    })());
  var St = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
    xt = /([A-Z])/g;
  ut.extend({
    cache: {},
    expando: "jQuery" + (Z + Math.random()).replace(/\D/g, ""),
    noData: {
      embed: !0,
      object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
      applet: !0,
    },
    hasData: function (e) {
      return (
        (e = e.nodeType ? ut.cache[e[ut.expando]] : e[ut.expando]), !!e && !u(e)
      );
    },
    data: function (e, t, n) {
      return i(e, t, n, !1);
    },
    removeData: function (e, t) {
      return s(e, t, !1);
    },
    _data: function (e, t, n) {
      return i(e, t, n, !0);
    },
    _removeData: function (e, t) {
      return s(e, t, !0);
    },
    acceptData: function (e) {
      var t = e.nodeName && ut.noData[e.nodeName.toLowerCase()];
      return !t || (t !== !0 && e.getAttribute("classid") === t);
    },
  }),
    ut.fn.extend({
      data: function (e, n) {
        var r,
          i,
          s = this[0],
          u = 0,
          a = null;
        if (e === t) {
          if (
            this.length &&
            ((a = ut.data(s)), 1 === s.nodeType && !ut._data(s, "parsedAttrs"))
          ) {
            for (r = s.attributes; r.length > u; u++)
              (i = r[u].name),
                i.indexOf("data-") ||
                  ((i = ut.camelCase(i.substring(5))), o(s, i, a[i]));
            ut._data(s, "parsedAttrs", !0);
          }
          return a;
        }
        return "object" == typeof e
          ? this.each(function () {
              ut.data(this, e);
            })
          : ut.access(
              this,
              function (n) {
                return n === t
                  ? s
                    ? o(s, e, ut.data(s, e))
                    : null
                  : (this.each(function () {
                      ut.data(this, e, n);
                    }),
                    t);
              },
              null,
              n,
              arguments.length > 1,
              null,
              !0
            );
      },
      removeData: function (e) {
        return this.each(function () {
          ut.removeData(this, e);
        });
      },
    }),
    ut.extend({
      queue: function (e, n, r) {
        var i;
        return e
          ? ((n = (n || "fx") + "queue"),
            (i = ut._data(e, n)),
            r &&
              (!i || ut.isArray(r)
                ? (i = ut._data(e, n, ut.makeArray(r)))
                : i.push(r)),
            i || [])
          : t;
      },
      dequeue: function (e, t) {
        t = t || "fx";
        var n = ut.queue(e, t),
          r = n.length,
          i = n.shift(),
          s = ut._queueHooks(e, t),
          o = function () {
            ut.dequeue(e, t);
          };
        "inprogress" === i && ((i = n.shift()), r--),
          (s.cur = i),
          i &&
            ("fx" === t && n.unshift("inprogress"),
            delete s.stop,
            i.call(e, o, s)),
          !r && s && s.empty.fire();
      },
      _queueHooks: function (e, t) {
        var n = t + "queueHooks";
        return (
          ut._data(e, n) ||
          ut._data(e, n, {
            empty: ut.Callbacks("once memory").add(function () {
              ut._removeData(e, t + "queue"), ut._removeData(e, n);
            }),
          })
        );
      },
    }),
    ut.fn.extend({
      queue: function (e, n) {
        var r = 2;
        return (
          "string" != typeof e && ((n = e), (e = "fx"), r--),
          r > arguments.length
            ? ut.queue(this[0], e)
            : n === t
            ? this
            : this.each(function () {
                var t = ut.queue(this, e, n);
                ut._queueHooks(this, e),
                  "fx" === e && "inprogress" !== t[0] && ut.dequeue(this, e);
              })
        );
      },
      dequeue: function (e) {
        return this.each(function () {
          ut.dequeue(this, e);
        });
      },
      delay: function (e, t) {
        return (
          (e = ut.fx ? ut.fx.speeds[e] || e : e),
          (t = t || "fx"),
          this.queue(t, function (t, n) {
            var r = setTimeout(t, e);
            n.stop = function () {
              clearTimeout(r);
            };
          })
        );
      },
      clearQueue: function (e) {
        return this.queue(e || "fx", []);
      },
      promise: function (e, n) {
        var r,
          i = 1,
          s = ut.Deferred(),
          o = this,
          u = this.length,
          a = function () {
            --i || s.resolveWith(o, [o]);
          };
        for ("string" != typeof e && ((n = e), (e = t)), e = e || "fx"; u--; )
          (r = ut._data(o[u], e + "queueHooks")),
            r && r.empty && (i++, r.empty.add(a));
        return a(), s.promise(n);
      },
    });
  var Tt,
    Nt,
    Ct = /[\t\r\n]/g,
    kt = /\r/g,
    Lt = /^(?:input|select|textarea|button|object)$/i,
    At = /^(?:a|area)$/i,
    Ot =
      /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,
    Mt = /^(?:checked|selected)$/i,
    _t = ut.support.getSetAttribute,
    Dt = ut.support.input;
  ut.fn.extend({
    attr: function (e, t) {
      return ut.access(this, ut.attr, e, t, arguments.length > 1);
    },
    removeAttr: function (e) {
      return this.each(function () {
        ut.removeAttr(this, e);
      });
    },
    prop: function (e, t) {
      return ut.access(this, ut.prop, e, t, arguments.length > 1);
    },
    removeProp: function (e) {
      return (
        (e = ut.propFix[e] || e),
        this.each(function () {
          try {
            (this[e] = t), delete this[e];
          } catch (n) {}
        })
      );
    },
    addClass: function (e) {
      var t,
        n,
        r,
        i,
        s,
        o = 0,
        u = this.length,
        a = "string" == typeof e && e;
      if (ut.isFunction(e))
        return this.each(function (t) {
          ut(this).addClass(e.call(this, t, this.className));
        });
      if (a)
        for (t = (e || "").match(ft) || []; u > o; o++)
          if (
            ((n = this[o]),
            (r =
              1 === n.nodeType &&
              (n.className ? (" " + n.className + " ").replace(Ct, " ") : " ")))
          ) {
            for (s = 0; (i = t[s++]); )
              0 > r.indexOf(" " + i + " ") && (r += i + " ");
            n.className = ut.trim(r);
          }
      return this;
    },
    removeClass: function (e) {
      var t,
        n,
        r,
        i,
        s,
        o = 0,
        u = this.length,
        a = 0 === arguments.length || ("string" == typeof e && e);
      if (ut.isFunction(e))
        return this.each(function (t) {
          ut(this).removeClass(e.call(this, t, this.className));
        });
      if (a)
        for (t = (e || "").match(ft) || []; u > o; o++)
          if (
            ((n = this[o]),
            (r =
              1 === n.nodeType &&
              (n.className ? (" " + n.className + " ").replace(Ct, " ") : "")))
          ) {
            for (s = 0; (i = t[s++]); )
              for (; r.indexOf(" " + i + " ") >= 0; )
                r = r.replace(" " + i + " ", " ");
            n.className = e ? ut.trim(r) : "";
          }
      return this;
    },
    toggleClass: function (e, t) {
      var n = typeof e,
        r = "boolean" == typeof t;
      return ut.isFunction(e)
        ? this.each(function (n) {
            ut(this).toggleClass(e.call(this, n, this.className, t), t);
          })
        : this.each(function () {
            if ("string" === n)
              for (
                var i, s = 0, o = ut(this), u = t, a = e.match(ft) || [];
                (i = a[s++]);

              )
                (u = r ? u : !o.hasClass(i)),
                  o[u ? "addClass" : "removeClass"](i);
            else
              ("undefined" === n || "boolean" === n) &&
                (this.className &&
                  ut._data(this, "__className__", this.className),
                (this.className =
                  this.className || e === !1
                    ? ""
                    : ut._data(this, "__className__") || ""));
          });
    },
    hasClass: function (e) {
      for (var t = " " + e + " ", n = 0, r = this.length; r > n; n++)
        if (
          1 === this[n].nodeType &&
          (" " + this[n].className + " ").replace(Ct, " ").indexOf(t) >= 0
        )
          return !0;
      return !1;
    },
    val: function (e) {
      var n,
        r,
        i,
        s = this[0];
      if (arguments.length)
        return (
          (i = ut.isFunction(e)),
          this.each(function (r) {
            var s,
              o = ut(this);
            1 === this.nodeType &&
              ((s = i ? e.call(this, r, o.val()) : e),
              null == s
                ? (s = "")
                : "number" == typeof s
                ? (s += "")
                : ut.isArray(s) &&
                  (s = ut.map(s, function (e) {
                    return null == e ? "" : e + "";
                  })),
              (n =
                ut.valHooks[this.type] ||
                ut.valHooks[this.nodeName.toLowerCase()]),
              (n && "set" in n && n.set(this, s, "value") !== t) ||
                (this.value = s));
          })
        );
      if (s)
        return (
          (n = ut.valHooks[s.type] || ut.valHooks[s.nodeName.toLowerCase()]),
          n && "get" in n && (r = n.get(s, "value")) !== t
            ? r
            : ((r = s.value),
              "string" == typeof r ? r.replace(kt, "") : null == r ? "" : r)
        );
    },
  }),
    ut.extend({
      valHooks: {
        option: {
          get: function (e) {
            var t = e.attributes.value;
            return !t || t.specified ? e.value : e.text;
          },
        },
        select: {
          get: function (e) {
            for (
              var t,
                n,
                r = e.options,
                i = e.selectedIndex,
                s = "select-one" === e.type || 0 > i,
                o = s ? null : [],
                u = s ? i + 1 : r.length,
                a = 0 > i ? u : s ? i : 0;
              u > a;
              a++
            )
              if (
                ((n = r[a]),
                !(
                  (!n.selected && a !== i) ||
                  (ut.support.optDisabled
                    ? n.disabled
                    : null !== n.getAttribute("disabled")) ||
                  (n.parentNode.disabled &&
                    ut.nodeName(n.parentNode, "optgroup"))
                ))
              ) {
                if (((t = ut(n).val()), s)) return t;
                o.push(t);
              }
            return o;
          },
          set: function (e, t) {
            var n = ut.makeArray(t);
            return (
              ut(e)
                .find("option")
                .each(function () {
                  this.selected = ut.inArray(ut(this).val(), n) >= 0;
                }),
              n.length || (e.selectedIndex = -1),
              n
            );
          },
        },
      },
      attr: function (e, n, r) {
        var i,
          s,
          o,
          u = e.nodeType;
        if (e && 3 !== u && 8 !== u && 2 !== u)
          return e.getAttribute === t
            ? ut.prop(e, n, r)
            : ((o = 1 !== u || !ut.isXMLDoc(e)),
              o &&
                ((n = n.toLowerCase()),
                (s = ut.attrHooks[n] || (Ot.test(n) ? Nt : Tt))),
              r === t
                ? s && o && "get" in s && null !== (i = s.get(e, n))
                  ? i
                  : (e.getAttribute !== t && (i = e.getAttribute(n)),
                    null == i ? t : i)
                : null !== r
                ? s && o && "set" in s && (i = s.set(e, r, n)) !== t
                  ? i
                  : (e.setAttribute(n, r + ""), r)
                : (ut.removeAttr(e, n), t));
      },
      removeAttr: function (e, t) {
        var n,
          r,
          i = 0,
          s = t && t.match(ft);
        if (s && 1 === e.nodeType)
          for (; (n = s[i++]); )
            (r = ut.propFix[n] || n),
              Ot.test(n)
                ? !_t && Mt.test(n)
                  ? (e[ut.camelCase("default-" + n)] = e[r] = !1)
                  : (e[r] = !1)
                : ut.attr(e, n, ""),
              e.removeAttribute(_t ? n : r);
      },
      attrHooks: {
        type: {
          set: function (e, t) {
            if (
              !ut.support.radioValue &&
              "radio" === t &&
              ut.nodeName(e, "input")
            ) {
              var n = e.value;
              return e.setAttribute("type", t), n && (e.value = n), t;
            }
          },
        },
      },
      propFix: {
        tabindex: "tabIndex",
        readonly: "readOnly",
        for: "htmlFor",
        class: "className",
        maxlength: "maxLength",
        cellspacing: "cellSpacing",
        cellpadding: "cellPadding",
        rowspan: "rowSpan",
        colspan: "colSpan",
        usemap: "useMap",
        frameborder: "frameBorder",
        contenteditable: "contentEditable",
      },
      prop: function (e, n, r) {
        var i,
          s,
          o,
          u = e.nodeType;
        if (e && 3 !== u && 8 !== u && 2 !== u)
          return (
            (o = 1 !== u || !ut.isXMLDoc(e)),
            o && ((n = ut.propFix[n] || n), (s = ut.propHooks[n])),
            r !== t
              ? s && "set" in s && (i = s.set(e, r, n)) !== t
                ? i
                : (e[n] = r)
              : s && "get" in s && null !== (i = s.get(e, n))
              ? i
              : e[n]
          );
      },
      propHooks: {
        tabIndex: {
          get: function (e) {
            var n = e.getAttributeNode("tabindex");
            return n && n.specified
              ? parseInt(n.value, 10)
              : Lt.test(e.nodeName) || (At.test(e.nodeName) && e.href)
              ? 0
              : t;
          },
        },
      },
    }),
    (Nt = {
      get: function (e, n) {
        var r = ut.prop(e, n),
          i = "boolean" == typeof r && e.getAttribute(n),
          s =
            "boolean" == typeof r
              ? Dt && _t
                ? null != i
                : Mt.test(n)
                ? e[ut.camelCase("default-" + n)]
                : !!i
              : e.getAttributeNode(n);
        return s && s.value !== !1 ? n.toLowerCase() : t;
      },
      set: function (e, t, n) {
        return (
          t === !1
            ? ut.removeAttr(e, n)
            : (Dt && _t) || !Mt.test(n)
            ? e.setAttribute((!_t && ut.propFix[n]) || n, n)
            : (e[ut.camelCase("default-" + n)] = e[n] = !0),
          n
        );
      },
    }),
    (Dt && _t) ||
      (ut.attrHooks.value = {
        get: function (e, n) {
          var r = e.getAttributeNode(n);
          return ut.nodeName(e, "input")
            ? e.defaultValue
            : r && r.specified
            ? r.value
            : t;
        },
        set: function (e, n, r) {
          return ut.nodeName(e, "input")
            ? ((e.defaultValue = n), t)
            : Tt && Tt.set(e, n, r);
        },
      }),
    _t ||
      ((Tt = ut.valHooks.button =
        {
          get: function (e, n) {
            var r = e.getAttributeNode(n);
            return r &&
              ("id" === n || "name" === n || "coords" === n
                ? "" !== r.value
                : r.specified)
              ? r.value
              : t;
          },
          set: function (e, n, r) {
            var i = e.getAttributeNode(r);
            return (
              i || e.setAttributeNode((i = e.ownerDocument.createAttribute(r))),
              (i.value = n += ""),
              "value" === r || n === e.getAttribute(r) ? n : t
            );
          },
        }),
      (ut.attrHooks.contenteditable = {
        get: Tt.get,
        set: function (e, t, n) {
          Tt.set(e, "" === t ? !1 : t, n);
        },
      }),
      ut.each(["width", "height"], function (e, n) {
        ut.attrHooks[n] = ut.extend(ut.attrHooks[n], {
          set: function (e, r) {
            return "" === r ? (e.setAttribute(n, "auto"), r) : t;
          },
        });
      })),
    ut.support.hrefNormalized ||
      (ut.each(["href", "src", "width", "height"], function (e, n) {
        ut.attrHooks[n] = ut.extend(ut.attrHooks[n], {
          get: function (e) {
            var r = e.getAttribute(n, 2);
            return null == r ? t : r;
          },
        });
      }),
      ut.each(["href", "src"], function (e, t) {
        ut.propHooks[t] = {
          get: function (e) {
            return e.getAttribute(t, 4);
          },
        };
      })),
    ut.support.style ||
      (ut.attrHooks.style = {
        get: function (e) {
          return e.style.cssText || t;
        },
        set: function (e, t) {
          return (e.style.cssText = t + "");
        },
      }),
    ut.support.optSelected ||
      (ut.propHooks.selected = ut.extend(ut.propHooks.selected, {
        get: function (e) {
          var t = e.parentNode;
          return (
            t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex),
            null
          );
        },
      })),
    ut.support.enctype || (ut.propFix.enctype = "encoding"),
    ut.support.checkOn ||
      ut.each(["radio", "checkbox"], function () {
        ut.valHooks[this] = {
          get: function (e) {
            return null === e.getAttribute("value") ? "on" : e.value;
          },
        };
      }),
    ut.each(["radio", "checkbox"], function () {
      ut.valHooks[this] = ut.extend(ut.valHooks[this], {
        set: function (e, n) {
          return ut.isArray(n)
            ? (e.checked = ut.inArray(ut(e).val(), n) >= 0)
            : t;
        },
      });
    });
  var Pt = /^(?:input|select|textarea)$/i,
    Ht = /^key/,
    Bt = /^(?:mouse|contextmenu)|click/,
    jt = /^(?:focusinfocus|focusoutblur)$/,
    Ft = /^([^.]*)(?:\.(.+)|)$/;
  (ut.event = {
    global: {},
    add: function (e, n, r, i, s) {
      var o,
        u,
        a,
        f,
        l,
        c,
        h,
        p,
        d,
        v,
        m,
        g = 3 !== e.nodeType && 8 !== e.nodeType && ut._data(e);
      if (g) {
        for (
          r.handler && ((o = r), (r = o.handler), (s = o.selector)),
            r.guid || (r.guid = ut.guid++),
            (f = g.events) || (f = g.events = {}),
            (u = g.handle) ||
              ((u = g.handle =
                function (e) {
                  return ut === t || (e && ut.event.triggered === e.type)
                    ? t
                    : ut.event.dispatch.apply(u.elem, arguments);
                }),
              (u.elem = e)),
            n = (n || "").match(ft) || [""],
            l = n.length;
          l--;

        )
          (a = Ft.exec(n[l]) || []),
            (d = m = a[1]),
            (v = (a[2] || "").split(".").sort()),
            (h = ut.event.special[d] || {}),
            (d = (s ? h.delegateType : h.bindType) || d),
            (h = ut.event.special[d] || {}),
            (c = ut.extend(
              {
                type: d,
                origType: m,
                data: i,
                handler: r,
                guid: r.guid,
                selector: s,
                needsContext: s && ut.expr.match.needsContext.test(s),
                namespace: v.join("."),
              },
              o
            )),
            (p = f[d]) ||
              ((p = f[d] = []),
              (p.delegateCount = 0),
              (h.setup && h.setup.call(e, i, v, u) !== !1) ||
                (e.addEventListener
                  ? e.addEventListener(d, u, !1)
                  : e.attachEvent && e.attachEvent("on" + d, u))),
            h.add &&
              (h.add.call(e, c), c.handler.guid || (c.handler.guid = r.guid)),
            s ? p.splice(p.delegateCount++, 0, c) : p.push(c),
            (ut.event.global[d] = !0);
        e = null;
      }
    },
    remove: function (e, t, n, r, i) {
      var s,
        o,
        u,
        a,
        f,
        l,
        c,
        h,
        p,
        d,
        v,
        m = ut.hasData(e) && ut._data(e);
      if (m && (a = m.events)) {
        for (t = (t || "").match(ft) || [""], f = t.length; f--; )
          if (
            ((u = Ft.exec(t[f]) || []),
            (p = v = u[1]),
            (d = (u[2] || "").split(".").sort()),
            p)
          ) {
            for (
              c = ut.event.special[p] || {},
                p = (r ? c.delegateType : c.bindType) || p,
                h = a[p] || [],
                u =
                  u[2] &&
                  RegExp("(^|\\.)" + d.join("\\.(?:.*\\.|)") + "(\\.|$)"),
                o = s = h.length;
              s--;

            )
              (l = h[s]),
                (!i && v !== l.origType) ||
                  (n && n.guid !== l.guid) ||
                  (u && !u.test(l.namespace)) ||
                  (r && r !== l.selector && ("**" !== r || !l.selector)) ||
                  (h.splice(s, 1),
                  l.selector && h.delegateCount--,
                  c.remove && c.remove.call(e, l));
            o &&
              !h.length &&
              ((c.teardown && c.teardown.call(e, d, m.handle) !== !1) ||
                ut.removeEvent(e, p, m.handle),
              delete a[p]);
          } else for (p in a) ut.event.remove(e, p + t[f], n, r, !0);
        ut.isEmptyObject(a) && (delete m.handle, ut._removeData(e, "events"));
      }
    },
    trigger: function (n, r, i, s) {
      var o,
        u,
        a,
        f,
        l,
        c,
        h,
        p = [i || $],
        d = n.type || n,
        v = n.namespace ? n.namespace.split(".") : [];
      if (
        ((u = a = i = i || $),
        3 !== i.nodeType &&
          8 !== i.nodeType &&
          !jt.test(d + ut.event.triggered) &&
          (d.indexOf(".") >= 0 &&
            ((v = d.split(".")), (d = v.shift()), v.sort()),
          (l = 0 > d.indexOf(":") && "on" + d),
          (n = n[ut.expando] ? n : new ut.Event(d, "object" == typeof n && n)),
          (n.isTrigger = !0),
          (n.namespace = v.join(".")),
          (n.namespace_re = n.namespace
            ? RegExp("(^|\\.)" + v.join("\\.(?:.*\\.|)") + "(\\.|$)")
            : null),
          (n.result = t),
          n.target || (n.target = i),
          (r = null == r ? [n] : ut.makeArray(r, [n])),
          (h = ut.event.special[d] || {}),
          s || !h.trigger || h.trigger.apply(i, r) !== !1))
      ) {
        if (!s && !h.noBubble && !ut.isWindow(i)) {
          for (
            f = h.delegateType || d, jt.test(f + d) || (u = u.parentNode);
            u;
            u = u.parentNode
          )
            p.push(u), (a = u);
          a === (i.ownerDocument || $) &&
            p.push(a.defaultView || a.parentWindow || e);
        }
        for (o = 0; (u = p[o++]) && !n.isPropagationStopped(); )
          (n.type = o > 1 ? f : h.bindType || d),
            (c =
              (ut._data(u, "events") || {})[n.type] && ut._data(u, "handle")),
            c && c.apply(u, r),
            (c = l && u[l]),
            c &&
              ut.acceptData(u) &&
              c.apply &&
              c.apply(u, r) === !1 &&
              n.preventDefault();
        if (
          ((n.type = d),
          !(
            s ||
            n.isDefaultPrevented() ||
            (h._default && h._default.apply(i.ownerDocument, r) !== !1) ||
            ("click" === d && ut.nodeName(i, "a")) ||
            !ut.acceptData(i) ||
            !l ||
            !i[d] ||
            ut.isWindow(i)
          ))
        ) {
          (a = i[l]), a && (i[l] = null), (ut.event.triggered = d);
          try {
            i[d]();
          } catch (m) {}
          (ut.event.triggered = t), a && (i[l] = a);
        }
        return n.result;
      }
    },
    dispatch: function (e) {
      e = ut.event.fix(e);
      var n,
        r,
        i,
        s,
        o,
        u = [],
        a = nt.call(arguments),
        f = (ut._data(this, "events") || {})[e.type] || [],
        l = ut.event.special[e.type] || {};
      if (
        ((a[0] = e),
        (e.delegateTarget = this),
        !l.preDispatch || l.preDispatch.call(this, e) !== !1)
      ) {
        for (
          u = ut.event.handlers.call(this, e, f), n = 0;
          (s = u[n++]) && !e.isPropagationStopped();

        )
          for (
            e.currentTarget = s.elem, r = 0;
            (o = s.handlers[r++]) && !e.isImmediatePropagationStopped();

          )
            (!e.namespace_re || e.namespace_re.test(o.namespace)) &&
              ((e.handleObj = o),
              (e.data = o.data),
              (i = (
                (ut.event.special[o.origType] || {}).handle || o.handler
              ).apply(s.elem, a)),
              i !== t &&
                (e.result = i) === !1 &&
                (e.preventDefault(), e.stopPropagation()));
        return l.postDispatch && l.postDispatch.call(this, e), e.result;
      }
    },
    handlers: function (e, n) {
      var r,
        i,
        s,
        o,
        u = [],
        a = n.delegateCount,
        f = e.target;
      if (a && f.nodeType && (!e.button || "click" !== e.type))
        for (; f != this; f = f.parentNode || this)
          if (f.disabled !== !0 || "click" !== e.type) {
            for (i = [], r = 0; a > r; r++)
              (o = n[r]),
                (s = o.selector + " "),
                i[s] === t &&
                  (i[s] = o.needsContext
                    ? ut(s, this).index(f) >= 0
                    : ut.find(s, this, null, [f]).length),
                i[s] && i.push(o);
            i.length &&
              u.push({
                elem: f,
                handlers: i,
              });
          }
      return (
        n.length > a &&
          u.push({
            elem: this,
            handlers: n.slice(a),
          }),
        u
      );
    },
    fix: function (e) {
      if (e[ut.expando]) return e;
      var t,
        n,
        r = e,
        i = ut.event.fixHooks[e.type] || {},
        s = i.props ? this.props.concat(i.props) : this.props;
      for (e = new ut.Event(r), t = s.length; t--; ) (n = s[t]), (e[n] = r[n]);
      return (
        e.target || (e.target = r.srcElement || $),
        3 === e.target.nodeType && (e.target = e.target.parentNode),
        (e.metaKey = !!e.metaKey),
        i.filter ? i.filter(e, r) : e
      );
    },
    props:
      "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(
        " "
      ),
    fixHooks: {},
    keyHooks: {
      props: "char charCode key keyCode".split(" "),
      filter: function (e, t) {
        return (
          null == e.which &&
            (e.which = null != t.charCode ? t.charCode : t.keyCode),
          e
        );
      },
    },
    mouseHooks: {
      props:
        "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(
          " "
        ),
      filter: function (e, n) {
        var r,
          i,
          s,
          o = n.button,
          u = n.fromElement;
        return (
          null == e.pageX &&
            null != n.clientX &&
            ((r = e.target.ownerDocument || $),
            (i = r.documentElement),
            (s = r.body),
            (e.pageX =
              n.clientX +
              ((i && i.scrollLeft) || (s && s.scrollLeft) || 0) -
              ((i && i.clientLeft) || (s && s.clientLeft) || 0)),
            (e.pageY =
              n.clientY +
              ((i && i.scrollTop) || (s && s.scrollTop) || 0) -
              ((i && i.clientTop) || (s && s.clientTop) || 0))),
          !e.relatedTarget &&
            u &&
            (e.relatedTarget = u === e.target ? n.toElement : u),
          e.which ||
            o === t ||
            (e.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0),
          e
        );
      },
    },
    special: {
      load: {
        noBubble: !0,
      },
      click: {
        trigger: function () {
          return ut.nodeName(this, "input") &&
            "checkbox" === this.type &&
            this.click
            ? (this.click(), !1)
            : t;
        },
      },
      focus: {
        trigger: function () {
          if (this !== $.activeElement && this.focus)
            try {
              return this.focus(), !1;
            } catch (e) {}
        },
        delegateType: "focusin",
      },
      blur: {
        trigger: function () {
          return this === $.activeElement && this.blur ? (this.blur(), !1) : t;
        },
        delegateType: "focusout",
      },
      beforeunload: {
        postDispatch: function (e) {
          e.result !== t && (e.originalEvent.returnValue = e.result);
        },
      },
    },
    simulate: function (e, t, n, r) {
      var i = ut.extend(new ut.Event(), n, {
        type: e,
        isSimulated: !0,
        originalEvent: {},
      });
      r ? ut.event.trigger(i, null, t) : ut.event.dispatch.call(t, i),
        i.isDefaultPrevented() && n.preventDefault();
    },
  }),
    (ut.removeEvent = $.removeEventListener
      ? function (e, t, n) {
          e.removeEventListener && e.removeEventListener(t, n, !1);
        }
      : function (e, n, r) {
          var i = "on" + n;
          e.detachEvent && (e[i] === t && (e[i] = null), e.detachEvent(i, r));
        }),
    (ut.Event = function (e, n) {
      return this instanceof ut.Event
        ? (e && e.type
            ? ((this.originalEvent = e),
              (this.type = e.type),
              (this.isDefaultPrevented =
                e.defaultPrevented ||
                e.returnValue === !1 ||
                (e.getPreventDefault && e.getPreventDefault())
                  ? a
                  : f))
            : (this.type = e),
          n && ut.extend(this, n),
          (this.timeStamp = (e && e.timeStamp) || ut.now()),
          (this[ut.expando] = !0),
          t)
        : new ut.Event(e, n);
    }),
    (ut.Event.prototype = {
      isDefaultPrevented: f,
      isPropagationStopped: f,
      isImmediatePropagationStopped: f,
      preventDefault: function () {
        var e = this.originalEvent;
        (this.isDefaultPrevented = a),
          e && (e.preventDefault ? e.preventDefault() : (e.returnValue = !1));
      },
      stopPropagation: function () {
        var e = this.originalEvent;
        (this.isPropagationStopped = a),
          e &&
            (e.stopPropagation && e.stopPropagation(), (e.cancelBubble = !0));
      },
      stopImmediatePropagation: function () {
        (this.isImmediatePropagationStopped = a), this.stopPropagation();
      },
    }),
    ut.each(
      {
        mouseenter: "mouseover",
        mouseleave: "mouseout",
      },
      function (e, t) {
        ut.event.special[e] = {
          delegateType: t,
          bindType: t,
          handle: function (e) {
            var n,
              r = this,
              i = e.relatedTarget,
              s = e.handleObj;
            return (
              (!i || (i !== r && !ut.contains(r, i))) &&
                ((e.type = s.origType),
                (n = s.handler.apply(this, arguments)),
                (e.type = t)),
              n
            );
          },
        };
      }
    ),
    ut.support.submitBubbles ||
      (ut.event.special.submit = {
        setup: function () {
          return ut.nodeName(this, "form")
            ? !1
            : (ut.event.add(
                this,
                "click._submit keypress._submit",
                function (e) {
                  var n = e.target,
                    r =
                      ut.nodeName(n, "input") || ut.nodeName(n, "button")
                        ? n.form
                        : t;
                  r &&
                    !ut._data(r, "submitBubbles") &&
                    (ut.event.add(r, "submit._submit", function (e) {
                      e._submit_bubble = !0;
                    }),
                    ut._data(r, "submitBubbles", !0));
                }
              ),
              t);
        },
        postDispatch: function (e) {
          e._submit_bubble &&
            (delete e._submit_bubble,
            this.parentNode &&
              !e.isTrigger &&
              ut.event.simulate("submit", this.parentNode, e, !0));
        },
        teardown: function () {
          return ut.nodeName(this, "form")
            ? !1
            : (ut.event.remove(this, "._submit"), t);
        },
      }),
    ut.support.changeBubbles ||
      (ut.event.special.change = {
        setup: function () {
          return Pt.test(this.nodeName)
            ? (("checkbox" === this.type || "radio" === this.type) &&
                (ut.event.add(this, "propertychange._change", function (e) {
                  "checked" === e.originalEvent.propertyName &&
                    (this._just_changed = !0);
                }),
                ut.event.add(this, "click._change", function (e) {
                  this._just_changed &&
                    !e.isTrigger &&
                    (this._just_changed = !1),
                    ut.event.simulate("change", this, e, !0);
                })),
              !1)
            : (ut.event.add(this, "beforeactivate._change", function (e) {
                var t = e.target;
                Pt.test(t.nodeName) &&
                  !ut._data(t, "changeBubbles") &&
                  (ut.event.add(t, "change._change", function (e) {
                    !this.parentNode ||
                      e.isSimulated ||
                      e.isTrigger ||
                      ut.event.simulate("change", this.parentNode, e, !0);
                  }),
                  ut._data(t, "changeBubbles", !0));
              }),
              t);
        },
        handle: function (e) {
          var n = e.target;
          return this !== n ||
            e.isSimulated ||
            e.isTrigger ||
            ("radio" !== n.type && "checkbox" !== n.type)
            ? e.handleObj.handler.apply(this, arguments)
            : t;
        },
        teardown: function () {
          return ut.event.remove(this, "._change"), !Pt.test(this.nodeName);
        },
      }),
    ut.support.focusinBubbles ||
      ut.each(
        {
          focus: "focusin",
          blur: "focusout",
        },
        function (e, t) {
          var n = 0,
            r = function (e) {
              ut.event.simulate(t, e.target, ut.event.fix(e), !0);
            };
          ut.event.special[t] = {
            setup: function () {
              0 === n++ && $.addEventListener(e, r, !0);
            },
            teardown: function () {
              0 === --n && $.removeEventListener(e, r, !0);
            },
          };
        }
      ),
    ut.fn.extend({
      on: function (e, n, r, i, s) {
        var o, u;
        if ("object" == typeof e) {
          "string" != typeof n && ((r = r || n), (n = t));
          for (u in e) this.on(u, n, r, e[u], s);
          return this;
        }
        if (
          (null == r && null == i
            ? ((i = n), (r = n = t))
            : null == i &&
              ("string" == typeof n
                ? ((i = r), (r = t))
                : ((i = r), (r = n), (n = t))),
          i === !1)
        )
          i = f;
        else if (!i) return this;
        return (
          1 === s &&
            ((o = i),
            (i = function (e) {
              return ut().off(e), o.apply(this, arguments);
            }),
            (i.guid = o.guid || (o.guid = ut.guid++))),
          this.each(function () {
            ut.event.add(this, e, i, r, n);
          })
        );
      },
      one: function (e, t, n, r) {
        return this.on(e, t, n, r, 1);
      },
      off: function (e, n, r) {
        var i, s;
        if (e && e.preventDefault && e.handleObj)
          return (
            (i = e.handleObj),
            ut(e.delegateTarget).off(
              i.namespace ? i.origType + "." + i.namespace : i.origType,
              i.selector,
              i.handler
            ),
            this
          );
        if ("object" == typeof e) {
          for (s in e) this.off(s, n, e[s]);
          return this;
        }
        return (
          (n === !1 || "function" == typeof n) && ((r = n), (n = t)),
          r === !1 && (r = f),
          this.each(function () {
            ut.event.remove(this, e, r, n);
          })
        );
      },
      bind: function (e, t, n) {
        return this.on(e, null, t, n);
      },
      unbind: function (e, t) {
        return this.off(e, null, t);
      },
      delegate: function (e, t, n, r) {
        return this.on(t, e, n, r);
      },
      undelegate: function (e, t, n) {
        return 1 === arguments.length
          ? this.off(e, "**")
          : this.off(t, e || "**", n);
      },
      trigger: function (e, t) {
        return this.each(function () {
          ut.event.trigger(e, t, this);
        });
      },
      triggerHandler: function (e, n) {
        var r = this[0];
        return r ? ut.event.trigger(e, n, r, !0) : t;
      },
      hover: function (e, t) {
        return this.mouseenter(e).mouseleave(t || e);
      },
    }),
    ut.each(
      "blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(
        " "
      ),
      function (e, t) {
        (ut.fn[t] = function (e, n) {
          return arguments.length > 0
            ? this.on(t, null, e, n)
            : this.trigger(t);
        }),
          Ht.test(t) && (ut.event.fixHooks[t] = ut.event.keyHooks),
          Bt.test(t) && (ut.event.fixHooks[t] = ut.event.mouseHooks);
      }
    ),
    (function (e, t) {
      function n(e) {
        return dt.test(e + "");
      }

      function r() {
        var e,
          t = [];
        return (e = function (n, r) {
          return (
            t.push((n += " ")) > T.cacheLength && delete e[t.shift()],
            (e[n] = r)
          );
        });
      }

      function i(e) {
        return (e[I] = !0), e;
      }

      function s(e) {
        var t = M.createElement("div");
        try {
          return e(t);
        } catch (n) {
          return !1;
        } finally {
          t = null;
        }
      }

      function o(e, t, n, r) {
        var i, s, o, u, a, f, l, p, d, v;
        if (
          ((t ? t.ownerDocument || t : q) !== M && O(t),
          (t = t || M),
          (n = n || []),
          !e || "string" != typeof e)
        )
          return n;
        if (1 !== (u = t.nodeType) && 9 !== u) return [];
        if (!D && !r) {
          if ((i = vt.exec(e)))
            if ((o = i[1])) {
              if (9 === u) {
                if (((s = t.getElementById(o)), !s || !s.parentNode)) return n;
                if (s.id === o) return n.push(s), n;
              } else if (
                t.ownerDocument &&
                (s = t.ownerDocument.getElementById(o)) &&
                j(t, s) &&
                s.id === o
              )
                return n.push(s), n;
            } else {
              if (i[2])
                return G.apply(n, Y.call(t.getElementsByTagName(e), 0)), n;
              if ((o = i[3]) && R.getByClassName && t.getElementsByClassName)
                return G.apply(n, Y.call(t.getElementsByClassName(o), 0)), n;
            }
          if (R.qsa && !P.test(e)) {
            if (
              ((l = !0),
              (p = I),
              (d = t),
              (v = 9 === u && e),
              1 === u && "object" !== t.nodeName.toLowerCase())
            ) {
              for (
                f = c(e),
                  (l = t.getAttribute("id"))
                    ? (p = l.replace(yt, "\\$&"))
                    : t.setAttribute("id", p),
                  p = "[id='" + p + "'] ",
                  a = f.length;
                a--;

              )
                f[a] = p + h(f[a]);
              (d = (pt.test(e) && t.parentNode) || t), (v = f.join(","));
            }
            if (v)
              try {
                return G.apply(n, Y.call(d.querySelectorAll(v), 0)), n;
              } catch (m) {
              } finally {
                l || t.removeAttribute("id");
              }
          }
        }
        return w(e.replace(ot, "$1"), t, n, r);
      }

      function u(e, t) {
        for (var n = e && t && e.nextSibling; n; n = n.nextSibling)
          if (n === t) return -1;
        return e ? 1 : -1;
      }

      function a(e) {
        return function (t) {
          var n = t.nodeName.toLowerCase();
          return "input" === n && t.type === e;
        };
      }

      function f(e) {
        return function (t) {
          var n = t.nodeName.toLowerCase();
          return ("input" === n || "button" === n) && t.type === e;
        };
      }

      function l(e) {
        return i(function (t) {
          return (
            (t = +t),
            i(function (n, r) {
              for (var i, s = e([], n.length, t), o = s.length; o--; )
                n[(i = s[o])] && (n[i] = !(r[i] = n[i]));
            })
          );
        });
      }

      function c(e, t) {
        var n,
          r,
          i,
          s,
          u,
          a,
          f,
          l = X[e + " "];
        if (l) return t ? 0 : l.slice(0);
        for (u = e, a = [], f = T.preFilter; u; ) {
          (!n || (r = at.exec(u))) &&
            (r && (u = u.slice(r[0].length) || u), a.push((i = []))),
            (n = !1),
            (r = ft.exec(u)) &&
              ((n = r.shift()),
              i.push({
                value: n,
                type: r[0].replace(ot, " "),
              }),
              (u = u.slice(n.length)));
          for (s in T.filter)
            !(r = ht[s].exec(u)) ||
              (f[s] && !(r = f[s](r))) ||
              ((n = r.shift()),
              i.push({
                value: n,
                type: s,
                matches: r,
              }),
              (u = u.slice(n.length)));
          if (!n) break;
        }
        return t ? u.length : u ? o.error(e) : X(e, a).slice(0);
      }

      function h(e) {
        for (var t = 0, n = e.length, r = ""; n > t; t++) r += e[t].value;
        return r;
      }

      function p(e, t, n) {
        var r = t.dir,
          i = n && "parentNode" === t.dir,
          s = z++;
        return t.first
          ? function (t, n, s) {
              for (; (t = t[r]); ) if (1 === t.nodeType || i) return e(t, n, s);
            }
          : function (t, n, o) {
              var u,
                a,
                f,
                l = U + " " + s;
              if (o) {
                for (; (t = t[r]); )
                  if ((1 === t.nodeType || i) && e(t, n, o)) return !0;
              } else
                for (; (t = t[r]); )
                  if (1 === t.nodeType || i)
                    if (((f = t[I] || (t[I] = {})), (a = f[r]) && a[0] === l)) {
                      if ((u = a[1]) === !0 || u === x) return u === !0;
                    } else if (
                      ((a = f[r] = [l]), (a[1] = e(t, n, o) || x), a[1] === !0)
                    )
                      return !0;
            };
      }

      function d(e) {
        return e.length > 1
          ? function (t, n, r) {
              for (var i = e.length; i--; ) if (!e[i](t, n, r)) return !1;
              return !0;
            }
          : e[0];
      }

      function v(e, t, n, r, i) {
        for (var s, o = [], u = 0, a = e.length, f = null != t; a > u; u++)
          (s = e[u]) && (!n || n(s, r, i)) && (o.push(s), f && t.push(u));
        return o;
      }

      function m(e, t, n, r, s, o) {
        return (
          r && !r[I] && (r = m(r)),
          s && !s[I] && (s = m(s, o)),
          i(function (i, o, u, a) {
            var f,
              l,
              c,
              h = [],
              p = [],
              d = o.length,
              m = i || b(t || "*", u.nodeType ? [u] : u, []),
              g = !e || (!i && t) ? m : v(m, h, e, u, a),
              y = n ? (s || (i ? e : d || r) ? [] : o) : g;
            if ((n && n(g, y, u, a), r))
              for (f = v(y, p), r(f, [], u, a), l = f.length; l--; )
                (c = f[l]) && (y[p[l]] = !(g[p[l]] = c));
            if (i) {
              if (s || e) {
                if (s) {
                  for (f = [], l = y.length; l--; )
                    (c = y[l]) && f.push((g[l] = c));
                  s(null, (y = []), f, a);
                }
                for (l = y.length; l--; )
                  (c = y[l]) &&
                    (f = s ? Z.call(i, c) : h[l]) > -1 &&
                    (i[f] = !(o[f] = c));
              }
            } else (y = v(y === o ? y.splice(d, y.length) : y)), s ? s(null, o, y, a) : G.apply(o, y);
          })
        );
      }

      function g(e) {
        for (
          var t,
            n,
            r,
            i = e.length,
            s = T.relative[e[0].type],
            o = s || T.relative[" "],
            u = s ? 1 : 0,
            a = p(
              function (e) {
                return e === t;
              },
              o,
              !0
            ),
            f = p(
              function (e) {
                return Z.call(t, e) > -1;
              },
              o,
              !0
            ),
            l = [
              function (e, n, r) {
                return (
                  (!s && (r || n !== A)) ||
                  ((t = n).nodeType ? a(e, n, r) : f(e, n, r))
                );
              },
            ];
          i > u;
          u++
        )
          if ((n = T.relative[e[u].type])) l = [p(d(l), n)];
          else {
            if (((n = T.filter[e[u].type].apply(null, e[u].matches)), n[I])) {
              for (r = ++u; i > r && !T.relative[e[r].type]; r++);
              return m(
                u > 1 && d(l),
                u > 1 && h(e.slice(0, u - 1)).replace(ot, "$1"),
                n,
                r > u && g(e.slice(u, r)),
                i > r && g((e = e.slice(r))),
                i > r && h(e)
              );
            }
            l.push(n);
          }
        return d(l);
      }

      function y(e, t) {
        var n = 0,
          r = t.length > 0,
          s = e.length > 0,
          u = function (i, u, a, f, l) {
            var c,
              h,
              p,
              d = [],
              m = 0,
              g = "0",
              y = i && [],
              b = null != l,
              w = A,
              E = i || (s && T.find.TAG("*", (l && u.parentNode) || u)),
              S = (U += null == w ? 1 : Math.E);
            for (b && ((A = u !== M && u), (x = n)); null != (c = E[g]); g++) {
              if (s && c) {
                for (h = 0; (p = e[h]); h++)
                  if (p(c, u, a)) {
                    f.push(c);
                    break;
                  }
                b && ((U = S), (x = ++n));
              }
              r && ((c = !p && c) && m--, i && y.push(c));
            }
            if (((m += g), r && g !== m)) {
              for (h = 0; (p = t[h]); h++) p(y, d, u, a);
              if (i) {
                if (m > 0) for (; g--; ) y[g] || d[g] || (d[g] = Q.call(f));
                d = v(d);
              }
              G.apply(f, d),
                b && !i && d.length > 0 && m + t.length > 1 && o.uniqueSort(f);
            }
            return b && ((U = S), (A = w)), y;
          };
        return r ? i(u) : u;
      }

      function b(e, t, n) {
        for (var r = 0, i = t.length; i > r; r++) o(e, t[r], n);
        return n;
      }

      function w(e, t, n, r) {
        var i,
          s,
          o,
          u,
          a,
          f = c(e);
        if (!r && 1 === f.length) {
          if (
            ((s = f[0] = f[0].slice(0)),
            s.length > 2 &&
              "ID" === (o = s[0]).type &&
              9 === t.nodeType &&
              !D &&
              T.relative[s[1].type])
          ) {
            if (((t = T.find.ID(o.matches[0].replace(wt, Et), t)[0]), !t))
              return n;
            e = e.slice(s.shift().value.length);
          }
          for (
            i = ht.needsContext.test(e) ? -1 : s.length - 1;
            i >= 0 && ((o = s[i]), !T.relative[(u = o.type)]);
            i--
          )
            if (
              (a = T.find[u]) &&
              (r = a(
                o.matches[0].replace(wt, Et),
                (pt.test(s[0].type) && t.parentNode) || t
              ))
            ) {
              if ((s.splice(i, 1), (e = r.length && h(s)), !e))
                return G.apply(n, Y.call(r, 0)), n;
              break;
            }
        }
        return k(e, f)(r, t, D, n, pt.test(e)), n;
      }

      function E() {}
      var S,
        x,
        T,
        N,
        C,
        k,
        L,
        A,
        O,
        M,
        _,
        D,
        P,
        H,
        B,
        j,
        F,
        I = "sizzle" + -new Date(),
        q = e.document,
        R = {},
        U = 0,
        z = 0,
        W = r(),
        X = r(),
        V = r(),
        $ = typeof t,
        J = 1 << 31,
        K = [],
        Q = K.pop,
        G = K.push,
        Y = K.slice,
        Z =
          K.indexOf ||
          function (e) {
            for (var t = 0, n = this.length; n > t; t++)
              if (this[t] === e) return t;
            return -1;
          },
        et = "[\\x20\\t\\r\\n\\f]",
        tt = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
        nt = tt.replace("w", "w#"),
        rt = "([*^$|!~]?=)",
        it =
          "\\[" +
          et +
          "*(" +
          tt +
          ")" +
          et +
          "*(?:" +
          rt +
          et +
          "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" +
          nt +
          ")|)|)" +
          et +
          "*\\]",
        st =
          ":(" +
          tt +
          ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" +
          it.replace(3, 8) +
          ")*)|.*)\\)|)",
        ot = RegExp("^" + et + "+|((?:^|[^\\\\])(?:\\\\.)*)" + et + "+$", "g"),
        at = RegExp("^" + et + "*," + et + "*"),
        ft = RegExp("^" + et + "*([\\x20\\t\\r\\n\\f>+~])" + et + "*"),
        lt = RegExp(st),
        ct = RegExp("^" + nt + "$"),
        ht = {
          ID: RegExp("^#(" + tt + ")"),
          CLASS: RegExp("^\\.(" + tt + ")"),
          NAME: RegExp("^\\[name=['\"]?(" + tt + ")['\"]?\\]"),
          TAG: RegExp("^(" + tt.replace("w", "w*") + ")"),
          ATTR: RegExp("^" + it),
          PSEUDO: RegExp("^" + st),
          CHILD: RegExp(
            "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
              et +
              "*(even|odd|(([+-]|)(\\d*)n|)" +
              et +
              "*(?:([+-]|)" +
              et +
              "*(\\d+)|))" +
              et +
              "*\\)|)",
            "i"
          ),
          needsContext: RegExp(
            "^" +
              et +
              "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
              et +
              "*((?:-\\d)?\\d*)" +
              et +
              "*\\)|)(?=[^-]|$)",
            "i"
          ),
        },
        pt = /[\x20\t\r\n\f]*[+~]/,
        dt = /\{\s*\[native code\]\s*\}/,
        vt = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
        mt = /^(?:input|select|textarea|button)$/i,
        gt = /^h\d$/i,
        yt = /'|\\/g,
        bt = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
        wt = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,
        Et = function (e, t) {
          var n = "0x" + t - 65536;
          return n !== n
            ? t
            : 0 > n
            ? String.fromCharCode(n + 65536)
            : String.fromCharCode(55296 | (n >> 10), 56320 | (1023 & n));
        };
      try {
        Y.call(_.childNodes, 0)[0].nodeType;
      } catch (St) {
        Y = function (e) {
          for (var t, n = []; (t = this[e]); e++) n.push(t);
          return n;
        };
      }
      (C = o.isXML =
        function (e) {
          var t = e && (e.ownerDocument || e).documentElement;
          return t ? "HTML" !== t.nodeName : !1;
        }),
        (O = o.setDocument =
          function (e) {
            var r = e ? e.ownerDocument || e : q;
            return r !== M && 9 === r.nodeType && r.documentElement
              ? ((M = r),
                (_ = r.documentElement),
                (D = C(r)),
                (R.tagNameNoComments = s(function (e) {
                  return (
                    e.appendChild(r.createComment("")),
                    !e.getElementsByTagName("*").length
                  );
                })),
                (R.attributes = s(function (e) {
                  e.innerHTML = "<select></select>";
                  var t = typeof e.lastChild.getAttribute("multiple");
                  return "boolean" !== t && "string" !== t;
                })),
                (R.getByClassName = s(function (e) {
                  return (
                    (e.innerHTML =
                      "<div class='hidden e'></div><div class='hidden'></div>"),
                    e.getElementsByClassName &&
                    e.getElementsByClassName("e").length
                      ? ((e.lastChild.className = "e"),
                        2 === e.getElementsByClassName("e").length)
                      : !1
                  );
                })),
                (R.getByName = s(function (e) {
                  (e.id = I + 0),
                    (e.innerHTML =
                      "<a name='" + I + "'></a><div name='" + I + "'></div>"),
                    _.insertBefore(e, _.firstChild);
                  var t =
                    r.getElementsByName &&
                    r.getElementsByName(I).length ===
                      2 + r.getElementsByName(I + 0).length;
                  return (
                    (R.getIdNotName = !r.getElementById(I)), _.removeChild(e), t
                  );
                })),
                (T.attrHandle = s(function (e) {
                  return (
                    (e.innerHTML = "<a href='#'></a>"),
                    e.firstChild &&
                      typeof e.firstChild.getAttribute !== $ &&
                      "#" === e.firstChild.getAttribute("href")
                  );
                })
                  ? {}
                  : {
                      href: function (e) {
                        return e.getAttribute("href", 2);
                      },
                      type: function (e) {
                        return e.getAttribute("type");
                      },
                    }),
                R.getIdNotName
                  ? ((T.find.ID = function (e, t) {
                      if (typeof t.getElementById !== $ && !D) {
                        var n = t.getElementById(e);
                        return n && n.parentNode ? [n] : [];
                      }
                    }),
                    (T.filter.ID = function (e) {
                      var t = e.replace(wt, Et);
                      return function (e) {
                        return e.getAttribute("id") === t;
                      };
                    }))
                  : ((T.find.ID = function (e, n) {
                      if (typeof n.getElementById !== $ && !D) {
                        var r = n.getElementById(e);
                        return r
                          ? r.id === e ||
                            (typeof r.getAttributeNode !== $ &&
                              r.getAttributeNode("id").value === e)
                            ? [r]
                            : t
                          : [];
                      }
                    }),
                    (T.filter.ID = function (e) {
                      var t = e.replace(wt, Et);
                      return function (e) {
                        var n =
                          typeof e.getAttributeNode !== $ &&
                          e.getAttributeNode("id");
                        return n && n.value === t;
                      };
                    })),
                (T.find.TAG = R.tagNameNoComments
                  ? function (e, n) {
                      return typeof n.getElementsByTagName !== $
                        ? n.getElementsByTagName(e)
                        : t;
                    }
                  : function (e, t) {
                      var n,
                        r = [],
                        i = 0,
                        s = t.getElementsByTagName(e);
                      if ("*" === e) {
                        for (; (n = s[i]); i++) 1 === n.nodeType && r.push(n);
                        return r;
                      }
                      return s;
                    }),
                (T.find.NAME =
                  R.getByName &&
                  function (e, n) {
                    return typeof n.getElementsByName !== $
                      ? n.getElementsByName(name)
                      : t;
                  }),
                (T.find.CLASS =
                  R.getByClassName &&
                  function (e, n) {
                    return typeof n.getElementsByClassName === $ || D
                      ? t
                      : n.getElementsByClassName(e);
                  }),
                (H = []),
                (P = [":focus"]),
                (R.qsa = n(r.querySelectorAll)) &&
                  (s(function (e) {
                    (e.innerHTML =
                      "<select><option selected=''></option></select>"),
                      e.querySelectorAll("[selected]").length ||
                        P.push(
                          "\\[" +
                            et +
                            "*(?:checked|disabled|ismap|multiple|readonly|selected|value)"
                        ),
                      e.querySelectorAll(":checked").length ||
                        P.push(":checked");
                  }),
                  s(function (e) {
                    (e.innerHTML = "<input type='hidden' i=''/>"),
                      e.querySelectorAll("[i^='']").length &&
                        P.push("[*^$]=" + et + "*(?:\"\"|'')"),
                      e.querySelectorAll(":enabled").length ||
                        P.push(":enabled", ":disabled"),
                      e.querySelectorAll("*,:x"),
                      P.push(",.*:");
                  })),
                (R.matchesSelector = n(
                  (B =
                    _.matchesSelector ||
                    _.mozMatchesSelector ||
                    _.webkitMatchesSelector ||
                    _.oMatchesSelector ||
                    _.msMatchesSelector)
                )) &&
                  s(function (e) {
                    (R.disconnectedMatch = B.call(e, "div")),
                      B.call(e, "[s!='']:x"),
                      H.push("!=", st);
                  }),
                (P = RegExp(P.join("|"))),
                (H = RegExp(H.join("|"))),
                (j =
                  n(_.contains) || _.compareDocumentPosition
                    ? function (e, t) {
                        var n = 9 === e.nodeType ? e.documentElement : e,
                          r = t && t.parentNode;
                        return (
                          e === r ||
                          (!!r &&
                            1 === r.nodeType &&
                            !!(n.contains
                              ? n.contains(r)
                              : e.compareDocumentPosition &&
                                16 & e.compareDocumentPosition(r)))
                        );
                      }
                    : function (e, t) {
                        if (t)
                          for (; (t = t.parentNode); ) if (t === e) return !0;
                        return !1;
                      }),
                (F = _.compareDocumentPosition
                  ? function (e, t) {
                      var n;
                      return e === t
                        ? ((L = !0), 0)
                        : (n =
                            t.compareDocumentPosition &&
                            e.compareDocumentPosition &&
                            e.compareDocumentPosition(t))
                        ? 1 & n ||
                          (e.parentNode && 11 === e.parentNode.nodeType)
                          ? e === r || j(q, e)
                            ? -1
                            : t === r || j(q, t)
                            ? 1
                            : 0
                          : 4 & n
                          ? -1
                          : 1
                        : e.compareDocumentPosition
                        ? -1
                        : 1;
                    }
                  : function (e, t) {
                      var n,
                        i = 0,
                        s = e.parentNode,
                        o = t.parentNode,
                        a = [e],
                        f = [t];
                      if (e === t) return (L = !0), 0;
                      if (e.sourceIndex && t.sourceIndex)
                        return (
                          (~t.sourceIndex || J) -
                          ((j(q, e) && ~e.sourceIndex) || J)
                        );
                      if (!s || !o)
                        return e === r ? -1 : t === r ? 1 : s ? -1 : o ? 1 : 0;
                      if (s === o) return u(e, t);
                      for (n = e; (n = n.parentNode); ) a.unshift(n);
                      for (n = t; (n = n.parentNode); ) f.unshift(n);
                      for (; a[i] === f[i]; ) i++;
                      return i
                        ? u(a[i], f[i])
                        : a[i] === q
                        ? -1
                        : f[i] === q
                        ? 1
                        : 0;
                    }),
                (L = !1),
                [0, 0].sort(F),
                (R.detectDuplicates = L),
                M)
              : M;
          }),
        (o.matches = function (e, t) {
          return o(e, null, null, t);
        }),
        (o.matchesSelector = function (e, t) {
          if (
            ((e.ownerDocument || e) !== M && O(e),
            (t = t.replace(bt, "='$1']")),
            !(!R.matchesSelector || D || (H && H.test(t)) || P.test(t)))
          )
            try {
              var n = B.call(e, t);
              if (
                n ||
                R.disconnectedMatch ||
                (e.document && 11 !== e.document.nodeType)
              )
                return n;
            } catch (r) {}
          return o(t, M, null, [e]).length > 0;
        }),
        (o.contains = function (e, t) {
          return (e.ownerDocument || e) !== M && O(e), j(e, t);
        }),
        (o.attr = function (e, t) {
          var n;
          return (
            (e.ownerDocument || e) !== M && O(e),
            D || (t = t.toLowerCase()),
            (n = T.attrHandle[t])
              ? n(e)
              : D || R.attributes
              ? e.getAttribute(t)
              : ((n = e.getAttributeNode(t)) || e.getAttribute(t)) &&
                e[t] === !0
              ? t
              : n && n.specified
              ? n.value
              : null
          );
        }),
        (o.error = function (e) {
          throw Error("Syntax error, unrecognized expression: " + e);
        }),
        (o.uniqueSort = function (e) {
          var t,
            n = [],
            r = 1,
            i = 0;
          if (((L = !R.detectDuplicates), e.sort(F), L)) {
            for (; (t = e[r]); r++) t === e[r - 1] && (i = n.push(r));
            for (; i--; ) e.splice(n[i], 1);
          }
          return e;
        }),
        (N = o.getText =
          function (e) {
            var t,
              n = "",
              r = 0,
              i = e.nodeType;
            if (i) {
              if (1 === i || 9 === i || 11 === i) {
                if ("string" == typeof e.textContent) return e.textContent;
                for (e = e.firstChild; e; e = e.nextSibling) n += N(e);
              } else if (3 === i || 4 === i) return e.nodeValue;
            } else for (; (t = e[r]); r++) n += N(t);
            return n;
          }),
        (T = o.selectors =
          {
            cacheLength: 50,
            createPseudo: i,
            match: ht,
            find: {},
            relative: {
              ">": {
                dir: "parentNode",
                first: !0,
              },
              " ": {
                dir: "parentNode",
              },
              "+": {
                dir: "previousSibling",
                first: !0,
              },
              "~": {
                dir: "previousSibling",
              },
            },
            preFilter: {
              ATTR: function (e) {
                return (
                  (e[1] = e[1].replace(wt, Et)),
                  (e[3] = (e[4] || e[5] || "").replace(wt, Et)),
                  "~=" === e[2] && (e[3] = " " + e[3] + " "),
                  e.slice(0, 4)
                );
              },
              CHILD: function (e) {
                return (
                  (e[1] = e[1].toLowerCase()),
                  "nth" === e[1].slice(0, 3)
                    ? (e[3] || o.error(e[0]),
                      (e[4] = +(e[4]
                        ? e[5] + (e[6] || 1)
                        : 2 * ("even" === e[3] || "odd" === e[3]))),
                      (e[5] = +(e[7] + e[8] || "odd" === e[3])))
                    : e[3] && o.error(e[0]),
                  e
                );
              },
              PSEUDO: function (e) {
                var t,
                  n = !e[5] && e[2];
                return ht.CHILD.test(e[0])
                  ? null
                  : (e[4]
                      ? (e[2] = e[4])
                      : n &&
                        lt.test(n) &&
                        (t = c(n, !0)) &&
                        (t = n.indexOf(")", n.length - t) - n.length) &&
                        ((e[0] = e[0].slice(0, t)), (e[2] = n.slice(0, t))),
                    e.slice(0, 3));
              },
            },
            filter: {
              TAG: function (e) {
                return "*" === e
                  ? function () {
                      return !0;
                    }
                  : ((e = e.replace(wt, Et).toLowerCase()),
                    function (t) {
                      return t.nodeName && t.nodeName.toLowerCase() === e;
                    });
              },
              CLASS: function (e) {
                var t = W[e + " "];
                return (
                  t ||
                  ((t = RegExp("(^|" + et + ")" + e + "(" + et + "|$)")) &&
                    W(e, function (e) {
                      return t.test(
                        e.className ||
                          (typeof e.getAttribute !== $ &&
                            e.getAttribute("class")) ||
                          ""
                      );
                    }))
                );
              },
              ATTR: function (e, t, n) {
                return function (r) {
                  var i = o.attr(r, e);
                  return null == i
                    ? "!=" === t
                    : t
                    ? ((i += ""),
                      "=" === t
                        ? i === n
                        : "!=" === t
                        ? i !== n
                        : "^=" === t
                        ? n && 0 === i.indexOf(n)
                        : "*=" === t
                        ? n && i.indexOf(n) > -1
                        : "$=" === t
                        ? n && i.substr(i.length - n.length) === n
                        : "~=" === t
                        ? (" " + i + " ").indexOf(n) > -1
                        : "|=" === t
                        ? i === n || i.substr(0, n.length + 1) === n + "-"
                        : !1)
                    : !0;
                };
              },
              CHILD: function (e, t, n, r, i) {
                var s = "nth" !== e.slice(0, 3),
                  o = "last" !== e.slice(-4),
                  u = "of-type" === t;
                return 1 === r && 0 === i
                  ? function (e) {
                      return !!e.parentNode;
                    }
                  : function (t, n, a) {
                      var f,
                        l,
                        c,
                        h,
                        p,
                        d,
                        v = s !== o ? "nextSibling" : "previousSibling",
                        m = t.parentNode,
                        g = u && t.nodeName.toLowerCase(),
                        y = !a && !u;
                      if (m) {
                        if (s) {
                          for (; v; ) {
                            for (c = t; (c = c[v]); )
                              if (
                                u
                                  ? c.nodeName.toLowerCase() === g
                                  : 1 === c.nodeType
                              )
                                return !1;
                            d = v = "only" === e && !d && "nextSibling";
                          }
                          return !0;
                        }
                        if (((d = [o ? m.firstChild : m.lastChild]), o && y)) {
                          for (
                            l = m[I] || (m[I] = {}),
                              f = l[e] || [],
                              p = f[0] === U && f[1],
                              h = f[0] === U && f[2],
                              c = p && m.childNodes[p];
                            (c = (++p && c && c[v]) || (h = p = 0) || d.pop());

                          )
                            if (1 === c.nodeType && ++h && c === t) {
                              l[e] = [U, p, h];
                              break;
                            }
                        } else if (
                          y &&
                          (f = (t[I] || (t[I] = {}))[e]) &&
                          f[0] === U
                        )
                          h = f[1];
                        else
                          for (
                            ;
                            (c =
                              (++p && c && c[v]) || (h = p = 0) || d.pop()) &&
                            ((u
                              ? c.nodeName.toLowerCase() !== g
                              : 1 !== c.nodeType) ||
                              !++h ||
                              (y && ((c[I] || (c[I] = {}))[e] = [U, h]),
                              c !== t));

                          );
                        return (h -= i), h === r || (0 === h % r && h / r >= 0);
                      }
                    };
              },
              PSEUDO: function (e, t) {
                var n,
                  r =
                    T.pseudos[e] ||
                    T.setFilters[e.toLowerCase()] ||
                    o.error("unsupported pseudo: " + e);
                return r[I]
                  ? r(t)
                  : r.length > 1
                  ? ((n = [e, e, "", t]),
                    T.setFilters.hasOwnProperty(e.toLowerCase())
                      ? i(function (e, n) {
                          for (var i, s = r(e, t), o = s.length; o--; )
                            (i = Z.call(e, s[o])), (e[i] = !(n[i] = s[o]));
                        })
                      : function (e) {
                          return r(e, 0, n);
                        })
                  : r;
              },
            },
            pseudos: {
              not: i(function (e) {
                var t = [],
                  n = [],
                  r = k(e.replace(ot, "$1"));
                return r[I]
                  ? i(function (e, t, n, i) {
                      for (var s, o = r(e, null, i, []), u = e.length; u--; )
                        (s = o[u]) && (e[u] = !(t[u] = s));
                    })
                  : function (e, i, s) {
                      return (t[0] = e), r(t, null, s, n), !n.pop();
                    };
              }),
              has: i(function (e) {
                return function (t) {
                  return o(e, t).length > 0;
                };
              }),
              contains: i(function (e) {
                return function (t) {
                  return (t.textContent || t.innerText || N(t)).indexOf(e) > -1;
                };
              }),
              lang: i(function (e) {
                return (
                  ct.test(e || "") || o.error("unsupported lang: " + e),
                  (e = e.replace(wt, Et).toLowerCase()),
                  function (t) {
                    var n;
                    do
                      if (
                        (n = D
                          ? t.getAttribute("xml:lang") || t.getAttribute("lang")
                          : t.lang)
                      )
                        return (
                          (n = n.toLowerCase()),
                          n === e || 0 === n.indexOf(e + "-")
                        );
                    while ((t = t.parentNode) && 1 === t.nodeType);
                    return !1;
                  }
                );
              }),
              target: function (t) {
                var n = e.location && e.location.hash;
                return n && n.slice(1) === t.id;
              },
              root: function (e) {
                return e === _;
              },
              focus: function (e) {
                return (
                  e === M.activeElement &&
                  (!M.hasFocus || M.hasFocus()) &&
                  !!(e.type || e.href || ~e.tabIndex)
                );
              },
              enabled: function (e) {
                return e.disabled === !1;
              },
              disabled: function (e) {
                return e.disabled === !0;
              },
              checked: function (e) {
                var t = e.nodeName.toLowerCase();
                return (
                  ("input" === t && !!e.checked) ||
                  ("option" === t && !!e.selected)
                );
              },
              selected: function (e) {
                return (
                  e.parentNode && e.parentNode.selectedIndex, e.selected === !0
                );
              },
              empty: function (e) {
                for (e = e.firstChild; e; e = e.nextSibling)
                  if (e.nodeName > "@" || 3 === e.nodeType || 4 === e.nodeType)
                    return !1;
                return !0;
              },
              parent: function (e) {
                return !T.pseudos.empty(e);
              },
              header: function (e) {
                return gt.test(e.nodeName);
              },
              input: function (e) {
                return mt.test(e.nodeName);
              },
              button: function (e) {
                var t = e.nodeName.toLowerCase();
                return ("input" === t && "button" === e.type) || "button" === t;
              },
              text: function (e) {
                var t;
                return (
                  "input" === e.nodeName.toLowerCase() &&
                  "text" === e.type &&
                  (null == (t = e.getAttribute("type")) ||
                    t.toLowerCase() === e.type)
                );
              },
              first: l(function () {
                return [0];
              }),
              last: l(function (e, t) {
                return [t - 1];
              }),
              eq: l(function (e, t, n) {
                return [0 > n ? n + t : n];
              }),
              even: l(function (e, t) {
                for (var n = 0; t > n; n += 2) e.push(n);
                return e;
              }),
              odd: l(function (e, t) {
                for (var n = 1; t > n; n += 2) e.push(n);
                return e;
              }),
              lt: l(function (e, t, n) {
                for (var r = 0 > n ? n + t : n; --r >= 0; ) e.push(r);
                return e;
              }),
              gt: l(function (e, t, n) {
                for (var r = 0 > n ? n + t : n; t > ++r; ) e.push(r);
                return e;
              }),
            },
          });
      for (S in {
        radio: !0,
        checkbox: !0,
        file: !0,
        password: !0,
        image: !0,
      })
        T.pseudos[S] = a(S);
      for (S in {
        submit: !0,
        reset: !0,
      })
        T.pseudos[S] = f(S);
      (k = o.compile =
        function (e, t) {
          var n,
            r = [],
            i = [],
            s = V[e + " "];
          if (!s) {
            for (t || (t = c(e)), n = t.length; n--; )
              (s = g(t[n])), s[I] ? r.push(s) : i.push(s);
            s = V(e, y(i, r));
          }
          return s;
        }),
        (T.pseudos.nth = T.pseudos.eq),
        (T.filters = E.prototype = T.pseudos),
        (T.setFilters = new E()),
        O(),
        (o.attr = ut.attr),
        (ut.find = o),
        (ut.expr = o.selectors),
        (ut.expr[":"] = ut.expr.pseudos),
        (ut.unique = o.uniqueSort),
        (ut.text = o.getText),
        (ut.isXMLDoc = o.isXML),
        (ut.contains = o.contains);
    })(e);
  var It = /Until$/,
    qt = /^(?:parents|prev(?:Until|All))/,
    Rt = /^.[^:#\[\.,]*$/,
    Ut = ut.expr.match.needsContext,
    zt = {
      children: !0,
      contents: !0,
      next: !0,
      prev: !0,
    };
  ut.fn.extend({
    find: function (e) {
      var t, n, r;
      if ("string" != typeof e)
        return (
          (r = this),
          this.pushStack(
            ut(e).filter(function () {
              for (t = 0; r.length > t; t++)
                if (ut.contains(r[t], this)) return !0;
            })
          )
        );
      for (n = [], t = 0; this.length > t; t++) ut.find(e, this[t], n);
      return (
        (n = this.pushStack(ut.unique(n))),
        (n.selector = (this.selector ? this.selector + " " : "") + e),
        n
      );
    },
    has: function (e) {
      var t,
        n = ut(e, this),
        r = n.length;
      return this.filter(function () {
        for (t = 0; r > t; t++) if (ut.contains(this, n[t])) return !0;
      });
    },
    not: function (e) {
      return this.pushStack(c(this, e, !1));
    },
    filter: function (e) {
      return this.pushStack(c(this, e, !0));
    },
    is: function (e) {
      return (
        !!e &&
        ("string" == typeof e
          ? Ut.test(e)
            ? ut(e, this.context).index(this[0]) >= 0
            : ut.filter(e, this).length > 0
          : this.filter(e).length > 0)
      );
    },
    closest: function (e, t) {
      for (
        var n,
          r = 0,
          i = this.length,
          s = [],
          o = Ut.test(e) || "string" != typeof e ? ut(e, t || this.context) : 0;
        i > r;
        r++
      )
        for (
          n = this[r];
          n && n.ownerDocument && n !== t && 11 !== n.nodeType;

        ) {
          if (o ? o.index(n) > -1 : ut.find.matchesSelector(n, e)) {
            s.push(n);
            break;
          }
          n = n.parentNode;
        }
      return this.pushStack(s.length > 1 ? ut.unique(s) : s);
    },
    index: function (e) {
      return e
        ? "string" == typeof e
          ? ut.inArray(this[0], ut(e))
          : ut.inArray(e.jquery ? e[0] : e, this)
        : this[0] && this[0].parentNode
        ? this.first().prevAll().length
        : -1;
    },
    add: function (e, t) {
      var n =
          "string" == typeof e
            ? ut(e, t)
            : ut.makeArray(e && e.nodeType ? [e] : e),
        r = ut.merge(this.get(), n);
      return this.pushStack(ut.unique(r));
    },
    addBack: function (e) {
      return this.add(null == e ? this.prevObject : this.prevObject.filter(e));
    },
  }),
    (ut.fn.andSelf = ut.fn.addBack),
    ut.each(
      {
        parent: function (e) {
          var t = e.parentNode;
          return t && 11 !== t.nodeType ? t : null;
        },
        parents: function (e) {
          return ut.dir(e, "parentNode");
        },
        parentsUntil: function (e, t, n) {
          return ut.dir(e, "parentNode", n);
        },
        next: function (e) {
          return l(e, "nextSibling");
        },
        prev: function (e) {
          return l(e, "previousSibling");
        },
        nextAll: function (e) {
          return ut.dir(e, "nextSibling");
        },
        prevAll: function (e) {
          return ut.dir(e, "previousSibling");
        },
        nextUntil: function (e, t, n) {
          return ut.dir(e, "nextSibling", n);
        },
        prevUntil: function (e, t, n) {
          return ut.dir(e, "previousSibling", n);
        },
        siblings: function (e) {
          return ut.sibling((e.parentNode || {}).firstChild, e);
        },
        children: function (e) {
          return ut.sibling(e.firstChild);
        },
        contents: function (e) {
          return ut.nodeName(e, "iframe")
            ? e.contentDocument || e.contentWindow.document
            : ut.merge([], e.childNodes);
        },
      },
      function (e, t) {
        ut.fn[e] = function (n, r) {
          var i = ut.map(this, t, n);
          return (
            It.test(e) || (r = n),
            r && "string" == typeof r && (i = ut.filter(r, i)),
            (i = this.length > 1 && !zt[e] ? ut.unique(i) : i),
            this.length > 1 && qt.test(e) && (i = i.reverse()),
            this.pushStack(i)
          );
        };
      }
    ),
    ut.extend({
      filter: function (e, t, n) {
        return (
          n && (e = ":not(" + e + ")"),
          1 === t.length
            ? ut.find.matchesSelector(t[0], e)
              ? [t[0]]
              : []
            : ut.find.matches(e, t)
        );
      },
      dir: function (e, n, r) {
        for (
          var i = [], s = e[n];
          s &&
          9 !== s.nodeType &&
          (r === t || 1 !== s.nodeType || !ut(s).is(r));

        )
          1 === s.nodeType && i.push(s), (s = s[n]);
        return i;
      },
      sibling: function (e, t) {
        for (var n = []; e; e = e.nextSibling)
          1 === e.nodeType && e !== t && n.push(e);
        return n;
      },
    });
  var Wt =
      "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
    Xt = / jQuery\d+="(?:null|\d+)"/g,
    Vt = RegExp("<(?:" + Wt + ")[\\s/>]", "i"),
    $t = /^\s+/,
    Jt =
      /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
    Kt = /<([\w:]+)/,
    Qt = /<tbody/i,
    Gt = /<|&#?\w+;/,
    Yt = /<(?:script|style|link)/i,
    Zt = /^(?:checkbox|radio)$/i,
    en = /checked\s*(?:[^=]|=\s*.checked.)/i,
    tn = /^$|\/(?:java|ecma)script/i,
    nn = /^true\/(.*)/,
    rn = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
    sn = {
      option: [1, "<select multiple='multiple'>", "</select>"],
      legend: [1, "<fieldset>", "</fieldset>"],
      area: [1, "<map>", "</map>"],
      param: [1, "<object>", "</object>"],
      thead: [1, "<table>", "</table>"],
      tr: [2, "<table><tbody>", "</tbody></table>"],
      col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
      td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
      _default: ut.support.htmlSerialize
        ? [0, "", ""]
        : [1, "X<div>", "</div>"],
    },
    on = h($),
    un = on.appendChild($.createElement("div"));
  (sn.optgroup = sn.option),
    (sn.tbody = sn.tfoot = sn.colgroup = sn.caption = sn.thead),
    (sn.th = sn.td),
    ut.fn.extend({
      text: function (e) {
        return ut.access(
          this,
          function (e) {
            return e === t
              ? ut.text(this)
              : this.empty().append(
                  ((this[0] && this[0].ownerDocument) || $).createTextNode(e)
                );
          },
          null,
          e,
          arguments.length
        );
      },
      wrapAll: function (e) {
        if (ut.isFunction(e))
          return this.each(function (t) {
            ut(this).wrapAll(e.call(this, t));
          });
        if (this[0]) {
          var t = ut(e, this[0].ownerDocument).eq(0).clone(!0);
          this[0].parentNode && t.insertBefore(this[0]),
            t
              .map(function () {
                for (
                  var e = this;
                  e.firstChild && 1 === e.firstChild.nodeType;

                )
                  e = e.firstChild;
                return e;
              })
              .append(this);
        }
        return this;
      },
      wrapInner: function (e) {
        return ut.isFunction(e)
          ? this.each(function (t) {
              ut(this).wrapInner(e.call(this, t));
            })
          : this.each(function () {
              var t = ut(this),
                n = t.contents();
              n.length ? n.wrapAll(e) : t.append(e);
            });
      },
      wrap: function (e) {
        var t = ut.isFunction(e);
        return this.each(function (n) {
          ut(this).wrapAll(t ? e.call(this, n) : e);
        });
      },
      unwrap: function () {
        return this.parent()
          .each(function () {
            ut.nodeName(this, "body") || ut(this).replaceWith(this.childNodes);
          })
          .end();
      },
      append: function () {
        return this.domManip(arguments, !0, function (e) {
          (1 === this.nodeType ||
            11 === this.nodeType ||
            9 === this.nodeType) &&
            this.appendChild(e);
        });
      },
      prepend: function () {
        return this.domManip(arguments, !0, function (e) {
          (1 === this.nodeType ||
            11 === this.nodeType ||
            9 === this.nodeType) &&
            this.insertBefore(e, this.firstChild);
        });
      },
      before: function () {
        return this.domManip(arguments, !1, function (e) {
          this.parentNode && this.parentNode.insertBefore(e, this);
        });
      },
      after: function () {
        return this.domManip(arguments, !1, function (e) {
          this.parentNode && this.parentNode.insertBefore(e, this.nextSibling);
        });
      },
      remove: function (e, t) {
        for (var n, r = 0; null != (n = this[r]); r++)
          (!e || ut.filter(e, [n]).length > 0) &&
            (t || 1 !== n.nodeType || ut.cleanData(b(n)),
            n.parentNode &&
              (t && ut.contains(n.ownerDocument, n) && m(b(n, "script")),
              n.parentNode.removeChild(n)));
        return this;
      },
      empty: function () {
        for (var e, t = 0; null != (e = this[t]); t++) {
          for (1 === e.nodeType && ut.cleanData(b(e, !1)); e.firstChild; )
            e.removeChild(e.firstChild);
          e.options && ut.nodeName(e, "select") && (e.options.length = 0);
        }
        return this;
      },
      clone: function (e, t) {
        return (
          (e = null == e ? !1 : e),
          (t = null == t ? e : t),
          this.map(function () {
            return ut.clone(this, e, t);
          })
        );
      },
      html: function (e) {
        return ut.access(
          this,
          function (e) {
            var n = this[0] || {},
              r = 0,
              i = this.length;
            if (e === t)
              return 1 === n.nodeType ? n.innerHTML.replace(Xt, "") : t;
            if (
              !(
                "string" != typeof e ||
                Yt.test(e) ||
                (!ut.support.htmlSerialize && Vt.test(e)) ||
                (!ut.support.leadingWhitespace && $t.test(e)) ||
                sn[(Kt.exec(e) || ["", ""])[1].toLowerCase()]
              )
            ) {
              e = e.replace(Jt, "<$1></$2>");
              try {
                for (; i > r; r++)
                  (n = this[r] || {}),
                    1 === n.nodeType &&
                      (ut.cleanData(b(n, !1)), (n.innerHTML = e));
                n = 0;
              } catch (s) {}
            }
            n && this.empty().append(e);
          },
          null,
          e,
          arguments.length
        );
      },
      replaceWith: function (e) {
        var t = ut.isFunction(e);
        return (
          t || "string" == typeof e || (e = ut(e).not(this).detach()),
          this.domManip([e], !0, function (e) {
            var t = this.nextSibling,
              n = this.parentNode;
            ((n && 1 === this.nodeType) || 11 === this.nodeType) &&
              (ut(this).remove(),
              t ? t.parentNode.insertBefore(e, t) : n.appendChild(e));
          })
        );
      },
      detach: function (e) {
        return this.remove(e, !0);
      },
      domManip: function (e, n, r) {
        e = et.apply([], e);
        var i,
          s,
          o,
          u,
          a,
          f,
          l = 0,
          c = this.length,
          h = this,
          m = c - 1,
          g = e[0],
          y = ut.isFunction(g);
        if (
          y ||
          (!(1 >= c || "string" != typeof g || ut.support.checkClone) &&
            en.test(g))
        )
          return this.each(function (i) {
            var s = h.eq(i);
            y && (e[0] = g.call(this, i, n ? s.html() : t)),
              s.domManip(e, n, r);
          });
        if (
          c &&
          ((i = ut.buildFragment(e, this[0].ownerDocument, !1, this)),
          (s = i.firstChild),
          1 === i.childNodes.length && (i = s),
          s)
        ) {
          for (
            n = n && ut.nodeName(s, "tr"),
              o = ut.map(b(i, "script"), d),
              u = o.length;
            c > l;
            l++
          )
            (a = i),
              l !== m &&
                ((a = ut.clone(a, !0, !0)), u && ut.merge(o, b(a, "script"))),
              r.call(
                n && ut.nodeName(this[l], "table")
                  ? p(this[l], "tbody")
                  : this[l],
                a,
                l
              );
          if (u)
            for (
              f = o[o.length - 1].ownerDocument, ut.map(o, v), l = 0;
              u > l;
              l++
            )
              (a = o[l]),
                tn.test(a.type || "") &&
                  !ut._data(a, "globalEval") &&
                  ut.contains(f, a) &&
                  (a.src
                    ? ut.ajax({
                        url: a.src,
                        type: "GET",
                        dataType: "script",
                        async: !1,
                        global: !1,
                        throws: !0,
                      })
                    : ut.globalEval(
                        (a.text || a.textContent || a.innerHTML || "").replace(
                          rn,
                          ""
                        )
                      ));
          i = s = null;
        }
        return this;
      },
    }),
    ut.each(
      {
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith",
      },
      function (e, t) {
        ut.fn[e] = function (e) {
          for (var n, r = 0, i = [], s = ut(e), o = s.length - 1; o >= r; r++)
            (n = r === o ? this : this.clone(!0)),
              ut(s[r])[t](n),
              tt.apply(i, n.get());
          return this.pushStack(i);
        };
      }
    ),
    ut.extend({
      clone: function (e, t, n) {
        var r,
          i,
          s,
          o,
          u,
          a = ut.contains(e.ownerDocument, e);
        if (
          (ut.support.html5Clone ||
          ut.isXMLDoc(e) ||
          !Vt.test("<" + e.nodeName + ">")
            ? (u = e.cloneNode(!0))
            : ((un.innerHTML = e.outerHTML),
              un.removeChild((u = un.firstChild))),
          !(
            (ut.support.noCloneEvent && ut.support.noCloneChecked) ||
            (1 !== e.nodeType && 11 !== e.nodeType) ||
            ut.isXMLDoc(e)
          ))
        )
          for (r = b(u), i = b(e), o = 0; null != (s = i[o]); ++o)
            r[o] && y(s, r[o]);
        if (t)
          if (n)
            for (i = i || b(e), r = r || b(u), o = 0; null != (s = i[o]); o++)
              g(s, r[o]);
          else g(e, u);
        return (
          (r = b(u, "script")),
          r.length > 0 && m(r, !a && b(e, "script")),
          (r = i = s = null),
          u
        );
      },
      buildFragment: function (e, t, n, r) {
        for (
          var i, s, o, u, a, f, l, c = e.length, p = h(t), d = [], v = 0;
          c > v;
          v++
        )
          if (((s = e[v]), s || 0 === s))
            if ("object" === ut.type(s)) ut.merge(d, s.nodeType ? [s] : s);
            else if (Gt.test(s)) {
              for (
                u = u || p.appendChild(t.createElement("div")),
                  o = (Kt.exec(s) || ["", ""])[1].toLowerCase(),
                  a = sn[o] || sn._default,
                  u.innerHTML = a[1] + s.replace(Jt, "<$1></$2>") + a[2],
                  l = a[0];
                l--;

              )
                u = u.lastChild;
              if (
                (!ut.support.leadingWhitespace &&
                  $t.test(s) &&
                  d.push(t.createTextNode($t.exec(s)[0])),
                !ut.support.tbody)
              )
                for (
                  s =
                    "table" !== o || Qt.test(s)
                      ? "<table>" !== a[1] || Qt.test(s)
                        ? 0
                        : u
                      : u.firstChild,
                    l = s && s.childNodes.length;
                  l--;

                )
                  ut.nodeName((f = s.childNodes[l]), "tbody") &&
                    !f.childNodes.length &&
                    s.removeChild(f);
              for (
                ut.merge(d, u.childNodes), u.textContent = "";
                u.firstChild;

              )
                u.removeChild(u.firstChild);
              u = p.lastChild;
            } else d.push(t.createTextNode(s));
        for (
          u && p.removeChild(u),
            ut.support.appendChecked || ut.grep(b(d, "input"), w),
            v = 0;
          (s = d[v++]);

        )
          if (
            (!r || -1 === ut.inArray(s, r)) &&
            ((i = ut.contains(s.ownerDocument, s)),
            (u = b(p.appendChild(s), "script")),
            i && m(u),
            n)
          )
            for (l = 0; (s = u[l++]); ) tn.test(s.type || "") && n.push(s);
        return (u = null), p;
      },
      cleanData: function (e, n) {
        for (
          var r,
            i,
            s,
            o,
            u = 0,
            a = ut.expando,
            f = ut.cache,
            l = ut.support.deleteExpando,
            c = ut.event.special;
          null != (s = e[u]);
          u++
        )
          if ((n || ut.acceptData(s)) && ((i = s[a]), (r = i && f[i]))) {
            if (r.events)
              for (o in r.events)
                c[o] ? ut.event.remove(s, o) : ut.removeEvent(s, o, r.handle);
            f[i] &&
              (delete f[i],
              l
                ? delete s[a]
                : s.removeAttribute !== t
                ? s.removeAttribute(a)
                : (s[a] = null),
              Y.push(i));
          }
      },
    });
  var an,
    fn,
    ln,
    cn = /alpha\([^)]*\)/i,
    hn = /opacity\s*=\s*([^)]*)/,
    pn = /^(top|right|bottom|left)$/,
    dn = /^(none|table(?!-c[ea]).+)/,
    vn = /^margin/,
    mn = RegExp("^(" + at + ")(.*)$", "i"),
    gn = RegExp("^(" + at + ")(?!px)[a-z%]+$", "i"),
    yn = RegExp("^([+-])=(" + at + ")", "i"),
    bn = {
      BODY: "block",
    },
    wn = {
      position: "absolute",
      visibility: "hidden",
      display: "block",
    },
    En = {
      letterSpacing: 0,
      fontWeight: 400,
    },
    Sn = ["Top", "Right", "Bottom", "Left"],
    xn = ["Webkit", "O", "Moz", "ms"];
  ut.fn.extend({
    css: function (e, n) {
      return ut.access(
        this,
        function (e, n, r) {
          var i,
            s,
            o = {},
            u = 0;
          if (ut.isArray(n)) {
            for (i = fn(e), s = n.length; s > u; u++)
              o[n[u]] = ut.css(e, n[u], !1, i);
            return o;
          }
          return r !== t ? ut.style(e, n, r) : ut.css(e, n);
        },
        e,
        n,
        arguments.length > 1
      );
    },
    show: function () {
      return x(this, !0);
    },
    hide: function () {
      return x(this);
    },
    toggle: function (e) {
      var t = "boolean" == typeof e;
      return this.each(function () {
        (t ? e : S(this)) ? ut(this).show() : ut(this).hide();
      });
    },
  }),
    ut.extend({
      cssHooks: {
        opacity: {
          get: function (e, t) {
            if (t) {
              var n = an(e, "opacity");
              return "" === n ? "1" : n;
            }
          },
        },
      },
      cssNumber: {
        columnCount: !0,
        fillOpacity: !0,
        fontWeight: !0,
        lineHeight: !0,
        opacity: !0,
        orphans: !0,
        widows: !0,
        zIndex: !0,
        zoom: !0,
      },
      cssProps: {
        float: ut.support.cssFloat ? "cssFloat" : "styleFloat",
      },
      style: function (e, n, r, i) {
        if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
          var s,
            o,
            u,
            a = ut.camelCase(n),
            f = e.style;
          if (
            ((n = ut.cssProps[a] || (ut.cssProps[a] = E(f, a))),
            (u = ut.cssHooks[n] || ut.cssHooks[a]),
            r === t)
          )
            return u && "get" in u && (s = u.get(e, !1, i)) !== t ? s : f[n];
          if (
            ((o = typeof r),
            "string" === o &&
              (s = yn.exec(r)) &&
              ((r = (s[1] + 1) * s[2] + parseFloat(ut.css(e, n))),
              (o = "number")),
            !(
              null == r ||
              ("number" === o && isNaN(r)) ||
              ("number" !== o || ut.cssNumber[a] || (r += "px"),
              ut.support.clearCloneStyle ||
                "" !== r ||
                0 !== n.indexOf("background") ||
                (f[n] = "inherit"),
              u && "set" in u && (r = u.set(e, r, i)) === t)
            ))
          )
            try {
              f[n] = r;
            } catch (l) {}
        }
      },
      css: function (e, n, r, i) {
        var s,
          o,
          u,
          a = ut.camelCase(n);
        return (
          (n = ut.cssProps[a] || (ut.cssProps[a] = E(e.style, a))),
          (u = ut.cssHooks[n] || ut.cssHooks[a]),
          u && "get" in u && (s = u.get(e, !0, r)),
          s === t && (s = an(e, n, i)),
          "normal" === s && n in En && (s = En[n]),
          r
            ? ((o = parseFloat(s)), r === !0 || ut.isNumeric(o) ? o || 0 : s)
            : s
        );
      },
      swap: function (e, t, n, r) {
        var i,
          s,
          o = {};
        for (s in t) (o[s] = e.style[s]), (e.style[s] = t[s]);
        i = n.apply(e, r || []);
        for (s in t) e.style[s] = o[s];
        return i;
      },
    }),
    e.getComputedStyle
      ? ((fn = function (t) {
          return e.getComputedStyle(t, null);
        }),
        (an = function (e, n, r) {
          var i,
            s,
            o,
            u = r || fn(e),
            a = u ? u.getPropertyValue(n) || u[n] : t,
            f = e.style;
          return (
            u &&
              ("" !== a ||
                ut.contains(e.ownerDocument, e) ||
                (a = ut.style(e, n)),
              gn.test(a) &&
                vn.test(n) &&
                ((i = f.width),
                (s = f.minWidth),
                (o = f.maxWidth),
                (f.minWidth = f.maxWidth = f.width = a),
                (a = u.width),
                (f.width = i),
                (f.minWidth = s),
                (f.maxWidth = o))),
            a
          );
        }))
      : $.documentElement.currentStyle &&
        ((fn = function (e) {
          return e.currentStyle;
        }),
        (an = function (e, n, r) {
          var i,
            s,
            o,
            u = r || fn(e),
            a = u ? u[n] : t,
            f = e.style;
          return (
            null == a && f && f[n] && (a = f[n]),
            gn.test(a) &&
              !pn.test(n) &&
              ((i = f.left),
              (s = e.runtimeStyle),
              (o = s && s.left),
              o && (s.left = e.currentStyle.left),
              (f.left = "fontSize" === n ? "1em" : a),
              (a = f.pixelLeft + "px"),
              (f.left = i),
              o && (s.left = o)),
            "" === a ? "auto" : a
          );
        })),
    ut.each(["height", "width"], function (e, n) {
      ut.cssHooks[n] = {
        get: function (e, r, i) {
          return r
            ? 0 === e.offsetWidth && dn.test(ut.css(e, "display"))
              ? ut.swap(e, wn, function () {
                  return C(e, n, i);
                })
              : C(e, n, i)
            : t;
        },
        set: function (e, t, r) {
          var i = r && fn(e);
          return T(
            e,
            t,
            r
              ? N(
                  e,
                  n,
                  r,
                  ut.support.boxSizing &&
                    "border-box" === ut.css(e, "boxSizing", !1, i),
                  i
                )
              : 0
          );
        },
      };
    }),
    ut.support.opacity ||
      (ut.cssHooks.opacity = {
        get: function (e, t) {
          return hn.test(
            (t && e.currentStyle ? e.currentStyle.filter : e.style.filter) || ""
          )
            ? 0.01 * parseFloat(RegExp.$1) + ""
            : t
            ? "1"
            : "";
        },
        set: function (e, t) {
          var n = e.style,
            r = e.currentStyle,
            i = ut.isNumeric(t) ? "alpha(opacity=" + 100 * t + ")" : "",
            s = (r && r.filter) || n.filter || "";
          (n.zoom = 1),
            ((t >= 1 || "" === t) &&
              "" === ut.trim(s.replace(cn, "")) &&
              n.removeAttribute &&
              (n.removeAttribute("filter"), "" === t || (r && !r.filter))) ||
              (n.filter = cn.test(s) ? s.replace(cn, i) : s + " " + i);
        },
      }),
    ut(function () {
      ut.support.reliableMarginRight ||
        (ut.cssHooks.marginRight = {
          get: function (e, n) {
            return n
              ? ut.swap(
                  e,
                  {
                    display: "inline-block",
                  },
                  an,
                  [e, "marginRight"]
                )
              : t;
          },
        }),
        !ut.support.pixelPosition &&
          ut.fn.position &&
          ut.each(["top", "left"], function (e, n) {
            ut.cssHooks[n] = {
              get: function (e, r) {
                return r
                  ? ((r = an(e, n)),
                    gn.test(r) ? ut(e).position()[n] + "px" : r)
                  : t;
              },
            };
          });
    }),
    ut.expr &&
      ut.expr.filters &&
      ((ut.expr.filters.hidden = function (e) {
        return (
          (0 === e.offsetWidth && 0 === e.offsetHeight) ||
          (!ut.support.reliableHiddenOffsets &&
            "none" === ((e.style && e.style.display) || ut.css(e, "display")))
        );
      }),
      (ut.expr.filters.visible = function (e) {
        return !ut.expr.filters.hidden(e);
      })),
    ut.each(
      {
        margin: "",
        padding: "",
        border: "Width",
      },
      function (e, t) {
        (ut.cssHooks[e + t] = {
          expand: function (n) {
            for (
              var r = 0, i = {}, s = "string" == typeof n ? n.split(" ") : [n];
              4 > r;
              r++
            )
              i[e + Sn[r] + t] = s[r] || s[r - 2] || s[0];
            return i;
          },
        }),
          vn.test(e) || (ut.cssHooks[e + t].set = T);
      }
    );
  var Tn = /%20/g,
    Nn = /\[\]$/,
    Cn = /\r?\n/g,
    kn = /^(?:submit|button|image|reset)$/i,
    Ln = /^(?:input|select|textarea|keygen)/i;
  ut.fn.extend({
    serialize: function () {
      return ut.param(this.serializeArray());
    },
    serializeArray: function () {
      return this.map(function () {
        var e = ut.prop(this, "elements");
        return e ? ut.makeArray(e) : this;
      })
        .filter(function () {
          var e = this.type;
          return (
            this.name &&
            !ut(this).is(":disabled") &&
            Ln.test(this.nodeName) &&
            !kn.test(e) &&
            (this.checked || !Zt.test(e))
          );
        })
        .map(function (e, t) {
          var n = ut(this).val();
          return null == n
            ? null
            : ut.isArray(n)
            ? ut.map(n, function (e) {
                return {
                  name: t.name,
                  value: e.replace(Cn, "\r\n"),
                };
              })
            : {
                name: t.name,
                value: n.replace(Cn, "\r\n"),
              };
        })
        .get();
    },
  }),
    (ut.param = function (e, n) {
      var r,
        i = [],
        s = function (e, t) {
          (t = ut.isFunction(t) ? t() : null == t ? "" : t),
            (i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t));
        };
      if (
        (n === t && (n = ut.ajaxSettings && ut.ajaxSettings.traditional),
        ut.isArray(e) || (e.jquery && !ut.isPlainObject(e)))
      )
        ut.each(e, function () {
          s(this.name, this.value);
        });
      else for (r in e) A(r, e[r], n, s);
      return i.join("&").replace(Tn, "+");
    });
  var An,
    On,
    Mn = ut.now(),
    _n = /\?/,
    Dn = /#.*$/,
    Pn = /([?&])_=[^&]*/,
    Hn = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
    Bn = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
    jn = /^(?:GET|HEAD)$/,
    Fn = /^\/\//,
    In = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
    qn = ut.fn.load,
    Rn = {},
    Un = {},
    zn = "*/".concat("*");
  try {
    On = J.href;
  } catch (Wn) {
    (On = $.createElement("a")), (On.href = ""), (On = On.href);
  }
  (An = In.exec(On.toLowerCase()) || []),
    (ut.fn.load = function (e, n, r) {
      if ("string" != typeof e && qn) return qn.apply(this, arguments);
      var i,
        s,
        o,
        u = this,
        a = e.indexOf(" ");
      return (
        a >= 0 && ((i = e.slice(a, e.length)), (e = e.slice(0, a))),
        ut.isFunction(n)
          ? ((r = n), (n = t))
          : n && "object" == typeof n && (s = "POST"),
        u.length > 0 &&
          ut
            .ajax({
              url: e,
              type: s,
              dataType: "html",
              data: n,
            })
            .done(function (e) {
              (o = arguments),
                u.html(i ? ut("<div>").append(ut.parseHTML(e)).find(i) : e);
            })
            .complete(
              r &&
                function (e, t) {
                  u.each(r, o || [e.responseText, t, e]);
                }
            ),
        this
      );
    }),
    ut.each(
      [
        "ajaxStart",
        "ajaxStop",
        "ajaxComplete",
        "ajaxError",
        "ajaxSuccess",
        "ajaxSend",
      ],
      function (e, t) {
        ut.fn[t] = function (e) {
          return this.on(t, e);
        };
      }
    ),
    ut.each(["get", "post"], function (e, n) {
      ut[n] = function (e, r, i, s) {
        return (
          ut.isFunction(r) && ((s = s || i), (i = r), (r = t)),
          ut.ajax({
            url: e,
            type: n,
            dataType: s,
            data: r,
            success: i,
          })
        );
      };
    }),
    ut.extend({
      active: 0,
      lastModified: {},
      etag: {},
      ajaxSettings: {
        url: On,
        type: "GET",
        isLocal: Bn.test(An[1]),
        global: !0,
        processData: !0,
        async: !0,
        contentType: "application/x-www-form-urlencoded; charset=UTF-8",
        accepts: {
          "*": zn,
          text: "text/plain",
          html: "text/html",
          xml: "application/xml, text/xml",
          json: "application/json, text/javascript",
        },
        contents: {
          xml: /xml/,
          html: /html/,
          json: /json/,
        },
        responseFields: {
          xml: "responseXML",
          text: "responseText",
        },
        converters: {
          "* text": e.String,
          "text html": !0,
          "text json": ut.parseJSON,
          "text xml": ut.parseXML,
        },
        flatOptions: {
          url: !0,
          context: !0,
        },
      },
      ajaxSetup: function (e, t) {
        return t ? _(_(e, ut.ajaxSettings), t) : _(ut.ajaxSettings, e);
      },
      ajaxPrefilter: O(Rn),
      ajaxTransport: O(Un),
      ajax: function (e, n) {
        function r(e, n, r, u) {
          var f,
            c,
            y,
            b,
            E,
            x = n;
          2 !== w &&
            ((w = 2),
            a && clearTimeout(a),
            (i = t),
            (o = u || ""),
            (S.readyState = e > 0 ? 4 : 0),
            r && (b = D(h, S, r)),
            (e >= 200 && 300 > e) || 304 === e
              ? (h.ifModified &&
                  ((E = S.getResponseHeader("Last-Modified")),
                  E && (ut.lastModified[s] = E),
                  (E = S.getResponseHeader("etag")),
                  E && (ut.etag[s] = E)),
                304 === e
                  ? ((f = !0), (x = "notmodified"))
                  : ((f = P(h, b)),
                    (x = f.state),
                    (c = f.data),
                    (y = f.error),
                    (f = !y)))
              : ((y = x), (e || !x) && ((x = "error"), 0 > e && (e = 0))),
            (S.status = e),
            (S.statusText = (n || x) + ""),
            f ? v.resolveWith(p, [c, x, S]) : v.rejectWith(p, [S, x, y]),
            S.statusCode(g),
            (g = t),
            l && d.trigger(f ? "ajaxSuccess" : "ajaxError", [S, h, f ? c : y]),
            m.fireWith(p, [S, x]),
            l &&
              (d.trigger("ajaxComplete", [S, h]),
              --ut.active || ut.event.trigger("ajaxStop")));
        }
        "object" == typeof e && ((n = e), (e = t)), (n = n || {});
        var i,
          s,
          o,
          u,
          a,
          f,
          l,
          c,
          h = ut.ajaxSetup({}, n),
          p = h.context || h,
          d = h.context && (p.nodeType || p.jquery) ? ut(p) : ut.event,
          v = ut.Deferred(),
          m = ut.Callbacks("once memory"),
          g = h.statusCode || {},
          y = {},
          b = {},
          w = 0,
          E = "canceled",
          S = {
            readyState: 0,
            getResponseHeader: function (e) {
              var t;
              if (2 === w) {
                if (!u)
                  for (u = {}; (t = Hn.exec(o)); ) u[t[1].toLowerCase()] = t[2];
                t = u[e.toLowerCase()];
              }
              return null == t ? null : t;
            },
            getAllResponseHeaders: function () {
              return 2 === w ? o : null;
            },
            setRequestHeader: function (e, t) {
              var n = e.toLowerCase();
              return w || ((e = b[n] = b[n] || e), (y[e] = t)), this;
            },
            overrideMimeType: function (e) {
              return w || (h.mimeType = e), this;
            },
            statusCode: function (e) {
              var t;
              if (e)
                if (2 > w) for (t in e) g[t] = [g[t], e[t]];
                else S.always(e[S.status]);
              return this;
            },
            abort: function (e) {
              var t = e || E;
              return i && i.abort(t), r(0, t), this;
            },
          };
        if (
          ((v.promise(S).complete = m.add),
          (S.success = S.done),
          (S.error = S.fail),
          (h.url = ((e || h.url || On) + "")
            .replace(Dn, "")
            .replace(Fn, An[1] + "//")),
          (h.type = n.method || n.type || h.method || h.type),
          (h.dataTypes = ut
            .trim(h.dataType || "*")
            .toLowerCase()
            .match(ft) || [""]),
          null == h.crossDomain &&
            ((f = In.exec(h.url.toLowerCase())),
            (h.crossDomain = !(
              !f ||
              (f[1] === An[1] &&
                f[2] === An[2] &&
                (f[3] || ("http:" === f[1] ? 80 : 443)) ==
                  (An[3] || ("http:" === An[1] ? 80 : 443)))
            ))),
          h.data &&
            h.processData &&
            "string" != typeof h.data &&
            (h.data = ut.param(h.data, h.traditional)),
          M(Rn, h, n, S),
          2 === w)
        )
          return S;
        (l = h.global),
          l && 0 === ut.active++ && ut.event.trigger("ajaxStart"),
          (h.type = h.type.toUpperCase()),
          (h.hasContent = !jn.test(h.type)),
          (s = h.url),
          h.hasContent ||
            (h.data &&
              ((s = h.url += (_n.test(s) ? "&" : "?") + h.data), delete h.data),
            h.cache === !1 &&
              (h.url = Pn.test(s)
                ? s.replace(Pn, "$1_=" + Mn++)
                : s + (_n.test(s) ? "&" : "?") + "_=" + Mn++)),
          h.ifModified &&
            (ut.lastModified[s] &&
              S.setRequestHeader("If-Modified-Since", ut.lastModified[s]),
            ut.etag[s] && S.setRequestHeader("If-None-Match", ut.etag[s])),
          ((h.data && h.hasContent && h.contentType !== !1) || n.contentType) &&
            S.setRequestHeader("Content-Type", h.contentType),
          S.setRequestHeader(
            "Accept",
            h.dataTypes[0] && h.accepts[h.dataTypes[0]]
              ? h.accepts[h.dataTypes[0]] +
                  ("*" !== h.dataTypes[0] ? ", " + zn + "; q=0.01" : "")
              : h.accepts["*"]
          );
        for (c in h.headers) S.setRequestHeader(c, h.headers[c]);
        if (!h.beforeSend || (h.beforeSend.call(p, S, h) !== !1 && 2 !== w)) {
          E = "abort";
          for (c in {
            success: 1,
            error: 1,
            complete: 1,
          })
            S[c](h[c]);
          if ((i = M(Un, h, n, S))) {
            (S.readyState = 1),
              l && d.trigger("ajaxSend", [S, h]),
              h.async &&
                h.timeout > 0 &&
                (a = setTimeout(function () {
                  S.abort("timeout");
                }, h.timeout));
            try {
              (w = 1), i.send(y, r);
            } catch (x) {
              if (!(2 > w)) throw x;
              r(-1, x);
            }
          } else r(-1, "No Transport");
          return S;
        }
        return S.abort();
      },
      getScript: function (e, n) {
        return ut.get(e, t, n, "script");
      },
      getJSON: function (e, t, n) {
        return ut.get(e, t, n, "json");
      },
    }),
    ut.ajaxSetup({
      accepts: {
        script:
          "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript",
      },
      contents: {
        script: /(?:java|ecma)script/,
      },
      converters: {
        "text script": function (e) {
          return ut.globalEval(e), e;
        },
      },
    }),
    ut.ajaxPrefilter("script", function (e) {
      e.cache === t && (e.cache = !1),
        e.crossDomain && ((e.type = "GET"), (e.global = !1));
    }),
    ut.ajaxTransport("script", function (e) {
      if (e.crossDomain) {
        var n,
          r = $.head || ut("head")[0] || $.documentElement;
        return {
          send: function (t, i) {
            (n = $.createElement("script")),
              (n.async = !0),
              e.scriptCharset && (n.charset = e.scriptCharset),
              (n.src = e.url),
              (n.onload = n.onreadystatechange =
                function (e, t) {
                  (t ||
                    !n.readyState ||
                    /loaded|complete/.test(n.readyState)) &&
                    ((n.onload = n.onreadystatechange = null),
                    n.parentNode && n.parentNode.removeChild(n),
                    (n = null),
                    t || i(200, "success"));
                }),
              r.insertBefore(n, r.firstChild);
          },
          abort: function () {
            n && n.onload(t, !0);
          },
        };
      }
    });
  var Xn = [],
    Vn = /(=)\?(?=&|$)|\?\?/;
  ut.ajaxSetup({
    jsonp: "callback",
    jsonpCallback: function () {
      var e = Xn.pop() || ut.expando + "_" + Mn++;
      return (this[e] = !0), e;
    },
  }),
    ut.ajaxPrefilter("json jsonp", function (n, r, i) {
      var s,
        o,
        u,
        a =
          n.jsonp !== !1 &&
          (Vn.test(n.url)
            ? "url"
            : "string" == typeof n.data &&
              !(n.contentType || "").indexOf(
                "application/x-www-form-urlencoded"
              ) &&
              Vn.test(n.data) &&
              "data");
      return a || "jsonp" === n.dataTypes[0]
        ? ((s = n.jsonpCallback =
            ut.isFunction(n.jsonpCallback)
              ? n.jsonpCallback()
              : n.jsonpCallback),
          a
            ? (n[a] = n[a].replace(Vn, "$1" + s))
            : n.jsonp !== !1 &&
              (n.url += (_n.test(n.url) ? "&" : "?") + n.jsonp + "=" + s),
          (n.converters["script json"] = function () {
            return u || ut.error(s + " was not called"), u[0];
          }),
          (n.dataTypes[0] = "json"),
          (o = e[s]),
          (e[s] = function () {
            u = arguments;
          }),
          i.always(function () {
            (e[s] = o),
              n[s] && ((n.jsonpCallback = r.jsonpCallback), Xn.push(s)),
              u && ut.isFunction(o) && o(u[0]),
              (u = o = t);
          }),
          "script")
        : t;
    });
  var $n,
    Jn,
    Kn = 0,
    Qn =
      e.ActiveXObject &&
      function () {
        var e;
        for (e in $n) $n[e](t, !0);
      };
  (ut.ajaxSettings.xhr = e.ActiveXObject
    ? function () {
        return (!this.isLocal && H()) || B();
      }
    : H),
    (Jn = ut.ajaxSettings.xhr()),
    (ut.support.cors = !!Jn && "withCredentials" in Jn),
    (Jn = ut.support.ajax = !!Jn),
    Jn &&
      ut.ajaxTransport(function (n) {
        if (!n.crossDomain || ut.support.cors) {
          var r;
          return {
            send: function (i, s) {
              var o,
                u,
                a = n.xhr();
              if (
                (n.username
                  ? a.open(n.type, n.url, n.async, n.username, n.password)
                  : a.open(n.type, n.url, n.async),
                n.xhrFields)
              )
                for (u in n.xhrFields) a[u] = n.xhrFields[u];
              n.mimeType &&
                a.overrideMimeType &&
                a.overrideMimeType(n.mimeType),
                n.crossDomain ||
                  i["X-Requested-With"] ||
                  (i["X-Requested-With"] = "XMLHttpRequest");
              try {
                for (u in i) a.setRequestHeader(u, i[u]);
              } catch (f) {}
              a.send((n.hasContent && n.data) || null),
                (r = function (e, i) {
                  var u, f, l, c, h;
                  try {
                    if (r && (i || 4 === a.readyState))
                      if (
                        ((r = t),
                        o &&
                          ((a.onreadystatechange = ut.noop),
                          Qn && delete $n[o]),
                        i)
                      )
                        4 !== a.readyState && a.abort();
                      else {
                        (c = {}),
                          (u = a.status),
                          (h = a.responseXML),
                          (l = a.getAllResponseHeaders()),
                          h && h.documentElement && (c.xml = h),
                          "string" == typeof a.responseText &&
                            (c.text = a.responseText);
                        try {
                          f = a.statusText;
                        } catch (p) {
                          f = "";
                        }
                        u || !n.isLocal || n.crossDomain
                          ? 1223 === u && (u = 204)
                          : (u = c.text ? 200 : 404);
                      }
                  } catch (d) {
                    i || s(-1, d);
                  }
                  c && s(u, f, c, l);
                }),
                n.async
                  ? 4 === a.readyState
                    ? setTimeout(r)
                    : ((o = ++Kn),
                      Qn && ($n || (($n = {}), ut(e).unload(Qn)), ($n[o] = r)),
                      (a.onreadystatechange = r))
                  : r();
            },
            abort: function () {
              r && r(t, !0);
            },
          };
        }
      });
  var Gn,
    Yn,
    Zn = /^(?:toggle|show|hide)$/,
    er = RegExp("^(?:([+-])=|)(" + at + ")([a-z%]*)$", "i"),
    tr = /queueHooks$/,
    nr = [R],
    rr = {
      "*": [
        function (e, t) {
          var n,
            r,
            i = this.createTween(e, t),
            s = er.exec(t),
            o = i.cur(),
            u = +o || 0,
            a = 1,
            f = 20;
          if (s) {
            if (
              ((n = +s[2]),
              (r = s[3] || (ut.cssNumber[e] ? "" : "px")),
              "px" !== r && u)
            ) {
              u = ut.css(i.elem, e, !0) || n || 1;
              do (a = a || ".5"), (u /= a), ut.style(i.elem, e, u + r);
              while (a !== (a = i.cur() / o) && 1 !== a && --f);
            }
            (i.unit = r),
              (i.start = u),
              (i.end = s[1] ? u + (s[1] + 1) * n : n);
          }
          return i;
        },
      ],
    };
  (ut.Animation = ut.extend(I, {
    tweener: function (e, t) {
      ut.isFunction(e) ? ((t = e), (e = ["*"])) : (e = e.split(" "));
      for (var n, r = 0, i = e.length; i > r; r++)
        (n = e[r]), (rr[n] = rr[n] || []), rr[n].unshift(t);
    },
    prefilter: function (e, t) {
      t ? nr.unshift(e) : nr.push(e);
    },
  })),
    (ut.Tween = U),
    (U.prototype = {
      constructor: U,
      init: function (e, t, n, r, i, s) {
        (this.elem = e),
          (this.prop = n),
          (this.easing = i || "swing"),
          (this.options = t),
          (this.start = this.now = this.cur()),
          (this.end = r),
          (this.unit = s || (ut.cssNumber[n] ? "" : "px"));
      },
      cur: function () {
        var e = U.propHooks[this.prop];
        return e && e.get ? e.get(this) : U.propHooks._default.get(this);
      },
      run: function (e) {
        var t,
          n = U.propHooks[this.prop];
        return (
          (this.pos = t =
            this.options.duration
              ? ut.easing[this.easing](
                  e,
                  this.options.duration * e,
                  0,
                  1,
                  this.options.duration
                )
              : e),
          (this.now = (this.end - this.start) * t + this.start),
          this.options.step &&
            this.options.step.call(this.elem, this.now, this),
          n && n.set ? n.set(this) : U.propHooks._default.set(this),
          this
        );
      },
    }),
    (U.prototype.init.prototype = U.prototype),
    (U.propHooks = {
      _default: {
        get: function (e) {
          var t;
          return null == e.elem[e.prop] ||
            (e.elem.style && null != e.elem.style[e.prop])
            ? ((t = ut.css(e.elem, e.prop, "auto")), t && "auto" !== t ? t : 0)
            : e.elem[e.prop];
        },
        set: function (e) {
          ut.fx.step[e.prop]
            ? ut.fx.step[e.prop](e)
            : e.elem.style &&
              (null != e.elem.style[ut.cssProps[e.prop]] || ut.cssHooks[e.prop])
            ? ut.style(e.elem, e.prop, e.now + e.unit)
            : (e.elem[e.prop] = e.now);
        },
      },
    }),
    (U.propHooks.scrollTop = U.propHooks.scrollLeft =
      {
        set: function (e) {
          e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now);
        },
      }),
    ut.each(["toggle", "show", "hide"], function (e, t) {
      var n = ut.fn[t];
      ut.fn[t] = function (e, r, i) {
        return null == e || "boolean" == typeof e
          ? n.apply(this, arguments)
          : this.animate(z(t, !0), e, r, i);
      };
    }),
    ut.fn.extend({
      fadeTo: function (e, t, n, r) {
        return this.filter(S).css("opacity", 0).show().end().animate(
          {
            opacity: t,
          },
          e,
          n,
          r
        );
      },
      animate: function (e, t, n, r) {
        var i = ut.isEmptyObject(e),
          s = ut.speed(t, n, r),
          o = function () {
            var t = I(this, ut.extend({}, e), s);
            (o.finish = function () {
              t.stop(!0);
            }),
              (i || ut._data(this, "finish")) && t.stop(!0);
          };
        return (
          (o.finish = o),
          i || s.queue === !1 ? this.each(o) : this.queue(s.queue, o)
        );
      },
      stop: function (e, n, r) {
        var i = function (e) {
          var t = e.stop;
          delete e.stop, t(r);
        };
        return (
          "string" != typeof e && ((r = n), (n = e), (e = t)),
          n && e !== !1 && this.queue(e || "fx", []),
          this.each(function () {
            var t = !0,
              n = null != e && e + "queueHooks",
              s = ut.timers,
              o = ut._data(this);
            if (n) o[n] && o[n].stop && i(o[n]);
            else for (n in o) o[n] && o[n].stop && tr.test(n) && i(o[n]);
            for (n = s.length; n--; )
              s[n].elem !== this ||
                (null != e && s[n].queue !== e) ||
                (s[n].anim.stop(r), (t = !1), s.splice(n, 1));
            (t || !r) && ut.dequeue(this, e);
          })
        );
      },
      finish: function (e) {
        return (
          e !== !1 && (e = e || "fx"),
          this.each(function () {
            var t,
              n = ut._data(this),
              r = n[e + "queue"],
              i = n[e + "queueHooks"],
              s = ut.timers,
              o = r ? r.length : 0;
            for (
              n.finish = !0,
                ut.queue(this, e, []),
                i && i.cur && i.cur.finish && i.cur.finish.call(this),
                t = s.length;
              t--;

            )
              s[t].elem === this &&
                s[t].queue === e &&
                (s[t].anim.stop(!0), s.splice(t, 1));
            for (t = 0; o > t; t++)
              r[t] && r[t].finish && r[t].finish.call(this);
            delete n.finish;
          })
        );
      },
    }),
    ut.each(
      {
        slideDown: z("show"),
        slideUp: z("hide"),
        slideToggle: z("toggle"),
        fadeIn: {
          opacity: "show",
        },
        fadeOut: {
          opacity: "hide",
        },
        fadeToggle: {
          opacity: "toggle",
        },
      },
      function (e, t) {
        ut.fn[e] = function (e, n, r) {
          return this.animate(t, e, n, r);
        };
      }
    ),
    (ut.speed = function (e, t, n) {
      var r =
        e && "object" == typeof e
          ? ut.extend({}, e)
          : {
              complete: n || (!n && t) || (ut.isFunction(e) && e),
              duration: e,
              easing: (n && t) || (t && !ut.isFunction(t) && t),
            };
      return (
        (r.duration = ut.fx.off
          ? 0
          : "number" == typeof r.duration
          ? r.duration
          : r.duration in ut.fx.speeds
          ? ut.fx.speeds[r.duration]
          : ut.fx.speeds._default),
        (null == r.queue || r.queue === !0) && (r.queue = "fx"),
        (r.old = r.complete),
        (r.complete = function () {
          ut.isFunction(r.old) && r.old.call(this),
            r.queue && ut.dequeue(this, r.queue);
        }),
        r
      );
    }),
    (ut.easing = {
      linear: function (e) {
        return e;
      },
      swing: function (e) {
        return 0.5 - Math.cos(e * Math.PI) / 2;
      },
    }),
    (ut.timers = []),
    (ut.fx = U.prototype.init),
    (ut.fx.tick = function () {
      var e,
        n = ut.timers,
        r = 0;
      for (Gn = ut.now(); n.length > r; r++)
        (e = n[r]), e() || n[r] !== e || n.splice(r--, 1);
      n.length || ut.fx.stop(), (Gn = t);
    }),
    (ut.fx.timer = function (e) {
      e() && ut.timers.push(e) && ut.fx.start();
    }),
    (ut.fx.interval = 13),
    (ut.fx.start = function () {
      Yn || (Yn = setInterval(ut.fx.tick, ut.fx.interval));
    }),
    (ut.fx.stop = function () {
      clearInterval(Yn), (Yn = null);
    }),
    (ut.fx.speeds = {
      slow: 600,
      fast: 200,
      _default: 400,
    }),
    (ut.fx.step = {}),
    ut.expr &&
      ut.expr.filters &&
      (ut.expr.filters.animated = function (e) {
        return ut.grep(ut.timers, function (t) {
          return e === t.elem;
        }).length;
      }),
    (ut.fn.offset = function (e) {
      if (arguments.length)
        return e === t
          ? this
          : this.each(function (t) {
              ut.offset.setOffset(this, e, t);
            });
      var n,
        r,
        i = {
          top: 0,
          left: 0,
        },
        s = this[0],
        o = s && s.ownerDocument;
      if (o)
        return (
          (n = o.documentElement),
          ut.contains(n, s)
            ? (s.getBoundingClientRect !== t && (i = s.getBoundingClientRect()),
              (r = W(o)),
              {
                top:
                  i.top + (r.pageYOffset || n.scrollTop) - (n.clientTop || 0),
                left:
                  i.left +
                  (r.pageXOffset || n.scrollLeft) -
                  (n.clientLeft || 0),
              })
            : i
        );
    }),
    (ut.offset = {
      setOffset: function (e, t, n) {
        var r = ut.css(e, "position");
        "static" === r && (e.style.position = "relative");
        var i,
          s,
          o = ut(e),
          u = o.offset(),
          a = ut.css(e, "top"),
          f = ut.css(e, "left"),
          l =
            ("absolute" === r || "fixed" === r) &&
            ut.inArray("auto", [a, f]) > -1,
          c = {},
          h = {};
        l
          ? ((h = o.position()), (i = h.top), (s = h.left))
          : ((i = parseFloat(a) || 0), (s = parseFloat(f) || 0)),
          ut.isFunction(t) && (t = t.call(e, n, u)),
          null != t.top && (c.top = t.top - u.top + i),
          null != t.left && (c.left = t.left - u.left + s),
          "using" in t ? t.using.call(e, c) : o.css(c);
      },
    }),
    ut.fn.extend({
      position: function () {
        if (this[0]) {
          var e,
            t,
            n = {
              top: 0,
              left: 0,
            },
            r = this[0];
          return (
            "fixed" === ut.css(r, "position")
              ? (t = r.getBoundingClientRect())
              : ((e = this.offsetParent()),
                (t = this.offset()),
                ut.nodeName(e[0], "html") || (n = e.offset()),
                (n.top += ut.css(e[0], "borderTopWidth", !0)),
                (n.left += ut.css(e[0], "borderLeftWidth", !0))),
            {
              top: t.top - n.top - ut.css(r, "marginTop", !0),
              left: t.left - n.left - ut.css(r, "marginLeft", !0),
            }
          );
        }
      },
      offsetParent: function () {
        return this.map(function () {
          for (
            var e = this.offsetParent || $.documentElement;
            e && !ut.nodeName(e, "html") && "static" === ut.css(e, "position");

          )
            e = e.offsetParent;
          return e || $.documentElement;
        });
      },
    }),
    ut.each(
      {
        scrollLeft: "pageXOffset",
        scrollTop: "pageYOffset",
      },
      function (e, n) {
        var r = /Y/.test(n);
        ut.fn[e] = function (i) {
          return ut.access(
            this,
            function (e, i, s) {
              var o = W(e);
              return s === t
                ? o
                  ? n in o
                    ? o[n]
                    : o.document.documentElement[i]
                  : e[i]
                : (o
                    ? o.scrollTo(
                        r ? ut(o).scrollLeft() : s,
                        r ? s : ut(o).scrollTop()
                      )
                    : (e[i] = s),
                  t);
            },
            e,
            i,
            arguments.length,
            null
          );
        };
      }
    ),
    ut.each(
      {
        Height: "height",
        Width: "width",
      },
      function (e, n) {
        ut.each(
          {
            padding: "inner" + e,
            content: n,
            "": "outer" + e,
          },
          function (r, i) {
            ut.fn[i] = function (i, s) {
              var o = arguments.length && (r || "boolean" != typeof i),
                u = r || (i === !0 || s === !0 ? "margin" : "border");
              return ut.access(
                this,
                function (n, r, i) {
                  var s;
                  return ut.isWindow(n)
                    ? n.document.documentElement["client" + e]
                    : 9 === n.nodeType
                    ? ((s = n.documentElement),
                      Math.max(
                        n.body["scroll" + e],
                        s["scroll" + e],
                        n.body["offset" + e],
                        s["offset" + e],
                        s["client" + e]
                      ))
                    : i === t
                    ? ut.css(n, r, u)
                    : ut.style(n, r, i, u);
                },
                n,
                o ? i : t,
                o,
                null
              );
            };
          }
        );
      }
    ),
    (e.jQuery = e.$ = ut),
    "function" == typeof define &&
      define.amd &&
      define.amd.jQuery &&
      define("jquery", [], function () {
        return ut;
      });
})(window),
  function () {
    var e = this,
      t = e._,
      n = {},
      r = Array.prototype,
      i = Object.prototype,
      s = Function.prototype,
      o = r.push,
      u = r.slice,
      a = r.concat,
      f = i.toString,
      l = i.hasOwnProperty,
      c = r.forEach,
      h = r.map,
      p = r.reduce,
      d = r.reduceRight,
      v = r.filter,
      m = r.every,
      g = r.some,
      y = r.indexOf,
      b = r.lastIndexOf,
      w = Array.isArray,
      E = Object.keys,
      S = s.bind,
      x = function (e) {
        if (e instanceof x) return e;
        if (!(this instanceof x)) return new x(e);
        this._wrapped = e;
      };
    typeof exports != "undefined"
      ? (typeof module != "undefined" &&
          module.exports &&
          (exports = module.exports = x),
        (exports._ = x))
      : (e._ = x),
      (x.VERSION = "1.4.4");
    var T =
      (x.each =
      x.forEach =
        function (e, t, r) {
          if (e == null) return;
          if (c && e.forEach === c) e.forEach(t, r);
          else if (e.length === +e.length) {
            for (var i = 0, s = e.length; i < s; i++)
              if (t.call(r, e[i], i, e) === n) return;
          } else
            for (var o in e)
              if (x.has(e, o) && t.call(r, e[o], o, e) === n) return;
        });
    x.map = x.collect = function (e, t, n) {
      var r = [];
      return e == null
        ? r
        : h && e.map === h
        ? e.map(t, n)
        : (T(e, function (e, i, s) {
            r[r.length] = t.call(n, e, i, s);
          }),
          r);
    };
    var N = "Reduce of empty array with no initial value";
    (x.reduce =
      x.foldl =
      x.inject =
        function (e, t, n, r) {
          var i = arguments.length > 2;
          e == null && (e = []);
          if (p && e.reduce === p)
            return r && (t = x.bind(t, r)), i ? e.reduce(t, n) : e.reduce(t);
          T(e, function (e, s, o) {
            i ? (n = t.call(r, n, e, s, o)) : ((n = e), (i = !0));
          });
          if (!i) throw new TypeError(N);
          return n;
        }),
      (x.reduceRight = x.foldr =
        function (e, t, n, r) {
          var i = arguments.length > 2;
          e == null && (e = []);
          if (d && e.reduceRight === d)
            return (
              r && (t = x.bind(t, r)),
              i ? e.reduceRight(t, n) : e.reduceRight(t)
            );
          var s = e.length;
          if (s !== +s) {
            var o = x.keys(e);
            s = o.length;
          }
          T(e, function (u, a, f) {
            (a = o ? o[--s] : --s),
              i ? (n = t.call(r, n, e[a], a, f)) : ((n = e[a]), (i = !0));
          });
          if (!i) throw new TypeError(N);
          return n;
        }),
      (x.find = x.detect =
        function (e, t, n) {
          var r;
          return (
            C(e, function (e, i, s) {
              if (t.call(n, e, i, s)) return (r = e), !0;
            }),
            r
          );
        }),
      (x.filter = x.select =
        function (e, t, n) {
          var r = [];
          return e == null
            ? r
            : v && e.filter === v
            ? e.filter(t, n)
            : (T(e, function (e, i, s) {
                t.call(n, e, i, s) && (r[r.length] = e);
              }),
              r);
        }),
      (x.reject = function (e, t, n) {
        return x.filter(
          e,
          function (e, r, i) {
            return !t.call(n, e, r, i);
          },
          n
        );
      }),
      (x.every = x.all =
        function (e, t, r) {
          t || (t = x.identity);
          var i = !0;
          return e == null
            ? i
            : m && e.every === m
            ? e.every(t, r)
            : (T(e, function (e, s, o) {
                if (!(i = i && t.call(r, e, s, o))) return n;
              }),
              !!i);
        });
    var C =
      (x.some =
      x.any =
        function (e, t, r) {
          t || (t = x.identity);
          var i = !1;
          return e == null
            ? i
            : g && e.some === g
            ? e.some(t, r)
            : (T(e, function (e, s, o) {
                if (i || (i = t.call(r, e, s, o))) return n;
              }),
              !!i);
        });
    (x.contains = x.include =
      function (e, t) {
        return e == null
          ? !1
          : y && e.indexOf === y
          ? e.indexOf(t) != -1
          : C(e, function (e) {
              return e === t;
            });
      }),
      (x.invoke = function (e, t) {
        var n = u.call(arguments, 2),
          r = x.isFunction(t);
        return x.map(e, function (e) {
          return (r ? t : e[t]).apply(e, n);
        });
      }),
      (x.pluck = function (e, t) {
        return x.map(e, function (e) {
          return e[t];
        });
      }),
      (x.where = function (e, t, n) {
        return x.isEmpty(t)
          ? n
            ? null
            : []
          : x[n ? "find" : "filter"](e, function (e) {
              for (var n in t) if (t[n] !== e[n]) return !1;
              return !0;
            });
      }),
      (x.findWhere = function (e, t) {
        return x.where(e, t, !0);
      }),
      (x.max = function (e, t, n) {
        if (!t && x.isArray(e) && e[0] === +e[0] && e.length < 65535)
          return Math.max.apply(Math, e);
        if (!t && x.isEmpty(e)) return -Infinity;
        var r = {
          computed: -Infinity,
          value: -Infinity,
        };
        return (
          T(e, function (e, i, s) {
            var o = t ? t.call(n, e, i, s) : e;
            o >= r.computed &&
              (r = {
                value: e,
                computed: o,
              });
          }),
          r.value
        );
      }),
      (x.min = function (e, t, n) {
        if (!t && x.isArray(e) && e[0] === +e[0] && e.length < 65535)
          return Math.min.apply(Math, e);
        if (!t && x.isEmpty(e)) return Infinity;
        var r = {
          computed: Infinity,
          value: Infinity,
        };
        return (
          T(e, function (e, i, s) {
            var o = t ? t.call(n, e, i, s) : e;
            o < r.computed &&
              (r = {
                value: e,
                computed: o,
              });
          }),
          r.value
        );
      }),
      (x.shuffle = function (e) {
        var t,
          n = 0,
          r = [];
        return (
          T(e, function (e) {
            (t = x.random(n++)), (r[n - 1] = r[t]), (r[t] = e);
          }),
          r
        );
      });
    var k = function (e) {
      return x.isFunction(e)
        ? e
        : function (t) {
            return t[e];
          };
    };
    x.sortBy = function (e, t, n) {
      var r = k(t);
      return x.pluck(
        x
          .map(e, function (e, t, i) {
            return {
              value: e,
              index: t,
              criteria: r.call(n, e, t, i),
            };
          })
          .sort(function (e, t) {
            var n = e.criteria,
              r = t.criteria;
            if (n !== r) {
              if (n > r || n === void 0) return 1;
              if (n < r || r === void 0) return -1;
            }
            return e.index < t.index ? -1 : 1;
          }),
        "value"
      );
    };
    var L = function (e, t, n, r) {
      var i = {},
        s = k(t || x.identity);
      return (
        T(e, function (t, o) {
          var u = s.call(n, t, o, e);
          r(i, u, t);
        }),
        i
      );
    };
    (x.groupBy = function (e, t, n) {
      return L(e, t, n, function (e, t, n) {
        (x.has(e, t) ? e[t] : (e[t] = [])).push(n);
      });
    }),
      (x.countBy = function (e, t, n) {
        return L(e, t, n, function (e, t) {
          x.has(e, t) || (e[t] = 0), e[t]++;
        });
      }),
      (x.sortedIndex = function (e, t, n, r) {
        n = n == null ? x.identity : k(n);
        var i = n.call(r, t),
          s = 0,
          o = e.length;
        while (s < o) {
          var u = (s + o) >>> 1;
          n.call(r, e[u]) < i ? (s = u + 1) : (o = u);
        }
        return s;
      }),
      (x.toArray = function (e) {
        return e
          ? x.isArray(e)
            ? u.call(e)
            : e.length === +e.length
            ? x.map(e, x.identity)
            : x.values(e)
          : [];
      }),
      (x.size = function (e) {
        return e == null
          ? 0
          : e.length === +e.length
          ? e.length
          : x.keys(e).length;
      }),
      (x.first =
        x.head =
        x.take =
          function (e, t, n) {
            return e == null
              ? void 0
              : t != null && !n
              ? u.call(e, 0, t)
              : e[0];
          }),
      (x.initial = function (e, t, n) {
        return u.call(e, 0, e.length - (t == null || n ? 1 : t));
      }),
      (x.last = function (e, t, n) {
        return e == null
          ? void 0
          : t != null && !n
          ? u.call(e, Math.max(e.length - t, 0))
          : e[e.length - 1];
      }),
      (x.rest =
        x.tail =
        x.drop =
          function (e, t, n) {
            return u.call(e, t == null || n ? 1 : t);
          }),
      (x.compact = function (e) {
        return x.filter(e, x.identity);
      });
    var A = function (e, t, n) {
      return (
        T(e, function (e) {
          x.isArray(e) ? (t ? o.apply(n, e) : A(e, t, n)) : n.push(e);
        }),
        n
      );
    };
    (x.flatten = function (e, t) {
      return A(e, t, []);
    }),
      (x.without = function (e) {
        return x.difference(e, u.call(arguments, 1));
      }),
      (x.uniq = x.unique =
        function (e, t, n, r) {
          x.isFunction(t) && ((r = n), (n = t), (t = !1));
          var i = n ? x.map(e, n, r) : e,
            s = [],
            o = [];
          return (
            T(i, function (n, r) {
              if (t ? !r || o[o.length - 1] !== n : !x.contains(o, n))
                o.push(n), s.push(e[r]);
            }),
            s
          );
        }),
      (x.union = function () {
        return x.uniq(a.apply(r, arguments));
      }),
      (x.intersection = function (e) {
        var t = u.call(arguments, 1);
        return x.filter(x.uniq(e), function (e) {
          return x.every(t, function (t) {
            return x.indexOf(t, e) >= 0;
          });
        });
      }),
      (x.difference = function (e) {
        var t = a.apply(r, u.call(arguments, 1));
        return x.filter(e, function (e) {
          return !x.contains(t, e);
        });
      }),
      (x.zip = function () {
        var e = u.call(arguments),
          t = x.max(x.pluck(e, "length")),
          n = new Array(t);
        for (var r = 0; r < t; r++) n[r] = x.pluck(e, "" + r);
        return n;
      }),
      (x.object = function (e, t) {
        if (e == null) return {};
        var n = {};
        for (var r = 0, i = e.length; r < i; r++)
          t ? (n[e[r]] = t[r]) : (n[e[r][0]] = e[r][1]);
        return n;
      }),
      (x.indexOf = function (e, t, n) {
        if (e == null) return -1;
        var r = 0,
          i = e.length;
        if (n) {
          if (typeof n != "number")
            return (r = x.sortedIndex(e, t)), e[r] === t ? r : -1;
          r = n < 0 ? Math.max(0, i + n) : n;
        }
        if (y && e.indexOf === y) return e.indexOf(t, n);
        for (; r < i; r++) if (e[r] === t) return r;
        return -1;
      }),
      (x.lastIndexOf = function (e, t, n) {
        if (e == null) return -1;
        var r = n != null;
        if (b && e.lastIndexOf === b)
          return r ? e.lastIndexOf(t, n) : e.lastIndexOf(t);
        var i = r ? n : e.length;
        while (i--) if (e[i] === t) return i;
        return -1;
      }),
      (x.range = function (e, t, n) {
        arguments.length <= 1 && ((t = e || 0), (e = 0)),
          (n = arguments[2] || 1);
        var r = Math.max(Math.ceil((t - e) / n), 0),
          i = 0,
          s = new Array(r);
        while (i < r) (s[i++] = e), (e += n);
        return s;
      }),
      (x.bind = function (e, t) {
        if (e.bind === S && S) return S.apply(e, u.call(arguments, 1));
        var n = u.call(arguments, 2);
        return function () {
          return e.apply(t, n.concat(u.call(arguments)));
        };
      }),
      (x.partial = function (e) {
        var t = u.call(arguments, 1);
        return function () {
          return e.apply(this, t.concat(u.call(arguments)));
        };
      }),
      (x.bindAll = function (e) {
        var t = u.call(arguments, 1);
        return (
          t.length === 0 && (t = x.functions(e)),
          T(t, function (t) {
            e[t] = x.bind(e[t], e);
          }),
          e
        );
      }),
      (x.memoize = function (e, t) {
        var n = {};
        return (
          t || (t = x.identity),
          function () {
            var r = t.apply(this, arguments);
            return x.has(n, r) ? n[r] : (n[r] = e.apply(this, arguments));
          }
        );
      }),
      (x.delay = function (e, t) {
        var n = u.call(arguments, 2);
        return setTimeout(function () {
          return e.apply(null, n);
        }, t);
      }),
      (x.defer = function (e) {
        return x.delay.apply(x, [e, 1].concat(u.call(arguments, 1)));
      }),
      (x.throttle = function (e, t) {
        var n,
          r,
          i,
          s,
          o = 0,
          u = function () {
            (o = new Date()), (i = null), (s = e.apply(n, r));
          };
        return function () {
          var a = new Date(),
            f = t - (a - o);
          return (
            (n = this),
            (r = arguments),
            f <= 0
              ? (clearTimeout(i), (i = null), (o = a), (s = e.apply(n, r)))
              : i || (i = setTimeout(u, f)),
            s
          );
        };
      }),
      (x.debounce = function (e, t, n) {
        var r, i;
        return function () {
          var s = this,
            o = arguments,
            u = function () {
              (r = null), n || (i = e.apply(s, o));
            },
            a = n && !r;
          return (
            clearTimeout(r), (r = setTimeout(u, t)), a && (i = e.apply(s, o)), i
          );
        };
      }),
      (x.once = function (e) {
        var t = !1,
          n;
        return function () {
          return t
            ? n
            : ((t = !0), (n = e.apply(this, arguments)), (e = null), n);
        };
      }),
      (x.wrap = function (e, t) {
        return function () {
          var n = [e];
          return o.apply(n, arguments), t.apply(this, n);
        };
      }),
      (x.compose = function () {
        var e = arguments;
        return function () {
          var t = arguments;
          for (var n = e.length - 1; n >= 0; n--) t = [e[n].apply(this, t)];
          return t[0];
        };
      }),
      (x.after = function (e, t) {
        return e <= 0
          ? t()
          : function () {
              if (--e < 1) return t.apply(this, arguments);
            };
      }),
      (x.keys =
        E ||
        function (e) {
          if (e !== Object(e)) throw new TypeError("Invalid object");
          var t = [];
          for (var n in e) x.has(e, n) && (t[t.length] = n);
          return t;
        }),
      (x.values = function (e) {
        var t = [];
        for (var n in e) x.has(e, n) && t.push(e[n]);
        return t;
      }),
      (x.pairs = function (e) {
        var t = [];
        for (var n in e) x.has(e, n) && t.push([n, e[n]]);
        return t;
      }),
      (x.invert = function (e) {
        var t = {};
        for (var n in e) x.has(e, n) && (t[e[n]] = n);
        return t;
      }),
      (x.functions = x.methods =
        function (e) {
          var t = [];
          for (var n in e) x.isFunction(e[n]) && t.push(n);
          return t.sort();
        }),
      (x.extend = function (e) {
        return (
          T(u.call(arguments, 1), function (t) {
            if (t) for (var n in t) e[n] = t[n];
          }),
          e
        );
      }),
      (x.pick = function (e) {
        var t = {},
          n = a.apply(r, u.call(arguments, 1));
        return (
          T(n, function (n) {
            n in e && (t[n] = e[n]);
          }),
          t
        );
      }),
      (x.omit = function (e) {
        var t = {},
          n = a.apply(r, u.call(arguments, 1));
        for (var i in e) x.contains(n, i) || (t[i] = e[i]);
        return t;
      }),
      (x.defaults = function (e) {
        return (
          T(u.call(arguments, 1), function (t) {
            if (t) for (var n in t) e[n] == null && (e[n] = t[n]);
          }),
          e
        );
      }),
      (x.clone = function (e) {
        return x.isObject(e) ? (x.isArray(e) ? e.slice() : x.extend({}, e)) : e;
      }),
      (x.tap = function (e, t) {
        return t(e), e;
      });
    var O = function (e, t, n, r) {
      if (e === t) return e !== 0 || 1 / e == 1 / t;
      if (e == null || t == null) return e === t;
      e instanceof x && (e = e._wrapped), t instanceof x && (t = t._wrapped);
      var i = f.call(e);
      if (i != f.call(t)) return !1;
      switch (i) {
        case "[object String]":
          return e == String(t);
        case "[object Number]":
          return e != +e ? t != +t : e == 0 ? 1 / e == 1 / t : e == +t;
        case "[object Date]":
        case "[object Boolean]":
          return +e == +t;
        case "[object RegExp]":
          return (
            e.source == t.source &&
            e.global == t.global &&
            e.multiline == t.multiline &&
            e.ignoreCase == t.ignoreCase
          );
      }
      if (typeof e != "object" || typeof t != "object") return !1;
      var s = n.length;
      while (s--) if (n[s] == e) return r[s] == t;
      n.push(e), r.push(t);
      var o = 0,
        u = !0;
      if (i == "[object Array]") {
        (o = e.length), (u = o == t.length);
        if (u) while (o--) if (!(u = O(e[o], t[o], n, r))) break;
      } else {
        var a = e.constructor,
          l = t.constructor;
        if (
          a !== l &&
          !(
            x.isFunction(a) &&
            a instanceof a &&
            x.isFunction(l) &&
            l instanceof l
          )
        )
          return !1;
        for (var c in e)
          if (x.has(e, c)) {
            o++;
            if (!(u = x.has(t, c) && O(e[c], t[c], n, r))) break;
          }
        if (u) {
          for (c in t) if (x.has(t, c) && !o--) break;
          u = !o;
        }
      }
      return n.pop(), r.pop(), u;
    };
    (x.isEqual = function (e, t) {
      return O(e, t, [], []);
    }),
      (x.isEmpty = function (e) {
        if (e == null) return !0;
        if (x.isArray(e) || x.isString(e)) return e.length === 0;
        for (var t in e) if (x.has(e, t)) return !1;
        return !0;
      }),
      (x.isElement = function (e) {
        return !!e && e.nodeType === 1;
      }),
      (x.isArray =
        w ||
        function (e) {
          return f.call(e) == "[object Array]";
        }),
      (x.isObject = function (e) {
        return e === Object(e);
      }),
      T(
        ["Arguments", "Function", "String", "Number", "Date", "RegExp"],
        function (e) {
          x["is" + e] = function (t) {
            return f.call(t) == "[object " + e + "]";
          };
        }
      ),
      x.isArguments(arguments) ||
        (x.isArguments = function (e) {
          return !!e && !!x.has(e, "callee");
        }),
      typeof /./ != "function" &&
        (x.isFunction = function (e) {
          return typeof e == "function";
        }),
      (x.isFinite = function (e) {
        return isFinite(e) && !isNaN(parseFloat(e));
      }),
      (x.isNaN = function (e) {
        return x.isNumber(e) && e != +e;
      }),
      (x.isBoolean = function (e) {
        return e === !0 || e === !1 || f.call(e) == "[object Boolean]";
      }),
      (x.isNull = function (e) {
        return e === null;
      }),
      (x.isUndefined = function (e) {
        return e === void 0;
      }),
      (x.has = function (e, t) {
        return l.call(e, t);
      }),
      (x.noConflict = function () {
        return (e._ = t), this;
      }),
      (x.identity = function (e) {
        return e;
      }),
      (x.times = function (e, t, n) {
        var r = Array(e);
        for (var i = 0; i < e; i++) r[i] = t.call(n, i);
        return r;
      }),
      (x.random = function (e, t) {
        return (
          t == null && ((t = e), (e = 0)),
          e + Math.floor(Math.random() * (t - e + 1))
        );
      });
    var M = {
      escape: {
        "&": "&amp;",
        "<": "&lt;",
        ">": "&gt;",
        '"': "&quot;",
        "'": "&#x27;",
        "/": "&#x2F;",
      },
    };
    M.unescape = x.invert(M.escape);
    var _ = {
      escape: new RegExp("[" + x.keys(M.escape).join("") + "]", "g"),
      unescape: new RegExp("(" + x.keys(M.unescape).join("|") + ")", "g"),
    };
    x.each(["escape", "unescape"], function (e) {
      x[e] = function (t) {
        return t == null
          ? ""
          : ("" + t).replace(_[e], function (t) {
              return M[e][t];
            });
      };
    }),
      (x.result = function (e, t) {
        if (e == null) return null;
        var n = e[t];
        return x.isFunction(n) ? n.call(e) : n;
      }),
      (x.mixin = function (e) {
        T(x.functions(e), function (t) {
          var n = (x[t] = e[t]);
          x.prototype[t] = function () {
            var e = [this._wrapped];
            return o.apply(e, arguments), j.call(this, n.apply(x, e));
          };
        });
      });
    var D = 0;
    (x.uniqueId = function (e) {
      var t = ++D + "";
      return e ? e + t : t;
    }),
      (x.templateSettings = {
        evaluate: /<%([\s\S]+?)%>/g,
        interpolate: /<%=([\s\S]+?)%>/g,
        escape: /<%-([\s\S]+?)%>/g,
      });
    var P = /(.)^/,
      H = {
        "'": "'",
        "\\": "\\",
        "\r": "r",
        "\n": "n",
        "	": "t",
        "\u2028": "u2028",
        "\u2029": "u2029",
      },
      B = /\\|'|\r|\n|\t|\u2028|\u2029/g;
    (x.template = function (e, t, n) {
      var r;
      n = x.defaults({}, n, x.templateSettings);
      var i = new RegExp(
          [
            (n.escape || P).source,
            (n.interpolate || P).source,
            (n.evaluate || P).source,
          ].join("|") + "|$",
          "g"
        ),
        s = 0,
        o = "__p+='";
      e.replace(i, function (t, n, r, i, u) {
        return (
          (o += e.slice(s, u).replace(B, function (e) {
            return "\\" + H[e];
          })),
          n && (o += "'+\n((__t=(" + n + "))==null?'':_.escape(__t))+\n'"),
          r && (o += "'+\n((__t=(" + r + "))==null?'':__t)+\n'"),
          i && (o += "';\n" + i + "\n__p+='"),
          (s = u + t.length),
          t
        );
      }),
        (o += "';\n"),
        n.variable || (o = "with(obj||{}){\n" + o + "}\n"),
        (o =
          "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" +
          o +
          "return __p;\n");
      try {
        r = new Function(n.variable || "obj", "_", o);
      } catch (u) {
        throw ((u.source = o), u);
      }
      if (t) return r(t, x);
      var a = function (e) {
        return r.call(this, e, x);
      };
      return (
        (a.source = "function(" + (n.variable || "obj") + "){\n" + o + "}"), a
      );
    }),
      (x.chain = function (e) {
        return x(e).chain();
      });
    var j = function (e) {
      return this._chain ? x(e).chain() : e;
    };
    x.mixin(x),
      T(
        ["pop", "push", "reverse", "shift", "sort", "splice", "unshift"],
        function (e) {
          var t = r[e];
          x.prototype[e] = function () {
            var n = this._wrapped;
            return (
              t.apply(n, arguments),
              (e == "shift" || e == "splice") && n.length === 0 && delete n[0],
              j.call(this, n)
            );
          };
        }
      ),
      T(["concat", "join", "slice"], function (e) {
        var t = r[e];
        x.prototype[e] = function () {
          return j.call(this, t.apply(this._wrapped, arguments));
        };
      }),
      x.extend(x.prototype, {
        chain: function () {
          return (this._chain = !0), this;
        },
        value: function () {
          return this._wrapped;
        },
      });
  }.call(this),
  define(
    "underscore",
    (function (e) {
      return function () {
        var t, n;
        return t || e._;
      };
    })(this)
  ),
  function () {
    var e = this,
      t = e.Backbone,
      n = Array.prototype.slice,
      r = Array.prototype.splice,
      i;
    typeof exports != "undefined" ? (i = exports) : (i = e.Backbone = {}),
      (i.VERSION = "0.9.2");
    var s = e._;
    !s && typeof require != "undefined" && (s = require("underscore"));
    var o = e.jQuery || e.Zepto || e.ender;
    (i.setDomLibrary = function (e) {
      o = e;
    }),
      (i.noConflict = function () {
        return (e.Backbone = t), this;
      }),
      (i.emulateHTTP = !1),
      (i.emulateJSON = !1);
    var u = /\s+/,
      a = (i.Events = {
        on: function (e, t, n) {
          var r, i, s, o, a;
          if (!t) return this;
          (e = e.split(u)), (r = this._callbacks || (this._callbacks = {}));
          while ((i = e.shift()))
            (a = r[i]),
              (s = a ? a.tail : {}),
              (s.next = o = {}),
              (s.context = n),
              (s.callback = t),
              (r[i] = {
                tail: o,
                next: a ? a.next : s,
              });
          return this;
        },
        off: function (e, t, n) {
          var r, i, o, a, f, l;
          if (!(i = this._callbacks)) return;
          if (!(e || t || n)) return delete this._callbacks, this;
          e = e ? e.split(u) : s.keys(i);
          while ((r = e.shift())) {
            (o = i[r]), delete i[r];
            if (!o || (!t && !n)) continue;
            a = o.tail;
            while ((o = o.next) !== a)
              (f = o.callback),
                (l = o.context),
                ((t && f !== t) || (n && l !== n)) && this.on(r, f, l);
          }
          return this;
        },
        trigger: function (e) {
          var t, r, i, s, o, a, f;
          if (!(i = this._callbacks)) return this;
          (a = i.all), (e = e.split(u)), (f = n.call(arguments, 1));
          while ((t = e.shift())) {
            if ((r = i[t])) {
              s = r.tail;
              while ((r = r.next) !== s) r.callback.apply(r.context || this, f);
            }
            if ((r = a)) {
              (s = r.tail), (o = [t].concat(f));
              while ((r = r.next) !== s) r.callback.apply(r.context || this, o);
            }
          }
          return this;
        },
      });
    (a.bind = a.on), (a.unbind = a.off);
    var f = (i.Model = function (e, t) {
      var n;
      e || (e = {}), t && t.parse && (e = this.parse(e));
      if ((n = C(this, "defaults"))) e = s.extend({}, n, e);
      t && t.collection && (this.collection = t.collection),
        (this.attributes = {}),
        (this._escapedAttributes = {}),
        (this.cid = s.uniqueId("c")),
        (this.changed = {}),
        (this._silent = {}),
        (this._pending = {}),
        this.set(e, {
          silent: !0,
        }),
        (this.changed = {}),
        (this._silent = {}),
        (this._pending = {}),
        (this._previousAttributes = s.clone(this.attributes)),
        this.initialize.apply(this, arguments);
    });
    s.extend(f.prototype, a, {
      changed: null,
      _silent: null,
      _pending: null,
      idAttribute: "id",
      initialize: function () {},
      toJSON: function (e) {
        return s.clone(this.attributes);
      },
      get: function (e) {
        return this.attributes[e];
      },
      escape: function (e) {
        var t;
        if ((t = this._escapedAttributes[e])) return t;
        var n = this.get(e);
        return (this._escapedAttributes[e] = s.escape(n == null ? "" : "" + n));
      },
      has: function (e) {
        return this.get(e) != null;
      },
      set: function (e, t, n) {
        var r, i, o;
        s.isObject(e) || e == null
          ? ((r = e), (n = t))
          : ((r = {}), (r[e] = t)),
          n || (n = {});
        if (!r) return this;
        r instanceof f && (r = r.attributes);
        if (n.unset) for (i in r) r[i] = void 0;
        if (!this._validate(r, n)) return !1;
        this.idAttribute in r && (this.id = r[this.idAttribute]);
        var u = (n.changes = {}),
          a = this.attributes,
          l = this._escapedAttributes,
          c = this._previousAttributes || {};
        for (i in r) {
          o = r[i];
          if (!s.isEqual(a[i], o) || (n.unset && s.has(a, i)))
            delete l[i], ((n.silent ? this._silent : u)[i] = !0);
          n.unset ? delete a[i] : (a[i] = o),
            !s.isEqual(c[i], o) || s.has(a, i) != s.has(c, i)
              ? ((this.changed[i] = o), n.silent || (this._pending[i] = !0))
              : (delete this.changed[i], delete this._pending[i]);
        }
        return n.silent || this.change(n), this;
      },
      unset: function (e, t) {
        return ((t || (t = {})).unset = !0), this.set(e, null, t);
      },
      clear: function (e) {
        return (
          ((e || (e = {})).unset = !0), this.set(s.clone(this.attributes), e)
        );
      },
      fetch: function (e) {
        e = e ? s.clone(e) : {};
        var t = this,
          n = e.success;
        return (
          (e.success = function (r, i, s) {
            if (!t.set(t.parse(r, s), e)) return !1;
            n && n(t, r);
          }),
          (e.error = i.wrapError(e.error, t, e)),
          (this.sync || i.sync).call(this, "read", this, e)
        );
      },
      save: function (e, t, n) {
        var r, o;
        s.isObject(e) || e == null
          ? ((r = e), (n = t))
          : ((r = {}), (r[e] = t)),
          (n = n ? s.clone(n) : {});
        if (n.wait) {
          if (!this._validate(r, n)) return !1;
          o = s.clone(this.attributes);
        }
        var u = s.extend({}, n, {
          silent: !0,
        });
        if (r && !this.set(r, n.wait ? u : n)) return !1;
        var a = this,
          f = n.success;
        (n.success = function (e, t, i) {
          var o = a.parse(e, i);
          n.wait && (delete n.wait, (o = s.extend(r || {}, o)));
          if (!a.set(o, n)) return !1;
          f ? f(a, e) : a.trigger("sync", a, e, n);
        }),
          (n.error = i.wrapError(n.error, a, n));
        var l = this.isNew() ? "create" : "update",
          c = (this.sync || i.sync).call(this, l, this, n);
        return n.wait && this.set(o, u), c;
      },
      destroy: function (e) {
        e = e ? s.clone(e) : {};
        var t = this,
          n = e.success,
          r = function () {
            t.trigger("destroy", t, t.collection, e);
          };
        if (this.isNew()) return r(), !1;
        (e.success = function (i) {
          e.wait && r(), n ? n(t, i) : t.trigger("sync", t, i, e);
        }),
          (e.error = i.wrapError(e.error, t, e));
        var o = (this.sync || i.sync).call(this, "delete", this, e);
        return e.wait || r(), o;
      },
      url: function () {
        var e = C(this, "urlRoot") || C(this.collection, "url") || k();
        return this.isNew()
          ? e
          : e +
              (e.charAt(e.length - 1) == "/" ? "" : "/") +
              encodeURIComponent(this.id);
      },
      parse: function (e, t) {
        return e;
      },
      clone: function () {
        return new this.constructor(this.attributes);
      },
      isNew: function () {
        return this.id == null;
      },
      change: function (e) {
        e || (e = {});
        var t = this._changing;
        this._changing = !0;
        for (var n in this._silent) this._pending[n] = !0;
        var r = s.extend({}, e.changes, this._silent);
        this._silent = {};
        for (var n in r) this.trigger("change:" + n, this, this.get(n), e);
        if (t) return this;
        while (!s.isEmpty(this._pending)) {
          (this._pending = {}), this.trigger("change", this, e);
          for (var n in this.changed) {
            if (this._pending[n] || this._silent[n]) continue;
            delete this.changed[n];
          }
          this._previousAttributes = s.clone(this.attributes);
        }
        return (this._changing = !1), this;
      },
      hasChanged: function (e) {
        return arguments.length
          ? s.has(this.changed, e)
          : !s.isEmpty(this.changed);
      },
      changedAttributes: function (e) {
        if (!e) return this.hasChanged() ? s.clone(this.changed) : !1;
        var t,
          n = !1,
          r = this._previousAttributes;
        for (var i in e) {
          if (s.isEqual(r[i], (t = e[i]))) continue;
          (n || (n = {}))[i] = t;
        }
        return n;
      },
      previous: function (e) {
        return !arguments.length || !this._previousAttributes
          ? null
          : this._previousAttributes[e];
      },
      previousAttributes: function () {
        return s.clone(this._previousAttributes);
      },
      isValid: function () {
        return !this.validate(this.attributes);
      },
      _validate: function (e, t) {
        if (t.silent || !this.validate) return !0;
        e = s.extend({}, this.attributes, e);
        var n = this.validate(e, t);
        return n
          ? (t && t.error
              ? t.error(this, n, t)
              : this.trigger("error", this, n, t),
            !1)
          : !0;
      },
    });
    var l = (i.Collection = function (e, t) {
      t || (t = {}),
        t.model && (this.model = t.model),
        t.comparator && (this.comparator = t.comparator),
        this._reset(),
        this.initialize.apply(this, arguments),
        e &&
          this.reset(e, {
            silent: !0,
            parse: t.parse,
          });
    });
    s.extend(l.prototype, a, {
      model: f,
      initialize: function () {},
      toJSON: function (e) {
        return this.map(function (t) {
          return t.toJSON(e);
        });
      },
      add: function (e, t) {
        var n,
          i,
          o,
          u,
          a,
          f,
          l = {},
          c = {},
          h = [];
        t || (t = {}), (e = s.isArray(e) ? e.slice() : [e]);
        for (n = 0, o = e.length; n < o; n++) {
          if (!(u = e[n] = this._prepareModel(e[n], t)))
            throw new Error("Can't add an invalid model to a collection");
          (a = u.cid), (f = u.id);
          if (
            l[a] ||
            this._byCid[a] ||
            (f != null && (c[f] || this._byId[f]))
          ) {
            h.push(n);
            continue;
          }
          l[a] = c[f] = u;
        }
        n = h.length;
        while (n--) e.splice(h[n], 1);
        for (n = 0, o = e.length; n < o; n++)
          (u = e[n]).on("all", this._onModelEvent, this),
            (this._byCid[u.cid] = u),
            u.id != null && (this._byId[u.id] = u);
        (this.length += o),
          (i = t.at != null ? t.at : this.models.length),
          r.apply(this.models, [i, 0].concat(e)),
          this.comparator &&
            this.sort({
              silent: !0,
            });
        if (t.silent) return this;
        for (n = 0, o = this.models.length; n < o; n++) {
          if (!l[(u = this.models[n]).cid]) continue;
          (t.index = n), u.trigger("add", u, this, t);
        }
        return this;
      },
      remove: function (e, t) {
        var n, r, i, o;
        t || (t = {}), (e = s.isArray(e) ? e.slice() : [e]);
        for (n = 0, r = e.length; n < r; n++) {
          o = this.getByCid(e[n]) || this.get(e[n]);
          if (!o) continue;
          delete this._byId[o.id],
            delete this._byCid[o.cid],
            (i = this.indexOf(o)),
            this.models.splice(i, 1),
            this.length--,
            t.silent || ((t.index = i), o.trigger("remove", o, this, t)),
            this._removeReference(o);
        }
        return this;
      },
      push: function (e, t) {
        return (e = this._prepareModel(e, t)), this.add(e, t), e;
      },
      pop: function (e) {
        var t = this.at(this.length - 1);
        return this.remove(t, e), t;
      },
      unshift: function (e, t) {
        return (
          (e = this._prepareModel(e, t)),
          this.add(
            e,
            s.extend(
              {
                at: 0,
              },
              t
            )
          ),
          e
        );
      },
      shift: function (e) {
        var t = this.at(0);
        return this.remove(t, e), t;
      },
      get: function (e) {
        return e == null ? void 0 : this._byId[e.id != null ? e.id : e];
      },
      getByCid: function (e) {
        return e && this._byCid[e.cid || e];
      },
      at: function (e) {
        return this.models[e];
      },
      where: function (e) {
        return s.isEmpty(e)
          ? []
          : this.filter(function (t) {
              for (var n in e) if (e[n] !== t.get(n)) return !1;
              return !0;
            });
      },
      sort: function (e) {
        e || (e = {});
        if (!this.comparator)
          throw new Error("Cannot sort a set without a comparator");
        var t = s.bind(this.comparator, this);
        return (
          this.comparator.length == 1
            ? (this.models = this.sortBy(t))
            : this.models.sort(t),
          e.silent || this.trigger("reset", this, e),
          this
        );
      },
      pluck: function (e) {
        return s.map(this.models, function (t) {
          return t.get(e);
        });
      },
      reset: function (e, t) {
        e || (e = []), t || (t = {});
        for (var n = 0, r = this.models.length; n < r; n++)
          this._removeReference(this.models[n]);
        return (
          this._reset(),
          this.add(
            e,
            s.extend(
              {
                silent: !0,
              },
              t
            )
          ),
          t.silent || this.trigger("reset", this, t),
          this
        );
      },
      fetch: function (e) {
        (e = e ? s.clone(e) : {}), e.parse === undefined && (e.parse = !0);
        var t = this,
          n = e.success;
        return (
          (e.success = function (r, i, s) {
            t[e.add ? "add" : "reset"](t.parse(r, s), e), n && n(t, r);
          }),
          (e.error = i.wrapError(e.error, t, e)),
          (this.sync || i.sync).call(this, "read", this, e)
        );
      },
      create: function (e, t) {
        var n = this;
        (t = t ? s.clone(t) : {}), (e = this._prepareModel(e, t));
        if (!e) return !1;
        t.wait || n.add(e, t);
        var r = t.success;
        return (
          (t.success = function (i, s, o) {
            t.wait && n.add(i, t), r ? r(i, s) : i.trigger("sync", e, s, t);
          }),
          e.save(null, t),
          e
        );
      },
      parse: function (e, t) {
        return e;
      },
      chain: function () {
        return s(this.models).chain();
      },
      _reset: function (e) {
        (this.length = 0),
          (this.models = []),
          (this._byId = {}),
          (this._byCid = {});
      },
      _prepareModel: function (e, t) {
        t || (t = {});
        if (e instanceof f) e.collection || (e.collection = this);
        else {
          var n = e;
          (t.collection = this),
            (e = new this.model(n, t)),
            e._validate(e.attributes, t) || (e = !1);
        }
        return e;
      },
      _removeReference: function (e) {
        this == e.collection && delete e.collection,
          e.off("all", this._onModelEvent, this);
      },
      _onModelEvent: function (e, t, n, r) {
        if ((e == "add" || e == "remove") && n != this) return;
        e == "destroy" && this.remove(t, r),
          t &&
            e === "change:" + t.idAttribute &&
            (delete this._byId[t.previous(t.idAttribute)],
            (this._byId[t.id] = t)),
          this.trigger.apply(this, arguments);
      },
    });
    var c = [
      "forEach",
      "each",
      "map",
      "reduce",
      "reduceRight",
      "find",
      "detect",
      "filter",
      "select",
      "reject",
      "every",
      "all",
      "some",
      "any",
      "include",
      "contains",
      "invoke",
      "max",
      "min",
      "sortBy",
      "sortedIndex",
      "toArray",
      "size",
      "first",
      "initial",
      "rest",
      "last",
      "without",
      "indexOf",
      "shuffle",
      "lastIndexOf",
      "isEmpty",
      "groupBy",
    ];
    s.each(c, function (e) {
      l.prototype[e] = function () {
        return s[e].apply(s, [this.models].concat(s.toArray(arguments)));
      };
    });
    var h = (i.Router = function (e) {
        e || (e = {}),
          e.routes && (this.routes = e.routes),
          this._bindRoutes(),
          this.initialize.apply(this, arguments);
      }),
      p = /:\w+/g,
      d = /\*\w+/g,
      v = /[-[\]{}()+?.,\\^$|#\s]/g;
    s.extend(h.prototype, a, {
      initialize: function () {},
      route: function (e, t, n) {
        return (
          i.history || (i.history = new m()),
          s.isRegExp(e) || (e = this._routeToRegExp(e)),
          n || (n = this[t]),
          i.history.route(
            e,
            s.bind(function (r) {
              var s = this._extractParameters(e, r);
              n && n.apply(this, s),
                this.trigger.apply(this, ["route:" + t].concat(s)),
                i.history.trigger("route", this, t, s);
            }, this)
          ),
          this
        );
      },
      navigate: function (e, t) {
        i.history.navigate(e, t);
      },
      _bindRoutes: function () {
        if (!this.routes) return;
        var e = [];
        for (var t in this.routes) e.unshift([t, this.routes[t]]);
        for (var n = 0, r = e.length; n < r; n++)
          this.route(e[n][0], e[n][1], this[e[n][1]]);
      },
      _routeToRegExp: function (e) {
        return (
          (e = e.replace(v, "\\$&").replace(p, "([^/]+)").replace(d, "(.*?)")),
          new RegExp("^" + e + "$")
        );
      },
      _extractParameters: function (e, t) {
        return e.exec(t).slice(1);
      },
    });
    var m = (i.History = function () {
        (this.handlers = []), s.bindAll(this, "checkUrl");
      }),
      g = /^[#\/]/,
      y = /msie [\w.]+/;
    (m.started = !1),
      s.extend(m.prototype, a, {
        interval: 50,
        getHash: function (e) {
          var t = e ? e.location : window.location,
            n = t.href.match(/#(.*)$/);
          return n ? n[1] : "";
        },
        getFragment: function (e, t) {
          if (e == null)
            if (this._hasPushState || t) {
              e = window.location.pathname;
              var n = window.location.search;
              n && (e += n);
            } else e = this.getHash();
          return (
            e.indexOf(this.options.root) ||
              (e = e.substr(this.options.root.length)),
            e.replace(g, "")
          );
        },
        start: function (e) {
          if (m.started)
            throw new Error("Backbone.history has already been started");
          (m.started = !0),
            (this.options = s.extend(
              {},
              {
                root: "/",
              },
              this.options,
              e
            )),
            (this._wantsHashChange = this.options.hashChange !== !1),
            (this._wantsPushState = !!this.options.pushState),
            (this._hasPushState = !!(
              this.options.pushState &&
              window.history &&
              window.history.pushState
            ));
          var t = this.getFragment(),
            n = document.documentMode,
            r = y.exec(navigator.userAgent.toLowerCase()) && (!n || n <= 7);
          r &&
            ((this.iframe = o('<iframe src="javascript:0" tabindex="-1" />')
              .hide()
              .appendTo("body")[0].contentWindow),
            this.navigate(t)),
            this._hasPushState
              ? o(window).bind("popstate", this.checkUrl)
              : this._wantsHashChange && "onhashchange" in window && !r
              ? o(window).bind("hashchange", this.checkUrl)
              : this._wantsHashChange &&
                (this._checkUrlInterval = setInterval(
                  this.checkUrl,
                  this.interval
                )),
            (this.fragment = t);
          var i = window.location,
            u = i.pathname == this.options.root;
          if (
            this._wantsHashChange &&
            this._wantsPushState &&
            !this._hasPushState &&
            !u
          )
            return (
              (this.fragment = this.getFragment(null, !0)),
              window.location.replace(this.options.root + "#" + this.fragment),
              !0
            );
          this._wantsPushState &&
            this._hasPushState &&
            u &&
            i.hash &&
            ((this.fragment = this.getHash().replace(g, "")),
            window.history.replaceState(
              {},
              document.title,
              i.protocol + "//" + i.host + this.options.root + this.fragment
            ));
          if (!this.options.silent) return this.loadUrl();
        },
        stop: function () {
          o(window)
            .unbind("popstate", this.checkUrl)
            .unbind("hashchange", this.checkUrl),
            clearInterval(this._checkUrlInterval),
            (m.started = !1);
        },
        route: function (e, t) {
          this.handlers.unshift({
            route: e,
            callback: t,
          });
        },
        checkUrl: function (e) {
          var t = this.getFragment();
          t == this.fragment &&
            this.iframe &&
            (t = this.getFragment(this.getHash(this.iframe)));
          if (t == this.fragment) return !1;
          this.iframe && this.navigate(t),
            this.loadUrl() || this.loadUrl(this.getHash());
        },
        loadUrl: function (e) {
          var t = (this.fragment = this.getFragment(e)),
            n = s.any(this.handlers, function (e) {
              if (e.route.test(t)) return e.callback(t), !0;
            });
          return n;
        },
        navigate: function (e, t) {
          if (!m.started) return !1;
          if (!t || t === !0)
            t = {
              trigger: t,
            };
          var n = (e || "").replace(g, "");
          if (this.fragment == n) return;
          this._hasPushState
            ? (n.indexOf(this.options.root) != 0 && (n = this.options.root + n),
              (this.fragment = n),
              window.history[t.replace ? "replaceState" : "pushState"](
                {},
                document.title,
                n
              ))
            : this._wantsHashChange
            ? ((this.fragment = n),
              this._updateHash(window.location, n, t.replace),
              this.iframe &&
                n != this.getFragment(this.getHash(this.iframe)) &&
                (t.replace || this.iframe.document.open().close(),
                this._updateHash(this.iframe.location, n, t.replace)))
            : window.location.assign(this.options.root + e),
            t.trigger && this.loadUrl(e);
        },
        _updateHash: function (e, t, n) {
          n
            ? e.replace(
                e.toString().replace(/(javascript:|#).*$/, "") + "#" + t
              )
            : (e.hash = t);
        },
      });
    var b = (i.View = function (e) {
        (this.cid = s.uniqueId("view")),
          this._configure(e || {}),
          this._ensureElement(),
          this.initialize.apply(this, arguments),
          this.delegateEvents();
      }),
      w = /^(\S+)\s*(.*)$/,
      E = [
        "model",
        "collection",
        "el",
        "id",
        "attributes",
        "className",
        "tagName",
      ];
    s.extend(b.prototype, a, {
      tagName: "div",
      $: function (e) {
        return this.$el.find(e);
      },
      initialize: function () {},
      render: function () {
        return this;
      },
      remove: function () {
        return this.$el.remove(), this;
      },
      make: function (e, t, n) {
        var r = document.createElement(e);
        return t && o(r).attr(t), n && o(r).html(n), r;
      },
      setElement: function (e, t) {
        return (
          this.$el && this.undelegateEvents(),
          (this.$el = e instanceof o ? e : o(e)),
          (this.el = this.$el[0]),
          t !== !1 && this.delegateEvents(),
          this
        );
      },
      delegateEvents: function (e) {
        if (!e && !(e = C(this, "events"))) return;
        this.undelegateEvents();
        for (var t in e) {
          var n = e[t];
          s.isFunction(n) || (n = this[e[t]]);
          if (!n) throw new Error('Method "' + e[t] + '" does not exist');
          var r = t.match(w),
            i = r[1],
            o = r[2];
          (n = s.bind(n, this)),
            (i += ".delegateEvents" + this.cid),
            o === "" ? this.$el.bind(i, n) : this.$el.delegate(o, i, n);
        }
      },
      undelegateEvents: function () {
        this.$el.unbind(".delegateEvents" + this.cid);
      },
      _configure: function (e) {
        this.options && (e = s.extend({}, this.options, e));
        for (var t = 0, n = E.length; t < n; t++) {
          var r = E[t];
          e[r] && (this[r] = e[r]);
        }
        this.options = e;
      },
      _ensureElement: function () {
        if (!this.el) {
          var e = C(this, "attributes") || {};
          this.id && (e.id = this.id),
            this.className && (e["class"] = this.className),
            this.setElement(this.make(this.tagName, e), !1);
        } else this.setElement(this.el, !1);
      },
    });
    var S = function (e, t) {
      var n = N(this, e, t);
      return (n.extend = this.extend), n;
    };
    f.extend = l.extend = h.extend = b.extend = S;
    var x = {
      create: "POST",
      update: "PUT",
      delete: "DELETE",
      read: "GET",
    };
    (i.sync = function (e, t, n) {
      var r = x[e];
      n || (n = {});
      var u = {
        type: r,
        dataType: "json",
      };
      return (
        n.url || (u.url = C(t, "url") || k()),
        !n.data &&
          t &&
          (e == "create" || e == "update") &&
          ((u.contentType = "application/json"),
          (u.data = JSON.stringify(t.toJSON()))),
        i.emulateJSON &&
          ((u.contentType = "application/x-www-form-urlencoded"),
          (u.data = u.data
            ? {
                model: u.data,
              }
            : {})),
        i.emulateHTTP &&
          (r === "PUT" || r === "DELETE") &&
          (i.emulateJSON && (u.data._method = r),
          (u.type = "POST"),
          (u.beforeSend = function (e) {
            e.setRequestHeader("X-HTTP-Method-Override", r);
          })),
        u.type !== "GET" && !i.emulateJSON && (u.processData = !1),
        o.ajax(s.extend(u, n))
      );
    }),
      (i.wrapError = function (e, t, n) {
        return function (r, i) {
          (i = r === t ? i : r), e ? e(t, i, n) : t.trigger("error", t, i, n);
        };
      });
    var T = function () {},
      N = function (e, t, n) {
        var r;
        return (
          t && t.hasOwnProperty("constructor")
            ? (r = t.constructor)
            : (r = function () {
                e.apply(this, arguments);
              }),
          s.extend(r, e),
          (T.prototype = e.prototype),
          (r.prototype = new T()),
          t && s.extend(r.prototype, t),
          n && s.extend(r, n),
          (r.prototype.constructor = r),
          (r.__super__ = e.prototype),
          r
        );
      },
      C = function (e, t) {
        return !e || !e[t] ? null : s.isFunction(e[t]) ? e[t]() : e[t];
      },
      k = function () {
        throw new Error('A "url" property or function must be specified');
      };
  }.call(this),
  define(
    "backbone",
    ["underscore", "jquery"],
    (function (e) {
      return function () {
        var t, n;
        return t || e.Backbone;
      };
    })(this)
  ),
  define(
    "models/snippet",
    ["jquery", "underscore", "backbone"],
    function (e, t, n) {
      return n.Model.extend({
        getValues: function () {
          return t.reduce(
            this.get("fields"),
            function (e, n, r) {
              return (
                n["type"] == "select"
                  ? (e[r] = t.find(n.value, function (e) {
                      return e.selected;
                    }).value)
                  : (e[r] = n.value),
                e
              );
            },
            {}
          );
        },
        idFriendlyTitle: function () {
          return this.get("title").replace(/\W/g, "").toLowerCase();
        },
        setField: function (e, t) {
          var n = this.get("fields");
          (n[e].value = t), this.set("fields", n);
        },
      });
    }
  ),
  define("text", ["module"], function (e) {
    var t,
      n,
      r = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP", "Msxml2.XMLHTTP.4.0"],
      i = /^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,
      s = /<body[^>]*>\s*([\s\S]+)\s*<\/body>/im,
      o = typeof location != "undefined" && location.href,
      u = o && location.protocol && location.protocol.replace(/\:/, ""),
      a = o && location.hostname,
      f = o && (location.port || undefined),
      l = [],
      c = (e.config && e.config()) || {};
    t = {
      version: "2.0.5",
      strip: function (e) {
        if (e) {
          e = e.replace(i, "");
          var t = e.match(s);
          t && (e = t[1]);
        } else e = "";
        return e;
      },
      jsEscape: function (e) {
        return e
          .replace(/(['\\])/g, "\\$1")
          .replace(/[\f]/g, "\\f")
          .replace(/[\b]/g, "\\b")
          .replace(/[\n]/g, "\\n")
          .replace(/[\t]/g, "\\t")
          .replace(/[\r]/g, "\\r")
          .replace(/[\u2028]/g, "\\u2028")
          .replace(/[\u2029]/g, "\\u2029");
      },
      createXhr:
        c.createXhr ||
        function () {
          var e, t, n;
          if (typeof XMLHttpRequest != "undefined") return new XMLHttpRequest();
          if (typeof ActiveXObject != "undefined")
            for (t = 0; t < 3; t += 1) {
              n = r[t];
              try {
                e = new ActiveXObject(n);
              } catch (i) {}
              if (e) {
                r = [n];
                break;
              }
            }
          return e;
        },
      parseName: function (e) {
        var t,
          n,
          r,
          i = !1,
          s = e.indexOf("."),
          o = e.indexOf("./") === 0 || e.indexOf("../") === 0;
        return (
          s !== -1 && (!o || s > 1)
            ? ((t = e.substring(0, s)), (n = e.substring(s + 1, e.length)))
            : (t = e),
          (r = n || t),
          (s = r.indexOf("!")),
          s !== -1 &&
            ((i = r.substring(s + 1) === "strip"),
            (r = r.substring(0, s)),
            n ? (n = r) : (t = r)),
          {
            moduleName: t,
            ext: n,
            strip: i,
          }
        );
      },
      xdRegExp: /^((\w+)\:)?\/\/([^\/\\]+)/,
      useXhr: function (e, n, r, i) {
        var s,
          o,
          u,
          a = t.xdRegExp.exec(e);
        return a
          ? ((s = a[2]),
            (o = a[3]),
            (o = o.split(":")),
            (u = o[1]),
            (o = o[0]),
            (!s || s === n) &&
              (!o || o.toLowerCase() === r.toLowerCase()) &&
              ((!u && !o) || u === i))
          : !0;
      },
      finishLoad: function (e, n, r, i) {
        (r = n ? t.strip(r) : r), c.isBuild && (l[e] = r), i(r);
      },
      load: function (e, n, r, i) {
        if (i.isBuild && !i.inlineText) {
          r();
          return;
        }
        c.isBuild = i.isBuild;
        var s = t.parseName(e),
          l = s.moduleName + (s.ext ? "." + s.ext : ""),
          h = n.toUrl(l),
          p = c.useXhr || t.useXhr;
        !o || p(h, u, a, f)
          ? t.get(
              h,
              function (n) {
                t.finishLoad(e, s.strip, n, r);
              },
              function (e) {
                r.error && r.error(e);
              }
            )
          : n([l], function (e) {
              t.finishLoad(s.moduleName + "." + s.ext, s.strip, e, r);
            });
      },
      write: function (e, n, r, i) {
        if (l.hasOwnProperty(n)) {
          var s = t.jsEscape(l[n]);
          r.asModule(
            e + "!" + n,
            "define(function () { return '" + s + "';});\n"
          );
        }
      },
      writeFile: function (e, n, r, i, s) {
        var o = t.parseName(n),
          u = o.ext ? "." + o.ext : "",
          a = o.moduleName + u,
          f = r.toUrl(o.moduleName + u) + ".js";
        t.load(
          a,
          r,
          function (n) {
            var r = function (e) {
              return i(f, e);
            };
            (r.asModule = function (e, t) {
              return i.asModule(e, f, t);
            }),
              t.write(e, a, r, s);
          },
          s
        );
      },
    };
    if (
      c.env === "node" ||
      (!c.env &&
        typeof process != "undefined" &&
        process.versions &&
        !!process.versions.node)
    )
      (n = require.nodeRequire("fs")),
        (t.get = function (e, t) {
          var r = n.readFileSync(e, "utf8");
          r.indexOf("﻿") === 0 && (r = r.substring(1)), t(r);
        });
    else if (c.env === "xhr" || (!c.env && t.createXhr()))
      t.get = function (e, n, r, i) {
        var s = t.createXhr(),
          o;
        s.open("GET", e, !0);
        if (i)
          for (o in i)
            i.hasOwnProperty(o) && s.setRequestHeader(o.toLowerCase(), i[o]);
        c.onXhr && c.onXhr(s, e),
          (s.onreadystatechange = function (t) {
            var i, o;
            s.readyState === 4 &&
              ((i = s.status),
              i > 399 && i < 600
                ? ((o = new Error(e + " HTTP status: " + i)), (o.xhr = s), r(o))
                : n(s.responseText));
          }),
          s.send(null);
      };
    else if (
      c.env === "rhino" ||
      (!c.env && typeof Packages != "undefined" && typeof java != "undefined")
    )
      t.get = function (e, t) {
        var n,
          r,
          i = "utf-8",
          s = new java.io.File(e),
          o = java.lang.System.getProperty("line.separator"),
          u = new java.io.BufferedReader(
            new java.io.InputStreamReader(new java.io.FileInputStream(s), i)
          ),
          a = "";
        try {
          (n = new java.lang.StringBuffer()),
            (r = u.readLine()),
            r && r.length() && r.charAt(0) === 65279 && (r = r.substring(1)),
            n.append(r);
          while ((r = u.readLine()) !== null) n.append(o), n.append(r);
          a = String(n.toString());
        } finally {
          u.close();
        }
        t(a);
      };
    return t;
  }),
  define("text!templates/popover/popover-main.html", [], function () {
    return '<form role="form" class="theme-form">\n    <% var compiled =  _.reduce(items, function(str, v, k){ %>\n      <% v["name"] = k; %>\n      <% return str + popoverTemplates[v["type"]](v); %>\n    <% }, "") %>\n    <%= compiled %>\n    <hr/>\n    <button id="save" class=\'btn btn-primary\'>Save</button>&nbsp;<button id="cancel" class=\'btn btn-secondary\'>Cancel</button>\n</form>\n';
  }),
  define("text!templates/popover/popover-input.html", [], function () {
    return "<div class=\"mb-3\">\n	<label class=\"col-md-12 form-label\"> <%= label %> </label>\n	<div class=\"col-md-12\">\n		<input class='form-control field' data-type=\"<%= type %>\" type='text' name='<%= name %>' id='<%= name %>' value ='<%= value %>' />\n	</div>\n</div>";
  }),
  define("text!templates/popover/popover-select.html", [], function () {
    return '<div class="mb-3 row">\n	<label class=\'col-lg-12 form-label text-lg-start\'> <%= label %> </label>\n	<div class="col-lg-12">\n		<select class="form-control field" data-type="<%= type %>" id=\'<%= name %>\'>\n		<% _.each(value, function(v,k){ %>\n		  <option value="<%= v["value"] %>" <% if (v["selected"]){ %> selected <% } %> ><%= v["label"] %></option>\n		<% }); %>\n		</select>\n	</div>\n</div>\n';
  }),
  define("text!templates/popover/popover-textarea.html", [], function () {
    return '<div class="mb-3 row">\n	<label class="col-md-12 form-label"> <%= label %> </label>\n	<div class="col-md-12"> \n		<textarea class="form-control field" data-type="<%= type %>" style=\'min-height: 200px\' id=\'<%= name %>\'><%= value %></textarea>\n	</div>\n</div>\n';
  }),
  define("text!templates/popover/popover-textarea-split.html", [], function () {
    return '<div class="mb-3 row">\n	<label class="col-md-12 form-label"> <%= label %> </label>\n	<div class="col-md-12">\n	<textarea class="form-control field" data-type="<%= type %>" id=\'<%= name %>\'><% for ( var i = 0; i < value.length ; i++ ) { %><%= value[i] %><% if (i < value.length - 1) { %><%= "\\n" %><% } %><% } %></textarea>\n	</div>\n</div>';
  }),
  define("text!templates/popover/popover-checkbox.html", [], function () {
    return '<div class="">\n <label>\n  <input type="checkbox" data-type="<%= type %>" class="field" name="<%= name %>" id="checkbox1" <% if(value) {%> checked="checked" <% } %>> \n <%= label %>\n	</label>\n</div>\n';
  }),
  define("text!templates/snippet/formname.html", [], function () {
    return "<!-- Form Name -->\n<h6 class='m-t-10'><%= name %></h6><hr>\n";
  }),
  define("text!templates/snippet/prependedtext.html", [], function () {
    return '<!-- Prepended text-->\n<div class="mb-3 row">\n  <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n  <div class=<% if ( inputsize.length <= 0){ %>  "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%> >\n    <div class="input-group">\n      <span class="input-group-text btn btn-primary"><%= prepend %></span>\n      <input id="<%= id %>" name="<%= id %>" class="form-control btn-square" placeholder="<%= placeholder %>" type="text"<% if(required) {%> required <% } %> />\n    </div>\n    <% if (helptext.length > 0) { %><p class="help-block"><%= helptext %></p><% } %>\n  </div>\n</div>\n';
  }),
  define("text!templates/snippet/searchinput.html", [], function () {
    return '<!-- Search input-->\n<div class="mb-3 row">\n  <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n  <div class=<% if ( inputsize.length <= 0){ %>  "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%> >\n    <input id="<%= id %>" name="<%= id %>" type="search" placeholder="<%= placeholder %>" class="form-control btn-square input-md" <% if(required) {%> required <% } %> />\n    <% if (helptext.length > 0) { %><p class="help-block"><%= helptext %></p><% } %>\n  </div>\n</div>\n';
  }),
  define("text!templates/snippet/textinput.html", [], function () {
    return '<!-- Text input-->\n<div class="mb-3 row">\n  <label class="col-lg-12 form-label text-lg-start"  for="<%= id %>"><%= label %></label>  \n  <div class=<% if ( inputsize.length <= 0){ %>  "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%> >\n  <input id="<%= id %>" name="<%= id %>" type="text" placeholder="<%= placeholder %>" class="form-control btn-square input-md" <% if(required) {%> required <% } %> />\n  <% if (helptext.length > 0) { %><p class="help-block"><%= helptext %></p><% } %>  \n  </div>\n</div>\n';
  }),
  define("text!templates/snippet/appendedcheckbox.html", [], function () {
    return '<!-- Appended checkbox -->\n<div class="mb-3 row">\n  <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n  <div class=<% if ( inputsize.length <= 0){ %>  "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%>>\n    <div class="input-group">\n      <input id="<%= id %>" name="<%= id %>" class="form-control btn-square" type="text" placeholder="<%= placeholder %>" <% if(required) {%> required <% } %> />\n	        <span class="input-group-text checkbox-radius">     \n          <input type="checkbox" <% if (checked){ %>checked="checked"<% } %>>     \n      </span></div>\n    </div>\n    <% if (helptext.length > 0) { %><p class="help-block"><%= helptext %></p><% } %>\n  \n</div>\n';
  }),
  define("text!templates/snippet/appendedtext.html", [], function () {
    return '<!-- Appended Input-->\n<div class="mb-3 row">\n  <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n  <div class=<% if ( inputsize.length <= 0){ %>  "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%> >\n    <div class="input-group">\n      <input id="<%= id %>" name="<%= id %>" class="form-control btn-square" placeholder="<%= placeholder %>" type="text"<% if(required) {%> required <% } %> />\n      <span class="input-group-text btn btn-primary btn-right"><%= append %></span>\n    </div>\n    <% if (helptext.length > 0) { %><p class="help-block"><%= helptext %></p><% } %>\n  </div>\n</div>';
  }),
  define("text!templates/snippet/filebutton.html", [], function () {
    return '<!-- File Button --> \n<div class="mb-3 row">\n  <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n  <div class="col-lg-12">\n    <input id="<%= id %>" name="<%= id %>" class="input-file" id="fileInput" type="file">\n  </div>\n</div>\n';
  }),
  define("text!templates/snippet/button.html", [], function () {
    return '<!-- Button -->\n<div class="mb-3 row">\n  <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n  <div class="col-lg-12">\n    <button id="<%= id %>" name="<%= id %>" class=\'btn <%= buttontype %>\'><%= buttonlabel %></button>\n  </div>\n</div>\n';
  }),
  define("text!templates/snippet/buttondouble.html", [], function () {
    return '<!-- Button (Double) -->\n<div class="mb-3 row mb-0">\n  <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n  <div class="col-md-9">\n    <button id="<%= id %>" name="<%= id %>" class=\'btn <%= button1type %>\'><%= button1label %></button>\n    <button id="<%= id2 %>" name="<%= id2 %>" class=\'btn <%= button2type %>\'><%= button2label %></button>\n  </div>\n</div>\n';
  }),
  define("text!templates/snippet/buttondropdown.html", [], function () {
    return '<!-- Button Drop Down -->\n<div class="mb-3 row">\n  <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n  <div class=<% if ( inputsize.length <= 0){ %>  "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%>>\n    <div class="input-group">\n      <input id="<%= id %>" name="<%= id %>" class="form-control btn-square" placeholder="<%= placeholder %>" type="text" <% if(required) {%> required <% } %> />\n      <div class="input-group-text p-0">\n        <button type="button" class="btn btn-primary dropdown-toggle btn-square" data-toggle="dropdown">\n          <%= buttontext %>\n          <span class="caret"></span>\n        </button>\n        <ul class="dropdown-menu pull-right"><% _.each(buttonoptions, function(value) { %>\n          <li><a href="#" class="dropdown-item"><%= value %></a></li><% }); %>\n        </ul>\n      </div>\n    </div>\n  </div>\n</div>\n';
  }),
  define("text!templates/snippet/multiplecheckboxes.html", [], function () {
    return '<!-- Multiple Checkboxes -->\n<div class="mb-3 row">\n  <label class="col-sm-3 form-label text-lg-start" for="<%= name %>"><%= label %></label>\n  <div class="col-sm-9"><% _.each(checkboxes, function(checkbox, i){ %>\n  <div class="checkbox">\n  <input type="checkbox" name="<%= name %>" id="<%= name+\'-\'+i %>" value="<%= checkboxesValues[i] %>">\n   <label for="<%= name+\'-\'+i %>" class="mt-0">\n            <%= checkbox %>\n    </label>\n	</div><% }); %>\n  </div>\n</div>\n';
  }),
  define(
    "text!templates/snippet/multiplecheckboxesinline.html",
    [],
    function () {
      return '<!-- Multiple Checkboxes (inline) -->\n<div class="mb-3 row mb-0">\n  <label class="col-sm-3 form-label text-lg-start mb-0" for="<%= name %>"><%= label %></label>\n  <div class="col-sm-9"><div class="m-checkbox-inline">\n <% _.each(checkboxes, function(checkbox, i){ %>\n    <div class="checkbox"> <input type="checkbox" name="<%= name %>" id="<%= name+\'-\'+j++ %>" value="<%= checkboxesValues[i] %>">\n <label class="checkbox-inline mb-0" for="<%= name+\'-\'+i %>">\n           <%= checkbox %>\n    </label> </div>\n  <% }); %>\n  </div>\n</div>\n</div>\n';
    }
  ),
  define("text!templates/snippet/multipleradios.html", [], function () {
    return '<!-- Multiple Radios -->\n<div class="mb-3 row">\n  <label class="col-sm-3 form-label text-lg-start" for="<%= name %>"><%= label %></label>\n  <div class="col-sm-9 pl-md-radios"><% _.each(radios, function(radio, i){ %>\n  <div class="radio">\n    <label  for="<%= name+\'-\'+i %>"><%= radio %>\n    </label>\n    <input type="radio" name="<%= name %>" id="<%= name+\'-\'+j++ %>" value="<%= radiosValues[i] %>"  <% if (i < 1) { %> checked="checked" <% } %>>\n      	</div><% }); %>\n  </div>\n</div>\n';
  }),
  define("text!templates/snippet/multipleradiosinline.html", [], function () {
    return '<!-- Multiple Radios (inline) -->\n<div class="mb-3 row">\n  <label class="col-sm-3 form-label text-lg-start" for="<%= name %>"><%= label %></label>\n  <div class="col-sm-9  pl-md-radios"><div class="m-checkbox-inline"><% _.each(radios, function(radio, i){ %> \n <div class="radio radio-primary"> \n <label class="radio-inline" for="<%= name+\'-\'+i %>"> <%= radio %></label> \n <input type="radio" name="<%= name %>" id="<%= name+\'-\'+i %>" value="<%= radiosValues[i] %>"  <% if (i < 1) { %> checked="checked" <% } %>>\n </div><% }); %>\n  </div> </div>\n</div>\n</div>\n';
  }),
  define("text!templates/snippet/passwordinput.html", [], function () {
    return '<!-- Password input-->\n<div class="mb-3 row">\n  <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n  <div class=<% if ( inputsize.length <= 0){ %>  "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%> >\n    <input id="<%= id %>" name="<%= id %>" type="password" placeholder="<%= placeholder %>" class="form-control btn-square input-md" <% if(required) {%> required <% } %> />\n    <% if (helptext.length > 0) { %><span class="help-block"><%= helptext %></span><% } %>\n  </div>\n</div>\n';
  }),
  define("text!templates/snippet/prependedcheckbox.html", [], function () {
    return '<!-- Prepended checkbox -->\n<div class="mb-3 row">\n  <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n  <div class=<% if ( inputsize.length <= 0){ %>  "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%>>\n    <div class="input-group">\n      <span class="input-group-text">     \n          <input type="checkbox" <% if (checked){ %>checked="checked"<% } %>>     \n      </span>\n      <input id="<%= id %>" name="<%= id %>" class="form-control btn-square" type="text" placeholder="<%= placeholder %>" <% if(required) {%> required <% } %> />\n    </div>\n    <% if (helptext.length > 0) { %><p class="help-block"><%= helptext %></p><% } %>\n  </div>\n</div>\n';
  }),
  define("text!templates/snippet/selectbasic.html", [], function () {
    return '<!-- Select Basic -->\n<div class="mb-3 row">\n  <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n  <div class=<% if ( inputsize.length <= 0){ %>  "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%>>\n    <select id="<%= id %>" name="<%= id %>" class="form-control btn-square"><% _.each(options, function(option,i) { %>\n      <option value="<%= values[i] %>"><%= option %></option><% }); %>\n    </select>\n  </div>\n</div>\n';
  }),
  define("text!templates/snippet/selectmultiple.html", [], function () {
    return '<!-- Select Multiple -->\n<div class="mb-3 row mb-0">\n  <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n  <div class=<% if ( inputsize.length <= 0){ %>  "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%>>\n    <select id="<%= id %>" name="<%= id %>" class="form-control btn-square" multiple="multiple"><% _.each(options, function(option,i) { %>\n      <option value="<%= values[i] %>"><%= option %></option><% }); %>\n    </select>\n  </div>\n</div>\n';
  }),
  define("text!templates/snippet/textarea.html", [], function () {
    return '<!-- Textarea -->\n<div class="mb-3 row mb-0">\n  <label class="col-lg-12 form-label text-lg-start" for ="<%= id %>"><%= label %></label>\n  <div class="col-lg-12" >                     \n    <textarea class="form-control btn-square" id="<%= id %>" name="<%= id %>" ><%= textarea %></textarea>\n  </div>\n</div>\n';
  }),
  define(
    "templates/snippet/snippet-templates",
    [
      "require",
      "text!templates/snippet/formname.html",
      "text!templates/snippet/prependedtext.html",
      "text!templates/snippet/searchinput.html",
      "text!templates/snippet/textinput.html",
      "text!templates/snippet/appendedcheckbox.html",
      "text!templates/snippet/appendedtext.html",
      "text!templates/snippet/filebutton.html",
      "text!templates/snippet/button.html",
      "text!templates/snippet/buttondouble.html",
      "text!templates/snippet/buttondropdown.html",
      "text!templates/snippet/multiplecheckboxes.html",
      "text!templates/snippet/multiplecheckboxesinline.html",
      "text!templates/snippet/multipleradios.html",
      "text!templates/snippet/multipleradiosinline.html",
      "text!templates/snippet/passwordinput.html",
      "text!templates/snippet/prependedcheckbox.html",
      "text!templates/snippet/prependedtext.html",
      "text!templates/snippet/searchinput.html",
      "text!templates/snippet/selectbasic.html",
      "text!templates/snippet/selectmultiple.html",
      "text!templates/snippet/textarea.html",
      "text!templates/snippet/textinput.html",
    ],
    function (e) {
      var t = e("text!templates/snippet/formname.html"),
        n = e("text!templates/snippet/prependedtext.html"),
        r = e("text!templates/snippet/searchinput.html"),
        i = e("text!templates/snippet/textinput.html"),
        s = e("text!templates/snippet/appendedcheckbox.html"),
        o = e("text!templates/snippet/appendedtext.html"),
        u = e("text!templates/snippet/filebutton.html"),
        a = e("text!templates/snippet/button.html"),
        f = e("text!templates/snippet/buttondouble.html"),
        l = e("text!templates/snippet/buttondropdown.html"),
        c = e("text!templates/snippet/multiplecheckboxes.html"),
        h = e("text!templates/snippet/multiplecheckboxesinline.html"),
        p = e("text!templates/snippet/multipleradios.html"),
        d = e("text!templates/snippet/multipleradiosinline.html"),
        v = e("text!templates/snippet/passwordinput.html"),
        m = e("text!templates/snippet/prependedcheckbox.html"),
        n = e("text!templates/snippet/prependedtext.html"),
        g = e("text!templates/snippet/searchinput.html"),
        y = e("text!templates/snippet/selectbasic.html"),
        b = e("text!templates/snippet/selectmultiple.html"),
        w = e("text!templates/snippet/textarea.html"),
        i = e("text!templates/snippet/textinput.html");
      return {
        formname: t,
        prependedtext: n,
        search: r,
        textinput: i,
        appendedcheckbox: s,
        appendedtext: o,
        filebutton: u,
        singlebutton: a,
        doublebutton: f,
        buttondropdown: l,
        multiplecheckboxes: c,
        multiplecheckboxesinline: h,
        multipleradios: p,
        multipleradiosinline: d,
        passwordinput: v,
        prependedcheckbox: m,
        prependedtext: n,
        searchinput: g,
        selectbasic: y,
        selectmultiple: b,
        textarea: w,
        textinput: i,
      };
    }
  );
if (!jQuery) throw new Error("Bootstrap requires jQuery");
+(function (e) {
  function t() {
    var e = document.createElement("bootstrap"),
      t = {
        WebkitTransition: "webkitTransitionEnd",
        MozTransition: "transitionend",
        OTransition: "oTransitionEnd otransitionend",
        transition: "transitionend",
      };
    for (var n in t)
      if (e.style[n] !== undefined)
        return {
          end: t[n],
        };
  }
  (e.fn.emulateTransitionEnd = function (t) {
    var n = !1,
      r = this;
    e(this).one(e.support.transition.end, function () {
      n = !0;
    });
    var i = function () {
      n || e(r).trigger(e.support.transition.end);
    };
    return setTimeout(i, t), this;
  }),
    e(function () {
      e.support.transition = t();
    });
})(window.jQuery),
  +(function (e) {
    var t = '[data-bs-dismiss="alert"]',
      n = function (n) {
        e(n).on("click", t, this.close);
      };
    n.prototype.close = function (t) {
      function s() {
        i.trigger("closed.bs.alert").remove();
      }
      var n = e(this),
        r = n.attr("data-target");
      r || ((r = n.attr("href")), (r = r && r.replace(/.*(?=#[^\s]*$)/, "")));
      var i = e(r);
      t && t.preventDefault(),
        i.length || (i = n.hasClass("alert") ? n : n.parent()),
        i.trigger((t = e.Event("close.bs.alert")));
      if (t.isDefaultPrevented()) return;
      i.removeClass("in"),
        e.support.transition && i.hasClass("fade")
          ? i.one(e.support.transition.end, s).emulateTransitionEnd(150)
          : s();
    };
    var r = e.fn.alert;
    (e.fn.alert = function (t) {
      return this.each(function () {
        var r = e(this),
          i = r.data("bs.alert");
        i || r.data("bs.alert", (i = new n(this))),
          typeof t == "string" && i[t].call(r);
      });
    }),
      (e.fn.alert.Constructor = n),
      (e.fn.alert.noConflict = function () {
        return (e.fn.alert = r), this;
      }),
      e(document).on("click.bs.alert.data-api", t, n.prototype.close);
  })(window.jQuery),
  +(function (e) {
    var t = function (n, r) {
      (this.$element = e(n)), (this.options = e.extend({}, t.DEFAULTS, r));
    };
    (t.DEFAULTS = {
      loadingText: "loading...",
    }),
      (t.prototype.setState = function (e) {
        var t = "disabled",
          n = this.$element,
          r = n.is("input") ? "val" : "html",
          i = n.data();
        (e += "Text"),
          i.resetText || n.data("resetText", n[r]()),
          n[r](i[e] || this.options[e]),
          setTimeout(function () {
            e == "loadingText"
              ? n.addClass(t).attr(t, t)
              : n.removeClass(t).removeAttr(t);
          }, 0);
      }),
      (t.prototype.toggle = function () {
        var e = this.$element.closest('[data-toggle="buttons"]');
        if (e.length) {
          var t = this.$element
            .find("input")
            .prop("checked", !this.$element.hasClass("active"))
            .trigger("change");
          t.prop("type") === "radio" && e.find(".active").removeClass("active");
        }
        this.$element.toggleClass("active");
      });
    var n = e.fn.button;
    (e.fn.button = function (n) {
      return this.each(function () {
        var r = e(this),
          i = r.data("bs.button"),
          s = typeof n == "object" && n;
        i || r.data("bs.button", (i = new t(this, s))),
          n == "toggle" ? i.toggle() : n && i.setState(n);
      });
    }),
      (e.fn.button.Constructor = t),
      (e.fn.button.noConflict = function () {
        return (e.fn.button = n), this;
      }),
      e(document).on(
        "click.bs.button.data-api",
        "[data-toggle^=button]",
        function (t) {
          var n = e(t.target);
          n.hasClass("btn") || (n = n.closest(".btn")),
            n.button("toggle"),
            t.preventDefault();
        }
      );
  })(window.jQuery),
  +(function (e) {
    var t = function (t, n) {
      (this.$element = e(t)),
        (this.$indicators = this.$element.find(".carousel-indicators")),
        (this.options = n),
        (this.paused =
          this.sliding =
          this.interval =
          this.$active =
          this.$items =
            null),
        this.options.pause == "hover" &&
          this.$element
            .on("mouseenter", e.proxy(this.pause, this))
            .on("mouseleave", e.proxy(this.cycle, this));
    };
    (t.DEFAULTS = {
      interval: 5e3,
      pause: "hover",
      wrap: !0,
    }),
      (t.prototype.cycle = function (t) {
        return (
          t || (this.paused = !1),
          this.interval && clearInterval(this.interval),
          this.options.interval &&
            !this.paused &&
            (this.interval = setInterval(
              e.proxy(this.next, this),
              this.options.interval
            )),
          this
        );
      }),
      (t.prototype.getActiveIndex = function () {
        return (
          (this.$active = this.$element.find(".item.active")),
          (this.$items = this.$active.parent().children()),
          this.$items.index(this.$active)
        );
      }),
      (t.prototype.to = function (t) {
        var n = this,
          r = this.getActiveIndex();
        if (t > this.$items.length - 1 || t < 0) return;
        return this.sliding
          ? this.$element.one("slid", function () {
              n.to(t);
            })
          : r == t
          ? this.pause().cycle()
          : this.slide(t > r ? "next" : "prev", e(this.$items[t]));
      }),
      (t.prototype.pause = function (t) {
        return (
          t || (this.paused = !0),
          this.$element.find(".next, .prev").length &&
            e.support.transition.end &&
            (this.$element.trigger(e.support.transition.end), this.cycle(!0)),
          (this.interval = clearInterval(this.interval)),
          this
        );
      }),
      (t.prototype.next = function () {
        if (this.sliding) return;
        return this.slide("next");
      }),
      (t.prototype.prev = function () {
        if (this.sliding) return;
        return this.slide("prev");
      }),
      (t.prototype.slide = function (t, n) {
        var r = this.$element.find(".item.active"),
          i = n || r[t](),
          s = this.interval,
          o = t == "next" ? "left" : "right",
          u = t == "next" ? "first" : "last",
          a = this;
        if (!i.length) {
          if (!this.options.wrap) return;
          i = this.$element.find(".item")[u]();
        }
        (this.sliding = !0), s && this.pause();
        var f = e.Event("slide.bs.carousel", {
          relatedTarget: i[0],
          direction: o,
        });
        if (i.hasClass("active")) return;
        this.$indicators.length &&
          (this.$indicators.find(".active").removeClass("active"),
          this.$element.one("slid", function () {
            var t = e(a.$indicators.children()[a.getActiveIndex()]);
            t && t.addClass("active");
          }));
        if (e.support.transition && this.$element.hasClass("slide")) {
          this.$element.trigger(f);
          if (f.isDefaultPrevented()) return;
          i.addClass(t),
            i[0].offsetWidth,
            r.addClass(o),
            i.addClass(o),
            r
              .one(e.support.transition.end, function () {
                i.removeClass([t, o].join(" ")).addClass("active"),
                  r.removeClass(["active", o].join(" ")),
                  (a.sliding = !1),
                  setTimeout(function () {
                    a.$element.trigger("slid");
                  }, 0);
              })
              .emulateTransitionEnd(600);
        } else {
          this.$element.trigger(f);
          if (f.isDefaultPrevented()) return;
          r.removeClass("active"),
            i.addClass("active"),
            (this.sliding = !1),
            this.$element.trigger("slid");
        }
        return s && this.cycle(), this;
      });
    var n = e.fn.carousel;
    (e.fn.carousel = function (n) {
      return this.each(function () {
        var r = e(this),
          i = r.data("bs.carousel"),
          s = e.extend({}, t.DEFAULTS, r.data(), typeof n == "object" && n),
          o = typeof n == "string" ? n : s.slide;
        i || r.data("bs.carousel", (i = new t(this, s))),
          typeof n == "number"
            ? i.to(n)
            : o
            ? i[o]()
            : s.interval && i.pause().cycle();
      });
    }),
      (e.fn.carousel.Constructor = t),
      (e.fn.carousel.noConflict = function () {
        return (e.fn.carousel = n), this;
      }),
      e(document).on(
        "click.bs.carousel.data-api",
        "[data-slide], [data-slide-to]",
        function (t) {
          var n = e(this),
            r,
            i = e(
              n.attr("data-target") ||
                ((r = n.attr("href")) && r.replace(/.*(?=#[^\s]+$)/, ""))
            ),
            s = e.extend({}, i.data(), n.data()),
            o = n.attr("data-slide-to");
          o && (s.interval = !1),
            i.carousel(s),
            (o = n.attr("data-slide-to")) && i.data("bs.carousel").to(o),
            t.preventDefault();
        }
      ),
      e(window).on("load", function () {
        e('[data-ride="carousel"]').each(function () {
          var t = e(this);
          t.carousel(t.data());
        });
      });
  })(window.jQuery),
  +(function (e) {
    var t = function (n, r) {
      (this.$element = e(n)),
        (this.options = e.extend({}, t.DEFAULTS, r)),
        (this.transitioning = null),
        this.options.parent && (this.$parent = e(this.options.parent)),
        this.options.toggle && this.toggle();
    };
    (t.DEFAULTS = {
      toggle: !0,
    }),
      (t.prototype.dimension = function () {
        var e = this.$element.hasClass("width");
        return e ? "width" : "height";
      }),
      (t.prototype.show = function () {
        if (this.transitioning || this.$element.hasClass("in")) return;
        var t = e.Event("show.bs.collapse");
        this.$element.trigger(t);
        if (t.isDefaultPrevented()) return;
        var n = this.$parent && this.$parent.find("> .panel > .in");
        if (n && n.length) {
          var r = n.data("bs.collapse");
          if (r && r.transitioning) return;
          n.collapse("hide"), r || n.data("bs.collapse", null);
        }
        var i = this.dimension();
        this.$element.removeClass("collapse").addClass("collapsing")[i](0),
          (this.transitioning = 1);
        var s = function () {
          this.$element.removeClass("collapsing").addClass("in")[i]("auto"),
            (this.transitioning = 0),
            this.$element.trigger("shown.bs.collapse");
        };
        if (!e.support.transition) return s.call(this);
        var o = e.camelCase(["scroll", i].join("-"));
        this.$element
          .one(e.support.transition.end, e.proxy(s, this))
          .emulateTransitionEnd(350)
          [i](this.$element[0][o]);
      }),
      (t.prototype.hide = function () {
        if (this.transitioning || !this.$element.hasClass("in")) return;
        var t = e.Event("hide.bs.collapse");
        this.$element.trigger(t);
        if (t.isDefaultPrevented()) return;
        var n = this.dimension();
        this.$element[n](this.$element[n]())[0].offsetHeight,
          this.$element
            .addClass("collapsing")
            .removeClass("collapse")
            .removeClass("in"),
          (this.transitioning = 1);
        var r = function () {
          (this.transitioning = 0),
            this.$element
              .trigger("hidden.bs.collapse")
              .removeClass("collapsing")
              .addClass("collapse");
        };
        if (!e.support.transition) return r.call(this);
        this.$element[n](0)
          .one(e.support.transition.end, e.proxy(r, this))
          .emulateTransitionEnd(350);
      }),
      (t.prototype.toggle = function () {
        this[this.$element.hasClass("in") ? "hide" : "show"]();
      });
    var n = e.fn.collapse;
    (e.fn.collapse = function (n) {
      return this.each(function () {
        var r = e(this),
          i = r.data("bs.collapse"),
          s = e.extend({}, t.DEFAULTS, r.data(), typeof n == "object" && n);
        i || r.data("bs.collapse", (i = new t(this, s))),
          typeof n == "string" && i[n]();
      });
    }),
      (e.fn.collapse.Constructor = t),
      (e.fn.collapse.noConflict = function () {
        return (e.fn.collapse = n), this;
      }),
      e(document).on(
        "click.bs.collapse.data-api",
        "[data-toggle=collapse]",
        function (t) {
          var n = e(this),
            r,
            i =
              n.attr("data-target") ||
              t.preventDefault() ||
              ((r = n.attr("href")) && r.replace(/.*(?=#[^\s]+$)/, "")),
            s = e(i),
            o = s.data("bs.collapse"),
            u = o ? "toggle" : n.data(),
            a = n.attr("data-parent"),
            f = a && e(a);
          if (!o || !o.transitioning)
            f &&
              f
                .find('[data-toggle=collapse][data-parent="' + a + '"]')
                .not(n)
                .addClass("collapsed"),
              n[s.hasClass("in") ? "addClass" : "removeClass"]("collapsed");
          s.collapse(u);
        }
      );
  })(window.jQuery),
  +(function (e) {
    function i() {
      e(t).remove(),
        e(n).each(function (t) {
          var n = s(e(this));
          if (!n.hasClass("open")) return;
          n.trigger((t = e.Event("hide.bs.dropdown")));
          if (t.isDefaultPrevented()) return;
          n.removeClass("open").trigger("hidden.bs.dropdown");
        });
    }

    function s(t) {
      var n = t.attr("data-target");
      n ||
        ((n = t.attr("href")),
        (n = n && /#/.test(n) && n.replace(/.*(?=#[^\s]*$)/, "")));
      var r = n && e(n);
      return r && r.length ? r : t.parent();
    }
    var t = ".dropdown-backdrop",
      n = "[data-toggle=dropdown]",
      r = function (t) {
        var n = e(t).on("click.bs.dropdown", this.toggle);
      };
    (r.prototype.toggle = function (t) {
      var n = e(this);
      if (n.is(".disabled, :disabled")) return;
      var r = s(n),
        o = r.hasClass("open");
      i();
      if (!o) {
        "ontouchstart" in document.documentElement &&
          !r.closest(".navbar-nav").length &&
          e('<div class="dropdown-backdrop"/>')
            .insertAfter(e(this))
            .on("click", i),
          r.trigger((t = e.Event("show.bs.dropdown")));
        if (t.isDefaultPrevented()) return;
        r.toggleClass("open").trigger("shown.bs.dropdown"), n.focus();
      }
      return !1;
    }),
      (r.prototype.keydown = function (t) {
        if (!/(38|40|27)/.test(t.keyCode)) return;
        var r = e(this);
        t.preventDefault(), t.stopPropagation();
        if (r.is(".disabled, :disabled")) return;
        var i = s(r),
          o = i.hasClass("open");
        if (!o || (o && t.keyCode == 27))
          return t.which == 27 && i.find(n).focus(), r.click();
        var u = e("[role=menu] li:not(.divider):visible a", i);
        if (!u.length) return;
        var a = u.index(u.filter(":focus"));
        t.keyCode == 38 && a > 0 && a--,
          t.keyCode == 40 && a < u.length - 1 && a++,
          ~a || (a = 0),
          u.eq(a).focus();
      });
    var o = e.fn.dropdown;
    (e.fn.dropdown = function (t) {
      return this.each(function () {
        var n = e(this),
          i = n.data("dropdown");
        i || n.data("dropdown", (i = new r(this))),
          typeof t == "string" && i[t].call(n);
      });
    }),
      (e.fn.dropdown.Constructor = r),
      (e.fn.dropdown.noConflict = function () {
        return (e.fn.dropdown = o), this;
      }),
      e(document)
        .on("click.bs.dropdown.data-api", i)
        .on("click.bs.dropdown.data-api", ".dropdown form", function (e) {
          e.stopPropagation();
        })
        .on("click.bs.dropdown.data-api", n, r.prototype.toggle)
        .on(
          "keydown.bs.dropdown.data-api",
          n + ", [role=menu]",
          r.prototype.keydown
        );
  })(window.jQuery),
  +(function (e) {
    var t = function (t, n) {
      (this.options = n),
        (this.$element = e(t)),
        (this.$backdrop = this.isShown = null),
        this.options.remote && this.$element.load(this.options.remote);
    };
    (t.DEFAULTS = {
      backdrop: !0,
      keyboard: !0,
      show: !0,
    }),
      (t.prototype.toggle = function (e) {
        return this[this.isShown ? "hide" : "show"](e);
      }),
      (t.prototype.show = function (t) {
        var n = this,
          r = e.Event("show.bs.modal", {
            relatedTarget: t,
          });
        this.$element.trigger(r);
        if (this.isShown || r.isDefaultPrevented()) return;
        (this.isShown = !0),
          this.escape(),
          this.$element.on(
            "click.dismiss.modal",
            '[data-bs-dismiss="modal"]',
            e.proxy(this.hide, this)
          ),
          this.backdrop(function () {
            var r = e.support.transition && n.$element.hasClass("fade");
            n.$element.parent().length || n.$element.appendTo(document.body),
              n.$element.show(),
              r && n.$element[0].offsetWidth,
              n.$element.addClass("in").attr("aria-hidden", !1),
              n.enforceFocus();
            var i = e.Event("shown.bs.modal", {
              relatedTarget: t,
            });
            r
              ? n.$element
                  .find(".modal-dialog")
                  .one(e.support.transition.end, function () {
                    n.$element.focus().trigger(i);
                  })
                  .emulateTransitionEnd(300)
              : n.$element.focus().trigger(i);
          });
      }),
      (t.prototype.hide = function (t) {
        t && t.preventDefault(),
          (t = e.Event("hide.bs.modal")),
          this.$element.trigger(t);
        if (!this.isShown || t.isDefaultPrevented()) return;
        (this.isShown = !1),
          this.escape(),
          e(document).off("focusin.bs.modal"),
          this.$element
            .removeClass("in")
            .attr("aria-hidden", !0)
            .off("click.dismiss.modal"),
          e.support.transition && this.$element.hasClass("fade")
            ? this.$element
                .one(e.support.transition.end, e.proxy(this.hideModal, this))
                .emulateTransitionEnd(300)
            : this.hideModal();
      }),
      (t.prototype.enforceFocus = function () {
        e(document)
          .off("focusin.bs.modal")
          .on(
            "focusin.bs.modal",
            e.proxy(function (e) {
              this.$element[0] !== e.target &&
                !this.$element.has(e.target).length &&
                this.$element.focus();
            }, this)
          );
      }),
      (t.prototype.escape = function () {
        this.isShown && this.options.keyboard
          ? this.$element.on(
              "keyup.dismiss.bs.modal",
              e.proxy(function (e) {
                e.which == 27 && this.hide();
              }, this)
            )
          : this.isShown || this.$element.off("keyup.dismiss.bs.modal");
      }),
      (t.prototype.hideModal = function () {
        var e = this;
        this.$element.hide(),
          this.backdrop(function () {
            e.removeBackdrop(), e.$element.trigger("hidden.bs.modal");
          });
      }),
      (t.prototype.removeBackdrop = function () {
        this.$backdrop && this.$backdrop.remove(), (this.$backdrop = null);
      }),
      (t.prototype.backdrop = function (t) {
        var n = this,
          r = this.$element.hasClass("fade") ? "fade" : "";
        if (this.isShown && this.options.backdrop) {
          var i = e.support.transition && r;
          (this.$backdrop = e(
            '<div class="modal-backdrop ' + r + '" />'
          ).appendTo(document.body)),
            this.$element.on(
              "click.dismiss.modal",
              e.proxy(function (e) {
                if (e.target !== e.currentTarget) return;
                this.options.backdrop == "static"
                  ? this.$element[0].focus.call(this.$element[0])
                  : this.hide.call(this);
              }, this)
            ),
            i && this.$backdrop[0].offsetWidth,
            this.$backdrop.addClass("in");
          if (!t) return;
          i
            ? this.$backdrop
                .one(e.support.transition.end, t)
                .emulateTransitionEnd(150)
            : t();
        } else
          !this.isShown && this.$backdrop
            ? (this.$backdrop.removeClass("in"),
              e.support.transition && this.$element.hasClass("fade")
                ? this.$backdrop
                    .one(e.support.transition.end, t)
                    .emulateTransitionEnd(150)
                : t())
            : t && t();
      });
    var n = e.fn.modal;
    (e.fn.modal = function (n, r) {
      return this.each(function () {
        var i = e(this),
          s = i.data("bs.modal"),
          o = e.extend({}, t.DEFAULTS, i.data(), typeof n == "object" && n);
        s || i.data("bs.modal", (s = new t(this, o))),
          typeof n == "string" ? s[n](r) : o.show && s.show(r);
      });
    }),
      (e.fn.modal.Constructor = t),
      (e.fn.modal.noConflict = function () {
        return (e.fn.modal = n), this;
      }),
      e(document).on(
        "click.bs.modal.data-api",
        '[data-toggle="modal"]',
        function (t) {
          var n = e(this),
            r = n.attr("href"),
            i = e(
              n.attr("data-target") || (r && r.replace(/.*(?=#[^\s]+$)/, ""))
            ),
            s = i.data("modal")
              ? "toggle"
              : e.extend(
                  {
                    remote: !/#/.test(r) && r,
                  },
                  i.data(),
                  n.data()
                );
          t.preventDefault(),
            i.modal(s, this).one("hide", function () {
              n.is(":visible") && n.focus();
            });
        }
      ),
      e(document)
        .on("show.bs.modal", ".modal", function () {
          e(document.body).addClass("modal-open");
        })
        .on("hidden.bs.modal", ".modal", function () {
          e(document.body).removeClass("modal-open");
        });
  })(window.jQuery),
  +(function (e) {
    var t = function (e, t) {
      (this.type =
        this.options =
        this.enabled =
        this.timeout =
        this.hoverState =
        this.$element =
          null),
        this.init("tooltip", e, t);
    };
    (t.DEFAULTS = {
      animation: !0,
      placement: "top",
      selector: !1,
      template:
        '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
      trigger: "hover focus",
      title: "",
      delay: 0,
      html: !1,
      container: !1,
    }),
      (t.prototype.init = function (t, n, r) {
        (this.enabled = !0),
          (this.type = t),
          (this.$element = e(n)),
          (this.options = this.getOptions(r));
        var i = this.options.trigger.split(" ");
        for (var s = i.length; s--; ) {
          var o = i[s];
          if (o == "click")
            this.$element.on(
              "click." + this.type,
              this.options.selector,
              e.proxy(this.toggle, this)
            );
          else if (o != "manual") {
            var u = o == "hover" ? "mouseenter" : "focus",
              a = o == "hover" ? "mouseleave" : "blur";
            this.$element.on(
              u + "." + this.type,
              this.options.selector,
              e.proxy(this.enter, this)
            ),
              this.$element.on(
                a + "." + this.type,
                this.options.selector,
                e.proxy(this.leave, this)
              );
          }
        }
        this.options.selector
          ? (this._options = e.extend({}, this.options, {
              trigger: "manual",
              selector: "",
            }))
          : this.fixTitle();
      }),
      (t.prototype.getDefaults = function () {
        return t.DEFAULTS;
      }),
      (t.prototype.getOptions = function (t) {
        return (
          (t = e.extend({}, this.getDefaults(), this.$element.data(), t)),
          t.delay &&
            typeof t.delay == "number" &&
            (t.delay = {
              show: t.delay,
              hide: t.delay,
            }),
          t
        );
      }),
      (t.prototype.getDelegateOptions = function () {
        var t = {},
          n = this.getDefaults();
        return (
          this._options &&
            e.each(this._options, function (e, r) {
              n[e] != r && (t[e] = r);
            }),
          t
        );
      }),
      (t.prototype.enter = function (t) {
        var n =
          t instanceof this.constructor
            ? t
            : e(t.currentTarget)
                [this.type](this.getDelegateOptions())
                .data("bs." + this.type);
        clearTimeout(n.timeout), (n.hoverState = "in");
        if (!n.options.delay || !n.options.delay.show) return n.show();
        n.timeout = setTimeout(function () {
          n.hoverState == "in" && n.show();
        }, n.options.delay.show);
      }),
      (t.prototype.leave = function (t) {
        var n =
          t instanceof this.constructor
            ? t
            : e(t.currentTarget)
                [this.type](this.getDelegateOptions())
                .data("bs." + this.type);
        clearTimeout(n.timeout), (n.hoverState = "out");
        if (!n.options.delay || !n.options.delay.hide) return n.hide();
        n.timeout = setTimeout(function () {
          n.hoverState == "out" && n.hide();
        }, n.options.delay.hide);
      }),
      (t.prototype.show = function () {
        var t = e.Event("show.bs." + this.type);
        if (this.hasContent() && this.enabled) {
          this.$element.trigger(t);
          if (t.isDefaultPrevented()) return;
          var n = this.tip();
          this.setContent(), this.options.animation && n.addClass("fade");
          var r =
              typeof this.options.placement == "function"
                ? this.options.placement.call(this, n[0], this.$element[0])
                : this.options.placement,
            i = /\s?auto?\s?/i,
            s = i.test(r);
          s && (r = r.replace(i, "") || "top"),
            n
              .detach()
              .css({
                top: 0,
                left: 0,
                display: "block",
              })
              .addClass(r),
            this.options.container
              ? n.appendTo(this.options.container)
              : n.insertAfter(this.$element);
          var o = this.getPosition(),
            u = n[0].offsetWidth,
            a = n[0].offsetHeight;
          if (s) {
            var f = this.$element.parent(),
              l = r,
              c = document.documentElement.scrollTop || document.body.scrollTop,
              h =
                this.options.container == "body"
                  ? window.innerWidth
                  : f.outerWidth(),
              p =
                this.options.container == "body"
                  ? window.innerHeight
                  : f.outerHeight(),
              d = this.options.container == "body" ? 0 : f.offset().left;
            (r =
              r == "bottom" && o.top + o.height + a - c > p
                ? "top"
                : r == "top" && o.top - c - a < 0
                ? "bottom"
                : r == "right" && o.right + u > h
                ? "left"
                : r == "left" && o.left - u < d
                ? "right"
                : r),
              n.removeClass(l).addClass(r);
          }
          var v = this.getCalculatedOffset(r, o, u, a);
          this.applyPlacement(v, r),
            this.$element.trigger("shown.bs." + this.type);
        }
      }),
      (t.prototype.applyPlacement = function (e, t) {
        var n,
          r = this.tip(),
          i = r[0].offsetWidth,
          s = r[0].offsetHeight,
          o = parseInt(r.css("margin-top"), 10),
          u = parseInt(r.css("margin-left"), 10);
        isNaN(o) && (o = 0),
          isNaN(u) && (u = 0),
          (e.top = e.top + o),
          (e.left = e.left + u),
          r.offset(e).addClass("in");
        var a = r[0].offsetWidth,
          f = r[0].offsetHeight;
        t == "top" && f != s && ((n = !0), (e.top = e.top + s - f));
        if (/bottom|top/.test(t)) {
          var l = 0;
          e.left < 0 &&
            ((l = e.left * -2),
            (e.left = 0),
            r.offset(e),
            (a = r[0].offsetWidth),
            (f = r[0].offsetHeight)),
            this.replaceArrow(l - i + a, a, "left");
        } else this.replaceArrow(f - s, f, "top");
        n && r.offset(e);
      }),
      (t.prototype.replaceArrow = function (e, t, n) {
        this.arrow().css(n, e ? 50 * (1 - e / t) + "%" : "");
      }),
      (t.prototype.setContent = function () {
        var e = this.tip(),
          t = this.getTitle();
        e.find(".tooltip-inner")[this.options.html ? "html" : "text"](t),
          e.removeClass(
            "fade show bs-popover-top bs-popover-bottom bs-popover-left bs-popover-right"
          );
      }),
      (t.prototype.hide = function () {
        function i() {
          t.hoverState != "in" && n.detach();
        }
        var t = this,
          n = this.tip(),
          r = e.Event("hide.bs." + this.type);
        this.$element.trigger(r);
        if (r.isDefaultPrevented()) return;
        return (
          n.removeClass("in"),
          e.support.transition && this.$tip.hasClass("fade")
            ? n.one(e.support.transition.end, i).emulateTransitionEnd(150)
            : i(),
          this.$element.trigger("hidden.bs." + this.type),
          this
        );
      }),
      (t.prototype.fixTitle = function () {
        var e = this.$element;
        (e.attr("title") || typeof e.attr("data-original-title") != "string") &&
          e
            .attr("data-original-title", e.attr("title") || "")
            .attr("title", "");
      }),
      (t.prototype.hasContent = function () {
        return this.getTitle();
      }),
      (t.prototype.getPosition = function () {
        var t = this.$element[0];
        return e.extend(
          {},
          typeof t.getBoundingClientRect == "function"
            ? t.getBoundingClientRect()
            : {
                width: t.offsetWidth,
                height: t.offsetHeight,
              },
          this.$element.offset()
        );
      }),
      (t.prototype.getCalculatedOffset = function (e, t, n, r) {
        return e == "bottom"
          ? {
              top: t.top + t.height,
              left: t.left + t.width / 2 - n / 2,
            }
          : e == "top"
          ? {
              top: t.top - r,
              left: t.left + t.width / 2 - n / 2,
            }
          : e == "left"
          ? {
              top: t.top + t.height / 2 - r / 2,
              left: t.left - n,
            }
          : {
              top: t.top + t.height / 2 - r / 2,
              left: t.left + t.width,
            };
      }),
      (t.prototype.getTitle = function () {
        var e,
          t = this.$element,
          n = this.options;
        return (
          (e =
            t.attr("data-original-title") ||
            (typeof n.title == "function" ? n.title.call(t[0]) : n.title)),
          e
        );
      }),
      (t.prototype.tip = function () {
        return (this.$tip = this.$tip || e(this.options.template));
      }),
      (t.prototype.arrow = function () {
        return (this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow"));
      }),
      (t.prototype.validate = function () {
        this.$element[0].parentNode ||
          (this.hide(), (this.$element = null), (this.options = null));
      }),
      (t.prototype.enable = function () {
        this.enabled = !0;
      }),
      (t.prototype.disable = function () {
        this.enabled = !1;
      }),
      (t.prototype.toggleEnabled = function () {
        this.enabled = !this.enabled;
      }),
      (t.prototype.toggle = function (t) {
        var n = t
          ? e(t.currentTarget)
              [this.type](this.getDelegateOptions())
              .data("bs." + this.type)
          : this;
        n.tip().hasClass("in") ? n.leave(n) : n.enter(n);
      }),
      (t.prototype.destroy = function () {
        this.hide()
          .$element.off("." + this.type)
          .removeData("bs." + this.type);
      });
    var n = e.fn.tooltip;
    (e.fn.tooltip = function (n) {
      return this.each(function () {
        var r = e(this),
          i = r.data("bs.tooltip"),
          s = typeof n == "object" && n;
        i || r.data("bs.tooltip", (i = new t(this, s))),
          typeof n == "string" && i[n]();
      });
    }),
      (e.fn.tooltip.Constructor = t),
      (e.fn.tooltip.noConflict = function () {
        return (e.fn.tooltip = n), this;
      });
  })(window.jQuery),
  +(function (e) {
    var t = function (e, t) {
      this.init("popover", e, t);
    };
    if (!e.fn.tooltip) throw new Error("Popover requires tooltip.js");
    (t.DEFAULTS = e.extend({}, e.fn.tooltip.Constructor.DEFAULTS, {
      placement: "right",
      trigger: "click",
      content: "",
      template:
        '<div class="popover"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',
    })),
      (t.prototype = e.extend({}, e.fn.tooltip.Constructor.prototype)),
      (t.prototype.constructor = t),
      (t.prototype.getDefaults = function () {
        return t.DEFAULTS;
      }),
      (t.prototype.setContent = function () {
        var e = this.tip(),
          t = this.getTitle(),
          n = this.getContent();
        e.find(".popover-header")[this.options.html ? "html" : "text"](t),
          e.find(".popover-body")[this.options.html ? "html" : "text"](n),
          e.removeClass(
            "fade bs-popover-top bs-popover-bottom bs-popover-left bs-popover-right show"
          ),
          e.find(".popover-header").html() || e.find(".popover-header").hide();
      }),
      (t.prototype.hasContent = function () {
        return this.getTitle() || this.getContent();
      }),
      (t.prototype.getContent = function () {
        var e = this.$element,
          t = this.options;
        return (
          e.attr("data-content") ||
          (typeof t.content == "function" ? t.content.call(e[0]) : t.content)
        );
      }),
      (t.prototype.arrow = function () {
        return (this.$arrow = this.$arrow || this.tip().find(".arrow"));
      }),
      (t.prototype.tip = function () {
        return this.$tip || (this.$tip = e(this.options.template)), this.$tip;
      });
    var n = e.fn.popover;
    (e.fn.popover = function (n) {
      return this.each(function () {
        var r = e(this),
          i = r.data("bs.popover"),
          s = typeof n == "object" && n;
        i || r.data("bs.popover", (i = new t(this, s))),
          typeof n == "string" && i[n]();
      });
    }),
      (e.fn.popover.Constructor = t),
      (e.fn.popover.noConflict = function () {
        return (e.fn.popover = n), this;
      });
  })(window.jQuery),
  +(function (e) {
    function t(n, r) {
      var i,
        s = e.proxy(this.process, this);
      (this.$element = e(n).is("body") ? e(window) : e(n)),
        (this.$body = e("body")),
        (this.$scrollElement = this.$element.on(
          "scroll.bs.scroll-spy.data-api",
          s
        )),
        (this.options = e.extend({}, t.DEFAULTS, r)),
        (this.selector =
          (this.options.target ||
            ((i = e(n).attr("href")) && i.replace(/.*(?=#[^\s]+$)/, "")) ||
            "") + " .nav li > a"),
        (this.offsets = e([])),
        (this.targets = e([])),
        (this.activeTarget = null),
        this.refresh(),
        this.process();
    }
    (t.DEFAULTS = {
      offset: 10,
    }),
      (t.prototype.refresh = function () {
        var t = this.$element[0] == window ? "offset" : "position";
        (this.offsets = e([])), (this.targets = e([]));
        var n = this,
          r = this.$body
            .find(this.selector)
            .map(function () {
              var r = e(this),
                i = r.data("target") || r.attr("href"),
                s = /^#\w/.test(i) && e(i);
              return (
                (s &&
                  s.length && [
                    [
                      s[t]().top +
                        (!e.isWindow(n.$scrollElement.get(0)) &&
                          n.$scrollElement.scrollTop()),
                      i,
                    ],
                  ]) ||
                null
              );
            })
            .sort(function (e, t) {
              return e[0] - t[0];
            })
            .each(function () {
              n.offsets.push(this[0]), n.targets.push(this[1]);
            });
      }),
      (t.prototype.process = function () {
        var e = this.$scrollElement.scrollTop() + this.options.offset,
          t = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight,
          n = t - this.$scrollElement.height(),
          r = this.offsets,
          i = this.targets,
          s = this.activeTarget,
          o;
        if (e >= n) return s != (o = i.last()[0]) && this.activate(o);
        for (o = r.length; o--; )
          s != i[o] &&
            e >= r[o] &&
            (!r[o + 1] || e <= r[o + 1]) &&
            this.activate(i[o]);
      }),
      (t.prototype.activate = function (t) {
        (this.activeTarget = t),
          e(this.selector).parents(".active").removeClass("active");
        var n =
            this.selector +
            '[data-target="' +
            t +
            '"],' +
            this.selector +
            '[href="' +
            t +
            '"]',
          r = e(n).parents("li").addClass("active");
        r.parent(".dropdown-menu").length &&
          (r = r.closest("li.dropdown").addClass("active")),
          r.trigger("activate");
      });
    var n = e.fn.scrollspy;
    (e.fn.scrollspy = function (n) {
      return this.each(function () {
        var r = e(this),
          i = r.data("bs.scrollspy"),
          s = typeof n == "object" && n;
        i || r.data("bs.scrollspy", (i = new t(this, s))),
          typeof n == "string" && i[n]();
      });
    }),
      (e.fn.scrollspy.Constructor = t),
      (e.fn.scrollspy.noConflict = function () {
        return (e.fn.scrollspy = n), this;
      }),
      e(window).on("load", function () {
        e('[data-spy="scroll"]').each(function () {
          var t = e(this);
          t.scrollspy(t.data());
        });
      });
  })(window.jQuery),
  +(function (e) {
    var t = function (t) {
      this.element = e(t);
    };
    (t.prototype.show = function () {
      var t = this.element,
        n = t.closest("ul:not(.dropdown-menu)"),
        r = t.attr("data-target");
      r || ((r = t.attr("href")), (r = r && r.replace(/.*(?=#[^\s]*$)/, "")));
      if (t.parent("li").hasClass("active")) return;
      var i = n.find(".active:last a")[0],
        s = e.Event("show.bs.tab", {
          relatedTarget: i,
        });
      t.trigger(s);
      if (s.isDefaultPrevented()) return;
      var o = e(r);
      this.activate(t.parent("li"), n),
        this.activate(o, o.parent(), function () {
          t.trigger({
            type: "shown.bs.tab",
            relatedTarget: i,
          });
        });
    }),
      (t.prototype.activate = function (t, n, r) {
        function o() {
          i
            .removeClass("active")
            .find("> .dropdown-menu > .active")
            .removeClass("active"),
            t.addClass("active"),
            s ? (t[0].offsetWidth, t.addClass("in")) : t.removeClass("fade"),
            t.parent(".dropdown-menu") &&
              t.closest("li.dropdown").addClass("active"),
            r && r();
        }
        var i = n.find("> .active"),
          s = r && e.support.transition && i.hasClass("fade");
        s ? i.one(e.support.transition.end, o).emulateTransitionEnd(150) : o(),
          i.removeClass("in");
      });
    var n = e.fn.tab;
    (e.fn.tab = function (n) {
      return this.each(function () {
        var r = e(this),
          i = r.data("bs.tab");
        i || r.data("bs.tab", (i = new t(this))),
          typeof n == "string" && i[n]();
      });
    }),
      (e.fn.tab.Constructor = t),
      (e.fn.tab.noConflict = function () {
        return (e.fn.tab = n), this;
      }),
      e(document).on(
        "click.bs.tab.data-api",
        '[data-toggle="tab"], [data-toggle="pill"]',
        function (t) {
          t.preventDefault(), e(this).tab("show");
        }
      );
  })(window.jQuery),
  +(function (e) {
    var t = function (n, r) {
      (this.options = e.extend({}, t.DEFAULTS, r)),
        (this.$window = e(window)
          .on("scroll.bs.affix.data-api", e.proxy(this.checkPosition, this))
          .on(
            "click.bs.affix.data-api",
            e.proxy(this.checkPositionWithEventLoop, this)
          )),
        (this.$element = e(n)),
        (this.affixed = this.unpin = null),
        this.checkPosition();
    };
    (t.RESET = "affix affix-top affix-bottom"),
      (t.DEFAULTS = {
        offset: 0,
      }),
      (t.prototype.checkPositionWithEventLoop = function () {
        setTimeout(e.proxy(this.checkPosition, this), 1);
      }),
      (t.prototype.checkPosition = function () {
        if (!this.$element.is(":visible")) return;
        var n = e(document).height(),
          r = this.$window.scrollTop(),
          i = this.$element.offset(),
          s = this.options.offset,
          o = s.top,
          u = s.bottom;
        typeof s != "object" && (u = o = s),
          typeof o == "function" && (o = s.top()),
          typeof u == "function" && (u = s.bottom());
        var a =
          this.unpin != null && r + this.unpin <= i.top
            ? !1
            : u != null && i.top + this.$element.height() >= n - u
            ? "bottom"
            : o != null && r <= o
            ? "top"
            : !1;
        if (this.affixed === a) return;
        this.unpin && this.$element.css("top", ""),
          (this.affixed = a),
          (this.unpin = a == "bottom" ? i.top - r : null),
          this.$element
            .removeClass(t.RESET)
            .addClass("affix" + (a ? "-" + a : "")),
          a == "bottom" &&
            this.$element.offset({
              top: document.body.offsetHeight - u - this.$element.height(),
            });
      });
    var n = e.fn.affix;
    (e.fn.affix = function (n) {
      return this.each(function () {
        var r = e(this),
          i = r.data("bs.affix"),
          s = typeof n == "object" && n;
        i || r.data("bs.affix", (i = new t(this, s))),
          typeof n == "string" && i[n]();
      });
    }),
      (e.fn.affix.Constructor = t),
      (e.fn.affix.noConflict = function () {
        return (e.fn.affix = n), this;
      }),
      e(window).on("load", function () {
        e('[data-spy="affix"]').each(function () {
          var t = e(this),
            n = t.data();
          (n.offset = n.offset || {}),
            n.offsetBottom && (n.offset.bottom = n.offsetBottom),
            n.offsetTop && (n.offset.top = n.offsetTop),
            t.affix(n);
        });
      });
  })(window.jQuery),
  define(
    "bootstrap",
    ["jquery"],
    (function (e) {
      return function () {
        var t, n;
        return t || e.$.fn.popover;
      };
    })(this)
  ),
  define(
    "views/snippet",
    [
      "jquery",
      "underscore",
      "backbone",
      "text!templates/popover/popover-main.html",
      "text!templates/popover/popover-input.html",
      "text!templates/popover/popover-select.html",
      "text!templates/popover/popover-textarea.html",
      "text!templates/popover/popover-textarea-split.html",
      "text!templates/popover/popover-checkbox.html",
      "templates/snippet/snippet-templates",
      "bootstrap",
    ],
    function (e, t, n, r, i, s, o, u, a, f) {
      return n.View.extend({
        tagName: "div",
        className: "component",
        initialize: function () {
          (this.template = t.template(f[this.model.idFriendlyTitle()])),
            (this.popoverTemplates = {
              input: t.template(i),
              select: t.template(s),
              textarea: t.template(o),
              "textarea-split": t.template(u),
              checkbox: t.template(a),
            });
        },
        render: function (e) {
          var n = this,
            i = t.template(r)({
              title: n.model.get("title"),
              items: n.model.get("fields"),
              popoverTemplates: n.popoverTemplates,
            });
          return e
            ? this.$el.html(n.template(n.model.getValues())).attr({
                "data-content": i,
                "data-title": n.model.get("title"),
                "data-trigger": "manual",
                "data-html": !0,
              })
            : this.$el.html(n.template(n.model.getValues()));
        },
      });
    }
  ),
  define("text!templates/app/temp.html", [], function () {
    return "<form class='form-horizontal col-lg-5' id='temp'>\n  <%= text %>\n</form>\n";
  }),
  define(
    "helper/pubsub",
    ["jquery", "underscore", "backbone"],
    function (e, t, n) {
      return t.extend({}, n.Events);
    }
  ),
  define(
    "views/temp-snippet",
    [
      "jquery",
      "views/snippet",
      "text!templates/app/temp.html",
      "helper/pubsub",
    ],
    function (e, t, n, r) {
      return t.extend({
        initialize: function () {
          r.on("newTempPostRender", this.postRender, this),
            this.constructor.__super__.initialize.call(this),
            (this.tempTemplate = _.template(n));
        },
        className: "drag",
        render: function () {
          return this.$el.html(
            this.tempTemplate({
              text: this.constructor.__super__.render.call(this).html(),
            })
          );
        },
        postRender: function (e) {
          (this.tempForm = this.$el.find("form")[0]),
            (this.halfHeight = Math.floor(this.tempForm.clientHeight / 2)),
            (this.halfWidth = Math.floor(this.tempForm.clientWidth / 2)),
            this.centerOnEvent(e);
        },
        events: {
          mousemove: "mouseMoveHandler",
          mouseup: "mouseUpHandler",
        },
        centerOnEvent: function (e) {
          var t = e.pageX,
            n = e.pageY;
          (this.tempForm.style.top = n - this.halfHeight + "px"),
            (this.tempForm.style.left = t - this.halfWidth + "px"),
            r.trigger("tempMove", e);
        },
        mouseMoveHandler: function (e) {
          e.preventDefault(), this.centerOnEvent(e);
        },
        mouseUpHandler: function (e) {
          e.preventDefault(),
            r.trigger("tempDrop", e, this.model),
            this.remove();
        },
      });
    }
  ),
  define(
    "views/tab-snippet",
    [
      "jquery",
      "underscore",
      "backbone",
      "models/snippet",
      "views/snippet",
      "views/temp-snippet",
      "helper/pubsub",
    ],
    function (e, t, n, r, i, s, o) {
      return i.extend({
        events: {
          mousedown: "mouseDownHandler",
        },
        mouseDownHandler: function (t) {
          t.preventDefault(),
            t.stopPropagation(),
            e(".popover").hide(),
            e("body").append(
              new s({
                model: new r(e.extend(!0, {}, this.model.attributes)),
              }).render()
            ),
            o.trigger("newTempPostRender", t);
        },
      });
    }
  ),
  define(
    "collections/snippets",
    ["jquery", "underscore", "backbone", "models/snippet", "views/tab-snippet"],
    function (e, t, n, r, i) {
      return n.Collection.extend({
        model: r,
        renderAll: function () {
          return this.map(function (e) {
            return new i({
              model: e,
            }).render();
          });
        },
      });
    }
  ),
  define(
    "views/my-form-snippet",
    [
      "jquery",
      "underscore",
      "backbone",
      "views/snippet",
      "views/temp-snippet",
      "helper/pubsub",
    ],
    function (e, t, n, r, i, s) {
      return r.extend({
        events: {
          click: "preventPropagation",
          mousedown: "mouseDownHandler",
          mouseup: "mouseUpHandler",
        },
        mouseDownHandler: function (t) {
          t.stopPropagation(), t.preventDefault();
          var n = this;
          e(".popover").remove(),
            this.$el
              .popover({
                placement: "left",
              })
              .popover("show"),
            e(".popover #save").on("click", this.saveHandler(n)),
            e(".popover #cancel").on("click", this.cancelHandler(n)),
            this.model.get("title") !== "Form Name" &&
              e("body").on("mousemove", function (e) {
                if (
                  Math.abs(t.pageX - e.pageX) > 10 ||
                  Math.abs(t.pageY - e.pageY) > 10
                )
                  n.$el.popover("destroy"),
                    s.trigger("mySnippetDrag", t, n.model),
                    n.mouseUpHandler();
              });
        },
        preventPropagation: function (e) {
          e.stopPropagation(), e.preventDefault();
        },
        mouseUpHandler: function (t) {
          e("body").off("mousemove");
        },
        saveHandler: function (n) {
          return function (r) {
            r.preventDefault();
            var i = e(".popover .field");
            t.each(i, function (r) {
              //   debugger;
              var i = e(r),
                s = i.attr("data-type"),
                o = i.attr("id");
              switch (s) {
                case "checkbox1":
                  n.model.setField(o, i.is(":checked"));
                  break;
                case "input":
                  n.model.setField(o, i.val());
                  break;
                case "textarea":
                  n.model.setField(o, i.val());
                  break;
                case "textarea-split":
                  n.model.setField(
                    o,
                    t
                      .chain(i.val().split("\n"))
                      .map(function (t) {
                        return e.trim(t);
                      })
                      .filter(function (e) {
                        return e.length > 0;
                      })
                      .value()
                  );
                  break;
                case "select":
                  var u = t.map(i.find("option"), function (t) {
                    return {
                      value: t.value,
                      selected: t.selected,
                      label: e(t).text(),
                    };
                  });
                  n.model.setField(o, u);
              }
            }),
              n.model.trigger("change"),
              e(".popover").remove();
          };
        },
        cancelHandler: function (t) {
          return function (n) {
            n.preventDefault(),
              e(".popover").remove(),
              t.model.trigger("change");
          };
        },
      });
    }
  ),
  define(
    "collections/my-form-snippets",
    [
      "jquery",
      "underscore",
      "backbone",
      "models/snippet",
      "collections/snippets",
      "views/my-form-snippet",
    ],
    function (e, t, n, r, i, s) {
      return i.extend({
        model: r,
        renderAll: function () {
          return this.map(function (e) {
            return new s({
              model: e,
            }).render(!0);
          });
        },
        renderAllClean: function () {
          return this.map(function (e) {
            return new s({
              model: e,
            }).render(!1);
          });
        },
      });
    }
  ),
  define("text!templates/app/tab-nav.html", [], function () {
    return '<li><a href="#<%= id %>" data-toggle="tab"><%= title %></a></li>\n';
  }),
  define(
    "views/tab",
    ["jquery", "underscore", "backbone", "text!templates/app/tab-nav.html"],
    function (e, t, n, r) {
      return n.View.extend({
        tagName: "div",
        className: "tab-pane",
        initialize: function () {
          (this.id = this.options.title.toLowerCase().replace(/\W/g, "")),
            (this.tabNavTemplate = t.template(r)),
            this.render();
        },
        render: function () {
          var n = this;
          n.collection !== undefined
            ? t.each(this.collection.renderAll(), function (e) {
                n.$el.append(e);
              })
            : n.options.content && n.$el.append(n.options.content),
            e("#formtabs").append(
              this.tabNavTemplate({
                title: this.options.title,
                id: this.id,
              })
            ),
            this.$el.attr("id", this.id),
            this.$el.appendTo(".tab-content"),
            this.delegateEvents();
        },
      });
    }
  ),
  define("text!templates/app/renderform.html", [], function () {
    return '<form class="form-horizontal">\n<fieldset>\n\n<%= text %>\n</fieldset>\n</form>\n';
  }),
  define("Guid", function () {}),
  define(
    "views/my-form",
    [
      "jquery",
      "underscore",
      "backbone",
      "views/temp-snippet",
      "helper/pubsub",
      "text!templates/app/renderform.html",
      "Guid",
    ],
    function (e, t, n, r, i, s) {
      return n.View.extend({
        tagName: "fieldset",
        initialize: function () {
          this.collection.on("add", this.render, this),
            this.collection.on("remove", this.render, this),
            this.collection.on("change", this.render, this),
            i.on("mySnippetDrag", this.handleSnippetDrag, this),
            i.on("tempMove", this.handleTempMove, this),
            i.on("tempDrop", this.handleTempDrop, this),
            (this.$build = e("#build")),
            (this.build = document.getElementById("build")),
            (this.buildBCR = this.build.getBoundingClientRect()),
            (this.renderForm = t.template(s)),
            this.render();
        },
        render: function () {
          this.$el.empty();
          var n = this;
          t.each(this.collection.renderAll(), function (e) {
            n.$el.append(e);
          }),
            e("#render").val(
              n.renderForm({
                text: t
                  .map(this.collection.renderAllClean(), function (e) {
                    return e.html();
                  })
                  .join("\n"),
              })
            ),
            this.$el.appendTo("#build form"),
            this.delegateEvents();
        },
        getBottomAbove: function (n) {
          var r = e(this.$el.find(".component")),
            i = t.find(r, function (t) {
              return e(t).position().top + e(t).height() > n - 160 ? !0 : !1;
            });
          return i ? i : r[0];
        },
        handleSnippetDrag: function (t, n) {
          e("body").append(
            new r({
              model: n,
            }).render()
          ),
            this.collection.remove(n),
            i.trigger("newTempPostRender", t);
        },
        handleTempMove: function (t) {
          e(".target").removeClass("target"),
            t.pageX >= this.buildBCR.left &&
            t.pageX < this.$build.width() + this.buildBCR.left &&
            t.pageY >= this.buildBCR.top &&
            t.pageY < this.$build.height() + this.buildBCR.top
              ? e(this.getBottomAbove(t.pageY)).addClass("target")
              : e(".target").removeClass("target");
        },
        handleTempDrop: function (t, n, r) {
          if (
            t.pageX >= this.buildBCR.left &&
            t.pageX < this.$build.width() + this.buildBCR.left &&
            t.pageY >= this.buildBCR.top &&
            t.pageY < this.$build.height() + this.buildBCR.top
          ) {
            var r = e(".target").index();
            e(".target").removeClass("target"),
              this.collection.add(n, {
                at: r + 1,
              });
          } else e(".target").removeClass("target");
        },
      });
    }
  ),
  define("text!data/input.json", [], function () {
    return '[\n  {\n    "title": "Text Input",\n    "fields": {\n      "id": {\n        "label": "ID / Name",\n        "type": "input",\n        "value": "textinput"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Text Input"\n      },\n      "placeholder": {\n        "label": "Placeholder",\n        "type": "input",\n        "value": "placeholder"\n      },\n      "helptext": {\n        "label": "Help Text",\n        "type": "input",\n        "value": "help"\n      },\n      "required": {\n        "label": "Required",\n        "type": "checkbox",\n        "value": false\n      },\n      "inputsize": {\n        "label": "Input Size",\n        "type": "select",\n        "value": [\n          {\n            "value": "col-md-1",\n            "label": "Mini",\n            "selected": false\n          },\n          {\n            "value": "col-md-2",\n            "label": "Small",\n            "selected": false\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Medium",\n            "selected": true\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Large",\n            "selected": false\n          },\n          {\n            "value": "col-md-6",\n            "label": "Xlarge",\n            "selected": false\n          },\n          {\n            "value": "col-md-8",\n            "label": "Xxlarge",\n            "selected": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    "title": "Password Input",\n    "fields": {\n      "id": {\n        "label": "ID / Name",\n        "type": "input",\n        "value": "passwordinput"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Password Input"\n      },\n      "placeholder": {\n        "label": "Placeholder",\n        "type": "input",\n        "value": "placeholder"\n      },\n      "helptext": {\n        "label": "Help Text",\n        "type": "input",\n        "value": "help"\n      },\n      "required": {\n        "label": "Required",\n        "type": "checkbox",\n        "value": false\n      },\n      "inputsize": {\n        "label": "Input Size",\n        "type": "select",\n        "value": [\n          {\n            "value": "col-md-1",\n            "label": "Mini",\n            "selected": false\n          },\n          {\n            "value": "col-md-2",\n            "label": "Small",\n            "selected": false\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Medium",\n            "selected": true\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Large",\n            "selected": false\n          },\n          {\n            "value": "col-md-6",\n            "label": "Xlarge",\n            "selected": false\n          },\n          {\n            "value": "col-md-8",\n            "label": "Xxlarge",\n            "selected": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    "title": "Search Input",\n    "fields": {\n      "id": {\n        "label": "ID / Name",\n        "type": "input",\n        "value": "searchinput"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Search Input"\n      },\n      "placeholder": {\n        "label": "Placeholder",\n        "type": "input",\n        "value": "placeholder"\n      },\n      "helptext": {\n        "label": "Help Text",\n        "type": "input",\n        "value": "help"\n      },\n      "required": {\n        "label": "Required",\n        "type": "checkbox",\n        "value": false\n      },\n      "inputsize": {\n        "label": "Input Size",\n        "type": "select",\n        "value": [\n          {\n            "value": "col-md-1",\n            "label": "Mini",\n            "selected": false\n          },\n          {\n            "value": "col-md-2",\n            "label": "Small",\n            "selected": false\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Medium",\n            "selected": true\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Large",\n            "selected": false\n          },\n          {\n            "value": "col-md-6",\n            "label": "Xlarge",\n            "selected": false\n          },\n          {\n            "value": "col-md-8",\n            "label": "Xxlarge",\n            "selected": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    "title": "Prepended Text",\n    "fields": {\n      "id": {\n        "label": "ID / Name",\n        "type": "input",\n        "value": "prependedtext"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Prepended Text"\n      },\n      "prepend": {\n        "label": "Prepend",\n        "type": "input",\n        "value": "prepend"\n      },\n      "placeholder": {\n        "label": "Placeholder",\n        "type": "input",\n        "value": "placeholder"\n      },\n      "helptext": {\n        "label": "Help Text",\n        "type": "input",\n        "value": "help"\n      },\n      "required": {\n        "label": "Required",\n        "type": "checkbox",\n        "value": false\n      },\n      "inputsize": {\n        "label": "Input Size",\n        "type": "select",\n        "value": [\n          {\n            "value": "col-md-1",\n            "label": "Mini",\n            "selected": false\n          },\n          {\n            "value": "col-md-2",\n            "label": "Small",\n            "selected": false\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Medium",\n            "selected": true\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Large",\n            "selected": false\n          },\n          {\n            "value": "col-md-6",\n            "label": "Xlarge",\n            "selected": false\n          },\n          {\n            "value": "col-md-8",\n            "label": "Xxlarge",\n            "selected": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    "title": "Appended Text",\n    "fields": {\n      "id": {\n        "label": "ID / Name",\n        "type": "input",\n        "value": "appendedtext"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Appended Text"\n      },\n      "append": {\n        "label": "Append",\n        "type": "input",\n        "value": "append"\n      },\n      "placeholder": {\n        "label": "Placeholder",\n        "type": "input",\n        "value": "placeholder"\n      },\n      "helptext": {\n        "label": "Help Text",\n        "type": "input",\n        "value": "help"\n      },\n      "required": {\n        "label": "Required",\n        "type": "checkbox",\n        "value": false\n      },\n      "inputsize": {\n        "label": "Input Size",\n        "type": "select",\n        "value": [\n          {\n            "value": "col-md-1",\n            "label": "Mini",\n            "selected": false\n          },\n          {\n            "value": "col-md-2",\n            "label": "Small",\n            "selected": false\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Medium",\n            "selected": true\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Large",\n            "selected": false\n          },\n          {\n            "value": "col-md-6",\n            "label": "Xlarge",\n            "selected": false\n          },\n          {\n            "value": "col-md-8",\n            "label": "Xxlarge",\n            "selected": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    "title": "Prepended Checkbox",\n    "fields": {\n      "id": {\n        "label": "ID / Name",\n        "type": "input",\n        "value": "prependedcheckbox"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Prepended Checkbox"\n      },\n      "placeholder": {\n        "label": "Placeholder",\n        "type": "input",\n        "value": "placeholder"\n      },\n      "helptext": {\n        "label": "Help Text",\n        "type": "input",\n        "value": "help"\n      },\n      "checked": {\n        "label": "Checked",\n        "type": "checkbox",\n        "value": false\n      },\n      "required": {\n        "label": "Required",\n        "type": "checkbox",\n        "value": false\n      },\n      "inputsize": {\n        "label": "Input Size",\n        "type": "select",\n        "value": [\n          {\n            "value": "col-md-1",\n            "label": "Mini",\n            "selected": false\n          },\n          {\n            "value": "col-md-2",\n            "label": "Small",\n            "selected": false\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Medium",\n            "selected": true\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Large",\n            "selected": false\n          },\n          {\n            "value": "col-md-6",\n            "label": "Xlarge",\n            "selected": false\n          },\n          {\n            "value": "col-md-8",\n            "label": "Xxlarge",\n            "selected": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    "title": "Appended Checkbox",\n    "fields": {\n      "id": {\n        "label": "ID / Name",\n        "type": "input",\n        "value": "appendedcheckbox"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Appended Checkbox"\n      },\n      "placeholder": {\n        "label": "Placeholder",\n        "type": "input",\n        "value": "placeholder"\n      },\n      "helptext": {\n        "label": "Help Text",\n        "type": "input",\n        "value": "help"\n      },\n      "checked": {\n        "label": "Checked",\n        "type": "checkbox",\n        "value": false\n      },\n      "required": {\n        "label": "Required",\n        "type": "checkbox",\n        "value": false\n      },\n      "inputsize": {\n        "label": "Input Size",\n        "type": "select",\n        "value": [\n          {\n            "value": "col-md-1",\n            "label": "Mini",\n            "selected": false\n          },\n          {\n            "value": "col-md-2",\n            "label": "Small",\n            "selected": false\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Medium",\n            "selected": true\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Large",\n            "selected": false\n          },\n          {\n            "value": "col-md-6",\n            "label": "Xlarge",\n            "selected": false\n          },\n          {\n            "value": "col-md-8",\n            "label": "Xxlarge",\n            "selected": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    "title": "Button Drop Down",\n    "fields": {\n      "id": {\n        "label": "ID / Name",\n        "type": "input",\n        "value": "buttondropdown"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Button Drop Down"\n      },\n      "placeholder": {\n        "label": "Placeholder",\n        "type": "input",\n        "value": "placeholder"\n      },\n      "buttontext": {\n        "label": "Button Text",\n        "type": "input",\n        "value": "Action"\n      },\n      "buttonoptions": {\n        "label": "Options",\n        "type": "textarea-split",\n        "value": [\n          "Option one",\n          "Option two",\n          "Option three"\n        ]\n      },\n      "required": {\n        "label": "Required",\n        "type": "checkbox",\n        "value": false\n      },\n      "inputsize": {\n        "label": "Input Size",\n        "type": "select",\n        "value": [\n          {\n            "value": "col-md-1",\n            "label": "Mini",\n            "selected": false\n          },\n          {\n            "value": "col-md-2",\n            "label": "Small",\n            "selected": false\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Medium",\n            "selected": true\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Large",\n            "selected": false\n          },\n          {\n            "value": "col-md-6",\n            "label": "Xlarge",\n            "selected": false\n          },\n          {\n            "value": "col-md-8",\n            "label": "Xxlarge",\n            "selected": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    "title": "Text Area",\n    "fields": {\n      "id": {\n        "label": "ID / Name",\n        "type": "input",\n        "value": "textarea"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Text Area"\n      },\n      "textarea": {\n        "label": "Starting Text",\n        "type": "textarea",\n        "value": "default text"\n      }\n    }\n  }\n]';
  }),
  define("text!data/radio.json", [], function () {
    return '[\n  {\n    "title": "Multiple Radios",\n    "fields": {\n      "name": {\n        "label": "Group Name",\n        "type": "input",\n        "value": "radios"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Multiple Radios"\n      },\n      "radios": {\n        "label": "Radios",\n        "type": "textarea-split",\n        "value": [\n          "Option one",\n          "Option two"\n        ]\n      },\n		"radiosValues" :{\n			"label" : "Radios Values",\n			"type" : "textarea-split",\n			"value" :[\n				"1",\n				"2"\n			] \n		}\n    }\n  },\n  {\n    "title": "Multiple Radios Inline",\n    "fields": {\n      "name": {\n        "label": "Group Name",\n        "type": "input",\n        "value": "radios"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Inline Radios"\n      },\n      "radios": {\n        "label": "Radios",\n        "type": "textarea-split",\n        "value": [\n          1,\n          2,\n          3,\n          4\n        ]\n      },\n		"radiosValues" :{\n			"label" : "Radios Values",\n			"type" : "textarea-split",\n			"value" :[\n				"1",\n				"2",\n				"3",\n				"4"\n			] \n		}\n    }\n  },\n  {\n    "title": "Multiple Checkboxes",\n    "fields": {\n      "name": {\n        "label": "Group Name",\n        "type": "input",\n        "value": "checkboxes"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Multiple Checkboxes"\n      },\n      "checkboxes": {\n        "label": "Checkboxes",\n        "type": "textarea-split",\n        "value": [\n          "Option one",\n          "Option two"\n        ]\n      },\n	  "checkboxesValues":{\n		"label" : "Checkboxes Values",\n		"type" : "textarea-split",\n		"value" : [\n			"1",\n			"2"\n		]		\n	  }\n    }\n  },\n  {\n    "title": "Multiple Checkboxes Inline",\n    "fields": {\n      "name": {\n        "label": "Group Name",\n        "type": "input",\n        "value": "checkboxes"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Inline Checkboxes"\n      },\n      "checkboxes": {\n        "label": "Checkboxes",\n        "type": "textarea-split",\n        "value": [\n          1,\n          2,\n          3,\n          4\n        ]\n      },\n	  "checkboxesValues":{\n		"label" : "Checkboxes Values",\n		"type" : "textarea-split",\n		"value" : [\n			"1",\n			"2",\n			"3",\n			"4"\n		]		\n	  }\n    }\n  }\n]';
  }),
  define("text!data/select.json", [], function () {
    return '[\n  {\n    "title": "Select Basic",\n    "fields": {\n      "id": {\n        "label": "ID / Name",\n        "type": "input",\n        "value": "selectbasic"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Select Basic"\n      },\n      "options": {\n        "label": "Options",\n        "type": "textarea-split",\n        "value": [\n          "Option one",\n          "Option two"\n        ]\n      },\n      "values":{\n			"label": "Values",\n         "type": "textarea-split",\n         "value": [\n           "1",\n           "2"\n        ]\n      },\n      "inputsize": {\n        "label": "Input Size",\n        "type": "select",\n        "value": [\n          {\n            "value": "col-md-1",\n            "label": "Mini",\n            "selected": false\n          },\n          {\n            "value": "col-md-2",\n            "label": "Small",\n            "selected": false\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Medium",\n            "selected": true\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Large",\n            "selected": false\n          },\n          {\n            "value": "col-md-6",\n            "label": "Xlarge",\n            "selected": false\n          },\n          {\n            "value": "col-md-8",\n            "label": "Xxlarge",\n            "selected": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    "title": "Select Multiple",\n    "fields": {\n      "id": {\n        "label": "ID / Name",\n        "type": "input",\n        "value": "selectmultiple"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Select Multiple"\n      },\n      "options": {\n        "label": "Options",\n        "type": "textarea-split",\n        "value": [\n          "Option one",\n          "Option two"\n        ]\n      },\n      "values":{\n			"label": "Values",\n         "type": "textarea-split",\n         "value": [\n           "1",\n           "2"\n        ]\n      },\n      "inputsize": {\n        "label": "Input Size",\n        "type": "select",\n        "value": [\n          {\n            "value": "col-md-1",\n            "label": "Mini",\n            "selected": false\n          },\n          {\n            "value": "col-md-2",\n            "label": "Small",\n            "selected": false\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Medium",\n            "selected": true\n          },\n          {\n            "value": "col-lg-12",\n            "label": "Large",\n            "selected": false\n          },\n          {\n            "value": "col-md-6",\n            "label": "Xlarge",\n            "selected": false\n          },\n          {\n            "value": "col-md-8",\n            "label": "Xxlarge",\n            "selected": false\n          }\n        ]\n      }\n    }\n  }\n]';
  }),
  define("text!data/buttons.json", [], function () {
    return '[\n  {\n    "title": "File Button",\n    "fields": {\n      "id": {\n        "label": "ID / Name",\n        "type": "input",\n        "value": "filebutton"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "File Button"\n      }\n    }\n  },\n  {\n    "title": "Single Button",\n    "fields": {\n      "id": {\n        "label": "ID / Name",\n        "type": "input",\n        "value": "singlebutton"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Single Button"\n      },\n      "buttonlabel": {\n        "label": "Button Label",\n        "type": "input",\n        "value": "Button"\n      },\n      "buttontype": {\n        "label": "Button Type",\n        "type": "select",\n        "value": [\n          {\n            "value": "btn-default",\n            "label": "Default",\n            "selected": false\n          },\n          {\n            "value": "btn-primary",\n            "label": "Primary",\n            "selected": true\n          },\n          {\n            "value": "btn-info",\n            "label": "Info",\n            "selected": false\n          },\n          {\n            "value": "btn-success",\n            "label": "Success",\n            "selected": false\n          },\n          {\n            "value": "btn-warning",\n            "label": "Warning",\n            "selected": false\n          },\n          {\n            "value": "btn-danger",\n            "label": "Danger",\n            "selected": false\n          },\n          {\n            "value": "btn-inverse",\n            "label": "Inverse",\n            "selected": false\n          }\n        ]\n      }\n    }\n  },\n  {\n    "title": "Double Button",\n    "fields": {\n      "id": {\n        "label": "Button 1 ID / Name",\n        "type": "input",\n        "value": "button1id"\n      },\n      "label": {\n        "label": "Label Text",\n        "type": "input",\n        "value": "Double Button"\n      },\n      "button1label": {\n        "label": "Button Label",\n        "type": "input",\n        "value": "Good Button"\n      },\n      "button1type": {\n        "label": "Button Type",\n        "type": "select",\n        "value": [\n          {\n            "value": "btn-default",\n            "label": "Default",\n            "selected": false\n          },\n          {\n            "value": "btn-primary",\n            "label": "Primary",\n            "selected": false\n          },\n          {\n            "value": "btn-info",\n            "label": "Info",\n            "selected": false\n          },\n          {\n            "value": "btn-success",\n            "label": "Success",\n            "selected": true\n          },\n          {\n            "value": "btn-warning",\n            "label": "Warning",\n            "selected": false\n          },\n          {\n            "value": "btn-danger",\n            "label": "Danger",\n            "selected": false\n          },\n          {\n            "value": "btn-inverse",\n            "label": "Inverse",\n            "selected": false\n          }\n        ]\n      },\n      "id2": {\n        "label": "Button 2 ID / Name",\n        "type": "input",\n        "value": "button2id"\n      },\n      "button2label": {\n        "label": "Button Label",\n        "type": "input",\n        "value": "Scary Button"\n      },\n      "button2type": {\n        "label": "Button Type",\n        "type": "select",\n        "value": [\n          {\n            "value": "btn-default",\n            "label": "Default",\n            "selected": false\n          },\n          {\n            "value": "btn-primary",\n            "label": "Primary",\n            "selected": false\n          },\n          {\n            "value": "btn-info",\n            "label": "Info",\n            "selected": false\n          },\n          {\n            "value": "btn-success",\n            "label": "Success",\n            "selected": false\n          },\n          {\n            "value": "btn-warning",\n            "label": "Warning",\n            "selected": false\n          },\n          {\n            "value": "btn-danger",\n            "label": "Danger",\n            "selected": true\n          },\n          {\n            "value": "btn-inverse",\n            "label": "Inverse",\n            "selected": false\n          }\n        ]\n      }\n    }\n  }\n]';
  }),
  define("text!templates/app/render.html", [], function () {
    return '<h6>Rendered source of your form:</h6>\n<textarea id="render" class="render p-3"></textarea>\n';
  }),
  define(
    "app/app",
    [
      "jquery",
      "underscore",
      "backbone",
      "collections/snippets",
      "collections/my-form-snippets",
      "views/tab",
      "views/my-form",
      "text!data/input.json",
      "text!data/radio.json",
      "text!data/select.json",
      "text!data/buttons.json",
      "text!templates/app/render.html",
    ],
    function (e, t, n, r, i, s, o, u, a, f, l, c, h) {
      return {
        initialize: function () {
          new s({
            title: "Input",
            collection: new r(JSON.parse(u)),
          }),
            new s({
              title: "Radios / Checkboxes",
              collection: new r(JSON.parse(a)),
            }),
            new s({
              title: "Select",
              collection: new r(JSON.parse(f)),
            }),
            new s({
              title: "Buttons",
              collection: new r(JSON.parse(l)),
            }),
            new s({
              title: "View HTML",
              content: c,
            }),
            e("#components .tab-pane").first().addClass("active"),
            e("#formtabs li").addClass("nav-item"),
            e("#formtabs li a")
              .addClass("nav-link m-r-5")
              .first()
              .addClass("active"),
            new o({
              title: "Original",
              collection: new i([
                {
                  title: "Form Name",
                  fields: {
                    name: {
                      label: "Form Name",
                      type: "input",
                      value: "Form Name",
                    },
                  },
                },
              ]),
            });
        },
      };
    }
  ),
  require.config({
    baseUrl: "assets/js/lib/",
    shim: {
      backbone: {
        deps: ["underscore", "jquery"],
        exports: "Backbone",
      },
      underscore: {
        exports: "_",
      },
      bootstrap: {
        deps: ["jquery"],
        exports: "$.fn.popover",
      },
    },
    paths: {
      app: "..",
      collections: "../collections",
      data: "../data",
      models: "../models",
      helper: "../helper",
      templates: "../templates",
      views: "../views",
    },
  }),
  require(["app/app"], function (e) {
    e.initialize();
  }),
  define("../main", function () {});
