text: /*!
  Waypoints - 4.0.0
  Copyright © 2011-2015 Caleb Troughton
  Licensed under the MIT license.
  https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
  */
  !(function () {
    "use strict";
    function t(o) {
      if (!o) throw new Error("No options passed to Waypoint constructor");
      if (!o.element)
        throw new Error("No element option passed to Waypoint constructor");
      if (!o.handler)
        throw new Error("No handler option passed to Waypoint constructor");
      (this.key = "waypoint-" + e),
        (this.options = t.Adapter.extend({}, t.defaults, o)),
        (this.element = this.options.element),
        (this.adapter = new t.Adapter(this.element)),
        (this.callback = o.handler),
        (this.axis = this.options.horizontal ? "horizontal" : "vertical"),
        (this.enabled = this.options.enabled),
        (this.triggerPoint = null),
        (this.group = t.Group.findOrCreate({
          name: this.options.group,
          axis: this.axis,
        })),
        (this.context = t.Context.findOrCreateByElement(this.options.context)),
        t.offsetAliases[this.options.offset] &&
          (this.options.offset = t.offsetAliases[this.options.offset]),
        this.group.add(this),
        this.context.add(this),
        (i[this.key] = this),
        (e += 1);
    }
    var e = 0,
      i = {};
    (t.prototype.queueTrigger = function (t) {
      this.group.queueTrigger(this, t);
    }),
      (t.prototype.trigger = function (t) {
        this.enabled && this.callback && this.callback.apply(this, t);
      }),
      (t.prototype.destroy = function () {
        this.context.remove(this), this.group.remove(this), delete i[this.key];
      }),
      (t.prototype.disable = function () {
        return (this.enabled = !1), this;
      }),
      (t.prototype.enable = function () {
        return this.context.refresh(), (this.enabled = !0), this;
      }),
      (t.prototype.next = function () {
        return this.group.next(this);
      }),
      (t.prototype.previous = function () {
        return this.group.previous(this);
      }),
      (t.invokeAll = function (t) {
        var e = [];
        for (var o in i) e.push(i[o]);
        for (var n = 0, r = e.length; r > n; n++) e[n][t]();
      }),
      (t.destroyAll = function () {
        t.invokeAll("destroy");
      }),
      (t.disableAll = function () {
        t.invokeAll("disable");
      }),
      (t.enableAll = function () {
        t.invokeAll("enable");
      }),
      (t.refreshAll = function () {
        t.Context.refreshAll();
      }),
      (t.viewportHeight = function () {
        return window.innerHeight || document.documentElement.clientHeight;
      }),
      (t.viewportWidth = function () {
        return document.documentElement.clientWidth;
      }),
      (t.adapters = []),
      (t.defaults = {
        context: window,
        continuous: !0,
        enabled: !0,
        group: "default",
        horizontal: !1,
        offset: 0,
      }),
      (t.offsetAliases = {
        "bottom-in-view": function () {
          return this.context.innerHeight() - this.adapter.outerHeight();
        },
        "right-in-view": function () {
          return this.context.innerWidth() - this.adapter.outerWidth();
        },
      }),
      (window.Waypoint = t);
  })(),
    (function () {
      "use strict";
      function t(t) {
        window.setTimeout(t, 1e3 / 60);
      }
      function e(t) {
        (this.element = t),
          (this.Adapter = n.Adapter),
          (this.adapter = new this.Adapter(t)),
          (this.key = "waypoint-context-" + i),
          (this.didScroll = !1),
          (this.didResize = !1),
          (this.oldScroll = {
            x: this.adapter.scrollLeft(),
            y: this.adapter.scrollTop(),
          }),
          (this.waypoints = { vertical: {}, horizontal: {} }),
          (t.waypointContextKey = this.key),
          (o[t.waypointContextKey] = this),
          (i += 1),
          this.createThrottledScrollHandler(),
          this.createThrottledResizeHandler();
      }
      var i = 0,
        o = {},
        n = window.Waypoint,
        r = window.onload;
      (e.prototype.add = function (t) {
        var e = t.options.horizontal ? "horizontal" : "vertical";
        (this.waypoints[e][t.key] = t), this.refresh();
      }),
        (e.prototype.checkEmpty = function () {
          var t = this.Adapter.isEmptyObject(this.waypoints.horizontal),
            e = this.Adapter.isEmptyObject(this.waypoints.vertical);
          t && e && (this.adapter.off(".waypoints"), delete o[this.key]);
        }),
        (e.prototype.createThrottledResizeHandler = function () {
          function t() {
            e.handleResize(), (e.didResize = !1);
          }
          var e = this;
          this.adapter.on("resize.waypoints", function () {
            e.didResize || ((e.didResize = !0), n.requestAnimationFrame(t));
          });
        }),
        (e.prototype.createThrottledScrollHandler = function () {
          function t() {
            e.handleScroll(), (e.didScroll = !1);
          }
          var e = this;
          this.adapter.on("scroll.waypoints", function () {
            (!e.didScroll || n.isTouch) &&
              ((e.didScroll = !0), n.requestAnimationFrame(t));
          });
        }),
        (e.prototype.handleResize = function () {
          n.Context.refreshAll();
        }),
        (e.prototype.handleScroll = function () {
          var t = {},
            e = {
              horizontal: {
                newScroll: this.adapter.scrollLeft(),
                oldScroll: this.oldScroll.x,
                forward: "right",
                backward: "left",
              },
              vertical: {
                newScroll: this.adapter.scrollTop(),
                oldScroll: this.oldScroll.y,
                forward: "down",
                backward: "up",
              },
            };
          for (var i in e) {
            var o = e[i],
              n = o.newScroll > o.oldScroll,
              r = n ? o.forward : o.backward;
            for (var s in this.waypoints[i]) {
              var a = this.waypoints[i][s],
                l = o.oldScroll < a.triggerPoint,
                h = o.newScroll >= a.triggerPoint,
                p = l && h,
                u = !l && !h;
              (p || u) && (a.queueTrigger(r), (t[a.group.id] = a.group));
            }
          }
          for (var c in t) t[c].flushTriggers();
          this.oldScroll = { x: e.horizontal.newScroll, y: e.vertical.newScroll };
        }),
        (e.prototype.innerHeight = function () {
          return this.element == this.element.window
            ? n.viewportHeight()
            : this.adapter.innerHeight();
        }),
        (e.prototype.remove = function (t) {
          delete this.waypoints[t.axis][t.key], this.checkEmpty();
        }),
        (e.prototype.innerWidth = function () {
          return this.element == this.element.window
            ? n.viewportWidth()
            : this.adapter.innerWidth();
        }),
        (e.prototype.destroy = function () {
          var t = [];
          for (var e in this.waypoints)
            for (var i in this.waypoints[e]) t.push(this.waypoints[e][i]);
          for (var o = 0, n = t.length; n > o; o++) t[o].destroy();
        }),
        (e.prototype.refresh = function () {
          var t,
            e = this.element == this.element.window,
            i = e ? void 0 : this.adapter.offset(),
            o = {};
          this.handleScroll(),
            (t = {
              horizontal: {
                contextOffset: e ? 0 : i.left,
                contextScroll: e ? 0 : this.oldScroll.x,
                contextDimension: this.innerWidth(),
                oldScroll: this.oldScroll.x,
                forward: "right",
                backward: "left",
                offsetProp: "left",
              },
              vertical: {
                contextOffset: e ? 0 : i.top,
                contextScroll: e ? 0 : this.oldScroll.y,
                contextDimension: this.innerHeight(),
                oldScroll: this.oldScroll.y,
                forward: "down",
                backward: "up",
                offsetProp: "top",
              },
            });
          for (var r in t) {
            var s = t[r];
            for (var a in this.waypoints[r]) {
              var l,
                h,
                p,
                u,
                c,
                d = this.waypoints[r][a],
                f = d.options.offset,
                w = d.triggerPoint,
                y = 0,
                g = null == w;
              d.element !== d.element.window &&
                (y = d.adapter.offset()[s.offsetProp]),
                "function" == typeof f
                  ? (f = f.apply(d))
                  : "string" == typeof f &&
                    ((f = parseFloat(f)),
                    d.options.offset.indexOf("%") > -1 &&
                      (f = Math.ceil((s.contextDimension * f) / 100))),
                (l = s.contextScroll - s.contextOffset),
                (d.triggerPoint = y + l - f),
                (h = w < s.oldScroll),
                (p = d.triggerPoint >= s.oldScroll),
                (u = h && p),
                (c = !h && !p),
                !g && u
                  ? (d.queueTrigger(s.backward), (o[d.group.id] = d.group))
                  : !g && c
                  ? (d.queueTrigger(s.forward), (o[d.group.id] = d.group))
                  : g &&
                    s.oldScroll >= d.triggerPoint &&
                    (d.queueTrigger(s.forward), (o[d.group.id] = d.group));
            }
          }
          return (
            n.requestAnimationFrame(function () {
              for (var t in o) o[t].flushTriggers();
            }),
            this
          );
        }),
        (e.findOrCreateByElement = function (t) {
          return e.findByElement(t) || new e(t);
        }),
        (e.refreshAll = function () {
          for (var t in o) o[t].refresh();
        }),
        (e.findByElement = function (t) {
          return o[t.waypointContextKey];
        }),
        (window.onload = function () {
          r && r(), e.refreshAll();
        }),
        (n.requestAnimationFrame = function (e) {
          var i =
            window.requestAnimationFrame ||
            window.mozRequestAnimationFrame ||
            window.webkitRequestAnimationFrame ||
            t;
          i.call(window, e);
        }),
        (n.Context = e);
    })(),
    (function () {
      "use strict";
      function t(t, e) {
        return t.triggerPoint - e.triggerPoint;
      }
      function e(t, e) {
        return e.triggerPoint - t.triggerPoint;
      }
      function i(t) {
        (this.name = t.name),
          (this.axis = t.axis),
          (this.id = this.name + "-" + this.axis),
          (this.waypoints = []),
          this.clearTriggerQueues(),
          (o[this.axis][this.name] = this);
      }
      var o = { vertical: {}, horizontal: {} },
        n = window.Waypoint;
      (i.prototype.add = function (t) {
        this.waypoints.push(t);
      }),
        (i.prototype.clearTriggerQueues = function () {
          this.triggerQueues = { up: [], down: [], left: [], right: [] };
        }),
        (i.prototype.flushTriggers = function () {
          for (var i in this.triggerQueues) {
            var o = this.triggerQueues[i],
              n = "up" === i || "left" === i;
            o.sort(n ? e : t);
            for (var r = 0, s = o.length; s > r; r += 1) {
              var a = o[r];
              (a.options.continuous || r === o.length - 1) && a.trigger([i]);
            }
          }
          this.clearTriggerQueues();
        }),
        (i.prototype.next = function (e) {
          this.waypoints.sort(t);
          var i = n.Adapter.inArray(e, this.waypoints),
            o = i === this.waypoints.length - 1;
          return o ? null : this.waypoints[i + 1];
        }),
        (i.prototype.previous = function (e) {
          this.waypoints.sort(t);
          var i = n.Adapter.inArray(e, this.waypoints);
          return i ? this.waypoints[i - 1] : null;
        }),
        (i.prototype.queueTrigger = function (t, e) {
          this.triggerQueues[e].push(t);
        }),
        (i.prototype.remove = function (t) {
          var e = n.Adapter.inArray(t, this.waypoints);
          e > -1 && this.waypoints.splice(e, 1);
        }),
        (i.prototype.first = function () {
          return this.waypoints[0];
        }),
        (i.prototype.last = function () {
          return this.waypoints[this.waypoints.length - 1];
        }),
        (i.findOrCreate = function (t) {
          return o[t.axis][t.name] || new i(t);
        }),
        (n.Group = i);
    })(),
    (function () {
      "use strict";
      function t(t) {
        this.$element = e(t);
      }
      var e = window.jQuery,
        i = window.Waypoint;
      e.each(
        [
          "innerHeight",
          "innerWidth",
          "off",
          "offset",
          "on",
          "outerHeight",
          "outerWidth",
          "scrollLeft",
          "scrollTop",
        ],
        function (e, i) {
          t.prototype[i] = function () {
            var t = Array.prototype.slice.call(arguments);
            return this.$element[i].apply(this.$element, t);
          };
        }
      ),
        e.each(["extend", "inArray", "isEmptyObject"], function (i, o) {
          t[o] = e[o];
        }),
        i.adapters.push({ name: "jquery", Adapter: t }),
        (i.Adapter = t);
    })(),
    (function () {
      "use strict";
      function t(t) {
        return function () {
          var i = [],
            o = arguments[0];
          return (
            t.isFunction(arguments[0]) &&
              ((o = t.extend({}, arguments[1])), (o.handler = arguments[0])),
            this.each(function () {
              var n = t.extend({}, o, { element: this });
              "string" == typeof n.context &&
                (n.context = t(this).closest(n.context)[0]),
                i.push(new e(n));
            }),
            i
          );
        };
      }
      var e = window.Waypoint;
      window.jQuery && (window.jQuery.fn.waypoint = t(window.jQuery)),
        window.Zepto && (window.Zepto.fn.waypoint = t(window.Zepto));
    })();
  