text: /*!
   * Bootstrap v4.3.1 (https://getbootstrap.com/)
   * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   */
  ! function(t, e) {
      "object" == typeof exports && "undefined" != typeof module ? e(exports, require("jquery")) : "function" == typeof define && define.amd ? define(["exports", "jquery"], e) : e((t = t || self).bootstrap = {}, t.jQuery)
  }(this, function(t, p) {
      "use strict";
  
      function i(t, e) {
          for (var n = 0; n < e.length; n++) {
              var i = e[n];
              i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i)
          }
      }
  
      function s(t, e, n) {
          return e && i(t.prototype, e), n && i(t, n), t
      }
  
      function l(o) {
          for (var t = 1; t < arguments.length; t++) {
              var r = null != arguments[t] ? arguments[t] : {},
                  e = Object.keys(r);
              "function" == typeof Object.getOwnPropertySymbols && (e = e.concat(Object.getOwnPropertySymbols(r).filter(function(t) {
                  return Object.getOwnPropertyDescriptor(r, t).enumerable
              }))), e.forEach(function(t) {
                  var e, n, i;
                  e = o, i = r[n = t], n in e ? Object.defineProperty(e, n, {
                      value: i,
                      enumerable: !0,
                      configurable: !0,
                      writable: !0
                  }) : e[n] = i
              })
          }
          return o
      }
      p = p && p.hasOwnProperty("default") ? p.default : p;
      var e = "transitionend";
  
      function n(t) {
          var e = this,
              n = !1;
          return p(this).one(m.TRANSITION_END, function() {
              n = !0
          }), setTimeout(function() {
              n || m.triggerTransitionEnd(e)
          }, t), this
      }
      var m = {
          TRANSITION_END: "bsTransitionEnd",
          getUID: function(t) {
              for (; t += ~~(1e6 * Math.random()), document.getElementById(t););
              return t
          },
          getSelectorFromElement: function(t) {
              var e = t.getAttribute("data-target");
              if (!e || "#" === e) {
                  var n = t.getAttribute("href");
                  e = n && "#" !== n ? n.trim() : ""
              }
              try {
                  return document.querySelector(e) ? e : null
              } catch (t) {
                  return null
              }
          },
          getTransitionDurationFromElement: function(t) {
              if (!t) return 0;
              var e = p(t).css("transition-duration"),
                  n = p(t).css("transition-delay"),
                  i = parseFloat(e),
                  o = parseFloat(n);
              return i || o ? (e = e.split(",")[0], n = n.split(",")[0], 1e3 * (parseFloat(e) + parseFloat(n))) : 0
          },
          reflow: function(t) {
              return t.offsetHeight
          },
          triggerTransitionEnd: function(t) {
              p(t).trigger(e)
          },
          supportsTransitionEnd: function() {
              return Boolean(e)
          },
          isElement: function(t) {
              return (t[0] || t).nodeType
          },
          typeCheckConfig: function(t, e, n) {
              for (var i in n)
                  if (Object.prototype.hasOwnProperty.call(n, i)) {
                      var o = n[i],
                          r = e[i],
                          s = r && m.isElement(r) ? "element" : (a = r, {}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());
                      if (!new RegExp(o).test(s)) throw new Error(t.toUpperCase() + ': Option "' + i + '" provided type "' + s + '" but expected type "' + o + '".')
                  }
              var a
          },
          findShadowRoot: function(t) {
              if (!document.documentElement.attachShadow) return null;
              if ("function" != typeof t.getRootNode) return t instanceof ShadowRoot ? t : t.parentNode ? m.findShadowRoot(t.parentNode) : null;
              var e = t.getRootNode();
              return e instanceof ShadowRoot ? e : null
          }
      };
      p.fn.emulateTransitionEnd = n, p.event.special[m.TRANSITION_END] = {
          bindType: e,
          delegateType: e,
          handle: function(t) {
              if (p(t.target).is(this)) return t.handleObj.handler.apply(this, arguments)
          }
      };
      var o = "alert",
          r = "bs.alert",
          a = "." + r,
          c = p.fn[o],
          h = {
              CLOSE: "close" + a,
              CLOSED: "closed" + a,
              CLICK_DATA_API: "click" + a + ".data-api"
          },
          u = "alert",
          f = "fade",
          d = "show",
          g = function() {
              function i(t) {
                  this._element = t
              }
              var t = i.prototype;
              return t.close = function(t) {
                  var e = this._element;
                  t && (e = this._getRootElement(t)), this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e)
              }, t.dispose = function() {
                  p.removeData(this._element, r), this._element = null
              }, t._getRootElement = function(t) {
                  var e = m.getSelectorFromElement(t),
                      n = !1;
                  return e && (n = document.querySelector(e)), n || (n = p(t).closest("." + u)[0]), n
              }, t._triggerCloseEvent = function(t) {
                  var e = p.Event(h.CLOSE);
                  return p(t).trigger(e), e
              }, t._removeElement = function(e) {
                  var n = this;
                  if (p(e).removeClass(d), p(e).hasClass(f)) {
                      var t = m.getTransitionDurationFromElement(e);
                      p(e).one(m.TRANSITION_END, function(t) {
                          return n._destroyElement(e, t)
                      }).emulateTransitionEnd(t)
                  } else this._destroyElement(e)
              }, t._destroyElement = function(t) {
                  p(t).detach().trigger(h.CLOSED).remove()
              }, i._jQueryInterface = function(n) {
                  return this.each(function() {
                      var t = p(this),
                          e = t.data(r);
                      e || (e = new i(this), t.data(r, e)), "close" === n && e[n](this)
                  })
              }, i._handleDismiss = function(e) {
                  return function(t) {
                      t && t.preventDefault(), e.close(this)
                  }
              }, s(i, null, [{
                  key: "VERSION",
                  get: function() {
                      return "4.3.1"
                  }
              }]), i
          }();
      p(document).on(h.CLICK_DATA_API, '[data-dismiss="alert"]', g._handleDismiss(new g)), p.fn[o] = g._jQueryInterface, p.fn[o].Constructor = g, p.fn[o].noConflict = function() {
          return p.fn[o] = c, g._jQueryInterface
      };
      var _ = "button",
          v = "bs.button",
          y = "." + v,
          E = ".data-api",
          b = p.fn[_],
          w = "active",
          C = "btn",
          T = "focus",
          S = '[data-toggle^="button"]',
          D = '[data-toggle="buttons"]',
          I = 'input:not([type="hidden"])',
          A = ".active",
          O = ".btn",
          N = {
              CLICK_DATA_API: "click" + y + E,
              FOCUS_BLUR_DATA_API: "focus" + y + E + " blur" + y + E
          },
          k = function() {
              function n(t) {
                  this._element = t
              }
              var t = n.prototype;
              return t.toggle = function() {
                  var t = !0,
                      e = !0,
                      n = p(this._element).closest(D)[0];
                  if (n) {
                      var i = this._element.querySelector(I);
                      if (i) {
                          if ("radio" === i.type)
                              if (i.checked && this._element.classList.contains(w)) t = !1;
                              else {
                                  var o = n.querySelector(A);
                                  o && p(o).removeClass(w)
                              }
                          if (t) {
                              if (i.hasAttribute("disabled") || n.hasAttribute("disabled") || i.classList.contains("disabled") || n.classList.contains("disabled")) return;
                              i.checked = !this._element.classList.contains(w), p(i).trigger("change")
                          }
                          i.focus(), e = !1
                      }
                  }
                  e && this._element.setAttribute("aria-pressed", !this._element.classList.contains(w)), t && p(this._element).toggleClass(w)
              }, t.dispose = function() {
                  p.removeData(this._element, v), this._element = null
              }, n._jQueryInterface = function(e) {
                  return this.each(function() {
                      var t = p(this).data(v);
                      t || (t = new n(this), p(this).data(v, t)), "toggle" === e && t[e]()
                  })
              }, s(n, null, [{
                  key: "VERSION",
                  get: function() {
                      return "4.3.1"
                  }
              }]), n
          }();
      p(document).on(N.CLICK_DATA_API, S, function(t) {
          t.preventDefault();
          var e = t.target;
          p(e).hasClass(C) || (e = p(e).closest(O)), k._jQueryInterface.call(p(e), "toggle")
      }).on(N.FOCUS_BLUR_DATA_API, S, function(t) {
          var e = p(t.target).closest(O)[0];
          p(e).toggleClass(T, /^focus(in)?$/.test(t.type))
      }), p.fn[_] = k._jQueryInterface, p.fn[_].Constructor = k, p.fn[_].noConflict = function() {
          return p.fn[_] = b, k._jQueryInterface
      };
      var L = "carousel",
          x = "bs.carousel",
          P = "." + x,
          H = ".data-api",
          j = p.fn[L],
          R = {
              interval: 5e3,
              keyboard: !0,
              slide: !1,
              pause: "hover",
              wrap: !0,
              touch: !0
          },
          F = {
              interval: "(number|boolean)",
              keyboard: "boolean",
              slide: "(boolean|string)",
              pause: "(string|boolean)",
              wrap: "boolean",
              touch: "boolean"
          },
          M = "next",
          W = "prev",
          U = "left",
          B = "right",
          q = {
              SLIDE: "slide" + P,
              SLID: "slid" + P,
              KEYDOWN: "keydown" + P,
              MOUSEENTER: "mouseenter" + P,
              MOUSELEAVE: "mouseleave" + P,
              TOUCHSTART: "touchstart" + P,
              TOUCHMOVE: "touchmove" + P,
              TOUCHEND: "touchend" + P,
              POINTERDOWN: "pointerdown" + P,
              POINTERUP: "pointerup" + P,
              DRAG_START: "dragstart" + P,
              LOAD_DATA_API: "load" + P + H,
              CLICK_DATA_API: "click" + P + H
          },
          K = "carousel",
          Q = "active",
          V = "slide",
          Y = "carousel-item-right",
          z = "carousel-item-left",
          X = "carousel-item-next",
          G = "carousel-item-prev",
          $ = "pointer-event",
          J = ".active",
          Z = ".active.carousel-item",
          tt = ".carousel-item",
          et = ".carousel-item img",
          nt = ".carousel-item-next, .carousel-item-prev",
          it = ".carousel-indicators",
          ot = "[data-slide], [data-slide-to]",
          rt = '[data-ride="carousel"]',
          st = {
              TOUCH: "touch",
              PEN: "pen"
          },
          at = function() {
              function r(t, e) {
                  this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(e), this._element = t, this._indicatorsElement = this._element.querySelector(it), this._touchSupported = "ontouchstart" in document.documentElement || 0 < navigator.maxTouchPoints, this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent), this._addEventListeners()
              }
              var t = r.prototype;
              return t.next = function() {
                  this._isSliding || this._slide(M)
              }, t.nextWhenVisible = function() {
                  !document.hidden && p(this._element).is(":visible") && "hidden" !== p(this._element).css("visibility") && this.next()
              }, t.prev = function() {
                  this._isSliding || this._slide(W)
              }, t.pause = function(t) {
                  t || (this._isPaused = !0), this._element.querySelector(nt) && (m.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null
              }, t.cycle = function(t) {
                  t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval))
              }, t.to = function(t) {
                  var e = this;
                  this._activeElement = this._element.querySelector(Z);
                  var n = this._getItemIndex(this._activeElement);
                  if (!(t > this._items.length - 1 || t < 0))
                      if (this._isSliding) p(this._element).one(q.SLID, function() {
                          return e.to(t)
                      });
                      else {
                          if (n === t) return this.pause(), void this.cycle();
                          var i = n < t ? M : W;
                          this._slide(i, this._items[t])
                      }
              }, t.dispose = function() {
                  p(this._element).off(P), p.removeData(this._element, x), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null
              }, t._getConfig = function(t) {
                  return t = l({}, R, t), m.typeCheckConfig(L, t, F), t
              }, t._handleSwipe = function() {
                  var t = Math.abs(this.touchDeltaX);
                  if (!(t <= 40)) {
                      var e = t / this.touchDeltaX;
                      0 < e && this.prev(), e < 0 && this.next()
                  }
              }, t._addEventListeners = function() {
                  var e = this;
                  this._config.keyboard && p(this._element).on(q.KEYDOWN, function(t) {
                      return e._keydown(t)
                  }), "hover" === this._config.pause && p(this._element).on(q.MOUSEENTER, function(t) {
                      return e.pause(t)
                  }).on(q.MOUSELEAVE, function(t) {
                      return e.cycle(t)
                  }), this._config.touch && this._addTouchEventListeners()
              }, t._addTouchEventListeners = function() {
                  var n = this;
                  if (this._touchSupported) {
                      var e = function(t) {
                              n._pointerEvent && st[t.originalEvent.pointerType.toUpperCase()] ? n.touchStartX = t.originalEvent.clientX : n._pointerEvent || (n.touchStartX = t.originalEvent.touches[0].clientX)
                          },
                          i = function(t) {
                              n._pointerEvent && st[t.originalEvent.pointerType.toUpperCase()] && (n.touchDeltaX = t.originalEvent.clientX - n.touchStartX), n._handleSwipe(), "hover" === n._config.pause && (n.pause(), n.touchTimeout && clearTimeout(n.touchTimeout), n.touchTimeout = setTimeout(function(t) {
                                  return n.cycle(t)
                              }, 500 + n._config.interval))
                          };
                      p(this._element.querySelectorAll(et)).on(q.DRAG_START, function(t) {
                          return t.preventDefault()
                      }), this._pointerEvent ? (p(this._element).on(q.POINTERDOWN, function(t) {
                          return e(t)
                      }), p(this._element).on(q.POINTERUP, function(t) {
                          return i(t)
                      }), this._element.classList.add($)) : (p(this._element).on(q.TOUCHSTART, function(t) {
                          return e(t)
                      }), p(this._element).on(q.TOUCHMOVE, function(t) {
                          var e;
                          (e = t).originalEvent.touches && 1 < e.originalEvent.touches.length ? n.touchDeltaX = 0 : n.touchDeltaX = e.originalEvent.touches[0].clientX - n.touchStartX
                      }), p(this._element).on(q.TOUCHEND, function(t) {
                          return i(t)
                      }))
                  }
              }, t._keydown = function(t) {
                  if (!/input|textarea/i.test(t.target.tagName)) switch (t.which) {
                      case 37:
                          t.preventDefault(), this.prev();
                          break;
                      case 39:
                          t.preventDefault(), this.next()
                  }
              }, t._getItemIndex = function(t) {
                  return this._items = t && t.parentNode ? [].slice.call(t.parentNode.querySelectorAll(tt)) : [], this._items.indexOf(t)
              }, t._getItemByDirection = function(t, e) {
                  var n = t === M,
                      i = t === W,
                      o = this._getItemIndex(e),
                      r = this._items.length - 1;
                  if ((i && 0 === o || n && o === r) && !this._config.wrap) return e;
                  var s = (o + (t === W ? -1 : 1)) % this._items.length;
                  return -1 === s ? this._items[this._items.length - 1] : this._items[s]
              }, t._triggerSlideEvent = function(t, e) {
                  var n = this._getItemIndex(t),
                      i = this._getItemIndex(this._element.querySelector(Z)),
                      o = p.Event(q.SLIDE, {
                          relatedTarget: t,
                          direction: e,
                          from: i,
                          to: n
                      });
                  return p(this._element).trigger(o), o
              }, t._setActiveIndicatorElement = function(t) {
                  if (this._indicatorsElement) {
                      var e = [].slice.call(this._indicatorsElement.querySelectorAll(J));
                      p(e).removeClass(Q);
                      var n = this._indicatorsElement.children[this._getItemIndex(t)];
                      n && p(n).addClass(Q)
                  }
              }, t._slide = function(t, e) {
                  var n, i, o, r = this,
                      s = this._element.querySelector(Z),
                      a = this._getItemIndex(s),
                      l = e || s && this._getItemByDirection(t, s),
                      c = this._getItemIndex(l),
                      h = Boolean(this._interval);
                  if (o = t === M ? (n = z, i = X, U) : (n = Y, i = G, B), l && p(l).hasClass(Q)) this._isSliding = !1;
                  else if (!this._triggerSlideEvent(l, o).isDefaultPrevented() && s && l) {
                      this._isSliding = !0, h && this.pause(), this._setActiveIndicatorElement(l);
                      var u = p.Event(q.SLID, {
                          relatedTarget: l,
                          direction: o,
                          from: a,
                          to: c
                      });
                      if (p(this._element).hasClass(V)) {
                          p(l).addClass(i), m.reflow(l), p(s).addClass(n), p(l).addClass(n);
                          var f = parseInt(l.getAttribute("data-interval"), 10);
                          this._config.interval = f ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, f) : this._config.defaultInterval || this._config.interval;
                          var d = m.getTransitionDurationFromElement(s);
                          p(s).one(m.TRANSITION_END, function() {
                              p(l).removeClass(n + " " + i).addClass(Q), p(s).removeClass(Q + " " + i + " " + n), r._isSliding = !1, setTimeout(function() {
                                  return p(r._element).trigger(u)
                              }, 0)
                          }).emulateTransitionEnd(d)
                      } else p(s).removeClass(Q), p(l).addClass(Q), this._isSliding = !1, p(this._element).trigger(u);
                      h && this.cycle()
                  }
              }, r._jQueryInterface = function(i) {
                  return this.each(function() {
                      var t = p(this).data(x),
                          e = l({}, R, p(this).data());
                      "object" == typeof i && (e = l({}, e, i));
                      var n = "string" == typeof i ? i : e.slide;
                      if (t || (t = new r(this, e), p(this).data(x, t)), "number" == typeof i) t.to(i);
                      else if ("string" == typeof n) {
                          if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"');
                          t[n]()
                      } else e.interval && e.ride && (t.pause(), t.cycle())
                  })
              }, r._dataApiClickHandler = function(t) {
                  var e = m.getSelectorFromElement(this);
                  if (e) {
                      var n = p(e)[0];
                      if (n && p(n).hasClass(K)) {
                          var i = l({}, p(n).data(), p(this).data()),
                              o = this.getAttribute("data-slide-to");
                          o && (i.interval = !1), r._jQueryInterface.call(p(n), i), o && p(n).data(x).to(o), t.preventDefault()
                      }
                  }
              }, s(r, null, [{
                  key: "VERSION",
                  get: function() {
                      return "4.3.1"
                  }
              }, {
                  key: "Default",
                  get: function() {
                      return R
                  }
              }]), r
          }();
      p(document).on(q.CLICK_DATA_API, ot, at._dataApiClickHandler), p(window).on(q.LOAD_DATA_API, function() {
          for (var t = [].slice.call(document.querySelectorAll(rt)), e = 0, n = t.length; e < n; e++) {
              var i = p(t[e]);
              at._jQueryInterface.call(i, i.data())
          }
      }), p.fn[L] = at._jQueryInterface, p.fn[L].Constructor = at, p.fn[L].noConflict = function() {
          return p.fn[L] = j, at._jQueryInterface
      };
      var lt = "collapse",
          ct = "bs.collapse",
          ht = "." + ct,
          ut = p.fn[lt],
          ft = {
              toggle: !0,
              parent: ""
          },
          dt = {
              toggle: "boolean",
              parent: "(string|element)"
          },
          pt = {
              SHOW: "show" + ht,
              SHOWN: "shown" + ht,
              HIDE: "hide" + ht,
              HIDDEN: "hidden" + ht,
              CLICK_DATA_API: "click" + ht + ".data-api"
          },
          mt = "show",
          gt = "collapse",
          _t = "collapsing",
          vt = "collapsed",
          yt = "width",
          Et = "height",
          bt = ".show, .collapsing",
          wt = '[data-toggle="collapse"]',
          Ct = function() {
              function a(e, t) {
                  this._isTransitioning = !1, this._element = e, this._config = this._getConfig(t), this._triggerArray = [].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#' + e.id + '"],[data-toggle="collapse"][data-target="#' + e.id + '"]'));
                  for (var n = [].slice.call(document.querySelectorAll(wt)), i = 0, o = n.length; i < o; i++) {
                      var r = n[i],
                          s = m.getSelectorFromElement(r),
                          a = [].slice.call(document.querySelectorAll(s)).filter(function(t) {
                              return t === e
                          });
                      null !== s && 0 < a.length && (this._selector = s, this._triggerArray.push(r))
                  }
                  this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle()
              }
              var t = a.prototype;
              return t.toggle = function() {
                  p(this._element).hasClass(mt) ? this.hide() : this.show()
              }, t.show = function() {
                  var t, e, n = this;
                  if (!this._isTransitioning && !p(this._element).hasClass(mt) && (this._parent && 0 === (t = [].slice.call(this._parent.querySelectorAll(bt)).filter(function(t) {
                          return "string" == typeof n._config.parent ? t.getAttribute("data-parent") === n._config.parent : t.classList.contains(gt)
                      })).length && (t = null), !(t && (e = p(t).not(this._selector).data(ct)) && e._isTransitioning))) {
                      var i = p.Event(pt.SHOW);
                      if (p(this._element).trigger(i), !i.isDefaultPrevented()) {
                          t && (a._jQueryInterface.call(p(t).not(this._selector), "hide"), e || p(t).data(ct, null));
                          var o = this._getDimension();
                          p(this._element).removeClass(gt).addClass(_t), this._element.style[o] = 0, this._triggerArray.length && p(this._triggerArray).removeClass(vt).attr("aria-expanded", !0), this.setTransitioning(!0);
                          var r = "scroll" + (o[0].toUpperCase() + o.slice(1)),
                              s = m.getTransitionDurationFromElement(this._element);
                          p(this._element).one(m.TRANSITION_END, function() {
                              p(n._element).removeClass(_t).addClass(gt).addClass(mt), n._element.style[o] = "", n.setTransitioning(!1), p(n._element).trigger(pt.SHOWN)
                          }).emulateTransitionEnd(s), this._element.style[o] = this._element[r] + "px"
                      }
                  }
              }, t.hide = function() {
                  var t = this;
                  if (!this._isTransitioning && p(this._element).hasClass(mt)) {
                      var e = p.Event(pt.HIDE);
                      if (p(this._element).trigger(e), !e.isDefaultPrevented()) {
                          var n = this._getDimension();
                          this._element.style[n] = this._element.getBoundingClientRect()[n] + "px", m.reflow(this._element), p(this._element).addClass(_t).removeClass(gt).removeClass(mt);
                          var i = this._triggerArray.length;
                          if (0 < i)
                              for (var o = 0; o < i; o++) {
                                  var r = this._triggerArray[o],
                                      s = m.getSelectorFromElement(r);
                                  if (null !== s) p([].slice.call(document.querySelectorAll(s))).hasClass(mt) || p(r).addClass(vt).attr("aria-expanded", !1)
                              }
                          this.setTransitioning(!0);
                          this._element.style[n] = "";
                          var a = m.getTransitionDurationFromElement(this._element);
                          p(this._element).one(m.TRANSITION_END, function() {
                              t.setTransitioning(!1), p(t._element).removeClass(_t).addClass(gt).trigger(pt.HIDDEN)
                          }).emulateTransitionEnd(a)
                      }
                  }
              }, t.setTransitioning = function(t) {
                  this._isTransitioning = t
              }, t.dispose = function() {
                  p.removeData(this._element, ct), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null
              }, t._getConfig = function(t) {
                  return (t = l({}, ft, t)).toggle = Boolean(t.toggle), m.typeCheckConfig(lt, t, dt), t
              }, t._getDimension = function() {
                  return p(this._element).hasClass(yt) ? yt : Et
              }, t._getParent = function() {
                  var t, n = this;
                  m.isElement(this._config.parent) ? (t = this._config.parent, "undefined" != typeof this._config.parent.jquery && (t = this._config.parent[0])) : t = document.querySelector(this._config.parent);
                  var e = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]',
                      i = [].slice.call(t.querySelectorAll(e));
                  return p(i).each(function(t, e) {
                      n._addAriaAndCollapsedClass(a._getTargetFromElement(e), [e])
                  }), t
              }, t._addAriaAndCollapsedClass = function(t, e) {
                  var n = p(t).hasClass(mt);
                  e.length && p(e).toggleClass(vt, !n).attr("aria-expanded", n)
              }, a._getTargetFromElement = function(t) {
                  var e = m.getSelectorFromElement(t);
                  return e ? document.querySelector(e) : null
              }, a._jQueryInterface = function(i) {
                  return this.each(function() {
                      var t = p(this),
                          e = t.data(ct),
                          n = l({}, ft, t.data(), "object" == typeof i && i ? i : {});
                      if (!e && n.toggle && /show|hide/.test(i) && (n.toggle = !1), e || (e = new a(this, n), t.data(ct, e)), "string" == typeof i) {
                          if ("undefined" == typeof e[i]) throw new TypeError('No method named "' + i + '"');
                          e[i]()
                      }
                  })
              }, s(a, null, [{
                  key: "VERSION",
                  get: function() {
                      return "4.3.1"
                  }
              }, {
                  key: "Default",
                  get: function() {
                      return ft
                  }
              }]), a
          }();
      p(document).on(pt.CLICK_DATA_API, wt, function(t) {
          "A" === t.currentTarget.tagName && t.preventDefault();
          var n = p(this),
              e = m.getSelectorFromElement(this),
              i = [].slice.call(document.querySelectorAll(e));
          p(i).each(function() {
              var t = p(this),
                  e = t.data(ct) ? "toggle" : n.data();
              Ct._jQueryInterface.call(t, e)
          })
      }), p.fn[lt] = Ct._jQueryInterface, p.fn[lt].Constructor = Ct, p.fn[lt].noConflict = function() {
          return p.fn[lt] = ut, Ct._jQueryInterface
      };
      for (var Tt = "undefined" != typeof window && "undefined" != typeof document, St = ["Edge", "Trident", "Firefox"], Dt = 0, It = 0; It < St.length; It += 1)
          if (Tt && 0 <= navigator.userAgent.indexOf(St[It])) {
              Dt = 1;
              break
          }
      var At = Tt && window.Promise ? function(t) {
          var e = !1;
          return function() {
              e || (e = !0, window.Promise.resolve().then(function() {
                  e = !1, t()
              }))
          }
      } : function(t) {
          var e = !1;
          return function() {
              e || (e = !0, setTimeout(function() {
                  e = !1, t()
              }, Dt))
          }
      };
  
      function Ot(t) {
          return t && "[object Function]" === {}.toString.call(t)
      }
  
      function Nt(t, e) {
          if (1 !== t.nodeType) return [];
          var n = t.ownerDocument.defaultView.getComputedStyle(t, null);
          return e ? n[e] : n
      }
  
      function kt(t) {
          return "HTML" === t.nodeName ? t : t.parentNode || t.host
      }
  
      function Lt(t) {
          if (!t) return document.body;
          switch (t.nodeName) {
              case "HTML":
              case "BODY":
                  return t.ownerDocument.body;
              case "#document":
                  return t.body
          }
          var e = Nt(t),
              n = e.overflow,
              i = e.overflowX,
              o = e.overflowY;
          return /(auto|scroll|overlay)/.test(n + o + i) ? t : Lt(kt(t))
      }
      var xt = Tt && !(!window.MSInputMethodContext || !document.documentMode),
          Pt = Tt && /MSIE 10/.test(navigator.userAgent);
  
      function Ht(t) {
          return 11 === t ? xt : 10 === t ? Pt : xt || Pt
      }
  
      function jt(t) {
          if (!t) return document.documentElement;
          for (var e = Ht(10) ? document.body : null, n = t.offsetParent || null; n === e && t.nextElementSibling;) n = (t = t.nextElementSibling).offsetParent;
          var i = n && n.nodeName;
          return i && "BODY" !== i && "HTML" !== i ? -1 !== ["TH", "TD", "TABLE"].indexOf(n.nodeName) && "static" === Nt(n, "position") ? jt(n) : n : t ? t.ownerDocument.documentElement : document.documentElement
      }
  
      function Rt(t) {
          return null !== t.parentNode ? Rt(t.parentNode) : t
      }
  
      function Ft(t, e) {
          if (!(t && t.nodeType && e && e.nodeType)) return document.documentElement;
          var n = t.compareDocumentPosition(e) & Node.DOCUMENT_POSITION_FOLLOWING,
              i = n ? t : e,
              o = n ? e : t,
              r = document.createRange();
          r.setStart(i, 0), r.setEnd(o, 0);
          var s, a, l = r.commonAncestorContainer;
          if (t !== l && e !== l || i.contains(o)) return "BODY" === (a = (s = l).nodeName) || "HTML" !== a && jt(s.firstElementChild) !== s ? jt(l) : l;
          var c = Rt(t);
          return c.host ? Ft(c.host, e) : Ft(t, Rt(e).host)
      }
  
      function Mt(t) {
          var e = "top" === (1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "top") ? "scrollTop" : "scrollLeft",
              n = t.nodeName;
          if ("BODY" !== n && "HTML" !== n) return t[e];
          var i = t.ownerDocument.documentElement;
          return (t.ownerDocument.scrollingElement || i)[e]
      }
  
      function Wt(t, e) {
          var n = "x" === e ? "Left" : "Top",
              i = "Left" === n ? "Right" : "Bottom";
          return parseFloat(t["border" + n + "Width"], 10) + parseFloat(t["border" + i + "Width"], 10)
      }
  
      function Ut(t, e, n, i) {
          return Math.max(e["offset" + t], e["scroll" + t], n["client" + t], n["offset" + t], n["scroll" + t], Ht(10) ? parseInt(n["offset" + t]) + parseInt(i["margin" + ("Height" === t ? "Top" : "Left")]) + parseInt(i["margin" + ("Height" === t ? "Bottom" : "Right")]) : 0)
      }
  
      function Bt(t) {
          var e = t.body,
              n = t.documentElement,
              i = Ht(10) && getComputedStyle(n);
          return {
              height: Ut("Height", e, n, i),
              width: Ut("Width", e, n, i)
          }
      }
      var qt = function() {
              function i(t, e) {
                  for (var n = 0; n < e.length; n++) {
                      var i = e[n];
                      i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i)
                  }
              }
              return function(t, e, n) {
                  return e && i(t.prototype, e), n && i(t, n), t
              }
          }(),
          Kt = function(t, e, n) {
              return e in t ? Object.defineProperty(t, e, {
                  value: n,
                  enumerable: !0,
                  configurable: !0,
                  writable: !0
              }) : t[e] = n, t
          },
          Qt = Object.assign || function(t) {
              for (var e = 1; e < arguments.length; e++) {
                  var n = arguments[e];
                  for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (t[i] = n[i])
              }
              return t
          };
  
      function Vt(t) {
          return Qt({}, t, {
              right: t.left + t.width,
              bottom: t.top + t.height
          })
      }
  
      function Yt(t) {
          var e = {};
          try {
              if (Ht(10)) {
                  e = t.getBoundingClientRect();
                  var n = Mt(t, "top"),
                      i = Mt(t, "left");
                  e.top += n, e.left += i, e.bottom += n, e.right += i
              } else e = t.getBoundingClientRect()
          } catch (t) {}
          var o = {
                  left: e.left,
                  top: e.top,
                  width: e.right - e.left,
                  height: e.bottom - e.top
              },
              r = "HTML" === t.nodeName ? Bt(t.ownerDocument) : {},
              s = r.width || t.clientWidth || o.right - o.left,
              a = r.height || t.clientHeight || o.bottom - o.top,
              l = t.offsetWidth - s,
              c = t.offsetHeight - a;
          if (l || c) {
              var h = Nt(t);
              l -= Wt(h, "x"), c -= Wt(h, "y"), o.width -= l, o.height -= c
          }
          return Vt(o)
      }
  
      function zt(t, e) {
          var n = 2 < arguments.length && void 0 !== arguments[2] && arguments[2],
              i = Ht(10),
              o = "HTML" === e.nodeName,
              r = Yt(t),
              s = Yt(e),
              a = Lt(t),
              l = Nt(e),
              c = parseFloat(l.borderTopWidth, 10),
              h = parseFloat(l.borderLeftWidth, 10);
          n && o && (s.top = Math.max(s.top, 0), s.left = Math.max(s.left, 0));
          var u = Vt({
              top: r.top - s.top - c,
              left: r.left - s.left - h,
              width: r.width,
              height: r.height
          });
          if (u.marginTop = 0, u.marginLeft = 0, !i && o) {
              var f = parseFloat(l.marginTop, 10),
                  d = parseFloat(l.marginLeft, 10);
              u.top -= c - f, u.bottom -= c - f, u.left -= h - d, u.right -= h - d, u.marginTop = f, u.marginLeft = d
          }
          return (i && !n ? e.contains(a) : e === a && "BODY" !== a.nodeName) && (u = function(t, e) {
              var n = 2 < arguments.length && void 0 !== arguments[2] && arguments[2],
                  i = Mt(e, "top"),
                  o = Mt(e, "left"),
                  r = n ? -1 : 1;
              return t.top += i * r, t.bottom += i * r, t.left += o * r, t.right += o * r, t
          }(u, e)), u
      }
  
      function Xt(t) {
          if (!t || !t.parentElement || Ht()) return document.documentElement;
          for (var e = t.parentElement; e && "none" === Nt(e, "transform");) e = e.parentElement;
          return e || document.documentElement
      }
  
      function Gt(t, e, n, i) {
          var o = 4 < arguments.length && void 0 !== arguments[4] && arguments[4],
              r = {
                  top: 0,
                  left: 0
              },
              s = o ? Xt(t) : Ft(t, e);
          if ("viewport" === i) r = function(t) {
              var e = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
                  n = t.ownerDocument.documentElement,
                  i = zt(t, n),
                  o = Math.max(n.clientWidth, window.innerWidth || 0),
                  r = Math.max(n.clientHeight, window.innerHeight || 0),
                  s = e ? 0 : Mt(n),
                  a = e ? 0 : Mt(n, "left");
              return Vt({
                  top: s - i.top + i.marginTop,
                  left: a - i.left + i.marginLeft,
                  width: o,
                  height: r
              })
          }(s, o);
          else {
              var a = void 0;
              "scrollParent" === i ? "BODY" === (a = Lt(kt(e))).nodeName && (a = t.ownerDocument.documentElement) : a = "window" === i ? t.ownerDocument.documentElement : i;
              var l = zt(a, s, o);
              if ("HTML" !== a.nodeName || function t(e) {
                      var n = e.nodeName;
                      if ("BODY" === n || "HTML" === n) return !1;
                      if ("fixed" === Nt(e, "position")) return !0;
                      var i = kt(e);
                      return !!i && t(i)
                  }(s)) r = l;
              else {
                  var c = Bt(t.ownerDocument),
                      h = c.height,
                      u = c.width;
                  r.top += l.top - l.marginTop, r.bottom = h + l.top, r.left += l.left - l.marginLeft, r.right = u + l.left
              }
          }
          var f = "number" == typeof(n = n || 0);
          return r.left += f ? n : n.left || 0, r.top += f ? n : n.top || 0, r.right -= f ? n : n.right || 0, r.bottom -= f ? n : n.bottom || 0, r
      }
  
      function $t(t, e, i, n, o) {
          var r = 5 < arguments.length && void 0 !== arguments[5] ? arguments[5] : 0;
          if (-1 === t.indexOf("auto")) return t;
          var s = Gt(i, n, r, o),
              a = {
                  top: {
                      width: s.width,
                      height: e.top - s.top
                  },
                  right: {
                      width: s.right - e.right,
                      height: s.height
                  },
                  bottom: {
                      width: s.width,
                      height: s.bottom - e.bottom
                  },
                  left: {
                      width: e.left - s.left,
                      height: s.height
                  }
              },
              l = Object.keys(a).map(function(t) {
                  return Qt({
                      key: t
                  }, a[t], {
                      area: (e = a[t], e.width * e.height)
                  });
                  var e
              }).sort(function(t, e) {
                  return e.area - t.area
              }),
              c = l.filter(function(t) {
                  var e = t.width,
                      n = t.height;
                  return e >= i.clientWidth && n >= i.clientHeight
              }),
              h = 0 < c.length ? c[0].key : l[0].key,
              u = t.split("-")[1];
          return h + (u ? "-" + u : "")
      }
  
      function Jt(t, e, n) {
          var i = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
          return zt(n, i ? Xt(e) : Ft(e, n), i)
      }
  
      function Zt(t) {
          var e = t.ownerDocument.defaultView.getComputedStyle(t),
              n = parseFloat(e.marginTop || 0) + parseFloat(e.marginBottom || 0),
              i = parseFloat(e.marginLeft || 0) + parseFloat(e.marginRight || 0);
          return {
              width: t.offsetWidth + i,
              height: t.offsetHeight + n
          }
      }
  
      function te(t) {
          var e = {
              left: "right",
              right: "left",
              bottom: "top",
              top: "bottom"
          };
          return t.replace(/left|right|bottom|top/g, function(t) {
              return e[t]
          })
      }
  
      function ee(t, e, n) {
          n = n.split("-")[0];
          var i = Zt(t),
              o = {
                  width: i.width,
                  height: i.height
              },
              r = -1 !== ["right", "left"].indexOf(n),
              s = r ? "top" : "left",
              a = r ? "left" : "top",
              l = r ? "height" : "width",
              c = r ? "width" : "height";
          return o[s] = e[s] + e[l] / 2 - i[l] / 2, o[a] = n === a ? e[a] - i[c] : e[te(a)], o
      }
  
      function ne(t, e) {
          return Array.prototype.find ? t.find(e) : t.filter(e)[0]
      }
  
      function ie(t, n, e) {
          return (void 0 === e ? t : t.slice(0, function(t, e, n) {
              if (Array.prototype.findIndex) return t.findIndex(function(t) {
                  return t[e] === n
              });
              var i = ne(t, function(t) {
                  return t[e] === n
              });
              return t.indexOf(i)
          }(t, "name", e))).forEach(function(t) {
              t.function && console.warn("`modifier.function` is deprecated, use `modifier.fn`!");
              var e = t.function || t.fn;
              t.enabled && Ot(e) && (n.offsets.popper = Vt(n.offsets.popper), n.offsets.reference = Vt(n.offsets.reference), n = e(n, t))
          }), n
      }
  
      function oe(t, n) {
          return t.some(function(t) {
              var e = t.name;
              return t.enabled && e === n
          })
      }
  
      function re(t) {
          for (var e = [!1, "ms", "Webkit", "Moz", "O"], n = t.charAt(0).toUpperCase() + t.slice(1), i = 0; i < e.length; i++) {
              var o = e[i],
                  r = o ? "" + o + n : t;
              if ("undefined" != typeof document.body.style[r]) return r
          }
          return null
      }
  
      function se(t) {
          var e = t.ownerDocument;
          return e ? e.defaultView : window
      }
  
      function ae(t, e, n, i) {
          n.updateBound = i, se(t).addEventListener("resize", n.updateBound, {
              passive: !0
          });
          var o = Lt(t);
          return function t(e, n, i, o) {
              var r = "BODY" === e.nodeName,
                  s = r ? e.ownerDocument.defaultView : e;
              s.addEventListener(n, i, {
                  passive: !0
              }), r || t(Lt(s.parentNode), n, i, o), o.push(s)
          }(o, "scroll", n.updateBound, n.scrollParents), n.scrollElement = o, n.eventsEnabled = !0, n
      }
  
      function le() {
          var t, e;
          this.state.eventsEnabled && (cancelAnimationFrame(this.scheduleUpdate), this.state = (t = this.reference, e = this.state, se(t).removeEventListener("resize", e.updateBound), e.scrollParents.forEach(function(t) {
              t.removeEventListener("scroll", e.updateBound)
          }), e.updateBound = null, e.scrollParents = [], e.scrollElement = null, e.eventsEnabled = !1, e))
      }
  
      function ce(t) {
          return "" !== t && !isNaN(parseFloat(t)) && isFinite(t)
      }
  
      function he(n, i) {
          Object.keys(i).forEach(function(t) {
              var e = ""; - 1 !== ["width", "height", "top", "right", "bottom", "left"].indexOf(t) && ce(i[t]) && (e = "px"), n.style[t] = i[t] + e
          })
      }
      var ue = Tt && /Firefox/i.test(navigator.userAgent);
  
      function fe(t, e, n) {
          var i = ne(t, function(t) {
                  return t.name === e
              }),
              o = !!i && t.some(function(t) {
                  return t.name === n && t.enabled && t.order < i.order
              });
          if (!o) {
              var r = "`" + e + "`",
                  s = "`" + n + "`";
              console.warn(s + " modifier is required by " + r + " modifier in order to work, be sure to include it before " + r + "!")
          }
          return o
      }
      var de = ["auto-start", "auto", "auto-end", "top-start", "top", "top-end", "right-start", "right", "right-end", "bottom-end", "bottom", "bottom-start", "left-end", "left", "left-start"],
          pe = de.slice(3);
  
      function me(t) {
          var e = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
              n = pe.indexOf(t),
              i = pe.slice(n + 1).concat(pe.slice(0, n));
          return e ? i.reverse() : i
      }
      var ge = "flip",
          _e = "clockwise",
          ve = "counterclockwise";
  
      function ye(t, o, r, e) {
          var s = [0, 0],
              a = -1 !== ["right", "left"].indexOf(e),
              n = t.split(/(\+|\-)/).map(function(t) {
                  return t.trim()
              }),
              i = n.indexOf(ne(n, function(t) {
                  return -1 !== t.search(/,|\s/)
              }));
          n[i] && -1 === n[i].indexOf(",") && console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");
          var l = /\s*,\s*|\s+/,
              c = -1 !== i ? [n.slice(0, i).concat([n[i].split(l)[0]]), [n[i].split(l)[1]].concat(n.slice(i + 1))] : [n];
          return (c = c.map(function(t, e) {
              var n = (1 === e ? !a : a) ? "height" : "width",
                  i = !1;
              return t.reduce(function(t, e) {
                  return "" === t[t.length - 1] && -1 !== ["+", "-"].indexOf(e) ? (t[t.length - 1] = e, i = !0, t) : i ? (t[t.length - 1] += e, i = !1, t) : t.concat(e)
              }, []).map(function(t) {
                  return function(t, e, n, i) {
                      var o = t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),
                          r = +o[1],
                          s = o[2];
                      if (!r) return t;
                      if (0 !== s.indexOf("%")) return "vh" !== s && "vw" !== s ? r : ("vh" === s ? Math.max(document.documentElement.clientHeight, window.innerHeight || 0) : Math.max(document.documentElement.clientWidth, window.innerWidth || 0)) / 100 * r;
                      var a = void 0;
                      switch (s) {
                          case "%p":
                              a = n;
                              break;
                          case "%":
                          case "%r":
                          default:
                              a = i
                      }
                      return Vt(a)[e] / 100 * r
                  }(t, n, o, r)
              })
          })).forEach(function(n, i) {
              n.forEach(function(t, e) {
                  ce(t) && (s[i] += t * ("-" === n[e - 1] ? -1 : 1))
              })
          }), s
      }
      var Ee = {
              placement: "bottom",
              positionFixed: !1,
              eventsEnabled: !0,
              removeOnDestroy: !1,
              onCreate: function() {},
              onUpdate: function() {},
              modifiers: {
                  shift: {
                      order: 100,
                      enabled: !0,
                      fn: function(t) {
                          var e = t.placement,
                              n = e.split("-")[0],
                              i = e.split("-")[1];
                          if (i) {
                              var o = t.offsets,
                                  r = o.reference,
                                  s = o.popper,
                                  a = -1 !== ["bottom", "top"].indexOf(n),
                                  l = a ? "left" : "top",
                                  c = a ? "width" : "height",
                                  h = {
                                      start: Kt({}, l, r[l]),
                                      end: Kt({}, l, r[l] + r[c] - s[c])
                                  };
                              t.offsets.popper = Qt({}, s, h[i])
                          }
                          return t
                      }
                  },
                  offset: {
                      order: 200,
                      enabled: !0,
                      fn: function(t, e) {
                          var n = e.offset,
                              i = t.placement,
                              o = t.offsets,
                              r = o.popper,
                              s = o.reference,
                              a = i.split("-")[0],
                              l = void 0;
                          return l = ce(+n) ? [+n, 0] : ye(n, r, s, a), "left" === a ? (r.top += l[0], r.left -= l[1]) : "right" === a ? (r.top += l[0], r.left += l[1]) : "top" === a ? (r.left += l[0], r.top -= l[1]) : "bottom" === a && (r.left += l[0], r.top += l[1]), t.popper = r, t
                      },
                      offset: 0
                  },
                  preventOverflow: {
                      order: 300,
                      enabled: !0,
                      fn: function(t, i) {
                          var e = i.boundariesElement || jt(t.instance.popper);
                          t.instance.reference === e && (e = jt(e));
                          var n = re("transform"),
                              o = t.instance.popper.style,
                              r = o.top,
                              s = o.left,
                              a = o[n];
                          o.top = "", o.left = "", o[n] = "";
                          var l = Gt(t.instance.popper, t.instance.reference, i.padding, e, t.positionFixed);
                          o.top = r, o.left = s, o[n] = a, i.boundaries = l;
                          var c = i.priority,
                              h = t.offsets.popper,
                              u = {
                                  primary: function(t) {
                                      var e = h[t];
                                      return h[t] < l[t] && !i.escapeWithReference && (e = Math.max(h[t], l[t])), Kt({}, t, e)
                                  },
                                  secondary: function(t) {
                                      var e = "right" === t ? "left" : "top",
                                          n = h[e];
                                      return h[t] > l[t] && !i.escapeWithReference && (n = Math.min(h[e], l[t] - ("right" === t ? h.width : h.height))), Kt({}, e, n)
                                  }
                              };
                          return c.forEach(function(t) {
                              var e = -1 !== ["left", "top"].indexOf(t) ? "primary" : "secondary";
                              h = Qt({}, h, u[e](t))
                          }), t.offsets.popper = h, t
                      },
                      priority: ["left", "right", "top", "bottom"],
                      padding: 5,
                      boundariesElement: "scrollParent"
                  },
                  keepTogether: {
                      order: 400,
                      enabled: !0,
                      fn: function(t) {
                          var e = t.offsets,
                              n = e.popper,
                              i = e.reference,
                              o = t.placement.split("-")[0],
                              r = Math.floor,
                              s = -1 !== ["top", "bottom"].indexOf(o),
                              a = s ? "right" : "bottom",
                              l = s ? "left" : "top",
                              c = s ? "width" : "height";
                          return n[a] < r(i[l]) && (t.offsets.popper[l] = r(i[l]) - n[c]), n[l] > r(i[a]) && (t.offsets.popper[l] = r(i[a])), t
                      }
                  },
                  arrow: {
                      order: 500,
                      enabled: !0,
                      fn: function(t, e) {
                          var n;
                          if (!fe(t.instance.modifiers, "arrow", "keepTogether")) return t;
                          var i = e.element;
                          if ("string" == typeof i) {
                              if (!(i = t.instance.popper.querySelector(i))) return t
                          } else if (!t.instance.popper.contains(i)) return console.warn("WARNING: `arrow.element` must be child of its popper element!"), t;
                          var o = t.placement.split("-")[0],
                              r = t.offsets,
                              s = r.popper,
                              a = r.reference,
                              l = -1 !== ["left", "right"].indexOf(o),
                              c = l ? "height" : "width",
                              h = l ? "Top" : "Left",
                              u = h.toLowerCase(),
                              f = l ? "left" : "top",
                              d = l ? "bottom" : "right",
                              p = Zt(i)[c];
                          a[d] - p < s[u] && (t.offsets.popper[u] -= s[u] - (a[d] - p)), a[u] + p > s[d] && (t.offsets.popper[u] += a[u] + p - s[d]), t.offsets.popper = Vt(t.offsets.popper);
                          var m = a[u] + a[c] / 2 - p / 2,
                              g = Nt(t.instance.popper),
                              _ = parseFloat(g["margin" + h], 10),
                              v = parseFloat(g["border" + h + "Width"], 10),
                              y = m - t.offsets.popper[u] - _ - v;
                          return y = Math.max(Math.min(s[c] - p, y), 0), t.arrowElement = i, t.offsets.arrow = (Kt(n = {}, u, Math.round(y)), Kt(n, f, ""), n), t
                      },
                      element: "[x-arrow]"
                  },
                  flip: {
                      order: 600,
                      enabled: !0,
                      fn: function(p, m) {
                          if (oe(p.instance.modifiers, "inner")) return p;
                          if (p.flipped && p.placement === p.originalPlacement) return p;
                          var g = Gt(p.instance.popper, p.instance.reference, m.padding, m.boundariesElement, p.positionFixed),
                              _ = p.placement.split("-")[0],
                              v = te(_),
                              y = p.placement.split("-")[1] || "",
                              E = [];
                          switch (m.behavior) {
                              case ge:
                                  E = [_, v];
                                  break;
                              case _e:
                                  E = me(_);
                                  break;
                              case ve:
                                  E = me(_, !0);
                                  break;
                              default:
                                  E = m.behavior
                          }
                          return E.forEach(function(t, e) {
                              if (_ !== t || E.length === e + 1) return p;
                              _ = p.placement.split("-")[0], v = te(_);
                              var n, i = p.offsets.popper,
                                  o = p.offsets.reference,
                                  r = Math.floor,
                                  s = "left" === _ && r(i.right) > r(o.left) || "right" === _ && r(i.left) < r(o.right) || "top" === _ && r(i.bottom) > r(o.top) || "bottom" === _ && r(i.top) < r(o.bottom),
                                  a = r(i.left) < r(g.left),
                                  l = r(i.right) > r(g.right),
                                  c = r(i.top) < r(g.top),
                                  h = r(i.bottom) > r(g.bottom),
                                  u = "left" === _ && a || "right" === _ && l || "top" === _ && c || "bottom" === _ && h,
                                  f = -1 !== ["top", "bottom"].indexOf(_),
                                  d = !!m.flipVariations && (f && "start" === y && a || f && "end" === y && l || !f && "start" === y && c || !f && "end" === y && h);
                              (s || u || d) && (p.flipped = !0, (s || u) && (_ = E[e + 1]), d && (y = "end" === (n = y) ? "start" : "start" === n ? "end" : n), p.placement = _ + (y ? "-" + y : ""), p.offsets.popper = Qt({}, p.offsets.popper, ee(p.instance.popper, p.offsets.reference, p.placement)), p = ie(p.instance.modifiers, p, "flip"))
                          }), p
                      },
                      behavior: "flip",
                      padding: 5,
                      boundariesElement: "viewport"
                  },
                  inner: {
                      order: 700,
                      enabled: !1,
                      fn: function(t) {
                          var e = t.placement,
                              n = e.split("-")[0],
                              i = t.offsets,
                              o = i.popper,
                              r = i.reference,
                              s = -1 !== ["left", "right"].indexOf(n),
                              a = -1 === ["top", "left"].indexOf(n);
                          return o[s ? "left" : "top"] = r[n] - (a ? o[s ? "width" : "height"] : 0), t.placement = te(e), t.offsets.popper = Vt(o), t
                      }
                  },
                  hide: {
                      order: 800,
                      enabled: !0,
                      fn: function(t) {
                          if (!fe(t.instance.modifiers, "hide", "preventOverflow")) return t;
                          var e = t.offsets.reference,
                              n = ne(t.instance.modifiers, function(t) {
                                  return "preventOverflow" === t.name
                              }).boundaries;
                          if (e.bottom < n.top || e.left > n.right || e.top > n.bottom || e.right < n.left) {
                              if (!0 === t.hide) return t;
                              t.hide = !0, t.attributes["x-out-of-boundaries"] = ""
                          } else {
                              if (!1 === t.hide) return t;
                              t.hide = !1, t.attributes["x-out-of-boundaries"] = !1
                          }
                          return t
                      }
                  },
                  computeStyle: {
                      order: 850,
                      enabled: !0,
                      fn: function(t, e) {
                          var n = e.x,
                              i = e.y,
                              o = t.offsets.popper,
                              r = ne(t.instance.modifiers, function(t) {
                                  return "applyStyle" === t.name
                              }).gpuAcceleration;
                          void 0 !== r && console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");
                          var s, a, l, c, h, u, f, d, p, m, g, _, v, y, E = void 0 !== r ? r : e.gpuAcceleration,
                              b = jt(t.instance.popper),
                              w = Yt(b),
                              C = {
                                  position: o.position
                              },
                              T = (s = t, a = window.devicePixelRatio < 2 || !ue, l = s.offsets, c = l.popper, h = l.reference, u = Math.round, f = Math.floor, d = function(t) {
                                  return t
                              }, p = u(h.width), m = u(c.width), g = -1 !== ["left", "right"].indexOf(s.placement), _ = -1 !== s.placement.indexOf("-"), y = a ? u : d, {
                                  left: (v = a ? g || _ || p % 2 == m % 2 ? u : f : d)(p % 2 == 1 && m % 2 == 1 && !_ && a ? c.left - 1 : c.left),
                                  top: y(c.top),
                                  bottom: y(c.bottom),
                                  right: v(c.right)
                              }),
                              S = "bottom" === n ? "top" : "bottom",
                              D = "right" === i ? "left" : "right",
                              I = re("transform"),
                              A = void 0,
                              O = void 0;
                          if (O = "bottom" === S ? "HTML" === b.nodeName ? -b.clientHeight + T.bottom : -w.height + T.bottom : T.top, A = "right" === D ? "HTML" === b.nodeName ? -b.clientWidth + T.right : -w.width + T.right : T.left, E && I) C[I] = "translate3d(" + A + "px, " + O + "px, 0)", C[S] = 0, C[D] = 0, C.willChange = "transform";
                          else {
                              var N = "bottom" === S ? -1 : 1,
                                  k = "right" === D ? -1 : 1;
                              C[S] = O * N, C[D] = A * k, C.willChange = S + ", " + D
                          }
                          var L = {
                              "x-placement": t.placement
                          };
                          return t.attributes = Qt({}, L, t.attributes), t.styles = Qt({}, C, t.styles), t.arrowStyles = Qt({}, t.offsets.arrow, t.arrowStyles), t
                      },
                      gpuAcceleration: !0,
                      x: "bottom",
                      y: "right"
                  },
                  applyStyle: {
                      order: 900,
                      enabled: !0,
                      fn: function(t) {
                          var e, n;
                          return he(t.instance.popper, t.styles), e = t.instance.popper, n = t.attributes, Object.keys(n).forEach(function(t) {
                              !1 !== n[t] ? e.setAttribute(t, n[t]) : e.removeAttribute(t)
                          }), t.arrowElement && Object.keys(t.arrowStyles).length && he(t.arrowElement, t.arrowStyles), t
                      },
                      onLoad: function(t, e, n, i, o) {
                          var r = Jt(o, e, t, n.positionFixed),
                              s = $t(n.placement, r, e, t, n.modifiers.flip.boundariesElement, n.modifiers.flip.padding);
                          return e.setAttribute("x-placement", s), he(e, {
                              position: n.positionFixed ? "fixed" : "absolute"
                          }), n
                      },
                      gpuAcceleration: void 0
                  }
              }
          },
          be = function() {
              function r(t, e) {
                  var n = this,
                      i = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};
                  ! function(t, e) {
                      if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                  }(this, r), this.scheduleUpdate = function() {
                      return requestAnimationFrame(n.update)
                  }, this.update = At(this.update.bind(this)), this.options = Qt({}, r.Defaults, i), this.state = {
                      isDestroyed: !1,
                      isCreated: !1,
                      scrollParents: []
                  }, this.reference = t && t.jquery ? t[0] : t, this.popper = e && e.jquery ? e[0] : e, this.options.modifiers = {}, Object.keys(Qt({}, r.Defaults.modifiers, i.modifiers)).forEach(function(t) {
                      n.options.modifiers[t] = Qt({}, r.Defaults.modifiers[t] || {}, i.modifiers ? i.modifiers[t] : {})
                  }), this.modifiers = Object.keys(this.options.modifiers).map(function(t) {
                      return Qt({
                          name: t
                      }, n.options.modifiers[t])
                  }).sort(function(t, e) {
                      return t.order - e.order
                  }), this.modifiers.forEach(function(t) {
                      t.enabled && Ot(t.onLoad) && t.onLoad(n.reference, n.popper, n.options, t, n.state)
                  }), this.update();
                  var o = this.options.eventsEnabled;
                  o && this.enableEventListeners(), this.state.eventsEnabled = o
              }
              return qt(r, [{
                  key: "update",
                  value: function() {
                      return function() {
                          if (!this.state.isDestroyed) {
                              var t = {
                                  instance: this,
                                  styles: {},
                                  arrowStyles: {},
                                  attributes: {},
                                  flipped: !1,
                                  offsets: {}
                              };
                              t.offsets.reference = Jt(this.state, this.popper, this.reference, this.options.positionFixed), t.placement = $t(this.options.placement, t.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), t.originalPlacement = t.placement, t.positionFixed = this.options.positionFixed, t.offsets.popper = ee(this.popper, t.offsets.reference, t.placement), t.offsets.popper.position = this.options.positionFixed ? "fixed" : "absolute", t = ie(this.modifiers, t), this.state.isCreated ? this.options.onUpdate(t) : (this.state.isCreated = !0, this.options.onCreate(t))
                          }
                      }.call(this)
                  }
              }, {
                  key: "destroy",
                  value: function() {
                      return function() {
                          return this.state.isDestroyed = !0, oe(this.modifiers, "applyStyle") && (this.popper.removeAttribute("x-placement"), this.popper.style.position = "", this.popper.style.top = "", this.popper.style.left = "", this.popper.style.right = "", this.popper.style.bottom = "", this.popper.style.willChange = "", this.popper.style[re("transform")] = ""), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this
                      }.call(this)
                  }
              }, {
                  key: "enableEventListeners",
                  value: function() {
                      return function() {
                          this.state.eventsEnabled || (this.state = ae(this.reference, this.options, this.state, this.scheduleUpdate))
                      }.call(this)
                  }
              }, {
                  key: "disableEventListeners",
                  value: function() {
                      return le.call(this)
                  }
              }]), r
          }();
      be.Utils = ("undefined" != typeof window ? window : global).PopperUtils, be.placements = de, be.Defaults = Ee;
      var we = "dropdown",
          Ce = "bs.dropdown",
          Te = "." + Ce,
          Se = ".data-api",
          De = p.fn[we],
          Ie = new RegExp("38|40|27"),
          Ae = {
              HIDE: "hide" + Te,
              HIDDEN: "hidden" + Te,
              SHOW: "show" + Te,
              SHOWN: "shown" + Te,
              CLICK: "click" + Te,
              CLICK_DATA_API: "click" + Te + Se,
              KEYDOWN_DATA_API: "keydown" + Te + Se,
              KEYUP_DATA_API: "keyup" + Te + Se
          },
          Oe = "disabled",
          Ne = "show",
          ke = "dropup",
          Le = "dropright",
          xe = "dropleft",
          Pe = "dropdown-menu-right",
          He = "position-static",
          je = '[data-toggle="dropdown"]',
          Re = ".dropdown form",
          Fe = ".dropdown-menu",
          Me = ".navbar-nav",
          We = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",
          Ue = "top-start",
          Be = "top-end",
          qe = "bottom-start",
          Ke = "bottom-end",
          Qe = "right-start",
          Ve = "left-start",
          Ye = {
              offset: 0,
              flip: !0,
              boundary: "scrollParent",
              reference: "toggle",
              display: "dynamic"
          },
          ze = {
              offset: "(number|string|function)",
              flip: "boolean",
              boundary: "(string|element)",
              reference: "(string|element)",
              display: "string"
          },
          Xe = function() {
              function c(t, e) {
                  this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners()
              }
              var t = c.prototype;
              return t.toggle = function() {
                  if (!this._element.disabled && !p(this._element).hasClass(Oe)) {
                      var t = c._getParentFromElement(this._element),
                          e = p(this._menu).hasClass(Ne);
                      if (c._clearMenus(), !e) {
                          var n = {
                                  relatedTarget: this._element
                              },
                              i = p.Event(Ae.SHOW, n);
                          if (p(t).trigger(i), !i.isDefaultPrevented()) {
                              if (!this._inNavbar) {
                                  if ("undefined" == typeof be) throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");
                                  var o = this._element;
                                  "parent" === this._config.reference ? o = t : m.isElement(this._config.reference) && (o = this._config.reference, "undefined" != typeof this._config.reference.jquery && (o = this._config.reference[0])), "scrollParent" !== this._config.boundary && p(t).addClass(He), this._popper = new be(o, this._menu, this._getPopperConfig())
                              }
                              "ontouchstart" in document.documentElement && 0 === p(t).closest(Me).length && p(document.body).children().on("mouseover", null, p.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), p(this._menu).toggleClass(Ne), p(t).toggleClass(Ne).trigger(p.Event(Ae.SHOWN, n))
                          }
                      }
                  }
              }, t.show = function() {
                  if (!(this._element.disabled || p(this._element).hasClass(Oe) || p(this._menu).hasClass(Ne))) {
                      var t = {
                              relatedTarget: this._element
                          },
                          e = p.Event(Ae.SHOW, t),
                          n = c._getParentFromElement(this._element);
                      p(n).trigger(e), e.isDefaultPrevented() || (p(this._menu).toggleClass(Ne), p(n).toggleClass(Ne).trigger(p.Event(Ae.SHOWN, t)))
                  }
              }, t.hide = function() {
                  if (!this._element.disabled && !p(this._element).hasClass(Oe) && p(this._menu).hasClass(Ne)) {
                      var t = {
                              relatedTarget: this._element
                          },
                          e = p.Event(Ae.HIDE, t),
                          n = c._getParentFromElement(this._element);
                      p(n).trigger(e), e.isDefaultPrevented() || (p(this._menu).toggleClass(Ne), p(n).toggleClass(Ne).trigger(p.Event(Ae.HIDDEN, t)))
                  }
              }, t.dispose = function() {
                  p.removeData(this._element, Ce), p(this._element).off(Te), this._element = null, (this._menu = null) !== this._popper && (this._popper.destroy(), this._popper = null)
              }, t.update = function() {
                  this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate()
              }, t._addEventListeners = function() {
                  var e = this;
                  p(this._element).on(Ae.CLICK, function(t) {
                      t.preventDefault(), t.stopPropagation(), e.toggle()
                  })
              }, t._getConfig = function(t) {
                  return t = l({}, this.constructor.Default, p(this._element).data(), t), m.typeCheckConfig(we, t, this.constructor.DefaultType), t
              }, t._getMenuElement = function() {
                  if (!this._menu) {
                      var t = c._getParentFromElement(this._element);
                      t && (this._menu = t.querySelector(Fe))
                  }
                  return this._menu
              }, t._getPlacement = function() {
                  var t = p(this._element.parentNode),
                      e = qe;
                  return t.hasClass(ke) ? (e = Ue, p(this._menu).hasClass(Pe) && (e = Be)) : t.hasClass(Le) ? e = Qe : t.hasClass(xe) ? e = Ve : p(this._menu).hasClass(Pe) && (e = Ke), e
              }, t._detectNavbar = function() {
                  return 0 < p(this._element).closest(".navbar").length
              }, t._getOffset = function() {
                  var e = this,
                      t = {};
                  return "function" == typeof this._config.offset ? t.fn = function(t) {
                      return t.offsets = l({}, t.offsets, e._config.offset(t.offsets, e._element) || {}), t
                  } : t.offset = this._config.offset, t
              }, t._getPopperConfig = function() {
                  var t = {
                      placement: this._getPlacement(),
                      modifiers: {
                          offset: this._getOffset(),
                          flip: {
                              enabled: this._config.flip
                          },
                          preventOverflow: {
                              boundariesElement: this._config.boundary
                          }
                      }
                  };
                  return "static" === this._config.display && (t.modifiers.applyStyle = {
                      enabled: !1
                  }), t
              }, c._jQueryInterface = function(e) {
                  return this.each(function() {
                      var t = p(this).data(Ce);
                      if (t || (t = new c(this, "object" == typeof e ? e : null), p(this).data(Ce, t)), "string" == typeof e) {
                          if ("undefined" == typeof t[e]) throw new TypeError('No method named "' + e + '"');
                          t[e]()
                      }
                  })
              }, c._clearMenus = function(t) {
                  if (!t || 3 !== t.which && ("keyup" !== t.type || 9 === t.which))
                      for (var e = [].slice.call(document.querySelectorAll(je)), n = 0, i = e.length; n < i; n++) {
                          var o = c._getParentFromElement(e[n]),
                              r = p(e[n]).data(Ce),
                              s = {
                                  relatedTarget: e[n]
                              };
                          if (t && "click" === t.type && (s.clickEvent = t), r) {
                              var a = r._menu;
                              if (p(o).hasClass(Ne) && !(t && ("click" === t.type && /input|textarea/i.test(t.target.tagName) || "keyup" === t.type && 9 === t.which) && p.contains(o, t.target))) {
                                  var l = p.Event(Ae.HIDE, s);
                                  p(o).trigger(l), l.isDefaultPrevented() || ("ontouchstart" in document.documentElement && p(document.body).children().off("mouseover", null, p.noop), e[n].setAttribute("aria-expanded", "false"), p(a).removeClass(Ne), p(o).removeClass(Ne).trigger(p.Event(Ae.HIDDEN, s)))
                              }
                          }
                      }
              }, c._getParentFromElement = function(t) {
                  var e, n = m.getSelectorFromElement(t);
                  return n && (e = document.querySelector(n)), e || t.parentNode
              }, c._dataApiKeydownHandler = function(t) {
                  if ((/input|textarea/i.test(t.target.tagName) ? !(32 === t.which || 27 !== t.which && (40 !== t.which && 38 !== t.which || p(t.target).closest(Fe).length)) : Ie.test(t.which)) && (t.preventDefault(), t.stopPropagation(), !this.disabled && !p(this).hasClass(Oe))) {
                      var e = c._getParentFromElement(this),
                          n = p(e).hasClass(Ne);
                      if (n && (!n || 27 !== t.which && 32 !== t.which)) {
                          var i = [].slice.call(e.querySelectorAll(We));
                          if (0 !== i.length) {
                              var o = i.indexOf(t.target);
                              38 === t.which && 0 < o && o--, 40 === t.which && o < i.length - 1 && o++, o < 0 && (o = 0), i[o].focus()
                          }
                      } else {
                          if (27 === t.which) {
                              var r = e.querySelector(je);
                              p(r).trigger("focus")
                          }
                          p(this).trigger("click")
                      }
                  }
              }, s(c, null, [{
                  key: "VERSION",
                  get: function() {
                      return "4.3.1"
                  }
              }, {
                  key: "Default",
                  get: function() {
                      return Ye
                  }
              }, {
                  key: "DefaultType",
                  get: function() {
                      return ze
                  }
              }]), c
          }();
      p(document).on(Ae.KEYDOWN_DATA_API, je, Xe._dataApiKeydownHandler).on(Ae.KEYDOWN_DATA_API, Fe, Xe._dataApiKeydownHandler).on(Ae.CLICK_DATA_API + " " + Ae.KEYUP_DATA_API, Xe._clearMenus).on(Ae.CLICK_DATA_API, je, function(t) {
          t.preventDefault(), t.stopPropagation(), Xe._jQueryInterface.call(p(this), "toggle")
      }).on(Ae.CLICK_DATA_API, Re, function(t) {
          t.stopPropagation()
      }), p.fn[we] = Xe._jQueryInterface, p.fn[we].Constructor = Xe, p.fn[we].noConflict = function() {
          return p.fn[we] = De, Xe._jQueryInterface
      };
      var Ge = "modal",
          $e = "bs.modal",
          Je = "." + $e,
          Ze = p.fn[Ge],
          tn = {
              backdrop: !0,
              keyboard: !0,
              focus: !0,
              show: !0
          },
          en = {
              backdrop: "(boolean|string)",
              keyboard: "boolean",
              focus: "boolean",
              show: "boolean"
          },
          nn = {
              HIDE: "hide" + Je,
              HIDDEN: "hidden" + Je,
              SHOW: "show" + Je,
              SHOWN: "shown" + Je,
              FOCUSIN: "focusin" + Je,
              RESIZE: "resize" + Je,
              CLICK_DISMISS: "click.dismiss" + Je,
              KEYDOWN_DISMISS: "keydown.dismiss" + Je,
              MOUSEUP_DISMISS: "mouseup.dismiss" + Je,
              MOUSEDOWN_DISMISS: "mousedown.dismiss" + Je,
              CLICK_DATA_API: "click" + Je + ".data-api"
          },
          on = "modal-dialog-scrollable",
          rn = "modal-scrollbar-measure",
          sn = "modal-backdrop",
          an = "modal-open",
          ln = "fade",
          cn = "show",
          hn = ".modal-dialog",
          un = ".modal-body",
          fn = '[data-toggle="modal"]',
          dn = '[data-dismiss="modal"]',
          pn = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
          mn = ".sticky-top",
          gn = function() {
              function o(t, e) {
                  this._config = this._getConfig(e), this._element = t, this._dialog = t.querySelector(hn), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollbarWidth = 0
              }
              var t = o.prototype;
              return t.toggle = function(t) {
                  return this._isShown ? this.hide() : this.show(t)
              }, t.show = function(t) {
                  var e = this;
                  if (!this._isShown && !this._isTransitioning) {
                      p(this._element).hasClass(ln) && (this._isTransitioning = !0);
                      var n = p.Event(nn.SHOW, {
                          relatedTarget: t
                      });
                      p(this._element).trigger(n), this._isShown || n.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), p(this._element).on(nn.CLICK_DISMISS, dn, function(t) {
                          return e.hide(t)
                      }), p(this._dialog).on(nn.MOUSEDOWN_DISMISS, function() {
                          p(e._element).one(nn.MOUSEUP_DISMISS, function(t) {
                              p(t.target).is(e._element) && (e._ignoreBackdropClick = !0)
                          })
                      }), this._showBackdrop(function() {
                          return e._showElement(t)
                      }))
                  }
              }, t.hide = function(t) {
                  var e = this;
                  if (t && t.preventDefault(), this._isShown && !this._isTransitioning) {
                      var n = p.Event(nn.HIDE);
                      if (p(this._element).trigger(n), this._isShown && !n.isDefaultPrevented()) {
                          this._isShown = !1;
                          var i = p(this._element).hasClass(ln);
                          if (i && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), p(document).off(nn.FOCUSIN), p(this._element).removeClass(cn), p(this._element).off(nn.CLICK_DISMISS), p(this._dialog).off(nn.MOUSEDOWN_DISMISS), i) {
                              var o = m.getTransitionDurationFromElement(this._element);
                              p(this._element).one(m.TRANSITION_END, function(t) {
                                  return e._hideModal(t)
                              }).emulateTransitionEnd(o)
                          } else this._hideModal()
                      }
                  }
              }, t.dispose = function() {
                  [window, this._element, this._dialog].forEach(function(t) {
                      return p(t).off(Je)
                  }), p(document).off(nn.FOCUSIN), p.removeData(this._element, $e), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null
              }, t.handleUpdate = function() {
                  this._adjustDialog()
              }, t._getConfig = function(t) {
                  return t = l({}, tn, t), m.typeCheckConfig(Ge, t, en), t
              }, t._showElement = function(t) {
                  var e = this,
                      n = p(this._element).hasClass(ln);
                  this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), p(this._dialog).hasClass(on) ? this._dialog.querySelector(un).scrollTop = 0 : this._element.scrollTop = 0, n && m.reflow(this._element), p(this._element).addClass(cn), this._config.focus && this._enforceFocus();
                  var i = p.Event(nn.SHOWN, {
                          relatedTarget: t
                      }),
                      o = function() {
                          e._config.focus && e._element.focus(), e._isTransitioning = !1, p(e._element).trigger(i)
                      };
                  if (n) {
                      var r = m.getTransitionDurationFromElement(this._dialog);
                      p(this._dialog).one(m.TRANSITION_END, o).emulateTransitionEnd(r)
                  } else o()
              }, t._enforceFocus = function() {
                  var e = this;
                  p(document).off(nn.FOCUSIN).on(nn.FOCUSIN, function(t) {
                      document !== t.target && e._element !== t.target && 0 === p(e._element).has(t.target).length && e._element.focus()
                  })
              }, t._setEscapeEvent = function() {
                  var e = this;
                  this._isShown && this._config.keyboard ? p(this._element).on(nn.KEYDOWN_DISMISS, function(t) {
                      27 === t.which && (t.preventDefault(), e.hide())
                  }) : this._isShown || p(this._element).off(nn.KEYDOWN_DISMISS)
              }, t._setResizeEvent = function() {
                  var e = this;
                  this._isShown ? p(window).on(nn.RESIZE, function(t) {
                      return e.handleUpdate(t)
                  }) : p(window).off(nn.RESIZE)
              }, t._hideModal = function() {
                  var t = this;
                  this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._isTransitioning = !1, this._showBackdrop(function() {
                      p(document.body).removeClass(an), t._resetAdjustments(), t._resetScrollbar(), p(t._element).trigger(nn.HIDDEN)
                  })
              }, t._removeBackdrop = function() {
                  this._backdrop && (p(this._backdrop).remove(), this._backdrop = null)
              }, t._showBackdrop = function(t) {
                  var e = this,
                      n = p(this._element).hasClass(ln) ? ln : "";
                  if (this._isShown && this._config.backdrop) {
                      if (this._backdrop = document.createElement("div"), this._backdrop.className = sn, n && this._backdrop.classList.add(n), p(this._backdrop).appendTo(document.body), p(this._element).on(nn.CLICK_DISMISS, function(t) {
                              e._ignoreBackdropClick ? e._ignoreBackdropClick = !1 : t.target === t.currentTarget && ("static" === e._config.backdrop ? e._element.focus() : e.hide())
                          }), n && m.reflow(this._backdrop), p(this._backdrop).addClass(cn), !t) return;
                      if (!n) return void t();
                      var i = m.getTransitionDurationFromElement(this._backdrop);
                      p(this._backdrop).one(m.TRANSITION_END, t).emulateTransitionEnd(i)
                  } else if (!this._isShown && this._backdrop) {
                      p(this._backdrop).removeClass(cn);
                      var o = function() {
                          e._removeBackdrop(), t && t()
                      };
                      if (p(this._element).hasClass(ln)) {
                          var r = m.getTransitionDurationFromElement(this._backdrop);
                          p(this._backdrop).one(m.TRANSITION_END, o).emulateTransitionEnd(r)
                      } else o()
                  } else t && t()
              }, t._adjustDialog = function() {
                  var t = this._element.scrollHeight > document.documentElement.clientHeight;
                  !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + "px")
              }, t._resetAdjustments = function() {
                  this._element.style.paddingLeft = "", this._element.style.paddingRight = ""
              }, t._checkScrollbar = function() {
                  var t = document.body.getBoundingClientRect();
                  this._isBodyOverflowing = t.left + t.right < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth()
              }, t._setScrollbar = function() {
                  var o = this;
                  if (this._isBodyOverflowing) {
                      var t = [].slice.call(document.querySelectorAll(pn)),
                          e = [].slice.call(document.querySelectorAll(mn));
                      p(t).each(function(t, e) {
                          var n = e.style.paddingRight,
                              i = p(e).css("padding-right");
                          p(e).data("padding-right", n).css("padding-right", parseFloat(i) + o._scrollbarWidth + "px")
                      }), p(e).each(function(t, e) {
                          var n = e.style.marginRight,
                              i = p(e).css("margin-right");
                          p(e).data("margin-right", n).css("margin-right", parseFloat(i) - o._scrollbarWidth + "px")
                      });
                      var n = document.body.style.paddingRight,
                          i = p(document.body).css("padding-right");
                      p(document.body).data("padding-right", n).css("padding-right", parseFloat(i) + this._scrollbarWidth + "px")
                  }
                  p(document.body).addClass(an)
              }, t._resetScrollbar = function() {
                  var t = [].slice.call(document.querySelectorAll(pn));
                  p(t).each(function(t, e) {
                      var n = p(e).data("padding-right");
                      p(e).removeData("padding-right"), e.style.paddingRight = n || ""
                  });
                  var e = [].slice.call(document.querySelectorAll("" + mn));
                  p(e).each(function(t, e) {
                      var n = p(e).data("margin-right");
                      "undefined" != typeof n && p(e).css("margin-right", n).removeData("margin-right")
                  });
                  var n = p(document.body).data("padding-right");
                  p(document.body).removeData("padding-right"), document.body.style.paddingRight = n || ""
              }, t._getScrollbarWidth = function() {
                  var t = document.createElement("div");
                  t.className = rn, document.body.appendChild(t);
                  var e = t.getBoundingClientRect().width - t.clientWidth;
                  return document.body.removeChild(t), e
              }, o._jQueryInterface = function(n, i) {
                  return this.each(function() {
                      var t = p(this).data($e),
                          e = l({}, tn, p(this).data(), "object" == typeof n && n ? n : {});
                      if (t || (t = new o(this, e), p(this).data($e, t)), "string" == typeof n) {
                          if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"');
                          t[n](i)
                      } else e.show && t.show(i)
                  })
              }, s(o, null, [{
                  key: "VERSION",
                  get: function() {
                      return "4.3.1"
                  }
              }, {
                  key: "Default",
                  get: function() {
                      return tn
                  }
              }]), o
          }();
      p(document).on(nn.CLICK_DATA_API, fn, function(t) {
          var e, n = this,
              i = m.getSelectorFromElement(this);
          i && (e = document.querySelector(i));
          var o = p(e).data($e) ? "toggle" : l({}, p(e).data(), p(this).data());
          "A" !== this.tagName && "AREA" !== this.tagName || t.preventDefault();
          var r = p(e).one(nn.SHOW, function(t) {
              t.isDefaultPrevented() || r.one(nn.HIDDEN, function() {
                  p(n).is(":visible") && n.focus()
              })
          });
          gn._jQueryInterface.call(p(e), o, this)
      }), p.fn[Ge] = gn._jQueryInterface, p.fn[Ge].Constructor = gn, p.fn[Ge].noConflict = function() {
          return p.fn[Ge] = Ze, gn._jQueryInterface
      };
      var _n = ["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"],
          vn = {
              "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
              a: ["target", "href", "title", "rel"],
              area: [],
              b: [],
              br: [],
              col: [],
              code: [],
              div: [],
              em: [],
              hr: [],
              h1: [],
              h2: [],
              h3: [],
              h4: [],
              h5: [],
              h6: [],
              i: [],
              img: ["src", "alt", "title", "width", "height"],
              li: [],
              ol: [],
              p: [],
              pre: [],
              s: [],
              small: [],
              span: [],
              sub: [],
              sup: [],
              strong: [],
              u: [],
              ul: []
          },
          yn = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,
          En = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;
  
      function bn(t, s, e) {
          if (0 === t.length) return t;
          if (e && "function" == typeof e) return e(t);
          for (var n = (new window.DOMParser).parseFromString(t, "text/html"), a = Object.keys(s), l = [].slice.call(n.body.querySelectorAll("*")), i = function(t, e) {
                  var n = l[t],
                      i = n.nodeName.toLowerCase();
                  if (-1 === a.indexOf(n.nodeName.toLowerCase())) return n.parentNode.removeChild(n), "continue";
                  var o = [].slice.call(n.attributes),
                      r = [].concat(s["*"] || [], s[i] || []);
                  o.forEach(function(t) {
                      (function(t, e) {
                          var n = t.nodeName.toLowerCase();
                          if (-1 !== e.indexOf(n)) return -1 === _n.indexOf(n) || Boolean(t.nodeValue.match(yn) || t.nodeValue.match(En));
                          for (var i = e.filter(function(t) {
                                  return t instanceof RegExp
                              }), o = 0, r = i.length; o < r; o++)
                              if (n.match(i[o])) return !0;
                          return !1
                      })(t, r) || n.removeAttribute(t.nodeName)
                  })
              }, o = 0, r = l.length; o < r; o++) i(o);
          return n.body.innerHTML
      }
      var wn = "tooltip",
          Cn = "bs.tooltip",
          Tn = "." + Cn,
          Sn = p.fn[wn],
          Dn = "bs-tooltip",
          In = new RegExp("(^|\\s)" + Dn + "\\S+", "g"),
          An = ["sanitize", "whiteList", "sanitizeFn"],
          On = {
              animation: "boolean",
              template: "string",
              title: "(string|element|function)",
              trigger: "string",
              delay: "(number|object)",
              html: "boolean",
              selector: "(string|boolean)",
              placement: "(string|function)",
              offset: "(number|string|function)",
              container: "(string|element|boolean)",
              fallbackPlacement: "(string|array)",
              boundary: "(string|element)",
              sanitize: "boolean",
              sanitizeFn: "(null|function)",
              whiteList: "object"
          },
          Nn = {
              AUTO: "auto",
              TOP: "top",
              RIGHT: "right",
              BOTTOM: "bottom",
              LEFT: "left"
          },
          kn = {
              animation: !0,
              template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',
              trigger: "hover focus",
              title: "",
              delay: 0,
              html: !1,
              selector: !1,
              placement: "top",
              offset: 0,
              container: !1,
              fallbackPlacement: "flip",
              boundary: "scrollParent",
              sanitize: !0,
              sanitizeFn: null,
              whiteList: vn
          },
          Ln = "show",
          xn = "out",
          Pn = {
              HIDE: "hide" + Tn,
              HIDDEN: "hidden" + Tn,
              SHOW: "show" + Tn,
              SHOWN: "shown" + Tn,
              INSERTED: "inserted" + Tn,
              CLICK: "click" + Tn,
              FOCUSIN: "focusin" + Tn,
              FOCUSOUT: "focusout" + Tn,
              MOUSEENTER: "mouseenter" + Tn,
              MOUSELEAVE: "mouseleave" + Tn
          },
          Hn = "fade",
          jn = "show",
          Rn = ".tooltip-inner",
          Fn = ".arrow",
          Mn = "hover",
          Wn = "focus",
          Un = "click",
          Bn = "manual",
          qn = function() {
              function i(t, e) {
                  if ("undefined" == typeof be) throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");
                  this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this.element = t, this.config = this._getConfig(e), this.tip = null, this._setListeners()
              }
              var t = i.prototype;
              return t.enable = function() {
                  this._isEnabled = !0
              }, t.disable = function() {
                  this._isEnabled = !1
              }, t.toggleEnabled = function() {
                  this._isEnabled = !this._isEnabled
              }, t.toggle = function(t) {
                  if (this._isEnabled)
                      if (t) {
                          var e = this.constructor.DATA_KEY,
                              n = p(t.currentTarget).data(e);
                          n || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), p(t.currentTarget).data(e, n)), n._activeTrigger.click = !n._activeTrigger.click, n._isWithActiveTrigger() ? n._enter(null, n) : n._leave(null, n)
                      } else {
                          if (p(this.getTipElement()).hasClass(jn)) return void this._leave(null, this);
                          this._enter(null, this)
                      }
              }, t.dispose = function() {
                  clearTimeout(this._timeout), p.removeData(this.element, this.constructor.DATA_KEY), p(this.element).off(this.constructor.EVENT_KEY), p(this.element).closest(".modal").off("hide.bs.modal"), this.tip && p(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, (this._activeTrigger = null) !== this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null
              }, t.show = function() {
                  var e = this;
                  if ("none" === p(this.element).css("display")) throw new Error("Please use show on visible elements");
                  var t = p.Event(this.constructor.Event.SHOW);
                  if (this.isWithContent() && this._isEnabled) {
                      p(this.element).trigger(t);
                      var n = m.findShadowRoot(this.element),
                          i = p.contains(null !== n ? n : this.element.ownerDocument.documentElement, this.element);
                      if (t.isDefaultPrevented() || !i) return;
                      var o = this.getTipElement(),
                          r = m.getUID(this.constructor.NAME);
                      o.setAttribute("id", r), this.element.setAttribute("aria-describedby", r), this.setContent(), this.config.animation && p(o).addClass(Hn);
                      var s = "function" == typeof this.config.placement ? this.config.placement.call(this, o, this.element) : this.config.placement,
                          a = this._getAttachment(s);
                      this.addAttachmentClass(a);
                      var l = this._getContainer();
                      p(o).data(this.constructor.DATA_KEY, this), p.contains(this.element.ownerDocument.documentElement, this.tip) || p(o).appendTo(l), p(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new be(this.element, o, {
                          placement: a,
                          modifiers: {
                              offset: this._getOffset(),
                              flip: {
                                  behavior: this.config.fallbackPlacement
                              },
                              arrow: {
                                  element: Fn
                              },
                              preventOverflow: {
                                  boundariesElement: this.config.boundary
                              }
                          },
                          onCreate: function(t) {
                              t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t)
                          },
                          onUpdate: function(t) {
                              return e._handlePopperPlacementChange(t)
                          }
                      }), p(o).addClass(jn), "ontouchstart" in document.documentElement && p(document.body).children().on("mouseover", null, p.noop);
                      var c = function() {
                          e.config.animation && e._fixTransition();
                          var t = e._hoverState;
                          e._hoverState = null, p(e.element).trigger(e.constructor.Event.SHOWN), t === xn && e._leave(null, e)
                      };
                      if (p(this.tip).hasClass(Hn)) {
                          var h = m.getTransitionDurationFromElement(this.tip);
                          p(this.tip).one(m.TRANSITION_END, c).emulateTransitionEnd(h)
                      } else c()
                  }
              }, t.hide = function(t) {
                  var e = this,
                      n = this.getTipElement(),
                      i = p.Event(this.constructor.Event.HIDE),
                      o = function() {
                          e._hoverState !== Ln && n.parentNode && n.parentNode.removeChild(n), e._cleanTipClass(), e.element.removeAttribute("aria-describedby"), p(e.element).trigger(e.constructor.Event.HIDDEN), null !== e._popper && e._popper.destroy(), t && t()
                      };
                  if (p(this.element).trigger(i), !i.isDefaultPrevented()) {
                      if (p(n).removeClass(jn), "ontouchstart" in document.documentElement && p(document.body).children().off("mouseover", null, p.noop), this._activeTrigger[Un] = !1, this._activeTrigger[Wn] = !1, this._activeTrigger[Mn] = !1, p(this.tip).hasClass(Hn)) {
                          var r = m.getTransitionDurationFromElement(n);
                          p(n).one(m.TRANSITION_END, o).emulateTransitionEnd(r)
                      } else o();
                      this._hoverState = ""
                  }
              }, t.update = function() {
                  null !== this._popper && this._popper.scheduleUpdate()
              }, t.isWithContent = function() {
                  return Boolean(this.getTitle())
              }, t.addAttachmentClass = function(t) {
                  p(this.getTipElement()).addClass(Dn + "-" + t)
              }, t.getTipElement = function() {
                  return this.tip = this.tip || p(this.config.template)[0], this.tip
              }, t.setContent = function() {
                  var t = this.getTipElement();
                  this.setElementContent(p(t.querySelectorAll(Rn)), this.getTitle()), p(t).removeClass(Hn + " " + jn)
              }, t.setElementContent = function(t, e) {
                  "object" != typeof e || !e.nodeType && !e.jquery ? this.config.html ? (this.config.sanitize && (e = bn(e, this.config.whiteList, this.config.sanitizeFn)), t.html(e)) : t.text(e) : this.config.html ? p(e).parent().is(t) || t.empty().append(e) : t.text(p(e).text())
              }, t.getTitle = function() {
                  var t = this.element.getAttribute("data-original-title");
                  return t || (t = "function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), t
              }, t._getOffset = function() {
                  var e = this,
                      t = {};
                  return "function" == typeof this.config.offset ? t.fn = function(t) {
                      return t.offsets = l({}, t.offsets, e.config.offset(t.offsets, e.element) || {}), t
                  } : t.offset = this.config.offset, t
              }, t._getContainer = function() {
                  return !1 === this.config.container ? document.body : m.isElement(this.config.container) ? p(this.config.container) : p(document).find(this.config.container)
              }, t._getAttachment = function(t) {
                  return Nn[t.toUpperCase()]
              }, t._setListeners = function() {
                  var i = this;
                  this.config.trigger.split(" ").forEach(function(t) {
                      if ("click" === t) p(i.element).on(i.constructor.Event.CLICK, i.config.selector, function(t) {
                          return i.toggle(t)
                      });
                      else if (t !== Bn) {
                          var e = t === Mn ? i.constructor.Event.MOUSEENTER : i.constructor.Event.FOCUSIN,
                              n = t === Mn ? i.constructor.Event.MOUSELEAVE : i.constructor.Event.FOCUSOUT;
                          p(i.element).on(e, i.config.selector, function(t) {
                              return i._enter(t)
                          }).on(n, i.config.selector, function(t) {
                              return i._leave(t)
                          })
                      }
                  }), p(this.element).closest(".modal").on("hide.bs.modal", function() {
                      i.element && i.hide()
                  }), this.config.selector ? this.config = l({}, this.config, {
                      trigger: "manual",
                      selector: ""
                  }) : this._fixTitle()
              }, t._fixTitle = function() {
                  var t = typeof this.element.getAttribute("data-original-title");
                  (this.element.getAttribute("title") || "string" !== t) && (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", ""))
              }, t._enter = function(t, e) {
                  var n = this.constructor.DATA_KEY;
                  (e = e || p(t.currentTarget).data(n)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), p(t.currentTarget).data(n, e)), t && (e._activeTrigger["focusin" === t.type ? Wn : Mn] = !0), p(e.getTipElement()).hasClass(jn) || e._hoverState === Ln ? e._hoverState = Ln : (clearTimeout(e._timeout), e._hoverState = Ln, e.config.delay && e.config.delay.show ? e._timeout = setTimeout(function() {
                      e._hoverState === Ln && e.show()
                  }, e.config.delay.show) : e.show())
              }, t._leave = function(t, e) {
                  var n = this.constructor.DATA_KEY;
                  (e = e || p(t.currentTarget).data(n)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), p(t.currentTarget).data(n, e)), t && (e._activeTrigger["focusout" === t.type ? Wn : Mn] = !1), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = xn, e.config.delay && e.config.delay.hide ? e._timeout = setTimeout(function() {
                      e._hoverState === xn && e.hide()
                  }, e.config.delay.hide) : e.hide())
              }, t._isWithActiveTrigger = function() {
                  for (var t in this._activeTrigger)
                      if (this._activeTrigger[t]) return !0;
                  return !1
              }, t._getConfig = function(t) {
                  var e = p(this.element).data();
                  return Object.keys(e).forEach(function(t) {
                      -1 !== An.indexOf(t) && delete e[t]
                  }), "number" == typeof(t = l({}, this.constructor.Default, e, "object" == typeof t && t ? t : {})).delay && (t.delay = {
                      show: t.delay,
                      hide: t.delay
                  }), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), m.typeCheckConfig(wn, t, this.constructor.DefaultType), t.sanitize && (t.template = bn(t.template, t.whiteList, t.sanitizeFn)), t
              }, t._getDelegateConfig = function() {
                  var t = {};
                  if (this.config)
                      for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]);
                  return t
              }, t._cleanTipClass = function() {
                  var t = p(this.getTipElement()),
                      e = t.attr("class").match(In);
                  null !== e && e.length && t.removeClass(e.join(""))
              }, t._handlePopperPlacementChange = function(t) {
                  var e = t.instance;
                  this.tip = e.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement))
              }, t._fixTransition = function() {
                  var t = this.getTipElement(),
                      e = this.config.animation;
                  null === t.getAttribute("x-placement") && (p(t).removeClass(Hn), this.config.animation = !1, this.hide(), this.show(), this.config.animation = e)
              }, i._jQueryInterface = function(n) {
                  return this.each(function() {
                      var t = p(this).data(Cn),
                          e = "object" == typeof n && n;
                      if ((t || !/dispose|hide/.test(n)) && (t || (t = new i(this, e), p(this).data(Cn, t)), "string" == typeof n)) {
                          if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"');
                          t[n]()
                      }
                  })
              }, s(i, null, [{
                  key: "VERSION",
                  get: function() {
                      return "4.3.1"
                  }
              }, {
                  key: "Default",
                  get: function() {
                      return kn
                  }
              }, {
                  key: "NAME",
                  get: function() {
                      return wn
                  }
              }, {
                  key: "DATA_KEY",
                  get: function() {
                      return Cn
                  }
              }, {
                  key: "Event",
                  get: function() {
                      return Pn
                  }
              }, {
                  key: "EVENT_KEY",
                  get: function() {
                      return Tn
                  }
              }, {
                  key: "DefaultType",
                  get: function() {
                      return On
                  }
              }]), i
          }();
      p.fn[wn] = qn._jQueryInterface, p.fn[wn].Constructor = qn, p.fn[wn].noConflict = function() {
          return p.fn[wn] = Sn, qn._jQueryInterface
      };
      var Kn = "popover",
          Qn = "bs.popover",
          Vn = "." + Qn,
          Yn = p.fn[Kn],
          zn = "bs-popover",
          Xn = new RegExp("(^|\\s)" + zn + "\\S+", "g"),
          Gn = l({}, qn.Default, {
              placement: "right",
              trigger: "click",
              content: "",
              template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
          }),
          $n = l({}, qn.DefaultType, {
              content: "(string|element|function)"
          }),
          Jn = "fade",
          Zn = "show",
          ti = ".popover-header",
          ei = ".popover-body",
          ni = {
              HIDE: "hide" + Vn,
              HIDDEN: "hidden" + Vn,
              SHOW: "show" + Vn,
              SHOWN: "shown" + Vn,
              INSERTED: "inserted" + Vn,
              CLICK: "click" + Vn,
              FOCUSIN: "focusin" + Vn,
              FOCUSOUT: "focusout" + Vn,
              MOUSEENTER: "mouseenter" + Vn,
              MOUSELEAVE: "mouseleave" + Vn
          },
          ii = function(t) {
              var e, n;
  
              function i() {
                  return t.apply(this, arguments) || this
              }
              n = t, (e = i).prototype = Object.create(n.prototype), (e.prototype.constructor = e).__proto__ = n;
              var o = i.prototype;
              return o.isWithContent = function() {
                  return this.getTitle() || this._getContent()
              }, o.addAttachmentClass = function(t) {
                  p(this.getTipElement()).addClass(zn + "-" + t)
              }, o.getTipElement = function() {
                  return this.tip = this.tip || p(this.config.template)[0], this.tip
              }, o.setContent = function() {
                  var t = p(this.getTipElement());
                  this.setElementContent(t.find(ti), this.getTitle());
                  var e = this._getContent();
                  "function" == typeof e && (e = e.call(this.element)), this.setElementContent(t.find(ei), e), t.removeClass(Jn + " " + Zn)
              }, o._getContent = function() {
                  return this.element.getAttribute("data-content") || this.config.content
              }, o._cleanTipClass = function() {
                  var t = p(this.getTipElement()),
                      e = t.attr("class").match(Xn);
                  null !== e && 0 < e.length && t.removeClass(e.join(""))
              }, i._jQueryInterface = function(n) {
                  return this.each(function() {
                      var t = p(this).data(Qn),
                          e = "object" == typeof n ? n : null;
                      if ((t || !/dispose|hide/.test(n)) && (t || (t = new i(this, e), p(this).data(Qn, t)), "string" == typeof n)) {
                          if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"');
                          t[n]()
                      }
                  })
              }, s(i, null, [{
                  key: "VERSION",
                  get: function() {
                      return "4.3.1"
                  }
              }, {
                  key: "Default",
                  get: function() {
                      return Gn
                  }
              }, {
                  key: "NAME",
                  get: function() {
                      return Kn
                  }
              }, {
                  key: "DATA_KEY",
                  get: function() {
                      return Qn
                  }
              }, {
                  key: "Event",
                  get: function() {
                      return ni
                  }
              }, {
                  key: "EVENT_KEY",
                  get: function() {
                      return Vn
                  }
              }, {
                  key: "DefaultType",
                  get: function() {
                      return $n
                  }
              }]), i
          }(qn);
      p.fn[Kn] = ii._jQueryInterface, p.fn[Kn].Constructor = ii, p.fn[Kn].noConflict = function() {
          return p.fn[Kn] = Yn, ii._jQueryInterface
      };
      var oi = "scrollspy",
          ri = "bs.scrollspy",
          si = "." + ri,
          ai = p.fn[oi],
          li = {
              offset: 10,
              method: "auto",
              target: ""
          },
          ci = {
              offset: "number",
              method: "string",
              target: "(string|element)"
          },
          hi = {
              ACTIVATE: "activate" + si,
              SCROLL: "scroll" + si,
              LOAD_DATA_API: "load" + si + ".data-api"
          },
          ui = "dropdown-item",
          fi = "active",
          di = '[data-spy="scroll"]',
          pi = ".nav, .list-group",
          mi = ".nav-link",
          gi = ".nav-item",
          _i = ".list-group-item",
          vi = ".dropdown",
          yi = ".dropdown-item",
          Ei = ".dropdown-toggle",
          bi = "offset",
          wi = "position",
          Ci = function() {
              function n(t, e) {
                  var n = this;
                  this._element = t, this._scrollElement = "BODY" === t.tagName ? window : t, this._config = this._getConfig(e), this._selector = this._config.target + " " + mi + "," + this._config.target + " " + _i + "," + this._config.target + " " + yi, this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, p(this._scrollElement).on(hi.SCROLL, function(t) {
                      return n._process(t)
                  }), this.refresh(), this._process()
              }
              var t = n.prototype;
              return t.refresh = function() {
                  var e = this,
                      t = this._scrollElement === this._scrollElement.window ? bi : wi,
                      o = "auto" === this._config.method ? t : this._config.method,
                      r = o === wi ? this._getScrollTop() : 0;
                  this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map(function(t) {
                      var e, n = m.getSelectorFromElement(t);
                      if (n && (e = document.querySelector(n)), e) {
                          var i = e.getBoundingClientRect();
                          if (i.width || i.height) return [p(e)[o]().top + r, n]
                      }
                      return null
                  }).filter(function(t) {
                      return t
                  }).sort(function(t, e) {
                      return t[0] - e[0]
                  }).forEach(function(t) {
                      e._offsets.push(t[0]), e._targets.push(t[1])
                  })
              }, t.dispose = function() {
                  p.removeData(this._element, ri), p(this._scrollElement).off(si), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null
              }, t._getConfig = function(t) {
                  if ("string" != typeof(t = l({}, li, "object" == typeof t && t ? t : {})).target) {
                      var e = p(t.target).attr("id");
                      e || (e = m.getUID(oi), p(t.target).attr("id", e)), t.target = "#" + e
                  }
                  return m.typeCheckConfig(oi, t, ci), t
              }, t._getScrollTop = function() {
                  return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop
              }, t._getScrollHeight = function() {
                  return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)
              }, t._getOffsetHeight = function() {
                  return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height
              }, t._process = function() {
                  var t = this._getScrollTop() + this._config.offset,
                      e = this._getScrollHeight(),
                      n = this._config.offset + e - this._getOffsetHeight();
                  if (this._scrollHeight !== e && this.refresh(), n <= t) {
                      var i = this._targets[this._targets.length - 1];
                      this._activeTarget !== i && this._activate(i)
                  } else {
                      if (this._activeTarget && t < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear();
                      for (var o = this._offsets.length; o--;) {
                          this._activeTarget !== this._targets[o] && t >= this._offsets[o] && ("undefined" == typeof this._offsets[o + 1] || t < this._offsets[o + 1]) && this._activate(this._targets[o])
                      }
                  }
              }, t._activate = function(e) {
                  this._activeTarget = e, this._clear();
                  var t = this._selector.split(",").map(function(t) {
                          return t + '[data-target="' + e + '"],' + t + '[href="' + e + '"]'
                      }),
                      n = p([].slice.call(document.querySelectorAll(t.join(","))));
                  n.hasClass(ui) ? (n.closest(vi).find(Ei).addClass(fi), n.addClass(fi)) : (n.addClass(fi), n.parents(pi).prev(mi + ", " + _i).addClass(fi), n.parents(pi).prev(gi).children(mi).addClass(fi)), p(this._scrollElement).trigger(hi.ACTIVATE, {
                      relatedTarget: e
                  })
              }, t._clear = function() {
                  [].slice.call(document.querySelectorAll(this._selector)).filter(function(t) {
                      return t.classList.contains(fi)
                  }).forEach(function(t) {
                      return t.classList.remove(fi)
                  })
              }, n._jQueryInterface = function(e) {
                  return this.each(function() {
                      var t = p(this).data(ri);
                      if (t || (t = new n(this, "object" == typeof e && e), p(this).data(ri, t)), "string" == typeof e) {
                          if ("undefined" == typeof t[e]) throw new TypeError('No method named "' + e + '"');
                          t[e]()
                      }
                  })
              }, s(n, null, [{
                  key: "VERSION",
                  get: function() {
                      return "4.3.1"
                  }
              }, {
                  key: "Default",
                  get: function() {
                      return li
                  }
              }]), n
          }();
      p(window).on(hi.LOAD_DATA_API, function() {
          for (var t = [].slice.call(document.querySelectorAll(di)), e = t.length; e--;) {
              var n = p(t[e]);
              Ci._jQueryInterface.call(n, n.data())
          }
      }), p.fn[oi] = Ci._jQueryInterface, p.fn[oi].Constructor = Ci, p.fn[oi].noConflict = function() {
          return p.fn[oi] = ai, Ci._jQueryInterface
      };
      var Ti = "bs.tab",
          Si = "." + Ti,
          Di = p.fn.tab,
          Ii = {
              HIDE: "hide" + Si,
              HIDDEN: "hidden" + Si,
              SHOW: "show" + Si,
              SHOWN: "shown" + Si,
              CLICK_DATA_API: "click" + Si + ".data-api"
          },
          Ai = "dropdown-menu",
          Oi = "active",
          Ni = "disabled",
          ki = "fade",
          Li = "show",
          xi = ".dropdown",
          Pi = ".nav, .list-group",
          Hi = ".active",
          ji = "> li > .active",
          Ri = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
          Fi = ".dropdown-toggle",
          Mi = "> .dropdown-menu .active",
          Wi = function() {
              function i(t) {
                  this._element = t
              }
              var t = i.prototype;
              return t.show = function() {
                  var n = this;
                  if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && p(this._element).hasClass(Oi) || p(this._element).hasClass(Ni))) {
                      var t, i, e = p(this._element).closest(Pi)[0],
                          o = m.getSelectorFromElement(this._element);
                      if (e) {
                          var r = "UL" === e.nodeName || "OL" === e.nodeName ? ji : Hi;
                          i = (i = p.makeArray(p(e).find(r)))[i.length - 1]
                      }
                      var s = p.Event(Ii.HIDE, {
                              relatedTarget: this._element
                          }),
                          a = p.Event(Ii.SHOW, {
                              relatedTarget: i
                          });
                      if (i && p(i).trigger(s), p(this._element).trigger(a), !a.isDefaultPrevented() && !s.isDefaultPrevented()) {
                          o && (t = document.querySelector(o)), this._activate(this._element, e);
                          var l = function() {
                              var t = p.Event(Ii.HIDDEN, {
                                      relatedTarget: n._element
                                  }),
                                  e = p.Event(Ii.SHOWN, {
                                      relatedTarget: i
                                  });
                              p(i).trigger(t), p(n._element).trigger(e)
                          };
                          t ? this._activate(t, t.parentNode, l) : l()
                      }
                  }
              }, t.dispose = function() {
                  p.removeData(this._element, Ti), this._element = null
              }, t._activate = function(t, e, n) {
                  var i = this,
                      o = (!e || "UL" !== e.nodeName && "OL" !== e.nodeName ? p(e).children(Hi) : p(e).find(ji))[0],
                      r = n && o && p(o).hasClass(ki),
                      s = function() {
                          return i._transitionComplete(t, o, n)
                      };
                  if (o && r) {
                      var a = m.getTransitionDurationFromElement(o);
                      p(o).removeClass(Li).one(m.TRANSITION_END, s).emulateTransitionEnd(a)
                  } else s()
              }, t._transitionComplete = function(t, e, n) {
                  if (e) {
                      p(e).removeClass(Oi);
                      var i = p(e.parentNode).find(Mi)[0];
                      i && p(i).removeClass(Oi), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !1)
                  }
                  if (p(t).addClass(Oi), "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !0), m.reflow(t), t.classList.contains(ki) && t.classList.add(Li), t.parentNode && p(t.parentNode).hasClass(Ai)) {
                      var o = p(t).closest(xi)[0];
                      if (o) {
                          var r = [].slice.call(o.querySelectorAll(Fi));
                          p(r).addClass(Oi)
                      }
                      t.setAttribute("aria-expanded", !0)
                  }
                  n && n()
              }, i._jQueryInterface = function(n) {
                  return this.each(function() {
                      var t = p(this),
                          e = t.data(Ti);
                      if (e || (e = new i(this), t.data(Ti, e)), "string" == typeof n) {
                          if ("undefined" == typeof e[n]) throw new TypeError('No method named "' + n + '"');
                          e[n]()
                      }
                  })
              }, s(i, null, [{
                  key: "VERSION",
                  get: function() {
                      return "4.3.1"
                  }
              }]), i
          }();
      p(document).on(Ii.CLICK_DATA_API, Ri, function(t) {
          t.preventDefault(), Wi._jQueryInterface.call(p(this), "show")
      }), p.fn.tab = Wi._jQueryInterface, p.fn.tab.Constructor = Wi, p.fn.tab.noConflict = function() {
          return p.fn.tab = Di, Wi._jQueryInterface
      };
      var Ui = "toast",
          Bi = "bs.toast",
          qi = "." + Bi,
          Ki = p.fn[Ui],
          Qi = {
              CLICK_DISMISS: "click.dismiss" + qi,
              HIDE: "hide" + qi,
              HIDDEN: "hidden" + qi,
              SHOW: "show" + qi,
              SHOWN: "shown" + qi
          },
          Vi = "fade",
          Yi = "hide",
          zi = "show",
          Xi = "showing",
          Gi = {
              animation: "boolean",
              autohide: "boolean",
              delay: "number"
          },
          $i = {
              animation: !0,
              autohide: !0,
              delay: 500
          },
          Ji = '[data-dismiss="toast"]',
          Zi = function() {
              function i(t, e) {
                  this._element = t, this._config = this._getConfig(e), this._timeout = null, this._setListeners()
              }
              var t = i.prototype;
              return t.show = function() {
                  var t = this;
                  p(this._element).trigger(Qi.SHOW), this._config.animation && this._element.classList.add(Vi);
                  var e = function() {
                      t._element.classList.remove(Xi), t._element.classList.add(zi), p(t._element).trigger(Qi.SHOWN), t._config.autohide && t.hide()
                  };
                  if (this._element.classList.remove(Yi), this._element.classList.add(Xi), this._config.animation) {
                      var n = m.getTransitionDurationFromElement(this._element);
                      p(this._element).one(m.TRANSITION_END, e).emulateTransitionEnd(n)
                  } else e()
              }, t.hide = function(t) {
                  var e = this;
                  this._element.classList.contains(zi) && (p(this._element).trigger(Qi.HIDE), t ? this._close() : this._timeout = setTimeout(function() {
                      e._close()
                  }, this._config.delay))
              }, t.dispose = function() {
                  clearTimeout(this._timeout), this._timeout = null, this._element.classList.contains(zi) && this._element.classList.remove(zi), p(this._element).off(Qi.CLICK_DISMISS), p.removeData(this._element, Bi), this._element = null, this._config = null
              }, t._getConfig = function(t) {
                  return t = l({}, $i, p(this._element).data(), "object" == typeof t && t ? t : {}), m.typeCheckConfig(Ui, t, this.constructor.DefaultType), t
              }, t._setListeners = function() {
                  var t = this;
                  p(this._element).on(Qi.CLICK_DISMISS, Ji, function() {
                      return t.hide(!0)
                  })
              }, t._close = function() {
                  var t = this,
                      e = function() {
                          t._element.classList.add(Yi), p(t._element).trigger(Qi.HIDDEN)
                      };
                  if (this._element.classList.remove(zi), this._config.animation) {
                      var n = m.getTransitionDurationFromElement(this._element);
                      p(this._element).one(m.TRANSITION_END, e).emulateTransitionEnd(n)
                  } else e()
              }, i._jQueryInterface = function(n) {
                  return this.each(function() {
                      var t = p(this),
                          e = t.data(Bi);
                      if (e || (e = new i(this, "object" == typeof n && n), t.data(Bi, e)), "string" == typeof n) {
                          if ("undefined" == typeof e[n]) throw new TypeError('No method named "' + n + '"');
                          e[n](this)
                      }
                  })
              }, s(i, null, [{
                  key: "VERSION",
                  get: function() {
                      return "4.3.1"
                  }
              }, {
                  key: "DefaultType",
                  get: function() {
                      return Gi
                  }
              }, {
                  key: "Default",
                  get: function() {
                      return $i
                  }
              }]), i
          }();
      p.fn[Ui] = Zi._jQueryInterface, p.fn[Ui].Constructor = Zi, p.fn[Ui].noConflict = function() {
              return p.fn[Ui] = Ki, Zi._jQueryInterface
          },
          function() {
              if ("undefined" == typeof p) throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");
              var t = p.fn.jquery.split(" ")[0].split(".");
              if (t[0] < 2 && t[1] < 9 || 1 === t[0] && 9 === t[1] && t[2] < 1 || 4 <= t[0]) throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")
          }(), t.Util = m, t.Alert = g, t.Button = k, t.Carousel = at, t.Collapse = Ct, t.Dropdown = Xe, t.Modal = gn, t.Popover = ii, t.Scrollspy = Ci, t.Tab = Wi, t.Toast = Zi, t.Tooltip = qn, Object.defineProperty(t, "__esModule", {
              value: !0
          })
  });
  //# sourceMappingURL=bootstrap.bundle.min.js.map