Skip to content

Instantly share code, notes, and snippets.

@sean-clayton
Created June 2, 2015 16:58
Show Gist options
  • Save sean-clayton/dd1940341c8d33db1c03 to your computer and use it in GitHub Desktop.
Save sean-clayton/dd1940341c8d33db1c03 to your computer and use it in GitHub Desktop.
require = function a(b, c, d) {
function e(g, h) {
if (!c[g]) {
if (!b[g]) {
var i = "function" == typeof require && require;
if (!h && i) return i(g, !0);
if (f) return f(g, !0);
var j = new Error("Cannot find module '" + g + "'");
throw j.code = "MODULE_NOT_FOUND", j
}
var k = c[g] = {
exports: {}
};
b[g][0].call(k.exports, function(a) {
var c = b[g][1][a];
return e(c ? c : a)
}, k, k.exports, a, b, c, d)
}
return c[g].exports
}
for (var f = "function" == typeof require && require, g = 0; g < d.length; g++) e(d[g]);
return e
}({
"./workspace/pages/countdown/countdown-page.js": [
function(a, b, c) {
"use strict";
var d = a("page"),
e = a("./countdown-clock"),
f = a("scroll"),
g = a("glitch"),
h = a("underscore"),
i = a("jquery"),
j = a("./../../../app-config"),
k = a("promise"),
l = d.extend({
mid: "countdown",
onLoad: function(a) {
return this.pageEl = a.el, this.data = a.data || {}, this.countdownData = this.data.modules.countdown.data, this.body = document.body, this.continueToLink = this.pageEl.getElementsByClassName("countdown-continue-link")[0], this.finePrintLink = this.pageEl.getElementsByClassName("countdown-fine-print-text")[0], this.finePrintContent = this.pageEl.getElementsByClassName("countdown-fine-print-content")[0], this.subModules.clock = new e({
el: this.pageEl,
launchTime: a.data.meta["countdown-end-time"],
onEnd: this.onCountdownEnd.bind(this)
}), this.setupContinueTo(), this.subModules.clock.start(), this.setupScroll(), this.finePrintLink.kit.addEventListener("click", "onFinePrintClick", this), this.continueToLink.kit.addEventListener("click", "onContinueToLinkClick", this), this.subModules.glitch = new g({
el: this.pageEl
}), this.subModules.glitch.load()
},
onCountdownEnd: function() {
this.subModules.glitch.flicker(), h.delay(function() {
this.pageEl.classList.add("end-countdown")
}.bind(this), 500), sessionStorage.removeItem("continueToUrl"), this.beginPolling()
},
beginPolling: function() {
var a = function() {
this._pollRevealData().then(function() {
window.clearInterval(this.intervalId), document.location.reload(!0)
}.bind(this))
}.bind(this);
this.intervalId = window.setInterval(a, 6e4)
},
_pollRevealData: function() {
return new k(function(a, b) {
i.ajax(j.baseApiPath + "/pages/countdown-reveal").done(function(c) {
c !== this.data ? a(c) : b()
}.bind(this)).fail(b)
}.bind(this))
},
setupContinueTo: function() {
var a = ["www.bethblog.com", "www.elderscrolls.com", "www.zenimax.com", "bethsoft.com", "bgs.bethsoft.com", "stage.bgs.bethsoft.com", "stage.zenimax.com", "stage.elderscrolls.com", "stage.bethblog.com", "stage.bethsoft.com"];
this.continueToLink.href = sessionStorage.getItem("continueToUrl"), h.contains(a, this.continueToLink.host) ? (this.continueToLink.classList.add("countdown-continue-link-active"), this.continueToLink.innerHTML = this.countdownData["continue-text"] + " " + this.continueToLink.host) : this.continueToLink.href = ""
},
onContinueToLinkClick: function() {
sessionStorage.removeItem("continueToUrl")
},
onFinePrintClick: function() {
this.subModules.scroll.toElement(this.finePrintContent)
},
setupScroll: function() {
return this.subModules.scroll || (this.subModules.scroll = new f({
el: this.body
})), this.subModules.scroll
},
destroy: function() {
this.continueToLink.kit.removeEventListener("click", "onContinueToLinkClick", this), d.prototype.call.destroy(this)
}
});
b.exports = l
}, {
"./../../../app-config": 1,
"./countdown-clock": 84,
glitch: 80,
jquery: 53,
page: 83,
promise: 57,
scroll: 4,
underscore: 73
}
],
1: [
function(a, b, c) {
"use strict";
var d = "./workspace";
b.exports = {
baseApiPath: "/api/v1",
workspacePath: d,
deployPath: "./public",
environments: {
full: {
configPath: d + "/pages/config",
dataMode: "full"
},
countdown: {
configPath: d + "/pages/countdown/countdown-config",
dataMode: "countdown"
},
"countdown-reveal": {
configPath: d + "/pages/countdown/countdown-reveal-config",
dataMode: "countdown"
},
announcement: {
configPath: d + "/pages/announcement/announcement-config",
dataMode: "announcement"
}
}
}
}, {}
],
2: [
function(a, b, c) {
! function() {
"use strict";
function a(b, c) {
function e(a, b) {
return function() {
return a.apply(b, arguments)
}
}
var f;
if (c = c || {}, this.trackingClick = !1, this.trackingClickStart = 0, this.targetElement = null, this.touchStartX = 0, this.touchStartY = 0, this.lastTouchIdentifier = 0, this.touchBoundary = c.touchBoundary || 10, this.layer = b, this.tapDelay = c.tapDelay || 200, this.tapTimeout = c.tapTimeout || 700, !a.notNeeded(b)) {
for (var g = ["onMouse", "onClick", "onTouchStart", "onTouchMove", "onTouchEnd", "onTouchCancel"], h = this, i = 0, j = g.length; j > i; i++) h[g[i]] = e(h[g[i]], h);
d && (b.addEventListener("mouseover", this.onMouse, !0), b.addEventListener("mousedown", this.onMouse, !0), b.addEventListener("mouseup", this.onMouse, !0)), b.addEventListener("click", this.onClick, !0), b.addEventListener("touchstart", this.onTouchStart, !1), b.addEventListener("touchmove", this.onTouchMove, !1), b.addEventListener("touchend", this.onTouchEnd, !1), b.addEventListener("touchcancel", this.onTouchCancel, !1), Event.prototype.stopImmediatePropagation || (b.removeEventListener = function(a, c, d) {
var e = Node.prototype.removeEventListener;
"click" === a ? e.call(b, a, c.hijacked || c, d) : e.call(b, a, c, d)
}, b.addEventListener = function(a, c, d) {
var e = Node.prototype.addEventListener;
"click" === a ? e.call(b, a, c.hijacked || (c.hijacked = function(a) {
a.propagationStopped || c(a)
}), d) : e.call(b, a, c, d)
}), "function" == typeof b.onclick && (f = b.onclick, b.addEventListener("click", function(a) {
f(a)
}, !1), b.onclick = null)
}
}
var c = navigator.userAgent.indexOf("Windows Phone") >= 0,
d = navigator.userAgent.indexOf("Android") > 0 && !c,
e = /iP(ad|hone|od)/.test(navigator.userAgent) && !c,
f = e && /OS 4_\d(_\d)?/.test(navigator.userAgent),
g = e && /OS [6-7]_\d/.test(navigator.userAgent),
h = navigator.userAgent.indexOf("BB10") > 0;
a.prototype.needsClick = function(a) {
switch (a.nodeName.toLowerCase()) {
case "button":
case "select":
case "textarea":
if (a.disabled) return !0;
break;
case "input":
if (e && "file" === a.type || a.disabled) return !0;
break;
case "label":
case "iframe":
case "video":
return !0
}
return /\bneedsclick\b/.test(a.className)
}, a.prototype.needsFocus = function(a) {
switch (a.nodeName.toLowerCase()) {
case "textarea":
return !0;
case "select":
return !d;
case "input":
switch (a.type) {
case "button":
case "checkbox":
case "file":
case "image":
case "radio":
case "submit":
return !1
}
return !a.disabled && !a.readOnly;
default:
return /\bneedsfocus\b/.test(a.className)
}
}, a.prototype.sendClick = function(a, b) {
var c, d;
document.activeElement && document.activeElement !== a && document.activeElement.blur(), d = b.changedTouches[0], c = document.createEvent("MouseEvents"), c.initMouseEvent(this.determineEventType(a), !0, !0, window, 1, d.screenX, d.screenY, d.clientX, d.clientY, !1, !1, !1, !1, 0, null), c.forwardedTouchEvent = !0, a.dispatchEvent(c)
}, a.prototype.determineEventType = function(a) {
return d && "select" === a.tagName.toLowerCase() ? "mousedown" : "click"
}, a.prototype.focus = function(a) {
var b;
e && a.setSelectionRange && 0 !== a.type.indexOf("date") && "time" !== a.type && "month" !== a.type ? (b = a.value.length, a.setSelectionRange(b, b)) : a.focus()
}, a.prototype.updateScrollParent = function(a) {
var b, c;
if (b = a.fastClickScrollParent, !b || !b.contains(a)) {
c = a;
do {
if (c.scrollHeight > c.offsetHeight) {
b = c, a.fastClickScrollParent = c;
break
}
c = c.parentElement
} while (c)
}
b && (b.fastClickLastScrollTop = b.scrollTop)
}, a.prototype.getTargetElementFromEventTarget = function(a) {
return a.nodeType === Node.TEXT_NODE ? a.parentNode : a
}, a.prototype.onTouchStart = function(a) {
var b, c, d;
if (a.targetTouches.length > 1) return !0;
if (b = this.getTargetElementFromEventTarget(a.target), c = a.targetTouches[0], e) {
if (d = window.getSelection(), d.rangeCount && !d.isCollapsed) return !0;
if (!f) {
if (c.identifier && c.identifier === this.lastTouchIdentifier) return a.preventDefault(), !1;
this.lastTouchIdentifier = c.identifier, this.updateScrollParent(b)
}
}
return this.trackingClick = !0, this.trackingClickStart = a.timeStamp, this.targetElement = b, this.touchStartX = c.pageX, this.touchStartY = c.pageY, a.timeStamp - this.lastClickTime < this.tapDelay && a.preventDefault(), !0
}, a.prototype.touchHasMoved = function(a) {
var b = a.changedTouches[0],
c = this.touchBoundary;
return Math.abs(b.pageX - this.touchStartX) > c || Math.abs(b.pageY - this.touchStartY) > c ? !0 : !1
}, a.prototype.onTouchMove = function(a) {
return this.trackingClick ? ((this.targetElement !== this.getTargetElementFromEventTarget(a.target) || this.touchHasMoved(a)) && (this.trackingClick = !1, this.targetElement = null), !0) : !0
}, a.prototype.findControl = function(a) {
return void 0 !== a.control ? a.control : a.htmlFor ? document.getElementById(a.htmlFor) : a.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")
}, a.prototype.onTouchEnd = function(a) {
var b, c, h, i, j, k = this.targetElement;
if (!this.trackingClick) return !0;
if (a.timeStamp - this.lastClickTime < this.tapDelay) return this.cancelNextClick = !0, !0;
if (a.timeStamp - this.trackingClickStart > this.tapTimeout) return !0;
if (this.cancelNextClick = !1, this.lastClickTime = a.timeStamp, c = this.trackingClickStart, this.trackingClick = !1, this.trackingClickStart = 0, g && (j = a.changedTouches[0], k = document.elementFromPoint(j.pageX - window.pageXOffset, j.pageY - window.pageYOffset) || k, k.fastClickScrollParent = this.targetElement.fastClickScrollParent), h = k.tagName.toLowerCase(), "label" === h) {
if (b = this.findControl(k)) {
if (this.focus(k), d) return !1;
k = b
}
} else if (this.needsFocus(k)) return a.timeStamp - c > 100 || e && window.top !== window && "input" === h ? (this.targetElement = null, !1) : (this.focus(k), this.sendClick(k, a), e && "select" === h || (this.targetElement = null, a.preventDefault()), !1);
return e && !f && (i = k.fastClickScrollParent, i && i.fastClickLastScrollTop !== i.scrollTop) ? !0 : (this.needsClick(k) || (a.preventDefault(), this.sendClick(k, a)), !1)
}, a.prototype.onTouchCancel = function() {
this.trackingClick = !1, this.targetElement = null
}, a.prototype.onMouse = function(a) {
return this.targetElement ? a.forwardedTouchEvent ? !0 : a.cancelable && (!this.needsClick(this.targetElement) || this.cancelNextClick) ? (a.stopImmediatePropagation ? a.stopImmediatePropagation() : a.propagationStopped = !0, a.stopPropagation(), a.preventDefault(), !1) : !0 : !0
}, a.prototype.onClick = function(a) {
var b;
return this.trackingClick ? (this.targetElement = null, this.trackingClick = !1, !0) : "submit" === a.target.type && 0 === a.detail ? !0 : (b = this.onMouse(a), b || (this.targetElement = null), b)
}, a.prototype.destroy = function() {
var a = this.layer;
d && (a.removeEventListener("mouseover", this.onMouse, !0), a.removeEventListener("mousedown", this.onMouse, !0), a.removeEventListener("mouseup", this.onMouse, !0)), a.removeEventListener("click", this.onClick, !0), a.removeEventListener("touchstart", this.onTouchStart, !1), a.removeEventListener("touchmove", this.onTouchMove, !1), a.removeEventListener("touchend", this.onTouchEnd, !1), a.removeEventListener("touchcancel", this.onTouchCancel, !1)
}, a.notNeeded = function(a) {
var b, c, e, f;
if ("undefined" == typeof window.ontouchstart) return !0;
if (c = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [, 0])[1]) {
if (!d) return !0;
if (b = document.querySelector("meta[name=viewport]")) {
if (-1 !== b.content.indexOf("user-scalable=no")) return !0;
if (c > 31 && document.documentElement.scrollWidth <= window.outerWidth) return !0
}
}
if (h && (e = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/), e[1] >= 10 && e[2] >= 3 && (b = document.querySelector("meta[name=viewport]")))) {
if (-1 !== b.content.indexOf("user-scalable=no")) return !0;
if (document.documentElement.scrollWidth <= window.outerWidth) return !0
}
return "none" === a.style.msTouchAction || "manipulation" === a.style.touchAction ? !0 : (f = +(/Firefox\/([0-9]+)/.exec(navigator.userAgent) || [, 0])[1], f >= 27 && (b = document.querySelector("meta[name=viewport]"), b && (-1 !== b.content.indexOf("user-scalable=no") || document.documentElement.scrollWidth <= window.outerWidth)) ? !0 : "none" === a.style.touchAction || "manipulation" === a.style.touchAction ? !0 : !1)
}, a.attach = function(b, c) {
return new a(b, c)
}, "function" == typeof define && "object" == typeof define.amd && define.amd ? define(function() {
return a
}) : "undefined" != typeof b && b.exports ? (b.exports = a.attach, b.exports.FastClick = a) : window.FastClick = a
}()
}, {}
],
3: [
function(a, b, c) {
"use strict";
var d = a("underscore"),
e = a("./utils/request-anim-polyfill"),
f = function(a) {
this.initialize(a)
};
f.prototype = {
initialize: function(a) {
this.options = d.extend({
el: null,
offsetTop: 0,
offsetRight: 0,
offsetLeft: 0,
offsetBottom: 0,
container: document
}, a), e(), this.bindEvents(), this._onScroll()
},
bindEvents: function() {
var a = this;
this._scrollEventListener = function(b) {
a._onScroll(b)
}, this.options.container.addEventListener("scroll", this._scrollEventListener, !1)
},
unbindEvents: function() {
this.options.container.removeEventListener("scroll", this._scrollEventListener, !1)
},
_onScroll: function() {
this._animationFrame = window.requestAnimationFrame(function() {
this.isElementInsideView() ? this._onElementInsideView() : this._onElementOutsideView()
}.bind(this))
},
getContainerScrollYPos: function() {
var a = this.options.container;
return a === document ? window.pageYOffset : a.scrollTop
},
isElementInsideView: function() {
var a = this.getContainerScrollYPos(),
b = this.getElementMinYPos(),
c = this.getElementMaxYPos() + this.getViewportHeight();
return a >= b && c >= a
},
_onElementInsideView: function() {
this._showing || (this._showing = !0, this.options.onEnter && this.options.onEnter(this.options.el))
},
_onElementOutsideView: function() {
this._showing && (this._showing = !1, this.options.onExit && this.options.onExit(this.options.el))
},
getElementMinYPos: function() {
if (!this._elementMinYPos) {
var a = this.getElementYPos();
this._elementMinYPos = a - this.getViewportHeight() - this.options.offsetTop
}
return this._elementMinYPos
},
getElementYPos: function() {
var a = this.options.container,
b = a.scrollTop;
return a === document && (b = this.options.el.getBoundingClientRect().top + this.getContainerScrollYPos()), b
},
getElementMaxYPos: function() {
if (!this._elementMaxYPos) {
var a = this.options.el;
this._elementMaxYPos = this.getElementMinYPos() + a.offsetHeight + this.options.offsetBottom
}
return this._elementMaxYPos
},
getViewportHeight: function() {
if (!this._vpHeight) {
var a = this.options.container;
this._vpHeight = a === document ? window.innerHeight : a.offsetHeight
}
return this._vpHeight
},
destroy: function() {
this.unbindEvents(), window.cancelAnimationFrame(this._animationFrame)
}
}, b.exports = f
}, {
"./utils/request-anim-polyfill": 5,
underscore: 73
}
],
4: [
function(a, b, c) {
"use strict";
var d = a("promise"),
e = a("./utils/request-anim-polyfill"),
f = function(a) {
this.initialize(a)
};
f.prototype = {
initialize: function(a) {
this.options = a, a.el || console.error("Scroll error: element passed to Scroll constructor is " + a.el + "! Bailing..."), this.setup()
},
setup: function() {
e()
},
to: function(a, b, c) {
var e = this.options.el,
f = e.scrollTop;
e.scrollLeft;
return c = c || {}, c.duration = c.duration || 400, new d(function(a) {
this._scroll(e, f, b, "scrollTop", Date.now(), c.duration, this._getEasing(c.easing), a)
}.bind(this))
},
getDocumentElement: function() {
return document
},
toElement: function(a, b) {
var c, e = this.options.el,
f = 0,
g = a ? a.offsetTop : 0;
return e === document.body && (f = window.pageYOffset, g = a.getBoundingClientRect().top + f), a ? e.contains(a) ? this.to(0, g, b) : (c = "Scroll.toElement() was passed an element that does not exist inside the scroll container", console.warn(c), d.reject(new Error(c))) : (c = "The element passed to Scroll.toElement() was undefined", console.error(c), d.reject(new Error(c)))
},
_scroll: function(a, b, c, d, e, f, g, h) {
requestAnimationFrame(function() {
var i = Date.now(),
j = Math.min(1, (i - e) / f);
return b === c ? h ? h() : null : (this._moveElement(d, g(j) * (c - b) + b), void(1 > j ? this._scroll(a, a[d], c, d, e, f, g, h) : h && h()))
}.bind(this))
},
_moveElement: function(a, b) {
var c = this.options.el;
c[a] = b, c === this.getDocumentElement().body && (this.getDocumentElement().documentElement[a] = b)
},
_getEasing: function(a) {
var b = "linear",
c = this._easing[a || b];
return c || (console.warn("Scroll error: scroller does not support an easing option of " + a + '. Using "' + b + '" instead'), c = this._easing[a]), c
},
destroy: function() {},
_easing: {
linear: function(a) {
return a
},
easeInQuad: function(a) {
return a * a
},
easeOutQuad: function(a) {
return a * (2 - a)
},
easeInOutQuad: function(a) {
return .5 > a ? 2 * a * a : -1 + (4 - 2 * a) * a
},
easeInCubic: function(a) {
return a * a * a
},
easeOutCubic: function(a) {
return --a * a * a + 1
},
easeInOutCubic: function(a) {
return .5 > a ? 4 * a * a * a : (a - 1) * (2 * a - 2) * (2 * a - 2) + 1
},
easeInQuart: function(a) {
return a * a * a * a
},
easeOutQuart: function(a) {
return 1 - --a * a * a * a
},
easeInOutQuart: function(a) {
return .5 > a ? 8 * a * a * a * a : 1 - 8 * --a * a * a * a
},
easeInQuint: function(a) {
return a * a * a * a * a
},
easeOutQuint: function(a) {
return 1 + --a * a * a * a * a
},
easeInOutQuint: function(a) {
return .5 > a ? 16 * a * a * a * a * a : 1 + 16 * --a * a * a * a * a
}
}
}, b.exports = f
}, {
"./utils/request-anim-polyfill": 5,
promise: 57
}
],
5: [
function(a, b, c) {
"use strict";
b.exports = function() {
var a = 0,
b = 0,
c = ["ms", "moz", "webkit", "o"];
for (0; a < c.length && !window.requestAnimationFrame; ++a) window.requestAnimationFrame = window[c[a] + "RequestAnimationFrame"], window.cancelAnimationFrame = window[c[a] + "CancelAnimationFrame"] || window[c[a] + "CancelRequestAnimationFrame"];
window.requestAnimationFrame || (window.requestAnimationFrame = function(a, c) {
var d = (new Date).getTime(),
e = Math.max(0, 16 - (d - b)),
f = window.setTimeout(function() {
a(d + e)
}, e);
return b = d + e, f
}), window.cancelAnimationFrame || (window.cancelAnimationFrame = function(a) {
clearTimeout(a)
})
}
}, {}
],
6: [
function(a, b, c) {
"use strict";
var d = {
createTarget: function(a) {
this._targets = this._targets || [];
var b = this._getTargetMap(a);
b.target || (a.addEventListener = this._getEventMethod(a, "_addEvent").bind(this), a.removeEventListener = this._getEventMethod(a, "_removeEvent").bind(this), a.dispatchEvent = this._getEventMethod(a, "_dispatchEvent").bind(this), b.target = a, this._targets.push(b))
},
_getTargetMap: function(a) {
return this._targets.filter(function(b) {
return b.target === a
})[0] || {}
},
_addEvent: function(a, b, c, d, e) {
"boolean" != typeof d && (e = d, d = null), d = d || !1;
var f = this.getNested(this._getTargetMap(a), b);
f || (f = this.setNested(this._getTargetMap(a), b, []));
var g = {
listener: c,
context: e,
useCapture: d
}; - 1 === f.indexOf(g) && f.push(g)
},
_getEventMethod: function(a, b) {
return function() {
var c = Array.prototype.slice.call(arguments, 0);
c.unshift(a), this[b].apply(this, c)
}.bind(this)
},
_removeEvent: function(a, b, c) {
var d = this.getNested(this._getTargetMap(a), b, []);
d.forEach(function(a, b) {
a.listener === c && d.splice(b, 1)
})
},
_dispatchEvent: function(a, b, c) {
var d, e = this._getTargetMap(a) || {};
e[b] && e[b].forEach(function(e) {
d = this._createEvent(b, c), e.listener.call(e.context || a, d)
}.bind(this))
},
_createEvent: function(a, b) {
var c = document.createEvent("CustomEvent");
return c.initCustomEvent(a, !1, !1, b), c
},
extend: function(a) {
var b, c, d = a;
for (c = 1; c < arguments.length; c++) {
b = arguments[c];
for (var e in b) b.hasOwnProperty(e) && (d[e] = b[e])
}
return d
},
getNested: function(a, b, c) {
for (var d = b.split("."), e = a, f = 0; f < d.length; f++) {
if (!e[d[f]]) {
e = c;
break
}
e = e[d[f]]
}
return e
},
setNested: function(a, b, c) {
for (var d = b.split("."), e = a, f = 0; f < d.length; f++) {
var g = f === d.length - 1;
g ? e[d[f]] = c : (e[d[f]] = e[d[f]] || {}, e = e[d[f]])
}
return c
},
destroyTarget: function(a) {
var b = this._getTargetMap(a),
c = this._targets.indexOf(b);
c > -1 && this._targets.splice(c, 1)
}
};
b.exports = d
}, {}
],
7: [
function(a, b, c) {
"use strict";
var d = a("./../external/event-handler/src/event-handler"),
e = function() {
this.initialize()
};
e.prototype = {
initialize: function() {
d.createTarget(this), this._getOrientationChangeListener = function() {
var a = this;
return function() {
a._onOrientationChange.bind(a)
}
}, window.addEventListener("orientationchange", this._getOrientationChangeListener())
},
_onOrientationChange: function() {
var a;
a = window.innerHeight <= window.innerWidth ? "landscape" : "portrait", this.dispatchEvent("orientationchange", {
orientation: a
})
},
getUserAgent: function() {
return window.navigator.userAgent
},
isBrowser: function(a) {
var b, c = a,
d = this.getUserAgent();
return a ? (Array.isArray(a) && (c = a.join("|")), c.indexOf("safari") > -1 ? (b = new RegExp("chrome", "i"), !b.test(d)) : (b = new RegExp(c, "i"), b.test(d))) : !0
},
isMobile: function() {
return this.isBrowser(["Android", "webOS", "iPhone", "iPad", "iPod", "BlackBerry", "IEMobile", "Opera Mini"])
},
isOS: function(a) {
var b = a;
Array.isArray(a) && (b = a.join("|"));
var c = new RegExp(b, "i");
return c.test(this.getUserAgent())
},
destroy: function() {
window.removeEventListener("orientationchange", this._getOrientationChangeListener()), d.destroyTarget(this)
}
}, b.exports = new e
}, {
"./../external/event-handler/src/event-handler": 6
}
],
8: [
function(a, b, c) {
"use strict";
var d = a("./src/utils"),
e = a("./src/element-kit");
e.utils = d, b.exports = e
}, {
"./src/element-kit": 11,
"./src/utils": 14
}
],
9: [
function(a, b, c) {
function d(a, b) {
for (var c = 0, d = a.indexOf(b); d >= 0;) c += 1, d = a.indexOf(b, d + 1);
return c
}
b.exports = d
}, {}
],
10: [
function(a, b, c) {
! function() {
"use strict";
function c(a, b) {
null !== b && void 0 !== b ? "string" == typeof b ? a.s = b : a.s = b.toString() : a.s = b, a.orig = b, null !== b && void 0 !== b ? a.__defineGetter__ ? a.__defineGetter__("length", function() {
return a.s.length
}) : a.length = b.length : a.length = -1
}
function d(a) {
c(this, a)
}
function e() {
for (var a in q)! function(a) {
var b = q[a];
p.hasOwnProperty(a) || (r.push(a), p[a] = function() {
return String.prototype.s = this, b.apply(this, arguments)
})
}(a)
}
function f() {
for (var a = 0; a < r.length; ++a) delete String.prototype[r[a]];
r.length = 0
}
function g() {
for (var a = h(), b = {}, c = 0; c < a.length; ++c) {
var d = a[c],
e = p[d];
try {
var f = typeof e.apply("test", ["string"]);
b[d] = f
} catch (g) {}
}
return b
}
function h() {
var a = [];
if (Object.getOwnPropertyNames) return a = Object.getOwnPropertyNames(p), a.splice(a.indexOf("valueOf"), 1), a.splice(a.indexOf("toString"), 1), a;
var b = {};
for (var c in String.prototype) b[c] = c;
for (var c in Object.prototype) delete b[c];
for (var c in b) a.push(c);
return a
}
function i(a) {
return new d(a)
}
function j(a, b) {
var c, d = [];
for (c = 0; c < a.length; c++) d.push(a[c]), b && b.call(a, a[c], c);
return d
}
function k(a) {
var b, c, d = [],
e = /^[A-Za-z0-9]+$/;
for (a = l(a), c = 0; c < a.length; ++c) b = a.charAt(c), e.test(b) ? d.push(b) : "\\000" === b ? d.push("\\000") : d.push("\\" + b);
return d.join("")
}
function l(a) {
return null == a ? "" : "" + a
}
var m = "3.1.3",
n = {},
o = {
"Á": "A",
"Ă": "A",
"Ắ": "A",
"Ặ": "A",
"Ằ": "A",
"Ẳ": "A",
"Ẵ": "A",
"Ǎ": "A",
"Â": "A",
"Ấ": "A",
"Ậ": "A",
"Ầ": "A",
"Ẩ": "A",
"Ẫ": "A",
"Ä": "A",
"Ǟ": "A",
"Ȧ": "A",
"Ǡ": "A",
"Ạ": "A",
"Ȁ": "A",
"À": "A",
"Ả": "A",
"Ȃ": "A",
"Ā": "A",
"Ą": "A",
"Å": "A",
"Ǻ": "A",
"Ḁ": "A",
"Ⱥ": "A",
"Ã": "A",
"Ꜳ": "AA",
"Æ": "AE",
"Ǽ": "AE",
"Ǣ": "AE",
"Ꜵ": "AO",
"Ꜷ": "AU",
"Ꜹ": "AV",
"Ꜻ": "AV",
"Ꜽ": "AY",
"Ḃ": "B",
"Ḅ": "B",
"Ɓ": "B",
"Ḇ": "B",
"Ƀ": "B",
"Ƃ": "B",
"Ć": "C",
"Č": "C",
"Ç": "C",
"Ḉ": "C",
"Ĉ": "C",
"Ċ": "C",
"Ƈ": "C",
"Ȼ": "C",
"Ď": "D",
"Ḑ": "D",
"Ḓ": "D",
"Ḋ": "D",
"Ḍ": "D",
"Ɗ": "D",
"Ḏ": "D",
"Dz": "D",
"Dž": "D",
"Đ": "D",
"Ƌ": "D",
"DZ": "DZ",
"DŽ": "DZ",
"É": "E",
"Ĕ": "E",
"Ě": "E",
"Ȩ": "E",
"Ḝ": "E",
"Ê": "E",
"Ế": "E",
"Ệ": "E",
"Ề": "E",
"Ể": "E",
"Ễ": "E",
"Ḙ": "E",
"Ë": "E",
"Ė": "E",
"Ẹ": "E",
"Ȅ": "E",
"È": "E",
"Ẻ": "E",
"Ȇ": "E",
"Ē": "E",
"Ḗ": "E",
"Ḕ": "E",
"Ę": "E",
"Ɇ": "E",
"Ẽ": "E",
"Ḛ": "E",
"Ꝫ": "ET",
"Ḟ": "F",
"Ƒ": "F",
"Ǵ": "G",
"Ğ": "G",
"Ǧ": "G",
"Ģ": "G",
"Ĝ": "G",
"Ġ": "G",
"Ɠ": "G",
"Ḡ": "G",
"Ǥ": "G",
"Ḫ": "H",
"Ȟ": "H",
"Ḩ": "H",
"Ĥ": "H",
"Ⱨ": "H",
"Ḧ": "H",
"Ḣ": "H",
"Ḥ": "H",
"Ħ": "H",
"Í": "I",
"Ĭ": "I",
"Ǐ": "I",
"Î": "I",
"Ï": "I",
"Ḯ": "I",
"İ": "I",
"Ị": "I",
"Ȉ": "I",
"Ì": "I",
"Ỉ": "I",
"Ȋ": "I",
"Ī": "I",
"Į": "I",
"Ɨ": "I",
"Ĩ": "I",
"Ḭ": "I",
"Ꝺ": "D",
"Ꝼ": "F",
"Ᵹ": "G",
"Ꞃ": "R",
"Ꞅ": "S",
"Ꞇ": "T",
"Ꝭ": "IS",
"Ĵ": "J",
"Ɉ": "J",
"Ḱ": "K",
"Ǩ": "K",
"Ķ": "K",
"Ⱪ": "K",
"Ꝃ": "K",
"Ḳ": "K",
"Ƙ": "K",
"Ḵ": "K",
"Ꝁ": "K",
"Ꝅ": "K",
"Ĺ": "L",
"Ƚ": "L",
"Ľ": "L",
"Ļ": "L",
"Ḽ": "L",
"Ḷ": "L",
"Ḹ": "L",
"Ⱡ": "L",
"Ꝉ": "L",
"Ḻ": "L",
"Ŀ": "L",
"Ɫ": "L",
"Lj": "L",
"Ł": "L",
"LJ": "LJ",
"Ḿ": "M",
"Ṁ": "M",
"Ṃ": "M",
"Ɱ": "M",
"Ń": "N",
"Ň": "N",
"Ņ": "N",
"Ṋ": "N",
"Ṅ": "N",
"Ṇ": "N",
"Ǹ": "N",
"Ɲ": "N",
"Ṉ": "N",
"Ƞ": "N",
"Nj": "N",
"Ñ": "N",
"NJ": "NJ",
"Ó": "O",
"Ŏ": "O",
"Ǒ": "O",
"Ô": "O",
"Ố": "O",
"Ộ": "O",
"Ồ": "O",
"Ổ": "O",
"Ỗ": "O",
"Ö": "O",
"Ȫ": "O",
"Ȯ": "O",
"Ȱ": "O",
"Ọ": "O",
"Ő": "O",
"Ȍ": "O",
"Ò": "O",
"Ỏ": "O",
"Ơ": "O",
"Ớ": "O",
"Ợ": "O",
"Ờ": "O",
"Ở": "O",
"Ỡ": "O",
"Ȏ": "O",
"Ꝋ": "O",
"Ꝍ": "O",
"Ō": "O",
"Ṓ": "O",
"Ṑ": "O",
"Ɵ": "O",
"Ǫ": "O",
"Ǭ": "O",
"Ø": "O",
"Ǿ": "O",
"Õ": "O",
"Ṍ": "O",
"Ṏ": "O",
"Ȭ": "O",
"Ƣ": "OI",
"Ꝏ": "OO",
"Ɛ": "E",
"Ɔ": "O",
"Ȣ": "OU",
"Ṕ": "P",
"Ṗ": "P",
"Ꝓ": "P",
"Ƥ": "P",
"Ꝕ": "P",
"Ᵽ": "P",
"Ꝑ": "P",
"Ꝙ": "Q",
"Ꝗ": "Q",
"Ŕ": "R",
"Ř": "R",
"Ŗ": "R",
"Ṙ": "R",
"Ṛ": "R",
"Ṝ": "R",
"Ȑ": "R",
"Ȓ": "R",
"Ṟ": "R",
"Ɍ": "R",
"Ɽ": "R",
"Ꜿ": "C",
"Ǝ": "E",
"Ś": "S",
"Ṥ": "S",
"Š": "S",
"Ṧ": "S",
"Ş": "S",
"Ŝ": "S",
"Ș": "S",
"Ṡ": "S",
"Ṣ": "S",
"Ṩ": "S",
"ẞ": "SS",
"Ť": "T",
"Ţ": "T",
"Ṱ": "T",
"Ț": "T",
"Ⱦ": "T",
"Ṫ": "T",
"Ṭ": "T",
"Ƭ": "T",
"Ṯ": "T",
"Ʈ": "T",
"Ŧ": "T",
"Ɐ": "A",
"Ꞁ": "L",
"Ɯ": "M",
"Ʌ": "V",
"Ꜩ": "TZ",
"Ú": "U",
"Ŭ": "U",
"Ǔ": "U",
"Û": "U",
"Ṷ": "U",
"Ü": "U",
"Ǘ": "U",
"Ǚ": "U",
"Ǜ": "U",
"Ǖ": "U",
"Ṳ": "U",
"Ụ": "U",
"Ű": "U",
"Ȕ": "U",
"Ù": "U",
"Ủ": "U",
"Ư": "U",
"Ứ": "U",
"Ự": "U",
"Ừ": "U",
"Ử": "U",
"Ữ": "U",
"Ȗ": "U",
"Ū": "U",
"Ṻ": "U",
"Ų": "U",
"Ů": "U",
"Ũ": "U",
"Ṹ": "U",
"Ṵ": "U",
"Ꝟ": "V",
"Ṿ": "V",
"Ʋ": "V",
"Ṽ": "V",
"Ꝡ": "VY",
"Ẃ": "W",
"Ŵ": "W",
"Ẅ": "W",
"Ẇ": "W",
"Ẉ": "W",
"Ẁ": "W",
"Ⱳ": "W",
"Ẍ": "X",
"Ẋ": "X",
"Ý": "Y",
"Ŷ": "Y",
"Ÿ": "Y",
"Ẏ": "Y",
"Ỵ": "Y",
"Ỳ": "Y",
"Ƴ": "Y",
"Ỷ": "Y",
"Ỿ": "Y",
"Ȳ": "Y",
"Ɏ": "Y",
"Ỹ": "Y",
"Ź": "Z",
"Ž": "Z",
"Ẑ": "Z",
"Ⱬ": "Z",
"Ż": "Z",
"Ẓ": "Z",
"Ȥ": "Z",
"Ẕ": "Z",
"Ƶ": "Z",
"IJ": "IJ",
"Œ": "OE",
"ᴀ": "A",
"ᴁ": "AE",
"ʙ": "B",
"ᴃ": "B",
"ᴄ": "C",
"ᴅ": "D",
"ᴇ": "E",
"ꜰ": "F",
"ɢ": "G",
"ʛ": "G",
"ʜ": "H",
"ɪ": "I",
"ʁ": "R",
"ᴊ": "J",
"ᴋ": "K",
"ʟ": "L",
"ᴌ": "L",
"ᴍ": "M",
"ɴ": "N",
"ᴏ": "O",
"ɶ": "OE",
"ᴐ": "O",
"ᴕ": "OU",
"ᴘ": "P",
"ʀ": "R",
"ᴎ": "N",
"ᴙ": "R",
"ꜱ": "S",
"ᴛ": "T",
"ⱻ": "E",
"ᴚ": "R",
"ᴜ": "U",
"ᴠ": "V",
"ᴡ": "W",
"ʏ": "Y",
"ᴢ": "Z",
"á": "a",
"ă": "a",
"ắ": "a",
"ặ": "a",
"ằ": "a",
"ẳ": "a",
"ẵ": "a",
"ǎ": "a",
"â": "a",
"ấ": "a",
"ậ": "a",
"ầ": "a",
"ẩ": "a",
"ẫ": "a",
"ä": "a",
"ǟ": "a",
"ȧ": "a",
"ǡ": "a",
"ạ": "a",
"ȁ": "a",
"à": "a",
"ả": "a",
"ȃ": "a",
"ā": "a",
"ą": "a",
"ᶏ": "a",
"ẚ": "a",
"å": "a",
"ǻ": "a",
"ḁ": "a",
"ⱥ": "a",
"ã": "a",
"ꜳ": "aa",
"æ": "ae",
"ǽ": "ae",
"ǣ": "ae",
"ꜵ": "ao",
"ꜷ": "au",
"ꜹ": "av",
"ꜻ": "av",
"ꜽ": "ay",
"ḃ": "b",
"ḅ": "b",
"ɓ": "b",
"ḇ": "b",
"ᵬ": "b",
"ᶀ": "b",
"ƀ": "b",
"ƃ": "b",
"ɵ": "o",
"ć": "c",
"č": "c",
"ç": "c",
"ḉ": "c",
"ĉ": "c",
"ɕ": "c",
"ċ": "c",
"ƈ": "c",
"ȼ": "c",
"ď": "d",
"ḑ": "d",
"ḓ": "d",
"ȡ": "d",
"ḋ": "d",
"ḍ": "d",
"ɗ": "d",
"ᶑ": "d",
"ḏ": "d",
"ᵭ": "d",
"ᶁ": "d",
"đ": "d",
"ɖ": "d",
"ƌ": "d",
"ı": "i",
"ȷ": "j",
"ɟ": "j",
"ʄ": "j",
"dz": "dz",
"dž": "dz",
"é": "e",
"ĕ": "e",
"ě": "e",
"ȩ": "e",
"ḝ": "e",
"ê": "e",
"ế": "e",
"ệ": "e",
"ề": "e",
"ể": "e",
"ễ": "e",
"ḙ": "e",
"ë": "e",
"ė": "e",
"ẹ": "e",
"ȅ": "e",
"è": "e",
"ẻ": "e",
"ȇ": "e",
"ē": "e",
"ḗ": "e",
"ḕ": "e",
"ⱸ": "e",
"ę": "e",
"ᶒ": "e",
"ɇ": "e",
"ẽ": "e",
"ḛ": "e",
"ꝫ": "et",
"ḟ": "f",
"ƒ": "f",
"ᵮ": "f",
"ᶂ": "f",
"ǵ": "g",
"ğ": "g",
"ǧ": "g",
"ģ": "g",
"ĝ": "g",
"ġ": "g",
"ɠ": "g",
"ḡ": "g",
"ᶃ": "g",
"ǥ": "g",
"ḫ": "h",
"ȟ": "h",
"ḩ": "h",
"ĥ": "h",
"ⱨ": "h",
"ḧ": "h",
"ḣ": "h",
"ḥ": "h",
"ɦ": "h",
"ẖ": "h",
"ħ": "h",
"ƕ": "hv",
"í": "i",
"ĭ": "i",
"ǐ": "i",
"î": "i",
"ï": "i",
"ḯ": "i",
"ị": "i",
"ȉ": "i",
"ì": "i",
"ỉ": "i",
"ȋ": "i",
"ī": "i",
"į": "i",
"ᶖ": "i",
"ɨ": "i",
"ĩ": "i",
"ḭ": "i",
"ꝺ": "d",
"ꝼ": "f",
"ᵹ": "g",
"ꞃ": "r",
"ꞅ": "s",
"ꞇ": "t",
"ꝭ": "is",
"ǰ": "j",
"ĵ": "j",
"ʝ": "j",
"ɉ": "j",
"ḱ": "k",
"ǩ": "k",
"ķ": "k",
"ⱪ": "k",
"ꝃ": "k",
"ḳ": "k",
"ƙ": "k",
"ḵ": "k",
"ᶄ": "k",
"ꝁ": "k",
"ꝅ": "k",
"ĺ": "l",
"ƚ": "l",
"ɬ": "l",
"ľ": "l",
"ļ": "l",
"ḽ": "l",
"ȴ": "l",
"ḷ": "l",
"ḹ": "l",
"ⱡ": "l",
"ꝉ": "l",
"ḻ": "l",
"ŀ": "l",
"ɫ": "l",
"ᶅ": "l",
"ɭ": "l",
"ł": "l",
"lj": "lj",
"ſ": "s",
"ẜ": "s",
"ẛ": "s",
"ẝ": "s",
"ḿ": "m",
"ṁ": "m",
"ṃ": "m",
"ɱ": "m",
"ᵯ": "m",
"ᶆ": "m",
"ń": "n",
"ň": "n",
"ņ": "n",
"ṋ": "n",
"ȵ": "n",
"ṅ": "n",
"ṇ": "n",
"ǹ": "n",
"ɲ": "n",
"ṉ": "n",
"ƞ": "n",
"ᵰ": "n",
"ᶇ": "n",
"ɳ": "n",
"ñ": "n",
"nj": "nj",
"ó": "o",
"ŏ": "o",
"ǒ": "o",
"ô": "o",
"ố": "o",
"ộ": "o",
"ồ": "o",
"ổ": "o",
"ỗ": "o",
"ö": "o",
"ȫ": "o",
"ȯ": "o",
"ȱ": "o",
"ọ": "o",
"ő": "o",
"ȍ": "o",
"ò": "o",
"ỏ": "o",
"ơ": "o",
"ớ": "o",
"ợ": "o",
"ờ": "o",
"ở": "o",
"ỡ": "o",
"ȏ": "o",
"ꝋ": "o",
"ꝍ": "o",
"ⱺ": "o",
"ō": "o",
"ṓ": "o",
"ṑ": "o",
"ǫ": "o",
"ǭ": "o",
"ø": "o",
"ǿ": "o",
"õ": "o",
"ṍ": "o",
"ṏ": "o",
"ȭ": "o",
"ƣ": "oi",
"ꝏ": "oo",
"ɛ": "e",
"ᶓ": "e",
"ɔ": "o",
"ᶗ": "o",
"ȣ": "ou",
"ṕ": "p",
"ṗ": "p",
"ꝓ": "p",
"ƥ": "p",
"ᵱ": "p",
"ᶈ": "p",
"ꝕ": "p",
"ᵽ": "p",
"ꝑ": "p",
"ꝙ": "q",
"ʠ": "q",
"ɋ": "q",
"ꝗ": "q",
"ŕ": "r",
"ř": "r",
"ŗ": "r",
"ṙ": "r",
"ṛ": "r",
"ṝ": "r",
"ȑ": "r",
"ɾ": "r",
"ᵳ": "r",
"ȓ": "r",
"ṟ": "r",
"ɼ": "r",
"ᵲ": "r",
"ᶉ": "r",
"ɍ": "r",
"ɽ": "r",
"ↄ": "c",
"ꜿ": "c",
"ɘ": "e",
"ɿ": "r",
"ś": "s",
"ṥ": "s",
"š": "s",
"ṧ": "s",
"ş": "s",
"ŝ": "s",
"ș": "s",
"ṡ": "s",
"ṣ": "s",
"ṩ": "s",
"ʂ": "s",
"ᵴ": "s",
"ᶊ": "s",
"ȿ": "s",
"ɡ": "g",
"ß": "ss",
"ᴑ": "o",
"ᴓ": "o",
"ᴝ": "u",
"ť": "t",
"ţ": "t",
"ṱ": "t",
"ț": "t",
"ȶ": "t",
"ẗ": "t",
"ⱦ": "t",
"ṫ": "t",
"ṭ": "t",
"ƭ": "t",
"ṯ": "t",
"ᵵ": "t",
"ƫ": "t",
"ʈ": "t",
"ŧ": "t",
"ᵺ": "th",
"ɐ": "a",
"ᴂ": "ae",
"ǝ": "e",
"ᵷ": "g",
"ɥ": "h",
"ʮ": "h",
"ʯ": "h",
"ᴉ": "i",
"ʞ": "k",
"ꞁ": "l",
"ɯ": "m",
"ɰ": "m",
"ᴔ": "oe",
"ɹ": "r",
"ɻ": "r",
"ɺ": "r",
"ⱹ": "r",
"ʇ": "t",
"ʌ": "v",
"ʍ": "w",
"ʎ": "y",
"ꜩ": "tz",
"ú": "u",
"ŭ": "u",
"ǔ": "u",
"û": "u",
"ṷ": "u",
"ü": "u",
"ǘ": "u",
"ǚ": "u",
"ǜ": "u",
"ǖ": "u",
"ṳ": "u",
"ụ": "u",
"ű": "u",
"ȕ": "u",
"ù": "u",
"ủ": "u",
"ư": "u",
"ứ": "u",
"ự": "u",
"ừ": "u",
"ử": "u",
"ữ": "u",
"ȗ": "u",
"ū": "u",
"ṻ": "u",
"ų": "u",
"ᶙ": "u",
"ů": "u",
"ũ": "u",
"ṹ": "u",
"ṵ": "u",
"ᵫ": "ue",
"ꝸ": "um",
"ⱴ": "v",
"ꝟ": "v",
"ṿ": "v",
"ʋ": "v",
"ᶌ": "v",
"ⱱ": "v",
"ṽ": "v",
"ꝡ": "vy",
"ẃ": "w",
"ŵ": "w",
"ẅ": "w",
"ẇ": "w",
"ẉ": "w",
"ẁ": "w",
"ⱳ": "w",
"ẘ": "w",
"ẍ": "x",
"ẋ": "x",
"ᶍ": "x",
"ý": "y",
"ŷ": "y",
"ÿ": "y",
"ẏ": "y",
"ỵ": "y",
"ỳ": "y",
"ƴ": "y",
"ỷ": "y",
"ỿ": "y",
"ȳ": "y",
"ẙ": "y",
"ɏ": "y",
"ỹ": "y",
"ź": "z",
"ž": "z",
"ẑ": "z",
"ʑ": "z",
"ⱬ": "z",
"ż": "z",
"ẓ": "z",
"ȥ": "z",
"ẕ": "z",
"ᵶ": "z",
"ᶎ": "z",
"ʐ": "z",
"ƶ": "z",
"ɀ": "z",
"ff": "ff",
"ffi": "ffi",
"ffl": "ffl",
"fi": "fi",
"fl": "fl",
"ij": "ij",
"œ": "oe",
"st": "st",
"ₐ": "a",
"ₑ": "e",
"ᵢ": "i",
"ⱼ": "j",
"ₒ": "o",
"ᵣ": "r",
"ᵤ": "u",
"ᵥ": "v",
"ₓ": "x"
},
p = String.prototype,
q = d.prototype = {
between: function(a, b) {
var c = this.s,
d = c.indexOf(a),
e = c.indexOf(b, d + a.length);
return -1 == e && null != b ? new this.constructor("") : -1 == e && null == b ? new this.constructor(c.substring(d + a.length)) : new this.constructor(c.slice(d + a.length, e))
},
camelize: function() {
var a = this.trim().s.replace(/(\-|_|\s)+(.)?/g, function(a, b, c) {
return c ? c.toUpperCase() : ""
});
return new this.constructor(a)
},
capitalize: function() {
return new this.constructor(this.s.substr(0, 1).toUpperCase() + this.s.substring(1).toLowerCase())
},
charAt: function(a) {
return this.s.charAt(a)
},
chompLeft: function(a) {
var b = this.s;
return 0 === b.indexOf(a) ? (b = b.slice(a.length), new this.constructor(b)) : this
},
chompRight: function(a) {
if (this.endsWith(a)) {
var b = this.s;
return b = b.slice(0, b.length - a.length), new this.constructor(b)
}
return this
},
collapseWhitespace: function() {
var a = this.s.replace(/[\s\xa0]+/g, " ").replace(/^\s+|\s+$/g, "");
return new this.constructor(a)
},
contains: function(a) {
return this.s.indexOf(a) >= 0
},
count: function(b) {
return a("./_count")(this.s, b)
},
dasherize: function() {
var a = this.trim().s.replace(/[_\s]+/g, "-").replace(/([A-Z])/g, "-$1").replace(/-+/g, "-").toLowerCase();
return new this.constructor(a)
},
latinise: function() {
var a = this.replace(/[^A-Za-z0-9\[\] ]/g, function(a) {
return o[a] || a
});
return new this.constructor(a)
},
decodeHtmlEntities: function() {
var a = this.s;
return a = a.replace(/&#(\d+);?/g, function(a, b) {
return String.fromCharCode(b)
}).replace(/&#[xX]([A-Fa-f0-9]+);?/g, function(a, b) {
return String.fromCharCode(parseInt(b, 16))
}).replace(/&([^;\W]+;?)/g, function(a, b) {
var c = b.replace(/;$/, ""),
d = n[b] || b.match(/;$/) && n[c];
return "number" == typeof d ? String.fromCharCode(d) : "string" == typeof d ? d : a
}), new this.constructor(a)
},
endsWith: function() {
for (var a = Array.prototype.slice.call(arguments, 0), b = 0; b < a.length; ++b) {
var c = this.s.length - a[b].length;
if (c >= 0 && this.s.indexOf(a[b], c) === c) return !0
}
return !1
},
escapeHTML: function() {
return new this.constructor(this.s.replace(/[&<>"']/g, function(a) {
return "&" + v[a] + ";"
}))
},
ensureLeft: function(a) {
var b = this.s;
return 0 === b.indexOf(a) ? this : new this.constructor(a + b)
},
ensureRight: function(a) {
var b = this.s;
return this.endsWith(a) ? this : new this.constructor(b + a)
},
humanize: function() {
if (null === this.s || void 0 === this.s) return new this.constructor("");
var a = this.underscore().replace(/_id$/, "").replace(/_/g, " ").trim().capitalize();
return new this.constructor(a)
},
isAlpha: function() {
return !/[^a-z\xDF-\xFF]|^$/.test(this.s.toLowerCase())
},
isAlphaNumeric: function() {
return !/[^0-9a-z\xDF-\xFF]/.test(this.s.toLowerCase())
},
isEmpty: function() {
return null === this.s || void 0 === this.s ? !0 : /^[\s\xa0]*$/.test(this.s)
},
isLower: function() {
return this.isAlpha() && this.s.toLowerCase() === this.s
},
isNumeric: function() {
return !/[^0-9]/.test(this.s)
},
isUpper: function() {
return this.isAlpha() && this.s.toUpperCase() === this.s
},
left: function(a) {
if (a >= 0) {
var b = this.s.substr(0, a);
return new this.constructor(b)
}
return this.right(-a)
},
lines: function() {
return this.replaceAll("\r\n", "\n").s.split("\n")
},
pad: function(a, b) {
if (null == b && (b = " "), this.s.length >= a) return new this.constructor(this.s);
a -= this.s.length;
var c = Array(Math.ceil(a / 2) + 1).join(b),
d = Array(Math.floor(a / 2) + 1).join(b);
return new this.constructor(c + this.s + d)
},
padLeft: function(a, b) {
return null == b && (b = " "), this.s.length >= a ? new this.constructor(this.s) : new this.constructor(Array(a - this.s.length + 1).join(b) + this.s)
},
padRight: function(a, b) {
return null == b && (b = " "), this.s.length >= a ? new this.constructor(this.s) : new this.constructor(this.s + Array(a - this.s.length + 1).join(b))
},
parseCSV: function(a, b, c, d) {
a = a || ",", c = c || "\\", "undefined" == typeof b && (b = '"');
var e = 0,
f = [],
g = [],
h = this.s.length,
i = !1,
j = !1,
k = this,
l = function(a) {
return k.s.charAt(a)
};
if ("undefined" != typeof d) var m = [];
for (b || (i = !0); h > e;) {
var n = l(e);
switch (n) {
case c:
if (i && (c !== b || l(e + 1) === b)) {
e += 1, f.push(l(e));
break
}
if (c !== b) break;
case b:
i = !i;
break;
case a:
j && (i = !1, j = !1), i && b ? f.push(n) : (g.push(f.join("")), f.length = 0);
break;
case d:
j ? (i = !1, j = !1, g.push(f.join("")), m.push(g), g = [], f.length = 0) : i ? f.push(n) : m && (g.push(f.join("")), m.push(g), g = [], f.length = 0);
break;
case " ":
i && f.push(n);
break;
default:
i ? f.push(n) : n !== b && (f.push(n), i = !0, j = !0)
}
e += 1
}
return g.push(f.join("")), m ? (m.push(g), m) : g
},
replaceAll: function(a, b) {
var c = this.s.split(a).join(b);
return new this.constructor(c)
},
strip: function() {
for (var a = this.s, b = 0, c = arguments.length; c > b; b++) a = a.split(arguments[b]).join("");
return new this.constructor(a)
},
stripLeft: function(a) {
var b, c, d = l(this.s);
return void 0 === a ? c = /^\s+/g : (b = k(a), c = new RegExp("^[" + b + "]+", "g")), new this.constructor(d.replace(c, ""))
},
stripRight: function(a) {
var b, c, d = l(this.s);
return void 0 === a ? c = /\s+$/g : (b = k(a), c = new RegExp("[" + b + "]+$", "g")), new this.constructor(d.replace(c, ""))
},
right: function(a) {
if (a >= 0) {
var b = this.s.substr(this.s.length - a, a);
return new this.constructor(b)
}
return this.left(-a)
},
setValue: function(a) {
return c(this, a), this
},
slugify: function() {
var a = new d(new d(this.s).latinise().s.replace(/[^\w\s-]/g, "").toLowerCase()).dasherize().s;
return "-" === a.charAt(0) && (a = a.substr(1)), new this.constructor(a)
},
startsWith: function() {
for (var a = Array.prototype.slice.call(arguments, 0), b = 0; b < a.length; ++b)
if (0 === this.s.lastIndexOf(a[b], 0)) return !0;
return !1
},
stripPunctuation: function() {
return new this.constructor(this.s.replace(/[^\w\s]|_/g, "").replace(/\s+/g, " "))
},
stripTags: function() {
var a = this.s,
b = arguments.length > 0 ? arguments : [""];
return j(b, function(b) {
a = a.replace(RegExp("</?" + b + "[^<>]*>", "gi"), "")
}), new this.constructor(a)
},
template: function(a, b, c) {
var d = this.s,
b = b || i.TMPL_OPEN,
c = c || i.TMPL_CLOSE,
e = b.replace(/[-[\]()*\s]/g, "\\$&").replace(/\$/g, "\\$"),
f = c.replace(/[-[\]()*\s]/g, "\\$&").replace(/\$/g, "\\$"),
g = new RegExp(e + "(.+?)" + f, "g"),
h = d.match(g) || [];
return h.forEach(function(e) {
var f = e.substring(b.length, e.length - c.length).trim(),
g = "undefined" == typeof a[f] ? "" : a[f];
d = d.replace(e, g)
}), new this.constructor(d)
},
times: function(a) {
return new this.constructor(new Array(a + 1).join(this.s))
},
toBoolean: function() {
if ("string" == typeof this.orig) {
var a = this.s.toLowerCase();
return "true" === a || "yes" === a || "on" === a || "1" === a
}
return this.orig === !0 || 1 === this.orig
},
toFloat: function(a) {
var b = parseFloat(this.s);
return a ? parseFloat(b.toFixed(a)) : b
},
toInt: function() {
return /^\s*-?0x/i.test(this.s) ? parseInt(this.s, 16) : parseInt(this.s, 10)
},
trim: function() {
var a;
return a = "undefined" == typeof p.trim ? this.s.replace(/(^\s*|\s*$)/g, "") : this.s.trim(), new this.constructor(a)
},
trimLeft: function() {
var a;
return a = p.trimLeft ? this.s.trimLeft() : this.s.replace(/(^\s*)/g, ""), new this.constructor(a)
},
trimRight: function() {
var a;
return a = p.trimRight ? this.s.trimRight() : this.s.replace(/\s+$/, ""), new this.constructor(a)
},
truncate: function(a, b) {
var c = this.s;
if (a = ~~a, b = b || "...", c.length <= a) return new this.constructor(c);
var e = function(a) {
return a.toUpperCase() !== a.toLowerCase() ? "A" : " "
},
f = c.slice(0, a + 1).replace(/.(?=\W*\w*$)/g, e);
return f = f.slice(f.length - 2).match(/\w\w/) ? f.replace(/\s*\S+$/, "") : new d(f.slice(0, f.length - 1)).trimRight().s, new d((f + b).length > c.length ? c : c.slice(0, f.length) + b)
},
toCSV: function() {
function a(a) {
return null !== a && "" !== a
}
var b = ",",
c = '"',
e = "\\",
f = !0,
g = !1,
h = [];
if ("object" == typeof arguments[0] ? (b = arguments[0].delimiter || b, b = arguments[0].separator || b, c = arguments[0].qualifier || c, f = !!arguments[0].encloseNumbers, e = arguments[0].escape || e, g = !!arguments[0].keys) : "string" == typeof arguments[0] && (b = arguments[0]), "string" == typeof arguments[1] && (c = arguments[1]), null === arguments[1] && (c = null), this.orig instanceof Array) h = this.orig;
else
for (var i in this.orig) this.orig.hasOwnProperty(i) && (g ? h.push(i) : h.push(this.orig[i]));
for (var j = e + c, k = [], l = 0; l < h.length; ++l) {
var m = a(c);
if ("number" == typeof h[l] && (m &= f), m && k.push(c), null !== h[l] && void 0 !== h[l]) {
var n = new d(h[l]).replaceAll(c, j).s;
k.push(n)
} else k.push("");
m && k.push(c), b && k.push(b)
}
return k.length = k.length - 1, new this.constructor(k.join(""))
},
toString: function() {
return this.s
},
underscore: function() {
var a = this.trim().s.replace(/([a-z\d])([A-Z]+)/g, "$1_$2").replace(/([A-Z\d]+)([A-Z][a-z])/, "$1_$2").replace(/[-\s]+/g, "_").toLowerCase();
return new this.constructor(a)
},
unescapeHTML: function() {
return new this.constructor(this.s.replace(/\&([^;]+);/g, function(a, b) {
var c;
return b in u ? u[b] : (c = b.match(/^#x([\da-fA-F]+)$/)) ? String.fromCharCode(parseInt(c[1], 16)) : (c = b.match(/^#(\d+)$/)) ? String.fromCharCode(~~c[1]) : a
}))
},
valueOf: function() {
return this.s.valueOf()
},
wrapHTML: function(a, b) {
var c = this.s,
d = null == a ? "span" : a,
e = "",
f = "";
if ("object" == typeof b)
for (var g in b) e += " " + g + '="' + new this.constructor(b[g]).escapeHTML() + '"';
return c = f.concat("<", d, e, ">", this, "</", d, ">"), new this.constructor(c)
}
},
r = [],
s = g();
for (var t in s)! function(a) {
var b = p[a];
"function" == typeof b && (q[a] || ("string" === s[a] ? q[a] = function() {
return new this.constructor(b.apply(this, arguments))
} : q[a] = b))
}(t);
q.repeat = q.times, q.include = q.contains, q.toInteger = q.toInt, q.toBool = q.toBoolean, q.decodeHTMLEntities = q.decodeHtmlEntities, q.constructor = d, i.extendPrototype = e, i.restorePrototype = f, i.VERSION = m, i.TMPL_OPEN = "{{", i.TMPL_CLOSE = "}}", i.ENTITIES = n, "undefined" != typeof b && "undefined" != typeof b.exports ? b.exports = i : "function" == typeof define && define.amd ? define([], function() {
return i
}) : window.S = i;
var u = {
lt: "<",
gt: ">",
quot: '"',
apos: "'",
amp: "&"
},
v = {};
for (var w in u) v[u[w]] = w;
n = {
amp: "&",
gt: ">",
lt: "<",
quot: '"',
apos: "'",
AElig: 198,
Aacute: 193,
Acirc: 194,
Agrave: 192,
Aring: 197,
Atilde: 195,
Auml: 196,
Ccedil: 199,
ETH: 208,
Eacute: 201,
Ecirc: 202,
Egrave: 200,
Euml: 203,
Iacute: 205,
Icirc: 206,
Igrave: 204,
Iuml: 207,
Ntilde: 209,
Oacute: 211,
Ocirc: 212,
Ograve: 210,
Oslash: 216,
Otilde: 213,
Ouml: 214,
THORN: 222,
Uacute: 218,
Ucirc: 219,
Ugrave: 217,
Uuml: 220,
Yacute: 221,
aacute: 225,
acirc: 226,
aelig: 230,
agrave: 224,
aring: 229,
atilde: 227,
auml: 228,
ccedil: 231,
eacute: 233,
ecirc: 234,
egrave: 232,
eth: 240,
euml: 235,
iacute: 237,
icirc: 238,
igrave: 236,
iuml: 239,
ntilde: 241,
oacute: 243,
ocirc: 244,
ograve: 242,
oslash: 248,
otilde: 245,
ouml: 246,
szlig: 223,
thorn: 254,
uacute: 250,
ucirc: 251,
ugrave: 249,
uuml: 252,
yacute: 253,
yuml: 255,
copy: 169,
reg: 174,
nbsp: 160,
iexcl: 161,
cent: 162,
pound: 163,
curren: 164,
yen: 165,
brvbar: 166,
sect: 167,
uml: 168,
ordf: 170,
laquo: 171,
not: 172,
shy: 173,
macr: 175,
deg: 176,
plusmn: 177,
sup1: 185,
sup2: 178,
sup3: 179,
acute: 180,
micro: 181,
para: 182,
middot: 183,
cedil: 184,
ordm: 186,
raquo: 187,
frac14: 188,
frac12: 189,
frac34: 190,
iquest: 191,
times: 215,
divide: 247,
"OElig;": 338,
"oelig;": 339,
"Scaron;": 352,
"scaron;": 353,
"Yuml;": 376,
"fnof;": 402,
"circ;": 710,
"tilde;": 732,
"Alpha;": 913,
"Beta;": 914,
"Gamma;": 915,
"Delta;": 916,
"Epsilon;": 917,
"Zeta;": 918,
"Eta;": 919,
"Theta;": 920,
"Iota;": 921,
"Kappa;": 922,
"Lambda;": 923,
"Mu;": 924,
"Nu;": 925,
"Xi;": 926,
"Omicron;": 927,
"Pi;": 928,
"Rho;": 929,
"Sigma;": 931,
"Tau;": 932,
"Upsilon;": 933,
"Phi;": 934,
"Chi;": 935,
"Psi;": 936,
"Omega;": 937,
"alpha;": 945,
"beta;": 946,
"gamma;": 947,
"delta;": 948,
"epsilon;": 949,
"zeta;": 950,
"eta;": 951,
"theta;": 952,
"iota;": 953,
"kappa;": 954,
"lambda;": 955,
"mu;": 956,
"nu;": 957,
"xi;": 958,
"omicron;": 959,
"pi;": 960,
"rho;": 961,
"sigmaf;": 962,
"sigma;": 963,
"tau;": 964,
"upsilon;": 965,
"phi;": 966,
"chi;": 967,
"psi;": 968,
"omega;": 969,
"thetasym;": 977,
"upsih;": 978,
"piv;": 982,
"ensp;": 8194,
"emsp;": 8195,
"thinsp;": 8201,
"zwnj;": 8204,
"zwj;": 8205,
"lrm;": 8206,
"rlm;": 8207,
"ndash;": 8211,
"mdash;": 8212,
"lsquo;": 8216,
"rsquo;": 8217,
"sbquo;": 8218,
"ldquo;": 8220,
"rdquo;": 8221,
"bdquo;": 8222,
"dagger;": 8224,
"Dagger;": 8225,
"bull;": 8226,
"hellip;": 8230,
"permil;": 8240,
"prime;": 8242,
"Prime;": 8243,
"lsaquo;": 8249,
"rsaquo;": 8250,
"oline;": 8254,
"frasl;": 8260,
"euro;": 8364,
"image;": 8465,
"weierp;": 8472,
"real;": 8476,
"trade;": 8482,
"alefsym;": 8501,
"larr;": 8592,
"uarr;": 8593,
"rarr;": 8594,
"darr;": 8595,
"harr;": 8596,
"crarr;": 8629,
"lArr;": 8656,
"uArr;": 8657,
"rArr;": 8658,
"dArr;": 8659,
"hArr;": 8660,
"forall;": 8704,
"part;": 8706,
"exist;": 8707,
"empty;": 8709,
"nabla;": 8711,
"isin;": 8712,
"notin;": 8713,
"ni;": 8715,
"prod;": 8719,
"sum;": 8721,
"minus;": 8722,
"lowast;": 8727,
"radic;": 8730,
"prop;": 8733,
"infin;": 8734,
"ang;": 8736,
"and;": 8743,
"or;": 8744,
"cap;": 8745,
"cup;": 8746,
"int;": 8747,
"there4;": 8756,
"sim;": 8764,
"cong;": 8773,
"asymp;": 8776,
"ne;": 8800,
"equiv;": 8801,
"le;": 8804,
"ge;": 8805,
"sub;": 8834,
"sup;": 8835,
"nsub;": 8836,
"sube;": 8838,
"supe;": 8839,
"oplus;": 8853,
"otimes;": 8855,
"perp;": 8869,
"sdot;": 8901,
"lceil;": 8968,
"rceil;": 8969,
"lfloor;": 8970,
"rfloor;": 8971,
"lang;": 9001,
"rang;": 9002,
"loz;": 9674,
"spades;": 9824,
"clubs;": 9827,
"hearts;": 9829,
"diams;": 9830
}
}.call(this)
}, {
"./_count": 9
}
],
11: [
function(a, b, c) {
"use strict";
var d, e = a("./element"),
f = a("./image-element"),
g = 0,
h = {};
b.exports = function() {
var a = function(a) {
this.initialize(a)
};
return a.prototype = {
initialize: function() {
var a = this;
d || document.body.kit || (d = Object.defineProperty(window.Element.prototype, "kit", {
get: function() {
return a.setup(this)
}
}))
},
setup: function(a) {
var b;
return h[a._kitId] || (b = a instanceof window.HTMLImageElement ? f : e, g++, a._kitId = g, h[a._kitId] = new b(a)), h[a._kitId]
},
destroy: function() {}
}, new a
}()
}, {
"./element": 12,
"./image-element": 13
}
],
12: [
function(a, b, c) {
"use strict";
var d = a("./utils"),
e = (a("./element-kit"), a("string")),
f = function(a) {
this.initialize(a)
};
f.prototype = {
initialize: function(a) {
this.el = a, this.classList = this._getClassList(), this._eventListenerMap = this._eventListenerMap || [], Object.defineProperty(this, "dataset", {
get: function() {
return this.getData()
}.bind(this)
})
},
_traverseEachParent: function(a, b) {
for (var c, d = b || this.el; d && "string" == typeof d.className && (c = a(d), void 0 === c || c);) d = d.parentNode
},
appendOuterHtml: function(a) {
var b = this.el.parentNode,
c = d.createHtmlElement(a);
return b ? b.replaceChild(c, this.el) : (b = document.createDocumentFragment(), b.appendChild(c)), c.appendChild(this.el), c
},
getUniqueId: function() {
return this.el._kitId
},
getClosestAncestorElementByClassName: function(a) {
var b;
return this._traverseEachParent(function(c) {
return c.kit._hasClass(a) ? (b = c, !1) : void 0
}, this.el.parentNode), b
},
addEventListener: function(a, b, c, d) {
var e = b;
d = d || {}, "function" != typeof e && (e = this._createEventListener(c[b], c)), this.el.addEventListener(a, e, d.useCapture), this._eventListenerMap.push({
event: a,
listener: e,
listenerId: b,
context: c
})
},
_createEventListener: function(a, b) {
return function(c) {
b = b || this, a.apply(b, arguments)
}
},
removeEventListener: function(a, b, c) {
var d, e, f = this._eventListenerMap || [];
if (f.length)
for (d = 0; d < f.length; d++)
if (e = f[d], e && e.event === a && e.listenerId === b && e.context === c) {
this.el.removeEventListener(a, e.listener), this._eventListenerMap[d] = null;
break
}
},
waitForTransition: function(a) {
var b = this.getTransitionDuration();
a && (b > 0 ? setTimeout(a.bind(this, this.el), b) : a(this.el))
},
getTransitionDuration: function() {
var a, b = this.getCssComputedProperty("transition-delay") || "0ms",
c = this.getCssComputedProperty("transition-duration") || "0ms",
d = Array.isArray(c) ? c : [c],
e = Array.isArray(b) ? b : [b],
f = 0;
return d.push.apply(d, e), d.forEach(function(b) {
b.split(",").forEach(function(b) {
b = this._convertCssTimeValueToMilliseconds(b), a = this._getCssPropUnitMap(b), a.num > f && (f = a.num)
}.bind(this))
}.bind(this)), f
},
getCssComputedProperty: function(a) {
var b = window.getComputedStyle(this.el);
return b.getPropertyValue(a) || this.el.style[this._getJsPropName(a)]
},
_getCssPropUnitMap: function(a) {
a.trim();
var b = a.match("[0-9.]+"),
c = "ms";
return b = b ? b[0] : "", b && (c = a.split(b)[1], b = Number(b)), {
num: b,
unit: c
}
},
_convertCssTimeValueToMilliseconds: function(a) {
var b = this._getCssPropUnitMap(a).num,
c = a.replace(b, "");
return a = "s" === c ? 1e3 * b : b, a + "ms"
},
_getClassList: function() {
return {
add: this._addClass.bind(this),
remove: this._removeClass.bind(this),
contains: this._hasClass.bind(this),
toggle: this._toggleClass.bind(this)
}
},
_getCssClasses: function() {
return this.el.className.split(" ")
},
_toggleClass: function(a) {
this._hasClass(a) ? this._removeClass(a) : this._addClass(a)
},
_addClass: function() {
"classList" in document.createElement("_") ? this._each(arguments, function(a) {
this.el.classList.add(a)
}.bind(this)) : this._each(arguments, function(a) {
this._hasClass(a) || (this.el.className = this.el.className ? this.el.className + " " + a : a)
}.bind(this))
},
_each: function(a, b) {
var c, d = a.length;
for (c = 0; d > c; c++) b(a[c])
},
_removeClass: function() {
var a;
"classList" in document.createElement("_") ? this._each(arguments, function(a) {
this.el.classList.remove(a)
}.bind(this)) : this._each(arguments, function(b) {
this.el.className === b ? this.el.className = "" : (a = "[\\s]*" + b, a = new RegExp(a, "i"), this.el.className = this.el.className.replace(a, ""))
}.bind(this))
},
_hasClass: function(a) {
var b = this._getCssClasses();
return -1 !== b.indexOf(a)
},
_getJsPropName: function(a) {
return a = a.replace(/-([a-z])/g, function(a) {
return a[1].toUpperCase()
})
},
getAttributes: function() {
var a = this.el.attributes,
b = {};
if (a.length)
for (var c = 0; c < a.length; c++) b[a[c].name] = a[c].value;
return b
},
_getDomData: function() {
var a, b, c = this.getAttributes(),
d = {};
for (a in c) c.hasOwnProperty(a) && (b = c[a], 0 === a.indexOf("data-") && (a = a.substr(5), a = e(a).camelize().s, d[a] = b));
return d
},
getData: function() {
var a;
this._data = d.extend({}, this._data, this._getDomData());
for (a in this._data)
if (this._data.hasOwnProperty(a)) {
var b = this._data[a];
Object.defineProperty(this._data, a, {
writeable: !0,
get: function() {
return b
}.bind(this),
set: function(b) {
this.setData.bind(this, a, b)
}.bind(this)
})
}
return this._data
},
setData: function(a, b) {
this.el.setAttribute("data-" + a, b), this._data[a] = b
},
destroy: function() {}
}, b.exports = f
}, {
"./element-kit": 11,
"./utils": 14,
string: 10
}
],
13: [
function(a, b, c) {
"use strict";
var d = a("./utils"),
e = a("./element"),
f = a("promise"),
g = function(a) {
e.prototype.initialize.call(this, a)
};
g.prototype = d.extend({}, e.prototype, {
load: function(a) {
return (a = this.el.getAttribute(a) || a) ? (-1 !== a.indexOf(",") && (a = this._getImageSourceSetPath(a)), this._loadImage(a)) : (console.warn("ElementKit error: undefined was passed to load() call"), f.resolve())
},
_loadImage: function(a) {
var b = this.el;
return new f(function(c) {
b.onload = function() {
c(b)
}, b.onerror = function() {
c(b)
}, b.src = a
})
},
_getImageSourceSetPath: function(a) {
var b, c, d, e, f, g = window.innerWidth,
h = window.innerHeight;
return a.split(",").forEach(function(a) {
c = this._buildSourceMapWidthHeight(a), d = c.width || 0, e = c.height || 0, !f && g >= d && h >= e && (b = a.split(" ")[0], f = !0)
}.bind(this)), b
},
_buildSourceMapWidthHeight: function(a, b) {
var c, d = a.split(" "),
e = function(a) {
return Number(a.substr(0, a.length - 1))
};
return b = b || {}, d.shift(), d.forEach(function(a) {
c = a.charAt(a.length - 1), "w" === c ? b.width = e(a) : "h" === c && (b.height = e(a))
}), b
}
}), b.exports = g
}, {
"./element": 12,
"./utils": 14,
promise: 57
}
],
14: [
function(a, b, c) {
b.exports = {
createHtmlElement: function(a) {
var b, c;
return a ? (a = a.trim(a), b = document.createElement("div"), b.innerHTML = a, c = b.childNodes[0], b.removeChild(c)) : void 0
},
extend: function(a) {
var b, c, d = a;
for (c = 1; c < arguments.length; c++) {
b = arguments[c];
for (var e in b) b.hasOwnProperty(e) && (d[e] = b[e])
}
return d
},
triggerHtmlCollectionMethod: function(a, b, c) {
var d, e, f = a.length;
for (d = 0; f > d; d++) e = a[d], e.kit[b].apply(e.kit, c)
}
}
}, {}
],
15: [
function(a, b, c) {
arguments[4][6][0].apply(c, arguments)
}, {
dup: 6
}
],
16: [
function(a, b, c) {}, {}
],
17: [
function(a, b, c) {
b.exports = function() {
var b = a("events"),
c = {};
return c.createDomain = c.create = function() {
function a(a) {
c.emit("error", a)
}
var c = new b.EventEmitter;
return c.add = function(b) {
b.on("error", a)
}, c.remove = function(b) {
b.removeListener("error", a)
}, c.bind = function(b) {
return function() {
var c = Array.prototype.slice.call(arguments);
try {
b.apply(null, c)
} catch (d) {
a(d)
}
}
}, c.intercept = function(b) {
return function(c) {
if (c) a(c);
else {
var d = Array.prototype.slice.call(arguments, 1);
try {
b.apply(null, d)
} catch (c) {
a(c)
}
}
}
}, c.run = function(b) {
try {
b()
} catch (c) {
a(c)
}
return this
}, c.dispose = function() {
return this.removeAllListeners(), this
}, c.enter = c.exit = function() {
return this
}, c
}, c
}.call(this)
}, {
events: 18
}
],
18: [
function(a, b, c) {
function d() {
this._events = this._events || {}, this._maxListeners = this._maxListeners || void 0
}
function e(a) {
return "function" == typeof a
}
function f(a) {
return "number" == typeof a
}
function g(a) {
return "object" == typeof a && null !== a
}
function h(a) {
return void 0 === a
}
b.exports = d, d.EventEmitter = d, d.prototype._events = void 0, d.prototype._maxListeners = void 0, d.defaultMaxListeners = 10, d.prototype.setMaxListeners = function(a) {
if (!f(a) || 0 > a || isNaN(a)) throw TypeError("n must be a positive number");
return this._maxListeners = a, this
}, d.prototype.emit = function(a) {
var b, c, d, f, i, j;
if (this._events || (this._events = {}), "error" === a && (!this._events.error || g(this._events.error) && !this._events.error.length)) {
if (b = arguments[1], b instanceof Error) throw b;
throw TypeError('Uncaught, unspecified "error" event.')
}
if (c = this._events[a], h(c)) return !1;
if (e(c)) switch (arguments.length) {
case 1:
c.call(this);
break;
case 2:
c.call(this, arguments[1]);
break;
case 3:
c.call(this, arguments[1], arguments[2]);
break;
default:
for (d = arguments.length, f = new Array(d - 1), i = 1; d > i; i++) f[i - 1] = arguments[i];
c.apply(this, f)
} else if (g(c)) {
for (d = arguments.length, f = new Array(d - 1), i = 1; d > i; i++) f[i - 1] = arguments[i];
for (j = c.slice(), d = j.length, i = 0; d > i; i++) j[i].apply(this, f)
}
return !0
}, d.prototype.addListener = function(a, b) {
var c;
if (!e(b)) throw TypeError("listener must be a function");
if (this._events || (this._events = {}), this._events.newListener && this.emit("newListener", a, e(b.listener) ? b.listener : b), this._events[a] ? g(this._events[a]) ? this._events[a].push(b) : this._events[a] = [this._events[a], b] : this._events[a] = b, g(this._events[a]) && !this._events[a].warned) {
var c;
c = h(this._maxListeners) ? d.defaultMaxListeners : this._maxListeners, c && c > 0 && this._events[a].length > c && (this._events[a].warned = !0, console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.", this._events[a].length), "function" == typeof console.trace && console.trace())
}
return this
}, d.prototype.on = d.prototype.addListener, d.prototype.once = function(a, b) {
function c() {
this.removeListener(a, c), d || (d = !0, b.apply(this, arguments))
}
if (!e(b)) throw TypeError("listener must be a function");
var d = !1;
return c.listener = b, this.on(a, c), this
}, d.prototype.removeListener = function(a, b) {
var c, d, f, h;
if (!e(b)) throw TypeError("listener must be a function");
if (!this._events || !this._events[a]) return this;
if (c = this._events[a], f = c.length, d = -1, c === b || e(c.listener) && c.listener === b) delete this._events[a], this._events.removeListener && this.emit("removeListener", a, b);
else if (g(c)) {
for (h = f; h-- > 0;)
if (c[h] === b || c[h].listener && c[h].listener === b) {
d = h;
break
}
if (0 > d) return this;
1 === c.length ? (c.length = 0, delete this._events[a]) : c.splice(d, 1), this._events.removeListener && this.emit("removeListener", a, b)
}
return this
}, d.prototype.removeAllListeners = function(a) {
var b, c;
if (!this._events) return this;
if (!this._events.removeListener) return 0 === arguments.length ? this._events = {} : this._events[a] && delete this._events[a], this;
if (0 === arguments.length) {
for (b in this._events) "removeListener" !== b && this.removeAllListeners(b);
return this.removeAllListeners("removeListener"), this._events = {}, this
}
if (c = this._events[a], e(c)) this.removeListener(a, c);
else
for (; c.length;) this.removeListener(a, c[c.length - 1]);
return delete this._events[a], this
}, d.prototype.listeners = function(a) {
var b;
return b = this._events && this._events[a] ? e(this._events[a]) ? [this._events[a]] : this._events[a].slice() : []
}, d.listenerCount = function(a, b) {
var c;
return c = a._events && a._events[b] ? e(a._events[b]) ? 1 : a._events[b].length : 0
}
}, {}
],
19: [
function(a, b, c) {
(function(a) {
function b(a, b) {
for (var c = 0, d = a.length - 1; d >= 0; d--) {
var e = a[d];
"." === e ? a.splice(d, 1) : ".." === e ? (a.splice(d, 1), c++) : c && (a.splice(d, 1), c--)
}
if (b)
for (; c--; c) a.unshift("..");
return a
}
function d(a, b) {
if (a.filter) return a.filter(b);
for (var c = [], d = 0; d < a.length; d++) b(a[d], d, a) && c.push(a[d]);
return c
}
var e = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,
f = function(a) {
return e.exec(a).slice(1)
};
c.resolve = function() {
for (var c = "", e = !1, f = arguments.length - 1; f >= -1 && !e; f--) {
var g = f >= 0 ? arguments[f] : a.cwd();
if ("string" != typeof g) throw new TypeError("Arguments to path.resolve must be strings");
g && (c = g + "/" + c, e = "/" === g.charAt(0))
}
return c = b(d(c.split("/"), function(a) {
return !!a
}), !e).join("/"), (e ? "/" : "") + c || "."
}, c.normalize = function(a) {
var e = c.isAbsolute(a),
f = "/" === g(a, -1);
return a = b(d(a.split("/"), function(a) {
return !!a
}), !e).join("/"), a || e || (a = "."), a && f && (a += "/"), (e ? "/" : "") + a
}, c.isAbsolute = function(a) {
return "/" === a.charAt(0)
}, c.join = function() {
var a = Array.prototype.slice.call(arguments, 0);
return c.normalize(d(a, function(a, b) {
if ("string" != typeof a) throw new TypeError("Arguments to path.join must be strings");
return a
}).join("/"))
}, c.relative = function(a, b) {
function d(a) {
for (var b = 0; b < a.length && "" === a[b]; b++);
for (var c = a.length - 1; c >= 0 && "" === a[c]; c--);
return b > c ? [] : a.slice(b, c - b + 1)
}
a = c.resolve(a).substr(1), b = c.resolve(b).substr(1);
for (var e = d(a.split("/")), f = d(b.split("/")), g = Math.min(e.length, f.length), h = g, i = 0; g > i; i++)
if (e[i] !== f[i]) {
h = i;
break
}
for (var j = [], i = h; i < e.length; i++) j.push("..");
return j = j.concat(f.slice(h)), j.join("/")
}, c.sep = "/", c.delimiter = ":", c.dirname = function(a) {
var b = f(a),
c = b[0],
d = b[1];
return c || d ? (d && (d = d.substr(0, d.length - 1)), c + d) : "."
}, c.basename = function(a, b) {
var c = f(a)[2];
return b && c.substr(-1 * b.length) === b && (c = c.substr(0, c.length - b.length)), c
}, c.extname = function(a) {
return f(a)[3]
};
var g = "b" === "ab".substr(-1) ? function(a, b, c) {
return a.substr(b, c)
} : function(a, b, c) {
return 0 > b && (b = a.length + b), a.substr(b, c)
}
}).call(this, a("_process"))
}, {
_process: 20
}
],
20: [
function(a, b, c) {
function d() {
if (!h) {
h = !0;
for (var a, b = g.length; b;) {
a = g, g = [];
for (var c = -1; ++c < b;) a[c]();
b = g.length
}
h = !1
}
}
function e() {}
var f = b.exports = {},
g = [],
h = !1;
f.nextTick = function(a) {
g.push(a), h || setTimeout(d, 0)
}, f.title = "browser", f.browser = !0, f.env = {}, f.argv = [], f.version = "", f.versions = {}, f.on = e, f.addListener = e, f.once = e, f.off = e, f.removeListener = e, f.removeAllListeners = e, f.emit = e, f.binding = function(a) {
throw new Error("process.binding is not supported")
}, f.cwd = function() {
return "/"
}, f.chdir = function(a) {
throw new Error("process.chdir is not supported")
}, f.umask = function() {
return 0
}
}, {}
],
21: [
function(a, b, c) {
"use strict";
var d = a("./slugify.js");
b.exports = function(a) {
var b = a.Handlebars,
c = {};
return c.slugify = function(a) {
return new b.SafeString(d(a))
}, c
}
}, {
"./slugify.js": 22
}
],
22: [
function(a, b, c) {
var d = String.prototype.trim,
e = function(a) {
return null == a ? "" : String(a).replace(/([.*+?^=!:${}()|[\]\/\\])/g, "\\$1")
},
f = function(a) {
return null == a ? "\\s" : a.source ? a.source : "[" + e(a) + "]"
},
g = function(a, b) {
return null == a ? "" : !b && d ? d.call(a) : (b = f(b), String(a).replace(new RegExp("^" + b + "+|" + b + "+$", "g"), ""))
},
h = function(a) {
return g(a).replace(/([A-Z])/g, "-$1").replace(/[-_\s]+/g, "-").toLowerCase()
};
b.exports = function(a) {
if (null == a) return "";
var b = "ąàáäâãåæăćęèéëêìíïîłńòóöôõøśșțùúüûñçżź",
c = "aaaaaaaaaceeeeeiiiilnoooooosstuuuunczz",
d = new RegExp(f(b), "g");
return a = String(a).toLowerCase().replace(d, function(a) {
var d = b.indexOf(a);
return c.charAt(d) || "-"
}), h(a.replace(/[^\w\s-]/g, "")).replace(/^\W|\W$/g, "")
}
}, {}
],
23: [
function(a, b, c) {
"use strict";
function d() {
var a = r();
return a.compile = function(b, c) {
return k.compile(b, c, a)
}, a.precompile = function(b, c) {
return k.precompile(b, c, a)
}, a.AST = i["default"], a.Compiler = k.Compiler, a.JavaScriptCompiler = m["default"], a.Parser = j.parser, a.parse = j.parse, a
}
var e = function(a) {
return a && a.__esModule ? a : {
"default": a
}
};
c.__esModule = !0;
var f = a("./handlebars.runtime"),
g = e(f),
h = a("./handlebars/compiler/ast"),
i = e(h),
j = a("./handlebars/compiler/base"),
k = a("./handlebars/compiler/compiler"),
l = a("./handlebars/compiler/javascript-compiler"),
m = e(l),
n = a("./handlebars/compiler/visitor"),
o = e(n),
p = a("./handlebars/no-conflict"),
q = e(p),
r = g["default"].create,
s = d();
s.create = d, q["default"](s), s.Visitor = o["default"], s["default"] = s, c["default"] = s, b.exports = c["default"]
}, {
"./handlebars.runtime": 24,
"./handlebars/compiler/ast": 26,
"./handlebars/compiler/base": 27,
"./handlebars/compiler/compiler": 29,
"./handlebars/compiler/javascript-compiler": 31,
"./handlebars/compiler/visitor": 34,
"./handlebars/no-conflict": 37
}
],
24: [
function(a, b, c) {
"use strict";
function d() {
var a = new g.HandlebarsEnvironment;
return m.extend(a, g), a.SafeString = i["default"], a.Exception = k["default"], a.Utils = m, a.escapeExpression = m.escapeExpression, a.VM = o, a.template = function(b) {
return o.template(b, a)
}, a
}
var e = function(a) {
return a && a.__esModule ? a : {
"default": a
}
};
c.__esModule = !0;
var f = a("./handlebars/base"),
g = e(f),
h = a("./handlebars/safe-string"),
i = e(h),
j = a("./handlebars/exception"),
k = e(j),
l = a("./handlebars/utils"),
m = e(l),
n = a("./handlebars/runtime"),
o = e(n),
p = a("./handlebars/no-conflict"),
q = e(p),
r = d();
r.create = d, q["default"](r), r["default"] = r, c["default"] = r, b.exports = c["default"]
}, {
"./handlebars/base": 25,
"./handlebars/exception": 36,
"./handlebars/no-conflict": 37,
"./handlebars/runtime": 38,
"./handlebars/safe-string": 39,
"./handlebars/utils": 40
}
],
25: [
function(a, b, c) {
"use strict";
function d(a, b) {
this.helpers = a || {}, this.partials = b || {}, e(this)
}
function e(a) {
a.registerHelper("helperMissing", function() {
if (1 === arguments.length) return void 0;
throw new k["default"]('Missing helper: "' + arguments[arguments.length - 1].name + '"')
}), a.registerHelper("blockHelperMissing", function(b, c) {
var d = c.inverse,
e = c.fn;
if (b === !0) return e(this);
if (b === !1 || null == b) return d(this);
if (o(b)) return b.length > 0 ? (c.ids && (c.ids = [c.name]), a.helpers.each(b, c)) : d(this);
if (c.data && c.ids) {
var g = f(c.data);
g.contextPath = i.appendContextPath(c.data.contextPath, c.name), c = {
data: g
}
}
return e(b, c)
}), a.registerHelper("each", function(a, b) {
function c(b, c, e) {
j && (j.key = b, j.index = c, j.first = 0 === c, j.last = !!e, l && (j.contextPath = l + b)), h += d(a[b], {
data: j,
blockParams: i.blockParams([a[b], b], [l + b, null])
})
}
if (!b) throw new k["default"]("Must pass iterator to #each");
var d = b.fn,
e = b.inverse,
g = 0,
h = "",
j = void 0,
l = void 0;
if (b.data && b.ids && (l = i.appendContextPath(b.data.contextPath, b.ids[0]) + "."), p(a) && (a = a.call(this)), b.data && (j = f(b.data)), a && "object" == typeof a)
if (o(a))
for (var m = a.length; m > g; g++) c(g, g, g === a.length - 1);
else {
var n = void 0;
for (var q in a) a.hasOwnProperty(q) && (n && c(n, g - 1), n = q, g++);
n && c(n, g - 1, !0)
}
return 0 === g && (h = e(this)), h
}), a.registerHelper("if", function(a, b) {
return p(a) && (a = a.call(this)), !b.hash.includeZero && !a || i.isEmpty(a) ? b.inverse(this) : b.fn(this)
}), a.registerHelper("unless", function(b, c) {
return a.helpers["if"].call(this, b, {
fn: c.inverse,
inverse: c.fn,
hash: c.hash
})
}), a.registerHelper("with", function(a, b) {
p(a) && (a = a.call(this));
var c = b.fn;
if (i.isEmpty(a)) return b.inverse(this);
if (b.data && b.ids) {
var d = f(b.data);
d.contextPath = i.appendContextPath(b.data.contextPath, b.ids[0]), b = {
data: d
}
}
return c(a, b)
}), a.registerHelper("log", function(b, c) {
var d = c.data && null != c.data.level ? parseInt(c.data.level, 10) : 1;
a.log(d, b)
}), a.registerHelper("lookup", function(a, b) {
return a && a[b]
})
}
function f(a) {
var b = i.extend({}, a);
return b._parent = a, b
}
var g = function(a) {
return a && a.__esModule ? a : {
"default": a
}
};
c.__esModule = !0, c.HandlebarsEnvironment = d, c.createFrame = f;
var h = a("./utils"),
i = g(h),
j = a("./exception"),
k = g(j),
l = "3.0.1";
c.VERSION = l;
var m = 6;
c.COMPILER_REVISION = m;
var n = {
1: "<= 1.0.rc.2",
2: "== 1.0.0-rc.3",
3: "== 1.0.0-rc.4",
4: "== 1.x.x",
5: "== 2.0.0-alpha.x",
6: ">= 2.0.0-beta.1"
};
c.REVISION_CHANGES = n;
var o = i.isArray,
p = i.isFunction,
q = i.toString,
r = "[object Object]";
d.prototype = {
constructor: d,
logger: s,
log: t,
registerHelper: function(a, b) {
if (q.call(a) === r) {
if (b) throw new k["default"]("Arg not supported with multiple helpers");
i.extend(this.helpers, a)
} else this.helpers[a] = b
},
unregisterHelper: function(a) {
delete this.helpers[a]
},
registerPartial: function(a, b) {
if (q.call(a) === r) i.extend(this.partials, a);
else {
if ("undefined" == typeof b) throw new k["default"]("Attempting to register a partial as undefined");
this.partials[a] = b
}
},
unregisterPartial: function(a) {
delete this.partials[a]
}
};
var s = {
methodMap: {
0: "debug",
1: "info",
2: "warn",
3: "error"
},
DEBUG: 0,
INFO: 1,
WARN: 2,
ERROR: 3,
level: 1,
log: function(a, b) {
if ("undefined" != typeof console && s.level <= a) {
var c = s.methodMap[a];
(console[c] || console.log).call(console, b)
}
}
};
c.logger = s;
var t = s.log;
c.log = t
}, {
"./exception": 36,
"./utils": 40
}
],
26: [
function(a, b, c) {
"use strict";
c.__esModule = !0;
var d = {
Program: function(a, b, c, d) {
this.loc = d, this.type = "Program", this.body = a, this.blockParams = b, this.strip = c
},
MustacheStatement: function(a, b, c, d, e, f) {
this.loc = f, this.type = "MustacheStatement", this.path = a, this.params = b || [], this.hash = c, this.escaped = d, this.strip = e
},
BlockStatement: function(a, b, c, d, e, f, g, h, i) {
this.loc = i, this.type = "BlockStatement", this.path = a, this.params = b || [], this.hash = c, this.program = d, this.inverse = e, this.openStrip = f, this.inverseStrip = g, this.closeStrip = h
},
PartialStatement: function(a, b, c, d, e) {
this.loc = e, this.type = "PartialStatement", this.name = a, this.params = b || [], this.hash = c, this.indent = "", this.strip = d
},
ContentStatement: function(a, b) {
this.loc = b, this.type = "ContentStatement", this.original = this.value = a
},
CommentStatement: function(a, b, c) {
this.loc = c, this.type = "CommentStatement", this.value = a, this.strip = b
},
SubExpression: function(a, b, c, d) {
this.loc = d, this.type = "SubExpression", this.path = a, this.params = b || [], this.hash = c
},
PathExpression: function(a, b, c, d, e) {
this.loc = e, this.type = "PathExpression", this.data = a, this.original = d, this.parts = c, this.depth = b
},
StringLiteral: function(a, b) {
this.loc = b, this.type = "StringLiteral", this.original = this.value = a
},
NumberLiteral: function(a, b) {
this.loc = b, this.type = "NumberLiteral", this.original = this.value = Number(a)
},
BooleanLiteral: function(a, b) {
this.loc = b, this.type = "BooleanLiteral", this.original = this.value = "true" === a
},
UndefinedLiteral: function(a) {
this.loc = a, this.type = "UndefinedLiteral", this.original = this.value = void 0
},
NullLiteral: function(a) {
this.loc = a, this.type = "NullLiteral", this.original = this.value = null
},
Hash: function(a, b) {
this.loc = b, this.type = "Hash", this.pairs = a
},
HashPair: function(a, b, c) {
this.loc = c, this.type = "HashPair", this.key = a, this.value = b
},
helpers: {
helperExpression: function(a) {
return !("SubExpression" !== a.type && !a.params.length && !a.hash)
},
scopedId: function(a) {
return /^\.|this\b/.test(a.original)
},
simpleId: function(a) {
return 1 === a.parts.length && !d.helpers.scopedId(a) && !a.depth
}
}
};
c["default"] = d, b.exports = c["default"]
}, {}
],
27: [
function(a, b, c) {
"use strict";
function d(a, b) {
if ("Program" === a.type) return a;
g["default"].yy = o, o.locInfo = function(a) {
return new o.SourceLocation(b && b.srcName, a)
};
var c = new k["default"];
return c.accept(g["default"].parse(a))
}
var e = function(a) {
return a && a.__esModule ? a : {
"default": a
}
};
c.__esModule = !0, c.parse = d;
var f = a("./parser"),
g = e(f),
h = a("./ast"),
i = e(h),
j = a("./whitespace-control"),
k = e(j),
l = a("./helpers"),
m = e(l),
n = a("../utils");
c.parser = g["default"];
var o = {};
n.extend(o, m, i["default"])
}, {
"../utils": 40,
"./ast": 26,
"./helpers": 30,
"./parser": 32,
"./whitespace-control": 35
}
],
28: [
function(a, b, c) {
"use strict";
function d(a, b, c) {
if (f.isArray(a)) {
for (var d = [], e = 0, g = a.length; g > e; e++) d.push(b.wrap(a[e], c));
return d
}
return "boolean" == typeof a || "number" == typeof a ? a + "" : a
}
function e(a) {
this.srcFile = a, this.source = []
}
c.__esModule = !0;
var f = a("../utils"),
g = void 0;
try {
if ("function" != typeof define || !define.amd) {
var h = a("source-map");
g = h.SourceNode
}
} catch (i) {}
g || (g = function(a, b, c, d) {
this.src = "", d && this.add(d)
}, g.prototype = {
add: function(a) {
f.isArray(a) && (a = a.join("")), this.src += a
},
prepend: function(a) {
f.isArray(a) && (a = a.join("")), this.src = a + this.src
},
toStringWithSourceMap: function() {
return {
code: this.toString()
}
},
toString: function() {
return this.src
}
}), e.prototype = {
prepend: function(a, b) {
this.source.unshift(this.wrap(a, b))
},
push: function(a, b) {
this.source.push(this.wrap(a, b))
},
merge: function() {
var a = this.empty();
return this.each(function(b) {
a.add([" ", b, "\n"])
}), a
},
each: function(a) {
for (var b = 0, c = this.source.length; c > b; b++) a(this.source[b])
},
empty: function() {
var a = void 0 === arguments[0] ? this.currentLocation || {
start: {}
} : arguments[0];
return new g(a.start.line, a.start.column, this.srcFile)
},
wrap: function(a) {
var b = void 0 === arguments[1] ? this.currentLocation || {
start: {}
} : arguments[1];
return a instanceof g ? a : (a = d(a, this, b), new g(b.start.line, b.start.column, this.srcFile, a))
},
functionCall: function(a, b, c) {
return c = this.generateList(c), this.wrap([a, b ? "." + b + "(" : "(", c, ")"])
},
quotedString: function(a) {
return '"' + (a + "").replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029") + '"'
},
objectLiteral: function(a) {
var b = [];
for (var c in a)
if (a.hasOwnProperty(c)) {
var e = d(a[c], this);
"undefined" !== e && b.push([this.quotedString(c), ":", e])
}
var f = this.generateList(b);
return f.prepend("{"), f.add("}"), f
},
generateList: function(a, b) {
for (var c = this.empty(b), e = 0, f = a.length; f > e; e++) e && c.add(","), c.add(d(a[e], this, b));
return c
},
generateArray: function(a, b) {
var c = this.generateList(a, b);
return c.prepend("["), c.add("]"), c
}
}, c["default"] = e, b.exports = c["default"]
}, {
"../utils": 40,
"source-map": 42
}
],
29: [
function(a, b, c) {
"use strict";
function d() {}
function e(a, b, c) {
if (null == a || "string" != typeof a && "Program" !== a.type) throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.precompile. You passed " + a);
b = b || {}, "data" in b || (b.data = !0), b.compat && (b.useDepths = !0);
var d = c.parse(a, b),
e = (new c.Compiler).compile(d, b);
return (new c.JavaScriptCompiler).compile(e, b)
}
function f(a, b, c) {
function d() {
var b = c.parse(a, f),
d = (new c.Compiler).compile(b, f),
e = (new c.JavaScriptCompiler).compile(d, f, void 0, !0);
return c.template(e)
}
function e(a, b) {
return g || (g = d()), g.call(this, a, b)
}
var f = void 0 === arguments[1] ? {} : arguments[1];
if (null == a || "string" != typeof a && "Program" !== a.type) throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.compile. You passed " + a);
"data" in f || (f.data = !0), f.compat && (f.useDepths = !0);
var g = void 0;
return e._setup = function(a) {
return g || (g = d()), g._setup(a)
}, e._child = function(a, b, c, e) {
return g || (g = d()), g._child(a, b, c, e)
}, e
}
function g(a, b) {
if (a === b) return !0;
if (l.isArray(a) && l.isArray(b) && a.length === b.length) {
for (var c = 0; c < a.length; c++)
if (!g(a[c], b[c])) return !1;
return !0
}
}
function h(a) {
if (!a.path.parts) {
var b = a.path;
a.path = new n["default"].PathExpression(!1, 0, [b.original + ""], b.original + "", b.loc)
}
}
var i = function(a) {
return a && a.__esModule ? a : {
"default": a
}
};
c.__esModule = !0, c.Compiler = d, c.precompile = e, c.compile = f;
var j = a("../exception"),
k = i(j),
l = a("../utils"),
m = a("./ast"),
n = i(m),
o = [].slice;
d.prototype = {
compiler: d,
equals: function(a) {
var b = this.opcodes.length;
if (a.opcodes.length !== b) return !1;
for (var c = 0; b > c; c++) {
var d = this.opcodes[c],
e = a.opcodes[c];
if (d.opcode !== e.opcode || !g(d.args, e.args)) return !1
}
b = this.children.length;
for (var c = 0; b > c; c++)
if (!this.children[c].equals(a.children[c])) return !1;
return !0
},
guid: 0,
compile: function(a, b) {
this.sourceNode = [], this.opcodes = [], this.children = [], this.options = b, this.stringParams = b.stringParams, this.trackIds = b.trackIds, b.blockParams = b.blockParams || [];
var c = b.knownHelpers;
if (b.knownHelpers = {
helperMissing: !0,
blockHelperMissing: !0,
each: !0,
"if": !0,
unless: !0,
"with": !0,
log: !0,
lookup: !0
}, c)
for (var d in c) d in c && (b.knownHelpers[d] = c[d]);
return this.accept(a)
},
compileProgram: function(a) {
var b = new this.compiler,
c = b.compile(a, this.options),
d = this.guid++;
return this.usePartial = this.usePartial || c.usePartial, this.children[d] = c, this.useDepths = this.useDepths || c.useDepths, d
},
accept: function(a) {
this.sourceNode.unshift(a);
var b = this[a.type](a);
return this.sourceNode.shift(), b
},
Program: function(a) {
this.options.blockParams.unshift(a.blockParams);
for (var b = a.body, c = b.length, d = 0; c > d; d++) this.accept(b[d]);
return this.options.blockParams.shift(), this.isSimple = 1 === c, this.blockParams = a.blockParams ? a.blockParams.length : 0, this
},
BlockStatement: function(a) {
h(a);
var b = a.program,
c = a.inverse;
b = b && this.compileProgram(b), c = c && this.compileProgram(c);
var d = this.classifySexpr(a);
"helper" === d ? this.helperSexpr(a, b, c) : "simple" === d ? (this.simpleSexpr(a), this.opcode("pushProgram", b), this.opcode("pushProgram", c), this.opcode("emptyHash"), this.opcode("blockValue", a.path.original)) : (this.ambiguousSexpr(a, b, c), this.opcode("pushProgram", b), this.opcode("pushProgram", c), this.opcode("emptyHash"), this.opcode("ambiguousBlockValue")), this.opcode("append")
},
PartialStatement: function(a) {
this.usePartial = !0;
var b = a.params;
if (b.length > 1) throw new k["default"]("Unsupported number of partial arguments: " + b.length, a);
b.length || b.push({
type: "PathExpression",
parts: [],
depth: 0
});
var c = a.name.original,
d = "SubExpression" === a.name.type;
d && this.accept(a.name), this.setupFullMustacheParams(a, void 0, void 0, !0);
var e = a.indent || "";
this.options.preventIndent && e && (this.opcode("appendContent", e), e = ""), this.opcode("invokePartial", d, c, e), this.opcode("append")
},
MustacheStatement: function(a) {
this.SubExpression(a), a.escaped && !this.options.noEscape ? this.opcode("appendEscaped") : this.opcode("append")
},
ContentStatement: function(a) {
a.value && this.opcode("appendContent", a.value)
},
CommentStatement: function() {},
SubExpression: function(a) {
h(a);
var b = this.classifySexpr(a);
"simple" === b ? this.simpleSexpr(a) : "helper" === b ? this.helperSexpr(a) : this.ambiguousSexpr(a)
},
ambiguousSexpr: function(a, b, c) {
var d = a.path,
e = d.parts[0],
f = null != b || null != c;
this.opcode("getContext", d.depth), this.opcode("pushProgram", b), this.opcode("pushProgram", c), this.accept(d), this.opcode("invokeAmbiguous", e, f)
},
simpleSexpr: function(a) {
this.accept(a.path), this.opcode("resolvePossibleLambda")
},
helperSexpr: function(a, b, c) {
var d = this.setupFullMustacheParams(a, b, c),
e = a.path,
f = e.parts[0];
if (this.options.knownHelpers[f]) this.opcode("invokeKnownHelper", d.length, f);
else {
if (this.options.knownHelpersOnly) throw new k["default"]("You specified knownHelpersOnly, but used the unknown helper " + f, a);
e.falsy = !0, this.accept(e), this.opcode("invokeHelper", d.length, e.original, n["default"].helpers.simpleId(e))
}
},
PathExpression: function(a) {
this.addDepth(a.depth), this.opcode("getContext", a.depth);
var b = a.parts[0],
c = n["default"].helpers.scopedId(a),
d = !a.depth && !c && this.blockParamIndex(b);
d ? this.opcode("lookupBlockParam", d, a.parts) : b ? a.data ? (this.options.data = !0, this.opcode("lookupData", a.depth, a.parts)) : this.opcode("lookupOnContext", a.parts, a.falsy, c) : this.opcode("pushContext")
},
StringLiteral: function(a) {
this.opcode("pushString", a.value)
},
NumberLiteral: function(a) {
this.opcode("pushLiteral", a.value)
},
BooleanLiteral: function(a) {
this.opcode("pushLiteral", a.value)
},
UndefinedLiteral: function() {
this.opcode("pushLiteral", "undefined")
},
NullLiteral: function() {
this.opcode("pushLiteral", "null")
},
Hash: function(a) {
var b = a.pairs,
c = 0,
d = b.length;
for (this.opcode("pushHash"); d > c; c++) this.pushParam(b[c].value);
for (; c--;) this.opcode("assignToHash", b[c].key);
this.opcode("popHash")
},
opcode: function(a) {
this.opcodes.push({
opcode: a,
args: o.call(arguments, 1),
loc: this.sourceNode[0].loc
})
},
addDepth: function(a) {
a && (this.useDepths = !0)
},
classifySexpr: function(a) {
var b = n["default"].helpers.simpleId(a.path),
c = b && !!this.blockParamIndex(a.path.parts[0]),
d = !c && n["default"].helpers.helperExpression(a),
e = !c && (d || b);
if (e && !d) {
var f = a.path.parts[0],
g = this.options;
g.knownHelpers[f] ? d = !0 : g.knownHelpersOnly && (e = !1)
}
return d ? "helper" : e ? "ambiguous" : "simple"
},
pushParams: function(a) {
for (var b = 0, c = a.length; c > b; b++) this.pushParam(a[b])
},
pushParam: function(a) {
var b = null != a.value ? a.value : a.original || "";
if (this.stringParams) b.replace && (b = b.replace(/^(\.?\.\/)*/g, "").replace(/\//g, ".")), a.depth && this.addDepth(a.depth), this.opcode("getContext", a.depth || 0), this.opcode("pushStringParam", b, a.type), "SubExpression" === a.type && this.accept(a);
else {
if (this.trackIds) {
var c = void 0;
if (!a.parts || n["default"].helpers.scopedId(a) || a.depth || (c = this.blockParamIndex(a.parts[0])), c) {
var d = a.parts.slice(1).join(".");
this.opcode("pushId", "BlockParam", c, d)
} else b = a.original || b, b.replace && (b = b.replace(/^\.\//g, "").replace(/^\.$/g, "")), this.opcode("pushId", a.type, b)
}
this.accept(a)
}
},
setupFullMustacheParams: function(a, b, c, d) {
var e = a.params;
return this.pushParams(e), this.opcode("pushProgram", b), this.opcode("pushProgram", c), a.hash ? this.accept(a.hash) : this.opcode("emptyHash", d), e
},
blockParamIndex: function(a) {
for (var b = 0, c = this.options.blockParams.length; c > b; b++) {
var d = this.options.blockParams[b],
e = d && l.indexOf(d, a);
if (d && e >= 0) return [b, e]
}
}
}
}, {
"../exception": 36,
"../utils": 40,
"./ast": 26
}
],
30: [
function(a, b, c) {
"use strict";
function d(a, b) {
this.source = a, this.start = {
line: b.first_line,
column: b.first_column
}, this.end = {
line: b.last_line,
column: b.last_column
}
}
function e(a) {
return /^\[.*\]$/.test(a) ? a.substr(1, a.length - 2) : a
}
function f(a, b) {
return {
open: "~" === a.charAt(2),
close: "~" === b.charAt(b.length - 3)
}
}
function g(a) {
return a.replace(/^\{\{~?\!-?-?/, "").replace(/-?-?~?\}\}$/, "")
}
function h(a, b, c) {
c = this.locInfo(c);
for (var d = a ? "@" : "", e = [], f = 0, g = "", h = 0, i = b.length; i > h; h++) {
var j = b[h].part,
k = b[h].original !== j;
if (d += (b[h].separator || "") + j, k || ".." !== j && "." !== j && "this" !== j) e.push(j);
else {
if (e.length > 0) throw new n["default"]("Invalid path: " + d, {
loc: c
});
".." === j && (f++, g += "../")
}
}
return new this.PathExpression(a, f, e, d, c)
}
function i(a, b, c, d, e, f) {
var g = d.charAt(3) || d.charAt(2),
h = "{" !== g && "&" !== g;
return new this.MustacheStatement(a, b, c, h, e, this.locInfo(f))
}
function j(a, b, c, d) {
if (a.path.original !== c) {
var e = {
loc: a.path.loc
};
throw new n["default"](a.path.original + " doesn't match " + c, e)
}
d = this.locInfo(d);
var f = new this.Program([b], null, {}, d);
return new this.BlockStatement(a.path, a.params, a.hash, f, void 0, {}, {}, {}, d)
}
function k(a, b, c, d, e, f) {
if (d && d.path && a.path.original !== d.path.original) {
var g = {
loc: a.path.loc
};
throw new n["default"](a.path.original + " doesn't match " + d.path.original, g)
}
b.blockParams = a.blockParams;
var h = void 0,
i = void 0;
return c && (c.chain && (c.program.body[0].closeStrip = d.strip), i = c.strip, h = c.program), e && (e = h, h = b, b = e), new this.BlockStatement(a.path, a.params, a.hash, b, h, a.strip, i, d && d.strip, this.locInfo(f))
}
var l = function(a) {
return a && a.__esModule ? a : {
"default": a
}
};
c.__esModule = !0, c.SourceLocation = d, c.id = e, c.stripFlags = f, c.stripComment = g, c.preparePath = h, c.prepareMustache = i, c.prepareRawBlock = j, c.prepareBlock = k;
var m = a("../exception"),
n = l(m)
}, {
"../exception": 36
}
],
31: [
function(a, b, c) {
"use strict";
function d(a) {
this.value = a
}
function e() {}
function f(a, b, c, d) {
var e = b.popStack(),
f = 0,
g = c.length;
for (a && g--; g > f; f++) e = b.nameLookup(e, c[f], d);
return a ? [b.aliasable("this.strict"), "(", e, ", ", b.quotedString(c[f]), ")"] : e
}
var g = function(a) {
return a && a.__esModule ? a : {
"default": a
}
};
c.__esModule = !0;
var h = a("../base"),
i = a("../exception"),
j = g(i),
k = a("../utils"),
l = a("./code-gen"),
m = g(l);
e.prototype = {
nameLookup: function(a, b) {
return e.isValidJavaScriptVariableName(b) ? [a, ".", b] : [a, "['", b, "']"]
},
depthedLookup: function(a) {
return [this.aliasable("this.lookup"), '(depths, "', a, '")']
},
compilerInfo: function() {
var a = h.COMPILER_REVISION,
b = h.REVISION_CHANGES[a];
return [a, b]
},
appendToBuffer: function(a, b, c) {
return k.isArray(a) || (a = [a]), a = this.source.wrap(a, b), this.environment.isSimple ? ["return ", a, ";"] : c ? ["buffer += ", a, ";"] : (a.appendToBuffer = !0, a)
},
initializeBuffer: function() {
return this.quotedString("")
},
compile: function(a, b, c, d) {
this.environment = a, this.options = b, this.stringParams = this.options.stringParams, this.trackIds = this.options.trackIds, this.precompile = !d, this.name = this.environment.name, this.isChild = !!c, this.context = c || {
programs: [],
environments: []
}, this.preamble(), this.stackSlot = 0, this.stackVars = [], this.aliases = {}, this.registers = {
list: []
}, this.hashes = [], this.compileStack = [], this.inlineStack = [], this.blockParams = [], this.compileChildren(a, b), this.useDepths = this.useDepths || a.useDepths || this.options.compat, this.useBlockParams = this.useBlockParams || a.useBlockParams;
var e = a.opcodes,
f = void 0,
g = void 0,
h = void 0,
i = void 0;
for (h = 0, i = e.length; i > h; h++) f = e[h], this.source.currentLocation = f.loc, g = g || f.loc, this[f.opcode].apply(this, f.args);
if (this.source.currentLocation = g, this.pushSource(""), this.stackSlot || this.inlineStack.length || this.compileStack.length) throw new j["default"]("Compile completed with content left on stack");
var k = this.createFunctionContext(d);
if (this.isChild) return k;
var l = {
compiler: this.compilerInfo(),
main: k
},
m = this.context.programs;
for (h = 0, i = m.length; i > h; h++) m[h] && (l[h] = m[h]);
return this.environment.usePartial && (l.usePartial = !0), this.options.data && (l.useData = !0), this.useDepths && (l.useDepths = !0), this.useBlockParams && (l.useBlockParams = !0), this.options.compat && (l.compat = !0), d ? l.compilerOptions = this.options : (l.compiler = JSON.stringify(l.compiler), this.source.currentLocation = {
start: {
line: 1,
column: 0
}
}, l = this.objectLiteral(l), b.srcName ? (l = l.toStringWithSourceMap({
file: b.destName
}), l.map = l.map && l.map.toString()) : l = l.toString()), l
},
preamble: function() {
this.lastContext = 0, this.source = new m["default"](this.options.srcName)
},
createFunctionContext: function(a) {
var b = "",
c = this.stackVars.concat(this.registers.list);
c.length > 0 && (b += ", " + c.join(", "));
var d = 0;
for (var e in this.aliases) {
var f = this.aliases[e];
this.aliases.hasOwnProperty(e) && f.children && f.referenceCount > 1 && (b += ", alias" + ++d + "=" + e, f.children[0] = "alias" + d)
}
var g = ["depth0", "helpers", "partials", "data"];
(this.useBlockParams || this.useDepths) && g.push("blockParams"), this.useDepths && g.push("depths");
var h = this.mergeSource(b);
return a ? (g.push(h), Function.apply(this, g)) : this.source.wrap(["function(", g.join(","), ") {\n ", h, "}"])
},
mergeSource: function(a) {
var b = this.environment.isSimple,
c = !this.forceBuffer,
d = void 0,
e = void 0,
f = void 0,
g = void 0;
return this.source.each(function(a) {
a.appendToBuffer ? (f ? a.prepend(" + ") : f = a, g = a) : (f && (e ? f.prepend("buffer += ") : d = !0, g.add(";"), f = g = void 0), e = !0, b || (c = !1))
}), c ? f ? (f.prepend("return "), g.add(";")) : e || this.source.push('return "";') : (a += ", buffer = " + (d ? "" : this.initializeBuffer()), f ? (f.prepend("return buffer + "), g.add(";")) : this.source.push("return buffer;")), a && this.source.prepend("var " + a.substring(2) + (d ? "" : ";\n")), this.source.merge()
},
blockValue: function(a) {
var b = this.aliasable("helpers.blockHelperMissing"),
c = [this.contextName(0)];
this.setupHelperArgs(a, 0, c);
var d = this.popStack();
c.splice(1, 0, d), this.push(this.source.functionCall(b, "call", c))
},
ambiguousBlockValue: function() {
var a = this.aliasable("helpers.blockHelperMissing"),
b = [this.contextName(0)];
this.setupHelperArgs("", 0, b, !0), this.flushInline();
var c = this.topStack();
b.splice(1, 0, c), this.pushSource(["if (!", this.lastHelper, ") { ", c, " = ", this.source.functionCall(a, "call", b), "}"])
},
appendContent: function(a) {
this.pendingContent ? a = this.pendingContent + a : this.pendingLocation = this.source.currentLocation, this.pendingContent = a
},
append: function() {
if (this.isInline()) this.replaceStack(function(a) {
return [" != null ? ", a, ' : ""']
}), this.pushSource(this.appendToBuffer(this.popStack()));
else {
var a = this.popStack();
this.pushSource(["if (", a, " != null) { ", this.appendToBuffer(a, void 0, !0), " }"]), this.environment.isSimple && this.pushSource(["else { ", this.appendToBuffer("''", void 0, !0), " }"])
}
},
appendEscaped: function() {
this.pushSource(this.appendToBuffer([this.aliasable("this.escapeExpression"), "(", this.popStack(), ")"]))
},
getContext: function(a) {
this.lastContext = a
},
pushContext: function() {
this.pushStackLiteral(this.contextName(this.lastContext))
},
lookupOnContext: function(a, b, c) {
var d = 0;
c || !this.options.compat || this.lastContext ? this.pushContext() : this.push(this.depthedLookup(a[d++])), this.resolvePath("context", a, d, b)
},
lookupBlockParam: function(a, b) {
this.useBlockParams = !0, this.push(["blockParams[", a[0], "][", a[1], "]"]), this.resolvePath("context", b, 1)
},
lookupData: function(a, b) {
a ? this.pushStackLiteral("this.data(data, " + a + ")") : this.pushStackLiteral("data"), this.resolvePath("data", b, 0, !0)
},
resolvePath: function(a, b, c, d) {
var e = this;
if (this.options.strict || this.options.assumeObjects) return void this.push(f(this.options.strict, this, b, a));
for (var g = b.length; g > c; c++) this.replaceStack(function(f) {
var g = e.nameLookup(f, b[c], a);
return d ? [" && ", g] : [" != null ? ", g, " : ", f]
})
},
resolvePossibleLambda: function() {
this.push([this.aliasable("this.lambda"), "(", this.popStack(), ", ", this.contextName(0), ")"])
},
pushStringParam: function(a, b) {
this.pushContext(), this.pushString(b), "SubExpression" !== b && ("string" == typeof a ? this.pushString(a) : this.pushStackLiteral(a))
},
emptyHash: function(a) {
this.trackIds && this.push("{}"), this.stringParams && (this.push("{}"), this.push("{}")), this.pushStackLiteral(a ? "undefined" : "{}")
},
pushHash: function() {
this.hash && this.hashes.push(this.hash), this.hash = {
values: [],
types: [],
contexts: [],
ids: []
}
},
popHash: function() {
var a = this.hash;
this.hash = this.hashes.pop(), this.trackIds && this.push(this.objectLiteral(a.ids)), this.stringParams && (this.push(this.objectLiteral(a.contexts)), this.push(this.objectLiteral(a.types))), this.push(this.objectLiteral(a.values))
},
pushString: function(a) {
this.pushStackLiteral(this.quotedString(a))
},
pushLiteral: function(a) {
this.pushStackLiteral(a)
},
pushProgram: function(a) {
null != a ? this.pushStackLiteral(this.programExpression(a)) : this.pushStackLiteral(null)
},
invokeHelper: function(a, b, c) {
var d = this.popStack(),
e = this.setupHelper(a, b),
f = c ? [e.name, " || "] : "",
g = ["("].concat(f, d);
this.options.strict || g.push(" || ", this.aliasable("helpers.helperMissing")), g.push(")"), this.push(this.source.functionCall(g, "call", e.callParams))
},
invokeKnownHelper: function(a, b) {
var c = this.setupHelper(a, b);
this.push(this.source.functionCall(c.name, "call", c.callParams))
},
invokeAmbiguous: function(a, b) {
this.useRegister("helper");
var c = this.popStack();
this.emptyHash();
var d = this.setupHelper(0, a, b),
e = this.lastHelper = this.nameLookup("helpers", a, "helper"),
f = ["(", "(helper = ", e, " || ", c, ")"];
this.options.strict || (f[0] = "(helper = ", f.push(" != null ? helper : ", this.aliasable("helpers.helperMissing"))), this.push(["(", f, d.paramsInit ? ["),(", d.paramsInit] : [], "),", "(typeof helper === ", this.aliasable('"function"'), " ? ", this.source.functionCall("helper", "call", d.callParams), " : helper))"])
},
invokePartial: function(a, b, c) {
var d = [],
e = this.setupParams(b, 1, d, !1);
a && (b = this.popStack(), delete e.name), c && (e.indent = JSON.stringify(c)), e.helpers = "helpers", e.partials = "partials", a ? d.unshift(b) : d.unshift(this.nameLookup("partials", b, "partial")), this.options.compat && (e.depths = "depths"), e = this.objectLiteral(e), d.push(e), this.push(this.source.functionCall("this.invokePartial", "", d))
},
assignToHash: function(a) {
var b = this.popStack(),
c = void 0,
d = void 0,
e = void 0;
this.trackIds && (e = this.popStack()), this.stringParams && (d = this.popStack(), c = this.popStack());
var f = this.hash;
c && (f.contexts[a] = c), d && (f.types[a] = d), e && (f.ids[a] = e), f.values[a] = b
},
pushId: function(a, b, c) {
"BlockParam" === a ? this.pushStackLiteral("blockParams[" + b[0] + "].path[" + b[1] + "]" + (c ? " + " + JSON.stringify("." + c) : "")) : "PathExpression" === a ? this.pushString(b) : "SubExpression" === a ? this.pushStackLiteral("true") : this.pushStackLiteral("null")
},
compiler: e,
compileChildren: function(a, b) {
for (var c = a.children, d = void 0, e = void 0, f = 0, g = c.length; g > f; f++) {
d = c[f], e = new this.compiler;
var h = this.matchExistingProgram(d);
null == h ? (this.context.programs.push(""), h = this.context.programs.length, d.index = h, d.name = "program" + h, this.context.programs[h] = e.compile(d, b, this.context, !this.precompile), this.context.environments[h] = d, this.useDepths = this.useDepths || e.useDepths, this.useBlockParams = this.useBlockParams || e.useBlockParams) : (d.index = h, d.name = "program" + h, this.useDepths = this.useDepths || d.useDepths, this.useBlockParams = this.useBlockParams || d.useBlockParams)
}
},
matchExistingProgram: function(a) {
for (var b = 0, c = this.context.environments.length; c > b; b++) {
var d = this.context.environments[b];
if (d && d.equals(a)) return b
}
},
programExpression: function(a) {
var b = this.environment.children[a],
c = [b.index, "data", b.blockParams];
return (this.useBlockParams || this.useDepths) && c.push("blockParams"), this.useDepths && c.push("depths"), "this.program(" + c.join(", ") + ")"
},
useRegister: function(a) {
this.registers[a] || (this.registers[a] = !0, this.registers.list.push(a))
},
push: function(a) {
return a instanceof d || (a = this.source.wrap(a)), this.inlineStack.push(a), a
},
pushStackLiteral: function(a) {
this.push(new d(a))
},
pushSource: function(a) {
this.pendingContent && (this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent), this.pendingLocation)), this.pendingContent = void 0), a && this.source.push(a)
},
replaceStack: function(a) {
var b = ["("],
c = void 0,
e = void 0,
f = void 0;
if (!this.isInline()) throw new j["default"]("replaceStack on non-inline");
var g = this.popStack(!0);
if (g instanceof d) c = [g.value], b = ["(", c], f = !0;
else {
e = !0;
var h = this.incrStack();
b = ["((", this.push(h), " = ", g, ")"], c = this.topStack()
}
var i = a.call(this, c);
f || this.popStack(), e && this.stackSlot--, this.push(b.concat(i, ")"))
},
incrStack: function() {
return this.stackSlot++, this.stackSlot > this.stackVars.length && this.stackVars.push("stack" + this.stackSlot), this.topStackName()
},
topStackName: function() {
return "stack" + this.stackSlot
},
flushInline: function() {
var a = this.inlineStack;
this.inlineStack = [];
for (var b = 0, c = a.length; c > b; b++) {
var e = a[b];
if (e instanceof d) this.compileStack.push(e);
else {
var f = this.incrStack();
this.pushSource([f, " = ", e, ";"]), this.compileStack.push(f)
}
}
},
isInline: function() {
return this.inlineStack.length
},
popStack: function(a) {
var b = this.isInline(),
c = (b ? this.inlineStack : this.compileStack).pop();
if (!a && c instanceof d) return c.value;
if (!b) {
if (!this.stackSlot) throw new j["default"]("Invalid stack pop");
this.stackSlot--
}
return c
},
topStack: function() {
var a = this.isInline() ? this.inlineStack : this.compileStack,
b = a[a.length - 1];
return b instanceof d ? b.value : b
},
contextName: function(a) {
return this.useDepths && a ? "depths[" + a + "]" : "depth" + a
},
quotedString: function(a) {
return this.source.quotedString(a)
},
objectLiteral: function(a) {
return this.source.objectLiteral(a)
},
aliasable: function(a) {
var b = this.aliases[a];
return b ? (b.referenceCount++, b) : (b = this.aliases[a] = this.source.wrap(a), b.aliasable = !0, b.referenceCount = 1, b)
},
setupHelper: function(a, b, c) {
var d = [],
e = this.setupHelperArgs(b, a, d, c),
f = this.nameLookup("helpers", b, "helper");
return {
params: d,
paramsInit: e,
name: f,
callParams: [this.contextName(0)].concat(d)
}
},
setupParams: function(a, b, c) {
var d = {},
e = [],
f = [],
g = [],
h = void 0;
d.name = this.quotedString(a), d.hash = this.popStack(), this.trackIds && (d.hashIds = this.popStack()), this.stringParams && (d.hashTypes = this.popStack(), d.hashContexts = this.popStack());
var i = this.popStack(),
j = this.popStack();
(j || i) && (d.fn = j || "this.noop", d.inverse = i || "this.noop");
for (var k = b; k--;) h = this.popStack(), c[k] = h, this.trackIds && (g[k] = this.popStack()), this.stringParams && (f[k] = this.popStack(), e[k] = this.popStack());
return this.trackIds && (d.ids = this.source.generateArray(g)), this.stringParams && (d.types = this.source.generateArray(f), d.contexts = this.source.generateArray(e)), this.options.data && (d.data = "data"), this.useBlockParams && (d.blockParams = "blockParams"), d
},
setupHelperArgs: function(a, b, c, d) {
var e = this.setupParams(a, b, c, !0);
return e = this.objectLiteral(e), d ? (this.useRegister("options"), c.push("options"), ["options=", e]) : (c.push(e), "")
}
},
function() {
for (var a = "break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "), b = e.RESERVED_WORDS = {}, c = 0, d = a.length; d > c; c++) b[a[c]] = !0
}(), e.isValidJavaScriptVariableName = function(a) {
return !e.RESERVED_WORDS[a] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(a)
}, c["default"] = e, b.exports = c["default"]
}, {
"../base": 25,
"../exception": 36,
"../utils": 40,
"./code-gen": 28
}
],
32: [
function(a, b, c) {
"use strict";
c.__esModule = !0;
var d = function() {
function a() {
this.yy = {}
}
var b = {
trace: function() {},
yy: {},
symbols_: {
error: 2,
root: 3,
program: 4,
EOF: 5,
program_repetition0: 6,
statement: 7,
mustache: 8,
block: 9,
rawBlock: 10,
partial: 11,
content: 12,
COMMENT: 13,
CONTENT: 14,
openRawBlock: 15,
END_RAW_BLOCK: 16,
OPEN_RAW_BLOCK: 17,
helperName: 18,
openRawBlock_repetition0: 19,
openRawBlock_option0: 20,
CLOSE_RAW_BLOCK: 21,
openBlock: 22,
block_option0: 23,
closeBlock: 24,
openInverse: 25,
block_option1: 26,
OPEN_BLOCK: 27,
openBlock_repetition0: 28,
openBlock_option0: 29,
openBlock_option1: 30,
CLOSE: 31,
OPEN_INVERSE: 32,
openInverse_repetition0: 33,
openInverse_option0: 34,
openInverse_option1: 35,
openInverseChain: 36,
OPEN_INVERSE_CHAIN: 37,
openInverseChain_repetition0: 38,
openInverseChain_option0: 39,
openInverseChain_option1: 40,
inverseAndProgram: 41,
INVERSE: 42,
inverseChain: 43,
inverseChain_option0: 44,
OPEN_ENDBLOCK: 45,
OPEN: 46,
mustache_repetition0: 47,
mustache_option0: 48,
OPEN_UNESCAPED: 49,
mustache_repetition1: 50,
mustache_option1: 51,
CLOSE_UNESCAPED: 52,
OPEN_PARTIAL: 53,
partialName: 54,
partial_repetition0: 55,
partial_option0: 56,
param: 57,
sexpr: 58,
OPEN_SEXPR: 59,
sexpr_repetition0: 60,
sexpr_option0: 61,
CLOSE_SEXPR: 62,
hash: 63,
hash_repetition_plus0: 64,
hashSegment: 65,
ID: 66,
EQUALS: 67,
blockParams: 68,
OPEN_BLOCK_PARAMS: 69,
blockParams_repetition_plus0: 70,
CLOSE_BLOCK_PARAMS: 71,
path: 72,
dataName: 73,
STRING: 74,
NUMBER: 75,
BOOLEAN: 76,
UNDEFINED: 77,
NULL: 78,
DATA: 79,
pathSegments: 80,
SEP: 81,
$accept: 0,
$end: 1
},
terminals_: {
2: "error",
5: "EOF",
13: "COMMENT",
14: "CONTENT",
16: "END_RAW_BLOCK",
17: "OPEN_RAW_BLOCK",
21: "CLOSE_RAW_BLOCK",
27: "OPEN_BLOCK",
31: "CLOSE",
32: "OPEN_INVERSE",
37: "OPEN_INVERSE_CHAIN",
42: "INVERSE",
45: "OPEN_ENDBLOCK",
46: "OPEN",
49: "OPEN_UNESCAPED",
52: "CLOSE_UNESCAPED",
53: "OPEN_PARTIAL",
59: "OPEN_SEXPR",
62: "CLOSE_SEXPR",
66: "ID",
67: "EQUALS",
69: "OPEN_BLOCK_PARAMS",
71: "CLOSE_BLOCK_PARAMS",
74: "STRING",
75: "NUMBER",
76: "BOOLEAN",
77: "UNDEFINED",
78: "NULL",
79: "DATA",
81: "SEP"
},
productions_: [0, [3, 2],
[4, 1],
[7, 1],
[7, 1],
[7, 1],
[7, 1],
[7, 1],
[7, 1],
[12, 1],
[10, 3],
[15, 5],
[9, 4],
[9, 4],
[22, 6],
[25, 6],
[36, 6],
[41, 2],
[43, 3],
[43, 1],
[24, 3],
[8, 5],
[8, 5],
[11, 5],
[57, 1],
[57, 1],
[58, 5],
[63, 1],
[65, 3],
[68, 3],
[18, 1],
[18, 1],
[18, 1],
[18, 1],
[18, 1],
[18, 1],
[18, 1],
[54, 1],
[54, 1],
[73, 2],
[72, 1],
[80, 3],
[80, 1],
[6, 0],
[6, 2],
[19, 0],
[19, 2],
[20, 0],
[20, 1],
[23, 0],
[23, 1],
[26, 0],
[26, 1],
[28, 0],
[28, 2],
[29, 0],
[29, 1],
[30, 0],
[30, 1],
[33, 0],
[33, 2],
[34, 0],
[34, 1],
[35, 0],
[35, 1],
[38, 0],
[38, 2],
[39, 0],
[39, 1],
[40, 0],
[40, 1],
[44, 0],
[44, 1],
[47, 0],
[47, 2],
[48, 0],
[48, 1],
[50, 0],
[50, 2],
[51, 0],
[51, 1],
[55, 0],
[55, 2],
[56, 0],
[56, 1],
[60, 0],
[60, 2],
[61, 0],
[61, 1],
[64, 1],
[64, 2],
[70, 1],
[70, 2]
],
performAction: function(a, b, c, d, e, f, g) {
var h = f.length - 1;
switch (e) {
case 1:
return f[h - 1];
case 2:
this.$ = new d.Program(f[h], null, {}, d.locInfo(this._$));
break;
case 3:
this.$ = f[h];
break;
case 4:
this.$ = f[h];
break;
case 5:
this.$ = f[h];
break;
case 6:
this.$ = f[h];
break;
case 7:
this.$ = f[h];
break;
case 8:
this.$ = new d.CommentStatement(d.stripComment(f[h]), d.stripFlags(f[h], f[h]), d.locInfo(this._$));
break;
case 9:
this.$ = new d.ContentStatement(f[h], d.locInfo(this._$));
break;
case 10:
this.$ = d.prepareRawBlock(f[h - 2], f[h - 1], f[h], this._$);
break;
case 11:
this.$ = {
path: f[h - 3],
params: f[h - 2],
hash: f[h - 1]
};
break;
case 12:
this.$ = d.prepareBlock(f[h - 3], f[h - 2], f[h - 1], f[h], !1, this._$);
break;
case 13:
this.$ = d.prepareBlock(f[h - 3], f[h - 2], f[h - 1], f[h], !0, this._$);
break;
case 14:
this.$ = {
path: f[h - 4],
params: f[h - 3],
hash: f[h - 2],
blockParams: f[h - 1],
strip: d.stripFlags(f[h - 5], f[h])
};
break;
case 15:
this.$ = {
path: f[h - 4],
params: f[h - 3],
hash: f[h - 2],
blockParams: f[h - 1],
strip: d.stripFlags(f[h - 5], f[h])
};
break;
case 16:
this.$ = {
path: f[h - 4],
params: f[h - 3],
hash: f[h - 2],
blockParams: f[h - 1],
strip: d.stripFlags(f[h - 5], f[h])
};
break;
case 17:
this.$ = {
strip: d.stripFlags(f[h - 1], f[h - 1]),
program: f[h]
};
break;
case 18:
var i = d.prepareBlock(f[h - 2], f[h - 1], f[h], f[h], !1, this._$),
j = new d.Program([i], null, {}, d.locInfo(this._$));
j.chained = !0, this.$ = {
strip: f[h - 2].strip,
program: j,
chain: !0
};
break;
case 19:
this.$ = f[h];
break;
case 20:
this.$ = {
path: f[h - 1],
strip: d.stripFlags(f[h - 2], f[h])
};
break;
case 21:
this.$ = d.prepareMustache(f[h - 3], f[h - 2], f[h - 1], f[h - 4], d.stripFlags(f[h - 4], f[h]), this._$);
break;
case 22:
this.$ = d.prepareMustache(f[h - 3], f[h - 2], f[h - 1], f[h - 4], d.stripFlags(f[h - 4], f[h]), this._$);
break;
case 23:
this.$ = new d.PartialStatement(f[h - 3], f[h - 2], f[h - 1], d.stripFlags(f[h - 4], f[h]), d.locInfo(this._$));
break;
case 24:
this.$ = f[h];
break;
case 25:
this.$ = f[h];
break;
case 26:
this.$ = new d.SubExpression(f[h - 3], f[h - 2], f[h - 1], d.locInfo(this._$));
break;
case 27:
this.$ = new d.Hash(f[h], d.locInfo(this._$));
break;
case 28:
this.$ = new d.HashPair(d.id(f[h - 2]), f[h], d.locInfo(this._$));
break;
case 29:
this.$ = d.id(f[h - 1]);
break;
case 30:
this.$ = f[h];
break;
case 31:
this.$ = f[h];
break;
case 32:
this.$ = new d.StringLiteral(f[h], d.locInfo(this._$));
break;
case 33:
this.$ = new d.NumberLiteral(f[h], d.locInfo(this._$));
break;
case 34:
this.$ = new d.BooleanLiteral(f[h], d.locInfo(this._$));
break;
case 35:
this.$ = new d.UndefinedLiteral(d.locInfo(this._$));
break;
case 36:
this.$ = new d.NullLiteral(d.locInfo(this._$));
break;
case 37:
this.$ = f[h];
break;
case 38:
this.$ = f[h];
break;
case 39:
this.$ = d.preparePath(!0, f[h], this._$);
break;
case 40:
this.$ = d.preparePath(!1, f[h], this._$);
break;
case 41:
f[h - 2].push({
part: d.id(f[h]),
original: f[h],
separator: f[h - 1]
}), this.$ = f[h - 2];
break;
case 42:
this.$ = [{
part: d.id(f[h]),
original: f[h]
}];
break;
case 43:
this.$ = [];
break;
case 44:
f[h - 1].push(f[h]);
break;
case 45:
this.$ = [];
break;
case 46:
f[h - 1].push(f[h]);
break;
case 53:
this.$ = [];
break;
case 54:
f[h - 1].push(f[h]);
break;
case 59:
this.$ = [];
break;
case 60:
f[h - 1].push(f[h]);
break;
case 65:
this.$ = [];
break;
case 66:
f[h - 1].push(f[h]);
break;
case 73:
this.$ = [];
break;
case 74:
f[h - 1].push(f[h]);
break;
case 77:
this.$ = [];
break;
case 78:
f[h - 1].push(f[h]);
break;
case 81:
this.$ = [];
break;
case 82:
f[h - 1].push(f[h]);
break;
case 85:
this.$ = [];
break;
case 86:
f[h - 1].push(f[h]);
break;
case 89:
this.$ = [f[h]];
break;
case 90:
f[h - 1].push(f[h]);
break;
case 91:
this.$ = [f[h]];
break;
case 92:
f[h - 1].push(f[h])
}
},
table: [{
3: 1,
4: 2,
5: [2, 43],
6: 3,
13: [2, 43],
14: [2, 43],
17: [2, 43],
27: [2, 43],
32: [2, 43],
46: [2, 43],
49: [2, 43],
53: [2, 43]
}, {
1: [3]
}, {
5: [1, 4]
}, {
5: [2, 2],
7: 5,
8: 6,
9: 7,
10: 8,
11: 9,
12: 10,
13: [1, 11],
14: [1, 18],
15: 16,
17: [1, 21],
22: 14,
25: 15,
27: [1, 19],
32: [1, 20],
37: [2, 2],
42: [2, 2],
45: [2, 2],
46: [1, 12],
49: [1, 13],
53: [1, 17]
}, {
1: [2, 1]
}, {
5: [2, 44],
13: [2, 44],
14: [2, 44],
17: [2, 44],
27: [2, 44],
32: [2, 44],
37: [2, 44],
42: [2, 44],
45: [2, 44],
46: [2, 44],
49: [2, 44],
53: [2, 44]
}, {
5: [2, 3],
13: [2, 3],
14: [2, 3],
17: [2, 3],
27: [2, 3],
32: [2, 3],
37: [2, 3],
42: [2, 3],
45: [2, 3],
46: [2, 3],
49: [2, 3],
53: [2, 3]
}, {
5: [2, 4],
13: [2, 4],
14: [2, 4],
17: [2, 4],
27: [2, 4],
32: [2, 4],
37: [2, 4],
42: [2, 4],
45: [2, 4],
46: [2, 4],
49: [2, 4],
53: [2, 4]
}, {
5: [2, 5],
13: [2, 5],
14: [2, 5],
17: [2, 5],
27: [2, 5],
32: [2, 5],
37: [2, 5],
42: [2, 5],
45: [2, 5],
46: [2, 5],
49: [2, 5],
53: [2, 5]
}, {
5: [2, 6],
13: [2, 6],
14: [2, 6],
17: [2, 6],
27: [2, 6],
32: [2, 6],
37: [2, 6],
42: [2, 6],
45: [2, 6],
46: [2, 6],
49: [2, 6],
53: [2, 6]
}, {
5: [2, 7],
13: [2, 7],
14: [2, 7],
17: [2, 7],
27: [2, 7],
32: [2, 7],
37: [2, 7],
42: [2, 7],
45: [2, 7],
46: [2, 7],
49: [2, 7],
53: [2, 7]
}, {
5: [2, 8],
13: [2, 8],
14: [2, 8],
17: [2, 8],
27: [2, 8],
32: [2, 8],
37: [2, 8],
42: [2, 8],
45: [2, 8],
46: [2, 8],
49: [2, 8],
53: [2, 8]
}, {
18: 22,
66: [1, 32],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
18: 33,
66: [1, 32],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
4: 34,
6: 3,
13: [2, 43],
14: [2, 43],
17: [2, 43],
27: [2, 43],
32: [2, 43],
37: [2, 43],
42: [2, 43],
45: [2, 43],
46: [2, 43],
49: [2, 43],
53: [2, 43]
}, {
4: 35,
6: 3,
13: [2, 43],
14: [2, 43],
17: [2, 43],
27: [2, 43],
32: [2, 43],
42: [2, 43],
45: [2, 43],
46: [2, 43],
49: [2, 43],
53: [2, 43]
}, {
12: 36,
14: [1, 18]
}, {
18: 38,
54: 37,
58: 39,
59: [1, 40],
66: [1, 32],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
5: [2, 9],
13: [2, 9],
14: [2, 9],
16: [2, 9],
17: [2, 9],
27: [2, 9],
32: [2, 9],
37: [2, 9],
42: [2, 9],
45: [2, 9],
46: [2, 9],
49: [2, 9],
53: [2, 9]
}, {
18: 41,
66: [1, 32],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
18: 42,
66: [1, 32],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
18: 43,
66: [1, 32],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
31: [2, 73],
47: 44,
59: [2, 73],
66: [2, 73],
74: [2, 73],
75: [2, 73],
76: [2, 73],
77: [2, 73],
78: [2, 73],
79: [2, 73]
}, {
21: [2, 30],
31: [2, 30],
52: [2, 30],
59: [2, 30],
62: [2, 30],
66: [2, 30],
69: [2, 30],
74: [2, 30],
75: [2, 30],
76: [2, 30],
77: [2, 30],
78: [2, 30],
79: [2, 30]
}, {
21: [2, 31],
31: [2, 31],
52: [2, 31],
59: [2, 31],
62: [2, 31],
66: [2, 31],
69: [2, 31],
74: [2, 31],
75: [2, 31],
76: [2, 31],
77: [2, 31],
78: [2, 31],
79: [2, 31]
}, {
21: [2, 32],
31: [2, 32],
52: [2, 32],
59: [2, 32],
62: [2, 32],
66: [2, 32],
69: [2, 32],
74: [2, 32],
75: [2, 32],
76: [2, 32],
77: [2, 32],
78: [2, 32],
79: [2, 32]
}, {
21: [2, 33],
31: [2, 33],
52: [2, 33],
59: [2, 33],
62: [2, 33],
66: [2, 33],
69: [2, 33],
74: [2, 33],
75: [2, 33],
76: [2, 33],
77: [2, 33],
78: [2, 33],
79: [2, 33]
}, {
21: [2, 34],
31: [2, 34],
52: [2, 34],
59: [2, 34],
62: [2, 34],
66: [2, 34],
69: [2, 34],
74: [2, 34],
75: [2, 34],
76: [2, 34],
77: [2, 34],
78: [2, 34],
79: [2, 34]
}, {
21: [2, 35],
31: [2, 35],
52: [2, 35],
59: [2, 35],
62: [2, 35],
66: [2, 35],
69: [2, 35],
74: [2, 35],
75: [2, 35],
76: [2, 35],
77: [2, 35],
78: [2, 35],
79: [2, 35]
}, {
21: [2, 36],
31: [2, 36],
52: [2, 36],
59: [2, 36],
62: [2, 36],
66: [2, 36],
69: [2, 36],
74: [2, 36],
75: [2, 36],
76: [2, 36],
77: [2, 36],
78: [2, 36],
79: [2, 36]
}, {
21: [2, 40],
31: [2, 40],
52: [2, 40],
59: [2, 40],
62: [2, 40],
66: [2, 40],
69: [2, 40],
74: [2, 40],
75: [2, 40],
76: [2, 40],
77: [2, 40],
78: [2, 40],
79: [2, 40],
81: [1, 45]
}, {
66: [1, 32],
80: 46
}, {
21: [2, 42],
31: [2, 42],
52: [2, 42],
59: [2, 42],
62: [2, 42],
66: [2, 42],
69: [2, 42],
74: [2, 42],
75: [2, 42],
76: [2, 42],
77: [2, 42],
78: [2, 42],
79: [2, 42],
81: [2, 42]
}, {
50: 47,
52: [2, 77],
59: [2, 77],
66: [2, 77],
74: [2, 77],
75: [2, 77],
76: [2, 77],
77: [2, 77],
78: [2, 77],
79: [2, 77]
}, {
23: 48,
36: 50,
37: [1, 52],
41: 51,
42: [1, 53],
43: 49,
45: [2, 49]
}, {
26: 54,
41: 55,
42: [1, 53],
45: [2, 51]
}, {
16: [1, 56]
}, {
31: [2, 81],
55: 57,
59: [2, 81],
66: [2, 81],
74: [2, 81],
75: [2, 81],
76: [2, 81],
77: [2, 81],
78: [2, 81],
79: [2, 81]
}, {
31: [2, 37],
59: [2, 37],
66: [2, 37],
74: [2, 37],
75: [2, 37],
76: [2, 37],
77: [2, 37],
78: [2, 37],
79: [2, 37]
}, {
31: [2, 38],
59: [2, 38],
66: [2, 38],
74: [2, 38],
75: [2, 38],
76: [2, 38],
77: [2, 38],
78: [2, 38],
79: [2, 38]
}, {
18: 58,
66: [1, 32],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
28: 59,
31: [2, 53],
59: [2, 53],
66: [2, 53],
69: [2, 53],
74: [2, 53],
75: [2, 53],
76: [2, 53],
77: [2, 53],
78: [2, 53],
79: [2, 53]
}, {
31: [2, 59],
33: 60,
59: [2, 59],
66: [2, 59],
69: [2, 59],
74: [2, 59],
75: [2, 59],
76: [2, 59],
77: [2, 59],
78: [2, 59],
79: [2, 59]
}, {
19: 61,
21: [2, 45],
59: [2, 45],
66: [2, 45],
74: [2, 45],
75: [2, 45],
76: [2, 45],
77: [2, 45],
78: [2, 45],
79: [2, 45]
}, {
18: 65,
31: [2, 75],
48: 62,
57: 63,
58: 66,
59: [1, 40],
63: 64,
64: 67,
65: 68,
66: [1, 69],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
66: [1, 70]
}, {
21: [2, 39],
31: [2, 39],
52: [2, 39],
59: [2, 39],
62: [2, 39],
66: [2, 39],
69: [2, 39],
74: [2, 39],
75: [2, 39],
76: [2, 39],
77: [2, 39],
78: [2, 39],
79: [2, 39],
81: [1, 45]
}, {
18: 65,
51: 71,
52: [2, 79],
57: 72,
58: 66,
59: [1, 40],
63: 73,
64: 67,
65: 68,
66: [1, 69],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
24: 74,
45: [1, 75]
}, {
45: [2, 50]
}, {
4: 76,
6: 3,
13: [2, 43],
14: [2, 43],
17: [2, 43],
27: [2, 43],
32: [2, 43],
37: [2, 43],
42: [2, 43],
45: [2, 43],
46: [2, 43],
49: [2, 43],
53: [2, 43]
}, {
45: [2, 19]
}, {
18: 77,
66: [1, 32],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
4: 78,
6: 3,
13: [2, 43],
14: [2, 43],
17: [2, 43],
27: [2, 43],
32: [2, 43],
45: [2, 43],
46: [2, 43],
49: [2, 43],
53: [2, 43]
}, {
24: 79,
45: [1, 75]
}, {
45: [2, 52]
}, {
5: [2, 10],
13: [2, 10],
14: [2, 10],
17: [2, 10],
27: [2, 10],
32: [2, 10],
37: [2, 10],
42: [2, 10],
45: [2, 10],
46: [2, 10],
49: [2, 10],
53: [2, 10]
}, {
18: 65,
31: [2, 83],
56: 80,
57: 81,
58: 66,
59: [1, 40],
63: 82,
64: 67,
65: 68,
66: [1, 69],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
59: [2, 85],
60: 83,
62: [2, 85],
66: [2, 85],
74: [2, 85],
75: [2, 85],
76: [2, 85],
77: [2, 85],
78: [2, 85],
79: [2, 85]
}, {
18: 65,
29: 84,
31: [2, 55],
57: 85,
58: 66,
59: [1, 40],
63: 86,
64: 67,
65: 68,
66: [1, 69],
69: [2, 55],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
18: 65,
31: [2, 61],
34: 87,
57: 88,
58: 66,
59: [1, 40],
63: 89,
64: 67,
65: 68,
66: [1, 69],
69: [2, 61],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
18: 65,
20: 90,
21: [2, 47],
57: 91,
58: 66,
59: [1, 40],
63: 92,
64: 67,
65: 68,
66: [1, 69],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
31: [1, 93]
}, {
31: [2, 74],
59: [2, 74],
66: [2, 74],
74: [2, 74],
75: [2, 74],
76: [2, 74],
77: [2, 74],
78: [2, 74],
79: [2, 74]
}, {
31: [2, 76]
}, {
21: [2, 24],
31: [2, 24],
52: [2, 24],
59: [2, 24],
62: [2, 24],
66: [2, 24],
69: [2, 24],
74: [2, 24],
75: [2, 24],
76: [2, 24],
77: [2, 24],
78: [2, 24],
79: [2, 24]
}, {
21: [2, 25],
31: [2, 25],
52: [2, 25],
59: [2, 25],
62: [2, 25],
66: [2, 25],
69: [2, 25],
74: [2, 25],
75: [2, 25],
76: [2, 25],
77: [2, 25],
78: [2, 25],
79: [2, 25]
}, {
21: [2, 27],
31: [2, 27],
52: [2, 27],
62: [2, 27],
65: 94,
66: [1, 95],
69: [2, 27]
}, {
21: [2, 89],
31: [2, 89],
52: [2, 89],
62: [2, 89],
66: [2, 89],
69: [2, 89]
}, {
21: [2, 42],
31: [2, 42],
52: [2, 42],
59: [2, 42],
62: [2, 42],
66: [2, 42],
67: [1, 96],
69: [2, 42],
74: [2, 42],
75: [2, 42],
76: [2, 42],
77: [2, 42],
78: [2, 42],
79: [2, 42],
81: [2, 42]
}, {
21: [2, 41],
31: [2, 41],
52: [2, 41],
59: [2, 41],
62: [2, 41],
66: [2, 41],
69: [2, 41],
74: [2, 41],
75: [2, 41],
76: [2, 41],
77: [2, 41],
78: [2, 41],
79: [2, 41],
81: [2, 41]
}, {
52: [1, 97]
}, {
52: [2, 78],
59: [2, 78],
66: [2, 78],
74: [2, 78],
75: [2, 78],
76: [2, 78],
77: [2, 78],
78: [2, 78],
79: [2, 78]
}, {
52: [2, 80]
}, {
5: [2, 12],
13: [2, 12],
14: [2, 12],
17: [2, 12],
27: [2, 12],
32: [2, 12],
37: [2, 12],
42: [2, 12],
45: [2, 12],
46: [2, 12],
49: [2, 12],
53: [2, 12]
}, {
18: 98,
66: [1, 32],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
36: 50,
37: [1, 52],
41: 51,
42: [1, 53],
43: 100,
44: 99,
45: [2, 71]
}, {
31: [2, 65],
38: 101,
59: [2, 65],
66: [2, 65],
69: [2, 65],
74: [2, 65],
75: [2, 65],
76: [2, 65],
77: [2, 65],
78: [2, 65],
79: [2, 65]
}, {
45: [2, 17]
}, {
5: [2, 13],
13: [2, 13],
14: [2, 13],
17: [2, 13],
27: [2, 13],
32: [2, 13],
37: [2, 13],
42: [2, 13],
45: [2, 13],
46: [2, 13],
49: [2, 13],
53: [2, 13]
}, {
31: [1, 102]
}, {
31: [2, 82],
59: [2, 82],
66: [2, 82],
74: [2, 82],
75: [2, 82],
76: [2, 82],
77: [2, 82],
78: [2, 82],
79: [2, 82]
}, {
31: [2, 84]
}, {
18: 65,
57: 104,
58: 66,
59: [1, 40],
61: 103,
62: [2, 87],
63: 105,
64: 67,
65: 68,
66: [1, 69],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
30: 106,
31: [2, 57],
68: 107,
69: [1, 108]
}, {
31: [2, 54],
59: [2, 54],
66: [2, 54],
69: [2, 54],
74: [2, 54],
75: [2, 54],
76: [2, 54],
77: [2, 54],
78: [2, 54],
79: [2, 54]
}, {
31: [2, 56],
69: [2, 56]
}, {
31: [2, 63],
35: 109,
68: 110,
69: [1, 108]
}, {
31: [2, 60],
59: [2, 60],
66: [2, 60],
69: [2, 60],
74: [2, 60],
75: [2, 60],
76: [2, 60],
77: [2, 60],
78: [2, 60],
79: [2, 60]
}, {
31: [2, 62],
69: [2, 62]
}, {
21: [1, 111]
}, {
21: [2, 46],
59: [2, 46],
66: [2, 46],
74: [2, 46],
75: [2, 46],
76: [2, 46],
77: [2, 46],
78: [2, 46],
79: [2, 46]
}, {
21: [2, 48]
}, {
5: [2, 21],
13: [2, 21],
14: [2, 21],
17: [2, 21],
27: [2, 21],
32: [2, 21],
37: [2, 21],
42: [2, 21],
45: [2, 21],
46: [2, 21],
49: [2, 21],
53: [2, 21]
}, {
21: [2, 90],
31: [2, 90],
52: [2, 90],
62: [2, 90],
66: [2, 90],
69: [2, 90]
}, {
67: [1, 96]
}, {
18: 65,
57: 112,
58: 66,
59: [1, 40],
66: [1, 32],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
5: [2, 22],
13: [2, 22],
14: [2, 22],
17: [2, 22],
27: [2, 22],
32: [2, 22],
37: [2, 22],
42: [2, 22],
45: [2, 22],
46: [2, 22],
49: [2, 22],
53: [2, 22]
}, {
31: [1, 113]
}, {
45: [2, 18]
}, {
45: [2, 72]
}, {
18: 65,
31: [2, 67],
39: 114,
57: 115,
58: 66,
59: [1, 40],
63: 116,
64: 67,
65: 68,
66: [1, 69],
69: [2, 67],
72: 23,
73: 24,
74: [1, 25],
75: [1, 26],
76: [1, 27],
77: [1, 28],
78: [1, 29],
79: [1, 31],
80: 30
}, {
5: [2, 23],
13: [2, 23],
14: [2, 23],
17: [2, 23],
27: [2, 23],
32: [2, 23],
37: [2, 23],
42: [2, 23],
45: [2, 23],
46: [2, 23],
49: [2, 23],
53: [2, 23]
}, {
62: [1, 117]
}, {
59: [2, 86],
62: [2, 86],
66: [2, 86],
74: [2, 86],
75: [2, 86],
76: [2, 86],
77: [2, 86],
78: [2, 86],
79: [2, 86]
}, {
62: [2, 88]
}, {
31: [1, 118]
}, {
31: [2, 58]
}, {
66: [1, 120],
70: 119
}, {
31: [1, 121]
}, {
31: [2, 64]
}, {
14: [2, 11]
}, {
21: [2, 28],
31: [2, 28],
52: [2, 28],
62: [2, 28],
66: [2, 28],
69: [2, 28]
}, {
5: [2, 20],
13: [2, 20],
14: [2, 20],
17: [2, 20],
27: [2, 20],
32: [2, 20],
37: [2, 20],
42: [2, 20],
45: [2, 20],
46: [2, 20],
49: [2, 20],
53: [2, 20]
}, {
31: [2, 69],
40: 122,
68: 123,
69: [1, 108]
}, {
31: [2, 66],
59: [2, 66],
66: [2, 66],
69: [2, 66],
74: [2, 66],
75: [2, 66],
76: [2, 66],
77: [2, 66],
78: [2, 66],
79: [2, 66]
}, {
31: [2, 68],
69: [2, 68]
}, {
21: [2, 26],
31: [2, 26],
52: [2, 26],
59: [2, 26],
62: [2, 26],
66: [2, 26],
69: [2, 26],
74: [2, 26],
75: [2, 26],
76: [2, 26],
77: [2, 26],
78: [2, 26],
79: [2, 26]
}, {
13: [2, 14],
14: [2, 14],
17: [2, 14],
27: [2, 14],
32: [2, 14],
37: [2, 14],
42: [2, 14],
45: [2, 14],
46: [2, 14],
49: [2, 14],
53: [2, 14]
}, {
66: [1, 125],
71: [1, 124]
}, {
66: [2, 91],
71: [2, 91]
}, {
13: [2, 15],
14: [2, 15],
17: [2, 15],
27: [2, 15],
32: [2, 15],
42: [2, 15],
45: [2, 15],
46: [2, 15],
49: [2, 15],
53: [2, 15]
}, {
31: [1, 126]
}, {
31: [2, 70]
}, {
31: [2, 29]
}, {
66: [2, 92],
71: [2, 92]
}, {
13: [2, 16],
14: [2, 16],
17: [2, 16],
27: [2, 16],
32: [2, 16],
37: [2, 16],
42: [2, 16],
45: [2, 16],
46: [2, 16],
49: [2, 16],
53: [2, 16]
}],
defaultActions: {
4: [2, 1],
49: [2, 50],
51: [2, 19],
55: [2, 52],
64: [2, 76],
73: [2, 80],
78: [2, 17],
82: [2, 84],
92: [2, 48],
99: [2, 18],
100: [2, 72],
105: [2, 88],
107: [2, 58],
110: [2, 64],
111: [2, 11],
123: [2, 70],
124: [2, 29]
},
parseError: function(a, b) {
throw new Error(a)
},
parse: function(a) {
function b() {
var a;
return a = c.lexer.lex() || 1, "number" != typeof a && (a = c.symbols_[a] || a), a
}
var c = this,
d = [0],
e = [null],
f = [],
g = this.table,
h = "",
i = 0,
j = 0,
k = 0;
this.lexer.setInput(a), this.lexer.yy = this.yy, this.yy.lexer = this.lexer, this.yy.parser = this, "undefined" == typeof this.lexer.yylloc && (this.lexer.yylloc = {});
var l = this.lexer.yylloc;
f.push(l);
var m = this.lexer.options && this.lexer.options.ranges;
"function" == typeof this.yy.parseError && (this.parseError = this.yy.parseError);
for (var n, o, p, q, r, s, t, u, v, w = {};;) {
if (p = d[d.length - 1], this.defaultActions[p] ? q = this.defaultActions[p] : ((null === n || "undefined" == typeof n) && (n = b()), q = g[p] && g[p][n]), "undefined" == typeof q || !q.length || !q[0]) {
var x = "";
if (!k) {
v = [];
for (s in g[p]) this.terminals_[s] && s > 2 && v.push("'" + this.terminals_[s] + "'");
x = this.lexer.showPosition ? "Parse error on line " + (i + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + v.join(", ") + ", got '" + (this.terminals_[n] || n) + "'" : "Parse error on line " + (i + 1) + ": Unexpected " + (1 == n ? "end of input" : "'" + (this.terminals_[n] || n) + "'"), this.parseError(x, {
text: this.lexer.match,
token: this.terminals_[n] || n,
line: this.lexer.yylineno,
loc: l,
expected: v
})
}
}
if (q[0] instanceof Array && q.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + p + ", token: " + n);
switch (q[0]) {
case 1:
d.push(n), e.push(this.lexer.yytext), f.push(this.lexer.yylloc), d.push(q[1]), n = null, o ? (n = o, o = null) : (j = this.lexer.yyleng, h = this.lexer.yytext, i = this.lexer.yylineno, l = this.lexer.yylloc, k > 0 && k--);
break;
case 2:
if (t = this.productions_[q[1]][1], w.$ = e[e.length - t], w._$ = {
first_line: f[f.length - (t || 1)].first_line,
last_line: f[f.length - 1].last_line,
first_column: f[f.length - (t || 1)].first_column,
last_column: f[f.length - 1].last_column
}, m && (w._$.range = [f[f.length - (t || 1)].range[0], f[f.length - 1].range[1]]), r = this.performAction.call(w, h, j, i, this.yy, q[1], e, f), "undefined" != typeof r) return r;
t && (d = d.slice(0, -1 * t * 2), e = e.slice(0, -1 * t), f = f.slice(0, -1 * t)), d.push(this.productions_[q[1]][0]), e.push(w.$), f.push(w._$), u = g[d[d.length - 2]][d[d.length - 1]], d.push(u);
break;
case 3:
return !0
}
}
return !0
}
},
c = function() {
var a = {
EOF: 1,
parseError: function(a, b) {
if (!this.yy.parser) throw new Error(a);
this.yy.parser.parseError(a, b)
},
setInput: function(a) {
return this._input = a, this._more = this._less = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = {
first_line: 1,
first_column: 0,
last_line: 1,
last_column: 0
}, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this
},
input: function() {
var a = this._input[0];
this.yytext += a, this.yyleng++, this.offset++, this.match += a, this.matched += a;
var b = a.match(/(?:\r\n?|\n).*/g);
return b ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), a
},
unput: function(a) {
var b = a.length,
c = a.split(/(?:\r\n?|\n)/g);
this._input = a + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - b - 1), this.offset -= b;
var d = this.match.split(/(?:\r\n?|\n)/g);
this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), c.length - 1 && (this.yylineno -= c.length - 1);
var e = this.yylloc.range;
return this.yylloc = {
first_line: this.yylloc.first_line,
last_line: this.yylineno + 1,
first_column: this.yylloc.first_column,
last_column: c ? (c.length === d.length ? this.yylloc.first_column : 0) + d[d.length - c.length].length - c[0].length : this.yylloc.first_column - b
}, this.options.ranges && (this.yylloc.range = [e[0], e[0] + this.yyleng - b]), this
},
more: function() {
return this._more = !0, this
},
less: function(a) {
this.unput(this.match.slice(a))
},
pastInput: function() {
var a = this.matched.substr(0, this.matched.length - this.match.length);
return (a.length > 20 ? "..." : "") + a.substr(-20).replace(/\n/g, "")
},
upcomingInput: function() {
var a = this.match;
return a.length < 20 && (a += this._input.substr(0, 20 - a.length)), (a.substr(0, 20) + (a.length > 20 ? "..." : "")).replace(/\n/g, "")
},
showPosition: function() {
var a = this.pastInput(),
b = new Array(a.length + 1).join("-");
return a + this.upcomingInput() + "\n" + b + "^"
},
next: function() {
if (this.done) return this.EOF;
this._input || (this.done = !0);
var a, b, c, d, e;
this._more || (this.yytext = "", this.match = "");
for (var f = this._currentRules(), g = 0; g < f.length && (c = this._input.match(this.rules[f[g]]), !c || b && !(c[0].length > b[0].length) || (b = c, d = g, this.options.flex)); g++);
return b ? (e = b[0].match(/(?:\r\n?|\n).*/g), e && (this.yylineno += e.length), this.yylloc = {
first_line: this.yylloc.last_line,
last_line: this.yylineno + 1,
first_column: this.yylloc.last_column,
last_column: e ? e[e.length - 1].length - e[e.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + b[0].length
}, this.yytext += b[0], this.match += b[0], this.matches = b, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._input = this._input.slice(b[0].length), this.matched += b[0], a = this.performAction.call(this, this.yy, this, f[d], this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), a ? a : void 0) : "" === this._input ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
text: "",
token: null,
line: this.yylineno
})
},
lex: function() {
var a = this.next();
return "undefined" != typeof a ? a : this.lex()
},
begin: function(a) {
this.conditionStack.push(a)
},
popState: function() {
return this.conditionStack.pop()
},
_currentRules: function() {
return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules
},
topState: function() {
return this.conditionStack[this.conditionStack.length - 2]
},
pushState: function(a) {
this.begin(a)
}
};
return a.options = {}, a.performAction = function(a, b, c, d) {
function e(a, c) {
return b.yytext = b.yytext.substr(a, b.yyleng - c)
}
switch (c) {
case 0:
if ("\\\\" === b.yytext.slice(-2) ? (e(0, 1), this.begin("mu")) : "\\" === b.yytext.slice(-1) ? (e(0, 1), this.begin("emu")) : this.begin("mu"), b.yytext) return 14;
break;
case 1:
return 14;
case 2:
return this.popState(), 14;
case 3:
return b.yytext = b.yytext.substr(5, b.yyleng - 9), this.popState(), 16;
case 4:
return 14;
case 5:
return this.popState(), 13;
case 6:
return 59;
case 7:
return 62;
case 8:
return 17;
case 9:
return this.popState(), this.begin("raw"), 21;
case 10:
return 53;
case 11:
return 27;
case 12:
return 45;
case 13:
return this.popState(), 42;
case 14:
return this.popState(), 42;
case 15:
return 32;
case 16:
return 37;
case 17:
return 49;
case 18:
return 46;
case 19:
this.unput(b.yytext), this.popState(), this.begin("com");
break;
case 20:
return this.popState(), 13;
case 21:
return 46;
case 22:
return 67;
case 23:
return 66;
case 24:
return 66;
case 25:
return 81;
case 26:
break;
case 27:
return this.popState(), 52;
case 28:
return this.popState(), 31;
case 29:
return b.yytext = e(1, 2).replace(/\\"/g, '"'), 74;
case 30:
return b.yytext = e(1, 2).replace(/\\'/g, "'"), 74;
case 31:
return 79;
case 32:
return 76;
case 33:
return 76;
case 34:
return 77;
case 35:
return 78;
case 36:
return 75;
case 37:
return 69;
case 38:
return 71;
case 39:
return 66;
case 40:
return 66;
case 41:
return "INVALID";
case 42:
return 5
}
}, a.rules = [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]*?(?=(\{\{\{\{\/)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[[^\]]*\])/, /^(?:.)/, /^(?:$)/], a.conditions = {
mu: {
rules: [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42],
inclusive: !1
},
emu: {
rules: [2],
inclusive: !1
},
com: {
rules: [5],
inclusive: !1
},
raw: {
rules: [3, 4],
inclusive: !1
},
INITIAL: {
rules: [0, 1, 42],
inclusive: !0
}
}, a
}();
return b.lexer = c, a.prototype = b, b.Parser = a, new a
}();
c["default"] = d, b.exports = c["default"]
}, {}
],
33: [
function(a, b, c) {
"use strict";
function d(a) {
return (new e).accept(a)
}
function e() {
this.padding = 0
}
var f = function(a) {
return a && a.__esModule ? a : {
"default": a
}
};
c.__esModule = !0, c.print = d, c.PrintVisitor = e;
var g = a("./visitor"),
h = f(g);
e.prototype = new h["default"], e.prototype.pad = function(a) {
for (var b = "", c = 0, d = this.padding; d > c; c++) b += " ";
return b = b + a + "\n"
}, e.prototype.Program = function(a) {
var b = "",
c = a.body,
d = void 0,
e = void 0;
if (a.blockParams) {
var f = "BLOCK PARAMS: [";
for (d = 0, e = a.blockParams.length; e > d; d++) f += " " + a.blockParams[d];
f += " ]", b += this.pad(f)
}
for (d = 0, e = c.length; e > d; d++) b += this.accept(c[d]);
return this.padding--, b
}, e.prototype.MustacheStatement = function(a) {
return this.pad("{{ " + this.SubExpression(a) + " }}")
}, e.prototype.BlockStatement = function(a) {
var b = "";
return b += this.pad("BLOCK:"), this.padding++, b += this.pad(this.SubExpression(a)), a.program && (b += this.pad("PROGRAM:"), this.padding++, b += this.accept(a.program), this.padding--), a.inverse && (a.program && this.padding++, b += this.pad("{{^}}"), this.padding++, b += this.accept(a.inverse), this.padding--, a.program && this.padding--), this.padding--, b
}, e.prototype.PartialStatement = function(a) {
var b = "PARTIAL:" + a.name.original;
return a.params[0] && (b += " " + this.accept(a.params[0])), a.hash && (b += " " + this.accept(a.hash)), this.pad("{{> " + b + " }}")
}, e.prototype.ContentStatement = function(a) {
return this.pad("CONTENT[ '" + a.value + "' ]")
}, e.prototype.CommentStatement = function(a) {
return this.pad("{{! '" + a.value + "' }}")
}, e.prototype.SubExpression = function(a) {
for (var b = a.params, c = [], d = void 0, e = 0, f = b.length; f > e; e++) c.push(this.accept(b[e]));
return b = "[" + c.join(", ") + "]", d = a.hash ? " " + this.accept(a.hash) : "", this.accept(a.path) + " " + b + d
}, e.prototype.PathExpression = function(a) {
var b = a.parts.join("/");
return (a.data ? "@" : "") + "PATH:" + b
}, e.prototype.StringLiteral = function(a) {
return '"' + a.value + '"'
}, e.prototype.NumberLiteral = function(a) {
return "NUMBER{" + a.value + "}"
}, e.prototype.BooleanLiteral = function(a) {
return "BOOLEAN{" + a.value + "}"
}, e.prototype.UndefinedLiteral = function() {
return "UNDEFINED"
}, e.prototype.NullLiteral = function() {
return "NULL"
}, e.prototype.Hash = function(a) {
for (var b = a.pairs, c = [], d = 0, e = b.length; e > d; d++) c.push(this.accept(b[d]));
return "HASH{" + c.join(", ") + "}"
}, e.prototype.HashPair = function(a) {
return a.key + "=" + this.accept(a.value)
}
}, {
"./visitor": 34
}
],
34: [
function(a, b, c) {
"use strict";
function d() {
this.parents = []
}
var e = function(a) {
return a && a.__esModule ? a : {
"default": a
}
};
c.__esModule = !0;
var f = a("../exception"),
g = e(f),
h = a("./ast"),
i = e(h);
d.prototype = {
constructor: d,
mutating: !1,
acceptKey: function(a, b) {
var c = this.accept(a[b]);
if (this.mutating) {
if (c && (!c.type || !i["default"][c.type])) throw new g["default"]('Unexpected node type "' + c.type + '" found when accepting ' + b + " on " + a.type);
a[b] = c
}
},
acceptRequired: function(a, b) {
if (this.acceptKey(a, b), !a[b]) throw new g["default"](a.type + " requires " + b)
},
acceptArray: function(a) {
for (var b = 0, c = a.length; c > b; b++) this.acceptKey(a, b), a[b] || (a.splice(b, 1), b--, c--)
},
accept: function(a) {
if (a) {
this.current && this.parents.unshift(this.current), this.current = a;
var b = this[a.type](a);
return this.current = this.parents.shift(), !this.mutating || b ? b : b !== !1 ? a : void 0
}
},
Program: function(a) {
this.acceptArray(a.body)
},
MustacheStatement: function(a) {
this.acceptRequired(a, "path"), this.acceptArray(a.params), this.acceptKey(a, "hash")
},
BlockStatement: function(a) {
this.acceptRequired(a, "path"), this.acceptArray(a.params), this.acceptKey(a, "hash"), this.acceptKey(a, "program"), this.acceptKey(a, "inverse")
},
PartialStatement: function(a) {
this.acceptRequired(a, "name"), this.acceptArray(a.params), this.acceptKey(a, "hash")
},
ContentStatement: function() {},
CommentStatement: function() {},
SubExpression: function(a) {
this.acceptRequired(a, "path"), this.acceptArray(a.params), this.acceptKey(a, "hash")
},
PathExpression: function() {},
StringLiteral: function() {},
NumberLiteral: function() {},
BooleanLiteral: function() {},
UndefinedLiteral: function() {},
NullLiteral: function() {},
Hash: function(a) {
this.acceptArray(a.pairs)
},
HashPair: function(a) {
this.acceptRequired(a, "value")
}
}, c["default"] = d, b.exports = c["default"]
}, {
"../exception": 36,
"./ast": 26
}
],
35: [
function(a, b, c) {
"use strict";
function d() {}
function e(a, b, c) {
void 0 === b && (b = a.length);
var d = a[b - 1],
e = a[b - 2];
return d ? "ContentStatement" === d.type ? (e || !c ? /\r?\n\s*?$/ : /(^|\r?\n)\s*?$/).test(d.original) : void 0 : c
}
function f(a, b, c) {
void 0 === b && (b = -1);
var d = a[b + 1],
e = a[b + 2];
return d ? "ContentStatement" === d.type ? (e || !c ? /^\s*?\r?\n/ : /^\s*?(\r?\n|$)/).test(d.original) : void 0 : c
}
function g(a, b, c) {
var d = a[null == b ? 0 : b + 1];
if (d && "ContentStatement" === d.type && (c || !d.rightStripped)) {
var e = d.value;
d.value = d.value.replace(c ? /^\s+/ : /^[ \t]*\r?\n?/, ""), d.rightStripped = d.value !== e
}
}
function h(a, b, c) {
var d = a[null == b ? a.length - 1 : b - 1];
if (d && "ContentStatement" === d.type && (c || !d.leftStripped)) {
var e = d.value;
return d.value = d.value.replace(c ? /\s+$/ : /[ \t]+$/, ""), d.leftStripped = d.value !== e, d.leftStripped
}
}
var i = function(a) {
return a && a.__esModule ? a : {
"default": a
}
};
c.__esModule = !0;
var j = a("./visitor"),
k = i(j);
d.prototype = new k["default"], d.prototype.Program = function(a) {
var b = !this.isRootSeen;
this.isRootSeen = !0;
for (var c = a.body, d = 0, i = c.length; i > d; d++) {
var j = c[d],
k = this.accept(j);
if (k) {
var l = e(c, d, b),
m = f(c, d, b),
n = k.openStandalone && l,
o = k.closeStandalone && m,
p = k.inlineStandalone && l && m;
k.close && g(c, d, !0), k.open && h(c, d, !0), p && (g(c, d), h(c, d) && "PartialStatement" === j.type && (j.indent = /([ \t]+$)/.exec(c[d - 1].original)[1])), n && (g((j.program || j.inverse).body), h(c, d)), o && (g(c, d), h((j.inverse || j.program).body))
}
}
return a
}, d.prototype.BlockStatement = function(a) {
this.accept(a.program), this.accept(a.inverse);
var b = a.program || a.inverse,
c = a.program && a.inverse,
d = c,
i = c;
if (c && c.chained)
for (d = c.body[0].program; i.chained;) i = i.body[i.body.length - 1].program;
var j = {
open: a.openStrip.open,
close: a.closeStrip.close,
openStandalone: f(b.body),
closeStandalone: e((d || b).body)
};
if (a.openStrip.close && g(b.body, null, !0), c) {
var k = a.inverseStrip;
k.open && h(b.body, null, !0), k.close && g(d.body, null, !0), a.closeStrip.open && h(i.body, null, !0), e(b.body) && f(d.body) && (h(b.body), g(d.body))
} else a.closeStrip.open && h(b.body, null, !0);
return j
}, d.prototype.MustacheStatement = function(a) {
return a.strip
}, d.prototype.PartialStatement = d.prototype.CommentStatement = function(a) {
var b = a.strip || {};
return {
inlineStandalone: !0,
open: b.open,
close: b.close
}
}, c["default"] = d, b.exports = c["default"]
}, {
"./visitor": 34
}
],
36: [
function(a, b, c) {
"use strict";
function d(a, b) {
var c = b && b.loc,
f = void 0,
g = void 0;
c && (f = c.start.line, g = c.start.column, a += " - " + f + ":" + g);
for (var h = Error.prototype.constructor.call(this, a), i = 0; i < e.length; i++) this[e[i]] = h[e[i]];
Error.captureStackTrace && Error.captureStackTrace(this, d), c && (this.lineNumber = f, this.column = g)
}
c.__esModule = !0;
var e = ["description", "fileName", "lineNumber", "message", "name", "number", "stack"];
d.prototype = new Error, c["default"] = d, b.exports = c["default"]
}, {}
],
37: [
function(a, b, c) {
(function(a) {
"use strict";
c.__esModule = !0, c["default"] = function(b) {
var c = "undefined" != typeof a ? a : window,
d = c.Handlebars;
b.noConflict = function() {
c.Handlebars === b && (c.Handlebars = d)
}
}, b.exports = c["default"]
}).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
}, {}
],
38: [
function(a, b, c) {
"use strict";
function d(a) {
var b = a && a[0] || 1,
c = p.COMPILER_REVISION;
if (b !== c) {
if (c > b) {
var d = p.REVISION_CHANGES[c],
e = p.REVISION_CHANGES[b];
throw new o["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (" + d + ") or downgrade your runtime to an older version (" + e + ").")
}
throw new o["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version (" + a[1] + ").")
}
}
function e(a, b) {
function c(c, d, e) {
e.hash && (d = m.extend({}, d, e.hash)), c = b.VM.resolvePartial.call(this, c, d, e);
var f = b.VM.invokePartial.call(this, c, d, e);
if (null == f && b.compile && (e.partials[e.name] = b.compile(c, a.compilerOptions, b), f = e.partials[e.name](d, e)), null != f) {
if (e.indent) {
for (var g = f.split("\n"), h = 0, i = g.length; i > h && (g[h] || h + 1 !== i); h++) g[h] = e.indent + g[h];
f = g.join("\n")
}
return f
}
throw new o["default"]("The partial " + e.name + " could not be compiled when running in runtime-only mode")
}
function d(b) {
var c = void 0 === arguments[1] ? {} : arguments[1],
f = c.data;
d._setup(c), !c.partial && a.useData && (f = j(b, f));
var g = void 0,
h = a.useBlockParams ? [] : void 0;
return a.useDepths && (g = c.depths ? [b].concat(c.depths) : [b]), a.main.call(e, b, e.helpers, e.partials, f, h, g)
}
if (!b) throw new o["default"]("No environment passed to template");
if (!a || !a.main) throw new o["default"]("Unknown template object: " + typeof a);
b.VM.checkRevision(a.compiler);
var e = {
strict: function(a, b) {
if (!(b in a)) throw new o["default"]('"' + b + '" not defined in ' + a);
return a[b]
},
lookup: function(a, b) {
for (var c = a.length, d = 0; c > d; d++)
if (a[d] && null != a[d][b]) return a[d][b]
},
lambda: function(a, b) {
return "function" == typeof a ? a.call(b) : a
},
escapeExpression: m.escapeExpression,
invokePartial: c,
fn: function(b) {
return a[b]
},
programs: [],
program: function(a, b, c, d, e) {
var g = this.programs[a],
h = this.fn(a);
return b || e || d || c ? g = f(this, a, h, b, c, d, e) : g || (g = this.programs[a] = f(this, a, h)), g
},
data: function(a, b) {
for (; a && b--;) a = a._parent;
return a
},
merge: function(a, b) {
var c = a || b;
return a && b && a !== b && (c = m.extend({}, b, a)), c
},
noop: b.VM.noop,
compilerInfo: a.compiler
};
return d.isTop = !0, d._setup = function(c) {
c.partial ? (e.helpers = c.helpers, e.partials = c.partials) : (e.helpers = e.merge(c.helpers, b.helpers), a.usePartial && (e.partials = e.merge(c.partials, b.partials)))
}, d._child = function(b, c, d, g) {
if (a.useBlockParams && !d) throw new o["default"]("must pass block params");
if (a.useDepths && !g) throw new o["default"]("must pass parent depths");
return f(e, b, a[b], c, 0, d, g)
}, d
}
function f(a, b, c, d, e, f, g) {
function h(b) {
var e = void 0 === arguments[1] ? {} : arguments[1];
return c.call(a, b, a.helpers, a.partials, e.data || d, f && [e.blockParams].concat(f), g && [b].concat(g))
}
return h.program = b, h.depth = g ? g.length : 0, h.blockParams = e || 0, h
}
function g(a, b, c) {
return a ? a.call || c.name || (c.name = a, a = c.partials[a]) : a = c.partials[c.name], a
}
function h(a, b, c) {
if (c.partial = !0, void 0 === a) throw new o["default"]("The partial " + c.name + " could not be found");
return a instanceof Function ? a(b, c) : void 0
}
function i() {
return ""
}
function j(a, b) {
return b && "root" in b || (b = b ? p.createFrame(b) : {}, b.root = a), b
}
var k = function(a) {
return a && a.__esModule ? a : {
"default": a
}
};
c.__esModule = !0, c.checkRevision = d, c.template = e, c.wrapProgram = f, c.resolvePartial = g, c.invokePartial = h, c.noop = i;
var l = a("./utils"),
m = k(l),
n = a("./exception"),
o = k(n),
p = a("./base")
}, {
"./base": 25,
"./exception": 36,
"./utils": 40
}
],
39: [
function(a, b, c) {
"use strict";
function d(a) {
this.string = a
}
c.__esModule = !0, d.prototype.toString = d.prototype.toHTML = function() {
return "" + this.string
}, c["default"] = d, b.exports = c["default"]
}, {}
],
40: [
function(a, b, c) {
"use strict";
function d(a) {
return k[a]
}
function e(a) {
for (var b = 1; b < arguments.length; b++)
for (var c in arguments[b]) Object.prototype.hasOwnProperty.call(arguments[b], c) && (a[c] = arguments[b][c]);
return a
}
function f(a, b) {
for (var c = 0, d = a.length; d > c; c++)
if (a[c] === b) return c;
return -1
}
function g(a) {
if ("string" != typeof a) {
if (a && a.toHTML) return a.toHTML();
if (null == a) return "";
if (!a) return a + "";
a = "" + a
}
return m.test(a) ? a.replace(l, d) : a
}
function h(a) {
return a || 0 === a ? p(a) && 0 === a.length ? !0 : !1 : !0
}
function i(a, b) {
return a.path = b, a
}
function j(a, b) {
return (a ? a + "." : "") + b
}
c.__esModule = !0, c.extend = e, c.indexOf = f, c.escapeExpression = g, c.isEmpty = h, c.blockParams = i, c.appendContextPath = j;
var k = {
"&": "&amp;",
"<": "&lt;",
">": "&gt;",
'"': "&quot;",
"'": "&#x27;",
"`": "&#x60;"
},
l = /[&<>"'`]/g,
m = /[&<>"'`]/,
n = Object.prototype.toString;
c.toString = n;
var o = function(a) {
return "function" == typeof a
};
o(/x/) && (c.isFunction = o = function(a) {
return "function" == typeof a && "[object Function]" === n.call(a)
});
var o;
c.isFunction = o;
var p = Array.isArray || function(a) {
return a && "object" == typeof a ? "[object Array]" === n.call(a) : !1
};
c.isArray = p
}, {}
],
41: [
function(a, b, c) {
function d(b, c) {
var d = a("fs"),
f = d.readFileSync(c, "utf8");
b.exports = e.compile(f)
}
var e = a("../dist/cjs/handlebars")["default"],
f = a("../dist/cjs/handlebars/compiler/printer");
e.PrintVisitor = f.PrintVisitor, e.print = f.print, b.exports = e, "undefined" != typeof a && a.extensions && (a.extensions[".handlebars"] = d, a.extensions[".hbs"] = d)
}, {
"../dist/cjs/handlebars": 23,
"../dist/cjs/handlebars/compiler/printer": 33,
fs: 16
}
],
42: [
function(a, b, c) {
c.SourceMapGenerator = a("./source-map/source-map-generator").SourceMapGenerator, c.SourceMapConsumer = a("./source-map/source-map-consumer").SourceMapConsumer, c.SourceNode = a("./source-map/source-node").SourceNode
}, {
"./source-map/source-map-consumer": 48,
"./source-map/source-map-generator": 49,
"./source-map/source-node": 50
}
],
43: [
function(a, b, c) {
if ("function" != typeof d) var d = a("amdefine")(b, a);
d(function(a, b, c) {
function d() {
this._array = [], this._set = {}
}
var e = a("./util");
d.fromArray = function(a, b) {
for (var c = new d, e = 0, f = a.length; f > e; e++) c.add(a[e], b);
return c
}, d.prototype.add = function(a, b) {
var c = this.has(a),
d = this._array.length;
(!c || b) && this._array.push(a), c || (this._set[e.toSetString(a)] = d)
}, d.prototype.has = function(a) {
return Object.prototype.hasOwnProperty.call(this._set, e.toSetString(a))
}, d.prototype.indexOf = function(a) {
if (this.has(a)) return this._set[e.toSetString(a)];
throw new Error('"' + a + '" is not in the set.')
}, d.prototype.at = function(a) {
if (a >= 0 && a < this._array.length) return this._array[a];
throw new Error("No element indexed by " + a)
}, d.prototype.toArray = function() {
return this._array.slice()
}, b.ArraySet = d
})
}, {
"./util": 51,
amdefine: 52
}
],
44: [
function(a, b, c) {
if ("function" != typeof d) var d = a("amdefine")(b, a);
d(function(a, b, c) {
function d(a) {
return 0 > a ? (-a << 1) + 1 : (a << 1) + 0
}
function e(a) {
var b = 1 === (1 & a),
c = a >> 1;
return b ? -c : c
}
var f = a("./base64"),
g = 5,
h = 1 << g,
i = h - 1,
j = h;
b.encode = function(a) {
var b, c = "",
e = d(a);
do b = e & i, e >>>= g, e > 0 && (b |= j), c += f.encode(b); while (e > 0);
return c
}, b.decode = function(a, b) {
var c, d, h = 0,
k = a.length,
l = 0,
m = 0;
do {
if (h >= k) throw new Error("Expected more digits in base 64 VLQ value.");
d = f.decode(a.charAt(h++)), c = !!(d & j), d &= i, l += d << m, m += g
} while (c);
b.value = e(l), b.rest = a.slice(h)
}
})
}, {
"./base64": 45,
amdefine: 52
}
],
45: [
function(a, b, c) {
if ("function" != typeof d) var d = a("amdefine")(b, a);
d(function(a, b, c) {
var d = {},
e = {};
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("").forEach(function(a, b) {
d[a] = b, e[b] = a
}), b.encode = function(a) {
if (a in e) return e[a];
throw new TypeError("Must be between 0 and 63: " + a)
}, b.decode = function(a) {
if (a in d) return d[a];
throw new TypeError("Not a valid base 64 digit: " + a)
}
})
}, {
amdefine: 52
}
],
46: [
function(a, b, c) {
if ("function" != typeof d) var d = a("amdefine")(b, a);
d(function(a, b, c) {
function d(a, b, c, e, f) {
var g = Math.floor((b - a) / 2) + a,
h = f(c, e[g], !0);
return 0 === h ? g : h > 0 ? b - g > 1 ? d(g, b, c, e, f) : g : g - a > 1 ? d(a, g, c, e, f) : 0 > a ? -1 : a
}
b.search = function(a, b, c) {
return 0 === b.length ? -1 : d(-1, b.length, a, b, c)
}
})
}, {
amdefine: 52
}
],
47: [
function(a, b, c) {
if ("function" != typeof d) var d = a("amdefine")(b, a);
d(function(a, b, c) {
function d(a, b) {
var c = a.generatedLine,
d = b.generatedLine,
e = a.generatedColumn,
g = b.generatedColumn;
return d > c || d == c && g >= e || f.compareByGeneratedPositions(a, b) <= 0
}
function e() {
this._array = [], this._sorted = !0, this._last = {
generatedLine: -1,
generatedColumn: 0
}
}
var f = a("./util");
e.prototype.unsortedForEach = function(a, b) {
this._array.forEach(a, b)
}, e.prototype.add = function(a) {
d(this._last, a) ? (this._last = a, this._array.push(a)) : (this._sorted = !1, this._array.push(a))
}, e.prototype.toArray = function() {
return this._sorted || (this._array.sort(f.compareByGeneratedPositions), this._sorted = !0), this._array
}, b.MappingList = e
})
}, {
"./util": 51,
amdefine: 52
}
],
48: [
function(a, b, c) {
if ("function" != typeof d) var d = a("amdefine")(b, a);
d(function(a, b, c) {
function d(a) {
var b = a;
"string" == typeof a && (b = JSON.parse(a.replace(/^\)\]\}'/, "")));
var c = e.getArg(b, "version"),
d = e.getArg(b, "sources"),
f = e.getArg(b, "names", []),
h = e.getArg(b, "sourceRoot", null),
i = e.getArg(b, "sourcesContent", null),
j = e.getArg(b, "mappings"),
k = e.getArg(b, "file", null);
if (c != this._version) throw new Error("Unsupported version: " + c);
d = d.map(e.normalize), this._names = g.fromArray(f, !0), this._sources = g.fromArray(d, !0), this.sourceRoot = h, this.sourcesContent = i, this._mappings = j, this.file = k
}
var e = a("./util"),
f = a("./binary-search"),
g = a("./array-set").ArraySet,
h = a("./base64-vlq");
d.fromSourceMap = function(a) {
var b = Object.create(d.prototype);
return b._names = g.fromArray(a._names.toArray(), !0), b._sources = g.fromArray(a._sources.toArray(), !0), b.sourceRoot = a._sourceRoot, b.sourcesContent = a._generateSourcesContent(b._sources.toArray(), b.sourceRoot), b.file = a._file, b.__generatedMappings = a._mappings.toArray().slice(), b.__originalMappings = a._mappings.toArray().slice().sort(e.compareByOriginalPositions), b
}, d.prototype._version = 3, Object.defineProperty(d.prototype, "sources", {
get: function() {
return this._sources.toArray().map(function(a) {
return null != this.sourceRoot ? e.join(this.sourceRoot, a) : a
}, this)
}
}), d.prototype.__generatedMappings = null, Object.defineProperty(d.prototype, "_generatedMappings", {
get: function() {
return this.__generatedMappings || (this.__generatedMappings = [], this.__originalMappings = [], this._parseMappings(this._mappings, this.sourceRoot)), this.__generatedMappings
}
}), d.prototype.__originalMappings = null, Object.defineProperty(d.prototype, "_originalMappings", {
get: function() {
return this.__originalMappings || (this.__generatedMappings = [], this.__originalMappings = [], this._parseMappings(this._mappings, this.sourceRoot)), this.__originalMappings
}
}), d.prototype._nextCharIsMappingSeparator = function(a) {
var b = a.charAt(0);
return ";" === b || "," === b
}, d.prototype._parseMappings = function(a, b) {
for (var c, d = 1, f = 0, g = 0, i = 0, j = 0, k = 0, l = a, m = {}; l.length > 0;)
if (";" === l.charAt(0)) d++, l = l.slice(1), f = 0;
else if ("," === l.charAt(0)) l = l.slice(1);
else {
if (c = {}, c.generatedLine = d, h.decode(l, m), c.generatedColumn = f + m.value, f = c.generatedColumn, l = m.rest, l.length > 0 && !this._nextCharIsMappingSeparator(l)) {
if (h.decode(l, m), c.source = this._sources.at(j + m.value), j += m.value, l = m.rest, 0 === l.length || this._nextCharIsMappingSeparator(l)) throw new Error("Found a source, but no line and column");
if (h.decode(l, m), c.originalLine = g + m.value, g = c.originalLine, c.originalLine += 1, l = m.rest, 0 === l.length || this._nextCharIsMappingSeparator(l)) throw new Error("Found a source and line, but no column");
h.decode(l, m), c.originalColumn = i + m.value, i = c.originalColumn, l = m.rest, l.length > 0 && !this._nextCharIsMappingSeparator(l) && (h.decode(l, m), c.name = this._names.at(k + m.value), k += m.value, l = m.rest)
}
this.__generatedMappings.push(c), "number" == typeof c.originalLine && this.__originalMappings.push(c)
}
this.__generatedMappings.sort(e.compareByGeneratedPositions), this.__originalMappings.sort(e.compareByOriginalPositions)
}, d.prototype._findMapping = function(a, b, c, d, e) {
if (a[c] <= 0) throw new TypeError("Line must be greater than or equal to 1, got " + a[c]);
if (a[d] < 0) throw new TypeError("Column must be greater than or equal to 0, got " + a[d]);
return f.search(a, b, e)
}, d.prototype.computeColumnSpans = function() {
for (var a = 0; a < this._generatedMappings.length; ++a) {
var b = this._generatedMappings[a];
if (a + 1 < this._generatedMappings.length) {
var c = this._generatedMappings[a + 1];
if (b.generatedLine === c.generatedLine) {
b.lastGeneratedColumn = c.generatedColumn - 1;
continue
}
}
b.lastGeneratedColumn = 1 / 0
}
}, d.prototype.originalPositionFor = function(a) {
var b = {
generatedLine: e.getArg(a, "line"),
generatedColumn: e.getArg(a, "column")
},
c = this._findMapping(b, this._generatedMappings, "generatedLine", "generatedColumn", e.compareByGeneratedPositions);
if (c >= 0) {
var d = this._generatedMappings[c];
if (d.generatedLine === b.generatedLine) {
var f = e.getArg(d, "source", null);
return null != f && null != this.sourceRoot && (f = e.join(this.sourceRoot, f)), {
source: f,
line: e.getArg(d, "originalLine", null),
column: e.getArg(d, "originalColumn", null),
name: e.getArg(d, "name", null)
}
}
}
return {
source: null,
line: null,
column: null,
name: null
}
}, d.prototype.sourceContentFor = function(a) {
if (!this.sourcesContent) return null;
if (null != this.sourceRoot && (a = e.relative(this.sourceRoot, a)), this._sources.has(a)) return this.sourcesContent[this._sources.indexOf(a)];
var b;
if (null != this.sourceRoot && (b = e.urlParse(this.sourceRoot))) {
var c = a.replace(/^file:\/\//, "");
if ("file" == b.scheme && this._sources.has(c)) return this.sourcesContent[this._sources.indexOf(c)];
if ((!b.path || "/" == b.path) && this._sources.has("/" + a)) return this.sourcesContent[this._sources.indexOf("/" + a)]
}
throw new Error('"' + a + '" is not in the SourceMap.')
}, d.prototype.generatedPositionFor = function(a) {
var b = {
source: e.getArg(a, "source"),
originalLine: e.getArg(a, "line"),
originalColumn: e.getArg(a, "column")
};
null != this.sourceRoot && (b.source = e.relative(this.sourceRoot, b.source));
var c = this._findMapping(b, this._originalMappings, "originalLine", "originalColumn", e.compareByOriginalPositions);
if (c >= 0) {
var d = this._originalMappings[c];
return {
line: e.getArg(d, "generatedLine", null),
column: e.getArg(d, "generatedColumn", null),
lastColumn: e.getArg(d, "lastGeneratedColumn", null)
}
}
return {
line: null,
column: null,
lastColumn: null
}
}, d.prototype.allGeneratedPositionsFor = function(a) {
var b = {
source: e.getArg(a, "source"),
originalLine: e.getArg(a, "line"),
originalColumn: 1 / 0
};
null != this.sourceRoot && (b.source = e.relative(this.sourceRoot, b.source));
var c = [],
d = this._findMapping(b, this._originalMappings, "originalLine", "originalColumn", e.compareByOriginalPositions);
if (d >= 0)
for (var f = this._originalMappings[d]; f && f.originalLine === b.originalLine;) c.push({
line: e.getArg(f, "generatedLine", null),
column: e.getArg(f, "generatedColumn", null),
lastColumn: e.getArg(f, "lastGeneratedColumn", null)
}), f = this._originalMappings[--d];
return c.reverse()
}, d.GENERATED_ORDER = 1, d.ORIGINAL_ORDER = 2, d.prototype.eachMapping = function(a, b, c) {
var f, g = b || null,
h = c || d.GENERATED_ORDER;
switch (h) {
case d.GENERATED_ORDER:
f = this._generatedMappings;
break;
case d.ORIGINAL_ORDER:
f = this._originalMappings;
break;
default:
throw new Error("Unknown order of iteration.")
}
var i = this.sourceRoot;
f.map(function(a) {
var b = a.source;
return null != b && null != i && (b = e.join(i, b)), {
source: b,
generatedLine: a.generatedLine,
generatedColumn: a.generatedColumn,
originalLine: a.originalLine,
originalColumn: a.originalColumn,
name: a.name
}
}).forEach(a, g)
}, b.SourceMapConsumer = d
})
}, {
"./array-set": 43,
"./base64-vlq": 44,
"./binary-search": 46,
"./util": 51,
amdefine: 52
}
],
49: [
function(a, b, c) {
if ("function" != typeof d) var d = a("amdefine")(b, a);
d(function(a, b, c) {
function d(a) {
a || (a = {}), this._file = f.getArg(a, "file", null), this._sourceRoot = f.getArg(a, "sourceRoot", null), this._skipValidation = f.getArg(a, "skipValidation", !1), this._sources = new g, this._names = new g, this._mappings = new h, this._sourcesContents = null
}
var e = a("./base64-vlq"),
f = a("./util"),
g = a("./array-set").ArraySet,
h = a("./mapping-list").MappingList;
d.prototype._version = 3, d.fromSourceMap = function(a) {
var b = a.sourceRoot,
c = new d({
file: a.file,
sourceRoot: b
});
return a.eachMapping(function(a) {
var d = {
generated: {
line: a.generatedLine,
column: a.generatedColumn
}
};
null != a.source && (d.source = a.source, null != b && (d.source = f.relative(b, d.source)), d.original = {
line: a.originalLine,
column: a.originalColumn
}, null != a.name && (d.name = a.name)), c.addMapping(d)
}), a.sources.forEach(function(b) {
var d = a.sourceContentFor(b);
null != d && c.setSourceContent(b, d)
}), c
}, d.prototype.addMapping = function(a) {
var b = f.getArg(a, "generated"),
c = f.getArg(a, "original", null),
d = f.getArg(a, "source", null),
e = f.getArg(a, "name", null);
this._skipValidation || this._validateMapping(b, c, d, e), null == d || this._sources.has(d) || this._sources.add(d), null == e || this._names.has(e) || this._names.add(e), this._mappings.add({
generatedLine: b.line,
generatedColumn: b.column,
originalLine: null != c && c.line,
originalColumn: null != c && c.column,
source: d,
name: e
})
}, d.prototype.setSourceContent = function(a, b) {
var c = a;
null != this._sourceRoot && (c = f.relative(this._sourceRoot, c)), null != b ? (this._sourcesContents || (this._sourcesContents = {}), this._sourcesContents[f.toSetString(c)] = b) : this._sourcesContents && (delete this._sourcesContents[f.toSetString(c)], 0 === Object.keys(this._sourcesContents).length && (this._sourcesContents = null))
}, d.prototype.applySourceMap = function(a, b, c) {
var d = b;
if (null == b) {
if (null == a.file) throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');
d = a.file
}
var e = this._sourceRoot;
null != e && (d = f.relative(e, d));
var h = new g,
i = new g;
this._mappings.unsortedForEach(function(b) {
if (b.source === d && null != b.originalLine) {
var g = a.originalPositionFor({
line: b.originalLine,
column: b.originalColumn
});
null != g.source && (b.source = g.source, null != c && (b.source = f.join(c, b.source)), null != e && (b.source = f.relative(e, b.source)), b.originalLine = g.line, b.originalColumn = g.column, null != g.name && (b.name = g.name))
}
var j = b.source;
null == j || h.has(j) || h.add(j);
var k = b.name;
null == k || i.has(k) || i.add(k)
}, this), this._sources = h, this._names = i, a.sources.forEach(function(b) {
var d = a.sourceContentFor(b);
null != d && (null != c && (b = f.join(c, b)), null != e && (b = f.relative(e, b)), this.setSourceContent(b, d))
}, this)
}, d.prototype._validateMapping = function(a, b, c, d) {
if (!(a && "line" in a && "column" in a && a.line > 0 && a.column >= 0 && !b && !c && !d || a && "line" in a && "column" in a && b && "line" in b && "column" in b && a.line > 0 && a.column >= 0 && b.line > 0 && b.column >= 0 && c)) throw new Error("Invalid mapping: " + JSON.stringify({
generated: a,
source: c,
original: b,
name: d
}))
}, d.prototype._serializeMappings = function() {
for (var a, b = 0, c = 1, d = 0, g = 0, h = 0, i = 0, j = "", k = this._mappings.toArray(), l = 0, m = k.length; m > l; l++) {
if (a = k[l], a.generatedLine !== c)
for (b = 0; a.generatedLine !== c;) j += ";", c++;
else if (l > 0) {
if (!f.compareByGeneratedPositions(a, k[l - 1])) continue;
j += ","
}
j += e.encode(a.generatedColumn - b), b = a.generatedColumn, null != a.source && (j += e.encode(this._sources.indexOf(a.source) - i), i = this._sources.indexOf(a.source), j += e.encode(a.originalLine - 1 - g), g = a.originalLine - 1, j += e.encode(a.originalColumn - d), d = a.originalColumn, null != a.name && (j += e.encode(this._names.indexOf(a.name) - h), h = this._names.indexOf(a.name)))
}
return j
}, d.prototype._generateSourcesContent = function(a, b) {
return a.map(function(a) {
if (!this._sourcesContents) return null;
null != b && (a = f.relative(b, a));
var c = f.toSetString(a);
return Object.prototype.hasOwnProperty.call(this._sourcesContents, c) ? this._sourcesContents[c] : null
}, this)
}, d.prototype.toJSON = function() {
var a = {
version: this._version,
sources: this._sources.toArray(),
names: this._names.toArray(),
mappings: this._serializeMappings()
};
return null != this._file && (a.file = this._file), null != this._sourceRoot && (a.sourceRoot = this._sourceRoot), this._sourcesContents && (a.sourcesContent = this._generateSourcesContent(a.sources, a.sourceRoot)), a
}, d.prototype.toString = function() {
return JSON.stringify(this)
}, b.SourceMapGenerator = d
})
}, {
"./array-set": 43,
"./base64-vlq": 44,
"./mapping-list": 47,
"./util": 51,
amdefine: 52
}
],
50: [
function(a, b, c) {
if ("function" != typeof d) var d = a("amdefine")(b, a);
d(function(a, b, c) {
function d(a, b, c, d, e) {
this.children = [], this.sourceContents = {}, this.line = null == a ? null : a, this.column = null == b ? null : b, this.source = null == c ? null : c, this.name = null == e ? null : e, this[i] = !0, null != d && this.add(d)
}
var e = a("./source-map-generator").SourceMapGenerator,
f = a("./util"),
g = /(\r?\n)/,
h = 10,
i = "$$$isSourceNode$$$";
d.fromStringWithSourceMap = function(a, b, c) {
function e(a, b) {
if (null === a || void 0 === a.source) h.add(b);
else {
var e = c ? f.join(c, a.source) : a.source;
h.add(new d(a.originalLine, a.originalColumn, e, b, a.name))
}
}
var h = new d,
i = a.split(g),
j = function() {
var a = i.shift(),
b = i.shift() || "";
return a + b
},
k = 1,
l = 0,
m = null;
return b.eachMapping(function(a) {
if (null !== m) {
if (!(k < a.generatedLine)) {
var b = i[0],
c = b.substr(0, a.generatedColumn - l);
return i[0] = b.substr(a.generatedColumn - l), l = a.generatedColumn, e(m, c), void(m = a)
}
var c = "";
e(m, j()), k++, l = 0
}
for (; k < a.generatedLine;) h.add(j()), k++;
if (l < a.generatedColumn) {
var b = i[0];
h.add(b.substr(0, a.generatedColumn)), i[0] = b.substr(a.generatedColumn), l = a.generatedColumn
}
m = a
}, this), i.length > 0 && (m && e(m, j()), h.add(i.join(""))), b.sources.forEach(function(a) {
var d = b.sourceContentFor(a);
null != d && (null != c && (a = f.join(c, a)), h.setSourceContent(a, d))
}), h
}, d.prototype.add = function(a) {
if (Array.isArray(a)) a.forEach(function(a) {
this.add(a)
}, this);
else {
if (!a[i] && "string" != typeof a) throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + a);
a && this.children.push(a)
}
return this
}, d.prototype.prepend = function(a) {
if (Array.isArray(a))
for (var b = a.length - 1; b >= 0; b--) this.prepend(a[b]);
else {
if (!a[i] && "string" != typeof a) throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + a);
this.children.unshift(a)
}
return this
}, d.prototype.walk = function(a) {
for (var b, c = 0, d = this.children.length; d > c; c++) b = this.children[c], b[i] ? b.walk(a) : "" !== b && a(b, {
source: this.source,
line: this.line,
column: this.column,
name: this.name
})
}, d.prototype.join = function(a) {
var b, c, d = this.children.length;
if (d > 0) {
for (b = [], c = 0; d - 1 > c; c++) b.push(this.children[c]), b.push(a);
b.push(this.children[c]), this.children = b
}
return this
}, d.prototype.replaceRight = function(a, b) {
var c = this.children[this.children.length - 1];
return c[i] ? c.replaceRight(a, b) : "string" == typeof c ? this.children[this.children.length - 1] = c.replace(a, b) : this.children.push("".replace(a, b)), this
}, d.prototype.setSourceContent = function(a, b) {
this.sourceContents[f.toSetString(a)] = b
}, d.prototype.walkSourceContents = function(a) {
for (var b = 0, c = this.children.length; c > b; b++) this.children[b][i] && this.children[b].walkSourceContents(a);
for (var d = Object.keys(this.sourceContents), b = 0, c = d.length; c > b; b++) a(f.fromSetString(d[b]), this.sourceContents[d[b]])
}, d.prototype.toString = function() {
var a = "";
return this.walk(function(b) {
a += b
}), a
}, d.prototype.toStringWithSourceMap = function(a) {
var b = {
code: "",
line: 1,
column: 0
},
c = new e(a),
d = !1,
f = null,
g = null,
i = null,
j = null;
return this.walk(function(a, e) {
b.code += a, null !== e.source && null !== e.line && null !== e.column ? ((f !== e.source || g !== e.line || i !== e.column || j !== e.name) && c.addMapping({
source: e.source,
original: {
line: e.line,
column: e.column
},
generated: {
line: b.line,
column: b.column
},
name: e.name
}), f = e.source, g = e.line, i = e.column, j = e.name, d = !0) : d && (c.addMapping({
generated: {
line: b.line,
column: b.column
}
}), f = null, d = !1);
for (var k = 0, l = a.length; l > k; k++) a.charCodeAt(k) === h ? (b.line++, b.column = 0, k + 1 === l ? (f = null, d = !1) : d && c.addMapping({
source: e.source,
original: {
line: e.line,
column: e.column
},
generated: {
line: b.line,
column: b.column
},
name: e.name
})) : b.column++
}), this.walkSourceContents(function(a, b) {
c.setSourceContent(a, b)
}), {
code: b.code,
map: c
}
}, b.SourceNode = d
})
}, {
"./source-map-generator": 49,
"./util": 51,
amdefine: 52
}
],
51: [
function(a, b, c) {
if ("function" != typeof d) var d = a("amdefine")(b, a);
d(function(a, b, c) {
function d(a, b, c) {
if (b in a) return a[b];
if (3 === arguments.length) return c;
throw new Error('"' + b + '" is a required argument.')
}
function e(a) {
var b = a.match(o);
return b ? {
scheme: b[1],
auth: b[2],
host: b[3],
port: b[4],
path: b[5]
} : null
}
function f(a) {
var b = "";
return a.scheme && (b += a.scheme + ":"), b += "//", a.auth && (b += a.auth + "@"), a.host && (b += a.host), a.port && (b += ":" + a.port), a.path && (b += a.path), b
}
function g(a) {
var b = a,
c = e(a);
if (c) {
if (!c.path) return a;
b = c.path
}
for (var d, g = "/" === b.charAt(0), h = b.split(/\/+/), i = 0, j = h.length - 1; j >= 0; j--) d = h[j], "." === d ? h.splice(j, 1) : ".." === d ? i++ : i > 0 && ("" === d ? (h.splice(j + 1, i), i = 0) : (h.splice(j, 2), i--));
return b = h.join("/"), "" === b && (b = g ? "/" : "."), c ? (c.path = b, f(c)) : b
}
function h(a, b) {
"" === a && (a = "."), "" === b && (b = ".");
var c = e(b),
d = e(a);
if (d && (a = d.path || "/"), c && !c.scheme) return d && (c.scheme = d.scheme), f(c);
if (c || b.match(p)) return b;
if (d && !d.host && !d.path) return d.host = b, f(d);
var h = "/" === b.charAt(0) ? b : g(a.replace(/\/+$/, "") + "/" + b);
return d ? (d.path = h, f(d)) : h
}
function i(a, b) {
"" === a && (a = "."), a = a.replace(/\/$/, "");
var c = e(a);
return "/" == b.charAt(0) && c && "/" == c.path ? b.slice(1) : 0 === b.indexOf(a + "/") ? b.substr(a.length + 1) : b
}
function j(a) {
return "$" + a
}
function k(a) {
return a.substr(1)
}
function l(a, b) {
var c = a || "",
d = b || "";
return (c > d) - (d > c)
}
function m(a, b, c) {
var d;
return (d = l(a.source, b.source)) ? d : (d = a.originalLine - b.originalLine) ? d : (d = a.originalColumn - b.originalColumn, d || c ? d : (d = l(a.name, b.name)) ? d : (d = a.generatedLine - b.generatedLine, d ? d : a.generatedColumn - b.generatedColumn))
}
function n(a, b, c) {
var d;
return (d = a.generatedLine - b.generatedLine) ? d : (d = a.generatedColumn - b.generatedColumn, d || c ? d : (d = l(a.source, b.source)) ? d : (d = a.originalLine - b.originalLine) ? d : (d = a.originalColumn - b.originalColumn, d ? d : l(a.name, b.name)))
}
b.getArg = d;
var o = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,
p = /^data:.+\,.+$/;
b.urlParse = e, b.urlGenerate = f, b.normalize = g, b.join = h, b.relative = i, b.toSetString = j, b.fromSetString = k, b.compareByOriginalPositions = m, b.compareByGeneratedPositions = n
})
}, {
amdefine: 52
}
],
52: [
function(a, b, c) {
(function(c, d) {
"use strict";
function e(b, e) {
function f(a) {
var b, c;
for (b = 0; a[b]; b += 1)
if (c = a[b], "." === c) a.splice(b, 1), b -= 1;
else if (".." === c) {
if (1 === b && (".." === a[2] || ".." === a[0])) break;
b > 0 && (a.splice(b - 1, 2), b -= 2)
}
}
function g(a, b) {
var c;
return a && "." === a.charAt(0) && b && (c = b.split("/"), c = c.slice(0, c.length - 1), c = c.concat(a.split("/")), f(c), a = c.join("/")), a
}
function h(a) {
return function(b) {
return g(b, a)
}
}
function i(a) {
function b(b) {
o[a] = b
}
return b.fromText = function(a, b) {
throw new Error("amdefine does not implement load.fromText")
}, b
}
function j(a, c, f) {
var g, h, i, j;
if (a) h = o[a] = {}, i = {
id: a,
uri: d,
exports: h
}, g = l(e, h, i, a);
else {
if (p) throw new Error("amdefine with no module ID cannot be called more than once per file.");
p = !0, h = b.exports, i = b, g = l(e, h, i, b.id)
}
c && (c = c.map(function(a) {
return g(a)
})), j = "function" == typeof f ? f.apply(i.exports, c) : f, void 0 !== j && (i.exports = j, a && (o[a] = i.exports))
}
function k(a, b, c) {
Array.isArray(a) ? (c = b, b = a, a = void 0) : "string" != typeof a && (c = a, a = b = void 0), b && !Array.isArray(b) && (c = b, b = void 0), b || (b = ["require", "exports", "module"]), a ? n[a] = [a, b, c] : j(a, b, c)
}
var l, m, n = {},
o = {},
p = !1,
q = a("path");
return l = function(a, b, d, e) {
function f(f, g) {
return "string" == typeof f ? m(a, b, d, f, e) : (f = f.map(function(c) {
return m(a, b, d, c, e)
}), void c.nextTick(function() {
g.apply(null, f)
}))
}
return f.toUrl = function(a) {
return 0 === a.indexOf(".") ? g(a, q.dirname(d.filename)) : a
}, f
}, e = e || function() {
return b.require.apply(b, arguments)
}, m = function(a, b, c, d, e) {
var f, k, p = d.indexOf("!"),
q = d;
if (-1 === p) {
if (d = g(d, e), "require" === d) return l(a, b, c, e);
if ("exports" === d) return b;
if ("module" === d) return c;
if (o.hasOwnProperty(d)) return o[d];
if (n[d]) return j.apply(null, n[d]), o[d];
if (a) return a(q);
throw new Error("No module with ID: " + d)
}
return f = d.substring(0, p), d = d.substring(p + 1, d.length), k = m(a, b, c, f, e), d = k.normalize ? k.normalize(d, h(e)) : g(d, e), o[d] ? o[d] : (k.load(d, l(a, b, c, e), i(d), {}), o[d])
}, k.require = function(a) {
return o[a] ? o[a] : n[a] ? (j.apply(null, n[a]), o[a]) : void 0
}, k.amd = {}, k
}
b.exports = e
}).call(this, a("_process"), "/node_modules/handlebars/node_modules/source-map/node_modules/amdefine/amdefine.js")
}, {
_process: 20,
path: 19
}
],
53: [
function(a, b, c) {
! function(a, c) {
"object" == typeof b && "object" == typeof b.exports ? b.exports = a.document ? c(a, !0) : function(a) {
if (!a.document) throw new Error("jQuery requires a window with a document");
return c(a)
} : c(a)
}("undefined" != typeof window ? window : this, function(a, b) {
function c(a) {
var b = "length" in a && a.length,
c = _.type(a);
return "function" === c || _.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a
}
function d(a, b, c) {
if (_.isFunction(b)) return _.grep(a, function(a, d) {
return !!b.call(a, d, a) !== c
});
if (b.nodeType) return _.grep(a, function(a) {
return a === b !== c
});
if ("string" == typeof b) {
if (ha.test(b)) return _.filter(b, a, c);
b = _.filter(b, a)
}
return _.grep(a, function(a) {
return U.call(b, a) >= 0 !== c
})
}
function e(a, b) {
for (;
(a = a[b]) && 1 !== a.nodeType;);
return a
}
function f(a) {
var b = oa[a] = {};
return _.each(a.match(na) || [], function(a, c) {
b[c] = !0
}), b
}
function g() {
Z.removeEventListener("DOMContentLoaded", g, !1), a.removeEventListener("load", g, !1), _.ready()
}
function h() {
Object.defineProperty(this.cache = {}, 0, {
get: function() {
return {}
}
}), this.expando = _.expando + h.uid++
}
function i(a, b, c) {
var d;
if (void 0 === c && 1 === a.nodeType)
if (d = "data-" + b.replace(ua, "-$1").toLowerCase(), c = a.getAttribute(d), "string" == typeof c) {
try {
c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : ta.test(c) ? _.parseJSON(c) : c
} catch (e) {}
sa.set(a, b, c)
} else c = void 0;
return c
}
function j() {
return !0
}
function k() {
return !1
}
function l() {
try {
return Z.activeElement
} catch (a) {}
}
function m(a, b) {
return _.nodeName(a, "table") && _.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a
}
function n(a) {
return a.type = (null !== a.getAttribute("type")) + "/" + a.type, a
}
function o(a) {
var b = Ka.exec(a.type);
return b ? a.type = b[1] : a.removeAttribute("type"), a
}
function p(a, b) {
for (var c = 0, d = a.length; d > c; c++) ra.set(a[c], "globalEval", !b || ra.get(b[c], "globalEval"))
}
function q(a, b) {
var c, d, e, f, g, h, i, j;
if (1 === b.nodeType) {
if (ra.hasData(a) && (f = ra.access(a), g = ra.set(b, f), j = f.events)) {
delete g.handle, g.events = {};
for (e in j)
for (c = 0, d = j[e].length; d > c; c++) _.event.add(b, e, j[e][c])
}
sa.hasData(a) && (h = sa.access(a), i = _.extend({}, h), sa.set(b, i))
}
}
function r(a, b) {
var c = a.getElementsByTagName ? a.getElementsByTagName(b || "*") : a.querySelectorAll ? a.querySelectorAll(b || "*") : [];
return void 0 === b || b && _.nodeName(a, b) ? _.merge([a], c) : c
}
function s(a, b) {
var c = b.nodeName.toLowerCase();
"input" === c && ya.test(a.type) ? b.checked = a.checked : ("input" === c || "textarea" === c) && (b.defaultValue = a.defaultValue)
}
function t(b, c) {
var d, e = _(c.createElement(b)).appendTo(c.body),
f = a.getDefaultComputedStyle && (d = a.getDefaultComputedStyle(e[0])) ? d.display : _.css(e[0], "display");
return e.detach(), f
}
function u(a) {
var b = Z,
c = Oa[a];
return c || (c = t(a, b), "none" !== c && c || (Na = (Na || _("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement), b = Na[0].contentDocument, b.write(), b.close(), c = t(a, b), Na.detach()), Oa[a] = c), c
}
function v(a, b, c) {
var d, e, f, g, h = a.style;
return c = c || Ra(a), c && (g = c.getPropertyValue(b) || c[b]), c && ("" !== g || _.contains(a.ownerDocument, a) || (g = _.style(a, b)), Qa.test(g) && Pa.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f)), void 0 !== g ? g + "" : g
}
function w(a, b) {
return {
get: function() {
return a() ? void delete this.get : (this.get = b).apply(this, arguments)
}
}
}
function x(a, b) {
if (b in a) return b;
for (var c = b[0].toUpperCase() + b.slice(1), d = b, e = Xa.length; e--;)
if (b = Xa[e] + c, b in a) return b;
return d
}
function y(a, b, c) {
var d = Ta.exec(b);
return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || "px") : b
}
function z(a, b, c, d, e) {
for (var f = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0, g = 0; 4 > f; f += 2) "margin" === c && (g += _.css(a, c + wa[f], !0, e)), d ? ("content" === c && (g -= _.css(a, "padding" + wa[f], !0, e)), "margin" !== c && (g -= _.css(a, "border" + wa[f] + "Width", !0, e))) : (g += _.css(a, "padding" + wa[f], !0, e), "padding" !== c && (g += _.css(a, "border" + wa[f] + "Width", !0, e)));
return g
}
function A(a, b, c) {
var d = !0,
e = "width" === b ? a.offsetWidth : a.offsetHeight,
f = Ra(a),
g = "border-box" === _.css(a, "boxSizing", !1, f);
if (0 >= e || null == e) {
if (e = v(a, b, f), (0 > e || null == e) && (e = a.style[b]), Qa.test(e)) return e;
d = g && (Y.boxSizingReliable() || e === a.style[b]), e = parseFloat(e) || 0
}
return e + z(a, b, c || (g ? "border" : "content"), d, f) + "px"
}
function B(a, b) {
for (var c, d, e, f = [], g = 0, h = a.length; h > g; g++) d = a[g], d.style && (f[g] = ra.get(d, "olddisplay"), c = d.style.display, b ? (f[g] || "none" !== c || (d.style.display = ""), "" === d.style.display && xa(d) && (f[g] = ra.access(d, "olddisplay", u(d.nodeName)))) : (e = xa(d), "none" === c && e || ra.set(d, "olddisplay", e ? c : _.css(d, "display"))));
for (g = 0; h > g; g++) d = a[g], d.style && (b && "none" !== d.style.display && "" !== d.style.display || (d.style.display = b ? f[g] || "" : "none"));
return a
}
function C(a, b, c, d, e) {
return new C.prototype.init(a, b, c, d, e)
}
function D() {
return setTimeout(function() {
Ya = void 0
}), Ya = _.now()
}
function E(a, b) {
var c, d = 0,
e = {
height: a
};
for (b = b ? 1 : 0; 4 > d; d += 2 - b) c = wa[d], e["margin" + c] = e["padding" + c] = a;
return b && (e.opacity = e.width = a), e
}
function F(a, b, c) {
for (var d, e = (cb[b] || []).concat(cb["*"]), f = 0, g = e.length; g > f; f++)
if (d = e[f].call(c, b, a)) return d
}
function G(a, b, c) {
var d, e, f, g, h, i, j, k, l = this,
m = {},
n = a.style,
o = a.nodeType && xa(a),
p = ra.get(a, "fxshow");
c.queue || (h = _._queueHooks(a, "fx"), null == h.unqueued && (h.unqueued = 0, i = h.empty.fire, h.empty.fire = function() {
h.unqueued || i()
}), h.unqueued++, l.always(function() {
l.always(function() {
h.unqueued--, _.queue(a, "fx").length || h.empty.fire()
})
})), 1 === a.nodeType && ("height" in b || "width" in b) && (c.overflow = [n.overflow, n.overflowX, n.overflowY], j = _.css(a, "display"), k = "none" === j ? ra.get(a, "olddisplay") || u(a.nodeName) : j, "inline" === k && "none" === _.css(a, "float") && (n.display = "inline-block")), c.overflow && (n.overflow = "hidden", l.always(function() {
n.overflow = c.overflow[0], n.overflowX = c.overflow[1], n.overflowY = c.overflow[2]
}));
for (d in b)
if (e = b[d], $a.exec(e)) {
if (delete b[d], f = f || "toggle" === e, e === (o ? "hide" : "show")) {
if ("show" !== e || !p || void 0 === p[d]) continue;
o = !0
}
m[d] = p && p[d] || _.style(a, d)
} else j = void 0;
if (_.isEmptyObject(m)) "inline" === ("none" === j ? u(a.nodeName) : j) && (n.display = j);
else {
p ? "hidden" in p && (o = p.hidden) : p = ra.access(a, "fxshow", {}), f && (p.hidden = !o), o ? _(a).show() : l.done(function() {
_(a).hide()
}), l.done(function() {
var b;
ra.remove(a, "fxshow");
for (b in m) _.style(a, b, m[b])
});
for (d in m) g = F(o ? p[d] : 0, d, l), d in p || (p[d] = g.start, o && (g.end = g.start, g.start = "width" === d || "height" === d ? 1 : 0))
}
}
function H(a, b) {
var c, d, e, f, g;
for (c in a)
if (d = _.camelCase(c), e = b[d], f = a[c], _.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = _.cssHooks[d], g && "expand" in g) {
f = g.expand(f), delete a[d];
for (c in f) c in a || (a[c] = f[c], b[c] = e)
} else b[d] = e
}
function I(a, b, c) {
var d, e, f = 0,
g = bb.length,
h = _.Deferred().always(function() {
delete i.elem
}),
i = function() {
if (e) return !1;
for (var b = Ya || D(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; i > g; g++) j.tweens[g].run(f);
return h.notifyWith(a, [j, f, c]), 1 > f && i ? c : (h.resolveWith(a, [j]), !1)
},
j = h.promise({
elem: a,
props: _.extend({}, b),
opts: _.extend(!0, {
specialEasing: {}
}, c),
originalProperties: b,
originalOptions: c,
startTime: Ya || D(),
duration: c.duration,
tweens: [],
createTween: function(b, c) {
var d = _.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing);
return j.tweens.push(d), d
},
stop: function(b) {
var c = 0,
d = b ? j.tweens.length : 0;
if (e) return this;
for (e = !0; d > c; c++) j.tweens[c].run(1);
return b ? h.resolveWith(a, [j, b]) : h.rejectWith(a, [j, b]), this
}
}),
k = j.props;
for (H(k, j.opts.specialEasing); g > f; f++)
if (d = bb[f].call(j, a, k, j.opts)) return d;
return _.map(k, F, j), _.isFunction(j.opts.start) && j.opts.start.call(a, j), _.fx.timer(_.extend(i, {
elem: a,
anim: j,
queue: j.opts.queue
})), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always)
}
function J(a) {
return function(b, c) {
"string" != typeof b && (c = b, b = "*");
var d, e = 0,
f = b.toLowerCase().match(na) || [];
if (_.isFunction(c))
for (; d = f[e++];) "+" === d[0] ? (d = d.slice(1) || "*", (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c)
}
}
function K(a, b, c, d) {
function e(h) {
var i;
return f[h] = !0, _.each(a[h] || [], function(a, h) {
var j = h(b, c, d);
return "string" != typeof j || g || f[j] ? g ? !(i = j) : void 0 : (b.dataTypes.unshift(j), e(j), !1)
}), i
}
var f = {},
g = a === tb;
return e(b.dataTypes[0]) || !f["*"] && e("*")
}
function L(a, b) {
var c, d, e = _.ajaxSettings.flatOptions || {};
for (c in b) void 0 !== b[c] && ((e[c] ? a : d || (d = {}))[c] = b[c]);
return d && _.extend(!0, a, d), a
}
function M(a, b, c) {
for (var d, e, f, g, h = a.contents, i = a.dataTypes;
"*" === i[0];) i.shift(), void 0 === d && (d = a.mimeType || b.getResponseHeader("Content-Type"));
if (d)
for (e in h)
if (h[e] && h[e].test(d)) {
i.unshift(e);
break
}
if (i[0] in c) f = i[0];
else {
for (e in c) {
if (!i[0] || a.converters[e + " " + i[0]]) {
f = e;
break
}
g || (g = e)
}
f = f || g
}
return f ? (f !== i[0] && i.unshift(f), c[f]) : void 0
}
function N(a, b, c, d) {
var e, f, g, h, i, j = {},
k = a.dataTypes.slice();
if (k[1])
for (g in a.converters) j[g.toLowerCase()] = a.converters[g];
for (f = k.shift(); f;)
if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift())
if ("*" === f) f = i;
else if ("*" !== i && i !== f) {
if (g = j[i + " " + f] || j["* " + f], !g)
for (e in j)
if (h = e.split(" "), h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) {
g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], k.unshift(h[1]));
break
}
if (g !== !0)
if (g && a["throws"]) b = g(b);
else try {
b = g(b)
} catch (l) {
return {
state: "parsererror",
error: g ? l : "No conversion from " + i + " to " + f
}
}
}
return {
state: "success",
data: b
}
}
function O(a, b, c, d) {
var e;
if (_.isArray(b)) _.each(b, function(b, e) {
c || yb.test(a) ? d(a, e) : O(a + "[" + ("object" == typeof e ? b : "") + "]", e, c, d)
});
else if (c || "object" !== _.type(b)) d(a, b);
else
for (e in b) O(a + "[" + e + "]", b[e], c, d)
}
function P(a) {
return _.isWindow(a) ? a : 9 === a.nodeType && a.defaultView
}
var Q = [],
R = Q.slice,
S = Q.concat,
T = Q.push,
U = Q.indexOf,
V = {},
W = V.toString,
X = V.hasOwnProperty,
Y = {},
Z = a.document,
$ = "2.1.4",
_ = function(a, b) {
return new _.fn.init(a, b)
},
aa = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
ba = /^-ms-/,
ca = /-([\da-z])/gi,
da = function(a, b) {
return b.toUpperCase()
};
_.fn = _.prototype = {
jquery: $,
constructor: _,
selector: "",
length: 0,
toArray: function() {
return R.call(this)
},
get: function(a) {
return null != a ? 0 > a ? this[a + this.length] : this[a] : R.call(this)
},
pushStack: function(a) {
var b = _.merge(this.constructor(), a);
return b.prevObject = this, b.context = this.context, b
},
each: function(a, b) {
return _.each(this, a, b)
},
map: function(a) {
return this.pushStack(_.map(this, function(b, c) {
return a.call(b, c, b)
}))
},
slice: function() {
return this.pushStack(R.apply(this, arguments))
},
first: function() {
return this.eq(0)
},
last: function() {
return this.eq(-1)
},
eq: function(a) {
var b = this.length,
c = +a + (0 > a ? b : 0);
return this.pushStack(c >= 0 && b > c ? [this[c]] : [])
},
end: function() {
return this.prevObject || this.constructor(null)
},
push: T,
sort: Q.sort,
splice: Q.splice
}, _.extend = _.fn.extend = function() {
var a, b, c, d, e, f, g = arguments[0] || {},
h = 1,
i = arguments.length,
j = !1;
for ("boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), "object" == typeof g || _.isFunction(g) || (g = {}), h === i && (g = this, h--); i > h; h++)
if (null != (a = arguments[h]))
for (b in a) c = g[b], d = a[b], g !== d && (j && d && (_.isPlainObject(d) || (e = _.isArray(d))) ? (e ? (e = !1, f = c && _.isArray(c) ? c : []) : f = c && _.isPlainObject(c) ? c : {}, g[b] = _.extend(j, f, d)) : void 0 !== d && (g[b] = d));
return g
}, _.extend({
expando: "jQuery" + ($ + Math.random()).replace(/\D/g, ""),
isReady: !0,
error: function(a) {
throw new Error(a)
},
noop: function() {},
isFunction: function(a) {
return "function" === _.type(a)
},
isArray: Array.isArray,
isWindow: function(a) {
return null != a && a === a.window
},
isNumeric: function(a) {
return !_.isArray(a) && a - parseFloat(a) + 1 >= 0
},
isPlainObject: function(a) {
return "object" !== _.type(a) || a.nodeType || _.isWindow(a) ? !1 : a.constructor && !X.call(a.constructor.prototype, "isPrototypeOf") ? !1 : !0
},
isEmptyObject: function(a) {
var b;
for (b in a) return !1;
return !0
},
type: function(a) {
return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? V[W.call(a)] || "object" : typeof a
},
globalEval: function(a) {
var b, c = eval;
a = _.trim(a), a && (1 === a.indexOf("use strict") ? (b = Z.createElement("script"), b.text = a, Z.head.appendChild(b).parentNode.removeChild(b)) : c(a))
},
camelCase: function(a) {
return a.replace(ba, "ms-").replace(ca, da)
},
nodeName: function(a, b) {
return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase()
},
each: function(a, b, d) {
var e, f = 0,
g = a.length,
h = c(a);
if (d) {
if (h)
for (; g > f && (e = b.apply(a[f], d), e !== !1); f++);
else
for (f in a)
if (e = b.apply(a[f], d), e === !1) break
} else if (h)
for (; g > f && (e = b.call(a[f], f, a[f]), e !== !1); f++);
else
for (f in a)
if (e = b.call(a[f], f, a[f]), e === !1) break; return a
},
trim: function(a) {
return null == a ? "" : (a + "").replace(aa, "")
},
makeArray: function(a, b) {
var d = b || [];
return null != a && (c(Object(a)) ? _.merge(d, "string" == typeof a ? [a] : a) : T.call(d, a)), d
},
inArray: function(a, b, c) {
return null == b ? -1 : U.call(b, a, c)
},
merge: function(a, b) {
for (var c = +b.length, d = 0, e = a.length; c > d; d++) a[e++] = b[d];
return a.length = e, a
},
grep: function(a, b, c) {
for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++) d = !b(a[f], f), d !== h && e.push(a[f]);
return e
},
map: function(a, b, d) {
var e, f = 0,
g = a.length,
h = c(a),
i = [];
if (h)
for (; g > f; f++) e = b(a[f], f, d), null != e && i.push(e);
else
for (f in a) e = b(a[f], f, d), null != e && i.push(e);
return S.apply([], i)
},
guid: 1,
proxy: function(a, b) {
var c, d, e;
return "string" == typeof b && (c = a[b], b = a, a = c), _.isFunction(a) ? (d = R.call(arguments, 2), e = function() {
return a.apply(b || this, d.concat(R.call(arguments)))
}, e.guid = a.guid = a.guid || _.guid++, e) : void 0
},
now: Date.now,
support: Y
}), _.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(a, b) {
V["[object " + b + "]"] = b.toLowerCase()
});
var ea = function(a) {
function b(a, b, c, d) {
var e, f, g, h, i, j, l, n, o, p;
if ((b ? b.ownerDocument || b : O) !== G && F(b), b = b || G, c = c || [], h = b.nodeType, "string" != typeof a || !a || 1 !== h && 9 !== h && 11 !== h) return c;
if (!d && I) {
if (11 !== h && (e = sa.exec(a)))
if (g = e[1]) {
if (9 === h) {
if (f = b.getElementById(g), !f || !f.parentNode) return c;
if (f.id === g) return c.push(f), c
} else if (b.ownerDocument && (f = b.ownerDocument.getElementById(g)) && M(b, f) && f.id === g) return c.push(f), c
} else {
if (e[2]) return $.apply(c, b.getElementsByTagName(a)), c;
if ((g = e[3]) && v.getElementsByClassName) return $.apply(c, b.getElementsByClassName(g)), c
}
if (v.qsa && (!J || !J.test(a))) {
if (n = l = N, o = b, p = 1 !== h && a, 1 === h && "object" !== b.nodeName.toLowerCase()) {
for (j = z(a), (l = b.getAttribute("id")) ? n = l.replace(ua, "\\$&") : b.setAttribute("id", n), n = "[id='" + n + "'] ", i = j.length; i--;) j[i] = n + m(j[i]);
o = ta.test(a) && k(b.parentNode) || b, p = j.join(",")
}
if (p) try {
return $.apply(c, o.querySelectorAll(p)), c
} catch (q) {} finally {
l || b.removeAttribute("id")
}
}
}
return B(a.replace(ia, "$1"), b, c, d)
}
function c() {
function a(c, d) {
return b.push(c + " ") > w.cacheLength && delete a[b.shift()], a[c + " "] = d
}
var b = [];
return a
}
function d(a) {
return a[N] = !0, a
}
function e(a) {
var b = G.createElement("div");
try {
return !!a(b)
} catch (c) {
return !1
} finally {
b.parentNode && b.parentNode.removeChild(b), b = null
}
}
function f(a, b) {
for (var c = a.split("|"), d = a.length; d--;) w.attrHandle[c[d]] = b
}
function g(a, b) {
var c = b && a,
d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || V) - (~a.sourceIndex || V);
if (d) return d;
if (c)
for (; c = c.nextSibling;)
if (c === b) return -1;
return a ? 1 : -1
}
function h(a) {
return function(b) {
var c = b.nodeName.toLowerCase();
return "input" === c && b.type === a
}
}
function i(a) {
return function(b) {
var c = b.nodeName.toLowerCase();
return ("input" === c || "button" === c) && b.type === a
}
}
function j(a) {
return d(function(b) {
return b = +b, d(function(c, d) {
for (var e, f = a([], c.length, b), g = f.length; g--;) c[e = f[g]] && (c[e] = !(d[e] = c[e]))
})
})
}
function k(a) {
return a && "undefined" != typeof a.getElementsByTagName && a
}
function l() {}
function m(a) {
for (var b = 0, c = a.length, d = ""; c > b; b++) d += a[b].value;
return d;
}
function n(a, b, c) {
var d = b.dir,
e = c && "parentNode" === d,
f = Q++;
return b.first ? function(b, c, f) {
for (; b = b[d];)
if (1 === b.nodeType || e) return a(b, c, f)
} : function(b, c, g) {
var h, i, j = [P, f];
if (g) {
for (; b = b[d];)
if ((1 === b.nodeType || e) && a(b, c, g)) return !0
} else
for (; b = b[d];)
if (1 === b.nodeType || e) {
if (i = b[N] || (b[N] = {}), (h = i[d]) && h[0] === P && h[1] === f) return j[2] = h[2];
if (i[d] = j, j[2] = a(b, c, g)) return !0
}
}
}
function o(a) {
return a.length > 1 ? function(b, c, d) {
for (var e = a.length; e--;)
if (!a[e](b, c, d)) return !1;
return !0
} : a[0]
}
function p(a, c, d) {
for (var e = 0, f = c.length; f > e; e++) b(a, c[e], d);
return d
}
function q(a, b, c, d, e) {
for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++)(f = a[h]) && (!c || c(f, d, e)) && (g.push(f), j && b.push(h));
return g
}
function r(a, b, c, e, f, g) {
return e && !e[N] && (e = r(e)), f && !f[N] && (f = r(f, g)), d(function(d, g, h, i) {
var j, k, l, m = [],
n = [],
o = g.length,
r = d || p(b || "*", h.nodeType ? [h] : h, []),
s = !a || !d && b ? r : q(r, m, a, h, i),
t = c ? f || (d ? a : o || e) ? [] : g : s;
if (c && c(s, t, h, i), e)
for (j = q(t, n), e(j, [], h, i), k = j.length; k--;)(l = j[k]) && (t[n[k]] = !(s[n[k]] = l));
if (d) {
if (f || a) {
if (f) {
for (j = [], k = t.length; k--;)(l = t[k]) && j.push(s[k] = l);
f(null, t = [], j, i)
}
for (k = t.length; k--;)(l = t[k]) && (j = f ? aa(d, l) : m[k]) > -1 && (d[j] = !(g[j] = l))
}
} else t = q(t === g ? t.splice(o, t.length) : t), f ? f(null, g, t, i) : $.apply(g, t)
})
}
function s(a) {
for (var b, c, d, e = a.length, f = w.relative[a[0].type], g = f || w.relative[" "], h = f ? 1 : 0, i = n(function(a) {
return a === b
}, g, !0), j = n(function(a) {
return aa(b, a) > -1
}, g, !0), k = [
function(a, c, d) {
var e = !f && (d || c !== C) || ((b = c).nodeType ? i(a, c, d) : j(a, c, d));
return b = null, e
}
]; e > h; h++)
if (c = w.relative[a[h].type]) k = [n(o(k), c)];
else {
if (c = w.filter[a[h].type].apply(null, a[h].matches), c[N]) {
for (d = ++h; e > d && !w.relative[a[d].type]; d++);
return r(h > 1 && o(k), h > 1 && m(a.slice(0, h - 1).concat({
value: " " === a[h - 2].type ? "*" : ""
})).replace(ia, "$1"), c, d > h && s(a.slice(h, d)), e > d && s(a = a.slice(d)), e > d && m(a))
}
k.push(c)
}
return o(k)
}
function t(a, c) {
var e = c.length > 0,
f = a.length > 0,
g = function(d, g, h, i, j) {
var k, l, m, n = 0,
o = "0",
p = d && [],
r = [],
s = C,
t = d || f && w.find.TAG("*", j),
u = P += null == s ? 1 : Math.random() || .1,
v = t.length;
for (j && (C = g !== G && g); o !== v && null != (k = t[o]); o++) {
if (f && k) {
for (l = 0; m = a[l++];)
if (m(k, g, h)) {
i.push(k);
break
}
j && (P = u)
}
e && ((k = !m && k) && n--, d && p.push(k))
}
if (n += o, e && o !== n) {
for (l = 0; m = c[l++];) m(p, r, g, h);
if (d) {
if (n > 0)
for (; o--;) p[o] || r[o] || (r[o] = Y.call(i));
r = q(r)
}
$.apply(i, r), j && !d && r.length > 0 && n + c.length > 1 && b.uniqueSort(i)
}
return j && (P = u, C = s), p
};
return e ? d(g) : g
}
var u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N = "sizzle" + 1 * new Date,
O = a.document,
P = 0,
Q = 0,
R = c(),
S = c(),
T = c(),
U = function(a, b) {
return a === b && (E = !0), 0
},
V = 1 << 31,
W = {}.hasOwnProperty,
X = [],
Y = X.pop,
Z = X.push,
$ = X.push,
_ = X.slice,
aa = function(a, b) {
for (var c = 0, d = a.length; d > c; c++)
if (a[c] === b) return c;
return -1
},
ba = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
ca = "[\\x20\\t\\r\\n\\f]",
da = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
ea = da.replace("w", "w#"),
fa = "\\[" + ca + "*(" + da + ")(?:" + ca + "*([*^$|!~]?=)" + ca + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + ea + "))|)" + ca + "*\\]",
ga = ":(" + da + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + fa + ")*)|.*)\\)|)",
ha = new RegExp(ca + "+", "g"),
ia = new RegExp("^" + ca + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ca + "+$", "g"),
ja = new RegExp("^" + ca + "*," + ca + "*"),
ka = new RegExp("^" + ca + "*([>+~]|" + ca + ")" + ca + "*"),
la = new RegExp("=" + ca + "*([^\\]'\"]*?)" + ca + "*\\]", "g"),
ma = new RegExp(ga),
na = new RegExp("^" + ea + "$"),
oa = {
ID: new RegExp("^#(" + da + ")"),
CLASS: new RegExp("^\\.(" + da + ")"),
TAG: new RegExp("^(" + da.replace("w", "w*") + ")"),
ATTR: new RegExp("^" + fa),
PSEUDO: new RegExp("^" + ga),
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ca + "*(even|odd|(([+-]|)(\\d*)n|)" + ca + "*(?:([+-]|)" + ca + "*(\\d+)|))" + ca + "*\\)|)", "i"),
bool: new RegExp("^(?:" + ba + ")$", "i"),
needsContext: new RegExp("^" + ca + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ca + "*((?:-\\d)?\\d*)" + ca + "*\\)|)(?=[^-]|$)", "i")
},
pa = /^(?:input|select|textarea|button)$/i,
qa = /^h\d$/i,
ra = /^[^{]+\{\s*\[native \w/,
sa = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
ta = /[+~]/,
ua = /'|\\/g,
va = new RegExp("\\\\([\\da-f]{1,6}" + ca + "?|(" + ca + ")|.)", "ig"),
wa = function(a, b, c) {
var d = "0x" + b - 65536;
return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320)
},
xa = function() {
F()
};
try {
$.apply(X = _.call(O.childNodes), O.childNodes), X[O.childNodes.length].nodeType
} catch (ya) {
$ = {
apply: X.length ? function(a, b) {
Z.apply(a, _.call(b))
} : function(a, b) {
for (var c = a.length, d = 0; a[c++] = b[d++];);
a.length = c - 1
}
}
}
v = b.support = {}, y = b.isXML = function(a) {
var b = a && (a.ownerDocument || a).documentElement;
return b ? "HTML" !== b.nodeName : !1
}, F = b.setDocument = function(a) {
var b, c, d = a ? a.ownerDocument || a : O;
return d !== G && 9 === d.nodeType && d.documentElement ? (G = d, H = d.documentElement, c = d.defaultView, c && c !== c.top && (c.addEventListener ? c.addEventListener("unload", xa, !1) : c.attachEvent && c.attachEvent("onunload", xa)), I = !y(d), v.attributes = e(function(a) {
return a.className = "i", !a.getAttribute("className")
}), v.getElementsByTagName = e(function(a) {
return a.appendChild(d.createComment("")), !a.getElementsByTagName("*").length
}), v.getElementsByClassName = ra.test(d.getElementsByClassName), v.getById = e(function(a) {
return H.appendChild(a).id = N, !d.getElementsByName || !d.getElementsByName(N).length
}), v.getById ? (w.find.ID = function(a, b) {
if ("undefined" != typeof b.getElementById && I) {
var c = b.getElementById(a);
return c && c.parentNode ? [c] : []
}
}, w.filter.ID = function(a) {
var b = a.replace(va, wa);
return function(a) {
return a.getAttribute("id") === b
}
}) : (delete w.find.ID, w.filter.ID = function(a) {
var b = a.replace(va, wa);
return function(a) {
var c = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id");
return c && c.value === b
}
}), w.find.TAG = v.getElementsByTagName ? function(a, b) {
return "undefined" != typeof b.getElementsByTagName ? b.getElementsByTagName(a) : v.qsa ? b.querySelectorAll(a) : void 0
} : function(a, b) {
var c, d = [],
e = 0,
f = b.getElementsByTagName(a);
if ("*" === a) {
for (; c = f[e++];) 1 === c.nodeType && d.push(c);
return d
}
return f
}, w.find.CLASS = v.getElementsByClassName && function(a, b) {
return I ? b.getElementsByClassName(a) : void 0
}, K = [], J = [], (v.qsa = ra.test(d.querySelectorAll)) && (e(function(a) {
H.appendChild(a).innerHTML = "<a id='" + N + "'></a><select id='" + N + "-\f]' msallowcapture=''><option selected=''></option></select>", a.querySelectorAll("[msallowcapture^='']").length && J.push("[*^$]=" + ca + "*(?:''|\"\")"), a.querySelectorAll("[selected]").length || J.push("\\[" + ca + "*(?:value|" + ba + ")"), a.querySelectorAll("[id~=" + N + "-]").length || J.push("~="), a.querySelectorAll(":checked").length || J.push(":checked"), a.querySelectorAll("a#" + N + "+*").length || J.push(".#.+[+~]")
}), e(function(a) {
var b = d.createElement("input");
b.setAttribute("type", "hidden"), a.appendChild(b).setAttribute("name", "D"), a.querySelectorAll("[name=d]").length && J.push("name" + ca + "*[*^$|!~]?="), a.querySelectorAll(":enabled").length || J.push(":enabled", ":disabled"), a.querySelectorAll("*,:x"), J.push(",.*:")
})), (v.matchesSelector = ra.test(L = H.matches || H.webkitMatchesSelector || H.mozMatchesSelector || H.oMatchesSelector || H.msMatchesSelector)) && e(function(a) {
v.disconnectedMatch = L.call(a, "div"), L.call(a, "[s!='']:x"), K.push("!=", ga)
}), J = J.length && new RegExp(J.join("|")), K = K.length && new RegExp(K.join("|")), b = ra.test(H.compareDocumentPosition), M = b || ra.test(H.contains) ? function(a, b) {
var c = 9 === a.nodeType ? a.documentElement : a,
d = b && b.parentNode;
return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d)))
} : function(a, b) {
if (b)
for (; b = b.parentNode;)
if (b === a) return !0;
return !1
}, U = b ? function(a, b) {
if (a === b) return E = !0, 0;
var c = !a.compareDocumentPosition - !b.compareDocumentPosition;
return c ? c : (c = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & c || !v.sortDetached && b.compareDocumentPosition(a) === c ? a === d || a.ownerDocument === O && M(O, a) ? -1 : b === d || b.ownerDocument === O && M(O, b) ? 1 : D ? aa(D, a) - aa(D, b) : 0 : 4 & c ? -1 : 1)
} : function(a, b) {
if (a === b) return E = !0, 0;
var c, e = 0,
f = a.parentNode,
h = b.parentNode,
i = [a],
j = [b];
if (!f || !h) return a === d ? -1 : b === d ? 1 : f ? -1 : h ? 1 : D ? aa(D, a) - aa(D, b) : 0;
if (f === h) return g(a, b);
for (c = a; c = c.parentNode;) i.unshift(c);
for (c = b; c = c.parentNode;) j.unshift(c);
for (; i[e] === j[e];) e++;
return e ? g(i[e], j[e]) : i[e] === O ? -1 : j[e] === O ? 1 : 0
}, d) : G
}, b.matches = function(a, c) {
return b(a, null, null, c)
}, b.matchesSelector = function(a, c) {
if ((a.ownerDocument || a) !== G && F(a), c = c.replace(la, "='$1']"), !(!v.matchesSelector || !I || K && K.test(c) || J && J.test(c))) try {
var d = L.call(a, c);
if (d || v.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d
} catch (e) {}
return b(c, G, null, [a]).length > 0
}, b.contains = function(a, b) {
return (a.ownerDocument || a) !== G && F(a), M(a, b)
}, b.attr = function(a, b) {
(a.ownerDocument || a) !== G && F(a);
var c = w.attrHandle[b.toLowerCase()],
d = c && W.call(w.attrHandle, b.toLowerCase()) ? c(a, b, !I) : void 0;
return void 0 !== d ? d : v.attributes || !I ? a.getAttribute(b) : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
}, b.error = function(a) {
throw new Error("Syntax error, unrecognized expression: " + a)
}, b.uniqueSort = function(a) {
var b, c = [],
d = 0,
e = 0;
if (E = !v.detectDuplicates, D = !v.sortStable && a.slice(0), a.sort(U), E) {
for (; b = a[e++];) b === a[e] && (d = c.push(e));
for (; d--;) a.splice(c[d], 1)
}
return D = null, a
}, x = b.getText = function(a) {
var b, c = "",
d = 0,
e = a.nodeType;
if (e) {
if (1 === e || 9 === e || 11 === e) {
if ("string" == typeof a.textContent) return a.textContent;
for (a = a.firstChild; a; a = a.nextSibling) c += x(a)
} else if (3 === e || 4 === e) return a.nodeValue
} else
for (; b = a[d++];) c += x(b);
return c
}, w = b.selectors = {
cacheLength: 50,
createPseudo: d,
match: oa,
attrHandle: {},
find: {},
relative: {
">": {
dir: "parentNode",
first: !0
},
" ": {
dir: "parentNode"
},
"+": {
dir: "previousSibling",
first: !0
},
"~": {
dir: "previousSibling"
}
},
preFilter: {
ATTR: function(a) {
return a[1] = a[1].replace(va, wa), a[3] = (a[3] || a[4] || a[5] || "").replace(va, wa), "~=" === a[2] && (a[3] = " " + a[3] + " "), a.slice(0, 4)
},
CHILD: function(a) {
return a[1] = a[1].toLowerCase(), "nth" === a[1].slice(0, 3) ? (a[3] || b.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])), a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && b.error(a[0]), a
},
PSEUDO: function(a) {
var b, c = !a[6] && a[2];
return oa.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && ma.test(c) && (b = z(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3))
}
},
filter: {
TAG: function(a) {
var b = a.replace(va, wa).toLowerCase();
return "*" === a ? function() {
return !0
} : function(a) {
return a.nodeName && a.nodeName.toLowerCase() === b
}
},
CLASS: function(a) {
var b = R[a + " "];
return b || (b = new RegExp("(^|" + ca + ")" + a + "(" + ca + "|$)")) && R(a, function(a) {
return b.test("string" == typeof a.className && a.className || "undefined" != typeof a.getAttribute && a.getAttribute("class") || "")
})
},
ATTR: function(a, c, d) {
return function(e) {
var f = b.attr(e, a);
return null == f ? "!=" === c : c ? (f += "", "=" === c ? f === d : "!=" === c ? f !== d : "^=" === c ? d && 0 === f.indexOf(d) : "*=" === c ? d && f.indexOf(d) > -1 : "$=" === c ? d && f.slice(-d.length) === d : "~=" === c ? (" " + f.replace(ha, " ") + " ").indexOf(d) > -1 : "|=" === c ? f === d || f.slice(0, d.length + 1) === d + "-" : !1) : !0
}
},
CHILD: function(a, b, c, d, e) {
var f = "nth" !== a.slice(0, 3),
g = "last" !== a.slice(-4),
h = "of-type" === b;
return 1 === d && 0 === e ? function(a) {
return !!a.parentNode
} : function(b, c, i) {
var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling",
q = b.parentNode,
r = h && b.nodeName.toLowerCase(),
s = !i && !h;
if (q) {
if (f) {
for (; p;) {
for (l = b; l = l[p];)
if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) return !1;
o = p = "only" === a && !o && "nextSibling"
}
return !0
}
if (o = [g ? q.firstChild : q.lastChild], g && s) {
for (k = q[N] || (q[N] = {}), j = k[a] || [], n = j[0] === P && j[1], m = j[0] === P && j[2], l = n && q.childNodes[n]; l = ++n && l && l[p] || (m = n = 0) || o.pop();)
if (1 === l.nodeType && ++m && l === b) {
k[a] = [P, n, m];
break
}
} else if (s && (j = (b[N] || (b[N] = {}))[a]) && j[0] === P) m = j[1];
else
for (;
(l = ++n && l && l[p] || (m = n = 0) || o.pop()) && ((h ? l.nodeName.toLowerCase() !== r : 1 !== l.nodeType) || !++m || (s && ((l[N] || (l[N] = {}))[a] = [P, m]), l !== b)););
return m -= e, m === d || m % d === 0 && m / d >= 0
}
}
},
PSEUDO: function(a, c) {
var e, f = w.pseudos[a] || w.setFilters[a.toLowerCase()] || b.error("unsupported pseudo: " + a);
return f[N] ? f(c) : f.length > 1 ? (e = [a, a, "", c], w.setFilters.hasOwnProperty(a.toLowerCase()) ? d(function(a, b) {
for (var d, e = f(a, c), g = e.length; g--;) d = aa(a, e[g]), a[d] = !(b[d] = e[g])
}) : function(a) {
return f(a, 0, e)
}) : f
}
},
pseudos: {
not: d(function(a) {
var b = [],
c = [],
e = A(a.replace(ia, "$1"));
return e[N] ? d(function(a, b, c, d) {
for (var f, g = e(a, null, d, []), h = a.length; h--;)(f = g[h]) && (a[h] = !(b[h] = f))
}) : function(a, d, f) {
return b[0] = a, e(b, null, f, c), b[0] = null, !c.pop()
}
}),
has: d(function(a) {
return function(c) {
return b(a, c).length > 0
}
}),
contains: d(function(a) {
return a = a.replace(va, wa),
function(b) {
return (b.textContent || b.innerText || x(b)).indexOf(a) > -1
}
}),
lang: d(function(a) {
return na.test(a || "") || b.error("unsupported lang: " + a), a = a.replace(va, wa).toLowerCase(),
function(b) {
var c;
do
if (c = I ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-");
while ((b = b.parentNode) && 1 === b.nodeType);
return !1
}
}),
target: function(b) {
var c = a.location && a.location.hash;
return c && c.slice(1) === b.id
},
root: function(a) {
return a === H
},
focus: function(a) {
return a === G.activeElement && (!G.hasFocus || G.hasFocus()) && !!(a.type || a.href || ~a.tabIndex)
},
enabled: function(a) {
return a.disabled === !1
},
disabled: function(a) {
return a.disabled === !0
},
checked: function(a) {
var b = a.nodeName.toLowerCase();
return "input" === b && !!a.checked || "option" === b && !!a.selected
},
selected: function(a) {
return a.parentNode && a.parentNode.selectedIndex, a.selected === !0
},
empty: function(a) {
for (a = a.firstChild; a; a = a.nextSibling)
if (a.nodeType < 6) return !1;
return !0
},
parent: function(a) {
return !w.pseudos.empty(a)
},
header: function(a) {
return qa.test(a.nodeName)
},
input: function(a) {
return pa.test(a.nodeName)
},
button: function(a) {
var b = a.nodeName.toLowerCase();
return "input" === b && "button" === a.type || "button" === b
},
text: function(a) {
var b;
return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase())
},
first: j(function() {
return [0]
}),
last: j(function(a, b) {
return [b - 1]
}),
eq: j(function(a, b, c) {
return [0 > c ? c + b : c]
}),
even: j(function(a, b) {
for (var c = 0; b > c; c += 2) a.push(c);
return a
}),
odd: j(function(a, b) {
for (var c = 1; b > c; c += 2) a.push(c);
return a
}),
lt: j(function(a, b, c) {
for (var d = 0 > c ? c + b : c; --d >= 0;) a.push(d);
return a
}),
gt: j(function(a, b, c) {
for (var d = 0 > c ? c + b : c; ++d < b;) a.push(d);
return a
})
}
}, w.pseudos.nth = w.pseudos.eq;
for (u in {
radio: !0,
checkbox: !0,
file: !0,
password: !0,
image: !0
}) w.pseudos[u] = h(u);
for (u in {
submit: !0,
reset: !0
}) w.pseudos[u] = i(u);
return l.prototype = w.filters = w.pseudos, w.setFilters = new l, z = b.tokenize = function(a, c) {
var d, e, f, g, h, i, j, k = S[a + " "];
if (k) return c ? 0 : k.slice(0);
for (h = a, i = [], j = w.preFilter; h;) {
(!d || (e = ja.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push(f = [])), d = !1, (e = ka.exec(h)) && (d = e.shift(), f.push({
value: d,
type: e[0].replace(ia, " ")
}), h = h.slice(d.length));
for (g in w.filter)!(e = oa[g].exec(h)) || j[g] && !(e = j[g](e)) || (d = e.shift(), f.push({
value: d,
type: g,
matches: e
}), h = h.slice(d.length));
if (!d) break
}
return c ? h.length : h ? b.error(a) : S(a, i).slice(0)
}, A = b.compile = function(a, b) {
var c, d = [],
e = [],
f = T[a + " "];
if (!f) {
for (b || (b = z(a)), c = b.length; c--;) f = s(b[c]), f[N] ? d.push(f) : e.push(f);
f = T(a, t(e, d)), f.selector = a
}
return f
}, B = b.select = function(a, b, c, d) {
var e, f, g, h, i, j = "function" == typeof a && a,
l = !d && z(a = j.selector || a);
if (c = c || [], 1 === l.length) {
if (f = l[0] = l[0].slice(0), f.length > 2 && "ID" === (g = f[0]).type && v.getById && 9 === b.nodeType && I && w.relative[f[1].type]) {
if (b = (w.find.ID(g.matches[0].replace(va, wa), b) || [])[0], !b) return c;
j && (b = b.parentNode), a = a.slice(f.shift().value.length)
}
for (e = oa.needsContext.test(a) ? 0 : f.length; e-- && (g = f[e], !w.relative[h = g.type]);)
if ((i = w.find[h]) && (d = i(g.matches[0].replace(va, wa), ta.test(f[0].type) && k(b.parentNode) || b))) {
if (f.splice(e, 1), a = d.length && m(f), !a) return $.apply(c, d), c;
break
}
}
return (j || A(a, l))(d, b, !I, c, ta.test(a) && k(b.parentNode) || b), c
}, v.sortStable = N.split("").sort(U).join("") === N, v.detectDuplicates = !!E, F(), v.sortDetached = e(function(a) {
return 1 & a.compareDocumentPosition(G.createElement("div"))
}), e(function(a) {
return a.innerHTML = "<a href='#'></a>", "#" === a.firstChild.getAttribute("href")
}) || f("type|href|height|width", function(a, b, c) {
return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2)
}), v.attributes && e(function(a) {
return a.innerHTML = "<input/>", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value")
}) || f("value", function(a, b, c) {
return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue
}), e(function(a) {
return null == a.getAttribute("disabled")
}) || f(ba, function(a, b, c) {
var d;
return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
}), b
}(a);
_.find = ea, _.expr = ea.selectors, _.expr[":"] = _.expr.pseudos, _.unique = ea.uniqueSort, _.text = ea.getText, _.isXMLDoc = ea.isXML, _.contains = ea.contains;
var fa = _.expr.match.needsContext,
ga = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
ha = /^.[^:#\[\.,]*$/;
_.filter = function(a, b, c) {
var d = b[0];
return c && (a = ":not(" + a + ")"), 1 === b.length && 1 === d.nodeType ? _.find.matchesSelector(d, a) ? [d] : [] : _.find.matches(a, _.grep(b, function(a) {
return 1 === a.nodeType
}))
}, _.fn.extend({
find: function(a) {
var b, c = this.length,
d = [],
e = this;
if ("string" != typeof a) return this.pushStack(_(a).filter(function() {
for (b = 0; c > b; b++)
if (_.contains(e[b], this)) return !0
}));
for (b = 0; c > b; b++) _.find(a, e[b], d);
return d = this.pushStack(c > 1 ? _.unique(d) : d), d.selector = this.selector ? this.selector + " " + a : a, d
},
filter: function(a) {
return this.pushStack(d(this, a || [], !1))
},
not: function(a) {
return this.pushStack(d(this, a || [], !0))
},
is: function(a) {
return !!d(this, "string" == typeof a && fa.test(a) ? _(a) : a || [], !1).length
}
});
var ia, ja = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
ka = _.fn.init = function(a, b) {
var c, d;
if (!a) return this;
if ("string" == typeof a) {
if (c = "<" === a[0] && ">" === a[a.length - 1] && a.length >= 3 ? [null, a, null] : ja.exec(a), !c || !c[1] && b) return !b || b.jquery ? (b || ia).find(a) : this.constructor(b).find(a);
if (c[1]) {
if (b = b instanceof _ ? b[0] : b, _.merge(this, _.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : Z, !0)), ga.test(c[1]) && _.isPlainObject(b))
for (c in b) _.isFunction(this[c]) ? this[c](b[c]) : this.attr(c, b[c]);
return this
}
return d = Z.getElementById(c[2]), d && d.parentNode && (this.length = 1, this[0] = d), this.context = Z, this.selector = a, this
}
return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : _.isFunction(a) ? "undefined" != typeof ia.ready ? ia.ready(a) : a(_) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), _.makeArray(a, this))
};
ka.prototype = _.fn, ia = _(Z);
var la = /^(?:parents|prev(?:Until|All))/,
ma = {
children: !0,
contents: !0,
next: !0,
prev: !0
};
_.extend({
dir: function(a, b, c) {
for (var d = [], e = void 0 !== c;
(a = a[b]) && 9 !== a.nodeType;)
if (1 === a.nodeType) {
if (e && _(a).is(c)) break;
d.push(a)
}
return d
},
sibling: function(a, b) {
for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a);
return c
}
}), _.fn.extend({
has: function(a) {
var b = _(a, this),
c = b.length;
return this.filter(function() {
for (var a = 0; c > a; a++)
if (_.contains(this, b[a])) return !0
})
},
closest: function(a, b) {
for (var c, d = 0, e = this.length, f = [], g = fa.test(a) || "string" != typeof a ? _(a, b || this.context) : 0; e > d; d++)
for (c = this[d]; c && c !== b; c = c.parentNode)
if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && _.find.matchesSelector(c, a))) {
f.push(c);
break
}
return this.pushStack(f.length > 1 ? _.unique(f) : f)
},
index: function(a) {
return a ? "string" == typeof a ? U.call(_(a), this[0]) : U.call(this, a.jquery ? a[0] : a) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
},
add: function(a, b) {
return this.pushStack(_.unique(_.merge(this.get(), _(a, b))))
},
addBack: function(a) {
return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
}
}), _.each({
parent: function(a) {
var b = a.parentNode;
return b && 11 !== b.nodeType ? b : null
},
parents: function(a) {
return _.dir(a, "parentNode")
},
parentsUntil: function(a, b, c) {
return _.dir(a, "parentNode", c)
},
next: function(a) {
return e(a, "nextSibling")
},
prev: function(a) {
return e(a, "previousSibling")
},
nextAll: function(a) {
return _.dir(a, "nextSibling")
},
prevAll: function(a) {
return _.dir(a, "previousSibling")
},
nextUntil: function(a, b, c) {
return _.dir(a, "nextSibling", c)
},
prevUntil: function(a, b, c) {
return _.dir(a, "previousSibling", c)
},
siblings: function(a) {
return _.sibling((a.parentNode || {}).firstChild, a)
},
children: function(a) {
return _.sibling(a.firstChild)
},
contents: function(a) {
return a.contentDocument || _.merge([], a.childNodes)
}
}, function(a, b) {
_.fn[a] = function(c, d) {
var e = _.map(this, b, c);
return "Until" !== a.slice(-5) && (d = c), d && "string" == typeof d && (e = _.filter(d, e)), this.length > 1 && (ma[a] || _.unique(e), la.test(a) && e.reverse()), this.pushStack(e)
}
});
var na = /\S+/g,
oa = {};
_.Callbacks = function(a) {
a = "string" == typeof a ? oa[a] || f(a) : _.extend({}, a);
var b, c, d, e, g, h, i = [],
j = !a.once && [],
k = function(f) {
for (b = a.memory && f, c = !0, h = e || 0, e = 0, g = i.length, d = !0; i && g > h; h++)
if (i[h].apply(f[0], f[1]) === !1 && a.stopOnFalse) {
b = !1;
break
}
d = !1, i && (j ? j.length && k(j.shift()) : b ? i = [] : l.disable())
},
l = {
add: function() {
if (i) {
var c = i.length;
! function f(b) {
_.each(b, function(b, c) {
var d = _.type(c);
"function" === d ? a.unique && l.has(c) || i.push(c) : c && c.length && "string" !== d && f(c)
})
}(arguments), d ? g = i.length : b && (e = c, k(b))
}
return this
},
remove: function() {
return i && _.each(arguments, function(a, b) {
for (var c;
(c = _.inArray(b, i, c)) > -1;) i.splice(c, 1), d && (g >= c && g--, h >= c && h--)
}), this
},
has: function(a) {
return a ? _.inArray(a, i) > -1 : !(!i || !i.length)
},
empty: function() {
return i = [], g = 0, this
},
disable: function() {
return i = j = b = void 0, this
},
disabled: function() {
return !i
},
lock: function() {
return j = void 0, b || l.disable(), this
},
locked: function() {
return !j
},
fireWith: function(a, b) {
return !i || c && !j || (b = b || [], b = [a, b.slice ? b.slice() : b], d ? j.push(b) : k(b)), this
},
fire: function() {
return l.fireWith(this, arguments), this
},
fired: function() {
return !!c
}
};
return l
}, _.extend({
Deferred: function(a) {
var b = [
["resolve", "done", _.Callbacks("once memory"), "resolved"],
["reject", "fail", _.Callbacks("once memory"), "rejected"],
["notify", "progress", _.Callbacks("memory")]
],
c = "pending",
d = {
state: function() {
return c
},
always: function() {
return e.done(arguments).fail(arguments), this
},
then: function() {
var a = arguments;
return _.Deferred(function(c) {
_.each(b, function(b, f) {
var g = _.isFunction(a[b]) && a[b];
e[f[1]](function() {
var a = g && g.apply(this, arguments);
a && _.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments)
})
}), a = null
}).promise()
},
promise: function(a) {
return null != a ? _.extend(a, d) : d
}
},
e = {};
return d.pipe = d.then, _.each(b, function(a, f) {
var g = f[2],
h = f[3];
d[f[1]] = g.add, h && g.add(function() {
c = h
}, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = function() {
return e[f[0] + "With"](this === e ? d : this, arguments), this
}, e[f[0] + "With"] = g.fireWith
}), d.promise(e), a && a.call(e, e), e
},
when: function(a) {
var b, c, d, e = 0,
f = R.call(arguments),
g = f.length,
h = 1 !== g || a && _.isFunction(a.promise) ? g : 0,
i = 1 === h ? a : _.Deferred(),
j = function(a, c, d) {
return function(e) {
c[a] = this, d[a] = arguments.length > 1 ? R.call(arguments) : e, d === b ? i.notifyWith(c, d) : --h || i.resolveWith(c, d)
}
};
if (g > 1)
for (b = new Array(g), c = new Array(g), d = new Array(g); g > e; e++) f[e] && _.isFunction(f[e].promise) ? f[e].promise().done(j(e, d, f)).fail(i.reject).progress(j(e, c, b)) : --h;
return h || i.resolveWith(d, f), i.promise()
}
});
var pa;
_.fn.ready = function(a) {
return _.ready.promise().done(a), this
}, _.extend({
isReady: !1,
readyWait: 1,
holdReady: function(a) {
a ? _.readyWait++ : _.ready(!0)
},
ready: function(a) {
(a === !0 ? --_.readyWait : _.isReady) || (_.isReady = !0, a !== !0 && --_.readyWait > 0 || (pa.resolveWith(Z, [_]), _.fn.triggerHandler && (_(Z).triggerHandler("ready"), _(Z).off("ready"))))
}
}), _.ready.promise = function(b) {
return pa || (pa = _.Deferred(), "complete" === Z.readyState ? setTimeout(_.ready) : (Z.addEventListener("DOMContentLoaded", g, !1), a.addEventListener("load", g, !1))), pa.promise(b)
}, _.ready.promise();
var qa = _.access = function(a, b, c, d, e, f, g) {
var h = 0,
i = a.length,
j = null == c;
if ("object" === _.type(c)) {
e = !0;
for (h in c) _.access(a, b, h, c[h], !0, f, g)
} else if (void 0 !== d && (e = !0, _.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function(a, b, c) {
return j.call(_(a), c)
})), b))
for (; i > h; h++) b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c)));
return e ? a : j ? b.call(a) : i ? b(a[0], c) : f
};
_.acceptData = function(a) {
return 1 === a.nodeType || 9 === a.nodeType || !+a.nodeType
}, h.uid = 1, h.accepts = _.acceptData, h.prototype = {
key: function(a) {
if (!h.accepts(a)) return 0;
var b = {},
c = a[this.expando];
if (!c) {
c = h.uid++;
try {
b[this.expando] = {
value: c
}, Object.defineProperties(a, b)
} catch (d) {
b[this.expando] = c, _.extend(a, b)
}
}
return this.cache[c] || (this.cache[c] = {}), c
},
set: function(a, b, c) {
var d, e = this.key(a),
f = this.cache[e];
if ("string" == typeof b) f[b] = c;
else if (_.isEmptyObject(f)) _.extend(this.cache[e], b);
else
for (d in b) f[d] = b[d];
return f
},
get: function(a, b) {
var c = this.cache[this.key(a)];
return void 0 === b ? c : c[b]
},
access: function(a, b, c) {
var d;
return void 0 === b || b && "string" == typeof b && void 0 === c ? (d = this.get(a, b), void 0 !== d ? d : this.get(a, _.camelCase(b))) : (this.set(a, b, c), void 0 !== c ? c : b)
},
remove: function(a, b) {
var c, d, e, f = this.key(a),
g = this.cache[f];
if (void 0 === b) this.cache[f] = {};
else {
_.isArray(b) ? d = b.concat(b.map(_.camelCase)) : (e = _.camelCase(b), b in g ? d = [b, e] : (d = e, d = d in g ? [d] : d.match(na) || [])), c = d.length;
for (; c--;) delete g[d[c]]
}
},
hasData: function(a) {
return !_.isEmptyObject(this.cache[a[this.expando]] || {})
},
discard: function(a) {
a[this.expando] && delete this.cache[a[this.expando]]
}
};
var ra = new h,
sa = new h,
ta = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
ua = /([A-Z])/g;
_.extend({
hasData: function(a) {
return sa.hasData(a) || ra.hasData(a)
},
data: function(a, b, c) {
return sa.access(a, b, c)
},
removeData: function(a, b) {
sa.remove(a, b)
},
_data: function(a, b, c) {
return ra.access(a, b, c)
},
_removeData: function(a, b) {
ra.remove(a, b)
}
}), _.fn.extend({
data: function(a, b) {
var c, d, e, f = this[0],
g = f && f.attributes;
if (void 0 === a) {
if (this.length && (e = sa.get(f), 1 === f.nodeType && !ra.get(f, "hasDataAttrs"))) {
for (c = g.length; c--;) g[c] && (d = g[c].name, 0 === d.indexOf("data-") && (d = _.camelCase(d.slice(5)), i(f, d, e[d])));
ra.set(f, "hasDataAttrs", !0)
}
return e
}
return "object" == typeof a ? this.each(function() {
sa.set(this, a)
}) : qa(this, function(b) {
var c, d = _.camelCase(a);
if (f && void 0 === b) {
if (c = sa.get(f, a), void 0 !== c) return c;
if (c = sa.get(f, d), void 0 !== c) return c;
if (c = i(f, d, void 0), void 0 !== c) return c
} else this.each(function() {
var c = sa.get(this, d);
sa.set(this, d, b), -1 !== a.indexOf("-") && void 0 !== c && sa.set(this, a, b)
})
}, null, b, arguments.length > 1, null, !0)
},
removeData: function(a) {
return this.each(function() {
sa.remove(this, a)
})
}
}), _.extend({
queue: function(a, b, c) {
var d;
return a ? (b = (b || "fx") + "queue", d = ra.get(a, b), c && (!d || _.isArray(c) ? d = ra.access(a, b, _.makeArray(c)) : d.push(c)), d || []) : void 0
},
dequeue: function(a, b) {
b = b || "fx";
var c = _.queue(a, b),
d = c.length,
e = c.shift(),
f = _._queueHooks(a, b),
g = function() {
_.dequeue(a, b)
};
"inprogress" === e && (e = c.shift(), d--), e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire()
},
_queueHooks: function(a, b) {
var c = b + "queueHooks";
return ra.get(a, c) || ra.access(a, c, {
empty: _.Callbacks("once memory").add(function() {
ra.remove(a, [b + "queue", c])
})
})
}
}), _.fn.extend({
queue: function(a, b) {
var c = 2;
return "string" != typeof a && (b = a, a = "fx", c--), arguments.length < c ? _.queue(this[0], a) : void 0 === b ? this : this.each(function() {
var c = _.queue(this, a, b);
_._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && _.dequeue(this, a)
})
},
dequeue: function(a) {
return this.each(function() {
_.dequeue(this, a)
})
},
clearQueue: function(a) {
return this.queue(a || "fx", [])
},
promise: function(a, b) {
var c, d = 1,
e = _.Deferred(),
f = this,
g = this.length,
h = function() {
--d || e.resolveWith(f, [f])
};
for ("string" != typeof a && (b = a, a = void 0), a = a || "fx"; g--;) c = ra.get(f[g], a + "queueHooks"), c && c.empty && (d++, c.empty.add(h));
return h(), e.promise(b)
}
});
var va = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
wa = ["Top", "Right", "Bottom", "Left"],
xa = function(a, b) {
return a = b || a, "none" === _.css(a, "display") || !_.contains(a.ownerDocument, a)
},
ya = /^(?:checkbox|radio)$/i;
! function() {
var a = Z.createDocumentFragment(),
b = a.appendChild(Z.createElement("div")),
c = Z.createElement("input");
c.setAttribute("type", "radio"), c.setAttribute("checked", "checked"), c.setAttribute("name", "t"), b.appendChild(c), Y.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, b.innerHTML = "<textarea>x</textarea>", Y.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue
}();
var za = "undefined";
Y.focusinBubbles = "onfocusin" in a;
var Aa = /^key/,
Ba = /^(?:mouse|pointer|contextmenu)|click/,
Ca = /^(?:focusinfocus|focusoutblur)$/,
Da = /^([^.]*)(?:\.(.+)|)$/;
_.event = {
global: {},
add: function(a, b, c, d, e) {
var f, g, h, i, j, k, l, m, n, o, p, q = ra.get(a);
if (q)
for (c.handler && (f = c, c = f.handler, e = f.selector), c.guid || (c.guid = _.guid++), (i = q.events) || (i = q.events = {}), (g = q.handle) || (g = q.handle = function(b) {
return typeof _ !== za && _.event.triggered !== b.type ? _.event.dispatch.apply(a, arguments) : void 0
}), b = (b || "").match(na) || [""], j = b.length; j--;) h = Da.exec(b[j]) || [], n = p = h[1], o = (h[2] || "").split(".").sort(), n && (l = _.event.special[n] || {}, n = (e ? l.delegateType : l.bindType) || n, l = _.event.special[n] || {}, k = _.extend({
type: n,
origType: p,
data: d,
handler: c,
guid: c.guid,
selector: e,
needsContext: e && _.expr.match.needsContext.test(e),
namespace: o.join(".")
}, f), (m = i[n]) || (m = i[n] = [], m.delegateCount = 0, l.setup && l.setup.call(a, d, o, g) !== !1 || a.addEventListener && a.addEventListener(n, g, !1)), l.add && (l.add.call(a, k), k.handler.guid || (k.handler.guid = c.guid)), e ? m.splice(m.delegateCount++, 0, k) : m.push(k), _.event.global[n] = !0)
},
remove: function(a, b, c, d, e) {
var f, g, h, i, j, k, l, m, n, o, p, q = ra.hasData(a) && ra.get(a);
if (q && (i = q.events)) {
for (b = (b || "").match(na) || [""], j = b.length; j--;)
if (h = Da.exec(b[j]) || [], n = p = h[1], o = (h[2] || "").split(".").sort(), n) {
for (l = _.event.special[n] || {}, n = (d ? l.delegateType : l.bindType) || n, m = i[n] || [], h = h[2] && new RegExp("(^|\\.)" + o.join("\\.(?:.*\\.|)") + "(\\.|$)"), g = f = m.length; f--;) k = m[f], !e && p !== k.origType || c && c.guid !== k.guid || h && !h.test(k.namespace) || d && d !== k.selector && ("**" !== d || !k.selector) || (m.splice(f, 1), k.selector && m.delegateCount--, l.remove && l.remove.call(a, k));
g && !m.length && (l.teardown && l.teardown.call(a, o, q.handle) !== !1 || _.removeEvent(a, n, q.handle), delete i[n])
} else
for (n in i) _.event.remove(a, n + b[j], c, d, !0);
_.isEmptyObject(i) && (delete q.handle, ra.remove(a, "events"))
}
},
trigger: function(b, c, d, e) {
var f, g, h, i, j, k, l, m = [d || Z],
n = X.call(b, "type") ? b.type : b,
o = X.call(b, "namespace") ? b.namespace.split(".") : [];
if (g = h = d = d || Z, 3 !== d.nodeType && 8 !== d.nodeType && !Ca.test(n + _.event.triggered) && (n.indexOf(".") >= 0 && (o = n.split("."), n = o.shift(), o.sort()), j = n.indexOf(":") < 0 && "on" + n, b = b[_.expando] ? b : new _.Event(n, "object" == typeof b && b), b.isTrigger = e ? 2 : 3, b.namespace = o.join("."), b.namespace_re = b.namespace ? new RegExp("(^|\\.)" + o.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [b] : _.makeArray(c, [b]), l = _.event.special[n] || {}, e || !l.trigger || l.trigger.apply(d, c) !== !1)) {
if (!e && !l.noBubble && !_.isWindow(d)) {
for (i = l.delegateType || n, Ca.test(i + n) || (g = g.parentNode); g; g = g.parentNode) m.push(g), h = g;
h === (d.ownerDocument || Z) && m.push(h.defaultView || h.parentWindow || a)
}
for (f = 0;
(g = m[f++]) && !b.isPropagationStopped();) b.type = f > 1 ? i : l.bindType || n, k = (ra.get(g, "events") || {})[b.type] && ra.get(g, "handle"), k && k.apply(g, c), k = j && g[j], k && k.apply && _.acceptData(g) && (b.result = k.apply(g, c), b.result === !1 && b.preventDefault());
return b.type = n, e || b.isDefaultPrevented() || l._default && l._default.apply(m.pop(), c) !== !1 || !_.acceptData(d) || j && _.isFunction(d[n]) && !_.isWindow(d) && (h = d[j], h && (d[j] = null), _.event.triggered = n, d[n](), _.event.triggered = void 0, h && (d[j] = h)), b.result
}
},
dispatch: function(a) {
a = _.event.fix(a);
var b, c, d, e, f, g = [],
h = R.call(arguments),
i = (ra.get(this, "events") || {})[a.type] || [],
j = _.event.special[a.type] || {};
if (h[0] = a, a.delegateTarget = this, !j.preDispatch || j.preDispatch.call(this, a) !== !1) {
for (g = _.event.handlers.call(this, a, i), b = 0;
(e = g[b++]) && !a.isPropagationStopped();)
for (a.currentTarget = e.elem, c = 0;
(f = e.handlers[c++]) && !a.isImmediatePropagationStopped();)(!a.namespace_re || a.namespace_re.test(f.namespace)) && (a.handleObj = f, a.data = f.data, d = ((_.event.special[f.origType] || {}).handle || f.handler).apply(e.elem, h), void 0 !== d && (a.result = d) === !1 && (a.preventDefault(), a.stopPropagation()));
return j.postDispatch && j.postDispatch.call(this, a), a.result
}
},
handlers: function(a, b) {
var c, d, e, f, g = [],
h = b.delegateCount,
i = a.target;
if (h && i.nodeType && (!a.button || "click" !== a.type))
for (; i !== this; i = i.parentNode || this)
if (i.disabled !== !0 || "click" !== a.type) {
for (d = [], c = 0; h > c; c++) f = b[c], e = f.selector + " ", void 0 === d[e] && (d[e] = f.needsContext ? _(e, this).index(i) >= 0 : _.find(e, this, null, [i]).length), d[e] && d.push(f);
d.length && g.push({
elem: i,
handlers: d
})
}
return h < b.length && g.push({
elem: this,
handlers: b.slice(h)
}), g
},
props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
fixHooks: {},
keyHooks: {
props: "char charCode key keyCode".split(" "),
filter: function(a, b) {
return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a
}
},
mouseHooks: {
props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
filter: function(a, b) {
var c, d, e, f = b.button;
return null == a.pageX && null != b.clientX && (c = a.target.ownerDocument || Z, d = c.documentElement, e = c.body, a.pageX = b.clientX + (d && d.scrollLeft || e && e.scrollLeft || 0) - (d && d.clientLeft || e && e.clientLeft || 0), a.pageY = b.clientY + (d && d.scrollTop || e && e.scrollTop || 0) - (d && d.clientTop || e && e.clientTop || 0)), a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), a
}
},
fix: function(a) {
if (a[_.expando]) return a;
var b, c, d, e = a.type,
f = a,
g = this.fixHooks[e];
for (g || (this.fixHooks[e] = g = Ba.test(e) ? this.mouseHooks : Aa.test(e) ? this.keyHooks : {}), d = g.props ? this.props.concat(g.props) : this.props, a = new _.Event(f), b = d.length; b--;) c = d[b], a[c] = f[c];
return a.target || (a.target = Z), 3 === a.target.nodeType && (a.target = a.target.parentNode), g.filter ? g.filter(a, f) : a
},
special: {
load: {
noBubble: !0
},
focus: {
trigger: function() {
return this !== l() && this.focus ? (this.focus(), !1) : void 0
},
delegateType: "focusin"
},
blur: {
trigger: function() {
return this === l() && this.blur ? (this.blur(), !1) : void 0
},
delegateType: "focusout"
},
click: {
trigger: function() {
return "checkbox" === this.type && this.click && _.nodeName(this, "input") ? (this.click(), !1) : void 0
},
_default: function(a) {
return _.nodeName(a.target, "a")
}
},
beforeunload: {
postDispatch: function(a) {
void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result)
}
}
},
simulate: function(a, b, c, d) {
var e = _.extend(new _.Event, c, {
type: a,
isSimulated: !0,
originalEvent: {}
});
d ? _.event.trigger(e, null, b) : _.event.dispatch.call(b, e), e.isDefaultPrevented() && c.preventDefault()
}
}, _.removeEvent = function(a, b, c) {
a.removeEventListener && a.removeEventListener(b, c, !1)
}, _.Event = function(a, b) {
return this instanceof _.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? j : k) : this.type = a, b && _.extend(this, b), this.timeStamp = a && a.timeStamp || _.now(), void(this[_.expando] = !0)) : new _.Event(a, b)
}, _.Event.prototype = {
isDefaultPrevented: k,
isPropagationStopped: k,
isImmediatePropagationStopped: k,
preventDefault: function() {
var a = this.originalEvent;
this.isDefaultPrevented = j, a && a.preventDefault && a.preventDefault()
},
stopPropagation: function() {
var a = this.originalEvent;
this.isPropagationStopped = j, a && a.stopPropagation && a.stopPropagation()
},
stopImmediatePropagation: function() {
var a = this.originalEvent;
this.isImmediatePropagationStopped = j, a && a.stopImmediatePropagation && a.stopImmediatePropagation(), this.stopPropagation()
}
}, _.each({
mouseenter: "mouseover",
mouseleave: "mouseout",
pointerenter: "pointerover",
pointerleave: "pointerout"
}, function(a, b) {
_.event.special[a] = {
delegateType: b,
bindType: b,
handle: function(a) {
var c, d = this,
e = a.relatedTarget,
f = a.handleObj;
return (!e || e !== d && !_.contains(d, e)) && (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c
}
}
}), Y.focusinBubbles || _.each({
focus: "focusin",
blur: "focusout"
}, function(a, b) {
var c = function(a) {
_.event.simulate(b, a.target, _.event.fix(a), !0)
};
_.event.special[b] = {
setup: function() {
var d = this.ownerDocument || this,
e = ra.access(d, b);
e || d.addEventListener(a, c, !0), ra.access(d, b, (e || 0) + 1)
},
teardown: function() {
var d = this.ownerDocument || this,
e = ra.access(d, b) - 1;
e ? ra.access(d, b, e) : (d.removeEventListener(a, c, !0), ra.remove(d, b))
}
}
}), _.fn.extend({
on: function(a, b, c, d, e) {
var f, g;
if ("object" == typeof a) {
"string" != typeof b && (c = c || b, b = void 0);
for (g in a) this.on(g, b, c, a[g], e);
return this
}
if (null == c && null == d ? (d = b, c = b = void 0) : null == d && ("string" == typeof b ? (d = c, c = void 0) : (d = c, c = b, b = void 0)), d === !1) d = k;
else if (!d) return this;
return 1 === e && (f = d, d = function(a) {
return _().off(a), f.apply(this, arguments)
}, d.guid = f.guid || (f.guid = _.guid++)), this.each(function() {
_.event.add(this, a, d, c, b)
})
},
one: function(a, b, c, d) {
return this.on(a, b, c, d, 1)
},
off: function(a, b, c) {
var d, e;
if (a && a.preventDefault && a.handleObj) return d = a.handleObj, _(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler), this;
if ("object" == typeof a) {
for (e in a) this.off(e, b, a[e]);
return this
}
return (b === !1 || "function" == typeof b) && (c = b, b = void 0), c === !1 && (c = k), this.each(function() {
_.event.remove(this, a, c, b)
})
},
trigger: function(a, b) {
return this.each(function() {
_.event.trigger(a, b, this)
})
},
triggerHandler: function(a, b) {
var c = this[0];
return c ? _.event.trigger(a, b, c, !0) : void 0
}
});
var Ea = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
Fa = /<([\w:]+)/,
Ga = /<|&#?\w+;/,
Ha = /<(?:script|style|link)/i,
Ia = /checked\s*(?:[^=]|=\s*.checked.)/i,
Ja = /^$|\/(?:java|ecma)script/i,
Ka = /^true\/(.*)/,
La = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
Ma = {
option: [1, "<select multiple='multiple'>", "</select>"],
thead: [1, "<table>", "</table>"],
col: [2, "<table><colgroup>", "</colgroup></table>"],
tr: [2, "<table><tbody>", "</tbody></table>"],
td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
_default: [0, "", ""]
};
Ma.optgroup = Ma.option, Ma.tbody = Ma.tfoot = Ma.colgroup = Ma.caption = Ma.thead, Ma.th = Ma.td, _.extend({
clone: function(a, b, c) {
var d, e, f, g, h = a.cloneNode(!0),
i = _.contains(a.ownerDocument, a);
if (!(Y.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || _.isXMLDoc(a)))
for (g = r(h), f = r(a), d = 0, e = f.length; e > d; d++) s(f[d], g[d]);
if (b)
if (c)
for (f = f || r(a), g = g || r(h), d = 0, e = f.length; e > d; d++) q(f[d], g[d]);
else q(a, h);
return g = r(h, "script"), g.length > 0 && p(g, !i && r(a, "script")), h
},
buildFragment: function(a, b, c, d) {
for (var e, f, g, h, i, j, k = b.createDocumentFragment(), l = [], m = 0, n = a.length; n > m; m++)
if (e = a[m], e || 0 === e)
if ("object" === _.type(e)) _.merge(l, e.nodeType ? [e] : e);
else if (Ga.test(e)) {
for (f = f || k.appendChild(b.createElement("div")), g = (Fa.exec(e) || ["", ""])[1].toLowerCase(), h = Ma[g] || Ma._default, f.innerHTML = h[1] + e.replace(Ea, "<$1></$2>") + h[2], j = h[0]; j--;) f = f.lastChild;
_.merge(l, f.childNodes), f = k.firstChild, f.textContent = ""
} else l.push(b.createTextNode(e));
for (k.textContent = "", m = 0; e = l[m++];)
if ((!d || -1 === _.inArray(e, d)) && (i = _.contains(e.ownerDocument, e), f = r(k.appendChild(e), "script"), i && p(f), c))
for (j = 0; e = f[j++];) Ja.test(e.type || "") && c.push(e);
return k
},
cleanData: function(a) {
for (var b, c, d, e, f = _.event.special, g = 0; void 0 !== (c = a[g]); g++) {
if (_.acceptData(c) && (e = c[ra.expando], e && (b = ra.cache[e]))) {
if (b.events)
for (d in b.events) f[d] ? _.event.remove(c, d) : _.removeEvent(c, d, b.handle);
ra.cache[e] && delete ra.cache[e]
}
delete sa.cache[c[sa.expando]]
}
}
}), _.fn.extend({
text: function(a) {
return qa(this, function(a) {
return void 0 === a ? _.text(this) : this.empty().each(function() {
(1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && (this.textContent = a)
})
}, null, a, arguments.length)
},
append: function() {
return this.domManip(arguments, function(a) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var b = m(this, a);
b.appendChild(a)
}
})
},
prepend: function() {
return this.domManip(arguments, function(a) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var b = m(this, a);
b.insertBefore(a, b.firstChild)
}
})
},
before: function() {
return this.domManip(arguments, function(a) {
this.parentNode && this.parentNode.insertBefore(a, this)
})
},
after: function() {
return this.domManip(arguments, function(a) {
this.parentNode && this.parentNode.insertBefore(a, this.nextSibling)
})
},
remove: function(a, b) {
for (var c, d = a ? _.filter(a, this) : this, e = 0; null != (c = d[e]); e++) b || 1 !== c.nodeType || _.cleanData(r(c)), c.parentNode && (b && _.contains(c.ownerDocument, c) && p(r(c, "script")), c.parentNode.removeChild(c));
return this
},
empty: function() {
for (var a, b = 0; null != (a = this[b]); b++) 1 === a.nodeType && (_.cleanData(r(a, !1)), a.textContent = "");
return this
},
clone: function(a, b) {
return a = null == a ? !1 : a, b = null == b ? a : b, this.map(function() {
return _.clone(this, a, b)
})
},
html: function(a) {
return qa(this, function(a) {
var b = this[0] || {},
c = 0,
d = this.length;
if (void 0 === a && 1 === b.nodeType) return b.innerHTML;
if ("string" == typeof a && !Ha.test(a) && !Ma[(Fa.exec(a) || ["", ""])[1].toLowerCase()]) {
a = a.replace(Ea, "<$1></$2>");
try {
for (; d > c; c++) b = this[c] || {}, 1 === b.nodeType && (_.cleanData(r(b, !1)), b.innerHTML = a);
b = 0
} catch (e) {}
}
b && this.empty().append(a)
}, null, a, arguments.length)
},
replaceWith: function() {
var a = arguments[0];
return this.domManip(arguments, function(b) {
a = this.parentNode, _.cleanData(r(this)), a && a.replaceChild(b, this)
}), a && (a.length || a.nodeType) ? this : this.remove()
},
detach: function(a) {
return this.remove(a, !0)
},
domManip: function(a, b) {
a = S.apply([], a);
var c, d, e, f, g, h, i = 0,
j = this.length,
k = this,
l = j - 1,
m = a[0],
p = _.isFunction(m);
if (p || j > 1 && "string" == typeof m && !Y.checkClone && Ia.test(m)) return this.each(function(c) {
var d = k.eq(c);
p && (a[0] = m.call(this, c, d.html())), d.domManip(a, b)
});
if (j && (c = _.buildFragment(a, this[0].ownerDocument, !1, this), d = c.firstChild, 1 === c.childNodes.length && (c = d), d)) {
for (e = _.map(r(c, "script"), n), f = e.length; j > i; i++) g = c, i !== l && (g = _.clone(g, !0, !0), f && _.merge(e, r(g, "script"))), b.call(this[i], g, i);
if (f)
for (h = e[e.length - 1].ownerDocument, _.map(e, o), i = 0; f > i; i++) g = e[i], Ja.test(g.type || "") && !ra.access(g, "globalEval") && _.contains(h, g) && (g.src ? _._evalUrl && _._evalUrl(g.src) : _.globalEval(g.textContent.replace(La, "")))
}
return this
}
}), _.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, function(a, b) {
_.fn[a] = function(a) {
for (var c, d = [], e = _(a), f = e.length - 1, g = 0; f >= g; g++) c = g === f ? this : this.clone(!0), _(e[g])[b](c), T.apply(d, c.get());
return this.pushStack(d)
}
});
var Na, Oa = {},
Pa = /^margin/,
Qa = new RegExp("^(" + va + ")(?!px)[a-z%]+$", "i"),
Ra = function(b) {
return b.ownerDocument.defaultView.opener ? b.ownerDocument.defaultView.getComputedStyle(b, null) : a.getComputedStyle(b, null)
};
! function() {
function b() {
g.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute", g.innerHTML = "", e.appendChild(f);
var b = a.getComputedStyle(g, null);
c = "1%" !== b.top, d = "4px" === b.width, e.removeChild(f)
}
var c, d, e = Z.documentElement,
f = Z.createElement("div"),
g = Z.createElement("div");
g.style && (g.style.backgroundClip = "content-box", g.cloneNode(!0).style.backgroundClip = "", Y.clearCloneStyle = "content-box" === g.style.backgroundClip, f.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute", f.appendChild(g), a.getComputedStyle && _.extend(Y, {
pixelPosition: function() {
return b(), c
},
boxSizingReliable: function() {
return null == d && b(), d
},
reliableMarginRight: function() {
var b, c = g.appendChild(Z.createElement("div"));
return c.style.cssText = g.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", c.style.marginRight = c.style.width = "0", g.style.width = "1px", e.appendChild(f), b = !parseFloat(a.getComputedStyle(c, null).marginRight), e.removeChild(f), g.removeChild(c), b
}
}))
}(), _.swap = function(a, b, c, d) {
var e, f, g = {};
for (f in b) g[f] = a.style[f], a.style[f] = b[f];
e = c.apply(a, d || []);
for (f in b) a.style[f] = g[f];
return e
};
var Sa = /^(none|table(?!-c[ea]).+)/,
Ta = new RegExp("^(" + va + ")(.*)$", "i"),
Ua = new RegExp("^([+-])=(" + va + ")", "i"),
Va = {
position: "absolute",
visibility: "hidden",
display: "block"
},
Wa = {
letterSpacing: "0",
fontWeight: "400"
},
Xa = ["Webkit", "O", "Moz", "ms"];
_.extend({
cssHooks: {
opacity: {
get: function(a, b) {
if (b) {
var c = v(a, "opacity");
return "" === c ? "1" : c
}
}
}
},
cssNumber: {
columnCount: !0,
fillOpacity: !0,
flexGrow: !0,
flexShrink: !0,
fontWeight: !0,
lineHeight: !0,
opacity: !0,
order: !0,
orphans: !0,
widows: !0,
zIndex: !0,
zoom: !0
},
cssProps: {
"float": "cssFloat"
},
style: function(a, b, c, d) {
if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) {
var e, f, g, h = _.camelCase(b),
i = a.style;
return b = _.cssProps[h] || (_.cssProps[h] = x(i, h)), g = _.cssHooks[b] || _.cssHooks[h], void 0 === c ? g && "get" in g && void 0 !== (e = g.get(a, !1, d)) ? e : i[b] : (f = typeof c, "string" === f && (e = Ua.exec(c)) && (c = (e[1] + 1) * e[2] + parseFloat(_.css(a, b)), f = "number"), null != c && c === c && ("number" !== f || _.cssNumber[h] || (c += "px"), Y.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (i[b] = "inherit"), g && "set" in g && void 0 === (c = g.set(a, c, d)) || (i[b] = c)), void 0)
}
},
css: function(a, b, c, d) {
var e, f, g, h = _.camelCase(b);
return b = _.cssProps[h] || (_.cssProps[h] = x(a.style, h)), g = _.cssHooks[b] || _.cssHooks[h], g && "get" in g && (e = g.get(a, !0, c)), void 0 === e && (e = v(a, b, d)), "normal" === e && b in Wa && (e = Wa[b]), "" === c || c ? (f = parseFloat(e), c === !0 || _.isNumeric(f) ? f || 0 : e) : e
}
}), _.each(["height", "width"], function(a, b) {
_.cssHooks[b] = {
get: function(a, c, d) {
return c ? Sa.test(_.css(a, "display")) && 0 === a.offsetWidth ? _.swap(a, Va, function() {
return A(a, b, d)
}) : A(a, b, d) : void 0
},
set: function(a, c, d) {
var e = d && Ra(a);
return y(a, c, d ? z(a, b, d, "border-box" === _.css(a, "boxSizing", !1, e), e) : 0)
}
}
}), _.cssHooks.marginRight = w(Y.reliableMarginRight, function(a, b) {
return b ? _.swap(a, {
display: "inline-block"
}, v, [a, "marginRight"]) : void 0
}), _.each({
margin: "",
padding: "",
border: "Width"
}, function(a, b) {
_.cssHooks[a + b] = {
expand: function(c) {
for (var d = 0, e = {}, f = "string" == typeof c ? c.split(" ") : [c]; 4 > d; d++) e[a + wa[d] + b] = f[d] || f[d - 2] || f[0];
return e
}
}, Pa.test(a) || (_.cssHooks[a + b].set = y)
}), _.fn.extend({
css: function(a, b) {
return qa(this, function(a, b, c) {
var d, e, f = {},
g = 0;
if (_.isArray(b)) {
for (d = Ra(a), e = b.length; e > g; g++) f[b[g]] = _.css(a, b[g], !1, d);
return f
}
return void 0 !== c ? _.style(a, b, c) : _.css(a, b)
}, a, b, arguments.length > 1)
},
show: function() {
return B(this, !0)
},
hide: function() {
return B(this)
},
toggle: function(a) {
return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function() {
xa(this) ? _(this).show() : _(this).hide()
})
}
}), _.Tween = C, C.prototype = {
constructor: C,
init: function(a, b, c, d, e, f) {
this.elem = a, this.prop = c, this.easing = e || "swing", this.options = b, this.start = this.now = this.cur(), this.end = d, this.unit = f || (_.cssNumber[c] ? "" : "px")
},
cur: function() {
var a = C.propHooks[this.prop];
return a && a.get ? a.get(this) : C.propHooks._default.get(this)
},
run: function(a) {
var b, c = C.propHooks[this.prop];
return this.options.duration ? this.pos = b = _.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : this.pos = b = a, this.now = (this.end - this.start) * b + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), c && c.set ? c.set(this) : C.propHooks._default.set(this), this
}
}, C.prototype.init.prototype = C.prototype, C.propHooks = {
_default: {
get: function(a) {
var b;
return null == a.elem[a.prop] || a.elem.style && null != a.elem.style[a.prop] ? (b = _.css(a.elem, a.prop, ""), b && "auto" !== b ? b : 0) : a.elem[a.prop]
},
set: function(a) {
_.fx.step[a.prop] ? _.fx.step[a.prop](a) : a.elem.style && (null != a.elem.style[_.cssProps[a.prop]] || _.cssHooks[a.prop]) ? _.style(a.elem, a.prop, a.now + a.unit) : a.elem[a.prop] = a.now
}
}
}, C.propHooks.scrollTop = C.propHooks.scrollLeft = {
set: function(a) {
a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now)
}
}, _.easing = {
linear: function(a) {
return a
},
swing: function(a) {
return .5 - Math.cos(a * Math.PI) / 2
}
}, _.fx = C.prototype.init, _.fx.step = {};
var Ya, Za, $a = /^(?:toggle|show|hide)$/,
_a = new RegExp("^(?:([+-])=|)(" + va + ")([a-z%]*)$", "i"),
ab = /queueHooks$/,
bb = [G],
cb = {
"*": [
function(a, b) {
var c = this.createTween(a, b),
d = c.cur(),
e = _a.exec(b),
f = e && e[3] || (_.cssNumber[a] ? "" : "px"),
g = (_.cssNumber[a] || "px" !== f && +d) && _a.exec(_.css(c.elem, a)),
h = 1,
i = 20;
if (g && g[3] !== f) {
f = f || g[3], e = e || [], g = +d || 1;
do h = h || ".5", g /= h, _.style(c.elem, a, g + f); while (h !== (h = c.cur() / d) && 1 !== h && --i)
}
return e && (g = c.start = +g || +d || 0, c.unit = f, c.end = e[1] ? g + (e[1] + 1) * e[2] : +e[2]), c
}
]
};
_.Animation = _.extend(I, {
tweener: function(a, b) {
_.isFunction(a) ? (b = a, a = ["*"]) : a = a.split(" ");
for (var c, d = 0, e = a.length; e > d; d++) c = a[d], cb[c] = cb[c] || [], cb[c].unshift(b)
},
prefilter: function(a, b) {
b ? bb.unshift(a) : bb.push(a)
}
}), _.speed = function(a, b, c) {
var d = a && "object" == typeof a ? _.extend({}, a) : {
complete: c || !c && b || _.isFunction(a) && a,
duration: a,
easing: c && b || b && !_.isFunction(b) && b
};
return d.duration = _.fx.off ? 0 : "number" == typeof d.duration ? d.duration : d.duration in _.fx.speeds ? _.fx.speeds[d.duration] : _.fx.speeds._default, (null == d.queue || d.queue === !0) && (d.queue = "fx"), d.old = d.complete, d.complete = function() {
_.isFunction(d.old) && d.old.call(this), d.queue && _.dequeue(this, d.queue)
}, d
}, _.fn.extend({
fadeTo: function(a, b, c, d) {
return this.filter(xa).css("opacity", 0).show().end().animate({
opacity: b
}, a, c, d)
},
animate: function(a, b, c, d) {
var e = _.isEmptyObject(a),
f = _.speed(b, c, d),
g = function() {
var b = I(this, _.extend({}, a), f);
(e || ra.get(this, "finish")) && b.stop(!0)
};
return g.finish = g, e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g)
},
stop: function(a, b, c) {
var d = function(a) {
var b = a.stop;
delete a.stop, b(c)
};
return "string" != typeof a && (c = b, b = a, a = void 0), b && a !== !1 && this.queue(a || "fx", []), this.each(function() {
var b = !0,
e = null != a && a + "queueHooks",
f = _.timers,
g = ra.get(this);
if (e) g[e] && g[e].stop && d(g[e]);
else
for (e in g) g[e] && g[e].stop && ab.test(e) && d(g[e]);
for (e = f.length; e--;) f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1));
(b || !c) && _.dequeue(this, a)
})
},
finish: function(a) {
return a !== !1 && (a = a || "fx"), this.each(function() {
var b, c = ra.get(this),
d = c[a + "queue"],
e = c[a + "queueHooks"],
f = _.timers,
g = d ? d.length : 0;
for (c.finish = !0, _.queue(this, a, []), e && e.stop && e.stop.call(this, !0), b = f.length; b--;) f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1));
for (b = 0; g > b; b++) d[b] && d[b].finish && d[b].finish.call(this);
delete c.finish
})
}
}), _.each(["toggle", "show", "hide"], function(a, b) {
var c = _.fn[b];
_.fn[b] = function(a, d, e) {
return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(E(b, !0), a, d, e)
}
}), _.each({
slideDown: E("show"),
slideUp: E("hide"),
slideToggle: E("toggle"),
fadeIn: {
opacity: "show"
},
fadeOut: {
opacity: "hide"
},
fadeToggle: {
opacity: "toggle"
}
}, function(a, b) {
_.fn[a] = function(a, c, d) {
return this.animate(b, a, c, d)
}
}), _.timers = [], _.fx.tick = function() {
var a, b = 0,
c = _.timers;
for (Ya = _.now(); b < c.length; b++) a = c[b], a() || c[b] !== a || c.splice(b--, 1);
c.length || _.fx.stop(), Ya = void 0
}, _.fx.timer = function(a) {
_.timers.push(a), a() ? _.fx.start() : _.timers.pop()
}, _.fx.interval = 13, _.fx.start = function() {
Za || (Za = setInterval(_.fx.tick, _.fx.interval))
}, _.fx.stop = function() {
clearInterval(Za), Za = null
}, _.fx.speeds = {
slow: 600,
fast: 200,
_default: 400
}, _.fn.delay = function(a, b) {
return a = _.fx ? _.fx.speeds[a] || a : a, b = b || "fx", this.queue(b, function(b, c) {
var d = setTimeout(b, a);
c.stop = function() {
clearTimeout(d)
}
})
},
function() {
var a = Z.createElement("input"),
b = Z.createElement("select"),
c = b.appendChild(Z.createElement("option"));
a.type = "checkbox", Y.checkOn = "" !== a.value, Y.optSelected = c.selected, b.disabled = !0, Y.optDisabled = !c.disabled, a = Z.createElement("input"), a.value = "t", a.type = "radio", Y.radioValue = "t" === a.value
}();
var db, eb, fb = _.expr.attrHandle;
_.fn.extend({
attr: function(a, b) {
return qa(this, _.attr, a, b, arguments.length > 1)
},
removeAttr: function(a) {
return this.each(function() {
_.removeAttr(this, a)
})
}
}), _.extend({
attr: function(a, b, c) {
var d, e, f = a.nodeType;
if (a && 3 !== f && 8 !== f && 2 !== f) return typeof a.getAttribute === za ? _.prop(a, b, c) : (1 === f && _.isXMLDoc(a) || (b = b.toLowerCase(), d = _.attrHooks[b] || (_.expr.match.bool.test(b) ? eb : db)), void 0 === c ? d && "get" in d && null !== (e = d.get(a, b)) ? e : (e = _.find.attr(a, b), null == e ? void 0 : e) : null !== c ? d && "set" in d && void 0 !== (e = d.set(a, c, b)) ? e : (a.setAttribute(b, c + ""), c) : void _.removeAttr(a, b))
},
removeAttr: function(a, b) {
var c, d, e = 0,
f = b && b.match(na);
if (f && 1 === a.nodeType)
for (; c = f[e++];) d = _.propFix[c] || c, _.expr.match.bool.test(c) && (a[d] = !1), a.removeAttribute(c)
},
attrHooks: {
type: {
set: function(a, b) {
if (!Y.radioValue && "radio" === b && _.nodeName(a, "input")) {
var c = a.value;
return a.setAttribute("type", b), c && (a.value = c), b
}
}
}
}
}), eb = {
set: function(a, b, c) {
return b === !1 ? _.removeAttr(a, c) : a.setAttribute(c, c), c
}
}, _.each(_.expr.match.bool.source.match(/\w+/g), function(a, b) {
var c = fb[b] || _.find.attr;
fb[b] = function(a, b, d) {
var e, f;
return d || (f = fb[b], fb[b] = e, e = null != c(a, b, d) ? b.toLowerCase() : null, fb[b] = f), e
}
});
var gb = /^(?:input|select|textarea|button)$/i;
_.fn.extend({
prop: function(a, b) {
return qa(this, _.prop, a, b, arguments.length > 1)
},
removeProp: function(a) {
return this.each(function() {
delete this[_.propFix[a] || a]
})
}
}), _.extend({
propFix: {
"for": "htmlFor",
"class": "className"
},
prop: function(a, b, c) {
var d, e, f, g = a.nodeType;
if (a && 3 !== g && 8 !== g && 2 !== g) return f = 1 !== g || !_.isXMLDoc(a), f && (b = _.propFix[b] || b, e = _.propHooks[b]), void 0 !== c ? e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && "get" in e && null !== (d = e.get(a, b)) ? d : a[b]
},
propHooks: {
tabIndex: {
get: function(a) {
return a.hasAttribute("tabindex") || gb.test(a.nodeName) || a.href ? a.tabIndex : -1
}
}
}
}), Y.optSelected || (_.propHooks.selected = {
get: function(a) {
var b = a.parentNode;
return b && b.parentNode && b.parentNode.selectedIndex, null
}
}), _.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
_.propFix[this.toLowerCase()] = this
});
var hb = /[\t\r\n\f]/g;
_.fn.extend({
addClass: function(a) {
var b, c, d, e, f, g, h = "string" == typeof a && a,
i = 0,
j = this.length;
if (_.isFunction(a)) return this.each(function(b) {
_(this).addClass(a.call(this, b, this.className))
});
if (h)
for (b = (a || "").match(na) || []; j > i; i++)
if (c = this[i], d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(hb, " ") : " ")) {
for (f = 0; e = b[f++];) d.indexOf(" " + e + " ") < 0 && (d += e + " ");
g = _.trim(d), c.className !== g && (c.className = g)
}
return this
},
removeClass: function(a) {
var b, c, d, e, f, g, h = 0 === arguments.length || "string" == typeof a && a,
i = 0,
j = this.length;
if (_.isFunction(a)) return this.each(function(b) {
_(this).removeClass(a.call(this, b, this.className))
});
if (h)
for (b = (a || "").match(na) || []; j > i; i++)
if (c = this[i], d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(hb, " ") : "")) {
for (f = 0; e = b[f++];)
for (; d.indexOf(" " + e + " ") >= 0;) d = d.replace(" " + e + " ", " ");
g = a ? _.trim(d) : "", c.className !== g && (c.className = g)
}
return this
},
toggleClass: function(a, b) {
var c = typeof a;
return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : _.isFunction(a) ? this.each(function(c) {
_(this).toggleClass(a.call(this, c, this.className, b), b)
}) : this.each(function() {
if ("string" === c)
for (var b, d = 0, e = _(this), f = a.match(na) || []; b = f[d++];) e.hasClass(b) ? e.removeClass(b) : e.addClass(b);
else(c === za || "boolean" === c) && (this.className && ra.set(this, "__className__", this.className), this.className = this.className || a === !1 ? "" : ra.get(this, "__className__") || "")
})
},
hasClass: function(a) {
for (var b = " " + a + " ", c = 0, d = this.length; d > c; c++)
if (1 === this[c].nodeType && (" " + this[c].className + " ").replace(hb, " ").indexOf(b) >= 0) return !0;
return !1
}
});
var ib = /\r/g;
_.fn.extend({
val: function(a) {
var b, c, d, e = this[0]; {
if (arguments.length) return d = _.isFunction(a), this.each(function(c) {
var e;
1 === this.nodeType && (e = d ? a.call(this, c, _(this).val()) : a, null == e ? e = "" : "number" == typeof e ? e += "" : _.isArray(e) && (e = _.map(e, function(a) {
return null == a ? "" : a + ""
})), b = _.valHooks[this.type] || _.valHooks[this.nodeName.toLowerCase()], b && "set" in b && void 0 !== b.set(this, e, "value") || (this.value = e))
});
if (e) return b = _.valHooks[e.type] || _.valHooks[e.nodeName.toLowerCase()], b && "get" in b && void 0 !== (c = b.get(e, "value")) ? c : (c = e.value, "string" == typeof c ? c.replace(ib, "") : null == c ? "" : c)
}
}
}), _.extend({
valHooks: {
option: {
get: function(a) {
var b = _.find.attr(a, "value");
return null != b ? b : _.trim(_.text(a))
}
},
select: {
get: function(a) {
for (var b, c, d = a.options, e = a.selectedIndex, f = "select-one" === a.type || 0 > e, g = f ? null : [], h = f ? e + 1 : d.length, i = 0 > e ? h : f ? e : 0; h > i; i++)
if (c = d[i], !(!c.selected && i !== e || (Y.optDisabled ? c.disabled : null !== c.getAttribute("disabled")) || c.parentNode.disabled && _.nodeName(c.parentNode, "optgroup"))) {
if (b = _(c).val(), f) return b;
g.push(b)
}
return g
},
set: function(a, b) {
for (var c, d, e = a.options, f = _.makeArray(b), g = e.length; g--;) d = e[g], (d.selected = _.inArray(d.value, f) >= 0) && (c = !0);
return c || (a.selectedIndex = -1), f
}
}
}
}), _.each(["radio", "checkbox"], function() {
_.valHooks[this] = {
set: function(a, b) {
return _.isArray(b) ? a.checked = _.inArray(_(a).val(), b) >= 0 : void 0
}
}, Y.checkOn || (_.valHooks[this].get = function(a) {
return null === a.getAttribute("value") ? "on" : a.value
})
}), _.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(a, b) {
_.fn[b] = function(a, c) {
return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b)
}
}), _.fn.extend({
hover: function(a, b) {
return this.mouseenter(a).mouseleave(b || a)
},
bind: function(a, b, c) {
return this.on(a, null, b, c)
},
unbind: function(a, b) {
return this.off(a, null, b)
},
delegate: function(a, b, c, d) {
return this.on(b, a, c, d)
},
undelegate: function(a, b, c) {
return 1 === arguments.length ? this.off(a, "**") : this.off(b, a || "**", c)
}
});
var jb = _.now(),
kb = /\?/;
_.parseJSON = function(a) {
return JSON.parse(a + "")
}, _.parseXML = function(a) {
var b, c;
if (!a || "string" != typeof a) return null;
try {
c = new DOMParser, b = c.parseFromString(a, "text/xml")
} catch (d) {
b = void 0
}
return (!b || b.getElementsByTagName("parsererror").length) && _.error("Invalid XML: " + a), b
};
var lb = /#.*$/,
mb = /([?&])_=[^&]*/,
nb = /^(.*?):[ \t]*([^\r\n]*)$/gm,
ob = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
pb = /^(?:GET|HEAD)$/,
qb = /^\/\//,
rb = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
sb = {},
tb = {},
ub = "*/".concat("*"),
vb = a.location.href,
wb = rb.exec(vb.toLowerCase()) || [];
_.extend({
active: 0,
lastModified: {},
etag: {},
ajaxSettings: {
url: vb,
type: "GET",
isLocal: ob.test(wb[1]),
global: !0,
processData: !0,
async: !0,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
accepts: {
"*": ub,
text: "text/plain",
html: "text/html",
xml: "application/xml, text/xml",
json: "application/json, text/javascript"
},
contents: {
xml: /xml/,
html: /html/,
json: /json/
},
responseFields: {
xml: "responseXML",
text: "responseText",
json: "responseJSON"
},
converters: {
"* text": String,
"text html": !0,
"text json": _.parseJSON,
"text xml": _.parseXML
},
flatOptions: {
url: !0,
context: !0
}
},
ajaxSetup: function(a, b) {
return b ? L(L(a, _.ajaxSettings), b) : L(_.ajaxSettings, a)
},
ajaxPrefilter: J(sb),
ajaxTransport: J(tb),
ajax: function(a, b) {
function c(a, b, c, g) {
var i, k, r, s, u, w = b;
2 !== t && (t = 2, h && clearTimeout(h), d = void 0, f = g || "", v.readyState = a > 0 ? 4 : 0, i = a >= 200 && 300 > a || 304 === a, c && (s = M(l, v, c)), s = N(l, s, v, i), i ? (l.ifModified && (u = v.getResponseHeader("Last-Modified"), u && (_.lastModified[e] = u), u = v.getResponseHeader("etag"), u && (_.etag[e] = u)), 204 === a || "HEAD" === l.type ? w = "nocontent" : 304 === a ? w = "notmodified" : (w = s.state, k = s.data, r = s.error, i = !r)) : (r = w, (a || !w) && (w = "error", 0 > a && (a = 0))), v.status = a, v.statusText = (b || w) + "", i ? o.resolveWith(m, [k, w, v]) : o.rejectWith(m, [v, w, r]), v.statusCode(q), q = void 0, j && n.trigger(i ? "ajaxSuccess" : "ajaxError", [v, l, i ? k : r]), p.fireWith(m, [v, w]), j && (n.trigger("ajaxComplete", [v, l]), --_.active || _.event.trigger("ajaxStop")))
}
"object" == typeof a && (b = a, a = void 0), b = b || {};
var d, e, f, g, h, i, j, k, l = _.ajaxSetup({}, b),
m = l.context || l,
n = l.context && (m.nodeType || m.jquery) ? _(m) : _.event,
o = _.Deferred(),
p = _.Callbacks("once memory"),
q = l.statusCode || {},
r = {},
s = {},
t = 0,
u = "canceled",
v = {
readyState: 0,
getResponseHeader: function(a) {
var b;
if (2 === t) {
if (!g)
for (g = {}; b = nb.exec(f);) g[b[1].toLowerCase()] = b[2];
b = g[a.toLowerCase()]
}
return null == b ? null : b
},
getAllResponseHeaders: function() {
return 2 === t ? f : null
},
setRequestHeader: function(a, b) {
var c = a.toLowerCase();
return t || (a = s[c] = s[c] || a, r[a] = b), this
},
overrideMimeType: function(a) {
return t || (l.mimeType = a), this
},
statusCode: function(a) {
var b;
if (a)
if (2 > t)
for (b in a) q[b] = [q[b], a[b]];
else v.always(a[v.status]);
return this
},
abort: function(a) {
var b = a || u;
return d && d.abort(b), c(0, b), this
}
};
if (o.promise(v).complete = p.add, v.success = v.done, v.error = v.fail, l.url = ((a || l.url || vb) + "").replace(lb, "").replace(qb, wb[1] + "//"), l.type = b.method || b.type || l.method || l.type, l.dataTypes = _.trim(l.dataType || "*").toLowerCase().match(na) || [""], null == l.crossDomain && (i = rb.exec(l.url.toLowerCase()), l.crossDomain = !(!i || i[1] === wb[1] && i[2] === wb[2] && (i[3] || ("http:" === i[1] ? "80" : "443")) === (wb[3] || ("http:" === wb[1] ? "80" : "443")))), l.data && l.processData && "string" != typeof l.data && (l.data = _.param(l.data, l.traditional)), K(sb, l, b, v), 2 === t) return v;
j = _.event && l.global, j && 0 === _.active++ && _.event.trigger("ajaxStart"), l.type = l.type.toUpperCase(), l.hasContent = !pb.test(l.type), e = l.url, l.hasContent || (l.data && (e = l.url += (kb.test(e) ? "&" : "?") + l.data, delete l.data), l.cache === !1 && (l.url = mb.test(e) ? e.replace(mb, "$1_=" + jb++) : e + (kb.test(e) ? "&" : "?") + "_=" + jb++)), l.ifModified && (_.lastModified[e] && v.setRequestHeader("If-Modified-Since", _.lastModified[e]), _.etag[e] && v.setRequestHeader("If-None-Match", _.etag[e])), (l.data && l.hasContent && l.contentType !== !1 || b.contentType) && v.setRequestHeader("Content-Type", l.contentType), v.setRequestHeader("Accept", l.dataTypes[0] && l.accepts[l.dataTypes[0]] ? l.accepts[l.dataTypes[0]] + ("*" !== l.dataTypes[0] ? ", " + ub + "; q=0.01" : "") : l.accepts["*"]);
for (k in l.headers) v.setRequestHeader(k, l.headers[k]);
if (l.beforeSend && (l.beforeSend.call(m, v, l) === !1 || 2 === t)) return v.abort();
u = "abort";
for (k in {
success: 1,
error: 1,
complete: 1
}) v[k](l[k]);
if (d = K(tb, l, b, v)) {
v.readyState = 1, j && n.trigger("ajaxSend", [v, l]), l.async && l.timeout > 0 && (h = setTimeout(function() {
v.abort("timeout")
}, l.timeout));
try {
t = 1, d.send(r, c)
} catch (w) {
if (!(2 > t)) throw w;
c(-1, w)
}
} else c(-1, "No Transport");
return v
},
getJSON: function(a, b, c) {
return _.get(a, b, c, "json")
},
getScript: function(a, b) {
return _.get(a, void 0, b, "script")
}
}), _.each(["get", "post"], function(a, b) {
_[b] = function(a, c, d, e) {
return _.isFunction(c) && (e = e || d, d = c, c = void 0), _.ajax({
url: a,
type: b,
dataType: e,
data: c,
success: d
})
}
}), _._evalUrl = function(a) {
return _.ajax({
url: a,
type: "GET",
dataType: "script",
async: !1,
global: !1,
"throws": !0
})
}, _.fn.extend({
wrapAll: function(a) {
var b;
return _.isFunction(a) ? this.each(function(b) {
_(this).wrapAll(a.call(this, b))
}) : (this[0] && (b = _(a, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && b.insertBefore(this[0]), b.map(function() {
for (var a = this; a.firstElementChild;) a = a.firstElementChild;
return a
}).append(this)), this)
},
wrapInner: function(a) {
return _.isFunction(a) ? this.each(function(b) {
_(this).wrapInner(a.call(this, b))
}) : this.each(function() {
var b = _(this),
c = b.contents();
c.length ? c.wrapAll(a) : b.append(a)
})
},
wrap: function(a) {
var b = _.isFunction(a);
return this.each(function(c) {
_(this).wrapAll(b ? a.call(this, c) : a)
})
},
unwrap: function() {
return this.parent().each(function() {
_.nodeName(this, "body") || _(this).replaceWith(this.childNodes)
}).end()
}
}), _.expr.filters.hidden = function(a) {
return a.offsetWidth <= 0 && a.offsetHeight <= 0
}, _.expr.filters.visible = function(a) {
return !_.expr.filters.hidden(a)
};
var xb = /%20/g,
yb = /\[\]$/,
zb = /\r?\n/g,
Ab = /^(?:submit|button|image|reset|file)$/i,
Bb = /^(?:input|select|textarea|keygen)/i;
_.param = function(a, b) {
var c, d = [],
e = function(a, b) {
b = _.isFunction(b) ? b() : null == b ? "" : b, d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b)
};
if (void 0 === b && (b = _.ajaxSettings && _.ajaxSettings.traditional), _.isArray(a) || a.jquery && !_.isPlainObject(a)) _.each(a, function() {
e(this.name, this.value)
});
else
for (c in a) O(c, a[c], b, e);
return d.join("&").replace(xb, "+")
}, _.fn.extend({
serialize: function() {
return _.param(this.serializeArray())
},
serializeArray: function() {
return this.map(function() {
var a = _.prop(this, "elements");
return a ? _.makeArray(a) : this
}).filter(function() {
var a = this.type;
return this.name && !_(this).is(":disabled") && Bb.test(this.nodeName) && !Ab.test(a) && (this.checked || !ya.test(a))
}).map(function(a, b) {
var c = _(this).val();
return null == c ? null : _.isArray(c) ? _.map(c, function(a) {
return {
name: b.name,
value: a.replace(zb, "\r\n")
}
}) : {
name: b.name,
value: c.replace(zb, "\r\n")
}
}).get()
}
}), _.ajaxSettings.xhr = function() {
try {
return new XMLHttpRequest
} catch (a) {}
};
var Cb = 0,
Db = {},
Eb = {
0: 200,
1223: 204
},
Fb = _.ajaxSettings.xhr();
a.attachEvent && a.attachEvent("onunload", function() {
for (var a in Db) Db[a]()
}), Y.cors = !!Fb && "withCredentials" in Fb, Y.ajax = Fb = !!Fb, _.ajaxTransport(function(a) {
var b;
return Y.cors || Fb && !a.crossDomain ? {
send: function(c, d) {
var e, f = a.xhr(),
g = ++Cb;
if (f.open(a.type, a.url, a.async, a.username, a.password), a.xhrFields)
for (e in a.xhrFields) f[e] = a.xhrFields[e];
a.mimeType && f.overrideMimeType && f.overrideMimeType(a.mimeType), a.crossDomain || c["X-Requested-With"] || (c["X-Requested-With"] = "XMLHttpRequest");
for (e in c) f.setRequestHeader(e, c[e]);
b = function(a) {
return function() {
b && (delete Db[g], b = f.onload = f.onerror = null, "abort" === a ? f.abort() : "error" === a ? d(f.status, f.statusText) : d(Eb[f.status] || f.status, f.statusText, "string" == typeof f.responseText ? {
text: f.responseText
} : void 0, f.getAllResponseHeaders()))
}
}, f.onload = b(), f.onerror = b("error"), b = Db[g] = b("abort");
try {
f.send(a.hasContent && a.data || null)
} catch (h) {
if (b) throw h
}
},
abort: function() {
b && b()
}
} : void 0
}), _.ajaxSetup({
accepts: {
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
contents: {
script: /(?:java|ecma)script/
},
converters: {
"text script": function(a) {
return _.globalEval(a), a
}
}
}), _.ajaxPrefilter("script", function(a) {
void 0 === a.cache && (a.cache = !1), a.crossDomain && (a.type = "GET")
}), _.ajaxTransport("script", function(a) {
if (a.crossDomain) {
var b, c;
return {
send: function(d, e) {
b = _("<script>
").prop({
async: !0,
charset: a.scriptCharset,
src: a.url
}).on("load error", c = function(a) {
b.remove(), c = null, a && e("error" === a.type ? 404 : 200, a.type)
}), Z.head.appendChild(b[0])
},
abort: function() {
c && c()
}
}
}
});
var Gb = [],
Hb = /(=)\?(?=&|$)|\?\?/;
_.ajaxSetup({
jsonp: "callback",
jsonpCallback: function() {
var a = Gb.pop() || _.expando + "_" + jb++;
return this[a] = !0, a
}
}), _.ajaxPrefilter("json jsonp", function(b, c, d) {
var e, f, g, h = b.jsonp !== !1 && (Hb.test(b.url) ? "url" : "string" == typeof b.data && !(b.contentType || "").indexOf("application/x-www-form-urlencoded") && Hb.test(b.data) && "data");
return h || "jsonp" === b.dataTypes[0] ? (e = b.jsonpCallback = _.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, h ? b[h] = b[h].replace(Hb, "$1" + e) : b.jsonp !== !1 && (b.url += (kb.test(b.url) ? "&" : "?") + b.jsonp + "=" + e), b.converters["script json"] = function() {
return g || _.error(e + " was not called"), g[0]
}, b.dataTypes[0] = "json", f = a[e], a[e] = function() {
g = arguments
}, d.always(function() {
a[e] = f, b[e] && (b.jsonpCallback = c.jsonpCallback, Gb.push(e)), g && _.isFunction(f) && f(g[0]), g = f = void 0
}), "script") : void 0
}), _.parseHTML = function(a, b, c) {
if (!a || "string" != typeof a) return null;
"boolean" == typeof b && (c = b, b = !1), b = b || Z;
var d = ga.exec(a),
e = !c && [];
return d ? [b.createElement(d[1])] : (d = _.buildFragment([a], b, e), e && e.length && _(e).remove(), _.merge([], d.childNodes))
};
var Ib = _.fn.load;
_.fn.load = function(a, b, c) {
if ("string" != typeof a && Ib) return Ib.apply(this, arguments);
var d, e, f, g = this,
h = a.indexOf(" ");
return h >= 0 && (d = _.trim(a.slice(h)), a = a.slice(0, h)), _.isFunction(b) ? (c = b, b = void 0) : b && "object" == typeof b && (e = "POST"), g.length > 0 && _.ajax({
url: a,
type: e,
dataType: "html",
data: b
}).done(function(a) {
f = arguments, g.html(d ? _("<div>").append(_.parseHTML(a)).find(d) : a)
}).complete(c && function(a, b) {
g.each(c, f || [a.responseText, b, a])
}), this
}, _.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(a, b) {
_.fn[b] = function(a) {
return this.on(b, a)
}
}), _.expr.filters.animated = function(a) {
return _.grep(_.timers, function(b) {
return a === b.elem
}).length
};
var Jb = a.document.documentElement;
_.offset = {
setOffset: function(a, b, c) {
var d, e, f, g, h, i, j, k = _.css(a, "position"),
l = _(a),
m = {};
"static" === k && (a.style.position = "relative"), h = l.offset(), f = _.css(a, "top"), i = _.css(a, "left"), j = ("absolute" === k || "fixed" === k) && (f + i).indexOf("auto") > -1, j ? (d = l.position(), g = d.top, e = d.left) : (g = parseFloat(f) || 0, e = parseFloat(i) || 0), _.isFunction(b) && (b = b.call(a, c, h)), null != b.top && (m.top = b.top - h.top + g), null != b.left && (m.left = b.left - h.left + e), "using" in b ? b.using.call(a, m) : l.css(m)
}
}, _.fn.extend({
offset: function(a) {
if (arguments.length) return void 0 === a ? this : this.each(function(b) {
_.offset.setOffset(this, a, b)
});
var b, c, d = this[0],
e = {
top: 0,
left: 0
},
f = d && d.ownerDocument;
if (f) return b = f.documentElement, _.contains(b, d) ? (typeof d.getBoundingClientRect !== za && (e = d.getBoundingClientRect()), c = P(f), {
top: e.top + c.pageYOffset - b.clientTop,
left: e.left + c.pageXOffset - b.clientLeft
}) : e
},
position: function() {
if (this[0]) {
var a, b, c = this[0],
d = {
top: 0,
left: 0
};
return "fixed" === _.css(c, "position") ? b = c.getBoundingClientRect() : (a = this.offsetParent(), b = this.offset(), _.nodeName(a[0], "html") || (d = a.offset()), d.top += _.css(a[0], "borderTopWidth", !0), d.left += _.css(a[0], "borderLeftWidth", !0)), {
top: b.top - d.top - _.css(c, "marginTop", !0),
left: b.left - d.left - _.css(c, "marginLeft", !0)
}
}
},
offsetParent: function() {
return this.map(function() {
for (var a = this.offsetParent || Jb; a && !_.nodeName(a, "html") && "static" === _.css(a, "position");) a = a.offsetParent;
return a || Jb
})
}
}), _.each({
scrollLeft: "pageXOffset",
scrollTop: "pageYOffset"
}, function(b, c) {
var d = "pageYOffset" === c;
_.fn[b] = function(e) {
return qa(this, function(b, e, f) {
var g = P(b);
return void 0 === f ? g ? g[c] : b[e] : void(g ? g.scrollTo(d ? a.pageXOffset : f, d ? f : a.pageYOffset) : b[e] = f)
}, b, e, arguments.length, null)
}
}), _.each(["top", "left"], function(a, b) {
_.cssHooks[b] = w(Y.pixelPosition, function(a, c) {
return c ? (c = v(a, b), Qa.test(c) ? _(a).position()[b] + "px" : c) : void 0
})
}), _.each({
Height: "height",
Width: "width"
}, function(a, b) {
_.each({
padding: "inner" + a,
content: b,
"": "outer" + a
}, function(c, d) {
_.fn[d] = function(d, e) {
var f = arguments.length && (c || "boolean" != typeof d),
g = c || (d === !0 || e === !0 ? "margin" : "border");
return qa(this, function(b, c, d) {
var e;
return _.isWindow(b) ? b.document.documentElement["client" + a] : 9 === b.nodeType ? (e = b.documentElement, Math.max(b.body["scroll" + a], e["scroll" + a], b.body["offset" + a], e["offset" + a], e["client" + a])) : void 0 === d ? _.css(b, c, g) : _.style(b, c, d, g)
}, b, f ? d : void 0, f, null)
}
})
}), _.fn.size = function() {
return this.length
}, _.fn.andSelf = _.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function() {
return _
});
var Kb = a.jQuery,
Lb = a.$;
return _.noConflict = function(b) {
return a.$ === _ && (a.$ = Lb), b && a.jQuery === _ && (a.jQuery = Kb), _
}, typeof b === za && (a.jQuery = a.$ = _), _
})
}, {}
],
54: [
function(a, b, c) {
! function(d) {
var e;
if ("function" == typeof define && define.amd) define(["jquery"], d);
else if ("object" == typeof c) {
try {
e = a("jquery")
} catch (f) {}
b.exports = d(e)
} else {
var g = window.Cookies,
h = window.Cookies = d(window.jQuery);
h.noConflict = function() {
return window.Cookies = g, h
}
}
}(function(a) {
function b(a) {
return j.raw ? a : encodeURIComponent(a)
}
function c(a) {
return j.raw ? a : decodeURIComponent(a)
}
function d(a) {
return b(j.json ? JSON.stringify(a) : String(a))
}
function e(a) {
0 === a.indexOf('"') && (a = a.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\"));
try {
return a = decodeURIComponent(a.replace(i, " ")), j.json ? JSON.parse(a) : a
} catch (b) {}
}
function f(a, b) {
var c = j.raw ? a : e(a);
return h(b) ? b(c) : c
}
function g() {
for (var a, b, c = 0, d = {}; c < arguments.length; c++) {
b = arguments[c];
for (a in b) d[a] = b[a]
}
return d
}
function h(a) {
return "[object Function]" === Object.prototype.toString.call(a)
}
var i = /\+/g,
j = function(a, e, i) {
if (arguments.length > 1 && !h(e)) {
if (i = g(j.defaults, i), "number" == typeof i.expires) {
var k = i.expires,
l = i.expires = new Date;
l.setMilliseconds(l.getMilliseconds() + 864e5 * k)
}
return document.cookie = [b(a), "=", d(e), i.expires ? "; expires=" + i.expires.toUTCString() : "", i.path ? "; path=" + i.path : "", i.domain ? "; domain=" + i.domain : "", i.secure ? "; secure" : ""].join("")
}
for (var m = a ? void 0 : {}, n = document.cookie ? document.cookie.split("; ") : [], o = 0, p = n.length; p > o; o++) {
var q = n[o].split("="),
r = c(q.shift()),
s = q.join("=");
if (a === r) {
m = f(s, e);
break
}
a || void 0 === (s = f(s)) || (m[r] = s)
}
return m
};
return j.get = j.set = j, j.defaults = {}, j.remove = function(a, b) {
return j(a, "", g(b, {
expires: -1
})), !j(a)
}, a && (a.cookie = j, a.removeCookie = j.remove), j
})
}, {
jquery: 53
}
],
55: [
function(a, b, c) {
"use strict";
var d = a("promise"),
e = a("underscore"),
f = (a("jquery"), a("resource-manager-js")),
g = function(a) {
this.initialize(a)
},
h = function(a, b) {
var c, d = this;
c = a && e.has(a, "constructor") ? a.constructor : function() {
return d.apply(this, arguments)
}, e.extend(c, d, b);
var f = function() {
this.constructor = c
};
return f.prototype = d.prototype, c.prototype = new f, a && e.extend(c.prototype, a), c.__super__ = d.prototype, c
};
g.extend = h, g.prototype = {
initialize: function(a) {
this.options = e.extend({}, {
el: null,
loadedClass: "module-loaded",
activeClass: "module-active",
disabledClass: "module-disabled",
errorClass: "module-error"
}, a), this._handleElementInitialState(), this.subModules = {}, this.active = !1, this.loaded = !1
},
onLoad: function(a) {
return d.resolve()
},
onShow: function() {
return d.resolve()
},
onHide: function() {
return d.resolve()
},
onEnable: function() {
return d.resolve()
},
onDisable: function() {
return d.resolve()
},
onError: function(a) {
return d.resolve(a)
},
load: function(a) {
var b = e.values(this.subModules);
return a && (this.options.el = this.options.el || a.el), this.loaded ? d.resolve() : d.all(e.invoke(b, "load")).then(function() {
return this._ensurePromise(this.onLoad(a)).then(function() {
this.loaded = !0, this.options.el && this.options.el.classList.add(this.options.loadedClass)
}.bind(this))["catch"](function(a) {
return this.error(a), a
}.bind(this))
}.bind(this))
},
error: function(a) {
var b = this.options.el,
c = a || new Error,
d = c.message || "";
return b && b.classList.add(this.options.errorClass), this.error = !0, this.loaded = !1, console.warn("MODULE ERROR! " + d), c.stack && console.log(c.stack), this._ensurePromise(this.onError(c)).then(function(a) {
return a || c
})
},
enable: function() {
var a = this.options.el;
return a && a.classList.remove(this.options.disabledClass), this.disabled = !1, this._ensurePromise(this.onEnable())
},
disable: function() {
var a = this.options.el;
return a && a.classList.add(this.options.disabledClass), this.disabled = !0, this._ensurePromise(this.onDisable())
},
show: function() {
var a = this.options.el;
return a && a.classList.add(this.options.activeClass), this.active = !0, this._ensurePromise(this.onShow())
},
hide: function() {
var a = this.options.el;
return a && a.classList.remove(this.options.activeClass), this.active = !1, this._ensurePromise(this.onHide())
},
_handleElementInitialState: function() {
var a = this.options.el;
a && (a.classList.contains(this.options.disabledClass) && (this._origDisabled = !0, this.disable()), a.classList.contains(this.options.errorClass) && (this._origError = !0, this.error(new Error)))
},
_resetElementInitialState: function() {
var a = this.options,
b = a.el,
c = a.disabledClass,
d = a.errorClass;
b && (this._origDisabled ? b.classList.add(c) : b.classList.remove(c), this._origError ? b.classList.add(d) : b.classList.remove(d))
},
_ensurePromise: function(a) {
return a && a.then || (a = d.resolve()), a
},
fetchData: function(a, b) {
return f.fetchData(a, b)
},
getStyles: function(a) {
return f.loadCss(a)
},
getTemplate: function(a) {
return f.loadTemplate(a)
},
serializeData: function(a) {
return a
},
destroy: function() {
var a = this.subModules;
for (var b in a) a.hasOwnProperty(b) && a[b] && a[b].destroy();
this.subModules = {}, this.active = !1, this.loaded = !1, this._resetElementInitialState()
}
}, b.exports = g
}, {
jquery: 53,
promise: 57,
"resource-manager-js": 70,
underscore: 73
}
],
56: [
function(a, b, c) {
! function(a, d) {
"object" == typeof c && "undefined" != typeof b ? b.exports = d() : "function" == typeof define && define.amd ? define(d) : a.moment = d()
}(this, function() {
"use strict";
function c() {
return Fc.apply(null, arguments)
}
function d(a) {
Fc = a
}
function e(a) {
return "[object Array]" === Object.prototype.toString.call(a)
}
function f(a) {
return a instanceof Date || "[object Date]" === Object.prototype.toString.call(a)
}
function g(a, b) {
var c, d = [];
for (c = 0; c < a.length; ++c) d.push(b(a[c], c));
return d
}
function h(a, b) {
return Object.prototype.hasOwnProperty.call(a, b)
}
function i(a, b) {
for (var c in b) h(b, c) && (a[c] = b[c]);
return h(b, "toString") && (a.toString = b.toString), h(b, "valueOf") && (a.valueOf = b.valueOf), a
}
function j(a, b, c, d) {
return Ba(a, b, c, d, !0).utc()
}
function k() {
return {
empty: !1,
unusedTokens: [],
unusedInput: [],
overflow: -2,
charsLeftOver: 0,
nullInput: !1,
invalidMonth: null,
invalidFormat: !1,
userInvalidated: !1,
iso: !1
}
}
function l(a) {
return null == a._pf && (a._pf = k()), a._pf
}
function m(a) {
if (null == a._isValid) {
var b = l(a);
a._isValid = !isNaN(a._d.getTime()) && b.overflow < 0 && !b.empty && !b.invalidMonth && !b.nullInput && !b.invalidFormat && !b.userInvalidated, a._strict && (a._isValid = a._isValid && 0 === b.charsLeftOver && 0 === b.unusedTokens.length && void 0 === b.bigHour)
}
return a._isValid
}
function n(a) {
var b = j(NaN);
return null != a ? i(l(b), a) : l(b).userInvalidated = !0, b
}
function o(a, b) {
var c, d, e;
if ("undefined" != typeof b._isAMomentObject && (a._isAMomentObject = b._isAMomentObject), "undefined" != typeof b._i && (a._i = b._i), "undefined" != typeof b._f && (a._f = b._f), "undefined" != typeof b._l && (a._l = b._l), "undefined" != typeof b._strict && (a._strict = b._strict), "undefined" != typeof b._tzm && (a._tzm = b._tzm), "undefined" != typeof b._isUTC && (a._isUTC = b._isUTC), "undefined" != typeof b._offset && (a._offset = b._offset), "undefined" != typeof b._pf && (a._pf = l(b)), "undefined" != typeof b._locale && (a._locale = b._locale), Hc.length > 0)
for (c in Hc) d = Hc[c], e = b[d], "undefined" != typeof e && (a[d] = e);
return a
}
function p(a) {
o(this, a), this._d = new Date(+a._d), Ic === !1 && (Ic = !0, c.updateOffset(this), Ic = !1)
}
function q(a) {
return a instanceof p || null != a && null != a._isAMomentObject
}
function r(a) {
var b = +a,
c = 0;
return 0 !== b && isFinite(b) && (c = b >= 0 ? Math.floor(b) : Math.ceil(b)), c
}
function s(a, b, c) {
var d, e = Math.min(a.length, b.length),
f = Math.abs(a.length - b.length),
g = 0;
for (d = 0; e > d; d++)(c && a[d] !== b[d] || !c && r(a[d]) !== r(b[d])) && g++;
return g + f
}
function t() {}
function u(a) {
return a ? a.toLowerCase().replace("_", "-") : a
}
function v(a) {
for (var b, c, d, e, f = 0; f < a.length;) {
for (e = u(a[f]).split("-"), b = e.length, c = u(a[f + 1]), c = c ? c.split("-") : null; b > 0;) {
if (d = w(e.slice(0, b).join("-"))) return d;
if (c && c.length >= b && s(e, c, !0) >= b - 1) break;
b--
}
f++
}
return null
}
function w(c) {
var d = null;
if (!Jc[c] && "undefined" != typeof b && b && b.exports) try {
d = Gc._abbr, a("./locale/" + c), x(d)
} catch (e) {}
return Jc[c]
}
function x(a, b) {
var c;
return a && (c = "undefined" == typeof b ? z(a) : y(a, b), c && (Gc = c)), Gc._abbr
}
function y(a, b) {
return null !== b ? (b.abbr = a, Jc[a] || (Jc[a] = new t), Jc[a].set(b), x(a), Jc[a]) : (delete Jc[a], null)
}
function z(a) {
var b;
if (a && a._locale && a._locale._abbr && (a = a._locale._abbr), !a) return Gc;
if (!e(a)) {
if (b = w(a)) return b;
a = [a]
}
return v(a)
}
function A(a, b) {
var c = a.toLowerCase();
Kc[c] = Kc[c + "s"] = Kc[b] = a
}
function B(a) {
return "string" == typeof a ? Kc[a] || Kc[a.toLowerCase()] : void 0
}
function C(a) {
var b, c, d = {};
for (c in a) h(a, c) && (b = B(c), b && (d[b] = a[c]));
return d
}
function D(a, b) {
return function(d) {
return null != d ? (F(this, a, d), c.updateOffset(this, b), this) : E(this, a)
}
}
function E(a, b) {
return a._d["get" + (a._isUTC ? "UTC" : "") + b]()
}
function F(a, b, c) {
return a._d["set" + (a._isUTC ? "UTC" : "") + b](c)
}
function G(a, b) {
var c;
if ("object" == typeof a)
for (c in a) this.set(c, a[c]);
else if (a = B(a), "function" == typeof this[a]) return this[a](b);
return this
}
function H(a, b, c) {
for (var d = "" + Math.abs(a), e = a >= 0; d.length < b;) d = "0" + d;
return (e ? c ? "+" : "" : "-") + d
}
function I(a, b, c, d) {
var e = d;
"string" == typeof d && (e = function() {
return this[d]()
}), a && (Oc[a] = e), b && (Oc[b[0]] = function() {
return H(e.apply(this, arguments), b[1], b[2])
}), c && (Oc[c] = function() {
return this.localeData().ordinal(e.apply(this, arguments), a)
})
}
function J(a) {
return a.match(/\[[\s\S]/) ? a.replace(/^\[|\]$/g, "") : a.replace(/\\/g, "")
}
function K(a) {
var b, c, d = a.match(Lc);
for (b = 0, c = d.length; c > b; b++) Oc[d[b]] ? d[b] = Oc[d[b]] : d[b] = J(d[b]);
return function(e) {
var f = "";
for (b = 0; c > b; b++) f += d[b] instanceof Function ? d[b].call(e, a) : d[b];
return f
}
}
function L(a, b) {
return a.isValid() ? (b = M(b, a.localeData()), Nc[b] || (Nc[b] = K(b)), Nc[b](a)) : a.localeData().invalidDate()
}
function M(a, b) {
function c(a) {
return b.longDateFormat(a) || a
}
var d = 5;
for (Mc.lastIndex = 0; d >= 0 && Mc.test(a);) a = a.replace(Mc, c), Mc.lastIndex = 0, d -= 1;
return a
}
function N(a, b, c) {
bd[a] = "function" == typeof b ? b : function(a) {
return a && c ? c : b
}
}
function O(a, b) {
return h(bd, a) ? bd[a](b._strict, b._locale) : new RegExp(P(a))
}
function P(a) {
return a.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function(a, b, c, d, e) {
return b || c || d || e
}).replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&")
}
function Q(a, b) {
var c, d = b;
for ("string" == typeof a && (a = [a]), "number" == typeof b && (d = function(a, c) {
c[b] = r(a)
}), c = 0; c < a.length; c++) cd[a[c]] = d
}
function R(a, b) {
Q(a, function(a, c, d, e) {
d._w = d._w || {}, b(a, d._w, d, e)
})
}
function S(a, b, c) {
null != b && h(cd, a) && cd[a](b, c._a, c, a)
}
function T(a, b) {
return new Date(Date.UTC(a, b + 1, 0)).getUTCDate()
}
function U(a) {
return this._months[a.month()]
}
function V(a) {
return this._monthsShort[a.month()]
}
function W(a, b, c) {
var d, e, f;
for (this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), d = 0; 12 > d; d++) {
if (e = j([2e3, d]), c && !this._longMonthsParse[d] && (this._longMonthsParse[d] = new RegExp("^" + this.months(e, "").replace(".", "") + "$", "i"), this._shortMonthsParse[d] = new RegExp("^" + this.monthsShort(e, "").replace(".", "") + "$", "i")), c || this._monthsParse[d] || (f = "^" + this.months(e, "") + "|^" + this.monthsShort(e, ""), this._monthsParse[d] = new RegExp(f.replace(".", ""), "i")), c && "MMMM" === b && this._longMonthsParse[d].test(a)) return d;
if (c && "MMM" === b && this._shortMonthsParse[d].test(a)) return d;
if (!c && this._monthsParse[d].test(a)) return d
}
}
function X(a, b) {
var c;
return "string" == typeof b && (b = a.localeData().monthsParse(b), "number" != typeof b) ? a : (c = Math.min(a.date(), T(a.year(), b)), a._d["set" + (a._isUTC ? "UTC" : "") + "Month"](b, c), a)
}
function Y(a) {
return null != a ? (X(this, a), c.updateOffset(this, !0), this) : E(this, "Month")
}
function Z() {
return T(this.year(), this.month())
}
function $(a) {
var b, c = a._a;
return c && -2 === l(a).overflow && (b = c[ed] < 0 || c[ed] > 11 ? ed : c[fd] < 1 || c[fd] > T(c[dd], c[ed]) ? fd : c[gd] < 0 || c[gd] > 24 || 24 === c[gd] && (0 !== c[hd] || 0 !== c[id] || 0 !== c[jd]) ? gd : c[hd] < 0 || c[hd] > 59 ? hd : c[id] < 0 || c[id] > 59 ? id : c[jd] < 0 || c[jd] > 999 ? jd : -1, l(a)._overflowDayOfYear && (dd > b || b > fd) && (b = fd), l(a).overflow = b), a
}
function _(a) {
c.suppressDeprecationWarnings === !1 && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + a)
}
function aa(a, b) {
var c = !0,
d = a + "\n" + (new Error).stack;
return i(function() {
return c && (_(d), c = !1), b.apply(this, arguments)
}, b)
}
function ba(a, b) {
md[a] || (_(b), md[a] = !0)
}
function ca(a) {
var b, c, d = a._i,
e = nd.exec(d);
if (e) {
for (l(a).iso = !0, b = 0, c = od.length; c > b; b++)
if (od[b][1].exec(d)) {
a._f = od[b][0] + (e[6] || " ");
break
}
for (b = 0, c = pd.length; c > b; b++)
if (pd[b][1].exec(d)) {
a._f += pd[b][0];
break
}
d.match($c) && (a._f += "Z"), va(a)
} else a._isValid = !1
}
function da(a) {
var b = qd.exec(a._i);
return null !== b ? void(a._d = new Date(+b[1])) : (ca(a), void(a._isValid === !1 && (delete a._isValid, c.createFromInputFallback(a))))
}
function ea(a, b, c, d, e, f, g) {
var h = new Date(a, b, c, d, e, f, g);
return 1970 > a && h.setFullYear(a), h
}
function fa(a) {
var b = new Date(Date.UTC.apply(null, arguments));
return 1970 > a && b.setUTCFullYear(a), b
}
function ga(a) {
return ha(a) ? 366 : 365
}
function ha(a) {
return a % 4 === 0 && a % 100 !== 0 || a % 400 === 0
}
function ia() {
return ha(this.year())
}
function ja(a, b, c) {
var d, e = c - b,
f = c - a.day();
return f > e && (f -= 7), e - 7 > f && (f += 7), d = Ca(a).add(f, "d"), {
week: Math.ceil(d.dayOfYear() / 7),
year: d.year()
}
}
function ka(a) {
return ja(a, this._week.dow, this._week.doy).week
}
function la() {
return this._week.dow
}
function ma() {
return this._week.doy
}
function na(a) {
var b = this.localeData().week(this);
return null == a ? b : this.add(7 * (a - b), "d")
}
function oa(a) {
var b = ja(this, 1, 4).week;
return null == a ? b : this.add(7 * (a - b), "d")
}
function pa(a, b, c, d, e) {
var f, g, h = fa(a, 0, 1).getUTCDay();
return h = 0 === h ? 7 : h, c = null != c ? c : e, f = e - h + (h > d ? 7 : 0) - (e > h ? 7 : 0), g = 7 * (b - 1) + (c - e) + f + 1, {
year: g > 0 ? a : a - 1,
dayOfYear: g > 0 ? g : ga(a - 1) + g
}
}
function qa(a) {
var b = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1;
return null == a ? b : this.add(a - b, "d")
}
function ra(a, b, c) {
return null != a ? a : null != b ? b : c
}
function sa(a) {
var b = new Date;
return a._useUTC ? [b.getUTCFullYear(), b.getUTCMonth(), b.getUTCDate()] : [b.getFullYear(), b.getMonth(), b.getDate()]
}
function ta(a) {
var b, c, d, e, f = [];
if (!a._d) {
for (d = sa(a), a._w && null == a._a[fd] && null == a._a[ed] && ua(a), a._dayOfYear && (e = ra(a._a[dd], d[dd]), a._dayOfYear > ga(e) && (l(a)._overflowDayOfYear = !0), c = fa(e, 0, a._dayOfYear), a._a[ed] = c.getUTCMonth(), a._a[fd] = c.getUTCDate()), b = 0; 3 > b && null == a._a[b]; ++b) a._a[b] = f[b] = d[b];
for (; 7 > b; b++) a._a[b] = f[b] = null == a._a[b] ? 2 === b ? 1 : 0 : a._a[b];
24 === a._a[gd] && 0 === a._a[hd] && 0 === a._a[id] && 0 === a._a[jd] && (a._nextDay = !0, a._a[gd] = 0), a._d = (a._useUTC ? fa : ea).apply(null, f), null != a._tzm && a._d.setUTCMinutes(a._d.getUTCMinutes() - a._tzm), a._nextDay && (a._a[gd] = 24)
}
}
function ua(a) {
var b, c, d, e, f, g, h;
b = a._w, null != b.GG || null != b.W || null != b.E ? (f = 1, g = 4, c = ra(b.GG, a._a[dd], ja(Ca(), 1, 4).year), d = ra(b.W, 1), e = ra(b.E, 1)) : (f = a._locale._week.dow, g = a._locale._week.doy, c = ra(b.gg, a._a[dd], ja(Ca(), f, g).year), d = ra(b.w, 1), null != b.d ? (e = b.d, f > e && ++d) : e = null != b.e ? b.e + f : f), h = pa(c, d, e, g, f), a._a[dd] = h.year, a._dayOfYear = h.dayOfYear
}
function va(a) {
if (a._f === c.ISO_8601) return void ca(a);
a._a = [], l(a).empty = !0;
var b, d, e, f, g, h = "" + a._i,
i = h.length,
j = 0;
for (e = M(a._f, a._locale).match(Lc) || [], b = 0; b < e.length; b++) f = e[b], d = (h.match(O(f, a)) || [])[0], d && (g = h.substr(0, h.indexOf(d)), g.length > 0 && l(a).unusedInput.push(g), h = h.slice(h.indexOf(d) + d.length), j += d.length), Oc[f] ? (d ? l(a).empty = !1 : l(a).unusedTokens.push(f), S(f, d, a)) : a._strict && !d && l(a).unusedTokens.push(f);
l(a).charsLeftOver = i - j, h.length > 0 && l(a).unusedInput.push(h), l(a).bigHour === !0 && a._a[gd] <= 12 && a._a[gd] > 0 && (l(a).bigHour = void 0), a._a[gd] = wa(a._locale, a._a[gd], a._meridiem), ta(a), $(a)
}
function wa(a, b, c) {
var d;
return null == c ? b : null != a.meridiemHour ? a.meridiemHour(b, c) : null != a.isPM ? (d = a.isPM(c), d && 12 > b && (b += 12), d || 12 !== b || (b = 0), b) : b
}
function xa(a) {
var b, c, d, e, f;
if (0 === a._f.length) return l(a).invalidFormat = !0, void(a._d = new Date(NaN));
for (e = 0; e < a._f.length; e++) f = 0, b = o({}, a), null != a._useUTC && (b._useUTC = a._useUTC), b._f = a._f[e], va(b), m(b) && (f += l(b).charsLeftOver, f += 10 * l(b).unusedTokens.length, l(b).score = f, (null == d || d > f) && (d = f, c = b));
i(a, c || b)
}
function ya(a) {
if (!a._d) {
var b = C(a._i);
a._a = [b.year, b.month, b.day || b.date, b.hour, b.minute, b.second, b.millisecond], ta(a)
}
}
function za(a) {
var b, c = a._i,
d = a._f;
return a._locale = a._locale || z(a._l), null === c || void 0 === d && "" === c ? n({
nullInput: !0
}) : ("string" == typeof c && (a._i = c = a._locale.preparse(c)), q(c) ? new p($(c)) : (e(d) ? xa(a) : d ? va(a) : f(c) ? a._d = c : Aa(a), b = new p($(a)), b._nextDay && (b.add(1, "d"), b._nextDay = void 0), b))
}
function Aa(a) {
var b = a._i;
void 0 === b ? a._d = new Date : f(b) ? a._d = new Date(+b) : "string" == typeof b ? da(a) : e(b) ? (a._a = g(b.slice(0), function(a) {
return parseInt(a, 10)
}), ta(a)) : "object" == typeof b ? ya(a) : "number" == typeof b ? a._d = new Date(b) : c.createFromInputFallback(a)
}
function Ba(a, b, c, d, e) {
var f = {};
return "boolean" == typeof c && (d = c, c = void 0), f._isAMomentObject = !0, f._useUTC = f._isUTC = e, f._l = c, f._i = a, f._f = b, f._strict = d, za(f)
}
function Ca(a, b, c, d) {
return Ba(a, b, c, d, !1)
}
function Da(a, b) {
var c, d;
if (1 === b.length && e(b[0]) && (b = b[0]), !b.length) return Ca();
for (c = b[0], d = 1; d < b.length; ++d) b[d][a](c) && (c = b[d]);
return c
}
function Ea() {
var a = [].slice.call(arguments, 0);
return Da("isBefore", a)
}
function Fa() {
var a = [].slice.call(arguments, 0);
return Da("isAfter", a)
}
function Ga(a) {
var b = C(a),
c = b.year || 0,
d = b.quarter || 0,
e = b.month || 0,
f = b.week || 0,
g = b.day || 0,
h = b.hour || 0,
i = b.minute || 0,
j = b.second || 0,
k = b.millisecond || 0;
this._milliseconds = +k + 1e3 * j + 6e4 * i + 36e5 * h, this._days = +g + 7 * f, this._months = +e + 3 * d + 12 * c, this._data = {}, this._locale = z(), this._bubble()
}
function Ha(a) {
return a instanceof Ga
}
function Ia(a, b) {
I(a, 0, 0, function() {
var a = this.utcOffset(),
c = "+";
return 0 > a && (a = -a, c = "-"), c + H(~~(a / 60), 2) + b + H(~~a % 60, 2)
})
}
function Ja(a) {
var b = (a || "").match($c) || [],
c = b[b.length - 1] || [],
d = (c + "").match(vd) || ["-", 0, 0],
e = +(60 * d[1]) + r(d[2]);
return "+" === d[0] ? e : -e
}
function Ka(a, b) {
var d, e;
return b._isUTC ? (d = b.clone(), e = (q(a) || f(a) ? +a : +Ca(a)) - +d, d._d.setTime(+d._d + e), c.updateOffset(d, !1), d) : Ca(a).local()
}
function La(a) {
return 15 * -Math.round(a._d.getTimezoneOffset() / 15)
}
function Ma(a, b) {
var d, e = this._offset || 0;
return null != a ? ("string" == typeof a && (a = Ja(a)), Math.abs(a) < 16 && (a = 60 * a), !this._isUTC && b && (d = La(this)), this._offset = a, this._isUTC = !0, null != d && this.add(d, "m"), e !== a && (!b || this._changeInProgress ? ab(this, Xa(a - e, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, c.updateOffset(this, !0), this._changeInProgress = null)), this) : this._isUTC ? e : La(this)
}
function Na(a, b) {
return null != a ? ("string" != typeof a && (a = -a), this.utcOffset(a, b), this) : -this.utcOffset()
}
function Oa(a) {
return this.utcOffset(0, a)
}
function Pa(a) {
return this._isUTC && (this.utcOffset(0, a), this._isUTC = !1, a && this.subtract(La(this), "m")), this
}
function Qa() {
return this._tzm ? this.utcOffset(this._tzm) : "string" == typeof this._i && this.utcOffset(Ja(this._i)), this
}
function Ra(a) {
return a = a ? Ca(a).utcOffset() : 0, (this.utcOffset() - a) % 60 === 0
}
function Sa() {
return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset()
}
function Ta() {
if (this._a) {
var a = this._isUTC ? j(this._a) : Ca(this._a);
return this.isValid() && s(this._a, a.toArray()) > 0
}
return !1
}
function Ua() {
return !this._isUTC
}
function Va() {
return this._isUTC
}
function Wa() {
return this._isUTC && 0 === this._offset
}
function Xa(a, b) {
var c, d, e, f = a,
g = null;
return Ha(a) ? f = {
ms: a._milliseconds,
d: a._days,
M: a._months
} : "number" == typeof a ? (f = {}, b ? f[b] = a : f.milliseconds = a) : (g = wd.exec(a)) ? (c = "-" === g[1] ? -1 : 1, f = {
y: 0,
d: r(g[fd]) * c,
h: r(g[gd]) * c,
m: r(g[hd]) * c,
s: r(g[id]) * c,
ms: r(g[jd]) * c
}) : (g = xd.exec(a)) ? (c = "-" === g[1] ? -1 : 1, f = {
y: Ya(g[2], c),
M: Ya(g[3], c),
d: Ya(g[4], c),
h: Ya(g[5], c),
m: Ya(g[6], c),
s: Ya(g[7], c),
w: Ya(g[8], c)
}) : null == f ? f = {} : "object" == typeof f && ("from" in f || "to" in f) && (e = $a(Ca(f.from), Ca(f.to)), f = {}, f.ms = e.milliseconds, f.M = e.months), d = new Ga(f), Ha(a) && h(a, "_locale") && (d._locale = a._locale), d
}
function Ya(a, b) {
var c = a && parseFloat(a.replace(",", "."));
return (isNaN(c) ? 0 : c) * b
}
function Za(a, b) {
var c = {
milliseconds: 0,
months: 0
};
return c.months = b.month() - a.month() + 12 * (b.year() - a.year()), a.clone().add(c.months, "M").isAfter(b) && --c.months, c.milliseconds = +b - +a.clone().add(c.months, "M"), c
}
function $a(a, b) {
var c;
return b = Ka(b, a), a.isBefore(b) ? c = Za(a, b) : (c = Za(b, a), c.milliseconds = -c.milliseconds, c.months = -c.months), c
}
function _a(a, b) {
return function(c, d) {
var e, f;
return null === d || isNaN(+d) || (ba(b, "moment()." + b + "(period, number) is deprecated. Please use moment()." + b + "(number, period)."), f = c, c = d, d = f), c = "string" == typeof c ? +c : c, e = Xa(c, d), ab(this, e, a), this
}
}
function ab(a, b, d, e) {
var f = b._milliseconds,
g = b._days,
h = b._months;
e = null == e ? !0 : e, f && a._d.setTime(+a._d + f * d), g && F(a, "Date", E(a, "Date") + g * d), h && X(a, E(a, "Month") + h * d), e && c.updateOffset(a, g || h)
}
function bb(a) {
var b = a || Ca(),
c = Ka(b, this).startOf("day"),
d = this.diff(c, "days", !0),
e = -6 > d ? "sameElse" : -1 > d ? "lastWeek" : 0 > d ? "lastDay" : 1 > d ? "sameDay" : 2 > d ? "nextDay" : 7 > d ? "nextWeek" : "sameElse";
return this.format(this.localeData().calendar(e, this, Ca(b)))
}
function cb() {
return new p(this)
}
function db(a, b) {
var c;
return b = B("undefined" != typeof b ? b : "millisecond"), "millisecond" === b ? (a = q(a) ? a : Ca(a), +this > +a) : (c = q(a) ? +a : +Ca(a), c < +this.clone().startOf(b))
}
function eb(a, b) {
var c;
return b = B("undefined" != typeof b ? b : "millisecond"), "millisecond" === b ? (a = q(a) ? a : Ca(a), +a > +this) : (c = q(a) ? +a : +Ca(a), +this.clone().endOf(b) < c)
}
function fb(a, b, c) {
return this.isAfter(a, c) && this.isBefore(b, c)
}
function gb(a, b) {
var c;
return b = B(b || "millisecond"), "millisecond" === b ? (a = q(a) ? a : Ca(a), +this === +a) : (c = +Ca(a), +this.clone().startOf(b) <= c && c <= +this.clone().endOf(b))
}
function hb(a) {
return 0 > a ? Math.ceil(a) : Math.floor(a)
}
function ib(a, b, c) {
var d, e, f = Ka(a, this),
g = 6e4 * (f.utcOffset() - this.utcOffset());
return b = B(b), "year" === b || "month" === b || "quarter" === b ? (e = jb(this, f), "quarter" === b ? e /= 3 : "year" === b && (e /= 12)) : (d = this - f, e = "second" === b ? d / 1e3 : "minute" === b ? d / 6e4 : "hour" === b ? d / 36e5 : "day" === b ? (d - g) / 864e5 : "week" === b ? (d - g) / 6048e5 : d), c ? e : hb(e)
}
function jb(a, b) {
var c, d, e = 12 * (b.year() - a.year()) + (b.month() - a.month()),
f = a.clone().add(e, "months");
return 0 > b - f ? (c = a.clone().add(e - 1, "months"), d = (b - f) / (f - c)) : (c = a.clone().add(e + 1, "months"), d = (b - f) / (c - f)), -(e + d)
}
function kb() {
return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")
}
function lb() {
var a = this.clone().utc();
return 0 < a.year() && a.year() <= 9999 ? "function" == typeof Date.prototype.toISOString ? this.toDate().toISOString() : L(a, "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]") : L(a, "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")
}
function mb(a) {
var b = L(this, a || c.defaultFormat);
return this.localeData().postformat(b)
}
function nb(a, b) {
return this.isValid() ? Xa({
to: this,
from: a
}).locale(this.locale()).humanize(!b) : this.localeData().invalidDate()
}
function ob(a) {
return this.from(Ca(), a)
}
function pb(a, b) {
return this.isValid() ? Xa({
from: this,
to: a
}).locale(this.locale()).humanize(!b) : this.localeData().invalidDate()
}
function qb(a) {
return this.to(Ca(), a)
}
function rb(a) {
var b;
return void 0 === a ? this._locale._abbr : (b = z(a), null != b && (this._locale = b), this)
}
function sb() {
return this._locale
}
function tb(a) {
switch (a = B(a)) {
case "year":
this.month(0);
case "quarter":
case "month":
this.date(1);
case "week":
case "isoWeek":
case "day":
this.hours(0);
case "hour":
this.minutes(0);
case "minute":
this.seconds(0);
case "second":
this.milliseconds(0)
}
return "week" === a && this.weekday(0), "isoWeek" === a && this.isoWeekday(1), "quarter" === a && this.month(3 * Math.floor(this.month() / 3)), this
}
function ub(a) {
return a = B(a), void 0 === a || "millisecond" === a ? this : this.startOf(a).add(1, "isoWeek" === a ? "week" : a).subtract(1, "ms")
}
function vb() {
return +this._d - 6e4 * (this._offset || 0)
}
function wb() {
return Math.floor(+this / 1e3)
}
function xb() {
return this._offset ? new Date(+this) : this._d
}
function yb() {
var a = this;
return [a.year(), a.month(), a.date(), a.hour(), a.minute(), a.second(), a.millisecond()]
}
function zb() {
return m(this)
}
function Ab() {
return i({}, l(this))
}
function Bb() {
return l(this).overflow
}
function Cb(a, b) {
I(0, [a, a.length], 0, b)
}
function Db(a, b, c) {
return ja(Ca([a, 11, 31 + b - c]), b, c).week
}
function Eb(a) {
var b = ja(this, this.localeData()._week.dow, this.localeData()._week.doy).year;
return null == a ? b : this.add(a - b, "y")
}
function Fb(a) {
var b = ja(this, 1, 4).year;
return null == a ? b : this.add(a - b, "y")
}
function Gb() {
return Db(this.year(), 1, 4)
}
function Hb() {
var a = this.localeData()._week;
return Db(this.year(), a.dow, a.doy)
}
function Ib(a) {
return null == a ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (a - 1) + this.month() % 3)
}
function Jb(a, b) {
if ("string" == typeof a)
if (isNaN(a)) {
if (a = b.weekdaysParse(a), "number" != typeof a) return null
} else a = parseInt(a, 10);
return a
}
function Kb(a) {
return this._weekdays[a.day()]
}
function Lb(a) {
return this._weekdaysShort[a.day()]
}
function Mb(a) {
return this._weekdaysMin[a.day()]
}
function Nb(a) {
var b, c, d;
for (this._weekdaysParse || (this._weekdaysParse = []), b = 0; 7 > b; b++)
if (this._weekdaysParse[b] || (c = Ca([2e3, 1]).day(b), d = "^" + this.weekdays(c, "") + "|^" + this.weekdaysShort(c, "") + "|^" + this.weekdaysMin(c, ""), this._weekdaysParse[b] = new RegExp(d.replace(".", ""), "i")), this._weekdaysParse[b].test(a)) return b
}
function Ob(a) {
var b = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
return null != a ? (a = Jb(a, this.localeData()), this.add(a - b, "d")) : b
}
function Pb(a) {
var b = (this.day() + 7 - this.localeData()._week.dow) % 7;
return null == a ? b : this.add(a - b, "d")
}
function Qb(a) {
return null == a ? this.day() || 7 : this.day(this.day() % 7 ? a : a - 7)
}
function Rb(a, b) {
I(a, 0, 0, function() {
return this.localeData().meridiem(this.hours(), this.minutes(), b)
})
}
function Sb(a, b) {
return b._meridiemParse
}
function Tb(a) {
return "p" === (a + "").toLowerCase().charAt(0)
}
function Ub(a, b, c) {
return a > 11 ? c ? "pm" : "PM" : c ? "am" : "AM"
}
function Vb(a) {
I(0, [a, 3], 0, "millisecond")
}
function Wb() {
return this._isUTC ? "UTC" : ""
}
function Xb() {
return this._isUTC ? "Coordinated Universal Time" : ""
}
function Yb(a) {
return Ca(1e3 * a)
}
function Zb() {
return Ca.apply(null, arguments).parseZone()
}
function $b(a, b, c) {
var d = this._calendar[a];
return "function" == typeof d ? d.call(b, c) : d
}
function _b(a) {
var b = this._longDateFormat[a];
return !b && this._longDateFormat[a.toUpperCase()] && (b = this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function(a) {
return a.slice(1)
}), this._longDateFormat[a] = b), b
}
function ac() {
return this._invalidDate
}
function bc(a) {
return this._ordinal.replace("%d", a)
}
function cc(a) {
return a
}
function dc(a, b, c, d) {
var e = this._relativeTime[c];
return "function" == typeof e ? e(a, b, c, d) : e.replace(/%d/i, a)
}
function ec(a, b) {
var c = this._relativeTime[a > 0 ? "future" : "past"];
return "function" == typeof c ? c(b) : c.replace(/%s/i, b)
}
function fc(a) {
var b, c;
for (c in a) b = a[c], "function" == typeof b ? this[c] = b : this["_" + c] = b;
this._ordinalParseLenient = new RegExp(this._ordinalParse.source + "|" + /\d{1,2}/.source)
}
function gc(a, b, c, d) {
var e = z(),
f = j().set(d, b);
return e[c](f, a)
}
function hc(a, b, c, d, e) {
if ("number" == typeof a && (b = a, a = void 0), a = a || "", null != b) return gc(a, b, c, e);
var f, g = [];
for (f = 0; d > f; f++) g[f] = gc(a, f, c, e);
return g
}
function ic(a, b) {
return hc(a, b, "months", 12, "month")
}
function jc(a, b) {
return hc(a, b, "monthsShort", 12, "month")
}
function kc(a, b) {
return hc(a, b, "weekdays", 7, "day")
}
function lc(a, b) {
return hc(a, b, "weekdaysShort", 7, "day")
}
function mc(a, b) {
return hc(a, b, "weekdaysMin", 7, "day")
}
function nc() {
var a = this._data;
return this._milliseconds = Td(this._milliseconds), this._days = Td(this._days), this._months = Td(this._months), a.milliseconds = Td(a.milliseconds), a.seconds = Td(a.seconds), a.minutes = Td(a.minutes), a.hours = Td(a.hours), a.months = Td(a.months), a.years = Td(a.years), this
}
function oc(a, b, c, d) {
var e = Xa(b, c);
return a._milliseconds += d * e._milliseconds, a._days += d * e._days, a._months += d * e._months, a._bubble()
}
function pc(a, b) {
return oc(this, a, b, 1)
}
function qc(a, b) {
return oc(this, a, b, -1)
}
function rc() {
var a, b, c, d = this._milliseconds,
e = this._days,
f = this._months,
g = this._data,
h = 0;
return g.milliseconds = d % 1e3, a = hb(d / 1e3), g.seconds = a % 60, b = hb(a / 60), g.minutes = b % 60, c = hb(b / 60), g.hours = c % 24, e += hb(c / 24), h = hb(sc(e)), e -= hb(tc(h)), f += hb(e / 30), e %= 30, h += hb(f / 12), f %= 12, g.days = e, g.months = f, g.years = h, this
}
function sc(a) {
return 400 * a / 146097
}
function tc(a) {
return 146097 * a / 400
}
function uc(a) {
var b, c, d = this._milliseconds;
if (a = B(a), "month" === a || "year" === a) return b = this._days + d / 864e5, c = this._months + 12 * sc(b), "month" === a ? c : c / 12;
switch (b = this._days + Math.round(tc(this._months / 12)), a) {
case "week":
return b / 7 + d / 6048e5;
case "day":
return b + d / 864e5;
case "hour":
return 24 * b + d / 36e5;
case "minute":
return 1440 * b + d / 6e4;
case "second":
return 86400 * b + d / 1e3;
case "millisecond":
return Math.floor(864e5 * b) + d;
default:
throw new Error("Unknown unit " + a)
}
}
function vc() {
return this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * r(this._months / 12)
}
function wc(a) {
return function() {
return this.as(a)
}
}
function xc(a) {
return a = B(a), this[a + "s"]()
}
function yc(a) {
return function() {
return this._data[a]
}
}
function zc() {
return hb(this.days() / 7)
}
function Ac(a, b, c, d, e) {
return e.relativeTime(b || 1, !!c, a, d)
}
function Bc(a, b, c) {
var d = Xa(a).abs(),
e = he(d.as("s")),
f = he(d.as("m")),
g = he(d.as("h")),
h = he(d.as("d")),
i = he(d.as("M")),
j = he(d.as("y")),
k = e < ie.s && ["s", e] || 1 === f && ["m"] || f < ie.m && ["mm", f] || 1 === g && ["h"] || g < ie.h && ["hh", g] || 1 === h && ["d"] || h < ie.d && ["dd", h] || 1 === i && ["M"] || i < ie.M && ["MM", i] || 1 === j && ["y"] || ["yy", j];
return k[2] = b, k[3] = +a > 0, k[4] = c, Ac.apply(null, k)
}
function Cc(a, b) {
return void 0 === ie[a] ? !1 : void 0 === b ? ie[a] : (ie[a] = b, !0)
}
function Dc(a) {
var b = this.localeData(),
c = Bc(this, !a, b);
return a && (c = b.pastFuture(+this, c)), b.postformat(c)
}
function Ec() {
var a = je(this.years()),
b = je(this.months()),
c = je(this.days()),
d = je(this.hours()),
e = je(this.minutes()),
f = je(this.seconds() + this.milliseconds() / 1e3),
g = this.asSeconds();
return g ? (0 > g ? "-" : "") + "P" + (a ? a + "Y" : "") + (b ? b + "M" : "") + (c ? c + "D" : "") + (d || e || f ? "T" : "") + (d ? d + "H" : "") + (e ? e + "M" : "") + (f ? f + "S" : "") : "P0D"
}
var Fc, Gc, Hc = c.momentProperties = [],
Ic = !1,
Jc = {},
Kc = {},
Lc = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|x|X|zz?|ZZ?|.)/g,
Mc = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
Nc = {},
Oc = {},
Pc = /\d/,
Qc = /\d\d/,
Rc = /\d{3}/,
Sc = /\d{4}/,
Tc = /[+-]?\d{6}/,
Uc = /\d\d?/,
Vc = /\d{1,3}/,
Wc = /\d{1,4}/,
Xc = /[+-]?\d{1,6}/,
Yc = /\d+/,
Zc = /[+-]?\d+/,
$c = /Z|[+-]\d\d:?\d\d/gi,
_c = /[+-]?\d+(\.\d{1,3})?/,
ad = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,
bd = {},
cd = {},
dd = 0,
ed = 1,
fd = 2,
gd = 3,
hd = 4,
id = 5,
jd = 6;
I("M", ["MM", 2], "Mo", function() {
return this.month() + 1
}), I("MMM", 0, 0, function(a) {
return this.localeData().monthsShort(this, a)
}), I("MMMM", 0, 0, function(a) {
return this.localeData().months(this, a)
}), A("month", "M"), N("M", Uc), N("MM", Uc, Qc), N("MMM", ad), N("MMMM", ad), Q(["M", "MM"], function(a, b) {
b[ed] = r(a) - 1
}), Q(["MMM", "MMMM"], function(a, b, c, d) {
var e = c._locale.monthsParse(a, d, c._strict);
null != e ? b[ed] = e : l(c).invalidMonth = a
});
var kd = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
ld = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
md = {};
c.suppressDeprecationWarnings = !1;
var nd = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
od = [
["YYYYYY-MM-DD", /[+-]\d{6}-\d{2}-\d{2}/],
["YYYY-MM-DD", /\d{4}-\d{2}-\d{2}/],
["GGGG-[W]WW-E", /\d{4}-W\d{2}-\d/],
["GGGG-[W]WW", /\d{4}-W\d{2}/],
["YYYY-DDD", /\d{4}-\d{3}/]
],
pd = [
["HH:mm:ss.SSSS", /(T| )\d\d:\d\d:\d\d\.\d+/],
["HH:mm:ss", /(T| )\d\d:\d\d:\d\d/],
["HH:mm", /(T| )\d\d:\d\d/],
["HH", /(T| )\d\d/]
],
qd = /^\/?Date\((\-?\d+)/i;
c.createFromInputFallback = aa("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.", function(a) {
a._d = new Date(a._i + (a._useUTC ? " UTC" : ""))
}), I(0, ["YY", 2], 0, function() {
return this.year() % 100
}), I(0, ["YYYY", 4], 0, "year"), I(0, ["YYYYY", 5], 0, "year"), I(0, ["YYYYYY", 6, !0], 0, "year"), A("year", "y"), N("Y", Zc), N("YY", Uc, Qc), N("YYYY", Wc, Sc), N("YYYYY", Xc, Tc), N("YYYYYY", Xc, Tc), Q(["YYYY", "YYYYY", "YYYYYY"], dd), Q("YY", function(a, b) {
b[dd] = c.parseTwoDigitYear(a)
}), c.parseTwoDigitYear = function(a) {
return r(a) + (r(a) > 68 ? 1900 : 2e3)
};
var rd = D("FullYear", !1);
I("w", ["ww", 2], "wo", "week"), I("W", ["WW", 2], "Wo", "isoWeek"), A("week", "w"), A("isoWeek", "W"), N("w", Uc), N("ww", Uc, Qc), N("W", Uc), N("WW", Uc, Qc), R(["w", "ww", "W", "WW"], function(a, b, c, d) {
b[d.substr(0, 1)] = r(a)
});
var sd = {
dow: 0,
doy: 6
};
I("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), A("dayOfYear", "DDD"), N("DDD", Vc), N("DDDD", Rc), Q(["DDD", "DDDD"], function(a, b, c) {
c._dayOfYear = r(a)
}), c.ISO_8601 = function() {};
var td = aa("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548", function() {
var a = Ca.apply(null, arguments);
return this > a ? this : a
}),
ud = aa("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548", function() {
var a = Ca.apply(null, arguments);
return a > this ? this : a
});
Ia("Z", ":"), Ia("ZZ", ""), N("Z", $c), N("ZZ", $c), Q(["Z", "ZZ"], function(a, b, c) {
c._useUTC = !0, c._tzm = Ja(a)
});
var vd = /([\+\-]|\d\d)/gi;
c.updateOffset = function() {};
var wd = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,
xd = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;
Xa.fn = Ga.prototype;
var yd = _a(1, "add"),
zd = _a(-1, "subtract");
c.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ";
var Ad = aa("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function(a) {
return void 0 === a ? this.localeData() : this.locale(a)
});
I(0, ["gg", 2], 0, function() {
return this.weekYear() % 100
}), I(0, ["GG", 2], 0, function() {
return this.isoWeekYear() % 100
}), Cb("gggg", "weekYear"), Cb("ggggg", "weekYear"), Cb("GGGG", "isoWeekYear"), Cb("GGGGG", "isoWeekYear"), A("weekYear", "gg"), A("isoWeekYear", "GG"), N("G", Zc), N("g", Zc), N("GG", Uc, Qc), N("gg", Uc, Qc), N("GGGG", Wc, Sc), N("gggg", Wc, Sc), N("GGGGG", Xc, Tc), N("ggggg", Xc, Tc), R(["gggg", "ggggg", "GGGG", "GGGGG"], function(a, b, c, d) {
b[d.substr(0, 2)] = r(a)
}), R(["gg", "GG"], function(a, b, d, e) {
b[e] = c.parseTwoDigitYear(a)
}), I("Q", 0, 0, "quarter"), A("quarter", "Q"), N("Q", Pc), Q("Q", function(a, b) {
b[ed] = 3 * (r(a) - 1)
}), I("D", ["DD", 2], "Do", "date"), A("date", "D"), N("D", Uc), N("DD", Uc, Qc), N("Do", function(a, b) {
return a ? b._ordinalParse : b._ordinalParseLenient
}), Q(["D", "DD"], fd), Q("Do", function(a, b) {
b[fd] = r(a.match(Uc)[0], 10)
});
var Bd = D("Date", !0);
I("d", 0, "do", "day"), I("dd", 0, 0, function(a) {
return this.localeData().weekdaysMin(this, a)
}), I("ddd", 0, 0, function(a) {
return this.localeData().weekdaysShort(this, a)
}), I("dddd", 0, 0, function(a) {
return this.localeData().weekdays(this, a)
}), I("e", 0, 0, "weekday"), I("E", 0, 0, "isoWeekday"), A("day", "d"), A("weekday", "e"), A("isoWeekday", "E"), N("d", Uc), N("e", Uc), N("E", Uc), N("dd", ad), N("ddd", ad), N("dddd", ad), R(["dd", "ddd", "dddd"], function(a, b, c) {
var d = c._locale.weekdaysParse(a);
null != d ? b.d = d : l(c).invalidWeekday = a
}), R(["d", "e", "E"], function(a, b, c, d) {
b[d] = r(a)
});
var Cd = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
Dd = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
Ed = "Su_Mo_Tu_We_Th_Fr_Sa".split("_");
I("H", ["HH", 2], 0, "hour"), I("h", ["hh", 2], 0, function() {
return this.hours() % 12 || 12
}), Rb("a", !0), Rb("A", !1), A("hour", "h"), N("a", Sb), N("A", Sb), N("H", Uc), N("h", Uc), N("HH", Uc, Qc), N("hh", Uc, Qc), Q(["H", "HH"], gd), Q(["a", "A"], function(a, b, c) {
c._isPm = c._locale.isPM(a), c._meridiem = a
}), Q(["h", "hh"], function(a, b, c) {
b[gd] = r(a), l(c).bigHour = !0
});
var Fd = /[ap]\.?m?\.?/i,
Gd = D("Hours", !0);
I("m", ["mm", 2], 0, "minute"), A("minute", "m"), N("m", Uc), N("mm", Uc, Qc), Q(["m", "mm"], hd);
var Hd = D("Minutes", !1);
I("s", ["ss", 2], 0, "second"), A("second", "s"), N("s", Uc), N("ss", Uc, Qc), Q(["s", "ss"], id);
var Id = D("Seconds", !1);
I("S", 0, 0, function() {
return ~~(this.millisecond() / 100)
}), I(0, ["SS", 2], 0, function() {
return ~~(this.millisecond() / 10)
}), Vb("SSS"), Vb("SSSS"), A("millisecond", "ms"), N("S", Vc, Pc), N("SS", Vc, Qc), N("SSS", Vc, Rc), N("SSSS", Yc), Q(["S", "SS", "SSS", "SSSS"], function(a, b) {
b[jd] = r(1e3 * ("0." + a))
});
var Jd = D("Milliseconds", !1);
I("z", 0, 0, "zoneAbbr"), I("zz", 0, 0, "zoneName");
var Kd = p.prototype;
Kd.add = yd, Kd.calendar = bb, Kd.clone = cb, Kd.diff = ib, Kd.endOf = ub, Kd.format = mb, Kd.from = nb, Kd.fromNow = ob, Kd.to = pb, Kd.toNow = qb, Kd.get = G, Kd.invalidAt = Bb, Kd.isAfter = db, Kd.isBefore = eb, Kd.isBetween = fb, Kd.isSame = gb, Kd.isValid = zb, Kd.lang = Ad, Kd.locale = rb, Kd.localeData = sb, Kd.max = ud, Kd.min = td, Kd.parsingFlags = Ab, Kd.set = G, Kd.startOf = tb, Kd.subtract = zd, Kd.toArray = yb, Kd.toDate = xb, Kd.toISOString = lb, Kd.toJSON = lb, Kd.toString = kb, Kd.unix = wb, Kd.valueOf = vb, Kd.year = rd, Kd.isLeapYear = ia, Kd.weekYear = Eb, Kd.isoWeekYear = Fb, Kd.quarter = Kd.quarters = Ib, Kd.month = Y, Kd.daysInMonth = Z, Kd.week = Kd.weeks = na, Kd.isoWeek = Kd.isoWeeks = oa, Kd.weeksInYear = Hb, Kd.isoWeeksInYear = Gb, Kd.date = Bd, Kd.day = Kd.days = Ob, Kd.weekday = Pb, Kd.isoWeekday = Qb, Kd.dayOfYear = qa, Kd.hour = Kd.hours = Gd, Kd.minute = Kd.minutes = Hd, Kd.second = Kd.seconds = Id, Kd.millisecond = Kd.milliseconds = Jd, Kd.utcOffset = Ma, Kd.utc = Oa, Kd.local = Pa, Kd.parseZone = Qa, Kd.hasAlignedHourOffset = Ra, Kd.isDST = Sa, Kd.isDSTShifted = Ta, Kd.isLocal = Ua, Kd.isUtcOffset = Va, Kd.isUtc = Wa, Kd.isUTC = Wa, Kd.zoneAbbr = Wb, Kd.zoneName = Xb, Kd.dates = aa("dates accessor is deprecated. Use date instead.", Bd), Kd.months = aa("months accessor is deprecated. Use month instead", Y), Kd.years = aa("years accessor is deprecated. Use year instead", rd), Kd.zone = aa("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779", Na);
var Ld = Kd,
Md = {
sameDay: "[Today at] LT",
nextDay: "[Tomorrow at] LT",
nextWeek: "dddd [at] LT",
lastDay: "[Yesterday at] LT",
lastWeek: "[Last] dddd [at] LT",
sameElse: "L"
},
Nd = {
LTS: "h:mm:ss A",
LT: "h:mm A",
L: "MM/DD/YYYY",
LL: "MMMM D, YYYY",
LLL: "MMMM D, YYYY LT",
LLLL: "dddd, MMMM D, YYYY LT"
},
Od = "Invalid date",
Pd = "%d",
Qd = /\d{1,2}/,
Rd = {
future: "in %s",
past: "%s ago",
s: "a few seconds",
m: "a minute",
mm: "%d minutes",
h: "an hour",
hh: "%d hours",
d: "a day",
dd: "%d days",
M: "a month",
MM: "%d months",
y: "a year",
yy: "%d years"
},
Sd = t.prototype;
Sd._calendar = Md, Sd.calendar = $b, Sd._longDateFormat = Nd, Sd.longDateFormat = _b, Sd._invalidDate = Od, Sd.invalidDate = ac, Sd._ordinal = Pd, Sd.ordinal = bc, Sd._ordinalParse = Qd, Sd.preparse = cc, Sd.postformat = cc, Sd._relativeTime = Rd, Sd.relativeTime = dc, Sd.pastFuture = ec, Sd.set = fc, Sd.months = U, Sd._months = kd, Sd.monthsShort = V, Sd._monthsShort = ld, Sd.monthsParse = W, Sd.week = ka, Sd._week = sd, Sd.firstDayOfYear = ma, Sd.firstDayOfWeek = la, Sd.weekdays = Kb, Sd._weekdays = Cd, Sd.weekdaysMin = Mb, Sd._weekdaysMin = Ed, Sd.weekdaysShort = Lb, Sd._weekdaysShort = Dd, Sd.weekdaysParse = Nb, Sd.isPM = Tb, Sd._meridiemParse = Fd, Sd.meridiem = Ub, x("en", {
ordinalParse: /\d{1,2}(th|st|nd|rd)/,
ordinal: function(a) {
var b = a % 10,
c = 1 === r(a % 100 / 10) ? "th" : 1 === b ? "st" : 2 === b ? "nd" : 3 === b ? "rd" : "th";
return a + c
}
}), c.lang = aa("moment.lang is deprecated. Use moment.locale instead.", x), c.langData = aa("moment.langData is deprecated. Use moment.localeData instead.", z);
var Td = Math.abs,
Ud = wc("ms"),
Vd = wc("s"),
Wd = wc("m"),
Xd = wc("h"),
Yd = wc("d"),
Zd = wc("w"),
$d = wc("M"),
_d = wc("y"),
ae = yc("milliseconds"),
be = yc("seconds"),
ce = yc("minutes"),
de = yc("hours"),
ee = yc("days"),
fe = yc("months"),
ge = yc("years"),
he = Math.round,
ie = {
s: 45,
m: 45,
h: 22,
d: 26,
M: 11
},
je = Math.abs,
ke = Ga.prototype;
ke.abs = nc, ke.add = pc, ke.subtract = qc, ke.as = uc, ke.asMilliseconds = Ud, ke.asSeconds = Vd, ke.asMinutes = Wd, ke.asHours = Xd, ke.asDays = Yd, ke.asWeeks = Zd, ke.asMonths = $d, ke.asYears = _d, ke.valueOf = vc, ke._bubble = rc, ke.get = xc, ke.milliseconds = ae, ke.seconds = be, ke.minutes = ce, ke.hours = de, ke.days = ee, ke.weeks = zc, ke.months = fe, ke.years = ge, ke.humanize = Dc, ke.toISOString = Ec, ke.toString = Ec, ke.toJSON = Ec, ke.locale = rb, ke.localeData = sb, ke.toIsoString = aa("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", Ec), ke.lang = Ad, I("X", 0, 0, "unix"), I("x", 0, 0, "valueOf"), N("x", Zc), N("X", _c), Q("X", function(a, b, c) {
c._d = new Date(1e3 * parseFloat(a, 10))
}), Q("x", function(a, b, c) {
c._d = new Date(r(a))
}), c.version = "2.10.3", d(Ca), c.fn = Ld, c.min = Ea, c.max = Fa, c.utc = j, c.unix = Yb, c.months = ic, c.isDate = f, c.locale = x, c.invalid = n, c.duration = Xa, c.isMoment = q, c.weekdays = kc, c.parseZone = Zb, c.localeData = z, c.isDuration = Ha, c.monthsShort = jc, c.weekdaysMin = mc, c.defineLocale = y, c.weekdaysShort = lc, c.normalizeUnits = B, c.relativeTimeThreshold = Cc;
var le = c;
return le
})
}, {}
],
57: [
function(a, b, c) {
"use strict";
b.exports = a("./lib")
}, {
"./lib": 62
}
],
58: [
function(a, b, c) {
"use strict";
function d() {}
function e(a) {
try {
return a.then
} catch (b) {
return q = b, r
}
}
function f(a, b) {
try {
return a(b)
} catch (c) {
return q = c, r
}
}
function g(a, b, c) {
try {
a(b, c)
} catch (d) {
return q = d, r
}
}
function h(a) {
if ("object" != typeof this) throw new TypeError("Promises must be constructed via new");
if ("function" != typeof a) throw new TypeError("not a function");
this._32 = 0, this._8 = null, this._89 = [], a !== d && o(a, this)
}
function i(a, b, c) {
return new a.constructor(function(e, f) {
var g = new h(d);
g.then(e, f), j(a, new n(b, c, g))
})
}
function j(a, b) {
for (; 3 === a._32;) a = a._8;
return 0 === a._32 ? void a._89.push(b) : void p(function() {
var c = 1 === a._32 ? b.onFulfilled : b.onRejected;
if (null === c) return void(1 === a._32 ? k(b.promise, a._8) : l(b.promise, a._8));
var d = f(c, a._8);
d === r ? l(b.promise, q) : k(b.promise, d)
})
}
function k(a, b) {
if (b === a) return l(a, new TypeError("A promise cannot be resolved with itself."));
if (b && ("object" == typeof b || "function" == typeof b)) {
var c = e(b);
if (c === r) return l(a, q);
if (c === a.then && b instanceof h) return a._32 = 3, a._8 = b, void m(a);
if ("function" == typeof c) return void o(c.bind(b), a)
}
a._32 = 1, a._8 = b, m(a)
}
function l(a, b) {
a._32 = 2, a._8 = b, m(a)
}
function m(a) {
for (var b = 0; b < a._89.length; b++) j(a, a._89[b]);
a._89 = null
}
function n(a, b, c) {
this.onFulfilled = "function" == typeof a ? a : null, this.onRejected = "function" == typeof b ? b : null, this.promise = c
}
function o(a, b) {
var c = !1,
d = g(a, function(a) {
c || (c = !0, k(b, a))
}, function(a) {
c || (c = !0, l(b, a))
});
c || d !== r || (c = !0, l(b, q))
}
var p = a("asap/raw"),
q = null,
r = {};
b.exports = h, h._83 = d, h.prototype.then = function(a, b) {
if (this.constructor !== h) return i(this, a, b);
var c = new h(d);
return j(this, new n(a, b, c)), c
}
}, {
"asap/raw": 66
}
],
59: [
function(a, b, c) {
"use strict";
var d = a("./core.js");
b.exports = d, d.prototype.done = function(a, b) {
var c = arguments.length ? this.then.apply(this, arguments) : this;
c.then(null, function(a) {
setTimeout(function() {
throw a
}, 0)
})
}
}, {
"./core.js": 58
}
],
60: [
function(a, b, c) {
"use strict";
function d(a) {
var b = new e(e._83);
return b._32 = 1, b._8 = a, b
}
var e = a("./core.js");
a("asap/raw");
b.exports = e;
var f = d(!0),
g = d(!1),
h = d(null),
i = d(void 0),
j = d(0),
k = d("");
e.resolve = function(a) {
if (a instanceof e) return a;
if (null === a) return h;
if (void 0 === a) return i;
if (a === !0) return f;
if (a === !1) return g;
if (0 === a) return j;
if ("" === a) return k;
if ("object" == typeof a || "function" == typeof a) try {
var b = a.then;
if ("function" == typeof b) return new e(b.bind(a))
} catch (c) {
return new e(function(a, b) {
b(c)
})
}
return d(a)
}, e.all = function(a) {
var b = Array.prototype.slice.call(a);
return new e(function(a, c) {
function d(g, h) {
if (h && ("object" == typeof h || "function" == typeof h)) {
if (h instanceof e && h.then === e.prototype.then) {
for (; 3 === h._32;) h = h._8;
return 1 === h._32 ? d(g, h._8) : (2 === h._32 && c(h._8), void h.then(function(a) {
d(g, a)
}, c))
}
var i = h.then;
if ("function" == typeof i) {
var j = new e(i.bind(h));
return void j.then(function(a) {
d(g, a)
}, c)
}
}
b[g] = h, 0 === --f && a(b)
}
if (0 === b.length) return a([]);
for (var f = b.length, g = 0; g < b.length; g++) d(g, b[g])
})
}, e.reject = function(a) {
return new e(function(b, c) {
c(a)
})
}, e.race = function(a) {
return new e(function(b, c) {
a.forEach(function(a) {
e.resolve(a).then(b, c)
})
})
}, e.prototype["catch"] = function(a) {
return this.then(null, a)
}
}, {
"./core.js": 58,
"asap/raw": 66
}
],
61: [
function(a, b, c) {
"use strict";
var d = a("./core.js");
b.exports = d, d.prototype["finally"] = function(a) {
return this.then(function(b) {
return d.resolve(a()).then(function() {
return b
})
}, function(b) {
return d.resolve(a()).then(function() {
throw b
})
})
}
}, {
"./core.js": 58
}
],
62: [
function(a, b, c) {
"use strict";
b.exports = a("./core.js"), a("./done.js"), a("./finally.js"), a("./es6-extensions.js"), a("./node-extensions.js")
}, {
"./core.js": 58,
"./done.js": 59,
"./es6-extensions.js": 60,
"./finally.js": 61,
"./node-extensions.js": 63
}
],
63: [
function(a, b, c) {
"use strict";
var d = a("./core.js"),
e = a("asap");
b.exports = d, d.denodeify = function(a, b) {
return b = b || 1 / 0,
function() {
var c = this,
e = Array.prototype.slice.call(arguments);
return new d(function(d, f) {
for (; e.length && e.length > b;) e.pop();
e.push(function(a, b) {
a ? f(a) : d(b)
});
var g = a.apply(c, e);
!g || "object" != typeof g && "function" != typeof g || "function" != typeof g.then || d(g)
})
}
}, d.nodeify = function(a) {
return function() {
var b = Array.prototype.slice.call(arguments),
c = "function" == typeof b[b.length - 1] ? b.pop() : null,
f = this;
try {
return a.apply(this, arguments).nodeify(c, f)
} catch (g) {
if (null === c || "undefined" == typeof c) return new d(function(a, b) {
b(g)
});
e(function() {
c.call(f, g)
})
}
}
}, d.prototype.nodeify = function(a, b) {
return "function" != typeof a ? this : void this.then(function(c) {
e(function() {
a.call(b, null, c)
})
}, function(c) {
e(function() {
a.call(b, c)
})
})
}
}, {
"./core.js": 58,
asap: 64
}
],
64: [
function(a, b, c) {
"use strict";
function d() {
if (i.length) throw i.shift()
}
function e(a) {
var b;
b = h.length ? h.pop() : new f, b.task = a, g(b)
}
function f() {
this.task = null
}
var g = a("./raw"),
h = [],
i = [],
j = g.makeRequestCallFromTimer(d);
b.exports = e, f.prototype.call = function() {
try {
this.task.call()
} catch (a) {
e.onerror ? e.onerror(a) : (i.push(a), j())
} finally {
this.task = null, h[h.length] = this
}
}
}, {
"./raw": 65
}
],
65: [
function(a, b, c) {
(function(a) {
"use strict";
function c(a) {
h.length || (g(), i = !0), h[h.length] = a
}
function d() {
for (; j < h.length;) {
var a = j;
if (j += 1, h[a].call(), j > k) {
for (var b = 0, c = h.length - j; c > b; b++) h[b] = h[b + j];
h.length -= j, j = 0
}
}
h.length = 0, j = 0, i = !1
}
function e(a) {
var b = 1,
c = new l(a),
d = document.createTextNode("");
return c.observe(d, {
characterData: !0
}),
function() {
b = -b, d.data = b
}
}
function f(a) {
return function() {
function b() {
clearTimeout(c), clearInterval(d), a()
}
var c = setTimeout(b, 0),
d = setInterval(b, 50)
}
}
b.exports = c;
var g, h = [],
i = !1,
j = 0,
k = 1024,
l = a.MutationObserver || a.WebKitMutationObserver;
g = "function" == typeof l ? e(d) : f(d), c.requestFlush = g, c.makeRequestCallFromTimer = f
}).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
}, {}
],
66: [
function(a, b, c) {
(function(c) {
"use strict";
function d(a) {
i.length || (f(), j = !0), i[i.length] = a
}
function e() {
for (; k < i.length;) {
var a = k;
if (k += 1, i[a].call(), k > l) {
for (var b = 0, c = i.length - k; c > b; b++) i[b] = i[b + k];
i.length -= k, k = 0
}
}
i.length = 0, k = 0, j = !1
}
function f() {
var b = c.domain;
b && (g || (g = a("domain")), g.active = c.domain = null), j && h ? setImmediate(e) : c.nextTick(e), b && (g.active = c.domain = b)
}
var g, h = "function" == typeof setImmediate;
b.exports = d;
var i = [],
j = !1,
k = 0,
l = 1024;
d.requestFlush = f
}).call(this, a("_process"))
}, {
_process: 20,
domain: 17
}
],
67: [
function(a, b, c) {
! function() {
"use strict";
var a = {};
a.parse = function(a) {
return "string" != typeof a ? {} : (a = a.trim().replace(/^(\?|#)/, ""), a ? a.trim().split("&").reduce(function(a, b) {
var c = b.replace(/\+/g, " ").split("="),
d = c[0],
e = c[1];
return d = decodeURIComponent(d), e = void 0 === e ? null : decodeURIComponent(e), a.hasOwnProperty(d) ? Array.isArray(a[d]) ? a[d].push(e) : a[d] = [a[d], e] : a[d] = e, a
}, {}) : {})
}, a.stringify = function(a) {
return a ? Object.keys(a).map(function(b) {
var c = a[b];
return Array.isArray(c) ? c.map(function(a) {
return encodeURIComponent(b) + "=" + encodeURIComponent(a)
}).join("&") : encodeURIComponent(b) + "=" + encodeURIComponent(c)
}).join("&") : ""
}, "function" == typeof define && define.amd ? define(function() {
return a
}) : "undefined" != typeof b && b.exports ? b.exports = a : self.queryString = a
}()
}, {}
],
68: [
function(a, b, c) {
! function(a) {
var c, d, e = "0.4.2",
f = "hasOwnProperty",
g = /[\.\/]/,
h = "*",
i = function() {},
j = function(a, b) {
return a - b
},
k = {
n: {}
},
l = function(a, b) {
a = String(a);
var e, f = d,
g = Array.prototype.slice.call(arguments, 2),
h = l.listeners(a),
i = 0,
k = [],
m = {},
n = [],
o = c;
c = a, d = 0;
for (var p = 0, q = h.length; q > p; p++) "zIndex" in h[p] && (k.push(h[p].zIndex), h[p].zIndex < 0 && (m[h[p].zIndex] = h[p]));
for (k.sort(j); k[i] < 0;)
if (e = m[k[i++]], n.push(e.apply(b, g)), d) return d = f, n;
for (p = 0; q > p; p++)
if (e = h[p], "zIndex" in e)
if (e.zIndex == k[i]) {
if (n.push(e.apply(b, g)), d) break;
do
if (i++, e = m[k[i]], e && n.push(e.apply(b, g)), d) break;
while (e)
} else m[e.zIndex] = e;
else if (n.push(e.apply(b, g)), d) break;
return d = f, c = o, n.length ? n : null
};
l._events = k, l.listeners = function(a) {
var b, c, d, e, f, i, j, l, m = a.split(g),
n = k,
o = [n],
p = [];
for (e = 0, f = m.length; f > e; e++) {
for (l = [], i = 0, j = o.length; j > i; i++)
for (n = o[i].n, c = [n[m[e]], n[h]], d = 2; d--;) b = c[d], b && (l.push(b), p = p.concat(b.f || []));
o = l
}
return p
}, l.on = function(a, b) {
if (a = String(a), "function" != typeof b) return function() {};
for (var c = a.split(g), d = k, e = 0, f = c.length; f > e; e++) d = d.n, d = d.hasOwnProperty(c[e]) && d[c[e]] || (d[c[e]] = {
n: {}
});
for (d.f = d.f || [], e = 0, f = d.f.length; f > e; e++)
if (d.f[e] == b) return i;
return d.f.push(b),
function(a) {
+a == +a && (b.zIndex = +a)
}
}, l.f = function(a) {
var b = [].slice.call(arguments, 1);
return function() {
l.apply(null, [a, null].concat(b).concat([].slice.call(arguments, 0)))
}
}, l.stop = function() {
d = 1
}, l.nt = function(a) {
return a ? new RegExp("(?:\\.|\\/|^)" + a + "(?:\\.|\\/|$)").test(c) : c
}, l.nts = function() {
return c.split(g)
}, l.off = l.unbind = function(a, b) {
if (!a) return void(l._events = k = {
n: {}
});
var c, d, e, i, j, m, n, o = a.split(g),
p = [k];
for (i = 0, j = o.length; j > i; i++)
for (m = 0; m < p.length; m += e.length - 2) {
if (e = [m, 1], c = p[m].n, o[i] != h) c[o[i]] && e.push(c[o[i]]);
else
for (d in c) c[f](d) && e.push(c[d]);
p.splice.apply(p, e)
}
for (i = 0, j = p.length; j > i; i++)
for (c = p[i]; c.n;) {
if (b) {
if (c.f) {
for (m = 0, n = c.f.length; n > m; m++)
if (c.f[m] == b) {
c.f.splice(m, 1);
break
}!c.f.length && delete c.f
}
for (d in c.n)
if (c.n[f](d) && c.n[d].f) {
var q = c.n[d].f;
for (m = 0, n = q.length; n > m; m++)
if (q[m] == b) {
q.splice(m, 1);
break
}!q.length && delete c.n[d].f
}
} else {
delete c.f;
for (d in c.n) c.n[f](d) && c.n[d].f && delete c.n[d].f
}
c = c.n
}
}, l.once = function(a, b) {
var c = function() {
return l.unbind(a, c), b.apply(this, arguments)
};
return l.on(a, c)
}, l.version = e, l.toString = function() {
return "You are running Eve " + e
}, "undefined" != typeof b && b.exports ? b.exports = l : "undefined" != typeof define ? define("eve", [], function() {
return l
}) : a.eve = l
}(this)
}, {}
],
69: [
function(a, b, c) {
! function(a) {
var c, d, e = "0.4.2",
f = "hasOwnProperty",
g = /[\.\/]/,
h = "*",
i = function() {},
j = function(a, b) {
return a - b
},
k = {
n: {}
},
l = function(a, b) {
a = String(a);
var e, f = d,
g = Array.prototype.slice.call(arguments, 2),
h = l.listeners(a),
i = 0,
k = [],
m = {},
n = [],
o = c;
c = a, d = 0;
for (var p = 0, q = h.length; q > p; p++) "zIndex" in h[p] && (k.push(h[p].zIndex), h[p].zIndex < 0 && (m[h[p].zIndex] = h[p]));
for (k.sort(j); k[i] < 0;)
if (e = m[k[i++]], n.push(e.apply(b, g)), d) return d = f, n;
for (p = 0; q > p; p++)
if (e = h[p], "zIndex" in e)
if (e.zIndex == k[i]) {
if (n.push(e.apply(b, g)), d) break;
do
if (i++, e = m[k[i]], e && n.push(e.apply(b, g)), d) break;
while (e)
} else m[e.zIndex] = e;
else if (n.push(e.apply(b, g)), d) break;
return d = f, c = o, n.length ? n : null
};
l._events = k, l.listeners = function(a) {
var b, c, d, e, f, i, j, l, m = a.split(g),
n = k,
o = [n],
p = [];
for (e = 0, f = m.length; f > e; e++) {
for (l = [], i = 0, j = o.length; j > i; i++)
for (n = o[i].n, c = [n[m[e]], n[h]], d = 2; d--;) b = c[d], b && (l.push(b), p = p.concat(b.f || []));
o = l
}
return p
}, l.on = function(a, b) {
if (a = String(a), "function" != typeof b) return function() {};
for (var c = a.split(g), d = k, e = 0, f = c.length; f > e; e++) d = d.n, d = d.hasOwnProperty(c[e]) && d[c[e]] || (d[c[e]] = {
n: {}
});
for (d.f = d.f || [], e = 0, f = d.f.length; f > e; e++)
if (d.f[e] == b) return i;
return d.f.push(b),
function(a) {
+a == +a && (b.zIndex = +a)
}
}, l.f = function(a) {
var b = [].slice.call(arguments, 1);
return function() {
l.apply(null, [a, null].concat(b).concat([].slice.call(arguments, 0)))
}
}, l.stop = function() {
d = 1
}, l.nt = function(a) {
return a ? new RegExp("(?:\\.|\\/|^)" + a + "(?:\\.|\\/|$)").test(c) : c
}, l.nts = function() {
return c.split(g)
}, l.off = l.unbind = function(a, b) {
if (!a) return void(l._events = k = {
n: {}
});
var c, d, e, i, j, m, n, o = a.split(g),
p = [k];
for (i = 0, j = o.length; j > i; i++)
for (m = 0; m < p.length; m += e.length - 2) {
if (e = [m, 1], c = p[m].n, o[i] != h) c[o[i]] && e.push(c[o[i]]);
else
for (d in c) c[f](d) && e.push(c[d]);
p.splice.apply(p, e)
}
for (i = 0, j = p.length; j > i; i++)
for (c = p[i]; c.n;) {
if (b) {
if (c.f) {
for (m = 0, n = c.f.length; n > m; m++)
if (c.f[m] == b) {
c.f.splice(m, 1);
break
}!c.f.length && delete c.f
}
for (d in c.n)
if (c.n[f](d) && c.n[d].f) {
var q = c.n[d].f;
for (m = 0, n = q.length; n > m; m++)
if (q[m] == b) {
q.splice(m, 1);
break
}!q.length && delete c.n[d].f
}
} else {
delete c.f;
for (d in c.n) c.n[f](d) && c.n[d].f && delete c.n[d].f
}
c = c.n
}
}, l.once = function(a, b) {
var c = function() {
return l.unbind(a, c), b.apply(this, arguments)
};
return l.on(a, c)
}, l.version = e, l.toString = function() {
return "You are running Eve " + e
}, "undefined" != typeof b && b.exports ? b.exports = l : "undefined" != typeof define ? define("eve", [], function() {
return l
}) : a.eve = l
}(window || this),
function(b, c) {
"function" == typeof define && define.amd ? define(["eve"], function(a) {
return c(b, a)
}) : c(b, b.eve || "function" == typeof a && a("eve"))
}(this, function(a, d) {
function e(a) {
if (e.is(a, "function")) return w ? a() : d.on("raphael.DOMload", a);
if (e.is(a, X)) return e._engine.create[F](e, a.splice(0, 3 + e.is(a[0], V))).add(a);
var b = Array.prototype.slice.call(arguments, 0);
if (e.is(b[b.length - 1], "function")) {
var c = b.pop();
return w ? c.call(e._engine.create[F](e, b)) : d.on("raphael.DOMload", function() {
c.call(e._engine.create[F](e, b))
})
}
return e._engine.create[F](e, arguments)
}
function f(a) {
if ("function" == typeof a || Object(a) !== a) return a;
var b = new a.constructor;
for (var c in a) a[B](c) && (b[c] = f(a[c]));
return b
}
function g(a, b) {
for (var c = 0, d = a.length; d > c; c++)
if (a[c] === b) return a.push(a.splice(c, 1)[0])
}
function h(a, b, c) {
function d() {
var e = Array.prototype.slice.call(arguments, 0),
f = e.join("␀"),
h = d.cache = d.cache || {},
i = d.count = d.count || [];
return h[B](f) ? (g(i, f), c ? c(h[f]) : h[f]) : (i.length >= 1e3 && delete h[i.shift()], i.push(f), h[f] = a[F](b, e), c ? c(h[f]) : h[f])
}
return d
}
function i() {
return this.hex
}
function j(a, b) {
for (var c = [], d = 0, e = a.length; e - 2 * !b > d; d += 2) {
var f = [{
x: +a[d - 2],
y: +a[d - 1]
}, {
x: +a[d],
y: +a[d + 1]
}, {
x: +a[d + 2],
y: +a[d + 3]
}, {
x: +a[d + 4],
y: +a[d + 5]
}];
b ? d ? e - 4 == d ? f[3] = {
x: +a[0],
y: +a[1]
} : e - 2 == d && (f[2] = {
x: +a[0],
y: +a[1]
}, f[3] = {
x: +a[2],
y: +a[3]
}) : f[0] = {
x: +a[e - 2],
y: +a[e - 1]
} : e - 4 == d ? f[3] = f[2] : d || (f[0] = {
x: +a[d],
y: +a[d + 1]
}), c.push(["C", (-f[0].x + 6 * f[1].x + f[2].x) / 6, (-f[0].y + 6 * f[1].y + f[2].y) / 6, (f[1].x + 6 * f[2].x - f[3].x) / 6, (f[1].y + 6 * f[2].y - f[3].y) / 6, f[2].x, f[2].y])
}
return c
}
function k(a, b, c, d, e) {
var f = -3 * b + 9 * c - 9 * d + 3 * e,
g = a * f + 6 * b - 12 * c + 6 * d;
return a * g - 3 * b + 3 * c
}
function l(a, b, c, d, e, f, g, h, i) {
null == i && (i = 1), i = i > 1 ? 1 : 0 > i ? 0 : i;
for (var j = i / 2, l = 12, m = [-.1252, .1252, -.3678, .3678, -.5873, .5873, -.7699, .7699, -.9041, .9041, -.9816, .9816], n = [.2491, .2491, .2335, .2335, .2032, .2032, .1601, .1601, .1069, .1069, .0472, .0472], o = 0, p = 0; l > p; p++) {
var q = j * m[p] + j,
r = k(q, a, c, e, g),
s = k(q, b, d, f, h),
t = r * r + s * s;
o += n[p] * P.sqrt(t)
}
return j * o
}
function m(a, b, c, d, e, f, g, h, i) {
if (!(0 > i || l(a, b, c, d, e, f, g, h) < i)) {
var j, k = 1,
m = k / 2,
n = k - m,
o = .01;
for (j = l(a, b, c, d, e, f, g, h, n); S(j - i) > o;) m /= 2, n += (i > j ? 1 : -1) * m, j = l(a, b, c, d, e, f, g, h, n);
return n
}
}
function n(a, b, c, d, e, f, g, h) {
if (!(Q(a, c) < R(e, g) || R(a, c) > Q(e, g) || Q(b, d) < R(f, h) || R(b, d) > Q(f, h))) {
var i = (a * d - b * c) * (e - g) - (a - c) * (e * h - f * g),
j = (a * d - b * c) * (f - h) - (b - d) * (e * h - f * g),
k = (a - c) * (f - h) - (b - d) * (e - g);
if (k) {
var l = i / k,
m = j / k,
n = +l.toFixed(2),
o = +m.toFixed(2);
if (!(n < +R(a, c).toFixed(2) || n > +Q(a, c).toFixed(2) || n < +R(e, g).toFixed(2) || n > +Q(e, g).toFixed(2) || o < +R(b, d).toFixed(2) || o > +Q(b, d).toFixed(2) || o < +R(f, h).toFixed(2) || o > +Q(f, h).toFixed(2))) return {
x: l,
y: m
}
}
}
}
function o(a, b, c) {
var d = e.bezierBBox(a),
f = e.bezierBBox(b);
if (!e.isBBoxIntersect(d, f)) return c ? 0 : [];
for (var g = l.apply(0, a), h = l.apply(0, b), i = Q(~~(g / 5), 1), j = Q(~~(h / 5), 1), k = [], m = [], o = {}, p = c ? 0 : [], q = 0; i + 1 > q; q++) {
var r = e.findDotsAtSegment.apply(e, a.concat(q / i));
k.push({
x: r.x,
y: r.y,
t: q / i
})
}
for (q = 0; j + 1 > q; q++) r = e.findDotsAtSegment.apply(e, b.concat(q / j)), m.push({
x: r.x,
y: r.y,
t: q / j
});
for (q = 0; i > q; q++)
for (var s = 0; j > s; s++) {
var t = k[q],
u = k[q + 1],
v = m[s],
w = m[s + 1],
x = S(u.x - t.x) < .001 ? "y" : "x",
y = S(w.x - v.x) < .001 ? "y" : "x",
z = n(t.x, t.y, u.x, u.y, v.x, v.y, w.x, w.y);
if (z) {
if (o[z.x.toFixed(4)] == z.y.toFixed(4)) continue;
o[z.x.toFixed(4)] = z.y.toFixed(4);
var A = t.t + S((z[x] - t[x]) / (u[x] - t[x])) * (u.t - t.t),
B = v.t + S((z[y] - v[y]) / (w[y] - v[y])) * (w.t - v.t);
A >= 0 && 1.001 >= A && B >= 0 && 1.001 >= B && (c ? p++ : p.push({
x: z.x,
y: z.y,
t1: R(A, 1),
t2: R(B, 1)
}))
}
}
return p
}
function p(a, b, c) {
a = e._path2curve(a), b = e._path2curve(b);
for (var d, f, g, h, i, j, k, l, m, n, p = c ? 0 : [], q = 0, r = a.length; r > q; q++) {
var s = a[q];
if ("M" == s[0]) d = i = s[1], f = j = s[2];
else {
"C" == s[0] ? (m = [d, f].concat(s.slice(1)), d = m[6], f = m[7]) : (m = [d, f, d, f, i, j, i, j], d = i, f = j);
for (var t = 0, u = b.length; u > t; t++) {
var v = b[t];
if ("M" == v[0]) g = k = v[1], h = l = v[2];
else {
"C" == v[0] ? (n = [g, h].concat(v.slice(1)), g = n[6], h = n[7]) : (n = [g, h, g, h, k, l, k, l], g = k, h = l);
var w = o(m, n, c);
if (c) p += w;
else {
for (var x = 0, y = w.length; y > x; x++) w[x].segment1 = q, w[x].segment2 = t, w[x].bez1 = m, w[x].bez2 = n;
p = p.concat(w)
}
}
}
}
}
return p
}
function q(a, b, c, d, e, f) {
null != a ? (this.a = +a, this.b = +b, this.c = +c, this.d = +d, this.e = +e, this.f = +f) : (this.a = 1, this.b = 0, this.c = 0, this.d = 1, this.e = 0, this.f = 0)
}
function r() {
return this.x + J + this.y + J + this.width + " × " + this.height
}
function s(a, b, c, d, e, f) {
function g(a) {
return ((l * a + k) * a + j) * a
}
function h(a, b) {
var c = i(a, b);
return ((o * c + n) * c + m) * c
}
function i(a, b) {
var c, d, e, f, h, i;
for (e = a, i = 0; 8 > i; i++) {
if (f = g(e) - a, S(f) < b) return e;
if (h = (3 * l * e + 2 * k) * e + j, S(h) < 1e-6) break;
e -= f / h
}
if (c = 0, d = 1, e = a, c > e) return c;
if (e > d) return d;
for (; d > c;) {
if (f = g(e), S(f - a) < b) return e;
a > f ? c = e : d = e, e = (d - c) / 2 + c
}
return e
}
var j = 3 * b,
k = 3 * (d - b) - j,
l = 1 - j - k,
m = 3 * c,
n = 3 * (e - c) - m,
o = 1 - m - n;
return h(a, 1 / (200 * f))
}
function t(a, b) {
var c = [],
d = {};
if (this.ms = b, this.times = 1, a) {
for (var e in a) a[B](e) && (d[ba(e)] = a[e], c.push(ba(e)));
c.sort(na)
}
this.anim = d, this.top = c[c.length - 1], this.percents = c
}
function u(a, b, c, f, g, h) {
c = ba(c);
var i, j, k, l, m, n, o = a.ms,
p = {},
r = {},
t = {};
if (f)
for (v = 0, w = kb.length; w > v; v++) {
var u = kb[v];
if (u.el.id == b.id && u.anim == a) {
u.percent != c ? (kb.splice(v, 1), k = 1) : j = u, b.attr(u.totalOrigin);
break
}
} else f = +r;
for (var v = 0, w = a.percents.length; w > v; v++) {
if (a.percents[v] == c || a.percents[v] > f * a.top) {
c = a.percents[v], m = a.percents[v - 1] || 0, o = o / a.top * (c - m), l = a.percents[v + 1], i = a.anim[c];
break
}
f && b.attr(a.anim[a.percents[v]])
}
if (i) {
if (j) j.initstatus = f, j.start = new Date - j.ms * f;
else {
for (var x in i)
if (i[B](x) && (fa[B](x) || b.paper.customAttributes[B](x))) switch (p[x] = b.attr(x), null == p[x] && (p[x] = ea[x]), r[x] = i[x], fa[x]) {
case V:
t[x] = (r[x] - p[x]) / o;
break;
case "colour":
p[x] = e.getRGB(p[x]);
var z = e.getRGB(r[x]);
t[x] = {
r: (z.r - p[x].r) / o,
g: (z.g - p[x].g) / o,
b: (z.b - p[x].b) / o
};
break;
case "path":
var A = Ma(p[x], r[x]),
C = A[1];
for (p[x] = A[0], t[x] = [], v = 0, w = p[x].length; w > v; v++) {
t[x][v] = [0];
for (var D = 1, E = p[x][v].length; E > D; D++) t[x][v][D] = (C[v][D] - p[x][v][D]) / o
}
break;
case "transform":
var F = b._,
H = Ra(F[x], r[x]);
if (H)
for (p[x] = H.from, r[x] = H.to, t[x] = [], t[x].real = !0, v = 0, w = p[x].length; w > v; v++)
for (t[x][v] = [p[x][v][0]], D = 1, E = p[x][v].length; E > D; D++) t[x][v][D] = (r[x][v][D] - p[x][v][D]) / o;
else {
var I = b.matrix || new q,
J = {
_: {
transform: F.transform
},
getBBox: function() {
return b.getBBox(1)
}
};
p[x] = [I.a, I.b, I.c, I.d, I.e, I.f], Pa(J, r[x]), r[x] = J._.transform, t[x] = [(J.matrix.a - I.a) / o, (J.matrix.b - I.b) / o, (J.matrix.c - I.c) / o, (J.matrix.d - I.d) / o, (J.matrix.e - I.e) / o, (J.matrix.f - I.f) / o]
}
break;
case "csv":
var M = K(i[x])[L](y),
N = K(p[x])[L](y);
if ("clip-rect" == x)
for (p[x] = N, t[x] = [], v = N.length; v--;) t[x][v] = (M[v] - p[x][v]) / o;
r[x] = M;
break;
default:
for (M = [][G](i[x]), N = [][G](p[x]), t[x] = [], v = b.paper.customAttributes[x].length; v--;) t[x][v] = ((M[v] || 0) - (N[v] || 0)) / o
}
var O = i.easing,
P = e.easing_formulas[O];
if (!P)
if (P = K(O).match(_), P && 5 == P.length) {
var Q = P;
P = function(a) {
return s(a, +Q[1], +Q[2], +Q[3], +Q[4], o)
}
} else P = pa;
if (n = i.start || a.start || +new Date, u = {
anim: a,
percent: c,
timestamp: n,
start: n + (a.del || 0),
status: 0,
initstatus: f || 0,
stop: !1,
ms: o,
easing: P,
from: p,
diff: t,
to: r,
el: b,
callback: i.callback,
prev: m,
next: l,
repeat: h || a.times,
origin: b.attr(),
totalOrigin: g
}, kb.push(u), f && !j && !k && (u.stop = !0, u.start = new Date - o * f, 1 == kb.length)) return mb();
k && (u.start = new Date - u.ms * f), 1 == kb.length && lb(mb)
}
d("raphael.anim.start." + b.id, b, a)
}
}
function v(a) {
for (var b = 0; b < kb.length; b++) kb[b].el.paper == a && kb.splice(b--, 1)
}
e.version = "2.1.2", e.eve = d;
var w, x, y = /[, ]+/,
z = {
circle: 1,
rect: 1,
path: 1,
ellipse: 1,
text: 1,
image: 1
},
A = /\{(\d+)\}/g,
B = "hasOwnProperty",
C = {
doc: document,
win: a
},
D = {
was: Object.prototype[B].call(C.win, "Raphael"),
is: C.win.Raphael
},
E = function() {
this.ca = this.customAttributes = {}
},
F = "apply",
G = "concat",
H = "ontouchstart" in C.win || C.win.DocumentTouch && C.doc instanceof DocumentTouch,
I = "",
J = " ",
K = String,
L = "split",
M = "click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel" [L](J),
N = {
mousedown: "touchstart",
mousemove: "touchmove",
mouseup: "touchend"
},
O = K.prototype.toLowerCase,
P = Math,
Q = P.max,
R = P.min,
S = P.abs,
T = P.pow,
U = P.PI,
V = "number",
W = "string",
X = "array",
Y = Object.prototype.toString,
Z = (e._ISURL = /^url\(['"]?(.+?)['"]?\)$/i, /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i),
$ = {
NaN: 1,
Infinity: 1,
"-Infinity": 1
},
_ = /^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,
aa = P.round,
ba = parseFloat,
ca = parseInt,
da = K.prototype.toUpperCase,
ea = e._availableAttrs = {
"arrow-end": "none",
"arrow-start": "none",
blur: 0,
"clip-rect": "0 0 1e9 1e9",
cursor: "default",
cx: 0,
cy: 0,
fill: "#fff",
"fill-opacity": 1,
font: '10px "Arial"',
"font-family": '"Arial"',
"font-size": "10",
"font-style": "normal",
"font-weight": 400,
gradient: 0,
height: 0,
href: "http://raphaeljs.com/",
"letter-spacing": 0,
opacity: 1,
path: "M0,0",
r: 0,
rx: 0,
ry: 0,
src: "",
stroke: "#000",
"stroke-dasharray": "",
"stroke-linecap": "butt",
"stroke-linejoin": "butt",
"stroke-miterlimit": 0,
"stroke-opacity": 1,
"stroke-width": 1,
target: "_blank",
"text-anchor": "middle",
title: "Raphael",
transform: "",
width: 0,
x: 0,
y: 0
},
fa = e._availableAnimAttrs = {
blur: V,
"clip-rect": "csv",
cx: V,
cy: V,
fill: "colour",
"fill-opacity": V,
"font-size": V,
height: V,
opacity: V,
path: "path",
r: V,
rx: V,
ry: V,
stroke: "colour",
"stroke-opacity": V,
"stroke-width": V,
transform: "transform",
width: V,
x: V,
y: V
},
ga = /[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/,
ha = {
hs: 1,
rg: 1
},
ia = /,?([achlmqrstvxz]),?/gi,
ja = /([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,
ka = /([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,
la = /(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/gi,
ma = (e._radial_gradient = /^r(?:\(([^,]+?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*([^\)]+?)\))?/, {}),
na = function(a, b) {
return ba(a) - ba(b)
},
oa = function() {},
pa = function(a) {
return a
},
qa = e._rectPath = function(a, b, c, d, e) {
return e ? [
["M", a + e, b],
["l", c - 2 * e, 0],
["a", e, e, 0, 0, 1, e, e],
["l", 0, d - 2 * e],
["a", e, e, 0, 0, 1, -e, e],
["l", 2 * e - c, 0],
["a", e, e, 0, 0, 1, -e, -e],
["l", 0, 2 * e - d],
["a", e, e, 0, 0, 1, e, -e],
["z"]
] : [
["M", a, b],
["l", c, 0],
["l", 0, d],
["l", -c, 0],
["z"]
]
},
ra = function(a, b, c, d) {
return null == d && (d = c), [
["M", a, b],
["m", 0, -d],
["a", c, d, 0, 1, 1, 0, 2 * d],
["a", c, d, 0, 1, 1, 0, -2 * d],
["z"]
]
},
sa = e._getPath = {
path: function(a) {
return a.attr("path")
},
circle: function(a) {
var b = a.attrs;
return ra(b.cx, b.cy, b.r)
},
ellipse: function(a) {
var b = a.attrs;
return ra(b.cx, b.cy, b.rx, b.ry)
},
rect: function(a) {
var b = a.attrs;
return qa(b.x, b.y, b.width, b.height, b.r)
},
image: function(a) {
var b = a.attrs;
return qa(b.x, b.y, b.width, b.height)
},
text: function(a) {
var b = a._getBBox();
return qa(b.x, b.y, b.width, b.height)
},
set: function(a) {
var b = a._getBBox();
return qa(b.x, b.y, b.width, b.height)
}
},
ta = e.mapPath = function(a, b) {
if (!b) return a;
var c, d, e, f, g, h, i;
for (a = Ma(a), e = 0, g = a.length; g > e; e++)
for (i = a[e], f = 1, h = i.length; h > f; f += 2) c = b.x(i[f], i[f + 1]), d = b.y(i[f], i[f + 1]), i[f] = c, i[f + 1] = d;
return a
};
if (e._g = C, e.type = C.win.SVGAngle || C.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") ? "SVG" : "VML", "VML" == e.type) {
var ua, va = C.doc.createElement("div");
if (va.innerHTML = '<v:shape adj="1"/>', ua = va.firstChild, ua.style.behavior = "url(#default#VML)", !ua || "object" != typeof ua.adj) return e.type = I;
va = null
}
e.svg = !(e.vml = "VML" == e.type), e._Paper = E, e.fn = x = E.prototype = e.prototype, e._id = 0, e._oid = 0, e.is = function(a, b) {
return b = O.call(b), "finite" == b ? !$[B](+a) : "array" == b ? a instanceof Array : "null" == b && null === a || b == typeof a && null !== a || "object" == b && a === Object(a) || "array" == b && Array.isArray && Array.isArray(a) || Y.call(a).slice(8, -1).toLowerCase() == b
}, e.angle = function(a, b, c, d, f, g) {
if (null == f) {
var h = a - c,
i = b - d;
return h || i ? (180 + 180 * P.atan2(-i, -h) / U + 360) % 360 : 0
}
return e.angle(a, b, f, g) - e.angle(c, d, f, g)
}, e.rad = function(a) {
return a % 360 * U / 180
}, e.deg = function(a) {
return Math.round(180 * a / U % 360 * 1e3) / 1e3
}, e.snapTo = function(a, b, c) {
if (c = e.is(c, "finite") ? c : 10, e.is(a, X)) {
for (var d = a.length; d--;)
if (S(a[d] - b) <= c) return a[d]
} else {
a = +a;
var f = b % a;
if (c > f) return b - f;
if (f > a - c) return b - f + a
}
return b
};
e.createUUID = function(a, b) {
return function() {
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(a, b).toUpperCase()
}
}(/[xy]/g, function(a) {
var b = 16 * P.random() | 0,
c = "x" == a ? b : 3 & b | 8;
return c.toString(16)
});
e.setWindow = function(a) {
d("raphael.setWindow", e, C.win, a), C.win = a, C.doc = C.win.document, e._engine.initWin && e._engine.initWin(C.win)
};
var wa = function(a) {
if (e.vml) {
var b, c = /^\s+|\s+$/g;
try {
var d = new ActiveXObject("htmlfile");
d.write("<body>"), d.close(), b = d.body
} catch (f) {
b = createPopup().document.body
}
var g = b.createTextRange();
wa = h(function(a) {
try {
b.style.color = K(a).replace(c, I);
var d = g.queryCommandValue("ForeColor");
return d = (255 & d) << 16 | 65280 & d | (16711680 & d) >>> 16, "#" + ("000000" + d.toString(16)).slice(-6)
} catch (e) {
return "none"
}
})
} else {
var i = C.doc.createElement("i");
i.title = "Raphaël Colour Picker", i.style.display = "none", C.doc.body.appendChild(i), wa = h(function(a) {
return i.style.color = a, C.doc.defaultView.getComputedStyle(i, I).getPropertyValue("color")
})
}
return wa(a)
},
xa = function() {
return "hsb(" + [this.h, this.s, this.b] + ")"
},
ya = function() {
return "hsl(" + [this.h, this.s, this.l] + ")"
},
za = function() {
return this.hex
},
Aa = function(a, b, c) {
if (null == b && e.is(a, "object") && "r" in a && "g" in a && "b" in a && (c = a.b, b = a.g, a = a.r), null == b && e.is(a, W)) {
var d = e.getRGB(a);
a = d.r, b = d.g, c = d.b
}
return (a > 1 || b > 1 || c > 1) && (a /= 255, b /= 255, c /= 255), [a, b, c]
},
Ba = function(a, b, c, d) {
a *= 255, b *= 255, c *= 255;
var f = {
r: a,
g: b,
b: c,
hex: e.rgb(a, b, c),
toString: za
};
return e.is(d, "finite") && (f.opacity = d), f
};
e.color = function(a) {
var b;
return e.is(a, "object") && "h" in a && "s" in a && "b" in a ? (b = e.hsb2rgb(a), a.r = b.r, a.g = b.g, a.b = b.b, a.hex = b.hex) : e.is(a, "object") && "h" in a && "s" in a && "l" in a ? (b = e.hsl2rgb(a), a.r = b.r, a.g = b.g, a.b = b.b, a.hex = b.hex) : (e.is(a, "string") && (a = e.getRGB(a)), e.is(a, "object") && "r" in a && "g" in a && "b" in a ? (b = e.rgb2hsl(a), a.h = b.h, a.s = b.s, a.l = b.l, b = e.rgb2hsb(a), a.v = b.b) : (a = {
hex: "none"
}, a.r = a.g = a.b = a.h = a.s = a.v = a.l = -1)), a.toString = za, a
}, e.hsb2rgb = function(a, b, c, d) {
this.is(a, "object") && "h" in a && "s" in a && "b" in a && (c = a.b, b = a.s, d = a.o, a = a.h), a *= 360;
var e, f, g, h, i;
return a = a % 360 / 60, i = c * b, h = i * (1 - S(a % 2 - 1)), e = f = g = c - i, a = ~~a, e += [i, h, 0, 0, h, i][a], f += [h, i, i, h, 0, 0][a], g += [0, 0, h, i, i, h][a], Ba(e, f, g, d)
}, e.hsl2rgb = function(a, b, c, d) {
this.is(a, "object") && "h" in a && "s" in a && "l" in a && (c = a.l, b = a.s, a = a.h), (a > 1 || b > 1 || c > 1) && (a /= 360, b /= 100, c /= 100), a *= 360;
var e, f, g, h, i;
return a = a % 360 / 60, i = 2 * b * (.5 > c ? c : 1 - c), h = i * (1 - S(a % 2 - 1)), e = f = g = c - i / 2, a = ~~a, e += [i, h, 0, 0, h, i][a], f += [h, i, i, h, 0, 0][a], g += [0, 0, h, i, i, h][a], Ba(e, f, g, d)
}, e.rgb2hsb = function(a, b, c) {
c = Aa(a, b, c), a = c[0], b = c[1], c = c[2];
var d, e, f, g;
return f = Q(a, b, c), g = f - R(a, b, c), d = 0 == g ? null : f == a ? (b - c) / g : f == b ? (c - a) / g + 2 : (a - b) / g + 4, d = (d + 360) % 6 * 60 / 360, e = 0 == g ? 0 : g / f, {
h: d,
s: e,
b: f,
toString: xa
}
}, e.rgb2hsl = function(a, b, c) {
c = Aa(a, b, c), a = c[0], b = c[1], c = c[2];
var d, e, f, g, h, i;
return g = Q(a, b, c), h = R(a, b, c), i = g - h, d = 0 == i ? null : g == a ? (b - c) / i : g == b ? (c - a) / i + 2 : (a - b) / i + 4, d = (d + 360) % 6 * 60 / 360, f = (g + h) / 2, e = 0 == i ? 0 : .5 > f ? i / (2 * f) : i / (2 - 2 * f), {
h: d,
s: e,
l: f,
toString: ya
}
}, e._path2string = function() {
return this.join(",").replace(ia, "$1")
};
e._preload = function(a, b) {
var c = C.doc.createElement("img");
c.style.cssText = "position:absolute;left:-9999em;top:-9999em", c.onload = function() {
b.call(this), this.onload = null, C.doc.body.removeChild(this)
}, c.onerror = function() {
C.doc.body.removeChild(this)
}, C.doc.body.appendChild(c), c.src = a
};
e.getRGB = h(function(a) {
if (!a || (a = K(a)).indexOf("-") + 1) return {
r: -1,
g: -1,
b: -1,
hex: "none",
error: 1,
toString: i
};
if ("none" == a) return {
r: -1,
g: -1,
b: -1,
hex: "none",
toString: i
};
!(ha[B](a.toLowerCase().substring(0, 2)) || "#" == a.charAt()) && (a = wa(a));
var b, c, d, f, g, h, j = a.match(Z);
return j ? (j[2] && (d = ca(j[2].substring(5), 16), c = ca(j[2].substring(3, 5), 16), b = ca(j[2].substring(1, 3), 16)), j[3] && (d = ca((g = j[3].charAt(3)) + g, 16), c = ca((g = j[3].charAt(2)) + g, 16), b = ca((g = j[3].charAt(1)) + g, 16)), j[4] && (h = j[4][L](ga), b = ba(h[0]), "%" == h[0].slice(-1) && (b *= 2.55), c = ba(h[1]), "%" == h[1].slice(-1) && (c *= 2.55), d = ba(h[2]), "%" == h[2].slice(-1) && (d *= 2.55), "rgba" == j[1].toLowerCase().slice(0, 4) && (f = ba(h[3])), h[3] && "%" == h[3].slice(-1) && (f /= 100)), j[5] ? (h = j[5][L](ga), b = ba(h[0]), "%" == h[0].slice(-1) && (b *= 2.55), c = ba(h[1]), "%" == h[1].slice(-1) && (c *= 2.55), d = ba(h[2]), "%" == h[2].slice(-1) && (d *= 2.55), ("deg" == h[0].slice(-3) || "°" == h[0].slice(-1)) && (b /= 360), "hsba" == j[1].toLowerCase().slice(0, 4) && (f = ba(h[3])), h[3] && "%" == h[3].slice(-1) && (f /= 100), e.hsb2rgb(b, c, d, f)) : j[6] ? (h = j[6][L](ga), b = ba(h[0]), "%" == h[0].slice(-1) && (b *= 2.55), c = ba(h[1]), "%" == h[1].slice(-1) && (c *= 2.55), d = ba(h[2]), "%" == h[2].slice(-1) && (d *= 2.55), ("deg" == h[0].slice(-3) || "°" == h[0].slice(-1)) && (b /= 360), "hsla" == j[1].toLowerCase().slice(0, 4) && (f = ba(h[3])), h[3] && "%" == h[3].slice(-1) && (f /= 100), e.hsl2rgb(b, c, d, f)) : (j = {
r: b,
g: c,
b: d,
toString: i
}, j.hex = "#" + (16777216 | d | c << 8 | b << 16).toString(16).slice(1), e.is(f, "finite") && (j.opacity = f), j)) : {
r: -1,
g: -1,
b: -1,
hex: "none",
error: 1,
toString: i
}
}, e), e.hsb = h(function(a, b, c) {
return e.hsb2rgb(a, b, c).hex
}), e.hsl = h(function(a, b, c) {
return e.hsl2rgb(a, b, c).hex
}), e.rgb = h(function(a, b, c) {
return "#" + (16777216 | c | b << 8 | a << 16).toString(16).slice(1)
}), e.getColor = function(a) {
var b = this.getColor.start = this.getColor.start || {
h: 0,
s: 1,
b: a || .75
},
c = this.hsb2rgb(b.h, b.s, b.b);
return b.h += .075, b.h > 1 && (b.h = 0, b.s -= .2, b.s <= 0 && (this.getColor.start = {
h: 0,
s: 1,
b: b.b
})), c.hex
}, e.getColor.reset = function() {
delete this.start
}, e.parsePathString = function(a) {
if (!a) return null;
var b = Ca(a);
if (b.arr) return Ea(b.arr);
var c = {
a: 7,
c: 6,
h: 1,
l: 2,
m: 2,
r: 4,
q: 4,
s: 4,
t: 2,
v: 1,
z: 0
},
d = [];
return e.is(a, X) && e.is(a[0], X) && (d = Ea(a)), d.length || K(a).replace(ja, function(a, b, e) {
var f = [],
g = b.toLowerCase();
if (e.replace(la, function(a, b) {
b && f.push(+b)
}), "m" == g && f.length > 2 && (d.push([b][G](f.splice(0, 2))), g = "l", b = "m" == b ? "l" : "L"), "r" == g) d.push([b][G](f));
else
for (; f.length >= c[g] && (d.push([b][G](f.splice(0, c[g]))), c[g]););
}), d.toString = e._path2string, b.arr = Ea(d), d
}, e.parseTransformString = h(function(a) {
if (!a) return null;
var b = [];
return e.is(a, X) && e.is(a[0], X) && (b = Ea(a)), b.length || K(a).replace(ka, function(a, c, d) {
var e = [];
O.call(c);
d.replace(la, function(a, b) {
b && e.push(+b)
}), b.push([c][G](e))
}), b.toString = e._path2string, b
});
var Ca = function(a) {
var b = Ca.ps = Ca.ps || {};
return b[a] ? b[a].sleep = 100 : b[a] = {
sleep: 100
}, setTimeout(function() {
for (var c in b) b[B](c) && c != a && (b[c].sleep--, !b[c].sleep && delete b[c])
}), b[a]
};
e.findDotsAtSegment = function(a, b, c, d, e, f, g, h, i) {
var j = 1 - i,
k = T(j, 3),
l = T(j, 2),
m = i * i,
n = m * i,
o = k * a + 3 * l * i * c + 3 * j * i * i * e + n * g,
p = k * b + 3 * l * i * d + 3 * j * i * i * f + n * h,
q = a + 2 * i * (c - a) + m * (e - 2 * c + a),
r = b + 2 * i * (d - b) + m * (f - 2 * d + b),
s = c + 2 * i * (e - c) + m * (g - 2 * e + c),
t = d + 2 * i * (f - d) + m * (h - 2 * f + d),
u = j * a + i * c,
v = j * b + i * d,
w = j * e + i * g,
x = j * f + i * h,
y = 90 - 180 * P.atan2(q - s, r - t) / U;
return (q > s || t > r) && (y += 180), {
x: o,
y: p,
m: {
x: q,
y: r
},
n: {
x: s,
y: t
},
start: {
x: u,
y: v
},
end: {
x: w,
y: x
},
alpha: y
}
}, e.bezierBBox = function(a, b, c, d, f, g, h, i) {
e.is(a, "array") || (a = [a, b, c, d, f, g, h, i]);
var j = La.apply(null, a);
return {
x: j.min.x,
y: j.min.y,
x2: j.max.x,
y2: j.max.y,
width: j.max.x - j.min.x,
height: j.max.y - j.min.y
}
}, e.isPointInsideBBox = function(a, b, c) {
return b >= a.x && b <= a.x2 && c >= a.y && c <= a.y2
}, e.isBBoxIntersect = function(a, b) {
var c = e.isPointInsideBBox;
return c(b, a.x, a.y) || c(b, a.x2, a.y) || c(b, a.x, a.y2) || c(b, a.x2, a.y2) || c(a, b.x, b.y) || c(a, b.x2, b.y) || c(a, b.x, b.y2) || c(a, b.x2, b.y2) || (a.x < b.x2 && a.x > b.x || b.x < a.x2 && b.x > a.x) && (a.y < b.y2 && a.y > b.y || b.y < a.y2 && b.y > a.y)
}, e.pathIntersection = function(a, b) {
return p(a, b)
}, e.pathIntersectionNumber = function(a, b) {
return p(a, b, 1)
}, e.isPointInsidePath = function(a, b, c) {
var d = e.pathBBox(a);
return e.isPointInsideBBox(d, b, c) && p(a, [
["M", b, c],
["H", d.x2 + 10]
], 1) % 2 == 1
}, e._removedFactory = function(a) {
return function() {
d("raphael.log", null, "Raphaël: you are calling to method “" + a + "” of removed object", a)
}
};
var Da = e.pathBBox = function(a) {
var b = Ca(a);
if (b.bbox) return f(b.bbox);
if (!a) return {
x: 0,
y: 0,
width: 0,
height: 0,
x2: 0,
y2: 0
};
a = Ma(a);
for (var c, d = 0, e = 0, g = [], h = [], i = 0, j = a.length; j > i; i++)
if (c = a[i], "M" == c[0]) d = c[1], e = c[2], g.push(d), h.push(e);
else {
var k = La(d, e, c[1], c[2], c[3], c[4], c[5], c[6]);
g = g[G](k.min.x, k.max.x), h = h[G](k.min.y, k.max.y), d = c[5], e = c[6]
}
var l = R[F](0, g),
m = R[F](0, h),
n = Q[F](0, g),
o = Q[F](0, h),
p = n - l,
q = o - m,
r = {
x: l,
y: m,
x2: n,
y2: o,
width: p,
height: q,
cx: l + p / 2,
cy: m + q / 2
};
return b.bbox = f(r), r
},
Ea = function(a) {
var b = f(a);
return b.toString = e._path2string, b
},
Fa = e._pathToRelative = function(a) {
var b = Ca(a);
if (b.rel) return Ea(b.rel);
e.is(a, X) && e.is(a && a[0], X) || (a = e.parsePathString(a));
var c = [],
d = 0,
f = 0,
g = 0,
h = 0,
i = 0;
"M" == a[0][0] && (d = a[0][1], f = a[0][2], g = d, h = f, i++, c.push(["M", d, f]));
for (var j = i, k = a.length; k > j; j++) {
var l = c[j] = [],
m = a[j];
if (m[0] != O.call(m[0])) switch (l[0] = O.call(m[0]), l[0]) {
case "a":
l[1] = m[1], l[2] = m[2], l[3] = m[3], l[4] = m[4], l[5] = m[5], l[6] = +(m[6] - d).toFixed(3), l[7] = +(m[7] - f).toFixed(3);
break;
case "v":
l[1] = +(m[1] - f).toFixed(3);
break;
case "m":
g = m[1], h = m[2];
default:
for (var n = 1, o = m.length; o > n; n++) l[n] = +(m[n] - (n % 2 ? d : f)).toFixed(3)
} else {
l = c[j] = [], "m" == m[0] && (g = m[1] + d, h = m[2] + f);
for (var p = 0, q = m.length; q > p; p++) c[j][p] = m[p]
}
var r = c[j].length;
switch (c[j][0]) {
case "z":
d = g, f = h;
break;
case "h":
d += +c[j][r - 1];
break;
case "v":
f += +c[j][r - 1];
break;
default:
d += +c[j][r - 2], f += +c[j][r - 1]
}
}
return c.toString = e._path2string, b.rel = Ea(c), c
},
Ga = e._pathToAbsolute = function(a) {
var b = Ca(a);
if (b.abs) return Ea(b.abs);
if (e.is(a, X) && e.is(a && a[0], X) || (a = e.parsePathString(a)), !a || !a.length) return [
["M", 0, 0]
];
var c = [],
d = 0,
f = 0,
g = 0,
h = 0,
i = 0;
"M" == a[0][0] && (d = +a[0][1], f = +a[0][2], g = d, h = f, i++, c[0] = ["M", d, f]);
for (var k, l, m = 3 == a.length && "M" == a[0][0] && "R" == a[1][0].toUpperCase() && "Z" == a[2][0].toUpperCase(), n = i, o = a.length; o > n; n++) {
if (c.push(k = []), l = a[n], l[0] != da.call(l[0])) switch (k[0] = da.call(l[0]), k[0]) {
case "A":
k[1] = l[1], k[2] = l[2], k[3] = l[3], k[4] = l[4], k[5] = l[5], k[6] = +(l[6] + d), k[7] = +(l[7] + f);
break;
case "V":
k[1] = +l[1] + f;
break;
case "H":
k[1] = +l[1] + d;
break;
case "R":
for (var p = [d, f][G](l.slice(1)), q = 2, r = p.length; r > q; q++) p[q] = +p[q] + d, p[++q] = +p[q] + f;
c.pop(), c = c[G](j(p, m));
break;
case "M":
g = +l[1] + d, h = +l[2] + f;
default:
for (q = 1, r = l.length; r > q; q++) k[q] = +l[q] + (q % 2 ? d : f)
} else if ("R" == l[0]) p = [d, f][G](l.slice(1)), c.pop(), c = c[G](j(p, m)), k = ["R"][G](l.slice(-2));
else
for (var s = 0, t = l.length; t > s; s++) k[s] = l[s];
switch (k[0]) {
case "Z":
d = g, f = h;
break;
case "H":
d = k[1];
break;
case "V":
f = k[1];
break;
case "M":
g = k[k.length - 2], h = k[k.length - 1];
default:
d = k[k.length - 2], f = k[k.length - 1]
}
}
return c.toString = e._path2string, b.abs = Ea(c), c
},
Ha = function(a, b, c, d) {
return [a, b, c, d, c, d]
},
Ia = function(a, b, c, d, e, f) {
var g = 1 / 3,
h = 2 / 3;
return [g * a + h * c, g * b + h * d, g * e + h * c, g * f + h * d, e, f]
},
Ja = function(a, b, c, d, e, f, g, i, j, k) {
var l, m = 120 * U / 180,
n = U / 180 * (+e || 0),
o = [],
p = h(function(a, b, c) {
var d = a * P.cos(c) - b * P.sin(c),
e = a * P.sin(c) + b * P.cos(c);
return {
x: d,
y: e
}
});
if (k) y = k[0], z = k[1], w = k[2], x = k[3];
else {
l = p(a, b, -n), a = l.x, b = l.y, l = p(i, j, -n), i = l.x, j = l.y;
var q = (P.cos(U / 180 * e), P.sin(U / 180 * e), (a - i) / 2),
r = (b - j) / 2,
s = q * q / (c * c) + r * r / (d * d);
s > 1 && (s = P.sqrt(s), c = s * c, d = s * d);
var t = c * c,
u = d * d,
v = (f == g ? -1 : 1) * P.sqrt(S((t * u - t * r * r - u * q * q) / (t * r * r + u * q * q))),
w = v * c * r / d + (a + i) / 2,
x = v * -d * q / c + (b + j) / 2,
y = P.asin(((b - x) / d).toFixed(9)),
z = P.asin(((j - x) / d).toFixed(9));
y = w > a ? U - y : y, z = w > i ? U - z : z, 0 > y && (y = 2 * U + y), 0 > z && (z = 2 * U + z), g && y > z && (y -= 2 * U), !g && z > y && (z -= 2 * U)
}
var A = z - y;
if (S(A) > m) {
var B = z,
C = i,
D = j;
z = y + m * (g && z > y ? 1 : -1), i = w + c * P.cos(z), j = x + d * P.sin(z), o = Ja(i, j, c, d, e, 0, g, C, D, [z, B, w, x])
}
A = z - y;
var E = P.cos(y),
F = P.sin(y),
H = P.cos(z),
I = P.sin(z),
J = P.tan(A / 4),
K = 4 / 3 * c * J,
M = 4 / 3 * d * J,
N = [a, b],
O = [a + K * F, b - M * E],
Q = [i + K * I, j - M * H],
R = [i, j];
if (O[0] = 2 * N[0] - O[0], O[1] = 2 * N[1] - O[1], k) return [O, Q, R][G](o);
o = [O, Q, R][G](o).join()[L](",");
for (var T = [], V = 0, W = o.length; W > V; V++) T[V] = V % 2 ? p(o[V - 1], o[V], n).y : p(o[V], o[V + 1], n).x;
return T
},
Ka = function(a, b, c, d, e, f, g, h, i) {
var j = 1 - i;
return {
x: T(j, 3) * a + 3 * T(j, 2) * i * c + 3 * j * i * i * e + T(i, 3) * g,
y: T(j, 3) * b + 3 * T(j, 2) * i * d + 3 * j * i * i * f + T(i, 3) * h
}
},
La = h(function(a, b, c, d, e, f, g, h) {
var i, j = e - 2 * c + a - (g - 2 * e + c),
k = 2 * (c - a) - 2 * (e - c),
l = a - c,
m = (-k + P.sqrt(k * k - 4 * j * l)) / 2 / j,
n = (-k - P.sqrt(k * k - 4 * j * l)) / 2 / j,
o = [b, h],
p = [a, g];
return S(m) > "1e12" && (m = .5), S(n) > "1e12" && (n = .5), m > 0 && 1 > m && (i = Ka(a, b, c, d, e, f, g, h, m), p.push(i.x), o.push(i.y)), n > 0 && 1 > n && (i = Ka(a, b, c, d, e, f, g, h, n), p.push(i.x), o.push(i.y)), j = f - 2 * d + b - (h - 2 * f + d), k = 2 * (d - b) - 2 * (f - d), l = b - d, m = (-k + P.sqrt(k * k - 4 * j * l)) / 2 / j, n = (-k - P.sqrt(k * k - 4 * j * l)) / 2 / j, S(m) > "1e12" && (m = .5), S(n) > "1e12" && (n = .5), m > 0 && 1 > m && (i = Ka(a, b, c, d, e, f, g, h, m), p.push(i.x), o.push(i.y)), n > 0 && 1 > n && (i = Ka(a, b, c, d, e, f, g, h, n), p.push(i.x), o.push(i.y)), {
min: {
x: R[F](0, p),
y: R[F](0, o)
},
max: {
x: Q[F](0, p),
y: Q[F](0, o)
}
}
}),
Ma = e._path2curve = h(function(a, b) {
var c = !b && Ca(a);
if (!b && c.curve) return Ea(c.curve);
for (var d = Ga(a), e = b && Ga(b), f = {
x: 0,
y: 0,
bx: 0,
by: 0,
X: 0,
Y: 0,
qx: null,
qy: null
}, g = {
x: 0,
y: 0,
bx: 0,
by: 0,
X: 0,
Y: 0,
qx: null,
qy: null
}, h = (function(a, b, c) {
var d, e, f = {
T: 1,
Q: 1
};
if (!a) return ["C", b.x, b.y, b.x, b.y, b.x, b.y];
switch (!(a[0] in f) && (b.qx = b.qy = null), a[0]) {
case "M":
b.X = a[1], b.Y = a[2];
break;
case "A":
a = ["C"][G](Ja[F](0, [b.x, b.y][G](a.slice(1))));
break;
case "S":
"C" == c || "S" == c ? (d = 2 * b.x - b.bx, e = 2 * b.y - b.by) : (d = b.x, e = b.y), a = ["C", d, e][G](a.slice(1));
break;
case "T":
"Q" == c || "T" == c ? (b.qx = 2 * b.x - b.qx, b.qy = 2 * b.y - b.qy) : (b.qx = b.x, b.qy = b.y), a = ["C"][G](Ia(b.x, b.y, b.qx, b.qy, a[1], a[2]));
break;
case "Q":
b.qx = a[1], b.qy = a[2], a = ["C"][G](Ia(b.x, b.y, a[1], a[2], a[3], a[4]));
break;
case "L":
a = ["C"][G](Ha(b.x, b.y, a[1], a[2]));
break;
case "H":
a = ["C"][G](Ha(b.x, b.y, a[1], b.y));
break;
case "V":
a = ["C"][G](Ha(b.x, b.y, b.x, a[1]));
break;
case "Z":
a = ["C"][G](Ha(b.x, b.y, b.X, b.Y))
}
return a
}), i = function(a, b) {
if (a[b].length > 7) {
a[b].shift();
for (var c = a[b]; c.length;) k[b] = "A", e && (l[b] = "A"), a.splice(b++, 0, ["C"][G](c.splice(0, 6)));
a.splice(b, 1), p = Q(d.length, e && e.length || 0)
}
}, j = function(a, b, c, f, g) {
a && b && "M" == a[g][0] && "M" != b[g][0] && (b.splice(g, 0, ["M", f.x, f.y]), c.bx = 0, c.by = 0, c.x = a[g][1], c.y = a[g][2], p = Q(d.length, e && e.length || 0))
}, k = [], l = [], m = "", n = "", o = 0, p = Q(d.length, e && e.length || 0); p > o; o++) {
d[o] && (m = d[o][0]), "C" != m && (k[o] = m, o && (n = k[o - 1])), d[o] = h(d[o], f, n), "A" != k[o] && "C" == m && (k[o] = "C"), i(d, o), e && (e[o] && (m = e[o][0]), "C" != m && (l[o] = m, o && (n = l[o - 1])), e[o] = h(e[o], g, n), "A" != l[o] && "C" == m && (l[o] = "C"), i(e, o)), j(d, e, f, g, o), j(e, d, g, f, o);
var q = d[o],
r = e && e[o],
s = q.length,
t = e && r.length;
f.x = q[s - 2], f.y = q[s - 1], f.bx = ba(q[s - 4]) || f.x, f.by = ba(q[s - 3]) || f.y, g.bx = e && (ba(r[t - 4]) || g.x), g.by = e && (ba(r[t - 3]) || g.y), g.x = e && r[t - 2], g.y = e && r[t - 1]
}
return e || (c.curve = Ea(d)), e ? [d, e] : d
}, null, Ea),
Na = (e._parseDots = h(function(a) {
for (var b = [], c = 0, d = a.length; d > c; c++) {
var f = {},
g = a[c].match(/^([^:]*):?([\d\.]*)/);
if (f.color = e.getRGB(g[1]), f.color.error) return null;
f.color = f.color.hex, g[2] && (f.offset = g[2] + "%"), b.push(f)
}
for (c = 1, d = b.length - 1; d > c; c++)
if (!b[c].offset) {
for (var h = ba(b[c - 1].offset || 0), i = 0, j = c + 1; d > j; j++)
if (b[j].offset) {
i = b[j].offset;
break
}
i || (i = 100, j = d), i = ba(i);
for (var k = (i - h) / (j - c + 1); j > c; c++) h += k, b[c].offset = h + "%"
}
return b
}), e._tear = function(a, b) {
a == b.top && (b.top = a.prev), a == b.bottom && (b.bottom = a.next), a.next && (a.next.prev = a.prev), a.prev && (a.prev.next = a.next)
}),
Oa = (e._tofront = function(a, b) {
b.top !== a && (Na(a, b), a.next = null, a.prev = b.top, b.top.next = a, b.top = a)
}, e._toback = function(a, b) {
b.bottom !== a && (Na(a, b), a.next = b.bottom, a.prev = null, b.bottom.prev = a, b.bottom = a)
}, e._insertafter = function(a, b, c) {
Na(a, c), b == c.top && (c.top = a), b.next && (b.next.prev = a), a.next = b.next, a.prev = b, b.next = a
}, e._insertbefore = function(a, b, c) {
Na(a, c), b == c.bottom && (c.bottom = a), b.prev && (b.prev.next = a), a.prev = b.prev, b.prev = a, a.next = b
}, e.toMatrix = function(a, b) {
var c = Da(a),
d = {
_: {
transform: I
},
getBBox: function() {
return c
}
};
return Pa(d, b), d.matrix
}),
Pa = (e.transformPath = function(a, b) {
return ta(a, Oa(a, b))
}, e._extractTransform = function(a, b) {
if (null == b) return a._.transform;
b = K(b).replace(/\.{3}|\u2026/g, a._.transform || I);
var c = e.parseTransformString(b),
d = 0,
f = 0,
g = 0,
h = 1,
i = 1,
j = a._,
k = new q;
if (j.transform = c || [], c)
for (var l = 0, m = c.length; m > l; l++) {
var n, o, p, r, s, t = c[l],
u = t.length,
v = K(t[0]).toLowerCase(),
w = t[0] != v,
x = w ? k.invert() : 0;
"t" == v && 3 == u ? w ? (n = x.x(0, 0), o = x.y(0, 0), p = x.x(t[1], t[2]), r = x.y(t[1], t[2]), k.translate(p - n, r - o)) : k.translate(t[1], t[2]) : "r" == v ? 2 == u ? (s = s || a.getBBox(1), k.rotate(t[1], s.x + s.width / 2, s.y + s.height / 2), d += t[1]) : 4 == u && (w ? (p = x.x(t[2], t[3]), r = x.y(t[2], t[3]), k.rotate(t[1], p, r)) : k.rotate(t[1], t[2], t[3]), d += t[1]) : "s" == v ? 2 == u || 3 == u ? (s = s || a.getBBox(1), k.scale(t[1], t[u - 1], s.x + s.width / 2, s.y + s.height / 2), h *= t[1], i *= t[u - 1]) : 5 == u && (w ? (p = x.x(t[3], t[4]), r = x.y(t[3], t[4]), k.scale(t[1], t[2], p, r)) : k.scale(t[1], t[2], t[3], t[4]), h *= t[1], i *= t[2]) : "m" == v && 7 == u && k.add(t[1], t[2], t[3], t[4], t[5], t[6]), j.dirtyT = 1, a.matrix = k
}
a.matrix = k, j.sx = h, j.sy = i, j.deg = d, j.dx = f = k.e, j.dy = g = k.f, 1 == h && 1 == i && !d && j.bbox ? (j.bbox.x += +f, j.bbox.y += +g) : j.dirtyT = 1
}),
Qa = function(a) {
var b = a[0];
switch (b.toLowerCase()) {
case "t":
return [b, 0, 0];
case "m":
return [b, 1, 0, 0, 1, 0, 0];
case "r":
return 4 == a.length ? [b, 0, a[2], a[3]] : [b, 0];
case "s":
return 5 == a.length ? [b, 1, 1, a[3], a[4]] : 3 == a.length ? [b, 1, 1] : [b, 1]
}
},
Ra = e._equaliseTransform = function(a, b) {
b = K(b).replace(/\.{3}|\u2026/g, a), a = e.parseTransformString(a) || [], b = e.parseTransformString(b) || [];
for (var c, d, f, g, h = Q(a.length, b.length), i = [], j = [], k = 0; h > k; k++) {
if (f = a[k] || Qa(b[k]), g = b[k] || Qa(f), f[0] != g[0] || "r" == f[0].toLowerCase() && (f[2] != g[2] || f[3] != g[3]) || "s" == f[0].toLowerCase() && (f[3] != g[3] || f[4] != g[4])) return;
for (i[k] = [], j[k] = [], c = 0, d = Q(f.length, g.length); d > c; c++) c in f && (i[k][c] = f[c]), c in g && (j[k][c] = g[c])
}
return {
from: i,
to: j
}
};
e._getContainer = function(a, b, c, d) {
var f;
return f = null != d || e.is(a, "object") ? a : C.doc.getElementById(a), null != f ? f.tagName ? null == b ? {
container: f,
width: f.style.pixelWidth || f.offsetWidth,
height: f.style.pixelHeight || f.offsetHeight
} : {
container: f,
width: b,
height: c
} : {
container: 1,
x: a,
y: b,
width: c,
height: d
} : void 0
}, e.pathToRelative = Fa, e._engine = {}, e.path2curve = Ma, e.matrix = function(a, b, c, d, e, f) {
return new q(a, b, c, d, e, f)
},
function(a) {
function b(a) {
return a[0] * a[0] + a[1] * a[1]
}
function c(a) {
var c = P.sqrt(b(a));
a[0] && (a[0] /= c), a[1] && (a[1] /= c)
}
a.add = function(a, b, c, d, e, f) {
var g, h, i, j, k = [
[],
[],
[]
],
l = [
[this.a, this.c, this.e],
[this.b, this.d, this.f],
[0, 0, 1]
],
m = [
[a, c, e],
[b, d, f],
[0, 0, 1]
];
for (a && a instanceof q && (m = [
[a.a, a.c, a.e],
[a.b, a.d, a.f],
[0, 0, 1]
]), g = 0; 3 > g; g++)
for (h = 0; 3 > h; h++) {
for (j = 0, i = 0; 3 > i; i++) j += l[g][i] * m[i][h];
k[g][h] = j
}
this.a = k[0][0], this.b = k[1][0], this.c = k[0][1], this.d = k[1][1], this.e = k[0][2], this.f = k[1][2]
}, a.invert = function() {
var a = this,
b = a.a * a.d - a.b * a.c;
return new q(a.d / b, -a.b / b, -a.c / b, a.a / b, (a.c * a.f - a.d * a.e) / b, (a.b * a.e - a.a * a.f) / b)
}, a.clone = function() {
return new q(this.a, this.b, this.c, this.d, this.e, this.f)
}, a.translate = function(a, b) {
this.add(1, 0, 0, 1, a, b)
}, a.scale = function(a, b, c, d) {
null == b && (b = a), (c || d) && this.add(1, 0, 0, 1, c, d), this.add(a, 0, 0, b, 0, 0), (c || d) && this.add(1, 0, 0, 1, -c, -d)
}, a.rotate = function(a, b, c) {
a = e.rad(a), b = b || 0, c = c || 0;
var d = +P.cos(a).toFixed(9),
f = +P.sin(a).toFixed(9);
this.add(d, f, -f, d, b, c), this.add(1, 0, 0, 1, -b, -c)
}, a.x = function(a, b) {
return a * this.a + b * this.c + this.e
}, a.y = function(a, b) {
return a * this.b + b * this.d + this.f
}, a.get = function(a) {
return +this[K.fromCharCode(97 + a)].toFixed(4)
}, a.toString = function() {
return e.svg ? "matrix(" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + ")" : [this.get(0), this.get(2), this.get(1), this.get(3), 0, 0].join()
}, a.toFilter = function() {
return "progid:DXImageTransform.Microsoft.Matrix(M11=" + this.get(0) + ", M12=" + this.get(2) + ", M21=" + this.get(1) + ", M22=" + this.get(3) + ", Dx=" + this.get(4) + ", Dy=" + this.get(5) + ", sizingmethod='auto expand')"
}, a.offset = function() {
return [this.e.toFixed(4), this.f.toFixed(4)]
}, a.split = function() {
var a = {};
a.dx = this.e, a.dy = this.f;
var d = [
[this.a, this.c],
[this.b, this.d]
];
a.scalex = P.sqrt(b(d[0])), c(d[0]), a.shear = d[0][0] * d[1][0] + d[0][1] * d[1][1], d[1] = [d[1][0] - d[0][0] * a.shear, d[1][1] - d[0][1] * a.shear], a.scaley = P.sqrt(b(d[1])), c(d[1]), a.shear /= a.scaley;
var f = -d[0][1],
g = d[1][1];
return 0 > g ? (a.rotate = e.deg(P.acos(g)), 0 > f && (a.rotate = 360 - a.rotate)) : a.rotate = e.deg(P.asin(f)), a.isSimple = !(+a.shear.toFixed(9) || a.scalex.toFixed(9) != a.scaley.toFixed(9) && a.rotate), a.isSuperSimple = !+a.shear.toFixed(9) && a.scalex.toFixed(9) == a.scaley.toFixed(9) && !a.rotate, a.noRotation = !+a.shear.toFixed(9) && !a.rotate, a
}, a.toTransformString = function(a) {
var b = a || this[L]();
return b.isSimple ? (b.scalex = +b.scalex.toFixed(4), b.scaley = +b.scaley.toFixed(4), b.rotate = +b.rotate.toFixed(4), (b.dx || b.dy ? "t" + [b.dx, b.dy] : I) + (1 != b.scalex || 1 != b.scaley ? "s" + [b.scalex, b.scaley, 0, 0] : I) + (b.rotate ? "r" + [b.rotate, 0, 0] : I)) : "m" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)]
}
}(q.prototype);
var Sa = navigator.userAgent.match(/Version\/(.*?)\s/) || navigator.userAgent.match(/Chrome\/(\d+)/);
"Apple Computer, Inc." == navigator.vendor && (Sa && Sa[1] < 4 || "iP" == navigator.platform.slice(0, 2)) || "Google Inc." == navigator.vendor && Sa && Sa[1] < 8 ? x.safari = function() {
var a = this.rect(-99, -99, this.width + 99, this.height + 99).attr({
stroke: "none"
});
setTimeout(function() {
a.remove()
})
} : x.safari = oa;
for (var Ta = function() {
this.returnValue = !1
}, Ua = function() {
return this.originalEvent.preventDefault()
}, Va = function() {
this.cancelBubble = !0
}, Wa = function() {
return this.originalEvent.stopPropagation()
}, Xa = function(a) {
var b = C.doc.documentElement.scrollTop || C.doc.body.scrollTop,
c = C.doc.documentElement.scrollLeft || C.doc.body.scrollLeft;
return {
x: a.clientX + c,
y: a.clientY + b
}
}, Ya = function() {
return C.doc.addEventListener ? function(a, b, c, d) {
var e = function(a) {
var b = Xa(a);
return c.call(d, a, b.x, b.y)
};
if (a.addEventListener(b, e, !1), H && N[b]) {
var f = function(b) {
for (var e = Xa(b), f = b, g = 0, h = b.targetTouches && b.targetTouches.length; h > g; g++)
if (b.targetTouches[g].target == a) {
b = b.targetTouches[g], b.originalEvent = f, b.preventDefault = Ua, b.stopPropagation = Wa;
break
}
return c.call(d, b, e.x, e.y)
};
a.addEventListener(N[b], f, !1)
}
return function() {
return a.removeEventListener(b, e, !1), H && N[b] && a.removeEventListener(N[b], f, !1), !0
}
} : C.doc.attachEvent ? function(a, b, c, d) {
var e = function(a) {
a = a || C.win.event;
var b = C.doc.documentElement.scrollTop || C.doc.body.scrollTop,
e = C.doc.documentElement.scrollLeft || C.doc.body.scrollLeft,
f = a.clientX + e,
g = a.clientY + b;
return a.preventDefault = a.preventDefault || Ta, a.stopPropagation = a.stopPropagation || Va, c.call(d, a, f, g)
};
a.attachEvent("on" + b, e);
var f = function() {
return a.detachEvent("on" + b, e), !0
};
return f
} : void 0
}(), Za = [], $a = function(a) {
for (var b, c = a.clientX, e = a.clientY, f = C.doc.documentElement.scrollTop || C.doc.body.scrollTop, g = C.doc.documentElement.scrollLeft || C.doc.body.scrollLeft, h = Za.length; h--;) {
if (b = Za[h], H && a.touches) {
for (var i, j = a.touches.length; j--;)
if (i = a.touches[j], i.identifier == b.el._drag.id) {
c = i.clientX, e = i.clientY, (a.originalEvent ? a.originalEvent : a).preventDefault();
break
}
} else a.preventDefault();
var k, l = b.el.node,
m = l.nextSibling,
n = l.parentNode,
o = l.style.display;
C.win.opera && n.removeChild(l), l.style.display = "none", k = b.el.paper.getElementByPoint(c, e), l.style.display = o, C.win.opera && (m ? n.insertBefore(l, m) : n.appendChild(l)), k && d("raphael.drag.over." + b.el.id, b.el, k), c += g, e += f, d("raphael.drag.move." + b.el.id, b.move_scope || b.el, c - b.el._drag.x, e - b.el._drag.y, c, e, a)
}
}, _a = function(a) {
e.unmousemove($a).unmouseup(_a);
for (var b, c = Za.length; c--;) b = Za[c], b.el._drag = {}, d("raphael.drag.end." + b.el.id, b.end_scope || b.start_scope || b.move_scope || b.el, a);
Za = []
}, ab = e.el = {}, bb = M.length; bb--;)! function(a) {
e[a] = ab[a] = function(b, c) {
return e.is(b, "function") && (this.events = this.events || [], this.events.push({
name: a,
f: b,
unbind: Ya(this.shape || this.node || C.doc, a, b, c || this)
})), this
}, e["un" + a] = ab["un" + a] = function(b) {
for (var c = this.events || [], d = c.length; d--;) c[d].name != a || !e.is(b, "undefined") && c[d].f != b || (c[d].unbind(), c.splice(d, 1), !c.length && delete this.events);
return this
}
}(M[bb]);
ab.data = function(a, b) {
var c = ma[this.id] = ma[this.id] || {};
if (0 == arguments.length) return c;
if (1 == arguments.length) {
if (e.is(a, "object")) {
for (var f in a) a[B](f) && this.data(f, a[f]);
return this
}
return d("raphael.data.get." + this.id, this, c[a], a), c[a]
}
return c[a] = b, d("raphael.data.set." + this.id, this, b, a), this
}, ab.removeData = function(a) {
return null == a ? ma[this.id] = {} : ma[this.id] && delete ma[this.id][a], this
}, ab.getData = function() {
return f(ma[this.id] || {})
}, ab.hover = function(a, b, c, d) {
return this.mouseover(a, c).mouseout(b, d || c)
}, ab.unhover = function(a, b) {
return this.unmouseover(a).unmouseout(b)
};
var cb = [];
ab.drag = function(a, b, c, f, g, h) {
function i(i) {
(i.originalEvent || i).preventDefault();
var j = i.clientX,
k = i.clientY,
l = C.doc.documentElement.scrollTop || C.doc.body.scrollTop,
m = C.doc.documentElement.scrollLeft || C.doc.body.scrollLeft;
if (this._drag.id = i.identifier, H && i.touches)
for (var n, o = i.touches.length; o--;)
if (n = i.touches[o], this._drag.id = n.identifier, n.identifier == this._drag.id) {
j = n.clientX, k = n.clientY;
break
}
this._drag.x = j + m, this._drag.y = k + l, !Za.length && e.mousemove($a).mouseup(_a), Za.push({
el: this,
move_scope: f,
start_scope: g,
end_scope: h
}), b && d.on("raphael.drag.start." + this.id, b), a && d.on("raphael.drag.move." + this.id, a), c && d.on("raphael.drag.end." + this.id, c), d("raphael.drag.start." + this.id, g || f || this, i.clientX + m, i.clientY + l, i)
}
return this._drag = {}, cb.push({
el: this,
start: i
}), this.mousedown(i), this
}, ab.onDragOver = function(a) {
a ? d.on("raphael.drag.over." + this.id, a) : d.unbind("raphael.drag.over." + this.id)
}, ab.undrag = function() {
for (var a = cb.length; a--;) cb[a].el == this && (this.unmousedown(cb[a].start), cb.splice(a, 1), d.unbind("raphael.drag.*." + this.id));
!cb.length && e.unmousemove($a).unmouseup(_a), Za = []
}, x.circle = function(a, b, c) {
var d = e._engine.circle(this, a || 0, b || 0, c || 0);
return this.__set__ && this.__set__.push(d), d
}, x.rect = function(a, b, c, d, f) {
var g = e._engine.rect(this, a || 0, b || 0, c || 0, d || 0, f || 0);
return this.__set__ && this.__set__.push(g), g
}, x.ellipse = function(a, b, c, d) {
var f = e._engine.ellipse(this, a || 0, b || 0, c || 0, d || 0);
return this.__set__ && this.__set__.push(f), f
}, x.path = function(a) {
a && !e.is(a, W) && !e.is(a[0], X) && (a += I);
var b = e._engine.path(e.format[F](e, arguments), this);
return this.__set__ && this.__set__.push(b), b
}, x.image = function(a, b, c, d, f) {
var g = e._engine.image(this, a || "about:blank", b || 0, c || 0, d || 0, f || 0);
return this.__set__ && this.__set__.push(g), g
}, x.text = function(a, b, c) {
var d = e._engine.text(this, a || 0, b || 0, K(c));
return this.__set__ && this.__set__.push(d), d
}, x.set = function(a) {
!e.is(a, "array") && (a = Array.prototype.splice.call(arguments, 0, arguments.length));
var b = new ob(a);
return this.__set__ && this.__set__.push(b), b.paper = this, b.type = "set", b
}, x.setStart = function(a) {
this.__set__ = a || this.set()
}, x.setFinish = function(a) {
var b = this.__set__;
return delete this.__set__, b
}, x.getSize = function() {
var a = this.canvas.parentNode;
return {
width: a.offsetWidth,
height: a.offsetHeight
}
}, x.setSize = function(a, b) {
return e._engine.setSize.call(this, a, b)
}, x.setViewBox = function(a, b, c, d, f) {
return e._engine.setViewBox.call(this, a, b, c, d, f)
}, x.top = x.bottom = null, x.raphael = e;
var db = function(a) {
var b = a.getBoundingClientRect(),
c = a.ownerDocument,
d = c.body,
e = c.documentElement,
f = e.clientTop || d.clientTop || 0,
g = e.clientLeft || d.clientLeft || 0,
h = b.top + (C.win.pageYOffset || e.scrollTop || d.scrollTop) - f,
i = b.left + (C.win.pageXOffset || e.scrollLeft || d.scrollLeft) - g;
return {
y: h,
x: i
}
};
x.getElementByPoint = function(a, b) {
var c = this,
d = c.canvas,
e = C.doc.elementFromPoint(a, b);
if (C.win.opera && "svg" == e.tagName) {
var f = db(d),
g = d.createSVGRect();
g.x = a - f.x, g.y = b - f.y, g.width = g.height = 1;
var h = d.getIntersectionList(g, null);
h.length && (e = h[h.length - 1])
}
if (!e) return null;
for (; e.parentNode && e != d.parentNode && !e.raphael;) e = e.parentNode;
return e == c.canvas.parentNode && (e = d), e = e && e.raphael ? c.getById(e.raphaelid) : null
}, x.getElementsByBBox = function(a) {
var b = this.set();
return this.forEach(function(c) {
e.isBBoxIntersect(c.getBBox(), a) && b.push(c)
}), b
}, x.getById = function(a) {
for (var b = this.bottom; b;) {
if (b.id == a) return b;
b = b.next
}
return null
}, x.forEach = function(a, b) {
for (var c = this.bottom; c;) {
if (a.call(b, c) === !1) return this;
c = c.next
}
return this;
}, x.getElementsByPoint = function(a, b) {
var c = this.set();
return this.forEach(function(d) {
d.isPointInside(a, b) && c.push(d)
}), c
}, ab.isPointInside = function(a, b) {
var c = this.realPath = sa[this.type](this);
return this.attr("transform") && this.attr("transform").length && (c = e.transformPath(c, this.attr("transform"))), e.isPointInsidePath(c, a, b)
}, ab.getBBox = function(a) {
if (this.removed) return {};
var b = this._;
return a ? ((b.dirty || !b.bboxwt) && (this.realPath = sa[this.type](this), b.bboxwt = Da(this.realPath), b.bboxwt.toString = r, b.dirty = 0), b.bboxwt) : ((b.dirty || b.dirtyT || !b.bbox) && ((b.dirty || !this.realPath) && (b.bboxwt = 0, this.realPath = sa[this.type](this)), b.bbox = Da(ta(this.realPath, this.matrix)), b.bbox.toString = r, b.dirty = b.dirtyT = 0), b.bbox)
}, ab.clone = function() {
if (this.removed) return null;
var a = this.paper[this.type]().attr(this.attr());
return this.__set__ && this.__set__.push(a), a
}, ab.glow = function(a) {
if ("text" == this.type) return null;
a = a || {};
var b = {
width: (a.width || 10) + (+this.attr("stroke-width") || 1),
fill: a.fill || !1,
opacity: a.opacity || .5,
offsetx: a.offsetx || 0,
offsety: a.offsety || 0,
color: a.color || "#000"
},
c = b.width / 2,
d = this.paper,
e = d.set(),
f = this.realPath || sa[this.type](this);
f = this.matrix ? ta(f, this.matrix) : f;
for (var g = 1; c + 1 > g; g++) e.push(d.path(f).attr({
stroke: b.color,
fill: b.fill ? b.color : "none",
"stroke-linejoin": "round",
"stroke-linecap": "round",
"stroke-width": +(b.width / c * g).toFixed(3),
opacity: +(b.opacity / c).toFixed(3)
}));
return e.insertBefore(this).translate(b.offsetx, b.offsety)
};
var eb = function(a, b, c, d, f, g, h, i, j) {
return null == j ? l(a, b, c, d, f, g, h, i) : e.findDotsAtSegment(a, b, c, d, f, g, h, i, m(a, b, c, d, f, g, h, i, j))
},
fb = function(a, b) {
return function(c, d, f) {
c = Ma(c);
for (var g, h, i, j, k, l = "", m = {}, n = 0, o = 0, p = c.length; p > o; o++) {
if (i = c[o], "M" == i[0]) g = +i[1], h = +i[2];
else {
if (j = eb(g, h, i[1], i[2], i[3], i[4], i[5], i[6]), n + j > d) {
if (b && !m.start) {
if (k = eb(g, h, i[1], i[2], i[3], i[4], i[5], i[6], d - n), l += ["C" + k.start.x, k.start.y, k.m.x, k.m.y, k.x, k.y], f) return l;
m.start = l, l = ["M" + k.x, k.y + "C" + k.n.x, k.n.y, k.end.x, k.end.y, i[5], i[6]].join(), n += j, g = +i[5], h = +i[6];
continue
}
if (!a && !b) return k = eb(g, h, i[1], i[2], i[3], i[4], i[5], i[6], d - n), {
x: k.x,
y: k.y,
alpha: k.alpha
}
}
n += j, g = +i[5], h = +i[6]
}
l += i.shift() + i
}
return m.end = l, k = a ? n : b ? m : e.findDotsAtSegment(g, h, i[0], i[1], i[2], i[3], i[4], i[5], 1), k.alpha && (k = {
x: k.x,
y: k.y,
alpha: k.alpha
}), k
}
},
gb = fb(1),
hb = fb(),
ib = fb(0, 1);
e.getTotalLength = gb, e.getPointAtLength = hb, e.getSubpath = function(a, b, c) {
if (this.getTotalLength(a) - c < 1e-6) return ib(a, b).end;
var d = ib(a, c, 1);
return b ? ib(d, b).end : d
}, ab.getTotalLength = function() {
var a = this.getPath();
if (a) return this.node.getTotalLength ? this.node.getTotalLength() : gb(a)
}, ab.getPointAtLength = function(a) {
var b = this.getPath();
if (b) return hb(b, a)
}, ab.getPath = function() {
var a, b = e._getPath[this.type];
if ("text" != this.type && "set" != this.type) return b && (a = b(this)), a
}, ab.getSubpath = function(a, b) {
var c = this.getPath();
if (c) return e.getSubpath(c, a, b)
};
var jb = e.easing_formulas = {
linear: function(a) {
return a
},
"<": function(a) {
return T(a, 1.7)
},
">": function(a) {
return T(a, .48)
},
"<>": function(a) {
var b = .48 - a / 1.04,
c = P.sqrt(.1734 + b * b),
d = c - b,
e = T(S(d), 1 / 3) * (0 > d ? -1 : 1),
f = -c - b,
g = T(S(f), 1 / 3) * (0 > f ? -1 : 1),
h = e + g + .5;
return 3 * (1 - h) * h * h + h * h * h
},
backIn: function(a) {
var b = 1.70158;
return a * a * ((b + 1) * a - b)
},
backOut: function(a) {
a -= 1;
var b = 1.70158;
return a * a * ((b + 1) * a + b) + 1
},
elastic: function(a) {
return a == !!a ? a : T(2, -10 * a) * P.sin(2 * (a - .075) * U / .3) + 1
},
bounce: function(a) {
var b, c = 7.5625,
d = 2.75;
return 1 / d > a ? b = c * a * a : 2 / d > a ? (a -= 1.5 / d, b = c * a * a + .75) : 2.5 / d > a ? (a -= 2.25 / d, b = c * a * a + .9375) : (a -= 2.625 / d, b = c * a * a + .984375), b
}
};
jb.easeIn = jb["ease-in"] = jb["<"], jb.easeOut = jb["ease-out"] = jb[">"], jb.easeInOut = jb["ease-in-out"] = jb["<>"], jb["back-in"] = jb.backIn, jb["back-out"] = jb.backOut;
var kb = [],
lb = a.requestAnimationFrame || a.webkitRequestAnimationFrame || a.mozRequestAnimationFrame || a.oRequestAnimationFrame || a.msRequestAnimationFrame || function(a) {
setTimeout(a, 16)
},
mb = function() {
for (var a = +new Date, b = 0; b < kb.length; b++) {
var c = kb[b];
if (!c.el.removed && !c.paused) {
var f, g, h = a - c.start,
i = c.ms,
j = c.easing,
k = c.from,
l = c.diff,
m = c.to,
n = (c.t, c.el),
o = {},
p = {};
if (c.initstatus ? (h = (c.initstatus * c.anim.top - c.prev) / (c.percent - c.prev) * i, c.status = c.initstatus, delete c.initstatus, c.stop && kb.splice(b--, 1)) : c.status = (c.prev + (c.percent - c.prev) * (h / i)) / c.anim.top, !(0 > h))
if (i > h) {
var q = j(h / i);
for (var r in k)
if (k[B](r)) {
switch (fa[r]) {
case V:
f = +k[r] + q * i * l[r];
break;
case "colour":
f = "rgb(" + [nb(aa(k[r].r + q * i * l[r].r)), nb(aa(k[r].g + q * i * l[r].g)), nb(aa(k[r].b + q * i * l[r].b))].join(",") + ")";
break;
case "path":
f = [];
for (var s = 0, t = k[r].length; t > s; s++) {
f[s] = [k[r][s][0]];
for (var v = 1, w = k[r][s].length; w > v; v++) f[s][v] = +k[r][s][v] + q * i * l[r][s][v];
f[s] = f[s].join(J)
}
f = f.join(J);
break;
case "transform":
if (l[r].real)
for (f = [], s = 0, t = k[r].length; t > s; s++)
for (f[s] = [k[r][s][0]], v = 1, w = k[r][s].length; w > v; v++) f[s][v] = k[r][s][v] + q * i * l[r][s][v];
else {
var x = function(a) {
return +k[r][a] + q * i * l[r][a]
};
f = [
["m", x(0), x(1), x(2), x(3), x(4), x(5)]
]
}
break;
case "csv":
if ("clip-rect" == r)
for (f = [], s = 4; s--;) f[s] = +k[r][s] + q * i * l[r][s];
break;
default:
var y = [][G](k[r]);
for (f = [], s = n.paper.customAttributes[r].length; s--;) f[s] = +y[s] + q * i * l[r][s]
}
o[r] = f
}
n.attr(o),
function(a, b, c) {
setTimeout(function() {
d("raphael.anim.frame." + a, b, c)
})
}(n.id, n, c.anim)
} else {
if (function(a, b, c) {
setTimeout(function() {
d("raphael.anim.frame." + b.id, b, c), d("raphael.anim.finish." + b.id, b, c), e.is(a, "function") && a.call(b)
})
}(c.callback, n, c.anim), n.attr(m), kb.splice(b--, 1), c.repeat > 1 && !c.next) {
for (g in m) m[B](g) && (p[g] = c.totalOrigin[g]);
c.el.attr(p), u(c.anim, c.el, c.anim.percents[0], null, c.totalOrigin, c.repeat - 1)
}
c.next && !c.stop && u(c.anim, c.el, c.next, null, c.totalOrigin, c.repeat)
}
}
}
e.svg && n && n.paper && n.paper.safari(), kb.length && lb(mb)
},
nb = function(a) {
return a > 255 ? 255 : 0 > a ? 0 : a
};
ab.animateWith = function(a, b, c, d, f, g) {
var h = this;
if (h.removed) return g && g.call(h), h;
var i = c instanceof t ? c : e.animation(c, d, f, g);
u(i, h, i.percents[0], null, h.attr());
for (var j = 0, k = kb.length; k > j; j++)
if (kb[j].anim == b && kb[j].el == a) {
kb[k - 1].start = kb[j].start;
break
}
return h
}, ab.onAnimation = function(a) {
return a ? d.on("raphael.anim.frame." + this.id, a) : d.unbind("raphael.anim.frame." + this.id), this
}, t.prototype.delay = function(a) {
var b = new t(this.anim, this.ms);
return b.times = this.times, b.del = +a || 0, b
}, t.prototype.repeat = function(a) {
var b = new t(this.anim, this.ms);
return b.del = this.del, b.times = P.floor(Q(a, 0)) || 1, b
}, e.animation = function(a, b, c, d) {
if (a instanceof t) return a;
(e.is(c, "function") || !c) && (d = d || c || null, c = null), a = Object(a), b = +b || 0;
var f, g, h = {};
for (g in a) a[B](g) && ba(g) != g && ba(g) + "%" != g && (f = !0, h[g] = a[g]);
if (f) return c && (h.easing = c), d && (h.callback = d), new t({
100: h
}, b);
if (d) {
var i = 0;
for (var j in a) {
var k = ca(j);
a[B](j) && k > i && (i = k)
}
i += "%", !a[i].callback && (a[i].callback = d)
}
return new t(a, b)
}, ab.animate = function(a, b, c, d) {
var f = this;
if (f.removed) return d && d.call(f), f;
var g = a instanceof t ? a : e.animation(a, b, c, d);
return u(g, f, g.percents[0], null, f.attr()), f
}, ab.setTime = function(a, b) {
return a && null != b && this.status(a, R(b, a.ms) / a.ms), this
}, ab.status = function(a, b) {
var c, d, e = [],
f = 0;
if (null != b) return u(a, this, -1, R(b, 1)), this;
for (c = kb.length; c > f; f++)
if (d = kb[f], d.el.id == this.id && (!a || d.anim == a)) {
if (a) return d.status;
e.push({
anim: d.anim,
status: d.status
})
}
return a ? 0 : e
}, ab.pause = function(a) {
for (var b = 0; b < kb.length; b++) kb[b].el.id != this.id || a && kb[b].anim != a || d("raphael.anim.pause." + this.id, this, kb[b].anim) !== !1 && (kb[b].paused = !0);
return this
}, ab.resume = function(a) {
for (var b = 0; b < kb.length; b++)
if (kb[b].el.id == this.id && (!a || kb[b].anim == a)) {
var c = kb[b];
d("raphael.anim.resume." + this.id, this, c.anim) !== !1 && (delete c.paused, this.status(c.anim, c.status))
}
return this
}, ab.stop = function(a) {
for (var b = 0; b < kb.length; b++) kb[b].el.id != this.id || a && kb[b].anim != a || d("raphael.anim.stop." + this.id, this, kb[b].anim) !== !1 && kb.splice(b--, 1);
return this
}, d.on("raphael.remove", v), d.on("raphael.clear", v), ab.toString = function() {
return "Raphaël’s object"
};
var ob = function(a) {
if (this.items = [], this.length = 0, this.type = "set", a)
for (var b = 0, c = a.length; c > b; b++)!a[b] || a[b].constructor != ab.constructor && a[b].constructor != ob || (this[this.items.length] = this.items[this.items.length] = a[b], this.length++)
},
pb = ob.prototype;
pb.push = function() {
for (var a, b, c = 0, d = arguments.length; d > c; c++) a = arguments[c], !a || a.constructor != ab.constructor && a.constructor != ob || (b = this.items.length, this[b] = this.items[b] = a, this.length++);
return this
}, pb.pop = function() {
return this.length && delete this[this.length--], this.items.pop()
}, pb.forEach = function(a, b) {
for (var c = 0, d = this.items.length; d > c; c++)
if (a.call(b, this.items[c], c) === !1) return this;
return this
};
for (var qb in ab) ab[B](qb) && (pb[qb] = function(a) {
return function() {
var b = arguments;
return this.forEach(function(c) {
c[a][F](c, b)
})
}
}(qb));
return pb.attr = function(a, b) {
if (a && e.is(a, X) && e.is(a[0], "object"))
for (var c = 0, d = a.length; d > c; c++) this.items[c].attr(a[c]);
else
for (var f = 0, g = this.items.length; g > f; f++) this.items[f].attr(a, b);
return this
}, pb.clear = function() {
for (; this.length;) this.pop()
}, pb.splice = function(a, b, c) {
a = 0 > a ? Q(this.length + a, 0) : a, b = Q(0, R(this.length - a, b));
var d, e = [],
f = [],
g = [];
for (d = 2; d < arguments.length; d++) g.push(arguments[d]);
for (d = 0; b > d; d++) f.push(this[a + d]);
for (; d < this.length - a; d++) e.push(this[a + d]);
var h = g.length;
for (d = 0; d < h + e.length; d++) this.items[a + d] = this[a + d] = h > d ? g[d] : e[d - h];
for (d = this.items.length = this.length -= b - h; this[d];) delete this[d++];
return new ob(f)
}, pb.exclude = function(a) {
for (var b = 0, c = this.length; c > b; b++)
if (this[b] == a) return this.splice(b, 1), !0
}, pb.animate = function(a, b, c, d) {
(e.is(c, "function") || !c) && (d = c || null);
var f, g, h = this.items.length,
i = h,
j = this;
if (!h) return this;
d && (g = function() {
!--h && d.call(j)
}), c = e.is(c, W) ? c : g;
var k = e.animation(a, b, c, g);
for (f = this.items[--i].animate(k); i--;) this.items[i] && !this.items[i].removed && this.items[i].animateWith(f, k, k), this.items[i] && !this.items[i].removed || h--;
return this
}, pb.insertAfter = function(a) {
for (var b = this.items.length; b--;) this.items[b].insertAfter(a);
return this
}, pb.getBBox = function() {
for (var a = [], b = [], c = [], d = [], e = this.items.length; e--;)
if (!this.items[e].removed) {
var f = this.items[e].getBBox();
a.push(f.x), b.push(f.y), c.push(f.x + f.width), d.push(f.y + f.height)
}
return a = R[F](0, a), b = R[F](0, b), c = Q[F](0, c), d = Q[F](0, d), {
x: a,
y: b,
x2: c,
y2: d,
width: c - a,
height: d - b
}
}, pb.clone = function(a) {
a = this.paper.set();
for (var b = 0, c = this.items.length; c > b; b++) a.push(this.items[b].clone());
return a
}, pb.toString = function() {
return "Raphaël‘s set"
}, pb.glow = function(a) {
var b = this.paper.set();
return this.forEach(function(c, d) {
var e = c.glow(a);
null != e && e.forEach(function(a, c) {
b.push(a)
})
}), b
}, pb.isPointInside = function(a, b) {
var c = !1;
return this.forEach(function(d) {
return d.isPointInside(a, b) ? (c = !0, !1) : void 0
}), c
}, e.registerFont = function(a) {
if (!a.face) return a;
this.fonts = this.fonts || {};
var b = {
w: a.w,
face: {},
glyphs: {}
},
c = a.face["font-family"];
for (var d in a.face) a.face[B](d) && (b.face[d] = a.face[d]);
if (this.fonts[c] ? this.fonts[c].push(b) : this.fonts[c] = [b], !a.svg) {
b.face["units-per-em"] = ca(a.face["units-per-em"], 10);
for (var e in a.glyphs)
if (a.glyphs[B](e)) {
var f = a.glyphs[e];
if (b.glyphs[e] = {
w: f.w,
k: {},
d: f.d && "M" + f.d.replace(/[mlcxtrv]/g, function(a) {
return {
l: "L",
c: "C",
x: "z",
t: "m",
r: "l",
v: "c"
}[a] || "M"
}) + "z"
}, f.k)
for (var g in f.k) f[B](g) && (b.glyphs[e].k[g] = f.k[g])
}
}
return a
}, x.getFont = function(a, b, c, d) {
if (d = d || "normal", c = c || "normal", b = +b || {
normal: 400,
bold: 700,
lighter: 300,
bolder: 800
}[b] || 400, e.fonts) {
var f = e.fonts[a];
if (!f) {
var g = new RegExp("(^|\\s)" + a.replace(/[^\w\d\s+!~.:_-]/g, I) + "(\\s|$)", "i");
for (var h in e.fonts)
if (e.fonts[B](h) && g.test(h)) {
f = e.fonts[h];
break
}
}
var i;
if (f)
for (var j = 0, k = f.length; k > j && (i = f[j], i.face["font-weight"] != b || i.face["font-style"] != c && i.face["font-style"] || i.face["font-stretch"] != d); j++);
return i
}
}, x.print = function(a, b, c, d, f, g, h, i) {
g = g || "middle", h = Q(R(h || 0, 1), -1), i = Q(R(i || 1, 3), 1);
var j, k = K(c)[L](I),
l = 0,
m = 0,
n = I;
if (e.is(d, "string") && (d = this.getFont(d)), d) {
j = (f || 16) / d.face["units-per-em"];
for (var o = d.face.bbox[L](y), p = +o[0], q = o[3] - o[1], r = 0, s = +o[1] + ("baseline" == g ? q + +d.face.descent : q / 2), t = 0, u = k.length; u > t; t++) {
if ("\n" == k[t]) l = 0, w = 0, m = 0, r += q * i;
else {
var v = m && d.glyphs[k[t - 1]] || {},
w = d.glyphs[k[t]];
l += m ? (v.w || d.w) + (v.k && v.k[k[t]] || 0) + d.w * h : 0, m = 1
}
w && w.d && (n += e.transformPath(w.d, ["t", l * j, r * j, "s", j, j, p, s, "t", (a - p) / j, (b - s) / j]))
}
}
return this.path(n).attr({
fill: "#000",
stroke: "none"
})
}, x.add = function(a) {
if (e.is(a, "array"))
for (var b, c = this.set(), d = 0, f = a.length; f > d; d++) b = a[d] || {}, z[B](b.type) && c.push(this[b.type]().attr(b));
return c
}, e.format = function(a, b) {
var c = e.is(b, X) ? [0][G](b) : arguments;
return a && e.is(a, W) && c.length - 1 && (a = a.replace(A, function(a, b) {
return null == c[++b] ? I : c[b]
})), a || I
}, e.fullfill = function() {
var a = /\{([^\}]+)\}/g,
b = /(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,
c = function(a, c, d) {
var e = d;
return c.replace(b, function(a, b, c, d, f) {
b = b || d, e && (b in e && (e = e[b]), "function" == typeof e && f && (e = e()))
}), e = (null == e || e == d ? a : e) + ""
};
return function(b, d) {
return String(b).replace(a, function(a, b) {
return c(a, b, d)
})
}
}(), e.ninja = function() {
return D.was ? C.win.Raphael = D.is : delete Raphael, e
}, e.st = pb, d.on("raphael.DOMload", function() {
w = !0
}),
function(a, b, c) {
function d() {
/in/.test(a.readyState) ? setTimeout(d, 9) : e.eve("raphael.DOMload")
}
null == a.readyState && a.addEventListener && (a.addEventListener(b, c = function() {
a.removeEventListener(b, c, !1), a.readyState = "complete"
}, !1), a.readyState = "loading"), d()
}(document, "DOMContentLoaded"),
function() {
if (e.svg) {
var a = "hasOwnProperty",
b = String,
c = parseFloat,
d = parseInt,
f = Math,
g = f.max,
h = f.abs,
i = f.pow,
j = /[, ]+/,
k = e.eve,
l = "",
m = " ",
n = "http://www.w3.org/1999/xlink",
o = {
block: "M5,0 0,2.5 5,5z",
classic: "M5,0 0,2.5 5,5 3.5,3 3.5,2z",
diamond: "M2.5,0 5,2.5 2.5,5 0,2.5z",
open: "M6,1 1,3.5 6,6",
oval: "M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"
},
p = {};
e.toString = function() {
return "Your browser supports SVG.\nYou are running Raphaël " + this.version
};
var q = function(c, d) {
if (d) {
"string" == typeof c && (c = q(c));
for (var f in d) d[a](f) && ("xlink:" == f.substring(0, 6) ? c.setAttributeNS(n, f.substring(6), b(d[f])) : c.setAttribute(f, b(d[f])))
} else c = e._g.doc.createElementNS("http://www.w3.org/2000/svg", c), c.style && (c.style.webkitTapHighlightColor = "rgba(0,0,0,0)");
return c
},
r = function(a, d) {
var j = "linear",
k = a.id + d,
m = .5,
n = .5,
o = a.node,
p = a.paper,
r = o.style,
s = e._g.doc.getElementById(k);
if (!s) {
if (d = b(d).replace(e._radial_gradient, function(a, b, d) {
if (j = "radial", b && d) {
m = c(b), n = c(d);
var e = 2 * (n > .5) - 1;
i(m - .5, 2) + i(n - .5, 2) > .25 && (n = f.sqrt(.25 - i(m - .5, 2)) * e + .5) && .5 != n && (n = n.toFixed(5) - 1e-5 * e)
}
return l
}), d = d.split(/\s*\-\s*/), "linear" == j) {
var t = d.shift();
if (t = -c(t), isNaN(t)) return null;
var u = [0, 0, f.cos(e.rad(t)), f.sin(e.rad(t))],
v = 1 / (g(h(u[2]), h(u[3])) || 1);
u[2] *= v, u[3] *= v, u[2] < 0 && (u[0] = -u[2], u[2] = 0), u[3] < 0 && (u[1] = -u[3], u[3] = 0)
}
var w = e._parseDots(d);
if (!w) return null;
if (k = k.replace(/[\(\)\s,\xb0#]/g, "_"), a.gradient && k != a.gradient.id && (p.defs.removeChild(a.gradient), delete a.gradient), !a.gradient) {
s = q(j + "Gradient", {
id: k
}), a.gradient = s, q(s, "radial" == j ? {
fx: m,
fy: n
} : {
x1: u[0],
y1: u[1],
x2: u[2],
y2: u[3],
gradientTransform: a.matrix.invert()
}), p.defs.appendChild(s);
for (var x = 0, y = w.length; y > x; x++) s.appendChild(q("stop", {
offset: w[x].offset ? w[x].offset : x ? "100%" : "0%",
"stop-color": w[x].color || "#fff"
}))
}
}
return q(o, {
fill: "url('" + document.location + "#" + k + "')",
opacity: 1,
"fill-opacity": 1
}), r.fill = l, r.opacity = 1, r.fillOpacity = 1, 1
},
s = function(a) {
var b = a.getBBox(1);
q(a.pattern, {
patternTransform: a.matrix.invert() + " translate(" + b.x + "," + b.y + ")"
})
},
t = function(c, d, f) {
if ("path" == c.type) {
for (var g, h, i, j, k, m = b(d).toLowerCase().split("-"), n = c.paper, r = f ? "end" : "start", s = c.node, t = c.attrs, u = t["stroke-width"], v = m.length, w = "classic", x = 3, y = 3, z = 5; v--;) switch (m[v]) {
case "block":
case "classic":
case "oval":
case "diamond":
case "open":
case "none":
w = m[v];
break;
case "wide":
y = 5;
break;
case "narrow":
y = 2;
break;
case "long":
x = 5;
break;
case "short":
x = 2
}
if ("open" == w ? (x += 2, y += 2, z += 2, i = 1, j = f ? 4 : 1, k = {
fill: "none",
stroke: t.stroke
}) : (j = i = x / 2, k = {
fill: t.stroke,
stroke: "none"
}), c._.arrows ? f ? (c._.arrows.endPath && p[c._.arrows.endPath]--, c._.arrows.endMarker && p[c._.arrows.endMarker]--) : (c._.arrows.startPath && p[c._.arrows.startPath]--, c._.arrows.startMarker && p[c._.arrows.startMarker]--) : c._.arrows = {}, "none" != w) {
var A = "raphael-marker-" + w,
B = "raphael-marker-" + r + w + x + y + "-obj" + c.id;
e._g.doc.getElementById(A) ? p[A]++ : (n.defs.appendChild(q(q("path"), {
"stroke-linecap": "round",
d: o[w],
id: A
})), p[A] = 1);
var C, D = e._g.doc.getElementById(B);
D ? (p[B]++, C = D.getElementsByTagName("use")[0]) : (D = q(q("marker"), {
id: B,
markerHeight: y,
markerWidth: x,
orient: "auto",
refX: j,
refY: y / 2
}), C = q(q("use"), {
"xlink:href": "#" + A,
transform: (f ? "rotate(180 " + x / 2 + " " + y / 2 + ") " : l) + "scale(" + x / z + "," + y / z + ")",
"stroke-width": (1 / ((x / z + y / z) / 2)).toFixed(4)
}), D.appendChild(C), n.defs.appendChild(D), p[B] = 1), q(C, k);
var E = i * ("diamond" != w && "oval" != w);
f ? (g = c._.arrows.startdx * u || 0, h = e.getTotalLength(t.path) - E * u) : (g = E * u, h = e.getTotalLength(t.path) - (c._.arrows.enddx * u || 0)), k = {}, k["marker-" + r] = "url(#" + B + ")", (h || g) && (k.d = e.getSubpath(t.path, g, h)), q(s, k), c._.arrows[r + "Path"] = A, c._.arrows[r + "Marker"] = B, c._.arrows[r + "dx"] = E, c._.arrows[r + "Type"] = w, c._.arrows[r + "String"] = d
} else f ? (g = c._.arrows.startdx * u || 0, h = e.getTotalLength(t.path) - g) : (g = 0, h = e.getTotalLength(t.path) - (c._.arrows.enddx * u || 0)), c._.arrows[r + "Path"] && q(s, {
d: e.getSubpath(t.path, g, h)
}), delete c._.arrows[r + "Path"], delete c._.arrows[r + "Marker"], delete c._.arrows[r + "dx"], delete c._.arrows[r + "Type"], delete c._.arrows[r + "String"];
for (k in p)
if (p[a](k) && !p[k]) {
var F = e._g.doc.getElementById(k);
F && F.parentNode.removeChild(F)
}
}
},
u = {
"": [0],
none: [0],
"-": [3, 1],
".": [1, 1],
"-.": [3, 1, 1, 1],
"-..": [3, 1, 1, 1, 1, 1],
". ": [1, 3],
"- ": [4, 3],
"--": [8, 3],
"- .": [4, 3, 1, 3],
"--.": [8, 3, 1, 3],
"--..": [8, 3, 1, 3, 1, 3]
},
v = function(a, c, d) {
if (c = u[b(c).toLowerCase()]) {
for (var e = a.attrs["stroke-width"] || "1", f = {
round: e,
square: e,
butt: 0
}[a.attrs["stroke-linecap"] || d["stroke-linecap"]] || 0, g = [], h = c.length; h--;) g[h] = c[h] * e + (h % 2 ? 1 : -1) * f;
q(a.node, {
"stroke-dasharray": g.join(",")
})
}
},
w = function(c, f) {
var i = c.node,
k = c.attrs,
m = i.style.visibility;
i.style.visibility = "hidden";
for (var o in f)
if (f[a](o)) {
if (!e._availableAttrs[a](o)) continue;
var p = f[o];
switch (k[o] = p, o) {
case "blur":
c.blur(p);
break;
case "title":
var u = i.getElementsByTagName("title");
if (u.length && (u = u[0])) u.firstChild.nodeValue = p;
else {
u = q("title");
var w = e._g.doc.createTextNode(p);
u.appendChild(w), i.appendChild(u)
}
break;
case "href":
case "target":
var x = i.parentNode;
if ("a" != x.tagName.toLowerCase()) {
var z = q("a");
x.insertBefore(z, i), z.appendChild(i), x = z
}
"target" == o ? x.setAttributeNS(n, "show", "blank" == p ? "new" : p) : x.setAttributeNS(n, o, p);
break;
case "cursor":
i.style.cursor = p;
break;
case "transform":
c.transform(p);
break;
case "arrow-start":
t(c, p);
break;
case "arrow-end":
t(c, p, 1);
break;
case "clip-rect":
var A = b(p).split(j);
if (4 == A.length) {
c.clip && c.clip.parentNode.parentNode.removeChild(c.clip.parentNode);
var B = q("clipPath"),
C = q("rect");
B.id = e.createUUID(), q(C, {
x: A[0],
y: A[1],
width: A[2],
height: A[3]
}), B.appendChild(C), c.paper.defs.appendChild(B), q(i, {
"clip-path": "url(#" + B.id + ")"
}), c.clip = C
}
if (!p) {
var D = i.getAttribute("clip-path");
if (D) {
var E = e._g.doc.getElementById(D.replace(/(^url\(#|\)$)/g, l));
E && E.parentNode.removeChild(E), q(i, {
"clip-path": l
}), delete c.clip
}
}
break;
case "path":
"path" == c.type && (q(i, {
d: p ? k.path = e._pathToAbsolute(p) : "M0,0"
}), c._.dirty = 1, c._.arrows && ("startString" in c._.arrows && t(c, c._.arrows.startString), "endString" in c._.arrows && t(c, c._.arrows.endString, 1)));
break;
case "width":
if (i.setAttribute(o, p), c._.dirty = 1, !k.fx) break;
o = "x", p = k.x;
case "x":
k.fx && (p = -k.x - (k.width || 0));
case "rx":
if ("rx" == o && "rect" == c.type) break;
case "cx":
i.setAttribute(o, p), c.pattern && s(c), c._.dirty = 1;
break;
case "height":
if (i.setAttribute(o, p), c._.dirty = 1, !k.fy) break;
o = "y", p = k.y;
case "y":
k.fy && (p = -k.y - (k.height || 0));
case "ry":
if ("ry" == o && "rect" == c.type) break;
case "cy":
i.setAttribute(o, p), c.pattern && s(c), c._.dirty = 1;
break;
case "r":
"rect" == c.type ? q(i, {
rx: p,
ry: p
}) : i.setAttribute(o, p), c._.dirty = 1;
break;
case "src":
"image" == c.type && i.setAttributeNS(n, "href", p);
break;
case "stroke-width":
(1 != c._.sx || 1 != c._.sy) && (p /= g(h(c._.sx), h(c._.sy)) || 1), i.setAttribute(o, p), k["stroke-dasharray"] && v(c, k["stroke-dasharray"], f), c._.arrows && ("startString" in c._.arrows && t(c, c._.arrows.startString), "endString" in c._.arrows && t(c, c._.arrows.endString, 1));
break;
case "stroke-dasharray":
v(c, p, f);
break;
case "fill":
var F = b(p).match(e._ISURL);
if (F) {
B = q("pattern");
var G = q("image");
B.id = e.createUUID(), q(B, {
x: 0,
y: 0,
patternUnits: "userSpaceOnUse",
height: 1,
width: 1
}), q(G, {
x: 0,
y: 0,
"xlink:href": F[1]
}), B.appendChild(G),
function(a) {
e._preload(F[1], function() {
var b = this.offsetWidth,
d = this.offsetHeight;
q(a, {
width: b,
height: d
}), q(G, {
width: b,
height: d
}), c.paper.safari()
})
}(B), c.paper.defs.appendChild(B), q(i, {
fill: "url(#" + B.id + ")"
}), c.pattern = B, c.pattern && s(c);
break
}
var H = e.getRGB(p);
if (H.error) {
if (("circle" == c.type || "ellipse" == c.type || "r" != b(p).charAt()) && r(c, p)) {
if ("opacity" in k || "fill-opacity" in k) {
var I = e._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g, l));
if (I) {
var J = I.getElementsByTagName("stop");
q(J[J.length - 1], {
"stop-opacity": ("opacity" in k ? k.opacity : 1) * ("fill-opacity" in k ? k["fill-opacity"] : 1)
})
}
}
k.gradient = p, k.fill = "none";
break
}
} else delete f.gradient, delete k.gradient, !e.is(k.opacity, "undefined") && e.is(f.opacity, "undefined") && q(i, {
opacity: k.opacity
}), !e.is(k["fill-opacity"], "undefined") && e.is(f["fill-opacity"], "undefined") && q(i, {
"fill-opacity": k["fill-opacity"]
});
H[a]("opacity") && q(i, {
"fill-opacity": H.opacity > 1 ? H.opacity / 100 : H.opacity
});
case "stroke":
H = e.getRGB(p), i.setAttribute(o, H.hex), "stroke" == o && H[a]("opacity") && q(i, {
"stroke-opacity": H.opacity > 1 ? H.opacity / 100 : H.opacity
}), "stroke" == o && c._.arrows && ("startString" in c._.arrows && t(c, c._.arrows.startString), "endString" in c._.arrows && t(c, c._.arrows.endString, 1));
break;
case "gradient":
("circle" == c.type || "ellipse" == c.type || "r" != b(p).charAt()) && r(c, p);
break;
case "opacity":
k.gradient && !k[a]("stroke-opacity") && q(i, {
"stroke-opacity": p > 1 ? p / 100 : p
});
case "fill-opacity":
if (k.gradient) {
I = e._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g, l)), I && (J = I.getElementsByTagName("stop"), q(J[J.length - 1], {
"stop-opacity": p
}));
break
}
default:
"font-size" == o && (p = d(p, 10) + "px");
var K = o.replace(/(\-.)/g, function(a) {
return a.substring(1).toUpperCase()
});
i.style[K] = p, c._.dirty = 1, i.setAttribute(o, p)
}
}
y(c, f), i.style.visibility = m
},
x = 1.2,
y = function(c, f) {
if ("text" == c.type && (f[a]("text") || f[a]("font") || f[a]("font-size") || f[a]("x") || f[a]("y"))) {
var g = c.attrs,
h = c.node,
i = h.firstChild ? d(e._g.doc.defaultView.getComputedStyle(h.firstChild, l).getPropertyValue("font-size"), 10) : 10;
if (f[a]("text")) {
for (g.text = f.text; h.firstChild;) h.removeChild(h.firstChild);
for (var j, k = b(f.text).split("\n"), m = [], n = 0, o = k.length; o > n; n++) j = q("tspan"), n && q(j, {
dy: i * x,
x: g.x
}), j.appendChild(e._g.doc.createTextNode(k[n])), h.appendChild(j), m[n] = j
} else
for (m = h.getElementsByTagName("tspan"), n = 0, o = m.length; o > n; n++) n ? q(m[n], {
dy: i * x,
x: g.x
}) : q(m[0], {
dy: 0
});
q(h, {
x: g.x,
y: g.y
}), c._.dirty = 1;
var p = c._getBBox(),
r = g.y - (p.y + p.height / 2);
r && e.is(r, "finite") && q(m[0], {
dy: r
})
}
},
z = function(a) {
return a.parentNode && "a" === a.parentNode.tagName.toLowerCase() ? a.parentNode : a
},
A = function(a, b) {
this[0] = this.node = a, a.raphael = !0, this.id = e._oid++, a.raphaelid = this.id, this.matrix = e.matrix(), this.realPath = null, this.paper = b, this.attrs = this.attrs || {}, this._ = {
transform: [],
sx: 1,
sy: 1,
deg: 0,
dx: 0,
dy: 0,
dirty: 1
}, !b.bottom && (b.bottom = this), this.prev = b.top, b.top && (b.top.next = this), b.top = this, this.next = null
},
B = e.el;
A.prototype = B, B.constructor = A, e._engine.path = function(a, b) {
var c = q("path");
b.canvas && b.canvas.appendChild(c);
var d = new A(c, b);
return d.type = "path", w(d, {
fill: "none",
stroke: "#000",
path: a
}), d
}, B.rotate = function(a, d, e) {
if (this.removed) return this;
if (a = b(a).split(j), a.length - 1 && (d = c(a[1]), e = c(a[2])), a = c(a[0]), null == e && (d = e), null == d || null == e) {
var f = this.getBBox(1);
d = f.x + f.width / 2, e = f.y + f.height / 2
}
return this.transform(this._.transform.concat([
["r", a, d, e]
])), this
}, B.scale = function(a, d, e, f) {
if (this.removed) return this;
if (a = b(a).split(j), a.length - 1 && (d = c(a[1]), e = c(a[2]), f = c(a[3])), a = c(a[0]), null == d && (d = a), null == f && (e = f), null == e || null == f) var g = this.getBBox(1);
return e = null == e ? g.x + g.width / 2 : e, f = null == f ? g.y + g.height / 2 : f, this.transform(this._.transform.concat([
["s", a, d, e, f]
])), this
}, B.translate = function(a, d) {
return this.removed ? this : (a = b(a).split(j), a.length - 1 && (d = c(a[1])), a = c(a[0]) || 0, d = +d || 0, this.transform(this._.transform.concat([
["t", a, d]
])), this)
}, B.transform = function(b) {
var c = this._;
if (null == b) return c.transform;
if (e._extractTransform(this, b), this.clip && q(this.clip, {
transform: this.matrix.invert()
}), this.pattern && s(this), this.node && q(this.node, {
transform: this.matrix
}), 1 != c.sx || 1 != c.sy) {
var d = this.attrs[a]("stroke-width") ? this.attrs["stroke-width"] : 1;
this.attr({
"stroke-width": d
})
}
return this
}, B.hide = function() {
return !this.removed && this.paper.safari(this.node.style.display = "none"), this
}, B.show = function() {
return !this.removed && this.paper.safari(this.node.style.display = ""), this
}, B.remove = function() {
var a = z(this.node);
if (!this.removed && a.parentNode) {
var b = this.paper;
b.__set__ && b.__set__.exclude(this), k.unbind("raphael.*.*." + this.id), this.gradient && b.defs.removeChild(this.gradient), e._tear(this, b), a.parentNode.removeChild(a), this.removeData();
for (var c in this) this[c] = "function" == typeof this[c] ? e._removedFactory(c) : null;
this.removed = !0
}
}, B._getBBox = function() {
if ("none" == this.node.style.display) {
this.show();
var a = !0
}
var b, c = !1;
this.paper.canvas.parentElement ? b = this.paper.canvas.parentElement.style : this.paper.canvas.parentNode && (b = this.paper.canvas.parentNode.style), b && "none" == b.display && (c = !0, b.display = "");
var d = {};
try {
d = this.node.getBBox()
} catch (e) {
d = {
x: this.node.clientLeft,
y: this.node.clientTop,
width: this.node.clientWidth,
height: this.node.clientHeight
}
} finally {
d = d || {}, c && (b.display = "none")
}
return a && this.hide(), d
}, B.attr = function(b, c) {
if (this.removed) return this;
if (null == b) {
var d = {};
for (var f in this.attrs) this.attrs[a](f) && (d[f] = this.attrs[f]);
return d.gradient && "none" == d.fill && (d.fill = d.gradient) && delete d.gradient, d.transform = this._.transform, d
}
if (null == c && e.is(b, "string")) {
if ("fill" == b && "none" == this.attrs.fill && this.attrs.gradient) return this.attrs.gradient;
if ("transform" == b) return this._.transform;
for (var g = b.split(j), h = {}, i = 0, l = g.length; l > i; i++) b = g[i], b in this.attrs ? h[b] = this.attrs[b] : e.is(this.paper.customAttributes[b], "function") ? h[b] = this.paper.customAttributes[b].def : h[b] = e._availableAttrs[b];
return l - 1 ? h : h[g[0]]
}
if (null == c && e.is(b, "array")) {
for (h = {}, i = 0, l = b.length; l > i; i++) h[b[i]] = this.attr(b[i]);
return h
}
if (null != c) {
var m = {};
m[b] = c
} else null != b && e.is(b, "object") && (m = b);
for (var n in m) k("raphael.attr." + n + "." + this.id, this, m[n]);
for (n in this.paper.customAttributes)
if (this.paper.customAttributes[a](n) && m[a](n) && e.is(this.paper.customAttributes[n], "function")) {
var o = this.paper.customAttributes[n].apply(this, [].concat(m[n]));
this.attrs[n] = m[n];
for (var p in o) o[a](p) && (m[p] = o[p])
}
return w(this, m), this
}, B.toFront = function() {
if (this.removed) return this;
var a = z(this.node);
a.parentNode.appendChild(a);
var b = this.paper;
return b.top != this && e._tofront(this, b), this
}, B.toBack = function() {
if (this.removed) return this;
var a = z(this.node),
b = a.parentNode;
b.insertBefore(a, b.firstChild), e._toback(this, this.paper);
this.paper;
return this
}, B.insertAfter = function(a) {
if (this.removed || !a) return this;
var b = z(this.node),
c = z(a.node || a[a.length - 1].node);
return c.nextSibling ? c.parentNode.insertBefore(b, c.nextSibling) : c.parentNode.appendChild(b), e._insertafter(this, a, this.paper), this
}, B.insertBefore = function(a) {
if (this.removed || !a) return this;
var b = z(this.node),
c = z(a.node || a[0].node);
return c.parentNode.insertBefore(b, c), e._insertbefore(this, a, this.paper), this
}, B.blur = function(a) {
var b = this;
if (0 !== +a) {
var c = q("filter"),
d = q("feGaussianBlur");
b.attrs.blur = a, c.id = e.createUUID(), q(d, {
stdDeviation: +a || 1.5
}), c.appendChild(d), b.paper.defs.appendChild(c), b._blur = c, q(b.node, {
filter: "url(#" + c.id + ")"
})
} else b._blur && (b._blur.parentNode.removeChild(b._blur), delete b._blur, delete b.attrs.blur), b.node.removeAttribute("filter");
return b
}, e._engine.circle = function(a, b, c, d) {
var e = q("circle");
a.canvas && a.canvas.appendChild(e);
var f = new A(e, a);
return f.attrs = {
cx: b,
cy: c,
r: d,
fill: "none",
stroke: "#000"
}, f.type = "circle", q(e, f.attrs), f
}, e._engine.rect = function(a, b, c, d, e, f) {
var g = q("rect");
a.canvas && a.canvas.appendChild(g);
var h = new A(g, a);
return h.attrs = {
x: b,
y: c,
width: d,
height: e,
rx: f || 0,
ry: f || 0,
fill: "none",
stroke: "#000"
}, h.type = "rect", q(g, h.attrs), h
}, e._engine.ellipse = function(a, b, c, d, e) {
var f = q("ellipse");
a.canvas && a.canvas.appendChild(f);
var g = new A(f, a);
return g.attrs = {
cx: b,
cy: c,
rx: d,
ry: e,
fill: "none",
stroke: "#000"
}, g.type = "ellipse", q(f, g.attrs), g
}, e._engine.image = function(a, b, c, d, e, f) {
var g = q("image");
q(g, {
x: c,
y: d,
width: e,
height: f,
preserveAspectRatio: "none"
}), g.setAttributeNS(n, "href", b), a.canvas && a.canvas.appendChild(g);
var h = new A(g, a);
return h.attrs = {
x: c,
y: d,
width: e,
height: f,
src: b
}, h.type = "image", h
}, e._engine.text = function(a, b, c, d) {
var f = q("text");
a.canvas && a.canvas.appendChild(f);
var g = new A(f, a);
return g.attrs = {
x: b,
y: c,
"text-anchor": "middle",
text: d,
"font-family": e._availableAttrs["font-family"],
"font-size": e._availableAttrs["font-size"],
stroke: "none",
fill: "#000"
}, g.type = "text", w(g, g.attrs), g
}, e._engine.setSize = function(a, b) {
return this.width = a || this.width, this.height = b || this.height, this.canvas.setAttribute("width", this.width), this.canvas.setAttribute("height", this.height), this._viewBox && this.setViewBox.apply(this, this._viewBox), this
}, e._engine.create = function() {
var a = e._getContainer.apply(0, arguments),
b = a && a.container,
c = a.x,
d = a.y,
f = a.width,
g = a.height;
if (!b) throw new Error("SVG container not found.");
var h, i = q("svg"),
j = "overflow:hidden;";
return c = c || 0, d = d || 0, f = f || 512, g = g || 342, q(i, {
height: g,
version: 1.1,
width: f,
xmlns: "http://www.w3.org/2000/svg",
"xmlns:xlink": "http://www.w3.org/1999/xlink"
}), 1 == b ? (i.style.cssText = j + "position:absolute;left:" + c + "px;top:" + d + "px", e._g.doc.body.appendChild(i), h = 1) : (i.style.cssText = j + "position:relative", b.firstChild ? b.insertBefore(i, b.firstChild) : b.appendChild(i)), b = new e._Paper, b.width = f, b.height = g, b.canvas = i, b.clear(), b._left = b._top = 0, h && (b.renderfix = function() {}), b.renderfix(), b
}, e._engine.setViewBox = function(a, b, c, d, e) {
k("raphael.setViewBox", this, this._viewBox, [a, b, c, d, e]);
var f, h, i = this.getSize(),
j = g(c / i.width, d / i.height),
l = this.top,
n = e ? "xMidYMid meet" : "xMinYMin";
for (null == a ? (this._vbSize && (j = 1), delete this._vbSize, f = "0 0 " + this.width + m + this.height) : (this._vbSize = j, f = a + m + b + m + c + m + d), q(this.canvas, {
viewBox: f,
preserveAspectRatio: n
}); j && l;) h = "stroke-width" in l.attrs ? l.attrs["stroke-width"] : 1, l.attr({
"stroke-width": h
}), l._.dirty = 1, l._.dirtyT = 1, l = l.prev;
return this._viewBox = [a, b, c, d, !!e], this
}, e.prototype.renderfix = function() {
var a, b = this.canvas,
c = b.style;
try {
a = b.getScreenCTM() || b.createSVGMatrix()
} catch (d) {
a = b.createSVGMatrix()
}
var e = -a.e % 1,
f = -a.f % 1;
(e || f) && (e && (this._left = (this._left + e) % 1, c.left = this._left + "px"), f && (this._top = (this._top + f) % 1, c.top = this._top + "px"))
}, e.prototype.clear = function() {
e.eve("raphael.clear", this);
for (var a = this.canvas; a.firstChild;) a.removeChild(a.firstChild);
this.bottom = this.top = null, (this.desc = q("desc")).appendChild(e._g.doc.createTextNode("Created with Raphaël " + e.version)), a.appendChild(this.desc), a.appendChild(this.defs = q("defs"))
}, e.prototype.remove = function() {
k("raphael.remove", this), this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas);
for (var a in this) this[a] = "function" == typeof this[a] ? e._removedFactory(a) : null
};
var C = e.st;
for (var D in B) B[a](D) && !C[a](D) && (C[D] = function(a) {
return function() {
var b = arguments;
return this.forEach(function(c) {
c[a].apply(c, b)
})
}
}(D))
}
}(),
function() {
if (e.vml) {
var a = "hasOwnProperty",
b = String,
c = parseFloat,
d = Math,
f = d.round,
g = d.max,
h = d.min,
i = d.abs,
j = "fill",
k = /[, ]+/,
l = e.eve,
m = " progid:DXImageTransform.Microsoft",
n = " ",
o = "",
p = {
M: "m",
L: "l",
C: "c",
Z: "x",
m: "t",
l: "r",
c: "v",
z: "x"
},
q = /([clmz]),?([^clmz]*)/gi,
r = / progid:\S+Blur\([^\)]+\)/g,
s = /-?[^,\s-]+/g,
t = "position:absolute;left:0;top:0;width:1px;height:1px;behavior:url(#default#VML)",
u = 21600,
v = {
path: 1,
rect: 1,
image: 1
},
w = {
circle: 1,
ellipse: 1
},
x = function(a) {
var c = /[ahqstv]/gi,
d = e._pathToAbsolute;
if (b(a).match(c) && (d = e._path2curve), c = /[clmz]/g, d == e._pathToAbsolute && !b(a).match(c)) {
var g = b(a).replace(q, function(a, b, c) {
var d = [],
e = "m" == b.toLowerCase(),
g = p[b];
return c.replace(s, function(a) {
e && 2 == d.length && (g += d + p["m" == b ? "l" : "L"], d = []), d.push(f(a * u))
}), g + d
});
return g
}
var h, i, j = d(a);
g = [];
for (var k = 0, l = j.length; l > k; k++) {
h = j[k], i = j[k][0].toLowerCase(), "z" == i && (i = "x");
for (var m = 1, r = h.length; r > m; m++) i += f(h[m] * u) + (m != r - 1 ? "," : o);
g.push(i)
}
return g.join(n)
},
y = function(a, b, c) {
var d = e.matrix();
return d.rotate(-a, .5, .5), {
dx: d.x(b, c),
dy: d.y(b, c)
}
},
z = function(a, b, c, d, e, f) {
var g = a._,
h = a.matrix,
k = g.fillpos,
l = a.node,
m = l.style,
o = 1,
p = "",
q = u / b,
r = u / c;
if (m.visibility = "hidden", b && c) {
if (l.coordsize = i(q) + n + i(r), m.rotation = f * (0 > b * c ? -1 : 1), f) {
var s = y(f, d, e);
d = s.dx, e = s.dy
}
if (0 > b && (p += "x"), 0 > c && (p += " y") && (o = -1), m.flip = p, l.coordorigin = d * -q + n + e * -r, k || g.fillsize) {
var t = l.getElementsByTagName(j);
t = t && t[0], l.removeChild(t), k && (s = y(f, h.x(k[0], k[1]), h.y(k[0], k[1])), t.position = s.dx * o + n + s.dy * o), g.fillsize && (t.size = g.fillsize[0] * i(b) + n + g.fillsize[1] * i(c)), l.appendChild(t)
}
m.visibility = "visible"
}
};
e.toString = function() {
return "Your browser doesn’t support SVG. Falling down to VML.\nYou are running Raphaël " + this.version
};
var A = function(a, c, d) {
for (var e = b(c).toLowerCase().split("-"), f = d ? "end" : "start", g = e.length, h = "classic", i = "medium", j = "medium"; g--;) switch (e[g]) {
case "block":
case "classic":
case "oval":
case "diamond":
case "open":
case "none":
h = e[g];
break;
case "wide":
case "narrow":
j = e[g];
break;
case "long":
case "short":
i = e[g]
}
var k = a.node.getElementsByTagName("stroke")[0];
k[f + "arrow"] = h, k[f + "arrowlength"] = i, k[f + "arrowwidth"] = j
},
B = function(d, i) {
d.attrs = d.attrs || {};
var l = d.node,
m = d.attrs,
p = l.style,
q = v[d.type] && (i.x != m.x || i.y != m.y || i.width != m.width || i.height != m.height || i.cx != m.cx || i.cy != m.cy || i.rx != m.rx || i.ry != m.ry || i.r != m.r),
r = w[d.type] && (m.cx != i.cx || m.cy != i.cy || m.r != i.r || m.rx != i.rx || m.ry != i.ry),
s = d;
for (var t in i) i[a](t) && (m[t] = i[t]);
if (q && (m.path = e._getPath[d.type](d), d._.dirty = 1), i.href && (l.href = i.href), i.title && (l.title = i.title), i.target && (l.target = i.target), i.cursor && (p.cursor = i.cursor), "blur" in i && d.blur(i.blur), (i.path && "path" == d.type || q) && (l.path = x(~b(m.path).toLowerCase().indexOf("r") ? e._pathToAbsolute(m.path) : m.path), d._.dirty = 1, "image" == d.type && (d._.fillpos = [m.x, m.y], d._.fillsize = [m.width, m.height], z(d, 1, 1, 0, 0, 0))), "transform" in i && d.transform(i.transform), r) {
var y = +m.cx,
B = +m.cy,
D = +m.rx || +m.r || 0,
E = +m.ry || +m.r || 0;
l.path = e.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x", f((y - D) * u), f((B - E) * u), f((y + D) * u), f((B + E) * u), f(y * u)), d._.dirty = 1
}
if ("clip-rect" in i) {
var G = b(i["clip-rect"]).split(k);
if (4 == G.length) {
G[2] = +G[2] + +G[0], G[3] = +G[3] + +G[1];
var H = l.clipRect || e._g.doc.createElement("div"),
I = H.style;
I.clip = e.format("rect({1}px {2}px {3}px {0}px)", G), l.clipRect || (I.position = "absolute", I.top = 0, I.left = 0, I.width = d.paper.width + "px", I.height = d.paper.height + "px", l.parentNode.insertBefore(H, l), H.appendChild(l), l.clipRect = H)
}
i["clip-rect"] || l.clipRect && (l.clipRect.style.clip = "auto")
}
if (d.textpath) {
var J = d.textpath.style;
i.font && (J.font = i.font), i["font-family"] && (J.fontFamily = '"' + i["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g, o) + '"'), i["font-size"] && (J.fontSize = i["font-size"]), i["font-weight"] && (J.fontWeight = i["font-weight"]), i["font-style"] && (J.fontStyle = i["font-style"])
}
if ("arrow-start" in i && A(s, i["arrow-start"]), "arrow-end" in i && A(s, i["arrow-end"], 1), null != i.opacity || null != i["stroke-width"] || null != i.fill || null != i.src || null != i.stroke || null != i["stroke-width"] || null != i["stroke-opacity"] || null != i["fill-opacity"] || null != i["stroke-dasharray"] || null != i["stroke-miterlimit"] || null != i["stroke-linejoin"] || null != i["stroke-linecap"]) {
var K = l.getElementsByTagName(j),
L = !1;
if (K = K && K[0], !K && (L = K = F(j)), "image" == d.type && i.src && (K.src = i.src), i.fill && (K.on = !0), (null == K.on || "none" == i.fill || null === i.fill) && (K.on = !1), K.on && i.fill) {
var M = b(i.fill).match(e._ISURL);
if (M) {
K.parentNode == l && l.removeChild(K), K.rotate = !0, K.src = M[1], K.type = "tile";
var N = d.getBBox(1);
K.position = N.x + n + N.y, d._.fillpos = [N.x, N.y], e._preload(M[1], function() {
d._.fillsize = [this.offsetWidth, this.offsetHeight]
})
} else K.color = e.getRGB(i.fill).hex, K.src = o, K.type = "solid", e.getRGB(i.fill).error && (s.type in {
circle: 1,
ellipse: 1
} || "r" != b(i.fill).charAt()) && C(s, i.fill, K) && (m.fill = "none", m.gradient = i.fill, K.rotate = !1)
}
if ("fill-opacity" in i || "opacity" in i) {
var O = ((+m["fill-opacity"] + 1 || 2) - 1) * ((+m.opacity + 1 || 2) - 1) * ((+e.getRGB(i.fill).o + 1 || 2) - 1);
O = h(g(O, 0), 1), K.opacity = O, K.src && (K.color = "none")
}
l.appendChild(K);
var P = l.getElementsByTagName("stroke") && l.getElementsByTagName("stroke")[0],
Q = !1;
!P && (Q = P = F("stroke")), (i.stroke && "none" != i.stroke || i["stroke-width"] || null != i["stroke-opacity"] || i["stroke-dasharray"] || i["stroke-miterlimit"] || i["stroke-linejoin"] || i["stroke-linecap"]) && (P.on = !0), ("none" == i.stroke || null === i.stroke || null == P.on || 0 == i.stroke || 0 == i["stroke-width"]) && (P.on = !1);
var R = e.getRGB(i.stroke);
P.on && i.stroke && (P.color = R.hex), O = ((+m["stroke-opacity"] + 1 || 2) - 1) * ((+m.opacity + 1 || 2) - 1) * ((+R.o + 1 || 2) - 1);
var S = .75 * (c(i["stroke-width"]) || 1);
if (O = h(g(O, 0), 1), null == i["stroke-width"] && (S = m["stroke-width"]), i["stroke-width"] && (P.weight = S), S && 1 > S && (O *= S) && (P.weight = 1), P.opacity = O, i["stroke-linejoin"] && (P.joinstyle = i["stroke-linejoin"] || "miter"), P.miterlimit = i["stroke-miterlimit"] || 8, i["stroke-linecap"] && (P.endcap = "butt" == i["stroke-linecap"] ? "flat" : "square" == i["stroke-linecap"] ? "square" : "round"), "stroke-dasharray" in i) {
var T = {
"-": "shortdash",
".": "shortdot",
"-.": "shortdashdot",
"-..": "shortdashdotdot",
". ": "dot",
"- ": "dash",
"--": "longdash",
"- .": "dashdot",
"--.": "longdashdot",
"--..": "longdashdotdot"
};
P.dashstyle = T[a](i["stroke-dasharray"]) ? T[i["stroke-dasharray"]] : o
}
Q && l.appendChild(P)
}
if ("text" == s.type) {
s.paper.canvas.style.display = o;
var U = s.paper.span,
V = 100,
W = m.font && m.font.match(/\d+(?:\.\d*)?(?=px)/);
p = U.style, m.font && (p.font = m.font), m["font-family"] && (p.fontFamily = m["font-family"]), m["font-weight"] && (p.fontWeight = m["font-weight"]), m["font-style"] && (p.fontStyle = m["font-style"]), W = c(m["font-size"] || W && W[0]) || 10, p.fontSize = W * V + "px", s.textpath.string && (U.innerHTML = b(s.textpath.string).replace(/</g, "&#60;").replace(/&/g, "&#38;").replace(/\n/g, "<br>"));
var X = U.getBoundingClientRect();
s.W = m.w = (X.right - X.left) / V, s.H = m.h = (X.bottom - X.top) / V, s.X = m.x, s.Y = m.y + s.H / 2, ("x" in i || "y" in i) && (s.path.v = e.format("m{0},{1}l{2},{1}", f(m.x * u), f(m.y * u), f(m.x * u) + 1));
for (var Y = ["x", "y", "text", "font", "font-family", "font-weight", "font-style", "font-size"], Z = 0, $ = Y.length; $ > Z; Z++)
if (Y[Z] in i) {
s._.dirty = 1;
break
}
switch (m["text-anchor"]) {
case "start":
s.textpath.style["v-text-align"] = "left", s.bbx = s.W / 2;
break;
case "end":
s.textpath.style["v-text-align"] = "right", s.bbx = -s.W / 2;
break;
default:
s.textpath.style["v-text-align"] = "center", s.bbx = 0
}
s.textpath.style["v-text-kern"] = !0
}
},
C = function(a, f, g) {
a.attrs = a.attrs || {};
var h = (a.attrs, Math.pow),
i = "linear",
j = ".5 .5";
if (a.attrs.gradient = f, f = b(f).replace(e._radial_gradient, function(a, b, e) {
return i = "radial", b && e && (b = c(b), e = c(e), h(b - .5, 2) + h(e - .5, 2) > .25 && (e = d.sqrt(.25 - h(b - .5, 2)) * (2 * (e > .5) - 1) + .5), j = b + n + e), o
}), f = f.split(/\s*\-\s*/), "linear" == i) {
var k = f.shift();
if (k = -c(k), isNaN(k)) return null
}
var l = e._parseDots(f);
if (!l) return null;
if (a = a.shape || a.node, l.length) {
a.removeChild(g), g.on = !0, g.method = "none", g.color = l[0].color, g.color2 = l[l.length - 1].color;
for (var m = [], p = 0, q = l.length; q > p; p++) l[p].offset && m.push(l[p].offset + n + l[p].color);
g.colors = m.length ? m.join() : "0% " + g.color, "radial" == i ? (g.type = "gradientTitle", g.focus = "100%", g.focussize = "0 0", g.focusposition = j, g.angle = 0) : (g.type = "gradient", g.angle = (270 - k) % 360), a.appendChild(g)
}
return 1
},
D = function(a, b) {
this[0] = this.node = a, a.raphael = !0, this.id = e._oid++, a.raphaelid = this.id, this.X = 0, this.Y = 0, this.attrs = {}, this.paper = b, this.matrix = e.matrix(), this._ = {
transform: [],
sx: 1,
sy: 1,
dx: 0,
dy: 0,
deg: 0,
dirty: 1,
dirtyT: 1
}, !b.bottom && (b.bottom = this), this.prev = b.top, b.top && (b.top.next = this), b.top = this, this.next = null
},
E = e.el;
D.prototype = E, E.constructor = D, E.transform = function(a) {
if (null == a) return this._.transform;
var c, d = this.paper._viewBoxShift,
f = d ? "s" + [d.scale, d.scale] + "-1-1t" + [d.dx, d.dy] : o;
d && (c = a = b(a).replace(/\.{3}|\u2026/g, this._.transform || o)), e._extractTransform(this, f + a);
var g, h = this.matrix.clone(),
i = this.skew,
j = this.node,
k = ~b(this.attrs.fill).indexOf("-"),
l = !b(this.attrs.fill).indexOf("url(");
if (h.translate(1, 1), l || k || "image" == this.type)
if (i.matrix = "1 0 0 1", i.offset = "0 0", g = h.split(), k && g.noRotation || !g.isSimple) {
j.style.filter = h.toFilter();
var m = this.getBBox(),
p = this.getBBox(1),
q = m.x - p.x,
r = m.y - p.y;
j.coordorigin = q * -u + n + r * -u, z(this, 1, 1, q, r, 0)
} else j.style.filter = o, z(this, g.scalex, g.scaley, g.dx, g.dy, g.rotate);
else j.style.filter = o, i.matrix = b(h), i.offset = h.offset();
return null !== c && (this._.transform = c, e._extractTransform(this, c)), this
}, E.rotate = function(a, d, e) {
if (this.removed) return this;
if (null != a) {
if (a = b(a).split(k), a.length - 1 && (d = c(a[1]), e = c(a[2])), a = c(a[0]), null == e && (d = e), null == d || null == e) {
var f = this.getBBox(1);
d = f.x + f.width / 2, e = f.y + f.height / 2
}
return this._.dirtyT = 1, this.transform(this._.transform.concat([
["r", a, d, e]
])), this
}
}, E.translate = function(a, d) {
return this.removed ? this : (a = b(a).split(k), a.length - 1 && (d = c(a[1])), a = c(a[0]) || 0, d = +d || 0, this._.bbox && (this._.bbox.x += a, this._.bbox.y += d), this.transform(this._.transform.concat([
["t", a, d]
])), this)
}, E.scale = function(a, d, e, f) {
if (this.removed) return this;
if (a = b(a).split(k), a.length - 1 && (d = c(a[1]), e = c(a[2]), f = c(a[3]), isNaN(e) && (e = null), isNaN(f) && (f = null)), a = c(a[0]), null == d && (d = a), null == f && (e = f), null == e || null == f) var g = this.getBBox(1);
return e = null == e ? g.x + g.width / 2 : e, f = null == f ? g.y + g.height / 2 : f, this.transform(this._.transform.concat([
["s", a, d, e, f]
])), this._.dirtyT = 1, this
}, E.hide = function() {
return !this.removed && (this.node.style.display = "none"), this
}, E.show = function() {
return !this.removed && (this.node.style.display = o), this
}, E.auxGetBBox = e.el.getBBox, E.getBBox = function() {
var a = this.auxGetBBox();
if (this.paper && this.paper._viewBoxShift) {
var b = {},
c = 1 / this.paper._viewBoxShift.scale;
return b.x = a.x - this.paper._viewBoxShift.dx, b.x *= c, b.y = a.y - this.paper._viewBoxShift.dy, b.y *= c, b.width = a.width * c, b.height = a.height * c, b.x2 = b.x + b.width, b.y2 = b.y + b.height, b
}
return a
}, E._getBBox = function() {
return this.removed ? {} : {
x: this.X + (this.bbx || 0) - this.W / 2,
y: this.Y - this.H,
width: this.W,
height: this.H
}
}, E.remove = function() {
if (!this.removed && this.node.parentNode) {
this.paper.__set__ && this.paper.__set__.exclude(this), e.eve.unbind("raphael.*.*." + this.id), e._tear(this, this.paper), this.node.parentNode.removeChild(this.node), this.shape && this.shape.parentNode.removeChild(this.shape);
for (var a in this) this[a] = "function" == typeof this[a] ? e._removedFactory(a) : null;
this.removed = !0
}
}, E.attr = function(b, c) {
if (this.removed) return this;
if (null == b) {
var d = {};
for (var f in this.attrs) this.attrs[a](f) && (d[f] = this.attrs[f]);
return d.gradient && "none" == d.fill && (d.fill = d.gradient) && delete d.gradient, d.transform = this._.transform, d
}
if (null == c && e.is(b, "string")) {
if (b == j && "none" == this.attrs.fill && this.attrs.gradient) return this.attrs.gradient;
for (var g = b.split(k), h = {}, i = 0, m = g.length; m > i; i++) b = g[i], b in this.attrs ? h[b] = this.attrs[b] : e.is(this.paper.customAttributes[b], "function") ? h[b] = this.paper.customAttributes[b].def : h[b] = e._availableAttrs[b];
return m - 1 ? h : h[g[0]]
}
if (this.attrs && null == c && e.is(b, "array")) {
for (h = {}, i = 0, m = b.length; m > i; i++) h[b[i]] = this.attr(b[i]);
return h
}
var n;
null != c && (n = {}, n[b] = c), null == c && e.is(b, "object") && (n = b);
for (var o in n) l("raphael.attr." + o + "." + this.id, this, n[o]);
if (n) {
for (o in this.paper.customAttributes)
if (this.paper.customAttributes[a](o) && n[a](o) && e.is(this.paper.customAttributes[o], "function")) {
var p = this.paper.customAttributes[o].apply(this, [].concat(n[o]));
this.attrs[o] = n[o];
for (var q in p) p[a](q) && (n[q] = p[q])
}
n.text && "text" == this.type && (this.textpath.string = n.text), B(this, n)
}
return this
}, E.toFront = function() {
return !this.removed && this.node.parentNode.appendChild(this.node), this.paper && this.paper.top != this && e._tofront(this, this.paper), this
}, E.toBack = function() {
return this.removed ? this : (this.node.parentNode.firstChild != this.node && (this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild), e._toback(this, this.paper)), this)
}, E.insertAfter = function(a) {
return this.removed ? this : (a.constructor == e.st.constructor && (a = a[a.length - 1]), a.node.nextSibling ? a.node.parentNode.insertBefore(this.node, a.node.nextSibling) : a.node.parentNode.appendChild(this.node), e._insertafter(this, a, this.paper), this)
}, E.insertBefore = function(a) {
return this.removed ? this : (a.constructor == e.st.constructor && (a = a[0]), a.node.parentNode.insertBefore(this.node, a.node), e._insertbefore(this, a, this.paper), this)
}, E.blur = function(a) {
var b = this.node.runtimeStyle,
c = b.filter;
return c = c.replace(r, o), 0 !== +a ? (this.attrs.blur = a, b.filter = c + n + m + ".Blur(pixelradius=" + (+a || 1.5) + ")", b.margin = e.format("-{0}px 0 0 -{0}px", f(+a || 1.5))) : (b.filter = c, b.margin = 0, delete this.attrs.blur), this
}, e._engine.path = function(a, b) {
var c = F("shape");
c.style.cssText = t, c.coordsize = u + n + u, c.coordorigin = b.coordorigin;
var d = new D(c, b),
e = {
fill: "none",
stroke: "#000"
};
a && (e.path = a), d.type = "path", d.path = [], d.Path = o, B(d, e), b.canvas.appendChild(c);
var f = F("skew");
return f.on = !0, c.appendChild(f), d.skew = f, d.transform(o), d
}, e._engine.rect = function(a, b, c, d, f, g) {
var h = e._rectPath(b, c, d, f, g),
i = a.path(h),
j = i.attrs;
return i.X = j.x = b, i.Y = j.y = c, i.W = j.width = d, i.H = j.height = f, j.r = g, j.path = h, i.type = "rect", i
}, e._engine.ellipse = function(a, b, c, d, e) {
var f = a.path();
f.attrs;
return f.X = b - d, f.Y = c - e, f.W = 2 * d, f.H = 2 * e, f.type = "ellipse", B(f, {
cx: b,
cy: c,
rx: d,
ry: e
}), f
}, e._engine.circle = function(a, b, c, d) {
var e = a.path();
e.attrs;
return e.X = b - d, e.Y = c - d, e.W = e.H = 2 * d, e.type = "circle", B(e, {
cx: b,
cy: c,
r: d
}), e
}, e._engine.image = function(a, b, c, d, f, g) {
var h = e._rectPath(c, d, f, g),
i = a.path(h).attr({
stroke: "none"
}),
k = i.attrs,
l = i.node,
m = l.getElementsByTagName(j)[0];
return k.src = b, i.X = k.x = c, i.Y = k.y = d, i.W = k.width = f, i.H = k.height = g, k.path = h, i.type = "image", m.parentNode == l && l.removeChild(m), m.rotate = !0, m.src = b, m.type = "tile", i._.fillpos = [c, d], i._.fillsize = [f, g], l.appendChild(m), z(i, 1, 1, 0, 0, 0), i
}, e._engine.text = function(a, c, d, g) {
var h = F("shape"),
i = F("path"),
j = F("textpath");
c = c || 0, d = d || 0, g = g || "", i.v = e.format("m{0},{1}l{2},{1}", f(c * u), f(d * u), f(c * u) + 1), i.textpathok = !0, j.string = b(g), j.on = !0, h.style.cssText = t, h.coordsize = u + n + u, h.coordorigin = "0 0";
var k = new D(h, a),
l = {
fill: "#000",
stroke: "none",
font: e._availableAttrs.font,
text: g
};
k.shape = h, k.path = i, k.textpath = j, k.type = "text", k.attrs.text = b(g), k.attrs.x = c, k.attrs.y = d, k.attrs.w = 1, k.attrs.h = 1, B(k, l), h.appendChild(j), h.appendChild(i), a.canvas.appendChild(h);
var m = F("skew");
return m.on = !0, h.appendChild(m), k.skew = m, k.transform(o), k
}, e._engine.setSize = function(a, b) {
var c = this.canvas.style;
return this.width = a, this.height = b, a == +a && (a += "px"), b == +b && (b += "px"), c.width = a, c.height = b, c.clip = "rect(0 " + a + " " + b + " 0)", this._viewBox && e._engine.setViewBox.apply(this, this._viewBox), this
}, e._engine.setViewBox = function(a, b, c, d, f) {
e.eve("raphael.setViewBox", this, this._viewBox, [a, b, c, d, f]);
var g, h, i = this.getSize(),
j = i.width,
k = i.height;
return f && (g = k / d, h = j / c, j > c * g && (a -= (j - c * g) / 2 / g), k > d * h && (b -= (k - d * h) / 2 / h)), this._viewBox = [a, b, c, d, !!f], this._viewBoxShift = {
dx: -a,
dy: -b,
scale: i
}, this.forEach(function(a) {
a.transform("...")
}), this
};
var F;
e._engine.initWin = function(a) {
var b = a.document;
b.styleSheets.length < 31 ? b.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)") : b.styleSheets[0].addRule(".rvml", "behavior:url(#default#VML)");
try {
!b.namespaces.rvml && b.namespaces.add("rvml", "urn:schemas-microsoft-com:vml"), F = function(a) {
return b.createElement("<rvml:" + a + ' class="rvml">')
}
} catch (c) {
F = function(a) {
return b.createElement("<" + a + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')
}
}
}, e._engine.initWin(e._g.win), e._engine.create = function() {
var a = e._getContainer.apply(0, arguments),
b = a.container,
c = a.height,
d = a.width,
f = a.x,
g = a.y;
if (!b) throw new Error("VML container not found.");
var h = new e._Paper,
i = h.canvas = e._g.doc.createElement("div"),
j = i.style;
return f = f || 0, g = g || 0, d = d || 512, c = c || 342, h.width = d, h.height = c, d == +d && (d += "px"), c == +c && (c += "px"), h.coordsize = 1e3 * u + n + 1e3 * u, h.coordorigin = "0 0", h.span = e._g.doc.createElement("span"), h.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;", i.appendChild(h.span), j.cssText = e.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden", d, c), 1 == b ? (e._g.doc.body.appendChild(i), j.left = f + "px", j.top = g + "px", j.position = "absolute") : b.firstChild ? b.insertBefore(i, b.firstChild) : b.appendChild(i), h.renderfix = function() {}, h
}, e.prototype.clear = function() {
e.eve("raphael.clear", this), this.canvas.innerHTML = o, this.span = e._g.doc.createElement("span"), this.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;", this.canvas.appendChild(this.span), this.bottom = this.top = null
}, e.prototype.remove = function() {
e.eve("raphael.remove", this), this.canvas.parentNode.removeChild(this.canvas);
for (var a in this) this[a] = "function" == typeof this[a] ? e._removedFactory(a) : null;
return !0
};
var G = e.st;
for (var H in E) E[a](H) && !G[a](H) && (G[H] = function(a) {
return function() {
var b = arguments;
return this.forEach(function(c) {
c[a].apply(c, b)
})
}
}(H))
}
}(), D.was ? C.win.Raphael = e : Raphael = e, "object" == typeof c && (b.exports = e), e
})
}, {
eve: 68
}
],
70: [
function(a, b, c) {
var d = a("promise"),
e = a("jquery"),
f = a("underscore"),
g = function(a, b) {
var c = new XMLHttpRequest;
return b = b || {}, b.method = b.method || "GET", b.headers = b.headers || {}, b.async = "undefined" == typeof b.async ? !0 : b.async, new d(function(d, e) {
c.open(b.method, a);
for (var f in b.headers) b.headers.hasOwnProperty(f) && c.setRequestHeader(f, b.headers[f]);
c.onreadystatechange = function() {
4 == this.readyState && 200 == this.status ? d.call(this, this.responseText) : 4 == this.readyState && e.call(this, this.status, this.statusText)
}, c.send(b.data)
})
},
h = function() {
this.initialize()
};
h.prototype = {
initialize: function() {
this._head = document.getElementsByTagName("head")[0], this._cssPaths = {}, this._scriptMaps = {}, this._dataPromises = {}
},
loadScript: function(a) {
var b, c, e = [];
return a = this._ensurePathArray(a), a.forEach(function(a) {
c = this._scriptMaps[a] = this._scriptMaps[a] || {}, c.promise || (c.path = a, c.promise = new d(function(c) {
b = this.createScriptElement(), b.setAttribute("type", "text/javascript"), b.src = a, b.addEventListener("load", c), this._head.appendChild(b)
}.bind(this))), e.push(c.promise)
}.bind(this)), d.all(e)
},
unloadScript: function(a) {
var b;
return new d(function(c) {
a = this._ensurePathArray(a), a.forEach(function(a) {
b = this._head.querySelectorAll('script[src="' + a + '"]')[0], b && (this._head.removeChild(b), delete this._scriptMaps[a])
}.bind(this)), c()
}.bind(this))
},
createScriptElement: function() {
return document.createElement("script")
},
fetchData: function(a, b) {
var c = b ? JSON.stringify(b) : "",
f = a + c;
return b = b || {}, a ? this._dataPromises[f] ? this._dataPromises[f] : (this._dataPromises[f] = new d(function(c, d) {
e.ajax(a, b).done(c).fail(function(a, b, c) {
d(c)
})
}.bind(this)), this._dataPromises[f]["catch"](function(a) {
throw this._dataPromises[f] = null, a
}.bind(this))) : d.resolve()
},
loadCss: function(a) {
return new d(function(b) {
a = this._ensurePathArray(a), a.forEach(function(a) {
if (!this._cssPaths[a]) {
var b = document.createElement("link");
b.setAttribute("rel", "stylesheet"), b.setAttribute("href", a), this._head.appendChild(b), this._cssPaths[a] = b
}
}.bind(this)), b()
}.bind(this))
},
unloadCss: function(a) {
var b;
return new d(function(c) {
a = this._ensurePathArray(a), a.forEach(function(a) {
b = this._cssPaths[a], b && (this._head.removeChild(b), this._cssPaths[a] = null)
}.bind(this)), c()
}.bind(this))
},
loadTemplate: function(a, b) {
return new d(function(c) {
return a ? g(a).then(function(a) {
b && (b.innerHTML = a, a = b), c(a)
}) : void c()
})
},
_ensurePathArray: function(a) {
return a ? "string" == typeof a && (a = [a]) : a = [], a
},
flush: function() {
this.unloadCss(Object.getOwnPropertyNames(this._cssPaths)), this._cssPaths = {}, f.each(this._scriptMaps, function(a) {
this.unloadScript(a.path)
}.bind(this)), this._scriptMaps = {}, this._dataPromises = {}, this._loadScriptPromise = null
}
}, b.exports = new h
}, {
jquery: 53,
promise: 57,
underscore: 73
}
],
71: [
function(a, b, c) {
"use strict";
var d = a("module.js"),
e = a("promise"),
f = a("underscore");
a("element-kit");
var g = d.extend({
initialize: function(a) {
this.options = f.extend({}, {
pagesContainer: null,
activeClass: "page-active",
loadedClass: "page-loaded",
disabledClass: "page-disabled",
errorClass: "page-error"
}, a), d.prototype.initialize.call(this, this.options)
},
load: function(a) {
return a = a || {}, a.el ? this.el = a.el : this.el = document.createElement("div"), this.el.classList.add("page"), d.prototype.load.call(this, a)
},
show: function() {
return d.prototype.show.call(this).then(function() {
return new e(function(a) {
this.el.kit.waitForTransition(function() {
a()
})
}.bind(this))
}.bind(this))
},
hide: function() {
return d.prototype.hide.call(this).then(function() {
return new e(function(a) {
this.el.kit.waitForTransition(function() {
a()
})
}.bind(this))
}.bind(this))
}
});
b.exports = g
}, {
"element-kit": 8,
"module.js": 55,
promise: 57,
underscore: 73
}
],
72: [
function(a, b, c) {
"use strict";
var d = a("promise"),
e = (a("path"), a("event-handler")),
f = a("handlebars"),
g = a("handlebars-helper-slugify"),
h = a("underscore"),
i = a("./page"),
j = a("module.js"),
k = a("element-kit"),
l = function(a) {
return this.initialize(a), this
};
l.prototype = {
initialize: function(a) {
this.options = h.extend({
onRouteRequest: null,
pagesContainer: document.body
}, a), e.createTarget(this), this._pageMaps = {}, this._globalModuleMaps = {}, this.history = [], f.registerHelper("slugify", g)
},
start: function() {
this._config = this.options.config, this._config || console.error("Route Error: no configuration data was supplied."), this._config.pages = this._config.pages || {}, this._config.modules = this._config.modules || {}, this._globalModuleMaps = this._buildGlobalModuleMaps(), this.bindPopstateEvent()
},
bindPopstateEvent: function() {
window.addEventListener("popstate", this._getOnPopStateListener())
},
unbindPopstateEvent: function() {
window.removeEventListener("popstate", this._getOnPopStateListener())
},
_getOnPopStateListener: function() {
var a = this;
return function(b) {
b.state && a._onRouteRequest.call(a, b.state.path)
}
},
reset: function() {
this.history = [], h.each(this._pageMaps, function(a) {
a.page.destroy(), this.options.pagesContainer.contains(a.el) && this.options.pagesContainer.removeChild(a.el), h.each(a.modules, function(a) {
a.module.destroy()
})
}.bind(this)), this._pageMaps = {}, h.each(this._globalModuleMaps, function(a) {
a.module && a.module.hide().then(function() {
a.module.destroy()
})
}), this._globalModuleMaps = this._buildGlobalModuleMaps()
},
stop: function() {
this.reset(), this._config.pages = {}, this._config.modules = {}, this.unbindPopstateEvent(), e.destroyTarget(this)
},
triggerRoute: function(a, b) {
return a !== this._currentPath ? this._onRouteRequest(a) : d.resolve()
},
getQueryParams: function(a) {
var a = a || this.getWindow().location.href,
b = {};
return a.split("?")[1].split("&").forEach(function(a) {
var c = a.split("=");
b[c[0]] = c[1]
}), b
},
goBack: function(a) {
a ? window.history.go(a) : window.history.back()
},
goForward: function(a) {
a ? window.history.go(a) : window.history.forward()
},
getRelativeUrlParams: function() {
return this.getRelativeUrl().split("/") || []
},
getRelativeUrl: function() {
var a = this._currentPath || this.getWindow().location.hash.replace("#", "");
return a = a.replace(/^\//g, "")
},
_onRouteRequest: function(a) {
return a !== this._currentPath ? this._handleRequestedUrl(a).then(function(a) {
return this._handlePreviousPage().then(function() {
return this.loadPage(a).then(function() {
return this.dispatchEvent("page:load"), this.showPage(a)
}.bind(this), function(a) {
console.log("RouteManager Error: Page could not be loaded"), a.detail ? console.log(a.detail.stack) : console.log(arguments), this.dispatchEvent("page:error", a)
}.bind(this))
}.bind(this))
}.bind(this)) : d.resolve()
},
registerUrl: function(a) {
var b = this.getWindow().history;
b.pushState({
path: a
}, document.title, a), this.history.push(b.state), this._currentPath = a, this.dispatchEvent("url:change", {
url: a
})
},
getWindow: function() {
return window
},
_handleRequestedUrl: function(a) {
var b = this.options.onRouteRequest ? this.options.onRouteRequest(a) : d.resolve(a);
return this.registerUrl(a), b.then || (b = d.resolve(b)), b.then(function(b) {
return b !== a && this.registerUrl(b), b
}.bind(this))
},
_getRouteMapKeyByPath: function(a) {
var b;
return a || "string" == typeof a ? (a = a.replace(/^\//g, ""), h.findKey(this._config.pages, function(c, d) {
return b = new RegExp(d, "gi"), d === a || a.match(b)
})) : null
},
loadPageScript: function(a) {
var b = {
pagesContainer: this.options.pagesContainer
};
return a ? this.loadScript(a).then(null, function() {
return d.resolve(new i(b))
}) : d.resolve(new i(b))
},
loadPage: function(a) {
var b, c = this._getRouteMapKeyByPath(a),
e = this._config.pages[c],
g = {};
return e ? this._pageMaps[c] ? this._pageMaps[c].promise : (this._pageMaps[c] = g, g.config = e, g.promise = this.loadGlobalModules(a).then(function() {
return this.loadPageScript(e.script).then(function(b) {
return g.page = b, b.getStyles(e.styles).then(function() {
return b.getTemplate(e.template).then(function(c) {
return b.fetchData(e.data, {
cache: !0
}).then(function(d) {
return c = c || "", d && (c = f.compile(c)(d)), g.data = d, g.el = k.utils.createHtmlElement("<div>" + c + "</div>"), this.options.pagesContainer.appendChild(g.el), this.loadPageModules(a).then(function() {
return b.load({
data: d,
el: g.el
})
})
}.bind(this))
}.bind(this))
}.bind(this))
}.bind(this))
}.bind(this), function() {
delete this._pageMaps[c]
}.bind(this)), g.promise) : (b = new Error("RouteManager Error: No routes configuration for " + this.getRelativeUrl()), console.error(b), d.reject(b))
},
showPageModules: function(a) {
var b = this._getRouteMapKeyByPath(a),
c = this._pageMaps[b];
return h.each(c.modules, function(a) {
a.module.show()
}), this.showGlobalModules(a)
},
showGlobalModules: function(a) {
var b = this._getRouteMapKeyByPath(a),
c = this._config.pages[b] || {},
e = [];
return c.modules = c.modules || [], h.each(this._globalModuleMaps, function(a, b) {
-1 !== c.modules.indexOf(b) && e.push(this._currentPreviousPageHidePromise.then(function() {
return a.module.show()
}))
}.bind(this)), d.all(e)
},
showPage: function(a) {
var b = this._getRouteMapKeyByPath(a),
c = this._pageMaps[b];
return this.showPageModules(a), c.page.show()
},
_handlePreviousPage: function() {
var a = this.history[this.history.length - 2] || {};
return this._currentPreviousPageHidePromise = this.hidePage(a.path), this._currentPreviousPageHidePromise
},
hideGlobalModules: function(a) {
var b = this._getRouteMapKeyByPath(a),
c = this._config.pages[b] || {},
e = [];
return c.modules = c.modules || [], h.each(this._globalModuleMaps, function(a, b) {
-1 !== c.modules.indexOf(b) && e.push(a.promise.then(function() {
return a.module.hide()
}))
}.bind(this)), d.all(e)
},
hidePage: function(a) {
var b = this._pageMaps[this._getRouteMapKeyByPath(a)];
return b && b.promise ? b.promise.then(function() {
return b.page.hide().then(function() {
return this.hidePageModules(a).then(function() {
return this.hideGlobalModules(a)
}.bind(this))
}.bind(this))
}.bind(this))["catch"](function() {
return d.resolve()
}) : d.resolve()
},
hidePageModules: function(a) {
var b = this._pageMaps[this._getRouteMapKeyByPath(a)],
c = [];
return h.each(b.modules, function(a) {
c.push(a.module.hide())
}.bind(this)), d.all(c)
},
loadPageModules: function(a) {
var b, c, e = this._getRouteMapKeyByPath(a),
f = this._config.pages[e] || {},
g = this._pageMaps[e] || {},
i = [],
j = [],
k = [];
return f.modules = f.modules || [], g.modules = g.modules || {}, f.modules.forEach(function(a) {
this._globalModuleMaps[a] ? k.push(a) : (j.push(a), b = this.loadPageModule(a, g.data).then(function(b) {
g.modules[a] = b
})), i.push(b)
}.bind(this)), d.all(i).then(function() {
var a = document.createDocumentFragment();
return h.each(j, function(b) {
c = g.modules[b], c.el && (c.module.appendEl ? c.module.appendEl(c.el) : a.appendChild(c.el))
}), g.el ? void g.el.appendChild(a) : !1
})
},
loadGlobalModules: function(a) {
var b = this._getRouteMapKeyByPath(a),
c = this._config.pages[b] || {},
e = [];
return c.modules = c.modules || [], h.each(this._globalModuleMaps, function(a, b) {
-1 !== c.modules.indexOf(b) && e.push(this._loadGlobalModule(a))
}.bind(this)), d.all(e)
},
loadPageModule: function(a, b) {
var c = this._config.modules[a],
d = {};
return c.options = c.options || {}, d = {}, d.promise = this.loadModuleScript(c.script, c.options).then(function(a) {
return d.module = a, a.getStyles(c.styles).then(function() {
return a.getTemplate(c.template).then(function(e) {
return a.fetchData(c.data, {
cache: !0
}).then(function(c) {
c = h.extend({}, b, c), e = e ? f.compile(e)(c) : "";
var g = document.createElement("div");
return g.innerHTML = e, d.el = g.children[0], d.html = e, a.load({
el: d.el,
data: c
}).then(function() {
return d
})
}.bind(this))
}.bind(this))
}.bind(this), function(a) {
return d.module.error(a), d
})
}.bind(this)), d.promise
},
_loadGlobalModule: function(a) {
return a = a || {}, a.promise || (a.promise = this.loadModuleScript(a.config.script).then(function(b) {
return b.getStyles(a.config.styles).then(function() {
return b.getTemplate(a.config.template).then(function(c) {
return b.fetchData(a.config.data, {
cache: !0
}).then(function(d) {
c = c ? f.compile(c)(d || {}) : "";
var e = document.createElement("div");
return e.innerHTML = c, a.el = e.children[0], a.module = b, b.load({
data: d,
el: a.el
})["catch"](function(b) {
throw a.module.error(b), b
})
}.bind(this))
}.bind(this))
}.bind(this))
}.bind(this))), a.promise
},
_buildGlobalModuleMaps: function() {
var a = {};
return h.each(this._config.modules, function(b, c) {
b.global && (a[c] = {
config: b
})
}), a
},
loadScript: function(b, c) {
var e;
return new d(function(d, f) {
if (!b) return f();
try {
e = a(b)
} catch (g) {
console.error(g), f(g)
}
c = c || {}, "function" == typeof e && (e = new e(c)), d(e)
}.bind(this))
},
loadModuleScript: function(a, b) {
return this.loadScript(a, b).then(null, function() {
return d.resolve(new j(b))
})
}
}, b.exports = function(a) {
return new l(a)
}
}, {
"./page": 71,
"element-kit": 8,
"event-handler": 15,
handlebars: 41,
"handlebars-helper-slugify": 21,
"module.js": 55,
path: 19,
promise: 57,
underscore: 73
}
],
73: [
function(a, b, c) {
(function() {
function a(a) {
function b(b, c, d, e, f, g) {
for (; f >= 0 && g > f; f += a) {
var h = e ? e[f] : f;
d = c(d, b[h], h, b)
}
return d
}
return function(c, d, e, f) {
d = v(d, f, 4);
var g = !C(c) && u.keys(c),
h = (g || c).length,
i = a > 0 ? 0 : h - 1;
return arguments.length < 3 && (e = c[g ? g[i] : i], i += a), b(c, d, e, g, i, h)
}
}
function d(a) {
return function(b, c, d) {
c = w(c, d);
for (var e = B(b), f = a > 0 ? 0 : e - 1; f >= 0 && e > f; f += a)
if (c(b[f], f, b)) return f;
return -1
}
}
function e(a, b, c) {
return function(d, e, f) {
var g = 0,
h = B(d);
if ("number" == typeof f) a > 0 ? g = f >= 0 ? f : Math.max(f + h, g) : h = f >= 0 ? Math.min(f + 1, h) : f + h + 1;
else if (c && f && h) return f = c(d, e), d[f] === e ? f : -1;
if (e !== e) return f = b(m.call(d, g, h), u.isNaN), f >= 0 ? f + g : -1;
for (f = a > 0 ? g : h - 1; f >= 0 && h > f; f += a)
if (d[f] === e) return f;
return -1
}
}
function f(a, b) {
var c = H.length,
d = a.constructor,
e = u.isFunction(d) && d.prototype || j,
f = "constructor";
for (u.has(a, f) && !u.contains(b, f) && b.push(f); c--;) f = H[c], f in a && a[f] !== e[f] && !u.contains(b, f) && b.push(f)
}
var g = this,
h = g._,
i = Array.prototype,
j = Object.prototype,
k = Function.prototype,
l = i.push,
m = i.slice,
n = j.toString,
o = j.hasOwnProperty,
p = Array.isArray,
q = Object.keys,
r = k.bind,
s = Object.create,
t = function() {},
u = function(a) {
return a instanceof u ? a : this instanceof u ? void(this._wrapped = a) : new u(a)
};
"undefined" != typeof c ? ("undefined" != typeof b && b.exports && (c = b.exports = u), c._ = u) : g._ = u, u.VERSION = "1.8.3";
var v = function(a, b, c) {
if (void 0 === b) return a;
switch (null == c ? 3 : c) {
case 1:
return function(c) {
return a.call(b, c)
};
case 2:
return function(c, d) {
return a.call(b, c, d)
};
case 3:
return function(c, d, e) {
return a.call(b, c, d, e)
};
case 4:
return function(c, d, e, f) {
return a.call(b, c, d, e, f)
}
}
return function() {
return a.apply(b, arguments)
}
},
w = function(a, b, c) {
return null == a ? u.identity : u.isFunction(a) ? v(a, b, c) : u.isObject(a) ? u.matcher(a) : u.property(a)
};
u.iteratee = function(a, b) {
return w(a, b, 1 / 0)
};
var x = function(a, b) {
return function(c) {
var d = arguments.length;
if (2 > d || null == c) return c;
for (var e = 1; d > e; e++)
for (var f = arguments[e], g = a(f), h = g.length, i = 0; h > i; i++) {
var j = g[i];
b && void 0 !== c[j] || (c[j] = f[j])
}
return c
}
},
y = function(a) {
if (!u.isObject(a)) return {};
if (s) return s(a);
t.prototype = a;
var b = new t;
return t.prototype = null, b
},
z = function(a) {
return function(b) {
return null == b ? void 0 : b[a]
}
},
A = Math.pow(2, 53) - 1,
B = z("length"),
C = function(a) {
var b = B(a);
return "number" == typeof b && b >= 0 && A >= b
};
u.each = u.forEach = function(a, b, c) {
b = v(b, c);
var d, e;
if (C(a))
for (d = 0, e = a.length; e > d; d++) b(a[d], d, a);
else {
var f = u.keys(a);
for (d = 0, e = f.length; e > d; d++) b(a[f[d]], f[d], a)
}
return a
}, u.map = u.collect = function(a, b, c) {
b = w(b, c);
for (var d = !C(a) && u.keys(a), e = (d || a).length, f = Array(e), g = 0; e > g; g++) {
var h = d ? d[g] : g;
f[g] = b(a[h], h, a)
}
return f
}, u.reduce = u.foldl = u.inject = a(1), u.reduceRight = u.foldr = a(-1), u.find = u.detect = function(a, b, c) {
var d;
return d = C(a) ? u.findIndex(a, b, c) : u.findKey(a, b, c), void 0 !== d && -1 !== d ? a[d] : void 0
}, u.filter = u.select = function(a, b, c) {
var d = [];
return b = w(b, c), u.each(a, function(a, c, e) {
b(a, c, e) && d.push(a)
}), d
}, u.reject = function(a, b, c) {
return u.filter(a, u.negate(w(b)), c)
}, u.every = u.all = function(a, b, c) {
b = w(b, c);
for (var d = !C(a) && u.keys(a), e = (d || a).length, f = 0; e > f; f++) {
var g = d ? d[f] : f;
if (!b(a[g], g, a)) return !1
}
return !0
}, u.some = u.any = function(a, b, c) {
b = w(b, c);
for (var d = !C(a) && u.keys(a), e = (d || a).length, f = 0; e > f; f++) {
var g = d ? d[f] : f;
if (b(a[g], g, a)) return !0
}
return !1
}, u.contains = u.includes = u.include = function(a, b, c, d) {
return C(a) || (a = u.values(a)), ("number" != typeof c || d) && (c = 0), u.indexOf(a, b, c) >= 0
}, u.invoke = function(a, b) {
var c = m.call(arguments, 2),
d = u.isFunction(b);
return u.map(a, function(a) {
var e = d ? b : a[b];
return null == e ? e : e.apply(a, c)
})
}, u.pluck = function(a, b) {
return u.map(a, u.property(b))
}, u.where = function(a, b) {
return u.filter(a, u.matcher(b))
}, u.findWhere = function(a, b) {
return u.find(a, u.matcher(b))
}, u.max = function(a, b, c) {
var d, e, f = -(1 / 0),
g = -(1 / 0);
if (null == b && null != a) {
a = C(a) ? a : u.values(a);
for (var h = 0, i = a.length; i > h; h++) d = a[h], d > f && (f = d)
} else b = w(b, c), u.each(a, function(a, c, d) {
e = b(a, c, d), (e > g || e === -(1 / 0) && f === -(1 / 0)) && (f = a, g = e)
});
return f
}, u.min = function(a, b, c) {
var d, e, f = 1 / 0,
g = 1 / 0;
if (null == b && null != a) {
a = C(a) ? a : u.values(a);
for (var h = 0, i = a.length; i > h; h++) d = a[h], f > d && (f = d)
} else b = w(b, c), u.each(a, function(a, c, d) {
e = b(a, c, d), (g > e || e === 1 / 0 && f === 1 / 0) && (f = a, g = e)
});
return f
}, u.shuffle = function(a) {
for (var b, c = C(a) ? a : u.values(a), d = c.length, e = Array(d), f = 0; d > f; f++) b = u.random(0, f), b !== f && (e[f] = e[b]), e[b] = c[f];
return e
}, u.sample = function(a, b, c) {
return null == b || c ? (C(a) || (a = u.values(a)), a[u.random(a.length - 1)]) : u.shuffle(a).slice(0, Math.max(0, b))
}, u.sortBy = function(a, b, c) {
return b = w(b, c), u.pluck(u.map(a, function(a, c, d) {
return {
value: a,
index: c,
criteria: b(a, c, d)
}
}).sort(function(a, b) {
var c = a.criteria,
d = b.criteria;
if (c !== d) {
if (c > d || void 0 === c) return 1;
if (d > c || void 0 === d) return -1
}
return a.index - b.index
}), "value")
};
var D = function(a) {
return function(b, c, d) {
var e = {};
return c = w(c, d), u.each(b, function(d, f) {
var g = c(d, f, b);
a(e, d, g)
}), e
}
};
u.groupBy = D(function(a, b, c) {
u.has(a, c) ? a[c].push(b) : a[c] = [b]
}), u.indexBy = D(function(a, b, c) {
a[c] = b
}), u.countBy = D(function(a, b, c) {
u.has(a, c) ? a[c]++ : a[c] = 1
}), u.toArray = function(a) {
return a ? u.isArray(a) ? m.call(a) : C(a) ? u.map(a, u.identity) : u.values(a) : []
}, u.size = function(a) {
return null == a ? 0 : C(a) ? a.length : u.keys(a).length
}, u.partition = function(a, b, c) {
b = w(b, c);
var d = [],
e = [];
return u.each(a, function(a, c, f) {
(b(a, c, f) ? d : e).push(a)
}), [d, e]
}, u.first = u.head = u.take = function(a, b, c) {
return null == a ? void 0 : null == b || c ? a[0] : u.initial(a, a.length - b)
}, u.initial = function(a, b, c) {
return m.call(a, 0, Math.max(0, a.length - (null == b || c ? 1 : b)))
}, u.last = function(a, b, c) {
return null == a ? void 0 : null == b || c ? a[a.length - 1] : u.rest(a, Math.max(0, a.length - b))
}, u.rest = u.tail = u.drop = function(a, b, c) {
return m.call(a, null == b || c ? 1 : b)
}, u.compact = function(a) {
return u.filter(a, u.identity)
};
var E = function(a, b, c, d) {
for (var e = [], f = 0, g = d || 0, h = B(a); h > g; g++) {
var i = a[g];
if (C(i) && (u.isArray(i) || u.isArguments(i))) {
b || (i = E(i, b, c));
var j = 0,
k = i.length;
for (e.length += k; k > j;) e[f++] = i[j++]
} else c || (e[f++] = i)
}
return e
};
u.flatten = function(a, b) {
return E(a, b, !1)
}, u.without = function(a) {
return u.difference(a, m.call(arguments, 1))
}, u.uniq = u.unique = function(a, b, c, d) {
u.isBoolean(b) || (d = c, c = b, b = !1), null != c && (c = w(c, d));
for (var e = [], f = [], g = 0, h = B(a); h > g; g++) {
var i = a[g],
j = c ? c(i, g, a) : i;
b ? (g && f === j || e.push(i), f = j) : c ? u.contains(f, j) || (f.push(j), e.push(i)) : u.contains(e, i) || e.push(i)
}
return e
}, u.union = function() {
return u.uniq(E(arguments, !0, !0))
}, u.intersection = function(a) {
for (var b = [], c = arguments.length, d = 0, e = B(a); e > d; d++) {
var f = a[d];
if (!u.contains(b, f)) {
for (var g = 1; c > g && u.contains(arguments[g], f); g++);
g === c && b.push(f)
}
}
return b
}, u.difference = function(a) {
var b = E(arguments, !0, !0, 1);
return u.filter(a, function(a) {
return !u.contains(b, a)
})
}, u.zip = function() {
return u.unzip(arguments)
}, u.unzip = function(a) {
for (var b = a && u.max(a, B).length || 0, c = Array(b), d = 0; b > d; d++) c[d] = u.pluck(a, d);
return c
}, u.object = function(a, b) {
for (var c = {}, d = 0, e = B(a); e > d; d++) b ? c[a[d]] = b[d] : c[a[d][0]] = a[d][1];
return c
}, u.findIndex = d(1), u.findLastIndex = d(-1), u.sortedIndex = function(a, b, c, d) {
c = w(c, d, 1);
for (var e = c(b), f = 0, g = B(a); g > f;) {
var h = Math.floor((f + g) / 2);
c(a[h]) < e ? f = h + 1 : g = h
}
return f
}, u.indexOf = e(1, u.findIndex, u.sortedIndex), u.lastIndexOf = e(-1, u.findLastIndex), u.range = function(a, b, c) {
null == b && (b = a || 0, a = 0), c = c || 1;
for (var d = Math.max(Math.ceil((b - a) / c), 0), e = Array(d), f = 0; d > f; f++, a += c) e[f] = a;
return e
};
var F = function(a, b, c, d, e) {
if (!(d instanceof b)) return a.apply(c, e);
var f = y(a.prototype),
g = a.apply(f, e);
return u.isObject(g) ? g : f
};
u.bind = function(a, b) {
if (r && a.bind === r) return r.apply(a, m.call(arguments, 1));
if (!u.isFunction(a)) throw new TypeError("Bind must be called on a function");
var c = m.call(arguments, 2),
d = function() {
return F(a, d, b, this, c.concat(m.call(arguments)))
};
return d
}, u.partial = function(a) {
var b = m.call(arguments, 1),
c = function() {
for (var d = 0, e = b.length, f = Array(e), g = 0; e > g; g++) f[g] = b[g] === u ? arguments[d++] : b[g];
for (; d < arguments.length;) f.push(arguments[d++]);
return F(a, c, this, this, f)
};
return c
}, u.bindAll = function(a) {
var b, c, d = arguments.length;
if (1 >= d) throw new Error("bindAll must be passed function names");
for (b = 1; d > b; b++) c = arguments[b], a[c] = u.bind(a[c], a);
return a
}, u.memoize = function(a, b) {
var c = function(d) {
var e = c.cache,
f = "" + (b ? b.apply(this, arguments) : d);
return u.has(e, f) || (e[f] = a.apply(this, arguments)), e[f]
};
return c.cache = {}, c
}, u.delay = function(a, b) {
var c = m.call(arguments, 2);
return setTimeout(function() {
return a.apply(null, c)
}, b)
}, u.defer = u.partial(u.delay, u, 1), u.throttle = function(a, b, c) {
var d, e, f, g = null,
h = 0;
c || (c = {});
var i = function() {
h = c.leading === !1 ? 0 : u.now(), g = null, f = a.apply(d, e), g || (d = e = null)
};
return function() {
var j = u.now();
h || c.leading !== !1 || (h = j);
var k = b - (j - h);
return d = this, e = arguments, 0 >= k || k > b ? (g && (clearTimeout(g), g = null), h = j, f = a.apply(d, e), g || (d = e = null)) : g || c.trailing === !1 || (g = setTimeout(i, k)), f
}
}, u.debounce = function(a, b, c) {
var d, e, f, g, h, i = function() {
var j = u.now() - g;
b > j && j >= 0 ? d = setTimeout(i, b - j) : (d = null, c || (h = a.apply(f, e), d || (f = e = null)))
};
return function() {
f = this, e = arguments, g = u.now();
var j = c && !d;
return d || (d = setTimeout(i, b)), j && (h = a.apply(f, e), f = e = null), h
}
}, u.wrap = function(a, b) {
return u.partial(b, a)
}, u.negate = function(a) {
return function() {
return !a.apply(this, arguments)
}
}, u.compose = function() {
var a = arguments,
b = a.length - 1;
return function() {
for (var c = b, d = a[b].apply(this, arguments); c--;) d = a[c].call(this, d);
return d
}
}, u.after = function(a, b) {
return function() {
return --a < 1 ? b.apply(this, arguments) : void 0
}
}, u.before = function(a, b) {
var c;
return function() {
return --a > 0 && (c = b.apply(this, arguments)), 1 >= a && (b = null), c
}
}, u.once = u.partial(u.before, 2);
var G = !{
toString: null
}.propertyIsEnumerable("toString"),
H = ["valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"];
u.keys = function(a) {
if (!u.isObject(a)) return [];
if (q) return q(a);
var b = [];
for (var c in a) u.has(a, c) && b.push(c);
return G && f(a, b), b
}, u.allKeys = function(a) {
if (!u.isObject(a)) return [];
var b = [];
for (var c in a) b.push(c);
return G && f(a, b), b
}, u.values = function(a) {
for (var b = u.keys(a), c = b.length, d = Array(c), e = 0; c > e; e++) d[e] = a[b[e]];
return d
}, u.mapObject = function(a, b, c) {
b = w(b, c);
for (var d, e = u.keys(a), f = e.length, g = {}, h = 0; f > h; h++) d = e[h], g[d] = b(a[d], d, a);
return g
}, u.pairs = function(a) {
for (var b = u.keys(a), c = b.length, d = Array(c), e = 0; c > e; e++) d[e] = [b[e], a[b[e]]];
return d
}, u.invert = function(a) {
for (var b = {}, c = u.keys(a), d = 0, e = c.length; e > d; d++) b[a[c[d]]] = c[d];
return b
}, u.functions = u.methods = function(a) {
var b = [];
for (var c in a) u.isFunction(a[c]) && b.push(c);
return b.sort()
}, u.extend = x(u.allKeys), u.extendOwn = u.assign = x(u.keys), u.findKey = function(a, b, c) {
b = w(b, c);
for (var d, e = u.keys(a), f = 0, g = e.length; g > f; f++)
if (d = e[f], b(a[d], d, a)) return d
}, u.pick = function(a, b, c) {
var d, e, f = {},
g = a;
if (null == g) return f;
u.isFunction(b) ? (e = u.allKeys(g), d = v(b, c)) : (e = E(arguments, !1, !1, 1), d = function(a, b, c) {
return b in c
}, g = Object(g));
for (var h = 0, i = e.length; i > h; h++) {
var j = e[h],
k = g[j];
d(k, j, g) && (f[j] = k)
}
return f
}, u.omit = function(a, b, c) {
if (u.isFunction(b)) b = u.negate(b);
else {
var d = u.map(E(arguments, !1, !1, 1), String);
b = function(a, b) {
return !u.contains(d, b)
}
}
return u.pick(a, b, c)
}, u.defaults = x(u.allKeys, !0), u.create = function(a, b) {
var c = y(a);
return b && u.extendOwn(c, b), c
}, u.clone = function(a) {
return u.isObject(a) ? u.isArray(a) ? a.slice() : u.extend({}, a) : a
}, u.tap = function(a, b) {
return b(a), a
}, u.isMatch = function(a, b) {
var c = u.keys(b),
d = c.length;
if (null == a) return !d;
for (var e = Object(a), f = 0; d > f; f++) {
var g = c[f];
if (b[g] !== e[g] || !(g in e)) return !1
}
return !0
};
var I = function(a, b, c, d) {
if (a === b) return 0 !== a || 1 / a === 1 / b;
if (null == a || null == b) return a === b;
a instanceof u && (a = a._wrapped), b instanceof u && (b = b._wrapped);
var e = n.call(a);
if (e !== n.call(b)) return !1;
switch (e) {
case "[object RegExp]":
case "[object String]":
return "" + a == "" + b;
case "[object Number]":
return +a !== +a ? +b !== +b : 0 === +a ? 1 / +a === 1 / b : +a === +b;
case "[object Date]":
case "[object Boolean]":
return +a === +b
}
var f = "[object Array]" === e;
if (!f) {
if ("object" != typeof a || "object" != typeof b) return !1;
var g = a.constructor,
h = b.constructor;
if (g !== h && !(u.isFunction(g) && g instanceof g && u.isFunction(h) && h instanceof h) && "constructor" in a && "constructor" in b) return !1
}
c = c || [], d = d || [];
for (var i = c.length; i--;)
if (c[i] === a) return d[i] === b;
if (c.push(a), d.push(b), f) {
if (i = a.length, i !== b.length) return !1;
for (; i--;)
if (!I(a[i], b[i], c, d)) return !1
} else {
var j, k = u.keys(a);
if (i = k.length, u.keys(b).length !== i) return !1;
for (; i--;)
if (j = k[i], !u.has(b, j) || !I(a[j], b[j], c, d)) return !1
}
return c.pop(), d.pop(), !0
};
u.isEqual = function(a, b) {
return I(a, b)
}, u.isEmpty = function(a) {
return null == a ? !0 : C(a) && (u.isArray(a) || u.isString(a) || u.isArguments(a)) ? 0 === a.length : 0 === u.keys(a).length
}, u.isElement = function(a) {
return !(!a || 1 !== a.nodeType)
}, u.isArray = p || function(a) {
return "[object Array]" === n.call(a)
}, u.isObject = function(a) {
var b = typeof a;
return "function" === b || "object" === b && !!a
}, u.each(["Arguments", "Function", "String", "Number", "Date", "RegExp", "Error"], function(a) {
u["is" + a] = function(b) {
return n.call(b) === "[object " + a + "]"
}
}), u.isArguments(arguments) || (u.isArguments = function(a) {
return u.has(a, "callee")
}), "function" != typeof / . / && "object" != typeof Int8Array && (u.isFunction = function(a) {
return "function" == typeof a || !1
}), u.isFinite = function(a) {
return isFinite(a) && !isNaN(parseFloat(a))
}, u.isNaN = function(a) {
return u.isNumber(a) && a !== +a
}, u.isBoolean = function(a) {
return a === !0 || a === !1 || "[object Boolean]" === n.call(a)
}, u.isNull = function(a) {
return null === a
}, u.isUndefined = function(a) {
return void 0 === a
}, u.has = function(a, b) {
return null != a && o.call(a, b)
}, u.noConflict = function() {
return g._ = h, this
}, u.identity = function(a) {
return a
}, u.constant = function(a) {
return function() {
return a
}
}, u.noop = function() {}, u.property = z, u.propertyOf = function(a) {
return null == a ? function() {} : function(b) {
return a[b]
}
}, u.matcher = u.matches = function(a) {
return a = u.extendOwn({}, a),
function(b) {
return u.isMatch(b, a)
}
}, u.times = function(a, b, c) {
var d = Array(Math.max(0, a));
b = v(b, c, 1);
for (var e = 0; a > e; e++) d[e] = b(e);
return d
}, u.random = function(a, b) {
return null == b && (b = a, a = 0), a + Math.floor(Math.random() * (b - a + 1))
}, u.now = Date.now || function() {
return (new Date).getTime()
};
var J = {
"&": "&amp;",
"<": "&lt;",
">": "&gt;",
'"': "&quot;",
"'": "&#x27;",
"`": "&#x60;"
},
K = u.invert(J),
L = function(a) {
var b = function(b) {
return a[b]
},
c = "(?:" + u.keys(a).join("|") + ")",
d = RegExp(c),
e = RegExp(c, "g");
return function(a) {
return a = null == a ? "" : "" + a, d.test(a) ? a.replace(e, b) : a
}
};
u.escape = L(J), u.unescape = L(K), u.result = function(a, b, c) {
var d = null == a ? void 0 : a[b];
return void 0 === d && (d = c), u.isFunction(d) ? d.call(a) : d
};
var M = 0;
u.uniqueId = function(a) {
var b = ++M + "";
return a ? a + b : b
}, u.templateSettings = {
evaluate: /<%([\s\S]+?)%>/g,
interpolate: /<%=([\s\S]+?)%>/g,
escape: /<%-([\s\S]+?)%>/g
};
var N = /(.)^/,
O = {
"'": "'",
"\\": "\\",
"\r": "r",
"\n": "n",
"\u2028": "u2028",
"\u2029": "u2029"
},
P = /\\|'|\r|\n|\u2028|\u2029/g,
Q = function(a) {
return "\\" + O[a]
};
u.template = function(a, b, c) {
!b && c && (b = c), b = u.defaults({}, b, u.templateSettings);
var d = RegExp([(b.escape || N).source, (b.interpolate || N).source, (b.evaluate || N).source].join("|") + "|$", "g"),
e = 0,
f = "__p+='";
a.replace(d, function(b, c, d, g, h) {
return f += a.slice(e, h).replace(P, Q), e = h + b.length, c ? f += "'+\n((__t=(" + c + "))==null?'':_.escape(__t))+\n'" : d ? f += "'+\n((__t=(" + d + "))==null?'':__t)+\n'" : g && (f += "';\n" + g + "\n__p+='"), b
}), f += "';\n", b.variable || (f = "with(obj||{}){\n" + f + "}\n"), f = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + f + "return __p;\n";
try {
var g = new Function(b.variable || "obj", "_", f)
} catch (h) {
throw h.source = f, h
}
var i = function(a) {
return g.call(this, a, u)
},
j = b.variable || "obj";
return i.source = "function(" + j + "){\n" + f + "}", i
}, u.chain = function(a) {
var b = u(a);
return b._chain = !0, b
};
var R = function(a, b) {
return a._chain ? u(b).chain() : b
};
u.mixin = function(a) {
u.each(u.functions(a), function(b) {
var c = u[b] = a[b];
u.prototype[b] = function() {
var a = [this._wrapped];
return l.apply(a, arguments), R(this, c.apply(u, a))
}
})
}, u.mixin(u), u.each(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function(a) {
var b = i[a];
u.prototype[a] = function() {
var c = this._wrapped;
return b.apply(c, arguments), "shift" !== a && "splice" !== a || 0 !== c.length || delete c[0], R(this, c)
}
}), u.each(["concat", "join", "slice"], function(a) {
var b = i[a];
u.prototype[a] = function() {
return R(this, b.apply(this._wrapped, arguments))
}
}), u.prototype.value = function() {
return this._wrapped
}, u.prototype.valueOf = u.prototype.toJSON = u.prototype.value, u.prototype.toString = function() {
return "" + this._wrapped
}, "function" == typeof define && define.amd && define("underscore", [], function() {
return u
})
}).call(this)
}, {}
],
74: [
function(a, b, c) {
b.exports = {
pages: {
"^$": {
template: "/pages/countdown/countdown.hbs",
script: "./workspace/pages/countdown/countdown-page.js",
data: "/api/v1/pages/countdown",
styles: ["/pages/countdown/countdown.css"]
}
},
modules: {
footer: {
script: "footer",
template: "/modules/footer/footer.hbs",
data: "/api/v1/pages/countdown",
global: !0
}
},
env: "countdown"
}
}, {}
],
75: [
function(a, b, c) {
"use strict";
var d = a("route-manager"),
e = a("query-string"),
f = a("four-oh-four-page"),
g = a("page-error-view"),
h = a("js-cookie"),
i = a("locale-manager"),
j = a("jquery"),
k = a("./../public/env-config");
a("element-kit");
var l = {
start: function() {
d.addEventListener("page:load", this.getPageLoadEventListener()), d.addEventListener("page:error", this.getPageErrorEventListener()), d.start(), this._params = e.parse(window.location.search), this._params.launchtime && sessionStorage.setItem("launchtime", this._params.launchtime), this._params.r && sessionStorage.setItem("continueToUrl", this._params.r), this._params.locale && h.set("locale", this._params.locale), window.onorientationchange = function() {
window.location.reload(!0)
}, this._el = document.body.getElementsByClassName("app")[0], i.fetch().then(function(a) {
j.ajaxSetup({
lang: a
}), d.triggerRoute(window.location.pathname)
})
},
getEl: function() {
return this._el
},
getPageLoadEventListener: function() {
var a = this;
return function(b) {
a.onPageLoad(b)
}
},
getPageErrorEventListener: function() {
var a = this;
return function(b) {
a.onPageError(b)
}
},
onPageError: function(a) {
a.detail && a.detail.message && -1 !== a.detail.message.indexOf("No routes configuration") ? this._handlePageNotFound() : g.show()
},
_handlePageNotFound: function() {
"countdown" === k.env ? d.triggerRoute("/") : f.load().then(function() {
f.show()
})
},
onPageLoad: function() {
this._firstLoad || (this._firstLoad = !0)
},
stop: function() {
d.removeEventListener("page:load", this.getPageLoadEventListener()), this._firstLoad = null
}
};
l.start(), b.exports = l
}, {
"./../public/env-config": 74,
"element-kit": 8,
"four-oh-four-page": 85,
jquery: 53,
"js-cookie": 54,
"locale-manager": 79,
"page-error-view": 87,
"query-string": 67,
"route-manager": 86
}
],
76: [
function(a, b, c) {
"use strict";
var d = a("promise"),
e = a("module"),
f = a("resource-manager"),
g = e.extend({
loadFonts: function() {
return this._fontsLoaded ? d.resolve() : f.loadScript("//use.typekit.net/kna3oyp.js").then(function() {
return new d(function(a) {
try {
window.Typekit.load({
active: a,
inactive: a
})
} catch (b) {
a()
}
}).then(function() {
this._fontsLoaded = !0
}.bind(this))
}.bind(this))
}
});
b.exports = new g
}, {
module: 82,
promise: 57,
"resource-manager": 70
}
],
77: [
function(a, b, c) {
"use strict";
var d = a("underscore"),
e = a("device-manager"),
f = function() {};
f.prototype = {
start: function() {
this.body = this.body || document.body, this._activeFormMap = this._activeFormMap || {}, e.isMobile() && (this.allFormElementMaps = this._buildFormElementMaps(), this.bindEvents())
},
resetAllFormElements: function() {
d.each(this.allFormElementMaps, function(a) {
this._enableFormElement(a), a.active = !1
}.bind(this)), this._activeFormMap = {}
},
reset: function() {
this.unbindEvents(), this.resetAllFormElements()
},
onFocusElement: function(a) {
d.each(this.allFormElementMaps, function(b) {
b.el.contains(a.currentTarget) ? (this._activeFormMap = b, b.active = !0, this._enableFormElement(b)) : (b.active = !1, this._disableFormElement(b))
}.bind(this))
},
onBlurElement: function() {
document.activeElement.getElementsByTagName("form").length && this.resetAllFormElements()
},
_disableFormElement: function(a) {
d.each(a.el.elements, function(a) {
a.tabIndex = -1, a.disabled = !0
})
},
_enableFormElement: function(a) {
d.each(a.el.elements, function(b) {
b.tabIndex = a.tabIndex, b.disabled = a.disabled
})
},
bindEvents: function() {
d.each(this.allFormElementMaps, function(a) {
d.each(a.el.elements, function(a) {
a.kit.addEventListener("focus", "onFocusElement", this), a.kit.addEventListener("blur", "onBlurElement", this)
}.bind(this))
}.bind(this))
},
_buildFormElementMaps: function() {
var a = [];
return d.each(this.body.getElementsByTagName("form"), function(b) {
a.push({
el: b,
tabIndex: b.tabIndex,
disabled: b.disabled
})
}), a
},
unbindEvents: function() {
d.each(this.allFormElementMaps, function(a) {
d.each(a.el.elements, function(a) {
a.kit.removeEventListener("focus", "onFocusElement", this), a.kit.removeEventListener("blur", "onBlurElement", this)
}.bind(this))
}.bind(this))
}
}, b.exports = new f
}, {
"device-manager": 7,
underscore: 73
}
],
78: [
function(a, b, c) {
"use strict";
var d = a("module.js"),
e = a("route-manager"),
f = d.extend({
delegateLinks: function(a) {
var b;
if (a.length)
for (b = 0; b < a.length; b++) a[b].addEventListener("click", this._getClickEventListener())
},
undelegateLinks: function(a) {
var b;
if (a.length)
for (b = 0; b < a.length; b++) a[b].removeEventListener("click", this._getClickEventListener())
},
_getClickEventListener: function() {
var a = this;
return function(b) {
a.onClickLink.call(a, b)
}
},
onClickLink: function(a) {
var b = a.currentTarget,
c = b.getAttribute("href"),
d = b.kit._hasClass("download-asset-btn");
!c || this.isLinkExternal(c) || d || (a.preventDefault(), e.triggerRoute(c))
},
isLinkExternal: function(a) {
var b = a.match(/^(http\:|https\:|www\.|tel\:)|^(\/\/)/) && -1 === a.indexOf(window.location.hostname);
return b ? !0 : !1
}
});
b.exports = new f
}, {
"module.js": 55,
"route-manager": 86
}
],
79: [
function(a, b, c) {
"use strict";
var d = a("promise"),
e = a("module"),
f = a("resource-manager"),
g = a("js-cookie"),
h = e.extend({
fetchCountryByIP: function() {
var a = "US";
return f.loadScript("//js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js").then(function() {
return window.geoip2 ? new d(function(b, c) {
window.geoip2.country(function(c) {
b(c.country.iso_code || a)
}, function(a) {
c(a)
})
}) : a
})
},
fetch: function() {
var a = this.getCountryLocaleMap(),
b = a.US,
c = g.get("locale");
return new d(function(d) {
c ? d(c) : this.fetchCountryByIP().then(function(c) {
b = a[c] || b, d(b)
})["catch"](function(a) {
console.warn('GeoIP Error: Language could not be determined, falling back to "' + b + '"...'), console.warn(a), d(b)
})
}.bind(this)).then(function(a) {
return g.set("locale", a), a
})
},
getCountryLocaleMap: function() {
return {
US: "en-us",
GB: "en-gb",
FR: "fr-fr",
DE: "de-de",
JP: "ja",
IT: "it-it",
ES: "es-es",
RU: "ru",
PL: "pl",
BR: "pt-br"
}
},
reset: function() {}
});
b.exports = new h
}, {
"js-cookie": 54,
module: 82,
promise: 57,
"resource-manager": 70
}
],
80: [
function(a, b, c) {
"use strict";
var d = a("module"),
e = a("underscore"),
f = a("jquery"),
g = a("promise"),
h = a("image");
a("element-kit");
var i = d.extend({
initialize: function(a) {
this.options = e.extend({
el: null,
images: []
}, a), this.el = a.el, this.images = f(".featured-media-asset-background-image"), d.prototype.initialize.call(this, a)
},
load: function() {
var a = "/assets/video-glitch.png",
b = this.el || document.body;
return i.prototype.glitchImageEl || (i.prototype.glitchImageEl = document.createElement("img"), i.prototype.glitchImageEl.classList.add("glitch-image")), i.prototype.glitchImage || (i.prototype.glitchImage = new h({
el: i.prototype.glitchImageEl
})), i.prototype.glitchImage.load(a).then(function() {
b.appendChild(i.prototype.glitchImageEl)
})
},
flicker: function(a) {
return a = a || 1e3, this.load().then(function() {
return new g(function(b) {
this.el.classList.add("glitch-active"), e.delay(function() {
this.el.classList.remove("glitch-active"), b()
}.bind(this), a)
}.bind(this))
}.bind(this))
},
start: function() {
return this.load().then(function() {
return this.el.classList.add("glitch-active"), new g(function(a) {
this.el.kit.waitForTransition(a)
}.bind(this))
}.bind(this))
},
stop: function() {
return this.el.classList.remove("glitch-active"), g.resolve()
},
destroy: function() {
i.prototype.glitchImage.destroy(), d.prototype.destroy.call(this)
}
});
b.exports = i
}, {
"element-kit": 8,
image: 81,
jquery: 53,
module: 82,
promise: 57,
underscore: 73
}
],
81: [
function(a, b, c) {
"use strict";
var d = a("promise"),
e = a("module"),
f = a("device-manager");
a("element-kit");
var g = e.extend({
initialize: function(a) {
e.prototype.initialize.call(this), this.imageEl = a.el, this.containerEl = this.imageEl.parentNode || document.body, a.data = a.data || {}, f.isMobile() && this.getWindow().innerWidth < 901 ? this._deviceType = "mobile" : this._deviceType = "desktop", this.imagesData = a.data[this._deviceType] || a.data.desktop
},
getWindow: function() {
return window
},
_filterImagesByDimensions: function(a) {
return a = a || {}, this.imagesData.filter(function(b) {
return (!a.maxWidth || b.width <= a.maxWidth) && (!a.minWidth || b.width > a.minWidth)
})
},
loadHighestResolutionImage: function() {
var a = this.getHighestResolutionImageData();
return a.url ? this.load(a.url) : this.loadSmallestImage()
},
getHighestResolutionImageData: function() {
return this._filterImagesByDimensions({
minWidth: this.containerEl.clientWidth
})[0] || {}
},
getSmallestImageData: function() {
var a = {};
return this.imagesData.forEach(function(b) {
(!a.width || b.width < a.width) && (a = b)
}), a
},
loadSmallestImage: function() {
return this.load(this.getSmallestImageData().url)
},
load: function(a) {
var b = this.imageEl;
return b.getAttribute("src") !== a ? b.kit.load(a) : d.resolve()
}
});
b.exports = g
}, {
"device-manager": 7,
"element-kit": 8,
module: 82,
promise: 57
}
],
82: [
function(a, b, c) {
"use strict";
var d = a("module.js"),
e = a("js-cookie"),
f = d.extend({
initialize: function() {
d.prototype.initialize.apply(this, arguments), this._appContainer = document.getElementsByClassName("app")[0]
},
fetchData: function(a, b) {
var c = e.get("locale");
return b.data = b.data || {}, c && (b.data.lang = c), d.prototype.fetchData.call(this, a, b)
},
getAppEl: function() {
return this._appContainer
}
});
b.exports = f
}, {
"js-cookie": 54,
"module.js": 55
}
],
83: [
function(a, b, c) {
"use strict";
var d = a("base-page"),
e = a("fastclick"),
f = a("scroll-listener"),
g = a("underscore"),
h = a("page-error-view"),
i = a("promise"),
j = a("font-manager"),
k = a("glitch"),
l = a("locale-manager"),
m = window.dataLayer,
n = a("form-manager"),
o = a("page-loading-view"),
p = a("link-cop"),
q = d.extend({
initialize: function() {
this.body = document.body, this.loaderEl = this.body.getElementsByClassName("page-loader")[0], d.prototype.initialize.call(this, {
pagesContainer: this.body.getElementsByClassName("pages")[0]
}), q.prototype.initialLoad = q.prototype.initialLoad || !0, this._imageMap = {}, this.appContainer = this.body.getElementsByClassName("app")[0]
},
show: function() {
return h.hide(), document.title = this.pageData["title-global"], window.scrollTo(0, 1), d.prototype.show.call(this).then(function() {
return new i(function(a) {
this.modules = this.el.getElementsByClassName("module"), n.start(), this.bindEvents(), this.setupModuleScrollListeners(this.modules), this.body.classList.add(this.mid + "-page-active"), this.body.classList.add("page-active"), this.appContainer.kit.waitForTransition(function() {
o.hide(), this.appContainer.kit.waitForTransition(a)
}.bind(this))
}.bind(this))
}.bind(this))
},
fetchData: function(a, b) {
return b = b || {}, b.data = b.data || {}, l.fetch().then(function(c) {
return c && (b.data.lang = c), d.prototype.fetchData.call(this, a, b)
})
},
hide: function() {
return this.body.classList.remove(this.mid + "-page-active"), this.body.classList.remove("page-active"), o.show(), new i(function(a) {
this.appContainer.kit.waitForTransition(function() {
this.removeModuleListeners(), n.reset(), this.unbindEvents(), d.prototype.hide.call(this).then(a)
}.bind(this))
}.bind(this))
},
load: function(a) {
a = a || {};
var b = arguments,
c = a.data || {},
e = c.error,
f = c.modules || {};
return this.pageData = (f.page || {}).data || {}, this.mid = this.mid || this.pageData.id, this.el = a.el, o.show(), this.el = a.el, this.el.classList.add(this.mid + "-page"), h.hide(), e ? (h.show(), i.reject(new Error('Page "' + this.mid + '" returned ' + e["status-code"] + " error"))) : (q.prototype.initialLoad || (q.prototype.initialLoad = !1), j.loadFonts().then(function() {
return k.prototype.load().then(function() {
return d.prototype.load.apply(this, b).then(function() {
return m.push(this.pageData), h.hide()
}.bind(this))
}.bind(this))
}.bind(this), function() {
h.show(), console.log("PAGE LOAD ERROR!")
}))
},
bindEvents: function() {
e(this.el), p.delegateLinks(this.el.getElementsByTagName("a"))
},
unbindEvents: function() {
p.undelegateLinks(this.el.getElementsByTagName("a"))
},
setupModuleScrollListeners: function(a) {
this.moduleScrollListeners = this.moduleScrollListeners || [], g.each(a, function(a) {
var b = this.moduleScrollListeners.length + 1,
c = this.subModules["scrollListener" + b] = new f({
el: a,
onEnter: this.onModuleEnterView.bind(this),
onExit: this._onModuleExitView.bind(this)
});
this.moduleScrollListeners.push(c)
}.bind(this))
},
removeModuleListeners: function() {
g.each(this.moduleScrollListeners, function(a) {
a.destroy()
}.bind(this)), this.moduleScrollListeners = []
},
onModuleEnterView: function(a) {
a.classList.add("module-active")
},
_onModuleExitView: function(a) {
a.classList.remove("module-active")
},
destroy: function() {
this.unbindEvents(), this.removeModuleListeners(), this._imageMap = {}, d.prototype.destroy.call(this)
}
});
b.exports = q
}, {
"base-page": 71,
fastclick: 2,
"font-manager": 76,
"form-manager": 77,
glitch: 80,
"link-cop": 78,
"locale-manager": 79,
"page-error-view": 87,
"page-loading-view": 88,
promise: 57,
"scroll-listener": 3,
underscore: 73
}
],
84: [
function(a, b, c) {
"use strict";
var d = a("module"),
e = a("raphael"),
f = a("moment"),
g = a("underscore"),
h = d.extend({
initialize: function(a) {
this.options = g.extend({
el: null,
launchTime: Date.now(),
onEnd: null
}, a), this.launchTime = this.getLaunchTime(), this.el = a.el, this.secondsHand = this.el.getElementsByClassName("countdown-clock-second-hand")[0], this.clockWrapper = this.el.getElementsByClassName("countdown-clock-wrapper")[0], this.counterText = this.el.getElementsByClassName("countdown-timer-text")[0], this.width = this.height = this.clockWrapper.clientWidth, this.clockWrapper.style.width = this.width, this.polarFull = !1, this.polarFillColor = "rgba(1, 1, 1, 1)", d.prototype.initialize.call(this, a)
},
getLaunchTime: function() {
var a = Number(sessionStorage.getItem("launchtime")) || this.options.launchTime,
b = f();
return this.launchTime || (this.launchTime = f.utc(a).utcOffset(-240), this.launchTime.isBefore(b) && sessionStorage.removeItem("launchtime")), this.launchTime
},
start: function() {
function a() {
b = f().utc(), c = d.launchTime.diff(b), d.timeLeft = f.duration(c, "milliseconds"), b.isSame(d.launchTime) || b.isAfter(d.launchTime) ? (clearInterval(d.timerId), d.onEnd()) : (d.updatePolarFill(d.timeLeft), d.rotateSecondsHand(d.timeLeft), d.updateTimeText(d.timeLeft))
}
var b, c, d = this,
g = d.width / 3,
h = 120,
i = d.width / 3.2,
j = new e("holder", d.width, d.height);
j.customAttributes.arc = function(a, b) {
var c, e = 360 / b * a,
f = d.width / 2,
h = (90 - e) * Math.PI / 180,
i = f + g * Math.cos(h),
j = f - g * Math.sin(h);
return c = b === a ? [
["M", f, f - g],
["A", g, g, 0, 1, 1, f - .01, f - g]
] : [
["M", f, f - g],
["A", g, g, 0, +(e > 180), 1, i, j]
], {
path: c,
stroke: d.polarFillColor
}
}, d.polarFill = j.path().attr({
stroke: d.polarFillColor,
"stroke-width": i
}).attr({
arc: [0, h]
}), d.timerId = setInterval(a, 1e3)
},
rotateSecondsHand: function(a) {
var b = -a.seconds(),
c = b % 60 * 6,
d = "rotate(" + c + "deg)",
e = this.secondsHand.style;
e.webkitTransform = d, e.MozTransform = d, e.msTransform = d, e.OTransform = d, e.transform = d
},
updatePolarFill: function(a) {
var b = 3600,
c = 6 * (60 - (a.minutes() + 1));
this.polarFull ? (this.polarFill.animate({
arc: [c, 360]
}, 750, "bounce"), c % b === 0 && (this.polarFull = !1)) : (this.polarFill.animate({
arc: [c, 360]
}, 750, "bounce"), c % b === 0 && (this.polarFull = !0))
},
updateTimeText: function(a) {
var b = a.hours() + 24 * a.days(),
c = a.minutes(),
d = a.seconds();
this.counterText.innerHTML = this._padZero(b) + ":" + this._padZero(c) + ":" + this._padZero(d)
},
_padZero: function(a) {
return a > 9 ? a : "0" + a
},
onEnd: function() {
this.counterText.innerHTML = "", this.options.onEnd && this.options.onEnd()
}
});
b.exports = h
}, {
module: 82,
moment: 56,
raphael: 69,
underscore: 73
}
],
85: [
function(a, b, c) {
"use strict";
var d = a("page"),
e = d.extend({
mid: "four-oh-four",
load: function() {
var a = {
modules: {
page: {
data: {
"title-global": "Fallout Franchise",
title: "Oops"
}
}
}
};
return this.el = this._setupEl(), this.pagesContainer = document.body.getElementsByClassName("pages")[0], this.pagesContainer.appendChild(this.el), d.prototype.load.call(this, {
data: a,
el: this.el
})
},
_setupEl: function() {
var a = document.createElement("div");
return a.innerHTML = '<img class="four-oh-four-image" src="/assets/404.png" />', a
}
});
b.exports = new e
}, {
page: 83
}
],
86: [
function(a, b, c) {
"use strict";
var d = a("./../public/env-config"),
e = a("promise"),
f = a("underscore"),
g = a("js-cookie"),
h = function() {
var a = !1,
b = f.keys(d.pages);
return b.forEach(function(b) {
b.match("age-gate") && (a = !0)
}), a
},
i = function(a) {
var b = a.match("age-gate");
return "announcement" === d.env || b || !h() || g.get("ageVerified") || g.get("locale") && "en-us" !== g.get("locale") || (a = "age-gate"), e.resolve(a)
},
j = {
config: d,
pagesContainer: document.body.getElementsByClassName("pages")[0],
onRouteRequest: i
},
k = a("base-route-manager")(j);
b.exports = k
}, {
"./../public/env-config": 74,
"base-route-manager": 72,
"js-cookie": 54,
promise: 57,
underscore: 73
}
],
87: [
function(a, b, c) {
"use strict";
var d = a("promise"),
e = a("module");
a("element-kit");
var f = e.extend({
mid: "error-page",
initialize: function() {
this.body = document.body, e.prototype.initialize.call(this)
},
show: function() {
return this.body.classList.add("page-error-active"), new d(function(a) {
this.loaderEl.kit.waitForTransition(a)
}.bind(this))
},
hide: function() {
return this.body.kit.classList.remove("page-error-active"), new d(function(a) {
this.body.kit.waitForTransition(a)
}.bind(this))
}
});
b.exports = new f
}, {
"element-kit": 8,
module: 82,
promise: 57
}
],
88: [
function(a, b, c) {
"use strict";
var d = a("promise"),
e = a("module");
a("element-kit");
var f = e.extend({
initialize: function() {
this.body = document.body, this.appContainer = this.body.getElementsByClassName("app")[0], e.prototype.initialize.call(this)
},
show: function() {
return this.body.classList.add("page-loading"), new d(function(a) {
this.appContainer.kit.waitForTransition(a)
}.bind(this))
},
hide: function() {
return this.body.kit.classList.remove("page-loading"), new d(function(a) {
this.appContainer.kit.waitForTransition(a)
}.bind(this))
}
});
b.exports = new f
}, {
"element-kit": 8,
module: 82,
promise: 57
}
],
footer: [
function(a, b, c) {
"use strict";
var d = a("module"),
e = a("link-cop");
a("element-kit");
var f = d.extend({
mid: "footer",
initialize: function() {
d.prototype.initialize.call(this, {
activeClass: "app-footer-active"
})
},
onLoad: function(a) {
this.el = a.el, this.appContainer = this.getAppEl(), this.appContainer.appendChild(this.el)
},
bindEvents: function() {
e.delegateLinks(this.el.getElementsByTagName("a"))
},
unbindEvents: function() {
e.undelegateLinks(this.el.getElementsByTagName("a"))
},
destroy: function() {
this.appContainer.removeChild(this.el), d.prototype.destroy.call(this)
}
});
b.exports = new f
}, {
"element-kit": 8,
"link-cop": 78,
module: 82
}
]
}, {}, [75]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment