!function(t, e) {
    // "object" == typeof module && "object" == typeof module.exports ? module.exports = t.document ? e(t, !0) : function(t) {
    //     if (!t.document)
    //         throw new Error("jQuery requires a window with a document");
    //     return e(t)
    // }
    // : e(t)
}("undefined" != typeof window ? window : this, function(_, t) {
    function e(t, e) {
        return e.toUpperCase()
    }
    var n = []
      , O = _.document
      , l = n.slice
      , M = n.concat
      , s = n.push
      , r = n.indexOf
      , i = {}
      , o = i.toString
      , d = i.hasOwnProperty
      , b = {}
      , a = "2.2.4"
      , w = function(t, e) {
        return new w.fn.init(t,e)
    }
      , c = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g
      , u = /^-ms-/
      , h = /-([\da-z])/gi;
    function f(t) {
        var e = !!t && "length"in t && t.length
          , n = w.type(t);
        return "function" !== n && !w.isWindow(t) && ("array" === n || 0 === e || "number" == typeof e && 0 < e && e - 1 in t)
    }
    w.fn = w.prototype = {
        jquery: a,
        constructor: w,
        selector: "",
        length: 0,
        toArray: function() {
            return l.call(this)
        },
        get: function(t) {
            return null != t ? t < 0 ? this[t + this.length] : this[t] : l.call(this)
        },
        pushStack: function(t) {
            var e = w.merge(this.constructor(), t);
            return e.prevObject = this,
            e.context = this.context,
            e
        },
        each: function(t) {
            return w.each(this, t)
        },
        map: function(n) {
            return this.pushStack(w.map(this, function(t, e) {
                return n.call(t, e, t)
            }))
        },
        slice: function() {
            return this.pushStack(l.apply(this, arguments))
        },
        first: function() {
            return this.eq(0)
        },
        last: function() {
            return this.eq(-1)
        },
        eq: function(t) {
            var e = this.length
              , n = +t + (t < 0 ? e : 0);
            return this.pushStack(0 <= n && n < e ? [this[n]] : [])
        },
        end: function() {
            return this.prevObject || this.constructor()
        },
        push: s,
        sort: n.sort,
        splice: n.splice
    },
    w.extend = w.fn.extend = function() {
        var t, e, n, i, r, o, a = arguments[0] || {}, s = 1, c = arguments.length, u = !1;
        for ("boolean" == typeof a && (u = a,
        a = arguments[s] || {},
        s++),
        "object" == typeof a || w.isFunction(a) || (a = {}),
        s === c && (a = this,
        s--); s < c; s++)
            if (null != (t = arguments[s]))
                for (e in t)
                    n = a[e],
                    a !== (i = t[e]) && (u && i && (w.isPlainObject(i) || (r = w.isArray(i))) ? (o = r ? (r = !1,
                    n && w.isArray(n) ? n : []) : n && w.isPlainObject(n) ? n : {},
                    a[e] = w.extend(u, o, i)) : void 0 !== i && (a[e] = i));
        return a
    }
    ,
    w.extend({
        expando: "jQuery" + (a + Math.random()).replace(/\D/g, ""),
        isReady: !0,
        error: function(t) {
            throw new Error(t)
        },
        noop: function() {},
        isFunction: function(t) {
            return "function" === w.type(t)
        },
        isArray: Array.isArray,
        isWindow: function(t) {
            return null != t && t === t.window
        },
        isNumeric: function(t) {
            var e = t && t.toString();
            return !w.isArray(t) && 0 <= e - parseFloat(e) + 1
        },
        isPlainObject: function(t) {
            var e;
            if ("object" !== w.type(t) || t.nodeType || w.isWindow(t))
                return !1;
            if (t.constructor && !d.call(t, "constructor") && !d.call(t.constructor.prototype || {}, "isPrototypeOf"))
                return !1;
            for (e in t)
                ;
            return void 0 === e || d.call(t, e)
        },
        isEmptyObject: function(t) {
            var e;
            for (e in t)
                return !1;
            return !0
        },
        type: function(t) {
            return null == t ? t + "" : "object" == typeof t || "function" == typeof t ? i[o.call(t)] || "object" : typeof t
        },
        globalEval: function(t) {
            var e, n = eval;
            (t = w.trim(t)) && (1 === t.indexOf("use strict") ? ((e = O.createElement("script")).text = t,
            O.head.appendChild(e).parentNode.removeChild(e)) : n(t))
        },
        camelCase: function(t) {
            return t.replace(u, "ms-").replace(h, e)
        },
        nodeName: function(t, e) {
            return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase()
        },
        each: function(t, e) {
            var n, i = 0;
            if (f(t))
                for (n = t.length; i < n && !1 !== e.call(t[i], i, t[i]); i++)
                    ;
            else
                for (i in t)
                    if (!1 === e.call(t[i], i, t[i]))
                        break;
            return t
        },
        trim: function(t) {
            return null == t ? "" : (t + "").replace(c, "")
        },
        makeArray: function(t, e) {
            var n = e || [];
            return null != t && (f(Object(t)) ? w.merge(n, "string" == typeof t ? [t] : t) : s.call(n, t)),
            n
        },
        inArray: function(t, e, n) {
            return null == e ? -1 : r.call(e, t, n)
        },
        merge: function(t, e) {
            for (var n = +e.length, i = 0, r = t.length; i < n; i++)
                t[r++] = e[i];
            return t.length = r,
            t
        },
        grep: function(t, e, n) {
            for (var i = [], r = 0, o = t.length, a = !n; r < o; r++)
                !e(t[r], r) != a && i.push(t[r]);
            return i
        },
        map: function(t, e, n) {
            var i, r, o = 0, a = [];
            if (f(t))
                for (i = t.length; o < i; o++)
                    null != (r = e(t[o], o, n)) && a.push(r);
            else
                for (o in t)
                    null != (r = e(t[o], o, n)) && a.push(r);
            return M.apply([], a)
        },
        guid: 1,
        proxy: function(t, e) {
            var n, i, r;
            return "string" == typeof e && (n = t[e],
            e = t,
            t = n),
            w.isFunction(t) ? (i = l.call(arguments, 2),
            (r = function() {
                return t.apply(e || this, i.concat(l.call(arguments)))
            }
            ).guid = t.guid = t.guid || w.guid++,
            r) : void 0
        },
        now: Date.now,
        support: b
    }),
    "function" == typeof Symbol && (w.fn[Symbol.iterator] = n[Symbol.iterator]),
    w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(t, e) {
        i["[object " + e + "]"] = e.toLowerCase()
    });
    var p = function(n) {
        function h(t, e, n) {
            var i = "0x" + e - 65536;
            return i != i || n ? e : i < 0 ? String.fromCharCode(65536 + i) : String.fromCharCode(i >> 10 | 55296, 1023 & i | 56320)
        }
        function r() {
            z()
        }
        var t, d, A, o, a, M, f, b, y, c, u, z, _, s, O, m, l, p, g, w = "sizzle" + +new Date, v = n.document, L = 0, i = 0, N = rt(), q = rt(), W = rt(), T = function(t, e) {
            return t === e && (u = !0),
            0
        }, C = {}.hasOwnProperty, e = [], x = e.pop, k = e.push, S = e.push, B = e.slice, E = function(t, e) {
            for (var n = 0, i = t.length; n < i; n++)
                if (t[n] === e)
                    return n;
            return -1
        }, X = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", D = "[\\x20\\t\\r\\n\\f]", R = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", P = "\\[" + D + "*(" + R + ")(?:" + D + "*([*^$|!~]?=)" + D + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + R + "))|)" + D + "*\\]", I = ":(" + R + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + P + ")*)|.*)\\)|)", j = new RegExp(D + "+","g"), H = new RegExp("^" + D + "+|((?:^|[^\\\\])(?:\\\\.)*)" + D + "+$","g"), F = new RegExp("^" + D + "*," + D + "*"), U = new RegExp("^" + D + "*([>+~]|" + D + ")" + D + "*"), Y = new RegExp("=" + D + "*([^\\]'\"]*?)" + D + "*\\]","g"), G = new RegExp(I), V = new RegExp("^" + R + "$"), K = {
            ID: new RegExp("^#(" + R + ")"),
            CLASS: new RegExp("^\\.(" + R + ")"),
            TAG: new RegExp("^(" + R + "|[*])"),
            ATTR: new RegExp("^" + P),
            PSEUDO: new RegExp("^" + I),
            CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + D + "*(even|odd|(([+-]|)(\\d*)n|)" + D + "*(?:([+-]|)" + D + "*(\\d+)|))" + D + "*\\)|)","i"),
            bool: new RegExp("^(?:" + X + ")$","i"),
            needsContext: new RegExp("^" + D + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + D + "*((?:-\\d)?\\d*)" + D + "*\\)|)(?=[^-]|$)","i")
        }, Q = /^(?:input|select|textarea|button)$/i, $ = /^h\d$/i, J = /^[^{]+\{\s*\[native \w/, Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, tt = /[+~]/, et = /'|\\/g, nt = new RegExp("\\\\([\\da-f]{1,6}" + D + "?|(" + D + ")|.)","ig");
        try {
            S.apply(e = B.call(v.childNodes), v.childNodes),
            e[v.childNodes.length].nodeType
        } catch (t) {
            S = {
                apply: e.length ? function(t, e) {
                    k.apply(t, B.call(e))
                }
                : function(t, e) {
                    for (var n = t.length, i = 0; t[n++] = e[i++]; )
                        ;
                    t.length = n - 1
                }
            }
        }
        function it(t, e, n, i) {
            var r, o, a, s, c, u, l, h, f = e && e.ownerDocument, p = e ? e.nodeType : 9;
            if (n = n || [],
            "string" != typeof t || !t || 1 !== p && 9 !== p && 11 !== p)
                return n;
            if (!i && ((e ? e.ownerDocument || e : v) !== _ && z(e),
            e = e || _,
            O)) {
                if (11 !== p && (u = Z.exec(t)))
                    if (r = u[1]) {
                        if (9 === p) {
                            if (!(a = e.getElementById(r)))
                                return n;
                            if (a.id === r)
                                return n.push(a),
                                n
                        } else if (f && (a = f.getElementById(r)) && g(e, a) && a.id === r)
                            return n.push(a),
                            n
                    } else {
                        if (u[2])
                            return S.apply(n, e.getElementsByTagName(t)),
                            n;
                        if ((r = u[3]) && d.getElementsByClassName && e.getElementsByClassName)
                            return S.apply(n, e.getElementsByClassName(r)),
                            n
                    }
                if (d.qsa && !W[t + " "] && (!m || !m.test(t))) {
                    if (1 !== p)
                        f = e,
                        h = t;
                    else if ("object" !== e.nodeName.toLowerCase()) {
                        for ((s = e.getAttribute("id")) ? s = s.replace(et, "\\$&") : e.setAttribute("id", s = w),
                        o = (l = M(t)).length,
                        c = V.test(s) ? "#" + s : "[id='" + s + "']"; o--; )
                            l[o] = c + " " + ft(l[o]);
                        h = l.join(","),
                        f = tt.test(t) && lt(e.parentNode) || e
                    }
                    if (h)
                        try {
                            return S.apply(n, f.querySelectorAll(h)),
                            n
                        } catch (t) {} finally {
                            s === w && e.removeAttribute("id")
                        }
                }
            }
            return b(t.replace(H, "$1"), e, n, i)
        }
        function rt() {
            var n = [];
            function i(t, e) {
                return n.push(t + " ") > A.cacheLength && delete i[n.shift()],
                i[t + " "] = e
            }
            return i
        }
        function ot(t) {
            return t[w] = !0,
            t
        }
        function at(t) {
            var e = _.createElement("div");
            try {
                return !!t(e)
            } catch (t) {
                return !1
            } finally {
                e.parentNode && e.parentNode.removeChild(e),
                e = null
            }
        }
        function st(t, e) {
            for (var n = t.split("|"), i = n.length; i--; )
                A.attrHandle[n[i]] = e
        }
        function ct(t, e) {
            var n = e && t
              , i = n && 1 === t.nodeType && 1 === e.nodeType && (~e.sourceIndex || 1 << 31) - (~t.sourceIndex || 1 << 31);
            if (i)
                return i;
            if (n)
                for (; n = n.nextSibling; )
                    if (n === e)
                        return -1;
            return t ? 1 : -1
        }
        function ut(a) {
            return ot(function(o) {
                return o = +o,
                ot(function(t, e) {
                    for (var n, i = a([], t.length, o), r = i.length; r--; )
                        t[n = i[r]] && (t[n] = !(e[n] = t[n]))
                })
            })
        }
        function lt(t) {
            return t && void 0 !== t.getElementsByTagName && t
        }
        for (t in d = it.support = {},
        a = it.isXML = function(t) {
            var e = t && (t.ownerDocument || t).documentElement;
            return !!e && "HTML" !== e.nodeName
        }
        ,
        z = it.setDocument = function(t) {
            var e, n, i = t ? t.ownerDocument || t : v;
            return i !== _ && 9 === i.nodeType && i.documentElement && (s = (_ = i).documentElement,
            O = !a(_),
            (n = _.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", r, !1) : n.attachEvent && n.attachEvent("onunload", r)),
            d.attributes = at(function(t) {
                return t.className = "i",
                !t.getAttribute("className")
            }),
            d.getElementsByTagName = at(function(t) {
                return t.appendChild(_.createComment("")),
                !t.getElementsByTagName("*").length
            }),
            d.getElementsByClassName = J.test(_.getElementsByClassName),
            d.getById = at(function(t) {
                return s.appendChild(t).id = w,
                !_.getElementsByName || !_.getElementsByName(w).length
            }),
            d.getById ? (A.find.ID = function(t, e) {
                if (void 0 !== e.getElementById && O) {
                    var n = e.getElementById(t);
                    return n ? [n] : []
                }
            }
            ,
            A.filter.ID = function(t) {
                var e = t.replace(nt, h);
                return function(t) {
                    return t.getAttribute("id") === e
                }
            }
            ) : (delete A.find.ID,
            A.filter.ID = function(t) {
                var n = t.replace(nt, h);
                return function(t) {
                    var e = void 0 !== t.getAttributeNode && t.getAttributeNode("id");
                    return e && e.value === n
                }
            }
            ),
            A.find.TAG = d.getElementsByTagName ? function(t, e) {
                return void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t) : d.qsa ? e.querySelectorAll(t) : void 0
            }
            : function(t, e) {
                var n, i = [], r = 0, o = e.getElementsByTagName(t);
                if ("*" !== t)
                    return o;
                for (; n = o[r++]; )
                    1 === n.nodeType && i.push(n);
                return i
            }
            ,
            A.find.CLASS = d.getElementsByClassName && function(t, e) {
                return void 0 !== e.getElementsByClassName && O ? e.getElementsByClassName(t) : void 0
            }
            ,
            l = [],
            m = [],
            (d.qsa = J.test(_.querySelectorAll)) && (at(function(t) {
                s.appendChild(t).innerHTML = "<a id='" + w + "'></a><select id='" + w + "-\r\\' msallowcapture=''><option selected=''></option></select>",
                t.querySelectorAll("[msallowcapture^='']").length && m.push("[*^$]=" + D + "*(?:''|\"\")"),
                t.querySelectorAll("[selected]").length || m.push("\\[" + D + "*(?:value|" + X + ")"),
                t.querySelectorAll("[id~=" + w + "-]").length || m.push("~="),
                t.querySelectorAll(":checked").length || m.push(":checked"),
                t.querySelectorAll("a#" + w + "+*").length || m.push(".#.+[+~]")
            }),
            at(function(t) {
                var e = _.createElement("input");
                e.setAttribute("type", "hidden"),
                t.appendChild(e).setAttribute("name", "D"),
                t.querySelectorAll("[name=d]").length && m.push("name" + D + "*[*^$|!~]?="),
                t.querySelectorAll(":enabled").length || m.push(":enabled", ":disabled"),
                t.querySelectorAll("*,:x"),
                m.push(",.*:")
            })),
            (d.matchesSelector = J.test(p = s.matches || s.webkitMatchesSelector || s.mozMatchesSelector || s.oMatchesSelector || s.msMatchesSelector)) && at(function(t) {
                d.disconnectedMatch = p.call(t, "div"),
                p.call(t, "[s!='']:x"),
                l.push("!=", I)
            }),
            m = m.length && new RegExp(m.join("|")),
            l = l.length && new RegExp(l.join("|")),
            e = J.test(s.compareDocumentPosition),
            g = e || J.test(s.contains) ? function(t, e) {
                var n = 9 === t.nodeType ? t.documentElement : t
                  , i = e && e.parentNode;
                return t === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : t.compareDocumentPosition && 16 & t.compareDocumentPosition(i)))
            }
            : function(t, e) {
                if (e)
                    for (; e = e.parentNode; )
                        if (e === t)
                            return !0;
                return !1
            }
            ,
            T = e ? function(t, e) {
                if (t === e)
                    return u = !0,
                    0;
                var n = !t.compareDocumentPosition - !e.compareDocumentPosition;
                return n || (1 & (n = (t.ownerDocument || t) === (e.ownerDocument || e) ? t.compareDocumentPosition(e) : 1) || !d.sortDetached && e.compareDocumentPosition(t) === n ? t === _ || t.ownerDocument === v && g(v, t) ? -1 : e === _ || e.ownerDocument === v && g(v, e) ? 1 : c ? E(c, t) - E(c, e) : 0 : 4 & n ? -1 : 1)
            }
            : function(t, e) {
                if (t === e)
                    return u = !0,
                    0;
                var n, i = 0, r = t.parentNode, o = e.parentNode, a = [t], s = [e];
                if (!r || !o)
                    return t === _ ? -1 : e === _ ? 1 : r ? -1 : o ? 1 : c ? E(c, t) - E(c, e) : 0;
                if (r === o)
                    return ct(t, e);
                for (n = t; n = n.parentNode; )
                    a.unshift(n);
                for (n = e; n = n.parentNode; )
                    s.unshift(n);
                for (; a[i] === s[i]; )
                    i++;
                return i ? ct(a[i], s[i]) : a[i] === v ? -1 : s[i] === v ? 1 : 0
            }
            ),
            _
        }
        ,
        it.matches = function(t, e) {
            return it(t, null, null, e)
        }
        ,
        it.matchesSelector = function(t, e) {
            if ((t.ownerDocument || t) !== _ && z(t),
            e = e.replace(Y, "='$1']"),
            d.matchesSelector && O && !W[e + " "] && (!l || !l.test(e)) && (!m || !m.test(e)))
                try {
                    var n = p.call(t, e);
                    if (n || d.disconnectedMatch || t.document && 11 !== t.document.nodeType)
                        return n
                } catch (t) {}
            return 0 < it(e, _, null, [t]).length
        }
        ,
        it.contains = function(t, e) {
            return (t.ownerDocument || t) !== _ && z(t),
            g(t, e)
        }
        ,
        it.attr = function(t, e) {
            (t.ownerDocument || t) !== _ && z(t);
            var n = A.attrHandle[e.toLowerCase()]
              , i = n && C.call(A.attrHandle, e.toLowerCase()) ? n(t, e, !O) : void 0;
            return void 0 !== i ? i : d.attributes || !O ? t.getAttribute(e) : (i = t.getAttributeNode(e)) && i.specified ? i.value : null
        }
        ,
        it.error = function(t) {
            throw new Error("Syntax error, unrecognized expression: " + t)
        }
        ,
        it.uniqueSort = function(t) {
            var e, n = [], i = 0, r = 0;
            if (u = !d.detectDuplicates,
            c = !d.sortStable && t.slice(0),
            t.sort(T),
            u) {
                for (; e = t[r++]; )
                    e === t[r] && (i = n.push(r));
                for (; i--; )
                    t.splice(n[i], 1)
            }
            return c = null,
            t
        }
        ,
        o = it.getText = function(t) {
            var e, n = "", i = 0, r = t.nodeType;
            if (r) {
                if (1 === r || 9 === r || 11 === r) {
                    if ("string" == typeof t.textContent)
                        return t.textContent;
                    for (t = t.firstChild; t; t = t.nextSibling)
                        n += o(t)
                } else if (3 === r || 4 === r)
                    return t.nodeValue
            } else
                for (; e = t[i++]; )
                    n += o(e);
            return n
        }
        ,
        (A = it.selectors = {
            cacheLength: 50,
            createPseudo: ot,
            match: K,
            attrHandle: {},
            find: {},
            relative: {
                ">": {
                    dir: "parentNode",
                    first: !0
                },
                " ": {
                    dir: "parentNode"
                },
                "+": {
                    dir: "previousSibling",
                    first: !0
                },
                "~": {
                    dir: "previousSibling"
                }
            },
            preFilter: {
                ATTR: function(t) {
                    return t[1] = t[1].replace(nt, h),
                    t[3] = (t[3] || t[4] || t[5] || "").replace(nt, h),
                    "~=" === t[2] && (t[3] = " " + t[3] + " "),
                    t.slice(0, 4)
                },
                CHILD: function(t) {
                    return t[1] = t[1].toLowerCase(),
                    "nth" === t[1].slice(0, 3) ? (t[3] || it.error(t[0]),
                    t[4] = +(t[4] ? t[5] + (t[6] || 1) : 2 * ("even" === t[3] || "odd" === t[3])),
                    t[5] = +(t[7] + t[8] || "odd" === t[3])) : t[3] && it.error(t[0]),
                    t
                },
                PSEUDO: function(t) {
                    var e, n = !t[6] && t[2];
                    return K.CHILD.test(t[0]) ? null : (t[3] ? t[2] = t[4] || t[5] || "" : n && G.test(n) && (e = M(n, !0)) && (e = n.indexOf(")", n.length - e) - n.length) && (t[0] = t[0].slice(0, e),
                    t[2] = n.slice(0, e)),
                    t.slice(0, 3))
                }
            },
            filter: {
                TAG: function(t) {
                    var e = t.replace(nt, h).toLowerCase();
                    return "*" === t ? function() {
                        return !0
                    }
                    : function(t) {
                        return t.nodeName && t.nodeName.toLowerCase() === e
                    }
                },
                CLASS: function(t) {
                    var e = N[t + " "];
                    return e || (e = new RegExp("(^|" + D + ")" + t + "(" + D + "|$)")) && N(t, function(t) {
                        return e.test("string" == typeof t.className && t.className || void 0 !== t.getAttribute && t.getAttribute("class") || "")
                    })
                },
                ATTR: function(n, i, r) {
                    return function(t) {
                        var e = it.attr(t, n);
                        return null == e ? "!=" === i : !i || (e += "",
                        "=" === i ? e === r : "!=" === i ? e !== r : "^=" === i ? r && 0 === e.indexOf(r) : "*=" === i ? r && -1 < e.indexOf(r) : "$=" === i ? r && e.slice(-r.length) === r : "~=" === i ? -1 < (" " + e.replace(j, " ") + " ").indexOf(r) : "|=" === i && (e === r || e.slice(0, r.length + 1) === r + "-"))
                    }
                },
                CHILD: function(d, t, e, M, b) {
                    var m = "nth" !== d.slice(0, 3)
                      , g = "last" !== d.slice(-4)
                      , v = "of-type" === t;
                    return 1 === M && 0 === b ? function(t) {
                        return !!t.parentNode
                    }
                    : function(t, e, n) {
                        var i, r, o, a, s, c, u = m != g ? "nextSibling" : "previousSibling", l = t.parentNode, h = v && t.nodeName.toLowerCase(), f = !n && !v, p = !1;
                        if (l) {
                            if (m) {
                                for (; u; ) {
                                    for (a = t; a = a[u]; )
                                        if (v ? a.nodeName.toLowerCase() === h : 1 === a.nodeType)
                                            return !1;
                                    c = u = "only" === d && !c && "nextSibling"
                                }
                                return !0
                            }
                            if (c = [g ? l.firstChild : l.lastChild],
                            g && f) {
                                for (p = (s = (i = (r = (o = (a = l)[w] || (a[w] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[d] || [])[0] === L && i[1]) && i[2],
                                a = s && l.childNodes[s]; a = ++s && a && a[u] || (p = s = 0) || c.pop(); )
                                    if (1 === a.nodeType && ++p && a === t) {
                                        r[d] = [L, s, p];
                                        break
                                    }
                            } else if (f && (p = s = (i = (r = (o = (a = t)[w] || (a[w] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[d] || [])[0] === L && i[1]),
                            !1 === p)
                                for (; (a = ++s && a && a[u] || (p = s = 0) || c.pop()) && ((v ? a.nodeName.toLowerCase() !== h : 1 !== a.nodeType) || !++p || (f && ((r = (o = a[w] || (a[w] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[d] = [L, p]),
                                a !== t)); )
                                    ;
                            return (p -= b) === M || p % M == 0 && 0 <= p / M
                        }
                    }
                },
                PSEUDO: function(t, o) {
                    var e, a = A.pseudos[t] || A.setFilters[t.toLowerCase()] || it.error("unsupported pseudo: " + t);
                    return a[w] ? a(o) : 1 < a.length ? (e = [t, t, "", o],
                    A.setFilters.hasOwnProperty(t.toLowerCase()) ? ot(function(t, e) {
                        for (var n, i = a(t, o), r = i.length; r--; )
                            t[n = E(t, i[r])] = !(e[n] = i[r])
                    }) : function(t) {
                        return a(t, 0, e)
                    }
                    ) : a
                }
            },
            pseudos: {
                not: ot(function(t) {
                    var i = []
                      , r = []
                      , s = f(t.replace(H, "$1"));
                    return s[w] ? ot(function(t, e, n, i) {
                        for (var r, o = s(t, null, i, []), a = t.length; a--; )
                            (r = o[a]) && (t[a] = !(e[a] = r))
                    }) : function(t, e, n) {
                        return i[0] = t,
                        s(i, null, n, r),
                        i[0] = null,
                        !r.pop()
                    }
                }),
                has: ot(function(e) {
                    return function(t) {
                        return 0 < it(e, t).length
                    }
                }),
                contains: ot(function(e) {
                    return e = e.replace(nt, h),
                    function(t) {
                        return -1 < (t.textContent || t.innerText || o(t)).indexOf(e)
                    }
                }),
                lang: ot(function(n) {
                    return V.test(n || "") || it.error("unsupported lang: " + n),
                    n = n.replace(nt, h).toLowerCase(),
                    function(t) {
                        var e;
                        do {
                            if (e = O ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang"))
                                return (e = e.toLowerCase()) === n || 0 === e.indexOf(n + "-")
                        } while ((t = t.parentNode) && 1 === t.nodeType);return !1
                    }
                }),
                target: function(t) {
                    var e = n.location && n.location.hash;
                    return e && e.slice(1) === t.id
                },
                root: function(t) {
                    return t === s
                },
                focus: function(t) {
                    return t === _.activeElement && (!_.hasFocus || _.hasFocus()) && !!(t.type || t.href || ~t.tabIndex)
                },
                enabled: function(t) {
                    return !1 === t.disabled
                },
                disabled: function(t) {
                    return !0 === t.disabled
                },
                checked: function(t) {
                    var e = t.nodeName.toLowerCase();
                    return "input" === e && !!t.checked || "option" === e && !!t.selected
                },
                selected: function(t) {
                    return t.parentNode && t.parentNode.selectedIndex,
                    !0 === t.selected
                },
                empty: function(t) {
                    for (t = t.firstChild; t; t = t.nextSibling)
                        if (t.nodeType < 6)
                            return !1;
                    return !0
                },
                parent: function(t) {
                    return !A.pseudos.empty(t)
                },
                header: function(t) {
                    return $.test(t.nodeName)
                },
                input: function(t) {
                    return Q.test(t.nodeName)
                },
                button: function(t) {
                    var e = t.nodeName.toLowerCase();
                    return "input" === e && "button" === t.type || "button" === e
                },
                text: function(t) {
                    var e;
                    return "input" === t.nodeName.toLowerCase() && "text" === t.type && (null == (e = t.getAttribute("type")) || "text" === e.toLowerCase())
                },
                first: ut(function() {
                    return [0]
                }),
                last: ut(function(t, e) {
                    return [e - 1]
                }),
                eq: ut(function(t, e, n) {
                    return [n < 0 ? n + e : n]
                }),
                even: ut(function(t, e) {
                    for (var n = 0; n < e; n += 2)
                        t.push(n);
                    return t
                }),
                odd: ut(function(t, e) {
                    for (var n = 1; n < e; n += 2)
                        t.push(n);
                    return t
                }),
                lt: ut(function(t, e, n) {
                    for (var i = n < 0 ? n + e : n; 0 <= --i; )
                        t.push(i);
                    return t
                }),
                gt: ut(function(t, e, n) {
                    for (var i = n < 0 ? n + e : n; ++i < e; )
                        t.push(i);
                    return t
                })
            }
        }).pseudos.nth = A.pseudos.eq,
        {
            radio: !0,
            checkbox: !0,
            file: !0,
            password: !0,
            image: !0
        })
            A.pseudos[t] = function(e) {
                return function(t) {
                    return "input" === t.nodeName.toLowerCase() && t.type === e
                }
            }(t);
        for (t in {
            submit: !0,
            reset: !0
        })
            A.pseudos[t] = function(n) {
                return function(t) {
                    var e = t.nodeName.toLowerCase();
                    return ("input" === e || "button" === e) && t.type === n
                }
            }(t);
        function ht() {}
        function ft(t) {
            for (var e = 0, n = t.length, i = ""; e < n; e++)
                i += t[e].value;
            return i
        }
        function pt(s, t, e) {
            var c = t.dir
              , u = e && "parentNode" === c
              , l = i++;
            return t.first ? function(t, e, n) {
                for (; t = t[c]; )
                    if (1 === t.nodeType || u)
                        return s(t, e, n)
            }
            : function(t, e, n) {
                var i, r, o, a = [L, l];
                if (n) {
                    for (; t = t[c]; )
                        if ((1 === t.nodeType || u) && s(t, e, n))
                            return !0
                } else
                    for (; t = t[c]; )
                        if (1 === t.nodeType || u) {
                            if ((i = (r = (o = t[w] || (t[w] = {}))[t.uniqueID] || (o[t.uniqueID] = {}))[c]) && i[0] === L && i[1] === l)
                                return a[2] = i[2];
                            if ((r[c] = a)[2] = s(t, e, n))
                                return !0
                        }
            }
        }
        function dt(r) {
            return 1 < r.length ? function(t, e, n) {
                for (var i = r.length; i--; )
                    if (!r[i](t, e, n))
                        return !1;
                return !0
            }
            : r[0]
        }
        function Mt(t, e, n, i, r) {
            for (var o, a = [], s = 0, c = t.length, u = null != e; s < c; s++)
                (o = t[s]) && (n && !n(o, i, r) || (a.push(o),
                u && e.push(s)));
            return a
        }
        function bt(p, d, M, b, m, t) {
            return b && !b[w] && (b = bt(b)),
            m && !m[w] && (m = bt(m, t)),
            ot(function(t, e, n, i) {
                var r, o, a, s = [], c = [], u = e.length, l = t || function(t, e, n) {
                    for (var i = 0, r = e.length; i < r; i++)
                        it(t, e[i], n);
                    return n
                }(d || "*", n.nodeType ? [n] : n, []), h = !p || !t && d ? l : Mt(l, s, p, n, i), f = M ? m || (t ? p : u || b) ? [] : e : h;
                if (M && M(h, f, n, i),
                b)
                    for (r = Mt(f, c),
                    b(r, [], n, i),
                    o = r.length; o--; )
                        (a = r[o]) && (f[c[o]] = !(h[c[o]] = a));
                if (t) {
                    if (m || p) {
                        if (m) {
                            for (r = [],
                            o = f.length; o--; )
                                (a = f[o]) && r.push(h[o] = a);
                            m(null, f = [], r, i)
                        }
                        for (o = f.length; o--; )
                            (a = f[o]) && -1 < (r = m ? E(t, a) : s[o]) && (t[r] = !(e[r] = a))
                    }
                } else
                    f = Mt(f === e ? f.splice(u, f.length) : f),
                    m ? m(null, e, f, i) : S.apply(e, f)
            })
        }
        function mt(b, m) {
            function t(t, e, n, i, r) {
                var o, a, s, c = 0, u = "0", l = t && [], h = [], f = y, p = t || v && A.find.TAG("*", r), d = L += null == f ? 1 : Math.random() || .1, M = p.length;
                for (r && (y = e === _ || e || r); u !== M && null != (o = p[u]); u++) {
                    if (v && o) {
                        for (a = 0,
                        e || o.ownerDocument === _ || (z(o),
                        n = !O); s = b[a++]; )
                            if (s(o, e || _, n)) {
                                i.push(o);
                                break
                            }
                        r && (L = d)
                    }
                    g && ((o = !s && o) && c--,
                    t && l.push(o))
                }
                if (c += u,
                g && u !== c) {
                    for (a = 0; s = m[a++]; )
                        s(l, h, e, n);
                    if (t) {
                        if (0 < c)
                            for (; u--; )
                                l[u] || h[u] || (h[u] = x.call(i));
                        h = Mt(h)
                    }
                    S.apply(i, h),
                    r && !t && 0 < h.length && 1 < c + m.length && it.uniqueSort(i)
                }
                return r && (L = d,
                y = f),
                l
            }
            var g = 0 < m.length
              , v = 0 < b.length;
            return g ? ot(t) : t
        }
        return ht.prototype = A.filters = A.pseudos,
        A.setFilters = new ht,
        M = it.tokenize = function(t, e) {
            var n, i, r, o, a, s, c, u = q[t + " "];
            if (u)
                return e ? 0 : u.slice(0);
            for (a = t,
            s = [],
            c = A.preFilter; a; ) {
                for (o in n && !(i = F.exec(a)) || (i && (a = a.slice(i[0].length) || a),
                s.push(r = [])),
                n = !1,
                (i = U.exec(a)) && (n = i.shift(),
                r.push({
                    value: n,
                    type: i[0].replace(H, " ")
                }),
                a = a.slice(n.length)),
                A.filter)
                    !(i = K[o].exec(a)) || c[o] && !(i = c[o](i)) || (n = i.shift(),
                    r.push({
                        value: n,
                        type: o,
                        matches: i
                    }),
                    a = a.slice(n.length));
                if (!n)
                    break
            }
            return e ? a.length : a ? it.error(t) : q(t, s).slice(0)
        }
        ,
        f = it.compile = function(t, e) {
            var n, i = [], r = [], o = W[t + " "];
            if (!o) {
                for (n = (e = e || M(t)).length; n--; )
                    (o = function t(e) {
                        for (var r, n, i, o = e.length, a = A.relative[e[0].type], s = a || A.relative[" "], c = a ? 1 : 0, u = pt(function(t) {
                            return t === r
                        }, s, !0), l = pt(function(t) {
                            return -1 < E(r, t)
                        }, s, !0), h = [function(t, e, n) {
                            var i = !a && (n || e !== y) || ((r = e).nodeType ? u : l)(t, e, n);
                            return r = null,
                            i
                        }
                        ]; c < o; c++)
                            if (n = A.relative[e[c].type])
                                h = [pt(dt(h), n)];
                            else {
                                if ((n = A.filter[e[c].type].apply(null, e[c].matches))[w]) {
                                    for (i = ++c; i < o && !A.relative[e[i].type]; i++)
                                        ;
                                    return bt(1 < c && dt(h), 1 < c && ft(e.slice(0, c - 1).concat({
                                        value: " " === e[c - 2].type ? "*" : ""
                                    })).replace(H, "$1"), n, c < i && t(e.slice(c, i)), i < o && t(e = e.slice(i)), i < o && ft(e))
                                }
                                h.push(n)
                            }
                        return dt(h)
                    }(e[n]))[w] ? i.push(o) : r.push(o);
                (o = W(t, mt(r, i))).selector = t
            }
            return o
        }
        ,
        b = it.select = function(t, e, n, i) {
            var r, o, a, s, c, u = "function" == typeof t && t, l = !i && M(t = u.selector || t);
            if (n = n || [],
            1 === l.length) {
                if (2 < (o = l[0] = l[0].slice(0)).length && "ID" === (a = o[0]).type && d.getById && 9 === e.nodeType && O && A.relative[o[1].type]) {
                    if (!(e = (A.find.ID(a.matches[0].replace(nt, h), e) || [])[0]))
                        return n;
                    u && (e = e.parentNode),
                    t = t.slice(o.shift().value.length)
                }
                for (r = K.needsContext.test(t) ? 0 : o.length; r-- && (a = o[r],
                !A.relative[s = a.type]); )
                    if ((c = A.find[s]) && (i = c(a.matches[0].replace(nt, h), tt.test(o[0].type) && lt(e.parentNode) || e))) {
                        if (o.splice(r, 1),
                        !(t = i.length && ft(o)))
                            return S.apply(n, i),
                            n;
                        break
                    }
            }
            return (u || f(t, l))(i, e, !O, n, !e || tt.test(t) && lt(e.parentNode) || e),
            n
        }
        ,
        d.sortStable = w.split("").sort(T).join("") === w,
        d.detectDuplicates = !!u,
        z(),
        d.sortDetached = at(function(t) {
            return 1 & t.compareDocumentPosition(_.createElement("div"))
        }),
        at(function(t) {
            return t.innerHTML = "<a href='#'></a>",
            "#" === t.firstChild.getAttribute("href")
        }) || st("type|href|height|width", function(t, e, n) {
            return n ? void 0 : t.getAttribute(e, "type" === e.toLowerCase() ? 1 : 2)
        }),
        d.attributes && at(function(t) {
            return t.innerHTML = "<input/>",
            t.firstChild.setAttribute("value", ""),
            "" === t.firstChild.getAttribute("value")
        }) || st("value", function(t, e, n) {
            return n || "input" !== t.nodeName.toLowerCase() ? void 0 : t.defaultValue
        }),
        at(function(t) {
            return null == t.getAttribute("disabled")
        }) || st(X, function(t, e, n) {
            var i;
            return n ? void 0 : !0 === t[e] ? e.toLowerCase() : (i = t.getAttributeNode(e)) && i.specified ? i.value : null
        }),
        it
    }(_);
    w.find = p,
    w.expr = p.selectors,
    w.expr[":"] = w.expr.pseudos,
    w.uniqueSort = w.unique = p.uniqueSort,
    w.text = p.getText,
    w.isXMLDoc = p.isXML,
    w.contains = p.contains;
    function m(t, e, n) {
        for (var i = [], r = void 0 !== n; (t = t[e]) && 9 !== t.nodeType; )
            if (1 === t.nodeType) {
                if (r && w(t).is(n))
                    break;
                i.push(t)
            }
        return i
    }
    function g(t, e) {
        for (var n = []; t; t = t.nextSibling)
            1 === t.nodeType && t !== e && n.push(t);
        return n
    }
    var v = w.expr.match.needsContext
      , A = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/
      , y = /^.[^:#\[\.,]*$/;
    function z(t, n, i) {
        if (w.isFunction(n))
            return w.grep(t, function(t, e) {
                return !!n.call(t, e, t) !== i
            });
        if (n.nodeType)
            return w.grep(t, function(t) {
                return t === n !== i
            });
        if ("string" == typeof n) {
            if (y.test(n))
                return w.filter(n, t, i);
            n = w.filter(n, t)
        }
        return w.grep(t, function(t) {
            return -1 < r.call(n, t) !== i
        })
    }
    w.filter = function(t, e, n) {
        var i = e[0];
        return n && (t = ":not(" + t + ")"),
        1 === e.length && 1 === i.nodeType ? w.find.matchesSelector(i, t) ? [i] : [] : w.find.matches(t, w.grep(e, function(t) {
            return 1 === t.nodeType
        }))
    }
    ,
    w.fn.extend({
        find: function(t) {
            var e, n = this.length, i = [], r = this;
            if ("string" != typeof t)
                return this.pushStack(w(t).filter(function() {
                    for (e = 0; e < n; e++)
                        if (w.contains(r[e], this))
                            return !0
                }));
            for (e = 0; e < n; e++)
                w.find(t, r[e], i);
            return (i = this.pushStack(1 < n ? w.unique(i) : i)).selector = this.selector ? this.selector + " " + t : t,
            i
        },
        filter: function(t) {
            return this.pushStack(z(this, t || [], !1))
        },
        not: function(t) {
            return this.pushStack(z(this, t || [], !0))
        },
        is: function(t) {
            return !!z(this, "string" == typeof t && v.test(t) ? w(t) : t || [], !1).length
        }
    });
    var L, N = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;
    (w.fn.init = function(t, e, n) {
        var i, r;
        if (!t)
            return this;
        if (n = n || L,
        "string" != typeof t)
            return t.nodeType ? (this.context = this[0] = t,
            this.length = 1,
            this) : w.isFunction(t) ? void 0 !== n.ready ? n.ready(t) : t(w) : (void 0 !== t.selector && (this.selector = t.selector,
            this.context = t.context),
            w.makeArray(t, this));
        if (!(i = "<" === t[0] && ">" === t[t.length - 1] && 3 <= t.length ? [null, t, null] : N.exec(t)) || !i[1] && e)
            return !e || e.jquery ? (e || n).find(t) : this.constructor(e).find(t);
        if (i[1]) {
            if (e = e instanceof w ? e[0] : e,
            w.merge(this, w.parseHTML(i[1], e && e.nodeType ? e.ownerDocument || e : O, !0)),
            A.test(i[1]) && w.isPlainObject(e))
                for (i in e)
                    w.isFunction(this[i]) ? this[i](e[i]) : this.attr(i, e[i]);
            return this
        }
        return (r = O.getElementById(i[2])) && r.parentNode && (this.length = 1,
        this[0] = r),
        this.context = O,
        this.selector = t,
        this
    }
    ).prototype = w.fn,
    L = w(O);
    var q = /^(?:parents|prev(?:Until|All))/
      , W = {
        children: !0,
        contents: !0,
        next: !0,
        prev: !0
    };
    function T(t, e) {
        for (; (t = t[e]) && 1 !== t.nodeType; )
            ;
        return t
    }
    w.fn.extend({
        has: function(t) {
            var e = w(t, this)
              , n = e.length;
            return this.filter(function() {
                for (var t = 0; t < n; t++)
                    if (w.contains(this, e[t]))
                        return !0
            })
        },
        closest: function(t, e) {
            for (var n, i = 0, r = this.length, o = [], a = v.test(t) || "string" != typeof t ? w(t, e || this.context) : 0; i < r; i++)
                for (n = this[i]; n && n !== e; n = n.parentNode)
                    if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && w.find.matchesSelector(n, t))) {
                        o.push(n);
                        break
                    }
            return this.pushStack(1 < o.length ? w.uniqueSort(o) : o)
        },
        index: function(t) {
            return t ? "string" == typeof t ? r.call(w(t), this[0]) : r.call(this, t.jquery ? t[0] : t) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
        },
        add: function(t, e) {
            return this.pushStack(w.uniqueSort(w.merge(this.get(), w(t, e))))
        },
        addBack: function(t) {
            return this.add(null == t ? this.prevObject : this.prevObject.filter(t))
        }
    }),
    w.each({
        parent: function(t) {
            var e = t.parentNode;
            return e && 11 !== e.nodeType ? e : null
        },
        parents: function(t) {
            return m(t, "parentNode")
        },
        parentsUntil: function(t, e, n) {
            return m(t, "parentNode", n)
        },
        next: function(t) {
            return T(t, "nextSibling")
        },
        prev: function(t) {
            return T(t, "previousSibling")
        },
        nextAll: function(t) {
            return m(t, "nextSibling")
        },
        prevAll: function(t) {
            return m(t, "previousSibling")
        },
        nextUntil: function(t, e, n) {
            return m(t, "nextSibling", n)
        },
        prevUntil: function(t, e, n) {
            return m(t, "previousSibling", n)
        },
        siblings: function(t) {
            return g((t.parentNode || {}).firstChild, t)
        },
        children: function(t) {
            return g(t.firstChild)
        },
        contents: function(t) {
            return t.contentDocument || w.merge([], t.childNodes)
        }
    }, function(i, r) {
        w.fn[i] = function(t, e) {
            var n = w.map(this, r, t);
            return "Until" !== i.slice(-5) && (e = t),
            e && "string" == typeof e && (n = w.filter(e, n)),
            1 < this.length && (W[i] || w.uniqueSort(n),
            q.test(i) && n.reverse()),
            this.pushStack(n)
        }
    });
    var C, x = /\S+/g;
    function k() {
        O.removeEventListener("DOMContentLoaded", k),
        _.removeEventListener("load", k),
        w.ready()
    }
    w.Callbacks = function(i) {
        var t, n;
        i = "string" == typeof i ? (t = i,
        n = {},
        w.each(t.match(x) || [], function(t, e) {
            n[e] = !0
        }),
        n) : w.extend({}, i);
        function r() {
            for (s = i.once,
            a = o = !0; u.length; l = -1)
                for (e = u.shift(); ++l < c.length; )
                    !1 === c[l].apply(e[0], e[1]) && i.stopOnFalse && (l = c.length,
                    e = !1);
            i.memory || (e = !1),
            o = !1,
            s && (c = e ? [] : "")
        }
        var o, e, a, s, c = [], u = [], l = -1, h = {
            add: function() {
                return c && (e && !o && (l = c.length - 1,
                u.push(e)),
                function n(t) {
                    w.each(t, function(t, e) {
                        w.isFunction(e) ? i.unique && h.has(e) || c.push(e) : e && e.length && "string" !== w.type(e) && n(e)
                    })
                }(arguments),
                e && !o && r()),
                this
            },
            remove: function() {
                return w.each(arguments, function(t, e) {
                    for (var n; -1 < (n = w.inArray(e, c, n)); )
                        c.splice(n, 1),
                        n <= l && l--
                }),
                this
            },
            has: function(t) {
                return t ? -1 < w.inArray(t, c) : 0 < c.length
            },
            empty: function() {
                return c = c && [],
                this
            },
            disable: function() {
                return s = u = [],
                c = e = "",
                this
            },
            disabled: function() {
                return !c
            },
            lock: function() {
                return s = u = [],
                e || (c = e = ""),
                this
            },
            locked: function() {
                return !!s
            },
            fireWith: function(t, e) {
                return s || (e = [t, (e = e || []).slice ? e.slice() : e],
                u.push(e),
                o || r()),
                this
            },
            fire: function() {
                return h.fireWith(this, arguments),
                this
            },
            fired: function() {
                return !!a
            }
        };
        return h
    }
    ,
    w.extend({
        Deferred: function(t) {
            var o = [["resolve", "done", w.Callbacks("once memory"), "resolved"], ["reject", "fail", w.Callbacks("once memory"), "rejected"], ["notify", "progress", w.Callbacks("memory")]]
              , r = "pending"
              , a = {
                state: function() {
                    return r
                },
                always: function() {
                    return s.done(arguments).fail(arguments),
                    this
                },
                then: function() {
                    var r = arguments;
                    return w.Deferred(function(i) {
                        w.each(o, function(t, e) {
                            var n = w.isFunction(r[t]) && r[t];
                            s[e[1]](function() {
                                var t = n && n.apply(this, arguments);
                                t && w.isFunction(t.promise) ? t.promise().progress(i.notify).done(i.resolve).fail(i.reject) : i[e[0] + "With"](this === a ? i.promise() : this, n ? [t] : arguments)
                            })
                        }),
                        r = null
                    }).promise()
                },
                promise: function(t) {
                    return null != t ? w.extend(t, a) : a
                }
            }
              , s = {};
            return a.pipe = a.then,
            w.each(o, function(t, e) {
                var n = e[2]
                  , i = e[3];
                a[e[1]] = n.add,
                i && n.add(function() {
                    r = i
                }, o[1 ^ t][2].disable, o[2][2].lock),
                s[e[0]] = function() {
                    return s[e[0] + "With"](this === s ? a : this, arguments),
                    this
                }
                ,
                s[e[0] + "With"] = n.fireWith
            }),
            a.promise(s),
            t && t.call(s, s),
            s
        },
        when: function(t) {
            function e(e, n, i) {
                return function(t) {
                    n[e] = this,
                    i[e] = 1 < arguments.length ? l.call(arguments) : t,
                    i === r ? u.notifyWith(n, i) : --c || u.resolveWith(n, i)
                }
            }
            var r, n, i, o = 0, a = l.call(arguments), s = a.length, c = 1 !== s || t && w.isFunction(t.promise) ? s : 0, u = 1 === c ? t : w.Deferred();
            if (1 < s)
                for (r = new Array(s),
                n = new Array(s),
                i = new Array(s); o < s; o++)
                    a[o] && w.isFunction(a[o].promise) ? a[o].promise().progress(e(o, n, r)).done(e(o, i, a)).fail(u.reject) : --c;
            return c || u.resolveWith(i, a),
            u.promise()
        }
    }),
    w.fn.ready = function(t) {
        return w.ready.promise().done(t),
        this
    }
    ,
    w.extend({
        isReady: !1,
        readyWait: 1,
        holdReady: function(t) {
            t ? w.readyWait++ : w.ready(!0)
        },
        ready: function(t) {
            (!0 === t ? --w.readyWait : w.isReady) || ((w.isReady = !0) !== t && 0 < --w.readyWait || (C.resolveWith(O, [w]),
            w.fn.triggerHandler && (w(O).triggerHandler("ready"),
            w(O).off("ready"))))
        }
    }),
    w.ready.promise = function(t) {
        return C || (C = w.Deferred(),
        "complete" === O.readyState || "loading" !== O.readyState && !O.documentElement.doScroll ? _.setTimeout(w.ready) : (O.addEventListener("DOMContentLoaded", k),
        _.addEventListener("load", k))),
        C.promise(t)
    }
    ,
    w.ready.promise();
    function S(t) {
        return 1 === t.nodeType || 9 === t.nodeType || !+t.nodeType
    }
    var B = function(t, e, n, i, r, o, a) {
        var s = 0
          , c = t.length
          , u = null == n;
        if ("object" === w.type(n))
            for (s in r = !0,
            n)
                B(t, e, s, n[s], !0, o, a);
        else if (void 0 !== i && (r = !0,
        w.isFunction(i) || (a = !0),
        u && (e = a ? (e.call(t, i),
        null) : (u = e,
        function(t, e, n) {
            return u.call(w(t), n)
        }
        )),
        e))
            for (; s < c; s++)
                e(t[s], n, a ? i : i.call(t[s], s, e(t[s], n)));
        return r ? t : u ? e.call(t) : c ? e(t[0], n) : o
    };
    function E() {
        this.expando = w.expando + E.uid++
    }
    E.uid = 1,
    E.prototype = {
        register: function(t, e) {
            var n = e || {};
            return t.nodeType ? t[this.expando] = n : Object.defineProperty(t, this.expando, {
                value: n,
                writable: !0,
                configurable: !0
            }),
            t[this.expando]
        },
        cache: function(t) {
            if (!S(t))
                return {};
            var e = t[this.expando];
            return e || (e = {},
            S(t) && (t.nodeType ? t[this.expando] = e : Object.defineProperty(t, this.expando, {
                value: e,
                configurable: !0
            }))),
            e
        },
        set: function(t, e, n) {
            var i, r = this.cache(t);
            if ("string" == typeof e)
                r[e] = n;
            else
                for (i in e)
                    r[i] = e[i];
            return r
        },
        get: function(t, e) {
            return void 0 === e ? this.cache(t) : t[this.expando] && t[this.expando][e]
        },
        access: function(t, e, n) {
            var i;
            return void 0 === e || e && "string" == typeof e && void 0 === n ? void 0 !== (i = this.get(t, e)) ? i : this.get(t, w.camelCase(e)) : (this.set(t, e, n),
            void 0 !== n ? n : e)
        },
        remove: function(t, e) {
            var n, i, r, o = t[this.expando];
            if (void 0 !== o) {
                if (void 0 === e)
                    this.register(t);
                else {
                    n = (i = w.isArray(e) ? e.concat(e.map(w.camelCase)) : (r = w.camelCase(e),
                    e in o ? [e, r] : (i = r)in o ? [i] : i.match(x) || [])).length;
                    for (; n--; )
                        delete o[i[n]]
                }
                void 0 !== e && !w.isEmptyObject(o) || (t.nodeType ? t[this.expando] = void 0 : delete t[this.expando])
            }
        },
        hasData: function(t) {
            var e = t[this.expando];
            return void 0 !== e && !w.isEmptyObject(e)
        }
    };
    var X = new E
      , D = new E
      , R = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/
      , P = /[A-Z]/g;
    function I(t, e, n) {
        var i;
        if (void 0 === n && 1 === t.nodeType)
            if (i = "data-" + e.replace(P, "-$&").toLowerCase(),
            "string" == typeof (n = t.getAttribute(i))) {
                try {
                    n = "true" === n || "false" !== n && ("null" === n ? null : +n + "" === n ? +n : R.test(n) ? w.parseJSON(n) : n)
                } catch (t) {}
                D.set(t, e, n)
            } else
                n = void 0;
        return n
    }
    w.extend({
        hasData: function(t) {
            return D.hasData(t) || X.hasData(t)
        },
        data: function(t, e, n) {
            return D.access(t, e, n)
        },
        removeData: function(t, e) {
            D.remove(t, e)
        },
        _data: function(t, e, n) {
            return X.access(t, e, n)
        },
        _removeData: function(t, e) {
            X.remove(t, e)
        }
    }),
    w.fn.extend({
        data: function(i, t) {
            var e, n, r, o = this[0], a = o && o.attributes;
            if (void 0 !== i)
                return "object" == typeof i ? this.each(function() {
                    D.set(this, i)
                }) : B(this, function(e) {
                    var t, n;
                    if (o && void 0 === e) {
                        if (void 0 !== (t = D.get(o, i) || D.get(o, i.replace(P, "-$&").toLowerCase())))
                            return t;
                        if (n = w.camelCase(i),
                        void 0 !== (t = D.get(o, n)))
                            return t;
                        if (void 0 !== (t = I(o, n, void 0)))
                            return t
                    } else
                        n = w.camelCase(i),
                        this.each(function() {
                            var t = D.get(this, n);
                            D.set(this, n, e),
                            -1 < i.indexOf("-") && void 0 !== t && D.set(this, i, e)
                        })
                }, null, t, 1 < arguments.length, null, !0);
            if (this.length && (r = D.get(o),
            1 === o.nodeType && !X.get(o, "hasDataAttrs"))) {
                for (e = a.length; e--; )
                    a[e] && (0 === (n = a[e].name).indexOf("data-") && (n = w.camelCase(n.slice(5)),
                    I(o, n, r[n])));
                X.set(o, "hasDataAttrs", !0)
            }
            return r
        },
        removeData: function(t) {
            return this.each(function() {
                D.remove(this, t)
            })
        }
    }),
    w.extend({
        queue: function(t, e, n) {
            var i;
            return t ? (e = (e || "fx") + "queue",
            i = X.get(t, e),
            n && (!i || w.isArray(n) ? i = X.access(t, e, w.makeArray(n)) : i.push(n)),
            i || []) : void 0
        },
        dequeue: function(t, e) {
            e = e || "fx";
            var n = w.queue(t, e)
              , i = n.length
              , r = n.shift()
              , o = w._queueHooks(t, e);
            "inprogress" === r && (r = n.shift(),
            i--),
            r && ("fx" === e && n.unshift("inprogress"),
            delete o.stop,
            r.call(t, function() {
                w.dequeue(t, e)
            }, o)),
            !i && o && o.empty.fire()
        },
        _queueHooks: function(t, e) {
            var n = e + "queueHooks";
            return X.get(t, n) || X.access(t, n, {
                empty: w.Callbacks("once memory").add(function() {
                    X.remove(t, [e + "queue", n])
                })
            })
        }
    }),
    w.fn.extend({
        queue: function(e, n) {
            var t = 2;
            return "string" != typeof e && (n = e,
            e = "fx",
            t--),
            arguments.length < t ? w.queue(this[0], e) : void 0 === n ? this : this.each(function() {
                var t = w.queue(this, e, n);
                w._queueHooks(this, e),
                "fx" === e && "inprogress" !== t[0] && w.dequeue(this, e)
            })
        },
        dequeue: function(t) {
            return this.each(function() {
                w.dequeue(this, t)
            })
        },
        clearQueue: function(t) {
            return this.queue(t || "fx", [])
        },
        promise: function(t, e) {
            function n() {
                --r || o.resolveWith(a, [a])
            }
            var i, r = 1, o = w.Deferred(), a = this, s = this.length;
            for ("string" != typeof t && (e = t,
            t = void 0),
            t = t || "fx"; s--; )
                (i = X.get(a[s], t + "queueHooks")) && i.empty && (r++,
                i.empty.add(n));
            return n(),
            o.promise(e)
        }
    });
    function j(t, e) {
        return t = e || t,
        "none" === w.css(t, "display") || !w.contains(t.ownerDocument, t)
    }
    var H = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source
      , F = new RegExp("^(?:([+-])=|)(" + H + ")([a-z%]*)$","i")
      , U = ["Top", "Right", "Bottom", "Left"];
    function Y(t, e, n, i) {
        var r, o = 1, a = 20, s = i ? function() {
            return i.cur()
        }
        : function() {
            return w.css(t, e, "")
        }
        , c = s(), u = n && n[3] || (w.cssNumber[e] ? "" : "px"), l = (w.cssNumber[e] || "px" !== u && +c) && F.exec(w.css(t, e));
        if (l && l[3] !== u)
            for (u = u || l[3],
            n = n || [],
            l = +c || 1; l /= o = o || ".5",
            w.style(t, e, l + u),
            o !== (o = s() / c) && 1 !== o && --a; )
                ;
        return n && (l = +l || +c || 0,
        r = n[1] ? l + (n[1] + 1) * n[2] : +n[2],
        i && (i.unit = u,
        i.start = l,
        i.end = r)),
        r
    }
    var G = /^(?:checkbox|radio)$/i
      , V = /<([\w:-]+)/
      , K = /^$|\/(?:java|ecma)script/i
      , Q = {
        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, "", ""]
    };
    function $(t, e) {
        var n = void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e || "*") : void 0 !== t.querySelectorAll ? t.querySelectorAll(e || "*") : [];
        return void 0 === e || e && w.nodeName(t, e) ? w.merge([t], n) : n
    }
    function J(t, e) {
        for (var n = 0, i = t.length; n < i; n++)
            X.set(t[n], "globalEval", !e || X.get(e[n], "globalEval"))
    }
    Q.optgroup = Q.option,
    Q.tbody = Q.tfoot = Q.colgroup = Q.caption = Q.thead,
    Q.th = Q.td;
    var Z, tt, et = /<|&#?\w+;/;
    function nt(t, e, n, i, r) {
        for (var o, a, s, c, u, l, h = e.createDocumentFragment(), f = [], p = 0, d = t.length; p < d; p++)
            if ((o = t[p]) || 0 === o)
                if ("object" === w.type(o))
                    w.merge(f, o.nodeType ? [o] : o);
                else if (et.test(o)) {
                    for (a = a || h.appendChild(e.createElement("div")),
                    s = (V.exec(o) || ["", ""])[1].toLowerCase(),
                    c = Q[s] || Q._default,
                    a.innerHTML = c[1] + w.htmlPrefilter(o) + c[2],
                    l = c[0]; l--; )
                        a = a.lastChild;
                    w.merge(f, a.childNodes),
                    (a = h.firstChild).textContent = ""
                } else
                    f.push(e.createTextNode(o));
        for (h.textContent = "",
        p = 0; o = f[p++]; )
            if (i && -1 < w.inArray(o, i))
                r && r.push(o);
            else if (u = w.contains(o.ownerDocument, o),
            a = $(h.appendChild(o), "script"),
            u && J(a),
            n)
                for (l = 0; o = a[l++]; )
                    K.test(o.type || "") && n.push(o);
        return h
    }
    Z = O.createDocumentFragment().appendChild(O.createElement("div")),
    (tt = O.createElement("input")).setAttribute("type", "radio"),
    tt.setAttribute("checked", "checked"),
    tt.setAttribute("name", "t"),
    Z.appendChild(tt),
    b.checkClone = Z.cloneNode(!0).cloneNode(!0).lastChild.checked,
    Z.innerHTML = "<textarea>x</textarea>",
    b.noCloneChecked = !!Z.cloneNode(!0).lastChild.defaultValue;
    var it = /^key/
      , rt = /^(?:mouse|pointer|contextmenu|drag|drop)|click/
      , ot = /^([^.]*)(?:\.(.+)|)/;
    function at() {
        return !0
    }
    function st() {
        return !1
    }
    function ct() {
        try {
            return O.activeElement
        } catch (t) {}
    }
    function ut(t, e, n, i, r, o) {
        var a, s;
        if ("object" == typeof e) {
            for (s in "string" != typeof n && (i = i || n,
            n = void 0),
            e)
                ut(t, s, n, i, e[s], o);
            return t
        }
        if (null == i && null == r ? (r = n,
        i = n = void 0) : null == r && ("string" == typeof n ? (r = i,
        i = void 0) : (r = i,
        i = n,
        n = void 0)),
        !1 === r)
            r = st;
        else if (!r)
            return t;
        return 1 === o && (a = r,
        (r = function(t) {
            return w().off(t),
            a.apply(this, arguments)
        }
        ).guid = a.guid || (a.guid = w.guid++)),
        t.each(function() {
            w.event.add(this, e, r, i, n)
        })
    }
    w.event = {
        global: {},
        add: function(e, t, n, i, r) {
            var o, a, s, c, u, l, h, f, p, d, M, b = X.get(e);
            if (b)
                for (n.handler && (n = (o = n).handler,
                r = o.selector),
                n.guid || (n.guid = w.guid++),
                (c = b.events) || (c = b.events = {}),
                (a = b.handle) || (a = b.handle = function(t) {
                    return void 0 !== w && w.event.triggered !== t.type ? w.event.dispatch.apply(e, arguments) : void 0
                }
                ),
                u = (t = (t || "").match(x) || [""]).length; u--; )
                    p = M = (s = ot.exec(t[u]) || [])[1],
                    d = (s[2] || "").split(".").sort(),
                    p && (h = w.event.special[p] || {},
                    p = (r ? h.delegateType : h.bindType) || p,
                    h = w.event.special[p] || {},
                    l = w.extend({
                        type: p,
                        origType: M,
                        data: i,
                        handler: n,
                        guid: n.guid,
                        selector: r,
                        needsContext: r && w.expr.match.needsContext.test(r),
                        namespace: d.join(".")
                    }, o),
                    (f = c[p]) || ((f = c[p] = []).delegateCount = 0,
                    h.setup && !1 !== h.setup.call(e, i, d, a) || e.addEventListener && e.addEventListener(p, a)),
                    h.add && (h.add.call(e, l),
                    l.handler.guid || (l.handler.guid = n.guid)),
                    r ? f.splice(f.delegateCount++, 0, l) : f.push(l),
                    w.event.global[p] = !0)
        },
        remove: function(t, e, n, i, r) {
            var o, a, s, c, u, l, h, f, p, d, M, b = X.hasData(t) && X.get(t);
            if (b && (c = b.events)) {
                for (u = (e = (e || "").match(x) || [""]).length; u--; )
                    if (p = M = (s = ot.exec(e[u]) || [])[1],
                    d = (s[2] || "").split(".").sort(),
                    p) {
                        for (h = w.event.special[p] || {},
                        f = c[p = (i ? h.delegateType : h.bindType) || p] || [],
                        s = s[2] && new RegExp("(^|\\.)" + d.join("\\.(?:.*\\.|)") + "(\\.|$)"),
                        a = o = f.length; o--; )
                            l = f[o],
                            !r && M !== l.origType || n && n.guid !== l.guid || s && !s.test(l.namespace) || i && i !== l.selector && ("**" !== i || !l.selector) || (f.splice(o, 1),
                            l.selector && f.delegateCount--,
                            h.remove && h.remove.call(t, l));
                        a && !f.length && (h.teardown && !1 !== h.teardown.call(t, d, b.handle) || w.removeEvent(t, p, b.handle),
                        delete c[p])
                    } else
                        for (p in c)
                            w.event.remove(t, p + e[u], n, i, !0);
                w.isEmptyObject(c) && X.remove(t, "handle events")
            }
        },
        dispatch: function(t) {
            t = w.event.fix(t);
            var e, n, i, r, o, a, s = l.call(arguments), c = (X.get(this, "events") || {})[t.type] || [], u = w.event.special[t.type] || {};
            if ((s[0] = t).delegateTarget = this,
            !u.preDispatch || !1 !== u.preDispatch.call(this, t)) {
                for (a = w.event.handlers.call(this, t, c),
                e = 0; (r = a[e++]) && !t.isPropagationStopped(); )
                    for (t.currentTarget = r.elem,
                    n = 0; (o = r.handlers[n++]) && !t.isImmediatePropagationStopped(); )
                        t.rnamespace && !t.rnamespace.test(o.namespace) || (t.handleObj = o,
                        t.data = o.data,
                        void 0 !== (i = ((w.event.special[o.origType] || {}).handle || o.handler).apply(r.elem, s)) && !1 === (t.result = i) && (t.preventDefault(),
                        t.stopPropagation()));
                return u.postDispatch && u.postDispatch.call(this, t),
                t.result
            }
        },
        handlers: function(t, e) {
            var n, i, r, o, a = [], s = e.delegateCount, c = t.target;
            if (s && c.nodeType && ("click" !== t.type || isNaN(t.button) || t.button < 1))
                for (; c !== this; c = c.parentNode || this)
                    if (1 === c.nodeType && (!0 !== c.disabled || "click" !== t.type)) {
                        for (i = [],
                        n = 0; n < s; n++)
                            void 0 === i[r = (o = e[n]).selector + " "] && (i[r] = o.needsContext ? -1 < w(r, this).index(c) : w.find(r, this, null, [c]).length),
                            i[r] && i.push(o);
                        i.length && a.push({
                            elem: c,
                            handlers: i
                        })
                    }
            return s < e.length && a.push({
                elem: this,
                handlers: e.slice(s)
            }),
            a
        },
        props: "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
        fixHooks: {},
        keyHooks: {
            props: "char charCode key keyCode".split(" "),
            filter: function(t, e) {
                return null == t.which && (t.which = null != e.charCode ? e.charCode : e.keyCode),
                t
            }
        },
        mouseHooks: {
            props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
            filter: function(t, e) {
                var n, i, r, o = e.button;
                return null == t.pageX && null != e.clientX && (i = (n = t.target.ownerDocument || O).documentElement,
                r = n.body,
                t.pageX = e.clientX + (i && i.scrollLeft || r && r.scrollLeft || 0) - (i && i.clientLeft || r && r.clientLeft || 0),
                t.pageY = e.clientY + (i && i.scrollTop || r && r.scrollTop || 0) - (i && i.clientTop || r && r.clientTop || 0)),
                t.which || void 0 === o || (t.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0),
                t
            }
        },
        fix: function(t) {
            if (t[w.expando])
                return t;
            var e, n, i, r = t.type, o = t, a = this.fixHooks[r];
            for (a || (this.fixHooks[r] = a = rt.test(r) ? this.mouseHooks : it.test(r) ? this.keyHooks : {}),
            i = a.props ? this.props.concat(a.props) : this.props,
            t = new w.Event(o),
            e = i.length; e--; )
                t[n = i[e]] = o[n];
            return t.target || (t.target = O),
            3 === t.target.nodeType && (t.target = t.target.parentNode),
            a.filter ? a.filter(t, o) : t
        },
        special: {
            load: {
                noBubble: !0
            },
            focus: {
                trigger: function() {
                    return this !== ct() && this.focus ? (this.focus(),
                    !1) : void 0
                },
                delegateType: "focusin"
            },
            blur: {
                trigger: function() {
                    return this === ct() && this.blur ? (this.blur(),
                    !1) : void 0
                },
                delegateType: "focusout"
            },
            click: {
                trigger: function() {
                    return "checkbox" === this.type && this.click && w.nodeName(this, "input") ? (this.click(),
                    !1) : void 0
                },
                _default: function(t) {
                    return w.nodeName(t.target, "a")
                }
            },
            beforeunload: {
                postDispatch: function(t) {
                    void 0 !== t.result && t.originalEvent && (t.originalEvent.returnValue = t.result)
                }
            }
        }
    },
    w.removeEvent = function(t, e, n) {
        t.removeEventListener && t.removeEventListener(e, n)
    }
    ,
    w.Event = function(t, e) {
        return this instanceof w.Event ? (t && t.type ? (this.originalEvent = t,
        this.type = t.type,
        this.isDefaultPrevented = t.defaultPrevented || void 0 === t.defaultPrevented && !1 === t.returnValue ? at : st) : this.type = t,
        e && w.extend(this, e),
        this.timeStamp = t && t.timeStamp || w.now(),
        void (this[w.expando] = !0)) : new w.Event(t,e)
    }
    ,
    w.Event.prototype = {
        constructor: w.Event,
        isDefaultPrevented: st,
        isPropagationStopped: st,
        isImmediatePropagationStopped: st,
        isSimulated: !1,
        preventDefault: function() {
            var t = this.originalEvent;
            this.isDefaultPrevented = at,
            t && !this.isSimulated && t.preventDefault()
        },
        stopPropagation: function() {
            var t = this.originalEvent;
            this.isPropagationStopped = at,
            t && !this.isSimulated && t.stopPropagation()
        },
        stopImmediatePropagation: function() {
            var t = this.originalEvent;
            this.isImmediatePropagationStopped = at,
            t && !this.isSimulated && t.stopImmediatePropagation(),
            this.stopPropagation()
        }
    },
    w.each({
        mouseenter: "mouseover",
        mouseleave: "mouseout",
        pointerenter: "pointerover",
        pointerleave: "pointerout"
    }, function(t, r) {
        w.event.special[t] = {
            delegateType: r,
            bindType: r,
            handle: function(t) {
                var e, n = t.relatedTarget, i = t.handleObj;
                return n && (n === this || w.contains(this, n)) || (t.type = i.origType,
                e = i.handler.apply(this, arguments),
                t.type = r),
                e
            }
        }
    }),
    w.fn.extend({
        on: function(t, e, n, i) {
            return ut(this, t, e, n, i)
        },
        one: function(t, e, n, i) {
            return ut(this, t, e, n, i, 1)
        },
        off: function(t, e, n) {
            var i, r;
            if (t && t.preventDefault && t.handleObj)
                return i = t.handleObj,
                w(t.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler),
                this;
            if ("object" != typeof t)
                return !1 !== e && "function" != typeof e || (n = e,
                e = void 0),
                !1 === n && (n = st),
                this.each(function() {
                    w.event.remove(this, t, n, e)
                });
            for (r in t)
                this.off(r, e, t[r]);
            return this
        }
    });
    var lt = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi
      , ht = /<script|<style|<link/i
      , ft = /checked\s*(?:[^=]|=\s*.checked.)/i
      , pt = /^true\/(.*)/
      , dt = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
    function Mt(t, e) {
        return w.nodeName(t, "table") && w.nodeName(11 !== e.nodeType ? e : e.firstChild, "tr") ? t.getElementsByTagName("tbody")[0] || t.appendChild(t.ownerDocument.createElement("tbody")) : t
    }
    function bt(t) {
        return t.type = (null !== t.getAttribute("type")) + "/" + t.type,
        t
    }
    function mt(t) {
        var e = pt.exec(t.type);
        return e ? t.type = e[1] : t.removeAttribute("type"),
        t
    }
    function gt(t, e) {
        var n, i, r, o, a, s, c, u;
        if (1 === e.nodeType) {
            if (X.hasData(t) && (o = X.access(t),
            a = X.set(e, o),
            u = o.events))
                for (r in delete a.handle,
                a.events = {},
                u)
                    for (n = 0,
                    i = u[r].length; n < i; n++)
                        w.event.add(e, r, u[r][n]);
            D.hasData(t) && (s = D.access(t),
            c = w.extend({}, s),
            D.set(e, c))
        }
    }
    function vt(n, i, r, o) {
        i = M.apply([], i);
        var t, e, a, s, c, u, l = 0, h = n.length, f = h - 1, p = i[0], d = w.isFunction(p);
        if (d || 1 < h && "string" == typeof p && !b.checkClone && ft.test(p))
            return n.each(function(t) {
                var e = n.eq(t);
                d && (i[0] = p.call(this, t, e.html())),
                vt(e, i, r, o)
            });
        if (h && (e = (t = nt(i, n[0].ownerDocument, !1, n, o)).firstChild,
        1 === t.childNodes.length && (t = e),
        e || o)) {
            for (s = (a = w.map($(t, "script"), bt)).length; l < h; l++)
                c = t,
                l !== f && (c = w.clone(c, !0, !0),
                s && w.merge(a, $(c, "script"))),
                r.call(n[l], c, l);
            if (s)
                for (u = a[a.length - 1].ownerDocument,
                w.map(a, mt),
                l = 0; l < s; l++)
                    c = a[l],
                    K.test(c.type || "") && !X.access(c, "globalEval") && w.contains(u, c) && (c.src ? w._evalUrl && w._evalUrl(c.src) : w.globalEval(c.textContent.replace(dt, "")))
        }
        return n
    }
    function At(t, e, n) {
        for (var i, r = e ? w.filter(e, t) : t, o = 0; null != (i = r[o]); o++)
            n || 1 !== i.nodeType || w.cleanData($(i)),
            i.parentNode && (n && w.contains(i.ownerDocument, i) && J($(i, "script")),
            i.parentNode.removeChild(i));
        return t
    }
    w.extend({
        htmlPrefilter: function(t) {
            return t.replace(lt, "<$1></$2>")
        },
        clone: function(t, e, n) {
            var i, r, o, a, s, c, u, l = t.cloneNode(!0), h = w.contains(t.ownerDocument, t);
            if (!(b.noCloneChecked || 1 !== t.nodeType && 11 !== t.nodeType || w.isXMLDoc(t)))
                for (a = $(l),
                i = 0,
                r = (o = $(t)).length; i < r; i++)
                    s = o[i],
                    c = a[i],
                    u = void 0,
                    "input" === (u = c.nodeName.toLowerCase()) && G.test(s.type) ? c.checked = s.checked : "input" !== u && "textarea" !== u || (c.defaultValue = s.defaultValue);
            if (e)
                if (n)
                    for (o = o || $(t),
                    a = a || $(l),
                    i = 0,
                    r = o.length; i < r; i++)
                        gt(o[i], a[i]);
                else
                    gt(t, l);
            return 0 < (a = $(l, "script")).length && J(a, !h && $(t, "script")),
            l
        },
        cleanData: function(t) {
            for (var e, n, i, r = w.event.special, o = 0; void 0 !== (n = t[o]); o++)
                if (S(n)) {
                    if (e = n[X.expando]) {
                        if (e.events)
                            for (i in e.events)
                                r[i] ? w.event.remove(n, i) : w.removeEvent(n, i, e.handle);
                        n[X.expando] = void 0
                    }
                    n[D.expando] && (n[D.expando] = void 0)
                }
        }
    }),
    w.fn.extend({
        domManip: vt,
        detach: function(t) {
            return At(this, t, !0)
        },
        remove: function(t) {
            return At(this, t)
        },
        text: function(t) {
            return B(this, function(t) {
                return void 0 === t ? w.text(this) : this.empty().each(function() {
                    1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = t)
                })
            }, null, t, arguments.length)
        },
        append: function() {
            return vt(this, arguments, function(t) {
                1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Mt(this, t).appendChild(t)
            })
        },
        prepend: function() {
            return vt(this, arguments, function(t) {
                var e;
                1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (e = Mt(this, t)).insertBefore(t, e.firstChild)
            })
        },
        before: function() {
            return vt(this, arguments, function(t) {
                this.parentNode && this.parentNode.insertBefore(t, this)
            })
        },
        after: function() {
            return vt(this, arguments, function(t) {
                this.parentNode && this.parentNode.insertBefore(t, this.nextSibling)
            })
        },
        empty: function() {
            for (var t, e = 0; null != (t = this[e]); e++)
                1 === t.nodeType && (w.cleanData($(t, !1)),
                t.textContent = "");
            return this
        },
        clone: function(t, e) {
            return t = null != t && t,
            e = null == e ? t : e,
            this.map(function() {
                return w.clone(this, t, e)
            })
        },
        html: function(t) {
            return B(this, function(t) {
                var e = this[0] || {}
                  , n = 0
                  , i = this.length;
                if (void 0 === t && 1 === e.nodeType)
                    return e.innerHTML;
                if ("string" == typeof t && !ht.test(t) && !Q[(V.exec(t) || ["", ""])[1].toLowerCase()]) {
                    t = w.htmlPrefilter(t);
                    try {
                        for (; n < i; n++)
                            1 === (e = this[n] || {}).nodeType && (w.cleanData($(e, !1)),
                            e.innerHTML = t);
                        e = 0
                    } catch (t) {}
                }
                e && this.empty().append(t)
            }, null, t, arguments.length)
        },
        replaceWith: function() {
            var n = [];
            return vt(this, arguments, function(t) {
                var e = this.parentNode;
                w.inArray(this, n) < 0 && (w.cleanData($(this)),
                e && e.replaceChild(t, this))
            }, n)
        }
    }),
    w.each({
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith"
    }, function(t, a) {
        w.fn[t] = function(t) {
            for (var e, n = [], i = w(t), r = i.length - 1, o = 0; o <= r; o++)
                e = o === r ? this : this.clone(!0),
                w(i[o])[a](e),
                s.apply(n, e.get());
            return this.pushStack(n)
        }
    });
    var yt, zt = {
        HTML: "block",
        BODY: "block"
    };
    function _t(t, e) {
        var n = w(e.createElement(t)).appendTo(e.body)
          , i = w.css(n[0], "display");
        return n.detach(),
        i
    }
    function Ot(t) {
        var e = O
          , n = zt[t];
        return n || ("none" !== (n = _t(t, e)) && n || ((e = (yt = (yt || w("<iframe frameborder='0' width='0' height='0'/>")).appendTo(e.documentElement))[0].contentDocument).write(),
        e.close(),
        n = _t(t, e),
        yt.detach()),
        zt[t] = n),
        n
    }
    function wt(t, e, n, i) {
        var r, o, a = {};
        for (o in e)
            a[o] = t.style[o],
            t.style[o] = e[o];
        for (o in r = n.apply(t, i || []),
        e)
            t.style[o] = a[o];
        return r
    }
    var Lt, Nt, qt, Wt, Tt, Ct, xt = /^margin/, kt = new RegExp("^(" + H + ")(?!px)[a-z%]+$","i"), St = function(t) {
        var e = t.ownerDocument.defaultView;
        return e && e.opener || (e = _),
        e.getComputedStyle(t)
    }, Bt = O.documentElement;
    function Et() {
        Ct.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",
        Ct.innerHTML = "",
        Bt.appendChild(Tt);
        var t = _.getComputedStyle(Ct);
        Lt = "1%" !== t.top,
        Wt = "2px" === t.marginLeft,
        Nt = "4px" === t.width,
        Ct.style.marginRight = "50%",
        qt = "4px" === t.marginRight,
        Bt.removeChild(Tt)
    }
    function Xt(t, e, n) {
        var i, r, o, a, s = t.style;
        return "" !== (a = (n = n || St(t)) ? n.getPropertyValue(e) || n[e] : void 0) && void 0 !== a || w.contains(t.ownerDocument, t) || (a = w.style(t, e)),
        n && !b.pixelMarginRight() && kt.test(a) && xt.test(e) && (i = s.width,
        r = s.minWidth,
        o = s.maxWidth,
        s.minWidth = s.maxWidth = s.width = a,
        a = n.width,
        s.width = i,
        s.minWidth = r,
        s.maxWidth = o),
        void 0 !== a ? a + "" : a
    }
    function Dt(t, e) {
        return {
            get: function() {
                return t() ? void delete this.get : (this.get = e).apply(this, arguments)
            }
        }
    }
    Tt = O.createElement("div"),
    (Ct = O.createElement("div")).style && (Ct.style.backgroundClip = "content-box",
    Ct.cloneNode(!0).style.backgroundClip = "",
    b.clearCloneStyle = "content-box" === Ct.style.backgroundClip,
    Tt.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",
    Tt.appendChild(Ct),
    w.extend(b, {
        pixelPosition: function() {
            return Et(),
            Lt
        },
        boxSizingReliable: function() {
            return null == Nt && Et(),
            Nt
        },
        pixelMarginRight: function() {
            return null == Nt && Et(),
            qt
        },
        reliableMarginLeft: function() {
            return null == Nt && Et(),
            Wt
        },
        reliableMarginRight: function() {
            var t, e = Ct.appendChild(O.createElement("div"));
            return e.style.cssText = Ct.style.cssText = "-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",
            e.style.marginRight = e.style.width = "0",
            Ct.style.width = "1px",
            Bt.appendChild(Tt),
            t = !parseFloat(_.getComputedStyle(e).marginRight),
            Bt.removeChild(Tt),
            Ct.removeChild(e),
            t
        }
    }));
    var Rt = /^(none|table(?!-c[ea]).+)/
      , Pt = {
        position: "absolute",
        visibility: "hidden",
        display: "block"
    }
      , It = {
        letterSpacing: "0",
        fontWeight: "400"
    }
      , jt = ["Webkit", "O", "Moz", "ms"]
      , Ht = O.createElement("div").style;
    function Ft(t) {
        if (t in Ht)
            return t;
        for (var e = t[0].toUpperCase() + t.slice(1), n = jt.length; n--; )
            if ((t = jt[n] + e)in Ht)
                return t
    }
    function Ut(t, e, n) {
        var i = F.exec(e);
        return i ? Math.max(0, i[2] - (n || 0)) + (i[3] || "px") : e
    }
    function Yt(t, e, n, i, r) {
        for (var o = n === (i ? "border" : "content") ? 4 : "width" === e ? 1 : 0, a = 0; o < 4; o += 2)
            "margin" === n && (a += w.css(t, n + U[o], !0, r)),
            i ? ("content" === n && (a -= w.css(t, "padding" + U[o], !0, r)),
            "margin" !== n && (a -= w.css(t, "border" + U[o] + "Width", !0, r))) : (a += w.css(t, "padding" + U[o], !0, r),
            "padding" !== n && (a += w.css(t, "border" + U[o] + "Width", !0, r)));
        return a
    }
    function Gt(t, e, n) {
        var i = !0
          , r = "width" === e ? t.offsetWidth : t.offsetHeight
          , o = St(t)
          , a = "border-box" === w.css(t, "boxSizing", !1, o);
        if (r <= 0 || null == r) {
            if (((r = Xt(t, e, o)) < 0 || null == r) && (r = t.style[e]),
            kt.test(r))
                return r;
            i = a && (b.boxSizingReliable() || r === t.style[e]),
            r = parseFloat(r) || 0
        }
        return r + Yt(t, e, n || (a ? "border" : "content"), i, o) + "px"
    }
    function Vt(t, e) {
        for (var n, i, r, o = [], a = 0, s = t.length; a < s; a++)
            (i = t[a]).style && (o[a] = X.get(i, "olddisplay"),
            n = i.style.display,
            e ? (o[a] || "none" !== n || (i.style.display = ""),
            "" === i.style.display && j(i) && (o[a] = X.access(i, "olddisplay", Ot(i.nodeName)))) : (r = j(i),
            "none" === n && r || X.set(i, "olddisplay", r ? n : w.css(i, "display"))));
        for (a = 0; a < s; a++)
            (i = t[a]).style && (e && "none" !== i.style.display && "" !== i.style.display || (i.style.display = e ? o[a] || "" : "none"));
        return t
    }
    function Kt(t, e, n, i, r) {
        return new Kt.prototype.init(t,e,n,i,r)
    }
    w.extend({
        cssHooks: {
            opacity: {
                get: function(t, e) {
                    if (e) {
                        var n = Xt(t, "opacity");
                        return "" === n ? "1" : n
                    }
                }
            }
        },
        cssNumber: {
            animationIterationCount: !0,
            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(t, e, n, i) {
            if (t && 3 !== t.nodeType && 8 !== t.nodeType && t.style) {
                var r, o, a, s = w.camelCase(e), c = t.style;
                return e = w.cssProps[s] || (w.cssProps[s] = Ft(s) || s),
                a = w.cssHooks[e] || w.cssHooks[s],
                void 0 === n ? a && "get"in a && void 0 !== (r = a.get(t, !1, i)) ? r : c[e] : ("string" === (o = typeof n) && (r = F.exec(n)) && r[1] && (n = Y(t, e, r),
                o = "number"),
                void (null != n && n == n && ("number" === o && (n += r && r[3] || (w.cssNumber[s] ? "" : "px")),
                b.clearCloneStyle || "" !== n || 0 !== e.indexOf("background") || (c[e] = "inherit"),
                a && "set"in a && void 0 === (n = a.set(t, n, i)) || (c[e] = n))))
            }
        },
        css: function(t, e, n, i) {
            var r, o, a, s = w.camelCase(e);
            return e = w.cssProps[s] || (w.cssProps[s] = Ft(s) || s),
            (a = w.cssHooks[e] || w.cssHooks[s]) && "get"in a && (r = a.get(t, !0, n)),
            void 0 === r && (r = Xt(t, e, i)),
            "normal" === r && e in It && (r = It[e]),
            "" === n || n ? (o = parseFloat(r),
            !0 === n || isFinite(o) ? o || 0 : r) : r
        }
    }),
    w.each(["height", "width"], function(t, a) {
        w.cssHooks[a] = {
            get: function(t, e, n) {
                return e ? Rt.test(w.css(t, "display")) && 0 === t.offsetWidth ? wt(t, Pt, function() {
                    return Gt(t, a, n)
                }) : Gt(t, a, n) : void 0
            },
            set: function(t, e, n) {
                var i, r = n && St(t), o = n && Yt(t, a, n, "border-box" === w.css(t, "boxSizing", !1, r), r);
                return o && (i = F.exec(e)) && "px" !== (i[3] || "px") && (t.style[a] = e,
                e = w.css(t, a)),
                Ut(0, e, o)
            }
        }
    }),
    w.cssHooks.marginLeft = Dt(b.reliableMarginLeft, function(t, e) {
        return e ? (parseFloat(Xt(t, "marginLeft")) || t.getBoundingClientRect().left - wt(t, {
            marginLeft: 0
        }, function() {
            return t.getBoundingClientRect().left
        })) + "px" : void 0
    }),
    w.cssHooks.marginRight = Dt(b.reliableMarginRight, function(t, e) {
        return e ? wt(t, {
            display: "inline-block"
        }, Xt, [t, "marginRight"]) : void 0
    }),
    w.each({
        margin: "",
        padding: "",
        border: "Width"
    }, function(r, o) {
        w.cssHooks[r + o] = {
            expand: function(t) {
                for (var e = 0, n = {}, i = "string" == typeof t ? t.split(" ") : [t]; e < 4; e++)
                    n[r + U[e] + o] = i[e] || i[e - 2] || i[0];
                return n
            }
        },
        xt.test(r) || (w.cssHooks[r + o].set = Ut)
    }),
    w.fn.extend({
        css: function(t, e) {
            return B(this, function(t, e, n) {
                var i, r, o = {}, a = 0;
                if (w.isArray(e)) {
                    for (i = St(t),
                    r = e.length; a < r; a++)
                        o[e[a]] = w.css(t, e[a], !1, i);
                    return o
                }
                return void 0 !== n ? w.style(t, e, n) : w.css(t, e)
            }, t, e, 1 < arguments.length)
        },
        show: function() {
            return Vt(this, !0)
        },
        hide: function() {
            return Vt(this)
        },
        toggle: function(t) {
            return "boolean" == typeof t ? t ? this.show() : this.hide() : this.each(function() {
                j(this) ? w(this).show() : w(this).hide()
            })
        }
    }),
    (w.Tween = Kt).prototype = {
        constructor: Kt,
        init: function(t, e, n, i, r, o) {
            this.elem = t,
            this.prop = n,
            this.easing = r || w.easing._default,
            this.options = e,
            this.start = this.now = this.cur(),
            this.end = i,
            this.unit = o || (w.cssNumber[n] ? "" : "px")
        },
        cur: function() {
            var t = Kt.propHooks[this.prop];
            return t && t.get ? t.get(this) : Kt.propHooks._default.get(this)
        },
        run: function(t) {
            var e, n = Kt.propHooks[this.prop];
            return this.options.duration ? this.pos = e = w.easing[this.easing](t, this.options.duration * t, 0, 1, this.options.duration) : this.pos = e = t,
            this.now = (this.end - this.start) * e + this.start,
            this.options.step && this.options.step.call(this.elem, this.now, this),
            n && n.set ? n.set(this) : Kt.propHooks._default.set(this),
            this
        }
    },
    Kt.prototype.init.prototype = Kt.prototype,
    Kt.propHooks = {
        _default: {
            get: function(t) {
                var e;
                return 1 !== t.elem.nodeType || null != t.elem[t.prop] && null == t.elem.style[t.prop] ? t.elem[t.prop] : (e = w.css(t.elem, t.prop, "")) && "auto" !== e ? e : 0
            },
            set: function(t) {
                w.fx.step[t.prop] ? w.fx.step[t.prop](t) : 1 !== t.elem.nodeType || null == t.elem.style[w.cssProps[t.prop]] && !w.cssHooks[t.prop] ? t.elem[t.prop] = t.now : w.style(t.elem, t.prop, t.now + t.unit)
            }
        }
    },
    Kt.propHooks.scrollTop = Kt.propHooks.scrollLeft = {
        set: function(t) {
            t.elem.nodeType && t.elem.parentNode && (t.elem[t.prop] = t.now)
        }
    },
    w.easing = {
        linear: function(t) {
            return t
        },
        swing: function(t) {
            return .5 - Math.cos(t * Math.PI) / 2
        },
        _default: "swing"
    },
    w.fx = Kt.prototype.init,
    w.fx.step = {};
    var Qt, $t, Jt, Zt, te, ee = /^(?:toggle|show|hide)$/, ne = /queueHooks$/;
    function ie() {
        return _.setTimeout(function() {
            Qt = void 0
        }),
        Qt = w.now()
    }
    function re(t, e) {
        var n, i = 0, r = {
            height: t
        };
        for (e = e ? 1 : 0; i < 4; i += 2 - e)
            r["margin" + (n = U[i])] = r["padding" + n] = t;
        return e && (r.opacity = r.width = t),
        r
    }
    function oe(t, e, n) {
        for (var i, r = (ae.tweeners[e] || []).concat(ae.tweeners["*"]), o = 0, a = r.length; o < a; o++)
            if (i = r[o].call(n, e, t))
                return i
    }
    function ae(o, t, e) {
        var n, a, i = 0, r = ae.prefilters.length, s = w.Deferred().always(function() {
            delete c.elem
        }), c = function() {
            if (a)
                return !1;
            for (var t = Qt || ie(), e = Math.max(0, u.startTime + u.duration - t), n = 1 - (e / u.duration || 0), i = 0, r = u.tweens.length; i < r; i++)
                u.tweens[i].run(n);
            return s.notifyWith(o, [u, n, e]),
            n < 1 && r ? e : (s.resolveWith(o, [u]),
            !1)
        }, u = s.promise({
            elem: o,
            props: w.extend({}, t),
            opts: w.extend(!0, {
                specialEasing: {},
                easing: w.easing._default
            }, e),
            originalProperties: t,
            originalOptions: e,
            startTime: Qt || ie(),
            duration: e.duration,
            tweens: [],
            createTween: function(t, e) {
                var n = w.Tween(o, u.opts, t, e, u.opts.specialEasing[t] || u.opts.easing);
                return u.tweens.push(n),
                n
            },
            stop: function(t) {
                var e = 0
                  , n = t ? u.tweens.length : 0;
                if (a)
                    return this;
                for (a = !0; e < n; e++)
                    u.tweens[e].run(1);
                return t ? (s.notifyWith(o, [u, 1, 0]),
                s.resolveWith(o, [u, t])) : s.rejectWith(o, [u, t]),
                this
            }
        }), l = u.props;
        for (function(t, e) {
            var n, i, r, o, a;
            for (n in t)
                if (r = e[i = w.camelCase(n)],
                o = t[n],
                w.isArray(o) && (r = o[1],
                o = t[n] = o[0]),
                n !== i && (t[i] = o,
                delete t[n]),
                (a = w.cssHooks[i]) && "expand"in a)
                    for (n in o = a.expand(o),
                    delete t[i],
                    o)
                        n in t || (t[n] = o[n],
                        e[n] = r);
                else
                    e[i] = r
        }(l, u.opts.specialEasing); i < r; i++)
            if (n = ae.prefilters[i].call(u, o, l, u.opts))
                return w.isFunction(n.stop) && (w._queueHooks(u.elem, u.opts.queue).stop = w.proxy(n.stop, n)),
                n;
        return w.map(l, oe, u),
        w.isFunction(u.opts.start) && u.opts.start.call(o, u),
        w.fx.timer(w.extend(c, {
            elem: o,
            anim: u,
            queue: u.opts.queue
        })),
        u.progress(u.opts.progress).done(u.opts.done, u.opts.complete).fail(u.opts.fail).always(u.opts.always)
    }
    w.Animation = w.extend(ae, {
        tweeners: {
            "*": [function(t, e) {
                var n = this.createTween(t, e);
                return Y(n.elem, t, F.exec(e), n),
                n
            }
            ]
        },
        tweener: function(t, e) {
            for (var n, i = 0, r = (t = w.isFunction(t) ? (e = t,
            ["*"]) : t.match(x)).length; i < r; i++)
                n = t[i],
                ae.tweeners[n] = ae.tweeners[n] || [],
                ae.tweeners[n].unshift(e)
        },
        prefilters: [function(e, t, n) {
            var i, r, o, a, s, c, u, l = this, h = {}, f = e.style, p = e.nodeType && j(e), d = X.get(e, "fxshow");
            for (i in n.queue || (null == (s = w._queueHooks(e, "fx")).unqueued && (s.unqueued = 0,
            c = s.empty.fire,
            s.empty.fire = function() {
                s.unqueued || c()
            }
            ),
            s.unqueued++,
            l.always(function() {
                l.always(function() {
                    s.unqueued--,
                    w.queue(e, "fx").length || s.empty.fire()
                })
            })),
            1 === e.nodeType && ("height"in t || "width"in t) && (n.overflow = [f.overflow, f.overflowX, f.overflowY],
            "inline" === ("none" === (u = w.css(e, "display")) ? X.get(e, "olddisplay") || Ot(e.nodeName) : u) && "none" === w.css(e, "float") && (f.display = "inline-block")),
            n.overflow && (f.overflow = "hidden",
            l.always(function() {
                f.overflow = n.overflow[0],
                f.overflowX = n.overflow[1],
                f.overflowY = n.overflow[2]
            })),
            t)
                if (r = t[i],
                ee.exec(r)) {
                    if (delete t[i],
                    o = o || "toggle" === r,
                    r === (p ? "hide" : "show")) {
                        if ("show" !== r || !d || void 0 === d[i])
                            continue;
                        p = !0
                    }
                    h[i] = d && d[i] || w.style(e, i)
                } else
                    u = void 0;
            if (w.isEmptyObject(h))
                "inline" === ("none" === u ? Ot(e.nodeName) : u) && (f.display = u);
            else
                for (i in d ? "hidden"in d && (p = d.hidden) : d = X.access(e, "fxshow", {}),
                o && (d.hidden = !p),
                p ? w(e).show() : l.done(function() {
                    w(e).hide()
                }),
                l.done(function() {
                    var t;
                    for (t in X.remove(e, "fxshow"),
                    h)
                        w.style(e, t, h[t])
                }),
                h)
                    a = oe(p ? d[i] : 0, i, l),
                    i in d || (d[i] = a.start,
                    p && (a.end = a.start,
                    a.start = "width" === i || "height" === i ? 1 : 0))
        }
        ],
        prefilter: function(t, e) {
            e ? ae.prefilters.unshift(t) : ae.prefilters.push(t)
        }
    }),
    w.speed = function(t, e, n) {
        var i = t && "object" == typeof t ? w.extend({}, t) : {
            complete: n || !n && e || w.isFunction(t) && t,
            duration: t,
            easing: n && e || e && !w.isFunction(e) && e
        };
        return i.duration = w.fx.off ? 0 : "number" == typeof i.duration ? i.duration : i.duration in w.fx.speeds ? w.fx.speeds[i.duration] : w.fx.speeds._default,
        null != i.queue && !0 !== i.queue || (i.queue = "fx"),
        i.old = i.complete,
        i.complete = function() {
            w.isFunction(i.old) && i.old.call(this),
            i.queue && w.dequeue(this, i.queue)
        }
        ,
        i
    }
    ,
    w.fn.extend({
        fadeTo: function(t, e, n, i) {
            return this.filter(j).css("opacity", 0).show().end().animate({
                opacity: e
            }, t, n, i)
        },
        animate: function(e, t, n, i) {
            function r() {
                var t = ae(this, w.extend({}, e), a);
                (o || X.get(this, "finish")) && t.stop(!0)
            }
            var o = w.isEmptyObject(e)
              , a = w.speed(t, n, i);
            return r.finish = r,
            o || !1 === a.queue ? this.each(r) : this.queue(a.queue, r)
        },
        stop: function(r, t, o) {
            function a(t) {
                var e = t.stop;
                delete t.stop,
                e(o)
            }
            return "string" != typeof r && (o = t,
            t = r,
            r = void 0),
            t && !1 !== r && this.queue(r || "fx", []),
            this.each(function() {
                var t = !0
                  , e = null != r && r + "queueHooks"
                  , n = w.timers
                  , i = X.get(this);
                if (e)
                    i[e] && i[e].stop && a(i[e]);
                else
                    for (e in i)
                        i[e] && i[e].stop && ne.test(e) && a(i[e]);
                for (e = n.length; e--; )
                    n[e].elem !== this || null != r && n[e].queue !== r || (n[e].anim.stop(o),
                    t = !1,
                    n.splice(e, 1));
                !t && o || w.dequeue(this, r)
            })
        },
        finish: function(a) {
            return !1 !== a && (a = a || "fx"),
            this.each(function() {
                var t, e = X.get(this), n = e[a + "queue"], i = e[a + "queueHooks"], r = w.timers, o = n ? n.length : 0;
                for (e.finish = !0,
                w.queue(this, a, []),
                i && i.stop && i.stop.call(this, !0),
                t = r.length; t--; )
                    r[t].elem === this && r[t].queue === a && (r[t].anim.stop(!0),
                    r.splice(t, 1));
                for (t = 0; t < o; t++)
                    n[t] && n[t].finish && n[t].finish.call(this);
                delete e.finish
            })
        }
    }),
    w.each(["toggle", "show", "hide"], function(t, i) {
        var r = w.fn[i];
        w.fn[i] = function(t, e, n) {
            return null == t || "boolean" == typeof t ? r.apply(this, arguments) : this.animate(re(i, !0), t, e, n)
        }
    }),
    w.each({
        slideDown: re("show"),
        slideUp: re("hide"),
        slideToggle: re("toggle"),
        fadeIn: {
            opacity: "show"
        },
        fadeOut: {
            opacity: "hide"
        },
        fadeToggle: {
            opacity: "toggle"
        }
    }, function(t, i) {
        w.fn[t] = function(t, e, n) {
            return this.animate(i, t, e, n)
        }
    }),
    w.timers = [],
    w.fx.tick = function() {
        var t, e = 0, n = w.timers;
        for (Qt = w.now(); e < n.length; e++)
            (t = n[e])() || n[e] !== t || n.splice(e--, 1);
        n.length || w.fx.stop(),
        Qt = void 0
    }
    ,
    w.fx.timer = function(t) {
        w.timers.push(t),
        t() ? w.fx.start() : w.timers.pop()
    }
    ,
    w.fx.interval = 13,
    w.fx.start = function() {
        $t = $t || _.setInterval(w.fx.tick, w.fx.interval)
    }
    ,
    w.fx.stop = function() {
        _.clearInterval($t),
        $t = null
    }
    ,
    w.fx.speeds = {
        slow: 600,
        fast: 200,
        _default: 400
    },
    w.fn.delay = function(i, t) {
        return i = w.fx && w.fx.speeds[i] || i,
        t = t || "fx",
        this.queue(t, function(t, e) {
            var n = _.setTimeout(t, i);
            e.stop = function() {
                _.clearTimeout(n)
            }
        })
    }
    ,
    Jt = O.createElement("input"),
    Zt = O.createElement("select"),
    te = Zt.appendChild(O.createElement("option")),
    Jt.type = "checkbox",
    b.checkOn = "" !== Jt.value,
    b.optSelected = te.selected,
    Zt.disabled = !0,
    b.optDisabled = !te.disabled,
    (Jt = O.createElement("input")).value = "t",
    Jt.type = "radio",
    b.radioValue = "t" === Jt.value;
    var se, ce = w.expr.attrHandle;
    w.fn.extend({
        attr: function(t, e) {
            return B(this, w.attr, t, e, 1 < arguments.length)
        },
        removeAttr: function(t) {
            return this.each(function() {
                w.removeAttr(this, t)
            })
        }
    }),
    w.extend({
        attr: function(t, e, n) {
            var i, r, o = t.nodeType;
            if (3 !== o && 8 !== o && 2 !== o)
                return void 0 === t.getAttribute ? w.prop(t, e, n) : (1 === o && w.isXMLDoc(t) || (e = e.toLowerCase(),
                r = w.attrHooks[e] || (w.expr.match.bool.test(e) ? se : void 0)),
                void 0 !== n ? null === n ? void w.removeAttr(t, e) : r && "set"in r && void 0 !== (i = r.set(t, n, e)) ? i : (t.setAttribute(e, n + ""),
                n) : r && "get"in r && null !== (i = r.get(t, e)) ? i : null == (i = w.find.attr(t, e)) ? void 0 : i)
        },
        attrHooks: {
            type: {
                set: function(t, e) {
                    if (!b.radioValue && "radio" === e && w.nodeName(t, "input")) {
                        var n = t.value;
                        return t.setAttribute("type", e),
                        n && (t.value = n),
                        e
                    }
                }
            }
        },
        removeAttr: function(t, e) {
            var n, i, r = 0, o = e && e.match(x);
            if (o && 1 === t.nodeType)
                for (; n = o[r++]; )
                    i = w.propFix[n] || n,
                    w.expr.match.bool.test(n) && (t[i] = !1),
                    t.removeAttribute(n)
        }
    }),
    se = {
        set: function(t, e, n) {
            return !1 === e ? w.removeAttr(t, n) : t.setAttribute(n, n),
            n
        }
    },
    w.each(w.expr.match.bool.source.match(/\w+/g), function(t, e) {
        var o = ce[e] || w.find.attr;
        ce[e] = function(t, e, n) {
            var i, r;
            return n || (r = ce[e],
            ce[e] = i,
            i = null != o(t, e, n) ? e.toLowerCase() : null,
            ce[e] = r),
            i
        }
    });
    var ue = /^(?:input|select|textarea|button)$/i
      , le = /^(?:a|area)$/i;
    w.fn.extend({
        prop: function(t, e) {
            return B(this, w.prop, t, e, 1 < arguments.length)
        },
        removeProp: function(t) {
            return this.each(function() {
                delete this[w.propFix[t] || t]
            })
        }
    }),
    w.extend({
        prop: function(t, e, n) {
            var i, r, o = t.nodeType;
            if (3 !== o && 8 !== o && 2 !== o)
                return 1 === o && w.isXMLDoc(t) || (e = w.propFix[e] || e,
                r = w.propHooks[e]),
                void 0 !== n ? r && "set"in r && void 0 !== (i = r.set(t, n, e)) ? i : t[e] = n : r && "get"in r && null !== (i = r.get(t, e)) ? i : t[e]
        },
        propHooks: {
            tabIndex: {
                get: function(t) {
                    var e = w.find.attr(t, "tabindex");
                    return e ? parseInt(e, 10) : ue.test(t.nodeName) || le.test(t.nodeName) && t.href ? 0 : -1
                }
            }
        },
        propFix: {
            for: "htmlFor",
            class: "className"
        }
    }),
    b.optSelected || (w.propHooks.selected = {
        get: function(t) {
            var e = t.parentNode;
            return e && e.parentNode && e.parentNode.selectedIndex,
            null
        },
        set: function(t) {
            var e = t.parentNode;
            e && (e.selectedIndex,
            e.parentNode && e.parentNode.selectedIndex)
        }
    }),
    w.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
        w.propFix[this.toLowerCase()] = this
    });
    var he = /[\t\r\n\f]/g;
    function fe(t) {
        return t.getAttribute && t.getAttribute("class") || ""
    }
    w.fn.extend({
        addClass: function(e) {
            var t, n, i, r, o, a, s, c = 0;
            if (w.isFunction(e))
                return this.each(function(t) {
                    w(this).addClass(e.call(this, t, fe(this)))
                });
            if ("string" == typeof e && e)
                for (t = e.match(x) || []; n = this[c++]; )
                    if (r = fe(n),
                    i = 1 === n.nodeType && (" " + r + " ").replace(he, " ")) {
                        for (a = 0; o = t[a++]; )
                            i.indexOf(" " + o + " ") < 0 && (i += o + " ");
                        r !== (s = w.trim(i)) && n.setAttribute("class", s)
                    }
            return this
        },
        removeClass: function(e) {
            var t, n, i, r, o, a, s, c = 0;
            if (w.isFunction(e))
                return this.each(function(t) {
                    w(this).removeClass(e.call(this, t, fe(this)))
                });
            if (!arguments.length)
                return this.attr("class", "");
            if ("string" == typeof e && e)
                for (t = e.match(x) || []; n = this[c++]; )
                    if (r = fe(n),
                    i = 1 === n.nodeType && (" " + r + " ").replace(he, " ")) {
                        for (a = 0; o = t[a++]; )
                            for (; -1 < i.indexOf(" " + o + " "); )
                                i = i.replace(" " + o + " ", " ");
                        r !== (s = w.trim(i)) && n.setAttribute("class", s)
                    }
            return this
        },
        toggleClass: function(r, e) {
            var o = typeof r;
            return "boolean" == typeof e && "string" == o ? e ? this.addClass(r) : this.removeClass(r) : w.isFunction(r) ? this.each(function(t) {
                w(this).toggleClass(r.call(this, t, fe(this), e), e)
            }) : this.each(function() {
                var t, e, n, i;
                if ("string" == o)
                    for (e = 0,
                    n = w(this),
                    i = r.match(x) || []; t = i[e++]; )
                        n.hasClass(t) ? n.removeClass(t) : n.addClass(t);
                else
                    void 0 !== r && "boolean" != o || ((t = fe(this)) && X.set(this, "__className__", t),
                    this.setAttribute && this.setAttribute("class", !t && !1 !== r && X.get(this, "__className__") || ""))
            })
        },
        hasClass: function(t) {
            for (var e, n = 0, i = " " + t + " "; e = this[n++]; )
                if (1 === e.nodeType && -1 < (" " + fe(e) + " ").replace(he, " ").indexOf(i))
                    return !0;
            return !1
        }
    });
    var pe = /\r/g
      , de = /[\x20\t\r\n\f]+/g;
    w.fn.extend({
        val: function(n) {
            var i, t, r, e = this[0];
            return arguments.length ? (r = w.isFunction(n),
            this.each(function(t) {
                var e;
                1 === this.nodeType && (null == (e = r ? n.call(this, t, w(this).val()) : n) ? e = "" : "number" == typeof e ? e += "" : w.isArray(e) && (e = w.map(e, function(t) {
                    return null == t ? "" : t + ""
                })),
                (i = w.valHooks[this.type] || w.valHooks[this.nodeName.toLowerCase()]) && "set"in i && void 0 !== i.set(this, e, "value") || (this.value = e))
            })) : e ? (i = w.valHooks[e.type] || w.valHooks[e.nodeName.toLowerCase()]) && "get"in i && void 0 !== (t = i.get(e, "value")) ? t : "string" == typeof (t = e.value) ? t.replace(pe, "") : null == t ? "" : t : void 0
        }
    }),
    w.extend({
        valHooks: {
            option: {
                get: function(t) {
                    var e = w.find.attr(t, "value");
                    return null != e ? e : w.trim(w.text(t)).replace(de, " ")
                }
            },
            select: {
                get: function(t) {
                    for (var e, n, i = t.options, r = t.selectedIndex, o = "select-one" === t.type || r < 0, a = o ? null : [], s = o ? r + 1 : i.length, c = r < 0 ? s : o ? r : 0; c < s; c++)
                        if (((n = i[c]).selected || c === r) && (b.optDisabled ? !n.disabled : null === n.getAttribute("disabled")) && (!n.parentNode.disabled || !w.nodeName(n.parentNode, "optgroup"))) {
                            if (e = w(n).val(),
                            o)
                                return e;
                            a.push(e)
                        }
                    return a
                },
                set: function(t, e) {
                    for (var n, i, r = t.options, o = w.makeArray(e), a = r.length; a--; )
                        ((i = r[a]).selected = -1 < w.inArray(w.valHooks.option.get(i), o)) && (n = !0);
                    return n || (t.selectedIndex = -1),
                    o
                }
            }
        }
    }),
    w.each(["radio", "checkbox"], function() {
        w.valHooks[this] = {
            set: function(t, e) {
                return w.isArray(e) ? t.checked = -1 < w.inArray(w(t).val(), e) : void 0
            }
        },
        b.checkOn || (w.valHooks[this].get = function(t) {
            return null === t.getAttribute("value") ? "on" : t.value
        }
        )
    });
    var Me = /^(?:focusinfocus|focusoutblur)$/;
    w.extend(w.event, {
        trigger: function(t, e, n, i) {
            var r, o, a, s, c, u, l = [n || O], h = d.call(t, "type") ? t.type : t, f = d.call(t, "namespace") ? t.namespace.split(".") : [], p = o = n = n || O;
            if (3 !== n.nodeType && 8 !== n.nodeType && !Me.test(h + w.event.triggered) && (-1 < h.indexOf(".") && (h = (f = h.split(".")).shift(),
            f.sort()),
            s = h.indexOf(":") < 0 && "on" + h,
            (t = t[w.expando] ? t : new w.Event(h,"object" == typeof t && t)).isTrigger = i ? 2 : 3,
            t.namespace = f.join("."),
            t.rnamespace = t.namespace ? new RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)") : null,
            t.result = void 0,
            t.target || (t.target = n),
            e = null == e ? [t] : w.makeArray(e, [t]),
            u = w.event.special[h] || {},
            i || !u.trigger || !1 !== u.trigger.apply(n, e))) {
                if (!i && !u.noBubble && !w.isWindow(n)) {
                    for (a = u.delegateType || h,
                    Me.test(a + h) || (p = p.parentNode); p; p = p.parentNode)
                        l.push(p),
                        o = p;
                    o === (n.ownerDocument || O) && l.push(o.defaultView || o.parentWindow || _)
                }
                for (r = 0; (p = l[r++]) && !t.isPropagationStopped(); )
                    t.type = 1 < r ? a : u.bindType || h,
                    (c = (X.get(p, "events") || {})[t.type] && X.get(p, "handle")) && c.apply(p, e),
                    (c = s && p[s]) && c.apply && S(p) && (t.result = c.apply(p, e),
                    !1 === t.result && t.preventDefault());
                return t.type = h,
                i || t.isDefaultPrevented() || u._default && !1 !== u._default.apply(l.pop(), e) || !S(n) || s && w.isFunction(n[h]) && !w.isWindow(n) && ((o = n[s]) && (n[s] = null),
                n[w.event.triggered = h](),
                w.event.triggered = void 0,
                o && (n[s] = o)),
                t.result
            }
        },
        simulate: function(t, e, n) {
            var i = w.extend(new w.Event, n, {
                type: t,
                isSimulated: !0
            });
            w.event.trigger(i, null, e)
        }
    }),
    w.fn.extend({
        trigger: function(t, e) {
            return this.each(function() {
                w.event.trigger(t, e, this)
            })
        },
        triggerHandler: function(t, e) {
            var n = this[0];
            return n ? w.event.trigger(t, e, n, !0) : void 0
        }
    }),
    w.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(t, n) {
        w.fn[n] = function(t, e) {
            return 0 < arguments.length ? this.on(n, null, t, e) : this.trigger(n)
        }
    }),
    w.fn.extend({
        hover: function(t, e) {
            return this.mouseenter(t).mouseleave(e || t)
        }
    }),
    b.focusin = "onfocusin"in _,
    b.focusin || w.each({
        focus: "focusin",
        blur: "focusout"
    }, function(n, i) {
        function r(t) {
            w.event.simulate(i, t.target, w.event.fix(t))
        }
        w.event.special[i] = {
            setup: function() {
                var t = this.ownerDocument || this
                  , e = X.access(t, i);
                e || t.addEventListener(n, r, !0),
                X.access(t, i, (e || 0) + 1)
            },
            teardown: function() {
                var t = this.ownerDocument || this
                  , e = X.access(t, i) - 1;
                e ? X.access(t, i, e) : (t.removeEventListener(n, r, !0),
                X.remove(t, i))
            }
        }
    });
    var be = _.location
      , me = w.now()
      , ge = /\?/;
    w.parseJSON = function(t) {
        return JSON.parse(t + "")
    }
    ,
    w.parseXML = function(t) {
        var e;
        if (!t || "string" != typeof t)
            return null;
        try {
            e = (new _.DOMParser).parseFromString(t, "text/xml")
        } catch (t) {
            e = void 0
        }
        return e && !e.getElementsByTagName("parsererror").length || w.error("Invalid XML: " + t),
        e
    }
    ;
    var ve = /#.*$/
      , Ae = /([?&])_=[^&]*/
      , ye = /^(.*?):[ \t]*([^\r\n]*)$/gm
      , ze = /^(?:GET|HEAD)$/
      , _e = /^\/\//
      , Oe = {}
      , we = {}
      , Le = "*/".concat("*")
      , Ne = O.createElement("a");
    function qe(o) {
        return function(t, e) {
            "string" != typeof t && (e = t,
            t = "*");
            var n, i = 0, r = t.toLowerCase().match(x) || [];
            if (w.isFunction(e))
                for (; n = r[i++]; )
                    "+" === n[0] ? (n = n.slice(1) || "*",
                    (o[n] = o[n] || []).unshift(e)) : (o[n] = o[n] || []).push(e)
        }
    }
    function We(e, r, o, a) {
        var s = {}
          , c = e === we;
        function u(t) {
            var i;
            return s[t] = !0,
            w.each(e[t] || [], function(t, e) {
                var n = e(r, o, a);
                return "string" != typeof n || c || s[n] ? c ? !(i = n) : void 0 : (r.dataTypes.unshift(n),
                u(n),
                !1)
            }),
            i
        }
        return u(r.dataTypes[0]) || !s["*"] && u("*")
    }
    function Te(t, e) {
        var n, i, r = w.ajaxSettings.flatOptions || {};
        for (n in e)
            void 0 !== e[n] && ((r[n] ? t : i = i || {})[n] = e[n]);
        return i && w.extend(!0, t, i),
        t
    }
    Ne.href = be.href,
    w.extend({
        active: 0,
        lastModified: {},
        etag: {},
        ajaxSettings: {
            url: be.href,
            type: "GET",
            isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(be.protocol),
            global: !0,
            processData: !0,
            async: !0,
            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
            accepts: {
                "*": Le,
                text: "text/plain",
                html: "text/html",
                xml: "application/xml, text/xml",
                json: "application/json, text/javascript"
            },
            contents: {
                xml: /\bxml\b/,
                html: /\bhtml/,
                json: /\bjson\b/
            },
            responseFields: {
                xml: "responseXML",
                text: "responseText",
                json: "responseJSON"
            },
            converters: {
                "* text": String,
                "text html": !0,
                "text json": w.parseJSON,
                "text xml": w.parseXML
            },
            flatOptions: {
                url: !0,
                context: !0
            }
        },
        ajaxSetup: function(t, e) {
            return e ? Te(Te(t, w.ajaxSettings), e) : Te(w.ajaxSettings, t)
        },
        ajaxPrefilter: qe(Oe),
        ajaxTransport: qe(we),
        ajax: function(t, e) {
            "object" == typeof t && (e = t,
            t = void 0),
            e = e || {};
            var l, h, f, n, p, i, d, r, M = w.ajaxSetup({}, e), b = M.context || M, m = M.context && (b.nodeType || b.jquery) ? w(b) : w.event, g = w.Deferred(), v = w.Callbacks("once memory"), A = M.statusCode || {}, o = {}, a = {}, y = 0, s = "canceled", z = {
                readyState: 0,
                getResponseHeader: function(t) {
                    var e;
                    if (2 === y) {
                        if (!n)
                            for (n = {}; e = ye.exec(f); )
                                n[e[1].toLowerCase()] = e[2];
                        e = n[t.toLowerCase()]
                    }
                    return null == e ? null : e
                },
                getAllResponseHeaders: function() {
                    return 2 === y ? f : null
                },
                setRequestHeader: function(t, e) {
                    var n = t.toLowerCase();
                    return y || (t = a[n] = a[n] || t,
                    o[t] = e),
                    this
                },
                overrideMimeType: function(t) {
                    return y || (M.mimeType = t),
                    this
                },
                statusCode: function(t) {
                    var e;
                    if (t)
                        if (y < 2)
                            for (e in t)
                                A[e] = [A[e], t[e]];
                        else
                            z.always(t[z.status]);
                    return this
                },
                abort: function(t) {
                    var e = t || s;
                    return l && l.abort(e),
                    c(0, e),
                    this
                }
            };
            if (g.promise(z).complete = v.add,
            z.success = z.done,
            z.error = z.fail,
            M.url = ((t || M.url || be.href) + "").replace(ve, "").replace(_e, be.protocol + "//"),
            M.type = e.method || e.type || M.method || M.type,
            M.dataTypes = w.trim(M.dataType || "*").toLowerCase().match(x) || [""],
            null == M.crossDomain) {
                i = O.createElement("a");
                try {
                    i.href = M.url,
                    i.href = i.href,
                    M.crossDomain = Ne.protocol + "//" + Ne.host != i.protocol + "//" + i.host
                } catch (t) {
                    M.crossDomain = !0
                }
            }
            if (M.data && M.processData && "string" != typeof M.data && (M.data = w.param(M.data, M.traditional)),
            We(Oe, M, e, z),
            2 === y)
                return z;
            for (r in (d = w.event && M.global) && 0 == w.active++ && w.event.trigger("ajaxStart"),
            M.type = M.type.toUpperCase(),
            M.hasContent = !ze.test(M.type),
            h = M.url,
            M.hasContent || (M.data && (h = M.url += (ge.test(h) ? "&" : "?") + M.data,
            delete M.data),
            !1 === M.cache && (M.url = Ae.test(h) ? h.replace(Ae, "$1_=" + me++) : h + (ge.test(h) ? "&" : "?") + "_=" + me++)),
            M.ifModified && (w.lastModified[h] && z.setRequestHeader("If-Modified-Since", w.lastModified[h]),
            w.etag[h] && z.setRequestHeader("If-None-Match", w.etag[h])),
            (M.data && M.hasContent && !1 !== M.contentType || e.contentType) && z.setRequestHeader("Content-Type", M.contentType),
            z.setRequestHeader("Accept", M.dataTypes[0] && M.accepts[M.dataTypes[0]] ? M.accepts[M.dataTypes[0]] + ("*" !== M.dataTypes[0] ? ", " + Le + "; q=0.01" : "") : M.accepts["*"]),
            M.headers)
                z.setRequestHeader(r, M.headers[r]);
            if (M.beforeSend && (!1 === M.beforeSend.call(b, z, M) || 2 === y))
                return z.abort();
            for (r in s = "abort",
            {
                success: 1,
                error: 1,
                complete: 1
            })
                z[r](M[r]);
            if (l = We(we, M, e, z)) {
                if (z.readyState = 1,
                d && m.trigger("ajaxSend", [z, M]),
                2 === y)
                    return z;
                M.async && 0 < M.timeout && (p = _.setTimeout(function() {
                    z.abort("timeout")
                }, M.timeout));
                try {
                    y = 1,
                    l.send(o, c)
                } catch (t) {
                    if (!(y < 2))
                        throw t;
                    c(-1, t)
                }
            } else
                c(-1, "No Transport");
            function c(t, e, n, i) {
                var r, o, a, s, c, u = e;
                2 !== y && (y = 2,
                p && _.clearTimeout(p),
                l = void 0,
                f = i || "",
                z.readyState = 0 < t ? 4 : 0,
                r = 200 <= t && t < 300 || 304 === t,
                n && (s = function(t, e, n) {
                    for (var i, r, o, a, s = t.contents, c = t.dataTypes; "*" === c[0]; )
                        c.shift(),
                        void 0 === i && (i = t.mimeType || e.getResponseHeader("Content-Type"));
                    if (i)
                        for (r in s)
                            if (s[r] && s[r].test(i)) {
                                c.unshift(r);
                                break
                            }
                    if (c[0]in n)
                        o = c[0];
                    else {
                        for (r in n) {
                            if (!c[0] || t.converters[r + " " + c[0]]) {
                                o = r;
                                break
                            }
                            a = a || r
                        }
                        o = o || a
                    }
                    return o ? (o !== c[0] && c.unshift(o),
                    n[o]) : void 0
                }(M, z, n)),
                s = function(t, e, n, i) {
                    var r, o, a, s, c, u = {}, l = t.dataTypes.slice();
                    if (l[1])
                        for (a in t.converters)
                            u[a.toLowerCase()] = t.converters[a];
                    for (o = l.shift(); o; )
                        if (t.responseFields[o] && (n[t.responseFields[o]] = e),
                        !c && i && t.dataFilter && (e = t.dataFilter(e, t.dataType)),
                        c = o,
                        o = l.shift())
                            if ("*" === o)
                                o = c;
                            else if ("*" !== c && c !== o) {
                                if (!(a = u[c + " " + o] || u["* " + o]))
                                    for (r in u)
                                        if ((s = r.split(" "))[1] === o && (a = u[c + " " + s[0]] || u["* " + s[0]])) {
                                            !0 === a ? a = u[r] : !0 !== u[r] && (o = s[0],
                                            l.unshift(s[1]));
                                            break
                                        }
                                if (!0 !== a)
                                    if (a && t.throws)
                                        e = a(e);
                                    else
                                        try {
                                            e = a(e)
                                        } catch (t) {
                                            return {
                                                state: "parsererror",
                                                error: a ? t : "No conversion from " + c + " to " + o
                                            }
                                        }
                            }
                    return {
                        state: "success",
                        data: e
                    }
                }(M, s, z, r),
                r ? (M.ifModified && ((c = z.getResponseHeader("Last-Modified")) && (w.lastModified[h] = c),
                (c = z.getResponseHeader("etag")) && (w.etag[h] = c)),
                204 === t || "HEAD" === M.type ? u = "nocontent" : 304 === t ? u = "notmodified" : (u = s.state,
                o = s.data,
                r = !(a = s.error))) : (a = u,
                !t && u || (u = "error",
                t < 0 && (t = 0))),
                z.status = t,
                z.statusText = (e || u) + "",
                r ? g.resolveWith(b, [o, u, z]) : g.rejectWith(b, [z, u, a]),
                z.statusCode(A),
                A = void 0,
                d && m.trigger(r ? "ajaxSuccess" : "ajaxError", [z, M, r ? o : a]),
                v.fireWith(b, [z, u]),
                d && (m.trigger("ajaxComplete", [z, M]),
                --w.active || w.event.trigger("ajaxStop")))
            }
            return z
        },
        getJSON: function(t, e, n) {
            return w.get(t, e, n, "json")
        },
        getScript: function(t, e) {
            return w.get(t, void 0, e, "script")
        }
    }),
    w.each(["get", "post"], function(t, r) {
        w[r] = function(t, e, n, i) {
            return w.isFunction(e) && (i = i || n,
            n = e,
            e = void 0),
            w.ajax(w.extend({
                url: t,
                type: r,
                dataType: i,
                data: e,
                success: n
            }, w.isPlainObject(t) && t))
        }
    }),
    w._evalUrl = function(t) {
        return w.ajax({
            url: t,
            type: "GET",
            dataType: "script",
            async: !1,
            global: !1,
            throws: !0
        })
    }
    ,
    w.fn.extend({
        wrapAll: function(e) {
            var t;
            return w.isFunction(e) ? this.each(function(t) {
                w(this).wrapAll(e.call(this, t))
            }) : (this[0] && (t = w(e, this[0].ownerDocument).eq(0).clone(!0),
            this[0].parentNode && t.insertBefore(this[0]),
            t.map(function() {
                for (var t = this; t.firstElementChild; )
                    t = t.firstElementChild;
                return t
            }).append(this)),
            this)
        },
        wrapInner: function(n) {
            return w.isFunction(n) ? this.each(function(t) {
                w(this).wrapInner(n.call(this, t))
            }) : this.each(function() {
                var t = w(this)
                  , e = t.contents();
                e.length ? e.wrapAll(n) : t.append(n)
            })
        },
        wrap: function(e) {
            var n = w.isFunction(e);
            return this.each(function(t) {
                w(this).wrapAll(n ? e.call(this, t) : e)
            })
        },
        unwrap: function() {
            return this.parent().each(function() {
                w.nodeName(this, "body") || w(this).replaceWith(this.childNodes)
            }).end()
        }
    }),
    w.expr.filters.hidden = function(t) {
        return !w.expr.filters.visible(t)
    }
    ,
    w.expr.filters.visible = function(t) {
        return 0 < t.offsetWidth || 0 < t.offsetHeight || 0 < t.getClientRects().length
    }
    ;
    var Ce = /%20/g
      , xe = /\[\]$/
      , ke = /\r?\n/g
      , Se = /^(?:submit|button|image|reset|file)$/i
      , Be = /^(?:input|select|textarea|keygen)/i;
    w.param = function(t, e) {
        function n(t, e) {
            e = w.isFunction(e) ? e() : null == e ? "" : e,
            r[r.length] = encodeURIComponent(t) + "=" + encodeURIComponent(e)
        }
        var i, r = [];
        if (void 0 === e && (e = w.ajaxSettings && w.ajaxSettings.traditional),
        w.isArray(t) || t.jquery && !w.isPlainObject(t))
            w.each(t, function() {
                n(this.name, this.value)
            });
        else
            for (i in t)
                !function n(i, t, r, o) {
                    var e;
                    if (w.isArray(t))
                        w.each(t, function(t, e) {
                            r || xe.test(i) ? o(i, e) : n(i + "[" + ("object" == typeof e && null != e ? t : "") + "]", e, r, o)
                        });
                    else if (r || "object" !== w.type(t))
                        o(i, t);
                    else
                        for (e in t)
                            n(i + "[" + e + "]", t[e], r, o)
                }(i, t[i], e, n);
        return r.join("&").replace(Ce, "+")
    }
    ,
    w.fn.extend({
        serialize: function() {
            return w.param(this.serializeArray())
        },
        serializeArray: function() {
            return this.map(function() {
                var t = w.prop(this, "elements");
                return t ? w.makeArray(t) : this
            }).filter(function() {
                var t = this.type;
                return this.name && !w(this).is(":disabled") && Be.test(this.nodeName) && !Se.test(t) && (this.checked || !G.test(t))
            }).map(function(t, e) {
                var n = w(this).val();
                return null == n ? null : w.isArray(n) ? w.map(n, function(t) {
                    return {
                        name: e.name,
                        value: t.replace(ke, "\r\n")
                    }
                }) : {
                    name: e.name,
                    value: n.replace(ke, "\r\n")
                }
            }).get()
        }
    }),
    w.ajaxSettings.xhr = function() {
        try {
            return new _.XMLHttpRequest
        } catch (t) {}
    }
    ;
    var Ee = {
        0: 200,
        1223: 204
    }
      , Xe = w.ajaxSettings.xhr();
    b.cors = !!Xe && "withCredentials"in Xe,
    b.ajax = Xe = !!Xe,
    w.ajaxTransport(function(r) {
        var o, a;
        return b.cors || Xe && !r.crossDomain ? {
            send: function(t, e) {
                var n, i = r.xhr();
                if (i.open(r.type, r.url, r.async, r.username, r.password),
                r.xhrFields)
                    for (n in r.xhrFields)
                        i[n] = r.xhrFields[n];
                for (n in r.mimeType && i.overrideMimeType && i.overrideMimeType(r.mimeType),
                r.crossDomain || t["X-Requested-With"] || (t["X-Requested-With"] = "XMLHttpRequest"),
                t)
                    i.setRequestHeader(n, t[n]);
                o = function(t) {
                    return function() {
                        o && (o = a = i.onload = i.onerror = i.onabort = i.onreadystatechange = null,
                        "abort" === t ? i.abort() : "error" === t ? "number" != typeof i.status ? e(0, "error") : e(i.status, i.statusText) : e(Ee[i.status] || i.status, i.statusText, "text" !== (i.responseType || "text") || "string" != typeof i.responseText ? {
                            binary: i.response
                        } : {
                            text: i.responseText
                        }, i.getAllResponseHeaders()))
                    }
                }
                ,
                i.onload = o(),
                a = i.onerror = o("error"),
                void 0 !== i.onabort ? i.onabort = a : i.onreadystatechange = function() {
                    4 === i.readyState && _.setTimeout(function() {
                        o && a()
                    })
                }
                ,
                o = o("abort");
                try {
                    i.send(r.hasContent && r.data || null)
                } catch (t) {
                    if (o)
                        throw t
                }
            },
            abort: function() {
                o && o()
            }
        } : void 0
    }),
    w.ajaxSetup({
        accepts: {
            script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
        },
        contents: {
            script: /\b(?:java|ecma)script\b/
        },
        converters: {
            "text script": function(t) {
                return w.globalEval(t),
                t
            }
        }
    }),
    w.ajaxPrefilter("script", function(t) {
        void 0 === t.cache && (t.cache = !1),
        t.crossDomain && (t.type = "GET")
    }),
    w.ajaxTransport("script", function(n) {
        var i, r;
        if (n.crossDomain)
            return {
                send: function(t, e) {
                    i = w("<script>").prop({
                        charset: n.scriptCharset,
                        src: n.url
                    }).on("load error", r = function(t) {
                        i.remove(),
                        r = null,
                        t && e("error" === t.type ? 404 : 200, t.type)
                    }
                    ),
                    O.head.appendChild(i[0])
                },
                abort: function() {
                    r && r()
                }
            }
    });
    var De = []
      , Re = /(=)\?(?=&|$)|\?\?/;
    w.ajaxSetup({
        jsonp: "callback",
        jsonpCallback: function() {
            var t = De.pop() || w.expando + "_" + me++;
            return this[t] = !0,
            t
        }
    }),
    w.ajaxPrefilter("json jsonp", function(t, e, n) {
        var i, r, o, a = !1 !== t.jsonp && (Re.test(t.url) ? "url" : "string" == typeof t.data && 0 === (t.contentType || "").indexOf("application/x-www-form-urlencoded") && Re.test(t.data) && "data");
        return a || "jsonp" === t.dataTypes[0] ? (i = t.jsonpCallback = w.isFunction(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback,
        a ? t[a] = t[a].replace(Re, "$1" + i) : !1 !== t.jsonp && (t.url += (ge.test(t.url) ? "&" : "?") + t.jsonp + "=" + i),
        t.converters["script json"] = function() {
            return o || w.error(i + " was not called"),
            o[0]
        }
        ,
        t.dataTypes[0] = "json",
        r = _[i],
        _[i] = function() {
            o = arguments
        }
        ,
        n.always(function() {
            void 0 === r ? w(_).removeProp(i) : _[i] = r,
            t[i] && (t.jsonpCallback = e.jsonpCallback,
            De.push(i)),
            o && w.isFunction(r) && r(o[0]),
            o = r = void 0
        }),
        "script") : void 0
    }),
    w.parseHTML = function(t, e, n) {
        if (!t || "string" != typeof t)
            return null;
        "boolean" == typeof e && (n = e,
        e = !1),
        e = e || O;
        var i = A.exec(t)
          , r = !n && [];
        return i ? [e.createElement(i[1])] : (i = nt([t], e, r),
        r && r.length && w(r).remove(),
        w.merge([], i.childNodes))
    }
    ;
    var Pe = w.fn.load;
    function Ie(t) {
        return w.isWindow(t) ? t : 9 === t.nodeType && t.defaultView
    }
    w.fn.load = function(t, e, n) {
        if ("string" != typeof t && Pe)
            return Pe.apply(this, arguments);
        var i, r, o, a = this, s = t.indexOf(" ");
        return -1 < s && (i = w.trim(t.slice(s)),
        t = t.slice(0, s)),
        w.isFunction(e) ? (n = e,
        e = void 0) : e && "object" == typeof e && (r = "POST"),
        0 < a.length && w.ajax({
            url: t,
            type: r || "GET",
            dataType: "html",
            data: e
        }).done(function(t) {
            o = arguments,
            a.html(i ? w("<div>").append(w.parseHTML(t)).find(i) : t)
        }).always(n && function(t, e) {
            a.each(function() {
                n.apply(this, o || [t.responseText, e, t])
            })
        }
        ),
        this
    }
    ,
    w.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(t, e) {
        w.fn[e] = function(t) {
            return this.on(e, t)
        }
    }),
    w.expr.filters.animated = function(e) {
        return w.grep(w.timers, function(t) {
            return e === t.elem
        }).length
    }
    ,
    w.offset = {
        setOffset: function(t, e, n) {
            var i, r, o, a, s, c, u = w.css(t, "position"), l = w(t), h = {};
            "static" === u && (t.style.position = "relative"),
            s = l.offset(),
            o = w.css(t, "top"),
            c = w.css(t, "left"),
            r = ("absolute" === u || "fixed" === u) && -1 < (o + c).indexOf("auto") ? (a = (i = l.position()).top,
            i.left) : (a = parseFloat(o) || 0,
            parseFloat(c) || 0),
            w.isFunction(e) && (e = e.call(t, n, w.extend({}, s))),
            null != e.top && (h.top = e.top - s.top + a),
            null != e.left && (h.left = e.left - s.left + r),
            "using"in e ? e.using.call(t, h) : l.css(h)
        }
    },
    w.fn.extend({
        offset: function(e) {
            if (arguments.length)
                return void 0 === e ? this : this.each(function(t) {
                    w.offset.setOffset(this, e, t)
                });
            var t, n, i = this[0], r = {
                top: 0,
                left: 0
            }, o = i && i.ownerDocument;
            return o ? (t = o.documentElement,
            w.contains(t, i) ? (r = i.getBoundingClientRect(),
            n = Ie(o),
            {
                top: r.top + n.pageYOffset - t.clientTop,
                left: r.left + n.pageXOffset - t.clientLeft
            }) : r) : void 0
        },
        position: function() {
            if (this[0]) {
                var t, e, n = this[0], i = {
                    top: 0,
                    left: 0
                };
                return "fixed" === w.css(n, "position") ? e = n.getBoundingClientRect() : (t = this.offsetParent(),
                e = this.offset(),
                w.nodeName(t[0], "html") || (i = t.offset()),
                i.top += w.css(t[0], "borderTopWidth", !0),
                i.left += w.css(t[0], "borderLeftWidth", !0)),
                {
                    top: e.top - i.top - w.css(n, "marginTop", !0),
                    left: e.left - i.left - w.css(n, "marginLeft", !0)
                }
            }
        },
        offsetParent: function() {
            return this.map(function() {
                for (var t = this.offsetParent; t && "static" === w.css(t, "position"); )
                    t = t.offsetParent;
                return t || Bt
            })
        }
    }),
    w.each({
        scrollLeft: "pageXOffset",
        scrollTop: "pageYOffset"
    }, function(e, r) {
        var o = "pageYOffset" === r;
        w.fn[e] = function(t) {
            return B(this, function(t, e, n) {
                var i = Ie(t);
                return void 0 === n ? i ? i[r] : t[e] : void (i ? i.scrollTo(o ? i.pageXOffset : n, o ? n : i.pageYOffset) : t[e] = n)
            }, e, t, arguments.length)
        }
    }),
    w.each(["top", "left"], function(t, n) {
        w.cssHooks[n] = Dt(b.pixelPosition, function(t, e) {
            return e ? (e = Xt(t, n),
            kt.test(e) ? w(t).position()[n] + "px" : e) : void 0
        })
    }),
    w.each({
        Height: "height",
        Width: "width"
    }, function(o, a) {
        w.each({
            padding: "inner" + o,
            content: a,
            "": "outer" + o
        }, function(i, t) {
            w.fn[t] = function(t, e) {
                var n = arguments.length && (i || "boolean" != typeof t)
                  , r = i || (!0 === t || !0 === e ? "margin" : "border");
                return B(this, function(t, e, n) {
                    var i;
                    return w.isWindow(t) ? t.document.documentElement["client" + o] : 9 === t.nodeType ? (i = t.documentElement,
                    Math.max(t.body["scroll" + o], i["scroll" + o], t.body["offset" + o], i["offset" + o], i["client" + o])) : void 0 === n ? w.css(t, e, r) : w.style(t, e, n, r)
                }, a, n ? t : void 0, n, null)
            }
        })
    }),
    w.fn.extend({
        bind: function(t, e, n) {
            return this.on(t, null, e, n)
        },
        unbind: function(t, e) {
            return this.off(t, null, e)
        },
        delegate: function(t, e, n, i) {
            return this.on(e, t, n, i)
        },
        undelegate: function(t, e, n) {
            return 1 === arguments.length ? this.off(t, "**") : this.off(e, t || "**", n)
        },
        size: function() {
            return this.length
        }
    }),
    w.fn.andSelf = w.fn.addBack,
    "function" == typeof define && define.amd && define("jquery", [], function() {
        return w
    });
    var je = _.jQuery
      , He = _.$;
    return w.noConflict = function(t) {
        return _.$ === w && (_.$ = He),
        t && _.jQuery === w && (_.jQuery = je),
        w
    }
    ,
    t || (_.jQuery = _.$ = w),
    w
}),
function(t, e) {
    "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.clipboard = e() : t.clipboard = e()
}(this, function() {
    return r = {},
    i.m = n = [function(t, e, n) {
        "use strict";
        function r(t) {
            var e = new g
              , n = function(n, t, i) {
                f("listener called"),
                n.success = !0,
                t.forEach(function(t, e) {
                    i.clipboardData.setData(e, t),
                    e === M && i.clipboardData.getData(e) != t && (f("setting text/plain failed"),
                    n.success = !1)
                }),
                i.preventDefault()
            }
            .bind(this, e, t);
            document.addEventListener("copy", n);
            try {
                document.execCommand("copy")
            } finally {
                document.removeEventListener("copy", n)
            }
            return e.success
        }
        function o(t, e) {
            a(t);
            var n = r(e);
            return s(),
            n
        }
        function a(t) {
            var e = document.getSelection()
              , n = document.createRange();
            n.selectNodeContents(t),
            e.removeAllRanges(),
            e.addRange(n)
        }
        function s() {
            document.getSelection().removeAllRanges()
        }
        function c() {
            return "undefined" == typeof ClipboardEvent && void 0 !== window.clipboardData && void 0 !== window.clipboardData.setData
        }
        function u() {
            return new h(function(t, e) {
                var n = window.clipboardData.getData("Text");
                "" === n ? e(new Error("Empty clipboard or could not read plain text from clipboard")) : t(n)
            }
            )
        }
        Object.defineProperty(e, "__esModule", {
            value: !0
        });
        var i = n(1)
          , l = n(5)
          , h = "undefined" == typeof Promise ? i.Promise : Promise
          , f = function(t) {}
          , p = !0
          , d = function() {
            (console.warn || console.log).call(arguments)
        }
        .bind(console, "[clipboard-polyfill]")
          , M = "text/plain"
          , b = (m.setDebugLog = function(t) {
            f = t
        }
        ,
        m.suppressWarnings = function() {
            p = !1,
            l.suppressDTWarnings()
        }
        ,
        m.write = function(i) {
            return p && !i.getData(M) && d("clipboard.write() was called without a `text/plain` data type. On some platforms, this may result in an empty clipboard. Call clipboard.suppressWarnings() to suppress this warning."),
            new h(function(t, e) {
                if (c())
                    (function(t) {
                        var e = t.getData(M);
                        if (void 0 !== e)
                            return window.clipboardData.setData("Text", e);
                        throw "No `text/plain` value was specified."
                    }
                    )(i) ? t() : e(new Error("Copying failed, possibly because the user rejected it."));
                else {
                    if (r(i))
                        return f("regular execCopy worked"),
                        void t();
                    if (-1 < navigator.userAgent.indexOf("Edge"))
                        return f('UA "Edge" => assuming success'),
                        void t();
                    if (o(document.body, i))
                        return f("copyUsingTempSelection worked"),
                        void t();
                    if (function(t) {
                        var e = document.createElement("div");
                        e.setAttribute("style", "-webkit-user-select: text !important"),
                        e.textContent = "temporary element",
                        document.body.appendChild(e);
                        var n = o(e, t);
                        return document.body.removeChild(e),
                        n
                    }(i))
                        return f("copyUsingTempElem worked"),
                        void t();
                    var n = i.getData(M);
                    if (void 0 !== n && function(t) {
                        f("copyTextUsingDOM");
                        var e = document.createElement("div");
                        e.setAttribute("style", "-webkit-user-select: text !important");
                        var n = e;
                        e.attachShadow && (f("Using shadow DOM."),
                        n = e.attachShadow({
                            mode: "open"
                        }));
                        var i = document.createElement("span");
                        i.innerText = t,
                        n.appendChild(i),
                        document.body.appendChild(e),
                        a(i);
                        var r = document.execCommand("copy");
                        return s(),
                        document.body.removeChild(e),
                        r
                    }(n))
                        return f("copyTextUsingDOM worked"),
                        void t();
                    e(new Error("Copy command failed."))
                }
            }
            )
        }
        ,
        m.writeText = function(t) {
            if (navigator.clipboard && navigator.clipboard.writeText)
                return navigator.clipboard.writeText(t);
            var e = new l.DT;
            return e.setData(M, t),
            this.write(e)
        }
        ,
        m.read = function() {
            return new h(function(i, t) {
                c() ? u().then(function(t) {
                    return i((e = t,
                    (n = new l.DT).setData(M, e),
                    n));
                    var e, n
                }, t) : t("Read is not supported in your browser.")
            }
            )
        }
        ,
        m.readText = function() {
            return navigator.clipboard && navigator.clipboard.readText ? navigator.clipboard.readText() : c() ? u() : new h(function(t, e) {
                e("Read is not supported in your browser.")
            }
            )
        }
        ,
        m.DT = l.DT,
        m);
        function m() {}
        e.default = b;
        var g = function() {
            this.success = !1
        };
        t.exports = b
    }
    , function(t, e, at) {
        (function(rt, ot) {
            t.exports = function() {
                "use strict";
                function n(t) {
                    var e = typeof t;
                    return null !== t && ("object" === e || "function" === e)
                }
                function u(t) {
                    return "function" == typeof t
                }
                function t(t) {
                    j = t
                }
                function e(t) {
                    H = t
                }
                function i() {
                    return void 0 !== I ? function() {
                        I(o)
                    }
                    : r()
                }
                function r() {
                    var t = setTimeout;
                    return function() {
                        return t(o, 1)
                    }
                }
                function o() {
                    for (var t = 0; t < P; t += 2) {
                        (0,
                        K[t])(K[t + 1]),
                        K[t] = void 0,
                        K[t + 1] = void 0
                    }
                    P = 0
                }
                function a(t, e) {
                    var n = arguments
                      , i = this
                      , r = new this.constructor(c);
                    void 0 === r[$] && q(r);
                    var o = i._state;
                    return o ? function() {
                        var t = n[o - 1];
                        H(function() {
                            return w(o, r, t, i._result)
                        })
                    }() : y(i, r, t, e),
                    r
                }
                function s(t) {
                    var e = this;
                    if (t && "object" == typeof t && t.constructor === e)
                        return t;
                    var n = new e(c);
                    return m(n, t),
                    n
                }
                function c() {}
                function l() {
                    return new TypeError("You cannot resolve a promise with itself")
                }
                function h() {
                    return new TypeError("A promises callback cannot return that same promise.")
                }
                function f(t) {
                    try {
                        return t.then
                    } catch (t) {
                        return et.error = t,
                        et
                    }
                }
                function p(t, e, n, i) {
                    try {
                        t.call(e, n, i)
                    } catch (t) {
                        return t
                    }
                }
                function d(t, i, r) {
                    H(function(e) {
                        var n = !1
                          , t = p(r, i, function(t) {
                            n || (n = !0,
                            i !== t ? m(e, t) : v(e, t))
                        }, function(t) {
                            n || (n = !0,
                            A(e, t))
                        }, "Settle: " + (e._label || " unknown promise"));
                        !n && t && (n = !0,
                        A(e, t))
                    }, t)
                }
                function M(e, t) {
                    t._state === Z ? v(e, t._result) : t._state === tt ? A(e, t._result) : y(t, void 0, function(t) {
                        return m(e, t)
                    }, function(t) {
                        return A(e, t)
                    })
                }
                function b(t, e, n) {
                    e.constructor === t.constructor && n === a && e.constructor.resolve === s ? M(t, e) : n === et ? (A(t, et.error),
                    et.error = null) : void 0 === n ? v(t, e) : u(n) ? d(t, e, n) : v(t, e)
                }
                function m(t, e) {
                    t === e ? A(t, l()) : n(e) ? b(t, e, f(e)) : v(t, e)
                }
                function g(t) {
                    t._onerror && t._onerror(t._result),
                    z(t)
                }
                function v(t, e) {
                    t._state === J && (t._result = e,
                    t._state = Z,
                    0 !== t._subscribers.length && H(z, t))
                }
                function A(t, e) {
                    t._state === J && (t._state = tt,
                    t._result = e,
                    H(g, t))
                }
                function y(t, e, n, i) {
                    var r = t._subscribers
                      , o = r.length;
                    t._onerror = null,
                    r[o] = e,
                    r[o + Z] = n,
                    r[o + tt] = i,
                    0 === o && t._state && H(z, t)
                }
                function z(t) {
                    var e = t._subscribers
                      , n = t._state;
                    if (0 !== e.length) {
                        for (var i = void 0, r = void 0, o = t._result, a = 0; a < e.length; a += 3)
                            i = e[a],
                            r = e[a + n],
                            i ? w(n, i, r, o) : r(o);
                        t._subscribers.length = 0
                    }
                }
                function _() {
                    this.error = null
                }
                function O(t, e) {
                    try {
                        return t(e)
                    } catch (t) {
                        return nt.error = t,
                        nt
                    }
                }
                function w(t, e, n, i) {
                    var r = u(n)
                      , o = void 0
                      , a = void 0
                      , s = void 0
                      , c = void 0;
                    if (r) {
                        if (o = O(n, i),
                        o === nt ? (c = !0,
                        a = o.error,
                        o.error = null) : s = !0,
                        e === o)
                            return void A(e, h())
                    } else
                        o = i,
                        s = !0;
                    e._state !== J || (r && s ? m(e, o) : c ? A(e, a) : t === Z ? v(e, o) : t === tt && A(e, o))
                }
                function L(e, t) {
                    try {
                        t(function(t) {
                            m(e, t)
                        }, function(t) {
                            A(e, t)
                        })
                    } catch (t) {
                        A(e, t)
                    }
                }
                function N() {
                    return it++
                }
                function q(t) {
                    t[$] = it++,
                    t._state = void 0,
                    t._result = void 0,
                    t._subscribers = []
                }
                function W(t, e) {
                    this._instanceConstructor = t,
                    this.promise = new t(c),
                    this.promise[$] || q(this.promise),
                    R(e) ? (this.length = e.length,
                    this._remaining = e.length,
                    this._result = new Array(this.length),
                    0 === this.length ? v(this.promise, this._result) : (this.length = this.length || 0,
                    this._enumerate(e),
                    0 === this._remaining && v(this.promise, this._result))) : A(this.promise, T())
                }
                function T() {
                    return new Error("Array Methods must be provided an Array")
                }
                function C(t) {
                    return new W(this,t).promise
                }
                function x(r) {
                    var o = this;
                    return new o(R(r) ? function(t, e) {
                        for (var n = r.length, i = 0; i < n; i++)
                            o.resolve(r[i]).then(t, e)
                    }
                    : function(t, e) {
                        return e(new TypeError("You must pass an array to race."))
                    }
                    )
                }
                function k(t) {
                    var e = this
                      , n = new e(c);
                    return A(n, t),
                    n
                }
                function S() {
                    throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")
                }
                function B() {
                    throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")
                }
                function E(t) {
                    this[$] = N(),
                    this._result = this._state = void 0,
                    this._subscribers = [],
                    c !== t && ("function" != typeof t && S(),
                    this instanceof E ? L(this, t) : B())
                }
                function X() {
                    var t = void 0;
                    if (void 0 !== ot)
                        t = ot;
                    else if ("undefined" != typeof self)
                        t = self;
                    else
                        try {
                            t = Function("return this")()
                        } catch (t) {
                            throw new Error("polyfill failed because global object is unavailable in this environment")
                        }
                    var e = t.Promise;
                    if (e) {
                        var n = null;
                        try {
                            n = Object.prototype.toString.call(e.resolve())
                        } catch (t) {}
                        if ("[object Promise]" === n && !e.cast)
                            return
                    }
                    t.Promise = E
                }
                var D = void 0
                  , R = D = Array.isArray ? Array.isArray : function(t) {
                    return "[object Array]" === Object.prototype.toString.call(t)
                }
                  , P = 0
                  , I = void 0
                  , j = void 0
                  , H = function(t, e) {
                    K[P] = t,
                    K[P + 1] = e,
                    2 === (P += 2) && (j ? j(o) : Q())
                }
                  , F = "undefined" != typeof window ? window : void 0
                  , U = F || {}
                  , Y = U.MutationObserver || U.WebKitMutationObserver
                  , G = "undefined" == typeof self && void 0 !== rt && "[object process]" === {}.toString.call(rt)
                  , V = "undefined" != typeof Uint8ClampedArray && "undefined" != typeof importScripts && "undefined" != typeof MessageChannel
                  , K = new Array(1e3)
                  , Q = void 0;
                Q = G ? function() {
                    return function() {
                        return rt.nextTick(o)
                    }
                }() : Y ? function() {
                    var t = 0
                      , e = new Y(o)
                      , n = document.createTextNode("");
                    return e.observe(n, {
                        characterData: !0
                    }),
                    function() {
                        n.data = t = ++t % 2
                    }
                }() : V ? function() {
                    var t = new MessageChannel;
                    return t.port1.onmessage = o,
                    function() {
                        return t.port2.postMessage(0)
                    }
                }() : void 0 === F ? function() {
                    try {
                        var t = at(4);
                        return I = t.runOnLoop || t.runOnContext,
                        i()
                    } catch (t) {
                        return r()
                    }
                }() : r();
                var $ = Math.random().toString(36).substring(16)
                  , J = void 0
                  , Z = 1
                  , tt = 2
                  , et = new _
                  , nt = new _
                  , it = 0;
                return W.prototype._enumerate = function(t) {
                    for (var e = 0; this._state === J && e < t.length; e++)
                        this._eachEntry(t[e], e)
                }
                ,
                W.prototype._eachEntry = function(e, t) {
                    var n = this._instanceConstructor
                      , i = n.resolve;
                    if (i === s) {
                        var r = f(e);
                        if (r === a && e._state !== J)
                            this._settledAt(e._state, t, e._result);
                        else if ("function" != typeof r)
                            this._remaining--,
                            this._result[t] = e;
                        else if (n === E) {
                            var o = new n(c);
                            b(o, e, r),
                            this._willSettleAt(o, t)
                        } else
                            this._willSettleAt(new n(function(t) {
                                return t(e)
                            }
                            ), t)
                    } else
                        this._willSettleAt(i(e), t)
                }
                ,
                W.prototype._settledAt = function(t, e, n) {
                    var i = this.promise;
                    i._state === J && (this._remaining--,
                    t === tt ? A(i, n) : this._result[e] = n),
                    0 === this._remaining && v(i, this._result)
                }
                ,
                W.prototype._willSettleAt = function(t, e) {
                    var n = this;
                    y(t, void 0, function(t) {
                        return n._settledAt(Z, e, t)
                    }, function(t) {
                        return n._settledAt(tt, e, t)
                    })
                }
                ,
                E.all = C,
                E.race = x,
                E.resolve = s,
                E.reject = k,
                E._setScheduler = t,
                E._setAsap = e,
                E._asap = H,
                E.prototype = {
                    constructor: E,
                    then: a,
                    catch: function(t) {
                        return this.then(null, t)
                    }
                },
                E.polyfill = X,
                E.Promise = E
            }()
        }
        ).call(e, at(2), at(3))
    }
    , function(t, e) {
        function n() {
            throw new Error("setTimeout has not been defined")
        }
        function i() {
            throw new Error("clearTimeout has not been defined")
        }
        function r(e) {
            if (u === setTimeout)
                return setTimeout(e, 0);
            if ((u === n || !u) && setTimeout)
                return u = setTimeout,
                setTimeout(e, 0);
            try {
                return u(e, 0)
            } catch (t) {
                try {
                    return u.call(null, e, 0)
                } catch (t) {
                    return u.call(this, e, 0)
                }
            }
        }
        function o() {
            d && f && (d = !1,
            f.length ? p = f.concat(p) : M = -1,
            p.length && a())
        }
        function a() {
            if (!d) {
                var t = r(o);
                d = !0;
                for (var e = p.length; e; ) {
                    for (f = p,
                    p = []; ++M < e; )
                        f && f[M].run();
                    M = -1,
                    e = p.length
                }
                f = null,
                d = !1,
                function(e) {
                    if (l === clearTimeout)
                        return clearTimeout(e);
                    if ((l === i || !l) && clearTimeout)
                        return l = clearTimeout,
                        clearTimeout(e);
                    try {
                        l(e)
                    } catch (t) {
                        try {
                            return l.call(null, e)
                        } catch (t) {
                            return l.call(this, e)
                        }
                    }
                }(t)
            }
        }
        function s(t, e) {
            this.fun = t,
            this.array = e
        }
        function c() {}
        var u, l, h = t.exports = {};
        !function() {
            try {
                u = "function" == typeof setTimeout ? setTimeout : n
            } catch (t) {
                u = n
            }
            try {
                l = "function" == typeof clearTimeout ? clearTimeout : i
            } catch (t) {
                l = i
            }
        }();
        var f, p = [], d = !1, M = -1;
        h.nextTick = function(t) {
            var e = new Array(arguments.length - 1);
            if (1 < arguments.length)
                for (var n = 1; n < arguments.length; n++)
                    e[n - 1] = arguments[n];
            p.push(new s(t,e)),
            1 !== p.length || d || r(a)
        }
        ,
        s.prototype.run = function() {
            this.fun.apply(null, this.array)
        }
        ,
        h.title = "browser",
        h.browser = !0,
        h.env = {},
        h.argv = [],
        h.version = "",
        h.versions = {},
        h.on = c,
        h.addListener = c,
        h.once = c,
        h.off = c,
        h.removeListener = c,
        h.removeAllListeners = c,
        h.emit = c,
        h.prependListener = c,
        h.prependOnceListener = c,
        h.listeners = function(t) {
            return []
        }
        ,
        h.binding = function(t) {
            throw new Error("process.binding is not supported")
        }
        ,
        h.cwd = function() {
            return "/"
        }
        ,
        h.chdir = function(t) {
            throw new Error("process.chdir is not supported")
        }
        ,
        h.umask = function() {
            return 0
        }
    }
    , function(t, e) {
        var n = function() {
            return this
        }();
        try {
            n = n || Function("return this")() || (0,
            eval)("this")
        } catch (t) {
            "object" == typeof window && (n = window)
        }
        t.exports = n
    }
    , function(t, e) {}
    , function(t, e, n) {
        "use strict";
        Object.defineProperty(e, "__esModule", {
            value: !0
        });
        var i = ["text/plain", "text/html"]
          , r = function() {
            (console.warn || console.log).call(arguments)
        }
        .bind(console, "[clipboard-polyfill]")
          , o = !0;
        e.suppressDTWarnings = function() {
            o = !1
        }
        ;
        var a = (s.prototype.setData = function(t, e) {
            o && -1 === i.indexOf(t) && r("Unknown data type: " + t, "Call clipboard.suppressWarnings() to suppress this warning."),
            this.m[t] = e
        }
        ,
        s.prototype.getData = function(t) {
            return this.m[t]
        }
        ,
        s.prototype.forEach = function(t) {
            for (var e in this.m)
                t(this.m[e], e)
        }
        ,
        s);
        function s() {
            this.m = {}
        }
        e.DT = a
    }
    ],
    i.c = r,
    i.d = function(t, e, n) {
        i.o(t, e) || Object.defineProperty(t, e, {
            configurable: !1,
            enumerable: !0,
            get: n
        })
    }
    ,
    i.n = function(t) {
        var e = t && t.__esModule ? function() {
            return t.default
        }
        : function() {
            return t
        }
        ;
        return i.d(e, "a", e),
        e
    }
    ,
    i.o = function(t, e) {
        return Object.prototype.hasOwnProperty.call(t, e)
    }
    ,
    i.p = "",
    i(i.s = 0);
    function i(t) {
        if (r[t])
            return r[t].exports;
        var e = r[t] = {
            i: t,
            l: !1,
            exports: {}
        };
        return n[t].call(e.exports, e, e.exports, i),
        e.l = !0,
        e.exports
    }
    var n, r
}),
function(t) {
    "use strict";
    "function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof exports && "object" == typeof module ? module.exports = t(require("jquery")) : t(jQuery)
}(function(kt, St) {
    "use strict";
    var t, Bt = {
        beforeShow: n,
        move: n,
        change: n,
        show: n,
        hide: n,
        color: !1,
        flat: !1,
        showInput: !1,
        allowEmpty: !1,
        showButtons: !0,
        clickoutFiresChange: !0,
        showInitial: !1,
        showPalette: !1,
        showPaletteOnly: !1,
        hideAfterPaletteSelect: !1,
        togglePaletteOnly: !1,
        showSelectionPalette: !0,
        localStorageKey: !1,
        appendTo: "body",
        maxSelectionSize: 7,
        cancelText: "cancel",
        chooseText: "choose",
        togglePaletteMoreText: "more",
        togglePaletteLessText: "less",
        clearText: "Clear Color Selection",
        noColorSelectedText: "No Color Selected",
        preferredFormat: !1,
        className: "",
        containerClassName: "",
        replacerClassName: "",
        showAlpha: !1,
        theme: "sp-light",
        palette: [["#ffffff", "#000000", "#ff0000", "#ff8000", "#ffff00", "#008000", "#0000ff", "#4b0082", "#9400d3"]],
        selectionPalette: [],
        disabled: !1,
        offset: null
    }, Et = [], Xt = !!/msie/i.exec(window.navigator.userAgent), Dt = ((t = document.createElement("div").style).cssText = "background-color:rgba(0,0,0,.5)",
    e(t.backgroundColor, "rgba") || e(t.backgroundColor, "hsla")), Rt = ["<div class='sp-replacer'>", "<div class='sp-preview'><div class='sp-preview-inner'></div></div>", "<div class='sp-dd'>&#9660;</div>", "</div>"].join(""), Pt = function() {
        var t = "";
        if (Xt)
            for (var e = 1; e <= 6; e++)
                t += "<div class='sp-" + e + "'></div>";
        return ["<div class='sp-container sp-hidden'>", "<div class='sp-palette-container'>", "<div class='sp-palette sp-thumb sp-cf'></div>", "<div class='sp-palette-button-container sp-cf'>", "<button type='button' class='sp-palette-toggle'></button>", "</div>", "</div>", "<div class='sp-picker-container'>", "<div class='sp-top sp-cf'>", "<div class='sp-fill'></div>", "<div class='sp-top-inner'>", "<div class='sp-color'>", "<div class='sp-sat'>", "<div class='sp-val'>", "<div class='sp-dragger'></div>", "</div>", "</div>", "</div>", "<div class='sp-clear sp-clear-display'>", "</div>", "<div class='sp-hue'>", "<div class='sp-slider'></div>", t, "</div>", "</div>", "<div class='sp-alpha'><div class='sp-alpha-inner'><div class='sp-alpha-handle'></div></div></div>", "</div>", "<div class='sp-input-container sp-cf'>", "<input class='sp-input formulaInputFocus' type='text' spellcheck='false'  />", "</div>", "<div class='sp-initial sp-thumb sp-cf'></div>", "<div class='sp-button-container sp-cf'>", "<a class='sp-cancel' href='#'></a>", "<button type='button' class='sp-choose'></button>", "</div>", "</div>", "</div>"].join("")
    }();
    function e(t, e) {
        return !!~("" + t).indexOf(e)
    }
    function It(t, e, n, i) {
        for (var r = [], o = 0; o < t.length; o++) {
            var a, s, c, u, l = t[o];
            l ? (s = (a = tinycolor(l)).toHsl().l < .5 ? "sp-thumb-el sp-thumb-dark" : "sp-thumb-el sp-thumb-light",
            s += tinycolor.equals(e, l) ? " sp-thumb-active" : "",
            c = a.toString(i.preferredFormat || "rgb"),
            u = Dt ? "background-color:" + a.toRgbString() : "filter:" + a.toFilter(),
            r.push('<span title="' + c + '" data-color="' + a.toRgbString() + '" class="' + s + '"><span class="sp-thumb-inner" style="' + u + ';" /></span>')) : r.push(kt("<div />").append(kt('<span data-color="" style="background-color:transparent;" class="sp-clear-display"></span>').attr("title", i.noColorSelectedText)).html())
        }
        return "<div class='sp-cf " + n + "'>" + r.join("") + "</div>"
    }
    function n() {}
    function jt(t) {
        t.stopPropagation()
    }
    function Ht(t, e) {
        var n = Array.prototype.slice
          , i = n.call(arguments, 2);
        return function() {
            return t.apply(e, i.concat(n.call(arguments)))
        }
    }
    function Ft(a, s, e, t) {
        s = s || function() {}
        ,
        e = e || function() {}
        ,
        t = t || function() {}
        ;
        var c = document
          , u = !1
          , l = {}
          , h = 0
          , f = 0
          , p = "ontouchstart"in window
          , n = {};
        function d(t) {
            t.stopPropagation && t.stopPropagation(),
            t.preventDefault && t.preventDefault(),
            t.returnValue = !1
        }
        function i(t) {
            if (u) {
                if (Xt && c.documentMode < 9 && !t.button)
                    return M();
                var e = t.originalEvent && t.originalEvent.touches && t.originalEvent.touches[0]
                  , n = e && e.pageX || t.pageX
                  , i = e && e.pageY || t.pageY
                  , r = Math.max(0, Math.min(n - l.left, f))
                  , o = Math.max(0, Math.min(i - l.top, h));
                p && d(t),
                s.apply(a, [r, o, t])
            }
        }
        function M() {
            u && (kt(c).unbind(n),
            kt(c.body).removeClass("sp-dragging"),
            setTimeout(function() {
                t.apply(a, arguments)
            }, 0)),
            u = !1
        }
        n.selectstart = d,
        n.dragstart = d,
        n["touchmove mousemove"] = i,
        n["touchend mouseup"] = M,
        kt(a).bind("touchstart mousedown", function(t) {
            (t.which ? 3 == t.which : 2 == t.button) || u || !1 !== e.apply(a, arguments) && (u = !0,
            h = kt(a).height(),
            f = kt(a).width(),
            l = kt(a).offset(),
            kt(c).bind(n),
            kt(c.body).addClass("sp-dragging"),
            i(t),
            d(t))
        })
    }
    function Ut() {
        return kt.fn.spectrum.inputTypeColorSupport()
    }
    var o = "spectrum.id";
    kt.fn.spectrum = function(n, t) {
        if ("string" != typeof n)
            return this.spectrum("destroy").each(function() {
                var t = function(t, e) {
                    var n, i, r, o, l = (r = t,
                    (o = kt.extend({}, Bt, e)).callbacks = {
                        move: Ht(o.move, r),
                        change: Ht(o.change, r),
                        show: Ht(o.show, r),
                        hide: Ht(o.hide, r),
                        beforeShow: Ht(o.beforeShow, r)
                    },
                    o), h = l.flat, a = l.showSelectionPalette, s = l.localStorageKey, c = l.theme, u = l.callbacks, f = (n = Tt,
                    function() {
                        var t = this
                          , e = arguments;
                        i = i || setTimeout(function() {
                            i = null,
                            n.apply(t, e)
                        }, 10)
                    }
                    ), p = !10, d = !1, M = 0, b = 0, m = 0, g = 0, v = 0, A = 0, y = 0, z = 0, _ = 0, O = 0, w = 1, L = [], N = [], q = {}, W = l.selectionPalette.slice(0), T = l.maxSelectionSize, C = "sp-dragging", x = null, k = t.ownerDocument, S = (k.body,
                    kt(t)), B = !1, E = kt(Pt, k).addClass(c), X = E.find(".sp-picker-container"), D = E.find(".sp-color"), R = E.find(".sp-dragger"), P = E.find(".sp-hue"), I = E.find(".sp-slider"), j = E.find(".sp-alpha-inner"), H = E.find(".sp-alpha"), F = E.find(".sp-alpha-handle"), U = E.find(".sp-input"), Y = E.find(".sp-palette"), G = E.find(".sp-initial"), V = E.find(".sp-cancel"), K = E.find(".sp-clear"), Q = E.find(".sp-choose"), $ = E.find(".sp-palette-toggle"), J = S.is("input"), Z = J && "color" === S.attr("type") && Ut(), tt = J && !h, et = tt ? kt(Rt).addClass(c).addClass(l.className).addClass(l.replacerClassName) : kt([]), nt = tt ? et : S, it = et.find(".sp-preview-inner"), rt = l.color || J && S.val(), ot = !1, at = l.preferredFormat, st = !l.showButtons || l.clickoutFiresChange, ct = !rt, ut = l.allowEmpty && !Z;
                    function lt() {
                        if (l.showPaletteOnly && (l.showPalette = !0),
                        $.text(l.showPaletteOnly ? l.togglePaletteMoreText : l.togglePaletteLessText),
                        l.palette) {
                            L = l.palette.slice(0),
                            N = kt.isArray(L[0]) ? L : [L],
                            q = {};
                            for (var t = 0; t < N.length; t++)
                                for (var e = 0; e < N[t].length; e++) {
                                    var n = tinycolor(N[t][e]).toRgbString();
                                    q[n] = !0
                                }
                        }
                        E.toggleClass("sp-flat", h),
                        E.toggleClass("sp-input-disabled", !l.showInput),
                        E.toggleClass("sp-alpha-enabled", l.showAlpha),
                        E.toggleClass("sp-clear-enabled", ut),
                        E.toggleClass("sp-buttons-disabled", !l.showButtons),
                        E.toggleClass("sp-palette-buttons-disabled", !l.togglePaletteOnly),
                        E.toggleClass("sp-palette-disabled", !l.showPalette),
                        E.toggleClass("sp-palette-only", l.showPaletteOnly),
                        E.toggleClass("sp-initial-disabled", !l.showInitial),
                        E.addClass(l.className).addClass(l.containerClassName),
                        Tt()
                    }
                    function ht() {
                        if (s && window.localStorage) {
                            try {
                                var t = window.localStorage[s].split(",#");
                                1 < t.length && (delete window.localStorage[s],
                                kt.each(t, function(t, e) {
                                    ft(e)
                                }))
                            } catch (t) {}
                            try {
                                W = window.localStorage[s].split(";")
                            } catch (t) {}
                        }
                    }
                    function ft(t) {
                        if (a) {
                            var e = tinycolor(t).toRgbString();
                            if (!q[e] && -1 === kt.inArray(e, W))
                                for (W.push(e); W.length > T; )
                                    W.shift();
                            if (s && window.localStorage)
                                try {
                                    window.localStorage[s] = W.join(";")
                                } catch (t) {}
                        }
                    }
                    function pt() {
                        var n = wt()
                          , t = kt.map(N, function(t, e) {
                            return It(t, n, "sp-palette-row sp-palette-row-" + e, l)
                        });
                        ht(),
                        W && t.push(It(function() {
                            var t = [];
                            if (l.showPalette)
                                for (var e = 0; e < W.length; e++) {
                                    var n = tinycolor(W[e]).toRgbString();
                                    q[n] || t.push(W[e])
                                }
                            return t.reverse().slice(0, l.maxSelectionSize)
                        }(), n, "sp-palette-row sp-palette-row-selection", l)),
                        Y.html(t.join(""))
                    }
                    function dt() {
                        var t, e;
                        l.showInitial && (t = ot,
                        e = wt(),
                        G.html(It([t, e], e, "sp-palette-row-initial", l)))
                    }
                    function Mt() {
                        (b <= 0 || M <= 0 || g <= 0) && Tt(),
                        d = !0,
                        E.addClass(C),
                        x = null,
                        S.trigger("dragstart.spectrum", [wt()])
                    }
                    function bt() {
                        d = !1,
                        E.removeClass(C),
                        S.trigger("dragstop.spectrum", [wt()])
                    }
                    function mt() {
                        var t, e = U.val();
                        null !== e && "" !== e || !ut ? (t = tinycolor(e)).isValid() ? (Ot(t),
                        Wt(!0)) : U.addClass("sp-validation-error") : (Ot(null),
                        Wt(!0))
                    }
                    function gt() {
                        (p ? zt : vt)()
                    }
                    function vt() {
                        var t = kt.Event("beforeShow.spectrum");
                        p ? Tt() : (S.trigger(t, [wt()]),
                        !1 === u.beforeShow(wt()) || t.isDefaultPrevented() || (function() {
                            for (var t = 0; t < Et.length; t++)
                                Et[t] && Et[t].hide()
                        }(),
                        p = !0,
                        kt(k).bind("keydown.spectrum", At),
                        kt(k).bind("click.spectrum", yt),
                        kt(window).bind("resize.spectrum", f),
                        et.addClass("sp-active"),
                        E.removeClass("sp-hidden"),
                        Tt(),
                        Nt(),
                        ot = wt(),
                        dt(),
                        u.show(ot),
                        S.trigger("show.spectrum", [ot])))
                    }
                    function At(t) {
                        27 === t.keyCode && zt()
                    }
                    function yt(t) {
                        2 != t.button && (d || (st ? Wt(!0) : _t(),
                        zt()))
                    }
                    function zt() {
                        p && !h && (p = !1,
                        kt(k).unbind("keydown.spectrum", At),
                        kt(k).unbind("click.spectrum", yt),
                        kt(window).unbind("resize.spectrum", f),
                        et.removeClass("sp-active"),
                        E.addClass("sp-hidden"),
                        u.hide(wt()),
                        S.trigger("hide.spectrum", [wt()]))
                    }
                    function _t() {
                        Ot(ot, !0)
                    }
                    function Ot(t, e) {
                        var n, i;
                        tinycolor.equals(t, wt()) ? Nt() : (!t && ut ? ct = !0 : (ct = !1,
                        i = (n = tinycolor(t)).toHsv(),
                        z = i.h % 360 / 360,
                        _ = i.s,
                        O = i.v,
                        w = i.a),
                        Nt(),
                        n && n.isValid() && !e && (at = l.preferredFormat || n.getFormat()))
                    }
                    function wt(t) {
                        return t = t || {},
                        ut && ct ? null : tinycolor.fromRatio({
                            h: z,
                            s: _,
                            v: O,
                            a: Math.round(100 * w) / 100
                        }, {
                            format: t.format || at
                        })
                    }
                    function Lt() {
                        Nt(),
                        u.move(wt()),
                        S.trigger("move.spectrum", [wt()])
                    }
                    function Nt() {
                        U.removeClass("sp-validation-error"),
                        qt();
                        var t = tinycolor.fromRatio({
                            h: z,
                            s: 1,
                            v: 1
                        });
                        D.css("background-color", t.toHexString());
                        var e = at;
                        w < 1 && (0 !== w || "name" !== e) && ("hex" !== e && "hex3" !== e && "hex6" !== e && "name" !== e || (e = "rgb"));
                        var n, i, r, o, a, s = wt({
                            format: e
                        }), c = "";
                        it.removeClass("sp-clear-display"),
                        it.css("background-color", "transparent"),
                        !s && ut ? it.addClass("sp-clear-display") : (n = s.toHexString(),
                        i = s.toRgbString(),
                        Dt || 1 === s.alpha ? it.css("background-color", i) : (it.css("background-color", "transparent"),
                        it.css("filter", s.toFilter())),
                        l.showAlpha && ((r = s.toRgb()).a = 0,
                        a = "linear-gradient(left, " + (o = tinycolor(r).toRgbString()) + ", " + n + ")",
                        Xt ? j.css("filter", tinycolor(o).toFilter({
                            gradientType: 1
                        }, n)) : (j.css("background", "-webkit-" + a),
                        j.css("background", "-moz-" + a),
                        j.css("background", "-ms-" + a),
                        j.css("background", "linear-gradient(to right, " + o + ", " + n + ")"))),
                        c = s.toString(e)),
                        l.showInput && U.val(c),
                        l.showPalette && pt(),
                        dt()
                    }
                    function qt() {
                        var t, e, n, i, r = _, o = O;
                        ut && ct ? (F.hide(),
                        I.hide(),
                        R.hide()) : (F.show(),
                        I.show(),
                        R.show(),
                        t = r * M,
                        e = b - o * b,
                        t = Math.max(-m, Math.min(M - m, t - m)),
                        e = Math.max(-m, Math.min(b - m, e - m)),
                        R.css({
                            top: e + "px",
                            left: t + "px"
                        }),
                        n = w * v,
                        F.css({
                            left: n - A / 2 + "px"
                        }),
                        i = z * g,
                        I.css({
                            top: i - y + "px"
                        }))
                    }
                    function Wt(t) {
                        var e = wt()
                          , n = "";
                        e && (n = e.toString(at),
                        ft(e)),
                        J && S.val(n),
                        t && (u.change(e),
                        S.trigger("change", [e]))
                    }
                    function Tt() {
                        var t, e, n, i, r, o, a, s, c, u;
                        p && (M = D.width(),
                        b = D.height(),
                        m = R.height(),
                        P.width(),
                        g = P.height(),
                        y = I.height(),
                        v = H.width(),
                        A = F.width(),
                        h || (E.css("position", "absolute"),
                        l.offset ? E.offset(l.offset) : E.offset((e = nt,
                        n = (t = E).outerWidth(),
                        i = t.outerHeight(),
                        r = e.outerHeight(),
                        s = (a = (o = t[0].ownerDocument).documentElement).clientWidth + kt(o).scrollLeft(),
                        c = a.clientHeight + kt(o).scrollTop(),
                        (u = e.offset()).top += r,
                        u.left -= Math.min(u.left, u.left + n > s && n < s ? Math.abs(u.left + n - s) : 0),
                        u.top -= Math.min(u.top, u.top + i > c && i < c ? Math.abs(+(i + r)) : 0),
                        u))),
                        qt(),
                        l.showPalette && pt(),
                        S.trigger("reflow.spectrum"))
                    }
                    function Ct() {
                        zt(),
                        B = !0,
                        S.attr("disabled", !0),
                        nt.addClass("sp-disabled")
                    }
                    !function() {
                        var t;
                        function e(t) {
                            return t.data && t.data.ignore ? (Ot(kt(t.target).closest(".sp-thumb-el").data("color")),
                            Lt()) : (Ot(kt(t.target).closest(".sp-thumb-el").data("color")),
                            Lt(),
                            Wt(!0),
                            l.hideAfterPaletteSelect && zt()),
                            !1
                        }
                        Xt && E.find("*:not(input)").attr("unselectable", "on"),
                        lt(),
                        tt && S.after(et).hide(),
                        ut || K.hide(),
                        h ? S.after(E).hide() : (1 !== (t = "parent" === l.appendTo ? S.parent() : kt(l.appendTo)).length && (t = kt("body")),
                        t.append(E)),
                        ht(),
                        nt.bind("click.spectrum touchstart.spectrum", function(t) {
                            B || gt(),
                            t.stopPropagation(),
                            kt(t.target).is("input") || t.preventDefault()
                        }),
                        !S.is(":disabled") && !0 !== l.disabled || Ct(),
                        E.click(jt),
                        U.change(mt),
                        U.bind("paste", function() {
                            setTimeout(mt, 1)
                        }),
                        U.keydown(function(t) {
                            13 == t.keyCode && mt()
                        }),
                        V.text(l.cancelText),
                        V.bind("click.spectrum", function(t) {
                            t.stopPropagation(),
                            t.preventDefault(),
                            _t(),
                            zt()
                        }),
                        K.attr("title", l.clearText),
                        K.bind("click.spectrum", function(t) {
                            t.stopPropagation(),
                            t.preventDefault(),
                            ct = !0,
                            Lt(),
                            h && Wt(!0)
                        }),
                        Q.text(l.chooseText),
                        Q.bind("click.spectrum", function(t) {
                            t.stopPropagation(),
                            t.preventDefault(),
                            Xt && U.is(":focus") && U.trigger("change"),
                            U.hasClass("sp-validation-error") || (Wt(!0),
                            zt())
                        }),
                        $.text(l.showPaletteOnly ? l.togglePaletteMoreText : l.togglePaletteLessText),
                        $.bind("click.spectrum", function(t) {
                            t.stopPropagation(),
                            t.preventDefault(),
                            l.showPaletteOnly = !l.showPaletteOnly,
                            l.showPaletteOnly || h || E.css("left", "-=" + (X.outerWidth(!0) + 5)),
                            lt()
                        }),
                        Ft(H, function(t, e, n) {
                            w = t / v,
                            ct = !1,
                            n.shiftKey && (w = Math.round(10 * w) / 10),
                            Lt()
                        }, Mt, bt),
                        Ft(P, function(t, e) {
                            z = parseFloat(e / g),
                            ct = !1,
                            l.showAlpha || (w = 1),
                            Lt()
                        }, Mt, bt),
                        Ft(D, function(t, e, n) {
                            var i, r, o;
                            n.shiftKey ? x || (i = _ * M,
                            r = b - O * b,
                            o = Math.abs(t - i) > Math.abs(e - r),
                            x = o ? "x" : "y") : x = null;
                            var a = !x || "y" === x;
                            x && "x" !== x || (_ = parseFloat(t / M)),
                            a && (O = parseFloat((b - e) / b)),
                            ct = !1,
                            l.showAlpha || (w = 1),
                            Lt()
                        }, Mt, bt),
                        rt ? (Ot(rt),
                        Nt(),
                        at = l.preferredFormat || tinycolor(rt).format,
                        ft(rt)) : Nt(),
                        h && vt();
                        var n = Xt ? "mousedown.spectrum" : "click.spectrum touchstart.spectrum";
                        Y.delegate(".sp-thumb-el", n, e),
                        G.delegate(".sp-thumb-el:nth-child(1)", n, {
                            ignore: !0
                        }, e)
                    }();
                    var xt = {
                        show: vt,
                        hide: zt,
                        toggle: gt,
                        reflow: Tt,
                        option: function(t, e) {
                            return t === St ? kt.extend({}, l) : e === St ? l[t] : (l[t] = e,
                            "preferredFormat" === t && (at = l.preferredFormat),
                            void lt())
                        },
                        enable: function() {
                            B = !1,
                            S.attr("disabled", !1),
                            nt.removeClass("sp-disabled")
                        },
                        disable: Ct,
                        offset: function(t) {
                            l.offset = t,
                            Tt()
                        },
                        set: function(t) {
                            Ot(t),
                            Wt()
                        },
                        get: wt,
                        destroy: function() {
                            S.show(),
                            nt.unbind("click.spectrum touchstart.spectrum"),
                            E.remove(),
                            et.remove(),
                            Et[xt.id] = null
                        },
                        container: E
                    };
                    return xt.id = Et.push(xt) - 1,
                    xt
                }(this, kt.extend({}, n, kt(this).data()));
                kt(this).data(o, t.id)
            });
        var i = this
          , r = Array.prototype.slice.call(arguments, 1);
        return this.each(function() {
            var t = Et[kt(this).data(o)];
            if (t) {
                var e = t[n];
                if (!e)
                    throw new Error("Spectrum: no such method: '" + n + "'");
                "get" == n ? i = t.get() : "container" == n ? i = t.container : "option" == n ? i = t.option.apply(t, r) : "destroy" == n ? (t.destroy(),
                kt(this).removeData(o)) : e.apply(t, r)
            }
        }),
        i
    }
    ,
    kt.fn.spectrum.load = !0,
    kt.fn.spectrum.loadOpts = {},
    kt.fn.spectrum.draggable = Ft,
    kt.fn.spectrum.defaults = Bt,
    kt.fn.spectrum.inputTypeColorSupport = function t() {
        var e;
        return void 0 === t._cachedResult && (e = kt("<input type='color'/>")[0],
        t._cachedResult = "color" === e.type && "" !== e.value),
        t._cachedResult
    }
    ,
    kt.spectrum = {},
    kt.spectrum.localization = {},
    kt.spectrum.palettes = {},
    kt.fn.spectrum.processNativeColorInputs = function() {
        var t = kt("input[type=color]");
        t.length && !Ut() && t.spectrum({
            preferredFormat: "hex6"
        })
    }
    ,
    function() {
        var A = /^[\s,#]+/
          , y = /\s+$/
          , z = 0
          , _ = Math
          , O = _.round
          , w = _.min
          , L = _.max
          , t = _.random
          , N = function(t, e) {
            if (e = e || {},
            (t = t || "")instanceof N)
                return t;
            if (!(this instanceof N))
                return new N(t,e);
            var n, i, r, o, a, s, c, u, l, h, f, p, d, M, b, m, g = (d = {
                r: 0,
                g: 0,
                b: 0
            },
            m = b = !(M = 1),
            "string" == typeof (n = t) && (n = function(t) {
                t = t.replace(A, "").replace(y, "").toLowerCase();
                var e, n = !1;
                if (q[t])
                    t = q[t],
                    n = !0;
                else if ("transparent" == t)
                    return {
                        r: 0,
                        g: 0,
                        b: 0,
                        a: 0,
                        format: "name"
                    };
                return (e = X.rgb.exec(t)) ? {
                    r: e[1],
                    g: e[2],
                    b: e[3]
                } : (e = X.rgba.exec(t)) ? {
                    r: e[1],
                    g: e[2],
                    b: e[3],
                    a: e[4]
                } : (e = X.hsl.exec(t)) ? {
                    h: e[1],
                    s: e[2],
                    l: e[3]
                } : (e = X.hsla.exec(t)) ? {
                    h: e[1],
                    s: e[2],
                    l: e[3],
                    a: e[4]
                } : (e = X.hsv.exec(t)) ? {
                    h: e[1],
                    s: e[2],
                    v: e[3]
                } : (e = X.hsva.exec(t)) ? {
                    h: e[1],
                    s: e[2],
                    v: e[3],
                    a: e[4]
                } : (e = X.hex8.exec(t)) ? {
                    a: C(e[1]) / 255,
                    r: C(e[2]),
                    g: C(e[3]),
                    b: C(e[4]),
                    format: n ? "name" : "hex8"
                } : (e = X.hex6.exec(t)) ? {
                    r: C(e[1]),
                    g: C(e[2]),
                    b: C(e[3]),
                    format: n ? "name" : "hex"
                } : !!(e = X.hex3.exec(t)) && {
                    r: C(e[1] + "" + e[1]),
                    g: C(e[2] + "" + e[2]),
                    b: C(e[3] + "" + e[3]),
                    format: n ? "name" : "hex"
                }
            }(n)),
            "object" == typeof n && (n.hasOwnProperty("r") && n.hasOwnProperty("g") && n.hasOwnProperty("b") ? (h = n.r,
            f = n.g,
            p = n.b,
            d = {
                r: 255 * T(h, 255),
                g: 255 * T(f, 255),
                b: 255 * T(p, 255)
            },
            b = !0,
            m = "%" === String(n.r).substr(-1) ? "prgb" : "rgb") : n.hasOwnProperty("h") && n.hasOwnProperty("s") && n.hasOwnProperty("v") ? (n.s = k(n.s),
            n.v = k(n.v),
            d = function(t, e, n) {
                t = 6 * T(t, 360),
                e = T(e, 100),
                n = T(n, 100);
                var i = _.floor(t)
                  , r = t - i
                  , o = n * (1 - e)
                  , a = n * (1 - r * e)
                  , s = n * (1 - (1 - r) * e)
                  , c = i % 6;
                return {
                    r: 255 * [n, a, o, o, s, n][c],
                    g: 255 * [s, n, n, a, o, o][c],
                    b: 255 * [o, o, s, n, n, a][c]
                }
            }(n.h, n.s, n.v),
            b = !0,
            m = "hsv") : n.hasOwnProperty("h") && n.hasOwnProperty("s") && n.hasOwnProperty("l") && (n.s = k(n.s),
            n.l = k(n.l),
            i = n.h,
            r = n.s,
            o = n.l,
            i = T(i, 360),
            r = T(r, 100),
            o = T(o, 100),
            0 === r ? c = u = l = o : (c = v(s = 2 * o - (a = o < .5 ? o * (1 + r) : o + r - o * r), a, i + 1 / 3),
            u = v(s, a, i),
            l = v(s, a, i - 1 / 3)),
            d = {
                r: 255 * c,
                g: 255 * u,
                b: 255 * l
            },
            b = !0,
            m = "hsl"),
            n.hasOwnProperty("a") && (M = n.a)),
            M = W(M),
            {
                ok: b,
                format: n.format || m,
                r: w(255, L(d.r, 0)),
                g: w(255, L(d.g, 0)),
                b: w(255, L(d.b, 0)),
                a: M
            });
            function v(t, e, n) {
                return n < 0 && (n += 1),
                1 < n && --n,
                n < 1 / 6 ? t + 6 * (e - t) * n : n < .5 ? e : n < 2 / 3 ? t + (e - t) * (2 / 3 - n) * 6 : t
            }
            this._originalInput = t,
            this._r = g.r,
            this._g = g.g,
            this._b = g.b,
            this._a = g.a,
            this._roundA = O(100 * this._a) / 100,
            this._format = e.format || g.format,
            this._gradientType = e.gradientType,
            this._r < 1 && (this._r = O(this._r)),
            this._g < 1 && (this._g = O(this._g)),
            this._b < 1 && (this._b = O(this._b)),
            this._ok = g.ok,
            this._tc_id = z++
        };
        function r(t, e, n) {
            t = T(t, 255),
            e = T(e, 255),
            n = T(n, 255);
            var i, r = L(t, e, n), o = w(t, e, n), a = (r + o) / 2;
            if (r == o)
                i = c = 0;
            else {
                var s = r - o
                  , c = .5 < a ? s / (2 - r - o) : s / (r + o);
                switch (r) {
                case t:
                    i = (e - n) / s + (e < n ? 6 : 0);
                    break;
                case e:
                    i = (n - t) / s + 2;
                    break;
                case n:
                    i = (t - e) / s + 4
                }
                i /= 6
            }
            return {
                h: i,
                s: c,
                l: a
            }
        }
        function o(t, e, n) {
            t = T(t, 255),
            e = T(e, 255),
            n = T(n, 255);
            var i, r = L(t, e, n), o = w(t, e, n), a = r, s = r - o, c = 0 === r ? 0 : s / r;
            if (r == o)
                i = 0;
            else {
                switch (r) {
                case t:
                    i = (e - n) / s + (e < n ? 6 : 0);
                    break;
                case e:
                    i = (n - t) / s + 2;
                    break;
                case n:
                    i = (t - e) / s + 4
                }
                i /= 6
            }
            return {
                h: i,
                s: c,
                v: a
            }
        }
        function e(t, e, n, i) {
            var r = [x(O(t).toString(16)), x(O(e).toString(16)), x(O(n).toString(16))];
            return i && r[0].charAt(0) == r[0].charAt(1) && r[1].charAt(0) == r[1].charAt(1) && r[2].charAt(0) == r[2].charAt(1) ? r[0].charAt(0) + r[1].charAt(0) + r[2].charAt(0) : r.join("")
        }
        function a(t, e, n, i) {
            return [x(Math.round(255 * parseFloat(i)).toString(16)), x(O(t).toString(16)), x(O(e).toString(16)), x(O(n).toString(16))].join("")
        }
        function n(t, e) {
            e = 0 === e ? 0 : e || 10;
            var n = N(t).toHsl();
            return n.s -= e / 100,
            n.s = v(n.s),
            N(n)
        }
        function i(t, e) {
            e = 0 === e ? 0 : e || 10;
            var n = N(t).toHsl();
            return n.s += e / 100,
            n.s = v(n.s),
            N(n)
        }
        function s(t) {
            return N(t).desaturate(100)
        }
        function c(t, e) {
            e = 0 === e ? 0 : e || 10;
            var n = N(t).toHsl();
            return n.l += e / 100,
            n.l = v(n.l),
            N(n)
        }
        function u(t, e) {
            e = 0 === e ? 0 : e || 10;
            var n = N(t).toRgb();
            return n.r = L(0, w(255, n.r - O(-e / 100 * 255))),
            n.g = L(0, w(255, n.g - O(-e / 100 * 255))),
            n.b = L(0, w(255, n.b - O(-e / 100 * 255))),
            N(n)
        }
        function l(t, e) {
            e = 0 === e ? 0 : e || 10;
            var n = N(t).toHsl();
            return n.l -= e / 100,
            n.l = v(n.l),
            N(n)
        }
        function h(t, e) {
            var n = N(t).toHsl()
              , i = (O(n.h) + e) % 360;
            return n.h = i < 0 ? 360 + i : i,
            N(n)
        }
        function f(t) {
            var e = N(t).toHsl();
            return e.h = (e.h + 180) % 360,
            N(e)
        }
        function p(t) {
            var e = N(t).toHsl()
              , n = e.h;
            return [N(t), N({
                h: (n + 120) % 360,
                s: e.s,
                l: e.l
            }), N({
                h: (n + 240) % 360,
                s: e.s,
                l: e.l
            })]
        }
        function d(t) {
            var e = N(t).toHsl()
              , n = e.h;
            return [N(t), N({
                h: (n + 90) % 360,
                s: e.s,
                l: e.l
            }), N({
                h: (n + 180) % 360,
                s: e.s,
                l: e.l
            }), N({
                h: (n + 270) % 360,
                s: e.s,
                l: e.l
            })]
        }
        function M(t) {
            var e = N(t).toHsl()
              , n = e.h;
            return [N(t), N({
                h: (n + 72) % 360,
                s: e.s,
                l: e.l
            }), N({
                h: (n + 216) % 360,
                s: e.s,
                l: e.l
            })]
        }
        function b(t, e, n) {
            e = e || 6,
            n = n || 30;
            var i = N(t).toHsl()
              , r = 360 / n
              , o = [N(t)];
            for (i.h = (i.h - (r * e >> 1) + 720) % 360; --e; )
                i.h = (i.h + r) % 360,
                o.push(N(i));
            return o
        }
        function m(t, e) {
            e = e || 6;
            for (var n = N(t).toHsv(), i = n.h, r = n.s, o = n.v, a = [], s = 1 / e; e--; )
                a.push(N({
                    h: i,
                    s: r,
                    v: o
                })),
                o = (o + s) % 1;
            return a
        }
        N.prototype = {
            isDark: function() {
                return this.getBrightness() < 128
            },
            isLight: function() {
                return !this.isDark()
            },
            isValid: function() {
                return this._ok
            },
            getOriginalInput: function() {
                return this._originalInput
            },
            getFormat: function() {
                return this._format
            },
            getAlpha: function() {
                return this._a
            },
            getBrightness: function() {
                var t = this.toRgb();
                return (299 * t.r + 587 * t.g + 114 * t.b) / 1e3
            },
            setAlpha: function(t) {
                return this._a = W(t),
                this._roundA = O(100 * this._a) / 100,
                this
            },
            toHsv: function() {
                var t = o(this._r, this._g, this._b);
                return {
                    h: 360 * t.h,
                    s: t.s,
                    v: t.v,
                    a: this._a
                }
            },
            toHsvString: function() {
                var t = o(this._r, this._g, this._b)
                  , e = O(360 * t.h)
                  , n = O(100 * t.s)
                  , i = O(100 * t.v);
                return 1 == this._a ? "hsv(" + e + ", " + n + "%, " + i + "%)" : "hsva(" + e + ", " + n + "%, " + i + "%, " + this._roundA + ")"
            },
            toHsl: function() {
                var t = r(this._r, this._g, this._b);
                return {
                    h: 360 * t.h,
                    s: t.s,
                    l: t.l,
                    a: this._a
                }
            },
            toHslString: function() {
                var t = r(this._r, this._g, this._b)
                  , e = O(360 * t.h)
                  , n = O(100 * t.s)
                  , i = O(100 * t.l);
                return 1 == this._a ? "hsl(" + e + ", " + n + "%, " + i + "%)" : "hsla(" + e + ", " + n + "%, " + i + "%, " + this._roundA + ")"
            },
            toHex: function(t) {
                return e(this._r, this._g, this._b, t)
            },
            toHexString: function(t) {
                return "#" + this.toHex(t)
            },
            toHex8: function() {
                return a(this._r, this._g, this._b, this._a)
            },
            toHex8String: function() {
                return "#" + this.toHex8()
            },
            toRgb: function() {
                return {
                    r: O(this._r),
                    g: O(this._g),
                    b: O(this._b),
                    a: this._a
                }
            },
            toRgbString: function() {
                return 1 == this._a ? "rgb(" + O(this._r) + ", " + O(this._g) + ", " + O(this._b) + ")" : "rgba(" + O(this._r) + ", " + O(this._g) + ", " + O(this._b) + ", " + this._roundA + ")"
            },
            toPercentageRgb: function() {
                return {
                    r: O(100 * T(this._r, 255)) + "%",
                    g: O(100 * T(this._g, 255)) + "%",
                    b: O(100 * T(this._b, 255)) + "%",
                    a: this._a
                }
            },
            toPercentageRgbString: function() {
                return 1 == this._a ? "rgb(" + O(100 * T(this._r, 255)) + "%, " + O(100 * T(this._g, 255)) + "%, " + O(100 * T(this._b, 255)) + "%)" : "rgba(" + O(100 * T(this._r, 255)) + "%, " + O(100 * T(this._g, 255)) + "%, " + O(100 * T(this._b, 255)) + "%, " + this._roundA + ")"
            },
            toName: function() {
                return 0 === this._a ? "transparent" : !(this._a < 1) && (g[e(this._r, this._g, this._b, !0)] || !1)
            },
            toFilter: function(t) {
                var e = "#" + a(this._r, this._g, this._b, this._a)
                  , n = e
                  , i = this._gradientType ? "GradientType = 1, " : "";
                return t && (n = N(t).toHex8String()),
                "progid:DXImageTransform.Microsoft.gradient(" + i + "startColorstr=" + e + ",endColorstr=" + n + ")"
            },
            toString: function(t) {
                var e = !!t;
                t = t || this._format;
                var n = !1
                  , i = this._a < 1 && 0 <= this._a;
                return e || !i || "hex" !== t && "hex6" !== t && "hex3" !== t && "name" !== t ? ("rgb" === t && (n = this.toRgbString()),
                "prgb" === t && (n = this.toPercentageRgbString()),
                "hex" !== t && "hex6" !== t || (n = this.toHexString()),
                "hex3" === t && (n = this.toHexString(!0)),
                "hex8" === t && (n = this.toHex8String()),
                "name" === t && (n = this.toName()),
                "hsl" === t && (n = this.toHslString()),
                "hsv" === t && (n = this.toHsvString()),
                n || this.toHexString()) : "name" === t && 0 === this._a ? this.toName() : this.toRgbString()
            },
            _applyModification: function(t, e) {
                var n = t.apply(null, [this].concat([].slice.call(e)));
                return this._r = n._r,
                this._g = n._g,
                this._b = n._b,
                this.setAlpha(n._a),
                this
            },
            lighten: function() {
                return this._applyModification(c, arguments)
            },
            brighten: function() {
                return this._applyModification(u, arguments)
            },
            darken: function() {
                return this._applyModification(l, arguments)
            },
            desaturate: function() {
                return this._applyModification(n, arguments)
            },
            saturate: function() {
                return this._applyModification(i, arguments)
            },
            greyscale: function() {
                return this._applyModification(s, arguments)
            },
            spin: function() {
                return this._applyModification(h, arguments)
            },
            _applyCombination: function(t, e) {
                return t.apply(null, [this].concat([].slice.call(e)))
            },
            analogous: function() {
                return this._applyCombination(b, arguments)
            },
            complement: function() {
                return this._applyCombination(f, arguments)
            },
            monochromatic: function() {
                return this._applyCombination(m, arguments)
            },
            splitcomplement: function() {
                return this._applyCombination(M, arguments)
            },
            triad: function() {
                return this._applyCombination(p, arguments)
            },
            tetrad: function() {
                return this._applyCombination(d, arguments)
            }
        },
        N.fromRatio = function(t, e) {
            if ("object" == typeof t) {
                var n = {};
                for (var i in t)
                    t.hasOwnProperty(i) && (n[i] = "a" === i ? t[i] : k(t[i]));
                t = n
            }
            return N(t, e)
        }
        ,
        N.equals = function(t, e) {
            return !(!t || !e) && N(t).toRgbString() == N(e).toRgbString()
        }
        ,
        N.random = function() {
            return N.fromRatio({
                r: t(),
                g: t(),
                b: t()
            })
        }
        ,
        N.mix = function(t, e, n) {
            n = 0 === n ? 0 : n || 50;
            var i, r = N(t).toRgb(), o = N(e).toRgb(), a = n / 100, s = 2 * a - 1, c = o.a - r.a, u = 1 - (i = (1 + (s * c == -1 ? s : (s + c) / (1 + s * c))) / 2), l = {
                r: o.r * i + r.r * u,
                g: o.g * i + r.g * u,
                b: o.b * i + r.b * u,
                a: o.a * a + r.a * (1 - a)
            };
            return N(l)
        }
        ,
        N.readability = function(t, e) {
            var n = N(t)
              , i = N(e)
              , r = n.toRgb()
              , o = i.toRgb()
              , a = n.getBrightness()
              , s = i.getBrightness()
              , c = Math.max(r.r, o.r) - Math.min(r.r, o.r) + Math.max(r.g, o.g) - Math.min(r.g, o.g) + Math.max(r.b, o.b) - Math.min(r.b, o.b);
            return {
                brightness: Math.abs(a - s),
                color: c
            }
        }
        ,
        N.isReadable = function(t, e) {
            var n = N.readability(t, e);
            return 125 < n.brightness && 500 < n.color
        }
        ,
        N.mostReadable = function(t, e) {
            for (var n = null, i = 0, r = !1, o = 0; o < e.length; o++) {
                var a = N.readability(t, e[o])
                  , s = 125 < a.brightness && 500 < a.color
                  , c = a.brightness / 125 * 3 + a.color / 500;
                (s && !r || s && r && i < c || !s && !r && i < c) && (r = s,
                i = c,
                n = N(e[o]))
            }
            return n
        }
        ;
        var q = N.names = {
            aliceblue: "f0f8ff",
            antiquewhite: "faebd7",
            aqua: "0ff",
            aquamarine: "7fffd4",
            azure: "f0ffff",
            beige: "f5f5dc",
            bisque: "ffe4c4",
            black: "000",
            blanchedalmond: "ffebcd",
            blue: "00f",
            blueviolet: "8a2be2",
            brown: "a52a2a",
            burlywood: "deb887",
            burntsienna: "ea7e5d",
            cadetblue: "5f9ea0",
            chartreuse: "7fff00",
            chocolate: "d2691e",
            coral: "ff7f50",
            cornflowerblue: "6495ed",
            cornsilk: "fff8dc",
            crimson: "dc143c",
            cyan: "0ff",
            darkblue: "00008b",
            darkcyan: "008b8b",
            darkgoldenrod: "b8860b",
            darkgray: "a9a9a9",
            darkgreen: "006400",
            darkgrey: "a9a9a9",
            darkkhaki: "bdb76b",
            darkmagenta: "8b008b",
            darkolivegreen: "556b2f",
            darkorange: "ff8c00",
            darkorchid: "9932cc",
            darkred: "8b0000",
            darksalmon: "e9967a",
            darkseagreen: "8fbc8f",
            darkslateblue: "483d8b",
            darkslategray: "2f4f4f",
            darkslategrey: "2f4f4f",
            darkturquoise: "00ced1",
            darkviolet: "9400d3",
            deeppink: "ff1493",
            deepskyblue: "00bfff",
            dimgray: "696969",
            dimgrey: "696969",
            dodgerblue: "1e90ff",
            firebrick: "b22222",
            floralwhite: "fffaf0",
            forestgreen: "228b22",
            fuchsia: "f0f",
            gainsboro: "dcdcdc",
            ghostwhite: "f8f8ff",
            gold: "ffd700",
            goldenrod: "daa520",
            gray: "808080",
            green: "008000",
            greenyellow: "adff2f",
            grey: "808080",
            honeydew: "f0fff0",
            hotpink: "ff69b4",
            indianred: "cd5c5c",
            indigo: "4b0082",
            ivory: "fffff0",
            khaki: "f0e68c",
            lavender: "e6e6fa",
            lavenderblush: "fff0f5",
            lawngreen: "7cfc00",
            lemonchiffon: "fffacd",
            lightblue: "add8e6",
            lightcoral: "f08080",
            lightcyan: "e0ffff",
            lightgoldenrodyellow: "fafad2",
            lightgray: "d3d3d3",
            lightgreen: "90ee90",
            lightgrey: "d3d3d3",
            lightpink: "ffb6c1",
            lightsalmon: "ffa07a",
            lightseagreen: "20b2aa",
            lightskyblue: "87cefa",
            lightslategray: "789",
            lightslategrey: "789",
            lightsteelblue: "b0c4de",
            lightyellow: "ffffe0",
            lime: "0f0",
            limegreen: "32cd32",
            linen: "faf0e6",
            magenta: "f0f",
            maroon: "800000",
            mediumaquamarine: "66cdaa",
            mediumblue: "0000cd",
            mediumorchid: "ba55d3",
            mediumpurple: "9370db",
            mediumseagreen: "3cb371",
            mediumslateblue: "7b68ee",
            mediumspringgreen: "00fa9a",
            mediumturquoise: "48d1cc",
            mediumvioletred: "c71585",
            midnightblue: "191970",
            mintcream: "f5fffa",
            mistyrose: "ffe4e1",
            moccasin: "ffe4b5",
            navajowhite: "ffdead",
            navy: "000080",
            oldlace: "fdf5e6",
            olive: "808000",
            olivedrab: "6b8e23",
            orange: "ffa500",
            orangered: "ff4500",
            orchid: "da70d6",
            palegoldenrod: "eee8aa",
            palegreen: "98fb98",
            paleturquoise: "afeeee",
            palevioletred: "db7093",
            papayawhip: "ffefd5",
            peachpuff: "ffdab9",
            peru: "cd853f",
            pink: "ffc0cb",
            plum: "dda0dd",
            powderblue: "b0e0e6",
            purple: "800080",
            rebeccapurple: "663399",
            red: "f00",
            rosybrown: "bc8f8f",
            royalblue: "4169e1",
            saddlebrown: "8b4513",
            salmon: "fa8072",
            sandybrown: "f4a460",
            seagreen: "2e8b57",
            seashell: "fff5ee",
            sienna: "a0522d",
            silver: "c0c0c0",
            skyblue: "87ceeb",
            slateblue: "6a5acd",
            slategray: "708090",
            slategrey: "708090",
            snow: "fffafa",
            springgreen: "00ff7f",
            steelblue: "4682b4",
            tan: "d2b48c",
            teal: "008080",
            thistle: "d8bfd8",
            tomato: "ff6347",
            turquoise: "40e0d0",
            violet: "ee82ee",
            wheat: "f5deb3",
            white: "fff",
            whitesmoke: "f5f5f5",
            yellow: "ff0",
            yellowgreen: "9acd32"
        }
          , g = N.hexNames = function(t) {
            var e = {};
            for (var n in t)
                t.hasOwnProperty(n) && (e[t[n]] = n);
            return e
        }(q);
        function W(t) {
            return t = parseFloat(t),
            (isNaN(t) || t < 0 || 1 < t) && (t = 1),
            t
        }
        function T(t, e) {
            var n;
            "string" == typeof (n = t) && -1 != n.indexOf(".") && 1 === parseFloat(n) && (t = "100%");
            var i = "string" == typeof t && -1 != t.indexOf("%");
            return t = w(e, L(0, parseFloat(t))),
            i && (t = parseInt(t * e, 10) / 100),
            _.abs(t - e) < 1e-6 ? 1 : t % e / parseFloat(e)
        }
        function v(t) {
            return w(1, L(0, t))
        }
        function C(t) {
            return parseInt(t, 16)
        }
        function x(t) {
            return 1 == t.length ? "0" + t : "" + t
        }
        function k(t) {
            return t <= 1 && (t = 100 * t + "%"),
            t
        }
        var S, B, E, X = (B = "[\\s|\\(]+(" + (S = "(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)") + ")[,|\\s]+(" + S + ")[,|\\s]+(" + S + ")\\s*\\)?",
        E = "[\\s|\\(]+(" + S + ")[,|\\s]+(" + S + ")[,|\\s]+(" + S + ")[,|\\s]+(" + S + ")\\s*\\)?",
        {
            rgb: new RegExp("rgb" + B),
            rgba: new RegExp("rgba" + E),
            hsl: new RegExp("hsl" + B),
            hsla: new RegExp("hsla" + E),
            hsv: new RegExp("hsv" + B),
            hsva: new RegExp("hsva" + E),
            hex3: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
            hex6: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
            hex8: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
        });
        window.tinycolor = N
    }(),
    kt(function() {
        kt.fn.spectrum.load && kt.fn.spectrum.processNativeColorInputs()
    })
}),
function() {
    var t = function(z) {
        z.ui = z.ui || {},
        z.ui.version = "1.12.1";
        var r, o, _, O, i, a, s, c, u, l, n = 0, h = Array.prototype.slice;
        function w(t, e, n) {
            return [parseFloat(t[0]) * (u.test(t[0]) ? e / 100 : 1), parseFloat(t[1]) * (u.test(t[1]) ? n / 100 : 1)]
        }
        function L(t, e) {
            return parseInt(z.css(t, e), 10) || 0
        }
        z.cleanData = (r = z.cleanData,
        function(t) {
            for (var e, n, i = 0; null != (n = t[i]); i++)
                try {
                    (e = z._data(n, "events")) && e.remove && z(n).triggerHandler("remove")
                } catch (t) {}
            r(t)
        }
        ),
        z.widget = function(t, n, e) {
            var i, r, o, a = {}, s = t.split(".")[0], c = s + "-" + (t = t.split(".")[1]);
            return e || (e = n,
            n = z.Widget),
            z.isArray(e) && (e = z.extend.apply(null, [{}].concat(e))),
            z.expr[":"][c.toLowerCase()] = function(t) {
                return !!z.data(t, c)
            }
            ,
            z[s] = z[s] || {},
            i = z[s][t],
            r = z[s][t] = function(t, e) {
                if (!this._createWidget)
                    return new r(t,e);
                arguments.length && this._createWidget(t, e)
            }
            ,
            z.extend(r, i, {
                version: e.version,
                _proto: z.extend({}, e),
                _childConstructors: []
            }),
            (o = new n).options = z.widget.extend({}, o.options),
            z.each(e, function(e, i) {
                function r() {
                    return n.prototype[e].apply(this, arguments)
                }
                function o(t) {
                    return n.prototype[e].apply(this, t)
                }
                z.isFunction(i) ? a[e] = function() {
                    var t, e = this._super, n = this._superApply;
                    return this._super = r,
                    this._superApply = o,
                    t = i.apply(this, arguments),
                    this._super = e,
                    this._superApply = n,
                    t
                }
                : a[e] = i
            }),
            r.prototype = z.widget.extend(o, {
                widgetEventPrefix: i && o.widgetEventPrefix || t
            }, a, {
                constructor: r,
                namespace: s,
                widgetName: t,
                widgetFullName: c
            }),
            i ? (z.each(i._childConstructors, function(t, e) {
                var n = e.prototype;
                z.widget(n.namespace + "." + n.widgetName, r, e._proto)
            }),
            delete i._childConstructors) : n._childConstructors.push(r),
            z.widget.bridge(t, r),
            r
        }
        ,
        z.widget.extend = function(t) {
            for (var e, n, i = h.call(arguments, 1), r = 0, o = i.length; r < o; r++)
                for (e in i[r])
                    n = i[r][e],
                    i[r].hasOwnProperty(e) && void 0 !== n && (z.isPlainObject(n) ? t[e] = z.isPlainObject(t[e]) ? z.widget.extend({}, t[e], n) : z.widget.extend({}, n) : t[e] = n);
            return t
        }
        ,
        z.widget.bridge = function(o, e) {
            var a = e.prototype.widgetFullName || o;
            z.fn[o] = function(n) {
                var t = "string" == typeof n
                  , i = h.call(arguments, 1)
                  , r = this;
                return t ? this.length || "instance" !== n ? this.each(function() {
                    var t, e = z.data(this, a);
                    return "instance" === n ? (r = e,
                    !1) : e ? z.isFunction(e[n]) && "_" !== n.charAt(0) ? (t = e[n].apply(e, i)) !== e && void 0 !== t ? (r = t && t.jquery ? r.pushStack(t.get()) : t,
                    !1) : void 0 : z.error("no such method '" + n + "' for " + o + " widget instance") : z.error("cannot call methods on " + o + " prior to initialization; attempted to call method '" + n + "'")
                }) : r = void 0 : (i.length && (n = z.widget.extend.apply(null, [n].concat(i))),
                this.each(function() {
                    var t = z.data(this, a);
                    t ? (t.option(n || {}),
                    t._init && t._init()) : z.data(this, a, new e(n,this))
                })),
                r
            }
        }
        ,
        z.Widget = function() {}
        ,
        z.Widget._childConstructors = [],
        z.Widget.prototype = {
            widgetName: "widget",
            widgetEventPrefix: "",
            defaultElement: "<div>",
            options: {
                classes: {},
                disabled: !1,
                create: null
            },
            _createWidget: function(t, e) {
                e = z(e || this.defaultElement || this)[0],
                this.element = z(e),
                this.uuid = n++,
                this.eventNamespace = "." + this.widgetName + this.uuid,
                this.bindings = z(),
                this.hoverable = z(),
                this.focusable = z(),
                this.classesElementLookup = {},
                e !== this && (z.data(e, this.widgetFullName, this),
                this._on(!0, this.element, {
                    remove: function(t) {
                        t.target === e && this.destroy()
                    }
                }),
                this.document = z(e.style ? e.ownerDocument : e.document || e),
                this.window = z(this.document[0].defaultView || this.document[0].parentWindow)),
                this.options = z.widget.extend({}, this.options, this._getCreateOptions(), t),
                this._create(),
                this.options.disabled && this._setOptionDisabled(this.options.disabled),
                this._trigger("create", null, this._getCreateEventData()),
                this._init()
            },
            _getCreateOptions: function() {
                return {}
            },
            _getCreateEventData: z.noop,
            _create: z.noop,
            _init: z.noop,
            destroy: function() {
                var n = this;
                this._destroy(),
                z.each(this.classesElementLookup, function(t, e) {
                    n._removeClass(e, t)
                }),
                this.element.off(this.eventNamespace).removeData(this.widgetFullName),
                this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),
                this.bindings.off(this.eventNamespace)
            },
            _destroy: z.noop,
            widget: function() {
                return this.element
            },
            option: function(t, e) {
                var n, i, r, o = t;
                if (0 === arguments.length)
                    return z.widget.extend({}, this.options);
                if ("string" == typeof t)
                    if (o = {},
                    t = (n = t.split(".")).shift(),
                    n.length) {
                        for (i = o[t] = z.widget.extend({}, this.options[t]),
                        r = 0; r < n.length - 1; r++)
                            i[n[r]] = i[n[r]] || {},
                            i = i[n[r]];
                        if (t = n.pop(),
                        1 === arguments.length)
                            return void 0 === i[t] ? null : i[t];
                        i[t] = e
                    } else {
                        if (1 === arguments.length)
                            return void 0 === this.options[t] ? null : this.options[t];
                        o[t] = e
                    }
                return this._setOptions(o),
                this
            },
            _setOptions: function(t) {
                var e;
                for (e in t)
                    this._setOption(e, t[e]);
                return this
            },
            _setOption: function(t, e) {
                return "classes" === t && this._setOptionClasses(e),
                this.options[t] = e,
                "disabled" === t && this._setOptionDisabled(e),
                this
            },
            _setOptionClasses: function(t) {
                var e, n, i;
                for (e in t)
                    i = this.classesElementLookup[e],
                    t[e] !== this.options.classes[e] && i && i.length && (n = z(i.get()),
                    this._removeClass(i, e),
                    n.addClass(this._classes({
                        element: n,
                        keys: e,
                        classes: t,
                        add: !0
                    })))
            },
            _setOptionDisabled: function(t) {
                this._toggleClass(this.widget(), this.widgetFullName + "-disabled", null, !!t),
                t && (this._removeClass(this.hoverable, null, "ui-state-hover"),
                this._removeClass(this.focusable, null, "ui-state-focus"))
            },
            enable: function() {
                return this._setOptions({
                    disabled: !1
                })
            },
            disable: function() {
                return this._setOptions({
                    disabled: !0
                })
            },
            _classes: function(r) {
                var o = []
                  , a = this;
                function t(t, e) {
                    for (var n, i = 0; i < t.length; i++)
                        n = a.classesElementLookup[t[i]] || z(),
                        n = r.add ? z(z.unique(n.get().concat(r.element.get()))) : z(n.not(r.element).get()),
                        a.classesElementLookup[t[i]] = n,
                        o.push(t[i]),
                        e && r.classes[t[i]] && o.push(r.classes[t[i]])
                }
                return r = z.extend({
                    element: this.element,
                    classes: this.options.classes || {}
                }, r),
                this._on(r.element, {
                    remove: "_untrackClassesElement"
                }),
                r.keys && t(r.keys.match(/\S+/g) || [], !0),
                r.extra && t(r.extra.match(/\S+/g) || []),
                o.join(" ")
            },
            _untrackClassesElement: function(n) {
                var i = this;
                z.each(i.classesElementLookup, function(t, e) {
                    -1 !== z.inArray(n.target, e) && (i.classesElementLookup[t] = z(e.not(n.target).get()))
                })
            },
            _removeClass: function(t, e, n) {
                return this._toggleClass(t, e, n, !1)
            },
            _addClass: function(t, e, n) {
                return this._toggleClass(t, e, n, !0)
            },
            _toggleClass: function(t, e, n, i) {
                i = "boolean" == typeof i ? i : n;
                var r = "string" == typeof t || null === t
                  , o = {
                    extra: r ? e : n,
                    keys: r ? t : e,
                    element: r ? this.element : t,
                    add: i
                };
                return o.element.toggleClass(this._classes(o), i),
                this
            },
            _on: function(a, s, t) {
                var c, u = this;
                "boolean" != typeof a && (t = s,
                s = a,
                a = !1),
                t ? (s = c = z(s),
                this.bindings = this.bindings.add(s)) : (t = s,
                s = this.element,
                c = this.widget()),
                z.each(t, function(t, e) {
                    function n() {
                        if (a || !0 !== u.options.disabled && !z(this).hasClass("ui-state-disabled"))
                            return ("string" == typeof e ? u[e] : e).apply(u, arguments)
                    }
                    "string" != typeof e && (n.guid = e.guid = e.guid || n.guid || z.guid++);
                    var i = t.match(/^([\w:-]*)\s*(.*)$/)
                      , r = i[1] + u.eventNamespace
                      , o = i[2];
                    o ? c.on(r, o, n) : s.on(r, n)
                })
            },
            _off: function(t, e) {
                e = (e || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace,
                t.off(e).off(e),
                this.bindings = z(this.bindings.not(t).get()),
                this.focusable = z(this.focusable.not(t).get()),
                this.hoverable = z(this.hoverable.not(t).get())
            },
            _delay: function(t, e) {
                var n = this;
                return setTimeout(function() {
                    return ("string" == typeof t ? n[t] : t).apply(n, arguments)
                }, e || 0)
            },
            _hoverable: function(t) {
                this.hoverable = this.hoverable.add(t),
                this._on(t, {
                    mouseenter: function(t) {
                        this._addClass(z(t.currentTarget), null, "ui-state-hover")
                    },
                    mouseleave: function(t) {
                        this._removeClass(z(t.currentTarget), null, "ui-state-hover")
                    }
                })
            },
            _focusable: function(t) {
                this.focusable = this.focusable.add(t),
                this._on(t, {
                    focusin: function(t) {
                        this._addClass(z(t.currentTarget), null, "ui-state-focus")
                    },
                    focusout: function(t) {
                        this._removeClass(z(t.currentTarget), null, "ui-state-focus")
                    }
                })
            },
            _trigger: function(t, e, n) {
                var i, r, o = this.options[t];
                if (n = n || {},
                (e = z.Event(e)).type = (t === this.widgetEventPrefix ? t : this.widgetEventPrefix + t).toLowerCase(),
                e.target = this.element[0],
                r = e.originalEvent)
                    for (i in r)
                        i in e || (e[i] = r[i]);
                return this.element.trigger(e, n),
                !(z.isFunction(o) && !1 === o.apply(this.element[0], [e].concat(n)) || e.isDefaultPrevented())
            }
        },
        z.each({
            show: "fadeIn",
            hide: "fadeOut"
        }, function(o, a) {
            z.Widget.prototype["_" + o] = function(e, t, n) {
                var i;
                "string" == typeof t && (t = {
                    effect: t
                });
                var r = t ? !0 !== t && "number" != typeof t && t.effect || a : o;
                "number" == typeof (t = t || {}) && (t = {
                    duration: t
                }),
                i = !z.isEmptyObject(t),
                t.complete = n,
                t.delay && e.delay(t.delay),
                i && z.effects && z.effects.effect[r] ? e[o](t) : r !== o && e[r] ? e[r](t.duration, t.easing, n) : e.queue(function(t) {
                    z(this)[o](),
                    n && n.call(e[0]),
                    t()
                })
            }
        }),
        z.widget,
        _ = Math.max,
        O = Math.abs,
        i = /left|center|right/,
        a = /top|center|bottom/,
        s = /[\+\-]\d+(\.[\d]+)?%?/,
        c = /^\w+/,
        u = /%$/,
        l = z.fn.position,
        z.position = {
            scrollbarWidth: function() {
                if (void 0 !== o)
                    return o;
                var t, e, n = z("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"), i = n.children()[0];
                return z("body").append(n),
                t = i.offsetWidth,
                n.css("overflow", "scroll"),
                t === (e = i.offsetWidth) && (e = n[0].clientWidth),
                n.remove(),
                o = t - e
            },
            getScrollInfo: function(t) {
                var e = t.isWindow || t.isDocument ? "" : t.element.css("overflow-x")
                  , n = t.isWindow || t.isDocument ? "" : t.element.css("overflow-y")
                  , i = "scroll" === e || "auto" === e && t.width < t.element[0].scrollWidth;
                return {
                    width: "scroll" === n || "auto" === n && t.height < t.element[0].scrollHeight ? z.position.scrollbarWidth() : 0,
                    height: i ? z.position.scrollbarWidth() : 0
                }
            },
            getWithinInfo: function(t) {
                var e = z(t || window)
                  , n = z.isWindow(e[0])
                  , i = !!e[0] && 9 === e[0].nodeType;
                return {
                    element: e,
                    isWindow: n,
                    isDocument: i,
                    offset: n || i ? {
                        left: 0,
                        top: 0
                    } : z(t).offset(),
                    scrollLeft: e.scrollLeft(),
                    scrollTop: e.scrollTop(),
                    width: e.outerWidth(),
                    height: e.outerHeight()
                }
            }
        },
        z.fn.position = function(h) {
            if (!h || !h.of)
                return l.apply(this, arguments);
            h = z.extend({}, h);
            var f, p, d, M, b, t, e, m = z(h.of), g = z.position.getWithinInfo(h.within), v = z.position.getScrollInfo(g), A = (h.collision || "flip").split(" "), y = {}, n = 9 === (e = (t = m)[0]).nodeType ? {
                width: t.width(),
                height: t.height(),
                offset: {
                    top: 0,
                    left: 0
                }
            } : z.isWindow(e) ? {
                width: t.width(),
                height: t.height(),
                offset: {
                    top: t.scrollTop(),
                    left: t.scrollLeft()
                }
            } : e.preventDefault ? {
                width: 0,
                height: 0,
                offset: {
                    top: e.pageY,
                    left: e.pageX
                }
            } : {
                width: t.outerWidth(),
                height: t.outerHeight(),
                offset: t.offset()
            };
            return m[0].preventDefault && (h.at = "left top"),
            p = n.width,
            d = n.height,
            M = n.offset,
            b = z.extend({}, M),
            z.each(["my", "at"], function() {
                var t, e, n = (h[this] || "").split(" ");
                1 === n.length && (n = i.test(n[0]) ? n.concat(["center"]) : a.test(n[0]) ? ["center"].concat(n) : ["center", "center"]),
                n[0] = i.test(n[0]) ? n[0] : "center",
                n[1] = a.test(n[1]) ? n[1] : "center",
                t = s.exec(n[0]),
                e = s.exec(n[1]),
                y[this] = [t ? t[0] : 0, e ? e[0] : 0],
                h[this] = [c.exec(n[0])[0], c.exec(n[1])[0]]
            }),
            1 === A.length && (A[1] = A[0]),
            "right" === h.at[0] ? b.left += p : "center" === h.at[0] && (b.left += p / 2),
            "bottom" === h.at[1] ? b.top += d : "center" === h.at[1] && (b.top += d / 2),
            f = w(y.at, p, d),
            b.left += f[0],
            b.top += f[1],
            this.each(function() {
                var n, t, a = z(this), s = a.outerWidth(), c = a.outerHeight(), e = L(this, "marginLeft"), i = L(this, "marginTop"), r = s + e + L(this, "marginRight") + v.width, o = c + i + L(this, "marginBottom") + v.height, u = z.extend({}, b), l = w(y.my, a.outerWidth(), a.outerHeight());
                "right" === h.my[0] ? u.left -= s : "center" === h.my[0] && (u.left -= s / 2),
                "bottom" === h.my[1] ? u.top -= c : "center" === h.my[1] && (u.top -= c / 2),
                u.left += l[0],
                u.top += l[1],
                n = {
                    marginLeft: e,
                    marginTop: i
                },
                z.each(["left", "top"], function(t, e) {
                    z.ui.position[A[t]] && z.ui.position[A[t]][e](u, {
                        targetWidth: p,
                        targetHeight: d,
                        elemWidth: s,
                        elemHeight: c,
                        collisionPosition: n,
                        collisionWidth: r,
                        collisionHeight: o,
                        offset: [f[0] + l[0], f[1] + l[1]],
                        my: h.my,
                        at: h.at,
                        within: g,
                        elem: a
                    })
                }),
                h.using && (t = function(t) {
                    var e = M.left - u.left
                      , n = e + p - s
                      , i = M.top - u.top
                      , r = i + d - c
                      , o = {
                        target: {
                            element: m,
                            left: M.left,
                            top: M.top,
                            width: p,
                            height: d
                        },
                        element: {
                            element: a,
                            left: u.left,
                            top: u.top,
                            width: s,
                            height: c
                        },
                        horizontal: n < 0 ? "left" : 0 < e ? "right" : "center",
                        vertical: r < 0 ? "top" : 0 < i ? "bottom" : "middle"
                    };
                    p < s && O(e + n) < p && (o.horizontal = "center"),
                    d < c && O(i + r) < d && (o.vertical = "middle"),
                    _(O(e), O(n)) > _(O(i), O(r)) ? o.important = "horizontal" : o.important = "vertical",
                    h.using.call(this, t, o)
                }
                ),
                a.offset(z.extend(u, {
                    using: t
                }))
            })
        }
        ,
        z.ui.position = {
            fit: {
                left: function(t, e) {
                    var n, i = e.within, r = i.isWindow ? i.scrollLeft : i.offset.left, o = i.width, a = t.left - e.collisionPosition.marginLeft, s = r - a, c = a + e.collisionWidth - o - r;
                    e.collisionWidth > o ? 0 < s && c <= 0 ? (n = t.left + s + e.collisionWidth - o - r,
                    t.left += s - n) : t.left = !(0 < c && s <= 0) && c < s ? r + o - e.collisionWidth : r : 0 < s ? t.left += s : 0 < c ? t.left -= c : t.left = _(t.left - a, t.left)
                },
                top: function(t, e) {
                    var n, i = e.within, r = i.isWindow ? i.scrollTop : i.offset.top, o = e.within.height, a = t.top - e.collisionPosition.marginTop, s = r - a, c = a + e.collisionHeight - o - r;
                    e.collisionHeight > o ? 0 < s && c <= 0 ? (n = t.top + s + e.collisionHeight - o - r,
                    t.top += s - n) : t.top = !(0 < c && s <= 0) && c < s ? r + o - e.collisionHeight : r : 0 < s ? t.top += s : 0 < c ? t.top -= c : t.top = _(t.top - a, t.top)
                }
            },
            flip: {
                left: function(t, e) {
                    var n, i, r = e.within, o = r.offset.left + r.scrollLeft, a = r.width, s = r.isWindow ? r.scrollLeft : r.offset.left, c = t.left - e.collisionPosition.marginLeft, u = c - s, l = c + e.collisionWidth - a - s, h = "left" === e.my[0] ? -e.elemWidth : "right" === e.my[0] ? e.elemWidth : 0, f = "left" === e.at[0] ? e.targetWidth : "right" === e.at[0] ? -e.targetWidth : 0, p = -2 * e.offset[0];
                    u < 0 ? ((n = t.left + h + f + p + e.collisionWidth - a - o) < 0 || n < O(u)) && (t.left += h + f + p) : 0 < l && (0 < (i = t.left - e.collisionPosition.marginLeft + h + f + p - s) || O(i) < l) && (t.left += h + f + p)
                },
                top: function(t, e) {
                    var n, i, r = e.within, o = r.offset.top + r.scrollTop, a = r.height, s = r.isWindow ? r.scrollTop : r.offset.top, c = t.top - e.collisionPosition.marginTop, u = c - s, l = c + e.collisionHeight - a - s, h = "top" === e.my[1] ? -e.elemHeight : "bottom" === e.my[1] ? e.elemHeight : 0, f = "top" === e.at[1] ? e.targetHeight : "bottom" === e.at[1] ? -e.targetHeight : 0, p = -2 * e.offset[1];
                    u < 0 ? ((i = t.top + h + f + p + e.collisionHeight - a - o) < 0 || i < O(u)) && (t.top += h + f + p) : 0 < l && (0 < (n = t.top - e.collisionPosition.marginTop + h + f + p - s) || O(n) < l) && (t.top += h + f + p)
                }
            },
            flipfit: {
                left: function() {
                    z.ui.position.flip.left.apply(this, arguments),
                    z.ui.position.fit.left.apply(this, arguments)
                },
                top: function() {
                    z.ui.position.flip.top.apply(this, arguments),
                    z.ui.position.fit.top.apply(this, arguments)
                }
            }
        },
        z.ui.position,
        z.fn.form = function() {
            return "string" == typeof this[0].form ? this.closest("form") : z(this[0].form)
        }
        ,
        z.ui.formResetMixin = {
            _formResetHandler: function() {
                var e = z(this);
                setTimeout(function() {
                    var t = e.data("ui-form-reset-instances");
                    z.each(t, function() {
                        this.refresh()
                    })
                })
            },
            _bindFormResetHandler: function() {
                var t;
                this.form = this.element.form(),
                this.form.length && ((t = this.form.data("ui-form-reset-instances") || []).length || this.form.on("reset.ui-form-reset", this._formResetHandler),
                t.push(this),
                this.form.data("ui-form-reset-instances", t))
            },
            _unbindFormResetHandler: function() {
                var t;
                this.form.length && ((t = this.form.data("ui-form-reset-instances")).splice(z.inArray(this, t), 1),
                t.length ? this.form.data("ui-form-reset-instances", t) : this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset"))
            }
        },
        z.ui.keyCode = {
            BACKSPACE: 8,
            COMMA: 188,
            DELETE: 46,
            DOWN: 40,
            END: 35,
            ENTER: 13,
            ESCAPE: 27,
            HOME: 36,
            LEFT: 37,
            PAGE_DOWN: 34,
            PAGE_UP: 33,
            PERIOD: 190,
            RIGHT: 39,
            SPACE: 32,
            TAB: 9,
            UP: 38
        },
        z.ui.escapeSelector = (e = /([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g,
        function(t) {
            return t.replace(e, "\\$1")
        }
        ),
        z.fn.labels = function() {
            var t, e, n, i, r;
            return this[0].labels && this[0].labels.length ? this.pushStack(this[0].labels) : (i = this.eq(0).parents("label"),
            (n = this.attr("id")) && (r = (t = this.eq(0).parents().last()).add(t.length ? t.siblings() : this.siblings()),
            e = "label[for='" + z.ui.escapeSelector(n) + "']",
            i = i.add(r.find(e).addBack(e))),
            this.pushStack(i))
        }
        ,
        z.fn.extend({
            uniqueId: (t = 0,
            function() {
                return this.each(function() {
                    this.id || (this.id = "ui-id-" + ++t)
                })
            }
            ),
            removeUniqueId: function() {
                return this.each(function() {
                    /^ui-id-\d+$/.test(this.id) && z(this).removeAttr("id")
                })
            }
        });
        var e, t, f, p = /ui-corner-([a-z]){2,6}/g;
        z.widget("ui.controlgroup", {
            version: "1.12.1",
            defaultElement: "<div>",
            options: {
                direction: "horizontal",
                disabled: null,
                onlyVisible: !0,
                items: {
                    button: "input[type=button], input[type=submit], input[type=reset], button, a",
                    controlgroupLabel: ".ui-controlgroup-label",
                    checkboxradio: "input[type='checkbox'], input[type='radio']",
                    selectmenu: "select",
                    spinner: ".ui-spinner-input"
                }
            },
            _create: function() {
                this._enhance()
            },
            _enhance: function() {
                this.element.attr("role", "toolbar"),
                this.refresh()
            },
            _destroy: function() {
                this._callChildMethod("destroy"),
                this.childWidgets.removeData("ui-controlgroup-data"),
                this.element.removeAttr("role"),
                this.options.items.controlgroupLabel && this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()
            },
            _initWidgets: function() {
                var a = this
                  , s = [];
                z.each(this.options.items, function(r, t) {
                    var e, o;
                    if (t)
                        return "controlgroupLabel" === r ? ((e = a.element.find(t)).each(function() {
                            var t = z(this);
                            t.children(".ui-controlgroup-label-contents").length || t.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")
                        }),
                        a._addClass(e, null, "ui-widget ui-widget-content ui-state-default"),
                        void (s = s.concat(e.get()))) : void (z.fn[r] && (o = a["_" + r + "Options"] ? a["_" + r + "Options"]("middle") : {
                            classes: {}
                        },
                        a.element.find(t).each(function() {
                            var t, e = z(this), n = e[r]("instance"), i = z.widget.extend({}, o);
                            "button" === r && e.parent(".ui-spinner").length || ((n = n || e[r]()[r]("instance")) && (i.classes = a._resolveClassesValues(i.classes, n)),
                            e[r](i),
                            t = e[r]("widget"),
                            z.data(t[0], "ui-controlgroup-data", n || e[r]("instance")),
                            s.push(t[0]))
                        })))
                }),
                this.childWidgets = z(z.unique(s)),
                this._addClass(this.childWidgets, "ui-controlgroup-item")
            },
            _callChildMethod: function(e) {
                this.childWidgets.each(function() {
                    var t = z(this).data("ui-controlgroup-data");
                    t && t[e] && t[e]()
                })
            },
            _updateCornerClass: function(t, e) {
                var n = this._buildSimpleOptions(e, "label").classes.label;
                this._removeClass(t, null, "ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all"),
                this._addClass(t, null, n)
            },
            _buildSimpleOptions: function(t, e) {
                var n = "vertical" === this.options.direction
                  , i = {
                    classes: {}
                };
                return i.classes[e] = {
                    middle: "",
                    first: "ui-corner-" + (n ? "top" : "left"),
                    last: "ui-corner-" + (n ? "bottom" : "right"),
                    only: "ui-corner-all"
                }[t],
                i
            },
            _spinnerOptions: function(t) {
                var e = this._buildSimpleOptions(t, "ui-spinner");
                return e.classes["ui-spinner-up"] = "",
                e.classes["ui-spinner-down"] = "",
                e
            },
            _buttonOptions: function(t) {
                return this._buildSimpleOptions(t, "ui-button")
            },
            _checkboxradioOptions: function(t) {
                return this._buildSimpleOptions(t, "ui-checkboxradio-label")
            },
            _selectmenuOptions: function(t) {
                var e = "vertical" === this.options.direction;
                return {
                    width: !!e && "auto",
                    classes: {
                        middle: {
                            "ui-selectmenu-button-open": "",
                            "ui-selectmenu-button-closed": ""
                        },
                        first: {
                            "ui-selectmenu-button-open": "ui-corner-" + (e ? "top" : "tl"),
                            "ui-selectmenu-button-closed": "ui-corner-" + (e ? "top" : "left")
                        },
                        last: {
                            "ui-selectmenu-button-open": e ? "" : "ui-corner-tr",
                            "ui-selectmenu-button-closed": "ui-corner-" + (e ? "bottom" : "right")
                        },
                        only: {
                            "ui-selectmenu-button-open": "ui-corner-top",
                            "ui-selectmenu-button-closed": "ui-corner-all"
                        }
                    }[t]
                }
            },
            _resolveClassesValues: function(n, i) {
                var r = {};
                return z.each(n, function(t) {
                    var e = i.options.classes[t] || ""
                      , e = z.trim(e.replace(p, ""));
                    r[t] = (e + " " + n[t]).replace(/\s+/g, " ")
                }),
                r
            },
            _setOption: function(t, e) {
                "direction" === t && this._removeClass("ui-controlgroup-" + this.options.direction),
                this._super(t, e),
                "disabled" !== t ? this.refresh() : this._callChildMethod(e ? "disable" : "enable")
            },
            refresh: function() {
                var r, o = this;
                this._addClass("ui-controlgroup ui-controlgroup-" + this.options.direction),
                "horizontal" === this.options.direction && this._addClass(null, "ui-helper-clearfix"),
                this._initWidgets(),
                r = this.childWidgets,
                this.options.onlyVisible && (r = r.filter(":visible")),
                r.length && (z.each(["first", "last"], function(t, e) {
                    var n, i = r[e]().data("ui-controlgroup-data");
                    i && o["_" + i.widgetName + "Options"] ? ((n = o["_" + i.widgetName + "Options"](1 === r.length ? "only" : e)).classes = o._resolveClassesValues(n.classes, i),
                    i.element[i.widgetName](n)) : o._updateCornerClass(r[e](), e)
                }),
                this._callChildMethod("refresh"))
            }
        }),
        z.widget("ui.checkboxradio", [z.ui.formResetMixin, {
            version: "1.12.1",
            options: {
                disabled: null,
                label: null,
                icon: !0,
                classes: {
                    "ui-checkboxradio-label": "ui-corner-all",
                    "ui-checkboxradio-icon": "ui-corner-all"
                }
            },
            _getCreateOptions: function() {
                var t, e, n = this, i = this._super() || {};
                return this._readType(),
                e = this.element.labels(),
                this.label = z(e[e.length - 1]),
                this.label.length || z.error("No label found for checkboxradio widget"),
                this.originalLabel = "",
                this.label.contents().not(this.element[0]).each(function() {
                    n.originalLabel += 3 === this.nodeType ? z(this).text() : this.outerHTML
                }),
                this.originalLabel && (i.label = this.originalLabel),
                null != (t = this.element[0].disabled) && (i.disabled = t),
                i
            },
            _create: function() {
                var t = this.element[0].checked;
                this._bindFormResetHandler(),
                null == this.options.disabled && (this.options.disabled = this.element[0].disabled),
                this._setOption("disabled", this.options.disabled),
                this._addClass("ui-checkboxradio", "ui-helper-hidden-accessible"),
                this._addClass(this.label, "ui-checkboxradio-label", "ui-button ui-widget"),
                "radio" === this.type && this._addClass(this.label, "ui-checkboxradio-radio-label"),
                this.options.label && this.options.label !== this.originalLabel ? this._updateLabel() : this.originalLabel && (this.options.label = this.originalLabel),
                this._enhance(),
                t && (this._addClass(this.label, "ui-checkboxradio-checked", "ui-state-active"),
                this.icon && this._addClass(this.icon, null, "ui-state-hover")),
                this._on({
                    change: "_toggleClasses",
                    focus: function() {
                        this._addClass(this.label, null, "ui-state-focus ui-visual-focus")
                    },
                    blur: function() {
                        this._removeClass(this.label, null, "ui-state-focus ui-visual-focus")
                    }
                })
            },
            _readType: function() {
                var t = this.element[0].nodeName.toLowerCase();
                this.type = this.element[0].type,
                "input" === t && /radio|checkbox/.test(this.type) || z.error("Can't create checkboxradio on element.nodeName=" + t + " and element.type=" + this.type)
            },
            _enhance: function() {
                this._updateIcon(this.element[0].checked)
            },
            widget: function() {
                return this.label
            },
            _getRadioGroup: function() {
                var t = this.element[0].name
                  , e = "input[name='" + z.ui.escapeSelector(t) + "']";
                return t ? (this.form.length ? z(this.form[0].elements).filter(e) : z(e).filter(function() {
                    return 0 === z(this).form().length
                })).not(this.element) : z([])
            },
            _toggleClasses: function() {
                var t = this.element[0].checked;
                this._toggleClass(this.label, "ui-checkboxradio-checked", "ui-state-active", t),
                this.options.icon && "checkbox" === this.type && this._toggleClass(this.icon, null, "ui-icon-check ui-state-checked", t)._toggleClass(this.icon, null, "ui-icon-blank", !t),
                "radio" === this.type && this._getRadioGroup().each(function() {
                    var t = z(this).checkboxradio("instance");
                    t && t._removeClass(t.label, "ui-checkboxradio-checked", "ui-state-active")
                })
            },
            _destroy: function() {
                this._unbindFormResetHandler(),
                this.icon && (this.icon.remove(),
                this.iconSpace.remove())
            },
            _setOption: function(t, e) {
                if ("label" !== t || e) {
                    if (this._super(t, e),
                    "disabled" === t)
                        return this._toggleClass(this.label, null, "ui-state-disabled", e),
                        void (this.element[0].disabled = e);
                    this.refresh()
                }
            },
            _updateIcon: function(t) {
                var e = "ui-icon ui-icon-background ";
                this.options.icon ? (this.icon || (this.icon = z("<span>"),
                this.iconSpace = z("<span> </span>"),
                this._addClass(this.iconSpace, "ui-checkboxradio-icon-space")),
                "checkbox" === this.type ? (e += t ? "ui-icon-check ui-state-checked" : "ui-icon-blank",
                this._removeClass(this.icon, null, t ? "ui-icon-blank" : "ui-icon-check")) : e += "ui-icon-blank",
                this._addClass(this.icon, "ui-checkboxradio-icon", e),
                t || this._removeClass(this.icon, null, "ui-icon-check ui-state-checked"),
                this.icon.prependTo(this.label).after(this.iconSpace)) : void 0 !== this.icon && (this.icon.remove(),
                this.iconSpace.remove(),
                delete this.icon)
            },
            _updateLabel: function() {
                var t = this.label.contents().not(this.element[0]);
                this.icon && (t = t.not(this.icon[0])),
                this.iconSpace && (t = t.not(this.iconSpace[0])),
                t.remove(),
                this.label.append(this.options.label)
            },
            refresh: function() {
                var t = this.element[0].checked
                  , e = this.element[0].disabled;
                this._updateIcon(t),
                this._toggleClass(this.label, "ui-checkboxradio-checked", "ui-state-active", t),
                null !== this.options.label && this._updateLabel(),
                e !== this.options.disabled && this._setOptions({
                    disabled: e
                })
            }
        }]),
        z.ui.checkboxradio,
        z.widget("ui.button", {
            version: "1.12.1",
            defaultElement: "<button>",
            options: {
                classes: {
                    "ui-button": "ui-corner-all"
                },
                disabled: null,
                icon: null,
                iconPosition: "beginning",
                label: null,
                showLabel: !0
            },
            _getCreateOptions: function() {
                var t, e = this._super() || {};
                return this.isInput = this.element.is("input"),
                null != (t = this.element[0].disabled) && (e.disabled = t),
                this.originalLabel = this.isInput ? this.element.val() : this.element.html(),
                this.originalLabel && (e.label = this.originalLabel),
                e
            },
            _create: function() {
                !this.option.showLabel & !this.options.icon && (this.options.showLabel = !0),
                null == this.options.disabled && (this.options.disabled = this.element[0].disabled || !1),
                this.hasTitle = !!this.element.attr("title"),
                this.options.label && this.options.label !== this.originalLabel && (this.isInput ? this.element.val(this.options.label) : this.element.html(this.options.label)),
                this._addClass("ui-button", "ui-widget"),
                this._setOption("disabled", this.options.disabled),
                this._enhance(),
                this.element.is("a") && this._on({
                    keyup: function(t) {
                        t.keyCode === z.ui.keyCode.SPACE && (t.preventDefault(),
                        this.element[0].click ? this.element[0].click() : this.element.trigger("click"))
                    }
                })
            },
            _enhance: function() {
                this.element.is("button") || this.element.attr("role", "button"),
                this.options.icon && (this._updateIcon("icon", this.options.icon),
                this._updateTooltip())
            },
            _updateTooltip: function() {
                this.title = this.element.attr("title"),
                this.options.showLabel || this.title || this.element.attr("title", this.options.label)
            },
            _updateIcon: function(t, e) {
                var n = "iconPosition" !== t
                  , i = n ? this.options.iconPosition : e
                  , r = "top" === i || "bottom" === i;
                this.icon ? n && this._removeClass(this.icon, null, this.options.icon) : (this.icon = z("<span>"),
                this._addClass(this.icon, "ui-button-icon", "ui-icon"),
                this.options.showLabel || this._addClass("ui-button-icon-only")),
                n && this._addClass(this.icon, null, e),
                this._attachIcon(i),
                r ? (this._addClass(this.icon, null, "ui-widget-icon-block"),
                this.iconSpace && this.iconSpace.remove()) : (this.iconSpace || (this.iconSpace = z("<span> </span>"),
                this._addClass(this.iconSpace, "ui-button-icon-space")),
                this._removeClass(this.icon, null, "ui-wiget-icon-block"),
                this._attachIconSpace(i))
            },
            _destroy: function() {
                this.element.removeAttr("role"),
                this.icon && this.icon.remove(),
                this.iconSpace && this.iconSpace.remove(),
                this.hasTitle || this.element.removeAttr("title")
            },
            _attachIconSpace: function(t) {
                this.icon[/^(?:end|bottom)/.test(t) ? "before" : "after"](this.iconSpace)
            },
            _attachIcon: function(t) {
                this.element[/^(?:end|bottom)/.test(t) ? "append" : "prepend"](this.icon)
            },
            _setOptions: function(t) {
                var e = void 0 === t.showLabel ? this.options.showLabel : t.showLabel
                  , n = void 0 === t.icon ? this.options.icon : t.icon;
                e || n || (t.showLabel = !0),
                this._super(t)
            },
            _setOption: function(t, e) {
                "icon" === t && (e ? this._updateIcon(t, e) : this.icon && (this.icon.remove(),
                this.iconSpace && this.iconSpace.remove())),
                "iconPosition" === t && this._updateIcon(t, e),
                "showLabel" === t && (this._toggleClass("ui-button-icon-only", null, !e),
                this._updateTooltip()),
                "label" === t && (this.isInput ? this.element.val(e) : (this.element.html(e),
                this.icon && (this._attachIcon(this.options.iconPosition),
                this._attachIconSpace(this.options.iconPosition)))),
                this._super(t, e),
                "disabled" === t && (this._toggleClass(null, "ui-state-disabled", e),
                (this.element[0].disabled = e) && this.element.blur())
            },
            refresh: function() {
                var t = this.element.is("input, button") ? this.element[0].disabled : this.element.hasClass("ui-button-disabled");
                t !== this.options.disabled && this._setOptions({
                    disabled: t
                }),
                this._updateTooltip()
            }
        }),
        !1 !== z.uiBackCompat && (z.widget("ui.button", z.ui.button, {
            options: {
                text: !0,
                icons: {
                    primary: null,
                    secondary: null
                }
            },
            _create: function() {
                this.options.showLabel && !this.options.text && (this.options.showLabel = this.options.text),
                !this.options.showLabel && this.options.text && (this.options.text = this.options.showLabel),
                this.options.icon || !this.options.icons.primary && !this.options.icons.secondary ? this.options.icon && (this.options.icons.primary = this.options.icon) : this.options.icons.primary ? this.options.icon = this.options.icons.primary : (this.options.icon = this.options.icons.secondary,
                this.options.iconPosition = "end"),
                this._super()
            },
            _setOption: function(t, e) {
                "text" !== t ? ("showLabel" === t && (this.options.text = e),
                "icon" === t && (this.options.icons.primary = e),
                "icons" === t && (e.primary ? (this._super("icon", e.primary),
                this._super("iconPosition", "beginning")) : e.secondary && (this._super("icon", e.secondary),
                this._super("iconPosition", "end"))),
                this._superApply(arguments)) : this._super("showLabel", e)
            }
        }),
        z.fn.button = (f = z.fn.button,
        function() {
            return !this.length || this.length && "INPUT" !== this[0].tagName || this.length && "INPUT" === this[0].tagName && "checkbox" !== this.attr("type") && "radio" !== this.attr("type") ? f.apply(this, arguments) : (z.ui.checkboxradio || z.error("Checkboxradio widget missing"),
            0 === arguments.length ? this.checkboxradio({
                icon: !1
            }) : this.checkboxradio.apply(this, arguments))
        }
        ),
        z.fn.buttonset = function() {
            return z.ui.controlgroup || z.error("Controlgroup widget missing"),
            "option" === arguments[0] && "items" === arguments[1] && arguments[2] ? this.controlgroup.apply(this, [arguments[0], "items.button", arguments[2]]) : "option" === arguments[0] && "items" === arguments[1] ? this.controlgroup.apply(this, [arguments[0], "items.button"]) : ("object" == typeof arguments[0] && arguments[0].items && (arguments[0].items = {
                button: arguments[0].items
            }),
            this.controlgroup.apply(this, arguments))
        }
        ),
        z.ui.button,
        z.ui.safeActiveElement = function(e) {
            var n;
            try {
                n = e.activeElement
            } catch (t) {
                n = e.body
            }
            return (n = n || e.body).nodeName || (n = e.body),
            n
        }
        ,
        z.widget("ui.menu", {
            version: "1.12.1",
            defaultElement: "<ul>",
            delay: 300,
            options: {
                icons: {
                    submenu: "ui-icon-caret-1-e"
                },
                items: "> *",
                menus: "ul",
                position: {
                    my: "left top",
                    at: "right top"
                },
                role: "menu",
                blur: null,
                focus: null,
                select: null
            },
            _create: function() {
                this.activeMenu = this.element,
                this.mouseHandled = !1,
                this.element.uniqueId().attr({
                    role: this.options.role,
                    tabIndex: 0
                }),
                this._addClass("ui-menu", "ui-widget ui-widget-content"),
                this._on({
                    "mousedown .ui-menu-item": function(t) {
                        t.preventDefault()
                    },
                    "click .ui-menu-item": function(t) {
                        var e = z(t.target)
                          , n = z(z.ui.safeActiveElement(this.document[0]));
                        !this.mouseHandled && e.not(".ui-state-disabled").length && (this.select(t),
                        t.isPropagationStopped() || (this.mouseHandled = !0),
                        e.has(".ui-menu").length ? this.expand(t) : !this.element.is(":focus") && n.closest(".ui-menu").length && (this.element.trigger("focus", [!0]),
                        this.active && 1 === this.active.parents(".ui-menu").length && clearTimeout(this.timer)))
                    },
                    "mouseenter .ui-menu-item": function(t) {
                        var e, n;
                        this.previousFilter || (e = z(t.target).closest(".ui-menu-item"),
                        n = z(t.currentTarget),
                        e[0] === n[0] && (this._removeClass(n.siblings().children(".ui-state-active"), null, "ui-state-active"),
                        this.focus(t, n)))
                    },
                    mouseleave: "collapseAll",
                    "mouseleave .ui-menu": "collapseAll",
                    focus: function(t, e) {
                        var n = this.active || this.element.find(this.options.items).eq(0);
                        e || this.focus(t, n)
                    },
                    blur: function(t) {
                        this._delay(function() {
                            z.contains(this.element[0], z.ui.safeActiveElement(this.document[0])) || this.collapseAll(t)
                        })
                    },
                    keydown: "_keydown"
                }),
                this.refresh(),
                this._on(this.document, {
                    click: function(t) {
                        this._closeOnDocumentClick(t) && this.collapseAll(t),
                        this.mouseHandled = !1
                    }
                })
            },
            _destroy: function() {
                var t = this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");
                this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),
                t.children().each(function() {
                    var t = z(this);
                    t.data("ui-menu-submenu-caret") && t.remove()
                })
            },
            _keydown: function(t) {
                var e, n, i, r, o = !0;
                switch (t.keyCode) {
                case z.ui.keyCode.PAGE_UP:
                    this.previousPage(t);
                    break;
                case z.ui.keyCode.PAGE_DOWN:
                    this.nextPage(t);
                    break;
                case z.ui.keyCode.HOME:
                    this._move("first", "first", t);
                    break;
                case z.ui.keyCode.END:
                    this._move("last", "last", t);
                    break;
                case z.ui.keyCode.UP:
                    this.previous(t);
                    break;
                case z.ui.keyCode.DOWN:
                    this.next(t);
                    break;
                case z.ui.keyCode.LEFT:
                    this.collapse(t);
                    break;
                case z.ui.keyCode.RIGHT:
                    this.active && !this.active.is(".ui-state-disabled") && this.expand(t);
                    break;
                case z.ui.keyCode.ENTER:
                case z.ui.keyCode.SPACE:
                    this._activate(t);
                    break;
                case z.ui.keyCode.ESCAPE:
                    this.collapse(t);
                    break;
                default:
                    o = !1,
                    n = this.previousFilter || "",
                    r = !1,
                    i = 96 <= t.keyCode && t.keyCode <= 105 ? (t.keyCode - 96).toString() : String.fromCharCode(t.keyCode),
                    clearTimeout(this.filterTimer),
                    i === n ? r = !0 : i = n + i,
                    e = this._filterMenuItems(i),
                    (e = r && -1 !== e.index(this.active.next()) ? this.active.nextAll(".ui-menu-item") : e).length || (i = String.fromCharCode(t.keyCode),
                    e = this._filterMenuItems(i)),
                    e.length ? (this.focus(t, e),
                    this.previousFilter = i,
                    this.filterTimer = this._delay(function() {
                        delete this.previousFilter
                    }, 1e3)) : delete this.previousFilter
                }
                o && t.preventDefault()
            },
            _activate: function(t) {
                this.active && !this.active.is(".ui-state-disabled") && (this.active.children("[aria-haspopup='true']").length ? this.expand(t) : this.select(t))
            },
            refresh: function() {
                var t, e, n, i, r = this, o = this.options.icons.submenu, a = this.element.find(this.options.menus);
                this._toggleClass("ui-menu-icons", null, !!this.element.find(".ui-icon").length),
                e = a.filter(":not(.ui-menu)").hide().attr({
                    role: this.options.role,
                    "aria-hidden": "true",
                    "aria-expanded": "false"
                }).each(function() {
                    var t = z(this)
                      , e = t.prev()
                      , n = z("<span>").data("ui-menu-submenu-caret", !0);
                    r._addClass(n, "ui-menu-icon", "ui-icon " + o),
                    e.attr("aria-haspopup", "true").prepend(n),
                    t.attr("aria-labelledby", e.attr("id"))
                }),
                this._addClass(e, "ui-menu", "ui-widget ui-widget-content ui-front"),
                (t = a.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function() {
                    var t = z(this);
                    r._isDivider(t) && r._addClass(t, "ui-menu-divider", "ui-widget-content")
                }),
                i = (n = t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({
                    tabIndex: -1,
                    role: this._itemRole()
                }),
                this._addClass(n, "ui-menu-item")._addClass(i, "ui-menu-item-wrapper"),
                t.filter(".ui-state-disabled").attr("aria-disabled", "true"),
                this.active && !z.contains(this.element[0], this.active[0]) && this.blur()
            },
            _itemRole: function() {
                return {
                    menu: "menuitem",
                    listbox: "option"
                }[this.options.role]
            },
            _setOption: function(t, e) {
                var n;
                "icons" === t && (n = this.element.find(".ui-menu-icon"),
                this._removeClass(n, null, this.options.icons.submenu)._addClass(n, null, e.submenu)),
                this._super(t, e)
            },
            _setOptionDisabled: function(t) {
                this._super(t),
                this.element.attr("aria-disabled", String(t)),
                this._toggleClass(null, "ui-state-disabled", !!t)
            },
            focus: function(t, e) {
                var n, i, r;
                this.blur(t, t && "focus" === t.type),
                this._scrollIntoView(e),
                this.active = e.first(),
                i = this.active.children(".ui-menu-item-wrapper"),
                this._addClass(i, null, "ui-state-active"),
                this.options.role && this.element.attr("aria-activedescendant", i.attr("id")),
                r = this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),
                this._addClass(r, null, "ui-state-active"),
                t && "keydown" === t.type ? this._close() : this.timer = this._delay(function() {
                    this._close()
                }, this.delay),
                (n = e.children(".ui-menu")).length && t && /^mouse/.test(t.type) && this._startOpening(n),
                this.activeMenu = e.parent(),
                this._trigger("focus", t, {
                    item: e
                })
            },
            _scrollIntoView: function(t) {
                var e, n, i, r, o, a;
                this._hasScroll() && (e = parseFloat(z.css(this.activeMenu[0], "borderTopWidth")) || 0,
                n = parseFloat(z.css(this.activeMenu[0], "paddingTop")) || 0,
                i = t.offset().top - this.activeMenu.offset().top - e - n,
                r = this.activeMenu.scrollTop(),
                o = this.activeMenu.height(),
                a = t.outerHeight(),
                i < 0 ? this.activeMenu.scrollTop(r + i) : o < i + a && this.activeMenu.scrollTop(r + i - o + a))
            },
            blur: function(t, e) {
                e || clearTimeout(this.timer),
                this.active && (this._removeClass(this.active.children(".ui-menu-item-wrapper"), null, "ui-state-active"),
                this._trigger("blur", t, {
                    item: this.active
                }),
                this.active = null)
            },
            _startOpening: function(t) {
                clearTimeout(this.timer),
                "true" === t.attr("aria-hidden") && (this.timer = this._delay(function() {
                    this._close(),
                    this._open(t)
                }, this.delay))
            },
            _open: function(t) {
                var e = z.extend({
                    of: this.active
                }, this.options.position);
                clearTimeout(this.timer),
                this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden", "true"),
                t.show().removeAttr("aria-hidden").attr("aria-expanded", "true").position(e)
            },
            collapseAll: function(e, n) {
                clearTimeout(this.timer),
                this.timer = this._delay(function() {
                    var t = n ? this.element : z(e && e.target).closest(this.element.find(".ui-menu"));
                    t.length || (t = this.element),
                    this._close(t),
                    this.blur(e),
                    this._removeClass(t.find(".ui-state-active"), null, "ui-state-active"),
                    this.activeMenu = t
                }, this.delay)
            },
            _close: function(t) {
                (t = t || (this.active ? this.active.parent() : this.element)).find(".ui-menu").hide().attr("aria-hidden", "true").attr("aria-expanded", "false")
            },
            _closeOnDocumentClick: function(t) {
                return !z(t.target).closest(".ui-menu").length
            },
            _isDivider: function(t) {
                return !/[^\-\u2014\u2013\s]/.test(t.text())
            },
            collapse: function(t) {
                var e = this.active && this.active.parent().closest(".ui-menu-item", this.element);
                e && e.length && (this._close(),
                this.focus(t, e))
            },
            expand: function(t) {
                var e = this.active && this.active.children(".ui-menu ").find(this.options.items).first();
                e && e.length && (this._open(e.parent()),
                this._delay(function() {
                    this.focus(t, e)
                }))
            },
            next: function(t) {
                this._move("next", "first", t)
            },
            previous: function(t) {
                this._move("prev", "last", t)
            },
            isFirstItem: function() {
                return this.active && !this.active.preval(".ui-menu-item").length
            },
            isLastItem: function() {
                return this.active && !this.active.nextAll(".ui-menu-item").length
            },
            _move: function(t, e, n) {
                var i;
                this.active && (i = "first" === t || "last" === t ? this.active["first" === t ? "prevAll" : "nextAll"](".ui-menu-item").eq(-1) : this.active[t + "All"](".ui-menu-item").eq(0)),
                i && i.length && this.active || (i = this.activeMenu.find(this.options.items)[e]()),
                this.focus(n, i)
            },
            nextPage: function(t) {
                var e, n, i;
                this.active ? this.isLastItem() || (this._hasScroll() ? (n = this.active.offset().top,
                i = this.element.height(),
                this.active.nextAll(".ui-menu-item").each(function() {
                    return (e = z(this)).offset().top - n - i < 0
                }),
                this.focus(t, e)) : this.focus(t, this.activeMenu.find(this.options.items)[this.active ? "last" : "first"]())) : this.next(t)
            },
            previousPage: function(t) {
                var e, n, i;
                this.active ? this.isFirstItem() || (this._hasScroll() ? (n = this.active.offset().top,
                i = this.element.height(),
                this.active.preval(".ui-menu-item").each(function() {
                    return 0 < (e = z(this)).offset().top - n + i
                }),
                this.focus(t, e)) : this.focus(t, this.activeMenu.find(this.options.items).first())) : this.next(t)
            },
            _hasScroll: function() {
                return this.element.outerHeight() < this.element.prop("scrollHeight")
            },
            select: function(t) {
                this.active = this.active || z(t.target).closest(".ui-menu-item");
                var e = {
                    item: this.active
                };
                this.active.has(".ui-menu").length || this.collapseAll(t, !0),
                this._trigger("select", t, e)
            },
            _filterMenuItems: function(t) {
                var e = t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
                  , n = new RegExp("^" + e,"i");
                return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function() {
                    return n.test(z.trim(z(this).children(".ui-menu-item-wrapper").text()))
                })
            }
        }),
        z.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());
        var d = !1;
        function M(e) {
            return function() {
                var t = this.element.val();
                e.apply(this, arguments),
                this._refresh(),
                t !== this.element.val() && this._trigger("change")
            }
        }
        z(document).on("mouseup", function() {
            d = !1
        }),
        z.widget("ui.mouse", {
            version: "1.12.1",
            options: {
                cancel: "input, textarea, button, select, option",
                distance: 1,
                delay: 0
            },
            _mouseInit: function() {
                var e = this;
                this.element.on("mousedown." + this.widgetName, function(t) {
                    return e._mouseDown(t)
                }).on("click." + this.widgetName, function(t) {
                    if (!0 === z.data(t.target, e.widgetName + ".preventClickEvent"))
                        return z.removeData(t.target, e.widgetName + ".preventClickEvent"),
                        t.stopImmediatePropagation(),
                        !1
                }),
                this.started = !1
            },
            _mouseDestroy: function() {
                this.element.off("." + this.widgetName),
                this._mouseMoveDelegate && this.document.off("mousemove." + this.widgetName, this._mouseMoveDelegate).off("mouseup." + this.widgetName, this._mouseUpDelegate)
            },
            _mouseDown: function(t) {
                if (!d) {
                    this._mouseMoved = !1,
                    this._mouseStarted && this._mouseUp(t),
                    this._mouseDownEvent = t;
                    var e = this
                      , n = 1 === t.which
                      , i = !("string" != typeof this.options.cancel || !t.target.nodeName) && z(t.target).closest(this.options.cancel).length;
                    return !(n && !i && this._mouseCapture(t)) || (this.mouseDelayMet = !this.options.delay,
                    this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function() {
                        e.mouseDelayMet = !0
                    }, this.options.delay)),
                    this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = !1 !== this._mouseStart(t),
                    !this._mouseStarted) ? (t.preventDefault(),
                    !0) : (!0 === z.data(t.target, this.widgetName + ".preventClickEvent") && z.removeData(t.target, this.widgetName + ".preventClickEvent"),
                    this._mouseMoveDelegate = function(t) {
                        return e._mouseMove(t)
                    }
                    ,
                    this._mouseUpDelegate = function(t) {
                        return e._mouseUp(t)
                    }
                    ,
                    this.document.on("mousemove." + this.widgetName, this._mouseMoveDelegate).on("mouseup." + this.widgetName, this._mouseUpDelegate),
                    t.preventDefault(),
                    d = !0))
                }
            },
            _mouseMove: function(t) {
                if (this._mouseMoved) {
                    if (z.ui.ie && (!document.documentMode || document.documentMode < 9) && !t.button)
                        return this._mouseUp(t);
                    if (!t.which)
                        if (t.originalEvent.altKey || t.originalEvent.ctrlKey || t.originalEvent.metaKey || t.originalEvent.shiftKey)
                            this.ignoreMissingWhich = !0;
                        else if (!this.ignoreMissingWhich)
                            return this._mouseUp(t)
                }
                return (t.which || t.button) && (this._mouseMoved = !0),
                this._mouseStarted ? (this._mouseDrag(t),
                t.preventDefault()) : (this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = !1 !== this._mouseStart(this._mouseDownEvent, t),
                this._mouseStarted ? this._mouseDrag(t) : this._mouseUp(t)),
                !this._mouseStarted)
            },
            _mouseUp: function(t) {
                this.document.off("mousemove." + this.widgetName, this._mouseMoveDelegate).off("mouseup." + this.widgetName, this._mouseUpDelegate),
                this._mouseStarted && (this._mouseStarted = !1,
                t.target === this._mouseDownEvent.target && z.data(t.target, this.widgetName + ".preventClickEvent", !0),
                this._mouseStop(t)),
                this._mouseDelayTimer && (clearTimeout(this._mouseDelayTimer),
                delete this._mouseDelayTimer),
                this.ignoreMissingWhich = !1,
                d = !1,
                t.preventDefault()
            },
            _mouseDistanceMet: function(t) {
                return Math.max(Math.abs(this._mouseDownEvent.pageX - t.pageX), Math.abs(this._mouseDownEvent.pageY - t.pageY)) >= this.options.distance
            },
            _mouseDelayMet: function() {
                return this.mouseDelayMet
            },
            _mouseStart: function() {},
            _mouseDrag: function() {},
            _mouseStop: function() {},
            _mouseCapture: function() {
                return !0
            }
        }),
        z.widget("ui.selectmenu", [z.ui.formResetMixin, {
            version: "1.12.1",
            defaultElement: "<select>",
            options: {
                appendTo: null,
                classes: {
                    "ui-selectmenu-button-open": "ui-corner-top",
                    "ui-selectmenu-button-closed": "ui-corner-all"
                },
                disabled: null,
                icons: {
                    button: "ui-icon-triangle-1-s"
                },
                position: {
                    my: "left top",
                    at: "left bottom",
                    collision: "none"
                },
                width: !1,
                change: null,
                close: null,
                focus: null,
                open: null,
                select: null
            },
            _create: function() {
                var t = this.element.uniqueId().attr("id");
                this.ids = {
                    element: t,
                    button: t + "-button",
                    menu: t + "-menu"
                },
                this._drawButton(),
                this._drawMenu(),
                this._bindFormResetHandler(),
                this._rendered = !1,
                this.menuItems = z()
            },
            _drawButton: function() {
                var t, e = this, n = this._parseOption(this.element.find("option:selected"), this.element[0].selectedIndex);
                this.labels = this.element.labels().attr("for", this.ids.button),
                this._on(this.labels, {
                    click: function(t) {
                        this.button.focus(),
                        t.preventDefault()
                    }
                }),
                this.element.hide(),
                this.button = z("<span>", {
                    tabindex: this.options.disabled ? -1 : 0,
                    id: this.ids.button,
                    role: "combobox",
                    "aria-expanded": "false",
                    "aria-autocomplete": "list",
                    "aria-owns": this.ids.menu,
                    "aria-haspopup": "true",
                    title: this.element.attr("title")
                }).insertAfter(this.element),
                this._addClass(this.button, "ui-selectmenu-button ui-selectmenu-button-closed", "ui-button ui-widget"),
                t = z("<span>").appendTo(this.button),
                this._addClass(t, "ui-selectmenu-icon", "ui-icon " + this.options.icons.button),
                this.buttonItem = this._renderButtonItem(n).appendTo(this.button),
                !1 !== this.options.width && this._resizeButton(),
                this._on(this.button, this._buttonEvents),
                this.button.one("focusin", function() {
                    e._rendered || e._refreshMenu()
                })
            },
            _drawMenu: function() {
                var i = this;
                this.menu = z("<ul>", {
                    "aria-hidden": "true",
                    "aria-labelledby": this.ids.button,
                    id: this.ids.menu
                }),
                this.menuWrap = z("<div>").append(this.menu),
                this._addClass(this.menuWrap, "ui-selectmenu-menu", "ui-front"),
                this.menuWrap.appendTo(this._appendTo()),
                this.menuInstance = this.menu.menu({
                    classes: {
                        "ui-menu": "ui-corner-bottom"
                    },
                    role: "listbox",
                    select: function(t, e) {
                        t.preventDefault(),
                        i._setSelection(),
                        i._select(e.item.data("ui-selectmenu-item"), t)
                    },
                    focus: function(t, e) {
                        var n = e.item.data("ui-selectmenu-item");
                        null != i.focusIndex && n.index !== i.focusIndex && (i._trigger("focus", t, {
                            item: n
                        }),
                        i.isOpen || i._select(n, t)),
                        i.focusIndex = n.index,
                        i.button.attr("aria-activedescendant", i.menuItems.eq(n.index).attr("id"))
                    }
                }).menu("instance"),
                this.menuInstance._off(this.menu, "mouseleave"),
                this.menuInstance._closeOnDocumentClick = function() {
                    return !1
                }
                ,
                this.menuInstance._isDivider = function() {
                    return !1
                }
            },
            refresh: function() {
                this._refreshMenu(),
                this.buttonItem.replaceWith(this.buttonItem = this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item") || {})),
                null === this.options.width && this._resizeButton()
            },
            _refreshMenu: function() {
                var t, e = this.element.find("option");
                this.menu.empty(),
                this._parseOptions(e),
                this._renderMenu(this.menu, this.items),
                this.menuInstance.refresh(),
                this.menuItems = this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),
                this._rendered = !0,
                e.length && (t = this._getSelectedItem(),
                this.menuInstance.focus(null, t),
                this._setAria(t.data("ui-selectmenu-item")),
                this._setOption("disabled", this.element.prop("disabled")))
            },
            open: function(t) {
                this.options.disabled || (this._rendered ? (this._removeClass(this.menu.find(".ui-state-active"), null, "ui-state-active"),
                this.menuInstance.focus(null, this._getSelectedItem())) : this._refreshMenu(),
                this.menuItems.length && (this.isOpen = !0,
                this._toggleAttr(),
                this._resizeMenu(),
                this._position(),
                this._on(this.document, this._documentClick),
                this._trigger("open", t)))
            },
            _position: function() {
                this.menuWrap.position(z.extend({
                    of: this.button
                }, this.options.position))
            },
            close: function(t) {
                this.isOpen && (this.isOpen = !1,
                this._toggleAttr(),
                this.range = null,
                this._off(this.document),
                this._trigger("close", t))
            },
            widget: function() {
                return this.button
            },
            menuWidget: function() {
                return this.menu
            },
            _renderButtonItem: function(t) {
                var e = z("<span>");
                return this._setText(e, t.label),
                this._addClass(e, "ui-selectmenu-text"),
                e
            },
            _renderMenu: function(i, t) {
                var r = this
                  , o = "";
                z.each(t, function(t, e) {
                    var n;
                    e.optgroup !== o && (n = z("<li>", {
                        text: e.optgroup
                    }),
                    r._addClass(n, "ui-selectmenu-optgroup", "ui-menu-divider" + (e.element.parent("optgroup").prop("disabled") ? " ui-state-disabled" : "")),
                    n.appendTo(i),
                    o = e.optgroup),
                    r._renderItemData(i, e)
                })
            },
            _renderItemData: function(t, e) {
                return this._renderItem(t, e).data("ui-selectmenu-item", e)
            },
            _renderItem: function(t, e) {
                var n = z("<li>")
                  , i = z("<div>", {
                    title: e.element.attr("title")
                });
                return e.disabled && this._addClass(n, null, "ui-state-disabled"),
                this._setText(i, e.label),
                n.append(i).appendTo(t)
            },
            _setText: function(t, e) {
                e ? t.text(e) : t.html("&#160;")
            },
            _move: function(t, e) {
                var n, i, r = ".ui-menu-item";
                this.isOpen ? n = this.menuItems.eq(this.focusIndex).parent("li") : (n = this.menuItems.eq(this.element[0].selectedIndex).parent("li"),
                r += ":not(.ui-state-disabled)"),
                (i = "first" === t || "last" === t ? n["first" === t ? "prevAll" : "nextAll"](r).eq(-1) : n[t + "All"](r).eq(0)).length && this.menuInstance.focus(e, i)
            },
            _getSelectedItem: function() {
                return this.menuItems.eq(this.element[0].selectedIndex).parent("li")
            },
            _toggle: function(t) {
                this[this.isOpen ? "close" : "open"](t)
            },
            _setSelection: function() {
                var t;
                this.range && (window.getSelection ? ((t = window.getSelection()).removeAllRanges(),
                t.addRange(this.range)) : this.range.select(),
                this.button.focus())
            },
            _documentClick: {
                mousedown: function(t) {
                    this.isOpen && (z(t.target).closest(".ui-selectmenu-menu, #" + z.ui.escapeSelector(this.ids.button)).length || this.close(t))
                }
            },
            _buttonEvents: {
                mousedown: function() {
                    var t;
                    window.getSelection ? (t = window.getSelection()).rangeCount && (this.range = t.getRangeAt(0)) : this.range = document.selection.createRange()
                },
                click: function(t) {
                    this._setSelection(),
                    this._toggle(t)
                },
                keydown: function(t) {
                    var e = !0;
                    switch (t.keyCode) {
                    case z.ui.keyCode.TAB:
                    case z.ui.keyCode.ESCAPE:
                        this.close(t),
                        e = !1;
                        break;
                    case z.ui.keyCode.ENTER:
                        this.isOpen && this._selectFocusedItem(t);
                        break;
                    case z.ui.keyCode.UP:
                        t.altKey ? this._toggle(t) : this._move("prev", t);
                        break;
                    case z.ui.keyCode.DOWN:
                        t.altKey ? this._toggle(t) : this._move("next", t);
                        break;
                    case z.ui.keyCode.SPACE:
                        this.isOpen ? this._selectFocusedItem(t) : this._toggle(t);
                        break;
                    case z.ui.keyCode.LEFT:
                        this._move("prev", t);
                        break;
                    case z.ui.keyCode.RIGHT:
                        this._move("next", t);
                        break;
                    case z.ui.keyCode.HOME:
                    case z.ui.keyCode.PAGE_UP:
                        this._move("first", t);
                        break;
                    case z.ui.keyCode.END:
                    case z.ui.keyCode.PAGE_DOWN:
                        this._move("last", t);
                        break;
                    default:
                        this.menu.trigger(t),
                        e = !1
                    }
                    e && t.preventDefault()
                }
            },
            _selectFocusedItem: function(t) {
                var e = this.menuItems.eq(this.focusIndex).parent("li");
                e.hasClass("ui-state-disabled") || this._select(e.data("ui-selectmenu-item"), t)
            },
            _select: function(t, e) {
                var n = this.element[0].selectedIndex;
                this.element[0].selectedIndex = t.index,
                this.buttonItem.replaceWith(this.buttonItem = this._renderButtonItem(t)),
                this._setAria(t),
                this._trigger("select", e, {
                    item: t
                }),
                t.index !== n && this._trigger("change", e, {
                    item: t
                }),
                this.close(e)
            },
            _setAria: function(t) {
                var e = this.menuItems.eq(t.index).attr("id");
                this.button.attr({
                    "aria-labelledby": e,
                    "aria-activedescendant": e
                }),
                this.menu.attr("aria-activedescendant", e)
            },
            _setOption: function(t, e) {
                var n;
                "icons" === t && (n = this.button.find("span.ui-icon"),
                this._removeClass(n, null, this.options.icons.button)._addClass(n, null, e.button)),
                this._super(t, e),
                "appendTo" === t && this.menuWrap.appendTo(this._appendTo()),
                "width" === t && this._resizeButton()
            },
            _setOptionDisabled: function(t) {
                this._super(t),
                this.menuInstance.option("disabled", t),
                this.button.attr("aria-disabled", t),
                this._toggleClass(this.button, null, "ui-state-disabled", t),
                this.element.prop("disabled", t),
                t ? (this.button.attr("tabindex", -1),
                this.close()) : this.button.attr("tabindex", 0)
            },
            _appendTo: function() {
                var t = this.options.appendTo;
                return (t = t && (t.jquery || t.nodeType ? z(t) : this.document.find(t).eq(0))) && t[0] || (t = this.element.closest(".ui-front, dialog")),
                t.length || (t = this.document[0].body),
                t
            },
            _toggleAttr: function() {
                this.button.attr("aria-expanded", this.isOpen),
                this._removeClass(this.button, "ui-selectmenu-button-" + (this.isOpen ? "closed" : "open"))._addClass(this.button, "ui-selectmenu-button-" + (this.isOpen ? "open" : "closed"))._toggleClass(this.menuWrap, "ui-selectmenu-open", null, this.isOpen),
                this.menu.attr("aria-hidden", !this.isOpen)
            },
            _resizeButton: function() {
                var t = this.options.width;
                !1 !== t ? (null === t && (t = this.element.show().outerWidth(),
                this.element.hide()),
                this.button.outerWidth(t)) : this.button.css("width", "")
            },
            _resizeMenu: function() {
                this.menu.outerWidth(Math.max(this.button.outerWidth(), this.menu.width("").outerWidth() + 1))
            },
            _getCreateOptions: function() {
                var t = this._super();
                return t.disabled = this.element.prop("disabled"),
                t
            },
            _parseOptions: function(t) {
                var n = this
                  , i = [];
                t.each(function(t, e) {
                    i.push(n._parseOption(z(e), t))
                }),
                this.items = i
            },
            _parseOption: function(t, e) {
                var n = t.parent("optgroup");
                return {
                    element: t,
                    index: e,
                    value: t.val(),
                    label: t.text(),
                    optgroup: n.attr("label") || "",
                    disabled: n.prop("disabled") || t.prop("disabled")
                }
            },
            _destroy: function() {
                this._unbindFormResetHandler(),
                this.menuWrap.remove(),
                this.button.remove(),
                this.element.show(),
                this.element.removeUniqueId(),
                this.labels.attr("for", this.ids.element)
            }
        }]),
        z.widget("ui.slider", z.ui.mouse, {
            version: "1.12.1",
            widgetEventPrefix: "slide",
            options: {
                animate: !1,
                classes: {
                    "ui-slider": "ui-corner-all",
                    "ui-slider-handle": "ui-corner-all",
                    "ui-slider-range": "ui-corner-all ui-widget-header"
                },
                distance: 0,
                max: 100,
                min: 0,
                orientation: "horizontal",
                range: !1,
                step: 1,
                value: 0,
                values: null,
                change: null,
                slide: null,
                start: null,
                stop: null
            },
            numPages: 5,
            _create: function() {
                this._keySliding = !1,
                this._mouseSliding = !1,
                this._animateOff = !0,
                this._handleIndex = null,
                this._detectOrientation(),
                this._mouseInit(),
                this._calculateNewMax(),
                this._addClass("ui-slider ui-slider-" + this.orientation, "ui-widget ui-widget-content"),
                this._refresh(),
                this._animateOff = !1
            },
            _refresh: function() {
                this._createRange(),
                this._createHandles(),
                this._setupEvents(),
                this._refreshValue()
            },
            _createHandles: function() {
                var t, e = this.options, n = this.element.find(".ui-slider-handle"), i = [], r = e.values && e.values.length || 1;
                for (n.length > r && (n.slice(r).remove(),
                n = n.slice(0, r)),
                t = n.length; t < r; t++)
                    i.push("<span tabindex='0'></span>");
                this.handles = n.add(z(i.join("")).appendTo(this.element)),
                this._addClass(this.handles, "ui-slider-handle", "ui-state-default"),
                this.handle = this.handles.eq(0),
                this.handles.each(function(t) {
                    z(this).data("ui-slider-handle-index", t).attr("tabIndex", 0)
                })
            },
            _createRange: function() {
                var t = this.options;
                t.range ? (!0 === t.range && (t.values ? t.values.length && 2 !== t.values.length ? t.values = [t.values[0], t.values[0]] : z.isArray(t.values) && (t.values = t.values.slice(0)) : t.values = [this._valueMin(), this._valueMin()]),
                this.range && this.range.length ? (this._removeClass(this.range, "ui-slider-range-min ui-slider-range-max"),
                this.range.css({
                    left: "",
                    bottom: ""
                })) : (this.range = z("<div>").appendTo(this.element),
                this._addClass(this.range, "ui-slider-range")),
                "min" !== t.range && "max" !== t.range || this._addClass(this.range, "ui-slider-range-" + t.range)) : (this.range && this.range.remove(),
                this.range = null)
            },
            _setupEvents: function() {
                this._off(this.handles),
                this._on(this.handles, this._handleEvents),
                this._hoverable(this.handles),
                this._focusable(this.handles)
            },
            _destroy: function() {
                this.handles.remove(),
                this.range && this.range.remove(),
                this._mouseDestroy()
            },
            _mouseCapture: function(t) {
                var e, n, i, r, o, a, s, c = this, u = this.options;
                return !u.disabled && (this.elementSize = {
                    width: this.element.outerWidth(),
                    height: this.element.outerHeight()
                },
                this.elementOffset = this.element.offset(),
                e = {
                    x: t.pageX,
                    y: t.pageY
                },
                n = this._normValueFromMouse(e),
                i = this._valueMax() - this._valueMin() + 1,
                this.handles.each(function(t) {
                    var e = Math.abs(n - c.values(t));
                    (e < i || i === e && (t === c._lastChangedValue || c.values(t) === u.min)) && (i = e,
                    r = z(this),
                    o = t)
                }),
                !1 !== this._start(t, o) && (this._mouseSliding = !0,
                this._handleIndex = o,
                this._addClass(r, null, "ui-state-active"),
                r.trigger("focus"),
                a = r.offset(),
                s = !z(t.target).parents().addBack().is(".ui-slider-handle"),
                this._clickOffset = s ? {
                    left: 0,
                    top: 0
                } : {
                    left: t.pageX - a.left,
                    top: t.pageY - a.top - r.height() / 2 - (parseInt(r.css("borderTopWidth"), 10) || 0) - (parseInt(r.css("borderBottomWidth"), 10) || 0) + (parseInt(r.css("marginTop"), 10) || 0)
                },
                this._animateOff = !0))
            },
            _mouseStart: function() {
                return !0
            },
            _mouseDrag: function(t) {
                var e = {
                    x: t.pageX,
                    y: t.pageY
                }
                  , n = this._normValueFromMouse(e);
                return this._slide(t, this._handleIndex, n),
                !1
            },
            _mouseStop: function(t) {
                return this._removeClass(this.handles, null, "ui-state-active"),
                this._mouseSliding = !1,
                this._stop(t, this._handleIndex),
                this._change(t, this._handleIndex),
                this._handleIndex = null,
                this._clickOffset = null,
                this._animateOff = !1
            },
            _detectOrientation: function() {
                this.orientation = "vertical" === this.options.orientation ? "vertical" : "horizontal"
            },
            _normValueFromMouse: function(t) {
                var e, n, i, r, o = "horizontal" === this.orientation ? (e = this.elementSize.width,
                t.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (e = this.elementSize.height,
                t.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0));
                return 1 < (n = o / e) && (n = 1),
                n < 0 && (n = 0),
                "vertical" === this.orientation && (n = 1 - n),
                i = this._valueMax() - this._valueMin(),
                r = this._valueMin() + n * i,
                this._trimAlignValue(r)
            },
            _uiHash: function(t, e, n) {
                var i = {
                    handle: this.handles[t],
                    handleIndex: t,
                    value: void 0 !== e ? e : this.value()
                };
                return this._hasMultipleValues() && (i.value = void 0 !== e ? e : this.values(t),
                i.values = n || this.values()),
                i
            },
            _hasMultipleValues: function() {
                return this.options.values && this.options.values.length
            },
            _start: function(t, e) {
                return this._trigger("start", t, this._uiHash(e))
            },
            _slide: function(t, e, n) {
                var i, r = this.value(), o = this.values();
                this._hasMultipleValues() && (i = this.values(e ? 0 : 1),
                r = this.values(e),
                2 === this.options.values.length && !0 === this.options.range && (n = 0 === e ? Math.min(i, n) : Math.max(i, n)),
                o[e] = n),
                n !== r && !1 !== this._trigger("slide", t, this._uiHash(e, n, o)) && (this._hasMultipleValues() ? this.values(e, n) : this.value(n))
            },
            _stop: function(t, e) {
                this._trigger("stop", t, this._uiHash(e))
            },
            _change: function(t, e) {
                this._keySliding || this._mouseSliding || (this._lastChangedValue = e,
                this._trigger("change", t, this._uiHash(e)))
            },
            value: function(t) {
                return arguments.length ? (this.options.value = this._trimAlignValue(t),
                this._refreshValue(),
                void this._change(null, 0)) : this._value()
            },
            values: function(t, e) {
                var n, i, r;
                if (1 < arguments.length)
                    return this.options.values[t] = this._trimAlignValue(e),
                    this._refreshValue(),
                    void this._change(null, t);
                if (!arguments.length)
                    return this._values();
                if (!z.isArray(t))
                    return this._hasMultipleValues() ? this._values(t) : this.value();
                for (n = this.options.values,
                i = t,
                r = 0; r < n.length; r += 1)
                    n[r] = this._trimAlignValue(i[r]),
                    this._change(null, r);
                this._refreshValue()
            },
            _setOption: function(t, e) {
                var n, i = 0;
                switch ("range" === t && !0 === this.options.range && ("min" === e ? (this.options.value = this._values(0),
                this.options.values = null) : "max" === e && (this.options.value = this._values(this.options.values.length - 1),
                this.options.values = null)),
                z.isArray(this.options.values) && (i = this.options.values.length),
                this._super(t, e),
                t) {
                case "orientation":
                    this._detectOrientation(),
                    this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-" + this.orientation),
                    this._refreshValue(),
                    this.options.range && this._refreshRange(e),
                    this.handles.css("horizontal" === e ? "bottom" : "left", "");
                    break;
                case "value":
                    this._animateOff = !0,
                    this._refreshValue(),
                    this._change(null, 0),
                    this._animateOff = !1;
                    break;
                case "values":
                    for (this._animateOff = !0,
                    this._refreshValue(),
                    n = i - 1; 0 <= n; n--)
                        this._change(null, n);
                    this._animateOff = !1;
                    break;
                case "step":
                case "min":
                case "max":
                    this._animateOff = !0,
                    this._calculateNewMax(),
                    this._refreshValue(),
                    this._animateOff = !1;
                    break;
                case "range":
                    this._animateOff = !0,
                    this._refresh(),
                    this._animateOff = !1
                }
            },
            _setOptionDisabled: function(t) {
                this._super(t),
                this._toggleClass(null, "ui-state-disabled", !!t)
            },
            _value: function() {
                var t = this.options.value;
                return this._trimAlignValue(t)
            },
            _values: function(t) {
                var e, n, i;
                if (arguments.length)
                    return e = this.options.values[t],
                    this._trimAlignValue(e);
                if (this._hasMultipleValues()) {
                    for (n = this.options.values.slice(),
                    i = 0; i < n.length; i += 1)
                        n[i] = this._trimAlignValue(n[i]);
                    return n
                }
                return []
            },
            _trimAlignValue: function(t) {
                if (t <= this._valueMin())
                    return this._valueMin();
                if (t >= this._valueMax())
                    return this._valueMax();
                var e = 0 < this.options.step ? this.options.step : 1
                  , n = (t - this._valueMin()) % e
                  , i = t - n;
                return 2 * Math.abs(n) >= e && (i += 0 < n ? e : -e),
                parseFloat(i.toFixed(5))
            },
            _calculateNewMax: function() {
                var t = this.options.max
                  , e = this._valueMin()
                  , n = this.options.step;
                (t = Math.round((t - e) / n) * n + e) > this.options.max && (t -= n),
                this.max = parseFloat(t.toFixed(this._precision()))
            },
            _precision: function() {
                var t = this._precisionOf(this.options.step);
                return null !== this.options.min && (t = Math.max(t, this._precisionOf(this.options.min))),
                t
            },
            _precisionOf: function(t) {
                var e = t.toString()
                  , n = e.indexOf(".");
                return -1 === n ? 0 : e.length - n - 1
            },
            _valueMin: function() {
                return this.options.min
            },
            _valueMax: function() {
                return this.max
            },
            _refreshRange: function(t) {
                "vertical" === t && this.range.css({
                    width: "",
                    left: ""
                }),
                "horizontal" === t && this.range.css({
                    height: "",
                    bottom: ""
                })
            },
            _refreshValue: function() {
                var e, n, t, i, r, o = this.options.range, a = this.options, s = this, c = !this._animateOff && a.animate, u = {};
                this._hasMultipleValues() ? this.handles.each(function(t) {
                    n = (s.values(t) - s._valueMin()) / (s._valueMax() - s._valueMin()) * 100,
                    u["horizontal" === s.orientation ? "left" : "bottom"] = n + "%",
                    z(this).stop(1, 1)[c ? "animate" : "css"](u, a.animate),
                    !0 === s.options.range && ("horizontal" === s.orientation ? (0 === t && s.range.stop(1, 1)[c ? "animate" : "css"]({
                        left: n + "%"
                    }, a.animate),
                    1 === t && s.range[c ? "animate" : "css"]({
                        width: n - e + "%"
                    }, {
                        queue: !1,
                        duration: a.animate
                    })) : (0 === t && s.range.stop(1, 1)[c ? "animate" : "css"]({
                        bottom: n + "%"
                    }, a.animate),
                    1 === t && s.range[c ? "animate" : "css"]({
                        height: n - e + "%"
                    }, {
                        queue: !1,
                        duration: a.animate
                    }))),
                    e = n
                }) : (t = this.value(),
                i = this._valueMin(),
                r = this._valueMax(),
                n = r !== i ? (t - i) / (r - i) * 100 : 0,
                u["horizontal" === this.orientation ? "left" : "bottom"] = n + "%",
                this.handle.stop(1, 1)[c ? "animate" : "css"](u, a.animate),
                "min" === o && "horizontal" === this.orientation && this.range.stop(1, 1)[c ? "animate" : "css"]({
                    width: n + "%"
                }, a.animate),
                "max" === o && "horizontal" === this.orientation && this.range.stop(1, 1)[c ? "animate" : "css"]({
                    width: 100 - n + "%"
                }, a.animate),
                "min" === o && "vertical" === this.orientation && this.range.stop(1, 1)[c ? "animate" : "css"]({
                    height: n + "%"
                }, a.animate),
                "max" === o && "vertical" === this.orientation && this.range.stop(1, 1)[c ? "animate" : "css"]({
                    height: 100 - n + "%"
                }, a.animate))
            },
            _handleEvents: {
                keydown: function(t) {
                    var e, n, i, r = z(t.target).data("ui-slider-handle-index");
                    switch (t.keyCode) {
                    case z.ui.keyCode.HOME:
                    case z.ui.keyCode.END:
                    case z.ui.keyCode.PAGE_UP:
                    case z.ui.keyCode.PAGE_DOWN:
                    case z.ui.keyCode.UP:
                    case z.ui.keyCode.RIGHT:
                    case z.ui.keyCode.DOWN:
                    case z.ui.keyCode.LEFT:
                        if (t.preventDefault(),
                        !this._keySliding && (this._keySliding = !0,
                        this._addClass(z(t.target), null, "ui-state-active"),
                        !1 === this._start(t, r)))
                            return
                    }
                    switch (i = this.options.step,
                    e = n = this._hasMultipleValues() ? this.values(r) : this.value(),
                    t.keyCode) {
                    case z.ui.keyCode.HOME:
                        n = this._valueMin();
                        break;
                    case z.ui.keyCode.END:
                        n = this._valueMax();
                        break;
                    case z.ui.keyCode.PAGE_UP:
                        n = this._trimAlignValue(e + (this._valueMax() - this._valueMin()) / this.numPages);
                        break;
                    case z.ui.keyCode.PAGE_DOWN:
                        n = this._trimAlignValue(e - (this._valueMax() - this._valueMin()) / this.numPages);
                        break;
                    case z.ui.keyCode.UP:
                    case z.ui.keyCode.RIGHT:
                        if (e === this._valueMax())
                            return;
                        n = this._trimAlignValue(e + i);
                        break;
                    case z.ui.keyCode.DOWN:
                    case z.ui.keyCode.LEFT:
                        if (e === this._valueMin())
                            return;
                        n = this._trimAlignValue(e - i)
                    }
                    this._slide(t, r, n)
                },
                keyup: function(t) {
                    var e = z(t.target).data("ui-slider-handle-index");
                    this._keySliding && (this._keySliding = !1,
                    this._stop(t, e),
                    this._change(t, e),
                    this._removeClass(z(t.target), null, "ui-state-active"))
                }
            }
        }),
        z.widget("ui.spinner", {
            version: "1.12.1",
            defaultElement: "<input>",
            widgetEventPrefix: "spin",
            options: {
                classes: {
                    "ui-spinner": "ui-corner-all",
                    "ui-spinner-down": "ui-corner-br",
                    "ui-spinner-up": "ui-corner-tr"
                },
                culture: null,
                icons: {
                    down: "ui-icon-triangle-1-s",
                    up: "ui-icon-triangle-1-n"
                },
                incremental: !0,
                max: null,
                min: null,
                numberFormat: null,
                page: 10,
                step: 1,
                change: null,
                spin: null,
                start: null,
                stop: null
            },
            _create: function() {
                this._setOption("max", this.options.max),
                this._setOption("min", this.options.min),
                this._setOption("step", this.options.step),
                "" !== this.value() && this._value(this.element.val(), !0),
                this._draw(),
                this._on(this._events),
                this._refresh(),
                this._on(this.window, {
                    beforeunload: function() {
                        this.element.removeAttr("autocomplete")
                    }
                })
            },
            _getCreateOptions: function() {
                var i = this._super()
                  , r = this.element;
                return z.each(["min", "max", "step"], function(t, e) {
                    var n = r.attr(e);
                    null != n && n.length && (i[e] = n)
                }),
                i
            },
            _events: {
                keydown: function(t) {
                    this._start(t) && this._keydown(t) && t.preventDefault()
                },
                keyup: "_stop",
                focus: function() {
                    this.previous = this.element.val()
                },
                blur: function(t) {
                    this.cancelBlur ? delete this.cancelBlur : (this._stop(),
                    this._refresh(),
                    this.previous !== this.element.val() && this._trigger("change", t))
                },
                mousewheel: function(t, e) {
                    if (e) {
                        if (!this.spinning && !this._start(t))
                            return !1;
                        this._spin((0 < e ? 1 : -1) * this.options.step, t),
                        clearTimeout(this.mousewheelTimer),
                        this.mousewheelTimer = this._delay(function() {
                            this.spinning && this._stop(t)
                        }, 100),
                        t.preventDefault()
                    }
                },
                "mousedown .ui-spinner-button": function(t) {
                    var e;
                    function n() {
                        this.element[0] === z.ui.safeActiveElement(this.document[0]) || (this.element.trigger("focus"),
                        this.previous = e,
                        this._delay(function() {
                            this.previous = e
                        }))
                    }
                    e = this.element[0] === z.ui.safeActiveElement(this.document[0]) ? this.previous : this.element.val(),
                    t.preventDefault(),
                    n.call(this),
                    this.cancelBlur = !0,
                    this._delay(function() {
                        delete this.cancelBlur,
                        n.call(this)
                    }),
                    !1 !== this._start(t) && this._repeat(null, z(t.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, t)
                },
                "mouseup .ui-spinner-button": "_stop",
                "mouseenter .ui-spinner-button": function(t) {
                    if (z(t.currentTarget).hasClass("ui-state-active"))
                        return !1 !== this._start(t) && void this._repeat(null, z(t.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, t)
                },
                "mouseleave .ui-spinner-button": "_stop"
            },
            _enhance: function() {
                this.uiSpinner = this.element.attr("autocomplete", "off").wrap("<span>").parent().append("<a></a><a></a>")
            },
            _draw: function() {
                this._enhance(),
                this._addClass(this.uiSpinner, "ui-spinner", "ui-widget ui-widget-content"),
                this._addClass("ui-spinner-input"),
                this.element.attr("role", "spinbutton"),
                this.buttons = this.uiSpinner.children("a").attr("tabIndex", -1).attr("aria-hidden", !0).button({
                    classes: {
                        "ui-button": ""
                    }
                }),
                this._removeClass(this.buttons, "ui-corner-all"),
                this._addClass(this.buttons.first(), "ui-spinner-button ui-spinner-up"),
                this._addClass(this.buttons.last(), "ui-spinner-button ui-spinner-down"),
                this.buttons.first().button({
                    icon: this.options.icons.up,
                    showLabel: !1
                }),
                this.buttons.last().button({
                    icon: this.options.icons.down,
                    showLabel: !1
                }),
                this.buttons.height() > Math.ceil(.5 * this.uiSpinner.height()) && 0 < this.uiSpinner.height() && this.uiSpinner.height(this.uiSpinner.height())
            },
            _keydown: function(t) {
                var e = this.options
                  , n = z.ui.keyCode;
                switch (t.keyCode) {
                case n.UP:
                    return this._repeat(null, 1, t),
                    !0;
                case n.DOWN:
                    return this._repeat(null, -1, t),
                    !0;
                case n.PAGE_UP:
                    return this._repeat(null, e.page, t),
                    !0;
                case n.PAGE_DOWN:
                    return this._repeat(null, -e.page, t),
                    !0
                }
                return !1
            },
            _start: function(t) {
                return !(!this.spinning && !1 === this._trigger("start", t)) && (this.counter || (this.counter = 1),
                this.spinning = !0)
            },
            _repeat: function(t, e, n) {
                t = t || 500,
                clearTimeout(this.timer),
                this.timer = this._delay(function() {
                    this._repeat(40, e, n)
                }, t),
                this._spin(e * this.options.step, n)
            },
            _spin: function(t, e) {
                var n = this.value() || 0;
                this.counter || (this.counter = 1),
                n = this._adjustValue(n + t * this._increment(this.counter)),
                this.spinning && !1 === this._trigger("spin", e, {
                    value: n
                }) || (this._value(n),
                this.counter++)
            },
            _increment: function(t) {
                var e = this.options.incremental;
                return e ? z.isFunction(e) ? e(t) : Math.floor(t * t * t / 5e4 - t * t / 500 + 17 * t / 200 + 1) : 1
            },
            _precision: function() {
                var t = this._precisionOf(this.options.step);
                return null !== this.options.min && (t = Math.max(t, this._precisionOf(this.options.min))),
                t
            },
            _precisionOf: function(t) {
                var e = t.toString()
                  , n = e.indexOf(".");
                return -1 === n ? 0 : e.length - n - 1
            },
            _adjustValue: function(t) {
                var e, n = this.options, i = t - (e = null !== n.min ? n.min : 0);
                return t = e + Math.round(i / n.step) * n.step,
                t = parseFloat(t.toFixed(this._precision())),
                null !== n.max && t > n.max ? n.max : null !== n.min && t < n.min ? n.min : t
            },
            _stop: function(t) {
                this.spinning && (clearTimeout(this.timer),
                clearTimeout(this.mousewheelTimer),
                this.counter = 0,
                this.spinning = !1,
                this._trigger("stop", t))
            },
            _setOption: function(t, e) {
                var n, i, r;
                if ("culture" === t || "numberFormat" === t)
                    return n = this._parse(this.element.val()),
                    this.options[t] = e,
                    void this.element.val(this._format(n));
                "max" !== t && "min" !== t && "step" !== t || "string" == typeof e && (e = this._parse(e)),
                "icons" === t && (i = this.buttons.first().find(".ui-icon"),
                this._removeClass(i, null, this.options.icons.up),
                this._addClass(i, null, e.up),
                r = this.buttons.last().find(".ui-icon"),
                this._removeClass(r, null, this.options.icons.down),
                this._addClass(r, null, e.down)),
                this._super(t, e)
            },
            _setOptionDisabled: function(t) {
                this._super(t),
                this._toggleClass(this.uiSpinner, null, "ui-state-disabled", !!t),
                this.element.prop("disabled", !!t),
                this.buttons.button(t ? "disable" : "enable")
            },
            _setOptions: M(function(t) {
                this._super(t)
            }),
            _parse: function(t) {
                return "string" == typeof t && "" !== t && (t = window.Globalize && this.options.numberFormat ? Globalize.parseFloat(t, 10, this.options.culture) : +t),
                "" === t || isNaN(t) ? null : t
            },
            _format: function(t) {
                return "" === t ? "" : window.Globalize && this.options.numberFormat ? Globalize.format(t, this.options.numberFormat, this.options.culture) : t
            },
            _refresh: function() {
                this.element.attr({
                    "aria-valuemin": this.options.min,
                    "aria-valuemax": this.options.max,
                    "aria-valuenow": this._parse(this.element.val())
                })
            },
            isValid: function() {
                var t = this.value();
                return null !== t && t === this._adjustValue(t)
            },
            _value: function(t, e) {
                var n;
                "" !== t && null !== (n = this._parse(t)) && (e || (n = this._adjustValue(n)),
                t = this._format(n)),
                this.element.val(t),
                this._refresh()
            },
            _destroy: function() {
                this.element.prop("disabled", !1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),
                this.uiSpinner.replaceWith(this.element)
            },
            stepUp: M(function(t) {
                this._stepUp(t)
            }),
            _stepUp: function(t) {
                this._start() && (this._spin((t || 1) * this.options.step),
                this._stop())
            },
            stepDown: M(function(t) {
                this._stepDown(t)
            }),
            _stepDown: function(t) {
                this._start() && (this._spin((t || 1) * -this.options.step),
                this._stop())
            },
            pageUp: M(function(t) {
                this._stepUp((t || 1) * this.options.page)
            }),
            pageDown: M(function(t) {
                this._stepDown((t || 1) * this.options.page)
            }),
            value: function(t) {
                if (!arguments.length)
                    return this._parse(this.element.val());
                M(this._value).call(this, t)
            },
            widget: function() {
                return this.uiSpinner
            }
        }),
        !1 !== z.uiBackCompat && z.widget("ui.spinner", z.ui.spinner, {
            _enhance: function() {
                this.uiSpinner = this.element.attr("autocomplete", "off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())
            },
            _uiSpinnerHtml: function() {
                return "<span>"
            },
            _buttonHtml: function() {
                return "<a></a><a></a>"
            }
        }),
        z.ui.spinner
    };
    "function" == typeof define && define.amd ? define(["jquery"], t) : t(jQuery)
}(),
function(t) {
    "function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof exports ? module.exports = t : t(jQuery)
}(function(f) {
    function e(t) {
        var e, n, i = t || window.event, r = m.call(arguments, 1), o = 0, a = 0, s = 0, c = 0, u = 0;
        if ((t = f.event.fix(i)).type = "mousewheel",
        "detail"in i && (s = -1 * i.detail),
        "wheelDelta"in i && (s = i.wheelDelta),
        "wheelDeltaY"in i && (s = i.wheelDeltaY),
        "wheelDeltaX"in i && (a = -1 * i.wheelDeltaX),
        "axis"in i && i.axis === i.HORIZONTAL_AXIS && (a = -1 * s,
        s = 0),
        o = 0 === s ? a : s,
        "deltaY"in i && (o = s = -1 * i.deltaY),
        "deltaX"in i && (a = i.deltaX,
        0 === s && (o = -1 * a)),
        0 !== s || 0 !== a) {
            1 === i.deltaMode ? (o *= e = f.data(this, "mousewheel-line-height"),
            s *= e,
            a *= e) : 2 === i.deltaMode && (o *= n = f.data(this, "mousewheel-page-height"),
            s *= n,
            a *= n);
            var l, h = Math.max(Math.abs(s), Math.abs(a));
            return b && !(h < b) || d(i, b = h) && (b /= 40),
            d(i, h) && (o /= 40,
            a /= 40,
            s /= 40),
            o = Math[1 <= o ? "floor" : "ceil"](o / b),
            a = Math[1 <= a ? "floor" : "ceil"](a / b),
            s = Math[1 <= s ? "floor" : "ceil"](s / b),
            g.settings.normalizeOffset && this.getBoundingClientRect && (l = this.getBoundingClientRect(),
            c = t.clientX - l.left,
            u = t.clientY - l.top),
            t.deltaX = a,
            t.deltaY = s,
            t.deltaFactor = b,
            t.offsetX = c,
            t.offsetY = u,
            t.deltaMode = 0,
            r.unshift(t, o, a, s),
            M && clearTimeout(M),
            M = setTimeout(p, 200),
            (f.event.dispatch || f.event.handle).apply(this, r)
        }
    }
    function p() {
        b = null
    }
    function d(t, e) {
        return g.settings.adjustOldDeltas && "mousewheel" === t.type && e % 120 == 0
    }
    var M, b, t = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"], n = "onwheel"in document || 9 <= document.documentMode ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"], m = Array.prototype.slice;
    if (f.event.fixHooks)
        for (var i = t.length; i; )
            f.event.fixHooks[t[--i]] = f.event.mouseHooks;
    var g = f.event.special.mousewheel = {
        version: "3.1.12",
        setup: function() {
            if (this.addEventListener)
                for (var t = n.length; t; )
                    this.addEventListener(n[--t], e, !1);
            else
                this.onmousewheel = e;
            f.data(this, "mousewheel-line-height", g.getLineHeight(this)),
            f.data(this, "mousewheel-page-height", g.getPageHeight(this))
        },
        teardown: function() {
            if (this.removeEventListener)
                for (var t = n.length; t; )
                    this.removeEventListener(n[--t], e, !1);
            else
                this.onmousewheel = null;
            f.removeData(this, "mousewheel-line-height"),
            f.removeData(this, "mousewheel-page-height")
        },
        getLineHeight: function(t) {
            var e = f(t)
              , n = e["offsetParent"in f.fn ? "offsetParent" : "parent"]();
            return n.length || (n = f("body")),
            parseInt(n.css("fontSize"), 10) || parseInt(e.css("fontSize"), 10) || 16
        },
        getPageHeight: function(t) {
            return f(t).height()
        },
        settings: {
            adjustOldDeltas: !0,
            normalizeOffset: !0
        }
    };
    f.fn.extend({
        mousewheel: function(t) {
            return t ? this.bind("mousewheel", t) : this.trigger("mousewheel")
        },
        unmousewheel: function(t) {
            return this.unbind("mousewheel", t)
        }
    })
}),
function(t, e) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : t.moment = e()
}(this, function() {
    "use strict";
    function b() {
        return Yt.apply(null, arguments)
    }
    function s(t) {
        return t instanceof Array || "[object Array]" === Object.prototype.toString.call(t)
    }
    function c(t) {
        return null != t && "[object Object]" === Object.prototype.toString.call(t)
    }
    function o(t) {
        return void 0 === t
    }
    function l(t) {
        return "number" == typeof t || "[object Number]" === Object.prototype.toString.call(t)
    }
    function a(t) {
        return t instanceof Date || "[object Date]" === Object.prototype.toString.call(t)
    }
    function u(t, e) {
        for (var n = [], i = 0; i < t.length; ++i)
            n.push(e(t[i], i));
        return n
    }
    function m(t, e) {
        return Object.prototype.hasOwnProperty.call(t, e)
    }
    function h(t, e) {
        for (var n in e)
            m(e, n) && (t[n] = e[n]);
        return m(e, "toString") && (t.toString = e.toString),
        m(e, "valueOf") && (t.valueOf = e.valueOf),
        t
    }
    function f(t, e, n, i) {
        return pt(t, e, n, i, !0).utc()
    }
    function g(t) {
        return null == t._pf && (t._pf = {
            empty: !1,
            unusedTokens: [],
            unusedInput: [],
            overflow: -2,
            charsLeftOver: 0,
            nullInput: !1,
            invalidMonth: null,
            invalidFormat: !1,
            userInvalidated: !1,
            iso: !1,
            parsedDateParts: [],
            meridiem: null,
            rfc2822: !1,
            weekdayMismatch: !1
        }),
        t._pf
    }
    function p(t) {
        if (null == t._isValid) {
            var e = g(t)
              , n = Gt.call(e.parsedDateParts, function(t) {
                return null != t
            })
              , i = !isNaN(t._d.getTime()) && e.overflow < 0 && !e.empty && !e.invalidMonth && !e.invalidWeekday && !e.nullInput && !e.invalidFormat && !e.userInvalidated && (!e.meridiem || e.meridiem && n);
            if (t._strict && (i = i && 0 === e.charsLeftOver && 0 === e.unusedTokens.length && void 0 === e.bigHour),
            null != Object.isFrozen && Object.isFrozen(t))
                return i;
            t._isValid = i
        }
        return t._isValid
    }
    function d(t) {
        var e = f(NaN);
        return null != t ? h(g(e), t) : g(e).userInvalidated = !0,
        e
    }
    function M(t, e) {
        var n, i, r;
        if (o(e._isAMomentObject) || (t._isAMomentObject = e._isAMomentObject),
        o(e._i) || (t._i = e._i),
        o(e._f) || (t._f = e._f),
        o(e._l) || (t._l = e._l),
        o(e._strict) || (t._strict = e._strict),
        o(e._tzm) || (t._tzm = e._tzm),
        o(e._isUTC) || (t._isUTC = e._isUTC),
        o(e._offset) || (t._offset = e._offset),
        o(e._pf) || (t._pf = g(e)),
        o(e._locale) || (t._locale = e._locale),
        0 < Vt.length)
            for (n = 0; n < Vt.length; n++)
                o(r = e[i = Vt[n]]) || (t[i] = r);
        return t
    }
    function v(t) {
        M(this, t),
        this._d = new Date(null != t._d ? t._d.getTime() : NaN),
        this.isValid() || (this._d = new Date(NaN)),
        !1 === Kt && (Kt = !0,
        b.updateOffset(this),
        Kt = !1)
    }
    function A(t) {
        return t instanceof v || null != t && null != t._isAMomentObject
    }
    function y(t) {
        return t < 0 ? Math.ceil(t) || 0 : Math.floor(t)
    }
    function z(t) {
        var e = +t
          , n = 0;
        return 0 != e && isFinite(e) && (n = y(e)),
        n
    }
    function _(t, e, n) {
        for (var i = Math.min(t.length, e.length), r = Math.abs(t.length - e.length), o = 0, a = 0; a < i; a++)
            (n && t[a] !== e[a] || !n && z(t[a]) !== z(e[a])) && o++;
        return o + r
    }
    function t(r, o) {
        var a = !0;
        return h(function() {
            if (null != b.deprecationHandler && b.deprecationHandler(null, r),
            a) {
                for (var t, e = [], n = 0; n < arguments.length; n++) {
                    if (t = "",
                    "object" == typeof arguments[n]) {
                        for (var i in t += "\n[" + n + "] ",
                        arguments[0])
                            t += i + ": " + arguments[0][i] + ", ";
                        t = t.slice(0, -2)
                    } else
                        t = arguments[n];
                    e.push(t)
                }
                Array.prototype.slice.call(e).join(""),
                (new Error).stack,
                a = !1
            }
            return o.apply(this, arguments)
        }, o)
    }
    function O(t, e) {
        null != b.deprecationHandler && b.deprecationHandler(t, e),
        Qt[t] || (Qt[t] = !0)
    }
    function w(t) {
        return t instanceof Function || "[object Function]" === Object.prototype.toString.call(t)
    }
    function r(t, e) {
        var n, i = h({}, t);
        for (n in e)
            m(e, n) && (c(t[n]) && c(e[n]) ? (i[n] = {},
            h(i[n], t[n]),
            h(i[n], e[n])) : null != e[n] ? i[n] = e[n] : delete i[n]);
        for (n in t)
            m(t, n) && !m(e, n) && c(t[n]) && (i[n] = h({}, i[n]));
        return i
    }
    function L(t) {
        null != t && this.set(t)
    }
    function e(t, e) {
        var n = t.toLowerCase();
        Jt[n] = Jt[n + "s"] = Jt[e] = t
    }
    function N(t) {
        return "string" == typeof t ? Jt[t] || Jt[t.toLowerCase()] : void 0
    }
    function q(t) {
        var e, n, i = {};
        for (n in t)
            m(t, n) && ((e = N(n)) && (i[e] = t[n]));
        return i
    }
    function n(t, e) {
        Zt[t] = e
    }
    function i(e, n) {
        return function(t) {
            return null != t ? (T(this, e, t),
            b.updateOffset(this, n),
            this) : W(this, e)
        }
    }
    function W(t, e) {
        return t.isValid() ? t._d["get" + (t._isUTC ? "UTC" : "") + e]() : NaN
    }
    function T(t, e, n) {
        t.isValid() && t._d["set" + (t._isUTC ? "UTC" : "") + e](n)
    }
    function C(t, e, n) {
        var i = "" + Math.abs(t)
          , r = e - i.length;
        return (0 <= t ? n ? "+" : "" : "-") + Math.pow(10, Math.max(0, r)).toString().substr(1) + i
    }
    function x(t, e, n, i) {
        var r = "string" == typeof i ? function() {
            return this[i]()
        }
        : i;
        t && (ie[t] = r),
        e && (ie[e[0]] = function() {
            return C(r.apply(this, arguments), e[1], e[2])
        }
        ),
        n && (ie[n] = function() {
            return this.localeData().ordinal(r.apply(this, arguments), t)
        }
        )
    }
    function k(t, e) {
        return t.isValid() ? (e = S(e, t.localeData()),
        ne[e] = ne[e] || function(i) {
            for (var t, r = i.match(te), e = 0, o = r.length; e < o; e++)
                ie[r[e]] ? r[e] = ie[r[e]] : r[e] = (t = r[e]).match(/\[[\s\S]/) ? t.replace(/^\[|\]$/g, "") : t.replace(/\\/g, "");
            return function(t) {
                for (var e = "", n = 0; n < o; n++)
                    e += w(r[n]) ? r[n].call(t, i) : r[n];
                return e
            }
        }(e),
        ne[e](t)) : t.localeData().invalidDate()
    }
    function S(t, e) {
        function n(t) {
            return e.longDateFormat(t) || t
        }
        var i = 5;
        for (ee.lastIndex = 0; 0 <= i && ee.test(t); )
            t = t.replace(ee, n),
            ee.lastIndex = 0,
            --i;
        return t
    }
    function B(t, n, i) {
        Ae[t] = w(n) ? n : function(t, e) {
            return t && i ? i : n
        }
    }
    function E(t, e) {
        return m(Ae, t) ? Ae[t](e._strict, e._locale) : new RegExp(X(t.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function(t, e, n, i, r) {
            return e || n || i || r
        })))
    }
    function X(t) {
        return t.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&")
    }
    function D(t, n) {
        var e, i = n;
        for ("string" == typeof t && (t = [t]),
        l(n) && (i = function(t, e) {
            e[n] = z(t)
        }
        ),
        e = 0; e < t.length; e++)
            ye[t[e]] = i
    }
    function R(t, r) {
        D(t, function(t, e, n, i) {
            n._w = n._w || {},
            r(t, n._w, n, i)
        })
    }
    function P(t, e) {
        return new Date(Date.UTC(t, e + 1, 0)).getUTCDate()
    }
    function I(t, e) {
        var n;
        if (!t.isValid())
            return t;
        if ("string" == typeof e)
            if (/^\d+$/.test(e))
                e = z(e);
            else if (!l(e = t.localeData().monthsParse(e)))
                return t;
        return n = Math.min(t.date(), P(t.year(), e)),
        t._d["set" + (t._isUTC ? "UTC" : "") + "Month"](e, n),
        t
    }
    function j(t) {
        return null != t ? (I(this, t),
        b.updateOffset(this, !0),
        this) : W(this, "Month")
    }
    function H() {
        function t(t, e) {
            return e.length - t.length
        }
        for (var e, n = [], i = [], r = [], o = 0; o < 12; o++)
            e = f([2e3, o]),
            n.push(this.monthsShort(e, "")),
            i.push(this.months(e, "")),
            r.push(this.months(e, "")),
            r.push(this.monthsShort(e, ""));
        for (n.sort(t),
        i.sort(t),
        r.sort(t),
        o = 0; o < 12; o++)
            n[o] = X(n[o]),
            i[o] = X(i[o]);
        for (o = 0; o < 24; o++)
            r[o] = X(r[o]);
        this._monthsRegex = new RegExp("^(" + r.join("|") + ")","i"),
        this._monthsShortRegex = this._monthsRegex,
        this._monthsStrictRegex = new RegExp("^(" + i.join("|") + ")","i"),
        this._monthsShortStrictRegex = new RegExp("^(" + n.join("|") + ")","i")
    }
    function F(t) {
        return U(t) ? 366 : 365
    }
    function U(t) {
        return t % 4 == 0 && t % 100 != 0 || t % 400 == 0
    }
    function Y(t) {
        var e = new Date(Date.UTC.apply(null, arguments));
        return t < 100 && 0 <= t && isFinite(e.getUTCFullYear()) && e.setUTCFullYear(t),
        e
    }
    function G(t, e, n) {
        var i = 7 + e - n;
        return i - (7 + Y(t, 0, i).getUTCDay() - e) % 7 - 1
    }
    function V(t, e, n, i, r) {
        var o, a = 1 + 7 * (e - 1) + (7 + n - i) % 7 + G(t, i, r), s = a <= 0 ? F(o = t - 1) + a : a > F(t) ? (o = t + 1,
        a - F(t)) : (o = t,
        a);
        return {
            year: o,
            dayOfYear: s
        }
    }
    function K(t, e, n) {
        var i, r, o = G(t.year(), e, n), a = Math.floor((t.dayOfYear() - o - 1) / 7) + 1;
        return a < 1 ? i = a + Q(r = t.year() - 1, e, n) : a > Q(t.year(), e, n) ? (i = a - Q(t.year(), e, n),
        r = t.year() + 1) : (r = t.year(),
        i = a),
        {
            week: i,
            year: r
        }
    }
    function Q(t, e, n) {
        var i = G(t, e, n)
          , r = G(t + 1, e, n);
        return (F(t) - i + r) / 7
    }
    function $() {
        function t(t, e) {
            return e.length - t.length
        }
        for (var e, n, i, r, o = [], a = [], s = [], c = [], u = 0; u < 7; u++)
            e = f([2e3, 1]).day(u),
            n = this.weekdaysMin(e, ""),
            i = this.weekdaysShort(e, ""),
            r = this.weekdays(e, ""),
            o.push(n),
            a.push(i),
            s.push(r),
            c.push(n),
            c.push(i),
            c.push(r);
        for (o.sort(t),
        a.sort(t),
        s.sort(t),
        c.sort(t),
        u = 0; u < 7; u++)
            a[u] = X(a[u]),
            s[u] = X(s[u]),
            c[u] = X(c[u]);
        this._weekdaysRegex = new RegExp("^(" + c.join("|") + ")","i"),
        this._weekdaysShortRegex = this._weekdaysRegex,
        this._weekdaysMinRegex = this._weekdaysRegex,
        this._weekdaysStrictRegex = new RegExp("^(" + s.join("|") + ")","i"),
        this._weekdaysShortStrictRegex = new RegExp("^(" + a.join("|") + ")","i"),
        this._weekdaysMinStrictRegex = new RegExp("^(" + o.join("|") + ")","i")
    }
    function J() {
        return this.hours() % 12 || 12
    }
    function Z(t, e) {
        x(t, 0, 0, function() {
            return this.localeData().meridiem(this.hours(), this.minutes(), e)
        })
    }
    function tt(t, e) {
        return e._meridiemParse
    }
    function et(t) {
        return t ? t.toLowerCase().replace("_", "-") : t
    }
    function nt(t) {
        var e;
        if (!Ge[t] && "undefined" != typeof module && module && module.exports)
            try {
                e = Fe._abbr,
                require("./locale/" + t),
                it(e)
            } catch (t) {}
        return Ge[t]
    }
    function it(t, e) {
        var n;
        return t && ((n = o(e) ? ot(t) : rt(t, e)) && (Fe = n)),
        Fe._abbr
    }
    function rt(t, e) {
        if (null === e)
            return delete Ge[t],
            null;
        var n = Ye;
        if (e.abbr = t,
        null != Ge[t])
            O("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),
            n = Ge[t]._config;
        else if (null != e.parentLocale) {
            if (null == Ge[e.parentLocale])
                return Ve[e.parentLocale] || (Ve[e.parentLocale] = []),
                Ve[e.parentLocale].push({
                    name: t,
                    config: e
                }),
                null;
            n = Ge[e.parentLocale]._config
        }
        return Ge[t] = new L(r(n, e)),
        Ve[t] && Ve[t].forEach(function(t) {
            rt(t.name, t.config)
        }),
        it(t),
        Ge[t]
    }
    function ot(t) {
        var e;
        if (t && t._locale && t._locale._abbr && (t = t._locale._abbr),
        !t)
            return Fe;
        if (!s(t)) {
            if (e = nt(t))
                return e;
            t = [t]
        }
        return function(t) {
            for (var e, n, i, r, o = 0; o < t.length; ) {
                for (e = (r = et(t[o]).split("-")).length,
                n = (n = et(t[o + 1])) ? n.split("-") : null; 0 < e; ) {
                    if (i = nt(r.slice(0, e).join("-")))
                        return i;
                    if (n && n.length >= e && _(r, n, !0) >= e - 1)
                        break;
                    e--
                }
                o++
            }
            return null
        }(t)
    }
    function at(t) {
        var e, n = t._a;
        return n && -2 === g(t).overflow && (e = n[_e] < 0 || 11 < n[_e] ? _e : n[Oe] < 1 || n[Oe] > P(n[ze], n[_e]) ? Oe : n[we] < 0 || 24 < n[we] || 24 === n[we] && (0 !== n[Le] || 0 !== n[Ne] || 0 !== n[qe]) ? we : n[Le] < 0 || 59 < n[Le] ? Le : n[Ne] < 0 || 59 < n[Ne] ? Ne : n[qe] < 0 || 999 < n[qe] ? qe : -1,
        g(t)._overflowDayOfYear && (e < ze || Oe < e) && (e = Oe),
        g(t)._overflowWeeks && -1 === e && (e = We),
        g(t)._overflowWeekday && -1 === e && (e = Te),
        g(t).overflow = e),
        t
    }
    function st(t) {
        var e, n, i, r, o, a, s = t._i, c = Ke.exec(s) || Qe.exec(s);
        if (c) {
            for (g(t).iso = !0,
            e = 0,
            n = Je.length; e < n; e++)
                if (Je[e][1].exec(c[1])) {
                    r = Je[e][0],
                    i = !1 !== Je[e][2];
                    break
                }
            if (null == r)
                return void (t._isValid = !1);
            if (c[3]) {
                for (e = 0,
                n = Ze.length; e < n; e++)
                    if (Ze[e][1].exec(c[3])) {
                        o = (c[2] || " ") + Ze[e][0];
                        break
                    }
                if (null == o)
                    return void (t._isValid = !1)
            }
            if (!i && null != o)
                return void (t._isValid = !1);
            if (c[4]) {
                if (!$e.exec(c[4]))
                    return void (t._isValid = !1);
                a = "Z"
            }
            t._f = r + (o || "") + (a || ""),
            ht(t)
        } else
            t._isValid = !1
    }
    function ct(t) {
        var e, n, i, r, o, a, s = {
            " GMT": " +0000",
            " EDT": " -0400",
            " EST": " -0500",
            " CDT": " -0500",
            " CST": " -0600",
            " MDT": " -0600",
            " MST": " -0700",
            " PDT": " -0700",
            " PST": " -0800"
        }, c = t._i.replace(/\([^\)]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s|\s$/g, "");
        if (e = en.exec(c)) {
            if (n = e[1] ? "ddd" + (5 === e[1].length ? ", " : " ") : "",
            i = "D MMM " + (10 < e[2].length ? "YYYY " : "YY "),
            r = "HH:mm" + (e[4] ? ":ss" : ""),
            e[1]) {
                var u = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][new Date(e[2]).getDay()];
                if (e[1].substr(0, 3) !== u)
                    return g(t).weekdayMismatch = !0,
                    void (t._isValid = !1)
            }
            switch (e[5].length) {
            case 2:
                o = 0 === a ? " +0000" : ((a = "YXWVUTSRQPONZABCDEFGHIKLM".indexOf(e[5][1].toUpperCase()) - 12) < 0 ? " -" : " +") + ("" + a).replace(/^-?/, "0").match(/..$/)[0] + "00";
                break;
            case 4:
                o = s[e[5]];
                break;
            default:
                o = s[" GMT"]
            }
            e[5] = o,
            t._i = e.splice(1).join(""),
            t._f = n + i + r + " ZZ",
            ht(t),
            g(t).rfc2822 = !0
        } else
            t._isValid = !1
    }
    function ut(t, e, n) {
        return null != t ? t : null != e ? e : n
    }
    function lt(t) {
        var e, n, i, r, o, a, s = [];
        if (!t._d) {
            for (o = t,
            a = new Date(b.now()),
            i = o._useUTC ? [a.getUTCFullYear(), a.getUTCMonth(), a.getUTCDate()] : [a.getFullYear(), a.getMonth(), a.getDate()],
            t._w && null == t._a[Oe] && null == t._a[_e] && function(t) {
                var e, n, i, r, o, a, s, c;
                {
                    var u;
                    null != (e = t._w).GG || null != e.W || null != e.E ? (o = 1,
                    a = 4,
                    n = ut(e.GG, t._a[ze], K(dt(), 1, 4).year),
                    i = ut(e.W, 1),
                    ((r = ut(e.E, 1)) < 1 || 7 < r) && (c = !0)) : (o = t._locale._week.dow,
                    a = t._locale._week.doy,
                    u = K(dt(), o, a),
                    n = ut(e.gg, t._a[ze], u.year),
                    i = ut(e.w, u.week),
                    null != e.d ? ((r = e.d) < 0 || 6 < r) && (c = !0) : null != e.e ? (r = e.e + o,
                    (e.e < 0 || 6 < e.e) && (c = !0)) : r = o)
                }
                i < 1 || i > Q(n, o, a) ? g(t)._overflowWeeks = !0 : null != c ? g(t)._overflowWeekday = !0 : (s = V(n, i, r, o, a),
                t._a[ze] = s.year,
                t._dayOfYear = s.dayOfYear)
            }(t),
            null != t._dayOfYear && (r = ut(t._a[ze], i[ze]),
            (t._dayOfYear > F(r) || 0 === t._dayOfYear) && (g(t)._overflowDayOfYear = !0),
            n = Y(r, 0, t._dayOfYear),
            t._a[_e] = n.getUTCMonth(),
            t._a[Oe] = n.getUTCDate()),
            e = 0; e < 3 && null == t._a[e]; ++e)
                t._a[e] = s[e] = i[e];
            for (; e < 7; e++)
                t._a[e] = s[e] = null == t._a[e] ? 2 === e ? 1 : 0 : t._a[e];
            24 === t._a[we] && 0 === t._a[Le] && 0 === t._a[Ne] && 0 === t._a[qe] && (t._nextDay = !0,
            t._a[we] = 0),
            t._d = (t._useUTC ? Y : function(t, e, n, i, r, o, a) {
                var s = new Date(t,e,n,i,r,o,a);
                return t < 100 && 0 <= t && isFinite(s.getFullYear()) && s.setFullYear(t),
                s
            }
            ).apply(null, s),
            null != t._tzm && t._d.setUTCMinutes(t._d.getUTCMinutes() - t._tzm),
            t._nextDay && (t._a[we] = 24)
        }
    }
    function ht(t) {
        if (t._f === b.ISO_8601)
            return st(t),
            0;
        if (t._f === b.RFC_2822)
            return ct(t),
            0;
        t._a = [],
        g(t).empty = !0;
        for (var e, n, i, r, o, a, s, c, u, l, h = "" + t._i, f = h.length, p = 0, d = S(t._f, t._locale).match(te) || [], M = 0; M < d.length; M++)
            n = d[M],
            (e = (h.match(E(n, t)) || [])[0]) && (0 < (i = h.substr(0, h.indexOf(e))).length && g(t).unusedInput.push(i),
            h = h.slice(h.indexOf(e) + e.length),
            p += e.length),
            ie[n] ? (e ? g(t).empty = !1 : g(t).unusedTokens.push(n),
            r = n,
            a = t,
            null != (o = e) && m(ye, r) && ye[r](o, a._a, a, r)) : t._strict && !e && g(t).unusedTokens.push(n);
        g(t).charsLeftOver = f - p,
        0 < h.length && g(t).unusedInput.push(h),
        t._a[we] <= 12 && !0 === g(t).bigHour && 0 < t._a[we] && (g(t).bigHour = void 0),
        g(t).parsedDateParts = t._a.slice(0),
        g(t).meridiem = t._meridiem,
        t._a[we] = (s = t._locale,
        c = t._a[we],
        null == (u = t._meridiem) ? c : null != s.meridiemHour ? s.meridiemHour(c, u) : (null != s.isPM && ((l = s.isPM(u)) && c < 12 && (c += 12),
        l || 12 !== c || (c = 0)),
        c)),
        lt(t),
        at(t)
    }
    function ft(t) {
        var e, n, i = t._i, r = t._f;
        return t._locale = t._locale || ot(t._l),
        null === i || void 0 === r && "" === i ? d({
            nullInput: !0
        }) : ("string" == typeof i && (t._i = i = t._locale.preparse(i)),
        A(i) ? new v(at(i)) : (a(i) ? t._d = i : s(r) ? function(t) {
            var e, n, i, r, o;
            if (0 === t._f.length)
                return g(t).invalidFormat = !0,
                t._d = new Date(NaN);
            for (r = 0; r < t._f.length; r++)
                o = 0,
                e = M({}, t),
                null != t._useUTC && (e._useUTC = t._useUTC),
                e._f = t._f[r],
                ht(e),
                p(e) && (o += g(e).charsLeftOver,
                o += 10 * g(e).unusedTokens.length,
                g(e).score = o,
                (null == i || o < i) && (i = o,
                n = e));
            h(t, n || e)
        }(t) : r ? ht(t) : o(n = (e = t)._i) ? e._d = new Date(b.now()) : a(n) ? e._d = new Date(n.valueOf()) : "string" == typeof n ? function(t) {
            var e = tn.exec(t._i);
            null !== e ? t._d = new Date(+e[1]) : (st(t),
            !1 === t._isValid && (delete t._isValid,
            ct(t),
            !1 === t._isValid && (delete t._isValid,
            b.createFromInputFallback(t))))
        }(e) : s(n) ? (e._a = u(n.slice(0), function(t) {
            return parseInt(t, 10)
        }),
        lt(e)) : c(n) ? function(t) {
            var e;
            t._d || (e = q(t._i),
            t._a = u([e.year, e.month, e.day || e.date, e.hour, e.minute, e.second, e.millisecond], function(t) {
                return t && parseInt(t, 10)
            }),
            lt(t))
        }(e) : l(n) ? e._d = new Date(n) : b.createFromInputFallback(e),
        p(t) || (t._d = null),
        t))
    }
    function pt(t, e, n, i, r) {
        var o, a = {};
        return !0 !== n && !1 !== n || (i = n,
        n = void 0),
        (c(t) && function(t) {
            var e;
            for (e in t)
                return;
            return 1
        }(t) || s(t) && 0 === t.length) && (t = void 0),
        a._isAMomentObject = !0,
        a._useUTC = a._isUTC = r,
        a._l = n,
        a._i = t,
        a._f = e,
        a._strict = i,
        (o = new v(at(ft(a))))._nextDay && (o.add(1, "d"),
        o._nextDay = void 0),
        o
    }
    function dt(t, e, n, i) {
        return pt(t, e, n, i, !1)
    }
    function Mt(t, e) {
        var n, i;
        if (1 === e.length && s(e[0]) && (e = e[0]),
        !e.length)
            return dt();
        for (n = e[0],
        i = 1; i < e.length; ++i)
            e[i].isValid() && !e[i][t](n) || (n = e[i]);
        return n
    }
    function bt(t) {
        var e = q(t)
          , n = e.year || 0
          , i = e.quarter || 0
          , r = e.month || 0
          , o = e.week || 0
          , a = e.day || 0
          , s = e.hour || 0
          , c = e.minute || 0
          , u = e.second || 0
          , l = e.millisecond || 0;
        this._isValid = function(t) {
            for (var e in t)
                if (-1 === on.indexOf(e) || null != t[e] && isNaN(t[e]))
                    return !1;
            for (var n = !1, i = 0; i < on.length; ++i)
                if (t[on[i]]) {
                    if (n)
                        return !1;
                    parseFloat(t[on[i]]) !== z(t[on[i]]) && (n = !0)
                }
            return !0
        }(e),
        this._milliseconds = +l + 1e3 * u + 6e4 * c + 1e3 * s * 60 * 60,
        this._days = +a + 7 * o,
        this._months = +r + 3 * i + 12 * n,
        this._data = {},
        this._locale = ot(),
        this._bubble()
    }
    function mt(t) {
        return t instanceof bt
    }
    function gt(t) {
        return t < 0 ? -1 * Math.round(-1 * t) : Math.round(t)
    }
    function vt(t, n) {
        x(t, 0, 0, function() {
            var t = this.utcOffset()
              , e = "+";
            return t < 0 && (t = -t,
            e = "-"),
            e + C(~~(t / 60), 2) + n + C(~~t % 60, 2)
        })
    }
    function At(t, e) {
        var n = (e || "").match(t);
        if (null === n)
            return null;
        var i = ((n[n.length - 1] || []) + "").match(an) || ["-", 0, 0]
          , r = 60 * i[1] + z(i[2]);
        return 0 === r ? 0 : "+" === i[0] ? r : -r
    }
    function yt(t, e) {
        var n, i;
        return e._isUTC ? (n = e.clone(),
        i = (A(t) || a(t) ? t.valueOf() : dt(t).valueOf()) - n.valueOf(),
        n._d.setTime(n._d.valueOf() + i),
        b.updateOffset(n, !1),
        n) : dt(t).local()
    }
    function zt(t) {
        return 15 * -Math.round(t._d.getTimezoneOffset() / 15)
    }
    function _t() {
        return !!this.isValid() && this._isUTC && 0 === this._offset
    }
    function Ot(t, e) {
        var n, i, r, o, a, s, c = t, u = null;
        return mt(t) ? c = {
            ms: t._milliseconds,
            d: t._days,
            M: t._months
        } : l(t) ? (c = {},
        e ? c[e] = t : c.milliseconds = t) : (u = sn.exec(t)) ? (n = "-" === u[1] ? -1 : 1,
        c = {
            y: 0,
            d: z(u[Oe]) * n,
            h: z(u[we]) * n,
            m: z(u[Le]) * n,
            s: z(u[Ne]) * n,
            ms: z(gt(1e3 * u[qe])) * n
        }) : (u = cn.exec(t)) ? (n = "-" === u[1] ? -1 : 1,
        c = {
            y: wt(u[2], n),
            M: wt(u[3], n),
            w: wt(u[4], n),
            d: wt(u[5], n),
            h: wt(u[6], n),
            m: wt(u[7], n),
            s: wt(u[8], n)
        }) : null == c ? c = {} : "object" == typeof c && ("from"in c || "to"in c) && (o = dt(c.from),
        a = dt(c.to),
        r = o.isValid() && a.isValid() ? (a = yt(a, o),
        o.isBefore(a) ? s = Lt(o, a) : ((s = Lt(a, o)).milliseconds = -s.milliseconds,
        s.months = -s.months),
        s) : {
            milliseconds: 0,
            months: 0
        },
        (c = {}).ms = r.milliseconds,
        c.M = r.months),
        i = new bt(c),
        mt(t) && m(t, "_locale") && (i._locale = t._locale),
        i
    }
    function wt(t, e) {
        var n = t && parseFloat(t.replace(",", "."));
        return (isNaN(n) ? 0 : n) * e
    }
    function Lt(t, e) {
        var n = {
            milliseconds: 0,
            months: 0
        };
        return n.months = e.month() - t.month() + 12 * (e.year() - t.year()),
        t.clone().add(n.months, "M").isAfter(e) && --n.months,
        n.milliseconds = e - t.clone().add(n.months, "M"),
        n
    }
    function Nt(i, r) {
        return function(t, e) {
            var n;
            return null === e || isNaN(+e) || (O(r, "moment()." + r + "(period, number) is deprecated. Please use moment()." + r + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),
            n = t,
            t = e,
            e = n),
            qt(this, Ot(t = "string" == typeof t ? +t : t, e), i),
            this
        }
    }
    function qt(t, e, n, i) {
        var r = e._milliseconds
          , o = gt(e._days)
          , a = gt(e._months);
        t.isValid() && (i = null == i || i,
        r && t._d.setTime(t._d.valueOf() + r * n),
        o && T(t, "Date", W(t, "Date") + o * n),
        a && I(t, W(t, "Month") + a * n),
        i && b.updateOffset(t, o || a))
    }
    function Wt(t) {
        var e;
        return void 0 === t ? this._locale._abbr : (null != (e = ot(t)) && (this._locale = e),
        this)
    }
    function Tt() {
        return this._locale
    }
    function Ct(t, e) {
        x(0, [t, t.length], 0, e)
    }
    function xt(t, e, n, i, r) {
        var o;
        return null == t ? K(this, i, r).year : ((o = Q(t, i, r)) < e && (e = o),
        function(t, e, n, i, r) {
            var o = V(t, e, n, i, r)
              , a = Y(o.year, 0, o.dayOfYear);
            return this.year(a.getUTCFullYear()),
            this.month(a.getUTCMonth()),
            this.date(a.getUTCDate()),
            this
        }
        .call(this, t, e, n, i, r))
    }
    function kt(t, e) {
        alert()
        e[qe] = z(1e3 * ("0." + t))
    }
    function St(t) {
        return t
    }
    function Bt(t, e, n, i) {
        var r = ot()
          , o = f().set(i, e);
        return r[n](o, t)
    }
    function Et(t, e, n) {
        if (l(t) && (e = t,
        t = void 0),
        t = t || "",
        null != e)
            return Bt(t, e, n, "month");
        for (var i = [], r = 0; r < 12; r++)
            i[r] = Bt(t, r, n, "month");
        return i
    }
    function Xt(t, e, n, i) {
        e = ("boolean" == typeof t || (n = e = t,
        t = !1),
        l(e) && (n = e,
        e = void 0),
        e || "");
        var r = ot()
          , o = t ? r._week.dow : 0;
        if (null != n)
            return Bt(e, (n + o) % 7, i, "day");
        for (var a = [], s = 0; s < 7; s++)
            a[s] = Bt(e, (s + o) % 7, i, "day");
        return a
    }
    function Dt(t, e, n, i) {
        var r = Ot(e, n);
        return t._milliseconds += i * r._milliseconds,
        t._days += i * r._days,
        t._months += i * r._months,
        t._bubble()
    }
    function Rt(t) {
        return t < 0 ? Math.floor(t) : Math.ceil(t)
    }
    function Pt(t) {
        return 4800 * t / 146097
    }
    function It(t) {
        return 146097 * t / 4800
    }
    function jt(t) {
        return function() {
            return this.as(t)
        }
    }
    function Ht(t) {
        return function() {
            return this.isValid() ? this._data[t] : NaN
        }
    }
    function Ft(t, e, n) {
        var i = Ot(t).abs()
          , r = Bn(i.as("s"))
          , o = Bn(i.as("m"))
          , a = Bn(i.as("h"))
          , s = Bn(i.as("d"))
          , c = Bn(i.as("M"))
          , u = Bn(i.as("y"))
          , l = (r <= En.ss ? ["s", r] : r < En.s && ["ss", r]) || o <= 1 && ["m"] || o < En.m && ["mm", o] || a <= 1 && ["h"] || a < En.h && ["hh", a] || s <= 1 && ["d"] || s < En.d && ["dd", s] || c <= 1 && ["M"] || c < En.M && ["MM", c] || u <= 1 && ["y"] || ["yy", u];
        return l[2] = e,
        l[3] = 0 < +t,
        l[4] = n,
        function(t, e, n, i, r) {
            return r.relativeTime(e || 1, !!n, t, i)
        }
        .apply(null, l)
    }
    function Ut() {
        if (!this.isValid())
            return this.localeData().invalidDate();
        var t = Xn(this._milliseconds) / 1e3
          , e = Xn(this._days)
          , n = Xn(this._months)
          , i = y(t / 60)
          , r = y(i / 60);
        t %= 60,
        i %= 60;
        var o = y(n / 12)
          , a = n %= 12
          , s = e
          , c = r
          , u = i
          , l = t
          , h = this.asSeconds();
        return h ? (h < 0 ? "-" : "") + "P" + (o ? o + "Y" : "") + (a ? a + "M" : "") + (s ? s + "D" : "") + (c || u || l ? "T" : "") + (c ? c + "H" : "") + (u ? u + "M" : "") + (l ? l + "S" : "") : "P0D"
    }
    var Yt, Gt = Array.prototype.some ? Array.prototype.some : function(t) {
        for (var e = Object(this), n = e.length >>> 0, i = 0; i < n; i++)
            if (i in e && t.call(this, e[i], i, e))
                return !0;
        return !1
    }
    , Vt = b.momentProperties = [], Kt = !1, Qt = {};
    b.suppressDeprecationWarnings = !1,
    b.deprecationHandler = null;
    var $t = Object.keys ? Object.keys : function(t) {
        var e, n = [];
        for (e in t)
            m(t, e) && n.push(e);
        return n
    }
      , Jt = {}
      , Zt = {}
      , te = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g
      , ee = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g
      , ne = {}
      , ie = {}
      , re = /\d/
      , oe = /\d\d/
      , ae = /\d{3}/
      , se = /\d{4}/
      , ce = /[+-]?\d{6}/
      , ue = /\d\d?/
      , le = /\d\d\d\d?/
      , he = /\d\d\d\d\d\d?/
      , fe = /\d{1,3}/
      , pe = /\d{1,4}/
      , de = /[+-]?\d{1,6}/
      , Me = /\d+/
      , be = /[+-]?\d+/
      , me = /Z|[+-]\d\d:?\d\d/gi
      , ge = /Z|[+-]\d\d(?::?\d\d)?/gi
      , ve = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i
      , Ae = {}
      , ye = {}
      , ze = 0
      , _e = 1
      , Oe = 2
      , we = 3
      , Le = 4
      , Ne = 5
      , qe = 6
      , We = 7
      , Te = 8
      , Ce = Array.prototype.indexOf ? Array.prototype.indexOf : function(t) {
        for (var e = 0; e < this.length; ++e)
            if (this[e] === t)
                return e;
        return -1
    }
    ;
    x("M", ["MM", 2], "Mo", function() {
        return this.month() + 1
    }),
    x("MMM", 0, 0, function(t) {
        return this.localeData().monthsShort(this, t)
    }),
    x("MMMM", 0, 0, function(t) {
        return this.localeData().months(this, t)
    }),
    e("month", "M"),
    n("month", 8),
    B("M", ue),
    B("MM", ue, oe),
    B("MMM", function(t, e) {
        return e.monthsShortRegex(t)
    }),
    B("MMMM", function(t, e) {
        return e.monthsRegex(t)
    }),
    D(["M", "MM"], function(t, e) {
        e[_e] = z(t) - 1
    }),
    D(["MMM", "MMMM"], function(t, e, n, i) {
        var r = n._locale.monthsParse(t, i, n._strict);
        null != r ? e[_e] = r : g(n).invalidMonth = t
    });
    var xe = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/
      , ke = "January_February_March_April_May_June_July_August_September_October_November_December".split("_")
      , Se = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_")
      , Be = ve
      , Ee = ve;
    x("Y", 0, 0, function() {
        var t = this.year();
        return t <= 9999 ? "" + t : "+" + t
    }),
    x(0, ["YY", 2], 0, function() {
        return this.year() % 100
    }),
    x(0, ["YYYY", 4], 0, "year"),
    x(0, ["YYYYY", 5], 0, "year"),
    x(0, ["YYYYYY", 6, !0], 0, "year"),
    e("year", "y"),
    n("year", 1),
    B("Y", be),
    B("YY", ue, oe),
    B("YYYY", pe, se),
    B("YYYYY", de, ce),
    B("YYYYYY", de, ce),
    D(["YYYYY", "YYYYYY"], ze),
    D("YYYY", function(t, e) {
        e[ze] = 2 === t.length ? b.parseTwoDigitYear(t) : z(t)
    }),
    D("YY", function(t, e) {
        e[ze] = b.parseTwoDigitYear(t)
    }),
    D("Y", function(t, e) {
        e[ze] = parseInt(t, 10)
    }),
    b.parseTwoDigitYear = function(t) {
        return z(t) + (68 < z(t) ? 1900 : 2e3)
    }
    ;
    var Xe = i("FullYear", !0);
    x("w", ["ww", 2], "wo", "week"),
    x("W", ["WW", 2], "Wo", "isoWeek"),
    e("week", "w"),
    e("isoWeek", "W"),
    n("week", 5),
    n("isoWeek", 5),
    B("w", ue),
    B("ww", ue, oe),
    B("W", ue),
    B("WW", ue, oe),
    R(["w", "ww", "W", "WW"], function(t, e, n, i) {
        e[i.substr(0, 1)] = z(t)
    });
    x("d", 0, "do", "day"),
    x("dd", 0, 0, function(t) {
        return this.localeData().weekdaysMin(this, t)
    }),
    x("ddd", 0, 0, function(t) {
        return this.localeData().weekdaysShort(this, t)
    }),
    x("dddd", 0, 0, function(t) {
        return this.localeData().weekdays(this, t)
    }),
    x("e", 0, 0, "weekday"),
    x("E", 0, 0, "isoWeekday"),
    e("day", "d"),
    e("weekday", "e"),
    e("isoWeekday", "E"),
    n("day", 11),
    n("weekday", 11),
    n("isoWeekday", 11),
    B("d", ue),
    B("e", ue),
    B("E", ue),
    B("dd", function(t, e) {
        return e.weekdaysMinRegex(t)
    }),
    B("ddd", function(t, e) {
        return e.weekdaysShortRegex(t)
    }),
    B("dddd", function(t, e) {
        return e.weekdaysRegex(t)
    }),
    R(["dd", "ddd", "dddd"], function(t, e, n, i) {
        var r = n._locale.weekdaysParse(t, i, n._strict);
        null != r ? e.d = r : g(n).invalidWeekday = t
    }),
    R(["d", "e", "E"], function(t, e, n, i) {
        e[i] = z(t)
    });
    var De = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_")
      , Re = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_")
      , Pe = "Su_Mo_Tu_We_Th_Fr_Sa".split("_")
      , Ie = ve
      , je = ve
      , He = ve;
    x("H", ["HH", 2], 0, "hour"),
    x("h", ["hh", 2], 0, J),
    x("k", ["kk", 2], 0, function() {
        return this.hours() || 24
    }),
    x("hmm", 0, 0, function() {
        return "" + J.apply(this) + C(this.minutes(), 2)
    }),
    x("hmmss", 0, 0, function() {
        return "" + J.apply(this) + C(this.minutes(), 2) + C(this.seconds(), 2)
    }),
    x("Hmm", 0, 0, function() {
        return "" + this.hours() + C(this.minutes(), 2)
    }),
    x("Hmmss", 0, 0, function() {
        return "" + this.hours() + C(this.minutes(), 2) + C(this.seconds(), 2)
    }),
    Z("a", !0),
    Z("A", !1),
    e("hour", "h"),
    n("hour", 13),
    B("a", tt),
    B("A", tt),
    B("H", ue),
    B("h", ue),
    B("k", ue),
    B("HH", ue, oe),
    B("hh", ue, oe),
    B("kk", ue, oe),
    B("hmm", le),
    B("hmmss", he),
    B("Hmm", le),
    B("Hmmss", he),
    D(["H", "HH"], we),
    D(["k", "kk"], function(t, e, n) {
        var i = z(t);
        e[we] = 24 === i ? 0 : i
    }),
    D(["a", "A"], function(t, e, n) {
        n._isPm = n._locale.isPM(t),
        n._meridiem = t
    }),
    D(["h", "hh"], function(t, e, n) {
        e[we] = z(t),
        g(n).bigHour = !0
    }),
    D("hmm", function(t, e, n) {
        var i = t.length - 2;
        e[we] = z(t.substr(0, i)),
        e[Le] = z(t.substr(i)),
        g(n).bigHour = !0
    }),
    D("hmmss", function(t, e, n) {
        var i = t.length - 4
          , r = t.length - 2;
        e[we] = z(t.substr(0, i)),
        e[Le] = z(t.substr(i, 2)),
        e[Ne] = z(t.substr(r)),
        g(n).bigHour = !0
    }),
    D("Hmm", function(t, e, n) {
        var i = t.length - 2;
        e[we] = z(t.substr(0, i)),
        e[Le] = z(t.substr(i))
    }),
    D("Hmmss", function(t, e, n) {
        var i = t.length - 4
          , r = t.length - 2;
        e[we] = z(t.substr(0, i)),
        e[Le] = z(t.substr(i, 2)),
        e[Ne] = z(t.substr(r))
    });
    var Fe, Ue = i("Hours", !0), Ye = {
        calendar: {
            sameDay: "[Today at] LT",
            nextDay: "[Tomorrow at] LT",
            nextWeek: "dddd [at] LT",
            lastDay: "[Yesterday at] LT",
            lastWeek: "[Last] dddd [at] LT",
            sameElse: "L"
        },
        longDateFormat: {
            LTS: "h:mm:ss A",
            LT: "h:mm A",
            L: "MM/DD/YYYY",
            LL: "MMMM D, YYYY",
            LLL: "MMMM D, YYYY h:mm A",
            LLLL: "dddd, MMMM D, YYYY h:mm A"
        },
        invalidDate: "Invalid date",
        ordinal: "%d",
        dayOfMonthOrdinalParse: /\d{1,2}/,
        relativeTime: {
            future: "in %s",
            past: "%s ago",
            s: "a few seconds",
            ss: "%d 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"
        },
        months: ke,
        monthsShort: Se,
        week: {
            dow: 0,
            doy: 6
        },
        weekdays: De,
        weekdaysMin: Pe,
        weekdaysShort: Re,
        meridiemParse: /[ap]\.?m?\.?/i
    }, Ge = {}, Ve = {}, Ke = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, Qe = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, $e = /Z|[+-]\d\d(?::?\d\d)?/, Je = [["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], ["GGGG-[W]WW", /\d{4}-W\d\d/, !1], ["YYYY-DDD", /\d{4}-\d{3}/], ["YYYY-MM", /\d{4}-\d\d/, !1], ["YYYYYYMMDD", /[+-]\d{10}/], ["YYYYMMDD", /\d{8}/], ["GGGG[W]WWE", /\d{4}W\d{3}/], ["GGGG[W]WW", /\d{4}W\d{2}/, !1], ["YYYYDDD", /\d{7}/]], Ze = [["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], ["HH:mm:ss", /\d\d:\d\d:\d\d/], ["HH:mm", /\d\d:\d\d/], ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], ["HHmmss", /\d\d\d\d\d\d/], ["HHmm", /\d\d\d\d/], ["HH", /\d\d/]], tn = /^\/?Date\((\-?\d+)/i, en = /^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/;
    b.createFromInputFallback = t("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", function(t) {
        t._d = new Date(t._i + (t._useUTC ? " UTC" : ""))
    }),
    b.ISO_8601 = function() {}
    ,
    b.RFC_2822 = function() {}
    ;
    var nn = t("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", function() {
        var t = dt.apply(null, arguments);
        return this.isValid() && t.isValid() ? t < this ? this : t : d()
    })
      , rn = t("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", function() {
        var t = dt.apply(null, arguments);
        return this.isValid() && t.isValid() ? this < t ? this : t : d()
    })
      , on = ["year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond"];
    vt("Z", ":"),
    vt("ZZ", ""),
    B("Z", ge),
    B("ZZ", ge),
    D(["Z", "ZZ"], function(t, e, n) {
        n._useUTC = !0,
        n._tzm = At(ge, t)
    });
    var an = /([\+\-]|\d\d)/gi;
    b.updateOffset = function() {}
    ;
    var sn = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/
      , cn = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;
    Ot.fn = bt.prototype,
    Ot.invalid = function() {
        return Ot(NaN)
    }
    ;
    var un = Nt(1, "add")
      , ln = Nt(-1, "subtract");
    b.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ",
    b.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]";
    var hn = t("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function(t) {
        return void 0 === t ? this.localeData() : this.locale(t)
    });
    x(0, ["gg", 2], 0, function() {
        return this.weekYear() % 100
    }),
    x(0, ["GG", 2], 0, function() {
        return this.isoWeekYear() % 100
    }),
    Ct("gggg", "weekYear"),
    Ct("ggggg", "weekYear"),
    Ct("GGGG", "isoWeekYear"),
    Ct("GGGGG", "isoWeekYear"),
    e("weekYear", "gg"),
    e("isoWeekYear", "GG"),
    n("weekYear", 1),
    n("isoWeekYear", 1),
    B("G", be),
    B("g", be),
    B("GG", ue, oe),
    B("gg", ue, oe),
    B("GGGG", pe, se),
    B("gggg", pe, se),
    B("GGGGG", de, ce),
    B("ggggg", de, ce),
    R(["gggg", "ggggg", "GGGG", "GGGGG"], function(t, e, n, i) {
        e[i.substr(0, 2)] = z(t)
    }),
    R(["gg", "GG"], function(t, e, n, i) {
        e[i] = b.parseTwoDigitYear(t)
    }),
    x("Q", 0, "Qo", "quarter"),
    e("quarter", "Q"),
    n("quarter", 7),
    B("Q", re),
    D("Q", function(t, e) {
        e[_e] = 3 * (z(t) - 1)
    }),
    x("D", ["DD", 2], "Do", "date"),
    e("date", "D"),
    n("date", 9),
    B("D", ue),
    B("DD", ue, oe),
    B("Do", function(t, e) {
        return t ? e._dayOfMonthOrdinalParse || e._ordinalParse : e._dayOfMonthOrdinalParseLenient
    }),
    D(["D", "DD"], Oe),
    D("Do", function(t, e) {
        e[Oe] = z(t.match(ue)[0])
    });
    var fn = i("Date", !0);
    x("DDD", ["DDDD", 3], "DDDo", "dayOfYear"),
    e("dayOfYear", "DDD"),
    n("dayOfYear", 4),
    B("DDD", fe),
    B("DDDD", ae),
    D(["DDD", "DDDD"], function(t, e, n) {
        n._dayOfYear = z(t)
    }),
    x("m", ["mm", 2], 0, "minute"),
    e("minute", "m"),
    n("minute", 14),
    B("m", ue),
    B("mm", ue, oe),
    D(["m", "mm"], Le);
    var pn = i("Minutes", !1);
    x("s", ["ss", 2], 0, "second"),
    e("second", "s"),
    n("second", 15),
    B("s", ue),
    B("ss", ue, oe),
    D(["s", "ss"], Ne);
    var dn, Mn = i("Seconds", !1);
    for (x("S", 0, 0, function() {
        return ~~(this.millisecond() / 100)
    }),
    x(0, ["SS", 2], 0, function() {
        return ~~(this.millisecond() / 10)
    }),
    x(0, ["SSS", 3], 0, "millisecond"),
    x(0, ["SSSS", 4], 0, function() {
        return 10 * this.millisecond()
    }),
    x(0, ["SSSSS", 5], 0, function() {
        return 100 * this.millisecond()
    }),
    x(0, ["SSSSSS", 6], 0, function() {
        return 1e3 * this.millisecond()
    }),
    x(0, ["SSSSSSS", 7], 0, function() {
        return 1e4 * this.millisecond()
    }),
    x(0, ["SSSSSSSS", 8], 0, function() {
        return 1e5 * this.millisecond()
    }),
    x(0, ["SSSSSSSSS", 9], 0, function() {
        return 1e6 * this.millisecond()
    }),
    e("millisecond", "ms"),
    n("millisecond", 16),
    B("S", fe, re),
    B("SS", fe, oe),
    B("SSS", fe, ae),
    dn = "SSSS"; dn.length <= 9; dn += "S")
        B(dn, Me);
    for (dn = "S"; dn.length <= 9; dn += "S")
        D(dn, kt);
    var bn = i("Milliseconds", !1);
    x("z", 0, 0, "zoneAbbr"),
    x("zz", 0, 0, "zoneName");
    var mn = v.prototype;
    mn.add = un,
    mn.calendar = function(t, e) {
        var n = t || dt()
          , i = yt(n, this).startOf("day")
          , r = b.calendarFormat(this, i) || "sameElse"
          , o = e && (w(e[r]) ? e[r].call(this, n) : e[r]);
        return this.format(o || this.localeData().calendar(r, this, dt(n)))
    }
    ,
    mn.clone = function() {
        return new v(this)
    }
    ,
    mn.diff = function(t, e, n) {
        var i, r, o, a, s, c, u, l, h, f;
        return this.isValid() ? (i = yt(t, this)).isValid() ? (r = 6e4 * (i.utcOffset() - this.utcOffset()),
        "year" === (e = N(e)) || "month" === e || "quarter" === e ? (s = this,
        h = 12 * ((c = i).year() - s.year()) + (c.month() - s.month()),
        f = s.clone().add(h, "months"),
        l = c - f < 0 ? (u = s.clone().add(h - 1, "months"),
        (c - f) / (f - u)) : (u = s.clone().add(1 + h, "months"),
        (c - f) / (u - f)),
        a = -(h + l) || 0,
        "quarter" === e ? a /= 3 : "year" === e && (a /= 12)) : (o = this - i,
        a = "second" === e ? o / 1e3 : "minute" === e ? o / 6e4 : "hour" === e ? o / 36e5 : "day" === e ? (o - r) / 864e5 : "week" === e ? (o - r) / 6048e5 : o),
        n ? a : y(a)) : NaN : NaN
    }
    ,
    mn.endOf = function(t) {
        return void 0 === (t = N(t)) || "millisecond" === t ? this : ("date" === t && (t = "day"),
        this.startOf(t).add(1, "isoWeek" === t ? "week" : t).subtract(1, "ms"))
    }
    ,
    mn.format = function(t) {
        t = t || (this.isUtc() ? b.defaultFormatUtc : b.defaultFormat);
        var e = k(this, t);
        return this.localeData().postformat(e)
    }
    ,
    mn.from = function(t, e) {
        return this.isValid() && (A(t) && t.isValid() || dt(t).isValid()) ? Ot({
            to: this,
            from: t
        }).locale(this.locale()).humanize(!e) : this.localeData().invalidDate()
    }
    ,
    mn.fromNow = function(t) {
        return this.from(dt(), t)
    }
    ,
    mn.to = function(t, e) {
        return this.isValid() && (A(t) && t.isValid() || dt(t).isValid()) ? Ot({
            from: this,
            to: t
        }).locale(this.locale()).humanize(!e) : this.localeData().invalidDate()
    }
    ,
    mn.toNow = function(t) {
        return this.to(dt(), t)
    }
    ,
    mn.get = function(t) {
        return w(this[t = N(t)]) ? this[t]() : this
    }
    ,
    mn.invalidAt = function() {
        return g(this).overflow
    }
    ,
    mn.isAfter = function(t, e) {
        var n = A(t) ? t : dt(t);
        return !(!this.isValid() || !n.isValid()) && ("millisecond" === (e = N(o(e) ? "millisecond" : e)) ? this.valueOf() > n.valueOf() : n.valueOf() < this.clone().startOf(e).valueOf())
    }
    ,
    mn.isBefore = function(t, e) {
        var n = A(t) ? t : dt(t);
        return !(!this.isValid() || !n.isValid()) && ("millisecond" === (e = N(o(e) ? "millisecond" : e)) ? this.valueOf() < n.valueOf() : this.clone().endOf(e).valueOf() < n.valueOf())
    }
    ,
    mn.isBetween = function(t, e, n, i) {
        return ("(" === (i = i || "()")[0] ? this.isAfter(t, n) : !this.isBefore(t, n)) && (")" === i[1] ? this.isBefore(e, n) : !this.isAfter(e, n))
    }
    ,
    mn.isSame = function(t, e) {
        var n, i = A(t) ? t : dt(t);
        return !(!this.isValid() || !i.isValid()) && ("millisecond" === (e = N(e || "millisecond")) ? this.valueOf() === i.valueOf() : (n = i.valueOf(),
        this.clone().startOf(e).valueOf() <= n && n <= this.clone().endOf(e).valueOf()))
    }
    ,
    mn.isSameOrAfter = function(t, e) {
        return this.isSame(t, e) || this.isAfter(t, e)
    }
    ,
    mn.isSameOrBefore = function(t, e) {
        return this.isSame(t, e) || this.isBefore(t, e)
    }
    ,
    mn.isValid = function() {
        return p(this)
    }
    ,
    mn.lang = hn,
    mn.locale = Wt,
    mn.localeData = Tt,
    mn.max = rn,
    mn.min = nn,
    mn.parsingFlags = function() {
        return h({}, g(this))
    }
    ,
    mn.set = function(t, e) {
        if ("object" == typeof t)
            for (var n = function(t) {
                var e = [];
                for (var n in t)
                    e.push({
                        unit: n,
                        priority: Zt[n]
                    });
                return e.sort(function(t, e) {
                    return t.priority - e.priority
                }),
                e
            }(t = q(t)), i = 0; i < n.length; i++)
                this[n[i].unit](t[n[i].unit]);
        else if (w(this[t = N(t)]))
            return this[t](e);
        return this
    }
    ,
    mn.startOf = function(t) {
        switch (t = N(t)) {
        case "year":
            this.month(0);
        case "quarter":
        case "month":
            this.date(1);
        case "week":
        case "isoWeek":
        case "day":
        case "date":
            this.hours(0);
        case "hour":
            this.minutes(0);
        case "minute":
            this.seconds(0);
        case "second":
            this.milliseconds(0)
        }
        return "week" === t && this.weekday(0),
        "isoWeek" === t && this.isoWeekday(1),
        "quarter" === t && this.month(3 * Math.floor(this.month() / 3)),
        this
    }
    ,
    mn.subtract = ln,
    mn.toArray = function() {
        return [this.year(), this.month(), this.date(), this.hour(), this.minute(), this.second(), this.millisecond()]
    }
    ,
    mn.toObject = function() {
        return {
            years: this.year(),
            months: this.month(),
            date: this.date(),
            hours: this.hours(),
            minutes: this.minutes(),
            seconds: this.seconds(),
            milliseconds: this.milliseconds()
        }
    }
    ,
    mn.toDate = function() {
        return new Date(this.valueOf())
    }
    ,
    mn.toISOString = function() {
        if (!this.isValid())
            return null;
        var t = this.clone().utc();
        return t.year() < 0 || 9999 < t.year() ? k(t, "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]") : w(Date.prototype.toISOString) ? this.toDate().toISOString() : k(t, "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")
    }
    ,
    mn.inspect = function() {
        if (!this.isValid())
            return "moment.invalid(/* " + this._i + " */)";
        var t = "moment"
          , e = "";
        this.isLocal() || (t = 0 === this.utcOffset() ? "moment.utc" : "moment.parseZone",
        e = "Z");
        var n = "[" + t + '("]'
          , i = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY"
          , r = e + '[")]';
        return this.format(n + i + "-MM-DD[T]HH:mm:ss.SSS" + r)
    }
    ,
    mn.toJSON = function() {
        return this.isValid() ? this.toISOString() : null
    }
    ,
    mn.toString = function() {
        return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")
    }
    ,
    mn.unix = function() {
        return Math.floor(this.valueOf() / 1e3)
    }
    ,
    mn.valueOf = function() {
        return this._d.valueOf() - 6e4 * (this._offset || 0)
    }
    ,
    mn.creationData = function() {
        return {
            input: this._i,
            format: this._f,
            locale: this._locale,
            isUTC: this._isUTC,
            strict: this._strict
        }
    }
    ,
    mn.year = Xe,
    mn.isLeapYear = function() {
        return U(this.year())
    }
    ,
    mn.weekYear = function(t) {
        return xt.call(this, t, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy)
    }
    ,
    mn.isoWeekYear = function(t) {
        return xt.call(this, t, this.isoWeek(), this.isoWeekday(), 1, 4)
    }
    ,
    mn.quarter = mn.quarters = function(t) {
        return null == t ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (t - 1) + this.month() % 3)
    }
    ,
    mn.month = j,
    mn.daysInMonth = function() {
        return P(this.year(), this.month())
    }
    ,
    mn.week = mn.weeks = function(t) {
        var e = this.localeData().week(this);
        return null == t ? e : this.add(7 * (t - e), "d")
    }
    ,
    mn.isoWeek = mn.isoWeeks = function(t) {
        var e = K(this, 1, 4).week;
        return null == t ? e : this.add(7 * (t - e), "d")
    }
    ,
    mn.weeksInYear = function() {
        var t = this.localeData()._week;
        return Q(this.year(), t.dow, t.doy)
    }
    ,
    mn.isoWeeksInYear = function() {
        return Q(this.year(), 1, 4)
    }
    ,
    mn.date = fn,
    mn.day = mn.days = function(t) {
        if (!this.isValid())
            return null != t ? this : NaN;
        var e, n, i = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
        return null != t ? (e = t,
        n = this.localeData(),
        t = "string" != typeof e ? e : isNaN(e) ? "number" == typeof (e = n.weekdaysParse(e)) ? e : null : parseInt(e, 10),
        this.add(t - i, "d")) : i
    }
    ,
    mn.weekday = function(t) {
        if (!this.isValid())
            return null != t ? this : NaN;
        var e = (this.day() + 7 - this.localeData()._week.dow) % 7;
        return null == t ? e : this.add(t - e, "d")
    }
    ,
    mn.isoWeekday = function(t) {
        if (!this.isValid())
            return null != t ? this : NaN;
        if (null == t)
            return this.day() || 7;
        var e, n, i = (e = t,
        n = this.localeData(),
        "string" == typeof e ? n.weekdaysParse(e) % 7 || 7 : isNaN(e) ? null : e);
        return this.day(this.day() % 7 ? i : i - 7)
    }
    ,
    mn.dayOfYear = function(t) {
        var e = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1;
        return null == t ? e : this.add(t - e, "d")
    }
    ,
    mn.hour = mn.hours = Ue,
    mn.minute = mn.minutes = pn,
    mn.second = mn.seconds = Mn,
    mn.millisecond = mn.milliseconds = bn,
    mn.utcOffset = function(t, e, n) {
        var i, r = this._offset || 0;
        if (!this.isValid())
            return null != t ? this : NaN;
        if (null == t)
            return this._isUTC ? r : zt(this);
        if ("string" == typeof t) {
            if (null === (t = At(ge, t)))
                return this
        } else
            Math.abs(t) < 16 && !n && (t *= 60);
        return !this._isUTC && e && (i = zt(this)),
        this._offset = t,
        this._isUTC = !0,
        null != i && this.add(i, "m"),
        r !== t && (!e || this._changeInProgress ? qt(this, Ot(t - r, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0,
        b.updateOffset(this, !0),
        this._changeInProgress = null)),
        this
    }
    ,
    mn.utc = function(t) {
        return this.utcOffset(0, t)
    }
    ,
    mn.local = function(t) {
        return this._isUTC && (this.utcOffset(0, t),
        this._isUTC = !1,
        t && this.subtract(zt(this), "m")),
        this
    }
    ,
    mn.parseZone = function() {
        var t;
        return null != this._tzm ? this.utcOffset(this._tzm, !1, !0) : "string" == typeof this._i && (null != (t = At(me, this._i)) ? this.utcOffset(t) : this.utcOffset(0, !0)),
        this
    }
    ,
    mn.hasAlignedHourOffset = function(t) {
        return !!this.isValid() && (t = t ? dt(t).utcOffset() : 0,
        (this.utcOffset() - t) % 60 == 0)
    }
    ,
    mn.isDST = function() {
        return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset()
    }
    ,
    mn.isLocal = function() {
        return !!this.isValid() && !this._isUTC
    }
    ,
    mn.isUtcOffset = function() {
        return !!this.isValid() && this._isUTC
    }
    ,
    mn.isUtc = _t,
    mn.isUTC = _t,
    mn.zoneAbbr = function() {
        return this._isUTC ? "UTC" : ""
    }
    ,
    mn.zoneName = function() {
        return this._isUTC ? "Coordinated Universal Time" : ""
    }
    ,
    mn.dates = t("dates accessor is deprecated. Use date instead.", fn),
    mn.months = t("months accessor is deprecated. Use month instead", j),
    mn.years = t("years accessor is deprecated. Use year instead", Xe),
    mn.zone = t("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", function(t, e) {
        return null != t ? ("string" != typeof t && (t = -t),
        this.utcOffset(t, e),
        this) : -this.utcOffset()
    }),
    mn.isDSTShifted = t("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", function() {
        if (!o(this._isDSTShifted))
            return this._isDSTShifted;
        var t, e = {};
        return M(e, this),
        (e = ft(e))._a ? (t = (e._isUTC ? f : dt)(e._a),
        this._isDSTShifted = this.isValid() && 0 < _(e._a, t.toArray())) : this._isDSTShifted = !1,
        this._isDSTShifted
    });
    var gn = L.prototype;
    gn.calendar = function(t, e, n) {
        var i = this._calendar[t] || this._calendar.sameElse;
        return w(i) ? i.call(e, n) : i
    }
    ,
    gn.longDateFormat = function(t) {
        var e = this._longDateFormat[t]
          , n = this._longDateFormat[t.toUpperCase()];
        return e || !n ? e : (this._longDateFormat[t] = n.replace(/MMMM|MM|DD|dddd/g, function(t) {
            return t.slice(1)
        }),
        this._longDateFormat[t])
    }
    ,
    gn.invalidDate = function() {
        return this._invalidDate
    }
    ,
    gn.ordinal = function(t) {
        return this._ordinal.replace("%d", t)
    }
    ,
    gn.preparse = St,
    gn.postformat = St,
    gn.relativeTime = function(t, e, n, i) {
        var r = this._relativeTime[n];
        return w(r) ? r(t, e, n, i) : r.replace(/%d/i, t)
    }
    ,
    gn.pastFuture = function(t, e) {
        var n = this._relativeTime[0 < t ? "future" : "past"];
        return w(n) ? n(e) : n.replace(/%s/i, e)
    }
    ,
    gn.set = function(t) {
        var e, n;
        for (n in t)
            w(e = t[n]) ? this[n] = e : this["_" + n] = e;
        this._config = t,
        this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source)
    }
    ,
    gn.months = function(t, e) {
        return t ? s(this._months) ? this._months[t.month()] : this._months[(this._months.isFormat || xe).test(e) ? "format" : "standalone"][t.month()] : s(this._months) ? this._months : this._months.standalone
    }
    ,
    gn.monthsShort = function(t, e) {
        return t ? s(this._monthsShort) ? this._monthsShort[t.month()] : this._monthsShort[xe.test(e) ? "format" : "standalone"][t.month()] : s(this._monthsShort) ? this._monthsShort : this._monthsShort.standalone
    }
    ,
    gn.monthsParse = function(t, e, n) {
        var i, r, o;
        if (this._monthsParseExact)
            return function(t, e, n) {
                var i, r, o, a = t.toLocaleLowerCase();
                if (!this._monthsParse)
                    for (this._monthsParse = [],
                    this._longMonthsParse = [],
                    this._shortMonthsParse = [],
                    i = 0; i < 12; ++i)
                        o = f([2e3, i]),
                        this._shortMonthsParse[i] = this.monthsShort(o, "").toLocaleLowerCase(),
                        this._longMonthsParse[i] = this.months(o, "").toLocaleLowerCase();
                return n ? -1 !== (r = "MMM" === e ? Ce.call(this._shortMonthsParse, a) : Ce.call(this._longMonthsParse, a)) ? r : null : "MMM" === e ? -1 !== (r = Ce.call(this._shortMonthsParse, a)) ? r : -1 !== (r = Ce.call(this._longMonthsParse, a)) ? r : null : -1 !== (r = Ce.call(this._longMonthsParse, a)) ? r : -1 !== (r = Ce.call(this._shortMonthsParse, a)) ? r : null
            }
            .call(this, t, e, n);
        for (this._monthsParse || (this._monthsParse = [],
        this._longMonthsParse = [],
        this._shortMonthsParse = []),
        i = 0; i < 12; i++) {
            if (r = f([2e3, i]),
            n && !this._longMonthsParse[i] && (this._longMonthsParse[i] = new RegExp("^" + this.months(r, "").replace(".", "") + "$","i"),
            this._shortMonthsParse[i] = new RegExp("^" + this.monthsShort(r, "").replace(".", "") + "$","i")),
            n || this._monthsParse[i] || (o = "^" + this.months(r, "") + "|^" + this.monthsShort(r, ""),
            this._monthsParse[i] = new RegExp(o.replace(".", ""),"i")),
            n && "MMMM" === e && this._longMonthsParse[i].test(t))
                return i;
            if (n && "MMM" === e && this._shortMonthsParse[i].test(t))
                return i;
            if (!n && this._monthsParse[i].test(t))
                return i
        }
    }
    ,
    gn.monthsRegex = function(t) {
        return this._monthsParseExact ? (m(this, "_monthsRegex") || H.call(this),
        t ? this._monthsStrictRegex : this._monthsRegex) : (m(this, "_monthsRegex") || (this._monthsRegex = Ee),
        this._monthsStrictRegex && t ? this._monthsStrictRegex : this._monthsRegex)
    }
    ,
    gn.monthsShortRegex = function(t) {
        return this._monthsParseExact ? (m(this, "_monthsRegex") || H.call(this),
        t ? this._monthsShortStrictRegex : this._monthsShortRegex) : (m(this, "_monthsShortRegex") || (this._monthsShortRegex = Be),
        this._monthsShortStrictRegex && t ? this._monthsShortStrictRegex : this._monthsShortRegex)
    }
    ,
    gn.week = function(t) {
        return K(t, this._week.dow, this._week.doy).week
    }
    ,
    gn.firstDayOfYear = function() {
        return this._week.doy
    }
    ,
    gn.firstDayOfWeek = function() {
        return this._week.dow
    }
    ,
    gn.weekdays = function(t, e) {
        return t ? s(this._weekdays) ? this._weekdays[t.day()] : this._weekdays[this._weekdays.isFormat.test(e) ? "format" : "standalone"][t.day()] : s(this._weekdays) ? this._weekdays : this._weekdays.standalone
    }
    ,
    gn.weekdaysMin = function(t) {
        return t ? this._weekdaysMin[t.day()] : this._weekdaysMin
    }
    ,
    gn.weekdaysShort = function(t) {
        return t ? this._weekdaysShort[t.day()] : this._weekdaysShort
    }
    ,
    gn.weekdaysParse = function(t, e, n) {
        var i, r, o;
        if (this._weekdaysParseExact)
            return function(t, e, n) {
                var i, r, o, a = t.toLocaleLowerCase();
                if (!this._weekdaysParse)
                    for (this._weekdaysParse = [],
                    this._shortWeekdaysParse = [],
                    this._minWeekdaysParse = [],
                    i = 0; i < 7; ++i)
                        o = f([2e3, 1]).day(i),
                        this._minWeekdaysParse[i] = this.weekdaysMin(o, "").toLocaleLowerCase(),
                        this._shortWeekdaysParse[i] = this.weekdaysShort(o, "").toLocaleLowerCase(),
                        this._weekdaysParse[i] = this.weekdays(o, "").toLocaleLowerCase();
                return n ? -1 !== (r = "dddd" === e ? Ce.call(this._weekdaysParse, a) : "ddd" === e ? Ce.call(this._shortWeekdaysParse, a) : Ce.call(this._minWeekdaysParse, a)) ? r : null : "dddd" === e ? -1 !== (r = Ce.call(this._weekdaysParse, a)) ? r : -1 !== (r = Ce.call(this._shortWeekdaysParse, a)) ? r : -1 !== (r = Ce.call(this._minWeekdaysParse, a)) ? r : null : "ddd" === e ? -1 !== (r = Ce.call(this._shortWeekdaysParse, a)) ? r : -1 !== (r = Ce.call(this._weekdaysParse, a)) ? r : -1 !== (r = Ce.call(this._minWeekdaysParse, a)) ? r : null : -1 !== (r = Ce.call(this._minWeekdaysParse, a)) ? r : -1 !== (r = Ce.call(this._weekdaysParse, a)) ? r : -1 !== (r = Ce.call(this._shortWeekdaysParse, a)) ? r : null
            }
            .call(this, t, e, n);
        for (this._weekdaysParse || (this._weekdaysParse = [],
        this._minWeekdaysParse = [],
        this._shortWeekdaysParse = [],
        this._fullWeekdaysParse = []),
        i = 0; i < 7; i++) {
            if (r = f([2e3, 1]).day(i),
            n && !this._fullWeekdaysParse[i] && (this._fullWeekdaysParse[i] = new RegExp("^" + this.weekdays(r, "").replace(".", ".?") + "$","i"),
            this._shortWeekdaysParse[i] = new RegExp("^" + this.weekdaysShort(r, "").replace(".", ".?") + "$","i"),
            this._minWeekdaysParse[i] = new RegExp("^" + this.weekdaysMin(r, "").replace(".", ".?") + "$","i")),
            this._weekdaysParse[i] || (o = "^" + this.weekdays(r, "") + "|^" + this.weekdaysShort(r, "") + "|^" + this.weekdaysMin(r, ""),
            this._weekdaysParse[i] = new RegExp(o.replace(".", ""),"i")),
            n && "dddd" === e && this._fullWeekdaysParse[i].test(t))
                return i;
            if (n && "ddd" === e && this._shortWeekdaysParse[i].test(t))
                return i;
            if (n && "dd" === e && this._minWeekdaysParse[i].test(t))
                return i;
            if (!n && this._weekdaysParse[i].test(t))
                return i
        }
    }
    ,
    gn.weekdaysRegex = function(t) {
        return this._weekdaysParseExact ? (m(this, "_weekdaysRegex") || $.call(this),
        t ? this._weekdaysStrictRegex : this._weekdaysRegex) : (m(this, "_weekdaysRegex") || (this._weekdaysRegex = Ie),
        this._weekdaysStrictRegex && t ? this._weekdaysStrictRegex : this._weekdaysRegex)
    }
    ,
    gn.weekdaysShortRegex = function(t) {
        return this._weekdaysParseExact ? (m(this, "_weekdaysRegex") || $.call(this),
        t ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (m(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = je),
        this._weekdaysShortStrictRegex && t ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex)
    }
    ,
    gn.weekdaysMinRegex = function(t) {
        return this._weekdaysParseExact ? (m(this, "_weekdaysRegex") || $.call(this),
        t ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (m(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = He),
        this._weekdaysMinStrictRegex && t ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex)
    }
    ,
    gn.isPM = function(t) {
        return "p" === (t + "").toLowerCase().charAt(0)
    }
    ,
    gn.meridiem = function(t, e, n) {
        return 11 < t ? n ? "pm" : "PM" : n ? "am" : "AM"
    }
    ,
    it("en", {
        dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
        ordinal: function(t) {
            var e = t % 10;
            return t + (1 === z(t % 100 / 10) ? "th" : 1 == e ? "st" : 2 == e ? "nd" : 3 == e ? "rd" : "th")
        }
    }),
    b.lang = t("moment.lang is deprecated. Use moment.locale instead.", it),
    b.langData = t("moment.langData is deprecated. Use moment.localeData instead.", ot);
    var vn = Math.abs
      , An = jt("ms")
      , yn = jt("s")
      , zn = jt("m")
      , _n = jt("h")
      , On = jt("d")
      , wn = jt("w")
      , Ln = jt("M")
      , Nn = jt("y")
      , qn = Ht("milliseconds")
      , Wn = Ht("seconds")
      , Tn = Ht("minutes")
      , Cn = Ht("hours")
      , xn = Ht("days")
      , kn = Ht("months")
      , Sn = Ht("years")
      , Bn = Math.round
      , En = {
        ss: 44,
        s: 45,
        m: 45,
        h: 22,
        d: 26,
        M: 11
    }
      , Xn = Math.abs
      , Dn = bt.prototype;
    return Dn.isValid = function() {
        return this._isValid
    }
    ,
    Dn.abs = function() {
        var t = this._data;
        return this._milliseconds = vn(this._milliseconds),
        this._days = vn(this._days),
        this._months = vn(this._months),
        t.milliseconds = vn(t.milliseconds),
        t.seconds = vn(t.seconds),
        t.minutes = vn(t.minutes),
        t.hours = vn(t.hours),
        t.months = vn(t.months),
        t.years = vn(t.years),
        this
    }
    ,
    Dn.add = function(t, e) {
        return Dt(this, t, e, 1)
    }
    ,
    Dn.subtract = function(t, e) {
        return Dt(this, t, e, -1)
    }
    ,
    Dn.as = function(t) {
        if (!this.isValid())
            return NaN;
        var e, n, i = this._milliseconds;
        if ("month" === (t = N(t)) || "year" === t)
            return e = this._days + i / 864e5,
            n = this._months + Pt(e),
            "month" === t ? n : n / 12;
        switch (e = this._days + Math.round(It(this._months)),
        t) {
        case "week":
            return e / 7 + i / 6048e5;
        case "day":
            return e + i / 864e5;
        case "hour":
            return 24 * e + i / 36e5;
        case "minute":
            return 1440 * e + i / 6e4;
        case "second":
            return 86400 * e + i / 1e3;
        case "millisecond":
            return Math.floor(864e5 * e) + i;
        default:
            throw new Error("Unknown unit " + t)
        }
    }
    ,
    Dn.asMilliseconds = An,
    Dn.asSeconds = yn,
    Dn.asMinutes = zn,
    Dn.asHours = _n,
    Dn.asDays = On,
    Dn.asWeeks = wn,
    Dn.asMonths = Ln,
    Dn.asYears = Nn,
    Dn.valueOf = function() {
        return this.isValid() ? this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * z(this._months / 12) : NaN
    }
    ,
    Dn._bubble = function() {
        var t, e, n, i, r, o = this._milliseconds, a = this._days, s = this._months, c = this._data;
        return 0 <= o && 0 <= a && 0 <= s || o <= 0 && a <= 0 && s <= 0 || (o += 864e5 * Rt(It(s) + a),
        s = a = 0),
        c.milliseconds = o % 1e3,
        t = y(o / 1e3),
        c.seconds = t % 60,
        e = y(t / 60),
        c.minutes = e % 60,
        n = y(e / 60),
        c.hours = n % 24,
        a += y(n / 24),
        s += r = y(Pt(a)),
        a -= Rt(It(r)),
        i = y(s / 12),
        s %= 12,
        c.days = a,
        c.months = s,
        c.years = i,
        this
    }
    ,
    Dn.get = function(t) {
        return t = N(t),
        this.isValid() ? this[t + "s"]() : NaN
    }
    ,
    Dn.milliseconds = qn,
    Dn.seconds = Wn,
    Dn.minutes = Tn,
    Dn.hours = Cn,
    Dn.days = xn,
    Dn.weeks = function() {
        return y(this.days() / 7)
    }
    ,
    Dn.months = kn,
    Dn.years = Sn,
    Dn.humanize = function(t) {
        if (!this.isValid())
            return this.localeData().invalidDate();
        var e = this.localeData()
          , n = Ft(this, !t, e);
        return t && (n = e.pastFuture(+this, n)),
        e.postformat(n)
    }
    ,
    Dn.toISOString = Ut,
    Dn.toString = Ut,
    Dn.toJSON = Ut,
    Dn.locale = Wt,
    Dn.localeData = Tt,
    Dn.toIsoString = t("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", Ut),
    Dn.lang = hn,
    x("X", 0, 0, "unix"),
    x("x", 0, 0, "valueOf"),
    B("x", be),
    B("X", /[+-]?\d+(\.\d{1,3})?/),
    D("X", function(t, e, n) {
        n._d = new Date(1e3 * parseFloat(t, 10))
    }),
    D("x", function(t, e, n) {
        n._d = new Date(z(t))
    }),
    b.version = "2.18.1",
    Yt = dt,
    b.fn = mn,
    b.min = function() {
        return Mt("isBefore", [].slice.call(arguments, 0))
    }
    ,
    b.max = function() {
        return Mt("isAfter", [].slice.call(arguments, 0))
    }
    ,
    b.now = function() {
        return Date.now ? Date.now() : +new Date
    }
    ,
    b.utc = f,
    b.unix = function(t) {
        return dt(1e3 * t)
    }
    ,
    b.months = function(t, e) {
        return Et(t, e, "months")
    }
    ,
    b.isDate = a,
    b.locale = it,
    b.invalid = d,
    b.duration = Ot,
    b.isMoment = A,
    b.weekdays = function(t, e, n) {
        return Xt(t, e, n, "weekdays")
    }
    ,
    b.parseZone = function() {
        return dt.apply(null, arguments).parseZone()
    }
    ,
    b.localeData = ot,
    b.isDuration = mt,
    b.monthsShort = function(t, e) {
        return Et(t, e, "monthsShort")
    }
    ,
    b.weekdaysMin = function(t, e, n) {
        return Xt(t, e, n, "weekdaysMin")
    }
    ,
    b.defineLocale = rt,
    b.updateLocale = function(t, e) {
        var n, i;
        return null != e ? (i = Ye,
        null != Ge[t] && (i = Ge[t]._config),
        (n = new L(e = r(i, e))).parentLocale = Ge[t],
        Ge[t] = n,
        it(t)) : null != Ge[t] && (null != Ge[t].parentLocale ? Ge[t] = Ge[t].parentLocale : null != Ge[t] && delete Ge[t]),
        Ge[t]
    }
    ,
    b.locales = function() {
        return $t(Ge)
    }
    ,
    b.weekdaysShort = function(t, e, n) {
        return Xt(t, e, n, "weekdaysShort")
    }
    ,
    b.normalizeUnits = N,
    b.relativeTimeRounding = function(t) {
        return void 0 === t ? Bn : "function" == typeof t && (Bn = t,
        !0)
    }
    ,
    b.relativeTimeThreshold = function(t, e) {
        return void 0 !== En[t] && (void 0 === e ? En[t] : (En[t] = e,
        "s" === t && (En.ss = e - 1),
        !0))
    }
    ,
    b.calendarFormat = function(t, e) {
        var n = t.diff(e, "days", !0);
        return n < -6 ? "sameElse" : n < -1 ? "lastWeek" : n < 0 ? "lastDay" : n < 1 ? "sameDay" : n < 2 ? "nextDay" : n < 7 ? "nextWeek" : "sameElse"
    }
    ,
    b.prototype = mn,
    b
}),
function(t, e) {
    "use strict";
    "function" == typeof define && define.amd ? define(["moment"], e) : "object" == typeof module && module.exports ? module.exports = e(require("moment")) : e(t.moment)
}(this, function(o) {
    "use strict";
    var e, a = {}, s = {}, u = {}, l = {}, t = o.version.split("."), n = +t[0], i = +t[1];
    function c(t) {
        return 96 < t ? t - 87 : 64 < t ? t - 29 : t - 48
    }
    function r(t) {
        var e = 0
          , n = t.split(".")
          , i = n[0]
          , r = n[1] || ""
          , o = 1
          , a = 0
          , s = 1;
        for (45 === t.charCodeAt(0) && (s = -(e = 1)); e < i.length; e++)
            a = 60 * a + c(i.charCodeAt(e));
        for (e = 0; e < r.length; e++)
            o /= 60,
            a += c(r.charCodeAt(e)) * o;
        return a * s
    }
    function h(t) {
        for (var e = 0; e < t.length; e++)
            t[e] = r(t[e])
    }
    function f(t, e) {
        for (var n = [], i = 0; i < e.length; i++)
            n[i] = t[e[i]];
        return n
    }
    function p(t) {
        var e = t.split("|")
          , n = e[2].split(" ")
          , i = e[3].split("")
          , r = e[4].split(" ");
        return h(n),
        h(i),
        h(r),
        function(t, e) {
            for (var n = 0; n < e; n++)
                t[n] = Math.round((t[n - 1] || 0) + 6e4 * t[n]);
            t[e - 1] = 1 / 0
        }(r, i.length),
        {
            name: e[0],
            abbrs: f(e[1].split(" "), i),
            offsets: f(n, i),
            untils: r,
            population: 0 | e[5]
        }
    }
    function d(t) {
        t && this._set(p(t))
    }
    function M(t) {
        var e = t.toTimeString()
          , n = e.match(/\([a-z ]+\)/i);
        "GMT" === (n = n && n[0] ? (n = n[0].match(/[A-Z]/g)) ? n.join("") : void 0 : (n = e.match(/[A-Z]{3,5}/g)) ? n[0] : void 0) && (n = void 0),
        this.at = +t,
        this.abbr = n,
        this.offset = t.getTimezoneOffset()
    }
    function b(t) {
        this.zone = t,
        this.offsetScore = 0,
        this.abbrScore = 0
    }
    function m(t, e) {
        return t.offsetScore !== e.offsetScore ? t.offsetScore - e.offsetScore : t.abbrScore !== e.abbrScore ? t.abbrScore - e.abbrScore : e.zone.population - t.zone.population
    }
    function g() {
        try {
            var t = Intl.DateTimeFormat().resolvedOptions().timeZone;
            if (t && 3 < t.length) {
                var e = u[v(t)];
                if (e)
                    return e;
                w()
            }
        } catch (t) {}
        for (var n, i, r = function() {
            for (var t, e, n = (new Date).getFullYear() - 2, i = new M(new Date(n,0,1)), r = [i], o = 1; o < 48; o++)
                (e = new M(new Date(n,o,1))).offset !== i.offset && (t = function(t, e) {
                    for (var n, i; i = 6e4 * ((e.at - t.at) / 12e4 | 0); )
                        (n = new M(new Date(t.at + i))).offset === t.offset ? t = n : e = n;
                    return t
                }(i, e),
                r.push(t),
                r.push(new M(new Date(t.at + 6e4)))),
                i = e;
            for (o = 0; o < 4; o++)
                r.push(new M(new Date(n + o,0,1))),
                r.push(new M(new Date(n + o,6,1)));
            return r
        }(), o = r.length, a = function(t) {
            for (var e, n, i = t.length, r = {}, o = [], a = 0; a < i; a++)
                for (e in n = l[t[a].offset] || {})
                    n.hasOwnProperty(e) && (r[e] = !0);
            for (a in r)
                r.hasOwnProperty(a) && o.push(u[a]);
            return o
        }(r), s = [], c = 0; c < a.length; c++) {
            for (n = new b(y(a[c])),
            i = 0; i < o; i++)
                n.scoreOffsetAt(r[i]);
            s.push(n)
        }
        return s.sort(m),
        0 < s.length ? s[0].zone.name : void 0
    }
    function v(t) {
        return (t || "").toLowerCase().replace(/\//g, "_")
    }
    function A(t) {
        var e, n, i, r;
        for ("string" == typeof t && (t = [t]),
        e = 0; e < t.length; e++)
            r = v(n = (i = t[e].split("|"))[0]),
            a[r] = t[e],
            u[r] = n,
            function(t, e) {
                var n, i;
                for (h(e),
                n = 0; n < e.length; n++)
                    i = e[n],
                    l[i] = l[i] || {},
                    l[i][t] = !0
            }(r, i[2].split(" "))
    }
    function y(t, e) {
        t = v(t);
        var n, i = a[t];
        return i instanceof d ? i : "string" == typeof i ? (i = new d(i),
        a[t] = i) : s[t] && e !== y && (n = y(s[t], y)) ? ((i = a[t] = new d)._set(n),
        i.name = u[t],
        i) : null
    }
    function z(t) {
        var e, n, i, r;
        for ("string" == typeof t && (t = [t]),
        e = 0; e < t.length; e++)
            i = v((n = t[e].split("|"))[0]),
            r = v(n[1]),
            s[i] = r,
            u[i] = n[0],
            s[r] = i,
            u[r] = n[1]
    }
    function _(t) {
        A(t.zones),
        z(t.links),
        L.dataVersion = t.version
    }
    function O(t) {
        var e = "X" === t._f || "x" === t._f;
        return !(!t._a || void 0 !== t._tzm || e)
    }
    function w() {}
    function L(t) {
        var e = Array.prototype.slice.call(arguments, 0, -1)
          , n = arguments[arguments.length - 1]
          , i = y(n)
          , r = o.utc.apply(null, e);
        return i && !o.isMoment(t) && O(r) && r.add(i.parse(r), "minutes"),
        r.tz(n),
        r
    }
    (n < 2 || 2 == n && i < 6) && o.version,
    d.prototype = {
        _set: function(t) {
            this.name = t.name,
            this.abbrs = t.abbrs,
            this.untils = t.untils,
            this.offsets = t.offsets,
            this.population = t.population
        },
        _index: function(t) {
            for (var e = +t, n = this.untils, i = 0; i < n.length; i++)
                if (e < n[i])
                    return i
        },
        parse: function(t) {
            for (var e, n, i, r = +t, o = this.offsets, a = this.untils, s = a.length - 1, c = 0; c < s; c++)
                if (e = o[c],
                n = o[c + 1],
                i = o[c ? c - 1 : c],
                e < n && L.moveAmbiguousForward ? e = n : i < e && L.moveInvalidForward && (e = i),
                r < a[c] - 6e4 * e)
                    return o[c];
            return o[s]
        },
        abbr: function(t) {
            return this.abbrs[this._index(t)]
        },
        offset: function(t) {
            return this.offsets[this._index(t)]
        },
        utcOffset: function(t) {
            return this.offsets[this._index(t)]
        }
    },
    b.prototype.scoreOffsetAt = function(t) {
        this.offsetScore += Math.abs(this.zone.utcOffset(t.at) - t.offset),
        this.zone.abbr(t.at).replace(/[^A-Z]/g, "") !== t.abbr && this.abbrScore++
    }
    ,
    L.version = "0.5.17",
    L.dataVersion = "",
    L._zones = a,
    L._links = s,
    L._names = u,
    L.add = A,
    L.link = z,
    L.load = _,
    L.zone = y,
    L.zoneExists = function t(e) {
        return t.didShowError || (t.didShowError = !0),
        !!y(e)
    }
    ,
    L.guess = function(t) {
        return e && !t || (e = g()),
        e
    }
    ,
    L.names = function() {
        var t, e = [];
        for (t in u)
            u.hasOwnProperty(t) && (a[t] || a[s[t]]) && u[t] && e.push(u[t]);
        return e.sort()
    }
    ,
    L.Zone = d,
    L.unpack = p,
    L.unpackBase60 = r,
    L.needsOffset = O,
    L.moveInvalidForward = !0,
    L.moveAmbiguousForward = !1;
    var N, q = o.fn;
    function W(t) {
        return function() {
            return this._z ? this._z.abbr(this) : t.call(this)
        }
    }
    o.tz = L,
    o.defaultZone = null,
    o.updateOffset = function(t, e) {
        var n, i = o.defaultZone;
        void 0 === t._z && (i && O(t) && !t._isUTC && (t._d = o.utc(t._a)._d,
        t.utc().add(i.parse(t), "minutes")),
        t._z = i),
        t._z && (n = t._z.utcOffset(t),
        Math.abs(n) < 16 && (n /= 60),
        void 0 !== t.utcOffset ? t.utcOffset(-n, e) : t.zone(n, e))
    }
    ,
    q.tz = function(t, e) {
        return t ? (this._z = y(t),
        this._z && o.updateOffset(this, e),
        this) : this._z ? this._z.name : void 0
    }
    ,
    q.zoneName = W(q.zoneName),
    q.zoneAbbr = W(q.zoneAbbr),
    q.utc = (N = q.utc,
    function() {
        return this._z = null,
        N.apply(this, arguments)
    }
    ),
    o.tz.setDefault = function(t) {
        return (n < 2 || 2 == n && i < 9) && o.version,
        o.defaultZone = t ? y(t) : null,
        o
    }
    ;
    var T = o.momentProperties;
    return "[object Array]" === Object.prototype.toString.call(T) ? (T.push("_z"),
    T.push("_a")) : T && (T._z = null),
    _({
        version: "2018e",
        zones: ["Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5", "Africa/Accra|LMT GMT +0020|.Q 0 -k|012121212121212121212121212121212121212121212121|-26BbX.8 6tzX.8 MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE|41e5", "Africa/Nairobi|LMT EAT +0230 +0245|-2r.g -30 -2u -2J|01231|-1F3Cr.g 3Dzr.g okMu MFXJ|47e5", "Africa/Algiers|PMT WET WEST CET CEST|-9.l 0 -10 -10 -20|0121212121212121343431312123431213|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5", "Africa/Lagos|LMT WAT|-d.A -10|01|-22y0d.A|17e6", "Africa/Bissau|LMT -01 GMT|12.k 10 0|012|-2ldX0 2xoo0|39e4", "Africa/Maputo|LMT CAT|-2a.k -20|01|-2GJea.k|26e5", "Africa/Cairo|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1bIO0 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0|15e6", "Africa/Casablanca|LMT WET WEST CET|u.k 0 -10 -10|0121212121212121213121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 Rc0 11A0 e00 e00 U00 11A0 8o0 e00 11A0 11A0 5A0 e00 17c0 1fA0 1a00 1a00 1fA0 17c0 1io0 14o0 1lc0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1lc0 14o0 1fA0|32e5", "Africa/Ceuta|WET WEST CET CEST|0 -10 -10 -20|010101010101010101010232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-25KN0 11z0 drd0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1y7o0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|85e3", "Africa/El_Aaiun|LMT -01 WET WEST|Q.M 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 Rc0 11A0 e00 e00 U00 11A0 8o0 e00 11A0 11A0 5A0 e00 17c0 1fA0 1a00 1a00 1fA0 17c0 1io0 14o0 1lc0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1lc0 14o0 1fA0|20e4", "Africa/Johannesburg|SAST SAST SAST|-1u -20 -30|012121|-2GJdu 1Ajdu 1cL0 1cN0 1cL0|84e5", "Africa/Juba|LMT CAT CAST EAT|-26.s -20 -30 -30|01212121212121212121212121212121213|-1yW26.s 1zK06.s 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0", "Africa/Khartoum|LMT CAT CAST EAT|-2a.8 -20 -30 -30|012121212121212121212121212121212131|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 HjL0|51e5", "Africa/Monrovia|MMT MMT GMT|H.8 I.u 0|012|-23Lzg.Q 28G01.m|11e5", "Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0|13e5", "Africa/Sao_Tome|LMT GMT WAT|A.J 0 -10|012|-2le00 4i6N0", "Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5", "Africa/Tunis|PMT CET CEST|-9.l -10 -20|0121212121212121212121212121212121|-2nco9.l 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5", "Africa/Windhoek|+0130 SAST SAST CAT WAT|-1u -20 -30 -20 -10|01213434343434343434343434343434343434343434343434343|-2GJdu 1Ajdu 1cL0 1SqL0 9Io0 16P0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4", "America/Adak|NST NWT NPT BST BDT AHST HST HDT|b0 a0 a0 b0 a0 a0 a0 90|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326", "America/Anchorage|AST AWT APT AHST AHDT YST AKST AKDT|a0 90 90 a0 90 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T00 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4", "America/Port_of_Spain|LMT AST|46.4 40|01|-2kNvR.U|43e3", "America/Araguaina|LMT -03 -02|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4", "America/Argentina/Buenos_Aires|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 A4p0 uL0 1qN0 WL0", "America/Argentina/Catamarca|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 7B0 8zb0 uL0", "America/Argentina/Cordoba|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0 1qN0 WL0", "America/Argentina/Jujuy|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 A4p0 uL0", "America/Argentina/La_Rioja|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0", "America/Argentina/Mendoza|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232312121321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 ri10 Op0 7TX0 uL0", "America/Argentina/Rio_Gallegos|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0", "America/Argentina/Salta|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0", "America/Argentina/San_Juan|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rld0 m10 8lb0 uL0", "America/Argentina/San_Luis|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121212321212|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 vDb0 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0", "America/Argentina/Tucuman|CMT -04 -03 -02|4g.M 40 30 20|0121212121212121212121212121212121212121212323232313232123232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 4N0 8BX0 uL0 1qN0 WL0", "America/Argentina/Ushuaia|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rkN0 8p0 8zb0 uL0", "America/Curacao|LMT -0430 AST|4z.L 4u 40|012|-2kV7o.d 28KLS.d|15e4", "America/Asuncion|AMT -04 -03|3O.E 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-1x589.k 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0|28e5", "America/Atikokan|CST CDT CWT CPT EST|60 50 50 50 50|0101234|-25TQ0 1in0 Rnb0 3je0 8x30 iw0|28e2", "America/Bahia_Banderas|LMT MST CST PST MDT CDT|71 70 60 80 60 50|0121212131414141414141414141414141414152525252525252525252525252525252525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|84e3", "America/Bahia|LMT -03 -02|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5", "America/Barbados|LMT BMT AST ADT|3W.t 3W.t 40 30|01232323232|-1Q0I1.v jsM0 1ODC1.v IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4", "America/Belem|LMT -03 -02|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|20e5", "America/Belize|LMT CST -0530 CDT|5Q.M 60 5u 50|01212121212121212121212121212121212121212121212121213131|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1f0Mu qn0 lxB0 mn0|57e3", "America/Blanc-Sablon|AST ADT AWT APT|40 30 30 30|010230|-25TS0 1in0 UGp0 8x50 iu0|11e2", "America/Boa_Vista|LMT -04 -03|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2", "America/Bogota|BMT -05 -04|4U.g 50 40|0121|-2eb73.I 38yo3.I 2en0|90e5", "America/Boise|PST PDT MST MWT MPT MDT|80 70 70 60 60 60|0101023425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-261q0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4", "America/Cambridge_Bay|-00 MST MWT MPT MDDT MDT CST CDT EST|0 70 60 60 50 60 60 50 50|0123141515151515151515151515151515151515151515678651515151515151515151515151515151515151515151515151515151515151515151515151|-21Jc0 RO90 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2", "America/Campo_Grande|LMT -04 -03|3C.s 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0 1HB0 FX0 1HB0 IL0 1HB0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0 IL0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1Kp0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0|77e4", "America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG0 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4", "America/Caracas|CMT -0430 -04|4r.E 4u 40|01212|-2kV7w.k 28KM2.k 1IwOu kqo0|29e5", "America/Cayenne|LMT -04 -03|3t.k 40 30|012|-2mrwu.E 2gWou.E|58e3", "America/Panama|CMT EST|5j.A 50|01|-2uduE.o|15e5", "America/Chicago|CST CDT EST CWT CPT|60 50 50 50 50|01010101010101010101010101010101010102010101010103401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5", "America/Chihuahua|LMT MST CST CDT MDT|74.k 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|81e4", "America/Costa_Rica|SJMT CST CDT|5A.d 60 50|0121212121|-1Xd6n.L 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5", "America/Creston|MST PST|70 80|010|-29DR0 43B0|53e2", "America/Cuiaba|LMT -04 -03|3I.k 40 30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0 1HB0 FX0 1HB0 IL0 1HB0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0 IL0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1Kp0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0|54e4", "America/Danmarkshavn|LMT -03 -02 GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8", "America/Dawson_Creek|PST PDT PWT PPT MST|80 70 70 70 70|0102301010101010101010101010101010101010101010101010101014|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0|12e3", "America/Dawson|YST YDT YWT YPT YDDT PST PDT|90 80 80 80 70 80 70|0101023040565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|13e2", "America/Denver|MST MDT MWT MPT|70 60 60 60|01010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5", "America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|012342525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 XQp0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5", "America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|01212121212121341212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 LFB0 1cL0 3Cp0 1cL0 66N0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5", "America/Eirunepe|LMT -05 -04|4D.s 50 40|0121212121212121212121212121212121|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3", "America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0|11e5", "America/Tijuana|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOO0 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5", "America/Fort_Nelson|PST PDT PWT PPT MST|80 70 70 70 70|01023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010104|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2", "America/Fort_Wayne|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010101023010101010101010101040454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "America/Fortaleza|LMT -03 -02|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5", "America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3", "America/Godthab|LMT -03 -02|3q.U 30 20|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e3", "America/Goose_Bay|NST NDT NST NDT NWT NPT AST ADT ADDT|3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|010232323232323245232323232323232323232323232323232323232326767676767676767676767676767676767676767676768676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-25TSt.8 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2", "America/Grand_Turk|KMT EST EDT AST|57.a 50 40 40|01212121212121212121212121212121212121212121212121212121212121212121212121232121212121212121212121212121212121212121|-2l1uQ.O 2HHBQ.O 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 5Ip0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2", "America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5", "America/Guayaquil|QMT -05 -04|5e 50 40|0121|-1yVSK 2uILK rz0|27e5", "America/Guyana|LMT -0345 -03 -04|3Q.E 3J 30 40|0123|-2dvU7.k 2r6LQ.k Bxbf|80e4", "America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4", "America/Havana|HMT CST CDT|5t.A 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Meuu.o 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5", "America/Hermosillo|LMT MST CST PST MDT|7n.Q 70 60 80 60|0121212131414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4", "America/Indiana/Knox|CST CDT CWT CPT EST|60 50 50 50 50|0101023010101010101010101010101010101040101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "America/Indiana/Marengo|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010104545454545414545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "America/Indiana/Petersburg|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010104010101010101010101010141014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "America/Indiana/Tell_City|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "America/Indiana/Vevay|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010102304545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "America/Indiana/Vincennes|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "America/Indiana/Winamac|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010101010454541054545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "America/Inuvik|-00 PST PDDT MST MDT|0 80 60 70 60|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-FnA0 tWU0 1fA0 wPe0 2pz0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2", "America/Iqaluit|-00 EWT EPT EST EDDT EDT CST CDT|0 40 40 50 30 40 60 50|01234353535353535353535353535353535353535353567353535353535353535353535353535353535353535353535353535353535353535353535353|-16K00 7nX0 iv0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2", "America/Jamaica|KMT EST EDT|57.a 50 40|0121212121212121212121|-2l1uQ.O 2uM1Q.O 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4", "America/Juneau|PST PWT PPT PDT YDT YST AKST AKDT|80 70 70 70 80 90 90 80|01203030303030303030303030403030356767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3", "America/Kentucky/Louisville|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101010102301010101010101010101010101454545454545414545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 Bb0 10N0 2bB0 8in0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "America/Kentucky/Monticello|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "America/La_Paz|CMT BST -04|4w.A 3w.A 40|012|-1x37r.o 13b0|19e5", "America/Lima|LMT -05 -04|58.A 50 40|0121212121212121|-2tyGP.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6", "America/Los_Angeles|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp1 1VaX 3dA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6", "America/Maceio|LMT -03 -02|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4", "America/Managua|MMT CST EST CDT|5J.c 60 50 50|0121313121213131|-1quie.M 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5", "America/Manaus|LMT -04 -03|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5", "America/Martinique|FFMT AST ADT|44.k 40 30|0121|-2mPTT.E 2LPbT.E 19X0|39e4", "America/Matamoros|LMT CST CDT|6E 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4", "America/Mazatlan|LMT MST CST PST MDT|75.E 70 60 80 60|0121212131414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|44e4", "America/Menominee|CST CDT CWT CPT EST|60 50 50 50 50|01010230101041010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2", "America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|11e5", "America/Metlakatla|PST PWT PPT PDT AKST AKDT|80 70 70 70 90 80|0120303030303030303030303030303030454545454545454545454545454545454545454545454|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1hU10 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2", "America/Mexico_City|LMT MST CST CDT CWT|6A.A 70 60 50 50|012121232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|20e6", "America/Miquelon|LMT AST -03 -02|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mKkf.k 2LTAf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2", "America/Moncton|EST AST ADT AWT APT|50 40 30 30 30|012121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsH0 CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3", "America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|41e5", "America/Montevideo|LMT MMT -04 -03 -0330 -0230 -02 -0130|3I.P 3I.P 40 30 3u 2u 20 1u|012343434343434343434343435353636353636375363636363636363636363636363636363636363636363|-2tRUf.9 sVc0 8jcf.9 1db0 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1fAu 1cLu 1o0u 11zu NAu 3jXu zXu Dq0u 19Xu pcu jz0 cm10 19X0 6tB0 1fbu 3o0u jX0 4vB0 xz0 3Cp0 mmu 1a10 IMu Db0 4c10 uL0 1Nd0 An0 1SN0 uL0 mp0 28L0 iPB0 un0 1SN0 xz0 1zd0 Lz0 1zd0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5", "America/Toronto|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101012301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1nX0 11z0 1o10 11z0 1o10 1qL0 11D0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5", "America/Nassau|LMT EST EDT|59.u 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2kNuO.u 26XdO.u 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|24e4", "America/New_York|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6", "America/Nipigon|EST EDT EWT EPT|50 40 40 40|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 Rnb0 3je0 8x40 iv0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|16e2", "America/Nome|NST NWT NPT BST BDT YST AKST AKDT|b0 a0 a0 b0 a0 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2", "America/Noronha|LMT -02 -01|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2", "America/North_Dakota/Beulah|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "America/North_Dakota/Center|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "America/North_Dakota/New_Salem|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "America/Ojinaga|LMT MST CST CDT MDT|6V.E 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3", "America/Pangnirtung|-00 AST AWT APT ADDT ADT EDT EST CST CDT|0 40 30 30 20 30 40 50 60 50|012314151515151515151515151515151515167676767689767676767676767676767676767676767676767676767676767676767676767676767676767|-1XiM0 PnG0 8x50 iu0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1o00 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2", "America/Paramaribo|LMT PMT PMT -0330 -03|3E.E 3E.Q 3E.A 3u 30|01234|-2nDUj.k Wqo0.c qanX.I 1yVXN.o|24e4", "America/Phoenix|MST MDT MWT|70 60 60|01010202010|-261r0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0|42e5", "America/Port-au-Prince|PPMT EST EDT|4N 50 40|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-28RHb 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5", "America/Rio_Branco|LMT -05 -04|4v.c 50 40|01212121212121212121212121212121|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4", "America/Porto_Velho|LMT -04 -03|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|37e4", "America/Puerto_Rico|AST AWT APT|40 30 30|0120|-17lU0 7XT0 iu0|24e5", "America/Punta_Arenas|SMT -05 -04 -03|4G.K 50 40 30|0102021212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 blz0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0", "America/Rainy_River|CST CDT CWT CPT|60 50 50 50|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TQ0 1in0 Rnb0 3je0 8x30 iw0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|842", "America/Rankin_Inlet|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313131313131313131313131313131313131313131313131313131313131313131|-vDc0 keu0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2", "America/Recife|LMT -03 -02|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5", "America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0|19e4", "America/Resolute|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313431313131313131313131313131313131313131313131313131313131313131|-SnA0 GWS0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229", "America/Santarem|LMT -04 -03|3C.M 40 30|0121212121212121212121212121212|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4", "America/Santiago|SMT -05 -04 -03|4G.K 50 40 30|010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 jb0 1oN0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0|62e5", "America/Santo_Domingo|SDMT EST EDT -0430 AST|4E 50 40 4u 40|01213131313131414|-1ttjk 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5", "America/Sao_Paulo|LMT -03 -02|36.s 30 20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0 1HB0 FX0 1HB0 IL0 1HB0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0 IL0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1Kp0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0|20e6", "America/Scoresbysund|LMT -02 -01 +00|1r.Q 20 10 0|0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|452", "America/Sitka|PST PWT PPT PDT YST AKST AKDT|80 70 70 70 90 90 80|01203030303030303030303030303030345656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2", "America/St_Johns|NST NDT NST NDT NWT NPT NDDT|3u.Q 2u.Q 3u 2u 2u 2u 1u|01010101010101010101010101010101010102323232323232324523232323232323232323232323232323232323232323232323232323232323232323232323232323232326232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28oit.8 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4", "America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0|16e3", "America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0|11e5", "America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656", "America/Thunder_Bay|CST EST EWT EPT EDT|60 50 40 40 40|0123141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2q5S0 1iaN0 8x40 iv0 XNB0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4", "America/Vancouver|PST PDT PWT PPT|80 70 70 70|0102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TO0 1in0 UGp0 8x10 iy0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5", "America/Whitehorse|YST YDT YWT YPT YDDT PST PDT|90 80 80 80 70 80 70|0101023040565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 3NA0 vrd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3", "America/Winnipeg|CST CDT CWT CPT|60 50 50 50|010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aIi0 WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4", "America/Yakutat|YST YWT YPT YDT AKST AKDT|90 80 80 80 90 80|01203030303030303030303030303030304545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-17T10 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642", "America/Yellowknife|-00 MST MWT MPT MDDT MDT|0 70 60 60 50 60|012314151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151|-1pdA0 hix0 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3", "Antarctica/Casey|-00 +08 +11|0 -80 -b0|01212121|-2q00 1DjS0 T90 40P0 KL0 blz0 3m10|10", "Antarctica/Davis|-00 +07 +05|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0|70", "Antarctica/DumontDUrville|-00 +10|0 -a0|0101|-U0o0 cfq0 bFm0|80", "Antarctica/Macquarie|AEST AEDT -00 +11|-a0 -b0 0 -b0|0102010101010101010101010101010101010101010101010101010101010101010101010101010101010101013|-29E80 19X0 4SL0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0|1", "Antarctica/Mawson|-00 +06 +05|0 -60 -50|012|-CEo0 2fyk0|60", "Pacific/Auckland|NZMT NZST NZST NZDT|-bu -cu -c0 -d0|01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1GCVu Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|14e5", "Antarctica/Palmer|-00 -03 -04 -02|0 30 40 20|0121212121213121212121212121212121212121212121212121212121212121212121212121212121|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|40", "Antarctica/Rothera|-00 -03|0 30|01|gOo0|130", "Antarctica/Syowa|-00 +03|0 -30|01|-vs00|20", "Antarctica/Troll|-00 +00 +02|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|40", "Antarctica/Vostok|-00 +06|0 -60|01|-tjA0|25", "Europe/Oslo|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2awM0 Qm0 W6o0 5pf0 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 wJc0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1qM0 WM0 zpc0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e4", "Asia/Riyadh|LMT +03|-36.Q -30|01|-TvD6.Q|57e5", "Asia/Almaty|LMT +05 +06 +07|-57.M -50 -60 -70|012323232323232323232321232323232323232323232323232|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|15e5", "Asia/Amman|LMT EET EEST|-2n.I -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|25e5", "Asia/Anadyr|LMT +12 +13 +14 +11|-bN.U -c0 -d0 -e0 -b0|01232121212121212121214121212121212121212121212121212121212141|-1PcbN.U eUnN.U 23CL0 1db0 2q10 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|13e3", "Asia/Aqtau|LMT +04 +05 +06|-3l.4 -40 -50 -60|012323232323232323232123232312121212121212121212|-1Pc3l.4 eUnl.4 24PX0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|15e4", "Asia/Aqtobe|LMT +04 +05 +06|-3M.E -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc3M.E eUnM.E 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4", "Asia/Ashgabat|LMT +04 +05 +06|-3R.w -40 -50 -60|0123232323232323232323212|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0|41e4", "Asia/Atyrau|LMT +03 +05 +06 +04|-3r.I -30 -50 -60 -40|01232323232323232323242323232323232324242424242|-1Pc3r.I eUor.I 24PW0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 2sp0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0", "Asia/Baghdad|BMT +03 +04|-2V.A -30 -40|012121212121212121212121212121212121212121212121212121|-26BeV.A 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5", "Asia/Qatar|LMT +04 +03|-3q.8 -40 -30|012|-21Jfq.8 27BXq.8|96e4", "Asia/Baku|LMT +03 +04 +05|-3j.o -30 -40 -50|01232323232323232323232123232323232323232323232323232323232323232|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 9Je0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5", "Asia/Bangkok|BMT +07|-6G.4 -70|01|-218SG.4|15e6", "Asia/Barnaul|LMT +06 +07 +08|-5z -60 -70 -80|0123232323232323232323212323232321212121212121212121212121212121212|-21S5z pCnz 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 p90 LE0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0", "Asia/Beirut|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-21aq0 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0|22e5", "Asia/Bishkek|LMT +05 +06 +07|-4W.o -50 -60 -70|012323232323232323232321212121212121212121212121212|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2e00 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|87e4", "Asia/Brunei|LMT +0730 +08|-7D.E -7u -80|012|-1KITD.E gDc9.E|42e4", "Asia/Kolkata|MMT IST +0630|-5l.a -5u -6u|012121|-2zOtl.a 1r2LP.a 1un0 HB0 7zX0|15e6", "Asia/Chita|LMT +08 +09 +10|-7x.Q -80 -90 -a0|012323232323232323232321232323232323232323232323232323232323232312|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3re0|33e4", "Asia/Choibalsan|LMT +07 +08 +10 +09|-7C -70 -80 -a0 -90|0123434343434343434343434343434343434343434343424242|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0|38e3", "Asia/Shanghai|CST CDT|-80 -90|01010101010101010|-1c1I0 LX0 16p0 1jz0 1Myp0 Rb0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6", "Asia/Colombo|MMT +0530 +06 +0630|-5j.w -5u -60 -6u|01231321|-2zOtj.w 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu|22e5", "Asia/Dhaka|HMT +0630 +0530 +06 +07|-5R.k -6u -5u -60 -70|0121343|-18LFR.k 1unn.k HB0 m6n0 2kxbu 1i00|16e6", "Asia/Damascus|LMT EET EEST|-2p.c -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|26e5", "Asia/Dili|LMT +08 +09|-8m.k -80 -90|01212|-2le8m.k 1dnXm.k 1nfA0 Xld0|19e4", "Asia/Dubai|LMT +04|-3F.c -40|01|-21JfF.c|39e5", "Asia/Dushanbe|LMT +05 +06 +07|-4z.c -50 -60 -70|012323232323232323232321|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2hB0|76e4", "Asia/Famagusta|LMT EET EEST +03|-2f.M -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212312121212121212121212121212121212121212121|-1Vc2f.M 2a3cf.M 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00", "Asia/Gaza|EET EEST IST IDT|-20 -30 -20 -30|010101010101010101010101010101012323232323232323232323232320101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 npB0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0|18e5", "Asia/Hebron|EET EEST IST IDT|-20 -30 -20 -30|01010101010101010101010101010101232323232323232323232323232010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 npB0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0|25e4", "Asia/Ho_Chi_Minh|LMT PLMT +07 +08 +09|-76.E -76.u -70 -80 -90|0123423232|-2yC76.E bK00.a 1h7b6.u 5lz0 18o0 3Oq0 k5b0 aW00 BAM0|90e5", "Asia/Hong_Kong|LMT HKT HKST JST|-7A.G -80 -90 -90|0121312121212121212121212121212121212121212121212121212121212121212121|-2CFHA.G 1sEP6.G 1cL0 ylu 93X0 1qQu 1tX0 Rd0 1In0 NB0 1cL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1kL0 14N0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5", "Asia/Hovd|LMT +06 +07 +08|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|81e3", "Asia/Irkutsk|IMT +07 +08 +09|-6V.5 -70 -80 -90|01232323232323232323232123232323232323232323232323232323232323232|-21zGV.5 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4", "Europe/Istanbul|IMT EET EEST +04 +03|-1U.U -20 -30 -40 -30|012121212121212121212121212121212121212121212121212121234343434342121212121212121212121212121212121212121212121212121212121212124|-2ogNU.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSp0 CL0 mN0 1Vz0 1gN0 1pz0 5Rd0 1fz0 1yp0 ML0 1kp0 17b0 1ip0 17b0 1fB0 19X0 1jB0 18L0 1ip0 17z0 qdd0 xX0 3S10 Tz0 dA10 11z0 1o10 11z0 1qN0 11z0 1ze0 11B0 WM0 1qO0 WI0 1nX0 1rB0 10L0 11B0 1in0 17d0 1in0 2pX0 19E0 1fU0 16Q0 1iI0 16Q0 1iI0 1Vd0 pb0 3Kp0 14o0 1de0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1a00 1fA0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 15w0|13e6", "Asia/Jakarta|BMT +0720 +0730 +09 +08 WIB|-77.c -7k -7u -90 -80 -70|01232425|-1Q0Tk luM0 mPzO 8vWu 6kpu 4PXu xhcu|31e6", "Asia/Jayapura|LMT +09 +0930 WIT|-9m.M -90 -9u -90|0123|-1uu9m.M sMMm.M L4nu|26e4", "Asia/Jerusalem|JMT IST IDT IDDT|-2k.E -20 -30 -40|01212121212132121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-26Bek.E SyMk.E 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 3LB0 Em0 or0 1cn0 1dB0 16n0 10O0 1ja0 1tC0 14o0 1cM0 1a00 11A0 1Na0 An0 1MP0 AJ0 1Kp0 LC0 1oo0 Wl0 EQN0 Db0 1fB0 Rb0 npB0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0|81e4", "Asia/Kabul|+04 +0430|-40 -4u|01|-10Qs0|46e5", "Asia/Kamchatka|LMT +11 +12 +13|-ay.A -b0 -c0 -d0|012323232323232323232321232323232323232323232323232323232323212|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|18e4", "Asia/Karachi|LMT +0530 +0630 +05 PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy00 1cL0 dK10 11b0 1610 1jX0|24e6", "Asia/Urumqi|LMT +06|-5O.k -60|01|-1GgtO.k|32e5", "Asia/Kathmandu|LMT +0530 +0545|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g|12e5", "Asia/Khandyga|LMT +08 +09 +10 +11|-92.d -80 -90 -a0 -b0|0123232323232323232323212323232323232323232323232343434343434343432|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2", "Asia/Krasnoyarsk|LMT +06 +07 +08|-6b.q -60 -70 -80|01232323232323232323232123232323232323232323232323232323232323232|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5", "Asia/Kuala_Lumpur|SMT +07 +0720 +0730 +09 +08|-6T.p -70 -7k -7u -90 -80|0123435|-2Bg6T.p 17anT.p l5XE 17bO 8Fyu 1so1u|71e5", "Asia/Kuching|LMT +0730 +08 +0820 +09|-7l.k -7u -80 -8k -90|0123232323232323242|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0|13e4", "Asia/Macau|LMT CST CDT|-7y.k -80 -90|012121212121212121212121212121212121212121|-2le80 1XO3u 1wn0 Rd0 1wn0 R9u 1wqu U10 1tz0 TVu 1tz0 17gu 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cJu 1cL0 1cN0 1fz0 1cN0 1cOu 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cJu 1cL0 1cN0 1fz0 1cN0 1cL0|57e4", "Asia/Magadan|LMT +10 +11 +12|-a3.c -a0 -b0 -c0|012323232323232323232321232323232323232323232323232323232323232312|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Cq0|95e3", "Asia/Makassar|LMT MMT +08 +09 WITA|-7V.A -7V.A -80 -90 -80|01234|-21JjV.A vfc0 myLV.A 8ML0|15e5", "Asia/Manila|+08 +09|-80 -90|010101010|-1kJI0 AL0 cK10 65X0 mXB0 vX0 VK10 1db0|24e6", "Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|32e4", "Asia/Novokuznetsk|LMT +06 +07 +08|-5M.M -60 -70 -80|012323232323232323232321232323232323232323232323232323232323212|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|55e4", "Asia/Novosibirsk|LMT +06 +07 +08|-5v.E -60 -70 -80|0123232323232323232323212323212121212121212121212121212121212121212|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 4eN0|15e5", "Asia/Omsk|LMT +05 +06 +07|-4R.u -50 -60 -70|01232323232323232323232123232323232323232323232323232323232323232|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5", "Asia/Oral|LMT +03 +05 +06 +04|-3p.o -30 -50 -60 -40|01232323232323232424242424242424242424242424242|-1Pc3p.o eUop.o 23CK0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 1cM0 IM0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|27e4", "Asia/Pontianak|LMT PMT +0730 +09 +08 WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu|23e4", "Asia/Pyongyang|LMT KST JST KST|-8n -8u -90 -90|012313|-2um8n 97XR 1lTzu 2Onc0 6BAu|29e5", "Asia/Qyzylorda|LMT +04 +05 +06|-4l.Q -40 -50 -60|0123232323232323232323232323232323232323232323|-1Pc4l.Q eUol.Q 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3ao0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|73e4", "Asia/Rangoon|RMT +0630 +09|-6o.L -6u -90|0121|-21Jio.L SmnS.L 7j9u|48e5", "Asia/Sakhalin|LMT +09 +11 +12 +10|-9u.M -90 -b0 -c0 -a0|01232323232323232323232423232323232424242424242424242424242424242|-2AGVu.M 1BoMu.M 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 2pB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|58e4", "Asia/Samarkand|LMT +04 +05 +06|-4r.R -40 -50 -60|01232323232323232323232|-1Pc4r.R eUor.R 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|36e4", "Asia/Seoul|LMT KST JST KST KDT KDT|-8r.Q -8u -90 -90 -9u -a0|0123141414141414135353|-2um8r.Q 97XV.Q 1m1zu kKo0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6", "Asia/Srednekolymsk|LMT +10 +11 +12|-ae.Q -a0 -b0 -c0|01232323232323232323232123232323232323232323232323232323232323232|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2", "Asia/Taipei|CST JST CDT|-80 -90 -90|01020202020202020202020202020202020202020|-1iw80 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0|74e5", "Asia/Tashkent|LMT +05 +06 +07|-4B.b -50 -60 -70|012323232323232323232321|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0|23e5", "Asia/Tbilisi|TBMT +03 +04 +05|-2X.b -30 -40 -50|0123232323232323232323212121232323232323232323212|-1Pc2X.b 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cK0 1cL0 1cN0 1cL0 1cN0 2pz0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5", "Asia/Tehran|LMT TMT +0330 +04 +05 +0430|-3p.I -3p.I -3u -40 -50 -4u|01234325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2btDp.I 1d3c0 1huLT.I TXu 1pz0 sN0 vAu 1cL0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0|14e6", "Asia/Thimphu|LMT +0530 +06|-5W.A -5u -60|012|-Su5W.A 1BGMs.A|79e3", "Asia/Tokyo|JST JDT|-90 -a0|010101010|-QJJ0 Rb0 1ld0 14n0 1zd0 On0 1zd0 On0|38e6", "Asia/Tomsk|LMT +06 +07 +08|-5D.P -60 -70 -80|0123232323232323232323212323232323232323232323212121212121212121212|-21NhD.P pxzD.P 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 co0 1bB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Qp0|10e5", "Asia/Ulaanbaatar|LMT +07 +08 +09|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|12e5", "Asia/Ust-Nera|LMT +08 +09 +12 +11 +10|-9w.S -80 -90 -c0 -b0 -a0|012343434343434343434345434343434343434343434343434343434343434345|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2", "Asia/Vladivostok|LMT +09 +10 +11|-8L.v -90 -a0 -b0|01232323232323232323232123232323232323232323232323232323232323232|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4", "Asia/Yakutsk|LMT +08 +09 +10|-8C.W -80 -90 -a0|01232323232323232323232123232323232323232323232323232323232323232|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4", "Asia/Yekaterinburg|LMT PMT +04 +05 +06|-42.x -3J.5 -40 -50 -60|012343434343434343434343234343434343434343434343434343434343434343|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5", "Asia/Yerevan|LMT +03 +04 +05|-2W -30 -40 -50|0123232323232323232323212121212323232323232323232323232323232|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 4RX0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5", "Atlantic/Azores|HMT -02 -01 +00 WET|1S.w 20 10 0 0|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323234323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2ldW0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4", "Atlantic/Bermuda|LMT AST ADT|4j.i 40 30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1BnRE.G 1LTbE.G 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3", "Atlantic/Canary|LMT -01 WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4", "Atlantic/Cape_Verde|LMT -02 -01|1y.4 20 10|01212|-2ldW0 1eEo0 7zX0 1djf0|50e4", "Atlantic/Faroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|49e3", "Atlantic/Madeira|FMT -01 +00 +01 WET WEST|17.A 10 0 -10 0 -10|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldX0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e4", "Atlantic/Reykjavik|LMT -01 +00 GMT|1s 10 0 0|012121212121212121212121212121212121212121212121212121212121212121213|-2uWmw mfaw 1Bd0 ML0 1LB0 Cn0 1LB0 3fX0 C10 HrX0 1cO0 LB0 1EL0 LA0 1C00 Oo0 1wo0 Rc0 1wo0 Rc0 1wo0 Rc0 1zc0 Oo0 1zc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0|12e4", "Atlantic/South_Georgia|-02|20|0||30", "Atlantic/Stanley|SMT -04 -03 -02|3P.o 40 30 20|012121212121212323212121212121212121212121212121212121212121212121212|-2kJw8.A 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 2mN0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2", "Australia/Sydney|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|40e5", "Australia/Adelaide|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|11e5", "Australia/Brisbane|AEST AEDT|-a0 -b0|01010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5", "Australia/Broken_Hill|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|18e3", "Australia/Currie|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|746", "Australia/Darwin|ACST ACDT|-9u -au|010101010|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0|12e4", "Australia/Eucla|+0845 +0945|-8J -9J|0101010101010101010|-293kI xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368", "Australia/Hobart|AEST AEDT|-a0 -b0|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 VfB0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|21e4", "Australia/Lord_Howe|AEST +1030 +1130 +11|-a0 -au -bu -b0|0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|raC0 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu|347", "Australia/Lindeman|AEST AEDT|-a0 -b0|010101010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10", "Australia/Melbourne|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|39e5", "Australia/Perth|AWST AWDT|-80 -90|0101010101010101010|-293jX xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5", "CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00", "Pacific/Easter|EMT -07 -06 -05|7h.s 70 60 50|012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1uSgG.w 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 2pA0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0|30e2", "CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00", "Europe/Dublin|DMT IST GMT BST IST|p.l -y.D 0 -10 -10|01232323232324242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-2ax9y.D Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g600 14o0 1wo0 17c0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5", "EST|EST|50|0|", "EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "Etc/GMT-0|GMT|0|0|", "Etc/GMT-1|+01|-10|0|", "Pacific/Port_Moresby|+10|-a0|0||25e4", "Pacific/Pohnpei|+11|-b0|0||34e3", "Pacific/Tarawa|+12|-c0|0||29e3", "Etc/GMT-13|+13|-d0|0|", "Etc/GMT-14|+14|-e0|0|", "Etc/GMT-2|+02|-20|0|", "Etc/GMT-3|+03|-30|0|", "Etc/GMT-4|+04|-40|0|", "Etc/GMT-5|+05|-50|0|", "Etc/GMT-6|+06|-60|0|", "Indian/Christmas|+07|-70|0||21e2", "Etc/GMT-8|+08|-80|0|", "Pacific/Palau|+09|-90|0||21e3", "Etc/GMT+1|-01|10|0|", "Etc/GMT+10|-10|a0|0|", "Etc/GMT+11|-11|b0|0|", "Etc/GMT+12|-12|c0|0|", "Etc/GMT+3|-03|30|0|", "Etc/GMT+4|-04|40|0|", "Etc/GMT+5|-05|50|0|", "Etc/GMT+6|-06|60|0|", "Etc/GMT+7|-07|70|0|", "Etc/GMT+8|-08|80|0|", "Etc/GMT+9|-09|90|0|", "Etc/UCT|UCT|0|0|", "Etc/UTC|UTC|0|0|", "Europe/Amsterdam|AMT NST +0120 +0020 CEST CET|-j.w -1j.w -1k -k -20 -10|010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2aFcj.w 11b0 1iP0 11A0 1io0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1co0 1io0 1yo0 Pc0 1a00 1fA0 1Bc0 Mo0 1tc0 Uo0 1tA0 U00 1uo0 W00 1s00 VA0 1so0 Vc0 1sM0 UM0 1wo0 Rc0 1u00 Wo0 1rA0 W00 1s00 VA0 1sM0 UM0 1w00 fV0 BCX.w 1tA0 U00 1u00 Wo0 1sm0 601k WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|16e5", "Europe/Andorra|WET CET CEST|0 -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-UBA0 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|79e3", "Europe/Astrakhan|LMT +03 +04 +05|-3c.c -30 -40 -50|012323232323232323212121212121212121212121212121212121212121212|-1Pcrc.c eUMc.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0", "Europe/Athens|AMT EET EEST CEST CET|-1y.Q -20 -30 -20 -10|012123434121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a61x.Q CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|35e5", "Europe/London|GMT BST BDST|0 -10 -20|0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|10e6", "Europe/Belgrade|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19RC0 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5", "Europe/Berlin|CET CEST CEMT|-10 -20 -30|01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e5", "Europe/Prague|CET CEST GMT|-10 -20 0|01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 1qM0 11c0 mp0 xA0 mn0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|13e5", "Europe/Brussels|WET CET CEST WEST|0 -10 -20 -10|0121212103030303030303030303030303030303030303030303212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ehc0 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|21e5", "Europe/Bucharest|BMT EET EEST|-1I.o -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1xApI.o 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|19e5", "Europe/Budapest|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1ip0 17b0 1op0 1tb0 Q2m0 3Ne0 WM0 1fA0 1cM0 1cM0 1oJ0 1dc0 1030 1fA0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1iM0 1fA0 8Ha0 Rb0 1wN0 Rb0 1BB0 Lz0 1C20 LB0 SNX0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5", "Europe/Zurich|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19Lc0 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e4", "Europe/Chisinau|CMT BMT EET EEST CEST CET MSK MSD|-1T -1I.o -20 -30 -20 -10 -30 -40|012323232323232323234545467676767676767676767323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-26jdT wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 gL0 WO0 1cM0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|67e4", "Europe/Copenhagen|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 Tz0 VuO0 60q0 WM0 1fA0 1cM0 1cM0 1cM0 S00 1HA0 Nc0 1C00 Dc0 1Nc0 Ao0 1h5A0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5", "Europe/Gibraltar|GMT BST BDST CET CEST|0 -10 -20 -10 -20|010101010101010101010101010101010101010101010101012121212121010121010101010101010101034343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|30e3", "Europe/Helsinki|HMT EET EEST|-1D.N -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1WuND.N OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5", "Europe/Kaliningrad|CET CEST CET CEST MSK MSD EEST EET +03|-10 -20 -20 -30 -30 -40 -30 -20 -30|0101010101010232454545454545454546767676767676767676767676767676767676767676787|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 Am0 Lb0 1en0 op0 1pNz0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4", "Europe/Kiev|KMT EET MSK CEST CET MSD EEST|-22.4 -20 -30 -20 -10 -40 -30|0123434252525252525252525256161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc22.4 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|34e5", "Europe/Kirov|LMT +03 +04 +05|-3i.M -30 -40 -50|01232323232323232321212121212121212121212121212121212121212121|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|48e4", "Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2le00 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e5", "Europe/Luxembourg|LMT CET CEST WET WEST WEST WET|-o.A -10 -20 0 -10 -20 -10|0121212134343434343434343434343434343434343434343434565651212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2DG0o.A t6mo.A TB0 1nX0 Up0 1o20 11A0 rW0 CM0 1qP0 R90 1EO0 UK0 1u20 10m0 1ip0 1in0 17e0 19W0 1fB0 1db0 1cp0 1in0 17d0 1fz0 1a10 1in0 1a10 1in0 17f0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 vA0 60L0 WM0 1fA0 1cM0 17c0 1io0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4", "Europe/Madrid|WET WEST WEMT CET CEST|0 -10 -20 -10 -20|010101010101010101210343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-25Td0 19B0 1cL0 1dd0 b1z0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1in0 17d0 iIn0 Hd0 1cL0 bb0 1200 2s20 14n0 5aL0 Mp0 1vz0 17d0 1in0 17d0 1in0 17d0 1in0 17d0 6hX0 11B0 XHX0 1a10 1fz0 1a10 19X0 1cN0 1fz0 1a10 1fC0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e5", "Europe/Malta|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1co0 17c0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1co0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4", "Europe/Minsk|MMT EET MSK CEST CET MSD EEST +03|-1O -20 -30 -20 -10 -40 -30 -30|01234343252525252525252525261616161616161616161616161616161616161617|-1Pc1O eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0|19e5", "Europe/Monaco|PMT WET WEST WEMT CET CEST|-9.l 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121212121232323232345454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 2RV0 11z0 11B0 1ze0 WM0 1fA0 1cM0 1fa0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e3", "Europe/Moscow|MMT MMT MST MDST MSD MSK +05 EET EEST MSK|-2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|012132345464575454545454545454545458754545454545454545454545454545454545454595|-2ag2u.h 2pyW.W 1bA0 11X0 GN0 1Hb0 c4v.j ik0 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6", "Europe/Paris|PMT WET WEST CEST CET WEMT|-9.l 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123434352543434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2nco8.l cNb8.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e6", "Europe/Riga|RMT LST EET MSK CEST CET MSD EEST|-1A.y -2A.y -20 -30 -20 -10 -40 -30|010102345454536363636363636363727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-25TzA.y 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|64e4", "Europe/Rome|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1cM0 16M0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1C00 LA0 1zc0 Oo0 1C00 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|39e5", "Europe/Samara|LMT +03 +04 +05|-3k.k -30 -40 -50|0123232323232323232121232323232323232323232323232323232323212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2y10 14m0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|12e5", "Europe/Saratov|LMT +03 +04 +05|-34.i -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 5810", "Europe/Simferopol|SMT EET MSK CEST CET MSD EEST MSK|-2g -20 -30 -20 -10 -40 -30 -40|012343432525252525252525252161616525252616161616161616161616161616161616172|-1Pc2g eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eL0 1cL0 1cN0 1cL0 1cN0 dX0 WL0 1cN0 1cL0 1fB0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4", "Europe/Sofia|EET CET CEST EEST|-20 -10 -20 -30|01212103030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030|-168L0 WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5", "Europe/Stockholm|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 TB0 2yDe0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|15e5", "Europe/Tallinn|TMT CET CEST EET MSK MSD EEST|-1D -10 -20 -20 -30 -40 -30|012103421212454545454545454546363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-26oND teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e4", "Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4", "Europe/Ulyanovsk|LMT +03 +04 +05 +02|-3d.A -30 -40 -50 -20|01232323232323232321214121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0", "Europe/Uzhgorod|CET CEST MSK MSD EET EEST|-10 -20 -30 -40 -20 -30|010101023232323232323232320454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-1cqL0 6i00 WM0 1fA0 1cM0 1ml0 1Cp0 1r3W0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 1Nf0 2pw0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e4", "Europe/Vienna|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1a00 1cM0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5", "Europe/Vilnius|WMT KMT CET EET MSK CEST MSD EEST|-1o -1z.A -10 -20 -30 -20 -40 -30|012324525254646464646464646473737373737373737352537373737373737373737373737373737373737373737373737373737373737373737373|-293do 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4", "Europe/Volgograd|LMT +03 +04 +05|-2V.E -30 -40 -50|01232323232323232121212121212121212121212121212121212121212121|-21IqV.E psLV.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5", "Europe/Warsaw|WMT CET CEST EET EEST|-1o -10 -20 -20 -30|012121234312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ctdo 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5", "Europe/Zaporozhye|+0220 EET MSK CEST CET MSD EEST|-2k -20 -30 -20 -10 -40 -30|01234342525252525252525252526161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc2k eUok rdb0 2RE0 WM0 1fA0 8m0 1v9a0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|77e4", "HST|HST|a0|0|", "Indian/Chagos|LMT +05 +06|-4N.E -50 -60|012|-2xosN.E 3AGLN.E|30e2", "Indian/Cocos|+0630|-6u|0||596", "Indian/Kerguelen|-00 +05|0 -50|01|-MG00|130", "Indian/Mahe|LMT +04|-3F.M -40|01|-2yO3F.M|79e3", "Indian/Maldives|MMT +05|-4S -50|01|-olgS|35e4", "Indian/Mauritius|LMT +04 +05|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0|15e4", "Indian/Reunion|LMT +04|-3F.Q -40|01|-2mDDF.Q|84e4", "Pacific/Kwajalein|+11 -12 +12|-b0 c0 -c0|012|-AX0 W9X0|14e3", "MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00", "MST|MST|70|0|", "MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "Pacific/Chatham|+1215 +1245 +1345|-cf -cJ -dJ|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-WqAf 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|600", "Pacific/Apia|LMT -1130 -11 -10 +14 +13|bq.U bu b0 a0 -e0 -d0|01232345454545454545454545454545454545454545454545454545454|-2nDMx.4 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|37e3", "Pacific/Bougainville|+10 +09 +11|-a0 -90 -b0|0102|-16Wy0 7CN0 2MQp0|18e4", "Pacific/Efate|LMT +11 +12|-bd.g -b0 -c0|0121212121212121212121|-2l9nd.g 2Szcd.g 1cL0 1oN0 10L0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3", "Pacific/Enderbury|-12 -11 +13|c0 b0 -d0|012|nIc0 B7X0|1", "Pacific/Fakaofo|-11 +13|b0 -d0|01|1Gfn0|483", "Pacific/Fiji|LMT +12 +13|-bT.I -c0 -d0|0121212121212121212121212121212121212121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0|88e4", "Pacific/Galapagos|LMT -05 -06|5W.o 50 60|01212|-1yVS1.A 2dTz1.A gNd0 rz0|25e3", "Pacific/Gambier|LMT -09|8X.M 90|01|-2jof0.c|125", "Pacific/Guadalcanal|LMT +11|-aD.M -b0|01|-2joyD.M|11e4", "Pacific/Guam|GST ChST|-a0 -a0|01|1fpq0|17e4", "Pacific/Honolulu|HST HDT HST|au 9u a0|010102|-1thLu 8x0 lef0 8Pz0 46p0|37e4", "Pacific/Kiritimati|-1040 -10 +14|aE a0 -e0|012|nIaE B7Xk|51e2", "Pacific/Kosrae|+11 +12|-b0 -c0|010|-AX0 1bdz0|66e2", "Pacific/Majuro|+11 +12|-b0 -c0|01|-AX0|28e3", "Pacific/Marquesas|LMT -0930|9i 9u|01|-2joeG|86e2", "Pacific/Pago_Pago|LMT SST|bm.M b0|01|-2nDMB.c|37e2", "Pacific/Nauru|LMT +1130 +09 +12|-b7.E -bu -90 -c0|01213|-1Xdn7.E PvzB.E 5RCu 1ouJu|10e3", "Pacific/Niue|-1120 -1130 -11|bk bu b0|012|-KfME 17y0a|12e2", "Pacific/Norfolk|+1112 +1130 +1230 +11|-bc -bu -cu -b0|01213|-Kgbc W01G On0 1COp0|25e4", "Pacific/Noumea|LMT +11 +12|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0|98e3", "Pacific/Pitcairn|-0830 -08|8u 80|01|18Vku|56", "Pacific/Rarotonga|-1030 -0930 -10|au 9u a0|012121212121212121212121212|lyWu IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3", "Pacific/Tahiti|LMT -10|9W.g a0|01|-2joe1.I|18e4", "Pacific/Tongatapu|+1220 +13 +14|-ck -d0 -e0|0121212121|-1aB0k 2n5dk 15A0 1wo0 xz0 1Q10 xz0 zWN0 s00|75e3", "PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0", "WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00"],
        links: ["Africa/Abidjan|Africa/Bamako", "Africa/Abidjan|Africa/Banjul", "Africa/Abidjan|Africa/Conakry", "Africa/Abidjan|Africa/Dakar", "Africa/Abidjan|Africa/Freetown", "Africa/Abidjan|Africa/Lome", "Africa/Abidjan|Africa/Nouakchott", "Africa/Abidjan|Africa/Ouagadougou", "Africa/Abidjan|Africa/Timbuktu", "Africa/Abidjan|Atlantic/St_Helena", "Africa/Cairo|Egypt", "Africa/Johannesburg|Africa/Maseru", "Africa/Johannesburg|Africa/Mbabane", "Africa/Lagos|Africa/Bangui", "Africa/Lagos|Africa/Brazzaville", "Africa/Lagos|Africa/Douala", "Africa/Lagos|Africa/Kinshasa", "Africa/Lagos|Africa/Libreville", "Africa/Lagos|Africa/Luanda", "Africa/Lagos|Africa/Malabo", "Africa/Lagos|Africa/Niamey", "Africa/Lagos|Africa/Porto-Novo", "Africa/Maputo|Africa/Blantyre", "Africa/Maputo|Africa/Bujumbura", "Africa/Maputo|Africa/Gaborone", "Africa/Maputo|Africa/Harare", "Africa/Maputo|Africa/Kigali", "Africa/Maputo|Africa/Lubumbashi", "Africa/Maputo|Africa/Lusaka", "Africa/Nairobi|Africa/Addis_Ababa", "Africa/Nairobi|Africa/Asmara", "Africa/Nairobi|Africa/Asmera", "Africa/Nairobi|Africa/Dar_es_Salaam", "Africa/Nairobi|Africa/Djibouti", "Africa/Nairobi|Africa/Kampala", "Africa/Nairobi|Africa/Mogadishu", "Africa/Nairobi|Indian/Antananarivo", "Africa/Nairobi|Indian/Comoro", "Africa/Nairobi|Indian/Mayotte", "Africa/Tripoli|Libya", "America/Adak|America/Atka", "America/Adak|US/Aleutian", "America/Anchorage|US/Alaska", "America/Argentina/Buenos_Aires|America/Buenos_Aires", "America/Argentina/Catamarca|America/Argentina/ComodRivadavia", "America/Argentina/Catamarca|America/Catamarca", "America/Argentina/Cordoba|America/Cordoba", "America/Argentina/Cordoba|America/Rosario", "America/Argentina/Jujuy|America/Jujuy", "America/Argentina/Mendoza|America/Mendoza", "America/Atikokan|America/Coral_Harbour", "America/Chicago|US/Central", "America/Curacao|America/Aruba", "America/Curacao|America/Kralendijk", "America/Curacao|America/Lower_Princes", "America/Denver|America/Shiprock", "America/Denver|Navajo", "America/Denver|US/Mountain", "America/Detroit|US/Michigan", "America/Edmonton|Canada/Mountain", "America/Fort_Wayne|America/Indiana/Indianapolis", "America/Fort_Wayne|America/Indianapolis", "America/Fort_Wayne|US/East-Indiana", "America/Halifax|Canada/Atlantic", "America/Havana|Cuba", "America/Indiana/Knox|America/Knox_IN", "America/Indiana/Knox|US/Indiana-Starke", "America/Jamaica|Jamaica", "America/Kentucky/Louisville|America/Louisville", "America/Los_Angeles|US/Pacific", "America/Los_Angeles|US/Pacific-New", "America/Manaus|Brazil/West", "America/Mazatlan|Mexico/BajaSur", "America/Mexico_City|Mexico/General", "America/New_York|US/Eastern", "America/Noronha|Brazil/DeNoronha", "America/Panama|America/Cayman", "America/Phoenix|US/Arizona", "America/Port_of_Spain|America/Anguilla", "America/Port_of_Spain|America/Antigua", "America/Port_of_Spain|America/Dominica", "America/Port_of_Spain|America/Grenada", "America/Port_of_Spain|America/Guadeloupe", "America/Port_of_Spain|America/Marigot", "America/Port_of_Spain|America/Montserrat", "America/Port_of_Spain|America/St_Barthelemy", "America/Port_of_Spain|America/St_Kitts", "America/Port_of_Spain|America/St_Lucia", "America/Port_of_Spain|America/St_Thomas", "America/Port_of_Spain|America/St_Vincent", "America/Port_of_Spain|America/Tortola", "America/Port_of_Spain|America/Virgin", "America/Regina|Canada/Saskatchewan", "America/Rio_Branco|America/Porto_Acre", "America/Rio_Branco|Brazil/Acre", "America/Santiago|Chile/Continental", "America/Sao_Paulo|Brazil/East", "America/St_Johns|Canada/Newfoundland", "America/Tijuana|America/Ensenada", "America/Tijuana|America/Santa_Isabel", "America/Tijuana|Mexico/BajaNorte", "America/Toronto|America/Montreal", "America/Toronto|Canada/Eastern", "America/Vancouver|Canada/Pacific", "America/Whitehorse|Canada/Yukon", "America/Winnipeg|Canada/Central", "Asia/Ashgabat|Asia/Ashkhabad", "Asia/Bangkok|Asia/Phnom_Penh", "Asia/Bangkok|Asia/Vientiane", "Asia/Dhaka|Asia/Dacca", "Asia/Dubai|Asia/Muscat", "Asia/Ho_Chi_Minh|Asia/Saigon", "Asia/Hong_Kong|Hongkong", "Asia/Jerusalem|Asia/Tel_Aviv", "Asia/Jerusalem|Israel", "Asia/Kathmandu|Asia/Katmandu", "Asia/Kolkata|Asia/Calcutta", "Asia/Kuala_Lumpur|Asia/Singapore", "Asia/Kuala_Lumpur|Singapore", "Asia/Macau|Asia/Macao", "Asia/Makassar|Asia/Ujung_Pandang", "Asia/Nicosia|Europe/Nicosia", "Asia/Qatar|Asia/Bahrain", "Asia/Rangoon|Asia/Yangon", "Asia/Riyadh|Asia/Aden", "Asia/Riyadh|Asia/Kuwait", "Asia/Seoul|ROK", "Asia/Shanghai|Asia/Chongqing", "Asia/Shanghai|Asia/Chungking", "Asia/Shanghai|Asia/Harbin", "Asia/Shanghai|PRC", "Asia/Taipei|ROC", "Asia/Tehran|Iran", "Asia/Thimphu|Asia/Thimbu", "Asia/Tokyo|Japan", "Asia/Ulaanbaatar|Asia/Ulan_Bator", "Asia/Urumqi|Asia/Kashgar", "Atlantic/Faroe|Atlantic/Faeroe", "Atlantic/Reykjavik|Iceland", "Atlantic/South_Georgia|Etc/GMT+2", "Australia/Adelaide|Australia/South", "Australia/Brisbane|Australia/Queensland", "Australia/Broken_Hill|Australia/Yancowinna", "Australia/Darwin|Australia/North", "Australia/Hobart|Australia/Tasmania", "Australia/Lord_Howe|Australia/LHI", "Australia/Melbourne|Australia/Victoria", "Australia/Perth|Australia/West", "Australia/Sydney|Australia/ACT", "Australia/Sydney|Australia/Canberra", "Australia/Sydney|Australia/NSW", "Etc/GMT-0|Etc/GMT", "Etc/GMT-0|Etc/GMT+0", "Etc/GMT-0|Etc/GMT0", "Etc/GMT-0|Etc/Greenwich", "Etc/GMT-0|GMT", "Etc/GMT-0|GMT+0", "Etc/GMT-0|GMT-0", "Etc/GMT-0|GMT0", "Etc/GMT-0|Greenwich", "Etc/UCT|UCT", "Etc/UTC|Etc/Universal", "Etc/UTC|Etc/Zulu", "Etc/UTC|UTC", "Etc/UTC|Universal", "Etc/UTC|Zulu", "Europe/Belgrade|Europe/Ljubljana", "Europe/Belgrade|Europe/Podgorica", "Europe/Belgrade|Europe/Sarajevo", "Europe/Belgrade|Europe/Skopje", "Europe/Belgrade|Europe/Zagreb", "Europe/Chisinau|Europe/Tiraspol", "Europe/Dublin|Eire", "Europe/Helsinki|Europe/Mariehamn", "Europe/Istanbul|Asia/Istanbul", "Europe/Istanbul|Turkey", "Europe/Lisbon|Portugal", "Europe/London|Europe/Belfast", "Europe/London|Europe/Guernsey", "Europe/London|Europe/Isle_of_Man", "Europe/London|Europe/Jersey", "Europe/London|GB", "Europe/London|GB-Eire", "Europe/Moscow|W-SU", "Europe/Oslo|Arctic/Longyearbyen", "Europe/Oslo|Atlantic/Jan_Mayen", "Europe/Prague|Europe/Bratislava", "Europe/Rome|Europe/San_Marino", "Europe/Rome|Europe/Vatican", "Europe/Warsaw|Poland", "Europe/Zurich|Europe/Busingen", "Europe/Zurich|Europe/Vaduz", "Indian/Christmas|Etc/GMT-7", "Pacific/Auckland|Antarctica/McMurdo", "Pacific/Auckland|Antarctica/South_Pole", "Pacific/Auckland|NZ", "Pacific/Chatham|NZ-CHAT", "Pacific/Easter|Chile/EasterIsland", "Pacific/Guam|Pacific/Saipan", "Pacific/Honolulu|Pacific/Johnston", "Pacific/Honolulu|US/Hawaii", "Pacific/Kwajalein|Kwajalein", "Pacific/Pago_Pago|Pacific/Midway", "Pacific/Pago_Pago|Pacific/Samoa", "Pacific/Pago_Pago|US/Samoa", "Pacific/Palau|Etc/GMT-9", "Pacific/Pohnpei|Etc/GMT-11", "Pacific/Pohnpei|Pacific/Ponape", "Pacific/Port_Moresby|Etc/GMT-10", "Pacific/Port_Moresby|Pacific/Chuuk", "Pacific/Port_Moresby|Pacific/Truk", "Pacific/Port_Moresby|Pacific/Yap", "Pacific/Tarawa|Etc/GMT-12", "Pacific/Tarawa|Pacific/Funafuti", "Pacific/Tarawa|Pacific/Wake", "Pacific/Tarawa|Pacific/Wallis"]
    }),
    o
}),
function(t, e) {
    "function" == typeof define && define.amd ? define(["moment", "moment-timezone"], e) : "object" == typeof module && module.exports ? module.exports = e(require("moment"), require("moment-timezone")) : e(t.moment, t.moment.tz)
}(this, function(r, t) {
    var e = r.version.split(".")
      , n = +e[0]
      , i = +e[1];
    if (n < 2 || 2 == n && i < 6)
        throw new Error("moment-msdate requires Moment.js >= 2.6.0. You are using Moment.js ${moment.version}. See momentjs.com");
    if (!t || !r.tz)
        throw new Error("moment-msdate requires moment-timezone.js. see momentjs.com/timezone");
    function o(t) {
        return 864e5 * (t - 25569) + (0 <= t ? .5 : -.5)
    }
    function a(t, e) {
        var n = o(t);
        return r(n + 6e4 * e).utc()
    }
    return r.fromOADate = function(t, e) {
        if (isNaN(parseInt(t, 10)))
            throw new TypeError("fromOADate requires an oaDate that is not null or undefined","moment-msdate.js",72);
        if (!e)
            return a(t, 0);
        var n = parseInt(e, 10);
        return isNaN(n) ? function(t, e) {
            if (!r.tz.zone(e))
                throw new Error("timezone provided is not available in moment-timezone.js","moment-msdate.js",59);
            var n = o(t)
              , i = 6e4 * r(n).tz(e).utcOffset();
            return r.tz(n - i, e).utc()
        }(t, e) : a(t, n)
    }
    ,
    r.fn.toOADate = function() {
        return this.valueOf() / 864e5 + 25569
    }
    ,
    r
}),
function(t, e) {
    "function" == typeof define && define.amd ? define(e) : "object" == typeof module && module.exports ? module.exports = e() : t.numeral = e()
}(this, function() {
    function o(t, e) {
        this._input = t,
        this._value = e
    }
    var a, c, u, t, s = {}, g = {}, e = {
        currentLocale: "en",
        zeroFormat: null,
        nullFormat: null,
        defaultFormat: "0,0",
        scalePercentBy100: !0
    }, l = {
        currentLocale: e.currentLocale,
        zeroFormat: e.zeroFormat,
        nullFormat: e.nullFormat,
        defaultFormat: e.defaultFormat,
        scalePercentBy100: e.scalePercentBy100
    }, v = function(t) {
        var e, n, i, r;
        if (v.isNumeral(t))
            e = t.value();
        else if (0 === t || void 0 === t)
            e = 0;
        else if (null === t || a.isNaN(t))
            e = null;
        else if ("string" == typeof t)
            if (l.zeroFormat && t === l.zeroFormat)
                e = 0;
            else if (l.nullFormat && t === l.nullFormat || !t.replace(/[^0-9]+/g, "").length)
                e = null;
            else {
                for (n in s)
                    if ((r = "function" == typeof s[n].regexps.unformat ? s[n].regexps.unformat() : s[n].regexps.unformat) && t.match(r)) {
                        i = s[n].unformat;
                        break
                    }
                e = (i = i || v._.stringToNumber)(t)
            }
        else
            e = Number(t) || null;
        return new o(t,e)
    };
    return v.version = "2.0.6",
    v.isNumeral = function(t) {
        return t instanceof o
    }
    ,
    v._ = a = {
        numberToFormat: function(t, e, n) {
            var i, r, o, a, s, c, u, l, h = g[v.options.currentLocale], f = !1, p = !1, d = "", M = "", b = !1;
            if (t = t || 0,
            r = Math.abs(t),
            v._.includes(e, "(") ? (f = !0,
            e = e.replace(/[\(|\)]/g, "")) : (v._.includes(e, "+") || v._.includes(e, "-")) && (s = v._.includes(e, "+") ? e.indexOf("+") : t < 0 ? e.indexOf("-") : -1,
            e = e.replace(/[\+|\-]/g, "")),
            v._.includes(e, "a") && (i = !!(i = e.match(/a(k|m|b|t)?/)) && i[1],
            v._.includes(e, " a") && (d = " "),
            e = e.replace(new RegExp(d + "a[kmbt]?"), ""),
            1e12 <= r && !i || "t" === i ? (d += h.abbreviations.trillion,
            t /= 1e12) : r < 1e12 && 1e9 <= r && !i || "b" === i ? (d += h.abbreviations.billion,
            t /= 1e9) : r < 1e9 && 1e6 <= r && !i || "m" === i ? (d += h.abbreviations.million,
            t /= 1e6) : (r < 1e6 && 1e3 <= r && !i || "k" === i) && (d += h.abbreviations.thousand,
            t /= 1e3)),
            v._.includes(e, "[.]") && (p = !0,
            e = e.replace("[.]", ".")),
            o = t.toString().split(".")[0],
            a = e.split(".")[1],
            c = e.indexOf(","),
            l = (e.split(".")[0].split(",")[0].match(/0/g) || []).length,
            a ? (o = (M = v._.includes(a, "[") ? (a = (a = a.replace("]", "")).split("["),
            v._.toFixed(t, a[0].length + a[1].length, n, a[1].length)) : v._.toFixed(t, a.length, n)).split(".")[0],
            M = v._.includes(M, ".") ? h.delimiters.decimal + M.split(".")[1] : "",
            p && 0 === Number(M.slice(1)) && (M = "")) : o = v._.toFixed(t, 0, n),
            d && !i && 1e3 <= Number(o) && d !== h.abbreviations.trillion)
                switch (o = String(Number(o) / 1e3),
                d) {
                case h.abbreviations.thousand:
                    d = h.abbreviations.million;
                    break;
                case h.abbreviations.million:
                    d = h.abbreviations.billion;
                    break;
                case h.abbreviations.billion:
                    d = h.abbreviations.trillion
                }
            if (v._.includes(o, "-") && (o = o.slice(1),
            b = !0),
            o.length < l)
                for (var m = l - o.length; 0 < m; m--)
                    o = "0" + o;
            return -1 < c && (o = o.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1" + h.delimiters.thousands)),
            0 === e.indexOf(".") && (o = ""),
            u = o + M + (d || ""),
            f ? u = (f && b ? "(" : "") + u + (f && b ? ")" : "") : 0 <= s ? u = 0 === s ? (b ? "-" : "+") + u : u + (b ? "-" : "+") : b && (u = "-" + u),
            u
        },
        stringToNumber: function(t) {
            var e, n, i, r = g[l.currentLocale], o = t, a = {
                thousand: 3,
                million: 6,
                billion: 9,
                trillion: 12
            };
            if (l.zeroFormat && t === l.zeroFormat)
                n = 0;
            else if (l.nullFormat && t === l.nullFormat || !t.replace(/[^0-9]+/g, "").length)
                n = null;
            else {
                for (e in n = 1,
                "." !== r.delimiters.decimal && (t = t.replace(/\./g, "").replace(r.delimiters.decimal, ".")),
                a)
                    if (i = new RegExp("[^a-zA-Z]" + r.abbreviations[e] + "(?:\\)|(\\" + r.currency.symbol + ")?(?:\\))?)?$"),
                    o.match(i)) {
                        n *= Math.pow(10, a[e]);
                        break
                    }
                n *= (t.split("-").length + Math.min(t.split("(").length - 1, t.split(")").length - 1)) % 2 ? 1 : -1,
                t = t.replace(/[^0-9\.]+/g, ""),
                n *= Number(t)
            }
            return n
        },
        isNaN: function(t) {
            return "number" == typeof t && isNaN(t)
        },
        includes: function(t, e) {
            return -1 !== t.indexOf(e)
        },
        insert: function(t, e, n) {
            return t.slice(0, n) + e + t.slice(n)
        },
        reduce: function(t, e) {
            if (null === this)
                throw new TypeError("Array.prototype.reduce called on null or undefined");
            if ("function" != typeof e)
                throw new TypeError(e + " is not a function");
            var n, i = Object(t), r = i.length >>> 0, o = 0;
            if (3 === arguments.length)
                n = arguments[2];
            else {
                for (; o < r && !(o in i); )
                    o++;
                if (r <= o)
                    throw new TypeError("Reduce of empty array with no initial value");
                n = i[o++]
            }
            for (; o < r; o++)
                o in i && (n = e(n, i[o], o, i));
            return n
        },
        multiplier: function(t) {
            var e = t.toString().split(".");
            return e.length < 2 ? 1 : Math.pow(10, e[1].length)
        },
        correctionFactor: function() {
            return Array.prototype.slice.call(arguments).reduce(function(t, e) {
                var n = a.multiplier(e);
                return n < t ? t : n
            }, 1)
        },
        toFixed: function(t, e, n, i) {
            var r, o = t.toString().split("."), a = e - (i || 0), s = 2 === o.length ? Math.min(Math.max(o[1].length, a), e) : a, c = Math.pow(10, s), u = (n(t + "e+" + s) / c).toFixed(s);
            return e - s < i && (r = new RegExp("\\.?0{1," + (i - (e - s)) + "}$"),
            u = u.replace(r, "")),
            u
        }
    },
    v.options = l,
    v.formats = s,
    v.locales = g,
    v.locale = function(t) {
        return t && (l.currentLocale = t.toLowerCase()),
        l.currentLocale
    }
    ,
    v.localeData = function(t) {
        if (!t)
            return g[l.currentLocale];
        if (t = t.toLowerCase(),
        !g[t])
            throw new Error("Unknown locale : " + t);
        return g[t]
    }
    ,
    v.reset = function() {
        for (var t in e)
            l[t] = e[t]
    }
    ,
    v.zeroFormat = function(t) {
        l.zeroFormat = "string" == typeof t ? t : null
    }
    ,
    v.nullFormat = function(t) {
        l.nullFormat = "string" == typeof t ? t : null
    }
    ,
    v.defaultFormat = function(t) {
        l.defaultFormat = "string" == typeof t ? t : "0.0"
    }
    ,
    v.register = function(t, e, n) {
        if (e = e.toLowerCase(),
        this[t + "s"][e])
            throw new TypeError(e + " " + t + " already registered.");
        return this[t + "s"][e] = n
    }
    ,
    v.validate = function(t, e) {
        var n, i, r, o, a, s, c, u;
        if ("string" != typeof t && (t += "",
        console.warn),
        (t = t.trim()).match(/^\d+$/))
            return !0;
        if ("" === t)
            return !1;
        try {
            c = v.localeData(e)
        } catch (t) {
            c = v.localeData(v.locale())
        }
        return r = c.currency.symbol,
        a = c.abbreviations,
        n = c.delimiters.decimal,
        i = "." === c.delimiters.thousands ? "\\." : c.delimiters.thousands,
        (null === (u = t.match(/^[^\d]+/)) || (t = t.substr(1),
        u[0] === r)) && ((null === (u = t.match(/[^\d]+$/)) || (t = t.slice(0, -1),
        u[0] === a.thousand || u[0] === a.million || u[0] === a.billion || u[0] === a.trillion)) && (s = new RegExp(i + "{2}"),
        !t.match(/[^\d.,]/g) && (!(2 < (o = t.split(n)).length) && (o.length < 2 ? !!o[0].match(/^\d+.*\d$/) && !o[0].match(s) : 1 === o[0].length ? !!o[0].match(/^\d+$/) && !o[0].match(s) && !!o[1].match(/^\d+$/) : !!o[0].match(/^\d+.*\d$/) && !o[0].match(s) && !!o[1].match(/^\d+$/)))))
    }
    ,
    v.fn = o.prototype = {
        clone: function() {
            return v(this)
        },
        format: function(t, e) {
            var n, i, r, o = this._value, a = t || l.defaultFormat;
            if (e = e || Math.round,
            0 === o && null !== l.zeroFormat)
                i = l.zeroFormat;
            else if (null === o && null !== l.nullFormat)
                i = l.nullFormat;
            else {
                for (n in s)
                    if (a.match(s[n].regexps.format)) {
                        r = s[n].format;
                        break
                    }
                i = (r = r || v._.numberToFormat)(o, a, e)
            }
            return i
        },
        value: function() {
            return this._value
        },
        input: function() {
            return this._input
        },
        set: function(t) {
            return this._value = Number(t),
            this
        },
        add: function(t) {
            var r = a.correctionFactor.call(null, this._value, t);
            return this._value = a.reduce([this._value, t], function(t, e, n, i) {
                return t + Math.round(r * e)
            }, 0) / r,
            this
        },
        subtract: function(t) {
            var r = a.correctionFactor.call(null, this._value, t);
            return this._value = a.reduce([t], function(t, e, n, i) {
                return t - Math.round(r * e)
            }, Math.round(this._value * r)) / r,
            this
        },
        multiply: function(t) {
            return this._value = a.reduce([this._value, t], function(t, e, n, i) {
                var r = a.correctionFactor(t, e);
                return Math.round(t * r) * Math.round(e * r) / Math.round(r * r)
            }, 1),
            this
        },
        divide: function(t) {
            return this._value = a.reduce([this._value, t], function(t, e, n, i) {
                var r = a.correctionFactor(t, e);
                return Math.round(t * r) / Math.round(e * r)
            }),
            this
        },
        difference: function(t) {
            return Math.abs(v(this._value).subtract(t).value())
        }
    },
    v.register("locale", "en", {
        delimiters: {
            thousands: ",",
            decimal: "."
        },
        abbreviations: {
            thousand: "k",
            million: "m",
            billion: "b",
            trillion: "t"
        },
        ordinal: function(t) {
            var e = t % 10;
            return 1 == ~~(t % 100 / 10) ? "th" : 1 == e ? "st" : 2 == e ? "nd" : 3 == e ? "rd" : "th"
        },
        currency: {
            symbol: "$"
        }
    }),
    v.register("format", "bps", {
        regexps: {
            format: /(BPS)/,
            unformat: /(BPS)/
        },
        format: function(t, e, n) {
            var i, r = v._.includes(e, " BPS") ? " " : "";
            return t *= 1e4,
            e = e.replace(/\s?BPS/, ""),
            i = v._.numberToFormat(t, e, n),
            i = v._.includes(i, ")") ? ((i = i.split("")).splice(-1, 0, r + "BPS"),
            i.join("")) : i + r + "BPS"
        },
        unformat: function(t) {
            return +(1e-4 * v._.stringToNumber(t)).toFixed(15)
        }
    }),
    u = {
        base: 1024,
        suffixes: ["B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"]
    },
    t = "(" + (t = (c = {
        base: 1e3,
        suffixes: ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]
    }).suffixes.concat(u.suffixes.filter(function(t) {
        return c.suffixes.indexOf(t) < 0
    })).join("|")).replace("B", "B(?!PS)") + ")",
    v.register("format", "bytes", {
        regexps: {
            format: /([0\s]i?b)/,
            unformat: new RegExp(t)
        },
        format: function(t, e, n) {
            var i, r, o, a = v._.includes(e, "ib") ? u : c, s = v._.includes(e, " b") || v._.includes(e, " ib") ? " " : "";
            for (e = e.replace(/\s?i?b/, ""),
            i = 0; i <= a.suffixes.length; i++)
                if (r = Math.pow(a.base, i),
                o = Math.pow(a.base, i + 1),
                null === t || 0 === t || r <= t && t < o) {
                    s += a.suffixes[i],
                    0 < r && (t /= r);
                    break
                }
            return v._.numberToFormat(t, e, n) + s
        },
        unformat: function(t) {
            var e, n, i = v._.stringToNumber(t);
            if (i) {
                for (e = c.suffixes.length - 1; 0 <= e; e--) {
                    if (v._.includes(t, c.suffixes[e])) {
                        n = Math.pow(c.base, e);
                        break
                    }
                    if (v._.includes(t, u.suffixes[e])) {
                        n = Math.pow(u.base, e);
                        break
                    }
                }
                i *= n || 1
            }
            return i
        }
    }),
    v.register("format", "currency", {
        regexps: {
            format: /(\$)/
        },
        format: function(t, e, n) {
            var i, r, o = v.locales[v.options.currentLocale], a = {
                before: e.match(/^([\+|\-|\(|\s|\$]*)/)[0],
                after: e.match(/([\+|\-|\)|\s|\$]*)$/)[0]
            };
            for (e = e.replace(/\s?\$\s?/, ""),
            i = v._.numberToFormat(t, e, n),
            0 <= t ? (a.before = a.before.replace(/[\-\(]/, ""),
            a.after = a.after.replace(/[\-\)]/, "")) : t < 0 && !v._.includes(a.before, "-") && !v._.includes(a.before, "(") && (a.before = "-" + a.before),
            r = 0; r < a.before.length; r++)
                switch (a.before[r]) {
                case "$":
                    i = v._.insert(i, o.currency.symbol, r);
                    break;
                case " ":
                    i = v._.insert(i, " ", r + o.currency.symbol.length - 1)
                }
            for (r = a.after.length - 1; 0 <= r; r--)
                switch (a.after[r]) {
                case "$":
                    i = r === a.after.length - 1 ? i + o.currency.symbol : v._.insert(i, o.currency.symbol, -(a.after.length - (1 + r)));
                    break;
                case " ":
                    i = r === a.after.length - 1 ? i + " " : v._.insert(i, " ", -(a.after.length - (1 + r) + o.currency.symbol.length - 1))
                }
            return i
        }
    }),
    v.register("format", "exponential", {
        regexps: {
            format: /(e\+|e-)/,
            unformat: /(e\+|e-)/
        },
        format: function(t, e, n) {
            var i = ("number" != typeof t || v._.isNaN(t) ? "0e+0" : t.toExponential()).split("e");
            return e = e.replace(/e[\+|\-]{1}0/, ""),
            v._.numberToFormat(Number(i[0]), e, n) + "e" + i[1]
        },
        unformat: function(t) {
            var e = v._.includes(t, "e+") ? t.split("e+") : t.split("e-")
              , n = Number(e[0])
              , i = Number(e[1])
              , i = v._.includes(t, "e-") ? i *= -1 : i;
            return v._.reduce([n, Math.pow(10, i)], function(t, e, n, i) {
                var r = v._.correctionFactor(t, e);
                return t * r * (e * r) / (r * r)
            }, 1)
        }
    }),
    v.register("format", "ordinal", {
        regexps: {
            format: /(o)/
        },
        format: function(t, e, n) {
            var i = v.locales[v.options.currentLocale]
              , r = v._.includes(e, " o") ? " " : "";
            return e = e.replace(/\s?o/, ""),
            r += i.ordinal(t),
            v._.numberToFormat(t, e, n) + r
        }
    }),
    v.register("format", "percentage", {
        regexps: {
            format: /(%)/,
            unformat: /(%)/
        },
        format: function(t, e, n) {
            var i, r = v._.includes(e, " %") ? " " : "";
            return v.options.scalePercentBy100 && (t *= 100),
            e = e.replace(/\s?\%/, ""),
            i = v._.numberToFormat(t, e, n),
            i = v._.includes(i, ")") ? ((i = i.split("")).splice(-1, 0, r + "%"),
            i.join("")) : i + r + "%"
        },
        unformat: function(t) {
            var e = v._.stringToNumber(t);
            return v.options.scalePercentBy100 ? .01 * e : e
        }
    }),
    v.register("format", "time", {
        regexps: {
            format: /(:)/,
            unformat: /(:)/
        },
        format: function(t, e, n) {
            var i = Math.floor(t / 60 / 60)
              , r = Math.floor((t - 60 * i * 60) / 60)
              , o = Math.round(t - 60 * i * 60 - 60 * r);
            return i + ":" + (r < 10 ? "0" + r : r) + ":" + (o < 10 ? "0" + o : o)
        },
        unformat: function(t) {
            var e = t.split(":")
              , n = 0;
            return 3 === e.length ? (n += 60 * Number(e[0]) * 60,
            n += 60 * Number(e[1]),
            n += Number(e[2])) : 2 === e.length && (n += 60 * Number(e[0]),
            n += Number(e[1])),
            Number(n)
        }
    }),
    v
}),
function(t) {
    var e;
    "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : ("undefined" != typeof window ? e = window : "undefined" != typeof global ? e = global : "undefined" != typeof self && (e = self),
    e.html2canvas = t())
}(function() {
    return function o(a, s, c) {
        function u(n, t) {
            if (!s[n]) {
                if (!a[n]) {
                    var e = "function" == typeof require && require;
                    if (!t && e)
                        return e(n, !0);
                    if (l)
                        return l(n, !0);
                    var i = new Error("Cannot find module '" + n + "'");
                    throw i.code = "MODULE_NOT_FOUND",
                    i
                }
                var r = s[n] = {
                    exports: {}
                };
                a[n][0].call(r.exports, function(t) {
                    var e = a[n][1][t];
                    return u(e || t)
                }, r, r.exports, o, a, s, c)
            }
            return s[n].exports
        }
        for (var l = "function" == typeof require && require, t = 0; t < c.length; t++)
            u(c[t]);
        return u
    }({
        1: [function(t, x, k) {
            (function(C) {
                !function(t) {
                    function m(t) {
                        throw RangeError(d[t])
                    }
                    function n(t, e) {
                        for (var n = t.length; n--; )
                            t[n] = e(t[n]);
                        return t
                    }
                    function e(t, e) {
                        return n(t.split(p), e).join(".")
                    }
                    function g(t) {
                        for (var e, n, i = [], r = 0, o = t.length; r < o; )
                            55296 <= (e = t.charCodeAt(r++)) && e <= 56319 && r < o ? 56320 == (64512 & (n = t.charCodeAt(r++))) ? i.push(((1023 & e) << 10) + (1023 & n) + 65536) : (i.push(e),
                            r--) : i.push(e);
                        return i
                    }
                    function v(t) {
                        return n(t, function(t) {
                            var e = "";
                            return 65535 < t && (e += T((t -= 65536) >>> 10 & 1023 | 55296),
                            t = 56320 | 1023 & t),
                            e + T(t)
                        }).join("")
                    }
                    function A(t, e) {
                        return t + 22 + 75 * (t < 26) - ((0 != e) << 5)
                    }
                    function y(t, e, n) {
                        var i = 0;
                        for (t = n ? W(t / l) : t >> 1,
                        t += W(t / e); M * w >> 1 < t; i += _)
                            t = W(t / M);
                        return W(i + (M + 1) * t / (t + u))
                    }
                    function i(t) {
                        var e, n, i, r, o, a, s, c, u, l, h = [], f = t.length, p = 0, d = N, M = L, b = t.lastIndexOf(q);
                        for (b < 0 && (b = 0),
                        n = 0; n < b; ++n)
                            128 <= t.charCodeAt(n) && m("not-basic"),
                            h.push(t.charCodeAt(n));
                        for (i = 0 < b ? b + 1 : 0; i < f; ) {
                            for (r = p,
                            o = 1,
                            a = _; f <= i && m("invalid-input"),
                            l = t.charCodeAt(i++),
                            (_ <= (s = l - 48 < 10 ? l - 22 : l - 65 < 26 ? l - 65 : l - 97 < 26 ? l - 97 : _) || s > W((z - p) / o)) && m("overflow"),
                            p += s * o,
                            !(s < (c = a <= M ? O : M + w <= a ? w : a - M)); a += _)
                                o > W(z / (u = _ - c)) && m("overflow"),
                                o *= u;
                            M = y(p - r, e = h.length + 1, 0 == r),
                            W(p / e) > z - d && m("overflow"),
                            d += W(p / e),
                            p %= e,
                            h.splice(p++, 0, d)
                        }
                        return v(h)
                    }
                    function r(t) {
                        for (var e, n, i, r, o, a, s, c, u, l, h, f = [], p = (t = g(t)).length, d = N, M = L, b = e = 0; b < p; ++b)
                            (c = t[b]) < 128 && f.push(T(c));
                        for (n = i = f.length,
                        i && f.push(q); n < p; ) {
                            for (r = z,
                            b = 0; b < p; ++b)
                                d <= (c = t[b]) && c < r && (r = c);
                            for (r - d > W((z - e) / (u = n + 1)) && m("overflow"),
                            e += (r - d) * u,
                            d = r,
                            b = 0; b < p; ++b)
                                if ((c = t[b]) < d && ++e > z && m("overflow"),
                                c == d) {
                                    for (o = e,
                                    a = _; !(o < (s = a <= M ? O : M + w <= a ? w : a - M)); a += _)
                                        h = o - s,
                                        l = _ - s,
                                        f.push(T(A(s + h % l, 0))),
                                        o = W(h / l);
                                    f.push(T(A(o, 0))),
                                    M = y(e, u, n == i),
                                    e = 0,
                                    ++n
                                }
                            ++e,
                            ++d
                        }
                        return f.join("")
                    }
                    var o = "object" == typeof k && k
                      , a = "object" == typeof x && x && x.exports == o && x
                      , s = "object" == typeof C && C;
                    s.global !== s && s.window !== s || (t = s);
                    var c, z = 2147483647, _ = 36, O = 1, w = 26, u = 38, l = 700, L = 72, N = 128, q = "-", h = /^xn--/, f = /[^ -~]/, p = /\x2E|\u3002|\uFF0E|\uFF61/g, d = {
                        overflow: "Overflow: input needs wider integers to process",
                        "not-basic": "Illegal input >= 0x80 (not a basic code point)",
                        "invalid-input": "Invalid input"
                    }, M = _ - O, W = Math.floor, T = String.fromCharCode, b = {
                        version: "1.2.4",
                        ucs2: {
                            decode: g,
                            encode: v
                        },
                        decode: i,
                        encode: r,
                        toASCII: function(t) {
                            return e(t, function(t) {
                                return f.test(t) ? "xn--" + r(t) : t
                            })
                        },
                        toUnicode: function(t) {
                            return e(t, function(t) {
                                return h.test(t) ? i(t.slice(4).toLowerCase()) : t
                            })
                        }
                    };
                    if (0,
                    o && !o.nodeType)
                        if (a)
                            a.exports = b;
                        else
                            for (c in b)
                                b.hasOwnProperty(c) && (o[c] = b[c]);
                    else
                        t.punycode = b
                }(this)
            }
            ).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
        }
        , {}],
        2: [function(t, e) {
            function r(t, e) {
                for (var n = 3 === t.nodeType ? document.createTextNode(t.nodeValue) : t.cloneNode(!1), i = t.firstChild; i; )
                    !0 !== e && 1 === i.nodeType && "SCRIPT" === i.nodeName || n.appendChild(r(i, e)),
                    i = i.nextSibling;
                return 1 === t.nodeType && (n._scrollTop = t.scrollTop,
                n._scrollLeft = t.scrollLeft,
                "CANVAS" === t.nodeName ? function(e, t) {
                    try {
                        t && (t.width = e.width,
                        t.height = e.height,
                        t.getContext("2d").putImageData(e.getContext("2d").getImageData(0, 0, e.width, e.height), 0, 0))
                    } catch (t) {
                        o("Unable to copy canvas content from", e, t)
                    }
                }(t, n) : "TEXTAREA" !== t.nodeName && "SELECT" !== t.nodeName || (n.value = t.value)),
                n
            }
            var o = t("./log");
            e.exports = function(o, t, e, n, a, s, c) {
                var u = r(o.documentElement, a.javascriptEnabled)
                  , l = t.createElement("iframe");
                return l.className = "html2canvas-container",
                l.style.visibility = "hidden",
                l.style.position = "fixed",
                l.style.left = "-10000px",
                l.style.top = "0px",
                l.style.border = "0",
                l.width = e,
                l.height = n,
                l.scrolling = "no",
                t.body.appendChild(l),
                new Promise(function(e) {
                    var t, n, i, r = l.contentWindow.document;
                    l.contentWindow.onload = l.onload = function() {
                        var t = setInterval(function() {
                            0 < r.body.childNodes.length && (function t(e) {
                                if (1 === e.nodeType) {
                                    e.scrollTop = e._scrollTop,
                                    e.scrollLeft = e._scrollLeft;
                                    for (var n = e.firstChild; n; )
                                        t(n),
                                        n = n.nextSibling
                                }
                            }(r.documentElement),
                            clearInterval(t),
                            "view" === a.type && (l.contentWindow.scrollTo(s, c),
                            !/(iPad|iPhone|iPod)/g.test(navigator.userAgent) || l.contentWindow.scrollY === c && l.contentWindow.scrollX === s || (r.documentElement.style.top = -c + "px",
                            r.documentElement.style.left = -s + "px",
                            r.documentElement.style.position = "absolute")),
                            e(l))
                        }, 50)
                    }
                    ,
                    r.open(),
                    r.write("<!DOCTYPE html><html></html>"),
                    n = s,
                    i = c,
                    !(t = o).defaultView || n === t.defaultView.pageXOffset && i === t.defaultView.pageYOffset || t.defaultView.scrollTo(n, i),
                    r.replaceChild(r.adoptNode(u), r.documentElement),
                    r.close()
                }
                )
            }
        }
        , {
            "./log": 13
        }],
        3: [function(t, e) {
            function n(t) {
                this.r = 0,
                this.g = 0,
                this.b = 0,
                this.a = null,
                this.fromArray(t) || this.namedColor(t) || this.rgb(t) || this.rgba(t) || this.hex6(t) || this.hex3(t)
            }
            n.prototype.darken = function(t) {
                var e = 1 - t;
                return new n([Math.round(this.r * e), Math.round(this.g * e), Math.round(this.b * e), this.a])
            }
            ,
            n.prototype.isTransparent = function() {
                return 0 === this.a
            }
            ,
            n.prototype.isBlack = function() {
                return 0 === this.r && 0 === this.g && 0 === this.b
            }
            ,
            n.prototype.fromArray = function(t) {
                return Array.isArray(t) && (this.r = Math.min(t[0], 255),
                this.g = Math.min(t[1], 255),
                this.b = Math.min(t[2], 255),
                3 < t.length && (this.a = t[3])),
                Array.isArray(t)
            }
            ;
            var i = /^#([a-f0-9]{3})$/i;
            n.prototype.hex3 = function(t) {
                var e;
                return null !== (e = t.match(i)) && (this.r = parseInt(e[1][0] + e[1][0], 16),
                this.g = parseInt(e[1][1] + e[1][1], 16),
                this.b = parseInt(e[1][2] + e[1][2], 16)),
                null !== e
            }
            ;
            var r = /^#([a-f0-9]{6})$/i;
            n.prototype.hex6 = function(t) {
                var e = null;
                return null !== (e = t.match(r)) && (this.r = parseInt(e[1].substring(0, 2), 16),
                this.g = parseInt(e[1].substring(2, 4), 16),
                this.b = parseInt(e[1].substring(4, 6), 16)),
                null !== e
            }
            ;
            var o = /^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/;
            n.prototype.rgb = function(t) {
                var e;
                return null !== (e = t.match(o)) && (this.r = Number(e[1]),
                this.g = Number(e[2]),
                this.b = Number(e[3])),
                null !== e
            }
            ;
            var a = /^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?\.?\d+)\s*\)$/;
            n.prototype.rgba = function(t) {
                var e;
                return null !== (e = t.match(a)) && (this.r = Number(e[1]),
                this.g = Number(e[2]),
                this.b = Number(e[3]),
                this.a = Number(e[4])),
                null !== e
            }
            ,
            n.prototype.toString = function() {
                return null !== this.a && 1 !== this.a ? "rgba(" + [this.r, this.g, this.b, this.a].join(",") + ")" : "rgb(" + [this.r, this.g, this.b].join(",") + ")"
            }
            ,
            n.prototype.namedColor = function(t) {
                t = t.toLowerCase();
                var e = s[t];
                if (e)
                    this.r = e[0],
                    this.g = e[1],
                    this.b = e[2];
                else if ("transparent" === t)
                    return !(this.r = this.g = this.b = this.a = 0);
                return !!e
            }
            ,
            n.prototype.isColor = !0;
            var s = {
                aliceblue: [240, 248, 255],
                antiquewhite: [250, 235, 215],
                aqua: [0, 255, 255],
                aquamarine: [127, 255, 212],
                azure: [240, 255, 255],
                beige: [245, 245, 220],
                bisque: [255, 228, 196],
                black: [0, 0, 0],
                blanchedalmond: [255, 235, 205],
                blue: [0, 0, 255],
                blueviolet: [138, 43, 226],
                brown: [165, 42, 42],
                burlywood: [222, 184, 135],
                cadetblue: [95, 158, 160],
                chartreuse: [127, 255, 0],
                chocolate: [210, 105, 30],
                coral: [255, 127, 80],
                cornflowerblue: [100, 149, 237],
                cornsilk: [255, 248, 220],
                crimson: [220, 20, 60],
                cyan: [0, 255, 255],
                darkblue: [0, 0, 139],
                darkcyan: [0, 139, 139],
                darkgoldenrod: [184, 134, 11],
                darkgray: [169, 169, 169],
                darkgreen: [0, 100, 0],
                darkgrey: [169, 169, 169],
                darkkhaki: [189, 183, 107],
                darkmagenta: [139, 0, 139],
                darkolivegreen: [85, 107, 47],
                darkorange: [255, 140, 0],
                darkorchid: [153, 50, 204],
                darkred: [139, 0, 0],
                darksalmon: [233, 150, 122],
                darkseagreen: [143, 188, 143],
                darkslateblue: [72, 61, 139],
                darkslategray: [47, 79, 79],
                darkslategrey: [47, 79, 79],
                darkturquoise: [0, 206, 209],
                darkviolet: [148, 0, 211],
                deeppink: [255, 20, 147],
                deepskyblue: [0, 191, 255],
                dimgray: [105, 105, 105],
                dimgrey: [105, 105, 105],
                dodgerblue: [30, 144, 255],
                firebrick: [178, 34, 34],
                floralwhite: [255, 250, 240],
                forestgreen: [34, 139, 34],
                fuchsia: [255, 0, 255],
                gainsboro: [220, 220, 220],
                ghostwhite: [248, 248, 255],
                gold: [255, 215, 0],
                goldenrod: [218, 165, 32],
                gray: [128, 128, 128],
                green: [0, 128, 0],
                greenyellow: [173, 255, 47],
                grey: [128, 128, 128],
                honeydew: [240, 255, 240],
                hotpink: [255, 105, 180],
                indianred: [205, 92, 92],
                indigo: [75, 0, 130],
                ivory: [255, 255, 240],
                khaki: [240, 230, 140],
                lavender: [230, 230, 250],
                lavenderblush: [255, 240, 245],
                lawngreen: [124, 252, 0],
                lemonchiffon: [255, 250, 205],
                lightblue: [173, 216, 230],
                lightcoral: [240, 128, 128],
                lightcyan: [224, 255, 255],
                lightgoldenrodyellow: [250, 250, 210],
                lightgray: [211, 211, 211],
                lightgreen: [144, 238, 144],
                lightgrey: [211, 211, 211],
                lightpink: [255, 182, 193],
                lightsalmon: [255, 160, 122],
                lightseagreen: [32, 178, 170],
                lightskyblue: [135, 206, 250],
                lightslategray: [119, 136, 153],
                lightslategrey: [119, 136, 153],
                lightsteelblue: [176, 196, 222],
                lightyellow: [255, 255, 224],
                lime: [0, 255, 0],
                limegreen: [50, 205, 50],
                linen: [250, 240, 230],
                magenta: [255, 0, 255],
                maroon: [128, 0, 0],
                mediumaquamarine: [102, 205, 170],
                mediumblue: [0, 0, 205],
                mediumorchid: [186, 85, 211],
                mediumpurple: [147, 112, 219],
                mediumseagreen: [60, 179, 113],
                mediumslateblue: [123, 104, 238],
                mediumspringgreen: [0, 250, 154],
                mediumturquoise: [72, 209, 204],
                mediumvioletred: [199, 21, 133],
                midnightblue: [25, 25, 112],
                mintcream: [245, 255, 250],
                mistyrose: [255, 228, 225],
                moccasin: [255, 228, 181],
                navajowhite: [255, 222, 173],
                navy: [0, 0, 128],
                oldlace: [253, 245, 230],
                olive: [128, 128, 0],
                olivedrab: [107, 142, 35],
                orange: [255, 165, 0],
                orangered: [255, 69, 0],
                orchid: [218, 112, 214],
                palegoldenrod: [238, 232, 170],
                palegreen: [152, 251, 152],
                paleturquoise: [175, 238, 238],
                palevioletred: [219, 112, 147],
                papayawhip: [255, 239, 213],
                peachpuff: [255, 218, 185],
                peru: [205, 133, 63],
                pink: [255, 192, 203],
                plum: [221, 160, 221],
                powderblue: [176, 224, 230],
                purple: [128, 0, 128],
                rebeccapurple: [102, 51, 153],
                red: [255, 0, 0],
                rosybrown: [188, 143, 143],
                royalblue: [65, 105, 225],
                saddlebrown: [139, 69, 19],
                salmon: [250, 128, 114],
                sandybrown: [244, 164, 96],
                seagreen: [46, 139, 87],
                seashell: [255, 245, 238],
                sienna: [160, 82, 45],
                silver: [192, 192, 192],
                skyblue: [135, 206, 235],
                slateblue: [106, 90, 205],
                slategray: [112, 128, 144],
                slategrey: [112, 128, 144],
                snow: [255, 250, 250],
                springgreen: [0, 255, 127],
                steelblue: [70, 130, 180],
                tan: [210, 180, 140],
                teal: [0, 128, 128],
                thistle: [216, 191, 216],
                tomato: [255, 99, 71],
                turquoise: [64, 224, 208],
                violet: [238, 130, 238],
                wheat: [245, 222, 179],
                white: [255, 255, 255],
                whitesmoke: [245, 245, 245],
                yellow: [255, 255, 0],
                yellowgreen: [154, 205, 50]
            };
            e.exports = n
        }
        , {}],
        4: [function(t, e) {
            function n(t, e) {
                var n, i, r = O++;
                if ((e = e || {}).logging && (v.options.logging = !0,
                v.options.start = Date.now()),
                e.async = void 0 === e.async || e.async,
                e.allowTaint = void 0 !== e.allowTaint && e.allowTaint,
                e.removeContainer = void 0 === e.removeContainer || e.removeContainer,
                e.javascriptEnabled = void 0 !== e.javascriptEnabled && e.javascriptEnabled,
                e.imageTimeout = void 0 === e.imageTimeout ? 1e4 : e.imageTimeout,
                e.renderer = "function" == typeof e.renderer ? e.renderer : b,
                e.strict = !!e.strict,
                "string" == typeof t) {
                    if ("string" != typeof e.proxy)
                        return Promise.reject("Proxy must be used when rendering url");
                    var o = null != e.width ? e.width : window.innerWidth
                      , a = null != e.height ? e.height : window.innerHeight;
                    return y((n = t,
                    (i = document.createElement("a")).href = n,
                    i.href = i.href,
                    i), e.proxy, document, o, a, e).then(function(t) {
                        return p(t.contentWindow.document.documentElement, t, e, o, a)
                    })
                }
                var s, c, u, l, h, f = (void 0 === t ? [document.documentElement] : t.length ? t : [t])[0];
                return f.setAttribute(_ + r, r),
                s = f.ownerDocument,
                c = e,
                u = f.ownerDocument.defaultView.innerWidth,
                l = f.ownerDocument.defaultView.innerHeight,
                h = r,
                A(s, s, u, l, c, s.defaultView.pageXOffset, s.defaultView.pageYOffset).then(function(t) {
                    v("Document cloned");
                    var e = _ + h
                      , n = "[" + e + "='" + h + "']";
                    s.querySelector(n).removeAttribute(e);
                    var i = t.contentWindow
                      , r = i.document.querySelector(n);
                    return Promise.resolve("function" != typeof c.onclone || c.onclone(i.document)).then(function() {
                        return p(r, t, c, u, l)
                    })
                }).then(function(t) {
                    return "function" == typeof e.onrendered && (v("options.onrendered is deprecated, html2canvas returns a Promise containing the canvas"),
                    e.onrendered(t)),
                    t
                })
            }
            function p(n, i, r, t, e) {
                var o, a, s = i.contentWindow, c = new M(s.document), u = new m(r,c), l = z(n), h = "view" === r.type ? t : (a = s.document,
                Math.max(Math.max(a.body.scrollWidth, a.documentElement.scrollWidth), Math.max(a.body.offsetWidth, a.documentElement.offsetWidth), Math.max(a.body.clientWidth, a.documentElement.clientWidth))), f = "view" === r.type ? e : (o = s.document,
                Math.max(Math.max(o.body.scrollHeight, o.documentElement.scrollHeight), Math.max(o.body.offsetHeight, o.documentElement.offsetHeight), Math.max(o.body.clientHeight, o.documentElement.clientHeight))), p = new r.renderer(h,f,u,r,document);
                return new g(n,p,c,u,r).ready.then(function() {
                    var t, e;
                    return v("Finished rendering"),
                    t = "view" === r.type ? d(p.canvas, {
                        width: p.canvas.width,
                        height: p.canvas.height,
                        top: 0,
                        left: 0,
                        x: 0,
                        y: 0
                    }) : n === s.document.body || n === s.document.documentElement || null != r.canvas ? p.canvas : d(p.canvas, {
                        width: null != r.width ? r.width : l.width,
                        height: null != r.height ? r.height : l.height,
                        top: l.top,
                        left: l.left,
                        x: 0,
                        y: 0
                    }),
                    e = i,
                    r.removeContainer && (e.parentNode.removeChild(e),
                    v("Cleaned up container")),
                    t
                })
            }
            function d(t, e) {
                var n = document.createElement("canvas")
                  , i = Math.min(t.width - 1, Math.max(0, e.left))
                  , r = Math.min(t.width, Math.max(1, e.left + e.width))
                  , o = Math.min(t.height - 1, Math.max(0, e.top))
                  , a = Math.min(t.height, Math.max(1, e.top + e.height));
                n.width = e.width,
                n.height = e.height;
                var s = r - i
                  , c = a - o;
                return v("Cropping canvas at:", "left:", e.left, "top:", e.top, "width:", s, "height:", c),
                v("Resulting crop with width", e.width, "and height", e.height, "with x", i, "and y", o),
                n.getContext("2d").drawImage(t, i, o, s, c, e.x, e.y, s, c),
                n
            }
            var M = t("./support")
              , b = t("./renderers/canvas")
              , m = t("./imageloader")
              , g = t("./nodeparser")
              , i = t("./nodecontainer")
              , v = t("./log")
              , r = t("./utils")
              , A = t("./clone")
              , y = t("./proxy").loadUrlDocument
              , z = r.getBounds
              , _ = "data-html2canvas-node"
              , O = 0;
            n.CanvasRenderer = b,
            n.NodeContainer = i,
            n.log = v,
            n.utils = r;
            var o = "undefined" == typeof document || "function" != typeof Object.create || "function" != typeof document.createElement("canvas").getContext ? function() {
                return Promise.reject("No canvas support")
            }
            : n;
            e.exports = o
        }
        , {
            "./clone": 2,
            "./imageloader": 11,
            "./log": 13,
            "./nodecontainer": 14,
            "./nodeparser": 15,
            "./proxy": 16,
            "./renderers/canvas": 20,
            "./support": 22,
            "./utils": 26
        }],
        5: [function(t, e) {
            function i(t) {
                var n;
                this.src = t,
                r("DummyImageContainer for", t),
                this.promise && this.image || (r("Initiating DummyImageContainer"),
                i.prototype.image = new Image,
                n = this.image,
                i.prototype.promise = new Promise(function(t, e) {
                    n.onload = t,
                    n.onerror = e,
                    n.src = o(),
                    !0 === n.complete && t(n)
                }
                ))
            }
            var r = t("./log")
              , o = t("./utils").smallImage;
            e.exports = i
        }
        , {
            "./log": 13,
            "./utils": 26
        }],
        6: [function(t, e) {
            var c = t("./utils").smallImage;
            e.exports = function(t, e) {
                var n, i, r = document.createElement("div"), o = document.createElement("img"), a = document.createElement("span"), s = "Hidden Text";
                r.style.visibility = "hidden",
                r.style.fontFamily = t,
                r.style.fontSize = e,
                r.style.margin = 0,
                r.style.padding = 0,
                document.body.appendChild(r),
                o.src = c(),
                o.width = 1,
                o.height = 1,
                o.style.margin = 0,
                o.style.padding = 0,
                o.style.verticalAlign = "baseline",
                a.style.fontFamily = t,
                a.style.fontSize = e,
                a.style.margin = 0,
                a.style.padding = 0,
                a.appendChild(document.createTextNode(s)),
                r.appendChild(a),
                r.appendChild(o),
                n = o.offsetTop - a.offsetTop + 1,
                r.removeChild(a),
                r.appendChild(document.createTextNode(s)),
                r.style.lineHeight = "normal",
                o.style.verticalAlign = "super",
                i = o.offsetTop - r.offsetTop + 1,
                document.body.removeChild(r),
                this.baseline = n,
                this.lineWidth = 1,
                this.middle = i
            }
        }
        , {
            "./utils": 26
        }],
        7: [function(t, e) {
            function n() {
                this.data = {}
            }
            var i = t("./font");
            n.prototype.getMetrics = function(t, e) {
                return void 0 === this.data[t + "-" + e] && (this.data[t + "-" + e] = new i(t,e)),
                this.data[t + "-" + e]
            }
            ,
            e.exports = n
        }
        , {
            "./font": 6
        }],
        8: [function(o, t) {
            function e(e, t, n) {
                this.image = null,
                this.src = e;
                var i = this
                  , r = a(e);
                this.promise = (t ? new Promise(function(t) {
                    "about:blank" === e.contentWindow.document.URL || null == e.contentWindow.document.documentElement ? e.contentWindow.onload = e.onload = function() {
                        t(e)
                    }
                    : t(e)
                }
                ) : this.proxyLoad(n.proxy, r, n)).then(function(t) {
                    return o("./core")(t.contentWindow.document.documentElement, {
                        type: "view",
                        width: t.width,
                        height: t.height,
                        proxy: n.proxy,
                        javascriptEnabled: n.javascriptEnabled,
                        removeContainer: n.removeContainer,
                        allowTaint: n.allowTaint,
                        imageTimeout: n.imageTimeout / 2
                    })
                }).then(function(t) {
                    return i.image = t
                })
            }
            var a = o("./utils").getBounds
              , r = o("./proxy").loadUrlDocument;
            e.prototype.proxyLoad = function(t, e, n) {
                var i = this.src;
                return r(i.src, t, i.ownerDocument, e.width, e.height, n)
            }
            ,
            t.exports = e
        }
        , {
            "./core": 4,
            "./proxy": 16,
            "./utils": 26
        }],
        9: [function(t, e) {
            function n(t) {
                this.src = t.value,
                this.colorStops = [],
                this.type = null,
                this.x0 = .5,
                this.y0 = .5,
                this.x1 = .5,
                this.y1 = .5,
                this.promise = Promise.resolve(!0)
            }
            n.TYPES = {
                LINEAR: 1,
                RADIAL: 2
            },
            n.REGEXP_COLORSTOP = /^\s*(rgba?\(\s*\d{1,3},\s*\d{1,3},\s*\d{1,3}(?:,\s*[0-9\.]+)?\s*\)|[a-z]{3,20}|#[a-f0-9]{3,6})(?:\s+(\d{1,3}(?:\.\d+)?)(%|px)?)?(?:\s|$)/i,
            e.exports = n
        }
        , {}],
        10: [function(t, e) {
            e.exports = function(n, i) {
                this.src = n,
                this.image = new Image;
                var r = this;
                this.tainted = null,
                this.promise = new Promise(function(t, e) {
                    r.image.onload = t,
                    r.image.onerror = e,
                    i && (r.image.crossOrigin = "anonymous"),
                    r.image.src = n,
                    !0 === r.image.complete && t(r.image)
                }
                )
            }
        }
        , {}],
        11: [function(t, e) {
            function n(t, e) {
                this.link = null,
                this.options = t,
                this.support = e,
                this.origin = this.getOrigin(window.location.href)
            }
            var o = t("./log")
              , i = t("./imagecontainer")
              , r = t("./dummyimagecontainer")
              , a = t("./proxyimagecontainer")
              , s = t("./framecontainer")
              , c = t("./svgcontainer")
              , u = t("./svgnodecontainer")
              , l = t("./lineargradientcontainer")
              , h = t("./webkitgradientcontainer")
              , f = t("./utils").bind;
            n.prototype.findImages = function(t) {
                var e = [];
                return t.reduce(function(t, e) {
                    switch (e.node.nodeName) {
                    case "IMG":
                        return t.concat([{
                            args: [e.node.src],
                            method: "url"
                        }]);
                    case "svg":
                    case "IFRAME":
                        return t.concat([{
                            args: [e.node],
                            method: e.node.nodeName
                        }])
                    }
                    return t
                }, []).forEach(this.addImage(e, this.loadImage), this),
                e
            }
            ,
            n.prototype.findBackgroundImage = function(t, e) {
                return e.parseBackgroundImages().filter(this.hasImageBackground).forEach(this.addImage(t, this.loadImage), this),
                t
            }
            ,
            n.prototype.addImage = function(n, i) {
                return function(e) {
                    e.args.forEach(function(t) {
                        this.imageExists(n, t) || (n.splice(0, 0, i.call(this, e)),
                        o("Added image #" + n.length, "string" == typeof t ? t.substring(0, 100) : t))
                    }, this)
                }
            }
            ,
            n.prototype.hasImageBackground = function(t) {
                return "none" !== t.method
            }
            ,
            n.prototype.loadImage = function(t) {
                if ("url" !== t.method)
                    return "linear-gradient" === t.method ? new l(t) : "gradient" === t.method ? new h(t) : "svg" === t.method ? new u(t.args[0],this.support.svg) : "IFRAME" === t.method ? new s(t.args[0],this.isSameOrigin(t.args[0].src),this.options) : new r(t);
                var e = t.args[0];
                return !this.isSVG(e) || this.support.svg || this.options.allowTaint ? e.match(/data:image\/.*;base64,/i) ? new i(e.replace(/url\(['"]{0,}|['"]{0,}\)$/gi, ""),!1) : this.isSameOrigin(e) || !0 === this.options.allowTaint || this.isSVG(e) ? new i(e,!1) : this.support.cors && !this.options.allowTaint && this.options.useCORS ? new i(e,!0) : this.options.proxy ? new a(e,this.options.proxy) : new r(e) : new c(e)
            }
            ,
            n.prototype.isSVG = function(t) {
                return "svg" === t.substring(t.length - 3).toLowerCase() || c.prototype.isInline(t)
            }
            ,
            n.prototype.imageExists = function(t, e) {
                return t.some(function(t) {
                    return t.src === e
                })
            }
            ,
            n.prototype.isSameOrigin = function(t) {
                return this.getOrigin(t) === this.origin
            }
            ,
            n.prototype.getOrigin = function(t) {
                var e = this.link || (this.link = document.createElement("a"));
                return e.href = t,
                e.href = e.href,
                e.protocol + e.hostname + e.port
            }
            ,
            n.prototype.getPromise = function(e) {
                return this.timeout(e, this.options.imageTimeout).catch(function() {
                    return new r(e.src).promise.then(function(t) {
                        e.image = t
                    })
                })
            }
            ,
            n.prototype.get = function(e) {
                var n = null;
                return this.images.some(function(t) {
                    return (n = t).src === e
                }) ? n : null
            }
            ,
            n.prototype.fetch = function(t) {
                return this.images = t.reduce(f(this.findBackgroundImage, this), this.findImages(t)),
                this.images.forEach(function(e, n) {
                    e.promise.then(function() {
                        o("Succesfully loaded image #" + (n + 1), e)
                    }, function(t) {
                        o("Failed loading image #" + (n + 1), e, t)
                    })
                }),
                this.ready = Promise.all(this.images.map(this.getPromise, this)),
                o("Finished searching images"),
                this
            }
            ,
            n.prototype.timeout = function(n, i) {
                var r, t = Promise.race([n.promise, new Promise(function(t, e) {
                    r = setTimeout(function() {
                        o("Timed out loading image", n),
                        e(n)
                    }, i)
                }
                )]).then(function(t) {
                    return clearTimeout(r),
                    t
                });
                return t.catch(function() {
                    clearTimeout(r)
                }),
                t
            }
            ,
            e.exports = n
        }
        , {
            "./dummyimagecontainer": 5,
            "./framecontainer": 8,
            "./imagecontainer": 10,
            "./lineargradientcontainer": 12,
            "./log": 13,
            "./proxyimagecontainer": 17,
            "./svgcontainer": 23,
            "./svgnodecontainer": 24,
            "./utils": 26,
            "./webkitgradientcontainer": 27
        }],
        12: [function(t, e) {
            function n(t) {
                r.apply(this, arguments),
                this.type = r.TYPES.LINEAR;
                var e = n.REGEXP_DIRECTION.test(t.args[0]) || !r.REGEXP_COLORSTOP.test(t.args[0]);
                e ? t.args[0].split(/\s+/).reverse().forEach(function(t, e) {
                    switch (t) {
                    case "left":
                        this.x0 = 0,
                        this.x1 = 1;
                        break;
                    case "top":
                        this.y0 = 0,
                        this.y1 = 1;
                        break;
                    case "right":
                        this.x0 = 1,
                        this.x1 = 0;
                        break;
                    case "bottom":
                        this.y0 = 1,
                        this.y1 = 0;
                        break;
                    case "to":
                        var n = this.y0
                          , i = this.x0;
                        this.y0 = this.y1,
                        this.x0 = this.x1,
                        this.x1 = i,
                        this.y1 = n;
                        break;
                    case "center":
                        break;
                    default:
                        var r = .01 * parseFloat(t, 10);
                        if (isNaN(r))
                            break;
                        0 === e ? (this.y0 = r,
                        this.y1 = 1 - this.y0) : (this.x0 = r,
                        this.x1 = 1 - this.x0)
                    }
                }, this) : (this.y0 = 0,
                this.y1 = 1),
                this.colorStops = t.args.slice(e ? 1 : 0).map(function(t) {
                    var e = t.match(r.REGEXP_COLORSTOP)
                      , n = +e[2]
                      , i = 0 == n ? "%" : e[3];
                    return {
                        color: new o(e[1]),
                        stop: "%" === i ? n / 100 : null
                    }
                }),
                null === this.colorStops[0].stop && (this.colorStops[0].stop = 0),
                null === this.colorStops[this.colorStops.length - 1].stop && (this.colorStops[this.colorStops.length - 1].stop = 1),
                this.colorStops.forEach(function(n, i) {
                    null === n.stop && this.colorStops.slice(i).some(function(t, e) {
                        return null !== t.stop && (n.stop = (t.stop - this.colorStops[i - 1].stop) / (e + 1) + this.colorStops[i - 1].stop,
                        !0)
                    }, this)
                }, this)
            }
            var r = t("./gradientcontainer")
              , o = t("./color");
            n.prototype = Object.create(r.prototype),
            n.REGEXP_DIRECTION = /^\s*(?:to|left|right|top|bottom|center|\d{1,3}(?:\.\d+)?%?)(?:\s|$)/i,
            e.exports = n
        }
        , {
            "./color": 3,
            "./gradientcontainer": 9
        }],
        13: [function(t, e) {
            var n = function() {
                n.options.logging && window.console && window.console.log && Function.prototype.bind.call(window.console.log, window.console).apply(window.console, [Date.now() - n.options.start + "ms", "html2canvas:"].concat([].slice.call(arguments, 0)))
            };
            n.options = {
                logging: !1
            },
            e.exports = n
        }
        , {}],
        14: [function(t, e) {
            function n(t, e) {
                this.node = t,
                this.parent = e,
                this.stack = null,
                this.bounds = null,
                this.borders = null,
                this.clip = [],
                this.backgroundClip = [],
                this.offsetBounds = null,
                this.visible = null,
                this.computedStyles = null,
                this.colors = {},
                this.styles = {},
                this.backgroundImages = null,
                this.transformData = null,
                this.transformMatrix = null,
                this.isPseudoElement = !1,
                this.opacity = null
            }
            function c(t) {
                return -1 !== t.toString().indexOf("%")
            }
            function i(t) {
                return t.replace("px", "")
            }
            function r(t) {
                return parseFloat(t)
            }
            var o = t("./color")
              , a = t("./utils")
              , s = a.getBounds
              , u = a.parseBackgrounds
              , l = a.offsetBounds;
            n.prototype.cloneTo = function(t) {
                t.visible = this.visible,
                t.borders = this.borders,
                t.bounds = this.bounds,
                t.clip = this.clip,
                t.backgroundClip = this.backgroundClip,
                t.computedStyles = this.computedStyles,
                t.styles = this.styles,
                t.backgroundImages = this.backgroundImages,
                t.opacity = this.opacity
            }
            ,
            n.prototype.getOpacity = function() {
                return null === this.opacity ? this.opacity = this.cssFloat("opacity") : this.opacity
            }
            ,
            n.prototype.assignStack = function(t) {
                (this.stack = t).children.push(this)
            }
            ,
            n.prototype.isElementVisible = function() {
                return this.node.nodeType === Node.TEXT_NODE ? this.parent.visible : "none" !== this.css("display") && "hidden" !== this.css("visibility") && !this.node.hasAttribute("data-html2canvas-ignore") && ("INPUT" !== this.node.nodeName || "hidden" !== this.node.getAttribute("type"))
            }
            ,
            n.prototype.css = function(t) {
                return this.computedStyles || (this.computedStyles = this.isPseudoElement ? this.parent.computedStyle(this.before ? ":before" : ":after") : this.computedStyle(null)),
                this.styles[t] || (this.styles[t] = this.computedStyles[t])
            }
            ,
            n.prototype.prefixedCss = function(e) {
                var n = this.css(e);
                return void 0 === n && ["webkit", "moz", "ms", "o"].some(function(t) {
                    return void 0 !== (n = this.css(t + e.substr(0, 1).toUpperCase() + e.substr(1)))
                }, this),
                void 0 === n ? null : n
            }
            ,
            n.prototype.computedStyle = function(t) {
                return this.node.ownerDocument.defaultView.getComputedStyle(this.node, t)
            }
            ,
            n.prototype.cssInt = function(t) {
                var e = parseInt(this.css(t), 10);
                return isNaN(e) ? 0 : e
            }
            ,
            n.prototype.color = function(t) {
                return this.colors[t] || (this.colors[t] = new o(this.css(t)))
            }
            ,
            n.prototype.cssFloat = function(t) {
                var e = parseFloat(this.css(t));
                return isNaN(e) ? 0 : e
            }
            ,
            n.prototype.fontWeight = function() {
                var t = this.css("fontWeight");
                switch (parseInt(t, 10)) {
                case 401:
                    t = "bold";
                    break;
                case 400:
                    t = "normal"
                }
                return t
            }
            ,
            n.prototype.parseClip = function() {
                var t = this.css("clip").match(this.CLIP);
                return t ? {
                    top: parseInt(t[1], 10),
                    right: parseInt(t[2], 10),
                    bottom: parseInt(t[3], 10),
                    left: parseInt(t[4], 10)
                } : null
            }
            ,
            n.prototype.parseBackgroundImages = function() {
                return this.backgroundImages || (this.backgroundImages = u(this.css("backgroundImage")))
            }
            ,
            n.prototype.cssList = function(t, e) {
                var n = (this.css(t) || "").split(",");
                return 1 === (n = (n = n[e || 0] || n[0] || "auto").trim().split(" ")).length && (n = [n[0], c(n[0]) ? "auto" : n[0]]),
                n
            }
            ,
            n.prototype.parseBackgroundSize = function(t, e, n) {
                var i, r, o = this.cssList("backgroundSize", n);
                if (c(o[0]))
                    i = t.width * parseFloat(o[0]) / 100;
                else {
                    if (/contain|cover/.test(o[0])) {
                        var a = t.width / t.height
                          , s = e.width / e.height;
                        return a < s ^ "contain" === o[0] ? {
                            width: t.height * s,
                            height: t.height
                        } : {
                            width: t.width,
                            height: t.width / s
                        }
                    }
                    i = parseInt(o[0], 10)
                }
                return r = "auto" === o[0] && "auto" === o[1] ? e.height : "auto" === o[1] ? i / e.width * e.height : c(o[1]) ? t.height * parseFloat(o[1]) / 100 : parseInt(o[1], 10),
                "auto" === o[0] && (i = r / e.height * e.width),
                {
                    width: i,
                    height: r
                }
            }
            ,
            n.prototype.parseBackgroundPosition = function(t, e, n, i) {
                var r = this.cssList("backgroundPosition", n)
                  , o = c(r[0]) ? (t.width - (i || e).width) * (parseFloat(r[0]) / 100) : parseInt(r[0], 10)
                  , a = "auto" === r[1] ? o / e.width * e.height : c(r[1]) ? (t.height - (i || e).height) * parseFloat(r[1]) / 100 : parseInt(r[1], 10);
                return "auto" === r[0] && (o = a / e.height * e.width),
                {
                    left: o,
                    top: a
                }
            }
            ,
            n.prototype.parseBackgroundRepeat = function(t) {
                return this.cssList("backgroundRepeat", t)[0]
            }
            ,
            n.prototype.parseTextShadows = function() {
                var t = this.css("textShadow")
                  , e = [];
                if (t && "none" !== t)
                    for (var n = t.match(this.TEXT_SHADOW_PROPERTY), i = 0; n && i < n.length; i++) {
                        var r = n[i].match(this.TEXT_SHADOW_VALUES);
                        e.push({
                            color: new o(r[0]),
                            offsetX: r[1] ? parseFloat(r[1].replace("px", "")) : 0,
                            offsetY: r[2] ? parseFloat(r[2].replace("px", "")) : 0,
                            blur: r[3] ? r[3].replace("px", "") : 0
                        })
                    }
                return e
            }
            ,
            n.prototype.parseTransform = function() {
                var t, e;
                return this.transformData || (this.hasTransform() ? (t = this.parseBounds(),
                (e = this.prefixedCss("transformOrigin").split(" ").map(i).map(r))[0] += t.left,
                e[1] += t.top,
                this.transformData = {
                    origin: e,
                    matrix: this.parseTransformMatrix()
                }) : this.transformData = {
                    origin: [0, 0],
                    matrix: [1, 0, 0, 1, 0, 0]
                }),
                this.transformData
            }
            ,
            n.prototype.parseTransformMatrix = function() {
                var t, e;
                return this.transformMatrix || (e = (t = this.prefixedCss("transform")) ? function(t) {
                    if (t && "matrix" === t[1])
                        return t[2].split(",").map(function(t) {
                            return parseFloat(t.trim())
                        });
                    if (t && "matrix3d" === t[1]) {
                        var e = t[2].split(",").map(function(t) {
                            return parseFloat(t.trim())
                        });
                        return [e[0], e[1], e[4], e[5], e[12], e[13]]
                    }
                }(t.match(this.MATRIX_PROPERTY)) : null,
                this.transformMatrix = e || [1, 0, 0, 1, 0, 0]),
                this.transformMatrix
            }
            ,
            n.prototype.parseBounds = function() {
                return this.bounds || (this.bounds = (this.hasTransform() ? l : s)(this.node))
            }
            ,
            n.prototype.hasTransform = function() {
                return "1,0,0,1,0,0" !== this.parseTransformMatrix().join(",") || this.parent && this.parent.hasTransform()
            }
            ,
            n.prototype.getValue = function() {
                var t, e, n = this.node.value || "";
                return "SELECT" === this.node.tagName ? (t = this.node,
                n = (e = t.options[t.selectedIndex || 0]) && e.text || "") : "password" === this.node.type && (n = Array(n.length + 1).join("•")),
                0 === n.length ? this.node.placeholder || "" : n
            }
            ,
            n.prototype.MATRIX_PROPERTY = /(matrix|matrix3d)\((.+)\)/,
            n.prototype.TEXT_SHADOW_PROPERTY = /((rgba|rgb)\([^\)]+\)(\s-?\d+px){0,})/g,
            n.prototype.TEXT_SHADOW_VALUES = /(-?\d+px)|(#.+)|(rgb\(.+\))|(rgba\(.+\))/g,
            n.prototype.CLIP = /^rect\((\d+)px,? (\d+)px,? (\d+)px,? (\d+)px\)$/,
            e.exports = n
        }
        , {
            "./color": 3,
            "./utils": 26
        }],
        15: [function(t, e) {
            function n(t, e, n, i, r) {
                q("Starting NodeParser"),
                this.renderer = e,
                this.options = r,
                this.range = null,
                this.support = n,
                this.renderQueue = [],
                this.stack = new B(!0,1,t.ownerDocument,null);
                var o, a = new T(t,null);
                r.background && e.rectangle(0, 0, e.width, e.height, new S(r.background)),
                t === t.ownerDocument.documentElement && (o = new T(a.color("backgroundColor").isTransparent() ? t.ownerDocument.body : t.ownerDocument.documentElement,null),
                e.rectangle(0, 0, e.width, e.height, o.color("backgroundColor"))),
                a.visibile = a.isElementVisible(),
                this.createPseudoHideStyles(t.ownerDocument),
                this.disableAnimations(t.ownerDocument),
                this.nodes = N([a].concat(this.getChildren(a)).filter(function(t) {
                    return t.visible = t.isElementVisible()
                }).map(this.getPseudoElements, this)),
                this.fontMetrics = new k,
                q("Fetched nodes, total:", this.nodes.length),
                q("Calculate overflow clips"),
                this.calculateOverflowClips(),
                q("Start fetching images"),
                this.images = i.fetch(this.nodes.filter(_)),
                this.ready = this.images.ready.then(X(function() {
                    return q("Images loaded, starting parsing"),
                    q("Creating stacking contexts"),
                    this.createStackingContexts(),
                    q("Sorting stacking contexts"),
                    this.sortStackingContexts(this.stack),
                    this.parse(this.stack),
                    q("Render queue created with " + this.renderQueue.length + " items"),
                    new Promise(X(function(t) {
                        r.async ? "function" == typeof r.async ? r.async.call(this, this.renderQueue, t) : 0 < this.renderQueue.length ? (this.renderIndex = 0,
                        this.asyncRenderer(this.renderQueue, t)) : t() : (this.renderQueue.forEach(this.paint, this),
                        t())
                    }, this))
                }, this))
            }
            function i(t) {
                return t.parent && t.parent.clip.length
            }
            function l() {}
            function c(a, s, c, u) {
                return a.map(function(t, e) {
                    if (0 < t.width) {
                        var n = s.left
                          , i = s.top
                          , r = s.width
                          , o = s.height - a[2].width;
                        switch (e) {
                        case 0:
                            o = a[0].width,
                            t.args = h({
                                c1: [n, i],
                                c2: [n + r, i],
                                c3: [n + r - a[1].width, i + o],
                                c4: [n + a[3].width, i + o]
                            }, u[0], u[1], c.topLeftOuter, c.topLeftInner, c.topRightOuter, c.topRightInner);
                            break;
                        case 1:
                            n = s.left + s.width - a[1].width,
                            r = a[1].width,
                            t.args = h({
                                c1: [n + r, i],
                                c2: [n + r, i + o + a[2].width],
                                c3: [n, i + o],
                                c4: [n, i + a[0].width]
                            }, u[1], u[2], c.topRightOuter, c.topRightInner, c.bottomRightOuter, c.bottomRightInner);
                            break;
                        case 2:
                            i = i + s.height - a[2].width,
                            o = a[2].width,
                            t.args = h({
                                c1: [n + r, i + o],
                                c2: [n, i + o],
                                c3: [n + a[3].width, i],
                                c4: [n + r - a[3].width, i]
                            }, u[2], u[3], c.bottomRightOuter, c.bottomRightInner, c.bottomLeftOuter, c.bottomLeftInner);
                            break;
                        case 3:
                            r = a[3].width,
                            t.args = h({
                                c1: [n, i + o + a[2].width],
                                c2: [n, i],
                                c3: [n + r, i + a[0].width],
                                c4: [n + r, i + o]
                            }, u[3], u[0], c.bottomLeftOuter, c.bottomLeftInner, c.topLeftOuter, c.topLeftInner)
                        }
                    }
                    return t
                })
            }
            function v(t, e, n, i) {
                var r = (Math.sqrt(2) - 1) / 3 * 4
                  , o = n * r
                  , a = i * r
                  , s = t + n
                  , c = e + i;
                return {
                    topLeft: f({
                        x: t,
                        y: c
                    }, {
                        x: t,
                        y: c - a
                    }, {
                        x: s - o,
                        y: e
                    }, {
                        x: s,
                        y: e
                    }),
                    topRight: f({
                        x: t,
                        y: e
                    }, {
                        x: t + o,
                        y: e
                    }, {
                        x: s,
                        y: c - a
                    }, {
                        x: s,
                        y: c
                    }),
                    bottomRight: f({
                        x: s,
                        y: e
                    }, {
                        x: s,
                        y: e + a
                    }, {
                        x: t + o,
                        y: c
                    }, {
                        x: t,
                        y: c
                    }),
                    bottomLeft: f({
                        x: s,
                        y: c
                    }, {
                        x: s - o,
                        y: c
                    }, {
                        x: t,
                        y: e + a
                    }, {
                        x: t,
                        y: e
                    })
                }
            }
            function u(t, e, n) {
                var i = t.left
                  , r = t.top
                  , o = t.width
                  , a = t.height
                  , s = e[0][0] < o / 2 ? e[0][0] : o / 2
                  , c = e[0][1] < a / 2 ? e[0][1] : a / 2
                  , u = e[1][0] < o / 2 ? e[1][0] : o / 2
                  , l = e[1][1] < a / 2 ? e[1][1] : a / 2
                  , h = e[2][0] < o / 2 ? e[2][0] : o / 2
                  , f = e[2][1] < a / 2 ? e[2][1] : a / 2
                  , p = e[3][0] < o / 2 ? e[3][0] : o / 2
                  , d = e[3][1] < a / 2 ? e[3][1] : a / 2
                  , M = o - u
                  , b = a - f
                  , m = o - h
                  , g = a - d;
                return {
                    topLeftOuter: v(i, r, s, c).topLeft.subdivide(.5),
                    topLeftInner: v(i + n[3].width, r + n[0].width, Math.max(0, s - n[3].width), Math.max(0, c - n[0].width)).topLeft.subdivide(.5),
                    topRightOuter: v(i + M, r, u, l).topRight.subdivide(.5),
                    topRightInner: v(i + Math.min(M, o + n[3].width), r + n[0].width, M > o + n[3].width ? 0 : u - n[3].width, l - n[0].width).topRight.subdivide(.5),
                    bottomRightOuter: v(i + m, r + b, h, f).bottomRight.subdivide(.5),
                    bottomRightInner: v(i + Math.min(m, o - n[3].width), r + Math.min(b, a + n[0].width), Math.max(0, h - n[1].width), f - n[2].width).bottomRight.subdivide(.5),
                    bottomLeftOuter: v(i, r + g, p, d).bottomLeft.subdivide(.5),
                    bottomLeftInner: v(i + n[3].width, r + g, Math.max(0, p - n[3].width), d - n[2].width).bottomLeft.subdivide(.5)
                }
            }
            function f(s, c, u, l) {
                function h(t, e, n) {
                    return {
                        x: t.x + (e.x - t.x) * n,
                        y: t.y + (e.y - t.y) * n
                    }
                }
                return {
                    start: s,
                    startControl: c,
                    endControl: u,
                    end: l,
                    subdivide: function(t) {
                        var e = h(s, c, t)
                          , n = h(c, u, t)
                          , i = h(u, l, t)
                          , r = h(e, n, t)
                          , o = h(n, i, t)
                          , a = h(r, o, t);
                        return [f(s, e, r, a), f(a, o, i, l)]
                    },
                    curveTo: function(t) {
                        t.push(["bezierCurve", c.x, c.y, u.x, u.y, l.x, l.y])
                    },
                    curveToReversed: function(t) {
                        t.push(["bezierCurve", u.x, u.y, c.x, c.y, s.x, s.y])
                    }
                }
            }
            function h(t, e, n, i, r, o, a) {
                var s = [];
                return 0 < e[0] || 0 < e[1] ? (s.push(["line", i[1].start.x, i[1].start.y]),
                i[1].curveTo(s)) : s.push(["line", t.c1[0], t.c1[1]]),
                0 < n[0] || 0 < n[1] ? (s.push(["line", o[0].start.x, o[0].start.y]),
                o[0].curveTo(s),
                s.push(["line", a[0].end.x, a[0].end.y]),
                a[0].curveToReversed(s)) : (s.push(["line", t.c2[0], t.c2[1]]),
                s.push(["line", t.c3[0], t.c3[1]])),
                0 < e[0] || 0 < e[1] ? (s.push(["line", r[1].end.x, r[1].end.y]),
                r[1].curveToReversed(s)) : s.push(["line", t.c4[0], t.c4[1]]),
                s
            }
            function a(t, e, n, i, r, o, a) {
                0 < e[0] || 0 < e[1] ? (t.push(["line", i[0].start.x, i[0].start.y]),
                i[0].curveTo(t),
                i[1].curveTo(t)) : t.push(["line", o, a]),
                (0 < n[0] || 0 < n[1]) && t.push(["line", r[0].start.x, r[0].start.y])
            }
            function p(t) {
                return t.cssInt("zIndex") < 0
            }
            function d(t) {
                return 0 < t.cssInt("zIndex")
            }
            function M(t) {
                return 0 === t.cssInt("zIndex")
            }
            function b(t) {
                return -1 !== ["inline", "inline-block", "inline-table"].indexOf(t.css("display"))
            }
            function m(t) {
                return t instanceof B
            }
            function g(t) {
                return 0 < t.node.data.trim().length
            }
            function r(t) {
                return t.nodeType === Node.TEXT_NODE || t.nodeType === Node.ELEMENT_NODE
            }
            function A(t) {
                return "static" !== t.css("position")
            }
            function y(t) {
                return "none" !== t.css("float")
            }
            function z(t) {
                var e = this;
                return function() {
                    return !t.apply(e, arguments)
                }
            }
            function _(t) {
                return t.node.nodeType === Node.ELEMENT_NODE
            }
            function o(t) {
                return !0 === t.isPseudoElement
            }
            function O(t) {
                return t.node.nodeType === Node.TEXT_NODE
            }
            function s(t) {
                return parseInt(t, 10)
            }
            function w(t) {
                return t.width
            }
            function L(t) {
                return t.node.nodeType !== Node.ELEMENT_NODE || -1 === ["SCRIPT", "HEAD", "TITLE", "OBJECT", "BR", "OPTION"].indexOf(t.node.nodeName)
            }
            function N(t) {
                return [].concat.apply([], t)
            }
            var q = t("./log")
              , W = t("punycode")
              , T = t("./nodecontainer")
              , C = t("./textcontainer")
              , x = t("./pseudoelementcontainer")
              , k = t("./fontmetrics")
              , S = t("./color")
              , B = t("./stackingcontext")
              , E = t("./utils")
              , X = E.bind
              , D = E.getBounds
              , R = E.parseBackgrounds
              , P = E.offsetBounds;
            n.prototype.calculateOverflowClips = function() {
                this.nodes.forEach(function(t) {
                    var e, n;
                    _(t) ? (o(t) && t.appendToDOM(),
                    t.borders = this.parseBorders(t),
                    e = "hidden" === t.css("overflow") ? [t.borders.clip] : [],
                    (n = t.parseClip()) && -1 !== ["absolute", "fixed"].indexOf(t.css("position")) && e.push([["rect", t.bounds.left + n.left, t.bounds.top + n.top, n.right - n.left, n.bottom - n.top]]),
                    t.clip = i(t) ? t.parent.clip.concat(e) : e,
                    t.backgroundClip = "hidden" !== t.css("overflow") ? t.clip.concat([t.borders.clip]) : t.clip,
                    o(t) && t.cleanDOM()) : O(t) && (t.clip = i(t) ? t.parent.clip : []),
                    o(t) || (t.bounds = null)
                }, this)
            }
            ,
            n.prototype.asyncRenderer = function(t, e, n) {
                n = n || Date.now(),
                this.paint(t[this.renderIndex++]),
                t.length === this.renderIndex ? e() : n + 20 > Date.now() ? this.asyncRenderer(t, e, n) : setTimeout(X(function() {
                    this.asyncRenderer(t, e)
                }, this), 0)
            }
            ,
            n.prototype.createPseudoHideStyles = function(t) {
                this.createStyles(t, "." + x.prototype.PSEUDO_HIDE_ELEMENT_CLASS_BEFORE + ':before { content: "" !important; display: none !important; }.' + x.prototype.PSEUDO_HIDE_ELEMENT_CLASS_AFTER + ':after { content: "" !important; display: none !important; }')
            }
            ,
            n.prototype.disableAnimations = function(t) {
                this.createStyles(t, "* { -webkit-animation: none !important; -moz-animation: none !important; -o-animation: none !important; animation: none !important; -webkit-transition: none !important; -moz-transition: none !important; -o-transition: none !important; transition: none !important;}")
            }
            ,
            n.prototype.createStyles = function(t, e) {
                var n = t.createElement("style");
                n.innerHTML = e,
                t.body.appendChild(n)
            }
            ,
            n.prototype.getPseudoElements = function(t) {
                var e, n, i = [[t]];
                return t.node.nodeType === Node.ELEMENT_NODE && (e = this.getPseudoElement(t, ":before"),
                n = this.getPseudoElement(t, ":after"),
                e && i.push(e),
                n && i.push(n)),
                N(i)
            }
            ,
            n.prototype.getPseudoElement = function(t, e) {
                var n = t.computedStyle(e);
                if (!n || !n.content || "none" === n.content || "-moz-alt-content" === n.content || "none" === n.display)
                    return null;
                for (var i, r, o = (i = n.content,
                (r = i.substr(0, 1)) === i.substr(i.length - 1) && r.match(/'|"/) ? i.substr(1, i.length - 2) : i), a = "url" === o.substr(0, 3), s = document.createElement(a ? "img" : "html2canvaspseudoelement"), c = new x(s,t,e), u = n.length - 1; 0 <= u; u--) {
                    var l = n.item(u).replace(/(\-[a-z])/g, function(t) {
                        return t.toUpperCase().replace("-", "")
                    });
                    s.style[l] = n[l]
                }
                if (s.className = x.prototype.PSEUDO_HIDE_ELEMENT_CLASS_BEFORE + " " + x.prototype.PSEUDO_HIDE_ELEMENT_CLASS_AFTER,
                a)
                    return s.src = R(o)[0].args[0],
                    [c];
                var h = document.createTextNode(o);
                return s.appendChild(h),
                [c, new C(h,c)]
            }
            ,
            n.prototype.getChildren = function(n) {
                return N([].filter.call(n.node.childNodes, r).map(function(t) {
                    var e = [new (t.nodeType === Node.TEXT_NODE ? C : T)(t,n)].filter(L);
                    return t.nodeType === Node.ELEMENT_NODE && e.length && "TEXTAREA" !== t.tagName ? e[0].isElementVisible() ? e.concat(this.getChildren(e[0])) : [] : e
                }, this))
            }
            ,
            n.prototype.newStackingContext = function(t, e) {
                var n = new B(e,t.getOpacity(),t.node,t.parent);
                t.cloneTo(n),
                (e ? n.getParentStack(this) : n.parent.stack).contexts.push(n),
                t.stack = n
            }
            ,
            n.prototype.createStackingContexts = function() {
                this.nodes.forEach(function(t) {
                    var e, n;
                    _(t) && (this.isRootElement(t) || t.getOpacity() < 1 || (n = (e = t).css("position"),
                    "auto" !== (-1 !== ["absolute", "relative", "fixed"].indexOf(n) ? e.css("zIndex") : "auto")) || this.isBodyWithTransparentRoot(t) || t.hasTransform()) ? this.newStackingContext(t, !0) : _(t) && (A(t) && M(t) || -1 !== ["inline-block", "inline-table"].indexOf(t.css("display")) || y(t)) ? this.newStackingContext(t, !1) : t.assignStack(t.parent.stack)
                }, this)
            }
            ,
            n.prototype.isBodyWithTransparentRoot = function(t) {
                return "BODY" === t.node.nodeName && t.parent.color("backgroundColor").isTransparent()
            }
            ,
            n.prototype.isRootElement = function(t) {
                return null === t.parent
            }
            ,
            n.prototype.sortStackingContexts = function(t) {
                var n;
                t.contexts.sort((n = t.contexts.slice(0),
                function(t, e) {
                    return t.cssInt("zIndex") + n.indexOf(t) / n.length - (e.cssInt("zIndex") + n.indexOf(e) / n.length)
                }
                )),
                t.contexts.forEach(this.sortStackingContexts, this)
            }
            ,
            n.prototype.parseTextBounds = function(a) {
                return function(t, e, n) {
                    if ("none" !== a.parent.css("textDecoration").substr(0, 4) || 0 !== t.trim().length) {
                        if (this.support.rangeBounds && !a.parent.hasTransform()) {
                            var i = n.slice(0, e).join("").length;
                            return this.getRangeBounds(a.node, i, t.length)
                        }
                        if (a.node && "string" == typeof a.node.data) {
                            var r = a.node.splitText(t.length)
                              , o = this.getWrapperBounds(a.node, a.parent.hasTransform());
                            return a.node = r,
                            o
                        }
                    } else
                        this.support.rangeBounds && !a.parent.hasTransform() || (a.node = a.node.splitText(t.length));
                    return {}
                }
            }
            ,
            n.prototype.getWrapperBounds = function(t, e) {
                var n = t.ownerDocument.createElement("html2canvaswrapper")
                  , i = t.parentNode
                  , r = t.cloneNode(!0);
                n.appendChild(t.cloneNode(!0)),
                i.replaceChild(n, t);
                var o = (e ? P : D)(n);
                return i.replaceChild(r, n),
                o
            }
            ,
            n.prototype.getRangeBounds = function(t, e, n) {
                var i = this.range || (this.range = t.ownerDocument.createRange());
                return i.setStart(t, e),
                i.setEnd(t, e + n),
                i.getBoundingClientRect()
            }
            ,
            n.prototype.parse = function(t) {
                var e = t.contexts.filter(p)
                  , n = t.children.filter(_)
                  , i = n.filter(z(y))
                  , r = i.filter(z(A)).filter(z(b))
                  , o = n.filter(z(A)).filter(y)
                  , a = i.filter(z(A)).filter(b)
                  , s = t.contexts.concat(i.filter(A)).filter(M)
                  , c = t.children.filter(O).filter(g)
                  , u = t.contexts.filter(d);
                e.concat(r).concat(o).concat(a).concat(s).concat(c).concat(u).forEach(function(t) {
                    this.renderQueue.push(t),
                    m(t) && (this.parse(t),
                    this.renderQueue.push(new l))
                }, this)
            }
            ,
            n.prototype.paint = function(t) {
                try {
                    t instanceof l ? this.renderer.ctx.restore() : O(t) ? (o(t.parent) && t.parent.appendToDOM(),
                    this.paintText(t),
                    o(t.parent) && t.parent.cleanDOM()) : this.paintNode(t)
                } catch (t) {
                    if (q(t),
                    this.options.strict)
                        throw t
                }
            }
            ,
            n.prototype.paintNode = function(t) {
                m(t) && (this.renderer.setOpacity(t.opacity),
                this.renderer.ctx.save(),
                t.hasTransform() && this.renderer.setTransform(t.parseTransform())),
                "INPUT" === t.node.nodeName && "checkbox" === t.node.type ? this.paintCheckbox(t) : "INPUT" === t.node.nodeName && "radio" === t.node.type ? this.paintRadio(t) : this.paintElement(t)
            }
            ,
            n.prototype.paintElement = function(n) {
                var i = n.parseBounds();
                this.renderer.clip(n.backgroundClip, function() {
                    this.renderer.renderBackground(n, i, n.borders.borders.map(w))
                }, this),
                this.renderer.clip(n.clip, function() {
                    this.renderer.renderBorders(n.borders.borders)
                }, this),
                this.renderer.clip(n.backgroundClip, function() {
                    switch (n.node.nodeName) {
                    case "svg":
                    case "IFRAME":
                        var t = this.images.get(n.node);
                        t ? this.renderer.renderImage(n, i, n.borders, t) : q("Error loading <" + n.node.nodeName + ">", n.node);
                        break;
                    case "IMG":
                        var e = this.images.get(n.node.src);
                        e ? this.renderer.renderImage(n, i, n.borders, e) : q("Error loading <img>", n.node.src);
                        break;
                    case "CANVAS":
                        this.renderer.renderImage(n, i, n.borders, {
                            image: n.node
                        });
                        break;
                    case "SELECT":
                    case "INPUT":
                    case "TEXTAREA":
                        this.paintFormValue(n)
                    }
                }, this)
            }
            ,
            n.prototype.paintCheckbox = function(t) {
                var e = t.parseBounds()
                  , n = Math.min(e.width, e.height)
                  , i = {
                    width: n - 1,
                    height: n - 1,
                    top: e.top,
                    left: e.left
                }
                  , r = [3, 3]
                  , o = [r, r, r, r]
                  , a = [1, 1, 1, 1].map(function(t) {
                    return {
                        color: new S("#A5A5A5"),
                        width: t
                    }
                })
                  , s = u(i, o, a);
                this.renderer.clip(t.backgroundClip, function() {
                    this.renderer.rectangle(i.left + 1, i.top + 1, i.width - 2, i.height - 2, new S("#DEDEDE")),
                    this.renderer.renderBorders(c(a, i, s, o)),
                    t.node.checked && (this.renderer.font(new S("#424242"), "normal", "normal", "bold", n - 3 + "px", "arial"),
                    this.renderer.text("✔", i.left + n / 6, i.top + n - 1))
                }, this)
            }
            ,
            n.prototype.paintRadio = function(t) {
                var e = t.parseBounds()
                  , n = Math.min(e.width, e.height) - 2;
                this.renderer.clip(t.backgroundClip, function() {
                    this.renderer.circleStroke(e.left + 1, e.top + 1, n, new S("#DEDEDE"), 1, new S("#A5A5A5")),
                    t.node.checked && this.renderer.circle(Math.ceil(e.left + n / 4) + 1, Math.ceil(e.top + n / 4) + 1, Math.floor(n / 2), new S("#424242"))
                }, this)
            }
            ,
            n.prototype.paintFormValue = function(e) {
                var t, n, i, r = e.getValue();
                0 < r.length && (t = e.node.ownerDocument,
                n = t.createElement("html2canvaswrapper"),
                ["lineHeight", "textAlign", "fontFamily", "fontWeight", "fontSize", "color", "paddingLeft", "paddingTop", "paddingRight", "paddingBottom", "width", "height", "borderLeftStyle", "borderTopStyle", "borderLeftWidth", "borderTopWidth", "boxSizing", "whiteSpace", "wordWrap"].forEach(function(t) {
                    try {
                        n.style[t] = e.css(t)
                    } catch (t) {
                        q("html2canvas: Parse: Exception caught in renderFormValue: " + t.message)
                    }
                }),
                i = e.parseBounds(),
                n.style.position = "fixed",
                n.style.left = i.left + "px",
                n.style.top = i.top + "px",
                n.textContent = r,
                t.body.appendChild(n),
                this.paintText(new C(n.firstChild,e)),
                t.body.removeChild(n))
            }
            ,
            n.prototype.paintText = function(n) {
                n.applyTextTransform();
                var t = W.ucs2.decode(n.node.data)
                  , i = this.options.letterRendering && !/^(normal|none|0px)$/.test(n.parent.css("letterSpacing")) || /[^\u0000-\u00ff]/.test(n.node.data) ? t.map(function(t) {
                    return W.ucs2.encode([t])
                }) : function(t) {
                    for (var e, n = [], i = 0, r = !1; t.length; )
                        -1 !== [32, 13, 10, 9, 45].indexOf(t[i]) === r ? ((e = t.splice(0, i)).length && n.push(W.ucs2.encode(e)),
                        r = !r,
                        i = 0) : i++,
                        i >= t.length && ((e = t.splice(0, i)).length && n.push(W.ucs2.encode(e)));
                    return n
                }(t)
                  , e = n.parent.fontWeight()
                  , r = n.parent.css("fontSize")
                  , o = n.parent.css("fontFamily")
                  , a = n.parent.parseTextShadows();
                this.renderer.font(n.parent.color("color"), n.parent.css("fontStyle"), n.parent.css("fontVariant"), e, r, o),
                a.length ? this.renderer.fontShadow(a[0].color, a[0].offsetX, a[0].offsetY, a[0].blur) : this.renderer.clearShadow(),
                this.renderer.clip(n.parent.clip, function() {
                    i.map(this.parseTextBounds(n), this).forEach(function(t, e) {
                        t && (this.renderer.text(i[e], t.left, t.bottom),
                        this.renderTextDecoration(n.parent, t, this.fontMetrics.getMetrics(o, r)))
                    }, this)
                }, this)
            }
            ,
            n.prototype.renderTextDecoration = function(t, e, n) {
                switch (t.css("textDecoration").split(" ")[0]) {
                case "underline":
                    this.renderer.rectangle(e.left, Math.round(e.top + n.baseline + n.lineWidth), e.width, 1, t.color("color"));
                    break;
                case "overline":
                    this.renderer.rectangle(e.left, Math.round(e.top), e.width, 1, t.color("color"));
                    break;
                case "line-through":
                    this.renderer.rectangle(e.left, Math.ceil(e.top + n.middle + n.lineWidth), e.width, 1, t.color("color"))
                }
            }
            ;
            var I = {
                inset: [["darken", .6], ["darken", .1], ["darken", .1], ["darken", .6]]
            };
            n.prototype.parseBorders = function(o) {
                var n, t = o.parseBounds(), e = (n = o,
                ["TopLeft", "TopRight", "BottomRight", "BottomLeft"].map(function(t) {
                    var e = n.css("border" + t + "Radius").split(" ");
                    return e.length <= 1 && (e[1] = e[0]),
                    e.map(s)
                })), i = ["Top", "Right", "Bottom", "Left"].map(function(t, e) {
                    var n = o.css("border" + t + "Style")
                      , i = o.color("border" + t + "Color");
                    "inset" === n && i.isBlack() && (i = new S([255, 255, 255, i.a]));
                    var r = I[n] ? I[n][e] : null;
                    return {
                        width: o.cssInt("border" + t + "Width"),
                        color: r ? i[r[0]](r[1]) : i,
                        args: null
                    }
                }), r = u(t, e, i);
                return {
                    clip: this.parseBackgroundClip(o, r, i, e, t),
                    borders: c(i, t, r, e)
                }
            }
            ,
            n.prototype.parseBackgroundClip = function(t, e, n, i, r) {
                var o = [];
                switch (t.css("backgroundClip")) {
                case "content-box":
                case "padding-box":
                    a(o, i[0], i[1], e.topLeftInner, e.topRightInner, r.left + n[3].width, r.top + n[0].width),
                    a(o, i[1], i[2], e.topRightInner, e.bottomRightInner, r.left + r.width - n[1].width, r.top + n[0].width),
                    a(o, i[2], i[3], e.bottomRightInner, e.bottomLeftInner, r.left + r.width - n[1].width, r.top + r.height - n[2].width),
                    a(o, i[3], i[0], e.bottomLeftInner, e.topLeftInner, r.left + n[3].width, r.top + r.height - n[2].width);
                    break;
                default:
                    a(o, i[0], i[1], e.topLeftOuter, e.topRightOuter, r.left, r.top),
                    a(o, i[1], i[2], e.topRightOuter, e.bottomRightOuter, r.left + r.width, r.top),
                    a(o, i[2], i[3], e.bottomRightOuter, e.bottomLeftOuter, r.left + r.width, r.top + r.height),
                    a(o, i[3], i[0], e.bottomLeftOuter, e.topLeftOuter, r.left, r.top + r.height)
                }
                return o
            }
            ,
            e.exports = n
        }
        , {
            "./color": 3,
            "./fontmetrics": 7,
            "./log": 13,
            "./nodecontainer": 14,
            "./pseudoelementcontainer": 18,
            "./stackingcontext": 21,
            "./textcontainer": 25,
            "./utils": 26,
            punycode: 1
        }],
        16: [function(t, e, n) {
            function s(t, e, n) {
                var i = "withCredentials"in new XMLHttpRequest;
                if (!e)
                    return Promise.reject("No proxy configured");
                var r = c(i)
                  , o = u(e, t, r);
                return i ? l(o) : a(n, o, r).then(function(t) {
                    return p(t.content)
                })
            }
            function a(r, o, a) {
                return new Promise(function(e, n) {
                    function i() {
                        delete window.html2canvas.proxy[a],
                        r.body.removeChild(t)
                    }
                    var t = r.createElement("script");
                    window.html2canvas.proxy[a] = function(t) {
                        i(),
                        e(t)
                    }
                    ,
                    t.src = o,
                    t.onerror = function(t) {
                        i(),
                        n(t)
                    }
                    ,
                    r.body.appendChild(t)
                }
                )
            }
            function c(t) {
                return t ? "" : "html2canvas_" + Date.now() + "_" + ++r + "_" + Math.round(1e5 * Math.random())
            }
            function u(t, e, n) {
                return t + "?url=" + encodeURIComponent(e) + (n.length ? "&callback=html2canvas.proxy." + n : "")
            }
            var l = t("./xhr")
              , i = t("./utils")
              , h = t("./log")
              , f = t("./clone")
              , p = i.decode64
              , r = 0;
            n.Proxy = s,
            n.ProxyURL = function(t, e, n) {
                var i = "crossOrigin"in new Image
                  , r = c(i)
                  , o = u(e, t, r);
                return i ? Promise.resolve(o) : a(n, o, r).then(function(t) {
                    return "data:" + t.type + ";base64," + t.content
                })
            }
            ,
            n.loadUrlDocument = function(t, e, n, i, r, o) {
                return new s(t,e,window.document).then((a = t,
                function(e) {
                    var n, t = new DOMParser;
                    try {
                        n = t.parseFromString(e, "text/html")
                    } catch (t) {
                        h("DOMParser not supported, falling back to createHTMLDocument"),
                        n = document.implementation.createHTMLDocument("");
                        try {
                            n.open(),
                            n.write(e),
                            n.close()
                        } catch (t) {
                            h("createHTMLDocument write not supported, falling back to document.body.innerHTML"),
                            n.body.innerHTML = e
                        }
                    }
                    var i, r = n.querySelector("base");
                    return r && r.href.host || ((i = n.createElement("base")).href = a,
                    n.head.insertBefore(i, n.head.firstChild)),
                    n
                }
                )).then(function(t) {
                    return f(t, n, i, r, o, 0, 0)
                });
                var a
            }
        }
        , {
            "./clone": 2,
            "./log": 13,
            "./utils": 26,
            "./xhr": 28
        }],
        17: [function(t, e) {
            var o = t("./proxy").ProxyURL;
            e.exports = function(n, i) {
                var t = document.createElement("a");
                t.href = n,
                n = t.href,
                this.src = n,
                this.image = new Image;
                var r = this;
                this.promise = new Promise(function(t, e) {
                    r.image.crossOrigin = "Anonymous",
                    r.image.onload = t,
                    r.image.onerror = e,
                    new o(n,i,document).then(function(t) {
                        r.image.src = t
                    }).catch(e)
                }
                )
            }
        }
        , {
            "./proxy": 16
        }],
        18: [function(t, e) {
            function n(t, e, n) {
                i.call(this, t, e),
                this.isPseudoElement = !0,
                this.before = ":before" === n
            }
            var i = t("./nodecontainer");
            n.prototype.cloneTo = function(t) {
                n.prototype.cloneTo.call(this, t),
                t.isPseudoElement = !0,
                t.before = this.before
            }
            ,
            (n.prototype = Object.create(i.prototype)).appendToDOM = function() {
                this.before ? this.parent.node.insertBefore(this.node, this.parent.node.firstChild) : this.parent.node.appendChild(this.node),
                this.parent.node.className += " " + this.getHideClass()
            }
            ,
            n.prototype.cleanDOM = function() {
                this.node.parentNode.removeChild(this.node),
                this.parent.node.className = this.parent.node.className.replace(this.getHideClass(), "")
            }
            ,
            n.prototype.getHideClass = function() {
                return this["PSEUDO_HIDE_ELEMENT_CLASS_" + (this.before ? "BEFORE" : "AFTER")]
            }
            ,
            n.prototype.PSEUDO_HIDE_ELEMENT_CLASS_BEFORE = "___html2canvas___pseudoelement_before",
            n.prototype.PSEUDO_HIDE_ELEMENT_CLASS_AFTER = "___html2canvas___pseudoelement_after",
            e.exports = n
        }
        , {
            "./nodecontainer": 14
        }],
        19: [function(t, e) {
            function n(t, e, n, i, r) {
                this.width = t,
                this.height = e,
                this.images = n,
                this.options = i,
                this.document = r
            }
            var c = t("./log");
            n.prototype.renderImage = function(t, e, n, i) {
                var r = t.cssInt("paddingLeft")
                  , o = t.cssInt("paddingTop")
                  , a = t.cssInt("paddingRight")
                  , s = t.cssInt("paddingBottom")
                  , c = n.borders
                  , u = e.width - (c[1].width + c[3].width + r + a)
                  , l = e.height - (c[0].width + c[2].width + o + s);
                this.drawImage(i, 0, 0, i.image.width || u, i.image.height || l, e.left + r + c[3].width, e.top + o + c[0].width, u, l)
            }
            ,
            n.prototype.renderBackground = function(t, e, n) {
                0 < e.height && 0 < e.width && (this.renderBackgroundColor(t, e),
                this.renderBackgroundImage(t, e, n))
            }
            ,
            n.prototype.renderBackgroundColor = function(t, e) {
                var n = t.color("backgroundColor");
                n.isTransparent() || this.rectangle(e.left, e.top, e.width, e.height, n)
            }
            ,
            n.prototype.renderBorders = function(t) {
                t.forEach(this.renderBorder, this)
            }
            ,
            n.prototype.renderBorder = function(t) {
                t.color.isTransparent() || null === t.args || this.drawShape(t.args, t.color)
            }
            ,
            n.prototype.renderBackgroundImage = function(o, a, s) {
                o.parseBackgroundImages().reverse().forEach(function(t, e, n) {
                    switch (t.method) {
                    case "url":
                        var i = this.images.get(t.args[0]);
                        i ? this.renderBackgroundRepeating(o, a, i, n.length - (e + 1), s) : c("Error loading background-image", t.args[0]);
                        break;
                    case "linear-gradient":
                    case "gradient":
                        var r = this.images.get(t.value);
                        r ? this.renderBackgroundGradient(r, a, s) : c("Error loading background-image", t.args[0]);
                        break;
                    case "none":
                        break;
                    default:
                        c("Unknown background-image type", t.args[0])
                    }
                }, this)
            }
            ,
            n.prototype.renderBackgroundRepeating = function(t, e, n, i, r) {
                var o = t.parseBackgroundSize(e, n.image, i)
                  , a = t.parseBackgroundPosition(e, n.image, i, o);
                switch (t.parseBackgroundRepeat(i)) {
                case "repeat-x":
                case "repeat no-repeat":
                    this.backgroundRepeatShape(n, a, o, e, e.left + r[3], e.top + a.top + r[0], 99999, o.height, r);
                    break;
                case "repeat-y":
                case "no-repeat repeat":
                    this.backgroundRepeatShape(n, a, o, e, e.left + a.left + r[3], e.top + r[0], o.width, 99999, r);
                    break;
                case "no-repeat":
                    this.backgroundRepeatShape(n, a, o, e, e.left + a.left + r[3], e.top + a.top + r[0], o.width, o.height, r);
                    break;
                default:
                    this.renderBackgroundRepeat(n, a, o, {
                        top: e.top,
                        left: e.left
                    }, r[3], r[0])
                }
            }
            ,
            e.exports = n
        }
        , {
            "./log": 13
        }],
        20: [function(t, e) {
            function n(t, e) {
                r.apply(this, arguments),
                this.canvas = this.options.canvas || this.document.createElement("canvas"),
                this.options.canvas || (this.canvas.width = t,
                this.canvas.height = e),
                this.ctx = this.canvas.getContext("2d"),
                this.taintCtx = this.document.createElement("canvas").getContext("2d"),
                this.ctx.textBaseline = "bottom",
                this.variables = {},
                a("Initialized CanvasRenderer with size", t, "x", e)
            }
            function i(t) {
                return 0 < t.length
            }
            var r = t("../renderer")
              , o = t("../lineargradientcontainer")
              , a = t("../log");
            (n.prototype = Object.create(r.prototype)).setFillStyle = function(t) {
                return this.ctx.fillStyle = "object" == typeof t && t.isColor ? t.toString() : t,
                this.ctx
            }
            ,
            n.prototype.rectangle = function(t, e, n, i, r) {
                this.setFillStyle(r).fillRect(t, e, n, i)
            }
            ,
            n.prototype.circle = function(t, e, n, i) {
                this.setFillStyle(i),
                this.ctx.beginPath(),
                this.ctx.arc(t + n / 2, e + n / 2, n / 2, 0, 2 * Math.PI, !0),
                this.ctx.closePath(),
                this.ctx.fill()
            }
            ,
            n.prototype.circleStroke = function(t, e, n, i, r, o) {
                this.circle(t, e, n, i),
                this.ctx.strokeStyle = o.toString(),
                this.ctx.stroke()
            }
            ,
            n.prototype.drawShape = function(t, e) {
                this.shape(t),
                this.setFillStyle(e).fill()
            }
            ,
            n.prototype.taints = function(e) {
                if (null === e.tainted) {
                    this.taintCtx.drawImage(e.image, 0, 0);
                    try {
                        this.taintCtx.getImageData(0, 0, 1, 1),
                        e.tainted = !1
                    } catch (t) {
                        this.taintCtx = document.createElement("canvas").getContext("2d"),
                        e.tainted = !0
                    }
                }
                return e.tainted
            }
            ,
            n.prototype.drawImage = function(t, e, n, i, r, o, a, s, c) {
                this.taints(t) && !this.options.allowTaint || this.ctx.drawImage(t.image, e, n, i, r, o, a, s, c)
            }
            ,
            n.prototype.clip = function(t, e, n) {
                this.ctx.save(),
                t.filter(i).forEach(function(t) {
                    this.shape(t).clip()
                }, this),
                e.call(n),
                this.ctx.restore()
            }
            ,
            n.prototype.shape = function(t) {
                return this.ctx.beginPath(),
                t.forEach(function(t, e) {
                    "rect" === t[0] ? this.ctx.rect.apply(this.ctx, t.slice(1)) : this.ctx[0 === e ? "moveTo" : t[0] + "To"].apply(this.ctx, t.slice(1))
                }, this),
                this.ctx.closePath(),
                this.ctx
            }
            ,
            n.prototype.font = function(t, e, n, i, r, o) {
                this.setFillStyle(t).font = [e, n, i, r, o].join(" ").split(",")[0]
            }
            ,
            n.prototype.fontShadow = function(t, e, n, i) {
                this.setVariable("shadowColor", t.toString()).setVariable("shadowOffsetY", e).setVariable("shadowOffsetX", n).setVariable("shadowBlur", i)
            }
            ,
            n.prototype.clearShadow = function() {
                this.setVariable("shadowColor", "rgba(0,0,0,0)")
            }
            ,
            n.prototype.setOpacity = function(t) {
                this.ctx.globalAlpha = t
            }
            ,
            n.prototype.setTransform = function(t) {
                this.ctx.translate(t.origin[0], t.origin[1]),
                this.ctx.transform.apply(this.ctx, t.matrix),
                this.ctx.translate(-t.origin[0], -t.origin[1])
            }
            ,
            n.prototype.setVariable = function(t, e) {
                return this.variables[t] !== e && (this.variables[t] = this.ctx[t] = e),
                this
            }
            ,
            n.prototype.text = function(t, e, n) {
                this.ctx.fillText(t, e, n)
            }
            ,
            n.prototype.backgroundRepeatShape = function(t, e, n, i, r, o, a, s, c) {
                var u = [["line", Math.round(r), Math.round(o)], ["line", Math.round(r + a), Math.round(o)], ["line", Math.round(r + a), Math.round(s + o)], ["line", Math.round(r), Math.round(s + o)]];
                this.clip([u], function() {
                    this.renderBackgroundRepeat(t, e, n, i, c[3], c[0])
                }, this)
            }
            ,
            n.prototype.renderBackgroundRepeat = function(t, e, n, i, r, o) {
                var a = Math.round(i.left + e.left + r)
                  , s = Math.round(i.top + e.top + o);
                this.setFillStyle(this.ctx.createPattern(this.resizeImage(t, n), "repeat")),
                this.ctx.translate(a, s),
                this.ctx.fill(),
                this.ctx.translate(-a, -s)
            }
            ,
            n.prototype.renderBackgroundGradient = function(t, e) {
                var n;
                t instanceof o && (n = this.ctx.createLinearGradient(e.left + e.width * t.x0, e.top + e.height * t.y0, e.left + e.width * t.x1, e.top + e.height * t.y1),
                t.colorStops.forEach(function(t) {
                    n.addColorStop(t.stop, t.color.toString())
                }),
                this.rectangle(e.left, e.top, e.width, e.height, n))
            }
            ,
            n.prototype.resizeImage = function(t, e) {
                var n = t.image;
                if (n.width === e.width && n.height === e.height)
                    return n;
                var i = document.createElement("canvas");
                return i.width = e.width,
                i.height = e.height,
                i.getContext("2d").drawImage(n, 0, 0, n.width, n.height, 0, 0, e.width, e.height),
                i
            }
            ,
            e.exports = n
        }
        , {
            "../lineargradientcontainer": 12,
            "../log": 13,
            "../renderer": 19
        }],
        21: [function(t, e) {
            function n(t, e, n, i) {
                r.call(this, n, i),
                this.ownStacking = t,
                this.contexts = [],
                this.children = [],
                this.opacity = (this.parent ? this.parent.stack.opacity : 1) * e
            }
            var r = t("./nodecontainer");
            (n.prototype = Object.create(r.prototype)).getParentStack = function(t) {
                var e = this.parent ? this.parent.stack : null;
                return e ? e.ownStacking ? e : e.getParentStack(t) : t.stack
            }
            ,
            e.exports = n
        }
        , {
            "./nodecontainer": 14
        }],
        22: [function(t, e) {
            function n(t) {
                this.rangeBounds = this.testRangeBounds(t),
                this.cors = this.testCORS(),
                this.svg = this.testSVG()
            }
            n.prototype.testRangeBounds = function(t) {
                var e, n, i = !1;
                return t.createRange && ((e = t.createRange()).getBoundingClientRect && ((n = t.createElement("boundtest")).style.height = "123px",
                n.style.display = "block",
                t.body.appendChild(n),
                e.selectNode(n),
                123 === e.getBoundingClientRect().height && (i = !0),
                t.body.removeChild(n))),
                i
            }
            ,
            n.prototype.testCORS = function() {
                return void 0 !== (new Image).crossOrigin
            }
            ,
            n.prototype.testSVG = function() {
                var t = new Image
                  , e = document.createElement("canvas")
                  , n = e.getContext("2d");
                t.src = "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";
                try {
                    n.drawImage(t, 0, 0),
                    e.toDataURL()
                } catch (t) {
                    return !1
                }
                return !0
            }
            ,
            e.exports = n
        }
        , {}],
        23: [function(t, e) {
            function n(t) {
                this.src = t,
                this.image = null;
                var n = this;
                this.promise = this.hasFabric().then(function() {
                    return n.isInline(t) ? Promise.resolve(n.inlineFormatting(t)) : i(t)
                }).then(function(e) {
                    return new Promise(function(t) {
                        window.html2canvas.svg.fabric.loadSVGFromString(e, n.createCanvas.call(n, t))
                    }
                    )
                })
            }
            var i = t("./xhr")
              , r = t("./utils").decode64;
            n.prototype.hasFabric = function() {
                return window.html2canvas.svg && window.html2canvas.svg.fabric ? Promise.resolve() : Promise.reject(new Error("html2canvas.svg.js is not loaded, cannot render svg"))
            }
            ,
            n.prototype.inlineFormatting = function(t) {
                return /^data:image\/svg\+xml;base64,/.test(t) ? this.decode64(this.removeContentType(t)) : this.removeContentType(t)
            }
            ,
            n.prototype.removeContentType = function(t) {
                return t.replace(/^data:image\/svg\+xml(;base64)?,/, "")
            }
            ,
            n.prototype.isInline = function(t) {
                return /^data:image\/svg\+xml/i.test(t)
            }
            ,
            n.prototype.createCanvas = function(i) {
                var r = this;
                return function(t, e) {
                    var n = new window.html2canvas.svg.fabric.StaticCanvas("c");
                    r.image = n.lowerCanvasEl,
                    n.setWidth(e.width).setHeight(e.height).add(window.html2canvas.svg.fabric.util.groupSVGElements(t, e)).renderAll(),
                    i(n.lowerCanvasEl)
                }
            }
            ,
            n.prototype.decode64 = function(t) {
                return "function" == typeof window.atob ? window.atob(t) : r(t)
            }
            ,
            e.exports = n
        }
        , {
            "./utils": 26,
            "./xhr": 28
        }],
        24: [function(t, e) {
            function n(n, t) {
                this.src = n,
                this.image = null;
                var i = this;
                this.promise = t ? new Promise(function(t, e) {
                    i.image = new Image,
                    i.image.onload = t,
                    i.image.onerror = e,
                    i.image.src = "data:image/svg+xml," + (new XMLSerializer).serializeToString(n),
                    !0 === i.image.complete && t(i.image)
                }
                ) : this.hasFabric().then(function() {
                    return new Promise(function(t) {
                        window.html2canvas.svg.fabric.parseSVGDocument(n, i.createCanvas.call(i, t))
                    }
                    )
                })
            }
            var i = t("./svgcontainer");
            n.prototype = Object.create(i.prototype),
            e.exports = n
        }
        , {
            "./svgcontainer": 23
        }],
        25: [function(t, e) {
            function n(t, e) {
                r.call(this, t, e)
            }
            function i(t, e, n) {
                return 0 < t.length ? e + n.toUpperCase() : void 0
            }
            var r = t("./nodecontainer");
            (n.prototype = Object.create(r.prototype)).applyTextTransform = function() {
                this.node.data = this.transform(this.parent.css("textTransform"))
            }
            ,
            n.prototype.transform = function(t) {
                var e = this.node.data;
                switch (t) {
                case "lowercase":
                    return e.toLowerCase();
                case "capitalize":
                    return e.replace(/(^|\s|:|-|\(|\))([a-z])/g, i);
                case "uppercase":
                    return e.toUpperCase();
                default:
                    return e
                }
            }
            ,
            e.exports = n
        }
        , {
            "./nodecontainer": 14
        }],
        26: [function(t, e, n) {
            n.smallImage = function() {
                return "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
            }
            ,
            n.bind = function(t, e) {
                return function() {
                    return t.apply(e, arguments)
                }
            }
            ,
            n.decode64 = function(t) {
                for (var e, n, i, r, o, a, s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", c = t.length, u = "", l = 0; l < c; l += 4)
                    r = s.indexOf(t[l]) << 2 | (e = s.indexOf(t[l + 1])) >> 4,
                    o = (15 & e) << 4 | (n = s.indexOf(t[l + 2])) >> 2,
                    a = (3 & n) << 6 | (i = s.indexOf(t[l + 3])),
                    u += 64 === n ? String.fromCharCode(r) : 64 === i || -1 === i ? String.fromCharCode(r, o) : String.fromCharCode(r, o, a);
                return u
            }
            ,
            n.getBounds = function(t) {
                if (t.getBoundingClientRect) {
                    var e = t.getBoundingClientRect()
                      , n = null == t.offsetWidth ? e.width : t.offsetWidth;
                    return {
                        top: e.top,
                        bottom: e.bottom || e.top + e.height,
                        right: e.left + n,
                        left: e.left,
                        width: n,
                        height: null == t.offsetHeight ? e.height : t.offsetHeight
                    }
                }
                return {}
            }
            ,
            n.offsetBounds = function(t) {
                var e = t.offsetParent ? n.offsetBounds(t.offsetParent) : {
                    top: 0,
                    left: 0
                };
                return {
                    top: t.offsetTop + e.top,
                    bottom: t.offsetTop + t.offsetHeight + e.top,
                    right: t.offsetLeft + e.left + t.offsetWidth,
                    left: t.offsetLeft + e.left,
                    width: t.offsetWidth,
                    height: t.offsetHeight
                }
            }
            ,
            n.parseBackgrounds = function(t) {
                function e() {
                    h && ('"' === n.substr(0, 1) && (n = n.substr(1, n.length - 2)),
                    n && l.push(n),
                    "-" === h.substr(0, 1) && 0 < (r = h.indexOf("-", 1) + 1) && (i = h.substr(0, r),
                    h = h.substr(r)),
                    s.push({
                        prefix: i,
                        method: h.toLowerCase(),
                        value: o,
                        args: l,
                        image: null
                    })),
                    l = [],
                    h = i = n = o = ""
                }
                var n, i, r, o, a, s = [], c = 0, u = 0, l = [], h = i = n = o = "";
                return t.split("").forEach(function(t) {
                    if (!(0 === c && -1 < " \r\n\t".indexOf(t))) {
                        switch (t) {
                        case '"':
                            a ? a === t && (a = null) : a = t;
                            break;
                        case "(":
                            if (a)
                                break;
                            if (0 === c)
                                return c = 1,
                                void (o += t);
                            u++;
                            break;
                        case ")":
                            if (a)
                                break;
                            if (1 === c) {
                                if (0 === u)
                                    return c = 0,
                                    o += t,
                                    void e();
                                u--
                            }
                            break;
                        case ",":
                            if (a)
                                break;
                            if (0 === c)
                                return void e();
                            if (1 === c && 0 === u && !h.match(/^url$/i))
                                return l.push(n),
                                n = "",
                                void (o += t)
                        }
                        o += t,
                        0 === c ? h += t : n += t
                    }
                }),
                e(),
                s
            }
        }
        , {}],
        27: [function(t, e) {
            function n(t) {
                i.apply(this, arguments),
                this.type = "linear" === t.args[0] ? i.TYPES.LINEAR : i.TYPES.RADIAL
            }
            var i = t("./gradientcontainer");
            n.prototype = Object.create(i.prototype),
            e.exports = n
        }
        , {
            "./gradientcontainer": 9
        }],
        28: [function(t, e) {
            e.exports = function(i) {
                return new Promise(function(t, e) {
                    var n = new XMLHttpRequest;
                    n.open("GET", i),
                    n.onload = function() {
                        200 === n.status ? t(n.responseText) : e(new Error(n.statusText))
                    }
                    ,
                    n.onerror = function() {
                        e(new Error("Network Error"))
                    }
                    ,
                    n.send()
                }
                )
            }
        }
        , {}]
    }, {}, [4])(4)
}),
function(t) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).pako = t()
}(function() {
    return function o(a, s, c) {
        function u(e, t) {
            if (!s[e]) {
                if (!a[e]) {
                    var n = "function" == typeof require && require;
                    if (!t && n)
                        return n(e, !0);
                    if (l)
                        return l(e, !0);
                    var i = new Error("Cannot find module '" + e + "'");
                    throw i.code = "MODULE_NOT_FOUND",
                    i
                }
                var r = s[e] = {
                    exports: {}
                };
                a[e][0].call(r.exports, function(t) {
                    return u(a[e][1][t] || t)
                }, r, r.exports, o, a, s, c)
            }
            return s[e].exports
        }
        for (var l = "function" == typeof require && require, t = 0; t < c.length; t++)
            u(c[t]);
        return u
    }({
        1: [function(t, e, n) {
            "use strict";
            function r(t) {
                if (!(this instanceof r))
                    return new r(t);
                this.options = s.assign({
                    level: f,
                    method: d,
                    chunkSize: 16384,
                    windowBits: 15,
                    memLevel: 8,
                    strategy: p,
                    to: ""
                }, t || {});
                var e = this.options;
                e.raw && 0 < e.windowBits ? e.windowBits = -e.windowBits : e.gzip && 0 < e.windowBits && e.windowBits < 16 && (e.windowBits += 16),
                this.err = 0,
                this.msg = "",
                this.ended = !1,
                this.chunks = [],
                this.strm = new u,
                this.strm.avail_out = 0;
                var n = a.deflateInit2(this.strm, e.level, e.method, e.windowBits, e.memLevel, e.strategy);
                if (n !== h)
                    throw new Error(o[n]);
                if (e.header && a.deflateSetHeader(this.strm, e.header),
                e.dictionary) {
                    var i = "string" == typeof e.dictionary ? c.string2buf(e.dictionary) : "[object ArrayBuffer]" === l.call(e.dictionary) ? new Uint8Array(e.dictionary) : e.dictionary;
                    if ((n = a.deflateSetDictionary(this.strm, i)) !== h)
                        throw new Error(o[n]);
                    this._dict_set = !0
                }
            }
            function i(t, e) {
                var n = new r(e);
                if (n.push(t, !0),
                n.err)
                    throw n.msg || o[n.err];
                return n.result
            }
            var a = t("./zlib/deflate")
              , s = t("./utils/common")
              , c = t("./utils/strings")
              , o = t("./zlib/messages")
              , u = t("./zlib/zstream")
              , l = Object.prototype.toString
              , h = 0
              , f = -1
              , p = 0
              , d = 8;
            r.prototype.push = function(t, e) {
                var n, i, r = this.strm, o = this.options.chunkSize;
                if (this.ended)
                    return !1;
                i = e === ~~e ? e : !0 === e ? 4 : 0,
                "string" == typeof t ? r.input = c.string2buf(t) : "[object ArrayBuffer]" === l.call(t) ? r.input = new Uint8Array(t) : r.input = t,
                r.next_in = 0,
                r.avail_in = r.input.length;
                do {
                    if (0 === r.avail_out && (r.output = new s.Buf8(o),
                    r.next_out = 0,
                    r.avail_out = o),
                    1 !== (n = a.deflate(r, i)) && n !== h)
                        return this.onEnd(n),
                        !(this.ended = !0);
                    0 !== r.avail_out && (0 !== r.avail_in || 4 !== i && 2 !== i) || ("string" === this.options.to ? this.onData(c.buf2binstring(s.shrinkBuf(r.output, r.next_out))) : this.onData(s.shrinkBuf(r.output, r.next_out)))
                } while ((0 < r.avail_in || 0 === r.avail_out) && 1 !== n);return 4 === i ? (n = a.deflateEnd(this.strm),
                this.onEnd(n),
                this.ended = !0,
                n === h) : 2 !== i || (this.onEnd(h),
                !(r.avail_out = 0))
            }
            ,
            r.prototype.onData = function(t) {
                this.chunks.push(t)
            }
            ,
            r.prototype.onEnd = function(t) {
                t === h && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = s.flattenChunks(this.chunks)),
                this.chunks = [],
                this.err = t,
                this.msg = this.strm.msg
            }
            ,
            n.Deflate = r,
            n.deflate = i,
            n.deflateRaw = function(t, e) {
                return (e = e || {}).raw = !0,
                i(t, e)
            }
            ,
            n.gzip = function(t, e) {
                return (e = e || {}).gzip = !0,
                i(t, e)
            }
        }
        , {
            "./utils/common": 3,
            "./utils/strings": 4,
            "./zlib/deflate": 8,
            "./zlib/messages": 13,
            "./zlib/zstream": 15
        }],
        2: [function(t, e, n) {
            "use strict";
            function i(t) {
                if (!(this instanceof i))
                    return new i(t);
                this.options = p.assign({
                    chunkSize: 16384,
                    windowBits: 0,
                    to: ""
                }, t || {});
                var e = this.options;
                e.raw && 0 <= e.windowBits && e.windowBits < 16 && (e.windowBits = -e.windowBits,
                0 === e.windowBits && (e.windowBits = -15)),
                !(0 <= e.windowBits && e.windowBits < 16) || t && t.windowBits || (e.windowBits += 32),
                15 < e.windowBits && e.windowBits < 48 && 0 == (15 & e.windowBits) && (e.windowBits |= 15),
                this.err = 0,
                this.msg = "",
                this.ended = !1,
                this.chunks = [],
                this.strm = new a,
                this.strm.avail_out = 0;
                var n = f.inflateInit2(this.strm, e.windowBits);
                if (n !== M.Z_OK)
                    throw new Error(o[n]);
                this.header = new s,
                f.inflateGetHeader(this.strm, this.header)
            }
            function r(t, e) {
                var n = new i(e);
                if (n.push(t, !0),
                n.err)
                    throw n.msg || o[n.err];
                return n.result
            }
            var f = t("./zlib/inflate")
              , p = t("./utils/common")
              , d = t("./utils/strings")
              , M = t("./zlib/constants")
              , o = t("./zlib/messages")
              , a = t("./zlib/zstream")
              , s = t("./zlib/gzheader")
              , b = Object.prototype.toString;
            i.prototype.push = function(t, e) {
                var n, i, r, o, a, s, c = this.strm, u = this.options.chunkSize, l = this.options.dictionary, h = !1;
                if (this.ended)
                    return !1;
                i = e === ~~e ? e : !0 === e ? M.Z_FINISH : M.Z_NO_FLUSH,
                "string" == typeof t ? c.input = d.binstring2buf(t) : "[object ArrayBuffer]" === b.call(t) ? c.input = new Uint8Array(t) : c.input = t,
                c.next_in = 0,
                c.avail_in = c.input.length;
                do {
                    if (0 === c.avail_out && (c.output = new p.Buf8(u),
                    c.next_out = 0,
                    c.avail_out = u),
                    (n = f.inflate(c, M.Z_NO_FLUSH)) === M.Z_NEED_DICT && l && (s = "string" == typeof l ? d.string2buf(l) : "[object ArrayBuffer]" === b.call(l) ? new Uint8Array(l) : l,
                    n = f.inflateSetDictionary(this.strm, s)),
                    n === M.Z_BUF_ERROR && !0 === h && (n = M.Z_OK,
                    h = !1),
                    n !== M.Z_STREAM_END && n !== M.Z_OK)
                        return this.onEnd(n),
                        !(this.ended = !0);
                    c.next_out && (0 !== c.avail_out && n !== M.Z_STREAM_END && (0 !== c.avail_in || i !== M.Z_FINISH && i !== M.Z_SYNC_FLUSH) || ("string" === this.options.to ? (r = d.utf8border(c.output, c.next_out),
                    o = c.next_out - r,
                    a = d.buf2string(c.output, r),
                    c.next_out = o,
                    c.avail_out = u - o,
                    o && p.arraySet(c.output, c.output, r, o, 0),
                    this.onData(a)) : this.onData(p.shrinkBuf(c.output, c.next_out)))),
                    0 === c.avail_in && 0 === c.avail_out && (h = !0)
                } while ((0 < c.avail_in || 0 === c.avail_out) && n !== M.Z_STREAM_END);return n === M.Z_STREAM_END && (i = M.Z_FINISH),
                i === M.Z_FINISH ? (n = f.inflateEnd(this.strm),
                this.onEnd(n),
                this.ended = !0,
                n === M.Z_OK) : i !== M.Z_SYNC_FLUSH || (this.onEnd(M.Z_OK),
                !(c.avail_out = 0))
            }
            ,
            i.prototype.onData = function(t) {
                this.chunks.push(t)
            }
            ,
            i.prototype.onEnd = function(t) {
                t === M.Z_OK && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = p.flattenChunks(this.chunks)),
                this.chunks = [],
                this.err = t,
                this.msg = this.strm.msg
            }
            ,
            n.Inflate = i,
            n.inflate = r,
            n.inflateRaw = function(t, e) {
                return (e = e || {}).raw = !0,
                r(t, e)
            }
            ,
            n.ungzip = r
        }
        , {
            "./utils/common": 3,
            "./utils/strings": 4,
            "./zlib/constants": 6,
            "./zlib/gzheader": 9,
            "./zlib/inflate": 11,
            "./zlib/messages": 13,
            "./zlib/zstream": 15
        }],
        3: [function(t, e, n) {
            "use strict";
            var i = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Int32Array;
            n.assign = function(t) {
                for (var e, n, i = Array.prototype.slice.call(arguments, 1); i.length; ) {
                    var r = i.shift();
                    if (r) {
                        if ("object" != typeof r)
                            throw new TypeError(r + "must be non-object");
                        for (var o in r)
                            e = r,
                            n = o,
                            Object.prototype.hasOwnProperty.call(e, n) && (t[o] = r[o])
                    }
                }
                return t
            }
            ,
            n.shrinkBuf = function(t, e) {
                return t.length === e ? t : t.subarray ? t.subarray(0, e) : (t.length = e,
                t)
            }
            ;
            var r = {
                arraySet: function(t, e, n, i, r) {
                    if (e.subarray && t.subarray)
                        t.set(e.subarray(n, n + i), r);
                    else
                        for (var o = 0; o < i; o++)
                            t[r + o] = e[n + o]
                },
                flattenChunks: function(t) {
                    for (var e, n, i, r = 0, o = 0, a = t.length; o < a; o++)
                        r += t[o].length;
                    for (i = new Uint8Array(r),
                    o = e = 0,
                    a = t.length; o < a; o++)
                        n = t[o],
                        i.set(n, e),
                        e += n.length;
                    return i
                }
            }
              , o = {
                arraySet: function(t, e, n, i, r) {
                    for (var o = 0; o < i; o++)
                        t[r + o] = e[n + o]
                },
                flattenChunks: function(t) {
                    return [].concat.apply([], t)
                }
            };
            n.setTyped = function(t) {
                t ? (n.Buf8 = Uint8Array,
                n.Buf16 = Uint16Array,
                n.Buf32 = Int32Array,
                n.assign(n, r)) : (n.Buf8 = Array,
                n.Buf16 = Array,
                n.Buf32 = Array,
                n.assign(n, o))
            }
            ,
            n.setTyped(i)
        }
        , {}],
        4: [function(t, e, n) {
            "use strict";
            function c(t, e) {
                if (e < 65537 && (t.subarray && o || !t.subarray && r))
                    return String.fromCharCode.apply(null, u.shrinkBuf(t, e));
                for (var n = "", i = 0; i < e; i++)
                    n += String.fromCharCode(t[i]);
                return n
            }
            var u = t("./common")
              , r = !0
              , o = !0;
            try {
                String.fromCharCode.apply(null, [0])
            } catch (t) {
                r = !1
            }
            try {
                String.fromCharCode.apply(null, new Uint8Array(1))
            } catch (t) {
                o = !1
            }
            for (var l = new u.Buf8(256), i = 0; i < 256; i++)
                l[i] = 252 <= i ? 6 : 248 <= i ? 5 : 240 <= i ? 4 : 224 <= i ? 3 : 192 <= i ? 2 : 1;
            l[254] = l[254] = 1,
            n.string2buf = function(t) {
                for (var e, n, i, r, o = t.length, a = 0, s = 0; s < o; s++)
                    55296 == (64512 & (n = t.charCodeAt(s))) && s + 1 < o && 56320 == (64512 & (i = t.charCodeAt(s + 1))) && (n = 65536 + (n - 55296 << 10) + (i - 56320),
                    s++),
                    a += n < 128 ? 1 : n < 2048 ? 2 : n < 65536 ? 3 : 4;
                for (e = new u.Buf8(a),
                s = r = 0; r < a; s++)
                    55296 == (64512 & (n = t.charCodeAt(s))) && s + 1 < o && 56320 == (64512 & (i = t.charCodeAt(s + 1))) && (n = 65536 + (n - 55296 << 10) + (i - 56320),
                    s++),
                    n < 128 ? e[r++] = n : (n < 2048 ? e[r++] = 192 | n >>> 6 : (n < 65536 ? e[r++] = 224 | n >>> 12 : (e[r++] = 240 | n >>> 18,
                    e[r++] = 128 | n >>> 12 & 63),
                    e[r++] = 128 | n >>> 6 & 63),
                    e[r++] = 128 | 63 & n);
                return e
            }
            ,
            n.buf2binstring = function(t) {
                return c(t, t.length)
            }
            ,
            n.binstring2buf = function(t) {
                for (var e = new u.Buf8(t.length), n = 0, i = e.length; n < i; n++)
                    e[n] = t.charCodeAt(n);
                return e
            }
            ,
            n.buf2string = function(t, e) {
                for (var n, i, r = e || t.length, o = new Array(2 * r), a = 0, s = 0; s < r; )
                    if ((n = t[s++]) < 128)
                        o[a++] = n;
                    else if (4 < (i = l[n]))
                        o[a++] = 65533,
                        s += i - 1;
                    else {
                        for (n &= 2 === i ? 31 : 3 === i ? 15 : 7; 1 < i && s < r; )
                            n = n << 6 | 63 & t[s++],
                            i--;
                        1 < i ? o[a++] = 65533 : n < 65536 ? o[a++] = n : (n -= 65536,
                        o[a++] = 55296 | n >> 10 & 1023,
                        o[a++] = 56320 | 1023 & n)
                    }
                return c(o, a)
            }
            ,
            n.utf8border = function(t, e) {
                var n;
                for ((e = e || t.length) > t.length && (e = t.length),
                n = e - 1; 0 <= n && 128 == (192 & t[n]); )
                    n--;
                return !(n < 0) && 0 !== n && n + l[t[n]] > e ? n : e
            }
        }
        , {
            "./common": 3
        }],
        5: [function(t, e, n) {
            "use strict";
            e.exports = function(t, e, n, i) {
                for (var r = 65535 & t | 0, o = t >>> 16 & 65535 | 0, a = 0; 0 !== n; ) {
                    for (n -= a = 2e3 < n ? 2e3 : n; o = o + (r = r + e[i++] | 0) | 0,
                    --a; )
                        ;
                    r %= 65521,
                    o %= 65521
                }
                return r | o << 16 | 0
            }
        }
        , {}],
        6: [function(t, e, n) {
            "use strict";
            e.exports = {
                Z_NO_FLUSH: 0,
                Z_PARTIAL_FLUSH: 1,
                Z_SYNC_FLUSH: 2,
                Z_FULL_FLUSH: 3,
                Z_FINISH: 4,
                Z_BLOCK: 5,
                Z_TREES: 6,
                Z_OK: 0,
                Z_STREAM_END: 1,
                Z_NEED_DICT: 2,
                Z_ERRNO: -1,
                Z_STREAM_ERROR: -2,
                Z_DATA_ERROR: -3,
                Z_BUF_ERROR: -5,
                Z_NO_COMPRESSION: 0,
                Z_BEST_SPEED: 1,
                Z_BEST_COMPRESSION: 9,
                Z_DEFAULT_COMPRESSION: -1,
                Z_FILTERED: 1,
                Z_HUFFMAN_ONLY: 2,
                Z_RLE: 3,
                Z_FIXED: 4,
                Z_DEFAULT_STRATEGY: 0,
                Z_BINARY: 0,
                Z_TEXT: 1,
                Z_UNKNOWN: 2,
                Z_DEFLATED: 8
            }
        }
        , {}],
        7: [function(t, e, n) {
            "use strict";
            var s = function() {
                for (var t, e = [], n = 0; n < 256; n++) {
                    t = n;
                    for (var i = 0; i < 8; i++)
                        t = 1 & t ? 3988292384 ^ t >>> 1 : t >>> 1;
                    e[n] = t
                }
                return e
            }();
            e.exports = function(t, e, n, i) {
                var r = s
                  , o = i + n;
                t ^= -1;
                for (var a = i; a < o; a++)
                    t = t >>> 8 ^ r[255 & (t ^ e[a])];
                return -1 ^ t
            }
        }
        , {}],
        8: [function(t, e, n) {
            "use strict";
            function c(t, e) {
                return t.msg = _[e],
                e
            }
            function u(t) {
                return (t << 1) - (4 < t ? 9 : 0)
            }
            function h(t) {
                for (var e = t.length; 0 <= --e; )
                    t[e] = 0
            }
            function l(t) {
                var e = t.state
                  , n = e.pending;
                n > t.avail_out && (n = t.avail_out),
                0 !== n && (v.arraySet(t.output, e.pending_buf, e.pending_out, n, t.next_out),
                t.next_out += n,
                e.pending_out += n,
                t.total_out += n,
                t.avail_out -= n,
                e.pending -= n,
                0 === e.pending && (e.pending_out = 0))
            }
            function f(t, e) {
                A._tr_flush_block(t, 0 <= t.block_start ? t.block_start : -1, t.strstart - t.block_start, e),
                t.block_start = t.strstart,
                l(t.strm)
            }
            function p(t, e) {
                t.pending_buf[t.pending++] = e
            }
            function d(t, e) {
                t.pending_buf[t.pending++] = e >>> 8 & 255,
                t.pending_buf[t.pending++] = 255 & e
            }
            function o(t, e) {
                var n, i, r = t.max_chain_length, o = t.strstart, a = t.prev_length, s = t.nice_match, c = t.strstart > t.w_size - E ? t.strstart - (t.w_size - E) : 0, u = t.window, l = t.w_mask, h = t.prev, f = t.strstart + B, p = u[o + a - 1], d = u[o + a];
                t.prev_length >= t.good_match && (r >>= 2),
                s > t.lookahead && (s = t.lookahead);
                do {
                    if (u[(n = e) + a] === d && u[n + a - 1] === p && u[n] === u[o] && u[++n] === u[o + 1]) {
                        o += 2,
                        n++;
                        do {} while (u[++o] === u[++n] && u[++o] === u[++n] && u[++o] === u[++n] && u[++o] === u[++n] && u[++o] === u[++n] && u[++o] === u[++n] && u[++o] === u[++n] && u[++o] === u[++n] && o < f);if (i = B - (f - o),
                        o = f - B,
                        a < i) {
                            if (t.match_start = e,
                            s <= (a = i))
                                break;
                            p = u[o + a - 1],
                            d = u[o + a]
                        }
                    }
                } while ((e = h[e & l]) > c && 0 != --r);return a <= t.lookahead ? a : t.lookahead
            }
            function M(t) {
                var e, n, i, r, o, a, s, c, u, l, h = t.w_size;
                do {
                    if (r = t.window_size - t.lookahead - t.strstart,
                    t.strstart >= h + (h - E)) {
                        for (v.arraySet(t.window, t.window, h, h, 0),
                        t.match_start -= h,
                        t.strstart -= h,
                        t.block_start -= h,
                        e = n = t.hash_size; i = t.head[--e],
                        t.head[e] = h <= i ? i - h : 0,
                        --n; )
                            ;
                        for (e = n = h; i = t.prev[--e],
                        t.prev[e] = h <= i ? i - h : 0,
                        --n; )
                            ;
                        r += h
                    }
                    if (0 === t.strm.avail_in)
                        break;
                    if (a = t.strm,
                    s = t.window,
                    c = t.strstart + t.lookahead,
                    u = r,
                    l = void 0,
                    l = a.avail_in,
                    u < l && (l = u),
                    n = 0 === l ? 0 : (a.avail_in -= l,
                    v.arraySet(s, a.input, a.next_in, l, c),
                    1 === a.state.wrap ? a.adler = y(a.adler, s, l, c) : 2 === a.state.wrap && (a.adler = z(a.adler, s, l, c)),
                    a.next_in += l,
                    a.total_in += l,
                    l),
                    t.lookahead += n,
                    t.lookahead + t.insert >= S)
                        for (o = t.strstart - t.insert,
                        t.ins_h = t.window[o],
                        t.ins_h = (t.ins_h << t.hash_shift ^ t.window[o + 1]) & t.hash_mask; t.insert && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[o + S - 1]) & t.hash_mask,
                        t.prev[o & t.w_mask] = t.head[t.ins_h],
                        t.head[t.ins_h] = o,
                        o++,
                        t.insert--,
                        !(t.lookahead + t.insert < S)); )
                            ;
                } while (t.lookahead < E && 0 !== t.strm.avail_in)
            }
            function i(t, e) {
                for (var n, i; ; ) {
                    if (t.lookahead < E) {
                        if (M(t),
                        t.lookahead < E && e === O)
                            return 1;
                        if (0 === t.lookahead)
                            break
                    }
                    if (n = 0,
                    t.lookahead >= S && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + S - 1]) & t.hash_mask,
                    n = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h],
                    t.head[t.ins_h] = t.strstart),
                    0 !== n && t.strstart - n <= t.w_size - E && (t.match_length = o(t, n)),
                    t.match_length >= S)
                        if (i = A._tr_tally(t, t.strstart - t.match_start, t.match_length - S),
                        t.lookahead -= t.match_length,
                        t.match_length <= t.max_lazy_match && t.lookahead >= S) {
                            for (t.match_length--; t.strstart++,
                            t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + S - 1]) & t.hash_mask,
                            n = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h],
                            t.head[t.ins_h] = t.strstart,
                            0 != --t.match_length; )
                                ;
                            t.strstart++
                        } else
                            t.strstart += t.match_length,
                            t.match_length = 0,
                            t.ins_h = t.window[t.strstart],
                            t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + 1]) & t.hash_mask;
                    else
                        i = A._tr_tally(t, 0, t.window[t.strstart]),
                        t.lookahead--,
                        t.strstart++;
                    if (i && (f(t, !1),
                    0 === t.strm.avail_out))
                        return 1
                }
                return t.insert = t.strstart < S - 1 ? t.strstart : S - 1,
                4 === e ? (f(t, !0),
                0 === t.strm.avail_out ? 3 : 4) : t.last_lit && (f(t, !1),
                0 === t.strm.avail_out) ? 1 : 2
            }
            function r(t, e) {
                for (var n, i, r; ; ) {
                    if (t.lookahead < E) {
                        if (M(t),
                        t.lookahead < E && e === O)
                            return 1;
                        if (0 === t.lookahead)
                            break
                    }
                    if (n = 0,
                    t.lookahead >= S && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + S - 1]) & t.hash_mask,
                    n = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h],
                    t.head[t.ins_h] = t.strstart),
                    t.prev_length = t.match_length,
                    t.prev_match = t.match_start,
                    t.match_length = S - 1,
                    0 !== n && t.prev_length < t.max_lazy_match && t.strstart - n <= t.w_size - E && (t.match_length = o(t, n),
                    t.match_length <= 5 && (1 === t.strategy || t.match_length === S && 4096 < t.strstart - t.match_start) && (t.match_length = S - 1)),
                    t.prev_length >= S && t.match_length <= t.prev_length) {
                        for (r = t.strstart + t.lookahead - S,
                        i = A._tr_tally(t, t.strstart - 1 - t.prev_match, t.prev_length - S),
                        t.lookahead -= t.prev_length - 1,
                        t.prev_length -= 2; ++t.strstart <= r && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + S - 1]) & t.hash_mask,
                        n = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h],
                        t.head[t.ins_h] = t.strstart),
                        0 != --t.prev_length; )
                            ;
                        if (t.match_available = 0,
                        t.match_length = S - 1,
                        t.strstart++,
                        i && (f(t, !1),
                        0 === t.strm.avail_out))
                            return 1
                    } else if (t.match_available) {
                        if ((i = A._tr_tally(t, 0, t.window[t.strstart - 1])) && f(t, !1),
                        t.strstart++,
                        t.lookahead--,
                        0 === t.strm.avail_out)
                            return 1
                    } else
                        t.match_available = 1,
                        t.strstart++,
                        t.lookahead--
                }
                return t.match_available && (i = A._tr_tally(t, 0, t.window[t.strstart - 1]),
                t.match_available = 0),
                t.insert = t.strstart < S - 1 ? t.strstart : S - 1,
                4 === e ? (f(t, !0),
                0 === t.strm.avail_out ? 3 : 4) : t.last_lit && (f(t, !1),
                0 === t.strm.avail_out) ? 1 : 2
            }
            function a(t, e, n, i, r) {
                this.good_length = t,
                this.max_lazy = e,
                this.nice_length = n,
                this.max_chain = i,
                this.func = r
            }
            function b() {
                this.strm = null,
                this.status = 0,
                this.pending_buf = null,
                this.pending_buf_size = 0,
                this.pending_out = 0,
                this.pending = 0,
                this.wrap = 0,
                this.gzhead = null,
                this.gzindex = 0,
                this.method = q,
                this.last_flush = -1,
                this.w_size = 0,
                this.w_bits = 0,
                this.w_mask = 0,
                this.window = null,
                this.window_size = 0,
                this.prev = null,
                this.head = null,
                this.ins_h = 0,
                this.hash_size = 0,
                this.hash_bits = 0,
                this.hash_mask = 0,
                this.hash_shift = 0,
                this.block_start = 0,
                this.match_length = 0,
                this.prev_match = 0,
                this.match_available = 0,
                this.strstart = 0,
                this.match_start = 0,
                this.lookahead = 0,
                this.prev_length = 0,
                this.max_chain_length = 0,
                this.max_lazy_match = 0,
                this.level = 0,
                this.strategy = 0,
                this.good_match = 0,
                this.nice_match = 0,
                this.dyn_ltree = new v.Buf16(2 * x),
                this.dyn_dtree = new v.Buf16(2 * (2 * T + 1)),
                this.bl_tree = new v.Buf16(2 * (2 * C + 1)),
                h(this.dyn_ltree),
                h(this.dyn_dtree),
                h(this.bl_tree),
                this.l_desc = null,
                this.d_desc = null,
                this.bl_desc = null,
                this.bl_count = new v.Buf16(k + 1),
                this.heap = new v.Buf16(2 * W + 1),
                h(this.heap),
                this.heap_len = 0,
                this.heap_max = 0,
                this.depth = new v.Buf16(2 * W + 1),
                h(this.depth),
                this.l_buf = 0,
                this.lit_bufsize = 0,
                this.last_lit = 0,
                this.d_buf = 0,
                this.opt_len = 0,
                this.static_len = 0,
                this.matches = 0,
                this.insert = 0,
                this.bi_buf = 0,
                this.bi_valid = 0
            }
            function s(t) {
                var e;
                return t && t.state ? (t.total_in = t.total_out = 0,
                t.data_type = N,
                (e = t.state).pending = 0,
                e.pending_out = 0,
                e.wrap < 0 && (e.wrap = -e.wrap),
                e.status = e.wrap ? X : D,
                t.adler = 2 === e.wrap ? 0 : 1,
                e.last_flush = O,
                A._tr_init(e),
                w) : c(t, L)
            }
            function m(t) {
                var e, n = s(t);
                return n === w && ((e = t.state).window_size = 2 * e.w_size,
                h(e.head),
                e.max_lazy_match = R[e.level].max_lazy,
                e.good_match = R[e.level].good_length,
                e.nice_match = R[e.level].nice_length,
                e.max_chain_length = R[e.level].max_chain,
                e.strstart = 0,
                e.block_start = 0,
                e.lookahead = 0,
                e.insert = 0,
                e.match_length = e.prev_length = S - 1,
                e.match_available = 0,
                e.ins_h = 0),
                n
            }
            function g(t, e, n, i, r, o) {
                if (!t)
                    return L;
                var a = 1;
                if (-1 === e && (e = 6),
                i < 0 ? (a = 0,
                i = -i) : 15 < i && (a = 2,
                i -= 16),
                r < 1 || 9 < r || n !== q || i < 8 || 15 < i || e < 0 || 9 < e || o < 0 || 4 < o)
                    return c(t, L);
                8 === i && (i = 9);
                var s = new b;
                return (t.state = s).strm = t,
                s.wrap = a,
                s.gzhead = null,
                s.w_bits = i,
                s.w_size = 1 << s.w_bits,
                s.w_mask = s.w_size - 1,
                s.hash_bits = r + 7,
                s.hash_size = 1 << s.hash_bits,
                s.hash_mask = s.hash_size - 1,
                s.hash_shift = ~~((s.hash_bits + S - 1) / S),
                s.window = new v.Buf8(2 * s.w_size),
                s.head = new v.Buf16(s.hash_size),
                s.prev = new v.Buf16(s.w_size),
                s.lit_bufsize = 1 << r + 6,
                s.pending_buf_size = 4 * s.lit_bufsize,
                s.pending_buf = new v.Buf8(s.pending_buf_size),
                s.d_buf = +s.lit_bufsize,
                s.l_buf = 3 * s.lit_bufsize,
                s.level = e,
                s.strategy = o,
                s.method = n,
                m(t)
            }
            var v = t("../utils/common")
              , A = t("./trees")
              , y = t("./adler32")
              , z = t("./crc32")
              , _ = t("./messages")
              , O = 0
              , w = 0
              , L = -2
              , N = 2
              , q = 8
              , W = 286
              , T = 30
              , C = 19
              , x = 2 * W + 1
              , k = 15
              , S = 3
              , B = 258
              , E = B + S + 1
              , X = 42
              , D = 113
              , R = [new a(0,0,0,0,function(t, e) {
                var n = 65535;
                for (n > t.pending_buf_size - 5 && (n = t.pending_buf_size - 5); ; ) {
                    if (t.lookahead <= 1) {
                        if (M(t),
                        0 === t.lookahead && e === O)
                            return 1;
                        if (0 === t.lookahead)
                            break
                    }
                    t.strstart += t.lookahead,
                    t.lookahead = 0;
                    var i = t.block_start + n;
                    if ((0 === t.strstart || t.strstart >= i) && (t.lookahead = t.strstart - i,
                    t.strstart = i,
                    f(t, !1),
                    0 === t.strm.avail_out))
                        return 1;
                    if (t.strstart - t.block_start >= t.w_size - E && (f(t, !1),
                    0 === t.strm.avail_out))
                        return 1
                }
                return t.insert = 0,
                4 === e ? (f(t, !0),
                0 === t.strm.avail_out ? 3 : 4) : (t.strstart > t.block_start && (f(t, !1),
                t.strm.avail_out),
                1)
            }
            ), new a(4,4,8,4,i), new a(4,5,16,8,i), new a(4,6,32,32,i), new a(4,4,16,16,r), new a(8,16,32,32,r), new a(8,16,128,128,r), new a(8,32,128,256,r), new a(32,128,258,1024,r), new a(32,258,258,4096,r)];
            n.deflateInit = function(t, e) {
                return g(t, e, q, 15, 8, 0)
            }
            ,
            n.deflateInit2 = g,
            n.deflateReset = m,
            n.deflateResetKeep = s,
            n.deflateSetHeader = function(t, e) {
                return !t || !t.state || 2 !== t.state.wrap ? L : (t.state.gzhead = e,
                w)
            }
            ,
            n.deflate = function(t, e) {
                var n, i, r, o, a;
                if (!t || !t.state || 5 < e || e < 0)
                    return t ? c(t, L) : L;
                if (i = t.state,
                !t.output || !t.input && 0 !== t.avail_in || 666 === i.status && 4 !== e)
                    return c(t, 0 === t.avail_out ? -5 : L);
                if (i.strm = t,
                n = i.last_flush,
                i.last_flush = e,
                i.status === X && (2 === i.wrap ? (t.adler = 0,
                p(i, 31),
                p(i, 139),
                p(i, 8),
                i.gzhead ? (p(i, (i.gzhead.text ? 1 : 0) + (i.gzhead.hcrc ? 2 : 0) + (i.gzhead.extra ? 4 : 0) + (i.gzhead.name ? 8 : 0) + (i.gzhead.comment ? 16 : 0)),
                p(i, 255 & i.gzhead.time),
                p(i, i.gzhead.time >> 8 & 255),
                p(i, i.gzhead.time >> 16 & 255),
                p(i, i.gzhead.time >> 24 & 255),
                p(i, 9 === i.level ? 2 : 2 <= i.strategy || i.level < 2 ? 4 : 0),
                p(i, 255 & i.gzhead.os),
                i.gzhead.extra && i.gzhead.extra.length && (p(i, 255 & i.gzhead.extra.length),
                p(i, i.gzhead.extra.length >> 8 & 255)),
                i.gzhead.hcrc && (t.adler = z(t.adler, i.pending_buf, i.pending, 0)),
                i.gzindex = 0,
                i.status = 69) : (p(i, 0),
                p(i, 0),
                p(i, 0),
                p(i, 0),
                p(i, 0),
                p(i, 9 === i.level ? 2 : 2 <= i.strategy || i.level < 2 ? 4 : 0),
                p(i, 3),
                i.status = D)) : (a = q + (i.w_bits - 8 << 4) << 8,
                a |= (2 <= i.strategy || i.level < 2 ? 0 : i.level < 6 ? 1 : 6 === i.level ? 2 : 3) << 6,
                0 !== i.strstart && (a |= 32),
                a += 31 - a % 31,
                i.status = D,
                d(i, a),
                0 !== i.strstart && (d(i, t.adler >>> 16),
                d(i, 65535 & t.adler)),
                t.adler = 1)),
                69 === i.status)
                    if (i.gzhead.extra) {
                        for (r = i.pending; i.gzindex < (65535 & i.gzhead.extra.length) && (i.pending !== i.pending_buf_size || (i.gzhead.hcrc && i.pending > r && (t.adler = z(t.adler, i.pending_buf, i.pending - r, r)),
                        l(t),
                        r = i.pending,
                        i.pending !== i.pending_buf_size)); )
                            p(i, 255 & i.gzhead.extra[i.gzindex]),
                            i.gzindex++;
                        i.gzhead.hcrc && i.pending > r && (t.adler = z(t.adler, i.pending_buf, i.pending - r, r)),
                        i.gzindex === i.gzhead.extra.length && (i.gzindex = 0,
                        i.status = 73)
                    } else
                        i.status = 73;
                if (73 === i.status)
                    if (i.gzhead.name) {
                        r = i.pending;
                        do {
                            if (i.pending === i.pending_buf_size && (i.gzhead.hcrc && i.pending > r && (t.adler = z(t.adler, i.pending_buf, i.pending - r, r)),
                            l(t),
                            r = i.pending,
                            i.pending === i.pending_buf_size)) {
                                o = 1;
                                break
                            }
                            o = i.gzindex < i.gzhead.name.length ? 255 & i.gzhead.name.charCodeAt(i.gzindex++) : 0,
                            p(i, o)
                        } while (0 !== o);i.gzhead.hcrc && i.pending > r && (t.adler = z(t.adler, i.pending_buf, i.pending - r, r)),
                        0 === o && (i.gzindex = 0,
                        i.status = 91)
                    } else
                        i.status = 91;
                if (91 === i.status)
                    if (i.gzhead.comment) {
                        r = i.pending;
                        do {
                            if (i.pending === i.pending_buf_size && (i.gzhead.hcrc && i.pending > r && (t.adler = z(t.adler, i.pending_buf, i.pending - r, r)),
                            l(t),
                            r = i.pending,
                            i.pending === i.pending_buf_size)) {
                                o = 1;
                                break
                            }
                            o = i.gzindex < i.gzhead.comment.length ? 255 & i.gzhead.comment.charCodeAt(i.gzindex++) : 0,
                            p(i, o)
                        } while (0 !== o);i.gzhead.hcrc && i.pending > r && (t.adler = z(t.adler, i.pending_buf, i.pending - r, r)),
                        0 === o && (i.status = 103)
                    } else
                        i.status = 103;
                if (103 === i.status && (i.gzhead.hcrc ? (i.pending + 2 > i.pending_buf_size && l(t),
                i.pending + 2 <= i.pending_buf_size && (p(i, 255 & t.adler),
                p(i, t.adler >> 8 & 255),
                t.adler = 0,
                i.status = D)) : i.status = D),
                0 !== i.pending) {
                    if (l(t),
                    0 === t.avail_out)
                        return i.last_flush = -1,
                        w
                } else if (0 === t.avail_in && u(e) <= u(n) && 4 !== e)
                    return c(t, -5);
                if (666 === i.status && 0 !== t.avail_in)
                    return c(t, -5);
                if (0 !== t.avail_in || 0 !== i.lookahead || e !== O && 666 !== i.status) {
                    var s = 2 === i.strategy ? function(t, e) {
                        for (var n; ; ) {
                            if (0 === t.lookahead && (M(t),
                            0 === t.lookahead)) {
                                if (e === O)
                                    return 1;
                                break
                            }
                            if (t.match_length = 0,
                            n = A._tr_tally(t, 0, t.window[t.strstart]),
                            t.lookahead--,
                            t.strstart++,
                            n && (f(t, !1),
                            0 === t.strm.avail_out))
                                return 1
                        }
                        return t.insert = 0,
                        4 === e ? (f(t, !0),
                        0 === t.strm.avail_out ? 3 : 4) : t.last_lit && (f(t, !1),
                        0 === t.strm.avail_out) ? 1 : 2
                    }(i, e) : 3 === i.strategy ? function(t, e) {
                        for (var n, i, r, o, a = t.window; ; ) {
                            if (t.lookahead <= B) {
                                if (M(t),
                                t.lookahead <= B && e === O)
                                    return 1;
                                if (0 === t.lookahead)
                                    break
                            }
                            if (t.match_length = 0,
                            t.lookahead >= S && 0 < t.strstart && ((i = a[r = t.strstart - 1]) === a[++r] && i === a[++r] && i === a[++r])) {
                                o = t.strstart + B;
                                do {} while (i === a[++r] && i === a[++r] && i === a[++r] && i === a[++r] && i === a[++r] && i === a[++r] && i === a[++r] && i === a[++r] && r < o);t.match_length = B - (o - r),
                                t.match_length > t.lookahead && (t.match_length = t.lookahead)
                            }
                            if (t.match_length >= S ? (n = A._tr_tally(t, 1, t.match_length - S),
                            t.lookahead -= t.match_length,
                            t.strstart += t.match_length,
                            t.match_length = 0) : (n = A._tr_tally(t, 0, t.window[t.strstart]),
                            t.lookahead--,
                            t.strstart++),
                            n && (f(t, !1),
                            0 === t.strm.avail_out))
                                return 1
                        }
                        return t.insert = 0,
                        4 === e ? (f(t, !0),
                        0 === t.strm.avail_out ? 3 : 4) : t.last_lit && (f(t, !1),
                        0 === t.strm.avail_out) ? 1 : 2
                    }(i, e) : R[i.level].func(i, e);
                    if (3 !== s && 4 !== s || (i.status = 666),
                    1 === s || 3 === s)
                        return 0 === t.avail_out && (i.last_flush = -1),
                        w;
                    if (2 === s && (1 === e ? A._tr_align(i) : 5 !== e && (A._tr_stored_block(i, 0, 0, !1),
                    3 === e && (h(i.head),
                    0 === i.lookahead && (i.strstart = 0,
                    i.block_start = 0,
                    i.insert = 0))),
                    l(t),
                    0 === t.avail_out))
                        return i.last_flush = -1,
                        w
                }
                return 4 !== e ? w : i.wrap <= 0 ? 1 : (2 === i.wrap ? (p(i, 255 & t.adler),
                p(i, t.adler >> 8 & 255),
                p(i, t.adler >> 16 & 255),
                p(i, t.adler >> 24 & 255),
                p(i, 255 & t.total_in),
                p(i, t.total_in >> 8 & 255),
                p(i, t.total_in >> 16 & 255),
                p(i, t.total_in >> 24 & 255)) : (d(i, t.adler >>> 16),
                d(i, 65535 & t.adler)),
                l(t),
                0 < i.wrap && (i.wrap = -i.wrap),
                0 !== i.pending ? w : 1)
            }
            ,
            n.deflateEnd = function(t) {
                var e;
                return t && t.state ? (e = t.state.status) !== X && 69 !== e && 73 !== e && 91 !== e && 103 !== e && e !== D && 666 !== e ? c(t, L) : (t.state = null,
                e === D ? c(t, -3) : w) : L
            }
            ,
            n.deflateSetDictionary = function(t, e) {
                var n, i, r, o, a, s, c, u, l = e.length;
                if (!t || !t.state)
                    return L;
                if (2 === (o = (n = t.state).wrap) || 1 === o && n.status !== X || n.lookahead)
                    return L;
                for (1 === o && (t.adler = y(t.adler, e, l, 0)),
                n.wrap = 0,
                l >= n.w_size && (0 === o && (h(n.head),
                n.strstart = 0,
                n.block_start = 0,
                n.insert = 0),
                u = new v.Buf8(n.w_size),
                v.arraySet(u, e, l - n.w_size, n.w_size, 0),
                e = u,
                l = n.w_size),
                a = t.avail_in,
                s = t.next_in,
                c = t.input,
                t.avail_in = l,
                t.next_in = 0,
                t.input = e,
                M(n); n.lookahead >= S; ) {
                    for (i = n.strstart,
                    r = n.lookahead - (S - 1); n.ins_h = (n.ins_h << n.hash_shift ^ n.window[i + S - 1]) & n.hash_mask,
                    n.prev[i & n.w_mask] = n.head[n.ins_h],
                    n.head[n.ins_h] = i,
                    i++,
                    --r; )
                        ;
                    n.strstart = i,
                    n.lookahead = S - 1,
                    M(n)
                }
                return n.strstart += n.lookahead,
                n.block_start = n.strstart,
                n.insert = n.lookahead,
                n.lookahead = 0,
                n.match_length = n.prev_length = S - 1,
                n.match_available = 0,
                t.next_in = s,
                t.input = c,
                t.avail_in = a,
                n.wrap = o,
                w
            }
            ,
            n.deflateInfo = "pako deflate (from Nodeca project)"
        }
        , {
            "../utils/common": 3,
            "./adler32": 5,
            "./crc32": 7,
            "./messages": 13,
            "./trees": 14
        }],
        9: [function(t, e, n) {
            "use strict";
            e.exports = function() {
                this.text = 0,
                this.time = 0,
                this.xflags = 0,
                this.os = 0,
                this.extra = null,
                this.extra_len = 0,
                this.name = "",
                this.comment = "",
                this.hcrc = 0,
                this.done = !1
            }
        }
        , {}],
        10: [function(t, e, n) {
            "use strict";
            e.exports = function(t, e) {
                var n, i, r, o, a, s, c = t.state, u = t.next_in, l = t.input, h = u + (t.avail_in - 5), f = t.next_out, p = t.output, d = f - (e - t.avail_out), M = f + (t.avail_out - 257), b = c.dmax, m = c.wsize, g = c.whave, v = c.wnext, A = c.window, y = c.hold, z = c.bits, _ = c.lencode, O = c.distcode, w = (1 << c.lenbits) - 1, L = (1 << c.distbits) - 1;
                t: do {
                    z < 15 && (y += l[u++] << z,
                    z += 8,
                    y += l[u++] << z,
                    z += 8),
                    n = _[y & w];
                    e: for (; ; ) {
                        if (y >>>= i = n >>> 24,
                        z -= i,
                        0 == (i = n >>> 16 & 255))
                            p[f++] = 65535 & n;
                        else {
                            if (!(16 & i)) {
                                if (0 == (64 & i)) {
                                    n = _[(65535 & n) + (y & (1 << i) - 1)];
                                    continue e
                                }
                                if (32 & i) {
                                    c.mode = 12;
                                    break t
                                }
                                t.msg = "invalid literal/length code",
                                c.mode = 30;
                                break t
                            }
                            r = 65535 & n,
                            (i &= 15) && (z < i && (y += l[u++] << z,
                            z += 8),
                            r += y & (1 << i) - 1,
                            y >>>= i,
                            z -= i),
                            z < 15 && (y += l[u++] << z,
                            z += 8,
                            y += l[u++] << z,
                            z += 8),
                            n = O[y & L];
                            n: for (; ; ) {
                                if (y >>>= i = n >>> 24,
                                z -= i,
                                !(16 & (i = n >>> 16 & 255))) {
                                    if (0 == (64 & i)) {
                                        n = O[(65535 & n) + (y & (1 << i) - 1)];
                                        continue n
                                    }
                                    t.msg = "invalid distance code",
                                    c.mode = 30;
                                    break t
                                }
                                if (o = 65535 & n,
                                z < (i &= 15) && (y += l[u++] << z,
                                (z += 8) < i && (y += l[u++] << z,
                                z += 8)),
                                (o += y & (1 << i) - 1) > b) {
                                    t.msg = "invalid distance too far back",
                                    c.mode = 30;
                                    break t
                                }
                                if (y >>>= i,
                                z -= i,
                                (i = f - d) < o) {
                                    if ((i = o - i) > g && c.sane) {
                                        t.msg = "invalid distance too far back",
                                        c.mode = 30;
                                        break t
                                    }
                                    if (s = A,
                                    (a = 0) === v) {
                                        if (a += m - i,
                                        i < r) {
                                            for (r -= i; p[f++] = A[a++],
                                            --i; )
                                                ;
                                            a = f - o,
                                            s = p
                                        }
                                    } else if (v < i) {
                                        if (a += m + v - i,
                                        (i -= v) < r) {
                                            for (r -= i; p[f++] = A[a++],
                                            --i; )
                                                ;
                                            if (a = 0,
                                            v < r) {
                                                for (r -= i = v; p[f++] = A[a++],
                                                --i; )
                                                    ;
                                                a = f - o,
                                                s = p
                                            }
                                        }
                                    } else if (a += v - i,
                                    i < r) {
                                        for (r -= i; p[f++] = A[a++],
                                        --i; )
                                            ;
                                        a = f - o,
                                        s = p
                                    }
                                    for (; 2 < r; )
                                        p[f++] = s[a++],
                                        p[f++] = s[a++],
                                        p[f++] = s[a++],
                                        r -= 3;
                                    r && (p[f++] = s[a++],
                                    1 < r && (p[f++] = s[a++]))
                                } else {
                                    for (a = f - o; p[f++] = p[a++],
                                    p[f++] = p[a++],
                                    p[f++] = p[a++],
                                    2 < (r -= 3); )
                                        ;
                                    r && (p[f++] = p[a++],
                                    1 < r && (p[f++] = p[a++]))
                                }
                                break
                            }
                        }
                        break
                    }
                } while (u < h && f < M);u -= r = z >> 3,
                y &= (1 << (z -= r << 3)) - 1,
                t.next_in = u,
                t.next_out = f,
                t.avail_in = u < h ? h - u + 5 : 5 - (u - h),
                t.avail_out = f < M ? M - f + 257 : 257 - (f - M),
                c.hold = y,
                c.bits = z
            }
        }
        , {}],
        11: [function(t, e, n) {
            "use strict";
            function W(t) {
                return (t >>> 24 & 255) + (t >>> 8 & 65280) + ((65280 & t) << 8) + ((255 & t) << 24)
            }
            function r() {
                this.mode = 0,
                this.last = !1,
                this.wrap = 0,
                this.havedict = !1,
                this.flags = 0,
                this.dmax = 0,
                this.check = 0,
                this.total = 0,
                this.head = null,
                this.wbits = 0,
                this.wsize = 0,
                this.whave = 0,
                this.wnext = 0,
                this.window = null,
                this.hold = 0,
                this.bits = 0,
                this.length = 0,
                this.offset = 0,
                this.extra = 0,
                this.lencode = null,
                this.distcode = null,
                this.lenbits = 0,
                this.distbits = 0,
                this.ncode = 0,
                this.nlen = 0,
                this.ndist = 0,
                this.have = 0,
                this.next = null,
                this.lens = new k.Buf16(320),
                this.work = new k.Buf16(288),
                this.lendyn = null,
                this.distdyn = null,
                this.sane = 0,
                this.back = 0,
                this.was = 0
            }
            function i(t) {
                var e;
                return t && t.state ? (e = t.state,
                t.total_in = t.total_out = e.total = 0,
                t.msg = "",
                e.wrap && (t.adler = 1 & e.wrap),
                e.mode = j,
                e.last = 0,
                e.havedict = 0,
                e.dmax = 32768,
                e.head = null,
                e.hold = 0,
                e.bits = 0,
                e.lencode = e.lendyn = new k.Buf32(c),
                e.distcode = e.distdyn = new k.Buf32(u),
                e.sane = 1,
                e.back = -1,
                P) : I
            }
            function o(t) {
                var e;
                return t && t.state ? ((e = t.state).wsize = 0,
                e.whave = 0,
                e.wnext = 0,
                i(t)) : I
            }
            function a(t, e) {
                var n, i;
                return t && t.state ? (i = t.state,
                e < 0 ? (n = 0,
                e = -e) : (n = 1 + (e >> 4),
                e < 48 && (e &= 15)),
                e && (e < 8 || 15 < e) ? I : (null !== i.window && i.wbits !== e && (i.window = null),
                i.wrap = n,
                i.wbits = e,
                o(t))) : I
            }
            function s(t, e) {
                var n, i;
                return t ? (i = new r,
                (t.state = i).window = null,
                (n = a(t, e)) !== P && (t.state = null),
                n) : I
            }
            function T(t, e, n, i) {
                var r, o = t.state;
                return null === o.window && (o.wsize = 1 << o.wbits,
                o.wnext = 0,
                o.whave = 0,
                o.window = new k.Buf8(o.wsize)),
                i >= o.wsize ? (k.arraySet(o.window, e, n - o.wsize, o.wsize, 0),
                o.wnext = 0,
                o.whave = o.wsize) : ((r = o.wsize - o.wnext) > i && (r = i),
                k.arraySet(o.window, e, n - i, r, o.wnext),
                (i -= r) ? (k.arraySet(o.window, e, n - i, i, 0),
                o.wnext = i,
                o.whave = o.wsize) : (o.wnext += r,
                o.wnext === o.wsize && (o.wnext = 0),
                o.whave < o.wsize && (o.whave += r))),
                0
            }
            var C, x, k = t("../utils/common"), S = t("./adler32"), B = t("./crc32"), E = t("./inffast"), X = t("./inftrees"), D = 1, R = 2, P = 0, I = -2, j = 1, c = 852, u = 592, H = !0;
            n.inflateReset = o,
            n.inflateReset2 = a,
            n.inflateResetKeep = i,
            n.inflateInit = function(t) {
                return s(t, 15)
            }
            ,
            n.inflateInit2 = s,
            n.inflate = function(t, e) {
                var n, i, r, o, a, s, c, u, l, h, f, p, d, M, b, m, g, v, A, y, z, _, O, w, L = 0, N = new k.Buf8(4), q = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];
                if (!t || !t.state || !t.output || !t.input && 0 !== t.avail_in)
                    return I;
                12 === (n = t.state).mode && (n.mode = 13),
                a = t.next_out,
                r = t.output,
                c = t.avail_out,
                o = t.next_in,
                i = t.input,
                s = t.avail_in,
                u = n.hold,
                l = n.bits,
                h = s,
                f = c,
                _ = P;
                t: for (; ; )
                    switch (n.mode) {
                    case j:
                        if (0 === n.wrap) {
                            n.mode = 13;
                            break
                        }
                        for (; l < 16; ) {
                            if (0 === s)
                                break t;
                            s--,
                            u += i[o++] << l,
                            l += 8
                        }
                        if (2 & n.wrap && 35615 === u) {
                            N[n.check = 0] = 255 & u,
                            N[1] = u >>> 8 & 255,
                            n.check = B(n.check, N, 2, 0),
                            l = u = 0,
                            n.mode = 2;
                            break
                        }
                        if (n.flags = 0,
                        n.head && (n.head.done = !1),
                        !(1 & n.wrap) || (((255 & u) << 8) + (u >> 8)) % 31) {
                            t.msg = "incorrect header check",
                            n.mode = 30;
                            break
                        }
                        if (8 != (15 & u)) {
                            t.msg = "unknown compression method",
                            n.mode = 30;
                            break
                        }
                        if (l -= 4,
                        z = 8 + (15 & (u >>>= 4)),
                        0 === n.wbits)
                            n.wbits = z;
                        else if (z > n.wbits) {
                            t.msg = "invalid window size",
                            n.mode = 30;
                            break
                        }
                        n.dmax = 1 << z,
                        t.adler = n.check = 1,
                        n.mode = 512 & u ? 10 : 12,
                        l = u = 0;
                        break;
                    case 2:
                        for (; l < 16; ) {
                            if (0 === s)
                                break t;
                            s--,
                            u += i[o++] << l,
                            l += 8
                        }
                        if (n.flags = u,
                        8 != (255 & n.flags)) {
                            t.msg = "unknown compression method",
                            n.mode = 30;
                            break
                        }
                        if (57344 & n.flags) {
                            t.msg = "unknown header flags set",
                            n.mode = 30;
                            break
                        }
                        n.head && (n.head.text = u >> 8 & 1),
                        512 & n.flags && (N[0] = 255 & u,
                        N[1] = u >>> 8 & 255,
                        n.check = B(n.check, N, 2, 0)),
                        l = u = 0,
                        n.mode = 3;
                    case 3:
                        for (; l < 32; ) {
                            if (0 === s)
                                break t;
                            s--,
                            u += i[o++] << l,
                            l += 8
                        }
                        n.head && (n.head.time = u),
                        512 & n.flags && (N[0] = 255 & u,
                        N[1] = u >>> 8 & 255,
                        N[2] = u >>> 16 & 255,
                        N[3] = u >>> 24 & 255,
                        n.check = B(n.check, N, 4, 0)),
                        l = u = 0,
                        n.mode = 4;
                    case 4:
                        for (; l < 16; ) {
                            if (0 === s)
                                break t;
                            s--,
                            u += i[o++] << l,
                            l += 8
                        }
                        n.head && (n.head.xflags = 255 & u,
                        n.head.os = u >> 8),
                        512 & n.flags && (N[0] = 255 & u,
                        N[1] = u >>> 8 & 255,
                        n.check = B(n.check, N, 2, 0)),
                        l = u = 0,
                        n.mode = 5;
                    case 5:
                        if (1024 & n.flags) {
                            for (; l < 16; ) {
                                if (0 === s)
                                    break t;
                                s--,
                                u += i[o++] << l,
                                l += 8
                            }
                            n.length = u,
                            n.head && (n.head.extra_len = u),
                            512 & n.flags && (N[0] = 255 & u,
                            N[1] = u >>> 8 & 255,
                            n.check = B(n.check, N, 2, 0)),
                            l = u = 0
                        } else
                            n.head && (n.head.extra = null);
                        n.mode = 6;
                    case 6:
                        if (1024 & n.flags && ((p = n.length) > s && (p = s),
                        p && (n.head && (z = n.head.extra_len - n.length,
                        n.head.extra || (n.head.extra = new Array(n.head.extra_len)),
                        k.arraySet(n.head.extra, i, o, p, z)),
                        512 & n.flags && (n.check = B(n.check, i, p, o)),
                        s -= p,
                        o += p,
                        n.length -= p),
                        n.length))
                            break t;
                        n.length = 0,
                        n.mode = 7;
                    case 7:
                        if (2048 & n.flags) {
                            if (0 === s)
                                break t;
                            for (p = 0; z = i[o + p++],
                            n.head && z && n.length < 65536 && (n.head.name += String.fromCharCode(z)),
                            z && p < s; )
                                ;
                            if (512 & n.flags && (n.check = B(n.check, i, p, o)),
                            s -= p,
                            o += p,
                            z)
                                break t
                        } else
                            n.head && (n.head.name = null);
                        n.length = 0,
                        n.mode = 8;
                    case 8:
                        if (4096 & n.flags) {
                            if (0 === s)
                                break t;
                            for (p = 0; z = i[o + p++],
                            n.head && z && n.length < 65536 && (n.head.comment += String.fromCharCode(z)),
                            z && p < s; )
                                ;
                            if (512 & n.flags && (n.check = B(n.check, i, p, o)),
                            s -= p,
                            o += p,
                            z)
                                break t
                        } else
                            n.head && (n.head.comment = null);
                        n.mode = 9;
                    case 9:
                        if (512 & n.flags) {
                            for (; l < 16; ) {
                                if (0 === s)
                                    break t;
                                s--,
                                u += i[o++] << l,
                                l += 8
                            }
                            if (u !== (65535 & n.check)) {
                                t.msg = "header crc mismatch",
                                n.mode = 30;
                                break
                            }
                            l = u = 0
                        }
                        n.head && (n.head.hcrc = n.flags >> 9 & 1,
                        n.head.done = !0),
                        t.adler = n.check = 0,
                        n.mode = 12;
                        break;
                    case 10:
                        for (; l < 32; ) {
                            if (0 === s)
                                break t;
                            s--,
                            u += i[o++] << l,
                            l += 8
                        }
                        t.adler = n.check = W(u),
                        l = u = 0,
                        n.mode = 11;
                    case 11:
                        if (0 === n.havedict)
                            return t.next_out = a,
                            t.avail_out = c,
                            t.next_in = o,
                            t.avail_in = s,
                            n.hold = u,
                            n.bits = l,
                            2;
                        t.adler = n.check = 1,
                        n.mode = 12;
                    case 12:
                        if (5 === e || 6 === e)
                            break t;
                    case 13:
                        if (n.last) {
                            u >>>= 7 & l,
                            l -= 7 & l,
                            n.mode = 27;
                            break
                        }
                        for (; l < 3; ) {
                            if (0 === s)
                                break t;
                            s--,
                            u += i[o++] << l,
                            l += 8
                        }
                        switch (n.last = 1 & u,
                        --l,
                        3 & (u >>>= 1)) {
                        case 0:
                            n.mode = 14;
                            break;
                        case 1:
                            if (function(t) {
                                if (H) {
                                    var e;
                                    for (C = new k.Buf32(512),
                                    x = new k.Buf32(32),
                                    e = 0; e < 144; )
                                        t.lens[e++] = 8;
                                    for (; e < 256; )
                                        t.lens[e++] = 9;
                                    for (; e < 280; )
                                        t.lens[e++] = 7;
                                    for (; e < 288; )
                                        t.lens[e++] = 8;
                                    for (X(D, t.lens, 0, 288, C, 0, t.work, {
                                        bits: 9
                                    }),
                                    e = 0; e < 32; )
                                        t.lens[e++] = 5;
                                    X(R, t.lens, 0, 32, x, 0, t.work, {
                                        bits: 5
                                    }),
                                    H = !1
                                }
                                t.lencode = C,
                                t.lenbits = 9,
                                t.distcode = x,
                                t.distbits = 5
                            }(n),
                            n.mode = 20,
                            6 !== e)
                                break;
                            u >>>= 2,
                            l -= 2;
                            break t;
                        case 2:
                            n.mode = 17;
                            break;
                        case 3:
                            t.msg = "invalid block type",
                            n.mode = 30
                        }
                        u >>>= 2,
                        l -= 2;
                        break;
                    case 14:
                        for (u >>>= 7 & l,
                        l -= 7 & l; l < 32; ) {
                            if (0 === s)
                                break t;
                            s--,
                            u += i[o++] << l,
                            l += 8
                        }
                        if ((65535 & u) != (u >>> 16 ^ 65535)) {
                            t.msg = "invalid stored block lengths",
                            n.mode = 30;
                            break
                        }
                        if (n.length = 65535 & u,
                        l = u = 0,
                        n.mode = 15,
                        6 === e)
                            break t;
                    case 15:
                        n.mode = 16;
                    case 16:
                        if (p = n.length) {
                            if (s < p && (p = s),
                            c < p && (p = c),
                            0 === p)
                                break t;
                            k.arraySet(r, i, o, p, a),
                            s -= p,
                            o += p,
                            c -= p,
                            a += p,
                            n.length -= p;
                            break
                        }
                        n.mode = 12;
                        break;
                    case 17:
                        for (; l < 14; ) {
                            if (0 === s)
                                break t;
                            s--,
                            u += i[o++] << l,
                            l += 8
                        }
                        if (n.nlen = 257 + (31 & u),
                        u >>>= 5,
                        l -= 5,
                        n.ndist = 1 + (31 & u),
                        u >>>= 5,
                        l -= 5,
                        n.ncode = 4 + (15 & u),
                        u >>>= 4,
                        l -= 4,
                        286 < n.nlen || 30 < n.ndist) {
                            t.msg = "too many length or distance symbols",
                            n.mode = 30;
                            break
                        }
                        n.have = 0,
                        n.mode = 18;
                    case 18:
                        for (; n.have < n.ncode; ) {
                            for (; l < 3; ) {
                                if (0 === s)
                                    break t;
                                s--,
                                u += i[o++] << l,
                                l += 8
                            }
                            n.lens[q[n.have++]] = 7 & u,
                            u >>>= 3,
                            l -= 3
                        }
                        for (; n.have < 19; )
                            n.lens[q[n.have++]] = 0;
                        if (n.lencode = n.lendyn,
                        n.lenbits = 7,
                        O = {
                            bits: n.lenbits
                        },
                        _ = X(0, n.lens, 0, 19, n.lencode, 0, n.work, O),
                        n.lenbits = O.bits,
                        _) {
                            t.msg = "invalid code lengths set",
                            n.mode = 30;
                            break
                        }
                        n.have = 0,
                        n.mode = 19;
                    case 19:
                        for (; n.have < n.nlen + n.ndist; ) {
                            for (; m = (L = n.lencode[u & (1 << n.lenbits) - 1]) >>> 16 & 255,
                            g = 65535 & L,
                            !((b = L >>> 24) <= l); ) {
                                if (0 === s)
                                    break t;
                                s--,
                                u += i[o++] << l,
                                l += 8
                            }
                            if (g < 16)
                                u >>>= b,
                                l -= b,
                                n.lens[n.have++] = g;
                            else {
                                if (16 === g) {
                                    for (w = b + 2; l < w; ) {
                                        if (0 === s)
                                            break t;
                                        s--,
                                        u += i[o++] << l,
                                        l += 8
                                    }
                                    if (u >>>= b,
                                    l -= b,
                                    0 === n.have) {
                                        t.msg = "invalid bit length repeat",
                                        n.mode = 30;
                                        break
                                    }
                                    z = n.lens[n.have - 1],
                                    p = 3 + (3 & u),
                                    u >>>= 2,
                                    l -= 2
                                } else if (17 === g) {
                                    for (w = b + 3; l < w; ) {
                                        if (0 === s)
                                            break t;
                                        s--,
                                        u += i[o++] << l,
                                        l += 8
                                    }
                                    l -= b,
                                    z = 0,
                                    p = 3 + (7 & (u >>>= b)),
                                    u >>>= 3,
                                    l -= 3
                                } else {
                                    for (w = b + 7; l < w; ) {
                                        if (0 === s)
                                            break t;
                                        s--,
                                        u += i[o++] << l,
                                        l += 8
                                    }
                                    l -= b,
                                    z = 0,
                                    p = 11 + (127 & (u >>>= b)),
                                    u >>>= 7,
                                    l -= 7
                                }
                                if (n.have + p > n.nlen + n.ndist) {
                                    t.msg = "invalid bit length repeat",
                                    n.mode = 30;
                                    break
                                }
                                for (; p--; )
                                    n.lens[n.have++] = z
                            }
                        }
                        if (30 === n.mode)
                            break;
                        if (0 === n.lens[256]) {
                            t.msg = "invalid code -- missing end-of-block",
                            n.mode = 30;
                            break
                        }
                        if (n.lenbits = 9,
                        O = {
                            bits: n.lenbits
                        },
                        _ = X(D, n.lens, 0, n.nlen, n.lencode, 0, n.work, O),
                        n.lenbits = O.bits,
                        _) {
                            t.msg = "invalid literal/lengths set",
                            n.mode = 30;
                            break
                        }
                        if (n.distbits = 6,
                        n.distcode = n.distdyn,
                        O = {
                            bits: n.distbits
                        },
                        _ = X(R, n.lens, n.nlen, n.ndist, n.distcode, 0, n.work, O),
                        n.distbits = O.bits,
                        _) {
                            t.msg = "invalid distances set",
                            n.mode = 30;
                            break
                        }
                        if (n.mode = 20,
                        6 === e)
                            break t;
                    case 20:
                        n.mode = 21;
                    case 21:
                        if (6 <= s && 258 <= c) {
                            t.next_out = a,
                            t.avail_out = c,
                            t.next_in = o,
                            t.avail_in = s,
                            n.hold = u,
                            n.bits = l,
                            E(t, f),
                            a = t.next_out,
                            r = t.output,
                            c = t.avail_out,
                            o = t.next_in,
                            i = t.input,
                            s = t.avail_in,
                            u = n.hold,
                            l = n.bits,
                            12 === n.mode && (n.back = -1);
                            break
                        }
                        for (n.back = 0; m = (L = n.lencode[u & (1 << n.lenbits) - 1]) >>> 16 & 255,
                        g = 65535 & L,
                        !((b = L >>> 24) <= l); ) {
                            if (0 === s)
                                break t;
                            s--,
                            u += i[o++] << l,
                            l += 8
                        }
                        if (m && 0 == (240 & m)) {
                            for (v = b,
                            A = m,
                            y = g; m = (L = n.lencode[y + ((u & (1 << v + A) - 1) >> v)]) >>> 16 & 255,
                            g = 65535 & L,
                            !(v + (b = L >>> 24) <= l); ) {
                                if (0 === s)
                                    break t;
                                s--,
                                u += i[o++] << l,
                                l += 8
                            }
                            u >>>= v,
                            l -= v,
                            n.back += v
                        }
                        if (u >>>= b,
                        l -= b,
                        n.back += b,
                        n.length = g,
                        0 === m) {
                            n.mode = 26;
                            break
                        }
                        if (32 & m) {
                            n.back = -1,
                            n.mode = 12;
                            break
                        }
                        if (64 & m) {
                            t.msg = "invalid literal/length code",
                            n.mode = 30;
                            break
                        }
                        n.extra = 15 & m,
                        n.mode = 22;
                    case 22:
                        if (n.extra) {
                            for (w = n.extra; l < w; ) {
                                if (0 === s)
                                    break t;
                                s--,
                                u += i[o++] << l,
                                l += 8
                            }
                            n.length += u & (1 << n.extra) - 1,
                            u >>>= n.extra,
                            l -= n.extra,
                            n.back += n.extra
                        }
                        n.was = n.length,
                        n.mode = 23;
                    case 23:
                        for (; m = (L = n.distcode[u & (1 << n.distbits) - 1]) >>> 16 & 255,
                        g = 65535 & L,
                        !((b = L >>> 24) <= l); ) {
                            if (0 === s)
                                break t;
                            s--,
                            u += i[o++] << l,
                            l += 8
                        }
                        if (0 == (240 & m)) {
                            for (v = b,
                            A = m,
                            y = g; m = (L = n.distcode[y + ((u & (1 << v + A) - 1) >> v)]) >>> 16 & 255,
                            g = 65535 & L,
                            !(v + (b = L >>> 24) <= l); ) {
                                if (0 === s)
                                    break t;
                                s--,
                                u += i[o++] << l,
                                l += 8
                            }
                            u >>>= v,
                            l -= v,
                            n.back += v
                        }
                        if (u >>>= b,
                        l -= b,
                        n.back += b,
                        64 & m) {
                            t.msg = "invalid distance code",
                            n.mode = 30;
                            break
                        }
                        n.offset = g,
                        n.extra = 15 & m,
                        n.mode = 24;
                    case 24:
                        if (n.extra) {
                            for (w = n.extra; l < w; ) {
                                if (0 === s)
                                    break t;
                                s--,
                                u += i[o++] << l,
                                l += 8
                            }
                            n.offset += u & (1 << n.extra) - 1,
                            u >>>= n.extra,
                            l -= n.extra,
                            n.back += n.extra
                        }
                        if (n.offset > n.dmax) {
                            t.msg = "invalid distance too far back",
                            n.mode = 30;
                            break
                        }
                        n.mode = 25;
                    case 25:
                        if (0 === c)
                            break t;
                        if (p = f - c,
                        n.offset > p) {
                            if ((p = n.offset - p) > n.whave && n.sane) {
                                t.msg = "invalid distance too far back",
                                n.mode = 30;
                                break
                            }
                            d = p > n.wnext ? (p -= n.wnext,
                            n.wsize - p) : n.wnext - p,
                            p > n.length && (p = n.length),
                            M = n.window
                        } else
                            M = r,
                            d = a - n.offset,
                            p = n.length;
                        for (c < p && (p = c),
                        c -= p,
                        n.length -= p; r[a++] = M[d++],
                        --p; )
                            ;
                        0 === n.length && (n.mode = 21);
                        break;
                    case 26:
                        if (0 === c)
                            break t;
                        r[a++] = n.length,
                        c--,
                        n.mode = 21;
                        break;
                    case 27:
                        if (n.wrap) {
                            for (; l < 32; ) {
                                if (0 === s)
                                    break t;
                                s--,
                                u |= i[o++] << l,
                                l += 8
                            }
                            if (f -= c,
                            t.total_out += f,
                            n.total += f,
                            f && (t.adler = n.check = (n.flags ? B : S)(n.check, r, f, a - f)),
                            f = c,
                            (n.flags ? u : W(u)) !== n.check) {
                                t.msg = "incorrect data check",
                                n.mode = 30;
                                break
                            }
                            l = u = 0
                        }
                        n.mode = 28;
                    case 28:
                        if (n.wrap && n.flags) {
                            for (; l < 32; ) {
                                if (0 === s)
                                    break t;
                                s--,
                                u += i[o++] << l,
                                l += 8
                            }
                            if (u !== (4294967295 & n.total)) {
                                t.msg = "incorrect length check",
                                n.mode = 30;
                                break
                            }
                            l = u = 0
                        }
                        n.mode = 29;
                    case 29:
                        _ = 1;
                        break t;
                    case 30:
                        _ = -3;
                        break t;
                    case 31:
                        return -4;
                    case 32:
                    default:
                        return I
                    }
                return t.next_out = a,
                t.avail_out = c,
                t.next_in = o,
                t.avail_in = s,
                n.hold = u,
                n.bits = l,
                (n.wsize || f !== t.avail_out && n.mode < 30 && (n.mode < 27 || 4 !== e)) && T(t, t.output, t.next_out, f - t.avail_out) ? (n.mode = 31,
                -4) : (h -= t.avail_in,
                f -= t.avail_out,
                t.total_in += h,
                t.total_out += f,
                n.total += f,
                n.wrap && f && (t.adler = n.check = (n.flags ? B : S)(n.check, r, f, t.next_out - f)),
                t.data_type = n.bits + (n.last ? 64 : 0) + (12 === n.mode ? 128 : 0) + (20 === n.mode || 15 === n.mode ? 256 : 0),
                (0 == h && 0 === f || 4 === e) && _ === P && (_ = -5),
                _)
            }
            ,
            n.inflateEnd = function(t) {
                if (!t || !t.state)
                    return I;
                var e = t.state;
                return e.window && (e.window = null),
                t.state = null,
                P
            }
            ,
            n.inflateGetHeader = function(t, e) {
                var n;
                return !t || !t.state || 0 == (2 & (n = t.state).wrap) ? I : ((n.head = e).done = !1,
                P)
            }
            ,
            n.inflateSetDictionary = function(t, e) {
                var n, i = e.length;
                return !t || !t.state || 0 !== (n = t.state).wrap && 11 !== n.mode ? I : 11 === n.mode && S(1, e, i, 0) !== n.check ? -3 : T(t, e, i, i) ? (n.mode = 31,
                -4) : (n.havedict = 1,
                P)
            }
            ,
            n.inflateInfo = "pako inflate (from Nodeca project)"
        }
        , {
            "../utils/common": 3,
            "./adler32": 5,
            "./crc32": 7,
            "./inffast": 10,
            "./inftrees": 12
        }],
        12: [function(t, e, n) {
            "use strict";
            var S = t("../utils/common")
              , B = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0]
              , E = [16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78]
              , X = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0]
              , D = [16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64];
            e.exports = function(t, e, n, i, r, o, a, s) {
                for (var c, u, l, h, f, p, d, M, b, m = s.bits, g = 0, v = 0, A = 0, y = 0, z = 0, _ = 0, O = 0, w = 0, L = 0, N = 0, q = null, W = 0, T = new S.Buf16(16), C = new S.Buf16(16), x = null, k = 0, g = 0; g <= 15; g++)
                    T[g] = 0;
                for (v = 0; v < i; v++)
                    T[e[n + v]]++;
                for (z = m,
                y = 15; 1 <= y && 0 === T[y]; y--)
                    ;
                if (y < z && (z = y),
                0 === y)
                    return r[o++] = 20971520,
                    r[o++] = 20971520,
                    s.bits = 1,
                    0;
                for (A = 1; A < y && 0 === T[A]; A++)
                    ;
                for (z < A && (z = A),
                g = w = 1; g <= 15; g++)
                    if (w <<= 1,
                    (w -= T[g]) < 0)
                        return -1;
                if (0 < w && (0 === t || 1 !== y))
                    return -1;
                for (C[1] = 0,
                g = 1; g < 15; g++)
                    C[g + 1] = C[g] + T[g];
                for (v = 0; v < i; v++)
                    0 !== e[n + v] && (a[C[e[n + v]]++] = v);
                if (p = 0 === t ? (q = x = a,
                19) : 1 === t ? (q = B,
                W -= 257,
                x = E,
                k -= 257,
                256) : (q = X,
                x = D,
                -1),
                g = A,
                f = o,
                O = v = N = 0,
                l = -1,
                h = (L = 1 << (_ = z)) - 1,
                1 === t && 852 < L || 2 === t && 592 < L)
                    return 1;
                for (; ; ) {
                    for (d = g - O,
                    b = a[v] < p ? (M = 0,
                    a[v]) : a[v] > p ? (M = x[k + a[v]],
                    q[W + a[v]]) : (M = 96,
                    0),
                    c = 1 << g - O,
                    A = u = 1 << _; r[f + (N >> O) + (u -= c)] = d << 24 | M << 16 | b | 0,
                    0 !== u; )
                        ;
                    for (c = 1 << g - 1; N & c; )
                        c >>= 1;
                    if (0 !== c ? (N &= c - 1,
                    N += c) : N = 0,
                    v++,
                    0 == --T[g]) {
                        if (g === y)
                            break;
                        g = e[n + a[v]]
                    }
                    if (z < g && (N & h) !== l) {
                        for (0 === O && (O = z),
                        f += A,
                        w = 1 << (_ = g - O); _ + O < y && !((w -= T[_ + O]) <= 0); )
                            _++,
                            w <<= 1;
                        if (L += 1 << _,
                        1 === t && 852 < L || 2 === t && 592 < L)
                            return 1;
                        r[l = N & h] = z << 24 | _ << 16 | f - o | 0
                    }
                }
                return 0 !== N && (r[f + N] = g - O << 24 | 64 << 16 | 0),
                s.bits = z,
                0
            }
        }
        , {
            "../utils/common": 3
        }],
        13: [function(t, e, n) {
            "use strict";
            e.exports = {
                2: "need dictionary",
                1: "stream end",
                0: "",
                "-1": "file error",
                "-2": "stream error",
                "-3": "data error",
                "-4": "insufficient memory",
                "-5": "buffer error",
                "-6": "incompatible version"
            }
        }
        , {}],
        14: [function(t, e, n) {
            "use strict";
            function i(t) {
                for (var e = t.length; 0 <= --e; )
                    t[e] = 0
            }
            function a(t, e, n, i, r) {
                this.static_tree = t,
                this.extra_bits = e,
                this.extra_base = n,
                this.elems = i,
                this.max_length = r,
                this.has_stree = t && t.length
            }
            function r(t, e) {
                this.dyn_tree = t,
                this.max_code = 0,
                this.stat_desc = e
            }
            function c(t) {
                return t < 256 ? S[t] : S[256 + (t >>> 7)]
            }
            function u(t, e) {
                t.pending_buf[t.pending++] = 255 & e,
                t.pending_buf[t.pending++] = e >>> 8 & 255
            }
            function l(t, e, n) {
                t.bi_valid > O - n ? (t.bi_buf |= e << t.bi_valid & 65535,
                u(t, t.bi_buf),
                t.bi_buf = e >> O - t.bi_valid,
                t.bi_valid += n - O) : (t.bi_buf |= e << t.bi_valid & 65535,
                t.bi_valid += n)
            }
            function h(t, e, n) {
                l(t, n[2 * e], n[2 * e + 1])
            }
            function f(t, e) {
                for (var n = 0; n |= 1 & t,
                t >>>= 1,
                n <<= 1,
                0 < --e; )
                    ;
                return n >>> 1
            }
            function p(t, e, n) {
                for (var i, r = new Array(_ + 1), o = 0, a = 1; a <= _; a++)
                    r[a] = o = o + n[a - 1] << 1;
                for (i = 0; i <= e; i++) {
                    var s = t[2 * i + 1];
                    0 !== s && (t[2 * i] = f(r[s]++, s))
                }
            }
            function s(t) {
                for (var e = 0; e < 286; e++)
                    t.dyn_ltree[2 * e] = 0;
                for (e = 0; e < 30; e++)
                    t.dyn_dtree[2 * e] = 0;
                for (e = 0; e < 19; e++)
                    t.bl_tree[2 * e] = 0;
                t.dyn_ltree[512] = 1,
                t.opt_len = t.static_len = 0,
                t.last_lit = t.matches = 0
            }
            function d(t) {
                8 < t.bi_valid ? u(t, t.bi_buf) : 0 < t.bi_valid && (t.pending_buf[t.pending++] = t.bi_buf),
                t.bi_buf = 0,
                t.bi_valid = 0
            }
            function o(t, e, n, i) {
                var r = 2 * e
                  , o = 2 * n;
                return t[r] < t[o] || t[r] === t[o] && i[e] <= i[n]
            }
            function M(t, e, n) {
                for (var i = t.heap[n], r = n << 1; r <= t.heap_len && (r < t.heap_len && o(e, t.heap[r + 1], t.heap[r], t.depth) && r++,
                !o(e, i, t.heap[r], t.depth)); )
                    t.heap[n] = t.heap[r],
                    n = r,
                    r <<= 1;
                t.heap[n] = i
            }
            function b(t, e, n) {
                var i, r, o, a, s = 0;
                if (0 !== t.last_lit)
                    for (; i = t.pending_buf[t.d_buf + 2 * s] << 8 | t.pending_buf[t.d_buf + 2 * s + 1],
                    r = t.pending_buf[t.l_buf + s],
                    s++,
                    0 == i ? h(t, r, e) : (h(t, (o = B[r]) + 256 + 1, e),
                    0 !== (a = q[o]) && l(t, r -= E[o], a),
                    h(t, o = c(--i), n),
                    0 !== (a = W[o]) && l(t, i -= X[o], a)),
                    s < t.last_lit; )
                        ;
                h(t, 256, e)
            }
            function m(t, e) {
                var n, i, r, o = e.dyn_tree, a = e.stat_desc.static_tree, s = e.stat_desc.has_stree, c = e.stat_desc.elems, u = -1;
                for (t.heap_len = 0,
                t.heap_max = z,
                n = 0; n < c; n++)
                    0 !== o[2 * n] ? (t.heap[++t.heap_len] = u = n,
                    t.depth[n] = 0) : o[2 * n + 1] = 0;
                for (; t.heap_len < 2; )
                    o[2 * (r = t.heap[++t.heap_len] = u < 2 ? ++u : 0)] = 1,
                    t.depth[r] = 0,
                    t.opt_len--,
                    s && (t.static_len -= a[2 * r + 1]);
                for (e.max_code = u,
                n = t.heap_len >> 1; 1 <= n; n--)
                    M(t, o, n);
                for (r = c; n = t.heap[1],
                t.heap[1] = t.heap[t.heap_len--],
                M(t, o, 1),
                i = t.heap[1],
                t.heap[--t.heap_max] = n,
                t.heap[--t.heap_max] = i,
                o[2 * r] = o[2 * n] + o[2 * i],
                t.depth[r] = (t.depth[n] >= t.depth[i] ? t.depth[n] : t.depth[i]) + 1,
                o[2 * n + 1] = o[2 * i + 1] = r,
                t.heap[1] = r++,
                M(t, o, 1),
                2 <= t.heap_len; )
                    ;
                t.heap[--t.heap_max] = t.heap[1],
                function(t, e) {
                    for (var n, i, r, o, a, s = e.dyn_tree, c = e.max_code, u = e.stat_desc.static_tree, l = e.stat_desc.has_stree, h = e.stat_desc.extra_bits, f = e.stat_desc.extra_base, p = e.stat_desc.max_length, d = 0, M = 0; M <= _; M++)
                        t.bl_count[M] = 0;
                    for (s[2 * t.heap[t.heap_max] + 1] = 0,
                    n = t.heap_max + 1; n < z; n++)
                        (M = s[2 * s[2 * (i = t.heap[n]) + 1] + 1] + 1) > p && (M = p,
                        d++),
                        s[2 * i + 1] = M,
                        c < i || (t.bl_count[M]++,
                        o = 0,
                        f <= i && (o = h[i - f]),
                        a = s[2 * i],
                        t.opt_len += a * (M + o),
                        l && (t.static_len += a * (u[2 * i + 1] + o)));
                    if (0 !== d) {
                        do {
                            for (M = p - 1; 0 === t.bl_count[M]; )
                                M--;
                            t.bl_count[M]--,
                            t.bl_count[M + 1] += 2,
                            t.bl_count[p]--,
                            d -= 2
                        } while (0 < d);for (M = p; 0 !== M; M--)
                            for (i = t.bl_count[M]; 0 !== i; )
                                (r = t.heap[--n]) > c || (s[2 * r + 1] !== M && (t.opt_len += (M - s[2 * r + 1]) * s[2 * r],
                                s[2 * r + 1] = M),
                                i--)
                    }
                }(t, e),
                p(o, u, t.bl_count)
            }
            function g(t, e, n) {
                var i, r, o = -1, a = e[1], s = 0, c = 7, u = 4;
                for (0 === a && (c = 138,
                u = 3),
                e[2 * (n + 1) + 1] = 65535,
                i = 0; i <= n; i++)
                    r = a,
                    a = e[2 * (i + 1) + 1],
                    ++s < c && r === a || (s < u ? t.bl_tree[2 * r] += s : 0 !== r ? (r !== o && t.bl_tree[2 * r]++,
                    t.bl_tree[2 * w]++) : s <= 10 ? t.bl_tree[2 * L]++ : t.bl_tree[2 * N]++,
                    o = r,
                    u = (s = 0) === a ? (c = 138,
                    3) : r === a ? (c = 6,
                    3) : (c = 7,
                    4))
            }
            function v(t, e, n) {
                var i, r, o = -1, a = e[1], s = 0, c = 7, u = 4;
                for (0 === a && (c = 138,
                u = 3),
                i = 0; i <= n; i++)
                    if (r = a,
                    a = e[2 * (i + 1) + 1],
                    !(++s < c && r === a)) {
                        if (s < u)
                            for (; h(t, r, t.bl_tree),
                            0 != --s; )
                                ;
                        else
                            0 !== r ? (r !== o && (h(t, r, t.bl_tree),
                            s--),
                            h(t, w, t.bl_tree),
                            l(t, s - 3, 2)) : s <= 10 ? (h(t, L, t.bl_tree),
                            l(t, s - 3, 3)) : (h(t, N, t.bl_tree),
                            l(t, s - 11, 7));
                        o = r,
                        u = (s = 0) === a ? (c = 138,
                        3) : r === a ? (c = 6,
                        3) : (c = 7,
                        4)
                    }
            }
            function A(t, e, n, i) {
                var r, o, a, s;
                l(t, 0 + (i ? 1 : 0), 3),
                o = e,
                a = n,
                s = !0,
                d(r = t),
                s && (u(r, a),
                u(r, ~a)),
                y.arraySet(r.pending_buf, r.window, o, a, r.pending),
                r.pending += a
            }
            var y = t("../utils/common")
              , z = 573
              , _ = 15
              , O = 16
              , w = 16
              , L = 17
              , N = 18
              , q = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]
              , W = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]
              , T = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]
              , C = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]
              , x = new Array(576);
            i(x);
            var k = new Array(60);
            i(k);
            var S = new Array(512);
            i(S);
            var B = new Array(256);
            i(B);
            var E = new Array(29);
            i(E);
            var X = new Array(30);
            i(X);
            var D, R, P, I = !1;
            n._tr_init = function(t) {
                I || (function() {
                    for (var t, e, n, i = new Array(_ + 1), r = 0, o = 0; o < 28; o++)
                        for (E[o] = r,
                        t = 0; t < 1 << q[o]; t++)
                            B[r++] = o;
                    for (B[r - 1] = o,
                    o = n = 0; o < 16; o++)
                        for (X[o] = n,
                        t = 0; t < 1 << W[o]; t++)
                            S[n++] = o;
                    for (n >>= 7; o < 30; o++)
                        for (X[o] = n << 7,
                        t = 0; t < 1 << W[o] - 7; t++)
                            S[256 + n++] = o;
                    for (e = 0; e <= _; e++)
                        i[e] = 0;
                    for (t = 0; t <= 143; )
                        x[2 * t + 1] = 8,
                        t++,
                        i[8]++;
                    for (; t <= 255; )
                        x[2 * t + 1] = 9,
                        t++,
                        i[9]++;
                    for (; t <= 279; )
                        x[2 * t + 1] = 7,
                        t++,
                        i[7]++;
                    for (; t <= 287; )
                        x[2 * t + 1] = 8,
                        t++,
                        i[8]++;
                    for (p(x, 287, i),
                    t = 0; t < 30; t++)
                        k[2 * t + 1] = 5,
                        k[2 * t] = f(t, 5);
                    D = new a(x,q,257,286,_),
                    R = new a(k,W,0,30,_),
                    P = new a(new Array(0),T,0,19,7)
                }(),
                I = !0),
                t.l_desc = new r(t.dyn_ltree,D),
                t.d_desc = new r(t.dyn_dtree,R),
                t.bl_desc = new r(t.bl_tree,P),
                t.bi_buf = 0,
                t.bi_valid = 0,
                s(t)
            }
            ,
            n._tr_stored_block = A,
            n._tr_flush_block = function(t, e, n, i) {
                var r, o, a = 0;
                0 < t.level ? (2 === t.strm.data_type && (t.strm.data_type = function(t) {
                    for (var e = 4093624447, n = 0; n <= 31; n++,
                    e >>>= 1)
                        if (1 & e && 0 !== t.dyn_ltree[2 * n])
                            return 0;
                    if (0 !== t.dyn_ltree[18] || 0 !== t.dyn_ltree[20] || 0 !== t.dyn_ltree[26])
                        return 1;
                    for (n = 32; n < 256; n++)
                        if (0 !== t.dyn_ltree[2 * n])
                            return 1;
                    return 0
                }(t)),
                m(t, t.l_desc),
                m(t, t.d_desc),
                a = function(t) {
                    var e;
                    for (g(t, t.dyn_ltree, t.l_desc.max_code),
                    g(t, t.dyn_dtree, t.d_desc.max_code),
                    m(t, t.bl_desc),
                    e = 18; 3 <= e && 0 === t.bl_tree[2 * C[e] + 1]; e--)
                        ;
                    return t.opt_len += 3 * (e + 1) + 5 + 5 + 4,
                    e
                }(t),
                r = t.opt_len + 3 + 7 >>> 3,
                (o = t.static_len + 3 + 7 >>> 3) <= r && (r = o)) : r = o = n + 5,
                n + 4 <= r && -1 !== e ? A(t, e, n, i) : 4 === t.strategy || o === r ? (l(t, 2 + (i ? 1 : 0), 3),
                b(t, x, k)) : (l(t, 4 + (i ? 1 : 0), 3),
                function(t, e, n, i) {
                    var r;
                    for (l(t, e - 257, 5),
                    l(t, n - 1, 5),
                    l(t, i - 4, 4),
                    r = 0; r < i; r++)
                        l(t, t.bl_tree[2 * C[r] + 1], 3);
                    v(t, t.dyn_ltree, e - 1),
                    v(t, t.dyn_dtree, n - 1)
                }(t, t.l_desc.max_code + 1, t.d_desc.max_code + 1, a + 1),
                b(t, t.dyn_ltree, t.dyn_dtree)),
                s(t),
                i && d(t)
            }
            ,
            n._tr_tally = function(t, e, n) {
                return t.pending_buf[t.d_buf + 2 * t.last_lit] = e >>> 8 & 255,
                t.pending_buf[t.d_buf + 2 * t.last_lit + 1] = 255 & e,
                t.pending_buf[t.l_buf + t.last_lit] = 255 & n,
                t.last_lit++,
                0 === e ? t.dyn_ltree[2 * n]++ : (t.matches++,
                e--,
                t.dyn_ltree[2 * (B[n] + 256 + 1)]++,
                t.dyn_dtree[2 * c(e)]++),
                t.last_lit === t.lit_bufsize - 1
            }
            ,
            n._tr_align = function(t) {
                var e;
                l(t, 2, 3),
                h(t, 256, x),
                16 === (e = t).bi_valid ? (u(e, e.bi_buf),
                e.bi_buf = 0,
                e.bi_valid = 0) : 8 <= e.bi_valid && (e.pending_buf[e.pending++] = 255 & e.bi_buf,
                e.bi_buf >>= 8,
                e.bi_valid -= 8)
            }
        }
        , {
            "../utils/common": 3
        }],
        15: [function(t, e, n) {
            "use strict";
            e.exports = function() {
                this.input = null,
                this.next_in = 0,
                this.avail_in = 0,
                this.total_in = 0,
                this.output = null,
                this.next_out = 0,
                this.avail_out = 0,
                this.total_out = 0,
                this.msg = "",
                this.state = null,
                this.data_type = 2,
                this.adler = 0
            }
        }
        , {}],
        "/": [function(t, e, n) {
            "use strict";
            var i = {};
            (0,
            t("./lib/utils/common").assign)(i, t("./lib/deflate"), t("./lib/inflate"), t("./lib/zlib/constants")),
            e.exports = i
        }
        , {
            "./lib/deflate": 1,
            "./lib/inflate": 2,
            "./lib/utils/common": 3,
            "./lib/zlib/constants": 6
        }]
    }, {}, [])("/")
}),
function(t) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).localforage = t()
}(function() {
    return function o(a, s, c) {
        function u(e, t) {
            if (!s[e]) {
                if (!a[e]) {
                    var n = "function" == typeof require && require;
                    if (!t && n)
                        return n(e, !0);
                    if (l)
                        return l(e, !0);
                    var i = new Error("Cannot find module '" + e + "'");
                    throw i.code = "MODULE_NOT_FOUND",
                    i
                }
                var r = s[e] = {
                    exports: {}
                };
                a[e][0].call(r.exports, function(t) {
                    return u(a[e][1][t] || t)
                }, r, r.exports, o, a, s, c)
            }
            return s[e].exports
        }
        for (var l = "function" == typeof require && require, t = 0; t < c.length; t++)
            u(c[t]);
        return u
    }({
        1: [function(t, l, e) {
            (function(e) {
                "use strict";
                function n() {
                    a = !0;
                    for (var t, e, n = u.length; n; ) {
                        for (e = u,
                        u = [],
                        t = -1; ++t < n; )
                            e[t]();
                        n = u.length
                    }
                    a = !1
                }
                var t, i, r, o, a, s = e.MutationObserver || e.WebKitMutationObserver, c = s ? (t = 0,
                i = new s(n),
                r = e.document.createTextNode(""),
                i.observe(r, {
                    characterData: !0
                }),
                function() {
                    r.data = t = ++t % 2
                }
                ) : e.setImmediate || void 0 === e.MessageChannel ? "document"in e && "onreadystatechange"in e.document.createElement("script") ? function() {
                    var t = e.document.createElement("script");
                    t.onreadystatechange = function() {
                        n(),
                        t.onreadystatechange = null,
                        t.parentNode.removeChild(t),
                        t = null
                    }
                    ,
                    e.document.documentElement.appendChild(t)
                }
                : function() {
                    setTimeout(n, 0)
                }
                : ((o = new e.MessageChannel).port1.onmessage = n,
                function() {
                    o.port2.postMessage(0)
                }
                ), u = [];
                l.exports = function(t) {
                    1 !== u.push(t) || a || c()
                }
            }
            ).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
        }
        , {}],
        2: [function(t, e, n) {
            "use strict";
            function c() {}
            function i(t) {
                if ("function" != typeof t)
                    throw new TypeError("resolver must be a function");
                this.state = d,
                this.queue = [],
                this.outcome = void 0,
                t !== c && s(this, t)
            }
            function r(t, e, n) {
                this.promise = t,
                "function" == typeof e && (this.onFulfilled = e,
                this.callFulfilled = this.otherCallFulfilled),
                "function" == typeof n && (this.onRejected = n,
                this.callRejected = this.otherCallRejected)
            }
            function o(e, n, i) {
                l(function() {
                    var t;
                    try {
                        t = n(i)
                    } catch (t) {
                        return h.reject(e, t)
                    }
                    t === e ? h.reject(e, new TypeError("Cannot resolve promise with itself")) : h.resolve(e, t)
                })
            }
            function a(t) {
                var e = t && t.then;
                if (t && ("object" == typeof t || "function" == typeof t) && "function" == typeof e)
                    return function() {
                        e.apply(t, arguments)
                    }
            }
            function s(e, t) {
                function n(t) {
                    r || (r = !0,
                    h.reject(e, t))
                }
                function i(t) {
                    r || (r = !0,
                    h.resolve(e, t))
                }
                var r = !1
                  , o = u(function() {
                    t(i, n)
                });
                "error" === o.status && n(o.value)
            }
            function u(t, e) {
                var n = {};
                try {
                    n.value = t(e),
                    n.status = "success"
                } catch (t) {
                    n.status = "error",
                    n.value = t
                }
                return n
            }
            var l = t(1)
              , h = {}
              , f = ["REJECTED"]
              , p = ["FULFILLED"]
              , d = ["PENDING"];
            (e.exports = i).prototype.catch = function(t) {
                return this.then(null, t)
            }
            ,
            i.prototype.then = function(t, e) {
                if ("function" != typeof t && this.state === p || "function" != typeof e && this.state === f)
                    return this;
                var n = new this.constructor(c);
                return this.state !== d ? o(n, this.state === p ? t : e, this.outcome) : this.queue.push(new r(n,t,e)),
                n
            }
            ,
            r.prototype.callFulfilled = function(t) {
                h.resolve(this.promise, t)
            }
            ,
            r.prototype.otherCallFulfilled = function(t) {
                o(this.promise, this.onFulfilled, t)
            }
            ,
            r.prototype.callRejected = function(t) {
                h.reject(this.promise, t)
            }
            ,
            r.prototype.otherCallRejected = function(t) {
                o(this.promise, this.onRejected, t)
            }
            ,
            h.resolve = function(t, e) {
                var n = u(a, e);
                if ("error" === n.status)
                    return h.reject(t, n.value);
                var i = n.value;
                if (i)
                    s(t, i);
                else {
                    t.state = p,
                    t.outcome = e;
                    for (var r = -1, o = t.queue.length; ++r < o; )
                        t.queue[r].callFulfilled(e)
                }
                return t
            }
            ,
            h.reject = function(t, e) {
                t.state = f,
                t.outcome = e;
                for (var n = -1, i = t.queue.length; ++n < i; )
                    t.queue[n].callRejected(e);
                return t
            }
            ,
            i.resolve = function(t) {
                return t instanceof this ? t : h.resolve(new this(c), t)
            }
            ,
            i.reject = function(t) {
                var e = new this(c);
                return h.reject(e, t)
            }
            ,
            i.all = function(t) {
                var n = this;
                if ("[object Array]" !== Object.prototype.toString.call(t))
                    return this.reject(new TypeError("must be an array"));
                var i = t.length
                  , r = !1;
                if (!i)
                    return this.resolve([]);
                for (var o = new Array(i), a = 0, e = -1, s = new this(c); ++e < i; )
                    !function(t, e) {
                        n.resolve(t).then(function(t) {
                            o[e] = t,
                            ++a !== i || r || (r = !0,
                            h.resolve(s, o))
                        }, function(t) {
                            r || (r = !0,
                            h.reject(s, t))
                        })
                    }(t[e], e);
                return s
            }
            ,
            i.race = function(t) {
                var e = this;
                if ("[object Array]" !== Object.prototype.toString.call(t))
                    return this.reject(new TypeError("must be an array"));
                var n = t.length
                  , i = !1;
                if (!n)
                    return this.resolve([]);
                for (var r, o = -1, a = new this(c); ++o < n; )
                    r = t[o],
                    e.resolve(r).then(function(t) {
                        i || (i = !0,
                        h.resolve(a, t))
                    }, function(t) {
                        i || (i = !0,
                        h.reject(a, t))
                    });
                return a
            }
        }
        , {
            1: 1
        }],
        3: [function(e, t, n) {
            (function(t) {
                "use strict";
                "function" != typeof t.Promise && (t.Promise = e(2))
            }
            ).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
        }
        , {
            2: 2
        }],
        4: [function(t, e, n) {
            "use strict";
            function a(e, n) {
                e = e || [],
                n = n || {};
                try {
                    return new Blob(e,n)
                } catch (t) {
                    if ("TypeError" !== t.name)
                        throw t;
                    for (var i = new ("undefined" != typeof BlobBuilder ? BlobBuilder : "undefined" != typeof MSBlobBuilder ? MSBlobBuilder : "undefined" != typeof MozBlobBuilder ? MozBlobBuilder : WebKitBlobBuilder), r = 0; r < e.length; r += 1)
                        i.append(e[r]);
                    return i.getBlob(n.type)
                }
            }
            function l(t, e) {
                e && t.then(function(t) {
                    e(null, t)
                }, function(t) {
                    e(t)
                })
            }
            function h(t, e, n) {
                "function" == typeof e && t.then(e),
                "function" == typeof n && t.catch(n)
            }
            function f(t) {
                return "string" != typeof t && (t = String(t)),
                t
            }
            function o() {
                if (arguments.length && "function" == typeof arguments[arguments.length - 1])
                    return arguments[arguments.length - 1]
            }
            function i(t) {
                return "boolean" == typeof S ? x.resolve(S) : (i = t,
                new x(function(n) {
                    var t = i.transaction(k, D)
                      , e = a([""]);
                    t.objectStore(k).put(e, "key"),
                    t.onabort = function(t) {
                        t.preventDefault(),
                        t.stopPropagation(),
                        n(!1)
                    }
                    ,
                    t.oncomplete = function() {
                        var t = navigator.userAgent.match(/Chrome\/(\d+)/)
                          , e = navigator.userAgent.match(/Edge\//);
                        n(e || !t || 43 <= parseInt(t[1], 10))
                    }
                }
                ).catch(function() {
                    return !1
                }).then(function(t) {
                    return S = t
                }));
                var i
            }
            function s(t) {
                var e = B[t.name]
                  , n = {};
                n.promise = new x(function(t, e) {
                    n.resolve = t,
                    n.reject = e
                }
                ),
                e.deferredOperations.push(n),
                e.dbReady ? e.dbReady = e.dbReady.then(function() {
                    return n.promise
                }) : e.dbReady = n.promise
            }
            function c(t) {
                var e = B[t.name].deferredOperations.pop();
                return e && (e.resolve(),
                e.promise)
            }
            function u(t, e) {
                var n = B[t.name].deferredOperations.pop();
                if (n)
                    return n.reject(e),
                    n.promise
            }
            function r(r, o) {
                return new x(function(t, e) {
                    if (B[r.name] = B[r.name] || A(),
                    r.db) {
                        if (!o)
                            return t(r.db);
                        s(r),
                        r.db.close()
                    }
                    var n = [r.name];
                    o && n.push(r.version);
                    var i = T.open.apply(T, n);
                    o && (i.onupgradeneeded = function(t) {
                        var e = i.result;
                        try {
                            e.createObjectStore(r.storeName),
                            t.oldVersion <= 1 && e.createObjectStore(k)
                        } catch (e) {
                            if ("ConstraintError" !== e.name)
                                throw e
                        }
                    }
                    ),
                    i.onerror = function(t) {
                        t.preventDefault(),
                        e(i.error)
                    }
                    ,
                    i.onsuccess = function() {
                        t(i.result),
                        c(r)
                    }
                }
                )
            }
            function p(t) {
                return r(t, !1)
            }
            function d(t) {
                return r(t, !0)
            }
            function M(t) {
                if (!t.db)
                    return 1;
                var e, n = !t.db.objectStoreNames.contains(t.storeName), i = t.version < t.db.version, r = t.version > t.db.version;
                return i && (t.version,
                t.version = t.db.version),
                (r || n) && (!n || (e = t.db.version + 1) > t.version && (t.version = e),
                1)
            }
            function b(t) {
                return a([function(t) {
                    for (var e = t.length, n = new ArrayBuffer(e), i = new Uint8Array(n), r = 0; r < e; r++)
                        i[r] = t.charCodeAt(r);
                    return n
                }(atob(t.data))], {
                    type: t.type
                })
            }
            function m(t) {
                return t && t.__local_forage_encoded_blob
            }
            function g(t) {
                var e = this
                  , n = e._initReady().then(function() {
                    var t = B[e._dbInfo.name];
                    if (t && t.dbReady)
                        return t.dbReady
                });
                return h(n, t, t),
                n
            }
            function v(t, e, n, i) {
                void 0 === i && (i = 1);
                try {
                    var r = t.db.transaction(t.storeName, e);
                    n(null, r)
                } catch (r) {
                    if (0 < i && (!t.db || "InvalidStateError" === r.name || "NotFoundError" === r.name))
                        return x.resolve().then(function() {
                            if (!t.db || "NotFoundError" === r.name && !t.db.objectStoreNames.contains(t.storeName) && t.version <= t.db.version)
                                return t.db && (t.version = t.db.version + 1),
                                d(t)
                        }).then(function() {
                            return function(n) {
                                s(n);
                                for (var i = B[n.name], r = i.forages, t = 0; t < r.length; t++) {
                                    var e = r[t];
                                    e._dbInfo.db && (e._dbInfo.db.close(),
                                    e._dbInfo.db = null)
                                }
                                return n.db = null,
                                p(n).then(function(t) {
                                    return n.db = t,
                                    M(n) ? d(n) : t
                                }).then(function(t) {
                                    n.db = i.db = t;
                                    for (var e = 0; e < r.length; e++)
                                        r[e]._dbInfo.db = t
                                }).catch(function(t) {
                                    throw u(n, t),
                                    t
                                })
                            }(t).then(function() {
                                v(t, e, n, i - 1)
                            })
                        }).catch(n);
                    n(r)
                }
            }
            function A() {
                return {
                    forages: [],
                    db: null,
                    dbReady: null,
                    deferredOperations: []
                }
            }
            function y(t) {
                var e, n, i, r, o = .75 * t.length, a = t.length, s = 0;
                "=" === t[t.length - 1] && (o--,
                "=" === t[t.length - 2] && o--);
                for (var c = new ArrayBuffer(o), u = new Uint8Array(c), l = 0; l < a; l += 4)
                    e = P.indexOf(t[l]),
                    n = P.indexOf(t[l + 1]),
                    i = P.indexOf(t[l + 2]),
                    r = P.indexOf(t[l + 3]),
                    u[s++] = e << 2 | n >> 4,
                    u[s++] = (15 & n) << 4 | i >> 2,
                    u[s++] = (3 & i) << 6 | 63 & r;
                return c
            }
            function z(t) {
                for (var e = new Uint8Array(t), n = "", i = 0; i < e.length; i += 3)
                    n += P[e[i] >> 2],
                    n += P[(3 & e[i]) << 4 | e[i + 1] >> 4],
                    n += P[(15 & e[i + 1]) << 2 | e[i + 2] >> 6],
                    n += P[63 & e[i + 2]];
                return e.length % 3 == 2 ? n = n.substring(0, n.length - 1) + "=" : e.length % 3 == 1 && (n = n.substring(0, n.length - 2) + "=="),
                n
            }
            function _(t, e, n, i) {
                t.executeSql("CREATE TABLE IF NOT EXISTS " + e.storeName + " (id INTEGER PRIMARY KEY, key unique, value)", [], n, i)
            }
            function O(t, i, r, o, a, s) {
                t.executeSql(r, o, a, function(t, n) {
                    n.code === n.SYNTAX_ERR ? t.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?", [name], function(t, e) {
                        e.rows.length ? s(t, n) : _(t, i, function() {
                            t.executeSql(r, o, a, s)
                        }, s)
                    }, s) : s(t, n)
                }, s)
            }
            function w(a, t, s, c) {
                var u = this;
                a = f(a);
                var e = new x(function(r, o) {
                    u.ready().then(function() {
                        void 0 === t && (t = null);
                        var n = t
                          , i = u._dbInfo;
                        i.serializer.serialize(t, function(e, t) {
                            t ? o(t) : i.db.transaction(function(t) {
                                O(t, i, "INSERT OR REPLACE INTO " + i.storeName + " (key, value) VALUES (?, ?)", [a, e], function() {
                                    r(n)
                                }, function(t, e) {
                                    o(e)
                                })
                            }, function(t) {
                                if (t.code === t.QUOTA_ERR) {
                                    if (0 < c)
                                        return void r(w.apply(u, [a, n, s, c - 1]));
                                    o(t)
                                }
                            })
                        })
                    }).catch(o)
                }
                );
                return l(e, s),
                e
            }
            function L(t, e) {
                var n = t.name + "/";
                return t.storeName !== e.storeName && (n += t.storeName + "/"),
                n
            }
            function N() {
                return !function() {
                    var t = "_localforage_support_test";
                    try {
                        return localStorage.setItem(t, !0),
                        localStorage.removeItem(t),
                        0
                    } catch (t) {
                        return 1
                    }
                }() || 0 < localStorage.length
            }
            function q(t) {
                for (var e = 1; e < arguments.length; e++) {
                    var n = arguments[e];
                    if (n)
                        for (var i in n)
                            n.hasOwnProperty(i) && (K(n[i]) ? t[i] = n[i].slice() : t[i] = n[i])
                }
                return t
            }
            var W = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            }
            : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            }
              , T = function() {
                try {
                    if ("undefined" != typeof indexedDB)
                        return indexedDB;
                    if ("undefined" != typeof webkitIndexedDB)
                        return webkitIndexedDB;
                    if ("undefined" != typeof mozIndexedDB)
                        return mozIndexedDB;
                    if ("undefined" != typeof OIndexedDB)
                        return OIndexedDB;
                    if ("undefined" != typeof msIndexedDB)
                        return msIndexedDB
                } catch (t) {
                    return
                }
            }();
            "undefined" == typeof Promise && t(3);
            function C(t, e) {
                for (var n, i, r = t.length, o = 0; o < r; ) {
                    if ((n = t[o]) === (i = e) || "number" == typeof n && "number" == typeof i && isNaN(n) && isNaN(i))
                        return 1;
                    o++
                }
            }
            var x = Promise
              , k = "local-forage-detect-blob-support"
              , S = void 0
              , B = {}
              , E = Object.prototype.toString
              , X = "readonly"
              , D = "readwrite"
              , R = {
                _driver: "asyncStorage",
                _initStorage: function(t) {
                    function e() {
                        return x.resolve()
                    }
                    var i = this
                      , r = {
                        db: null
                    };
                    if (t)
                        for (var n in t)
                            r[n] = t[n];
                    var o = B[r.name];
                    o || (o = A(),
                    B[r.name] = o),
                    o.forages.push(i),
                    i._initReady || (i._initReady = i.ready,
                    i.ready = g);
                    for (var a = [], s = 0; s < o.forages.length; s++) {
                        var c = o.forages[s];
                        c !== i && a.push(c._initReady().catch(e))
                    }
                    var u = o.forages.slice(0);
                    return x.all(a).then(function() {
                        return r.db = o.db,
                        p(r)
                    }).then(function(t) {
                        return r.db = t,
                        M(r, i._defaultConfig.version) ? d(r) : t
                    }).then(function(t) {
                        r.db = o.db = t,
                        i._dbInfo = r;
                        for (var e = 0; e < u.length; e++) {
                            var n = u[e];
                            n !== i && (n._dbInfo.db = r.db,
                            n._dbInfo.version = r.version)
                        }
                    })
                },
                _support: function() {
                    try {
                        if (!T)
                            return !1;
                        var t = "undefined" != typeof openDatabase && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform)
                          , e = "function" == typeof fetch && -1 !== fetch.toString().indexOf("[native code");
                        return (!t || e) && "undefined" != typeof indexedDB && "undefined" != typeof IDBKeyRange
                    } catch (t) {
                        return !1
                    }
                }(),
                iterate: function(a, t) {
                    var s = this
                      , e = new x(function(o, n) {
                        s.ready().then(function() {
                            v(s._dbInfo, X, function(t, e) {
                                if (t)
                                    return n(t);
                                try {
                                    var i = e.objectStore(s._dbInfo.storeName).openCursor()
                                      , r = 1;
                                    i.onsuccess = function() {
                                        var t, e, n = i.result;
                                        n ? (m(t = n.value) && (t = b(t)),
                                        void 0 !== (e = a(t, n.key, r++)) ? o(e) : n.continue()) : o()
                                    }
                                    ,
                                    i.onerror = function() {
                                        n(i.error)
                                    }
                                } catch (t) {
                                    n(t)
                                }
                            })
                        }).catch(n)
                    }
                    );
                    return l(e, t),
                    e
                },
                getItem: function(o, t) {
                    var a = this;
                    o = f(o);
                    var e = new x(function(i, r) {
                        a.ready().then(function() {
                            v(a._dbInfo, X, function(t, e) {
                                if (t)
                                    return r(t);
                                try {
                                    var n = e.objectStore(a._dbInfo.storeName).get(o);
                                    n.onsuccess = function() {
                                        var t = n.result;
                                        void 0 === t && (t = null),
                                        m(t) && (t = b(t)),
                                        i(t)
                                    }
                                    ,
                                    n.onerror = function() {
                                        r(n.error)
                                    }
                                } catch (t) {
                                    r(t)
                                }
                            })
                        }).catch(r)
                    }
                    );
                    return l(e, t),
                    e
                },
                setItem: function(s, e, t) {
                    var c = this;
                    s = f(s);
                    var n = new x(function(o, a) {
                        var t;
                        c.ready().then(function() {
                            return t = c._dbInfo,
                            "[object Blob]" === E.call(e) ? i(t.db).then(function(t) {
                                return t ? e : (i = e,
                                new x(function(n, t) {
                                    var e = new FileReader;
                                    e.onerror = t,
                                    e.onloadend = function(t) {
                                        var e = btoa(t.target.result || "");
                                        n({
                                            __local_forage_encoded_blob: !0,
                                            data: e,
                                            type: i.type
                                        })
                                    }
                                    ,
                                    e.readAsBinaryString(i)
                                }
                                ));
                                var i
                            }) : e
                        }).then(function(r) {
                            v(c._dbInfo, D, function(t, e) {
                                if (t)
                                    return a(t);
                                try {
                                    var n = e.objectStore(c._dbInfo.storeName);
                                    null === r && (r = void 0);
                                    var i = n.put(r, s);
                                    e.oncomplete = function() {
                                        void 0 === r && (r = null),
                                        o(r)
                                    }
                                    ,
                                    e.onabort = e.onerror = function() {
                                        var t = i.error ? i.error : i.transaction.error;
                                        a(t)
                                    }
                                } catch (t) {
                                    a(t)
                                }
                            })
                        }).catch(a)
                    }
                    );
                    return l(n, t),
                    n
                },
                removeItem: function(o, t) {
                    var a = this;
                    o = f(o);
                    var e = new x(function(i, r) {
                        a.ready().then(function() {
                            v(a._dbInfo, D, function(t, e) {
                                if (t)
                                    return r(t);
                                try {
                                    var n = e.objectStore(a._dbInfo.storeName).delete(o);
                                    e.oncomplete = function() {
                                        i()
                                    }
                                    ,
                                    e.onerror = function() {
                                        r(n.error)
                                    }
                                    ,
                                    e.onabort = function() {
                                        var t = n.error ? n.error : n.transaction.error;
                                        r(t)
                                    }
                                } catch (t) {
                                    r(t)
                                }
                            })
                        }).catch(r)
                    }
                    );
                    return l(e, t),
                    e
                },
                clear: function(t) {
                    var o = this
                      , e = new x(function(i, r) {
                        o.ready().then(function() {
                            v(o._dbInfo, D, function(t, e) {
                                if (t)
                                    return r(t);
                                try {
                                    var n = e.objectStore(o._dbInfo.storeName).clear();
                                    e.oncomplete = function() {
                                        i()
                                    }
                                    ,
                                    e.onabort = e.onerror = function() {
                                        var t = n.error ? n.error : n.transaction.error;
                                        r(t)
                                    }
                                } catch (t) {
                                    r(t)
                                }
                            })
                        }).catch(r)
                    }
                    );
                    return l(e, t),
                    e
                },
                length: function(t) {
                    var o = this
                      , e = new x(function(i, r) {
                        o.ready().then(function() {
                            v(o._dbInfo, X, function(t, e) {
                                if (t)
                                    return r(t);
                                try {
                                    var n = e.objectStore(o._dbInfo.storeName).count();
                                    n.onsuccess = function() {
                                        i(n.result)
                                    }
                                    ,
                                    n.onerror = function() {
                                        r(n.error)
                                    }
                                } catch (t) {
                                    r(t)
                                }
                            })
                        }).catch(r)
                    }
                    );
                    return l(e, t),
                    e
                },
                key: function(s, t) {
                    var c = this
                      , e = new x(function(o, a) {
                        s < 0 ? o(null) : c.ready().then(function() {
                            v(c._dbInfo, X, function(t, e) {
                                if (t)
                                    return a(t);
                                try {
                                    var n = e.objectStore(c._dbInfo.storeName)
                                      , i = !1
                                      , r = n.openCursor();
                                    r.onsuccess = function() {
                                        var t = r.result;
                                        t ? 0 === s || i ? o(t.key) : (i = !0,
                                        t.advance(s)) : o(null)
                                    }
                                    ,
                                    r.onerror = function() {
                                        a(r.error)
                                    }
                                } catch (t) {
                                    a(t)
                                }
                            })
                        }).catch(a)
                    }
                    );
                    return l(e, t),
                    e
                },
                keys: function(t) {
                    var a = this
                      , e = new x(function(r, o) {
                        a.ready().then(function() {
                            v(a._dbInfo, X, function(t, e) {
                                if (t)
                                    return o(t);
                                try {
                                    var n = e.objectStore(a._dbInfo.storeName).openCursor()
                                      , i = [];
                                    n.onsuccess = function() {
                                        var t = n.result;
                                        t ? (i.push(t.key),
                                        t.continue()) : r(i)
                                    }
                                    ,
                                    n.onerror = function() {
                                        o(n.error)
                                    }
                                } catch (t) {
                                    o(t)
                                }
                            })
                        }).catch(o)
                    }
                    );
                    return l(e, t),
                    e
                },
                dropInstance: function(a, t) {
                    t = o.apply(this, arguments);
                    var e, n, i = this.config();
                    return (a = "function" != typeof a && a || {}).name || (a.name = a.name || i.name,
                    a.storeName = a.storeName || i.storeName),
                    l(n = a.name ? (e = a.name === i.name && this._dbInfo.db ? x.resolve(this._dbInfo.db) : p(a).then(function(t) {
                        var e = B[a.name]
                          , n = e.forages;
                        e.db = t;
                        for (var i = 0; i < n.length; i++)
                            n[i]._dbInfo.db = t;
                        return t
                    }),
                    a.storeName ? e.then(function(t) {
                        if (t.objectStoreNames.contains(a.storeName)) {
                            var r = t.version + 1;
                            s(a);
                            var i = B[a.name]
                              , o = i.forages;
                            t.close();
                            for (var e = 0; e < o.length; e++) {
                                var n = o[e];
                                n._dbInfo.db = null,
                                n._dbInfo.version = r
                            }
                            return new x(function(e, n) {
                                var i = T.open(a.name, r);
                                i.onerror = function(t) {
                                    i.result.close(),
                                    n(t)
                                }
                                ,
                                i.onupgradeneeded = function() {
                                    i.result.deleteObjectStore(a.storeName)
                                }
                                ,
                                i.onsuccess = function() {
                                    var t = i.result;
                                    t.close(),
                                    e(t)
                                }
                            }
                            ).then(function(t) {
                                i.db = t;
                                for (var e = 0; e < o.length; e++) {
                                    var n = o[e];
                                    n._dbInfo.db = t,
                                    c(n._dbInfo)
                                }
                            }).catch(function(t) {
                                throw (u(a, t) || x.resolve()).catch(function() {}),
                                t
                            })
                        }
                    }) : e.then(function(t) {
                        s(a);
                        var n = B[a.name]
                          , i = n.forages;
                        t.close();
                        for (var e = 0; e < i.length; e++)
                            i[e]._dbInfo.db = null;
                        return new x(function(e, n) {
                            var i = T.deleteDatabase(a.name);
                            i.onerror = i.onblocked = function(t) {
                                var e = i.result;
                                e && e.close(),
                                n(t)
                            }
                            ,
                            i.onsuccess = function() {
                                var t = i.result;
                                t && t.close(),
                                e(t)
                            }
                        }
                        ).then(function(t) {
                            n.db = t;
                            for (var e = 0; e < i.length; e++)
                                c(i[e]._dbInfo)
                        }).catch(function(t) {
                            throw (u(a, t) || x.resolve()).catch(function() {}),
                            t
                        })
                    })) : x.reject("Invalid arguments"), t),
                    n
                }
            }
              , P = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
              , I = /^~~local_forage_type~([^~]+)~/
              , j = "__lfsc__:"
              , H = j.length
              , F = H + "arbf".length
              , U = Object.prototype.toString
              , Y = {
                serialize: function(e, n) {
                    var t = "";
                    if (e && (t = U.call(e)),
                    e && ("[object ArrayBuffer]" === t || e.buffer && "[object ArrayBuffer]" === U.call(e.buffer))) {
                        var i, r = j;
                        e instanceof ArrayBuffer ? (i = e,
                        r += "arbf") : (i = e.buffer,
                        "[object Int8Array]" === t ? r += "si08" : "[object Uint8Array]" === t ? r += "ui08" : "[object Uint8ClampedArray]" === t ? r += "uic8" : "[object Int16Array]" === t ? r += "si16" : "[object Uint16Array]" === t ? r += "ur16" : "[object Int32Array]" === t ? r += "si32" : "[object Uint32Array]" === t ? r += "ui32" : "[object Float32Array]" === t ? r += "fl32" : "[object Float64Array]" === t ? r += "fl64" : n(new Error("Failed to get type for BinaryArray"))),
                        n(r + z(i))
                    } else if ("[object Blob]" === t) {
                        var o = new FileReader;
                        o.onload = function() {
                            var t = "~~local_forage_type~" + e.type + "~" + z(this.result);
                            n(j + "blob" + t)
                        }
                        ,
                        o.readAsArrayBuffer(e)
                    } else
                        try {
                            n(JSON.stringify(e))
                        } catch (t) {
                            n(null, t)
                        }
                },
                deserialize: function(t) {
                    if (t.substring(0, H) !== j)
                        return JSON.parse(t);
                    var e, n, i = t.substring(F), r = t.substring(H, F);
                    "blob" === r && I.test(i) && (n = (e = i.match(I))[1],
                    i = i.substring(e[0].length));
                    var o = y(i);
                    switch (r) {
                    case "arbf":
                        return o;
                    case "blob":
                        return a([o], {
                            type: n
                        });
                    case "si08":
                        return new Int8Array(o);
                    case "ui08":
                        return new Uint8Array(o);
                    case "uic8":
                        return new Uint8ClampedArray(o);
                    case "si16":
                        return new Int16Array(o);
                    case "ur16":
                        return new Uint16Array(o);
                    case "si32":
                        return new Int32Array(o);
                    case "ui32":
                        return new Uint32Array(o);
                    case "fl32":
                        return new Float32Array(o);
                    case "fl64":
                        return new Float64Array(o);
                    default:
                        throw new Error("Unkown type: " + r)
                    }
                },
                stringToBuffer: y,
                bufferToString: z
            }
              , G = {
                _driver: "webSQLStorage",
                _initStorage: function(t) {
                    var i = this
                      , r = {
                        db: null
                    };
                    if (t)
                        for (var e in t)
                            r[e] = "string" != typeof t[e] ? t[e].toString() : t[e];
                    var n = new x(function(e, n) {
                        try {
                            r.db = openDatabase(r.name, String(r.version), r.description, r.size)
                        } catch (e) {
                            return n(e)
                        }
                        r.db.transaction(function(t) {
                            _(t, r, function() {
                                i._dbInfo = r,
                                e()
                            }, function(t, e) {
                                n(e)
                            })
                        }, n)
                    }
                    );
                    return r.serializer = Y,
                    n
                },
                _support: "function" == typeof openDatabase,
                iterate: function(u, t) {
                    var e = this
                      , n = new x(function(c, n) {
                        e.ready().then(function() {
                            var s = e._dbInfo;
                            s.db.transaction(function(t) {
                                O(t, s, "SELECT * FROM " + s.storeName, [], function(t, e) {
                                    for (var n = e.rows, i = n.length, r = 0; r < i; r++) {
                                        var o = n.item(r)
                                          , a = (a = o.value) && s.serializer.deserialize(a);
                                        if (void 0 !== (a = u(a, o.key, r + 1)))
                                            return void c(a)
                                    }
                                    c()
                                }, function(t, e) {
                                    n(e)
                                })
                            })
                        }).catch(n)
                    }
                    );
                    return l(n, t),
                    n
                },
                getItem: function(e, t) {
                    var o = this;
                    e = f(e);
                    var n = new x(function(r, n) {
                        o.ready().then(function() {
                            var i = o._dbInfo;
                            i.db.transaction(function(t) {
                                O(t, i, "SELECT * FROM " + i.storeName + " WHERE key = ? LIMIT 1", [e], function(t, e) {
                                    var n = (n = e.rows.length ? e.rows.item(0).value : null) && i.serializer.deserialize(n);
                                    r(n)
                                }, function(t, e) {
                                    n(e)
                                })
                            })
                        }).catch(n)
                    }
                    );
                    return l(n, t),
                    n
                },
                setItem: function(t, e, n) {
                    return w.apply(this, [t, e, n, 1])
                },
                removeItem: function(r, t) {
                    var o = this;
                    r = f(r);
                    var e = new x(function(n, i) {
                        o.ready().then(function() {
                            var e = o._dbInfo;
                            e.db.transaction(function(t) {
                                O(t, e, "DELETE FROM " + e.storeName + " WHERE key = ?", [r], function() {
                                    n()
                                }, function(t, e) {
                                    i(e)
                                })
                            })
                        }).catch(i)
                    }
                    );
                    return l(e, t),
                    e
                },
                clear: function(t) {
                    var r = this
                      , e = new x(function(n, i) {
                        r.ready().then(function() {
                            var e = r._dbInfo;
                            e.db.transaction(function(t) {
                                O(t, e, "DELETE FROM " + e.storeName, [], function() {
                                    n()
                                }, function(t, e) {
                                    i(e)
                                })
                            })
                        }).catch(i)
                    }
                    );
                    return l(e, t),
                    e
                },
                length: function(t) {
                    var r = this
                      , e = new x(function(i, n) {
                        r.ready().then(function() {
                            var e = r._dbInfo;
                            e.db.transaction(function(t) {
                                O(t, e, "SELECT COUNT(key) as c FROM " + e.storeName, [], function(t, e) {
                                    var n = e.rows.item(0).c;
                                    i(n)
                                }, function(t, e) {
                                    n(e)
                                })
                            })
                        }).catch(n)
                    }
                    );
                    return l(e, t),
                    e
                },
                key: function(r, t) {
                    var o = this
                      , e = new x(function(i, n) {
                        o.ready().then(function() {
                            var e = o._dbInfo;
                            e.db.transaction(function(t) {
                                O(t, e, "SELECT key FROM " + e.storeName + " WHERE id = ? LIMIT 1", [r + 1], function(t, e) {
                                    var n = e.rows.length ? e.rows.item(0).key : null;
                                    i(n)
                                }, function(t, e) {
                                    n(e)
                                })
                            })
                        }).catch(n)
                    }
                    );
                    return l(e, t),
                    e
                },
                keys: function(t) {
                    var i = this
                      , e = new x(function(r, n) {
                        i.ready().then(function() {
                            var e = i._dbInfo;
                            e.db.transaction(function(t) {
                                O(t, e, "SELECT key FROM " + e.storeName, [], function(t, e) {
                                    for (var n = [], i = 0; i < e.rows.length; i++)
                                        n.push(e.rows.item(i).key);
                                    r(n)
                                }, function(t, e) {
                                    n(e)
                                })
                            })
                        }).catch(n)
                    }
                    );
                    return l(e, t),
                    e
                },
                dropInstance: function(n, t) {
                    t = o.apply(this, arguments);
                    var i = this.config();
                    (n = "function" != typeof n && n || {}).name || (n.name = n.name || i.name,
                    n.storeName = n.storeName || i.storeName);
                    var r = this
                      , e = n.name ? new x(function(t) {
                        var o, e = n.name === i.name ? r._dbInfo.db : openDatabase(n.name, "", "", 0);
                        t(n.storeName ? {
                            db: e,
                            storeNames: [n.storeName]
                        } : (o = e,
                        new x(function(r, n) {
                            o.transaction(function(t) {
                                t.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'", [], function(t, e) {
                                    for (var n = [], i = 0; i < e.rows.length; i++)
                                        n.push(e.rows.item(i).name);
                                    r({
                                        db: o,
                                        storeNames: n
                                    })
                                }, function(t, e) {
                                    n(e)
                                })
                            }, function(t) {
                                n(t)
                            })
                        }
                        )))
                    }
                    ).then(function(a) {
                        return new x(function(r, o) {
                            a.db.transaction(function(i) {
                                for (var t = [], e = 0, n = a.storeNames.length; e < n; e++)
                                    t.push(function(e) {
                                        return new x(function(t, n) {
                                            i.executeSql("DROP TABLE IF EXISTS " + e, [], function() {
                                                t()
                                            }, function(t, e) {
                                                n(e)
                                            })
                                        }
                                        )
                                    }(a.storeNames[e]));
                                x.all(t).then(function() {
                                    r()
                                }).catch(function(t) {
                                    o(t)
                                })
                            }, function(t) {
                                o(t)
                            })
                        }
                        )
                    }) : x.reject("Invalid arguments");
                    return l(e, t),
                    e
                }
            }
              , V = {
                _driver: "localStorageWrapper",
                _initStorage: function(t) {
                    var e = {};
                    if (t)
                        for (var n in t)
                            e[n] = t[n];
                    return e.keyPrefix = L(t, this._defaultConfig),
                    N() ? ((this._dbInfo = e).serializer = Y,
                    x.resolve()) : x.reject()
                },
                _support: function() {
                    try {
                        return "undefined" != typeof localStorage && "setItem"in localStorage && !!localStorage.setItem
                    } catch (t) {
                        return !1
                    }
                }(),
                iterate: function(c, t) {
                    var u = this
                      , e = u.ready().then(function() {
                        for (var t = u._dbInfo, e = t.keyPrefix, n = e.length, i = localStorage.length, r = 1, o = 0; o < i; o++) {
                            var a = localStorage.key(o);
                            if (0 === a.indexOf(e)) {
                                var s = (s = localStorage.getItem(a)) && t.serializer.deserialize(s);
                                if (void 0 !== (s = c(s, a.substring(n), r++)))
                                    return s
                            }
                        }
                    });
                    return l(e, t),
                    e
                },
                getItem: function(n, t) {
                    var i = this;
                    n = f(n);
                    var e = i.ready().then(function() {
                        var t = i._dbInfo
                          , e = localStorage.getItem(t.keyPrefix + n);
                        return e = e && t.serializer.deserialize(e)
                    });
                    return l(e, t),
                    e
                },
                setItem: function(a, t, e) {
                    var s = this;
                    a = f(a);
                    var n = s.ready().then(function() {
                        void 0 === t && (t = null);
                        var o = t;
                        return new x(function(n, i) {
                            var r = s._dbInfo;
                            r.serializer.serialize(t, function(t, e) {
                                if (e)
                                    i(e);
                                else
                                    try {
                                        localStorage.setItem(r.keyPrefix + a, t),
                                        n(o)
                                    } catch (t) {
                                        "QuotaExceededError" !== t.name && "NS_ERROR_DOM_QUOTA_REACHED" !== t.name || i(t),
                                        i(t)
                                    }
                            })
                        }
                        )
                    });
                    return l(n, e),
                    n
                },
                removeItem: function(e, t) {
                    var n = this;
                    e = f(e);
                    var i = n.ready().then(function() {
                        var t = n._dbInfo;
                        localStorage.removeItem(t.keyPrefix + e)
                    });
                    return l(i, t),
                    i
                },
                clear: function(t) {
                    var i = this
                      , e = i.ready().then(function() {
                        for (var t = i._dbInfo.keyPrefix, e = localStorage.length - 1; 0 <= e; e--) {
                            var n = localStorage.key(e);
                            0 === n.indexOf(t) && localStorage.removeItem(n)
                        }
                    });
                    return l(e, t),
                    e
                },
                length: function(t) {
                    var e = this.keys().then(function(t) {
                        return t.length
                    });
                    return l(e, t),
                    e
                },
                key: function(n, t) {
                    var i = this
                      , e = i.ready().then(function() {
                        var e, t = i._dbInfo;
                        try {
                            e = localStorage.key(n)
                        } catch (t) {
                            e = null
                        }
                        return e = e && e.substring(t.keyPrefix.length)
                    });
                    return l(e, t),
                    e
                },
                keys: function(t) {
                    var o = this
                      , e = o.ready().then(function() {
                        for (var t = o._dbInfo, e = localStorage.length, n = [], i = 0; i < e; i++) {
                            var r = localStorage.key(i);
                            0 === r.indexOf(t.keyPrefix) && n.push(r.substring(t.keyPrefix.length))
                        }
                        return n
                    });
                    return l(e, t),
                    e
                },
                dropInstance: function(e, t) {
                    var n;
                    t = o.apply(this, arguments),
                    (e = "function" != typeof e && e || {}).name || (n = this.config(),
                    e.name = e.name || n.name,
                    e.storeName = e.storeName || n.storeName);
                    var i = this
                      , r = e.name ? new x(function(t) {
                        t(e.storeName ? L(e, i._defaultConfig) : e.name + "/")
                    }
                    ).then(function(t) {
                        for (var e = localStorage.length - 1; 0 <= e; e--) {
                            var n = localStorage.key(e);
                            0 === n.indexOf(t) && localStorage.removeItem(n)
                        }
                    }) : x.reject("Invalid arguments");
                    return l(r, t),
                    r
                }
            }
              , K = Array.isArray || function(t) {
                return "[object Array]" === Object.prototype.toString.call(t)
            }
              , Q = {}
              , $ = {}
              , J = {
                INDEXEDDB: R,
                WEBSQL: G,
                LOCALSTORAGE: V
            }
              , Z = [J.INDEXEDDB._driver, J.WEBSQL._driver, J.LOCALSTORAGE._driver]
              , tt = ["dropInstance"]
              , et = ["clear", "getItem", "iterate", "key", "keys", "length", "removeItem", "setItem"].concat(tt)
              , nt = {
                description: "",
                driver: Z.slice(),
                name: "localforage",
                size: 4980736,
                storeName: "keyvaluepairs",
                version: 1
            }
              , it = new (rt.prototype.config = function(t) {
                if ("object" !== (void 0 === t ? "undefined" : W(t)))
                    return "string" == typeof t ? this._config[t] : this._config;
                if (this._ready)
                    return new Error("Can't call config() after localforage has been used.");
                for (var e in t) {
                    if ("storeName" === e && (t[e] = t[e].replace(/\W/g, "_")),
                    "version" === e && "number" != typeof t[e])
                        return new Error("Database version must be a number.");
                    this._config[e] = t[e]
                }
                return !("driver"in t && t.driver) || this.setDriver(this._config.driver)
            }
            ,
            rt.prototype.defineDriver = function(u, t, e) {
                var n = new x(function(e, n) {
                    try {
                        var i = u._driver
                          , t = new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");
                        if (!u._driver)
                            return void n(t);
                        for (var r = et.concat("_initStorage"), o = 0, a = r.length; o < a; o++) {
                            var s = r[o];
                            if ((!C(tt, s) || u[s]) && "function" != typeof u[s])
                                return void n(t)
                        }
                        !function() {
                            for (var t = 0, e = tt.length; t < e; t++) {
                                var n = tt[t];
                                u[n] || (u[n] = function(n) {
                                    return function() {
                                        var t = new Error("Method " + n + " is not implemented by the current driver")
                                          , e = x.reject(t);
                                        return l(e, arguments[arguments.length - 1]),
                                        e
                                    }
                                }(n))
                            }
                        }();
                        var c = function(t) {
                            Q[i],
                            Q[i] = u,
                            $[i] = t,
                            e()
                        };
                        "_support"in u ? u._support && "function" == typeof u._support ? u._support().then(c, n) : c(!!u._support) : c(!0)
                    } catch (t) {
                        n(t)
                    }
                }
                );
                return h(n, t, e),
                n
            }
            ,
            rt.prototype.driver = function() {
                return this._driver || null
            }
            ,
            rt.prototype.getDriver = function(t, e, n) {
                var i = Q[t] ? x.resolve(Q[t]) : x.reject(new Error("Driver not found."));
                return h(i, e, n),
                i
            }
            ,
            rt.prototype.getSerializer = function(t) {
                var e = x.resolve(Y);
                return h(e, t),
                e
            }
            ,
            rt.prototype.ready = function(t) {
                var e = this
                  , n = e._driverSet.then(function() {
                    return null === e._ready && (e._ready = e._initDriver()),
                    e._ready
                });
                return h(n, t, t),
                n
            }
            ,
            rt.prototype.setDriver = function(t, e, n) {
                function o() {
                    s._config.driver = s.driver()
                }
                function a(t) {
                    return s._extend(t),
                    o(),
                    s._ready = s._initStorage(s._config),
                    s._ready
                }
                function i(r) {
                    return function() {
                        var i = 0;
                        return function t() {
                            for (; i < r.length; ) {
                                var e = r[i];
                                return i++,
                                s._dbInfo = null,
                                s._ready = null,
                                s.getDriver(e).then(a).catch(t)
                            }
                            o();
                            var n = new Error("No available storage method found.");
                            return s._driverSet = x.reject(n),
                            s._driverSet
                        }()
                    }
                }
                var s = this;
                K(t) || (t = [t]);
                var r = this._getSupportedDrivers(t)
                  , c = null !== this._driverSet ? this._driverSet.catch(function() {
                    return x.resolve()
                }) : x.resolve();
                return this._driverSet = c.then(function() {
                    var t = r[0];
                    return s._dbInfo = null,
                    s._ready = null,
                    s.getDriver(t).then(function(t) {
                        s._driver = t._driver,
                        o(),
                        s._wrapLibraryMethodsWithReady(),
                        s._initDriver = i(r)
                    })
                }).catch(function() {
                    o();
                    var t = new Error("No available storage method found.");
                    return s._driverSet = x.reject(t),
                    s._driverSet
                }),
                h(this._driverSet, e, n),
                this._driverSet
            }
            ,
            rt.prototype.supports = function(t) {
                return !!$[t]
            }
            ,
            rt.prototype._extend = function(t) {
                q(this, t)
            }
            ,
            rt.prototype._getSupportedDrivers = function(t) {
                for (var e = [], n = 0, i = t.length; n < i; n++) {
                    var r = t[n];
                    this.supports(r) && e.push(r)
                }
                return e
            }
            ,
            rt.prototype._wrapLibraryMethodsWithReady = function() {
                for (var t = 0, e = et.length; t < e; t++)
                    !function(e, n) {
                        e[n] = function() {
                            var t = arguments;
                            return e.ready().then(function() {
                                return e[n].apply(e, t)
                            })
                        }
                    }(this, et[t])
            }
            ,
            rt.prototype.createInstance = function(t) {
                return new rt(t)
            }
            ,
            rt);
            function rt(t) {
                for (var e in !function(t, e) {
                    if (!(t instanceof e))
                        throw new TypeError("Cannot call a class as a function")
                }(this, rt),
                J) {
                    var n, i;
                    J.hasOwnProperty(e) && (i = (n = J[e])._driver,
                    this[e] = i,
                    Q[i] || this.defineDriver(n))
                }
                this._defaultConfig = q({}, nt),
                this._config = q({}, this._defaultConfig, t),
                this._driverSet = null,
                this._initDriver = null,
                this._ready = !1,
                this._dbInfo = null,
                this._wrapLibraryMethodsWithReady(),
                this.setDriver(this._config.driver).catch(function() {})
            }
            e.exports = it
        }
        , {
            3: 3
        }]
    }, {}, [4])(4)
}),
function() {
    function ra(t, e) {
        return t.set(e[0], e[1]),
        t
    }
    function oa(t, e) {
        return t.add(e),
        t
    }
    function aa(t, e, n) {
        switch (n.length) {
        case 0:
            return t.call(e);
        case 1:
            return t.call(e, n[0]);
        case 2:
            return t.call(e, n[0], n[1]);
        case 3:
            return t.call(e, n[0], n[1], n[2])
        }
        return t.apply(e, n)
    }
    function sa(t, e, n, i) {
        for (var r = -1, o = null == t ? 0 : t.length; ++r < o; ) {
            var a = t[r];
            e(i, a, n(a), t)
        }
        return i
    }
    function ca(t, e) {
        for (var n = -1, i = null == t ? 0 : t.length; ++n < i && !1 !== e(t[n], n, t); )
            ;
        return t
    }
    function ua(t, e) {
        for (var n = null == t ? 0 : t.length; n-- && !1 !== e(t[n], n, t); )
            ;
        return t
    }
    function la(t, e) {
        for (var n = -1, i = null == t ? 0 : t.length; ++n < i; )
            if (!e(t[n], n, t))
                return !1;
        return !0
    }
    function ha(t, e) {
        for (var n = -1, i = null == t ? 0 : t.length, r = 0, o = []; ++n < i; ) {
            var a = t[n];
            e(a, n, t) && (o[r++] = a)
        }
        return o
    }
    function fa(t, e) {
        return !!(null == t ? 0 : t.length) && -1 < ya(t, e, 0)
    }
    function pa(t, e, n) {
        for (var i = -1, r = null == t ? 0 : t.length; ++i < r; )
            if (n(e, t[i]))
                return !0;
        return !1
    }
    function da(t, e) {
        for (var n = -1, i = null == t ? 0 : t.length, r = Array(i); ++n < i; )
            r[n] = e(t[n], n, t);
        return r
    }
    function Ma(t, e) {
        for (var n = -1, i = e.length, r = t.length; ++n < i; )
            t[r + n] = e[n];
        return t
    }
    function ba(t, e, n, i) {
        var r = -1
          , o = null == t ? 0 : t.length;
        for (i && o && (n = t[++r]); ++r < o; )
            n = e(n, t[r], r, t);
        return n
    }
    function ma(t, e, n, i) {
        var r = null == t ? 0 : t.length;
        for (i && r && (n = t[--r]); r--; )
            n = e(n, t[r], r, t);
        return n
    }
    function ga(t, e) {
        for (var n = -1, i = null == t ? 0 : t.length; ++n < i; )
            if (e(t[n], n, t))
                return !0;
        return !1
    }
    function va(t, i, e) {
        var r;
        return e(t, function(t, e, n) {
            if (i(t, e, n))
                return r = e,
                !1
        }),
        r
    }
    function Aa(t, e, n, i) {
        for (var r = t.length, o = n + (i ? 1 : -1); i ? o-- : ++o < r; )
            if (e(t[o], o, t))
                return o;
        return -1
    }
    function ya(t, e, n) {
        return e == e ? function(t, e, n) {
            for (var i = n - 1, r = t.length; ++i < r; )
                if (t[i] === e)
                    return i;
            return -1
        }(t, e, n) : Aa(t, _a, n)
    }
    function za(t, e, n, i) {
        for (var r = n - 1, o = t.length; ++r < o; )
            if (i(t[r], e))
                return r;
        return -1
    }
    function _a(t) {
        return t != t
    }
    function Oa(t, e) {
        var n = null == t ? 0 : t.length;
        return n ? Na(t, e) / n : Ga
    }
    function wa(e) {
        return function(t) {
            return null == t ? ja : t[e]
        }
    }
    function t(e) {
        return function(t) {
            return null == e ? ja : e[t]
        }
    }
    function La(t, i, r, o, e) {
        return e(t, function(t, e, n) {
            r = o ? (o = !1,
            t) : i(r, t, e, n)
        }),
        r
    }
    function Na(t, e) {
        for (var n, i = -1, r = t.length; ++i < r; ) {
            var o = e(t[i]);
            o !== ja && (n = n === ja ? o : n + o)
        }
        return n
    }
    function qa(t, e) {
        for (var n = -1, i = Array(t); ++n < t; )
            i[n] = e(n);
        return i
    }
    function Wa(e) {
        return function(t) {
            return e(t)
        }
    }
    function Ta(e, t) {
        return da(t, function(t) {
            return e[t]
        })
    }
    function Ca(t, e) {
        return t.has(e)
    }
    function xa(t, e) {
        for (var n = -1, i = t.length; ++n < i && -1 < ya(e, t[n], 0); )
            ;
        return n
    }
    function ka(t, e) {
        for (var n = t.length; n-- && -1 < ya(e, t[n], 0); )
            ;
        return n
    }
    function Sa(t) {
        return "\\" + C[t]
    }
    function Ba(t) {
        return T.test(t)
    }
    function Ea(t) {
        var n = -1
          , i = Array(t.size);
        return t.forEach(function(t, e) {
            i[++n] = [e, t]
        }),
        i
    }
    function Xa(e, n) {
        return function(t) {
            return e(n(t))
        }
    }
    function Da(t, e) {
        for (var n = -1, i = t.length, r = 0, o = []; ++n < i; ) {
            var a = t[n];
            a !== e && a !== Ua || (t[n] = Ua,
            o[r++] = n)
        }
        return o
    }
    function Ra(t) {
        var e = -1
          , n = Array(t.size);
        return t.forEach(function(t) {
            n[++e] = t
        }),
        n
    }
    function Pa(t) {
        return (Ba(t) ? function(t) {
            for (var e = W.lastIndex = 0; W.test(t); )
                ++e;
            return e
        }
        : D)(t)
    }
    function Ia(t) {
        return Ba(t) ? t.match(W) || [] : t.split("")
    }
    var ja, Ha = "Expected a function", Fa = "__lodash_hash_undefined__", Ua = "__lodash_placeholder__", Ya = 9007199254740991, Ga = NaN, Va = 4294967295, Ka = [["ary", 128], ["bind", 1], ["bindKey", 2], ["curry", 8], ["curryRight", 16], ["flip", 512], ["partial", 32], ["partialRight", 64], ["rearg", 256]], Qa = "[object Arguments]", $a = "[object Array]", Ja = "[object Boolean]", Za = "[object Date]", ts = "[object Error]", es = "[object Function]", ns = "[object GeneratorFunction]", is = "[object Map]", rs = "[object Number]", os = "[object Object]", as = "[object Promise]", ss = "[object RegExp]", cs = "[object Set]", us = "[object String]", ls = "[object Symbol]", hs = "[object WeakMap]", fs = "[object ArrayBuffer]", ps = "[object DataView]", ds = "[object Float32Array]", Ms = "[object Float64Array]", bs = "[object Int8Array]", ms = "[object Int16Array]", gs = "[object Int32Array]", vs = "[object Uint8Array]", As = "[object Uint8ClampedArray]", ys = "[object Uint16Array]", zs = "[object Uint32Array]", _s = /\b__p \+= '';/g, Os = /\b(__p \+=) '' \+/g, ws = /(__e\(.*?\)|\b__t\)) \+\n'';/g, Ls = /&(?:amp|lt|gt|quot|#39);/g, Ns = /[&<>"']/g, qs = RegExp(Ls.source), Ws = RegExp(Ns.source), Ts = /<%-([\s\S]+?)%>/g, Cs = /<%([\s\S]+?)%>/g, xs = /<%=([\s\S]+?)%>/g, ks = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, Ss = /^\w*$/, Bs = /^\./, Es = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, Xs = /[\\^$.*+?()[\]{}|]/g, Ds = RegExp(Xs.source), Rs = /^\s+|\s+$/g, Ps = /^\s+/, Is = /\s+$/, js = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, Hs = /\{\n\/\* \[wrapped with (.+)\] \*/, Fs = /,? & /, Us = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g, Ys = /\\(\\)?/g, Gs = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, Vs = /\w*$/, Ks = /^[-+]0x[0-9a-f]+$/i, Qs = /^0b[01]+$/i, $s = /^\[object .+?Constructor\]$/, Js = /^0o[0-7]+$/i, Zs = /^(?:0|[1-9]\d*)$/, tc = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, ec = /($^)/, nc = /['\n\r\u2028\u2029\\]/g, e = "\\ud800-\\udfff", n = "\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff", i = "\\u2700-\\u27bf", r = "a-z\\xdf-\\xf6\\xf8-\\xff", o = "A-Z\\xc0-\\xd6\\xd8-\\xde", a = "\\ufe0e\\ufe0f", s = "\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", c = "[" + e + "]", u = "[" + s + "]", l = "[" + n + "]", h = "\\d+", f = "[" + i + "]", p = "[" + r + "]", d = "[^" + e + s + h + i + r + o + "]", M = "\\ud83c[\\udffb-\\udfff]", b = "[^" + e + "]", m = "(?:\\ud83c[\\udde6-\\uddff]){2}", g = "[\\ud800-\\udbff][\\udc00-\\udfff]", v = "[" + o + "]", A = "(?:" + p + "|" + d + ")", y = "(?:" + v + "|" + d + ")", z = "(?:['’](?:d|ll|m|re|s|t|ve))?", _ = "(?:['’](?:D|LL|M|RE|S|T|VE))?", O = "(?:" + l + "|" + M + ")" + "?", w = "[" + a + "]?", L = w + O + ("(?:\\u200d(?:" + [b, m, g].join("|") + ")" + w + O + ")*"), N = "(?:" + [f, m, g].join("|") + ")" + L, q = "(?:" + [b + l + "?", l, m, g, c].join("|") + ")", ic = RegExp("['’]", "g"), rc = RegExp(l, "g"), W = RegExp(M + "(?=" + M + ")|" + q + L, "g"), oc = RegExp([v + "?" + p + "+" + z + "(?=" + [u, v, "$"].join("|") + ")", y + "+" + _ + "(?=" + [u, v + A, "$"].join("|") + ")", v + "?" + A + "+" + z, v + "+" + _, "\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)", "\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)", h, N].join("|"), "g"), T = RegExp("[\\u200d" + e + n + a + "]"), ac = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/, sc = ["Array", "Buffer", "DataView", "Date", "Error", "Float32Array", "Float64Array", "Function", "Int8Array", "Int16Array", "Int32Array", "Map", "Math", "Object", "Promise", "RegExp", "Set", "String", "Symbol", "TypeError", "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "WeakMap", "_", "clearTimeout", "isFinite", "parseInt", "setTimeout"], cc = -1, uc = {};
    uc[ds] = uc[Ms] = uc[bs] = uc[ms] = uc[gs] = uc[vs] = uc[As] = uc[ys] = uc[zs] = !0,
    uc[Qa] = uc[$a] = uc[fs] = uc[Ja] = uc[ps] = uc[Za] = uc[ts] = uc[es] = uc[is] = uc[rs] = uc[os] = uc[ss] = uc[cs] = uc[us] = uc[hs] = !1;
    var lc = {};
    lc[Qa] = lc[$a] = lc[fs] = lc[ps] = lc[Ja] = lc[Za] = lc[ds] = lc[Ms] = lc[bs] = lc[ms] = lc[gs] = lc[is] = lc[rs] = lc[os] = lc[ss] = lc[cs] = lc[us] = lc[ls] = lc[vs] = lc[As] = lc[ys] = lc[zs] = !0,
    lc[ts] = lc[es] = lc[hs] = !1;
    var C = {
        "\\": "\\",
        "'": "'",
        "\n": "n",
        "\r": "r",
        "\u2028": "u2028",
        "\u2029": "u2029"
    }
      , hc = parseFloat
      , fc = parseInt
      , x = "object" == typeof global && global && global.Object === Object && global
      , k = "object" == typeof self && self && self.Object === Object && self
      , pc = x || k || Function("return this")()
      , S = "object" == typeof exports && exports && !exports.nodeType && exports
      , B = S && "object" == typeof module && module && !module.nodeType && module
      , dc = B && B.exports === S
      , E = dc && x.process
      , X = function() {
        try {
            return E && E.binding && E.binding("util")
        } catch (t) {}
    }()
      , Mc = X && X.isArrayBuffer
      , bc = X && X.isDate
      , mc = X && X.isMap
      , gc = X && X.isRegExp
      , vc = X && X.isSet
      , Ac = X && X.isTypedArray
      , D = wa("length")
      , yc = t({
        "À": "A",
        "Á": "A",
        "Â": "A",
        "Ã": "A",
        "Ä": "A",
        "Å": "A",
        "à": "a",
        "á": "a",
        "â": "a",
        "ã": "a",
        "ä": "a",
        "å": "a",
        "Ç": "C",
        "ç": "c",
        "Ð": "D",
        "ð": "d",
        "È": "E",
        "É": "E",
        "Ê": "E",
        "Ë": "E",
        "è": "e",
        "é": "e",
        "ê": "e",
        "ë": "e",
        "Ì": "I",
        "Í": "I",
        "Î": "I",
        "Ï": "I",
        "ì": "i",
        "í": "i",
        "î": "i",
        "ï": "i",
        "Ñ": "N",
        "ñ": "n",
        "Ò": "O",
        "Ó": "O",
        "Ô": "O",
        "Õ": "O",
        "Ö": "O",
        "Ø": "O",
        "ò": "o",
        "ó": "o",
        "ô": "o",
        "õ": "o",
        "ö": "o",
        "ø": "o",
        "Ù": "U",
        "Ú": "U",
        "Û": "U",
        "Ü": "U",
        "ù": "u",
        "ú": "u",
        "û": "u",
        "ü": "u",
        "Ý": "Y",
        "ý": "y",
        "ÿ": "y",
        "Æ": "Ae",
        "æ": "ae",
        "Þ": "Th",
        "þ": "th",
        "ß": "ss",
        "Ā": "A",
        "Ă": "A",
        "Ą": "A",
        "ā": "a",
        "ă": "a",
        "ą": "a",
        "Ć": "C",
        "Ĉ": "C",
        "Ċ": "C",
        "Č": "C",
        "ć": "c",
        "ĉ": "c",
        "ċ": "c",
        "č": "c",
        "Ď": "D",
        "Đ": "D",
        "ď": "d",
        "đ": "d",
        "Ē": "E",
        "Ĕ": "E",
        "Ė": "E",
        "Ę": "E",
        "Ě": "E",
        "ē": "e",
        "ĕ": "e",
        "ė": "e",
        "ę": "e",
        "ě": "e",
        "Ĝ": "G",
        "Ğ": "G",
        "Ġ": "G",
        "Ģ": "G",
        "ĝ": "g",
        "ğ": "g",
        "ġ": "g",
        "ģ": "g",
        "Ĥ": "H",
        "Ħ": "H",
        "ĥ": "h",
        "ħ": "h",
        "Ĩ": "I",
        "Ī": "I",
        "Ĭ": "I",
        "Į": "I",
        "İ": "I",
        "ĩ": "i",
        "ī": "i",
        "ĭ": "i",
        "į": "i",
        "ı": "i",
        "Ĵ": "J",
        "ĵ": "j",
        "Ķ": "K",
        "ķ": "k",
        "ĸ": "k",
        "Ĺ": "L",
        "Ļ": "L",
        "Ľ": "L",
        "Ŀ": "L",
        "Ł": "L",
        "ĺ": "l",
        "ļ": "l",
        "ľ": "l",
        "ŀ": "l",
        "ł": "l",
        "Ń": "N",
        "Ņ": "N",
        "Ň": "N",
        "Ŋ": "N",
        "ń": "n",
        "ņ": "n",
        "ň": "n",
        "ŋ": "n",
        "Ō": "O",
        "Ŏ": "O",
        "Ő": "O",
        "ō": "o",
        "ŏ": "o",
        "ő": "o",
        "Ŕ": "R",
        "Ŗ": "R",
        "Ř": "R",
        "ŕ": "r",
        "ŗ": "r",
        "ř": "r",
        "Ś": "S",
        "Ŝ": "S",
        "Ş": "S",
        "Š": "S",
        "ś": "s",
        "ŝ": "s",
        "ş": "s",
        "š": "s",
        "Ţ": "T",
        "Ť": "T",
        "Ŧ": "T",
        "ţ": "t",
        "ť": "t",
        "ŧ": "t",
        "Ũ": "U",
        "Ū": "U",
        "Ŭ": "U",
        "Ů": "U",
        "Ű": "U",
        "Ų": "U",
        "ũ": "u",
        "ū": "u",
        "ŭ": "u",
        "ů": "u",
        "ű": "u",
        "ų": "u",
        "Ŵ": "W",
        "ŵ": "w",
        "Ŷ": "Y",
        "ŷ": "y",
        "Ÿ": "Y",
        "Ź": "Z",
        "Ż": "Z",
        "Ž": "Z",
        "ź": "z",
        "ż": "z",
        "ž": "z",
        "Ĳ": "IJ",
        "ĳ": "ij",
        "Œ": "Oe",
        "œ": "oe",
        "ŉ": "'n",
        "ſ": "s"
    })
      , zc = t({
        "&": "&amp;",
        "<": "&lt;",
        ">": "&gt;",
        '"': "&quot;",
        "'": "&#39;"
    })
      , _c = t({
        "&amp;": "&",
        "&lt;": "<",
        "&gt;": ">",
        "&quot;": '"',
        "&#39;": "'"
    })
      , Oc = function t(e) {
        function b(t) {
            if (hn(t) && !oo(t) && !(t instanceof g)) {
                if (t instanceof m)
                    return t;
                if (ei.call(t, "__wrapped__"))
                    return Ee(t)
            }
            return new m(t)
        }
        function o() {}
        function m(t, e) {
            this.__wrapped__ = t,
            this.__actions__ = [],
            this.__chain__ = !!e,
            this.__index__ = 0,
            this.__values__ = ja
        }
        function g(t) {
            this.__wrapped__ = t,
            this.__actions__ = [],
            this.__dir__ = 1,
            this.__filtered__ = !1,
            this.__iteratees__ = [],
            this.__takeCount__ = Va,
            this.__views__ = []
        }
        function n(t) {
            var e = -1
              , n = null == t ? 0 : t.length;
            for (this.clear(); ++e < n; ) {
                var i = t[e];
                this.set(i[0], i[1])
            }
        }
        function r(t) {
            var e = -1
              , n = null == t ? 0 : t.length;
            for (this.clear(); ++e < n; ) {
                var i = t[e];
                this.set(i[0], i[1])
            }
        }
        function s(t) {
            var e = -1
              , n = null == t ? 0 : t.length;
            for (this.clear(); ++e < n; ) {
                var i = t[e];
                this.set(i[0], i[1])
            }
        }
        function v(t) {
            var e = -1
              , n = null == t ? 0 : t.length;
            for (this.__data__ = new s; ++e < n; )
                this.add(t[e])
        }
        function O(t) {
            var e = this.__data__ = new r(t);
            this.size = e.size
        }
        function i(t, e) {
            var n = oo(t)
              , i = !n && ro(t)
              , r = !n && !i && so(t)
              , o = !n && !i && !r && fo(t)
              , a = n || i || r || o
              , s = a ? qa(t.length, Vn) : []
              , c = s.length;
            for (var u in t)
                !e && !ei.call(t, u) || a && ("length" == u || r && ("offset" == u || "parent" == u) || o && ("buffer" == u || "byteLength" == u || "byteOffset" == u) || ze(u, c)) || s.push(u);
            return s
        }
        function a(t) {
            var e = t.length;
            return e ? t[ot(0, e - 1)] : ja
        }
        function c(t, e) {
            return ke(Et(t), d(e, 0, t.length))
        }
        function u(t) {
            return ke(Et(t))
        }
        function M(t, e, n) {
            (n === ja || nn(t[e], n)) && (n !== ja || e in t) || f(t, e, n)
        }
        function w(t, e, n) {
            var i = t[e];
            ei.call(t, e) && nn(i, n) && (n !== ja || e in t) || f(t, e, n)
        }
        function l(t, e) {
            for (var n = t.length; n--; )
                if (nn(t[n][0], e))
                    return n;
            return -1
        }
        function h(t, i, r, o) {
            return tr(t, function(t, e, n) {
                i(o, t, r(t), n)
            }),
            o
        }
        function L(t, e) {
            return t && Xt(e, wn(e), t)
        }
        function f(t, e, n) {
            "__proto__" == e && vi ? vi(t, e, {
                configurable: !0,
                enumerable: !0,
                value: n,
                writable: !0
            }) : t[e] = n
        }
        function p(t, e) {
            for (var n = -1, i = e.length, r = In(i), o = null == t; ++n < i; )
                r[n] = o ? ja : _n(t, e[n]);
            return r
        }
        function d(t, e, n) {
            return t == t && (n !== ja && (t = t <= n ? t : n),
            e !== ja && (t = e <= t ? t : e)),
            t
        }
        function N(n, i, r, t, e, o) {
            var a, s = 1 & i, c = 2 & i, u = 4 & i;
            if (r && (a = e ? r(n, t, e, o) : r(n)),
            a !== ja)
                return a;
            if (!ln(n))
                return n;
            var l, h, f, p, d, M, b, m, g, v = oo(n);
            if (v) {
                if (m = (b = n).length,
                g = b.constructor(m),
                m && "string" == typeof b[0] && ei.call(b, "index") && (g.index = b.index,
                g.input = b.input),
                a = g,
                !s)
                    return Et(n, a)
            } else {
                var A = fr(n)
                  , y = A == es || A == ns;
                if (so(n))
                    return Tt(n, s);
                if (A == os || A == Qa || y && !e) {
                    if (a = c || y ? {} : Ae(n),
                    !s)
                        return c ? (M = f = n,
                        p = (d = a) && Xt(M, Ln(M), d),
                        Xt(f, hr(f), p)) : (h = L(a, l = n),
                        Xt(l, lr(l), h))
                } else {
                    if (!lc[A])
                        return e ? n : {};
                    a = function(t, e, n, i) {
                        var r = t.constructor;
                        switch (e) {
                        case fs:
                            return Ct(t);
                        case Ja:
                        case Za:
                            return new r(+t);
                        case ps:
                            return function(t, e) {
                                var n = e ? Ct(t.buffer) : t.buffer;
                                return new t.constructor(n,t.byteOffset,t.byteLength)
                            }(t, i);
                        case ds:
                        case Ms:
                        case bs:
                        case ms:
                        case gs:
                        case vs:
                        case As:
                        case ys:
                        case zs:
                            return xt(t, i);
                        case is:
                            return function(t, e, n) {
                                return ba(e ? n(Ea(t), 1) : Ea(t), ra, new t.constructor)
                            }(t, i, n);
                        case rs:
                        case us:
                            return new r(t);
                        case ss:
                            return function(t) {
                                var e = new t.constructor(t.source,Vs.exec(t));
                                return e.lastIndex = t.lastIndex,
                                e
                            }(t);
                        case cs:
                            return function(t, e, n) {
                                return ba(e ? n(Ra(t), 1) : Ra(t), oa, new t.constructor)
                            }(t, i, n);
                        case ls:
                            return function(t) {
                                return Qi ? Yn(Qi.call(t)) : {}
                            }(t)
                        }
                    }(n, A, N, s)
                }
            }
            var z = (o = o || new O).get(n);
            if (z)
                return z;
            o.set(n, a);
            var _ = v ? ja : (u ? c ? fe : he : c ? Ln : wn)(n);
            return ca(_ || n, function(t, e) {
                _ && (t = n[e = t]),
                w(a, e, N(t, i, r, e, n, o))
            }),
            a
        }
        function A(t, e, n) {
            var i = n.length;
            if (null == t)
                return !i;
            for (t = Yn(t); i--; ) {
                var r = n[i]
                  , o = e[r]
                  , a = t[r];
                if (a === ja && !(r in t) || !o(a))
                    return !1
            }
            return !0
        }
        function y(t, e, n) {
            if ("function" != typeof t)
                throw new Kn(Ha);
            return mr(function() {
                t.apply(ja, n)
            }, e)
        }
        function z(t, e, n, i) {
            var r = -1
              , o = fa
              , a = !0
              , s = t.length
              , c = []
              , u = e.length;
            if (!s)
                return c;
            n && (e = da(e, Wa(n))),
            i ? (o = pa,
            a = !1) : 200 <= e.length && (o = Ca,
            a = !1,
            e = new v(e));
            t: for (; ++r < s; ) {
                var l = t[r]
                  , h = null == n ? l : n(l)
                  , l = i || 0 !== l ? l : 0;
                if (a && h == h) {
                    for (var f = u; f--; )
                        if (e[f] === h)
                            continue t;
                    c.push(l)
                } else
                    o(e, h, i) || c.push(l)
            }
            return c
        }
        function _(t, i) {
            var r = !0;
            return tr(t, function(t, e, n) {
                return r = !!i(t, e, n)
            }),
            r
        }
        function q(t, e, n) {
            for (var i = -1, r = t.length; ++i < r; ) {
                var o, a, s = t[i], c = e(s);
                null != c && (o === ja ? c == c && !Mn(c) : n(c, o)) && (o = c,
                a = s)
            }
            return a
        }
        function W(t, i) {
            var r = [];
            return tr(t, function(t, e, n) {
                i(t, e, n) && r.push(t)
            }),
            r
        }
        function T(t, e, n, i, r) {
            var o = -1
              , a = t.length;
            for (n = n || ye,
            r = r || []; ++o < a; ) {
                var s = t[o];
                0 < e && n(s) ? 1 < e ? T(s, e - 1, n, i, r) : Ma(r, s) : i || (r[r.length] = s)
            }
            return r
        }
        function C(t, e) {
            return t && nr(t, e, wn)
        }
        function x(t, e) {
            return t && ir(t, e, wn)
        }
        function k(e, t) {
            return ha(t, function(t) {
                return sn(e[t])
            })
        }
        function S(t, e) {
            for (var n = 0, i = (e = qt(e, t)).length; null != t && n < i; )
                t = t[Se(e[n++])];
            return n && n == i ? t : ja
        }
        function B(t, e, n) {
            var i = e(t);
            return oo(t) ? i : Ma(i, n(t))
        }
        function E(t) {
            return null == t ? t === ja ? "[object Undefined]" : "[object Null]" : gi && gi in Yn(t) ? function(t) {
                var e = ei.call(t, gi)
                  , n = t[gi];
                try {
                    t[gi] = ja;
                    var i = !0
                } catch (t) {}
                var r = ri.call(t);
                return i && (e ? t[gi] = n : delete t[gi]),
                r
            }(t) : (e = t,
            ri.call(e));
            var e
        }
        function X(t, e) {
            return e < t
        }
        function D(t, e) {
            return null != t && ei.call(t, e)
        }
        function R(t, e) {
            return null != t && e in Yn(t)
        }
        function P(t, e, n) {
            for (var i = n ? pa : fa, r = t[0].length, o = t.length, a = o, s = In(o), c = 1 / 0, u = []; a--; ) {
                var l = t[a];
                a && e && (l = da(l, Wa(e))),
                c = Ci(l.length, c),
                s[a] = !n && (e || 120 <= r && 120 <= l.length) ? new v(a && l) : ja
            }
            l = t[0];
            var h = -1
              , f = s[0];
            t: for (; ++h < r && u.length < c; ) {
                var p = l[h]
                  , d = e ? e(p) : p
                  , p = n || 0 !== p ? p : 0;
                if (!(f ? Ca(f, d) : i(u, d, n))) {
                    for (a = o; --a; ) {
                        var M = s[a];
                        if (!(M ? Ca(M, d) : i(t[a], d, n)))
                            continue t
                    }
                    f && f.push(d),
                    u.push(p)
                }
            }
            return u
        }
        function I(t, e, n) {
            var i = null == (t = Te(t, e = qt(e, t))) ? t : t[Se(Ie(e))];
            return null == i ? ja : aa(i, t, n)
        }
        function j(t) {
            return hn(t) && E(t) == Qa
        }
        function H(t, e, n, i, r) {
            return t === e || (null == t || null == e || !hn(t) && !hn(e) ? t != t && e != e : function(t, e, n, i, r, o) {
                var a = oo(t)
                  , s = oo(e)
                  , c = a ? $a : fr(t)
                  , u = s ? $a : fr(e)
                  , l = (c = c == Qa ? os : c) == os
                  , h = (u = u == Qa ? os : u) == os
                  , f = c == u;
                if (f && so(t)) {
                    if (!so(e))
                        return !1;
                    l = !(a = !0)
                }
                if (f && !l)
                    return o = o || new O,
                    a || fo(t) ? ue(t, e, n, i, r, o) : function(t, e, n, i, r, o, a) {
                        switch (n) {
                        case ps:
                            if (t.byteLength != e.byteLength || t.byteOffset != e.byteOffset)
                                return !1;
                            t = t.buffer,
                            e = e.buffer;
                        case fs:
                            return !(t.byteLength != e.byteLength || !o(new li(t), new li(e)));
                        case Ja:
                        case Za:
                        case rs:
                            return nn(+t, +e);
                        case ts:
                            return t.name == e.name && t.message == e.message;
                        case ss:
                        case us:
                            return t == e + "";
                        case is:
                            var s = Ea;
                        case cs:
                            var c = 1 & i;
                            if (s = s || Ra,
                            t.size != e.size && !c)
                                return !1;
                            var u = a.get(t);
                            if (u)
                                return u == e;
                            i |= 2,
                            a.set(t, e);
                            var l = ue(s(t), s(e), i, r, o, a);
                            return a.delete(t),
                            l;
                        case ls:
                            if (Qi)
                                return Qi.call(t) == Qi.call(e)
                        }
                        return !1
                    }(t, e, c, n, i, r, o);
                if (!(1 & n)) {
                    var p = l && ei.call(t, "__wrapped__")
                      , d = h && ei.call(e, "__wrapped__");
                    if (p || d) {
                        var M = p ? t.value() : t
                          , b = d ? e.value() : e;
                        return o = o || new O,
                        r(M, b, n, i, o)
                    }
                }
                return !!f && (o = o || new O,
                function(t, e, n, i, r, o) {
                    var a = 1 & n
                      , s = he(t)
                      , c = s.length
                      , u = he(e).length;
                    if (c != u && !a)
                        return !1;
                    for (var l = c; l--; ) {
                        var h = s[l];
                        if (!(a ? h in e : ei.call(e, h)))
                            return !1
                    }
                    var f = o.get(t);
                    if (f && o.get(e))
                        return f == e;
                    var p = !0;
                    o.set(t, e),
                    o.set(e, t);
                    for (var d = a; ++l < c; ) {
                        h = s[l];
                        var M, b = t[h], m = e[h];
                        if (i && (M = a ? i(m, b, h, e, t, o) : i(b, m, h, t, e, o)),
                        !(M === ja ? b === m || r(b, m, n, i, o) : M)) {
                            p = !1;
                            break
                        }
                        d = d || "constructor" == h
                    }
                    {
                        var g, v;
                        p && !d && (g = t.constructor,
                        v = e.constructor,
                        g != v && "constructor"in t && "constructor"in e && !("function" == typeof g && g instanceof g && "function" == typeof v && v instanceof v) && (p = !1))
                    }
                    return o.delete(t),
                    o.delete(e),
                    p
                }(t, e, n, i, r, o))
            }(t, e, n, i, H, r))
        }
        function F(t, e, n, i) {
            var r = n.length
              , o = r
              , a = !i;
            if (null == t)
                return !o;
            for (t = Yn(t); r--; ) {
                var s = n[r];
                if (a && s[2] ? s[1] !== t[s[0]] : !(s[0]in t))
                    return !1
            }
            for (; ++r < o; ) {
                var c = (s = n[r])[0]
                  , u = t[c]
                  , l = s[1];
                if (a && s[2]) {
                    if (u === ja && !(c in t))
                        return !1
                } else {
                    var h, f = new O;
                    if (i && (h = i(u, l, c, t, e, f)),
                    !(h === ja ? H(l, u, 3, i, f) : h))
                        return !1
                }
            }
            return !0
        }
        function U(t) {
            return !(!ln(t) || (e = t,
            ii && ii in e)) && (sn(t) ? si : $s).test(Be(t));
            var e
        }
        function Y(t) {
            return "function" == typeof t ? t : null == t ? kn : "object" == typeof t ? oo(t) ? J(t[0], t[1]) : $(t) : Xn(t)
        }
        function G(t) {
            if (!Le(t))
                return Wi(t);
            var e = [];
            for (var n in Yn(t))
                ei.call(t, n) && "constructor" != n && e.push(n);
            return e
        }
        function V(t) {
            if (!ln(t))
                return function(t) {
                    var e = [];
                    if (null != t)
                        for (var n in Yn(t))
                            e.push(n);
                    return e
                }(t);
            var e = Le(t)
              , n = [];
            for (var i in t)
                ("constructor" != i || !e && ei.call(t, i)) && n.push(i);
            return n
        }
        function K(t, e) {
            return t < e
        }
        function Q(t, i) {
            var r = -1
              , o = rn(t) ? In(t.length) : [];
            return tr(t, function(t, e, n) {
                o[++r] = i(t, e, n)
            }),
            o
        }
        function $(e) {
            var n = me(e);
            return 1 == n.length && n[0][2] ? qe(n[0][0], n[0][1]) : function(t) {
                return t === e || F(t, e, n)
            }
        }
        function J(n, i) {
            return Oe(n) && Ne(i) ? qe(Se(n), i) : function(t) {
                var e = _n(t, n);
                return e === ja && e === i ? On(t, n) : H(i, e, 3)
            }
        }
        function Z(i, r, o, a, s) {
            i !== r && nr(r, function(t, e) {
                var n;
                ln(t) ? (s = s || new O,
                function(t, e, n, i, r, o, a) {
                    var s = t[n]
                      , c = e[n]
                      , u = a.get(c);
                    if (u)
                        return M(t, n, u);
                    var l = o ? o(s, c, n + "", t, e, a) : ja
                      , h = l === ja;
                    {
                        var f, p, d;
                        h && (f = oo(c),
                        p = !f && so(c),
                        d = !f && !p && fo(c),
                        l = c,
                        f || p || d ? l = oo(s) ? s : on(s) ? Et(s) : p ? Tt(c, !(h = !1)) : d ? xt(c, !(h = !1)) : [] : pn(c) || ro(c) ? ro(l = s) ? l = yn(s) : (!ln(s) || i && sn(s)) && (l = Ae(c)) : h = !1)
                    }
                    h && (a.set(c, l),
                    r(l, c, i, o, a),
                    a.delete(c)),
                    M(t, n, l)
                }(i, r, e, o, Z, a, s)) : ((n = a ? a(i[e], t, e + "", i, r, s) : ja) === ja && (n = t),
                M(i, e, n))
            }, Ln)
        }
        function tt(t, e) {
            var n = t.length;
            if (n)
                return ze(e += e < 0 ? n : 0, n) ? t[e] : ja
        }
        function et(t, i, n) {
            var r = -1;
            return i = da(i.length ? i : [kn], Wa(Me())),
            function(t, e) {
                var n = t.length;
                for (t.sort(e); n--; )
                    t[n] = t[n].value;
                return t
            }(Q(t, function(e, t, n) {
                return {
                    criteria: da(i, function(t) {
                        return t(e)
                    }),
                    index: ++r,
                    value: e
                }
            }), function(t, e) {
                return function(t, e, n) {
                    for (var i = -1, r = t.criteria, o = e.criteria, a = r.length, s = n.length; ++i < a; ) {
                        var c = kt(r[i], o[i]);
                        if (c) {
                            if (s <= i)
                                return c;
                            var u = n[i];
                            return c * ("desc" == u ? -1 : 1)
                        }
                    }
                    return t.index - e.index
                }(t, e, n)
            })
        }
        function nt(t, e, n) {
            for (var i = -1, r = e.length, o = {}; ++i < r; ) {
                var a = e[i]
                  , s = S(t, a);
                n(s, a) && lt(o, qt(a, t), s)
            }
            return o
        }
        function it(t, e, n, i) {
            var r = i ? za : ya
              , o = -1
              , a = e.length
              , s = t;
            for (t === e && (e = Et(e)),
            n && (s = da(t, Wa(n))); ++o < a; )
                for (var c = 0, u = e[o], l = n ? n(u) : u; -1 < (c = r(s, l, c, i)); )
                    s !== t && Mi.call(s, c, 1),
                    Mi.call(t, c, 1);
            return t
        }
        function rt(t, e) {
            for (var n = t ? e.length : 0, i = n - 1; n--; ) {
                var r, o = e[n];
                n != i && o === r || (ze(r = o) ? Mi.call(t, o, 1) : At(t, o))
            }
            return t
        }
        function ot(t, e) {
            return t + Oi(Si() * (e - t + 1))
        }
        function at(t, e) {
            var n = "";
            if (!t || e < 1 || Ya < e)
                return n;
            for (; e % 2 && (n += t),
            (e = Oi(e / 2)) && (t += t),
            e; )
                ;
            return n
        }
        function st(t, e) {
            return gr(We(t, e, kn), t + "")
        }
        function ct(t) {
            return a(qn(t))
        }
        function ut(t, e) {
            var n = qn(t);
            return ke(n, d(e, 0, n.length))
        }
        function lt(t, e, n, i) {
            if (!ln(t))
                return t;
            for (var r = -1, o = (e = qt(e, t)).length, a = o - 1, s = t; null != s && ++r < o; ) {
                var c, u = Se(e[r]), l = n;
                r != a && (c = s[u],
                (l = i ? i(c, u, s) : ja) === ja && (l = ln(c) ? c : ze(e[r + 1]) ? [] : {})),
                w(s, u, l),
                s = s[u]
            }
            return t
        }
        function ht(t) {
            return ke(qn(t))
        }
        function ft(t, e, n) {
            var i = -1
              , r = t.length;
            e < 0 && (e = r < -e ? 0 : r + e),
            (n = r < n ? r : n) < 0 && (n += r),
            r = n < e ? 0 : n - e >>> 0,
            e >>>= 0;
            for (var o = In(r); ++i < r; )
                o[i] = t[i + e];
            return o
        }
        function pt(t, i) {
            var r;
            return tr(t, function(t, e, n) {
                return !(r = i(t, e, n))
            }),
            !!r
        }
        function dt(t, e, n) {
            var i = 0
              , r = null == t ? i : t.length;
            if ("number" == typeof e && e == e && r <= 2147483647) {
                for (; i < r; ) {
                    var o = i + r >>> 1
                      , a = t[o];
                    null !== a && !Mn(a) && (n ? a <= e : a < e) ? i = 1 + o : r = o
                }
                return r
            }
            return Mt(t, e, kn, n)
        }
        function Mt(t, e, n, i) {
            e = n(e);
            for (var r = 0, o = null == t ? 0 : t.length, a = e != e, s = null === e, c = Mn(e), u = e === ja; r < o; ) {
                var l = Oi((r + o) / 2)
                  , h = n(t[l])
                  , f = h !== ja
                  , p = null === h
                  , d = h == h
                  , M = Mn(h)
                  , b = a ? i || d : u ? d && (i || f) : s ? d && f && (i || !p) : c ? d && f && !p && (i || !M) : !p && !M && (i ? h <= e : h < e);
                b ? r = l + 1 : o = l
            }
            return Ci(o, 4294967294)
        }
        function bt(t, e) {
            for (var n = -1, i = t.length, r = 0, o = []; ++n < i; ) {
                var a, s = t[n], c = e ? e(s) : s;
                n && nn(c, a) || (a = c,
                o[r++] = 0 === s ? 0 : s)
            }
            return o
        }
        function mt(t) {
            return "number" == typeof t ? t : Mn(t) ? Ga : +t
        }
        function gt(t) {
            if ("string" == typeof t)
                return t;
            if (oo(t))
                return da(t, gt) + "";
            if (Mn(t))
                return $i ? $i.call(t) : "";
            var e = t + "";
            return "0" == e && 1 / t == -1 / 0 ? "-0" : e
        }
        function vt(t, e, n) {
            var i = -1
              , r = fa
              , o = t.length
              , a = !0
              , s = []
              , c = s;
            if (n)
                a = !1,
                r = pa;
            else if (200 <= o) {
                var u = e ? null : cr(t);
                if (u)
                    return Ra(u);
                a = !1,
                r = Ca,
                c = new v
            } else
                c = e ? [] : s;
            t: for (; ++i < o; ) {
                var l = t[i]
                  , h = e ? e(l) : l
                  , l = n || 0 !== l ? l : 0;
                if (a && h == h) {
                    for (var f = c.length; f--; )
                        if (c[f] === h)
                            continue t;
                    e && c.push(h),
                    s.push(l)
                } else
                    r(c, h, n) || (c !== s && c.push(h),
                    s.push(l))
            }
            return s
        }
        function At(t, e) {
            return null == (t = Te(t, e = qt(e, t))) || delete t[Se(Ie(e))]
        }
        function yt(t, e, n, i) {
            return lt(t, e, n(S(t, e)), i)
        }
        function zt(t, e, n, i) {
            for (var r = t.length, o = i ? r : -1; (i ? o-- : ++o < r) && e(t[o], o, t); )
                ;
            return n ? ft(t, i ? 0 : o, i ? o + 1 : r) : ft(t, i ? o + 1 : 0, i ? r : o)
        }
        function _t(t, e) {
            var n = t;
            return n instanceof g && (n = n.value()),
            ba(e, function(t, e) {
                return e.func.apply(e.thisArg, Ma([t], e.args))
            }, n)
        }
        function Ot(t, e, n) {
            var i = t.length;
            if (i < 2)
                return i ? vt(t[0]) : [];
            for (var r = -1, o = In(i); ++r < i; )
                for (var a = t[r], s = -1; ++s < i; )
                    s != r && (o[r] = z(o[r] || a, t[s], e, n));
            return vt(T(o, 1), e, n)
        }
        function wt(t, e, n) {
            for (var i = -1, r = t.length, o = e.length, a = {}; ++i < r; ) {
                var s = i < o ? e[i] : ja;
                n(a, t[i], s)
            }
            return a
        }
        function Lt(t) {
            return on(t) ? t : []
        }
        function Nt(t) {
            return "function" == typeof t ? t : kn
        }
        function qt(t, e) {
            return oo(t) ? t : Oe(t, e) ? [t] : vr(zn(t))
        }
        function Wt(t, e, n) {
            var i = t.length;
            return n = n === ja ? i : n,
            !e && i <= n ? t : ft(t, e, n)
        }
        function Tt(t, e) {
            if (e)
                return t.slice();
            var n = t.length
              , i = hi ? hi(n) : new t.constructor(n);
            return t.copy(i),
            i
        }
        function Ct(t) {
            var e = new t.constructor(t.byteLength);
            return new li(e).set(new li(t)),
            e
        }
        function xt(t, e) {
            var n = e ? Ct(t.buffer) : t.buffer;
            return new t.constructor(n,t.byteOffset,t.length)
        }
        function kt(t, e) {
            if (t !== e) {
                var n = t !== ja
                  , i = null === t
                  , r = t == t
                  , o = Mn(t)
                  , a = e !== ja
                  , s = null === e
                  , c = e == e
                  , u = Mn(e);
                if (!s && !u && !o && e < t || o && a && c && !s && !u || i && a && c || !n && c || !r)
                    return 1;
                if (!i && !o && !u && t < e || u && n && r && !i && !o || s && n && r || !a && r || !c)
                    return -1
            }
            return 0
        }
        function St(t, e, n, i) {
            for (var r = -1, o = t.length, a = n.length, s = -1, c = e.length, u = Ti(o - a, 0), l = In(c + u), h = !i; ++s < c; )
                l[s] = e[s];
            for (; ++r < a; )
                (h || r < o) && (l[n[r]] = t[r]);
            for (; u--; )
                l[s++] = t[r++];
            return l
        }
        function Bt(t, e, n, i) {
            for (var r = -1, o = t.length, a = -1, s = n.length, c = -1, u = e.length, l = Ti(o - s, 0), h = In(l + u), f = !i; ++r < l; )
                h[r] = t[r];
            for (var p = r; ++c < u; )
                h[p + c] = e[c];
            for (; ++a < s; )
                (f || r < o) && (h[p + n[a]] = t[r++]);
            return h
        }
        function Et(t, e) {
            var n = -1
              , i = t.length;
            for (e = e || In(i); ++n < i; )
                e[n] = t[n];
            return e
        }
        function Xt(t, e, n, i) {
            var r = !n;
            n = n || {};
            for (var o = -1, a = e.length; ++o < a; ) {
                var s = e[o]
                  , c = i ? i(n[s], t[s], s, n, t) : ja;
                c === ja && (c = t[s]),
                (r ? f : w)(n, s, c)
            }
            return n
        }
        function Dt(r, o) {
            return function(t, e) {
                var n = oo(t) ? sa : h
                  , i = o ? o() : {};
                return n(t, r, Me(e, 2), i)
            }
        }
        function Rt(s) {
            return st(function(t, e) {
                var n = -1
                  , i = e.length
                  , r = 1 < i ? e[i - 1] : ja
                  , o = 2 < i ? e[2] : ja
                  , r = 3 < s.length && "function" == typeof r ? (i--,
                r) : ja;
                for (o && _e(e[0], e[1], o) && (r = i < 3 ? ja : r,
                i = 1),
                t = Yn(t); ++n < i; ) {
                    var a = e[n];
                    a && s(t, a, n, r)
                }
                return t
            })
        }
        function Pt(o, a) {
            return function(t, e) {
                if (null == t)
                    return t;
                if (!rn(t))
                    return o(t, e);
                for (var n = t.length, i = a ? n : -1, r = Yn(t); (a ? i-- : ++i < n) && !1 !== e(r[i], i, r); )
                    ;
                return t
            }
        }
        function It(c) {
            return function(t, e, n) {
                for (var i = -1, r = Yn(t), o = n(t), a = o.length; a--; ) {
                    var s = o[c ? a : ++i];
                    if (!1 === e(r[s], s, r))
                        break
                }
                return t
            }
        }
        function jt(r) {
            return function(t) {
                var e = Ba(t = zn(t)) ? Ia(t) : ja
                  , n = e ? e[0] : t.charAt(0)
                  , i = e ? Wt(e, 1).join("") : t.slice(1);
                return n[r]() + i
            }
        }
        function Ht(e) {
            return function(t) {
                return ba(Cn(Tn(t).replace(ic, "")), e, "")
            }
        }
        function Ft(i) {
            return function() {
                var t = arguments;
                switch (t.length) {
                case 0:
                    return new i;
                case 1:
                    return new i(t[0]);
                case 2:
                    return new i(t[0],t[1]);
                case 3:
                    return new i(t[0],t[1],t[2]);
                case 4:
                    return new i(t[0],t[1],t[2],t[3]);
                case 5:
                    return new i(t[0],t[1],t[2],t[3],t[4]);
                case 6:
                    return new i(t[0],t[1],t[2],t[3],t[4],t[5]);
                case 7:
                    return new i(t[0],t[1],t[2],t[3],t[4],t[5],t[6])
                }
                var e = Ji(i.prototype)
                  , n = i.apply(e, t);
                return ln(n) ? n : e
            }
        }
        function Ut(a, s, c) {
            var u = Ft(a);
            return function t() {
                for (var e = arguments.length, n = In(e), i = e, r = de(t); i--; )
                    n[i] = arguments[i];
                var o = e < 3 && n[0] !== r && n[e - 1] !== r ? [] : Da(n, r);
                return (e -= o.length) < c ? ne(a, s, Vt, t.placeholder, ja, n, o, ja, ja, c - e) : aa(this && this !== pc && this instanceof t ? u : a, this, n)
            }
        }
        function Yt(a) {
            return function(t, e, n) {
                var i, r = Yn(t);
                rn(t) || (i = Me(e, 3),
                t = wn(t),
                e = function(t) {
                    return i(r[t], t, r)
                }
                );
                var o = a(t, e, n);
                return -1 < o ? r[i ? t[o] : o] : ja
            }
        }
        function Gt(c) {
            return le(function(r) {
                var o = r.length
                  , t = o
                  , e = m.prototype.thru;
                for (c && r.reverse(); t--; ) {
                    var n = r[t];
                    if ("function" != typeof n)
                        throw new Kn(Ha);
                    e && !s && "wrapper" == pe(n) && (s = new m([],!0))
                }
                for (t = s ? t : o; ++t < o; )
                    var i = pe(n = r[t])
                      , a = "wrapper" == i ? ur(n) : ja
                      , s = a && we(a[0]) && 424 == a[1] && !a[4].length && 1 == a[9] ? s[pe(a[0])].apply(s, a[3]) : 1 == n.length && we(n) ? s[i]() : s.thru(n);
                return function() {
                    var t = arguments
                      , e = t[0];
                    if (s && 1 == t.length && oo(e))
                        return s.plant(e).value();
                    for (var n = 0, i = o ? r[n].apply(this, t) : e; ++n < o; )
                        i = r[n].call(this, i);
                    return i
                }
            })
        }
        function Vt(u, l, h, f, p, d, M, b, m, g) {
            var v = 128 & l
              , A = 1 & l
              , y = 2 & l
              , z = 24 & l
              , _ = 512 & l
              , O = y ? ja : Ft(u);
            return function t() {
                for (var e, n, i = In(c = arguments.length), r = c; r--; )
                    i[r] = arguments[r];
                if (z && (n = function(t, e) {
                    for (var n = t.length, i = 0; n--; )
                        t[n] === e && ++i;
                    return i
                }(i, e = de(t))),
                f && (i = St(i, f, p, z)),
                d && (i = Bt(i, d, M, z)),
                c -= n,
                z && c < g) {
                    var o = Da(i, e);
                    return ne(u, l, Vt, t.placeholder, h, i, o, b, m, g - c)
                }
                var a = A ? h : this
                  , s = y ? a[u] : u
                  , c = i.length;
                return b ? i = function(t, e) {
                    for (var n = t.length, i = Ci(e.length, n), r = Et(t); i--; ) {
                        var o = e[i];
                        t[i] = ze(o, n) ? r[o] : ja
                    }
                    return t
                }(i, b) : _ && 1 < c && i.reverse(),
                v && m < c && (i.length = m),
                this && this !== pc && this instanceof t && (s = O || Ft(s)),
                s.apply(a, i)
            }
        }
        function Kt(a, s) {
            return function(t, e) {
                return n = t,
                i = a,
                r = s(e),
                o = {},
                C(n, function(t, e, n) {
                    i(o, r(t), e, n)
                }),
                o;
                var n, i, r, o
            }
        }
        function Qt(i, r) {
            return function(t, e) {
                var n;
                if (t === ja && e === ja)
                    return r;
                if (t !== ja && (n = t),
                e !== ja) {
                    if (n === ja)
                        return e;
                    e = "string" == typeof t || "string" == typeof e ? (t = gt(t),
                    gt(e)) : (t = mt(t),
                    mt(e)),
                    n = i(t, e)
                }
                return n
            }
        }
        function $t(i) {
            return le(function(t) {
                return t = da(t, Wa(Me())),
                st(function(e) {
                    var n = this;
                    return i(t, function(t) {
                        return aa(t, n, e)
                    })
                })
            })
        }
        function Jt(t, e) {
            var n = (e = e === ja ? " " : gt(e)).length;
            if (n < 2)
                return n ? at(e, t) : e;
            var i = at(e, _i(t / Pa(e)));
            return Ba(e) ? Wt(Ia(i), 0, t).join("") : i.slice(0, t)
        }
        function Zt(s, t, c, u) {
            var l = 1 & t
              , h = Ft(s);
            return function t() {
                for (var e = -1, n = arguments.length, i = -1, r = u.length, o = In(r + n), a = this && this !== pc && this instanceof t ? h : s; ++i < r; )
                    o[i] = u[i];
                for (; n--; )
                    o[i++] = arguments[++e];
                return aa(a, l ? c : this, o)
            }
        }
        function te(i) {
            return function(t, e, n) {
                return n && "number" != typeof n && _e(t, e, n) && (e = n = ja),
                t = mn(t),
                e === ja ? (e = t,
                t = 0) : e = mn(e),
                function(t, e, n, i) {
                    for (var r = -1, o = Ti(_i((e - t) / (n || 1)), 0), a = In(o); o--; )
                        a[i ? o : ++r] = t,
                        t += n;
                    return a
                }(t, e, n = n === ja ? t < e ? 1 : -1 : mn(n), i)
            }
        }
        function ee(n) {
            return function(t, e) {
                return "string" == typeof t && "string" == typeof e || (t = An(t),
                e = An(e)),
                n(t, e)
            }
        }
        function ne(t, e, n, i, r, o, a, s, c, u) {
            var l = 8 & e;
            e |= l ? 32 : 64,
            4 & (e &= ~(l ? 64 : 32)) || (e &= -4);
            var h = [t, e, r, l ? o : ja, l ? a : ja, l ? ja : o, l ? ja : a, s, c, u]
              , f = n.apply(ja, h);
            return we(t) && br(f, h),
            f.placeholder = i,
            Ce(f, t, e)
        }
        function ie(t) {
            var i = Un[t];
            return function(t, e) {
                if (t = An(t),
                e = null == e ? 0 : Ci(gn(e), 292)) {
                    var n = (zn(t) + "e").split("e");
                    return +((n = (zn(i(n[0] + "e" + (+n[1] + e))) + "e").split("e"))[0] + "e" + (n[1] - e))
                }
                return i(t)
            }
        }
        function re(a) {
            return function(t) {
                var e, n, i, r, o = fr(t);
                return o == is ? Ea(t) : o == cs ? (n = t,
                i = -1,
                r = Array(n.size),
                n.forEach(function(t) {
                    r[++i] = [t, t]
                }),
                r) : da(a(e = t), function(t) {
                    return [t, e[t]]
                })
            }
        }
        function oe(t, e, n, i, r, o, a, s) {
            var c = 2 & e;
            if (!c && "function" != typeof t)
                throw new Kn(Ha);
            var u, l, h = i ? i.length : 0;
            h || (e &= -97,
            i = r = ja),
            a = a === ja ? a : Ti(gn(a), 0),
            s = s === ja ? s : gn(s),
            h -= r ? r.length : 0,
            64 & e && (u = i,
            l = r,
            i = r = ja);
            var f, p, d, M, b, m = c ? ja : ur(t), g = [t, e, n, i, r, u, l, o, a, s];
            return m && function(t, e) {
                var n = t[1]
                  , i = e[1]
                  , r = n | i
                  , o = r < 131
                  , a = 128 == i && 8 == n || 128 == i && 256 == n && t[7].length <= e[8] || 384 == i && e[7].length <= e[8] && 8 == n;
                if (!o && !a)
                    return;
                1 & i && (t[2] = e[2],
                r |= 1 & n ? 0 : 4);
                var s = e[3];
                {
                    var c;
                    s && (c = t[3],
                    t[3] = c ? St(c, s, e[4]) : s,
                    t[4] = c ? Da(t[3], Ua) : e[4])
                }
                (s = e[5]) && (c = t[5],
                t[5] = c ? Bt(c, s, e[6]) : s,
                t[6] = c ? Da(t[5], Ua) : e[6]),
                (s = e[7]) && (t[7] = s),
                128 & i && (t[8] = null == t[8] ? e[8] : Ci(t[8], e[8])),
                null == t[9] && (t[9] = e[9]),
                t[0] = e[0],
                t[1] = r
            }(g, m),
            t = g[0],
            e = g[1],
            n = g[2],
            i = g[3],
            r = g[4],
            !(s = g[9] = g[9] === ja ? c ? 0 : t.length : Ti(g[9] - h, 0)) && 24 & e && (e &= -25),
            f = e && 1 != e ? 8 == e || 16 == e ? Ut(t, e, s) : 32 != e && 33 != e || r.length ? Vt.apply(ja, g) : Zt(t, e, n, i) : (d = n,
            M = 1 & e,
            b = Ft(p = t),
            function t() {
                return (this && this !== pc && this instanceof t ? b : p).apply(M ? d : this, arguments)
            }
            ),
            Ce((m ? rr : br)(f, g), t, e)
        }
        function ae(t, e, n, i) {
            return t === ja || nn(t, Jn[n]) && !ei.call(i, n) ? e : t
        }
        function se(t, e, n, i, r, o) {
            return ln(t) && ln(e) && (o.set(e, t),
            Z(t, e, ja, se, o),
            o.delete(e)),
            t
        }
        function ce(t) {
            return pn(t) ? ja : t
        }
        function ue(t, e, n, i, r, o) {
            var a = 1 & n
              , s = t.length
              , c = e.length;
            if (s != c && !(a && s < c))
                return !1;
            var u = o.get(t);
            if (u && o.get(e))
                return u == e;
            var l = -1
              , h = !0
              , f = 2 & n ? new v : ja;
            for (o.set(t, e),
            o.set(e, t); ++l < s; ) {
                var p, d = t[l], M = e[l];
                if (i && (p = a ? i(M, d, l, e, t, o) : i(d, M, l, t, e, o)),
                p !== ja) {
                    if (p)
                        continue;
                    h = !1;
                    break
                }
                if (f) {
                    if (!ga(e, function(t, e) {
                        return !Ca(f, e) && (d === t || r(d, t, n, i, o)) && f.push(e)
                    })) {
                        h = !1;
                        break
                    }
                } else if (d !== M && !r(d, M, n, i, o)) {
                    h = !1;
                    break
                }
            }
            return o.delete(t),
            o.delete(e),
            h
        }
        function le(t) {
            return gr(We(t, ja, Re), t + "")
        }
        function he(t) {
            return B(t, wn, lr)
        }
        function fe(t) {
            return B(t, Ln, hr)
        }
        function pe(t) {
            for (var e = t.name + "", n = Hi[e], i = ei.call(Hi, e) ? n.length : 0; i--; ) {
                var r = n[i]
                  , o = r.func;
                if (null == o || o == t)
                    return r.name
            }
            return e
        }
        function de(t) {
            return (ei.call(b, "placeholder") ? b : t).placeholder
        }
        function Me() {
            var t = (t = b.iteratee || Sn) === Sn ? Y : t;
            return arguments.length ? t(arguments[0], arguments[1]) : t
        }
        function be(t, e) {
            var n, i, r = t.__data__;
            return ("string" == (i = typeof (n = e)) || "number" == i || "symbol" == i || "boolean" == i ? "__proto__" !== n : null === n) ? r["string" == typeof e ? "string" : "hash"] : r.map
        }
        function me(t) {
            for (var e = wn(t), n = e.length; n--; ) {
                var i = e[n]
                  , r = t[i];
                e[n] = [i, r, Ne(r)]
            }
            return e
        }
        function ge(t, e) {
            var n, i, r = (i = e,
            null == (n = t) ? ja : n[i]);
            return U(r) ? r : ja
        }
        function ve(t, e, n) {
            for (var i = -1, r = (e = qt(e, t)).length, o = !1; ++i < r; ) {
                var a = Se(e[i]);
                if (!(o = null != t && n(t, a)))
                    break;
                t = t[a]
            }
            return o || ++i != r ? o : !!(r = null == t ? 0 : t.length) && un(r) && ze(a, r) && (oo(t) || ro(t))
        }
        function Ae(t) {
            return "function" != typeof t.constructor || Le(t) ? {} : Ji(fi(t))
        }
        function ye(t) {
            return oo(t) || ro(t) || !!(bi && t && t[bi])
        }
        function ze(t, e) {
            return !!(e = null == e ? Ya : e) && ("number" == typeof t || Zs.test(t)) && -1 < t && t % 1 == 0 && t < e
        }
        function _e(t, e, n) {
            if (ln(n)) {
                var i = typeof e;
                return ("number" == i ? rn(n) && ze(e, n.length) : "string" == i && e in n) && nn(n[e], t)
            }
        }
        function Oe(t, e) {
            if (!oo(t)) {
                var n = typeof t;
                return "number" == n || "symbol" == n || "boolean" == n || null == t || Mn(t) || Ss.test(t) || !ks.test(t) || null != e && t in Yn(e)
            }
        }
        function we(t) {
            var e = pe(t)
              , n = b[e];
            if ("function" == typeof n && e in g.prototype) {
                if (t === n)
                    return 1;
                var i = ur(n);
                return i && t === i[0]
            }
        }
        function Le(t) {
            var e = t && t.constructor;
            return t === ("function" == typeof e && e.prototype || Jn)
        }
        function Ne(t) {
            return t == t && !ln(t)
        }
        function qe(e, n) {
            return function(t) {
                return null != t && t[e] === n && (n !== ja || e in Yn(t))
            }
        }
        function We(o, a, s) {
            return a = Ti(a === ja ? o.length - 1 : a, 0),
            function() {
                for (var t = arguments, e = -1, n = Ti(t.length - a, 0), i = In(n); ++e < n; )
                    i[e] = t[a + e];
                e = -1;
                for (var r = In(a + 1); ++e < a; )
                    r[e] = t[e];
                return r[a] = s(i),
                aa(o, this, r)
            }
        }
        function Te(t, e) {
            return e.length < 2 ? t : S(t, ft(e, 0, -1))
        }
        function Ce(t, e, n) {
            var i, r, o, a = e + "";
            return gr(t, function(t, e) {
                var n = e.length;
                if (!n)
                    return t;
                var i = n - 1;
                return e[i] = (1 < n ? "& " : "") + e[i],
                e = e.join(2 < n ? ", " : " "),
                t.replace(js, "{\n/* [wrapped with " + e + "] */\n")
            }(a, (o = a.match(Hs),
            i = o ? o[1].split(Fs) : [],
            r = n,
            ca(Ka, function(t) {
                var e = "_." + t[0];
                r & t[1] && !fa(i, e) && i.push(e)
            }),
            i.sort())))
        }
        function xe(n) {
            var i = 0
              , r = 0;
            return function() {
                var t = xi()
                  , e = 16 - (t - r);
                if (r = t,
                0 < e) {
                    if (800 <= ++i)
                        return arguments[0]
                } else
                    i = 0;
                return n.apply(ja, arguments)
            }
        }
        function ke(t, e) {
            var n = -1
              , i = t.length
              , r = i - 1;
            for (e = e === ja ? i : e; ++n < e; ) {
                var o = ot(n, r)
                  , a = t[o];
                t[o] = t[n],
                t[n] = a
            }
            return t.length = e,
            t
        }
        function Se(t) {
            if ("string" == typeof t || Mn(t))
                return t;
            var e = t + "";
            return "0" == e && 1 / t == -1 / 0 ? "-0" : e
        }
        function Be(t) {
            if (null != t) {
                try {
                    return ti.call(t)
                } catch (t) {}
                try {
                    return t + ""
                } catch (t) {}
            }
            return ""
        }
        function Ee(t) {
            if (t instanceof g)
                return t.clone();
            var e = new m(t.__wrapped__,t.__chain__);
            return e.__actions__ = Et(t.__actions__),
            e.__index__ = t.__index__,
            e.__values__ = t.__values__,
            e
        }
        function Xe(t, e, n) {
            var i = null == t ? 0 : t.length;
            if (!i)
                return -1;
            var r = null == n ? 0 : gn(n);
            return r < 0 && (r = Ti(i + r, 0)),
            Aa(t, Me(e, 3), r)
        }
        function De(t, e, n) {
            var i = null == t ? 0 : t.length;
            if (!i)
                return -1;
            var r = i - 1;
            return n !== ja && (r = gn(n),
            r = n < 0 ? Ti(i + r, 0) : Ci(r, i - 1)),
            Aa(t, Me(e, 3), r, !0)
        }
        function Re(t) {
            return (null == t ? 0 : t.length) ? T(t, 1) : []
        }
        function Pe(t) {
            return t && t.length ? t[0] : ja
        }
        function Ie(t) {
            var e = null == t ? 0 : t.length;
            return e ? t[e - 1] : ja
        }
        function je(t, e) {
            return t && t.length && e && e.length ? it(t, e) : t
        }
        function He(t) {
            return null == t ? t : Bi.call(t)
        }
        function Fe(e) {
            if (!e || !e.length)
                return [];
            var n = 0;
            return e = ha(e, function(t) {
                return on(t) && (n = Ti(t.length, n),
                1)
            }),
            qa(n, function(t) {
                return da(e, wa(t))
            })
        }
        function Ue(t, e) {
            if (!t || !t.length)
                return [];
            var n = Fe(t);
            return null == e ? n : da(n, function(t) {
                return aa(e, ja, t)
            })
        }
        function Ye(t) {
            var e = b(t);
            return e.__chain__ = !0,
            e
        }
        function Ge(t, e) {
            return e(t)
        }
        function Ve(t, e) {
            return (oo(t) ? ca : tr)(t, Me(e, 3))
        }
        function Ke(t, e) {
            return (oo(t) ? ua : er)(t, Me(e, 3))
        }
        function Qe(t, e) {
            return (oo(t) ? da : Q)(t, Me(e, 3))
        }
        function $e(t, e, n) {
            return e = n ? ja : e,
            e = t && null == e ? t.length : e,
            oe(t, 128, ja, ja, ja, ja, e)
        }
        function Je(t, e) {
            var n;
            if ("function" != typeof e)
                throw new Kn(Ha);
            return t = gn(t),
            function() {
                return 0 < --t && (n = e.apply(this, arguments)),
                t <= 1 && (e = ja),
                n
            }
        }
        function Ze(i, r, t) {
            function o(t) {
                var e = u
                  , n = l;
                return u = l = ja,
                M = t,
                f = i.apply(n, e)
            }
            function a(t) {
                var e = t - d;
                return d === ja || r <= e || e < 0 || m && h <= t - M
            }
            function s() {
                var t, e, n = Yr();
                return a(n) ? c(n) : void (p = mr(s, (e = r - ((t = n) - d),
                m ? Ci(e, h - (t - M)) : e)))
            }
            function c(t) {
                return p = ja,
                n && u ? o(t) : (u = l = ja,
                f)
            }
            function e() {
                var t, e = Yr(), n = a(e);
                if (u = arguments,
                l = this,
                d = e,
                n) {
                    if (p === ja)
                        return M = t = d,
                        p = mr(s, r),
                        b ? o(t) : f;
                    if (m)
                        return p = mr(s, r),
                        o(d)
                }
                return p === ja && (p = mr(s, r)),
                f
            }
            var u, l, h, f, p, d, M = 0, b = !1, m = !1, n = !0;
            if ("function" != typeof i)
                throw new Kn(Ha);
            return r = An(r) || 0,
            ln(t) && (b = !!t.leading,
            m = "maxWait"in t,
            h = m ? Ti(An(t.maxWait) || 0, r) : h,
            n = "trailing"in t ? !!t.trailing : n),
            e.cancel = function() {
                p !== ja && sr(p),
                M = 0,
                u = d = l = p = ja
            }
            ,
            e.flush = function() {
                return p === ja ? f : c(Yr())
            }
            ,
            e
        }
        function tn(r, o) {
            if ("function" != typeof r || null != o && "function" != typeof o)
                throw new Kn(Ha);
            var a = function() {
                var t = arguments
                  , e = o ? o.apply(this, t) : t[0]
                  , n = a.cache;
                if (n.has(e))
                    return n.get(e);
                var i = r.apply(this, t);
                return a.cache = n.set(e, i) || n,
                i
            };
            return a.cache = new (tn.Cache || s),
            a
        }
        function en(e) {
            if ("function" != typeof e)
                throw new Kn(Ha);
            return function() {
                var t = arguments;
                switch (t.length) {
                case 0:
                    return !e.call(this);
                case 1:
                    return !e.call(this, t[0]);
                case 2:
                    return !e.call(this, t[0], t[1]);
                case 3:
                    return !e.call(this, t[0], t[1], t[2])
                }
                return !e.apply(this, t)
            }
        }
        function nn(t, e) {
            return t === e || t != t && e != e
        }
        function rn(t) {
            return null != t && un(t.length) && !sn(t)
        }
        function on(t) {
            return hn(t) && rn(t)
        }
        function an(t) {
            if (!hn(t))
                return !1;
            var e = E(t);
            return e == ts || "[object DOMException]" == e || "string" == typeof t.message && "string" == typeof t.name && !pn(t)
        }
        function sn(t) {
            if (!ln(t))
                return !1;
            var e = E(t);
            return e == es || e == ns || "[object AsyncFunction]" == e || "[object Proxy]" == e
        }
        function cn(t) {
            return "number" == typeof t && t == gn(t)
        }
        function un(t) {
            return "number" == typeof t && -1 < t && t % 1 == 0 && t <= Ya
        }
        function ln(t) {
            var e = typeof t;
            return null != t && ("object" == e || "function" == e)
        }
        function hn(t) {
            return null != t && "object" == typeof t
        }
        function fn(t) {
            return "number" == typeof t || hn(t) && E(t) == rs
        }
        function pn(t) {
            if (!hn(t) || E(t) != os)
                return !1;
            var e = fi(t);
            if (null === e)
                return !0;
            var n = ei.call(e, "constructor") && e.constructor;
            return "function" == typeof n && n instanceof n && ti.call(n) == oi
        }
        function dn(t) {
            return "string" == typeof t || !oo(t) && hn(t) && E(t) == us
        }
        function Mn(t) {
            return "symbol" == typeof t || hn(t) && E(t) == ls
        }
        function bn(t) {
            if (!t)
                return [];
            if (rn(t))
                return (dn(t) ? Ia : Et)(t);
            if (mi && t[mi])
                return function(t) {
                    for (var e, n = []; !(e = t.next()).done; )
                        n.push(e.value);
                    return n
                }(t[mi]());
            var e = fr(t);
            return (e == is ? Ea : e == cs ? Ra : qn)(t)
        }
        function mn(t) {
            return t ? (t = An(t)) !== 1 / 0 && t !== -1 / 0 ? t == t ? t : 0 : 17976931348623157e292 * (t < 0 ? -1 : 1) : 0 === t ? t : 0
        }
        function gn(t) {
            var e = mn(t)
              , n = e % 1;
            return e == e ? n ? e - n : e : 0
        }
        function vn(t) {
            return t ? d(gn(t), 0, Va) : 0
        }
        function An(t) {
            if ("number" == typeof t)
                return t;
            if (Mn(t))
                return Ga;
            var e;
            if (ln(t) && (t = ln(e = "function" == typeof t.valueOf ? t.valueOf() : t) ? e + "" : e),
            "string" != typeof t)
                return 0 === t ? t : +t;
            t = t.replace(Rs, "");
            var n = Qs.test(t);
            return n || Js.test(t) ? fc(t.slice(2), n ? 2 : 8) : Ks.test(t) ? Ga : +t
        }
        function yn(t) {
            return Xt(t, Ln(t))
        }
        function zn(t) {
            return null == t ? "" : gt(t)
        }
        function _n(t, e, n) {
            var i = null == t ? ja : S(t, e);
            return i === ja ? n : i
        }
        function On(t, e) {
            return null != t && ve(t, e, R)
        }
        function wn(t) {
            return (rn(t) ? i : G)(t)
        }
        function Ln(t) {
            return rn(t) ? i(t, !0) : V(t)
        }
        function Nn(t, n) {
            if (null == t)
                return {};
            var e = da(fe(t), function(t) {
                return [t]
            });
            return n = Me(n),
            nt(t, e, function(t, e) {
                return n(t, e[0])
            })
        }
        function qn(t) {
            return null == t ? [] : Ta(t, wn(t))
        }
        function Wn(t) {
            return Ro(zn(t).toLowerCase())
        }
        function Tn(t) {
            return (t = zn(t)) && t.replace(tc, yc).replace(rc, "")
        }
        function Cn(t, e, n) {
            return t = zn(t),
            (e = n ? ja : e) === ja ? (i = t,
            ac.test(i) ? t.match(oc) || [] : t.match(Us) || []) : t.match(e) || [];
            var i
        }
        function xn(t) {
            return function() {
                return t
            }
        }
        function kn(t) {
            return t
        }
        function Sn(t) {
            return Y("function" == typeof t ? t : N(t, 1))
        }
        function Bn(i, e, t) {
            var n = wn(e)
              , r = k(e, n);
            null != t || ln(e) && (r.length || !n.length) || (t = e,
            e = i,
            i = this,
            r = k(e, wn(e)));
            var o = !(ln(t) && "chain"in t && !t.chain)
              , a = sn(i);
            return ca(r, function(t) {
                var n = e[t];
                i[t] = n,
                a && (i.prototype[t] = function() {
                    var t = this.__chain__;
                    if (o || t) {
                        var e = i(this.__wrapped__);
                        return (e.__actions__ = Et(this.__actions__)).push({
                            func: n,
                            args: arguments,
                            thisArg: i
                        }),
                        e.__chain__ = t,
                        e
                    }
                    return n.apply(i, Ma([this.value()], arguments))
                }
                )
            }),
            i
        }
        function En() {}
        function Xn(t) {
            return Oe(t) ? wa(Se(t)) : (e = t,
            function(t) {
                return S(t, e)
            }
            );
            var e
        }
        function Dn() {
            return []
        }
        function Rn() {
            return !1
        }
        var Pn, In = (e = null == e ? pc : Oc.defaults(pc.Object(), e, Oc.pick(pc, sc))).Array, jn = e.Date, Hn = e.Error, Fn = e.Function, Un = e.Math, Yn = e.Object, Gn = e.RegExp, Vn = e.String, Kn = e.TypeError, Qn = In.prototype, $n = Fn.prototype, Jn = Yn.prototype, Zn = e["__core-js_shared__"], ti = $n.toString, ei = Jn.hasOwnProperty, ni = 0, ii = (Pn = /[^.]+$/.exec(Zn && Zn.keys && Zn.keys.IE_PROTO || "")) ? "Symbol(src)_1." + Pn : "", ri = Jn.toString, oi = ti.call(Yn), ai = pc._, si = Gn("^" + ti.call(ei).replace(Xs, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"), ci = dc ? e.Buffer : ja, ui = e.Symbol, li = e.Uint8Array, hi = ci ? ci.allocUnsafe : ja, fi = Xa(Yn.getPrototypeOf, Yn), pi = Yn.create, di = Jn.propertyIsEnumerable, Mi = Qn.splice, bi = ui ? ui.isConcatSpreadable : ja, mi = ui ? ui.iterator : ja, gi = ui ? ui.toStringTag : ja, vi = function() {
            try {
                var t = ge(Yn, "defineProperty");
                return t({}, "", {}),
                t
            } catch (t) {}
        }(), Ai = e.clearTimeout !== pc.clearTimeout && e.clearTimeout, yi = jn && jn.now !== pc.Date.now && jn.now, zi = e.setTimeout !== pc.setTimeout && e.setTimeout, _i = Un.ceil, Oi = Un.floor, wi = Yn.getOwnPropertySymbols, Li = ci ? ci.isBuffer : ja, Ni = e.isFinite, qi = Qn.join, Wi = Xa(Yn.keys, Yn), Ti = Un.max, Ci = Un.min, xi = jn.now, ki = e.parseInt, Si = Un.random, Bi = Qn.reverse, Ei = ge(e, "DataView"), Xi = ge(e, "Map"), Di = ge(e, "Promise"), Ri = ge(e, "Set"), Pi = ge(e, "WeakMap"), Ii = ge(Yn, "create"), ji = Pi && new Pi, Hi = {}, Fi = Be(Ei), Ui = Be(Xi), Yi = Be(Di), Gi = Be(Ri), Vi = Be(Pi), Ki = ui ? ui.prototype : ja, Qi = Ki ? Ki.valueOf : ja, $i = Ki ? Ki.toString : ja, Ji = function(t) {
            if (!ln(t))
                return {};
            if (pi)
                return pi(t);
            Zi.prototype = t;
            var e = new Zi;
            return Zi.prototype = ja,
            e
        };
        function Zi() {}
        b.templateSettings = {
            escape: Ts,
            evaluate: Cs,
            interpolate: xs,
            variable: "",
            imports: {
                _: b
            }
        },
        (b.prototype = o.prototype).constructor = b,
        (m.prototype = Ji(o.prototype)).constructor = m,
        (g.prototype = Ji(o.prototype)).constructor = g,
        n.prototype.clear = function() {
            this.__data__ = Ii ? Ii(null) : {},
            this.size = 0
        }
        ,
        n.prototype.delete = function(t) {
            var e = this.has(t) && delete this.__data__[t];
            return this.size -= e ? 1 : 0,
            e
        }
        ,
        n.prototype.get = function(t) {
            var e = this.__data__;
            if (Ii) {
                var n = e[t];
                return n === Fa ? ja : n
            }
            return ei.call(e, t) ? e[t] : ja
        }
        ,
        n.prototype.has = function(t) {
            var e = this.__data__;
            return Ii ? e[t] !== ja : ei.call(e, t)
        }
        ,
        n.prototype.set = function(t, e) {
            var n = this.__data__;
            return this.size += this.has(t) ? 0 : 1,
            n[t] = Ii && e === ja ? Fa : e,
            this
        }
        ,
        r.prototype.clear = function() {
            this.__data__ = [],
            this.size = 0
        }
        ,
        r.prototype.delete = function(t) {
            var e = this.__data__
              , n = l(e, t);
            return !(n < 0) && (n == e.length - 1 ? e.pop() : Mi.call(e, n, 1),
            --this.size,
            !0)
        }
        ,
        r.prototype.get = function(t) {
            var e = this.__data__
              , n = l(e, t);
            return n < 0 ? ja : e[n][1]
        }
        ,
        r.prototype.has = function(t) {
            return -1 < l(this.__data__, t)
        }
        ,
        r.prototype.set = function(t, e) {
            var n = this.__data__
              , i = l(n, t);
            return i < 0 ? (++this.size,
            n.push([t, e])) : n[i][1] = e,
            this
        }
        ,
        s.prototype.clear = function() {
            this.size = 0,
            this.__data__ = {
                hash: new n,
                map: new (Xi || r),
                string: new n
            }
        }
        ,
        s.prototype.delete = function(t) {
            var e = be(this, t).delete(t);
            return this.size -= e ? 1 : 0,
            e
        }
        ,
        s.prototype.get = function(t) {
            return be(this, t).get(t)
        }
        ,
        s.prototype.has = function(t) {
            return be(this, t).has(t)
        }
        ,
        s.prototype.set = function(t, e) {
            var n = be(this, t)
              , i = n.size;
            return n.set(t, e),
            this.size += n.size == i ? 0 : 1,
            this
        }
        ,
        v.prototype.add = v.prototype.push = function(t) {
            return this.__data__.set(t, Fa),
            this
        }
        ,
        v.prototype.has = function(t) {
            return this.__data__.has(t)
        }
        ,
        O.prototype.clear = function() {
            this.__data__ = new r,
            this.size = 0
        }
        ,
        O.prototype.delete = function(t) {
            var e = this.__data__
              , n = e.delete(t);
            return this.size = e.size,
            n
        }
        ,
        O.prototype.get = function(t) {
            return this.__data__.get(t)
        }
        ,
        O.prototype.has = function(t) {
            return this.__data__.has(t)
        }
        ,
        O.prototype.set = function(t, e) {
            var n = this.__data__;
            if (n instanceof r) {
                var i = n.__data__;
                if (!Xi || i.length < 199)
                    return i.push([t, e]),
                    this.size = ++n.size,
                    this;
                n = this.__data__ = new s(i)
            }
            return n.set(t, e),
            this.size = n.size,
            this
        }
        ;
        var tr = Pt(C)
          , er = Pt(x, !0)
          , nr = It()
          , ir = It(!0)
          , rr = ji ? function(t, e) {
            return ji.set(t, e),
            t
        }
        : kn
          , or = vi ? function(t, e) {
            return vi(t, "toString", {
                configurable: !0,
                enumerable: !1,
                value: xn(e),
                writable: !0
            })
        }
        : kn
          , ar = st
          , sr = Ai || function(t) {
            return pc.clearTimeout(t)
        }
          , cr = Ri && 1 / Ra(new Ri([, -0]))[1] == 1 / 0 ? function(t) {
            return new Ri(t)
        }
        : En
          , ur = ji ? function(t) {
            return ji.get(t)
        }
        : En
          , lr = wi ? function(e) {
            return null == e ? [] : (e = Yn(e),
            ha(wi(e), function(t) {
                return di.call(e, t)
            }))
        }
        : Dn
          , hr = wi ? function(t) {
            for (var e = []; t; )
                Ma(e, lr(t)),
                t = fi(t);
            return e
        }
        : Dn
          , fr = E;
        (Ei && fr(new Ei(new ArrayBuffer(1))) != ps || Xi && fr(new Xi) != is || Di && fr(Di.resolve()) != as || Ri && fr(new Ri) != cs || Pi && fr(new Pi) != hs) && (fr = function(t) {
            var e = E(t)
              , n = e == os ? t.constructor : ja
              , i = n ? Be(n) : "";
            if (i)
                switch (i) {
                case Fi:
                    return ps;
                case Ui:
                    return is;
                case Yi:
                    return as;
                case Gi:
                    return cs;
                case Vi:
                    return hs
                }
            return e
        }
        );
        var pr, dr, Mr = Zn ? sn : Rn, br = xe(rr), mr = zi || function(t, e) {
            return pc.setTimeout(t, e)
        }
        , gr = xe(or), vr = (dr = (pr = tn(function(t) {
            var r = [];
            return Bs.test(t) && r.push(""),
            t.replace(Es, function(t, e, n, i) {
                r.push(n ? i.replace(Ys, "$1") : e || t)
            }),
            r
        }, function(t) {
            return 500 === dr.size && dr.clear(),
            t
        })).cache,
        pr), Ar = st(function(t, e) {
            return on(t) ? z(t, T(e, 1, on, !0)) : []
        }), yr = st(function(t, e) {
            var n = Ie(e);
            return on(n) && (n = ja),
            on(t) ? z(t, T(e, 1, on, !0), Me(n, 2)) : []
        }), zr = st(function(t, e) {
            var n = Ie(e);
            return on(n) && (n = ja),
            on(t) ? z(t, T(e, 1, on, !0), ja, n) : []
        }), _r = st(function(t) {
            var e = da(t, Lt);
            return e.length && e[0] === t[0] ? P(e) : []
        }), Or = st(function(t) {
            var e = Ie(t)
              , n = da(t, Lt);
            return e === Ie(n) ? e = ja : n.pop(),
            n.length && n[0] === t[0] ? P(n, Me(e, 2)) : []
        }), wr = st(function(t) {
            var e = Ie(t)
              , n = da(t, Lt);
            return (e = "function" == typeof e ? e : ja) && n.pop(),
            n.length && n[0] === t[0] ? P(n, ja, e) : []
        }), Lr = st(je), Nr = le(function(t, e) {
            var n = null == t ? 0 : t.length
              , i = p(t, e);
            return rt(t, da(e, function(t) {
                return ze(t, n) ? +t : t
            }).sort(kt)),
            i
        }), qr = st(function(t) {
            return vt(T(t, 1, on, !0))
        }), Wr = st(function(t) {
            var e = Ie(t);
            return on(e) && (e = ja),
            vt(T(t, 1, on, !0), Me(e, 2))
        }), Tr = st(function(t) {
            var e = "function" == typeof (e = Ie(t)) ? e : ja;
            return vt(T(t, 1, on, !0), ja, e)
        }), Cr = st(function(t, e) {
            return on(t) ? z(t, e) : []
        }), xr = st(function(t) {
            return Ot(ha(t, on))
        }), kr = st(function(t) {
            var e = Ie(t);
            return on(e) && (e = ja),
            Ot(ha(t, on), Me(e, 2))
        }), Sr = st(function(t) {
            var e = "function" == typeof (e = Ie(t)) ? e : ja;
            return Ot(ha(t, on), ja, e)
        }), Br = st(Fe), Er = st(function(t) {
            var e = t.length
              , n = "function" == typeof (n = 1 < e ? t[e - 1] : ja) ? (t.pop(),
            n) : ja;
            return Ue(t, n)
        }), Xr = le(function(e) {
            function t(t) {
                return p(t, e)
            }
            var n = e.length
              , i = n ? e[0] : 0
              , r = this.__wrapped__;
            return !(1 < n || this.__actions__.length) && r instanceof g && ze(i) ? ((r = r.slice(i, +i + (n ? 1 : 0))).__actions__.push({
                func: Ge,
                args: [t],
                thisArg: ja
            }),
            new m(r,this.__chain__).thru(function(t) {
                return n && !t.length && t.push(ja),
                t
            })) : this.thru(t)
        }), Dr = Dt(function(t, e, n) {
            ei.call(t, n) ? ++t[n] : f(t, n, 1)
        }), Rr = Yt(Xe), Pr = Yt(De), Ir = Dt(function(t, e, n) {
            ei.call(t, n) ? t[n].push(e) : f(t, n, [e])
        }), jr = st(function(t, e, n) {
            var i = -1
              , r = "function" == typeof e
              , o = rn(t) ? In(t.length) : [];
            return tr(t, function(t) {
                o[++i] = r ? aa(e, t, n) : I(t, e, n)
            }),
            o
        }), Hr = Dt(function(t, e, n) {
            f(t, n, e)
        }), Fr = Dt(function(t, e, n) {
            t[n ? 0 : 1].push(e)
        }, function() {
            return [[], []]
        }), Ur = st(function(t, e) {
            if (null == t)
                return [];
            var n = e.length;
            return 1 < n && _e(t, e[0], e[1]) ? e = [] : 2 < n && _e(e[0], e[1], e[2]) && (e = [e[0]]),
            et(t, T(e, 1), [])
        }), Yr = yi || function() {
            return pc.Date.now()
        }
        , Gr = st(function(t, e, n) {
            var i, r = 1;
            return n.length && (i = Da(n, de(Gr)),
            r |= 32),
            oe(t, r, e, n, i)
        }), Vr = st(function(t, e, n) {
            var i, r = 3;
            return n.length && (i = Da(n, de(Vr)),
            r |= 32),
            oe(e, r, t, n, i)
        }), Kr = st(function(t, e) {
            return y(t, 1, e)
        }), Qr = st(function(t, e, n) {
            return y(t, An(e) || 0, n)
        });
        tn.Cache = s;
        var $r, Jr = ar(function(i, r) {
            var o = (r = 1 == r.length && oo(r[0]) ? da(r[0], Wa(Me())) : da(T(r, 1), Wa(Me()))).length;
            return st(function(t) {
                for (var e = -1, n = Ci(t.length, o); ++e < n; )
                    t[e] = r[e].call(this, t[e]);
                return aa(i, this, t)
            })
        }), Zr = st(function(t, e) {
            var n = Da(e, de(Zr));
            return oe(t, 32, ja, e, n)
        }), to = st(function(t, e) {
            var n = Da(e, de(to));
            return oe(t, 64, ja, e, n)
        }), eo = le(function(t, e) {
            return oe(t, 256, ja, ja, ja, e)
        }), no = ee(X), io = ee(function(t, e) {
            return e <= t
        }), ro = j(function() {
            return arguments
        }()) ? j : function(t) {
            return hn(t) && ei.call(t, "callee") && !di.call(t, "callee")
        }
        , oo = In.isArray, ao = Mc ? Wa(Mc) : function(t) {
            return hn(t) && E(t) == fs
        }
        , so = Li || Rn, co = bc ? Wa(bc) : function(t) {
            return hn(t) && E(t) == Za
        }
        , uo = mc ? Wa(mc) : function(t) {
            return hn(t) && fr(t) == is
        }
        , lo = gc ? Wa(gc) : function(t) {
            return hn(t) && E(t) == ss
        }
        , ho = vc ? Wa(vc) : function(t) {
            return hn(t) && fr(t) == cs
        }
        , fo = Ac ? Wa(Ac) : function(t) {
            return hn(t) && un(t.length) && !!uc[E(t)]
        }
        , po = ee(K), Mo = ee(function(t, e) {
            return t <= e
        }), bo = Rt(function(t, e) {
            if (Le(e) || rn(e))
                Xt(e, wn(e), t);
            else
                for (var n in e)
                    ei.call(e, n) && w(t, n, e[n])
        }), mo = Rt(function(t, e) {
            Xt(e, Ln(e), t)
        }), go = Rt(function(t, e, n, i) {
            Xt(e, Ln(e), t, i)
        }), vo = Rt(function(t, e, n, i) {
            Xt(e, wn(e), t, i)
        }), Ao = le(p), yo = st(function(t) {
            return t.push(ja, ae),
            aa(go, ja, t)
        }), zo = st(function(t) {
            return t.push(ja, se),
            aa(No, ja, t)
        }), _o = Kt(function(t, e, n) {
            t[e] = n
        }, xn(kn)), Oo = Kt(function(t, e, n) {
            ei.call(t, e) ? t[e].push(n) : t[e] = [n]
        }, Me), wo = st(I), Lo = Rt(function(t, e, n) {
            Z(t, e, n)
        }), No = Rt(function(t, e, n, i) {
            Z(t, e, n, i)
        }), qo = le(function(e, t) {
            var n = {};
            if (null == e)
                return n;
            var i = !1;
            t = da(t, function(t) {
                return t = qt(t, e),
                i = i || 1 < t.length,
                t
            }),
            Xt(e, fe(e), n),
            i && (n = N(n, 7, ce));
            for (var r = t.length; r--; )
                At(n, t[r]);
            return n
        }), Wo = le(function(t, e) {
            return null == t ? {} : nt(n = t, e, function(t, e) {
                return On(n, e)
            });
            var n
        }), To = re(wn), Co = re(Ln), xo = Ht(function(t, e, n) {
            return e = e.toLowerCase(),
            t + (n ? Wn(e) : e)
        }), ko = Ht(function(t, e, n) {
            return t + (n ? "-" : "") + e.toLowerCase()
        }), So = Ht(function(t, e, n) {
            return t + (n ? " " : "") + e.toLowerCase()
        }), Bo = jt("toLowerCase"), Eo = Ht(function(t, e, n) {
            return t + (n ? "_" : "") + e.toLowerCase()
        }), Xo = Ht(function(t, e, n) {
            return t + (n ? " " : "") + Ro(e)
        }), Do = Ht(function(t, e, n) {
            return t + (n ? " " : "") + e.toUpperCase()
        }), Ro = jt("toUpperCase"), Po = st(function(t, e) {
            try {
                return aa(t, ja, e)
            } catch (t) {
                return an(t) ? t : new Hn(t)
            }
        }), Io = le(function(e, t) {
            return ca(t, function(t) {
                t = Se(t),
                f(e, t, Gr(e[t], e))
            }),
            e
        }), jo = Gt(), Ho = Gt(!0), Fo = st(function(e, n) {
            return function(t) {
                return I(t, e, n)
            }
        }), Uo = st(function(e, n) {
            return function(t) {
                return I(e, t, n)
            }
        }), Yo = $t(da), Go = $t(la), Vo = $t(ga), Ko = te(), Qo = te(!0), $o = Qt(function(t, e) {
            return t + e
        }, 0), Jo = ie("ceil"), Zo = Qt(function(t, e) {
            return t / e
        }, 1), ta = ie("floor"), ea = Qt(function(t, e) {
            return t * e
        }, 1), na = ie("round"), ia = Qt(function(t, e) {
            return t - e
        }, 0);
        return b.after = function(t, e) {
            if ("function" != typeof e)
                throw new Kn(Ha);
            return t = gn(t),
            function() {
                if (--t < 1)
                    return e.apply(this, arguments)
            }
        }
        ,
        b.ary = $e,
        b.assign = bo,
        b.assignIn = mo,
        b.assignInWith = go,
        b.assignWith = vo,
        b.at = Ao,
        b.before = Je,
        b.bind = Gr,
        b.bindAll = Io,
        b.bindKey = Vr,
        b.castArray = function() {
            if (!arguments.length)
                return [];
            var t = arguments[0];
            return oo(t) ? t : [t]
        }
        ,
        b.chain = Ye,
        b.chunk = function(t, e, n) {
            e = (n ? _e(t, e, n) : e === ja) ? 1 : Ti(gn(e), 0);
            var i = null == t ? 0 : t.length;
            if (!i || e < 1)
                return [];
            for (var r = 0, o = 0, a = In(_i(i / e)); r < i; )
                a[o++] = ft(t, r, r += e);
            return a
        }
        ,
        b.compact = function(t) {
            for (var e = -1, n = null == t ? 0 : t.length, i = 0, r = []; ++e < n; ) {
                var o = t[e];
                o && (r[i++] = o)
            }
            return r
        }
        ,
        b.concat = function() {
            var t = arguments.length;
            if (!t)
                return [];
            for (var e = In(t - 1), n = arguments[0], i = t; i--; )
                e[i - 1] = arguments[i];
            return Ma(oo(n) ? Et(n) : [n], T(e, 1))
        }
        ,
        b.cond = function(i) {
            var r = null == i ? 0 : i.length
              , e = Me();
            return i = r ? da(i, function(t) {
                if ("function" != typeof t[1])
                    throw new Kn(Ha);
                return [e(t[0]), t[1]]
            }) : [],
            st(function(t) {
                for (var e = -1; ++e < r; ) {
                    var n = i[e];
                    if (aa(n[0], this, t))
                        return aa(n[1], this, t)
                }
            })
        }
        ,
        b.conforms = function(t) {
            return e = N(t, 1),
            n = wn(e),
            function(t) {
                return A(t, e, n)
            }
            ;
            var e, n
        }
        ,
        b.constant = xn,
        b.countBy = Dr,
        b.create = function(t, e) {
            var n = Ji(t);
            return null == e ? n : L(n, e)
        }
        ,
        b.curry = function t(e, n, i) {
            var r = oe(e, 8, ja, ja, ja, ja, ja, n = i ? ja : n);
            return r.placeholder = t.placeholder,
            r
        }
        ,
        b.curryRight = function t(e, n, i) {
            var r = oe(e, 16, ja, ja, ja, ja, ja, n = i ? ja : n);
            return r.placeholder = t.placeholder,
            r
        }
        ,
        b.debounce = Ze,
        b.defaults = yo,
        b.defaultsDeep = zo,
        b.defer = Kr,
        b.delay = Qr,
        b.difference = Ar,
        b.differenceBy = yr,
        b.differenceWith = zr,
        b.drop = function(t, e, n) {
            var i = null == t ? 0 : t.length;
            return i ? ft(t, (e = n || e === ja ? 1 : gn(e)) < 0 ? 0 : e, i) : []
        }
        ,
        b.dropRight = function(t, e, n) {
            var i = null == t ? 0 : t.length;
            return i ? ft(t, 0, (e = i - (e = n || e === ja ? 1 : gn(e))) < 0 ? 0 : e) : []
        }
        ,
        b.dropRightWhile = function(t, e) {
            return t && t.length ? zt(t, Me(e, 3), !0, !0) : []
        }
        ,
        b.dropWhile = function(t, e) {
            return t && t.length ? zt(t, Me(e, 3), !0) : []
        }
        ,
        b.fill = function(t, e, n, i) {
            var r = null == t ? 0 : t.length;
            return r ? (n && "number" != typeof n && _e(t, e, n) && (n = 0,
            i = r),
            function(t, e, n, i) {
                var r = t.length;
                for ((n = gn(n)) < 0 && (n = r < -n ? 0 : r + n),
                (i = i === ja || r < i ? r : gn(i)) < 0 && (i += r),
                i = i < n ? 0 : vn(i); n < i; )
                    t[n++] = e;
                return t
            }(t, e, n, i)) : []
        }
        ,
        b.filter = function(t, e) {
            return (oo(t) ? ha : W)(t, Me(e, 3))
        }
        ,
        b.flatMap = function(t, e) {
            return T(Qe(t, e), 1)
        }
        ,
        b.flatMapDeep = function(t, e) {
            return T(Qe(t, e), 1 / 0)
        }
        ,
        b.flatMapDepth = function(t, e, n) {
            return n = n === ja ? 1 : gn(n),
            T(Qe(t, e), n)
        }
        ,
        b.flatten = Re,
        b.flattenDeep = function(t) {
            return (null == t ? 0 : t.length) ? T(t, 1 / 0) : []
        }
        ,
        b.flattenDepth = function(t, e) {
            return (null == t ? 0 : t.length) ? T(t, e = e === ja ? 1 : gn(e)) : []
        }
        ,
        b.flip = function(t) {
            return oe(t, 512)
        }
        ,
        b.flow = jo,
        b.flowRight = Ho,
        b.fromPairs = function(t) {
            for (var e = -1, n = null == t ? 0 : t.length, i = {}; ++e < n; ) {
                var r = t[e];
                i[r[0]] = r[1]
            }
            return i
        }
        ,
        b.functions = function(t) {
            return null == t ? [] : k(t, wn(t))
        }
        ,
        b.functionsIn = function(t) {
            return null == t ? [] : k(t, Ln(t))
        }
        ,
        b.groupBy = Ir,
        b.initial = function(t) {
            return (null == t ? 0 : t.length) ? ft(t, 0, -1) : []
        }
        ,
        b.intersection = _r,
        b.intersectionBy = Or,
        b.intersectionWith = wr,
        b.invert = _o,
        b.invertBy = Oo,
        b.invokeMap = jr,
        b.iteratee = Sn,
        b.keyBy = Hr,
        b.keys = wn,
        b.keysIn = Ln,
        b.map = Qe,
        b.mapKeys = function(t, i) {
            var r = {};
            return i = Me(i, 3),
            C(t, function(t, e, n) {
                f(r, i(t, e, n), t)
            }),
            r
        }
        ,
        b.mapValues = function(t, i) {
            var r = {};
            return i = Me(i, 3),
            C(t, function(t, e, n) {
                f(r, e, i(t, e, n))
            }),
            r
        }
        ,
        b.matches = function(t) {
            return $(N(t, 1))
        }
        ,
        b.matchesProperty = function(t, e) {
            return J(t, N(e, 1))
        }
        ,
        b.memoize = tn,
        b.merge = Lo,
        b.mergeWith = No,
        b.method = Fo,
        b.methodOf = Uo,
        b.mixin = Bn,
        b.negate = en,
        b.nthArg = function(e) {
            return e = gn(e),
            st(function(t) {
                return tt(t, e)
            })
        }
        ,
        b.omit = qo,
        b.omitBy = function(t, e) {
            return Nn(t, en(Me(e)))
        }
        ,
        b.once = function(t) {
            return Je(2, t)
        }
        ,
        b.orderBy = function(t, e, n, i) {
            return null == t ? [] : (oo(e) || (e = null == e ? [] : [e]),
            oo(n = i ? ja : n) || (n = null == n ? [] : [n]),
            et(t, e, n))
        }
        ,
        b.over = Yo,
        b.overArgs = Jr,
        b.overEvery = Go,
        b.overSome = Vo,
        b.partial = Zr,
        b.partialRight = to,
        b.partition = Fr,
        b.pick = Wo,
        b.pickBy = Nn,
        b.property = Xn,
        b.propertyOf = function(e) {
            return function(t) {
                return null == e ? ja : S(e, t)
            }
        }
        ,
        b.pull = Lr,
        b.pullAll = je,
        b.pullAllBy = function(t, e, n) {
            return t && t.length && e && e.length ? it(t, e, Me(n, 2)) : t
        }
        ,
        b.pullAllWith = function(t, e, n) {
            return t && t.length && e && e.length ? it(t, e, ja, n) : t
        }
        ,
        b.pullAt = Nr,
        b.range = Ko,
        b.rangeRight = Qo,
        b.rearg = eo,
        b.reject = function(t, e) {
            return (oo(t) ? ha : W)(t, en(Me(e, 3)))
        }
        ,
        b.remove = function(t, e) {
            var n = [];
            if (!t || !t.length)
                return n;
            var i = -1
              , r = []
              , o = t.length;
            for (e = Me(e, 3); ++i < o; ) {
                var a = t[i];
                e(a, i, t) && (n.push(a),
                r.push(i))
            }
            return rt(t, r),
            n
        }
        ,
        b.rest = function(t, e) {
            if ("function" != typeof t)
                throw new Kn(Ha);
            return st(t, e = e === ja ? e : gn(e))
        }
        ,
        b.reverse = He,
        b.sampleSize = function(t, e, n) {
            return e = (n ? _e(t, e, n) : e === ja) ? 1 : gn(e),
            (oo(t) ? c : ut)(t, e)
        }
        ,
        b.set = function(t, e, n) {
            return null == t ? t : lt(t, e, n)
        }
        ,
        b.setWith = function(t, e, n, i) {
            return i = "function" == typeof i ? i : ja,
            null == t ? t : lt(t, e, n, i)
        }
        ,
        b.shuffle = function(t) {
            return (oo(t) ? u : ht)(t)
        }
        ,
        b.slice = function(t, e, n) {
            var i = null == t ? 0 : t.length;
            return i ? (n = n && "number" != typeof n && _e(t, e, n) ? (e = 0,
            i) : (e = null == e ? 0 : gn(e),
            n === ja ? i : gn(n)),
            ft(t, e, n)) : []
        }
        ,
        b.sortBy = Ur,
        b.sortedUniq = function(t) {
            return t && t.length ? bt(t) : []
        }
        ,
        b.sortedUniqBy = function(t, e) {
            return t && t.length ? bt(t, Me(e, 2)) : []
        }
        ,
        b.split = function(t, e, n) {
            return n && "number" != typeof n && _e(t, e, n) && (e = n = ja),
            (n = n === ja ? Va : n >>> 0) ? (t = zn(t)) && ("string" == typeof e || null != e && !lo(e)) && (!(e = gt(e)) && Ba(t)) ? Wt(Ia(t), 0, n) : t.split(e, n) : []
        }
        ,
        b.spread = function(i, r) {
            if ("function" != typeof i)
                throw new Kn(Ha);
            return r = null == r ? 0 : Ti(gn(r), 0),
            st(function(t) {
                var e = t[r]
                  , n = Wt(t, 0, r);
                return e && Ma(n, e),
                aa(i, this, n)
            })
        }
        ,
        b.tail = function(t) {
            var e = null == t ? 0 : t.length;
            return e ? ft(t, 1, e) : []
        }
        ,
        b.take = function(t, e, n) {
            return t && t.length ? ft(t, 0, (e = n || e === ja ? 1 : gn(e)) < 0 ? 0 : e) : []
        }
        ,
        b.takeRight = function(t, e, n) {
            var i = null == t ? 0 : t.length;
            return i ? ft(t, (e = i - (e = n || e === ja ? 1 : gn(e))) < 0 ? 0 : e, i) : []
        }
        ,
        b.takeRightWhile = function(t, e) {
            return t && t.length ? zt(t, Me(e, 3), !1, !0) : []
        }
        ,
        b.takeWhile = function(t, e) {
            return t && t.length ? zt(t, Me(e, 3)) : []
        }
        ,
        b.tap = function(t, e) {
            return e(t),
            t
        }
        ,
        b.throttle = function(t, e, n) {
            var i = !0
              , r = !0;
            if ("function" != typeof t)
                throw new Kn(Ha);
            return ln(n) && (i = "leading"in n ? !!n.leading : i,
            r = "trailing"in n ? !!n.trailing : r),
            Ze(t, e, {
                leading: i,
                maxWait: e,
                trailing: r
            })
        }
        ,
        b.thru = Ge,
        b.toArray = bn,
        b.toPairs = To,
        b.toPairsIn = Co,
        b.toPath = function(t) {
            return oo(t) ? da(t, Se) : Mn(t) ? [t] : Et(vr(zn(t)))
        }
        ,
        b.toPlainObject = yn,
        b.transform = function(t, i, r) {
            var e, n = oo(t), o = n || so(t) || fo(t);
            return i = Me(i, 4),
            null == r && (e = t && t.constructor,
            r = o ? n ? new e : [] : ln(t) && sn(e) ? Ji(fi(t)) : {}),
            (o ? ca : C)(t, function(t, e, n) {
                return i(r, t, e, n)
            }),
            r
        }
        ,
        b.unary = function(t) {
            return $e(t, 1)
        }
        ,
        b.union = qr,
        b.unionBy = Wr,
        b.unionWith = Tr,
        b.uniq = function(t) {
            return t && t.length ? vt(t) : []
        }
        ,
        b.uniqBy = function(t, e) {
            return t && t.length ? vt(t, Me(e, 2)) : []
        }
        ,
        b.uniqWith = function(t, e) {
            return e = "function" == typeof e ? e : ja,
            t && t.length ? vt(t, ja, e) : []
        }
        ,
        b.unset = function(t, e) {
            return null == t || At(t, e)
        }
        ,
        b.unzip = Fe,
        b.unzipWith = Ue,
        b.update = function(t, e, n) {
            return null == t ? t : yt(t, e, Nt(n))
        }
        ,
        b.updateWith = function(t, e, n, i) {
            return i = "function" == typeof i ? i : ja,
            null == t ? t : yt(t, e, Nt(n), i)
        }
        ,
        b.values = qn,
        b.valuesIn = function(t) {
            return null == t ? [] : Ta(t, Ln(t))
        }
        ,
        b.without = Cr,
        b.words = Cn,
        b.wrap = function(t, e) {
            return Zr(Nt(e), t)
        }
        ,
        b.xor = xr,
        b.xorBy = kr,
        b.xorWith = Sr,
        b.zip = Br,
        b.zipObject = function(t, e) {
            return wt(t || [], e || [], w)
        }
        ,
        b.zipObjectDeep = function(t, e) {
            return wt(t || [], e || [], lt)
        }
        ,
        b.zipWith = Er,
        b.entries = To,
        b.entriesIn = Co,
        b.extend = mo,
        b.extendWith = go,
        Bn(b, b),
        b.add = $o,
        b.attempt = Po,
        b.camelCase = xo,
        b.capitalize = Wn,
        b.ceil = Jo,
        b.clamp = function(t, e, n) {
            return n === ja && (n = e,
            e = ja),
            n !== ja && (n = (n = An(n)) == n ? n : 0),
            e !== ja && (e = (e = An(e)) == e ? e : 0),
            d(An(t), e, n)
        }
        ,
        b.clone = function(t) {
            return N(t, 4)
        }
        ,
        b.cloneDeep = function(t) {
            return N(t, 5)
        }
        ,
        b.cloneDeepWith = function(t, e) {
            return N(t, 5, e = "function" == typeof e ? e : ja)
        }
        ,
        b.cloneWith = function(t, e) {
            return N(t, 4, e = "function" == typeof e ? e : ja)
        }
        ,
        b.conformsTo = function(t, e) {
            return null == e || A(t, e, wn(e))
        }
        ,
        b.deburr = Tn,
        b.defaultTo = function(t, e) {
            return null == t || t != t ? e : t
        }
        ,
        b.divide = Zo,
        b.endsWith = function(t, e, n) {
            t = zn(t),
            e = gt(e);
            var i = t.length
              , r = n = n === ja ? i : d(gn(n), 0, i);
            return 0 <= (n -= e.length) && t.slice(n, r) == e
        }
        ,
        b.eq = nn,
        b.escape = function(t) {
            return (t = zn(t)) && Ws.test(t) ? t.replace(Ns, zc) : t
        }
        ,
        b.escapeRegExp = function(t) {
            return (t = zn(t)) && Ds.test(t) ? t.replace(Xs, "\\$&") : t
        }
        ,
        b.every = function(t, e, n) {
            var i = oo(t) ? la : _;
            return n && _e(t, e, n) && (e = ja),
            i(t, Me(e, 3))
        }
        ,
        b.find = Rr,
        b.findIndex = Xe,
        b.findKey = function(t, e) {
            return va(t, Me(e, 3), C)
        }
        ,
        b.findLast = Pr,
        b.findLastIndex = De,
        b.findLastKey = function(t, e) {
            return va(t, Me(e, 3), x)
        }
        ,
        b.floor = ta,
        b.forEach = Ve,
        b.forEachRight = Ke,
        b.forIn = function(t, e) {
            return null == t ? t : nr(t, Me(e, 3), Ln)
        }
        ,
        b.forInRight = function(t, e) {
            return null == t ? t : ir(t, Me(e, 3), Ln)
        }
        ,
        b.forOwn = function(t, e) {
            return t && C(t, Me(e, 3))
        }
        ,
        b.forOwnRight = function(t, e) {
            return t && x(t, Me(e, 3))
        }
        ,
        b.get = _n,
        b.gt = no,
        b.gte = io,
        b.has = function(t, e) {
            return null != t && ve(t, e, D)
        }
        ,
        b.hasIn = On,
        b.head = Pe,
        b.identity = kn,
        b.includes = function(t, e, n, i) {
            t = rn(t) ? t : qn(t),
            n = n && !i ? gn(n) : 0;
            var r = t.length;
            return n < 0 && (n = Ti(r + n, 0)),
            dn(t) ? n <= r && -1 < t.indexOf(e, n) : !!r && -1 < ya(t, e, n)
        }
        ,
        b.indexOf = function(t, e, n) {
            var i = null == t ? 0 : t.length;
            if (!i)
                return -1;
            var r = null == n ? 0 : gn(n);
            return r < 0 && (r = Ti(i + r, 0)),
            ya(t, e, r)
        }
        ,
        b.inRange = function(t, e, n) {
            return e = mn(e),
            n === ja ? (n = e,
            e = 0) : n = mn(n),
            t = An(t),
            (i = t) >= Ci(r = e, o = n) && i < Ti(r, o);
            var i, r, o
        }
        ,
        b.invoke = wo,
        b.isArguments = ro,
        b.isArray = oo,
        b.isArrayBuffer = ao,
        b.isArrayLike = rn,
        b.isArrayLikeObject = on,
        b.isBoolean = function(t) {
            return !0 === t || !1 === t || hn(t) && E(t) == Ja
        }
        ,
        b.isBuffer = so,
        b.isDate = co,
        b.isElement = function(t) {
            return hn(t) && 1 === t.nodeType && !pn(t)
        }
        ,
        b.isEmpty = function(t) {
            if (null == t)
                return !0;
            if (rn(t) && (oo(t) || "string" == typeof t || "function" == typeof t.splice || so(t) || fo(t) || ro(t)))
                return !t.length;
            var e = fr(t);
            if (e == is || e == cs)
                return !t.size;
            if (Le(t))
                return !G(t).length;
            for (var n in t)
                if (ei.call(t, n))
                    return !1;
            return !0
        }
        ,
        b.isEqual = function(t, e) {
            return H(t, e)
        }
        ,
        b.isEqualWith = function(t, e, n) {
            var i = (n = "function" == typeof n ? n : ja) ? n(t, e) : ja;
            return i === ja ? H(t, e, ja, n) : !!i
        }
        ,
        b.isError = an,
        b.isFinite = function(t) {
            return "number" == typeof t && Ni(t)
        }
        ,
        b.isFunction = sn,
        b.isInteger = cn,
        b.isLength = un,
        b.isMap = uo,
        b.isMatch = function(t, e) {
            return t === e || F(t, e, me(e))
        }
        ,
        b.isMatchWith = function(t, e, n) {
            return n = "function" == typeof n ? n : ja,
            F(t, e, me(e), n)
        }
        ,
        b.isNaN = function(t) {
            return fn(t) && t != +t
        }
        ,
        b.isNative = function(t) {
            if (Mr(t))
                throw new Hn("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");
            return U(t)
        }
        ,
        b.isNil = function(t) {
            return null == t
        }
        ,
        b.isNull = function(t) {
            return null === t
        }
        ,
        b.isNumber = fn,
        b.isObject = ln,
        b.isObjectLike = hn,
        b.isPlainObject = pn,
        b.isRegExp = lo,
        b.isSafeInteger = function(t) {
            return cn(t) && -Ya <= t && t <= Ya
        }
        ,
        b.isSet = ho,
        b.isString = dn,
        b.isSymbol = Mn,
        b.isTypedArray = fo,
        b.isUndefined = function(t) {
            return t === ja
        }
        ,
        b.isWeakMap = function(t) {
            return hn(t) && fr(t) == hs
        }
        ,
        b.isWeakSet = function(t) {
            return hn(t) && "[object WeakSet]" == E(t)
        }
        ,
        b.join = function(t, e) {
            return null == t ? "" : qi.call(t, e)
        }
        ,
        b.kebabCase = ko,
        b.last = Ie,
        b.lastIndexOf = function(t, e, n) {
            var i = null == t ? 0 : t.length;
            if (!i)
                return -1;
            var r = i;
            return n !== ja && (r = (r = gn(n)) < 0 ? Ti(i + r, 0) : Ci(r, i - 1)),
            e == e ? function(t, e, n) {
                for (var i = n + 1; i--; )
                    if (t[i] === e)
                        return i;
                return i
            }(t, e, r) : Aa(t, _a, r, !0)
        }
        ,
        b.lowerCase = So,
        b.lowerFirst = Bo,
        b.lt = po,
        b.lte = Mo,
        b.max = function(t) {
            return t && t.length ? q(t, kn, X) : ja
        }
        ,
        b.maxBy = function(t, e) {
            return t && t.length ? q(t, Me(e, 2), X) : ja
        }
        ,
        b.mean = function(t) {
            return Oa(t, kn)
        }
        ,
        b.meanBy = function(t, e) {
            return Oa(t, Me(e, 2))
        }
        ,
        b.min = function(t) {
            return t && t.length ? q(t, kn, K) : ja
        }
        ,
        b.minBy = function(t, e) {
            return t && t.length ? q(t, Me(e, 2), K) : ja
        }
        ,
        b.stubArray = Dn,
        b.stubFalse = Rn,
        b.stubObject = function() {
            return {}
        }
        ,
        b.stubString = function() {
            return ""
        }
        ,
        b.stubTrue = function() {
            return !0
        }
        ,
        b.multiply = ea,
        b.nth = function(t, e) {
            return t && t.length ? tt(t, gn(e)) : ja
        }
        ,
        b.noConflict = function() {
            return pc._ === this && (pc._ = ai),
            this
        }
        ,
        b.noop = En,
        b.now = Yr,
        b.pad = function(t, e, n) {
            t = zn(t);
            var i = (e = gn(e)) ? Pa(t) : 0;
            if (!e || e <= i)
                return t;
            var r = (e - i) / 2;
            return Jt(Oi(r), n) + t + Jt(_i(r), n)
        }
        ,
        b.padEnd = function(t, e, n) {
            t = zn(t);
            var i = (e = gn(e)) ? Pa(t) : 0;
            return e && i < e ? t + Jt(e - i, n) : t
        }
        ,
        b.padStart = function(t, e, n) {
            t = zn(t);
            var i = (e = gn(e)) ? Pa(t) : 0;
            return e && i < e ? Jt(e - i, n) + t : t
        }
        ,
        b.parseInt = function(t, e, n) {
            return e = n || null == e ? 0 : e && +e,
            ki(zn(t).replace(Ps, ""), e || 0)
        }
        ,
        b.random = function(t, e, n) {
            var i;
            if (n && "boolean" != typeof n && _e(t, e, n) && (e = n = ja),
            n === ja && ("boolean" == typeof e ? (n = e,
            e = ja) : "boolean" == typeof t && (n = t,
            t = ja)),
            t === ja && e === ja ? (t = 0,
            e = 1) : (t = mn(t),
            e === ja ? (e = t,
            t = 0) : e = mn(e)),
            e < t && (i = t,
            t = e,
            e = i),
            n || t % 1 || e % 1) {
                var r = Si();
                return Ci(t + r * (e - t + hc("1e-" + ((r + "").length - 1))), e)
            }
            return ot(t, e)
        }
        ,
        b.reduce = function(t, e, n) {
            var i = oo(t) ? ba : La
              , r = arguments.length < 3;
            return i(t, Me(e, 4), n, r, tr)
        }
        ,
        b.reduceRight = function(t, e, n) {
            var i = oo(t) ? ma : La
              , r = arguments.length < 3;
            return i(t, Me(e, 4), n, r, er)
        }
        ,
        b.repeat = function(t, e, n) {
            return e = (n ? _e(t, e, n) : e === ja) ? 1 : gn(e),
            at(zn(t), e)
        }
        ,
        b.replace = function() {
            var t = arguments
              , e = zn(t[0]);
            return t.length < 3 ? e : e.replace(t[1], t[2])
        }
        ,
        b.result = function(t, e, n) {
            var i = -1
              , r = (e = qt(e, t)).length;
            for (r || (r = 1,
            t = ja); ++i < r; ) {
                var o = null == t ? ja : t[Se(e[i])];
                o === ja && (i = r,
                o = n),
                t = sn(o) ? o.call(t) : o
            }
            return t
        }
        ,
        b.round = na,
        b.runInContext = t,
        b.sample = function(t) {
            return (oo(t) ? a : ct)(t)
        }
        ,
        b.size = function(t) {
            if (null == t)
                return 0;
            if (rn(t))
                return dn(t) ? Pa(t) : t.length;
            var e = fr(t);
            return e == is || e == cs ? t.size : G(t).length
        }
        ,
        b.snakeCase = Eo,
        b.some = function(t, e, n) {
            var i = oo(t) ? ga : pt;
            return n && _e(t, e, n) && (e = ja),
            i(t, Me(e, 3))
        }
        ,
        b.sortedIndex = function(t, e) {
            return dt(t, e)
        }
        ,
        b.sortedIndexBy = function(t, e, n) {
            return Mt(t, e, Me(n, 2))
        }
        ,
        b.sortedIndexOf = function(t, e) {
            var n = null == t ? 0 : t.length;
            if (n) {
                var i = dt(t, e);
                if (i < n && nn(t[i], e))
                    return i
            }
            return -1
        }
        ,
        b.sortedLastIndex = function(t, e) {
            return dt(t, e, !0)
        }
        ,
        b.sortedLastIndexBy = function(t, e, n) {
            return Mt(t, e, Me(n, 2), !0)
        }
        ,
        b.sortedLastIndexOf = function(t, e) {
            if (null == t ? 0 : t.length) {
                var n = dt(t, e, !0) - 1;
                if (nn(t[n], e))
                    return n
            }
            return -1
        }
        ,
        b.startCase = Xo,
        b.startsWith = function(t, e, n) {
            return t = zn(t),
            n = null == n ? 0 : d(gn(n), 0, t.length),
            e = gt(e),
            t.slice(n, n + e.length) == e
        }
        ,
        b.subtract = ia,
        b.sum = function(t) {
            return t && t.length ? Na(t, kn) : 0
        }
        ,
        b.sumBy = function(t, e) {
            return t && t.length ? Na(t, Me(e, 2)) : 0
        }
        ,
        b.template = function(a, t, e) {
            var n = b.templateSettings;
            e && _e(a, t, e) && (t = ja),
            a = zn(a),
            t = go({}, t, n, ae);
            var s, c, i = go({}, t.imports, n.imports, ae), r = wn(i), o = Ta(i, r), u = 0, l = t.interpolate || ec, h = "__p += '", f = Gn((t.escape || ec).source + "|" + l.source + "|" + (l === xs ? Gs : ec).source + "|" + (t.evaluate || ec).source + "|$", "g"), p = "//# sourceURL=" + ("sourceURL"in t ? t.sourceURL : "lodash.templateSources[" + ++cc + "]") + "\n";
            a.replace(f, function(t, e, n, i, r, o) {
                return n = n || i,
                h += a.slice(u, o).replace(nc, Sa),
                e && (s = !0,
                h += "' +\n__e(" + e + ") +\n'"),
                r && (c = !0,
                h += "';\n" + r + ";\n__p += '"),
                n && (h += "' +\n((__t = (" + n + ")) == null ? '' : __t) +\n'"),
                u = o + t.length,
                t
            }),
            h += "';\n";
            var d = t.variable;
            d || (h = "with (obj) {\n" + h + "\n}\n"),
            h = (c ? h.replace(_s, "") : h).replace(Os, "$1").replace(ws, "$1;"),
            h = "function(" + (d || "obj") + ") {\n" + (d ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (s ? ", __e = _.escape" : "") + (c ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + h + "return __p\n}";
            var M = Po(function() {
                return Fn(r, p + "return " + h).apply(ja, o)
            });
            if (M.source = h,
            an(M))
                throw M;
            return M
        }
        ,
        b.times = function(t, e) {
            if ((t = gn(t)) < 1 || Ya < t)
                return [];
            var n = Va
              , i = Ci(t, Va);
            e = Me(e),
            t -= Va;
            for (var r = qa(i, e); ++n < t; )
                e(n);
            return r
        }
        ,
        b.toFinite = mn,
        b.toInteger = gn,
        b.toLength = vn,
        b.toLower = function(t) {
            return zn(t).toLowerCase()
        }
        ,
        b.toNumber = An,
        b.toSafeInteger = function(t) {
            return t ? d(gn(t), -Ya, Ya) : 0 === t ? t : 0
        }
        ,
        b.toString = zn,
        b.toUpper = function(t) {
            return zn(t).toUpperCase()
        }
        ,
        b.trim = function(t, e, n) {
            if ((t = zn(t)) && (n || e === ja))
                return t.replace(Rs, "");
            if (!t || !(e = gt(e)))
                return t;
            var i = Ia(t)
              , r = Ia(e);
            return Wt(i, xa(i, r), ka(i, r) + 1).join("")
        }
        ,
        b.trimEnd = function(t, e, n) {
            if ((t = zn(t)) && (n || e === ja))
                return t.replace(Is, "");
            if (!t || !(e = gt(e)))
                return t;
            var i = Ia(t);
            return Wt(i, 0, ka(i, Ia(e)) + 1).join("")
        }
        ,
        b.trimStart = function(t, e, n) {
            if ((t = zn(t)) && (n || e === ja))
                return t.replace(Ps, "");
            if (!t || !(e = gt(e)))
                return t;
            var i = Ia(t);
            return Wt(i, xa(i, Ia(e))).join("")
        }
        ,
        b.truncate = function(t, e) {
            var n, i = 30, r = "...";
            ln(e) && (n = "separator"in e ? e.separator : n,
            i = "length"in e ? gn(e.length) : i,
            r = "omission"in e ? gt(e.omission) : r);
            var o, a = (t = zn(t)).length;
            if (Ba(t) && (a = (o = Ia(t)).length),
            a <= i)
                return t;
            var s = i - Pa(r);
            if (s < 1)
                return r;
            var c, u = o ? Wt(o, 0, s).join("") : t.slice(0, s);
            if (n === ja)
                return u + r;
            if (o && (s += u.length - s),
            lo(n)) {
                if (t.slice(s).search(n)) {
                    var l, h = u;
                    for (n.global || (n = Gn(n.source, zn(Vs.exec(n)) + "g")),
                    n.lastIndex = 0; l = n.exec(h); )
                        var f = l.index;
                    u = u.slice(0, f === ja ? s : f)
                }
            } else
                t.indexOf(gt(n), s) == s || -1 < (c = u.lastIndexOf(n)) && (u = u.slice(0, c));
            return u + r
        }
        ,
        b.unescape = function(t) {
            return (t = zn(t)) && qs.test(t) ? t.replace(Ls, _c) : t
        }
        ,
        b.uniqueId = function(t) {
            var e = ++ni;
            return zn(t) + e
        }
        ,
        b.upperCase = Do,
        b.upperFirst = Ro,
        b.each = Ve,
        b.eachRight = Ke,
        b.first = Pe,
        Bn(b, ($r = {},
        C(b, function(t, e) {
            ei.call(b.prototype, e) || ($r[e] = t)
        }),
        $r), {
            chain: !1
        }),
        b.VERSION = "4.17.4",
        ca(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(t) {
            b[t].placeholder = b
        }),
        ca(["drop", "take"], function(n, i) {
            g.prototype[n] = function(t) {
                t = t === ja ? 1 : Ti(gn(t), 0);
                var e = this.__filtered__ && !i ? new g(this) : this.clone();
                return e.__filtered__ ? e.__takeCount__ = Ci(t, e.__takeCount__) : e.__views__.push({
                    size: Ci(t, Va),
                    type: n + (e.__dir__ < 0 ? "Right" : "")
                }),
                e
            }
            ,
            g.prototype[n + "Right"] = function(t) {
                return this.reverse()[n](t).reverse()
            }
        }),
        ca(["filter", "map", "takeWhile"], function(t, e) {
            var n = e + 1
              , i = 1 == n || 3 == n;
            g.prototype[t] = function(t) {
                var e = this.clone();
                return e.__iteratees__.push({
                    iteratee: Me(t, 3),
                    type: n
                }),
                e.__filtered__ = e.__filtered__ || i,
                e
            }
        }),
        ca(["head", "last"], function(t, e) {
            var n = "take" + (e ? "Right" : "");
            g.prototype[t] = function() {
                return this[n](1).value()[0]
            }
        }),
        ca(["initial", "tail"], function(t, e) {
            var n = "drop" + (e ? "" : "Right");
            g.prototype[t] = function() {
                return this.__filtered__ ? new g(this) : this[n](1)
            }
        }),
        g.prototype.compact = function() {
            return this.filter(kn)
        }
        ,
        g.prototype.find = function(t) {
            return this.filter(t).head()
        }
        ,
        g.prototype.findLast = function(t) {
            return this.reverse().find(t)
        }
        ,
        g.prototype.invokeMap = st(function(e, n) {
            return "function" == typeof e ? new g(this) : this.map(function(t) {
                return I(t, e, n)
            })
        }),
        g.prototype.reject = function(t) {
            return this.filter(en(Me(t)))
        }
        ,
        g.prototype.slice = function(t, e) {
            t = gn(t);
            var n = this;
            return n.__filtered__ && (0 < t || e < 0) ? new g(n) : (t < 0 ? n = n.takeRight(-t) : t && (n = n.drop(t)),
            e !== ja && (n = (e = gn(e)) < 0 ? n.dropRight(-e) : n.take(e - t)),
            n)
        }
        ,
        g.prototype.takeRightWhile = function(t) {
            return this.reverse().takeWhile(t).reverse()
        }
        ,
        g.prototype.toArray = function() {
            return this.take(Va)
        }
        ,
        C(g.prototype, function(h, t) {
            var f = /^(?:filter|find|map|reject)|While$/.test(t)
              , p = /^(?:head|last)$/.test(t)
              , d = b[p ? "take" + ("last" == t ? "Right" : "") : t]
              , M = p || /^find/.test(t);
            d && (b.prototype[t] = function() {
                function t(t) {
                    var e = d.apply(b, Ma([t], n));
                    return p && a ? e[0] : e
                }
                var e = this.__wrapped__
                  , n = p ? [1] : arguments
                  , i = e instanceof g
                  , r = n[0]
                  , o = i || oo(e);
                o && f && "function" == typeof r && 1 != r.length && (i = o = !1);
                var a = this.__chain__
                  , s = !!this.__actions__.length
                  , c = M && !a
                  , u = i && !s;
                if (M || !o)
                    return c && u ? h.apply(this, n) : (l = this.thru(t),
                    c ? p ? l.value()[0] : l.value() : l);
                e = u ? e : new g(this);
                var l = h.apply(e, n);
                return l.__actions__.push({
                    func: Ge,
                    args: [t],
                    thisArg: ja
                }),
                new m(l,a)
            }
            )
        }),
        ca(["pop", "push", "shift", "sort", "splice", "unshift"], function(t) {
            var n = Qn[t]
              , i = /^(?:push|sort|unshift)$/.test(t) ? "tap" : "thru"
              , r = /^(?:pop|shift)$/.test(t);
            b.prototype[t] = function() {
                var e = arguments;
                if (!r || this.__chain__)
                    return this[i](function(t) {
                        return n.apply(oo(t) ? t : [], e)
                    });
                var t = this.value();
                return n.apply(oo(t) ? t : [], e)
            }
        }),
        C(g.prototype, function(t, e) {
            var n, i = b[e];
            i && (n = i.name + "",
            (Hi[n] || (Hi[n] = [])).push({
                name: e,
                func: i
            }))
        }),
        Hi[Vt(ja, 2).name] = [{
            name: "wrapper",
            func: ja
        }],
        g.prototype.clone = function() {
            var t = new g(this.__wrapped__);
            return t.__actions__ = Et(this.__actions__),
            t.__dir__ = this.__dir__,
            t.__filtered__ = this.__filtered__,
            t.__iteratees__ = Et(this.__iteratees__),
            t.__takeCount__ = this.__takeCount__,
            t.__views__ = Et(this.__views__),
            t
        }
        ,
        g.prototype.reverse = function() {
            var t;
            return this.__filtered__ ? ((t = new g(this)).__dir__ = -1,
            t.__filtered__ = !0) : (t = this.clone()).__dir__ *= -1,
            t
        }
        ,
        g.prototype.value = function() {
            var t = this.__wrapped__.value()
              , e = this.__dir__
              , n = oo(t)
              , i = e < 0
              , r = n ? t.length : 0
              , o = function(t, e, n) {
                for (var i = -1, r = n.length; ++i < r; ) {
                    var o = n[i]
                      , a = o.size;
                    switch (o.type) {
                    case "drop":
                        t += a;
                        break;
                    case "dropRight":
                        e -= a;
                        break;
                    case "take":
                        e = Ci(e, t + a);
                        break;
                    case "takeRight":
                        t = Ti(t, e - a)
                    }
                }
                return {
                    start: t,
                    end: e
                }
            }(0, r, this.__views__)
              , a = o.start
              , s = o.end
              , c = s - a
              , u = i ? s : a - 1
              , l = this.__iteratees__
              , h = l.length
              , f = 0
              , p = Ci(c, this.__takeCount__);
            if (!n || !i && r == c && p == c)
                return _t(t, this.__actions__);
            var d = [];
            t: for (; c-- && f < p; ) {
                for (var M = -1, b = t[u += e]; ++M < h; ) {
                    var m = l[M]
                      , g = m.iteratee
                      , v = m.type
                      , A = g(b);
                    if (2 == v)
                        b = A;
                    else if (!A) {
                        if (1 == v)
                            continue t;
                        break t
                    }
                }
                d[f++] = b
            }
            return d
        }
        ,
        b.prototype.at = Xr,
        b.prototype.chain = function() {
            return Ye(this)
        }
        ,
        b.prototype.commit = function() {
            return new m(this.value(),this.__chain__)
        }
        ,
        b.prototype.next = function() {
            this.__values__ === ja && (this.__values__ = bn(this.value()));
            var t = this.__index__ >= this.__values__.length;
            return {
                done: t,
                value: t ? ja : this.__values__[this.__index__++]
            }
        }
        ,
        b.prototype.plant = function(t) {
            for (var e, n = this; n instanceof o; ) {
                var i = Ee(n);
                i.__index__ = 0,
                i.__values__ = ja,
                e ? r.__wrapped__ = i : e = i;
                var r = i
                  , n = n.__wrapped__
            }
            return r.__wrapped__ = t,
            e
        }
        ,
        b.prototype.reverse = function() {
            var t = this.__wrapped__;
            if (t instanceof g) {
                var e = t;
                return this.__actions__.length && (e = new g(this)),
                (e = e.reverse()).__actions__.push({
                    func: Ge,
                    args: [He],
                    thisArg: ja
                }),
                new m(e,this.__chain__)
            }
            return this.thru(He)
        }
        ,
        b.prototype.toJSON = b.prototype.valueOf = b.prototype.value = function() {
            return _t(this.__wrapped__, this.__actions__)
        }
        ,
        b.prototype.first = b.prototype.head,
        mi && (b.prototype[mi] = function() {
            return this
        }
        ),
        b
    }();
    "function" == typeof define && "object" == typeof define.amd && define.amd ? (pc._ = Oc,
    define(function() {
        return Oc
    })) : B ? ((B.exports = Oc)._ = Oc,
    S._ = Oc) : pc._ = Oc
}
.call(this),
function(i, r) {
    if ("function" == typeof define && define.amd)
        define(["moment", "jquery", "exports"], function(t, e, n) {
            i.daterangepicker = r(i, n, t, e)
        });
    else if ("undefined" != typeof exports) {
        var t = require("moment")
          , e = "undefined" != typeof window ? window.jQuery : void 0;
        if (!e)
            try {
                (e = require("jquery")).fn || (e.fn = {})
            } catch (t) {
                if (!e)
                    throw new Error("jQuery dependency not found")
            }
        r(i, exports, t, e)
    } else
        i.daterangepicker = r(i, {}, i.moment || moment, i.jQuery || i.Zepto || i.ender || i.$ || $)
}(this || {}, function(t, e, X, D) {
    function i(t, e, n) {
        if (this.parentEl = "body",
        this.element = D(t),
        this.startDate = X().startOf("day"),
        this.endDate = X().endOf("day"),
        this.minDate = !1,
        this.maxDate = !1,
        this.dateLimit = !1,
        this.autoApply = !1,
        this.singleDatePicker = !1,
        this.showDropdowns = !1,
        this.showWeekNumbers = !1,
        this.showISOWeekNumbers = !1,
        this.timePicker = !1,
        this.timePicker24Hour = !1,
        this.timePickerIncrement = 1,
        this.timePickerSeconds = !1,
        this.linkedCalendars = !0,
        this.autoUpdateInput = !0,
        this.alwaysShowCalendars = !1,
        this.ranges = {},
        this.opens = "right",
        this.element.hasClass("pull-right") && (this.opens = "left"),
        this.drops = "down",
        this.element.hasClass("dropup") && (this.drops = "up"),
        this.buttonClasses = "btn btn-sm",
        this.applyClass = "btn-success",
        this.cancelClass = "btn-default",
        this.locale = {
            format: "YYYY/MM/DD",
            separator: " - ",
            applyLabel: "确定",
            cancelLabel: "取消",
            weekLabel: "W",
            customRangeLabel: "自定义",
            daysOfWeek: X.weekdaysMin(),
            monthNames: X.monthsShort(),
            firstDay: X.localeData().firstDayOfWeek(),
            daysOfWeek: ["日", "一", "二", "三", "四", "五", "六"],
            monthNames: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"]
        },
        this.callback = function() {}
        ,
        this.isShowing = !1,
        this.leftCalendar = {},
        this.rightCalendar = {},
        "object" == typeof e && null !== e || (e = {}),
        "string" == typeof (e = D.extend(this.element.data(), e)).template || e.template instanceof D || (e.template = '<div class="daterangepicker dropdown-menu"><div class="ranges"></div><div class="calendar left"><div class="prev_year"><i class="icon iconfont icon-shuangxian-zuojiantou"></i></div><div class="calendar-table"></div></div><div class="calendar right"><div class="prev_month"><i class="icon iconfont icon-shuangxian-youjiantou"></i></div><div class="calendar-table"></div></div><div class="calendar calendar_1"><div class="daterangepicker_input"><input class="input-mini" type="text" name="daterangepicker_start" value="" /><div class="calendar-time"><div></div><i class="fa fa-clock-o glyphicon glyphicon-time"></i></div></div></div><div class="calendar calendar_2"><div class="daterangepicker_input"><input class="input-mini" type="text" name="daterangepicker_end" value="" /><div class="calendar-time"><div></div><i class="fa fa-clock-o glyphicon glyphicon-time"></i></div></div></div><div class="ranges ranges_1"><div class="range_inputs"><button class="applyBtn" disabled="disabled" type="button"></button> <button class="cancelBtn" type="button"></button></div></div><div class="line_date"></div><div class="line_date_2"></div><div class="all">全部日期</div></div>'),
        this.parentEl = e.parentEl && D(e.parentEl).length ? D(e.parentEl) : D(this.parentEl),
        this.container = D(e.template).appendTo(this.parentEl),
        "object" == typeof e.locale && ("string" == typeof e.locale.format && (this.locale.format = e.locale.format),
        "string" == typeof e.locale.separator && (this.locale.separator = e.locale.separator),
        "object" == typeof e.locale.daysOfWeek && (this.locale.daysOfWeek = e.locale.daysOfWeek.slice()),
        "object" == typeof e.locale.monthNames && (this.locale.monthNames = e.locale.monthNames.slice()),
        "number" == typeof e.locale.firstDay && (this.locale.firstDay = e.locale.firstDay),
        "string" == typeof e.locale.applyLabel && (this.locale.applyLabel = e.locale.applyLabel),
        "string" == typeof e.locale.cancelLabel && (this.locale.cancelLabel = e.locale.cancelLabel),
        "string" == typeof e.locale.weekLabel && (this.locale.weekLabel = e.locale.weekLabel),
        "string" == typeof e.locale.customRangeLabel && (this.locale.customRangeLabel = e.locale.customRangeLabel)),
        "string" == typeof e.startDate && (this.startDate = X(e.startDate, this.locale.format)),
        "string" == typeof e.endDate && (this.endDate = X(e.endDate, this.locale.format)),
        "string" == typeof e.minDate && (this.minDate = X(e.minDate, this.locale.format)),
        "string" == typeof e.maxDate && (this.maxDate = X(e.maxDate, this.locale.format)),
        "object" == typeof e.startDate && (this.startDate = X(e.startDate)),
        "object" == typeof e.endDate && (this.endDate = X(e.endDate)),
        "object" == typeof e.minDate && (this.minDate = X(e.minDate)),
        "object" == typeof e.maxDate && (this.maxDate = X(e.maxDate)),
        this.minDate && this.startDate.isBefore(this.minDate) && (this.startDate = this.minDate.clone()),
        this.maxDate && this.endDate.isAfter(this.maxDate) && (this.endDate = this.maxDate.clone()),
        "string" == typeof e.applyClass && (this.applyClass = e.applyClass),
        "string" == typeof e.cancelClass && (this.cancelClass = e.cancelClass),
        "object" == typeof e.dateLimit && (this.dateLimit = e.dateLimit),
        "string" == typeof e.opens && (this.opens = e.opens),
        "string" == typeof e.drops && (this.drops = e.drops),
        "boolean" == typeof e.showWeekNumbers && (this.showWeekNumbers = e.showWeekNumbers),
        "boolean" == typeof e.showISOWeekNumbers && (this.showISOWeekNumbers = e.showISOWeekNumbers),
        "string" == typeof e.buttonClasses && (this.buttonClasses = e.buttonClasses),
        "object" == typeof e.buttonClasses && (this.buttonClasses = e.buttonClasses.join(" ")),
        "boolean" == typeof e.showDropdowns && (this.showDropdowns = e.showDropdowns),
        "boolean" == typeof e.singleDatePicker && (this.singleDatePicker = e.singleDatePicker,
        this.singleDatePicker && (this.endDate = this.startDate.clone())),
        "boolean" == typeof e.timePicker && (this.timePicker = e.timePicker),
        "boolean" == typeof e.timePickerSeconds && (this.timePickerSeconds = e.timePickerSeconds),
        "number" == typeof e.timePickerIncrement && (this.timePickerIncrement = e.timePickerIncrement),
        "boolean" == typeof e.timePicker24Hour && (this.timePicker24Hour = e.timePicker24Hour),
        "boolean" == typeof e.autoApply && (this.autoApply = e.autoApply),
        "boolean" == typeof e.autoUpdateInput && (this.autoUpdateInput = e.autoUpdateInput),
        "boolean" == typeof e.linkedCalendars && (this.linkedCalendars = e.linkedCalendars),
        "function" == typeof e.isInvalidDate && (this.isInvalidDate = e.isInvalidDate),
        "boolean" == typeof e.alwaysShowCalendars && (this.alwaysShowCalendars = e.alwaysShowCalendars),
        0 != this.locale.firstDay)
            for (var i = this.locale.firstDay; 0 < i; )
                this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()),
                i--;
        var r, o, a, s, c, u, l;
        if (void 0 === e.startDate && void 0 === e.endDate && D(this.element).is("input[type=text]") && (c = r = null,
        2 == (s = (a = D(this.element).val()).split(this.locale.separator)).length ? (c = X(s[0], this.locale.format),
        r = X(s[1], this.locale.format)) : this.singleDatePicker && "" !== a && (c = X(a, this.locale.format),
        r = X(a, this.locale.format)),
        null !== c && null !== r && (this.setStartDate(c),
        this.setEndDate(r))),
        "object" == typeof e.ranges) {
            for (o in e.ranges) {
                c = "string" == typeof e.ranges[o][0] ? X(e.ranges[o][0], this.locale.format) : X(e.ranges[o][0]),
                r = "string" == typeof e.ranges[o][1] ? X(e.ranges[o][1], this.locale.format) : X(e.ranges[o][1]),
                this.minDate && c.isBefore(this.minDate) && (c = this.minDate.clone());
                var h, f, p = this.maxDate;
                this.dateLimit && c.clone().add(this.dateLimit).isAfter(p) && (p = c.clone().add(this.dateLimit)),
                p && r.isAfter(p) && (r = p.clone()),
                this.minDate && r.isBefore(this.minDate) || p && c.isAfter(p) || ((h = document.createElement("textarea")).innerHTML = o,
                f = h.value,
                this.ranges[f] = [c, r])
            }
            var d = "<ul>";
            for (o in this.ranges)
                d += "<li>" + o + "</li>";
            d += "</ul>",
            this.container.find(".ranges").prepend(d)
        }
        "function" == typeof n && (this.callback = n),
        this.timePicker || (this.startDate = this.startDate.startOf("day"),
        this.endDate = this.endDate.endOf("day"),
        this.container.find(".calendar-time").hide()),
        this.timePicker && this.autoApply && (this.autoApply = !1),
        this.autoApply && "object" != typeof e.ranges ? this.container.find(".ranges").hide() : this.autoApply && this.container.find(".applyBtn, .cancelBtn").addClass("hide"),
        this.singleDatePicker && (this.container.addClass("single"),
        this.container.find(".calendar.left").addClass("single"),
        this.container.find(".calendar.left").show(),
        this.container.find(".calendar.right").hide(),
        this.container.find(".daterangepicker_input input, .daterangepicker_input i").hide(),
        this.timePicker || this.container.find(".ranges").hide()),
        (void 0 === e.ranges && !this.singleDatePicker || this.alwaysShowCalendars) && this.container.addClass("show-calendar"),
        this.container.addClass("opens" + this.opens),
        void 0 !== e.ranges && "right" == this.opens && (l = (u = this.container.find(".ranges")).clone(),
        u.remove(),
        this.container.find(".calendar.left").parent().prepend(l)),
        this.container.find(".applyBtn, .cancelBtn").addClass(this.buttonClasses),
        this.applyClass.length && this.container.find(".applyBtn").addClass(this.applyClass),
        this.cancelClass.length && this.container.find(".cancelBtn").addClass(this.cancelClass),
        this.container.find(".applyBtn").html(this.locale.applyLabel),
        this.container.find(".cancelBtn").html(this.locale.cancelLabel),
        this.container.find(".calendar").on("click.daterangepicker", ".prev", D.proxy(this.clickPrev, this)).on("click.daterangepicker", ".next", D.proxy(this.clickNext, this)).on("click.daterangepicker", ".prev_year", D.proxy(this.clickPrevYear, this)).on("click.daterangepicker", ".prev_month", D.proxy(this.clickNextYear, this)).on("click.daterangepicker", "td.available", D.proxy(this.clickDate, this)).on("mouseenter.daterangepicker", "td.available", D.proxy(this.hoverDate, this)).on("mouseleave.daterangepicker", "td.available", D.proxy(this.updateFormInputs, this)).on("change.daterangepicker", "select.yearselect", D.proxy(this.monthOrYearChanged, this)).on("change.daterangepicker", "select.monthselect", D.proxy(this.monthOrYearChanged, this)).on("change.daterangepicker", "select.hourselect,select.minuteselect,select.secondselect,select.ampmselect", D.proxy(this.timeChanged, this)).on("click.daterangepicker", ".daterangepicker_input input", D.proxy(this.showCalendars, this)).on("change.daterangepicker", ".daterangepicker_input input", D.proxy(this.formInputsChanged, this)),
        this.container.find(".ranges").on("click.daterangepicker", "button.applyBtn", D.proxy(this.clickApply, this)).on("click.daterangepicker", "button.cancelBtn", D.proxy(this.clickCancel, this)).on("click.daterangepicker", "li", D.proxy(this.clickRange, this)),
        this.element.is("input") ? this.element.on({
            "click.daterangepicker": D.proxy(this.show, this),
            "focus.daterangepicker": D.proxy(this.show, this),
            "keyup.daterangepicker": D.proxy(this.elementChanged, this),
            "keydown.daterangepicker": D.proxy(this.keydown, this)
        }) : this.element.on("click.daterangepicker", D.proxy(this.toggle, this)),
        this.element.is("input") && !this.singleDatePicker && this.autoUpdateInput ? (this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)),
        this.element.trigger("change")) : this.element.is("input") && this.autoUpdateInput && (this.element.val(this.startDate.format(this.locale.format)),
        this.element.trigger("change"))
    }
    return i.prototype = {
        constructor: i,
        setStartDate: function(t) {
            "string" == typeof t && (this.startDate = X(t, this.locale.format)),
            "object" == typeof t && (this.startDate = X(t)),
            this.timePicker || (this.startDate = this.startDate.startOf("day")),
            this.timePicker && this.timePickerIncrement && this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement),
            this.minDate && this.startDate.isBefore(this.minDate) && (this.startDate = this.minDate),
            this.maxDate && this.startDate.isAfter(this.maxDate) && (this.startDate = this.maxDate),
            this.isShowing || this.updateElement(),
            this.updateMonthsInView()
        },
        setEndDate: function(t) {
            "string" == typeof t && (this.endDate = X(t, this.locale.format)),
            "object" == typeof t && (this.endDate = X(t)),
            this.timePicker || (this.endDate = this.endDate.endOf("day")),
            this.timePicker && this.timePickerIncrement && this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement),
            this.endDate.isBefore(this.startDate) && (this.endDate = this.startDate.clone()),
            this.maxDate && this.endDate.isAfter(this.maxDate) && (this.endDate = this.maxDate),
            this.dateLimit && this.startDate.clone().add(this.dateLimit).isBefore(this.endDate) && (this.endDate = this.startDate.clone().add(this.dateLimit)),
            this.previousRightTime = this.endDate.clone(),
            this.isShowing || this.updateElement(),
            this.updateMonthsInView()
        },
        isInvalidDate: function() {
            return !1
        },
        updateView: function() {
            this.timePicker && (this.renderTimePicker("left"),
            this.renderTimePicker("right"),
            this.endDate ? this.container.find(".right .calendar-time select").removeAttr("disabled").removeClass("disabled") : this.container.find(".right .calendar-time select").attr("disabled", "disabled").addClass("disabled")),
            this.endDate ? (this.container.find('input[name="daterangepicker_end"]').removeClass("active"),
            this.container.find('input[name="daterangepicker_start"]').addClass("active")) : (this.container.find('input[name="daterangepicker_end"]').addClass("active"),
            this.container.find('input[name="daterangepicker_start"]').removeClass("active")),
            this.updateMonthsInView(),
            this.updateCalendars(),
            this.updateFormInputs()
        },
        updateMonthsInView: function() {
            if (this.endDate) {
                if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month && (this.startDate.format("YYYY-MM") == this.leftCalendar.month.format("YYYY-MM") || this.startDate.format("YYYY-MM") == this.rightCalendar.month.format("YYYY-MM")) && (this.endDate.format("YYYY-MM") == this.leftCalendar.month.format("YYYY-MM") || this.endDate.format("YYYY-MM") == this.rightCalendar.month.format("YYYY-MM")))
                    return;
                this.leftCalendar.month = this.startDate.clone().date(2),
                this.linkedCalendars || this.endDate.month() == this.startDate.month() && this.endDate.year() == this.startDate.year() ? this.rightCalendar.month = this.startDate.clone().date(2).add(1, "month") : this.rightCalendar.month = this.endDate.clone().date(2)
            } else
                this.leftCalendar.month.format("YYYY-MM") != this.startDate.format("YYYY-MM") && this.rightCalendar.month.format("YYYY-MM") != this.startDate.format("YYYY-MM") && (this.leftCalendar.month = this.startDate.clone().date(2),
                this.rightCalendar.month = this.startDate.clone().date(2).add(1, "month"))
        },
        updateCalendars: function() {
            var t, e, n, i;
            this.timePicker && (this.endDate ? (t = parseInt(this.container.find(".left .hourselect").val(), 10),
            e = parseInt(this.container.find(".left .minuteselect").val(), 10),
            n = this.timePickerSeconds ? parseInt(this.container.find(".left .secondselect").val(), 10) : 0,
            this.timePicker24Hour || ("PM" === (i = this.container.find(".left .ampmselect").val()) && t < 12 && (t += 12),
            "AM" === i && 12 === t && (t = 0))) : (t = parseInt(this.container.find(".right .hourselect").val(), 10),
            e = parseInt(this.container.find(".right .minuteselect").val(), 10),
            n = this.timePickerSeconds ? parseInt(this.container.find(".right .secondselect").val(), 10) : 0,
            this.timePicker24Hour || ("PM" === (i = this.container.find(".right .ampmselect").val()) && t < 12 && (t += 12),
            "AM" === i && 12 === t && (t = 0))),
            this.leftCalendar.month.hour(t).minute(e).second(n),
            this.rightCalendar.month.hour(t).minute(e).second(n)),
            this.renderCalendar("left"),
            this.renderCalendar("right"),
            this.container.find(".ranges li").removeClass("active"),
            null != this.endDate && this.calculateChosenLabel()
        },
        renderCalendar: function(t) {
            var e = "left" == t ? this.leftCalendar : this.rightCalendar
              , n = e.month.month()
              , i = e.month.year()
              , r = e.month.hour()
              , o = e.month.minute()
              , a = e.month.second()
              , s = X([i, n]).daysInMonth()
              , c = X([i, n, 1])
              , u = X([i, n, s])
              , l = X(c).subtract(1, "month").month()
              , h = X(c).subtract(1, "month").year()
              , f = X([h, l]).daysInMonth()
              , p = c.day();
            (e = []).firstDay = c,
            e.lastDay = u;
            for (var d = 0; d < 6; d++)
                e[d] = [];
            var M = f - p + this.locale.firstDay + 1;
            f < M && (M -= 7),
            p == this.locale.firstDay && (M = f - 6);
            for (var b = X([h, l, M, 12, o, a]), d = 0, m = 0, g = 0; d < 42; d++,
            m++,
            b = X(b).add(24, "hour"))
                0 < d && m % 7 == 0 && (m = 0,
                g++),
                e[g][m] = b.clone().hour(r).minute(o).second(a),
                b.hour(12),
                this.minDate && e[g][m].format("YYYY/MM/DD") == this.minDate.format("YYYY/MM/DD") && e[g][m].isBefore(this.minDate) && "left" == t && (e[g][m] = this.minDate.clone()),
                this.maxDate && e[g][m].format("YYYY/MM/DD") == this.maxDate.format("YYYY/MM/DD") && e[g][m].isAfter(this.maxDate) && "right" == t && (e[g][m] = this.maxDate.clone());
            "left" == t ? this.leftCalendar.calendar = e : this.rightCalendar.calendar = e;
            var v = "left" == t ? this.minDate : this.startDate
              , A = this.maxDate
              , y = ("left" == t ? this.startDate : this.endDate,
            '<table class="table-condensed">');
            y += "<thead>",
            y += "<tr>",
            (this.showWeekNumbers || this.showISOWeekNumbers) && (y += "<th></th>"),
            v && !v.isBefore(e.firstDay) || this.linkedCalendars && "left" != t ? y += "<th></th>" : y += '<th class="prev available"><i class="icon iconfont icon-danxian-zuojiantou glyphicon"></i></th>';
            var z, _ = e[1][1].format("YYYY") + "年" + e[1][1].format("MM") + "月";
            if (this.showDropdowns) {
                for (var O = e[1][1].month(), w = e[1][1].year(), L = A && A.year() || w + 5, N = v && v.year() || w - 50, q = w == N, W = w == L, T = '<select class="monthselect">', C = 0; C < 12; C++)
                    (!q || C >= v.month()) && (!W || C <= A.month()) ? T += "<option value='" + C + "'" + (C === O ? " selected='selected'" : "") + ">" + this.locale.monthNames[C] + "</option>" : T += "<option value='" + C + "'" + (C === O ? " selected='selected'" : "") + " disabled='disabled'>" + this.locale.monthNames[C] + "</option>";
                T += "</select>";
                for (var x = '<select class="yearselect">', k = N; k <= L; k++)
                    x += '<option value="' + k + '"' + (k === w ? ' selected="selected"' : "") + ">" + k + "</option>";
                _ = (x += "</select>") + T
            }
            y += '<th colspan="5" class="month">' + _ + "</th>",
            A && !A.isAfter(e.lastDay) || this.linkedCalendars && "right" != t && !this.singleDatePicker ? y += "<th></th>" : y += '<th class="next available"><i class="icon iconfont icon-danxian-youjiantou glyphicon"></i></th>',
            y += "</tr>",
            y += "<tr>",
            (this.showWeekNumbers || this.showISOWeekNumbers) && (y += '<th class="week">' + this.locale.weekLabel + "</th>"),
            D.each(this.locale.daysOfWeek, function(t, e) {
                y += "<th>" + e + "</th>"
            }),
            y += "</tr>",
            y += "</thead>",
            y += "<tbody>",
            null == this.endDate && this.dateLimit && (z = this.startDate.clone().add(this.dateLimit).endOf("day"),
            A && !z.isBefore(A) || (A = z));
            for (g = 0; g < 6; g++) {
                y += "<tr>",
                this.showWeekNumbers ? y += '<td class="week">' + e[g][0].week() + "</td>" : this.showISOWeekNumbers && (y += '<td class="week">' + e[g][0].isoWeek() + "</td>");
                for (m = 0; m < 7; m++) {
                    var S = [];
                    e[g][m].isSame(new Date, "day") && S.push("today"),
                    5 < e[g][m].isoWeekday() && S.push("weekend"),
                    e[g][m].month() != e[1][1].month() && S.push("off"),
                    this.minDate && e[g][m].isBefore(this.minDate, "day") && S.push("off", "disabled"),
                    A && e[g][m].isAfter(A, "day") && S.push("off", "disabled"),
                    this.isInvalidDate(e[g][m]) && S.push("off", "disabled"),
                    e[g][m].format("YYYY/MM/DD") == this.startDate.format("YYYY/MM/DD") && S.push("active", "start-date"),
                    null != this.endDate && e[g][m].format("YYYY/MM/DD") == this.endDate.format("YYYY/MM/DD") && S.push("active", "end-date"),
                    null != this.endDate && e[g][m] > this.startDate && e[g][m] < this.endDate && S.push("in-range");
                    for (var B = "", E = !1, d = 0; d < S.length; d++)
                        B += S[d] + " ",
                        "disabled" == S[d] && (E = !0);
                    E || (B += "available"),
                    y += '<td class="' + B.replace(/^\s+|\s+$/g, "") + '" data-title="r' + g + "c" + m + '">' + e[g][m].date() + "</td>"
                }
                y += "</tr>"
            }
            y += "</tbody>",
            y += "</table>",
            this.container.find(".calendar." + t + " .calendar-table").html(y)
        },
        renderTimePicker: function(t) {
            var e, n, i, r, o, a = this.maxDate;
            !this.dateLimit || this.maxDate && !this.startDate.clone().add(this.dateLimit).isAfter(this.maxDate) || (a = this.startDate.clone().add(this.dateLimit)),
            "left" == t ? (n = this.startDate.clone(),
            i = this.minDate) : "right" == t && (n = this.endDate ? this.endDate.clone() : this.previousRightTime.clone(),
            i = this.startDate,
            "" != (r = this.container.find(".calendar.right .calendar-time div")).html() && (n.hour(r.find(".hourselect option:selected").val() || n.hour()),
            n.minute(r.find(".minuteselect option:selected").val() || n.minute()),
            n.second(r.find(".secondselect option:selected").val() || n.second()),
            this.timePicker24Hour || ("PM" === (o = r.find(".ampmselect option:selected").val()) && n.hour() < 12 && n.hour(n.hour() + 12),
            "AM" === o && 12 === n.hour() && n.hour(0)),
            n.isBefore(this.startDate) && (n = this.startDate.clone()),
            n.isAfter(a) && (n = a.clone()))),
            e = '<select class="hourselect">';
            for (var s = this.timePicker24Hour ? 0 : 1, c = this.timePicker24Hour ? 23 : 12, u = s; u <= c; u++) {
                var l = u;
                this.timePicker24Hour || (l = 12 <= n.hour() ? 12 == u ? 12 : u + 12 : 12 == u ? 0 : u);
                var h = n.clone().hour(l)
                  , f = !1;
                i && h.minute(59).isBefore(i) && (f = !0),
                a && h.minute(0).isAfter(a) && (f = !0),
                l != n.hour() || f ? e += f ? '<option value="' + u + '" disabled="disabled" class="disabled">' + u + "</option>" : '<option value="' + u + '">' + u + "</option>" : e += '<option value="' + u + '" selected="selected">' + u + "</option>"
            }
            e += "</select> ",
            e += ': <select class="minuteselect">';
            for (var p, d, u = 0; u < 60; u += this.timePickerIncrement) {
                var M = u < 10 ? "0" + u : u
                  , h = n.clone().minute(u)
                  , f = !1;
                i && h.second(59).isBefore(i) && (f = !0),
                a && h.second(0).isAfter(a) && (f = !0),
                n.minute() != u || f ? e += f ? '<option value="' + u + '" disabled="disabled" class="disabled">' + M + "</option>" : '<option value="' + u + '">' + M + "</option>" : e += '<option value="' + u + '" selected="selected">' + M + "</option>"
            }
            if (e += "</select> ",
            this.timePickerSeconds) {
                e += ': <select class="secondselect">';
                for (u = 0; u < 60; u++) {
                    M = u < 10 ? "0" + u : u,
                    h = n.clone().second(u),
                    f = !1;
                    i && h.isBefore(i) && (f = !0),
                    a && h.isAfter(a) && (f = !0),
                    n.second() != u || f ? e += f ? '<option value="' + u + '" disabled="disabled" class="disabled">' + M + "</option>" : '<option value="' + u + '">' + M + "</option>" : e += '<option value="' + u + '" selected="selected">' + M + "</option>"
                }
                e += "</select> "
            }
            this.timePicker24Hour || (e += '<select class="ampmselect">',
            d = p = "",
            i && n.clone().hour(12).minute(0).second(0).isBefore(i) && (p = ' disabled="disabled" class="disabled"'),
            a && n.clone().hour(0).minute(0).second(0).isAfter(a) && (d = ' disabled="disabled" class="disabled"'),
            12 <= n.hour() ? e += '<option value="AM"' + p + '>AM</option><option value="PM" selected="selected"' + d + ">PM</option>" : e += '<option value="AM" selected="selected"' + p + '>AM</option><option value="PM"' + d + ">PM</option>",
            e += "</select>"),
            this.container.find(".calendar." + t + " .calendar-time div").html(e)
        },
        updateFormInputs: function() {
            this.container.find("input[name=daterangepicker_start]").val(this.startDate.format(this.locale.format)),
            this.container.find("input[name=daterangepicker_end]").val(this.startDate.format(this.locale.format)),
            this.endDate && this.container.find("input[name=daterangepicker_end]").val(this.endDate.format(this.locale.format)),
            this.singleDatePicker || this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)),
            this.container.find("button.applyBtn").removeAttr("disabled")
        },
        move: function() {
            var t, e = {
                top: 0,
                left: 0
            }, n = D(window).width();
            this.parentEl.is("body") || (e = {
                top: this.parentEl.offset().top - this.parentEl.scrollTop(),
                left: this.parentEl.offset().left - this.parentEl.scrollLeft()
            },
            n = this.parentEl[0].clientWidth + this.parentEl.offset().left),
            t = "up" == this.drops ? this.element.offset().top - this.container.outerHeight() - e.top : this.element.offset().top + this.element.outerHeight() - e.top,
            this.container["up" == this.drops ? "addClass" : "removeClass"]("dropup"),
            "left" == this.opens ? (this.container.css({
                top: t,
                right: n - this.element.offset().left - this.element.outerWidth(),
                left: "auto"
            }),
            this.container.offset().left < 0 && this.container.css({
                right: "auto",
                left: 9
            })) : "center" == this.opens ? (this.container.css({
                top: t,
                left: this.element.offset().left - e.left + this.element.outerWidth() / 2 - this.container.outerWidth() / 2,
                right: "auto"
            }),
            this.container.offset().left < 0 && this.container.css({
                right: "auto",
                left: 9
            })) : (this.container.css({
                top: t,
                left: this.element.offset().left - e.left,
                right: "auto"
            }),
            this.container.offset().left + this.container.outerWidth() > D(window).width() && this.container.css({
                left: "auto",
                right: 0
            }))
        },
        show: function(t) {
            this.isShowing || (this._outsideClickProxy = D.proxy(function(t) {
                this.outsideClick(t)
            }, this),
            D(document).on("mousedown.daterangepicker", this._outsideClickProxy).on("touchend.daterangepicker", this._outsideClickProxy).on("click.daterangepicker", "[data-toggle=dropdown]", this._outsideClickProxy).on("focusin.daterangepicker", this._outsideClickProxy),
            D(window).on("resize.daterangepicker", D.proxy(function(t) {
                this.move(t)
            }, this)),
            this.oldStartDate = this.startDate.clone(),
            this.updateView(),
            this.container.show(),
            this.move(),
            this.element.trigger("show.daterangepicker", this),
            this.isShowing = !0,
            "全部" == D("#daterange-btn span").html() && (D(".calendar").find(".active").removeClass("active"),
            D(".calendar").find(".in-range").removeClass("in-range")))
        },
        hide: function(t) {
            this.isShowing && (this.startDate && !this.endDate ? (D("#daterange-btn span").html(this.container.find("input[name=daterangepicker_start]").val()),
            this.callback(this.startDate, this.endDate, this.chosenLabel)) : this.startDate.isSame(this.oldStartDate) && this.endDate.isSame(this.oldEndDate) || this.callback(this.startDate, this.endDate, this.chosenLabel),
            this.updateElement(),
            D(document).off(".daterangepicker"),
            D(window).off(".daterangepicker"),
            this.container.hide(),
            this.element.trigger("hide.daterangepicker", this),
            this.isShowing = !1)
        },
        toggle: function(t) {
            this.isShowing ? this.hide() : this.show()
        },
        outsideClick: function(t) {
            var e = D(t.target);
            "focusin" == t.type || e.closest(this.element).length || e.closest(this.container).length || e.closest(".calendar-table").length || this.hide()
        },
        showCalendars: function() {
            this.container.addClass("show-calendar"),
            this.move(),
            this.element.trigger("showCalendar.daterangepicker", this)
        },
        hideCalendars: function() {
            this.container.removeClass("show-calendar"),
            this.element.trigger("hideCalendar.daterangepicker", this)
        },
        hoverRange: function(t) {
            this.container.find("input[name=daterangepicker_start]").is(":focus") || this.container.find("input[name=daterangepicker_end]").is(":focus") || t.target.innerHTML == this.locale.customRangeLabel && this.updateView()
        },
        clickRange: function(t) {
            var e, n = t.target.innerHTML;
            (this.chosenLabel = n) == this.locale.customRangeLabel ? this.showCalendars() : (e = this.ranges[n],
            this.startDate = e[0],
            this.endDate = e[1],
            this.timePicker || (this.startDate.startOf("day"),
            this.endDate.endOf("day")),
            this.alwaysShowCalendars || (this.setStartDate(this.startDate),
            this.setEndDate(this.endDate),
            this.updateCalendars(),
            this.renderCalendar("left"),
            this.renderCalendar("right"),
            "全部" == n ? (D(".daterangepicker .all").css("display", "block"),
            D(".calendar").find(".active").removeClass("active"),
            D(".calendar").find(".in-range").removeClass("in-range")) : D(".daterangepicker .all").css("display", "none"),
            this.updateFormInputs()))
        },
        clickPrev: function(t) {
            D(t.target).parents(".calendar").hasClass("left") ? (this.leftCalendar.month.subtract(1, "month"),
            this.linkedCalendars && this.rightCalendar.month.subtract(1, "month")) : this.rightCalendar.month.subtract(1, "month"),
            this.updateCalendars()
        },
        clickNext: function(t) {
            D(t.target).parents(".calendar").hasClass("left") ? this.leftCalendar.month.add(1, "month") : (this.rightCalendar.month.add(1, "month"),
            this.linkedCalendars && this.leftCalendar.month.add(1, "month")),
            this.updateCalendars()
        },
        clickPrevYear: function(t) {
            D(t.target).parents(".calendar").hasClass("left") ? (this.leftCalendar.month.subtract(1, "year"),
            this.linkedCalendars && this.rightCalendar.month.subtract(1, "year")) : this.rightCalendar.month.subtract(1, "year"),
            this.updateCalendars()
        },
        clickNextYear: function(t) {
            D(t.target).parents(".calendar").hasClass("left") ? this.leftCalendar.month.add(1, "year") : (this.rightCalendar.month.add(1, "year"),
            this.linkedCalendars && this.leftCalendar.month.add(1, "year")),
            this.updateCalendars()
        },
        hoverDate: function(t) {},
        clickDate: function(t) {
            var e, n, i, r, o, a, s, c;
            D(t.target).hasClass("available") && (n = (e = D(t.target).attr("data-title")).substr(1, 1),
            i = e.substr(3, 1),
            r = D(t.target).parents(".calendar").hasClass("left") ? this.leftCalendar.calendar[n][i] : this.rightCalendar.calendar[n][i],
            this.endDate || r.isBefore(this.startDate, "day") ? (this.timePicker && (o = parseInt(this.container.find(".left .hourselect").val(), 10),
            this.timePicker24Hour || ("PM" === (a = this.container.find(".left .ampmselect").val()) && o < 12 && (o += 12),
            "AM" === a && 12 === o && (o = 0)),
            s = parseInt(this.container.find(".left .minuteselect").val(), 10),
            c = this.timePickerSeconds ? parseInt(this.container.find(".left .secondselect").val(), 10) : 0,
            r = r.clone().hour(o).minute(s).second(c)),
            this.endDate = null,
            this.setStartDate(r.clone())) : !this.endDate && r.isBefore(this.startDate) ? this.setEndDate(this.startDate.clone()) : (this.timePicker && (o = parseInt(this.container.find(".right .hourselect").val(), 10),
            this.timePicker24Hour || ("PM" === (a = this.container.find(".right .ampmselect").val()) && o < 12 && (o += 12),
            "AM" === a && 12 === o && (o = 0)),
            s = parseInt(this.container.find(".right .minuteselect").val(), 10),
            c = this.timePickerSeconds ? parseInt(this.container.find(".right .secondselect").val(), 10) : 0,
            r = r.clone().hour(o).minute(s).second(c)),
            this.setEndDate(r.clone()),
            this.autoApply && (this.calculateChosenLabel(),
            this.clickApply())),
            this.singleDatePicker && (this.setEndDate(this.startDate),
            this.timePicker || this.clickApply()),
            this.updateView())
        },
        calculateChosenLabel: function() {
            var t = !0
              , e = 0;
            for (var n in this.ranges) {
                if (this.timePicker) {
                    if (this.startDate.isSame(this.ranges[n][0]) && this.endDate.isSame(this.ranges[n][1])) {
                        t = !1,
                        this.chosenLabel = this.container.find(".ranges li:eq(" + e + ")").addClass("active").html();
                        break
                    }
                } else if (this.startDate.format("YYYY/MM/DD") == this.ranges[n][0].format("YYYY/MM/DD") && this.endDate.format("YYYY/MM/DD") == this.ranges[n][1].format("YYYY/MM/DD")) {
                    t = !1,
                    this.chosenLabel = this.container.find(".ranges li:eq(" + e + ")").addClass("active").html();
                    break
                }
                e++
            }
            t && (this.chosenLabel = this.container.find(".ranges li:last").addClass("active").html(),
            this.showCalendars())
        },
        clickApply: function(t) {
            this.element.trigger("apply.daterangepicker", this),
            this.hide()
        },
        clickCancel: function(t) {
            this.element.trigger("cancel.daterangepicker", this),
            D(document).off(".daterangepicker"),
            D(window).off(".daterangepicker"),
            this.container.hide(),
            this.element.trigger("hide.daterangepicker", this),
            this.isShowing = !1
        },
        monthOrYearChanged: function(t) {
            var e = D(t.target).closest(".calendar").hasClass("left")
              , n = e ? "left" : "right"
              , i = this.container.find(".calendar." + n)
              , r = parseInt(i.find(".monthselect").val(), 10)
              , o = i.find(".yearselect").val();
            e || (o < this.startDate.year() || o == this.startDate.year() && r < this.startDate.month()) && (r = this.startDate.month(),
            o = this.startDate.year()),
            this.minDate && (o < this.minDate.year() || o == this.minDate.year() && r < this.minDate.month()) && (r = this.minDate.month(),
            o = this.minDate.year()),
            this.maxDate && (o > this.maxDate.year() || o == this.maxDate.year() && r > this.maxDate.month()) && (r = this.maxDate.month(),
            o = this.maxDate.year()),
            e ? (this.leftCalendar.month.month(r).year(o),
            this.linkedCalendars && (this.rightCalendar.month = this.leftCalendar.month.clone().add(1, "month"))) : (this.rightCalendar.month.month(r).year(o),
            this.linkedCalendars && (this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, "month"))),
            this.updateCalendars()
        },
        timeChanged: function(t) {
            var e, n, i, r = D(t.target).closest(".calendar"), o = r.hasClass("left"), a = parseInt(r.find(".hourselect").val(), 10), s = parseInt(r.find(".minuteselect").val(), 10), c = this.timePickerSeconds ? parseInt(r.find(".secondselect").val(), 10) : 0;
            this.timePicker24Hour || ("PM" === (e = r.find(".ampmselect").val()) && a < 12 && (a += 12),
            "AM" === e && 12 === a && (a = 0)),
            o ? ((n = this.startDate.clone()).hour(a),
            n.minute(s),
            n.second(c),
            this.setStartDate(n),
            this.singleDatePicker ? this.endDate = this.startDate.clone() : this.endDate && this.endDate.format("YYYY/MM/DD") == n.format("YYYY/MM/DD") && this.endDate.isBefore(n) && this.setEndDate(n.clone())) : this.endDate && ((i = this.endDate.clone()).hour(a),
            i.minute(s),
            i.second(c),
            this.setEndDate(i)),
            this.updateCalendars(),
            this.updateFormInputs(),
            this.renderTimePicker("left"),
            this.renderTimePicker("right")
        },
        formInputsChanged: function(t) {
            var e = D(t.target).closest(".calendar").hasClass("right")
              , n = X(this.container.find('input[name="daterangepicker_start"]').val(), this.locale.format)
              , i = X(this.container.find('input[name="daterangepicker_end"]').val(), this.locale.format);
            n.isValid() && i.isValid() && (e && i.isBefore(n) && (n = i.clone()),
            this.setStartDate(n),
            this.setEndDate(i),
            e ? this.container.find('input[name="daterangepicker_start"]').val(this.startDate.format(this.locale.format)) : this.container.find('input[name="daterangepicker_end"]').val(this.endDate.format(this.locale.format))),
            this.updateCalendars(),
            this.timePicker && (this.renderTimePicker("left"),
            this.renderTimePicker("right"))
        },
        elementChanged: function() {
            var t, e, n;
            this.element.is("input") && this.element.val().length && (this.element.val().length < this.locale.format.length || (n = e = null,
            2 === (t = this.element.val().split(this.locale.separator)).length && (e = X(t[0], this.locale.format),
            n = X(t[1], this.locale.format)),
            !this.singleDatePicker && null !== e && null !== n || (n = e = X(this.element.val(), this.locale.format)),
            e.isValid() && n.isValid() && (this.setStartDate(e),
            this.setEndDate(n),
            this.updateView())))
        },
        keydown: function(t) {
            9 !== t.keyCode && 13 !== t.keyCode || this.hide()
        },
        updateElement: function() {
            this.element.is("input") && !this.singleDatePicker && this.autoUpdateInput ? (this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)),
            this.element.trigger("change")) : this.element.is("input") && this.autoUpdateInput && (this.element.val(this.startDate.format(this.locale.format)),
            this.element.trigger("change"))
        },
        remove: function() {
            this.container.remove(),
            this.element.off(".daterangepicker"),
            this.element.removeData()
        }
    },
    D.fn.daterangepicker = function(e, n) {
        return this.each(function() {
            var t = D(this);
            t.data("daterangepicker") && t.data("daterangepicker").remove(),
            t.data("daterangepicker", new i(t,e,n))
        }),
        this
    }
    ,
    i
}),
function(t, e) {
    "object" == typeof exports ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : t.jStat = e()
}(this, function() {
    var b, m, _, O, g, M, s, c, r, e, u, l, h, a, n, f = function(s, c) {
        var e = Array.prototype.concat
          , t = Array.prototype.slice
          , n = Object.prototype.toString;
        function u(t, e) {
            var n = e < t ? t : e;
            return s.pow(10, 17 - ~~(s.log(0 < n ? n : -n) * s.LOG10E))
        }
        var l = Array.isArray || function(t) {
            return "[object Array]" === n.call(t)
        }
        ;
        function h(t) {
            return "[object Function]" === n.call(t)
        }
        function f(t) {
            return "number" == typeof t && t - t == 0
        }
        function p() {
            return new p._init(arguments)
        }
        function i() {
            return 0
        }
        function r() {
            return 1
        }
        function o(t, e) {
            return t === e ? 1 : 0
        }
        function a(t, e, n, i) {
            var r, o = [], a = t.length;
            if (e === c && n === c && i === c)
                return p.copy(t);
            if (i = i || 1,
            (e = 0 <= (e = e || 0) ? e : a + e) === (n = 0 <= (n = n || t.length) ? n : a + n) || 0 === i)
                return [];
            if (e < n && i < 0)
                return [];
            if (n < e && 0 < i)
                return [];
            if (0 < i)
                for (r = e; r < n; r += i)
                    o.push(t[r]);
            else
                for (r = e; n < r; r += i)
                    o.push(t[r]);
            return o
        }
        p.fn = p.prototype,
        p._init = function(t) {
            if (l(t[0]))
                if (l(t[0][0])) {
                    h(t[1]) && (t[0] = p.map(t[0], t[1]));
                    for (var e = 0; e < t[0].length; e++)
                        this[e] = t[0][e];
                    this.length = t[0].length
                } else
                    this[0] = h(t[1]) ? p.map(t[0], t[1]) : t[0],
                    this.length = 1;
            else if (f(t[0]))
                this[0] = p.seq.apply(null, t),
                this.length = 1;
            else {
                if (t[0]instanceof p)
                    return p(t[0].toArray());
                this[0] = [],
                this.length = 1
            }
            return this
        }
        ,
        p._init.prototype = p.prototype,
        (p._init.constructor = p).utils = {
            calcRdx: u,
            isArray: l,
            isFunction: h,
            isNumber: f,
            toVector: function(t) {
                return e.apply([], t)
            }
        },
        p._random_fn = s.random,
        p.setRandom = function(t) {
            if ("function" != typeof t)
                throw new TypeError("fn is not a function");
            p._random_fn = t
        }
        ,
        p.extend = function(t) {
            var e, n;
            if (1 === arguments.length) {
                for (n in t)
                    p[n] = t[n];
                return this
            }
            for (e = 1; e < arguments.length; e++)
                for (n in arguments[e])
                    t[n] = arguments[e][n];
            return t
        }
        ,
        p.rows = function(t) {
            return t.length || 1
        }
        ,
        p.cols = function(t) {
            return t[0].length || 1
        }
        ,
        p.dimensions = function(t) {
            return {
                rows: p.rows(t),
                cols: p.cols(t)
            }
        }
        ,
        p.row = function(e, t) {
            return l(t) ? t.map(function(t) {
                return p.row(e, t)
            }) : e[t]
        }
        ,
        p.rowa = function(t, e) {
            return p.row(t, e)
        }
        ,
        p.col = function(i, t) {
            if (l(t)) {
                var r = p.arange(i.length).map(function() {
                    return new Array(t.length)
                });
                return t.forEach(function(e, n) {
                    p.arange(i.length).forEach(function(t) {
                        r[t][n] = i[t][e]
                    })
                }),
                r
            }
            for (var e = new Array(i.length), n = 0; n < i.length; n++)
                e[n] = [i[n][t]];
            return e
        }
        ,
        p.cola = function(t, e) {
            return p.col(t, e).map(function(t) {
                return t[0]
            })
        }
        ,
        p.diag = function(t) {
            for (var e = p.rows(t), n = new Array(e), i = 0; i < e; i++)
                n[i] = [t[i][i]];
            return n
        }
        ,
        p.antidiag = function(t) {
            for (var e = p.rows(t) - 1, n = new Array(e), i = 0; 0 <= e; e--,
            i++)
                n[i] = [t[i][e]];
            return n
        }
        ,
        p.transpose = function(t) {
            var e, n, i, r, o, a = [];
            for (l(t[0]) || (t = [t]),
            n = t.length,
            i = t[0].length,
            o = 0; o < i; o++) {
                for (e = new Array(n),
                r = 0; r < n; r++)
                    e[r] = t[r][o];
                a.push(e)
            }
            return 1 === a.length ? a[0] : a
        }
        ,
        p.map = function(t, e, n) {
            var i, r, o, a, s;
            for (l(t[0]) || (t = [t]),
            r = t.length,
            o = t[0].length,
            a = n ? t : new Array(r),
            i = 0; i < r; i++)
                for (a[i] || (a[i] = new Array(o)),
                s = 0; s < o; s++)
                    a[i][s] = e(t[i][s], i, s);
            return 1 === a.length ? a[0] : a
        }
        ,
        p.cumreduce = function(t, e, n) {
            var i, r, o, a, s;
            for (l(t[0]) || (t = [t]),
            r = t.length,
            o = t[0].length,
            a = n ? t : new Array(r),
            i = 0; i < r; i++)
                for (a[i] || (a[i] = new Array(o)),
                0 < o && (a[i][0] = t[i][0]),
                s = 1; s < o; s++)
                    a[i][s] = e(a[i][s - 1], t[i][s]);
            return 1 === a.length ? a[0] : a
        }
        ,
        p.alter = function(t, e) {
            return p.map(t, e, !0)
        }
        ,
        p.create = function(t, e, n) {
            var i, r, o = new Array(t);
            for (h(e) && (n = e,
            e = t),
            i = 0; i < t; i++)
                for (o[i] = new Array(e),
                r = 0; r < e; r++)
                    o[i][r] = n(i, r);
            return o
        }
        ,
        p.zeros = function(t, e) {
            return f(e) || (e = t),
            p.create(t, e, i)
        }
        ,
        p.ones = function(t, e) {
            return f(e) || (e = t),
            p.create(t, e, r)
        }
        ,
        p.rand = function(t, e) {
            return f(e) || (e = t),
            p.create(t, e, p._random_fn)
        }
        ,
        p.identity = function(t, e) {
            return f(e) || (e = t),
            p.create(t, e, o)
        }
        ,
        p.symmetric = function(t) {
            var e, n, i = t.length;
            if (t.length !== t[0].length)
                return !1;
            for (e = 0; e < i; e++)
                for (n = 0; n < i; n++)
                    if (t[n][e] !== t[e][n])
                        return !1;
            return !0
        }
        ,
        p.clear = function(t) {
            return p.alter(t, i)
        }
        ,
        p.seq = function(t, e, n, i) {
            h(i) || (i = !1);
            for (var r = [], o = u(t, e), a = (e * o - t * o) / ((n - 1) * o), s = t, c = 0; s <= e && c < n; s = (t * o + a * o * ++c) / o)
                r.push(i ? i(s, c) : s);
            return r
        }
        ,
        p.arange = function(t, e, n) {
            var i, r = [];
            if (n = n || 1,
            e === c && (e = t,
            t = 0),
            t === e || 0 === n)
                return [];
            if (t < e && n < 0)
                return [];
            if (e < t && 0 < n)
                return [];
            if (0 < n)
                for (i = t; i < e; i += n)
                    r.push(i);
            else
                for (i = t; e < i; i += n)
                    r.push(i);
            return r
        }
        ,
        p.slice = function(t, e) {
            var n, i;
            return f((e = e || {}).row) ? f(e.col) ? t[e.row][e.col] : a(p.rowa(t, e.row), (n = e.col || {}).start, n.end, n.step) : f(e.col) ? a(p.cola(t, e.col), (i = e.row || {}).start, i.end, i.step) : (i = e.row || {},
            n = e.col || {},
            a(t, i.start, i.end, i.step).map(function(t) {
                return a(t, n.start, n.end, n.step)
            }))
        }
        ,
        p.sliceAssign = function(r, t, o) {
            var e, n;
            if (f(t.row)) {
                if (f(t.col))
                    return r[t.row][t.col] = o;
                t.col = t.col || {},
                t.col.start = t.col.start || 0,
                t.col.end = t.col.end || r[0].length,
                t.col.step = t.col.step || 1,
                e = p.arange(t.col.start, s.min(r.length, t.col.end), t.col.step);
                var i = t.row;
                return e.forEach(function(t, e) {
                    r[i][t] = o[e]
                }),
                r
            }
            if (f(t.col)) {
                t.row = t.row || {},
                t.row.start = t.row.start || 0,
                t.row.end = t.row.end || r.length,
                t.row.step = t.row.step || 1,
                n = p.arange(t.row.start, s.min(r[0].length, t.row.end), t.row.step);
                var a = t.col;
                return n.forEach(function(t, e) {
                    r[t][a] = o[e]
                }),
                r
            }
            return o[0].length === c && (o = [o]),
            t.row.start = t.row.start || 0,
            t.row.end = t.row.end || r.length,
            t.row.step = t.row.step || 1,
            t.col.start = t.col.start || 0,
            t.col.end = t.col.end || r[0].length,
            t.col.step = t.col.step || 1,
            n = p.arange(t.row.start, s.min(r.length, t.row.end), t.row.step),
            e = p.arange(t.col.start, s.min(r[0].length, t.col.end), t.col.step),
            n.forEach(function(n, i) {
                e.forEach(function(t, e) {
                    r[n][t] = o[i][e]
                })
            }),
            r
        }
        ,
        p.diagonal = function(t) {
            var n = p.zeros(t.length, t.length);
            return t.forEach(function(t, e) {
                n[e][e] = t
            }),
            n
        }
        ,
        p.copy = function(t) {
            return t.map(function(t) {
                return f(t) ? t : t.map(function(t) {
                    return t
                })
            })
        }
        ;
        var d = p.prototype;
        return d.length = 0,
        d.push = Array.prototype.push,
        d.sort = Array.prototype.sort,
        d.splice = Array.prototype.splice,
        d.slice = Array.prototype.slice,
        d.toArray = function() {
            return 1 < this.length ? t.call(this) : t.call(this)[0]
        }
        ,
        d.map = function(t, e) {
            return p(p.map(this, t, e))
        }
        ,
        d.cumreduce = function(t, e) {
            return p(p.cumreduce(this, t, e))
        }
        ,
        d.alter = function(t) {
            return p.alter(this, t),
            this
        }
        ,
        function(t) {
            for (var e = 0; e < t.length; e++)
                !function(i) {
                    d[i] = function(t) {
                        var e, n = this;
                        return t ? (setTimeout(function() {
                            t.call(n, d[i].call(n))
                        }),
                        this) : (e = p[i](this),
                        l(e) ? p(e) : e)
                    }
                }(t[e])
        }("transpose clear symmetric rows cols dimensions diag antidiag".split(" ")),
        function(t) {
            for (var e = 0; e < t.length; e++)
                !function(i) {
                    d[i] = function(t, e) {
                        var n = this;
                        return e ? (setTimeout(function() {
                            e.call(n, d[i].call(n, t))
                        }),
                        this) : p(p[i](this, t))
                    }
                }(t[e])
        }("row col".split(" ")),
        function(t) {
            for (var e = 0; e < t.length; e++)
                !function(t) {
                    d[t] = function() {
                        return p(p[t].apply(null, arguments))
                    }
                }(t[e])
        }("create zeros ones rand identity".split(" ")),
        p
    }(Math);
    function p(t, e, n, i) {
        for (var r, o = 0, a = 1, s = 1, c = 1, u = 0, l = 0; O.abs((s - l) / s) > i; )
            a = c + (r = -(e + u) * (e + n + u) * t / (e + 2 * u) / (e + 2 * u + 1)) * a,
            s = (o = (l = s) + r * o) + (r = (u += 1) * (n - u) * t / (e + 2 * u - 1) / (e + 2 * u)) * s,
            o /= c = a + r * c,
            a /= c,
            s /= c,
            c = 1;
        return s / e
    }
    function v(t, e, n) {
        var i = [.9815606342467192, .9041172563704749, .7699026741943047, .5873179542866175, .3678314989981802, .1252334085114689]
          , r = [.04717533638651183, .10693932599531843, .16007832854334622, .20316742672306592, .2334925365383548, .24914704581340277]
          , o = .5 * t;
        if (8 <= o)
            return 1;
        for (var a = (a = 2 * _.normal.cdf(o, 0, 1, 1, 0) - 1) >= O.exp(-50 / n) ? O.pow(a, n) : 0, s = 3 < t ? 2 : 3, c = o, u = (8 - o) / s, l = c + u, h = 0, f = n - 1, p = 1; p <= s; p++) {
            for (var d = 0, M = .5 * (l + c), b = .5 * (l - c), m = 1; m <= 12; m++) {
                var g, v = 6 < m ? i[(g = 12 - m + 1) - 1] : -i[(g = m) - 1], A = M + b * v, y = A * A;
                if (60 < y)
                    break;
                var z = .5 * (2 * _.normal.cdf(A, 0, 1, 1, 0)) - .5 * (2 * _.normal.cdf(A, t, 1, 1, 0));
                z >= O.exp(-30 / f) && (d += r[g - 1] * O.exp(-.5 * y) * O.pow(z, f))
            }
            h += d *= 2 * b * n / O.sqrt(2 * O.PI),
            c = l,
            l += u
        }
        return (a += h) <= O.exp(-30 / e) ? 0 : 1 <= (a = O.pow(a, e)) ? 1 : a
    }
    function d(t) {
        return e(t) || t instanceof g
    }
    function o(t, e, n, i) {
        if (1 < t || 1 < n || t <= 0 || n <= 0)
            throw new Error("Proportions should be greater than 0 and less than 1");
        var r = (t * e + n * i) / (e + i);
        return (t - n) / l.sqrt(r * (1 - r) * (1 / e + 1 / i))
    }
    function A(t, e) {
        var n = t.length
          , i = e[0].length - 1
          , r = n - i - 1
          , o = f.lstsq(e, t)
          , a = f.multiply(e, o.map(function(t) {
            return [t]
        })).map(function(t) {
            return t[0]
        })
          , s = f.subtract(t, a)
          , c = f.mean(t)
          , u = f.sum(a.map(function(t) {
            return Math.pow(t - c, 2)
        }))
          , l = f.sum(t.map(function(t, e) {
            return Math.pow(t - a[e], 2)
        }))
          , h = u + l;
        return {
            exog: e,
            endog: t,
            nobs: n,
            df_model: i,
            df_resid: r,
            coef: o,
            predict: a,
            resid: s,
            ybar: c,
            SST: h,
            SSE: u,
            SSR: l,
            R2: u / h
        }
    }
    function y(n) {
        var i, r, t = (i = n.exog,
        r = i[0].length,
        f.arange(r).map(function(e) {
            var t = f.arange(r).filter(function(t) {
                return t !== e
            });
            return A(f.col(i, e).map(function(t) {
                return t[0]
            }), f.col(i, t))
        })), o = Math.sqrt(n.SSR / n.df_resid), a = t.map(function(t) {
            var e = t.SST
              , n = t.R2;
            return o / Math.sqrt(e * (1 - n))
        }), e = n.coef.map(function(t, e) {
            return t / a[e]
        }), s = e.map(function(t) {
            var e = f.studentt.cdf(t, n.df_resid);
            return 2 * (.5 < e ? 1 - e : e)
        }), c = f.studentt.inv(.975, n.df_resid), u = n.coef.map(function(t, e) {
            var n = c * a[e];
            return [t - n, t + n]
        });
        return {
            se: a,
            t: e,
            p: s,
            sigmaHat: o,
            interval95: u
        }
    }
    return function(c, f) {
        var u = c.utils.isFunction;
        function p(t, e) {
            return t - e
        }
        function d(t, e, n) {
            return f.max(e, f.min(t, n))
        }
        c.sum = function(t) {
            for (var e = 0, n = t.length; 0 <= --n; )
                e += t[n];
            return e
        }
        ,
        c.sumsqrd = function(t) {
            for (var e = 0, n = t.length; 0 <= --n; )
                e += t[n] * t[n];
            return e
        }
        ,
        c.sumsqerr = function(t) {
            for (var e, n = c.mean(t), i = 0, r = t.length; 0 <= --r; )
                i += (e = t[r] - n) * e;
            return i
        }
        ,
        c.sumrow = function(t) {
            for (var e = 0, n = t.length; 0 <= --n; )
                e += t[n];
            return e
        }
        ,
        c.product = function(t) {
            for (var e = 1, n = t.length; 0 <= --n; )
                e *= t[n];
            return e
        }
        ,
        c.min = function(t) {
            for (var e = t[0], n = 0; ++n < t.length; )
                t[n] < e && (e = t[n]);
            return e
        }
        ,
        c.max = function(t) {
            for (var e = t[0], n = 0; ++n < t.length; )
                t[n] > e && (e = t[n]);
            return e
        }
        ,
        c.unique = function(t) {
            for (var e = {}, n = [], i = 0; i < t.length; i++)
                e[t[i]] || (e[t[i]] = !0,
                n.push(t[i]));
            return n
        }
        ,
        c.mean = function(t) {
            return c.sum(t) / t.length
        }
        ,
        c.meansqerr = function(t) {
            return c.sumsqerr(t) / t.length
        }
        ,
        c.geomean = function(t) {
            return f.pow(c.product(t), 1 / t.length)
        }
        ,
        c.median = function(t) {
            var e = t.length
              , n = t.slice().sort(p);
            return 1 & e ? n[e / 2 | 0] : (n[e / 2 - 1] + n[e / 2]) / 2
        }
        ,
        c.cumsum = function(t) {
            return c.cumreduce(t, function(t, e) {
                return t + e
            })
        }
        ,
        c.cumprod = function(t) {
            return c.cumreduce(t, function(t, e) {
                return t * e
            })
        }
        ,
        c.diff = function(t) {
            for (var e = [], n = t.length, i = 1; i < n; i++)
                e.push(t[i] - t[i - 1]);
            return e
        }
        ,
        c.rank = function(t) {
            for (var e = [], n = {}, i = 0; i < t.length; i++) {
                n[s = t[i]] ? n[s]++ : (n[s] = 1,
                e.push(s))
            }
            var r = e.sort(p)
              , o = {}
              , a = 1;
            for (i = 0; i < r.length; i++) {
                var s, c = n[s = r[i]], u = (a + (a + c - 1)) / 2;
                o[s] = u,
                a += c
            }
            return t.map(function(t) {
                return o[t]
            })
        }
        ,
        c.mode = function(t) {
            for (var e = t.length, n = t.slice().sort(p), i = 1, r = 0, o = 0, a = [], s = 0; s < e; s++)
                n[s] === n[s + 1] ? i++ : (r < i ? (a = [n[s]],
                r = i,
                o = 0) : i === r && (a.push(n[s]),
                o++),
                i = 1);
            return 0 === o ? a[0] : a
        }
        ,
        c.range = function(t) {
            return c.max(t) - c.min(t)
        }
        ,
        c.variance = function(t, e) {
            return c.sumsqerr(t) / (t.length - (e ? 1 : 0))
        }
        ,
        c.pooledvariance = function(t) {
            return t.reduce(function(t, e) {
                return t + c.sumsqerr(e)
            }, 0) / (t.reduce(function(t, e) {
                return t + e.length
            }, 0) - t.length)
        }
        ,
        c.deviation = function(t) {
            for (var e = c.mean(t), n = t.length, i = new Array(n), r = 0; r < n; r++)
                i[r] = t[r] - e;
            return i
        }
        ,
        c.stdev = function(t, e) {
            return f.sqrt(c.variance(t, e))
        }
        ,
        c.pooledstdev = function(t) {
            return f.sqrt(c.pooledvariance(t))
        }
        ,
        c.meandev = function(t) {
            for (var e = c.mean(t), n = [], i = t.length - 1; 0 <= i; i--)
                n.push(f.abs(t[i] - e));
            return c.mean(n)
        }
        ,
        c.meddev = function(t) {
            for (var e = c.median(t), n = [], i = t.length - 1; 0 <= i; i--)
                n.push(f.abs(t[i] - e));
            return c.median(n)
        }
        ,
        c.coeffvar = function(t) {
            return c.stdev(t) / c.mean(t)
        }
        ,
        c.quartiles = function(t) {
            var e = t.length
              , n = t.slice().sort(p);
            return [n[f.round(e / 4) - 1], n[f.round(e / 2) - 1], n[f.round(3 * e / 4) - 1]]
        }
        ,
        c.quantiles = function(t, e, n, i) {
            var r, o, a, s, c, u = t.slice().sort(p), l = [e.length], h = t.length;
            for (void 0 === n && (n = 3 / 8),
            void 0 === i && (i = 3 / 8),
            r = 0; r < e.length; r++)
                a = h * (o = e[r]) + (n + o * (1 - n - i)),
                s = f.floor(d(a, 1, h - 1)),
                c = d(a - s, 0, 1),
                l[r] = (1 - c) * u[s - 1] + c * u[s];
            return l
        }
        ,
        c.percentile = function(t, e, n) {
            var i = t.slice().sort(p)
              , r = e * (i.length + (n ? 1 : -1)) + (n ? 0 : 1)
              , o = parseInt(r)
              , a = r - o;
            return o + 1 < i.length ? i[o - 1] + a * (i[o] - i[o - 1]) : i[o - 1]
        }
        ,
        c.percentileOfScore = function(t, e, n) {
            for (var i, r = 0, o = t.length, a = "strict" === n ? !0 : !1, s = 0; s < o; s++)
                i = t[s],
                (a && i < e || !a && i <= e) && r++;
            return r / o
        }
        ,
        c.histogram = function(t, e) {
            e = e || 4;
            for (var n = c.min(t), i = (c.max(t) - n) / e, r = t.length, o = [], a = 0; a < e; a++)
                o[a] = 0;
            for (a = 0; a < r; a++)
                o[f.min(f.floor((t[a] - n) / i), e - 1)] += 1;
            return o
        }
        ,
        c.covariance = function(t, e) {
            for (var n = c.mean(t), i = c.mean(e), r = t.length, o = new Array(r), a = 0; a < r; a++)
                o[a] = (t[a] - n) * (e[a] - i);
            return c.sum(o) / (r - 1)
        }
        ,
        c.corrcoeff = function(t, e) {
            return c.covariance(t, e) / c.stdev(t, 1) / c.stdev(e, 1)
        }
        ,
        c.spearmancoeff = function(t, e) {
            return t = c.rank(t),
            e = c.rank(e),
            c.corrcoeff(t, e)
        }
        ,
        c.stanMoment = function(t, e) {
            for (var n = c.mean(t), i = c.stdev(t), r = t.length, o = 0, a = 0; a < r; a++)
                o += f.pow((t[a] - n) / i, e);
            return o / t.length
        }
        ,
        c.skewness = function(t) {
            return c.stanMoment(t, 3)
        }
        ,
        c.kurtosis = function(t) {
            return c.stanMoment(t, 4) - 3
        }
        ;
        var l = c.prototype;
        !function(t) {
            for (var e = 0; e < t.length; e++)
                !function(o) {
                    l[o] = function(t, e) {
                        var n = []
                          , i = 0
                          , r = this;
                        if (u(t) && (e = t,
                        t = !1),
                        e)
                            return setTimeout(function() {
                                e.call(r, l[o].call(r, t))
                            }),
                            this;
                        if (1 < this.length) {
                            for (r = !0 === t ? this : this.transpose(); i < r.length; i++)
                                n[i] = c[o](r[i]);
                            return n
                        }
                        return c[o](this[0], t)
                    }
                }(t[e])
        }("cumsum cumprod".split(" ")),
        function(t) {
            for (var e = 0; e < t.length; e++)
                !function(o) {
                    l[o] = function(t, e) {
                        var n = []
                          , i = 0
                          , r = this;
                        if (u(t) && (e = t,
                        t = !1),
                        e)
                            return setTimeout(function() {
                                e.call(r, l[o].call(r, t))
                            }),
                            this;
                        if (1 < this.length) {
                            for ("sumrow" !== o && (r = !0 === t ? this : this.transpose()); i < r.length; i++)
                                n[i] = c[o](r[i]);
                            return !0 === t ? c[o](c.utils.toVector(n)) : n
                        }
                        return c[o](this[0], t)
                    }
                }(t[e])
        }("sum sumsqrd sumsqerr sumrow product min max unique mean meansqerr geomean median diff rank mode range variance deviation stdev meandev meddev coeffvar quartiles histogram skewness kurtosis".split(" ")),
        function(t) {
            for (var e = 0; e < t.length; e++)
                !function(s) {
                    l[s] = function() {
                        var t, e = [], n = 0, i = this, r = Array.prototype.slice.call(arguments);
                        if (u(r[r.length - 1])) {
                            t = r[r.length - 1];
                            var o = r.slice(0, r.length - 1);
                            return setTimeout(function() {
                                t.call(i, l[s].apply(i, o))
                            }),
                            this
                        }
                        t = void 0;
                        var a = function(t) {
                            return c[s].apply(i, [t].concat(r))
                        };
                        if (1 < this.length) {
                            for (i = i.transpose(); n < i.length; n++)
                                e[n] = a(i[n]);
                            return e
                        }
                        return a(this[0])
                    }
                }(t[e])
        }("quantiles percentileOfScore".split(" "))
    }(f, Math),
    b = f,
    m = Math,
    b.gammaln = function(t) {
        var e, n, i = 0, r = [76.18009172947146, -86.50532032941678, 24.01409824083091, -1.231739572450155, .001208650973866179, -5395239384953e-18], o = 1.000000000190015, a = (n = e = t) + 5.5;
        for (a -= (e + .5) * m.log(a); i < 6; i++)
            o += r[i] / ++n;
        return m.log(2.5066282746310007 * o / e) - a
    }
    ,
    b.loggam = function(t) {
        var e, n, i, r, o, a = [.08333333333333333, -.002777777777777778, .0007936507936507937, -.0005952380952380952, .0008417508417508418, -.001917526917526918, .00641025641025641, -.02955065359477124, .1796443723688307, -1.3924322169059], s = t, c = 0;
        if (1 == t || 2 == t)
            return 0;
        for (t <= 7 && (s = t + (c = m.floor(7 - t))),
        e = 1 / (s * s),
        n = 2 * m.PI,
        r = a[9],
        o = 8; 0 <= o; o--)
            r *= e,
            r += a[o];
        if (i = r / s + .5 * m.log(n) + (s - .5) * m.log(s) - s,
        t <= 7)
            for (o = 1; o <= c; o++)
                i -= m.log(s - 1),
                --s;
        return i
    }
    ,
    b.gammafn = function(t) {
        var e, n, i, r, o = [-1.716185138865495, 24.76565080557592, -379.80425647094563, 629.3311553128184, 866.9662027904133, -31451.272968848367, -36144.413418691176, 66456.14382024054], a = [-30.8402300119739, 315.35062697960416, -1015.1563674902192, -3107.771671572311, 22538.11842098015, 4755.846277527881, -134659.9598649693, -115132.2596755535], s = !1, c = 0, u = 0, l = 0, h = t;
        if (171.6243769536076 < t)
            return 1 / 0;
        if (h <= 0) {
            if (!(r = h % 1 + 36e-17))
                return 1 / 0;
            s = (1 & h ? -1 : 1) * m.PI / m.sin(m.PI * r),
            h = 1 - h
        }
        for (n = (i = h) < 1 ? h++ : (h -= c = (0 | h) - 1) - 1,
        e = 0; e < 8; ++e)
            l = (l + o[e]) * n,
            u = u * n + a[e];
        if (r = l / u + 1,
        i < h)
            r /= i;
        else if (h < i)
            for (e = 0; e < c; ++e)
                r *= h,
                h++;
        return s && (r = s / r),
        r
    }
    ,
    b.gammap = function(t, e) {
        return b.lowRegGamma(t, e) * b.gammafn(t)
    }
    ,
    b.lowRegGamma = function(t, e) {
        var n, i = b.gammaln(t), r = t, o = 1 / t, a = o, s = e + 1 - t, c = 1 / 1e-30, u = 1 / s, l = u, h = 1, f = -~(8.5 * m.log(1 <= t ? t : 1 / t) + .4 * t + 17);
        if (e < 0 || t <= 0)
            return NaN;
        if (e < t + 1) {
            for (; h <= f; h++)
                o += a *= e / ++r;
            return o * m.exp(-e + t * m.log(e) - i)
        }
        for (; h <= f; h++)
            l *= (u = 1 / (u = (n = -h * (h - t)) * u + (s += 2))) * (c = s + n / c);
        return 1 - l * m.exp(-e + t * m.log(e) - i)
    }
    ,
    b.factorialln = function(t) {
        return t < 0 ? NaN : b.gammaln(t + 1)
    }
    ,
    b.factorial = function(t) {
        return t < 0 ? NaN : b.gammafn(t + 1)
    }
    ,
    b.combination = function(t, e) {
        return 170 < t || 170 < e ? m.exp(b.combinationln(t, e)) : b.factorial(t) / b.factorial(e) / b.factorial(t - e)
    }
    ,
    b.combinationln = function(t, e) {
        return b.factorialln(t) - b.factorialln(e) - b.factorialln(t - e)
    }
    ,
    b.permutation = function(t, e) {
        return b.factorial(t) / b.factorial(t - e)
    }
    ,
    b.betafn = function(t, e) {
        if (!(t <= 0 || e <= 0))
            return 170 < t + e ? m.exp(b.betaln(t, e)) : b.gammafn(t) * b.gammafn(e) / b.gammafn(t + e)
    }
    ,
    b.betaln = function(t, e) {
        return b.gammaln(t) + b.gammaln(e) - b.gammaln(t + e)
    }
    ,
    b.betacf = function(t, e, n) {
        var i, r, o, a, s = 1e-30, c = 1, u = e + n, l = e + 1, h = e - 1, f = 1, p = 1 - u * t / l;
        for (m.abs(p) < s && (p = s),
        a = p = 1 / p; c <= 100 && (p = 1 + (r = c * (n - c) * t / ((h + (i = 2 * c)) * (e + i))) * p,
        m.abs(p) < s && (p = s),
        f = 1 + r / f,
        m.abs(f) < s && (f = s),
        a *= (p = 1 / p) * f,
        p = 1 + (r = -(e + c) * (u + c) * t / ((e + i) * (l + i))) * p,
        m.abs(p) < s && (p = s),
        f = 1 + r / f,
        m.abs(f) < s && (f = s),
        a *= o = (p = 1 / p) * f,
        !(m.abs(o - 1) < 3e-7)); c++)
            ;
        return a
    }
    ,
    b.gammapinv = function(t, e) {
        var n, i, r, o, a, s, c = 0, u = e - 1, l = b.gammaln(e);
        if (1 <= t)
            return m.max(100, e + 100 * m.sqrt(e));
        if (t <= 0)
            return 0;
        for (n = 1 < e ? (a = m.log(u),
        s = m.exp(u * (a - 1) - l),
        o = t < .5 ? t : 1 - t,
        n = (2.30753 + .27061 * (i = m.sqrt(-2 * m.log(o)))) / (1 + i * (.99229 + .04481 * i)) - i,
        t < .5 && (n = -n),
        m.max(.001, e * m.pow(1 - 1 / (9 * e) - n / (3 * m.sqrt(e)), 3))) : t < (i = 1 - e * (.253 + .12 * e)) ? m.pow(t / i, 1 / e) : 1 - m.log(1 - (t - i) / (1 - i)); c < 12; c++) {
            if (n <= 0)
                return 0;
            if ((n -= i = (r = (b.lowRegGamma(e, n) - t) / (i = 1 < e ? s * m.exp(-(n - u) + u * (m.log(n) - a)) : m.exp(-n + u * m.log(n) - l))) / (1 - .5 * m.min(1, r * ((e - 1) / n - 1)))) <= 0 && (n = .5 * (n + i)),
            m.abs(i) < 1e-8 * n)
                break
        }
        return n
    }
    ,
    b.erf = function(t) {
        var e, n, i, r, o = [-1.3026537197817094, .6419697923564902, .019476473204185836, -.00956151478680863, -.000946595344482036, .000366839497852761, 42523324806907e-18, -20278578112534e-18, -1624290004647e-18, 130365583558e-17, 1.5626441722e-8, -8.5238095915e-8, 6.529054439e-9, 5.059343495e-9, -9.91364156e-10, -2.27365122e-10, 96467911e-18, 2394038e-18, -6886027e-18, 894487e-18, 313092e-18, -112708e-18, 381e-18, 7106e-18, -1523e-18, -94e-18, 121e-18, -28e-18], a = o.length - 1, s = !1, c = 0, u = 0;
        for (t < 0 && (t = -t,
        s = !0),
        n = 4 * (e = 2 / (2 + t)) - 2; 0 < a; a--)
            c = n * (i = c) - u + o[a],
            u = i;
        return r = e * m.exp(-t * t + .5 * (o[0] + n * c) - u),
        s ? r - 1 : 1 - r
    }
    ,
    b.erfc = function(t) {
        return 1 - b.erf(t)
    }
    ,
    b.erfcinv = function(t) {
        var e, n, i, r, o = 0;
        if (2 <= t)
            return -100;
        if (t <= 0)
            return 100;
        for (r = t < 1 ? t : 2 - t,
        e = -.70711 * ((2.30753 + .27061 * (i = m.sqrt(-2 * m.log(r / 2)))) / (1 + i * (.99229 + .04481 * i)) - i); o < 2; o++)
            e += (n = b.erfc(e) - r) / (1.1283791670955126 * m.exp(-e * e) - e * n);
        return t < 1 ? e : -e
    }
    ,
    b.ibetainv = function(t, e, n) {
        var i, r, o, a, s, c, u, l, h, f, p = e - 1, d = n - 1, M = 0;
        if (t <= 0)
            return 0;
        if (1 <= t)
            return 1;
        for (c = 1 <= e && 1 <= n ? (o = t < .5 ? t : 1 - t,
        c = (2.30753 + .27061 * (a = m.sqrt(-2 * m.log(o)))) / (1 + a * (.99229 + .04481 * a)) - a,
        t < .5 && (c = -c),
        u = (c * c - 3) / 6,
        l = 2 / (1 / (2 * e - 1) + 1 / (2 * n - 1)),
        h = c * m.sqrt(u + l) / l - (1 / (2 * n - 1) - 1 / (2 * e - 1)) * (u + 5 / 6 - 2 / (3 * l)),
        e / (e + n * m.exp(2 * h))) : (i = m.log(e / (e + n)),
        r = m.log(n / (e + n)),
        t < (a = m.exp(e * i) / e) / (h = a + (s = m.exp(n * r) / n)) ? m.pow(e * h * t, 1 / e) : 1 - m.pow(n * h * (1 - t), 1 / n)),
        f = -b.gammaln(e) - b.gammaln(n) + b.gammaln(e + n); M < 10; M++) {
            if (0 === c || 1 === c)
                return c;
            if ((c -= a = (s = (b.ibeta(c, e, n) - t) / (a = m.exp(p * m.log(c) + d * m.log(1 - c) + f))) / (1 - .5 * m.min(1, s * (p / c - d / (1 - c))))) <= 0 && (c = .5 * (c + a)),
            1 <= c && (c = .5 * (c + a + 1)),
            m.abs(a) < 1e-8 * c && 0 < M)
                break
        }
        return c
    }
    ,
    b.ibeta = function(t, e, n) {
        var i = 0 === t || 1 === t ? 0 : m.exp(b.gammaln(e + n) - b.gammaln(e) - b.gammaln(n) + e * m.log(t) + n * m.log(1 - t));
        return !(t < 0 || 1 < t) && (t < (e + 1) / (e + n + 2) ? i * b.betacf(t, e, n) / e : 1 - i * b.betacf(1 - t, n, e) / n)
    }
    ,
    b.randn = function(t, e) {
        var n, i, r, o, a;
        if (e = e || t,
        t)
            return b.create(t, e, function() {
                return b.randn()
            });
        for (; n = b._random_fn(),
        i = 1.7156 * (b._random_fn() - .5),
        .27597 < (a = (r = n - .449871) * r + (o = m.abs(i) + .386595) * (.196 * o - .25472 * r)) && (.27846 < a || i * i > -4 * m.log(n) * n * n); )
            ;
        return i / n
    }
    ,
    b.randg = function(t, e, n) {
        var i, r, o, a, s, c, u = t;
        if (n = n || e,
        t = t || 1,
        e)
            return (c = b.zeros(e, n)).alter(function() {
                return b.randg(t)
            }),
            c;
        t < 1 && (t += 1),
        i = t - 1 / 3,
        r = 1 / m.sqrt(9 * i);
        do {
            for (; (a = 1 + r * (s = b.randn())) <= 0; )
                ;
            a *= a * a,
            o = b._random_fn()
        } while (o > 1 - .331 * m.pow(s, 4) && m.log(o) > .5 * s * s + i * (1 - a + m.log(a)));if (t == u)
            return i * a;
        for (; 0 === (o = b._random_fn()); )
            ;
        return m.pow(o, 1 / u) * i * a
    }
    ,
    function(t) {
        for (var e = 0; e < t.length; e++)
            !function(e) {
                b.fn[e] = function() {
                    return b(b.map(this, function(t) {
                        return b[e](t)
                    }))
                }
            }(t[e])
    }("gammaln gammafn factorial factorialln".split(" ")),
    function(t) {
        for (var e = 0; e < t.length; e++)
            !function(t) {
                b.fn[t] = function() {
                    return b(b[t].apply(null, arguments))
                }
            }(t[e])
    }("randn".split(" ")),
    _ = f,
    O = Math,
    function(t) {
        for (var e = 0; e < t.length; e++)
            !function(o) {
                _[o] = function(t, e, n) {
                    return this instanceof arguments.callee ? (this._a = t,
                    this._b = e,
                    this._c = n,
                    this) : new arguments.callee(t,e,n)
                }
                ,
                _.fn[o] = function(t, e, n) {
                    var i = _[o](t, e, n);
                    return i.data = this,
                    i
                }
                ,
                _[o].prototype.sample = function(t) {
                    var e = this._a
                      , n = this._b
                      , i = this._c;
                    return t ? _.alter(t, function() {
                        return _[o].sample(e, n, i)
                    }) : _[o].sample(e, n, i)
                }
                ,
                function(t) {
                    for (var e = 0; e < t.length; e++)
                        !function(r) {
                            _[o].prototype[r] = function(t) {
                                var e = this._a
                                  , n = this._b
                                  , i = this._c;
                                return t || 0 === t || (t = this.data),
                                "number" != typeof t ? _.fn.map.call(t, function(t) {
                                    return _[o][r](t, e, n, i)
                                }) : _[o][r](t, e, n, i)
                            }
                        }(t[e])
                }("pdf cdf inv".split(" ")),
                function(t) {
                    for (var e = 0; e < t.length; e++)
                        !function(t) {
                            _[o].prototype[t] = function() {
                                return _[o][t](this._a, this._b, this._c)
                            }
                        }(t[e])
                }("mean median mode variance".split(" "))
            }(t[e])
    }("beta centralF cauchy chisquare exponential gamma invgamma kumaraswamy laplace lognormal noncentralt normal pareto studentt weibull uniform binomial negbin hypgeom poisson triangular tukey arcsine".split(" ")),
    _.extend(_.beta, {
        pdf: function(t, e, n) {
            return 1 < t || t < 0 ? 0 : 1 == e && 1 == n ? 1 : e < 512 && n < 512 ? O.pow(t, e - 1) * O.pow(1 - t, n - 1) / _.betafn(e, n) : O.exp((e - 1) * O.log(t) + (n - 1) * O.log(1 - t) - _.betaln(e, n))
        },
        cdf: function(t, e, n) {
            return 1 < t || t < 0 ? +(1 < t) : _.ibeta(t, e, n)
        },
        inv: function(t, e, n) {
            return _.ibetainv(t, e, n)
        },
        mean: function(t, e) {
            return t / (t + e)
        },
        median: function(t, e) {
            return _.ibetainv(.5, t, e)
        },
        mode: function(t, e) {
            return (t - 1) / (t + e - 2)
        },
        sample: function(t, e) {
            var n = _.randg(t);
            return n / (n + _.randg(e))
        },
        variance: function(t, e) {
            return t * e / (O.pow(t + e, 2) * (t + e + 1))
        }
    }),
    _.extend(_.centralF, {
        pdf: function(t, e, n) {
            var i;
            return t < 0 ? 0 : e <= 2 ? 0 === t && e < 2 ? 1 / 0 : 0 === t && 2 === e ? 1 : 1 / _.betafn(e / 2, n / 2) * O.pow(e / n, e / 2) * O.pow(t, e / 2 - 1) * O.pow(1 + e / n * t, -(e + n) / 2) : (i = e * t / (n + t * e),
            e * (n / (n + t * e)) / 2 * _.binomial.pdf((e - 2) / 2, (e + n - 2) / 2, i))
        },
        cdf: function(t, e, n) {
            return t < 0 ? 0 : _.ibeta(e * t / (e * t + n), e / 2, n / 2)
        },
        inv: function(t, e, n) {
            return n / (e * (1 / _.ibetainv(t, e / 2, n / 2) - 1))
        },
        mean: function(t, e) {
            return 2 < e ? e / (e - 2) : void 0
        },
        mode: function(t, e) {
            return 2 < t ? e * (t - 2) / (t * (e + 2)) : void 0
        },
        sample: function(t, e) {
            return 2 * _.randg(t / 2) / t / (2 * _.randg(e / 2) / e)
        },
        variance: function(t, e) {
            if (!(e <= 4))
                return 2 * e * e * (t + e - 2) / (t * (e - 2) * (e - 2) * (e - 4))
        }
    }),
    _.extend(_.cauchy, {
        pdf: function(t, e, n) {
            return n < 0 ? 0 : n / (O.pow(t - e, 2) + O.pow(n, 2)) / O.PI
        },
        cdf: function(t, e, n) {
            return O.atan((t - e) / n) / O.PI + .5
        },
        inv: function(t, e, n) {
            return e + n * O.tan(O.PI * (t - .5))
        },
        median: function(t) {
            return t
        },
        mode: function(t) {
            return t
        },
        sample: function(t, e) {
            return _.randn() * O.sqrt(1 / (2 * _.randg(.5))) * e + t
        }
    }),
    _.extend(_.chisquare, {
        pdf: function(t, e) {
            return t < 0 ? 0 : 0 === t && 2 === e ? .5 : O.exp((e / 2 - 1) * O.log(t) - t / 2 - e / 2 * O.log(2) - _.gammaln(e / 2))
        },
        cdf: function(t, e) {
            return t < 0 ? 0 : _.lowRegGamma(e / 2, t / 2)
        },
        inv: function(t, e) {
            return 2 * _.gammapinv(t, .5 * e)
        },
        mean: function(t) {
            return t
        },
        median: function(t) {
            return t * O.pow(1 - 2 / (9 * t), 3)
        },
        mode: function(t) {
            return 0 < t - 2 ? t - 2 : 0
        },
        sample: function(t) {
            return 2 * _.randg(t / 2)
        },
        variance: function(t) {
            return 2 * t
        }
    }),
    _.extend(_.exponential, {
        pdf: function(t, e) {
            return t < 0 ? 0 : e * O.exp(-e * t)
        },
        cdf: function(t, e) {
            return t < 0 ? 0 : 1 - O.exp(-e * t)
        },
        inv: function(t, e) {
            return -O.log(1 - t) / e
        },
        mean: function(t) {
            return 1 / t
        },
        median: function(t) {
            return 1 / t * O.log(2)
        },
        mode: function() {
            return 0
        },
        sample: function(t) {
            return -1 / t * O.log(_._random_fn())
        },
        variance: function(t) {
            return O.pow(t, -2)
        }
    }),
    _.extend(_.gamma, {
        pdf: function(t, e, n) {
            return t < 0 ? 0 : 0 === t && 1 === e ? 1 / n : O.exp((e - 1) * O.log(t) - t / n - _.gammaln(e) - e * O.log(n))
        },
        cdf: function(t, e, n) {
            return t < 0 ? 0 : _.lowRegGamma(e, t / n)
        },
        inv: function(t, e, n) {
            return _.gammapinv(t, e) * n
        },
        mean: function(t, e) {
            return t * e
        },
        mode: function(t, e) {
            if (1 < t)
                return (t - 1) * e
        },
        sample: function(t, e) {
            return _.randg(t) * e
        },
        variance: function(t, e) {
            return t * e * e
        }
    }),
    _.extend(_.invgamma, {
        pdf: function(t, e, n) {
            return t <= 0 ? 0 : O.exp(-(e + 1) * O.log(t) - n / t - _.gammaln(e) + e * O.log(n))
        },
        cdf: function(t, e, n) {
            return t <= 0 ? 0 : 1 - _.lowRegGamma(e, n / t)
        },
        inv: function(t, e, n) {
            return n / _.gammapinv(1 - t, e)
        },
        mean: function(t, e) {
            return 1 < t ? e / (t - 1) : void 0
        },
        mode: function(t, e) {
            return e / (t + 1)
        },
        sample: function(t, e) {
            return e / _.randg(t)
        },
        variance: function(t, e) {
            if (!(t <= 2))
                return e * e / ((t - 1) * (t - 1) * (t - 2))
        }
    }),
    _.extend(_.kumaraswamy, {
        pdf: function(t, e, n) {
            return 0 === t && 1 === e ? n : 1 === t && 1 === n ? e : O.exp(O.log(e) + O.log(n) + (e - 1) * O.log(t) + (n - 1) * O.log(1 - O.pow(t, e)))
        },
        cdf: function(t, e, n) {
            return t < 0 ? 0 : 1 < t ? 1 : 1 - O.pow(1 - O.pow(t, e), n)
        },
        inv: function(t, e, n) {
            return O.pow(1 - O.pow(1 - t, 1 / n), 1 / e)
        },
        mean: function(t, e) {
            return e * _.gammafn(1 + 1 / t) * _.gammafn(e) / _.gammafn(1 + 1 / t + e)
        },
        median: function(t, e) {
            return O.pow(1 - O.pow(2, -1 / e), 1 / t)
        },
        mode: function(t, e) {
            if (1 <= t && 1 <= e && 1 !== t && 1 !== e)
                return O.pow((t - 1) / (t * e - 1), 1 / t)
        },
        variance: function() {
            throw new Error("variance not yet implemented")
        }
    }),
    _.extend(_.lognormal, {
        pdf: function(t, e, n) {
            return t <= 0 ? 0 : O.exp(-O.log(t) - .5 * O.log(2 * O.PI) - O.log(n) - O.pow(O.log(t) - e, 2) / (2 * n * n))
        },
        cdf: function(t, e, n) {
            return t < 0 ? 0 : .5 + .5 * _.erf((O.log(t) - e) / O.sqrt(2 * n * n))
        },
        inv: function(t, e, n) {
            return O.exp(-1.4142135623730951 * n * _.erfcinv(2 * t) + e)
        },
        mean: function(t, e) {
            return O.exp(t + e * e / 2)
        },
        median: function(t) {
            return O.exp(t)
        },
        mode: function(t, e) {
            return O.exp(t - e * e)
        },
        sample: function(t, e) {
            return O.exp(_.randn() * e + t)
        },
        variance: function(t, e) {
            return (O.exp(e * e) - 1) * O.exp(2 * t + e * e)
        }
    }),
    _.extend(_.noncentralt, {
        pdf: function(t, e, n) {
            return O.abs(n) < 1e-14 ? _.studentt.pdf(t, e) : O.abs(t) < 1e-14 ? O.exp(_.gammaln((e + 1) / 2) - n * n / 2 - .5 * O.log(O.PI * e) - _.gammaln(e / 2)) : e / t * (_.noncentralt.cdf(t * O.sqrt(1 + 2 / e), e + 2, n) - _.noncentralt.cdf(t, e, n))
        },
        cdf: function(t, e, n) {
            if (O.abs(n) < 1e-14)
                return _.studentt.cdf(t, e);
            var i = !1;
            t < 0 && (i = !0,
            n = -n);
            for (var r = _.normal.cdf(-n, 0, 1), o = 1e-14 + 1, a = o, s = t * t / (t * t + e), c = 0, u = O.exp(-n * n / 2), l = O.exp(-n * n / 2 - .5 * O.log(2) - _.gammaln(1.5)) * n; c < 200 || 1e-14 < a || 1e-14 < o; )
                a = o,
                0 < c && (u *= n * n / (2 * c),
                l *= n * n / (2 * (c + .5))),
                r += .5 * (o = u * _.beta.cdf(s, c + .5, e / 2) + l * _.beta.cdf(s, c + 1, e / 2)),
                c++;
            return i ? 1 - r : r
        }
    }),
    _.extend(_.normal, {
        pdf: function(t, e, n) {
            return O.exp(-.5 * O.log(2 * O.PI) - O.log(n) - O.pow(t - e, 2) / (2 * n * n))
        },
        cdf: function(t, e, n) {
            return .5 * (1 + _.erf((t - e) / O.sqrt(2 * n * n)))
        },
        inv: function(t, e, n) {
            return -1.4142135623730951 * n * _.erfcinv(2 * t) + e
        },
        mean: function(t) {
            return t
        },
        median: function(t) {
            return t
        },
        mode: function(t) {
            return t
        },
        sample: function(t, e) {
            return _.randn() * e + t
        },
        variance: function(t, e) {
            return e * e
        }
    }),
    _.extend(_.pareto, {
        pdf: function(t, e, n) {
            return t < e ? 0 : n * O.pow(e, n) / O.pow(t, n + 1)
        },
        cdf: function(t, e, n) {
            return t < e ? 0 : 1 - O.pow(e / t, n)
        },
        inv: function(t, e, n) {
            return e / O.pow(1 - t, 1 / n)
        },
        mean: function(t, e) {
            if (!(e <= 1))
                return e * O.pow(t, e) / (e - 1)
        },
        median: function(t, e) {
            return t * (e * O.SQRT2)
        },
        mode: function(t) {
            return t
        },
        variance: function(t, e) {
            if (!(e <= 2))
                return t * t * e / (O.pow(e - 1, 2) * (e - 2))
        }
    }),
    _.extend(_.studentt, {
        pdf: function(t, e) {
            return e = 1e100 < e ? 1e100 : e,
            1 / (O.sqrt(e) * _.betafn(.5, e / 2)) * O.pow(1 + t * t / e, -(e + 1) / 2)
        },
        cdf: function(t, e) {
            var n = e / 2;
            return _.ibeta((t + O.sqrt(t * t + e)) / (2 * O.sqrt(t * t + e)), n, n)
        },
        inv: function(t, e) {
            var n = _.ibetainv(2 * O.min(t, 1 - t), .5 * e, .5)
              , n = O.sqrt(e * (1 - n) / n);
            return .5 < t ? n : -n
        },
        mean: function(t) {
            return 1 < t ? 0 : void 0
        },
        median: function() {
            return 0
        },
        mode: function() {
            return 0
        },
        sample: function(t) {
            return _.randn() * O.sqrt(t / (2 * _.randg(t / 2)))
        },
        variance: function(t) {
            return 2 < t ? t / (t - 2) : 1 < t ? 1 / 0 : void 0
        }
    }),
    _.extend(_.weibull, {
        pdf: function(t, e, n) {
            return t < 0 || e < 0 || n < 0 ? 0 : n / e * O.pow(t / e, n - 1) * O.exp(-O.pow(t / e, n))
        },
        cdf: function(t, e, n) {
            return t < 0 ? 0 : 1 - O.exp(-O.pow(t / e, n))
        },
        inv: function(t, e, n) {
            return e * O.pow(-O.log(1 - t), 1 / n)
        },
        mean: function(t, e) {
            return t * _.gammafn(1 + 1 / e)
        },
        median: function(t, e) {
            return t * O.pow(O.log(2), 1 / e)
        },
        mode: function(t, e) {
            return e <= 1 ? 0 : t * O.pow((e - 1) / e, 1 / e)
        },
        sample: function(t, e) {
            return t * O.pow(-O.log(_._random_fn()), 1 / e)
        },
        variance: function(t, e) {
            return t * t * _.gammafn(1 + 2 / e) - O.pow(_.weibull.mean(t, e), 2)
        }
    }),
    _.extend(_.uniform, {
        pdf: function(t, e, n) {
            return t < e || n < t ? 0 : 1 / (n - e)
        },
        cdf: function(t, e, n) {
            return t < e ? 0 : t < n ? (t - e) / (n - e) : 1
        },
        inv: function(t, e, n) {
            return e + t * (n - e)
        },
        mean: function(t, e) {
            return .5 * (t + e)
        },
        median: function(t, e) {
            return _.mean(t, e)
        },
        mode: function() {
            throw new Error("mode is not yet implemented")
        },
        sample: function(t, e) {
            return t / 2 + e / 2 + (e / 2 - t / 2) * (2 * _._random_fn() - 1)
        },
        variance: function(t, e) {
            return O.pow(e - t, 2) / 12
        }
    }),
    _.extend(_.binomial, {
        pdf: function(t, e, n) {
            return 0 === n || 1 === n ? e * n === t ? 1 : 0 : _.combination(e, t) * O.pow(n, t) * O.pow(1 - n, e - t)
        },
        cdf: function(t, e, n) {
            if (t < 0)
                return 0;
            if (e <= t)
                return 1;
            if (n < 0 || 1 < n || e <= 0)
                return NaN;
            var i = n
              , r = (t = O.floor(t)) + 1
              , o = e - t
              , a = r + o
              , s = O.exp(_.gammaln(a) - _.gammaln(o) - _.gammaln(r) + r * O.log(i) + o * O.log(1 - i))
              , c = i < (r + 1) / (a + 2) ? s * p(i, r, o, 1e-10) : 1 - s * p(1 - i, o, r, 1e-10);
            return O.round(1e10 * (1 - c)) / 1e10
        }
    }),
    _.extend(_.negbin, {
        pdf: function(t, e, n) {
            return t === t >>> 0 && (t < 0 ? 0 : _.combination(t + e - 1, e - 1) * O.pow(1 - n, t) * O.pow(n, e))
        },
        cdf: function(t, e, n) {
            var i = 0
              , r = 0;
            if (t < 0)
                return 0;
            for (; r <= t; r++)
                i += _.negbin.pdf(r, e, n);
            return i
        }
    }),
    _.extend(_.hypgeom, {
        pdf: function(t, e, n, i) {
            if (t != t | 0)
                return !1;
            if (t < 0 || t < n - (e - i))
                return 0;
            if (i < t || n < t)
                return 0;
            if (e < 2 * n)
                return e < 2 * i ? _.hypgeom.pdf(e - n - i + t, e, e - n, e - i) : _.hypgeom.pdf(i - t, e, e - n, i);
            if (e < 2 * i)
                return _.hypgeom.pdf(n - t, e, n, e - i);
            if (n < i)
                return _.hypgeom.pdf(t, e, i, n);
            for (var r = 1, o = 0, a = 0; a < t; a++) {
                for (; 1 < r && o < i; )
                    r *= 1 - n / (e - o),
                    o++;
                r *= (i - a) * (n - a) / ((a + 1) * (e - n - i + a + 1))
            }
            for (; o < i; o++)
                r *= 1 - n / (e - o);
            return O.min(1, O.max(0, r))
        },
        cdf: function(t, e, n, i) {
            if (t < 0 || t < n - (e - i))
                return 0;
            if (i <= t || n <= t)
                return 1;
            if (e < 2 * n)
                return e < 2 * i ? _.hypgeom.cdf(e - n - i + t, e, e - n, e - i) : 1 - _.hypgeom.cdf(i - t - 1, e, e - n, i);
            if (e < 2 * i)
                return 1 - _.hypgeom.cdf(n - t - 1, e, n, e - i);
            if (n < i)
                return _.hypgeom.cdf(t, e, i, n);
            for (var r = 1, o = 1, a = 0, s = 0; s < t; s++) {
                for (; 1 < r && a < i; ) {
                    var c = 1 - n / (e - a);
                    o *= c,
                    r *= c,
                    a++
                }
                r += o *= (i - s) * (n - s) / ((s + 1) * (e - n - i + s + 1))
            }
            for (; a < i; a++)
                r *= 1 - n / (e - a);
            return O.min(1, O.max(0, r))
        }
    }),
    _.extend(_.poisson, {
        pdf: function(t, e) {
            return e < 0 || t % 1 != 0 || t < 0 ? 0 : O.pow(e, t) * O.exp(-e) / _.factorial(t)
        },
        cdf: function(t, e) {
            var n = []
              , i = 0;
            if (t < 0)
                return 0;
            for (; i <= t; i++)
                n.push(_.poisson.pdf(i, e));
            return _.sum(n)
        },
        mean: function(t) {
            return t
        },
        variance: function(t) {
            return t
        },
        sampleSmall: function(t) {
            for (var e = 1, n = 0, i = O.exp(-t); n++,
            i < (e *= _._random_fn()); )
                ;
            return n - 1
        },
        sampleLarge: function(t) {
            for (var e, n, i, r, o = t, a = O.sqrt(o), s = O.log(o), c = .931 + 2.53 * a, u = .02483 * c - .059, l = 1.1239 + 1.1328 / (c - 3.4), h = .9277 - 3.6224 / (c - 2); ; ) {
                if (n = O.random() - .5,
                i = O.random(),
                r = .5 - O.abs(n),
                e = O.floor((2 * u / r + c) * n + o + .43),
                .07 <= r && i <= h)
                    return e;
                if (!(e < 0 || r < .013 && r < i) && O.log(i) + O.log(l) - O.log(u / (r * r) + c) <= e * s - o - _.loggam(e + 1))
                    return e
            }
        },
        sample: function(t) {
            return t < 10 ? this.sampleSmall(t) : this.sampleLarge(t)
        }
    }),
    _.extend(_.triangular, {
        pdf: function(t, e, n, i) {
            return n <= e || i < e || n < i ? NaN : t < e || n < t ? 0 : t < i ? 2 * (t - e) / ((n - e) * (i - e)) : t === i ? 2 / (n - e) : 2 * (n - t) / ((n - e) * (n - i))
        },
        cdf: function(t, e, n, i) {
            return n <= e || i < e || n < i ? NaN : t <= e ? 0 : n <= t ? 1 : t <= i ? O.pow(t - e, 2) / ((n - e) * (i - e)) : 1 - O.pow(n - t, 2) / ((n - e) * (n - i))
        },
        inv: function(t, e, n, i) {
            return n <= e || i < e || n < i ? NaN : t <= (i - e) / (n - e) ? e + (n - e) * O.sqrt(t * ((i - e) / (n - e))) : e + (n - e) * (1 - O.sqrt((1 - t) * (1 - (i - e) / (n - e))))
        },
        mean: function(t, e, n) {
            return (t + e + n) / 3
        },
        median: function(t, e, n) {
            return n <= (t + e) / 2 ? e - O.sqrt((e - t) * (e - n)) / O.sqrt(2) : (t + e) / 2 < n ? t + O.sqrt((e - t) * (n - t)) / O.sqrt(2) : void 0
        },
        mode: function(t, e, n) {
            return n
        },
        sample: function(t, e, n) {
            var i = _._random_fn();
            return i < (n - t) / (e - t) ? t + O.sqrt(i * (e - t) * (n - t)) : e - O.sqrt((1 - i) * (e - t) * (e - n))
        },
        variance: function(t, e, n) {
            return (t * t + e * e + n * n - t * e - t * n - e * n) / 18
        }
    }),
    _.extend(_.arcsine, {
        pdf: function(t, e, n) {
            return n <= e ? NaN : t <= e || n <= t ? 0 : 2 / O.PI * O.pow(O.pow(n - e, 2) - O.pow(2 * t - e - n, 2), -.5)
        },
        cdf: function(t, e, n) {
            return t < e ? 0 : t < n ? 2 / O.PI * O.asin(O.sqrt((t - e) / (n - e))) : 1
        },
        inv: function(t, e, n) {
            return e + (.5 - .5 * O.cos(O.PI * t)) * (n - e)
        },
        mean: function(t, e) {
            return e <= t ? NaN : (t + e) / 2
        },
        median: function(t, e) {
            return e <= t ? NaN : (t + e) / 2
        },
        mode: function() {
            throw new Error("mode is not yet implemented")
        },
        sample: function(t, e) {
            return (t + e) / 2 + (e - t) / 2 * O.sin(2 * O.PI * _.uniform.sample(0, 1))
        },
        variance: function(t, e) {
            return e <= t ? NaN : O.pow(e - t, 2) / 8
        }
    }),
    _.extend(_.laplace, {
        pdf: function(t, e, n) {
            return n <= 0 ? 0 : O.exp(-O.abs(t - e) / n) / (2 * n)
        },
        cdf: function(t, e, n) {
            return n <= 0 ? 0 : t < e ? .5 * O.exp((t - e) / n) : 1 - .5 * O.exp(-(t - e) / n)
        },
        mean: function(t) {
            return t
        },
        median: function(t) {
            return t
        },
        mode: function(t) {
            return t
        },
        variance: function(t, e) {
            return 2 * e * e
        },
        sample: function(t, e) {
            var n, i = _._random_fn() - .5;
            return t - e * ((n = i) / O.abs(n)) * O.log(1 - 2 * O.abs(i))
        }
    }),
    _.extend(_.tukey, {
        cdf: function(t, e, n) {
            var i = e
              , r = [.9894009349916499, .9445750230732326, .8656312023878318, .755404408355003, .6178762444026438, .45801677765722737, .2816035507792589, .09501250983763744]
              , o = [.027152459411754096, .062253523938647894, .09515851168249279, .12462897125553388, .14959598881657674, .16915651939500254, .18260341504492358, .1894506104550685];
            if (t <= 0)
                return 0;
            if (n < 2 || i < 2)
                return NaN;
            if (!Number.isFinite(t))
                return 1;
            if (25e3 < n)
                return v(t, 1, i);
            var a = .5 * n
              , s = a * O.log(n) - n * O.log(2) - _.gammaln(a)
              , c = a - 1
              , u = .25 * n
              , l = n <= 100 ? 1 : n <= 800 ? .5 : n <= 5e3 ? .25 : .125;
            s += O.log(l);
            for (var h = 0, f = 1; f <= 50; f++) {
                for (var p = 0, d = (2 * f - 1) * l, M = 1; M <= 16; M++) {
                    var b, m = 8 < M ? (b = M - 8 - 1,
                    s + c * O.log(d + r[b] * l) - (r[b] * l + d) * u) : (b = M - 1,
                    s + c * O.log(d - r[b] * l) + (r[b] * l - d) * u);
                    -30 <= m && (p += v(8 < M ? t * O.sqrt(.5 * (r[b] * l + d)) : t * O.sqrt(.5 * (-r[b] * l + d)), 1, i) * o[b] * O.exp(m))
                }
                if (1 <= f * l && p <= 1e-14)
                    break;
                h += p
            }
            if (1e-14 < p)
                throw new Error("tukey.cdf failed to converge");
            return 1 < h && (h = 1),
            h
        },
        inv: function(t, e, n) {
            if (n < 2 || e < 2)
                return NaN;
            if (t < 0 || 1 < t)
                return NaN;
            if (0 === t)
                return 0;
            if (1 === t)
                return 1 / 0;
            for (var i = function(t, e, n) {
                var i = .5 - .5 * t
                  , r = O.sqrt(O.log(1 / (i * i)))
                  , o = r + ((((-453642210148e-16 * r - .204231210125) * r - .342242088547) * r - 1) * r + .322232421088) / ((((.0038560700634 * r + .10353775285) * r + .531103462366) * r + .588581570495) * r + .099348462606);
                n < 120 && (o += (o * o * o + o) / n / 4);
                var a = .8832 - .2368 * o;
                return n < 120 && (a += -1.214 / n + 1.208 * o / n),
                o * (a * O.log(e - 1) + 1.4142)
            }(t, e, n), r = 0 < (c = _.tukey.cdf(i, e, n) - t) ? O.max(0, i - 1) : i + 1, o = _.tukey.cdf(r, e, n) - t, a = 1; a < 50; a++) {
                var s = r - o * (r - i) / (o - c)
                  , c = o
                  , i = r;
                if (s < 0 && (s = 0,
                o = -t),
                o = _.tukey.cdf(s, e, n) - t,
                r = s,
                O.abs(r - i) < 1e-4)
                    return s
            }
            throw new Error("tukey.inv failed to converge")
        }
    }),
    g = f,
    M = Math,
    r = Array.prototype.push,
    e = g.utils.isArray,
    g.extend({
        add: function(t, i) {
            return d(i) ? (d(i[0]) || (i = [i]),
            g.map(t, function(t, e, n) {
                return t + i[e][n]
            })) : g.map(t, function(t) {
                return t + i
            })
        },
        subtract: function(t, i) {
            return d(i) ? (d(i[0]) || (i = [i]),
            g.map(t, function(t, e, n) {
                return t - i[e][n] || 0
            })) : g.map(t, function(t) {
                return t - i
            })
        },
        divide: function(t, e) {
            return d(e) ? (d(e[0]) || (e = [e]),
            g.multiply(t, g.inv(e))) : g.map(t, function(t) {
                return t / e
            })
        },
        multiply: function(t, e) {
            var n, i, r, o, a, s, c, u;
            if (void 0 === t.length && void 0 === e.length)
                return t * e;
            if (a = t.length,
            s = t[0].length,
            c = g.zeros(a, r = d(e) ? e[0].length : s),
            u = 0,
            d(e)) {
                for (; u < r; u++)
                    for (n = 0; n < a; n++) {
                        for (i = o = 0; i < s; i++)
                            o += t[n][i] * e[i][u];
                        c[n][u] = o
                    }
                return 1 === a && 1 === u ? c[0][0] : c
            }
            return g.map(t, function(t) {
                return t * e
            })
        },
        outer: function(t, e) {
            return g.multiply(t.map(function(t) {
                return [t]
            }), [e])
        },
        dot: function(t, e) {
            d(t[0]) || (t = [t]),
            d(e[0]) || (e = [e]);
            for (var n, i, r = 1 === t[0].length && 1 !== t.length ? g.transpose(t) : t, o = 1 === e[0].length && 1 !== e.length ? g.transpose(e) : e, a = [], s = 0, c = r.length, u = r[0].length; s < c; s++) {
                for (a[s] = [],
                i = n = 0; i < u; i++)
                    n += r[s][i] * o[s][i];
                a[s] = n
            }
            return 1 === a.length ? a[0] : a
        },
        pow: function(t, e) {
            return g.map(t, function(t) {
                return M.pow(t, e)
            })
        },
        exp: function(t) {
            return g.map(t, function(t) {
                return M.exp(t)
            })
        },
        log: function(t) {
            return g.map(t, function(t) {
                return M.log(t)
            })
        },
        abs: function(t) {
            return g.map(t, function(t) {
                return M.abs(t)
            })
        },
        norm: function(t, e) {
            var n = 0
              , i = 0;
            for (isNaN(e) && (e = 2),
            d(t[0]) && (t = t[0]); i < t.length; i++)
                n += M.pow(M.abs(t[i]), e);
            return M.pow(n, 1 / e)
        },
        angle: function(t, e) {
            return M.acos(g.dot(t, e) / (g.norm(t) * g.norm(e)))
        },
        aug: function(t, e) {
            for (var n = [], i = 0; i < t.length; i++)
                n.push(t[i].slice());
            for (i = 0; i < n.length; i++)
                r.apply(n[i], e[i]);
            return n
        },
        inv: function(t) {
            for (var e, n = t.length, i = t[0].length, r = g.identity(n, i), o = g.gauss_jordan(t, r), a = [], s = 0; s < n; s++)
                for (a[s] = [],
                e = i; e < o[0].length; e++)
                    a[s][e - i] = o[s][e];
            return a
        },
        det: function(t) {
            var e, n = t.length, i = 2 * n, r = new Array(i), o = n - 1, a = i - 1, s = o - n + 1, c = a, u = 0, l = 0;
            if (2 === n)
                return t[0][0] * t[1][1] - t[0][1] * t[1][0];
            for (; u < i; u++)
                r[u] = 1;
            for (u = 0; u < n; u++) {
                for (e = 0; e < n; e++)
                    r[s < 0 ? s + n : s] *= t[u][e],
                    r[c < n ? c + n : c] *= t[u][e],
                    s++,
                    c--;
                s = --o - n + 1,
                c = --a
            }
            for (u = 0; u < n; u++)
                l += r[u];
            for (; u < i; u++)
                l -= r[u];
            return l
        },
        gauss_elimination: function(t, e) {
            for (var n, i, r, o, a = 0, s = 0, c = t.length, u = t[0].length, l = 0, h = [], f = (t = g.aug(t, e))[0].length, a = 0; a < c; a++) {
                for (i = t[a][a],
                o = (s = a) + 1; o < u; o++)
                    i < M.abs(t[o][a]) && (i = t[o][a],
                    s = o);
                if (s != a)
                    for (o = 0; o < f; o++)
                        r = t[a][o],
                        t[a][o] = t[s][o],
                        t[s][o] = r;
                for (s = a + 1; s < c; s++)
                    for (n = t[s][a] / t[a][a],
                    o = a; o < f; o++)
                        t[s][o] = t[s][o] - n * t[a][o]
            }
            for (a = c - 1; 0 <= a; a--) {
                for (l = 0,
                s = a + 1; s <= c - 1; s++)
                    l += h[s] * t[a][s];
                h[a] = (t[a][f - 1] - l) / t[a][a]
            }
            return h
        },
        gauss_jordan: function(t, e) {
            for (var n, i = g.aug(t, e), r = i.length, o = i[0].length, a = 0, s = 0; s < r; s++) {
                for (var c = s, u = s + 1; u < r; u++)
                    M.abs(i[u][s]) > M.abs(i[c][s]) && (c = u);
                var l = i[s];
                for (i[s] = i[c],
                i[c] = l,
                u = s + 1; u < r; u++)
                    for (a = i[u][s] / i[s][s],
                    n = s; n < o; n++)
                        i[u][n] -= i[s][n] * a
            }
            for (s = r - 1; 0 <= s; s--) {
                for (a = i[s][s],
                u = 0; u < s; u++)
                    for (n = o - 1; s - 1 < n; n--)
                        i[u][n] -= i[s][n] * i[u][s] / a;
                for (i[s][s] /= a,
                n = r; n < o; n++)
                    i[s][n] /= a
            }
            return i
        },
        triaUpSolve: function(n, t) {
            var i, r = n[0].length, o = g.zeros(1, r)[0], e = !1;
            return null != t[0].length && (t = t.map(function(t) {
                return t[0]
            }),
            e = !0),
            g.arange(r - 1, -1, -1).forEach(function(e) {
                i = g.arange(e + 1, r).map(function(t) {
                    return o[t] * n[e][t]
                }),
                o[e] = (t[e] - g.sum(i)) / n[e][e]
            }),
            e ? o.map(function(t) {
                return [t]
            }) : o
        },
        triaLowSolve: function(n, t) {
            var i, e = n[0].length, r = g.zeros(1, e)[0], o = !1;
            return null != t[0].length && (t = t.map(function(t) {
                return t[0]
            }),
            o = !0),
            g.arange(e).forEach(function(e) {
                i = g.arange(e).map(function(t) {
                    return n[e][t] * r[t]
                }),
                r[e] = (t[e] - g.sum(i)) / n[e][e]
            }),
            o ? r.map(function(t) {
                return [t]
            }) : r
        },
        lu: function(i) {
            var t, e = i.length, r = g.identity(e), o = g.zeros(i.length, i[0].length);
            return g.arange(e).forEach(function(t) {
                o[0][t] = i[0][t]
            }),
            g.arange(1, e).forEach(function(n) {
                g.arange(n).forEach(function(e) {
                    t = g.arange(e).map(function(t) {
                        return r[n][t] * o[t][e]
                    }),
                    r[n][e] = (i[n][e] - g.sum(t)) / o[e][e]
                }),
                g.arange(n, e).forEach(function(e) {
                    t = g.arange(n).map(function(t) {
                        return r[n][t] * o[t][e]
                    }),
                    o[n][e] = i[t.length][e] - g.sum(t)
                })
            }),
            [r, o]
        },
        cholesky: function(t) {
            var i, e = t.length, r = g.zeros(t.length, t[0].length);
            return g.arange(e).forEach(function(n) {
                i = g.arange(n).map(function(t) {
                    return M.pow(r[n][t], 2)
                }),
                r[n][n] = M.sqrt(t[n][n] - g.sum(i)),
                g.arange(n + 1, e).forEach(function(e) {
                    i = g.arange(n).map(function(t) {
                        return r[n][t] * r[e][t]
                    }),
                    r[e][n] = (t[n][e] - g.sum(i)) / r[n][n]
                })
            }),
            r
        },
        gauss_jacobi: function(t, e, n, i) {
            for (var r, o, a, s, c = 0, u = 0, l = t.length, h = [], f = [], p = []; c < l; c++)
                for (h[c] = [],
                f[c] = [],
                p[c] = [],
                u = 0; u < l; u++)
                    u < c ? (h[c][u] = t[c][u],
                    f[c][u] = p[c][u] = 0) : c < u ? (f[c][u] = t[c][u],
                    h[c][u] = p[c][u] = 0) : (p[c][u] = t[c][u],
                    h[c][u] = f[c][u] = 0);
            for (a = g.multiply(g.multiply(g.inv(p), g.add(h, f)), -1),
            o = g.multiply(g.inv(p), e),
            r = n,
            s = g.add(g.multiply(a, n), o),
            c = 2; M.abs(g.norm(g.subtract(s, r))) > i; )
                r = s,
                s = g.add(g.multiply(a, r), o),
                c++;
            return s
        },
        gauss_seidel: function(t, e, n, i) {
            for (var r, o, a, s, c, u = 0, l = t.length, h = [], f = [], p = []; u < l; u++)
                for (h[u] = [],
                f[u] = [],
                p[u] = [],
                r = 0; r < l; r++)
                    r < u ? (h[u][r] = t[u][r],
                    f[u][r] = p[u][r] = 0) : u < r ? (f[u][r] = t[u][r],
                    h[u][r] = p[u][r] = 0) : (p[u][r] = t[u][r],
                    h[u][r] = f[u][r] = 0);
            for (s = g.multiply(g.multiply(g.inv(g.add(p, h)), f), -1),
            a = g.multiply(g.inv(g.add(p, h)), e),
            o = n,
            c = g.add(g.multiply(s, n), a),
            u = 2; M.abs(g.norm(g.subtract(c, o))) > i; )
                o = c,
                c = g.add(g.multiply(s, o), a),
                u += 1;
            return c
        },
        SOR: function(t, e, n, i, r) {
            for (var o, a, s, c, u, l = 0, h = t.length, f = [], p = [], d = []; l < h; l++)
                for (f[l] = [],
                p[l] = [],
                d[l] = [],
                o = 0; o < h; o++)
                    o < l ? (f[l][o] = t[l][o],
                    p[l][o] = d[l][o] = 0) : l < o ? (p[l][o] = t[l][o],
                    f[l][o] = d[l][o] = 0) : (d[l][o] = t[l][o],
                    f[l][o] = p[l][o] = 0);
            for (c = g.multiply(g.inv(g.add(d, g.multiply(f, r))), g.subtract(g.multiply(d, 1 - r), g.multiply(p, r))),
            s = g.multiply(g.multiply(g.inv(g.add(d, g.multiply(f, r))), e), r),
            a = n,
            u = g.add(g.multiply(c, n), s),
            l = 2; M.abs(g.norm(g.subtract(u, a))) > i; )
                a = u,
                u = g.add(g.multiply(c, a), s),
                l++;
            return u
        },
        householder: function(t) {
            for (var e, n, i, r, o, a = t.length, s = t[0].length, c = 0, u = []; c < a - 1; c++) {
                for (n = 0,
                o = c + 1; o < s; o++)
                    n += t[o][c] * t[o][c];
                for (n = (0 < t[c + 1][c] ? -1 : 1) * M.sqrt(n),
                i = M.sqrt((n * n - t[c + 1][c] * n) / 2),
                (u = g.zeros(a, 1))[c + 1][0] = (t[c + 1][c] - n) / (2 * i),
                r = c + 2; r < a; r++)
                    u[r][0] = t[r][c] / (2 * i);
                e = g.subtract(g.identity(a, s), g.multiply(g.multiply(u, g.transpose(u)), 2)),
                t = g.multiply(e, g.multiply(t, e))
            }
            return t
        },
        QR: (s = g.sum,
        c = g.arange,
        function(e) {
            var t, n, i, r = e.length, o = e[0].length, a = g.zeros(o, o);
            for (e = g.copy(e),
            n = 0; n < o; n++) {
                for (a[n][n] = M.sqrt(s(c(r).map(function(t) {
                    return e[t][n] * e[t][n]
                }))),
                t = 0; t < r; t++)
                    e[t][n] = e[t][n] / a[n][n];
                for (i = n + 1; i < o; i++)
                    for (a[n][i] = s(c(r).map(function(t) {
                        return e[t][n] * e[t][i]
                    })),
                    t = 0; t < r; t++)
                        e[t][i] = e[t][i] - e[t][n] * a[n][i]
            }
            return [e, a]
        }
        ),
        lstsq: function(t, e) {
            var n = !1;
            void 0 === e[0].length && (e = e.map(function(t) {
                return [t]
            }),
            n = !0);
            var s, i, c, r = g.QR(t), o = r[0], a = r[1], u = t[0].length, l = g.slice(o, {
                col: {
                    end: u
                }
            }), h = g.slice(a, {
                row: {
                    end: u
                }
            }), f = (s = h,
            i = (s = g.copy(s)).length,
            c = g.identity(i),
            g.arange(i - 1, -1, -1).forEach(function(a) {
                g.sliceAssign(c, {
                    row: a
                }, g.divide(g.slice(c, {
                    row: a
                }), s[a][a])),
                g.sliceAssign(s, {
                    row: a
                }, g.divide(g.slice(s, {
                    row: a
                }), s[a][a])),
                g.arange(a).forEach(function(t) {
                    var e = g.multiply(s[t][a], -1)
                      , n = g.slice(s, {
                        row: t
                    })
                      , i = g.multiply(g.slice(s, {
                        row: a
                    }), e);
                    g.sliceAssign(s, {
                        row: t
                    }, g.add(n, i));
                    var r = g.slice(c, {
                        row: t
                    })
                      , o = g.multiply(g.slice(c, {
                        row: a
                    }), e);
                    g.sliceAssign(c, {
                        row: t
                    }, g.add(r, o))
                })
            }),
            c), p = g.transpose(l);
            void 0 === p[0].length && (p = [p]);
            var d = g.multiply(g.multiply(f, p), e);
            return void 0 === d.length && (d = [[d]]),
            n ? d.map(function(t) {
                return t[0]
            }) : d
        },
        jacobi: function(t) {
            for (var e, n, i, r, o, a, s, c = 1, u = t.length, l = g.identity(u, u), h = []; 1 === c; ) {
                for (o = t[0][1],
                r = 1,
                e = i = 0; e < u; e++)
                    for (n = 0; n < u; n++)
                        e != n && o < M.abs(t[e][n]) && (o = M.abs(t[e][n]),
                        i = e,
                        r = n);
                for (a = t[i][i] === t[r][r] ? 0 < t[i][r] ? M.PI / 4 : -M.PI / 4 : M.atan(2 * t[i][r] / (t[i][i] - t[r][r])) / 2,
                (s = g.identity(u, u))[i][i] = M.cos(a),
                s[i][r] = -M.sin(a),
                s[r][i] = M.sin(a),
                s[r][r] = M.cos(a),
                l = g.multiply(l, s),
                t = g.multiply(g.multiply(g.inv(s), t), s),
                c = 0,
                e = 1; e < u; e++)
                    for (n = 1; n < u; n++)
                        e != n && .001 < M.abs(t[e][n]) && (c = 1)
            }
            for (e = 0; e < u; e++)
                h.push(t[e][e]);
            return [l, h]
        },
        rungekutta: function(t, e, n, i, r, o) {
            var a, s, c;
            if (2 === o)
                for (; i <= n; )
                    r = r + ((a = e * t(i, r)) + (s = e * t(i + e, r + a))) / 2,
                    i += e;
            if (4 === o)
                for (; i <= n; )
                    r = r + ((a = e * t(i, r)) + 2 * (s = e * t(i + e / 2, r + a / 2)) + 2 * (c = e * t(i + e / 2, r + s / 2)) + e * t(i + e, r + c)) / 6,
                    i += e;
            return r
        },
        romberg: function(t, e, n, i) {
            for (var r, o, a, s, c, u = 0, l = (n - e) / 2, h = [], f = [], p = []; u < i / 2; ) {
                for (c = t(e),
                a = e,
                s = 0; a <= n; a += l,
                s++)
                    h[s] = a;
                for (r = h.length,
                a = 1; a < r - 1; a++)
                    c += (a % 2 != 0 ? 4 : 2) * t(h[a]);
                c = l / 3 * (c + t(n)),
                p[u] = c,
                l /= 2,
                u++
            }
            for (o = p.length,
            r = 1; 1 !== o; ) {
                for (a = 0; a < o - 1; a++)
                    f[a] = (M.pow(4, r) * p[a + 1] - p[a]) / (M.pow(4, r) - 1);
                o = f.length,
                p = f,
                f = [],
                r++
            }
            return p
        },
        richardson: function(t, e, n, i) {
            function r(t, e) {
                for (var n, i = 0, r = t.length; i < r; i++)
                    t[i] === e && (n = i);
                return n
            }
            for (var o, a, s, c, u, l = M.abs(n - t[r(t, n) + 1]), h = 0, f = [], p = []; l <= i; )
                o = r(t, n + i),
                a = r(t, n),
                f[h] = (e[o] - 2 * e[a] + e[2 * a - o]) / (i * i),
                i /= 2,
                h++;
            for (c = f.length,
            s = 1; 1 != c; ) {
                for (u = 0; u < c - 1; u++)
                    p[u] = (M.pow(4, s) * f[u + 1] - f[u]) / (M.pow(4, s) - 1);
                c = p.length,
                f = p,
                p = [],
                s++
            }
            return f
        },
        simpson: function(t, e, n, i) {
            for (var r, o = (n - e) / i, a = t(e), s = [], c = e, u = 0, l = 1; c <= n; c += o,
            u++)
                s[u] = c;
            for (r = s.length; l < r - 1; l++)
                a += (l % 2 != 0 ? 4 : 2) * t(s[l]);
            return o / 3 * (a + t(n))
        },
        hermite: function(t, e, n, i) {
            for (var r, o = t.length, a = 0, s = 0, c = [], u = [], l = [], h = []; s < o; s++) {
                for (c[s] = 1,
                r = 0; r < o; r++)
                    s != r && (c[s] *= (i - t[r]) / (t[s] - t[r]));
                for (r = u[s] = 0; r < o; r++)
                    s != r && (u[s] += 1 / (t[s] - t[r]));
                l[s] = (1 - 2 * (i - t[s]) * u[s]) * (c[s] * c[s]),
                h[s] = (i - t[s]) * (c[s] * c[s]),
                a += l[s] * e[s] + h[s] * n[s]
            }
            return a
        },
        lagrange: function(t, e, n) {
            for (var i, r, o = 0, a = 0, s = t.length; a < s; a++) {
                for (r = e[a],
                i = 0; i < s; i++)
                    a != i && (r *= (n - t[i]) / (t[a] - t[i]));
                o += r
            }
            return o
        },
        cubic_spline: function(t, e, n) {
            for (var i, r, o = t.length, a = 0, s = [], c = [], u = [], l = [], h = [], f = []; a < o - 1; a++)
                l[a] = t[a + 1] - t[a];
            for (u[0] = 0,
            a = 1; a < o - 1; a++)
                u[a] = 3 / l[a] * (e[a + 1] - e[a]) - 3 / l[a - 1] * (e[a] - e[a - 1]);
            for (a = 1; a < o - 1; a++)
                s[a] = [],
                c[a] = [],
                s[a][a - 1] = l[a - 1],
                s[a][a] = 2 * (l[a - 1] + l[a]),
                s[a][a + 1] = l[a],
                c[a][0] = u[a];
            for (r = g.multiply(g.inv(s), c),
            i = 0; i < o - 1; i++)
                h[i] = (e[i + 1] - e[i]) / l[i] - l[i] * (r[i + 1][0] + 2 * r[i][0]) / 3,
                f[i] = (r[i + 1][0] - r[i][0]) / (3 * l[i]);
            for (i = 0; i < o && !(t[i] > n); i++)
                ;
            return e[--i] + (n - t[i]) * h[i] + g.sq(n - t[i]) * r[i] + (n - t[i]) * g.sq(n - t[i]) * f[i]
        },
        gauss_quadrature: function() {
            throw new Error("gauss_quadrature not yet implemented")
        },
        PCA: function(t) {
            for (var e, n, i, r, o, a, s = t.length, c = t[0].length, u = 0, l = [], h = [], f = [], p = [], d = [], M = [], u = 0; u < s; u++)
                l[u] = g.sum(t[u]) / c;
            for (u = 0; u < c; u++)
                for (p[u] = [],
                e = 0; e < s; e++)
                    p[u][e] = t[e][u] - l[e];
            for (p = g.transpose(p),
            u = 0; u < s; u++)
                for (d[u] = [],
                e = 0; e < s; e++)
                    d[u][e] = g.dot([p[u]], [p[e]]) / (c - 1);
            for (a = (i = g.jacobi(d))[0],
            h = i[1],
            M = g.transpose(a),
            u = 0; u < h.length; u++)
                for (e = u; e < h.length; e++)
                    h[u] < h[e] && (n = h[u],
                    h[u] = h[e],
                    h[e] = n,
                    r = M[u],
                    M[u] = M[e],
                    M[e] = r);
            for (o = g.transpose(p),
            u = 0; u < s; u++)
                for (f[u] = [],
                e = 0; e < o.length; e++)
                    f[u][e] = g.dot([M[u]], [o[e]]);
            return [t, h, M, f]
        }
    }),
    function(t) {
        for (var e = 0; e < t.length; e++)
            !function(i) {
                g.fn[i] = function(t, e) {
                    var n = this;
                    return e ? (setTimeout(function() {
                        e.call(n, g.fn[i].call(n, t))
                    }, 15),
                    this) : "number" == typeof g[i](this, t) ? g[i](this, t) : g(g[i](this, t))
                }
            }(t[e])
    }("add divide multiply subtract dot pow exp log abs norm angle".split(" ")),
    u = f,
    l = Math,
    h = [].slice,
    a = u.utils.isNumber,
    n = u.utils.isArray,
    u.extend({
        zscore: function() {
            var t = h.call(arguments);
            return a(t[1]) ? (t[0] - t[1]) / t[2] : (t[0] - u.mean(t[1])) / u.stdev(t[1], t[2])
        },
        ztest: function() {
            var t, e = h.call(arguments);
            return n(e[1]) ? (t = u.zscore(e[0], e[1], e[3]),
            1 === e[2] ? u.normal.cdf(-l.abs(t), 0, 1) : 2 * u.normal.cdf(-l.abs(t), 0, 1)) : 2 < e.length ? (t = u.zscore(e[0], e[1], e[2]),
            1 === e[3] ? u.normal.cdf(-l.abs(t), 0, 1) : 2 * u.normal.cdf(-l.abs(t), 0, 1)) : (t = e[0],
            1 === e[1] ? u.normal.cdf(-l.abs(t), 0, 1) : 2 * u.normal.cdf(-l.abs(t), 0, 1))
        }
    }),
    u.extend(u.fn, {
        zscore: function(t, e) {
            return (t - this.mean()) / this.stdev(e)
        },
        ztest: function(t, e, n) {
            var i = l.abs(this.zscore(t, n));
            return 1 === e ? u.normal.cdf(-i, 0, 1) : 2 * u.normal.cdf(-i, 0, 1)
        }
    }),
    u.extend({
        tscore: function() {
            var t = h.call(arguments);
            return 4 === t.length ? (t[0] - t[1]) / (t[2] / l.sqrt(t[3])) : (t[0] - u.mean(t[1])) / (u.stdev(t[1], !0) / l.sqrt(t[1].length))
        },
        ttest: function() {
            var t, e = h.call(arguments);
            return 5 === e.length ? (t = l.abs(u.tscore(e[0], e[1], e[2], e[3])),
            1 === e[4] ? u.studentt.cdf(-t, e[3] - 1) : 2 * u.studentt.cdf(-t, e[3] - 1)) : a(e[1]) ? (t = l.abs(e[0]),
            1 == e[2] ? u.studentt.cdf(-t, e[1] - 1) : 2 * u.studentt.cdf(-t, e[1] - 1)) : (t = l.abs(u.tscore(e[0], e[1])),
            1 == e[2] ? u.studentt.cdf(-t, e[1].length - 1) : 2 * u.studentt.cdf(-t, e[1].length - 1))
        }
    }),
    u.extend(u.fn, {
        tscore: function(t) {
            return (t - this.mean()) / (this.stdev(!0) / l.sqrt(this.cols()))
        },
        ttest: function(t, e) {
            return 1 === e ? 1 - u.studentt.cdf(l.abs(this.tscore(t)), this.cols() - 1) : 2 * u.studentt.cdf(-l.abs(this.tscore(t)), this.cols() - 1)
        }
    }),
    u.extend({
        anovafscore: function() {
            var t, e, n, i, r, o, a, s, c = h.call(arguments);
            if (1 === c.length) {
                for (r = new Array(c[0].length),
                a = 0; a < c[0].length; a++)
                    r[a] = c[0][a];
                c = r
            }
            for (e = new Array,
            a = 0; a < c.length; a++)
                e = e.concat(c[a]);
            for (n = u.mean(e),
            a = t = 0; a < c.length; a++)
                t += c[a].length * l.pow(u.mean(c[a]) - n, 2);
            for (t /= c.length - 1,
            a = o = 0; a < c.length; a++)
                for (i = u.mean(c[a]),
                s = 0; s < c[a].length; s++)
                    o += l.pow(c[a][s] - i, 2);
            return t / (o /= e.length - c.length)
        },
        anovaftest: function() {
            var t, e = h.call(arguments);
            if (a(e[0]))
                return 1 - u.centralF.cdf(e[0], e[1], e[2]);
            for (var n = u.anovafscore(e), i = e.length - 1, r = 0, o = 0; o < e.length; o++)
                r += e[o].length;
            return t = r - i - 1,
            1 - u.centralF.cdf(n, i, t)
        },
        ftest: function(t, e, n) {
            return 1 - u.centralF.cdf(t, e, n)
        }
    }),
    u.extend(u.fn, {
        anovafscore: function() {
            return u.anovafscore(this.toArray())
        },
        anovaftes: function() {
            for (var t = 0, e = 0; e < this.length; e++)
                t += this[e].length;
            return u.ftest(this.anovafscore(), this.length - 1, t - this.length)
        }
    }),
    u.extend({
        qscore: function() {
            var t, e, n, i, r = h.call(arguments), o = a(r[0]) ? (t = r[0],
            e = r[1],
            n = r[2],
            i = r[3],
            r[4]) : (t = u.mean(r[0]),
            e = u.mean(r[1]),
            n = r[0].length,
            i = r[1].length,
            r[2]);
            return l.abs(t - e) / (o * l.sqrt((1 / n + 1 / i) / 2))
        },
        qtest: function() {
            var t, e = h.call(arguments), n = (e = 3 === e.length ? (t = e[0],
            e.slice(1)) : 7 === e.length ? (t = u.qscore(e[0], e[1], e[2], e[3], e[4]),
            e.slice(5)) : (t = u.qscore(e[0], e[1], e[2]),
            e.slice(3)))[0], i = e[1];
            return 1 - u.tukey.cdf(t, i, n - i)
        },
        tukeyhsd: function(t) {
            for (var e = u.pooledstdev(t), n = t.map(function(t) {
                return u.mean(t)
            }), i = t.reduce(function(t, e) {
                return t + e.length
            }, 0), r = [], o = 0; o < t.length; ++o)
                for (var a = o + 1; a < t.length; ++a) {
                    var s = u.qtest(n[o], n[a], t[o].length, t[a].length, e, i, t.length);
                    r.push([[o, a], s])
                }
            return r
        }
    }),
    u.extend({
        normalci: function() {
            var t = h.call(arguments)
              , e = new Array(2)
              , n = 4 === t.length ? l.abs(u.normal.inv(t[1] / 2, 0, 1) * t[2] / l.sqrt(t[3])) : l.abs(u.normal.inv(t[1] / 2, 0, 1) * u.stdev(t[2]) / l.sqrt(t[2].length));
            return e[0] = t[0] - n,
            e[1] = t[0] + n,
            e
        },
        tci: function() {
            var t = h.call(arguments)
              , e = new Array(2)
              , n = 4 === t.length ? l.abs(u.studentt.inv(t[1] / 2, t[3] - 1) * t[2] / l.sqrt(t[3])) : l.abs(u.studentt.inv(t[1] / 2, t[2].length - 1) * u.stdev(t[2], !0) / l.sqrt(t[2].length));
            return e[0] = t[0] - n,
            e[1] = t[0] + n,
            e
        },
        significant: function(t, e) {
            return t < e
        }
    }),
    u.extend(u.fn, {
        normalci: function(t, e) {
            return u.normalci(t, e, this.toArray())
        },
        tci: function(t, e) {
            return u.tci(t, e, this.toArray())
        }
    }),
    u.extend(u.fn, {
        oneSidedDifferenceOfProportions: function(t, e, n, i) {
            var r = o(t, e, n, i);
            return u.ztest(r, 1)
        },
        twoSidedDifferenceOfProportions: function(t, e, n, i) {
            var r = o(t, e, n, i);
            return u.ztest(r, 2)
        }
    }),
    f.models = {
        ols: function(t, e) {
            var n, i, r, o, a, s = A(t, e), c = y(s), u = {
                F_statistic: a = (n = s).R2 / n.df_model / ((1 - n.R2) / n.df_resid),
                pvalue: 1 - (i = a,
                r = n.df_model,
                o = n.df_resid,
                f.beta.cdf(i / (o / r + i), r / 2, o / 2))
            }, l = 1 - (1 - s.R2) * ((s.nobs - 1) / s.df_resid);
            return s.t = c,
            s.f = u,
            s.adjust_R2 = l,
            s
        }
    },
    f.extend({
        buildxmatrix: function() {
            for (var t = new Array(arguments.length), e = 0; e < arguments.length; e++) {
                t[e] = [1].concat(arguments[e])
            }
            return f(t)
        },
        builddxmatrix: function(t) {
            for (var e = new Array(t.length), n = 0; n < t.length; n++) {
                e[n] = [1].concat(t[n])
            }
            return f(e)
        },
        buildjxmatrix: function(t) {
            for (var e = new Array(t.length), n = 0; n < t.length; n++)
                e[n] = t[n];
            return f.builddxmatrix(e)
        },
        buildymatrix: function(t) {
            return f(t).transpose()
        },
        buildjymatrix: function(t) {
            return t.transpose()
        },
        matrixmult: function(t, e) {
            var n, i, r, o, a;
            if (t.cols() == e.rows()) {
                if (1 < e.rows()) {
                    for (o = [],
                    n = 0; n < t.rows(); n++)
                        for (o[n] = [],
                        i = 0; i < e.cols(); i++) {
                            for (r = a = 0; r < t.cols(); r++)
                                a += t.toArray()[n][r] * e.toArray()[r][i];
                            o[n][i] = a
                        }
                    return f(o)
                }
                for (o = [],
                n = 0; n < t.rows(); n++)
                    for (o[n] = [],
                    i = 0; i < e.cols(); i++) {
                        for (r = a = 0; r < t.cols(); r++)
                            a += t.toArray()[n][r] * e.toArray()[i];
                        o[n][i] = a
                    }
                return f(o)
            }
        },
        regress: function(t, e) {
            var n = f.xtranspxinv(t)
              , i = t.transpose()
              , r = f.matrixmult(f(n), i);
            return f.matrixmult(r, e)
        },
        regresst: function(t, e, n) {
            var i = f.regress(t, e)
              , r = {
                anova: {}
            }
              , o = f.jMatYBar(t, i);
            r.yBar = o;
            var a = e.mean();
            r.anova.residuals = f.residuals(e, o),
            r.anova.ssr = f.ssr(o, a),
            r.anova.msr = r.anova.ssr / (t[0].length - 1),
            r.anova.sse = f.sse(e, o),
            r.anova.mse = r.anova.sse / (e.length - (t[0].length - 1) - 1),
            r.anova.sst = f.sst(e, a),
            r.anova.mst = r.anova.sst / (e.length - 1),
            r.anova.r2 = 1 - r.anova.sse / r.anova.sst,
            r.anova.r2 < 0 && (r.anova.r2 = 0),
            r.anova.fratio = r.anova.msr / r.anova.mse,
            r.anova.pvalue = f.anovaftest(r.anova.fratio, t[0].length - 1, e.length - (t[0].length - 1) - 1),
            r.anova.rmse = Math.sqrt(r.anova.mse),
            r.anova.r2adj = 1 - r.anova.mse / r.anova.mst,
            r.anova.r2adj < 0 && (r.anova.r2adj = 0),
            r.stats = new Array(t[0].length);
            for (var s, c, u, l = f.xtranspxinv(t), h = 0; h < i.length; h++)
                s = Math.sqrt(r.anova.mse * Math.abs(l[h][h])),
                c = Math.abs(i[h] / s),
                u = f.ttest(c, e.length - t[0].length - 1, n),
                r.stats[h] = [i[h], s, c, u];
            return r.regress = i,
            r
        },
        xtranspx: function(t) {
            return f.matrixmult(t.transpose(), t)
        },
        xtranspxinv: function(t) {
            var e = f.matrixmult(t.transpose(), t);
            return f.inv(e)
        },
        jMatYBar: function(t, e) {
            var n = f.matrixmult(t, e);
            return new f(n)
        },
        residuals: function(t, e) {
            return f.matrixsubtract(t, e)
        },
        ssr: function(t, e) {
            for (var n = 0, i = 0; i < t.length; i++)
                n += Math.pow(t[i] - e, 2);
            return n
        },
        sse: function(t, e) {
            for (var n = 0, i = 0; i < t.length; i++)
                n += Math.pow(t[i] - e[i], 2);
            return n
        },
        sst: function(t, e) {
            for (var n = 0, i = 0; i < t.length; i++)
                n += Math.pow(t[i] - e, 2);
            return n
        },
        matrixsubtract: function(t, e) {
            for (var n = new Array(t.length), i = 0; i < t.length; i++) {
                n[i] = new Array(t[i].length);
                for (var r = 0; r < t[i].length; r++)
                    n[i][r] = t[i][r] - e[i][r]
            }
            return f(n)
        }
    }),
    f.jStat = f
});
var CryptoApi = function(n) {
    var i = {};
    function r(t) {
        if (i[t])
            return i[t].exports;
        var e = i[t] = {
            i: t,
            l: !1,
            exports: {}
        };
        return n[t].call(e.exports, e, e.exports, r),
        e.l = !0,
        e.exports
    }
    return r.m = n,
    r.c = i,
    r.d = function(t, e, n) {
        r.o(t, e) || Object.defineProperty(t, e, {
            enumerable: !0,
            get: n
        })
    }
    ,
    r.r = function(t) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
            value: "Module"
        }),
        Object.defineProperty(t, "__esModule", {
            value: !0
        })
    }
    ,
    r.t = function(e, t) {
        if (1 & t && (e = r(e)),
        8 & t)
            return e;
        if (4 & t && "object" == typeof e && e && e.__esModule)
            return e;
        var n = Object.create(null);
        if (r.r(n),
        Object.defineProperty(n, "default", {
            enumerable: !0,
            value: e
        }),
        2 & t && "string" != typeof e)
            for (var i in e)
                r.d(n, i, function(t) {
                    return e[t]
                }
                .bind(null, i));
        return n
    }
    ,
    r.n = function(t) {
        var e = t && t.__esModule ? function() {
            return t.default
        }
        : function() {
            return t
        }
        ;
        return r.d(e, "a", e),
        e
    }
    ,
    r.o = function(t, e) {
        return Object.prototype.hasOwnProperty.call(t, e)
    }
    ,
    r.p = "",
    r(r.s = 29)
}([function(t, e, n) {
    "use strict";
    function i(t, e) {
        return t << e | t >>> 32 - e | 0
    }
    function r(t, e) {
        return t >>> e | t << 32 - e | 0
    }
    function o(t, e, n) {
        return 32 === n ? e : 32 < n ? o(e, t, n - 32) : 4294967295 & (t >>> n | e << 32 - n)
    }
    function a(t, e, n) {
        return 32 === n ? t : 32 < n ? a(e, t, n - 32) : 4294967295 & (e >>> n | t << 32 - n)
    }
    n.d(e, "a", function() {
        return i
    }),
    n.d(e, "b", function() {
        return r
    }),
    n.d(e, "d", function() {
        return a
    }),
    n.d(e, "c", function() {
        return o
    })
}
, function(t, e, n) {
    "use strict";
    function i(t) {
        for (var e = "", n = 0, i = t.length; n < i; n++) {
            var r = t.charCodeAt(n);
            r < 128 ? e += String.fromCharCode(r) : (r < 2048 ? e += String.fromCharCode(192 | r >> 6) : (r < 55296 || 57344 <= r ? e += String.fromCharCode(224 | r >> 12) : (n++,
            r = 65536 + ((1023 & r) << 10 | 1023 & t.charCodeAt(n)),
            e += String.fromCharCode(240 | r >> 18),
            e += String.fromCharCode(128 | r >> 12 & 63)),
            e += String.fromCharCode(128 | r >> 6 & 63)),
            e += String.fromCharCode(128 | 63 & r))
        }
        return e
    }
    n.d(e, "a", function() {
        return i
    })
}
, function(t, e, n) {
    "use strict";
    function i(t) {
        for (var e = "", n = 0, i = t.length; n < i; n++)
            e += (t.charCodeAt(n) < 16 ? "0" : "") + t.charCodeAt(n).toString(16);
        return e
    }
    n.d(e, "a", function() {
        return i
    })
}
, function(t, e, n) {
    "use strict";
    function r(t) {
        return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        }
        : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }
        )(t)
    }
    function o(t) {
        return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
            return t.__proto__ || Object.getPrototypeOf(t)
        }
        )(t)
    }
    function i(t, e) {
        return (i = Object.setPrototypeOf || function(t, e) {
            return t.__proto__ = e,
            t
        }
        )(t, e)
    }
    var a = (function(t, e) {
        if ("function" != typeof e && null !== e)
            throw new TypeError("Super expression must either be null or a function");
        t.prototype = Object.create(e && e.prototype, {
            constructor: {
                value: t,
                writable: !0,
                configurable: !0
            }
        }),
        e && i(t, e)
    }(s, n(4).a),
    function(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }(s.prototype, [{
        key: "process",
        value: function() {
            for (; this.state.message.length >= this.blockSizeInBytes; ) {
                this.blockUnits = [];
                for (var t = 0; t < this.blockSizeInBytes; t += 4)
                    this.blockUnits.push(this.state.message.charCodeAt(t) << 24 | this.state.message.charCodeAt(t + 1) << 16 | this.state.message.charCodeAt(t + 2) << 8 | this.state.message.charCodeAt(t + 3));
                this.state.message = this.state.message.substr(this.blockSizeInBytes),
                this.processBlock(this.blockUnits)
            }
        }
    }, {
        key: "processBlock",
        value: function(t) {}
    }, {
        key: "getStateHash",
        value: function(t) {
            t = t || this.state.hash.length;
            for (var e = "", n = 0; n < t; n++)
                e += String.fromCharCode(this.state.hash[n] >> 24 & 255) + String.fromCharCode(this.state.hash[n] >> 16 & 255) + String.fromCharCode(this.state.hash[n] >> 8 & 255) + String.fromCharCode(255 & this.state.hash[n]);
            return e
        }
    }, {
        key: "addLengthBits",
        value: function() {
            this.state.message += "\0\0\0" + String.fromCharCode(this.state.length >> 29 & 255) + String.fromCharCode(this.state.length >> 21 & 255) + String.fromCharCode(this.state.length >> 13 & 255) + String.fromCharCode(this.state.length >> 5 & 255) + String.fromCharCode(this.state.length << 3 & 255)
        }
    }]),
    s);
    function s(t) {
        var e, n, i;
        return function(t) {
            if (!(t instanceof s))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        n = this,
        (e = !(i = o(s).call(this, t)) || "object" !== r(i) && "function" != typeof i ? function() {
            if (void 0 !== n)
                return n;
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
        }() : i).unitOrder = 1,
        e.blockUnits = [],
        e
    }
    e.a = a
}
, function(t, e, n) {
    "use strict";
    var i = (function(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }(r.prototype, [{
        key: "reset",
        value: function() {
            this.state = {},
            this.state.message = "",
            this.state.length = 0
        }
    }, {
        key: "getState",
        value: function() {
            return JSON.parse(JSON.stringify(this.state))
        }
    }, {
        key: "setState",
        value: function(t) {
            this.state = t
        }
    }, {
        key: "update",
        value: function(t) {
            this.state.message += t,
            this.state.length += t.length,
            this.process()
        }
    }, {
        key: "process",
        value: function() {}
    }, {
        key: "finalize",
        value: function() {
            return ""
        }
    }, {
        key: "getStateHash",
        value: function(t) {
            return ""
        }
    }, {
        key: "addPaddingPKCS7",
        value: function(t) {
            this.state.message += new Array(t + 1).join(String.fromCharCode(t))
        }
    }, {
        key: "addPaddingISO7816",
        value: function(t) {
            this.state.message += "" + new Array(t).join("\0")
        }
    }, {
        key: "addPaddingZero",
        value: function(t) {
            this.state.message += new Array(t + 1).join("\0")
        }
    }]),
    r);
    function r(t) {
        !function(t) {
            if (!(t instanceof r))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        this.unitSize = 4,
        this.unitOrder = 0,
        this.blockSize = 16,
        this.blockSizeInBytes = this.blockSize * this.unitSize,
        this.options = t || {},
        this.reset()
    }
    e.a = i
}
, function(t, e, n) {
    "use strict";
    function r(t) {
        return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        }
        : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }
        )(t)
    }
    function o(t) {
        return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
            return t.__proto__ || Object.getPrototypeOf(t)
        }
        )(t)
    }
    function i(t, e) {
        return (i = Object.setPrototypeOf || function(t, e) {
            return t.__proto__ = e,
            t
        }
        )(t, e)
    }
    var a = (function(t, e) {
        if ("function" != typeof e && null !== e)
            throw new TypeError("Super expression must either be null or a function");
        t.prototype = Object.create(e && e.prototype, {
            constructor: {
                value: t,
                writable: !0,
                configurable: !0
            }
        }),
        e && i(t, e)
    }(s, n(4).a),
    function(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }(s.prototype, [{
        key: "process",
        value: function() {
            for (; this.state.message.length >= this.blockSizeInBytes; ) {
                this.blockUnits = [];
                for (var t = 0; t < this.blockSizeInBytes; t += 4)
                    this.blockUnits.push(this.state.message.charCodeAt(t) | this.state.message.charCodeAt(t + 1) << 8 | this.state.message.charCodeAt(t + 2) << 16 | this.state.message.charCodeAt(t + 3) << 24);
                this.state.message = this.state.message.substr(this.blockSizeInBytes),
                this.processBlock(this.blockUnits)
            }
        }
    }, {
        key: "processBlock",
        value: function(t) {}
    }, {
        key: "getStateHash",
        value: function(t) {
            t = t || this.state.hash.length;
            for (var e = "", n = 0; n < t; n++)
                e += String.fromCharCode(255 & this.state.hash[n]) + String.fromCharCode(this.state.hash[n] >> 8 & 255) + String.fromCharCode(this.state.hash[n] >> 16 & 255) + String.fromCharCode(this.state.hash[n] >> 24 & 255);
            return e
        }
    }, {
        key: "addLengthBits",
        value: function() {
            this.state.message += String.fromCharCode(this.state.length << 3 & 255) + String.fromCharCode(this.state.length >> 5 & 255) + String.fromCharCode(this.state.length >> 13 & 255) + String.fromCharCode(this.state.length >> 21 & 255) + String.fromCharCode(this.state.length >> 29 & 255) + "\0\0\0"
        }
    }]),
    s);
    function s(t) {
        var e, n, i;
        return function(t) {
            if (!(t instanceof s))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        n = this,
        (e = !(i = o(s).call(this, t)) || "object" !== r(i) && "function" != typeof i ? function() {
            if (void 0 !== n)
                return n;
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
        }() : i).blockUnits = [],
        e
    }
    e.a = a
}
, function(t, e, n) {
    "use strict";
    var i = n(3)
      , x = n(0);
    function r(t) {
        return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        }
        : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }
        )(t)
    }
    function o(t, e, n) {
        return (o = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
            var i = function(t, e) {
                for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = a(t)); )
                    ;
                return t
            }(t, e);
            if (i) {
                var r = Object.getOwnPropertyDescriptor(i, e);
                return r.get ? r.get.call(n) : r.value
            }
        }
        )(t, e, n || t)
    }
    function a(t) {
        return (a = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
            return t.__proto__ || Object.getPrototypeOf(t)
        }
        )(t)
    }
    function s(t, e) {
        return (s = Object.setPrototypeOf || function(t, e) {
            return t.__proto__ = e,
            t
        }
        )(t, e)
    }
    var c, k = [1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, 2173295548, 961987163, 4081628472, 1508970993, 3053834265, 2453635748, 2937671579, 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, 1323610764, 1426881987, 3590304994, 1925078388, 4068182383, 2162078206, 991336113, 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, 944711139, 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, 1249150122, 1856431235, 1555081692, 3175218132, 1996064986, 2198950837, 2554220882, 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, 3203337956, 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895, 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, 1396182291, 2643833823, 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, 1206759142, 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344, 3600352804, 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, 506948616, 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, 3318307427, 1322822218, 3812723403, 1537002063, 2003034995, 1747873779, 3602036899, 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, 442776044, 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573, 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, 3454069534, 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, 289380356, 3203993006, 460393269, 320620315, 685471733, 587496836, 852142971, 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, 1501505948, 4234509866, 1607167915, 987167468, 1816402316, 1246189591], u = (function(t, e) {
        if ("function" != typeof e && null !== e)
            throw new TypeError("Super expression must either be null or a function");
        t.prototype = Object.create(e && e.prototype, {
            constructor: {
                value: t,
                writable: !0,
                configurable: !0
            }
        }),
        e && s(t, e)
    }(l, i.a),
    c = [{
        key: "reset",
        value: function() {
            switch (o(a(l.prototype), "reset", this).call(this),
            this.options.length) {
            case 384:
                this.state.hash = [-876896931, -1056596264, 1654270250, 914150663, -1856437926, 812702999, 355462360, -150054599, 1731405415, -4191439, -1900787065, 1750603025, -619958771, 1694076839, 1203062813, -1090891868];
                break;
            case 512:
                this.state.hash = [1779033703, -205731576, -1150833019, -2067093701, 1013904242, -23791573, -1521486534, 1595750129, 1359893119, -1377402159, -1694144372, 725511199, 528734635, -79577749, 1541459225, 327033209];
                break;
            default:
                for (var t = new l, e = 0; e < 16; e++)
                    t.state.hash[e] = 2779096485 ^ t.state.hash[e];
                t.update("SHA-512/" + this.options.length);
                var n = t.finalize();
                this.state.hash = [];
                for (var i = 0; i < 64; i += 4)
                    this.state.hash.push(n.charCodeAt(i) << 24 | n.charCodeAt(i + 1) << 16 | n.charCodeAt(i + 2) << 8 | n.charCodeAt(i + 3))
            }
        }
    }, {
        key: "processBlock",
        value: function(t) {
            for (var e, n, i, r, o, a, s, c, u = this.state.hash[0], l = this.state.hash[1], h = this.state.hash[2], f = this.state.hash[3], p = this.state.hash[4], d = this.state.hash[5], M = this.state.hash[6], b = this.state.hash[7], m = this.state.hash[8], g = this.state.hash[9], v = this.state.hash[10], A = this.state.hash[11], y = this.state.hash[12], z = this.state.hash[13], _ = this.state.hash[14], O = this.state.hash[15], w = 0; w < this.options.rounds; w += 2) {
                w < 32 ? (this.W[w] = t[w],
                this.W[w + 1] = t[w + 1]) : (e = Object(x.c)(this.W[w - 30], this.W[w - 29], 1) ^ Object(x.c)(this.W[w - 30], this.W[w - 29], 8) ^ this.W[w - 30] >>> 7,
                n = Object(x.d)(this.W[w - 30], this.W[w - 29], 1) ^ Object(x.d)(this.W[w - 30], this.W[w - 29], 8) ^ (this.W[w - 29] >>> 7 | this.W[w - 30] << 25),
                i = Object(x.c)(this.W[w - 4], this.W[w - 3], 19) ^ Object(x.c)(this.W[w - 4], this.W[w - 3], 61) ^ this.W[w - 4] >>> 6,
                r = Object(x.d)(this.W[w - 4], this.W[w - 3], 19) ^ Object(x.d)(this.W[w - 4], this.W[w - 3], 61) ^ (this.W[w - 3] >>> 6 | this.W[w - 4] << 26),
                o = (65535 & this.W[w - 13]) + (65535 & this.W[w - 31]) + (65535 & n) + (65535 & r) | 0,
                a = (this.W[w - 13] >>> 16) + (this.W[w - 31] >>> 16) + (n >>> 16) + (r >>> 16) + (o >>> 16) | 0,
                s = (65535 & this.W[w - 14]) + (65535 & this.W[w - 32]) + (65535 & e) + (65535 & i) + (a >>> 16) | 0,
                c = (this.W[w - 14] >>> 16) + (this.W[w - 32] >>> 16) + (e >>> 16) + (i >>> 16) + (s >>> 16) | 0,
                this.W[w] = 4294967295 & (c << 16 | 65535 & s),
                this.W[w + 1] = 4294967295 & (a << 16 | 65535 & o)),
                e = Object(x.c)(u, l, 28) ^ Object(x.c)(u, l, 34) ^ Object(x.c)(u, l, 39),
                n = Object(x.d)(u, l, 28) ^ Object(x.d)(u, l, 34) ^ Object(x.d)(u, l, 39);
                var L = g & A ^ ~g & z
                  , N = u & h ^ u & p ^ h & p
                  , q = l & f ^ l & d ^ f & d
                  , W = (W = (W = _ + (i = Object(x.c)(m, g, 14) ^ Object(x.c)(m, g, 18) ^ Object(x.c)(m, g, 41)) + ((T = O + (r = Object(x.d)(m, g, 14) ^ Object(x.d)(m, g, 18) ^ Object(x.d)(m, g, 41)) | 0) >>> 0 < O >>> 0 ? 1 : 0) | 0) + (m & v ^ ~m & y) + ((T = T + L | 0) >>> 0 < L >>> 0 ? 1 : 0) | 0) + k[w] + ((T = T + k[w + 1] | 0) >>> 0 < k[w + 1] >>> 0 ? 1 : 0) | 0
                  , T = T + this.W[w + 1] | 0
                  , C = n + q | 0
                  , _ = y
                  , O = z
                  , y = v
                  , z = A
                  , v = m
                  , A = g
                  , m = M + (W = W + this.W[w] + (T >>> 0 < this.W[w + 1] >>> 0 ? 1 : 0) | 0) + ((g = b + T | 0) >>> 0 < b >>> 0 ? 1 : 0) | 0
                  , M = p
                  , b = d
                  , p = h
                  , d = f
                  , h = u
                  , f = l
                  , u = W + (e + N + (C >>> 0 < n >>> 0 ? 1 : 0) | 0) + ((l = T + C | 0) >>> 0 < T >>> 0 ? 1 : 0) | 0
            }
            this.state.hash[1] = this.state.hash[1] + l | 0,
            this.state.hash[0] = this.state.hash[0] + u + (this.state.hash[1] >>> 0 < l >>> 0 ? 1 : 0) | 0,
            this.state.hash[3] = this.state.hash[3] + f | 0,
            this.state.hash[2] = this.state.hash[2] + h + (this.state.hash[3] >>> 0 < f >>> 0 ? 1 : 0) | 0,
            this.state.hash[5] = this.state.hash[5] + d | 0,
            this.state.hash[4] = this.state.hash[4] + p + (this.state.hash[5] >>> 0 < d >>> 0 ? 1 : 0) | 0,
            this.state.hash[7] = this.state.hash[7] + b | 0,
            this.state.hash[6] = this.state.hash[6] + M + (this.state.hash[7] >>> 0 < b >>> 0 ? 1 : 0) | 0,
            this.state.hash[9] = this.state.hash[9] + g | 0,
            this.state.hash[8] = this.state.hash[8] + m + (this.state.hash[9] >>> 0 < g >>> 0 ? 1 : 0) | 0,
            this.state.hash[11] = this.state.hash[11] + A | 0,
            this.state.hash[10] = this.state.hash[10] + v + (this.state.hash[11] >>> 0 < A >>> 0 ? 1 : 0) | 0,
            this.state.hash[13] = this.state.hash[13] + z | 0,
            this.state.hash[12] = this.state.hash[12] + y + (this.state.hash[13] >>> 0 < z >>> 0 ? 1 : 0) | 0,
            this.state.hash[15] = this.state.hash[15] + O | 0,
            this.state.hash[14] = this.state.hash[14] + _ + (this.state.hash[15] >>> 0 < O >>> 0 ? 1 : 0) | 0
        }
    }, {
        key: "finalize",
        value: function() {
            return this.addPaddingISO7816(this.state.message.length < 112 ? 112 - this.state.message.length | 0 : 240 - this.state.message.length | 0),
            this.state.message += "\0\0\0\0\0\0\0\0",
            this.addLengthBits(),
            this.process(),
            this.getStateHash(this.options.length / 32 | 0)
        }
    }],
    function(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }(l.prototype, c),
    l);
    function l(t) {
        var e, n, i;
        return function(t) {
            if (!(t instanceof l))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        (t = t || {}).length = t.length || 512,
        t.rounds = t.rounds || 160,
        n = this,
        (e = !(i = a(l).call(this, t)) || "object" !== r(i) && "function" != typeof i ? function() {
            if (void 0 !== n)
                return n;
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
        }() : i).blockSize = 32,
        e.blockSizeInBytes = e.blockSize * e.unitSize,
        e.W = new Array(160),
        e
    }
    e.a = u
}
, function(t, e, n) {
    "use strict";
    var i = n(3)
      , f = n(0);
    function r(t) {
        return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        }
        : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }
        )(t)
    }
    function o(t, e, n) {
        return (o = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
            var i = function(t, e) {
                for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = a(t)); )
                    ;
                return t
            }(t, e);
            if (i) {
                var r = Object.getOwnPropertyDescriptor(i, e);
                return r.get ? r.get.call(n) : r.value
            }
        }
        )(t, e, n || t)
    }
    function a(t) {
        return (a = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
            return t.__proto__ || Object.getPrototypeOf(t)
        }
        )(t)
    }
    function s(t, e) {
        return (s = Object.setPrototypeOf || function(t, e) {
            return t.__proto__ = e,
            t
        }
        )(t, e)
    }
    var p = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298]
      , c = (function(t, e) {
        if ("function" != typeof e && null !== e)
            throw new TypeError("Super expression must either be null or a function");
        t.prototype = Object.create(e && e.prototype, {
            constructor: {
                value: t,
                writable: !0,
                configurable: !0
            }
        }),
        e && s(t, e)
    }(u, i.a),
    function(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }(u.prototype, [{
        key: "reset",
        value: function() {
            switch (o(a(u.prototype), "reset", this).call(this),
            this.options.length) {
            case 224:
                this.state.hash = [-1056596264, 914150663, 812702999, -150054599, -4191439, 1750603025, 1694076839, -1090891868];
                break;
            default:
                this.state.hash = [1779033703, -1150833019, 1013904242, -1521486534, 1359893119, -1694144372, 528734635, 1541459225]
            }
        }
    }, {
        key: "processBlock",
        value: function(t) {
            for (var e = 0 | this.state.hash[0], n = 0 | this.state.hash[1], i = 0 | this.state.hash[2], r = 0 | this.state.hash[3], o = 0 | this.state.hash[4], a = 0 | this.state.hash[5], s = 0 | this.state.hash[6], c = 0 | this.state.hash[7], u = 0; u < this.options.rounds; u++) {
                this.W[u] = u < 16 ? 0 | t[u] : this.W[u - 16] + (Object(f.b)(this.W[u - 15], 7) ^ Object(f.b)(this.W[u - 15], 18) ^ this.W[u - 15] >>> 3) + this.W[u - 7] + (Object(f.b)(this.W[u - 2], 17) ^ Object(f.b)(this.W[u - 2], 19) ^ this.W[u - 2] >>> 10) | 0;
                var l = c + (Object(f.b)(o, 6) ^ Object(f.b)(o, 11) ^ Object(f.b)(o, 25)) + (o & a ^ ~o & s) + p[u] + this.W[u] | 0
                  , h = (Object(f.b)(e, 2) ^ Object(f.b)(e, 13) ^ Object(f.b)(e, 22)) + (e & n ^ e & i ^ n & i) | 0
                  , c = s
                  , s = a
                  , a = o
                  , o = r + l | 0
                  , r = i
                  , i = n
                  , n = e
                  , e = l + h | 0
            }
            this.state.hash[0] = this.state.hash[0] + e | 0,
            this.state.hash[1] = this.state.hash[1] + n | 0,
            this.state.hash[2] = this.state.hash[2] + i | 0,
            this.state.hash[3] = this.state.hash[3] + r | 0,
            this.state.hash[4] = this.state.hash[4] + o | 0,
            this.state.hash[5] = this.state.hash[5] + a | 0,
            this.state.hash[6] = this.state.hash[6] + s | 0,
            this.state.hash[7] = this.state.hash[7] + c | 0
        }
    }, {
        key: "finalize",
        value: function() {
            return this.addPaddingISO7816(this.state.message.length < 56 ? 56 - this.state.message.length | 0 : 120 - this.state.message.length | 0),
            this.addLengthBits(),
            this.process(),
            this.getStateHash(this.options.length / 32 | 0)
        }
    }]),
    u);
    function u(t) {
        var e, n, i;
        return function(t) {
            if (!(t instanceof u))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        (t = t || {}).length = t.length || 256,
        t.rounds = t.rounds || 64,
        n = this,
        (e = !(i = a(u).call(this, t)) || "object" !== r(i) && "function" != typeof i ? function() {
            if (void 0 !== n)
                return n;
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
        }() : i).W = new Array(64),
        e
    }
    e.a = c
}
, function(t, e, n) {
    "use strict";
    var i = n(5)
      , d = n(0);
    function r(t) {
        return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        }
        : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }
        )(t)
    }
    function o(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }
    function a(t, e, n) {
        return (a = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
            var i = function(t, e) {
                for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = s(t)); )
                    ;
                return t
            }(t, e);
            if (i) {
                var r = Object.getOwnPropertyDescriptor(i, e);
                return r.get ? r.get.call(n) : r.value
            }
        }
        )(t, e, n || t)
    }
    function s(t) {
        return (s = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
            return t.__proto__ || Object.getPrototypeOf(t)
        }
        )(t)
    }
    function c(t, e) {
        return (c = Object.setPrototypeOf || function(t, e) {
            return t.__proto__ = e,
            t
        }
        )(t, e)
    }
    var u, l, M = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13], b = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11], m = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6], g = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11], h = (function(t, e) {
        if ("function" != typeof e && null !== e)
            throw new TypeError("Super expression must either be null or a function");
        t.prototype = Object.create(e && e.prototype, {
            constructor: {
                value: t,
                writable: !0,
                configurable: !0
            }
        }),
        e && c(t, e)
    }(v, i.a),
    l = [{
        key: "F",
        value: function(t, e, n) {
            return t ^ e ^ n
        }
    }, {
        key: "G",
        value: function(t, e, n) {
            return t & e | ~t & n
        }
    }, {
        key: "H",
        value: function(t, e, n) {
            return (t | ~e) ^ n
        }
    }, {
        key: "I",
        value: function(t, e, n) {
            return t & n | e & ~n
        }
    }, {
        key: "J",
        value: function(t, e, n) {
            return t ^ (e | ~n)
        }
    }, {
        key: "T",
        value: function(t, e, n, i) {
            return t < 16 ? this.F(e, n, i) : t < 32 ? this.G(e, n, i) + 1518500249 | 0 : t < 48 ? this.H(e, n, i) + 1859775393 | 0 : t < 64 ? this.I(e, n, i) + 2400959708 | 0 : this.J(e, n, i) + 2840853838 | 0
        }
    }, {
        key: "T64",
        value: function(t, e, n, i) {
            return t < 16 ? this.I(e, n, i) + 1352829926 | 0 : t < 32 ? this.H(e, n, i) + 1548603684 | 0 : t < 48 ? this.G(e, n, i) + 1836072691 | 0 : this.F(e, n, i)
        }
    }, {
        key: "T80",
        value: function(t, e, n, i) {
            return t < 16 ? this.J(e, n, i) + 1352829926 | 0 : t < 32 ? this.I(e, n, i) + 1548603684 | 0 : t < 48 ? this.H(e, n, i) + 1836072691 | 0 : t < 64 ? this.G(e, n, i) + 2053994217 | 0 : this.F(e, n, i)
        }
    }],
    o((u = v).prototype, [{
        key: "reset",
        value: function() {
            switch (a(s(v.prototype), "reset", this).call(this),
            this.options.length) {
            case 128:
                this.state.hash = [1732584193, 4023233417, 2562383102, 271733878],
                this.processBlock = this.processBlock128;
                break;
            case 256:
                this.state.hash = [1732584193, 4023233417, 2562383102, 271733878, 1985229328, 4275878552, 2309737967, 19088743],
                this.processBlock = this.processBlock256;
                break;
            case 320:
                this.state.hash = [1732584193, 4023233417, 2562383102, 271733878, 3285377520, 1985229328, 4275878552, 2309737967, 19088743, 1009589775],
                this.processBlock = this.processBlock320;
                break;
            default:
                this.state.hash = [1732584193, 4023233417, 2562383102, 271733878, 3285377520],
                this.processBlock = this.processBlock160
            }
        }
    }, {
        key: "processBlock128",
        value: function(t) {
            for (var e = s = 0 | this.state.hash[0], n = l = 0 | this.state.hash[1], i = u = 0 | this.state.hash[2], r = c = 0 | this.state.hash[3], o = 0; o < 64; o++) {
                var a = (a = s + t[M[o]] | 0) + v.T(o, l, u, c) | 0
                  , s = c
                  , c = u
                  , u = l
                  , l = a = Object(d.a)(a, m[o]);
                a = (a = e + t[b[o]] | 0) + v.T64(o, n, i, r) | 0,
                e = r,
                r = i,
                i = n,
                n = a = Object(d.a)(a, g[o])
            }
            var h = this.state.hash[1] + u + r | 0;
            this.state.hash[1] = this.state.hash[2] + c + e | 0,
            this.state.hash[2] = this.state.hash[3] + s + n | 0,
            this.state.hash[3] = this.state.hash[0] + l + i | 0,
            this.state.hash[0] = h
        }
    }, {
        key: "processBlock160",
        value: function(t) {
            for (var e = 0 | this.state.hash[0], n = 0 | this.state.hash[1], i = 0 | this.state.hash[2], r = 0 | this.state.hash[3], o = 0 | this.state.hash[4], a = e, s = n, c = i, u = r, l = o, h = 0; h < 80; h++) {
                var f = (f = e + t[M[h]] | 0) + v.T(h, n, i, r) | 0;
                f = (f = Object(d.a)(f, m[h])) + o | 0,
                e = o,
                o = r,
                r = Object(d.a)(i, 10),
                i = n,
                n = f,
                f = (f = a + t[b[h]] | 0) + v.T80(h, s, c, u) | 0,
                f = (f = Object(d.a)(f, g[h])) + l | 0,
                a = l,
                l = u,
                u = Object(d.a)(c, 10),
                c = s,
                s = f
            }
            var p = this.state.hash[1] + i + u | 0;
            this.state.hash[1] = this.state.hash[2] + r + l | 0,
            this.state.hash[2] = this.state.hash[3] + o + a | 0,
            this.state.hash[3] = this.state.hash[4] + e + s | 0,
            this.state.hash[4] = this.state.hash[0] + n + c | 0,
            this.state.hash[0] = p
        }
    }, {
        key: "processBlock256",
        value: function(t) {
            for (var e = 0 | this.state.hash[0], n = 0 | this.state.hash[1], i = 0 | this.state.hash[2], r = 0 | this.state.hash[3], o = 0 | this.state.hash[4], a = 0 | this.state.hash[5], s = 0 | this.state.hash[6], c = 0 | this.state.hash[7], u = 0; u < 64; u += 1) {
                var l = (l = e + t[M[u]] | 0) + v.T(u, n, i, r) | 0
                  , e = r
                  , r = i
                  , i = n
                  , n = l = Object(d.a)(l, m[u]);
                switch (l = (l = o + t[b[u]] | 0) + v.T64(u, a, s, c) | 0,
                o = c,
                c = s,
                s = a,
                a = l = Object(d.a)(l, g[u]),
                u) {
                case 15:
                    l = e,
                    e = o,
                    o = l;
                    break;
                case 31:
                    l = n,
                    n = a,
                    a = l;
                    break;
                case 47:
                    l = i,
                    i = s,
                    s = l;
                    break;
                case 63:
                    l = r,
                    r = c,
                    c = l
                }
            }
            this.state.hash[0] = this.state.hash[0] + e | 0,
            this.state.hash[1] = this.state.hash[1] + n | 0,
            this.state.hash[2] = this.state.hash[2] + i | 0,
            this.state.hash[3] = this.state.hash[3] + r | 0,
            this.state.hash[4] = this.state.hash[4] + o | 0,
            this.state.hash[5] = this.state.hash[5] + a | 0,
            this.state.hash[6] = this.state.hash[6] + s | 0,
            this.state.hash[7] = this.state.hash[7] + c | 0
        }
    }, {
        key: "processBlock320",
        value: function(t) {
            for (var e = 0 | this.state.hash[0], n = 0 | this.state.hash[1], i = 0 | this.state.hash[2], r = 0 | this.state.hash[3], o = 0 | this.state.hash[4], a = 0 | this.state.hash[5], s = 0 | this.state.hash[6], c = 0 | this.state.hash[7], u = 0 | this.state.hash[8], l = 0 | this.state.hash[9], h = 0; h < 80; h += 1) {
                var f = (f = e + t[M[h]] | 0) + v.T(h, n, i, r) | 0;
                switch (f = (f = Object(d.a)(f, m[h])) + o | 0,
                e = o,
                o = r,
                r = Object(d.a)(i, 10),
                i = n,
                n = f,
                f = (f = a + t[b[h]] | 0) + v.T80(h, s, c, u) | 0,
                f = (f = Object(d.a)(f, g[h])) + l | 0,
                a = l,
                l = u,
                u = Object(d.a)(c, 10),
                c = s,
                s = f,
                h) {
                case 15:
                    f = n,
                    n = s,
                    s = f;
                    break;
                case 31:
                    f = r,
                    r = u,
                    u = f;
                    break;
                case 47:
                    f = e,
                    e = a,
                    a = f;
                    break;
                case 63:
                    f = i,
                    i = c,
                    c = f;
                    break;
                case 79:
                    f = o,
                    o = l,
                    l = f
                }
            }
            this.state.hash[0] = this.state.hash[0] + e | 0,
            this.state.hash[1] = this.state.hash[1] + n | 0,
            this.state.hash[2] = this.state.hash[2] + i | 0,
            this.state.hash[3] = this.state.hash[3] + r | 0,
            this.state.hash[4] = this.state.hash[4] + o | 0,
            this.state.hash[5] = this.state.hash[5] + a | 0,
            this.state.hash[6] = this.state.hash[6] + s | 0,
            this.state.hash[7] = this.state.hash[7] + c | 0,
            this.state.hash[8] = this.state.hash[8] + u | 0,
            this.state.hash[9] = this.state.hash[9] + l | 0
        }
    }, {
        key: "finalize",
        value: function() {
            return this.addPaddingISO7816(this.state.message.length < 56 ? 56 - this.state.message.length | 0 : 120 - this.state.message.length | 0),
            this.addLengthBits(),
            this.process(),
            this.getStateHash()
        }
    }]),
    o(u, l),
    v);
    function v(t) {
        return function(t) {
            if (!(t instanceof v))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        (t = t || {}).length = t.length || 160,
        e = this,
        !(n = s(v).call(this, t)) || "object" !== r(n) && "function" != typeof n ? function() {
            if (void 0 !== e)
                return e;
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
        }() : n;
        var e, n
    }
    e.a = h
}
, function(t, e, n) {
    "use strict";
    var i = n(3)
      , u = n(0);
    function r(t) {
        return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        }
        : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }
        )(t)
    }
    function o(t, e, n) {
        return (o = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
            var i = function(t, e) {
                for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = a(t)); )
                    ;
                return t
            }(t, e);
            if (i) {
                var r = Object.getOwnPropertyDescriptor(i, e);
                return r.get ? r.get.call(n) : r.value
            }
        }
        )(t, e, n || t)
    }
    function a(t) {
        return (a = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
            return t.__proto__ || Object.getPrototypeOf(t)
        }
        )(t)
    }
    function s(t, e) {
        return (s = Object.setPrototypeOf || function(t, e) {
            return t.__proto__ = e,
            t
        }
        )(t, e)
    }
    var c = [10097, 32533, 76520, 13586, 34673, 54876, 80959, 9117, 39292, 74945, 37542, 4805, 64894, 74296, 24805, 24037, 20636, 10402, 822, 91665, 8422, 68953, 19645, 9303, 23209, 2560, 15953, 34764, 35080, 33606, 99019, 2529, 9376, 70715, 38311, 31165, 88676, 74397, 4436, 27659, 12807, 99970, 80157, 36147, 64032, 36653, 98951, 16877, 12171, 76833, 66065, 74717, 34072, 76850, 36697, 36170, 65813, 39885, 11199, 29170, 31060, 10805, 45571, 82406, 35303, 42614, 86799, 7439, 23403, 9732, 85269, 77602, 2051, 65692, 68665, 74818, 73053, 85247, 18623, 88579, 63573, 32135, 5325, 47048, 90553, 57548, 28468, 28709, 83491, 25624, 73796, 45753, 3529, 64778, 35808, 34282, 60935, 20344, 35273, 88435, 98520, 17767, 14905, 68607, 22109, 40558, 60970, 93433, 50500, 73998, 11805, 5431, 39808, 27732, 50725, 68248, 29405, 24201, 52775, 67851, 83452, 99634, 6288, 98083, 13746, 70078, 18475, 40610, 68711, 77817, 88685, 40200, 86507, 58401, 36766, 67951, 90364, 76493, 29609, 11062, 99594, 67348, 87517, 64969, 91826, 8928, 93785, 61368, 23478, 34113, 65481, 17674, 17468, 50950, 58047, 76974, 73039, 57186, 40218, 16544, 80124, 35635, 17727, 8015, 45318, 22374, 21115, 78253, 14385, 53763, 74350, 99817, 77402, 77214, 43236, 210, 45521, 64237, 96286, 2655, 69916, 26803, 66252, 29148, 36936, 87203, 76621, 13990, 94400, 56418, 9893, 20505, 14225, 68514, 46427, 56788, 96297, 78822, 54382, 14598, 91499, 14523, 68479, 27686, 46162, 83554, 94750, 89923, 37089, 20048, 80336, 94598, 26940, 36858, 70297, 34135, 53140, 33340, 42050, 82341, 44104, 81949, 85157, 47954, 32979, 26575, 57600, 40881, 22222, 6413, 12550, 73742, 11100, 2040, 12860, 74697, 96644, 89439, 28707, 25815, 63606, 49329, 16505, 34484, 40219, 52563, 43651, 77082, 7207, 31790, 61196, 90446, 26457, 47774, 51924, 33729, 65394, 59593, 42582, 60527, 15474, 45266, 95270, 79953, 59367, 83848, 82396, 10118, 33211, 59466, 94557, 28573, 67897, 54387, 54622, 44431, 91190, 42592, 92927, 45973, 42481, 16213, 97344, 8721, 16868, 48767, 3071, 12059, 25701, 46670, 23523, 78317, 73208, 89837, 68935, 91416, 26252, 29663, 5522, 82562, 4493, 52494, 75246, 33824, 45862, 51025, 61962, 79335, 65337, 12472, 549, 97654, 64051, 88159, 96119, 63896, 54692, 82391, 23287, 29529, 35963, 15307, 26898, 9354, 33351, 35462, 77974, 50024, 90103, 39333, 59808, 8391, 45427, 26842, 83609, 49700, 13021, 24892, 78565, 20106, 46058, 85236, 1390, 92286, 77281, 44077, 93910, 83647, 70617, 42941, 32179, 597, 87379, 25241, 5567, 7007, 86743, 17157, 85394, 11838, 69234, 61406, 20117, 45204, 15956, 6e4, 18743, 92423, 97118, 96338, 19565, 41430, 1758, 75379, 40419, 21585, 66674, 36806, 84962, 85207, 45155, 14938, 19476, 7246, 43667, 94543, 59047, 90033, 20826, 69541, 94864, 31994, 36168, 10851, 34888, 81553, 1540, 35456, 5014, 51176, 98086, 24826, 45240, 28404, 44999, 8896, 39094, 73407, 35441, 31880, 33185, 16232, 41941, 50949, 89435, 48581, 88695, 41994, 37548, 73043, 80951, 406, 96382, 70774, 20151, 23387, 25016, 25298, 94624, 61171, 79752, 49140, 71961, 28296, 69861, 2591, 74852, 20539, 387, 59579, 18633, 32537, 98145, 6571, 31010, 24674, 5455, 61427, 77938, 91936, 74029, 43902, 77557, 32270, 97790, 17119, 52527, 58021, 80814, 51748, 54178, 45611, 80993, 37143, 5335, 12969, 56127, 19255, 36040, 90324, 11664, 49883, 52079, 84827, 59381, 71539, 9973, 33440, 88461, 23356, 48324, 77928, 31249, 64710, 2295, 36870, 32307, 57546, 15020, 9994, 69074, 94138, 87637, 91976, 35584, 4401, 10518, 21615, 1848, 76938, 9188, 20097, 32825, 39527, 4220, 86304, 83389, 87374, 64278, 58044, 90045, 85497, 51981, 50654, 94938, 81997, 91870, 76150, 68476, 64659, 73189, 50207, 47677, 26269, 62290, 64464, 27124, 67018, 41361, 82760, 75768, 76490, 20971, 87749, 90429, 12272, 95375, 5871, 93823, 43178, 54016, 44056, 66281, 31003, 682, 27398, 20714, 53295, 7706, 17813, 8358, 69910, 78542, 42785, 13661, 58873, 4618, 97553, 31223, 8420, 28306, 3264, 81333, 10591, 40510, 7893, 32604, 60475, 94119, 1840, 53840, 86233, 81594, 13628, 51215, 90290, 28466, 68795, 77762, 20791, 91757, 53741, 61613, 62269, 50263, 90212, 55781, 76514, 83483, 47055, 89415, 92694, 397, 58391, 12607, 17646, 48949, 72306, 94541, 37408, 77513, 3820, 86864, 29901, 68414, 82774, 51908, 13980, 72893, 55507, 19502, 37174, 69979, 20288, 55210, 29773, 74287, 75251, 65344, 67415, 21818, 59313, 93278, 81757, 5686, 73156, 7082, 85046, 31853, 38452, 51474, 66499, 68107, 23621, 94049, 91345, 42836, 9191, 8007, 45449, 99559, 68331, 62535, 24170, 69777, 12830, 74819, 78142, 43860, 72834, 33713, 48007, 93584, 72869, 51926, 64721, 58303, 29822, 93174, 93972, 85274, 86893, 11303, 22970, 28834, 34137, 73515, 90400, 71148, 43643, 84133, 89640, 44035, 52166, 73852, 70091, 61222, 60561, 62327, 18423, 56732, 16234, 17395, 96131, 10123, 91622, 85496, 57560, 81604, 18880, 65138, 56806, 87648, 85261, 34313, 65861, 45875, 21069, 85644, 47277, 38001, 2176, 81719, 11711, 71602, 92937, 74219, 64049, 65584, 49698, 37402, 96397, 1304, 77586, 56271, 10086, 47324, 62605, 40030, 37438, 97125, 40348, 87083, 31417, 21815, 39250, 75237, 62047, 15501, 29578, 21826, 41134, 47143, 34072, 64638, 85902, 49139, 6441, 3856, 54552, 73135, 42742, 95719, 9035, 85794, 74296, 8789, 88156, 64691, 19202, 7638, 77929, 3061, 18072, 96207, 44156, 23821, 99538, 4713, 66994, 60528, 83441, 7954, 19814, 59175, 20695, 5533, 52139, 61212, 6455, 83596, 35655, 6958, 92983, 5128, 9719, 77433, 53783, 92301, 50498, 10850, 62746, 99599, 10507, 13499, 6319, 53075, 71839, 6410, 19362, 39820, 98952, 43622, 63147, 64421, 80814, 43800, 9351, 31024, 73167, 59580, 6478, 75569, 78800, 88835, 54486, 23768, 6156, 4111, 8408, 38508, 7341, 23793, 48763, 90822, 97022, 17719, 4207, 95954, 49953, 30692, 70668, 94688, 16127, 56196, 80091, 82067, 63400, 5462, 69200, 65443, 95659, 18288, 27437, 49632, 24041, 8337, 65676, 96299, 90836, 27267, 50264, 13192, 72294, 7477, 44606, 17985, 48911, 97341, 30358, 91307, 6991, 19072, 24210, 36699, 53728, 28825, 35793, 28976, 66252, 68434, 94688, 84473, 13622, 62126, 98408, 12843, 82590, 9815, 93146, 48908, 15877, 54745, 24591, 35700, 4754, 83824, 52692, 54130, 55160, 6913, 45197, 42672, 78601, 11883, 9528, 63011, 98901, 14974, 40344, 10455, 16019, 14210, 33712, 91342, 37821, 88325, 80851, 43667, 70883, 12883, 97343, 65027, 61184, 4285, 1392, 17974, 15077, 90712, 26769, 21778, 30976, 38807, 36961, 31649, 42096, 63281, 2023, 8816, 47449, 19523, 59515, 65122, 59659, 86283, 68258, 69572, 13798, 16435, 91529, 67245, 52670, 35583, 16563, 79246, 86686, 76463, 34222, 26655, 90802, 60584, 47377, 7500, 37992, 45134, 26529, 26760, 83637, 41326, 44344, 53853, 41377, 36066, 94850, 58838, 73859, 49364, 73331, 96240, 43642, 24637, 38736, 74384, 89342, 52623, 7992, 12369, 18601, 3742, 83873, 83080, 12451, 38992, 22815, 7759, 51777, 97377, 27585, 51972, 37867, 16444, 24334, 36151, 99073, 27493, 70939, 85130, 32552, 54846, 54759, 60790, 18157, 57178, 65762, 11161, 78576, 45819, 52979, 65130, 4860, 3991, 10461, 93716, 16894, 66083, 24653, 84609, 58232, 88618, 19161, 38555, 95554, 32886, 59780, 8355, 60860, 29735, 47762, 71299, 23853, 17546, 73704, 92052, 46215, 55121, 29281, 59076, 7936, 27954, 58909, 32643, 52861, 95819, 6831, 911, 98936, 76355, 93779, 80863, 514, 69572, 68777, 39510, 35905, 14060, 40619, 29549, 69616, 33564, 60780, 24122, 66591, 27699, 6494, 14845, 46672, 61958, 77100, 90899, 75754, 61196, 30231, 92962, 61773, 41839, 55382, 17267, 70943, 78038, 70267, 30532, 21704, 10274, 12202, 39685, 23309, 10061, 68829, 55986, 66485, 3788, 97599, 75867, 20717, 74416, 53166, 35208, 33374, 87539, 8823, 48228, 63379, 85783, 47619, 53152, 67433, 35663, 52972, 16818, 60311, 60365, 94653, 35075, 33949, 42614, 29297, 1918, 28316, 98953, 73231, 83799, 42402, 56623, 34442, 34994, 41374, 70071, 14736, 9958, 18065, 32960, 7405, 36409, 83232, 99385, 41600, 11133, 7586, 15917, 6253, 19322, 53845, 57620, 52606, 66497, 68646, 78138, 66559, 19640, 99413, 11220, 94747, 7399, 37408, 48509, 23929, 27482, 45476, 85244, 35159, 31751, 57260, 68980, 5339, 15470, 48355, 88651, 22596, 3152, 19121, 88492, 99382, 14454, 4504, 20094, 98977, 74843, 93413, 22109, 78508, 30934, 47744, 7481, 83828, 73788, 6533, 28597, 20405, 94205, 20380, 22888, 48893, 27499, 98748, 60530, 45128, 74022, 84617, 82037, 10268, 78212, 16993, 35902, 91386, 44372, 15486, 65741, 14014, 87481, 37220, 41849, 84547, 46850, 52326, 34677, 58300, 74910, 64345, 19325, 81549, 46352, 33049, 69248, 93460, 45305, 7521, 61318, 31855, 14413, 70951, 11087, 96294, 14013, 31792, 59747, 67277, 76503, 34513, 39663, 77544, 52701, 8337, 56303, 87315, 16520, 69676, 11654, 99893, 2181, 68161, 57275, 36898, 81304, 48585, 68652, 27376, 92852, 55866, 88448, 3584, 20857, 73156, 70284, 24326, 79375, 95220, 1159, 63267, 10622, 48391, 15633, 84924, 90415, 93614, 33521, 26665, 55823, 47641, 86225, 31704, 92694, 48297, 39904, 2115, 59589, 49067, 66821, 41575, 49767, 4037, 77613, 19019, 88152, 80, 20554, 91409, 96277, 48257, 50816, 97616, 38688, 32486, 45134, 63545, 59404, 72059, 43947, 51680, 43852, 59693, 25163, 1889, 70014, 15021, 41290, 67312, 71857, 15957, 68971, 11403, 65251, 7629, 37239, 33295, 5870, 1119, 92784, 26340, 18477, 65622, 36815, 43625, 18637, 37509, 82444, 99005, 4921, 73701, 14707, 93997, 64397, 11692, 5327, 82162, 20247, 81759, 45197, 25332, 83745, 22567, 4515, 25624, 95096, 67946, 48460, 85558, 15191, 18782, 16930, 33361, 83761, 60873, 43253, 84145, 60833, 25983, 1291, 41349, 20368, 7126, 14387, 6345, 80854, 9279, 43529, 6318, 38384, 74761, 41196, 37480, 51321, 92246, 80088, 77074, 88722, 56736, 66164, 49431, 66919, 31678, 72472, 8, 80890, 18002, 94813, 31900, 54155, 83436, 35352, 54131, 5466, 55306, 93128, 18464, 74457, 90561, 72848, 11834, 79982, 68416, 39528, 72484, 82474, 25593, 48545, 35247, 18619, 13674, 18611, 19241, 81616, 18711, 53342, 44276, 75122, 11724, 74627, 73707, 58319, 15997, 7586, 16120, 82641, 22820, 92904, 13141, 32392, 19763, 61199, 67940, 90767, 4235, 13574, 17200, 69902, 63742, 78464, 22501, 18627, 90872, 40188, 28193, 29593, 88627, 94972, 11598, 62095, 36787, 441, 58997, 34414, 82157, 86887, 55087, 19152, 23, 12302, 80783, 32624, 68691, 63439, 75363, 44989, 16822, 36024, 867, 76378, 41605, 65961, 73488, 67049, 9070, 93399, 45547, 94458, 74284, 5041, 49807, 20288, 34060, 79495, 4146, 52162, 90286, 54158, 34243, 46978, 35482, 59362, 95938, 91704, 30552, 4737, 21031, 75051, 93029, 47665, 64382, 99782, 93478, 94015, 46874, 32444, 48277, 59820, 96163, 64654, 25843, 41145, 42820, 74108, 88222, 88570, 74015, 25704, 91035, 1755, 14750, 48968, 38603, 62880, 87873, 95160, 59221, 22304, 90314, 72877, 17334, 39283, 4149, 11748, 12102, 80580, 41867, 17710, 59621, 6554, 7850, 73950, 79552, 17944, 5600, 60478, 3343, 25852, 58905, 57216, 39618, 49856, 99326, 66067, 42792, 95043, 52680, 46780, 56487, 9971, 59481, 37006, 22186, 54244, 91030, 45547, 70818, 59849, 96169, 61459, 21647, 87417, 17198, 30945, 57589, 31732, 57260, 47670, 7654, 46376, 25366, 94746, 49580, 69170, 37403, 86995, 90307, 94304, 71803, 26825, 5511, 12459, 91314, 8345, 88975, 35841, 85771, 8105, 59987, 87112, 21476, 14713, 71181, 27767, 43584, 85301, 88977, 29490, 69714, 73035, 41207, 74699, 9310, 13025, 14338, 54066, 15243, 47724, 66733, 47431, 43905, 31048, 56699, 80217, 36292, 98525, 24335, 24432, 24896, 43277, 58874, 11466, 16082, 10875, 62004, 90391, 61105, 57411, 6368, 53856, 30743, 8670, 84741, 54127, 57326, 26629, 19087, 24472, 88779, 30540, 27886, 61732, 75454, 60311, 42824, 37301, 42678, 45990, 43242, 17374, 52003, 70707, 70214, 49739, 71484, 92003, 98086, 76668, 73209, 59202, 11973, 2902, 33250, 78626, 51594, 16453, 94614, 39014, 97066, 83012, 9832, 25571, 77628, 66692, 13986, 99837, 582, 81232, 44987, 9504, 96412, 90193, 79568, 44071, 28091, 7362, 97703, 76447, 42537, 98524, 97831, 65704, 9514, 41468, 85149, 49554, 17994, 14924, 39650, 95294, 556, 70481, 6905, 94559, 37559, 49678, 53119, 70312, 5682, 66986, 34099, 74474, 20740, 41615, 70360, 64114, 58660, 90850, 64618, 80620, 51790, 11436, 38072, 50273, 93113, 41794, 86861, 24781, 89683, 55411, 85667, 77535, 99892, 41396, 80504, 90670, 8289, 40902, 5069, 95083, 6783, 28102, 57816, 25807, 24260, 71529, 78920, 72682, 7385, 90726, 57166, 98884, 8583, 6170, 97965, 88302, 98041, 21443, 41808, 68984, 83620, 89747, 98882, 60808, 54444, 74412, 81105, 1176, 28838, 36421, 16489, 18059, 51061, 80940, 44893, 10408, 36222, 80582, 71944, 92638, 40333, 67054, 16067, 19516, 90120, 46759, 71643, 13177, 55292, 21036, 82808, 77501, 97427, 49386, 54480, 23604, 23554, 21785, 41101, 91178, 10174, 29420, 90438, 6312, 88940, 15995, 69321, 47458, 64809, 98189, 81851, 29651, 84215, 60942, 307, 11897, 92674, 40405, 68032, 96717, 54244, 10701, 41393, 92329, 98932, 78284, 46347, 71209, 92061, 39448, 93136, 25722, 8564, 77936, 63574, 31384, 51924, 85561, 29671, 58137, 17820, 22751, 36518, 38101, 77756, 11657, 13897, 95889, 57067, 47648, 13885, 70669, 93406, 39641, 69457, 91339, 22502, 92613, 89719, 11947, 56203, 19324, 20504, 84054, 40455, 99396, 63680, 67667, 60631, 69181, 96845, 38525, 11600, 47468, 3577, 57649, 63266, 24700, 71594, 14004, 23153, 69249, 5747, 43321, 31370, 28977, 23896, 76479, 68562, 62342, 7589, 8899, 5985, 64281, 61826, 18555, 64937, 13173, 33365, 78851, 16499, 87064, 13075, 66847, 70495, 32350, 2985, 86716, 38746, 26313, 77463, 55387, 72681, 72461, 33230, 21529, 53424, 92581, 2262, 78438, 66276, 18396, 73538, 21032, 91050, 13058, 16218, 12470, 56500, 15292, 76139, 59526, 52113, 95362, 67011, 6651, 16136, 1016, 857, 55018, 56374, 35824, 71708, 49712, 97380, 10404, 55452, 34030, 60726, 75211, 10271, 36633, 68424, 58275, 61764, 97586, 54716, 50259, 46345, 87195, 46092, 26787, 60939, 89514, 11788, 68224, 23417, 73959, 76145, 30342, 40277, 11049, 72049, 15472, 50669, 48139, 36732, 46874, 37088, 73465, 9819, 58869, 35220, 12120, 86124, 51247, 44302, 60883, 52109, 21437, 36786, 49226, 77837, 19612, 78430, 11661, 94770, 77603, 65669, 86868, 12665, 30012, 75989, 39141, 77400, 28e3, 64238, 73258, 71794, 31340, 26256, 66453, 37016, 64756, 80457, 8747, 12836, 3469, 50678, 3274, 43423, 66677, 82556, 92901, 51878, 56441, 22998, 29718, 38447, 6453, 25311, 7565, 53771, 3551, 90070, 9483, 94050, 45938, 18135, 36908, 43321, 11073, 51803, 98884, 66209, 6830, 53656, 14663, 56346, 71430, 4909, 19818, 5707, 27369, 86882, 53473, 7541, 53633, 70863, 3748, 12822, 19360, 49088, 59066, 75974, 63335, 20483, 43514, 37481, 58278, 26967, 49325, 43951, 91647, 93783, 64169, 49022, 98588, 9495, 49829, 59068, 38831, 4838, 83605, 92419, 39542, 7772, 71568, 75673, 35185, 89759, 44901, 74291, 24895, 88530, 70774, 35439, 46758, 70472, 70207, 92675, 91623, 61275, 35720, 26556, 95596, 20094, 73750, 85788, 34264, 1703, 46833, 65248, 14141, 53410, 38649, 6343, 57256, 61342, 72709, 75318, 90379, 37562, 27416, 75670, 92176, 72535, 93119, 56077, 6886, 18244, 92344, 31374, 82071, 7429, 81007, 47749, 40744, 56974, 23336, 88821, 53841, 10536, 21445, 82793, 24831, 93241, 14199, 76268, 70883, 68002, 3829, 17443, 72513, 76400, 52225, 92348, 62308, 98481, 29744, 33165, 33141, 61020, 71479, 45027, 76160, 57411, 13780, 13632, 52308, 77762, 88874, 33697, 83210, 51466, 9088, 50395, 26743, 5306, 21706, 70001, 99439, 80767, 68749, 95148, 94897, 78636, 96750, 9024, 94538, 91143, 96693, 61886, 5184, 75763, 47075, 88158, 5313, 53439, 14908, 8830, 60096, 21551, 13651, 62546, 96892, 25240, 47511, 58483, 87342, 78818, 7855, 39269, 566, 21220, 292, 24069, 25072, 29519, 52548, 54091, 21282, 21296, 50958, 17695, 58072, 68990, 60329, 95955, 71586, 63417, 35947, 67807, 57621, 64547, 46850, 37981, 38527, 9037, 64756, 3324, 4986, 83666, 9282, 25844, 79139, 78435, 35428, 43561, 69799, 63314, 12991, 93516, 23394, 94206, 93432, 37836, 94919, 26846, 2555, 74410, 94915, 48199, 5280, 37470, 93622, 4345, 15092, 19510, 18094, 16613, 78234, 50001, 95491, 97976, 38306, 32192, 82639, 54624, 72434, 92606, 23191, 74693, 78521, 104, 18248, 75583, 90326, 50785, 54034, 66251, 35774, 14692, 96345, 44579, 85932, 44053, 75704, 20840, 86583, 83944, 52456, 73766, 77963, 31151, 32364, 91691, 47357, 40338, 23435, 24065, 8458, 95366, 7520, 11294, 23238, 1748, 41690, 67328, 54814, 37777, 10057, 42332, 38423, 2309, 70703, 85736, 46148, 14258, 29236, 12152, 5088, 65825, 2463, 65533, 21199, 60555, 33928, 1817, 7396, 89215, 30722, 22102, 15880, 92261, 17292, 88190, 61781, 48898, 92525, 21283, 88581, 60098, 71926, 819, 59144, 224, 30570, 90194, 18329, 6999, 26857, 19238, 64425, 28108, 16554, 16016, 42, 83229, 10333, 36168, 65617, 94834, 79782, 23924, 49440, 30432, 81077, 31543, 95216, 64865, 13658, 51081, 35337, 74538, 44553, 64672, 90960, 41849, 93865, 44608, 93176, 34851, 5249, 29329, 19715, 94082, 14738, 86667, 43708, 66354, 93692, 25527, 56463, 99380, 38793, 85774, 19056, 13939, 46062, 27647, 66146, 63210, 96296, 33121, 54196, 34108, 75814, 85986, 71171, 15102, 28992, 63165, 98380, 36269, 60014, 7201, 62448, 46385, 42175, 88350, 46182, 49126, 52567, 64350, 16315, 53969, 80395, 81114, 54358, 64578, 47269, 15747, 78498, 90830, 25955, 99236, 43286, 91064, 99969, 95144, 64424, 77377, 49553, 24241, 8150, 89535, 8703, 91041, 77323, 81079, 45127, 93686, 32151, 7075, 83155, 10252, 73100, 88618, 23891, 87418, 45417, 20268, 11314, 50363, 26860, 27799, 49416, 83534, 19187, 8059, 76677, 2110, 12364, 71210, 87052, 50241, 90785, 97889, 81399, 58130, 64439, 5614, 59467, 58309, 87834, 57213, 37510, 33689, 1259, 62486, 56320, 46265, 73452, 17619, 56421, 40725, 23439, 41701, 93223, 41682, 45026, 47505, 27635, 56293, 91700, 4391, 67317, 89604, 73020, 69853, 61517, 51207, 86040, 2596, 1655, 9918, 45161, 222, 54577, 74821, 47335, 8582, 52403, 94255, 26351, 46527, 68224, 90183, 85057, 72310, 34963, 83462, 49465, 46581, 61499, 4844, 94626, 2963, 41482, 83879, 44942, 63915, 94365, 92560, 12363, 30246, 2086, 75036, 88620, 91088, 67691, 67762, 34261, 8769, 91830, 23313, 18256, 28850, 37639, 92748, 57791, 71328, 37110, 66538, 39318, 15626, 44324, 82827, 8782, 65960, 58167, 1305, 83950, 45424, 72453, 19444, 68219, 64733, 94088, 62006, 89985, 36936, 61630, 97966, 76537, 46467, 30942, 7479, 67971, 14558, 22458, 35148, 1929, 17165, 12037, 74558, 16250, 71750, 55546, 29693, 94984, 37782, 41659, 39098, 23982, 29899, 71594, 77979, 54477, 13764, 17315, 72893, 32031, 39608, 75992, 73445, 1317, 50525, 87313, 45191, 30214, 19769, 90043, 93478, 58044, 6949, 31176, 88370, 50274, 83987, 45316, 38551, 79418, 14322, 91065, 7841, 36130, 86602, 10659, 40859, 964, 71577, 85447, 61079, 96910, 72906, 7361, 84338, 34114, 52096, 66715, 51091, 86219, 81115, 49625, 48799, 89485, 24855, 13684, 68433, 70595, 70102, 71712, 88559, 92476, 32903, 68009, 58417, 87962, 11787, 16644, 72964, 29776, 63075, 13270, 84758, 49560, 10317, 28778, 23006, 31036, 84906, 81488, 17340, 74154, 42801, 27917, 89792, 62604, 62234, 13124, 76471, 51667, 37589, 87147, 24743, 48023, 6325, 79794, 35889, 13255, 4925, 99004, 70322, 60832, 76636, 56907, 56534, 72615, 46288, 36788, 93196, 68656, 66492, 35933, 52293, 47953, 95495, 95304, 50009, 83464, 28608, 38074, 74083, 9337, 7965, 65047, 36871, 59015, 21769, 30398, 44855, 1020, 80680, 59328, 8712, 48190, 45332, 27284, 31287, 66011, 9376, 86379, 74508, 33579, 77114, 92955, 23085, 92824, 3054, 25242, 16322, 48498, 9938, 44420, 13484, 52319, 58875, 2012, 88591, 52500, 95795, 41800, 95363, 54142, 17482, 32705, 60564, 12505, 40954, 46174, 64130, 63026, 96712, 79883, 39225, 52653, 69549, 36693, 59822, 22684, 31661, 88298, 15489, 16030, 42480, 15372, 38781, 71995, 77438, 91161, 10192, 7839, 62735, 99218, 25624, 2547, 27445, 69187, 55749, 32322, 15504, 73298, 51108, 48717, 92926, 75705, 89787, 96114, 99902, 37749, 96305, 12829, 70474, 838, 50385, 91711, 80370, 56504, 56857, 80906, 9018, 76569, 61072, 48568, 36491, 22587, 44363, 39592, 61546, 90181, 37348, 41665, 41339, 62106, 44203, 6732, 76111, 79840, 67999, 32231, 76869, 58652, 49983, 1669, 27464, 79553, 52855, 25988, 18087, 38052, 17529, 13607, 657, 76173, 43357, 77334, 24140, 53860, 2906, 89863, 44651, 55715, 26203, 65933, 51087, 98234, 40625, 45545, 63563, 89148, 82581, 4110, 66683, 99001, 9796, 47349, 65003, 66524, 81970, 71262, 14479, 31300, 8681, 58068, 44115, 40064, 77879, 23965, 69019, 73985, 19453, 26225, 97543, 37044, 7494, 85778, 35345, 61115, 92498, 49737, 64599, 7158, 82763, 25072, 38478, 57782, 75291, 62155, 52056, 4786, 11585, 71251, 25572, 79771, 93328, 66927, 54069, 58752, 26624, 50463, 77361, 29991, 96526, 2820, 91659, 12818, 96356, 49499, 1507, 40223, 9171, 83642, 21057, 2677, 9367, 38097, 16100, 19355, 6120, 15378, 56559, 69167, 30235, 6767, 66323, 78294, 14916, 19124, 88044, 16673, 66102, 86018, 29406, 75415, 22038, 27056, 26906, 25867, 14751, 92380, 30434, 44114, 6026, 79553, 55091, 95385, 41212, 37882, 46864, 54717, 97038, 53805, 64150, 70915, 63127, 63695, 41288, 38192, 72437, 75075, 18570, 52065, 8853, 30104, 79937, 66913, 53200, 84570, 78079, 28970, 53859, 37632, 80274, 35240, 32960, 74859, 7359, 55176, 3930, 38984, 35151, 82576, 82805, 94031, 12779, 90879, 24109, 25367, 77861, 9541, 85739, 69023, 64971, 99321, 7521, 95909, 43897, 71724, 92581, 5471, 64337, 98949, 3606, 78236, 78985, 29212, 57369, 34857, 67757, 58019, 58872, 96526, 28749, 56592, 37871, 72905, 70198, 57319, 54116, 47014, 18285, 33692, 72111, 60958, 96848, 17893, 40993, 50445, 14186, 76877, 87867, 50335, 9513, 44346, 26439, 55293, 6449, 44301, 63740, 40158, 72703, 88321, 85062, 57345, 66231, 15409, 3451, 95261, 43561, 15673, 28956, 90303, 62469, 82517, 43035, 36850, 15592, 64098, 59022, 31752, 4370, 50486, 11885, 23085, 41712, 80692, 48492, 16495, 99721, 36912, 28267, 27882, 16269, 64483, 11273, 2680, 1616, 46138, 54606, 14761, 5134, 45144, 63213, 49666, 27441, 86989, 29884, 54334, 6740, 8368, 80051, 81020, 17882, 74973, 74531, 94994, 24927, 64894, 22667, 20466, 82948, 66831, 47427, 76033, 31197, 59817, 20064, 61135, 28556, 29695, 80179, 74058, 18293, 9963, 35278, 13062, 83094, 23373, 90287, 33477, 48865, 30348, 70174, 11468, 25994, 25343, 22317, 1587, 30682, 1, 67814, 59557, 23362, 13746, 82244, 42093, 24671, 79458, 93730, 45488, 60234, 67098, 9899, 25775, 332, 36636, 57594, 19958, 85564, 58977, 12247, 60774, 66371, 69442, 20385, 14486, 91330, 50332, 46023, 75768, 59877, 60081, 92936, 72302, 75064, 85727, 52987, 5750, 19384, 33684, 78859, 80458, 69902, 34870, 88684, 49762, 40801, 86291, 18194, 90366, 82639, 53844, 96326, 65728, 48563, 26027, 52692, 62406, 76294, 41848, 63010, 69841, 29451, 36170, 21529, 16525, 64326, 22086, 24469, 57407, 96033, 37771, 31002, 18311, 93285, 31948, 14331, 58335, 15977, 80336, 81667, 27286, 24361, 61638, 57580, 95270, 46180, 76990, 53031, 94366, 2727, 49944, 19278, 5756, 51875, 53445, 33342, 1965, 7937, 10054, 97712, 87693, 58124, 46064, 39133, 77385, 9605, 65359, 70113, 90563, 86637, 94282, 12025, 31926, 24541, 23854, 58407, 32131, 92845, 20714, 27898, 26917, 50326, 35145, 50859, 72119, 95094, 29441, 42301, 62460, 75252, 94267, 38422, 73047, 24200, 85349, 72049, 91723, 97802, 98496, 12734, 73432, 10371, 57213, 53300, 80847, 46229, 7099, 72961, 13767, 65654, 31102, 82119, 96946, 65919, 81083, 3819, 57888, 57908, 16849, 77111, 41429, 92261, 45263, 1172, 55926, 78835, 27697, 48420, 58865, 41207, 21406, 8582, 10785, 36233, 12237, 7866, 13706, 92551, 11021, 63813, 71512, 65206, 37768, 94325, 14721, 20990, 54235, 71986, 5345, 56239, 52028, 1419, 7215, 55067, 11669, 21738, 66605, 69621, 69827, 8537, 18638, 60982, 28151, 98885, 76431, 25566, 3085, 23639, 30849, 63986, 73287, 26201, 36174, 14106, 54102, 57041, 16141, 64174, 3591, 90024, 73332, 31254, 17288, 59809, 25061, 51612, 47951, 16570, 43330, 79213, 11354, 55585, 19646, 99246, 37564, 32660, 20632, 21124, 60597, 69315, 31312, 57741, 85108, 21615, 24365, 27684, 16124, 33888, 14966, 35303, 69921, 15795, 4020, 67672, 86816, 63027, 84470, 45605, 44887, 26222, 79888, 58982, 22466, 98844, 48353, 60666, 58256, 31140, 93507, 69561, 6256, 88526, 18655, 865, 75247, 264, 65957, 98261, 72706, 36396, 46065, 85700, 32121, 99975, 73627, 78812, 89638, 86602, 96758, 65099, 52777, 46792, 13790, 55240, 52002, 10313, 91933, 71231, 10053, 78416, 54563, 96004, 42215, 30094, 45958, 48437, 49591, 50483, 13422, 69108, 59952, 27896, 40450, 79327, 31962, 46456, 39260, 51479, 61882, 48181, 50691, 64709, 32902, 10676, 12083, 35771, 79656, 56667, 76783, 3937, 99859, 10362, 57411, 40986, 35045, 2838, 29255, 64230, 84418, 34988, 77644, 39892, 77327, 74129, 53444, 35487, 95803, 38640, 20383, 55402, 25793, 14213, 87082, 42837, 95030, 97198, 61608, 97723, 79390, 35290, 34683, 81419, 87133, 70447, 53127, 97146, 28299, 56763, 12868, 1145, 12147, 58158, 92124, 60934, 18414, 97510, 7056, 54488, 20719, 53743, 91037, 44797, 52110, 8512, 18991, 20129, 31441, 51449, 14661, 71126, 23180, 68124, 18807, 70997, 21913, 19594, 70355, 73637, 68266, 60775, 43164, 52643, 96363, 77989, 79332, 39890, 65379, 20405, 52935, 43816, 92740, 95319, 4538, 60660, 28982, 15328, 80475, 34690, 2293, 19646, 46524, 96627, 33159, 42081, 8816, 74931, 20674, 8697, 66169, 46460, 46326, 39923, 60625, 28386, 22919, 19415, 75766, 43668, 31626, 70301, 67053, 3949, 70082, 2303, 48642, 38429, 94053, 38770, 68137, 68441, 52928, 70244, 91954, 17401, 92693, 98342, 21451, 84988, 80487, 33807, 73797, 49494, 41878, 76635, 83227, 76618, 11946, 13451, 87591, 78381, 21407, 90038, 72638, 69692, 51599, 86413, 32019, 64856, 74730, 41531, 11064, 1790, 58817, 86400, 66213, 92599, 70905, 78324, 54326, 43659, 34206, 63132, 38837, 40210, 96346, 16967, 81619, 96503, 14881, 89405, 32205, 49508, 98425, 2451, 35423, 56072, 36810, 30332, 85998, 49358, 92748, 84147, 79835, 94867, 41224, 61794, 35066, 82220, 66684, 20096, 2754, 41731, 37068, 32753, 91059, 13407, 5607, 69384, 53329, 95909, 44968, 11397, 92973, 50014, 92997, 80968, 93761, 57598, 74703, 7768, 37978, 73873, 33475, 9720, 97852, 98449, 48722, 84977, 11271, 11728, 68318, 22312, 78792, 87508, 88466, 72976, 47099, 84126, 38595, 85124, 64405, 90020, 7492, 52413, 95111, 34455, 86311, 68892, 1074, 60274, 28136, 19328, 38161, 57475, 13771, 63562, 84207, 94121, 18901, 52768, 33801, 82087, 86091, 59969, 90398, 56870, 55756, 78841, 98450, 54165, 55106, 50343, 70519, 14567, 36780, 55450, 19606, 83749, 67562, 64765, 38543, 16585, 86841, 73742, 8766, 39252, 75678, 75379, 78760, 37279, 15280, 13558, 95916, 89759, 76686, 76467, 67147, 63110, 94008, 8037, 35263, 53710, 16667, 79008, 11231, 29397, 67136, 18601, 64502, 90228, 89109, 72849, 22711, 65547, 34542, 26686, 81678, 87765, 77654, 23664, 96352, 14106, 32938, 28083, 18633, 80286, 65507, 46197, 52722, 75476, 77816, 47204, 34876, 45963, 79262, 90181, 84041, 3745, 90041, 30780, 27226, 92847, 85572, 15308, 80688, 5761, 82638, 13464, 23683, 81015, 54214, 64175, 43701, 86845, 15569, 50687, 52679, 87696, 8285, 97444, 47599, 94472, 64150, 87753, 68652, 60726, 26213, 17320, 64553, 81285, 98126, 12158, 52095, 64833, 492, 35817, 55571, 91300, 97812, 37507, 4209, 53515, 64342, 21223, 16662, 43265, 68219, 3529, 43636, 68417, 53640, 95326, 93381, 37113, 80751, 76469, 96677, 43054, 22937, 31954, 13266, 34140, 27253, 2734, 99070, 60077, 57988, 93211, 92795, 83795, 57477, 3941, 39007, 14619, 38320, 93449, 31336, 25279, 97030, 26245, 47394, 39475, 90621, 23820, 29344, 94859, 91604, 14033, 41868, 14816, 4075, 66644, 87803, 97815, 99552, 78666, 3942, 8175, 22345, 19983, 76783, 99044, 20851, 84981, 59052, 77178, 72109, 76475, 21619, 73017, 6812, 56633, 50612, 55289, 4671, 84419, 94072, 94446, 80603, 32188, 93415, 23464, 43947, 43728, 74284, 67177, 57105, 31059, 10642, 13803, 69602, 46961, 66567, 19359, 84676, 63918, 40650, 12923, 15974, 79732, 20225, 92525, 71179, 4859, 91208, 60430, 5239, 61458, 24089, 68852, 60171, 29603, 42535, 86365, 93905, 28237, 45317, 60718, 82001, 41679, 20679, 56304, 70043, 87568, 21386, 59049, 78353, 48696, 77379, 55309, 23780, 28391, 5940, 55583, 81256, 59418, 97521, 32846, 70761, 90115, 45325, 5490, 65974, 11186, 15357, 3568, 450, 96644, 58976, 36211, 88240, 92457, 89200, 94696, 11370, 91157, 48487, 59501, 56983, 89795, 42789, 69758, 79701, 29511, 55968, 41472, 89474, 84344, 80517, 7485, 97523, 17264, 82840, 59556, 37119, 30985, 48866, 60605, 95719, 70417, 59083, 95137, 76538, 44155, 67286, 57897, 28262, 4052, 919, 86207, 79932, 44236, 10089, 44373, 65670, 44285, 6903, 20834, 49701, 95735, 21149, 3425, 17594, 31427, 14262, 32252, 68540, 39427, 44026, 47257, 45055, 95091, 8367, 28381, 57375, 41562, 83883, 27715, 10122, 67745, 46497, 28626, 87297, 36568, 39483, 11385, 63292, 92305, 78683, 6146, 81905, 15038, 38338, 51206, 65749, 34119, 71516, 74068, 51094, 6665, 91884, 66762, 11428, 70908, 21506, 480, 94183, 78484, 66507, 75901, 25728, 52539, 86806, 69944, 65036, 27882, 2530, 4918, 74351, 65737, 89178, 8791, 39342, 94963, 22581, 56917, 17541, 83578, 75376, 65202, 30935, 79270, 91986, 99286, 45236, 44720, 81915, 70881, 45886, 43213, 49789, 97081, 16075, 20517, 69980, 25310, 91953, 1759, 67635, 88933, 54558, 18395, 73375, 62251, 58871, 9870, 70538, 48936, 7757, 90374, 56631, 88862, 30487, 38794, 36079, 32712, 11130, 55451, 25137, 38785, 83558, 31960, 69473, 45950, 18225, 9871, 88502, 75179, 11551, 75664, 74321, 67351, 27703, 83717, 18913, 42470, 8816, 37627, 14288, 62831, 44047, 67612, 72738, 26995, 50933, 63758, 50003, 43693, 52661, 55852, 52372, 59042, 37595, 4931, 73622, 68387, 86478, 40997, 5245, 75300, 24902, 59609, 35653, 15970, 37681, 69365, 22236, 86374, 65550, 343, 98377, 35354, 65770, 15365, 41422, 71356, 16630, 40044, 19290, 66449, 53629, 79452, 71674, 30260, 97303, 6487, 62789, 13005, 70152, 22501, 49867, 89294, 59232, 31776, 54919, 99851, 5438, 1096, 72269, 50486, 16719, 6144, 82041, 38332, 64452, 31840, 99287, 59928, 25503, 8407, 46970, 45907, 99238, 74547, 19704, 72035, 26542, 54600, 79172, 58779, 35747, 78956, 11478, 41195, 58135, 63856, 33037, 45753, 60159, 25193, 71838, 7526, 7985, 60714, 88627, 75790, 38454, 96110, 39237, 19792, 34534, 70169, 24805, 63215, 38175, 38784, 38855, 24826, 50917, 25147, 17082, 26997, 32295, 10894, 21805, 65245, 85407, 37926, 69214, 38579, 84721, 23544, 88548, 65626, 75517, 69737, 55626, 52175, 21697, 19453, 16908, 82841, 24060, 40285, 19195, 80281, 89322, 15232, 70043, 60691, 86370, 91949, 19017, 83846, 77869, 14321, 95102, 87073, 71467, 31305, 64677, 80358, 52629, 79419, 22359, 87867, 48296, 50141, 46807, 82184, 95812, 84665, 74511, 59914, 4146, 90417, 58508, 62875, 17630, 21868, 9199, 30322, 33352, 43374, 25473, 4119, 63086, 14147, 14863, 38020, 44757, 98628, 57916, 22199, 11865, 42911, 62651, 78290, 9392, 77294, 63168, 21043, 17409, 13786, 27475, 75979, 89668, 43596, 74316, 84489, 54941, 95992, 45445, 41059, 55142, 15214, 42903, 16799, 88254, 95984, 48575, 77822, 21067, 57238, 35352, 96779, 89564, 23797, 99937, 46379, 27119, 16060, 30302, 95327, 12849, 38111, 97090, 7598, 78473, 63079, 18570, 72803, 70040, 91385, 96436, 96263, 17368, 56188, 85999, 50026, 36050, 73736, 13351, 48321, 28357, 51718, 65636, 72903, 21584, 21060, 39829, 15564, 4716, 14594, 22363, 97639, 65937, 17802, 31535, 42767, 98761, 30987, 57657, 33398, 63053, 25926, 20944, 19306, 81727, 2695, 97479, 79172, 72764, 66446, 78864, 12698, 15812, 97209, 38827, 91016, 91281, 57875, 45228, 49211, 69755, 99224, 43999, 62879, 8879, 80015, 74396, 57146, 64665, 31159, 6980, 79069, 37409, 75037, 69977, 85919, 42826, 6974, 61063, 97640, 13433, 92528, 91311, 8440, 38840, 22362, 93929, 1836, 36590, 75052, 89475, 15437, 65648, 99012, 70236, 12307, 83585, 414, 62851, 48787, 28447, 21702, 57033, 29633, 44760, 34165, 27548, 37516, 24343, 63046, 2081, 20378, 19510, 42226, 97134, 68739, 32982, 56455, 53129, 77693, 25022, 55534, 99375, 30086, 98001, 7432, 67126, 76656, 29347, 28492, 43108, 64736, 32278, 84816, 80440, 30461, 818, 9136, 1952, 48442, 91058, 92590, 10443, 5195, 34009, 32141, 62209, 43740, 54102, 76895, 98172, 31583, 4155, 66492, 58981, 16591, 11331, 6838, 3818, 77063, 12523, 45570, 68970, 70055, 77751, 73743, 71732, 4704, 61384, 57343, 66682, 44500, 89745, 10436, 67202, 36455, 42467, 88801, 91280, 1056, 27534, 81619, 79004, 25824, 66362, 33280, 20706, 31929, 57422, 18730, 96197, 22101, 47592, 2180, 18287, 82310, 60430, 59627, 26471, 7794, 60475, 76713, 45427, 89654, 14370, 81674, 41246, 98416, 8669, 48883, 77154, 9806, 94015, 60347, 20027, 8405, 33150, 27368, 53375, 70171, 59431, 14534, 34018, 85665, 77797, 17944, 49602, 74391, 48830, 55029, 10371, 94261, 16658, 68400, 44148, 28150, 40364, 90913, 73151, 64463, 50058, 78191, 84439, 82478, 62398, 3113, 17578, 12830, 6571, 95934, 9132, 25287, 78731, 80683, 67207, 76597, 42096, 34934, 76609, 52553, 47508, 71561, 8038, 83011, 72577, 95790, 40076, 20292, 32138, 61197, 95476, 23123, 26648, 13611, 48452, 39963, 85857, 4855, 27029, 1542, 72443, 53688, 82635, 56264, 7977, 23090, 93553, 65434, 12124, 91087, 87800, 95675, 99419, 44659, 30382, 55263, 82514, 86800, 16781, 65977, 65946, 13033, 93895, 4056, 75895, 47878, 91309, 51233, 81409, 46773, 69135, 56906, 84493, 34530, 84534, 38312, 54574, 92933, 77341, 20839, 36126, 1143, 35356, 35459, 7959, 98335, 53266, 36146, 78047, 50607, 22486, 63308, 8996, 96056, 39085, 26567, 6779, 62663, 30523, 47881, 41279, 49864, 82248, 78333, 29466, 48151, 41957, 93235, 53308, 22682, 90722, 54478, 7235, 34306, 15827, 20121, 96837, 6283, 80172, 66109, 92592, 48238, 76428, 94546, 45430, 16288, 74839, 740, 25553, 83767, 35900, 5998, 7493, 46755, 11449, 88824, 44906, 33143, 7454, 56652, 34755, 63992, 59674, 65131, 46358, 12799, 96988, 51158, 73176, 1184, 49925, 63519, 11785, 29073, 72850, 47997, 75172, 55187, 15313, 40725, 33225, 56643, 10465, 38583, 86440, 97967, 26401, 17078, 38765, 33454, 19136, 57712, 48446, 98790, 27315, 71074, 10157, 57946, 35582, 49383, 61324, 26572, 84503, 3496, 60449, 17962, 26017, 65651, 40400, 83246, 80056, 75306, 75147, 41863, 25581, 87530, 33193, 43294, 5065, 99644, 62771, 75986, 79005, 44924, 18703, 40889, 4403, 5862, 2571, 82500, 74200, 36170, 46836, 74642, 65471, 26815, 30937, 64946, 10160, 15544, 31962, 54015, 28853, 66533, 14573, 79398, 47391, 73165, 47805, 77589, 16881, 13423, 89452, 76992, 62509, 9796, 57540, 13486, 48855, 25546, 47589, 21012, 47388, 78428, 70196, 84413, 81026, 87597, 22445, 83769, 85937, 38321, 85485, 87359, 9839, 67228, 71179, 94372, 4446, 62801, 50775, 96179, 40646, 44272, 12417, 47199, 39701, 30665, 32775, 66525, 53558, 78882, 31939, 67209, 38906, 34533, 99914, 27719, 216, 99225, 96537, 3843, 90564, 91110, 51838, 30300, 9559, 37795, 94880, 11325, 44979, 89696, 28129, 29931, 89971, 46292, 92710, 11036, 74760, 75307, 12291, 49618, 16293, 92408, 67928, 80823, 32872, 25460, 66819, 35374, 4035, 99087, 61129, 11341, 39118, 10891, 37217, 63638, 75477, 30068, 42334, 57570, 6890, 59353, 89939, 37692, 15232, 20033, 32202, 22348, 2766, 96791, 58448, 92248, 5769, 96684, 67885, 99295, 47271, 38655, 59513, 96960, 31718, 8974, 16122, 20535, 52380, 29769, 70660, 57425, 50891, 75044, 84257, 73315, 38181, 28673, 93140, 26307, 82265, 78382, 19681, 56585, 8975, 76764, 39956, 83450, 84663, 89963, 71584, 57696, 30829, 60527, 64947, 34899, 28805, 28397, 91830, 51842, 99838, 39839, 66971, 67177, 74219, 35637, 35634, 93581, 81746, 29991, 81096, 94279, 2968, 62561, 2479, 82126, 25702, 67953, 88088, 50293, 83423, 86206, 39935, 23253, 43041, 48941, 85787, 8388, 6671, 43574, 84908, 67295, 33623, 55060, 28174, 48415, 2529, 22009, 24524, 5283, 30460, 32399, 80423, 56929, 40852, 69969, 88541, 5979, 91496, 64730, 57198, 83145, 39750, 3568, 54669, 98679, 4297, 51047, 31492, 47734, 31343, 31180, 232, 19707, 24823, 75079, 73943, 17997, 8446, 91252, 39879, 58682, 82972, 18417, 39203, 36681, 42895, 8459, 15618, 17941, 52594, 43277, 16530, 40052, 91100, 87422, 47230, 95699, 49794, 50492, 87439, 86354, 4546, 65333, 11057, 77727, 19748, 38722, 91821, 18107, 42125, 89239, 28847, 54623, 38783, 47803, 31414, 38450, 3697, 89186, 30579, 44188, 26532, 8420, 80723, 48100, 60748, 76330, 45832, 8311, 16051, 4475, 13400, 48527, 46073, 17439, 56498, 94632, 9021, 16871, 83366, 14896, 4219, 38375, 87890, 90217, 42370, 61028, 85101, 76771, 83715, 94737, 69973, 74187, 1958, 59691, 86712, 86570, 60984, 76342, 13648, 85250, 28323, 48379, 45141, 36277, 51845, 29039, 3553, 5128, 59866, 51281, 68124, 17007, 24729, 29710, 41439, 40574, 11774, 86746, 89698, 56020, 37810, 88972, 11361, 95583, 70786, 589, 74473, 87513, 17690, 61427, 72914, 32517, 1804, 97910, 6327, 30246, 33049, 2622, 41026, 80875, 41293, 16752, 84225, 84414, 37137, 68956, 8095, 64981, 28180, 38629, 76962, 23840, 17477, 75268, 48297, 70340, 57888, 13938, 38554, 86836, 2195, 30270, 55484, 53364, 54705, 41380, 56316, 37723, 234, 21424, 26664, 63804, 75139, 36534, 18579, 9833, 98849, 72762, 59767, 52497, 24227, 83152, 71794, 21398, 99456, 89215, 51632, 54799, 27973, 68568, 68465, 98500, 28681, 18369, 24279, 96335, 12874, 82160, 67202, 85199, 27908, 67022, 49810, 77929, 96212, 81153, 77884, 7032, 1671, 53362, 28119, 56786, 30883, 28540, 76029, 3774, 64611, 19736, 25589, 46569, 45206, 48215, 69523, 17423, 91807, 90039, 30393, 58319, 85098, 66519, 57571, 24541, 3562, 14400, 62731, 82534, 61477, 89731, 18421, 29861, 52829, 838, 78040, 43350, 74323, 82892, 84746, 28302, 13264, 7595, 134, 12933, 46831, 24864, 47275, 20527, 9110, 28485, 30326, 99826, 64005, 99308, 65779, 42760, 90066, 3974, 38688, 39968, 32604, 11694, 46262, 73262, 45405, 43923, 67397, 88228, 56405, 17839, 92073, 57622, 93328, 15442, 50186, 7570, 58001, 31e3, 8915, 11467, 14793, 82691, 51238, 12485, 51745, 18192, 5985, 36826, 89434, 38669, 91592, 88799, 65621, 67237, 59541, 19657, 93402, 58705, 73553, 78280, 69125, 95591, 81168, 91927, 25976, 89077, 71690, 19404, 64603, 59752, 74698, 44233, 67602, 38615, 31303, 28650, 53700, 89819, 7783, 4351, 77451, 47350, 21234, 16016, 41532, 76508, 23063, 44993, 43983, 33356, 61715, 96485, 22121, 78004, 6316, 87896, 99289, 93981, 37850, 66128, 92735, 45064, 50924, 24204, 58816, 65290, 34392, 55567, 66416, 72353, 45775, 68590, 85685, 72683, 60090, 37149, 85347, 57414, 72336, 12979, 5720, 92754, 76911, 96883, 74420, 5220, 85815, 23557, 80567, 44365, 70254, 50864, 36619, 51479, 23281, 76428, 18580, 34240, 59289, 49076, 18439, 29522, 42541, 4024, 84446, 92434, 90407, 77241, 19690, 78143, 65919, 13699, 91844, 91241, 38361, 67171, 90551, 5709, 3474, 76025, 97043, 33834, 44638, 54040, 82797, 545, 38159, 16089, 35870, 89158, 55864, 98078, 50563, 36492, 10994, 85909, 9018, 19252, 73887, 67928, 60045, 70782, 11937, 4074, 53814, 46621, 52577, 94853, 45968, 73667, 65062, 73306, 76045, 78649, 91654, 53958, 96537, 95542, 67622, 54579, 17279, 67440, 56441, 20681, 64011, 52226, 96618, 32831, 60664, 67547, 39523, 2043, 59748, 1887, 69229, 94653, 99271, 98164, 62155, 9234, 47367, 13047, 6364, 35064, 10073, 6793, 80248, 29009, 44969, 11129, 17139, 79630, 89772, 26921, 56949, 23465, 30036, 17173, 82459, 96218, 60768, 76417, 24405, 18710, 68887, 82394, 69729, 82503, 40873, 41590, 67255, 30757, 9657, 91881, 34578, 9511, 5417, 58953, 18532, 10721, 22029, 48524, 47778, 881, 83489, 3464, 57462, 97459, 86689, 39755, 39547, 740, 36666, 7993, 31671, 86304, 12970, 73402, 52849, 31652, 79655, 11250, 18463, 57518, 20306, 25301, 1374, 51208, 33298, 87662, 61849, 60923, 68685, 69411, 39266, 80320, 34844, 89416, 81569, 83651, 35795, 40168, 33501, 1042, 58931, 3892, 85188, 74740, 85476, 23790, 33842, 89565, 53359, 25579, 59049, 62394, 72435, 12457, 21904, 18370, 97035, 57905, 9581, 91227, 92754, 37760, 1411, 7440, 87175, 88318, 63242, 85960, 56690, 12618, 30493, 11569, 73723, 7448, 58830, 157, 65814, 21118, 22140, 73793, 57855, 81830, 6795, 13183, 12625, 30635, 56429, 73216, 12342, 36722, 83886, 96828, 82870, 90954, 97614, 2370, 42160, 73370, 11944, 49067, 59452, 80495, 43911, 46712, 17033, 68037, 41963, 3874, 44856, 82985, 57453, 84358, 16120, 4454, 76624, 405, 62369, 55080, 61880, 51270, 87807, 10653, 36894, 70850, 35660, 234, 14705, 93418, 94084, 82856, 25384, 71555, 56754, 78315, 18291, 91656, 98079, 52384, 43306, 65205, 75903, 58701, 99496, 50048, 33557, 87793, 90857, 10143, 46726, 84284, 43635, 41213, 83845, 70986, 91408, 80220, 5728, 68890, 46577, 21152, 43759, 43301, 93661, 97252, 50106, 10099, 13722, 18572, 44024, 351, 18173, 23717, 85114, 85998, 57782, 63951, 53723, 86853, 63851, 79430, 49181, 46386, 69666, 55743, 76162, 71724, 40028, 94786, 34457, 16906, 90040, 30789, 40281, 94697, 96584, 81907, 4055, 53990, 66397, 80579, 42517, 78181, 39251, 9467, 67097, 95523, 66568, 63632, 71048, 15581, 39904, 75774, 77495, 75994, 29911, 65690, 41178, 47712, 70355, 16998, 56025, 5230, 10093, 71495, 34784, 70950, 54680, 57811, 53782, 39145, 36829, 85342, 40406, 35883, 45668, 3459, 29870, 78252, 70088, 70621, 67153, 5737, 40933, 91075, 93335, 86853, 15860, 81167, 91259, 16118, 52401, 83593, 84474, 2423, 75608, 39646, 90871, 70284, 82100, 96032, 5115, 63678, 2225, 88087, 58581, 44364, 57468, 21539, 13042, 64150, 63754, 5210, 87644, 54114, 64013, 63562, 41388, 32397, 74152, 23982, 71982, 71700, 33026, 66477, 47838, 46712, 39848, 35083, 65927, 97868, 11067, 76771, 71799, 43836, 41014, 97025, 93225, 8511, 63096, 26628, 73012, 12543, 76269, 99708, 2629, 49845, 73677, 19193, 14924, 57236, 95564, 15010, 59667, 73773, 78515, 2624, 99744, 13585, 33746, 58771, 94785, 62628, 99585, 11363, 80832, 59979, 9444, 78700, 2596, 85984, 69438, 16913, 96475, 93283, 18625, 77086, 45911, 39746, 64722, 39938, 43930, 54619, 302, 50384, 2738, 75714, 75249, 95439, 80714, 52555, 47266, 96190, 78750, 94973, 83669, 16479, 53163, 48071, 28e3, 45011, 26733, 67132, 83362, 84162, 43028, 8415, 27236, 52651, 89059, 64844, 80910, 1676, 91752, 57815, 26264, 3415, 57532, 29981, 61200, 96036, 62600, 20068, 56530, 38487, 8432, 89514, 26883, 69165, 97237, 22361, 55276, 39902, 95927, 82190, 49269, 27212, 46095, 37106, 64254, 27460, 49572, 51700, 27679, 12574, 33891, 3867, 9925, 6476, 82018, 45094, 59014, 67113, 44192, 75, 23318, 79895, 70550, 81717, 28833, 30271, 15821, 14999, 88174, 62617, 57517, 55256, 50281, 51583, 96879, 5225, 42272, 5339, 20483, 57596, 41011, 75937, 22767, 50120, 95938, 49753, 63882, 99616, 69083, 38721, 73889, 80236, 99531, 23053, 71237, 48861, 59046, 76283, 60538, 19732, 93877, 30345, 64882, 66660, 17026, 70364, 45676, 8039, 96228, 89936, 59141, 95585, 89552, 97247, 59325, 27848, 80058, 15950, 61481, 90906, 40998, 44137, 16144, 66300, 44091, 50018, 81364, 18211, 60294, 76559, 20279, 27414, 10589, 39860, 23e3, 31767, 95618, 56738, 50332, 16936, 70342, 92481, 30702, 76264, 62619, 68678, 62284, 83112, 93032, 55203, 52614, 36950, 41796, 45403, 79262, 2887, 53596, 61308, 20738, 34811, 27099, 90956, 65448, 3080, 75795, 29753, 97699, 80872, 23830, 85882, 74427, 99523, 74904, 28017, 45898, 57232, 48525, 7086, 26805, 74533, 92470, 18840, 76011, 93109, 14344, 55614, 50284, 15865, 19458, 35856, 13464, 53679, 64603, 51571, 56124, 79107, 29596, 89572, 78198, 57121, 73649, 8804, 87977, 87959, 70859, 40909, 77295, 87877, 75158, 62810, 92074, 23244, 59516, 50552, 31602, 41899, 6347, 27821, 68370, 48596, 88577, 30231, 25267, 84622, 31449, 12086, 56461, 22962, 78213, 62483, 93966, 60437, 52239, 58113, 32526, 38708, 81607, 57016, 1695, 90110, 4649, 59990, 23979, 3855, 10297, 46516, 96092, 82305, 30760, 78756, 4967, 82876, 4773, 86651, 16648, 53133, 82439, 78851, 49766, 24553, 15273, 36417, 1901, 33386, 76979, 25920, 33372, 2695, 11982, 40911, 6230, 91696, 43907, 17827, 30332, 89203, 32215, 91806, 23080, 49102, 9174, 11548, 54590, 75803, 66108, 73882, 62324, 26017, 72716, 33887, 1285, 31604, 71039, 24337, 53514, 58964, 89901, 22040, 92751, 12617, 37007, 5523, 61672, 62557, 98540, 26094, 60284, 19621, 96230, 38044, 6545, 9458, 42988, 2913, 86345, 67936, 90174, 40840, 44991, 24256, 34989, 74086, 13652, 68706, 1363, 4294, 88008, 78693, 83068, 94746, 221, 89299, 53186, 5930, 61889, 51341, 45412, 58860, 72568, 11381, 59785, 36887, 10690, 31347, 93326, 96267, 86987, 57565, 86836, 49071, 90331, 41248, 34629, 30240, 27270, 3864, 84308, 3035, 61369, 36902, 51017, 44409, 17120, 23823, 36460, 63359, 8333, 63173, 19134, 6493, 303, 18550, 26191, 19051, 81502, 66343, 6737, 90430, 65478, 58982, 82484, 16483, 47704, 44640, 68322, 44548, 72787, 2335, 28749, 39320, 5436, 98146, 56596, 812, 51445, 35533, 35478, 47573, 38414, 25542, 38032, 13442, 42983, 97207, 77854, 57806, 81616, 52828, 79429, 47389, 96795, 57764, 19605, 24767, 63253, 18809, 65093, 44449, 22952, 76872, 30983, 38948, 9310, 48336, 87651, 27110, 84427, 76209, 56412, 12760, 16747, 14551, 82626, 31224, 98636, 75100, 84882, 79479, 83420, 5347, 6803, 90063, 4617, 40257, 79183, 41766, 71873, 25242, 12275, 336, 40798, 42055, 74066, 69128, 32547, 76508, 32530, 42359, 89207, 49758, 58984, 92732, 15779, 7234, 28884, 28226, 50011, 35883, 99606, 45423, 76224, 75427, 85747, 33879, 97978, 57441, 927, 19164, 74716, 40702, 19715, 70917, 60344, 40236, 9019, 50577, 15598, 53136, 57285, 20536, 7539, 74832, 89184, 41501, 39447, 97422, 97041, 21913, 40581, 76081, 13089, 28776, 54164, 55736, 36263, 71841, 34488, 74988, 55467, 43322, 9214, 36746, 67981, 71877, 81683, 32461, 84091, 19422, 88366, 62054, 85664, 13409, 8003, 88276, 6989, 16607, 33633, 85349, 5784, 25950, 97998, 74110, 16699, 60184, 92818, 79705, 10381, 1474, 18656, 50434, 18232, 92132, 66537, 70141, 42854, 25120, 39581, 28249, 14215, 34810, 19767, 3409, 11807, 6566, 66138, 42997, 41999, 67504, 87117, 28961, 5e3, 29673, 77726, 73225, 54753, 69712, 71576, 92337, 17713, 63185, 87923, 91889, 68351, 17712, 75532, 93849, 48280, 62219, 317, 25290, 29209, 90927, 92929, 92762, 60413, 2018, 31793, 76290, 73373, 80777, 60819, 77375, 57886, 47291, 99670, 32605, 29064, 99476, 80999, 31217, 35, 91300, 14892, 73653, 26593, 25305, 56797, 12837, 39560, 27582, 37253, 38531, 76489, 49946, 69108, 58687, 43092, 73807, 96282, 6648, 67431, 87124, 57694, 21660, 64002, 6, 33600, 30245, 60636, 80164, 9285, 61426, 4658, 54130, 14710, 76553, 1904, 93668, 63110, 98618, 5601, 32199, 74923, 98049, 49717, 55539, 35940, 58545, 43295, 35810, 45451, 38735, 42065, 66769, 69825, 45461, 83881, 67372, 67351, 90612, 79502, 69460, 23108, 74421, 82990, 46821, 40683, 71603, 55267, 48192, 50242, 79738, 96417, 6664, 19929, 23644, 41116, 51056, 219, 45086, 32747, 49492, 15399, 24874, 80825, 95928, 61457, 45813, 59037, 16136, 3953, 83583, 5910, 12654, 53630, 92997, 22168, 93491, 71897, 74579, 24022, 6278, 24049, 71670, 43044, 8474, 38572, 77402, 35800, 7455, 96177, 41653, 74493, 20802, 65843, 73050, 73349, 2638, 65813, 96209, 49196, 45007, 32207, 14097, 66059, 46681, 7534, 71263, 20582, 10171, 51514, 52142, 60961, 57951, 25637, 37860, 21683, 86190, 90434, 94481, 85697, 95344, 2606, 74095, 61133, 7472, 64777, 94050, 41482, 975, 23471, 76052, 82021, 87676, 91345, 20196, 2612, 86299, 44996, 40312, 65712, 46079, 88514, 8610, 3685, 63197, 9073, 53105, 86824, 28112, 99306, 40706, 66840, 83003, 51590, 52755, 32285, 68454, 85058, 13645, 23073, 24724, 52989, 71880, 21952, 44144, 74975, 76715, 7844, 46447, 86643, 75579, 29276, 10864, 83179, 36721, 19300, 35066, 29383, 47478, 56644, 33354, 31414, 17643, 92374, 85085, 88458, 87191, 85248, 34963, 76278, 53230, 13953, 76985, 70959, 36663, 5293, 32658, 56767, 56997, 76736, 6558, 64248, 11907, 29123, 78458, 17678, 63805, 89973, 5076, 39263, 54404, 4355, 64957, 74407, 99838, 18836, 78098, 6490, 74888, 73719, 80675, 86178, 56283, 33591, 96957, 38382, 18772, 74773, 71229, 2603, 52673, 44609, 14843, 58418, 18060, 95459, 626, 30914, 13550, 42195, 44863, 8871, 89182, 64446, 78422, 41140, 15312, 98274, 48168, 95651, 35562, 85386, 56252, 72136, 85088, 68761, 78434, 98143, 61330, 2446, 64409, 49406, 99127, 98626, 55095, 44808, 13594, 87370, 89472, 12833, 98932, 68064, 58193, 20225, 5192, 28425, 23978, 24542, 80845, 55858, 4015, 21454, 37346, 51007, 17202, 10242, 12682, 55933, 96922, 22280, 75597, 50227, 70712, 44236, 20470, 36320, 49339, 60536, 80083, 38880, 93327, 49522, 93585, 9918, 55268, 4671, 57526, 11457, 48424, 54610, 7211, 78610, 9473, 72923, 27347, 30057, 76968, 26177, 59367, 46172, 88951, 40229, 34921, 60405, 88959, 16779, 29547, 92231, 61997, 36002, 21080, 39795, 77221, 10012, 49748, 76900, 15964, 3803, 40260, 92351, 92844, 10288, 57483, 10881, 70408, 75688, 16610, 1638, 93082, 44282, 66849, 75702, 69428, 34047, 84968, 71281, 72328, 73143, 88672, 49802, 50639, 18129, 93659, 58389, 49095, 45971, 34196, 84609, 59222, 19332, 17777, 41004, 47057, 30688, 16039, 20906, 41477, 42915, 60877, 33864, 75195, 62294, 3371, 11672, 1370, 2486, 35553, 17907, 90621, 45136, 9722, 67635, 12114, 63055, 16004, 21625, 24321, 20491, 26881, 66259, 94287, 54751, 36242, 36557, 5842, 30687, 65418, 94608, 24741, 45887, 78800, 86912, 42076, 50287, 9284, 68891, 76368, 83094, 96302, 35997, 30761, 97081, 9501, 68887, 32876, 1705, 34260, 95065, 45528, 88241, 30402, 12318, 52430, 40139, 96986, 84900, 72408, 42027, 31676, 54382, 73370, 26184, 14024, 57444, 57660, 52173, 30274, 93448, 63273, 77681, 74946, 2099, 69091, 19372, 66961, 14595, 58642, 75760, 52253, 53148, 26074, 52293, 65359, 63971, 4833, 86492, 1227, 54505, 19515, 89889, 46933, 13364, 33883, 83389, 36952, 52505, 67513, 40071, 31001, 3105, 87912, 29610, 75108, 37363, 28479, 43546, 89992, 19550, 54863, 82633, 19209, 21548, 35022, 21960, 57961, 11815, 95867, 559, 26428, 69386, 57453, 70147, 73538, 49562, 46806, 64550, 36653, 25718, 68792, 31113, 7607, 48037, 71020, 22666, 65957, 11141, 39227, 7990, 19849, 65972, 74528, 40888, 55386, 95918, 92088, 91125, 53648, 66122, 138, 79933, 71058, 34826, 97725, 69513, 22915, 18246, 52244, 91161, 40861, 40374, 13239, 56162, 4703, 95851, 22824, 41271, 28202, 62852, 84238, 46625, 20031, 8524, 20077, 65817, 21174, 29279, 57712, 22401, 67500, 30980, 74485, 26480, 21343, 30031, 61921, 35744, 57308, 71196, 1865, 49234, 62616, 54021, 29008, 83672, 85839, 96836, 45077, 80900, 66906, 63526, 93824, 71820, 11033, 20183, 85704, 4683, 63512, 39144, 56880, 64424, 95979, 17709, 94849, 31771, 5737, 84286, 16757, 46256, 24478, 73180, 59978, 8254, 78963, 95437, 86351, 33824, 32540, 18357, 2668, 99260, 21284, 81351, 70961, 10255, 6911, 47394, 72408, 23827, 59865, 96395, 30665, 43699, 3593, 29165, 23388, 26628, 92402, 16731, 86740, 29493, 9069, 78653, 90094, 42735, 33682, 95041, 89887, 92369, 57949, 81585, 50593, 14698, 4737, 72551, 57271, 59433, 156, 33966, 58773, 59108, 49578, 18100, 59836, 73221, 21110, 1650, 11058, 47770, 66141, 84576, 58388, 40915, 94507, 32209, 17272, 65674, 95552, 25685, 5345, 36995, 36302, 7971, 67001, 62062, 75939, 36005, 26739, 56484, 46885, 66348, 87666, 78055, 44485, 82955, 85936, 9219, 1847, 92687, 72579, 45457, 78252, 98239, 4e4, 75563, 92408, 17175, 78845, 32638, 26959, 35406, 59553, 57852, 7506, 9, 93172, 77713, 93880, 40981, 27924, 9678, 24538, 52426, 84852, 83781, 23712, 82490, 77890, 22482, 66668, 55850, 25644, 44972, 62275, 78089, 28894, 98685, 32998, 98766, 89119, 34355, 75127, 69797, 71419, 62067, 57990, 96514, 50603, 79807, 26135, 29207, 43632, 32905, 38513, 18924, 88872, 20758, 70232, 60425, 1116, 24077, 21369, 93541, 75329, 78656, 44251, 42014, 98154, 42552, 14575, 30765, 348, 1134, 71581, 68420, 78141, 21105, 63305, 9718, 54851, 65867, 8595, 47390, 39182, 51174, 41478, 64433, 59628, 31945, 87322, 78667, 95282, 5622, 26224, 19972, 97269, 98376, 14779, 51138, 49658, 45345, 4972, 52794, 15737, 496, 48939, 63485, 42780, 16061, 59631, 37171, 13483, 56058, 51093, 62290, 88227, 17400, 88433, 67363, 89507, 26482, 85964, 71336, 67799, 28342, 37747, 61722, 27180, 78755, 18603, 42953, 6606, 23875, 56766, 1932, 36113, 62807, 84012, 21103, 9685, 69662, 76755, 13701, 95168, 13169, 44726, 15284, 16702, 89617, 54397, 52052, 12835, 37741, 86434, 22400, 37947, 95763, 86337, 35189, 22756, 47473, 16618, 42479, 47405, 14055, 64262, 66670, 89692, 54032, 94591, 44149, 29854, 76691, 33263, 62048, 25116, 88598, 16119, 62116, 54517, 31883, 86707, 18895, 81790, 71294, 2684, 15292, 48107, 14341, 91416, 75609, 92564, 39987, 2283, 89970, 95855, 80970, 5432, 89860, 90293, 99851, 94648, 5598, 32171, 28793, 92305, 64244, 8277, 93391, 96717, 34464, 29838, 10664, 28050, 60122, 77934, 10758, 84922, 92220, 45071, 97697, 36368, 17792, 84792, 76594, 67319, 51886, 5665, 45201, 11348, 9254, 7510, 51039, 91683, 84500, 85338, 5555, 19633, 3870, 39576, 41486, 58524, 54508, 20707, 58504, 39642, 22454, 80069, 83455, 31043, 90794, 51934, 3295, 26582, 16300, 74990, 22197, 83310, 69642, 81113, 58558, 84833, 17105, 46659, 25003, 85749, 44829, 4103, 67516, 76458, 52392, 53546, 70291, 98846, 67315, 30686, 18555, 29755, 5923, 22732, 19501, 56181, 85351, 5023, 4808, 56911, 16793, 75336, 49712, 27723, 96974, 34321, 5454, 12862, 71924, 45928, 95697, 68664, 58183, 78104, 42483, 71204, 99628, 40642, 56410, 17350, 13396, 76724, 87509, 9158, 83708, 27298, 92651, 95086, 38851, 63558, 89810, 1580, 32518, 35795, 26514, 56322, 78635, 63731, 91428, 7247, 66460, 38671, 26799, 22549, 47991, 46064, 80467, 40083, 17141, 39152, 99872, 27561, 75389, 74778, 94893, 82935, 99076, 93419, 10474, 84436, 47536, 16719, 60136, 80566, 28404, 74525, 74212, 3704, 65516, 98197, 34210, 64140, 22238, 49939, 99542, 27481, 21992, 78181, 90060, 71365, 66935, 29578, 14961, 8569, 9454, 43308, 66753, 45972, 93572, 16382, 87320, 37183, 25478, 38164, 31997, 69856, 60898, 63968, 62264, 4799, 17591, 89937, 73905, 55890, 88285, 2448, 40398, 54180, 65869, 45155, 43407, 39105, 339, 51619, 20203, 21189, 68245, 76912, 1222, 76411, 82679, 7, 66047, 32043, 42627, 16638, 27019, 15248, 66444, 8249, 18790, 82150, 54084, 84469, 3426, 50226, 99868, 88894, 43769, 66384, 8593, 41414, 2976, 60053, 51866, 87904, 74135, 53842, 59520, 67482, 16995, 32328, 29555, 49067, 2799, 68851, 41049, 97190, 53984, 99755, 46412, 45885, 64e3, 21962, 36438, 71742, 57223, 66599, 86071, 31436, 32667, 98099, 38399, 47377, 5171, 2742, 48803, 17823, 22093, 9866, 691, 5514, 25546, 2114, 5919, 56181, 96052, 67211, 61712, 25995, 3188, 23833, 38549, 44775, 55355, 61548, 55988, 47309, 23749, 30667, 70732, 33299, 16127, 30842, 78961, 41072, 9876, 18903, 30292, 25275, 61881, 15939, 72573, 84502, 92654, 97226, 53434, 77025, 63892, 12421, 33644, 39445, 30933, 84218, 13757, 37719, 84450, 2697, 60309, 22402, 80310, 92771, 45205, 72792, 95776, 85945, 74651, 216, 50842, 47854, 21916, 61588, 75405, 10495, 83083, 60427, 78495, 99809, 47890, 22993, 21508, 9459, 26845, 98130, 1184, 46438, 27698, 40652, 65654, 98517, 1096, 6998, 49133, 57041, 77983, 58708, 42176, 67356, 324, 70063, 10597, 65205, 25622, 34336, 16640, 27896, 26907, 86760, 48244, 89650, 44997, 51609, 28934, 9171, 97859, 97213, 19859, 41037, 64081, 94781, 27683, 41521, 52871, 86935, 26486, 38744, 25943, 60617, 6414, 42292, 46204, 53262, 30201, 38776, 88831, 97253, 67282, 72860, 18452, 60927, 81504, 57713, 30296, 10896, 39900, 67135, 42772, 4631, 55283, 39253, 25264, 1809, 12874, 88035, 88421, 90491, 83290, 6884, 15444, 90113, 20406, 20796, 40239, 34431, 15018, 45600, 17241, 26611, 9551, 89126, 65673, 31708, 91252, 39647, 63011, 24193, 58932, 89326, 33491, 53217, 27976, 70151, 37531, 53576, 23931, 11789, 73073, 52171, 89301, 51718, 15385, 79487, 66436, 35771, 34163, 86540, 42665, 80748, 77622, 14679, 40185, 25030, 42622, 13162, 17048, 24243, 59985, 59807, 60562, 3595, 10135, 29199, 69784, 59796, 38194, 58432, 50943, 40422, 63035, 3208, 81440, 90749, 88046, 32218, 88092, 22224, 2627, 91576, 16781, 43948, 57795, 71073, 27817, 87077, 82717, 24473, 42096, 76920, 88864, 90537, 14715, 42551, 45066, 24316, 37361, 38582, 21871, 14672, 93362, 21727, 57021, 94313, 39562, 64985, 94028, 46094, 43845, 91838, 79574, 7597, 3153, 56783, 18817, 74711, 6883, 91061, 31674, 73729, 99315, 66183, 57647, 74484, 68077, 33224, 397, 56753, 53158, 71872, 68153, 9298, 20961, 49656, 33407, 95683, 14328, 44708, 72952, 27048, 67887, 28741, 46752, 88177, 95894, 40086, 88534, 87112, 68614, 83073, 88794, 96799, 67588, 75049, 84603, 83140, 97347, 87316, 73087, 77135, 71883, 98643, 3808, 8848, 14133, 60447, 1366, 72976, 1868, 51667, 63279, 60040, 88264, 79152, 3474, 61366, 20523, 21584, 93712, 83654, 89761, 90154, 96345, 37539, 32556, 74254, 70603, 97122, 44978, 78028, 8943, 13778, 11080, 34271, 68276, 85372, 48410, 94516, 15427, 75323, 71685, 70774, 50342, 33771, 3678, 42321, 69788, 41758, 55004, 30992, 17402, 63523, 42328, 87171, 24751, 15084, 33884, 83655, 88345, 69602, 52606, 57886, 18034, 3381, 75796, 35901, 77480, 28683, 68324, 66035, 7223, 14926, 16128, 13645, 90370, 31949, 11057, 98849, 29499, 21565, 30786, 83292, 92392, 37104, 36899, 49906, 79368, 43710, 80365, 88735, 75275, 21664, 57965, 19002, 301, 12658, 94385, 1717, 96191, 50404, 80166, 93965, 24688, 27839, 10812, 31715, 92127, 42588, 93307, 80834, 11317, 26583, 25769, 98227, 14884, 58462, 29148, 68662, 26872, 72927, 79021, 51622, 29521, 33355, 45701, 45996, 33782, 93424, 16530, 96086, 17329, 74020, 11501, 46660, 5583, 22277, 77653, 55430, 84644, 448, 86828, 58855, 67451, 95264, 67386, 82424, 52611, 60012, 88620, 72894, 94716, 22262, 99813, 69592, 63464, 33163, 91857, 47904, 22209, 78590, 68615, 52952, 31441, 41313, 18550, 72685, 68825, 4795, 53971, 14592, 39634, 23682, 76630, 2731, 81481, 86542, 23727, 54291, 56045, 61635, 32186, 9355, 73416, 63532, 24340, 18886, 84832, 30654, 48543, 18339, 65024, 91197, 64624, 74648, 9660, 27897, 49771, 11123, 8732, 49393, 12911, 72416, 17834, 18878, 62754, 85072, 23727, 56577, 51257, 83291, 12329, 16203, 91681, 68137, 79959, 43609, 58987, 2026, 42969, 59144, 84349, 75214, 76972, 22633, 64104, 53799, 16851, 99197, 70476, 77113, 46320, 88693, 37711, 96536, 68156, 7119, 2104, 49435, 77706, 18924, 24957, 92406, 87148, 70482, 36491, 42605, 54440, 7893, 31618, 35707, 65130, 30007, 75706, 77266, 37100, 9601, 87681, 42543, 69847, 81848, 32034, 49429, 99434, 62209, 17125, 55227, 61634, 52574, 83649, 28725, 70119, 62467, 80676, 21192, 99584, 21310, 25292, 72781, 17186, 10393, 98390, 19789, 92931, 36234, 62627, 23437, 3885, 58822, 82941, 43806, 8172, 23790, 72295, 36196, 98200, 2889, 87619, 13846, 56197, 27151, 21238, 48794, 81100, 62643, 40001, 39243, 33213, 78416, 194, 91369, 79342, 36404, 52308, 13741, 24442, 88610, 12659, 11574, 70052, 93039, 79367, 41792, 61816, 35435, 47192, 97596, 28330, 41145, 16918, 62865, 9576, 45857, 68737, 90124, 16703, 7071, 48433, 57222, 34435, 800, 72496, 16449, 68187, 28739, 97672, 86818, 50768, 40807, 88681, 64340, 2224, 19703, 59245, 90905, 31239, 84216, 93942, 97371, 16842, 92168, 52692, 16064, 84686, 89444, 27938, 98406, 41365, 4515, 20494, 18813, 16242, 10634, 61566, 18592, 78057, 8720, 33739, 78345, 87693, 30242, 70545, 55521, 23687, 9160, 8655, 38811, 61768, 7228, 5567, 5561, 82071, 85, 50145, 23113, 97761, 88441, 14891, 72188, 85166, 37189, 75671, 81377, 92470, 73645, 93258, 6610, 12185, 43065, 26704, 47922, 56650, 7527, 18006, 56948, 51675, 16658, 66402, 1047, 81624, 77395, 62310, 73262, 66050, 57275, 32936, 87641, 51528, 58183, 21952, 84098, 28913, 28622, 18140, 89796, 41317, 93954, 67690, 64667, 57092, 21315, 4731, 76115, 77291, 11204, 8634, 93034, 27411, 27149, 13843, 9817, 9407, 84492, 28444, 59901, 14592, 89654, 66207, 66232, 80293, 74502, 36925, 55515, 10121, 16768, 4720, 71502, 40500, 21406, 571, 87320, 81683, 42788, 86367, 44686, 22159, 67015, 35892, 49668, 83991, 72088, 30210, 74009, 86370, 97956, 2132, 93512, 54819, 26094, 51409, 21485, 94764, 85806, 13393, 48543, 7042, 76538, 64224, 47909, 9994, 23750, 17351, 52141, 30486, 60380, 86546, 66606, 36913, 58173, 45709, 83679, 82617, 23381, 9603, 61107, 566, 6572, 64745, 10614, 86371, 43244, 97154, 10397, 50975, 68006, 20045, 16942, 25536, 74031, 31807, 70133, 78790, 40341, 68730, 39635, 39013, 66841, 44043, 96215, 21270, 59427, 25034, 40645, 84741, 52083, 54503, 36861, 27659, 95463, 53847, 40921, 70116, 61536, 56756, 8967, 31079, 20097, 76014, 99818, 16606, 19713, 66904, 27106, 24874, 96701, 73287, 76772, 6073, 57343, 51428, 91171, 28299, 17520, 64903, 4177, 36071, 94952, 59008, 28543, 11576, 74547, 13260, 20688, 41261, 2780, 6633, 37536, 8844, 95774, 49323, 30448, 14154, 83379, 71259, 23302, 68402, 43750, 88505, 15575, 44927, 6584, 29867, 21541, 65763, 12154, 86616, 79877, 73259, 68626, 98962, 68548, 86576, 48046, 51755, 64995, 3661, 64585, 81550, 46798, 49319, 50206, 22024, 5175, 12923, 23427, 55915, 91723, 55831, 83784, 81034, 86779, 34622, 84570, 18960, 48798, 42970, 95789, 39465, 82353, 68905, 44234, 18244, 54345, 5592, 89361, 14644, 67924, 66415, 89349, 88530, 72096, 44459, 5258, 48317, 48866, 56886, 90458, 75889, 4514, 37227, 11302, 4667, 2129, 80414, 86289, 15887, 87380, 50749, 83220, 50529, 20619, 11606, 36531, 23409, 78122, 19566, 76564, 33045, 66703, 30017, 35347, 35038, 12952, 13971, 3922, 98702, 11786, 38388, 69556, 76728, 60535, 59961, 23634, 42211, 98387, 34880, 27755, 93182, 99040, 96390, 65989, 38375, 3652, 59657, 57431, 24666, 11061, 64713, 85185, 72849, 58611, 31220, 26657, 77056, 24553, 24993, 5210, 89024, 32054, 46997, 92652, 28363, 98992, 22593, 97710, 47766, 37646, 93573, 95502, 33790, 92973, 27766, 62671, 89698, 10877, 73893, 41004, 96035, 18795, 48080, 59666, 30241, 35233, 87353, 43647, 13404, 41982, 19264, 29229, 61369, 8309, 39383, 42305, 25944, 13577, 51545, 68990, 69801, 37145, 79189, 55897, 57793, 66816, 21930, 56771, 79296, 73793, 21632, 42301, 23696, 72641, 56310, 85576, 3004, 25669, 69221, 32996, 23040, 65782, 23712, 13414, 10758, 15590, 97298, 74246, 51511, 46900, 36795, 38292, 3852, 6384, 84421, 3446, 91670, 45312, 27609, 87034, 6683, 83891, 88991, 16533, 9197, 34427, 60384, 48525, 90978, 46107, 21693, 12956, 21804, 46558, 37682, 81207, 85840, 53238, 35026, 4835, 53264, 41376, 17783, 64756, 39278, 25403, 33042, 20954, 31193, 24247, 45911, 92453, 25370, 86602, 48574, 57865, 26436, 16122, 76614, 17028, 21262, 59718, 77821, 14036, 31033, 90563, 45410, 15158, 90209, 84089, 38053, 60780, 54166, 14255, 33120, 27171, 71798, 91214, 80040, 56699, 12475, 40193, 59415, 4769, 75920, 1036, 2692, 75862, 16612, 73670, 61182, 3305, 90334, 187, 91659, 28063, 75684, 50017, 82643, 9282, 77376, 85469, 8164, 5584, 36623, 82597, 83859, 3435, 98460, 70095, 80257, 4381, 6501, 8924, 35514, 14297, 54373, 71369, 5172, 15955, 82441, 4636, 48215, 6821, 3385, 17663, 40107, 55679, 30366, 42390, 95895, 16083, 58499, 17176, 55993, 51034, 49296, 4010, 78974, 35930, 2019, 96226, 27167, 68245, 53109, 59037, 37843, 79243, 10262, 58797, 61490, 82590, 52411, 54783, 29447, 94551, 30026, 97959, 93939, 73217, 82573, 62154, 78291, 33728, 39102, 11484, 86210, 43794, 73553, 87435, 1110, 77108, 56521, 78610, 8254, 1842, 43068, 70415, 79195, 26136, 49786, 47279, 38471, 20379, 54704, 86614, 91138, 51595, 50818, 80186, 73087, 17262, 94735, 4952, 27935, 4928, 74862, 51392, 62388, 9570, 38485, 30594, 56278, 47395, 72762, 94597, 72279, 16010, 34697, 54475, 67874, 78014, 88381, 4045, 41494, 55178, 46054, 24373, 1824, 55333, 7525, 97908, 61178, 84635, 2199, 35361, 4803, 21907, 79414, 66083, 54782, 58692, 28332, 41851, 28198, 55819, 37313, 67046, 16147, 90478, 71230, 34141, 85002, 44332, 35906, 429, 39744, 773, 22909, 19536, 98986, 90945, 45209, 85439, 92265, 25291, 22775, 60611, 49159, 95701, 36113, 53923, 60824, 84935, 29656, 50007, 86624, 61691, 76150, 32187, 42765, 60660, 13859, 10792, 88210, 29374, 29563, 45188, 28811, 19739, 67649, 73775, 99247, 48414, 91067, 68253, 9452, 90116, 91737, 73979, 62370, 69112, 58791, 20349, 71480, 56852, 36919, 87977, 77609, 68738, 85159, 4918, 70076, 46473, 4122, 57713, 1426, 50987, 77910, 66211, 62546, 77749, 96462, 34304, 77441, 12104, 91805, 10287, 60943, 49632, 83116, 25716, 23113, 22707, 77770, 31176, 6759, 46130, 4739, 55554, 3843, 31653, 70834, 72877, 41561, 36903, 23010, 6663, 2266, 16360, 70118, 91936, 17098, 77278, 4880, 23484, 94970, 41826, 46733, 93484, 68350, 38861, 18134, 32936, 241, 24803, 13876, 93278, 5039, 35873, 44418, 5305, 28510, 36115, 46717, 15238, 78607, 23464, 68635, 55712, 55007, 92411, 65739, 4858, 67537, 37041, 67453, 89801, 45963, 14800, 14225, 65655, 80463, 9716, 77255, 65136, 11230, 76323, 81433, 36445, 86523, 61058, 59560, 19380, 40791, 48073, 29626, 36661, 87907, 57369, 41623, 13705, 3880, 45088, 55444, 41003, 27754, 1450, 75312, 71801, 99600, 60719, 54182, 29245, 63315, 73758, 42973, 32702, 10855, 56363, 14638, 84424, 27178, 78195, 3133, 70865, 48019, 26117, 7151, 52107, 85562, 41347, 50486, 69457, 86961, 95482, 11857, 93587, 45680, 42145, 13029, 10043, 5142, 49213, 54525, 85761, 42707, 70754, 33768, 87671, 85038, 58900, 88438, 20004, 63390, 14815, 38875, 73417, 82875, 89481, 55517, 944, 15773, 61814, 32915, 27868, 5510, 21916, 28426, 89881, 16680, 88850, 11056, 51991, 4230, 39107, 49216, 40065, 4523, 75848, 95349, 56034, 10724, 9885, 88232, 42478, 65702, 95696, 39746, 66032, 88082, 86905, 30007, 75068, 66629, 7358, 26706, 90511, 72843, 67857, 20061, 98581, 69682, 38e3, 14186, 70, 2290, 17269, 30909, 69449, 19997, 13275, 2444, 84985, 51290, 97641, 15092, 69650, 21920, 19617, 7418, 49725, 91090, 20805, 28627, 80665, 67192, 34697, 57667, 99323, 50101, 40587, 35081, 14037, 34414, 19898, 60779, 83267, 87499, 29596, 41852, 15813, 32419, 72232, 8322, 39184, 46525, 13833, 65743, 94595, 37363, 4711, 35386, 96413, 10627, 62625, 56555, 12919, 93218, 25191, 98380, 51923, 66181, 5788, 73491, 1452, 487, 12277, 45415, 11884, 61300, 94528, 9181, 26616, 11455, 31514, 63290, 45035, 42759, 33804, 85721, 80979, 46010, 50975, 72482, 31231, 3086, 58941, 46102, 25773, 89742, 29788, 96741, 88523, 14922, 88262, 76305, 57676, 93259, 2396, 69145, 26074, 30056, 3853, 75317, 56639, 66203, 38923, 48939, 22813, 91864, 10934, 6714, 84099, 25631, 73223, 95630, 97552, 45950, 22197, 42886, 33764, 1263, 41856, 82057, 62349, 94091, 78028, 62651, 18911, 5693, 92561, 97821, 41994, 92343, 76785, 22216, 4203, 5038, 86151, 23596, 24338, 77181, 51761, 97693, 10955, 98159, 37568, 58932, 72128, 27303, 99608, 31688, 57557, 91022, 43036, 93927, 32869, 53653, 55205, 33139, 47271, 31224, 51650, 36422, 86857, 73799, 22068, 43376, 84760, 44898, 65776, 42451, 71480, 38509, 41673, 44141, 75918, 95652, 68981, 83001, 48815, 98086, 67950, 27986, 33175, 43624, 55274, 71051, 61124, 51550, 64967, 31570, 15748, 19159, 38174, 51078, 79811, 39183, 57527, 96550, 85168, 28824, 47466, 56993, 13151, 96664, 29735, 70251, 1079, 4314, 77714, 11507, 1440, 48415, 31984, 99915, 20282, 26524, 18057, 4992, 40521, 98108, 84045, 91961, 79256, 72244, 25788, 5487, 23595, 73302, 14205, 8925, 27625, 64343, 28821, 37992, 67156, 83320, 31106, 10884, 30735, 15067, 51091, 15668, 48777, 50770, 19169, 76504, 41165, 29749, 92812, 8065, 66782, 26841, 1411, 95461, 61134, 18699, 52261, 60469, 81373, 44825, 11448, 73320, 30151, 56991, 31372, 6655, 36472, 86292, 30247, 30931, 21029, 53410, 9859, 37267, 47514, 3492, 49008, 94727, 25234, 40546, 53417, 36492, 25723, 76227, 58456, 15979, 34876, 9574, 34392, 3751, 36933, 83921, 65108, 63135, 67572, 40184, 21098]
      , l = new Array(16)
      , h = [16, 8, 16, 24]
      , f = 4
      , p = 0;
    !function() {
        for (var t = 0; t < 16; t++) {
            l[t] = new Array(256);
            for (var e = 0; e < 256; e++)
                l[t][e] = e | e << 8 | e << 16 | e << 24 | 0;
            for (var n = 3; 0 <= n; n--)
                for (var i = 0; i < 255; i++) {
                    var r = 255 << (n << 3)
                      , o = 0 | l[t][i]
                      , a = function(t, e) {
                        var n = e - t + 1
                          , i = 0
                          , r = 1;
                        do {
                            for (i = 0,
                            r = 1; r < n; r *= 10)
                                i = 10 * i + (f < 0 && (f = 4,
                                p++),
                                c[p] % Math.pow(10, f + 1) / Math.pow(10, f--) | 0)
                        } while ((r / n | 0) * n <= i);return t + i % n | 0
                    }(i, 255);
                    l[t][i] = l[t][i] & ~r | l[t][a] & r | 0,
                    l[t][a] = l[t][a] & ~r | o & r | 0
                }
        }
    }();
    var d = (function(t, e) {
        if ("function" != typeof e && null !== e)
            throw new TypeError("Super expression must either be null or a function");
        t.prototype = Object.create(e && e.prototype, {
            constructor: {
                value: t,
                writable: !0,
                configurable: !0
            }
        }),
        e && s(t, e)
    }(M, i.a),
    function(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }(M.prototype, [{
        key: "reset",
        value: function() {
            o(a(M.prototype), "reset", this).call(this),
            this.state.hash = new Array(this.options.length / 32 | 0);
            for (var t = 0; t < this.state.hash.length; t++)
                this.state.hash[t] = 0
        }
    }, {
        key: "processBlock",
        value: function(t) {
            for (var e = 0; e < this.state.hash.length; e++)
                this.W[e] = 0 | this.state.hash[e];
            for (var n = this.state.hash.length; n < 16; n++)
                this.W[n] = 0 | t[n - this.state.hash.length];
            for (var i = 0; i < this.options.rounds << 1; i += 2)
                for (var r = 0; r < 4; r++) {
                    for (var o = 0; o < 16; o++) {
                        var a = 0 | l[i + (o / 2 | 0) % 2][255 & this.W[o]];
                        this.W[o - 1 >>> 0 & 15] ^= a,
                        this.W[o + 1 & 15] ^= a
                    }
                    for (var s = 0; s < 16; s++)
                        this.W[s] = Object(u.b)(this.W[s], h[r])
                }
            for (var c = 0; c < this.state.hash.length; c++)
                this.state.hash[c] = this.state.hash[c] ^ this.W[15 - c] | 0
        }
    }, {
        key: "finalize",
        value: function() {
            return 0 < this.state.message.length && this.addPaddingZero(this.blockSizeInBytes - this.state.message.length | 0),
            this.addPaddingZero(this.blockSizeInBytes - 8 | 0),
            this.addLengthBits(),
            this.process(),
            this.getStateHash()
        }
    }]),
    M);
    function M(t) {
        var e, n, i;
        return function(t) {
            if (!(t instanceof M))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        (t = t || {}).length = t.length || 128,
        t.rounds = t.rounds || 8,
        n = this,
        (e = !(i = a(M).call(this, t)) || "object" !== r(i) && "function" != typeof i ? function() {
            if (void 0 !== n)
                return n;
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
        }() : i).blockSize = 16 - e.state.hash.length,
        e.blockSizeInBytes = e.blockSize * e.unitSize,
        e.W = new Array(16),
        e
    }
    e.a = d
}
, function(t, e, n) {
    "use strict";
    var i = n(5)
      , c = n(0);
    function r(t) {
        return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        }
        : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }
        )(t)
    }
    function o(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }
    function a(t, e, n) {
        return (a = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
            var i = function(t, e) {
                for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = s(t)); )
                    ;
                return t
            }(t, e);
            if (i) {
                var r = Object.getOwnPropertyDescriptor(i, e);
                return r.get ? r.get.call(n) : r.value
            }
        }
        )(t, e, n || t)
    }
    function s(t) {
        return (s = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
            return t.__proto__ || Object.getPrototypeOf(t)
        }
        )(t)
    }
    function u(t, e) {
        return (u = Object.setPrototypeOf || function(t, e) {
            return t.__proto__ = e,
            t
        }
        )(t, e)
    }
    for (var l = [[7, 12, 17, 22], [5, 9, 14, 20], [4, 11, 16, 23], [6, 10, 15, 21]], h = new Array(64), f = 0; f < 64; f++)
        h[f] = 4294967296 * Math.abs(Math.sin(f + 1)) | 0;
    var p, d, M = (function(t, e) {
        if ("function" != typeof e && null !== e)
            throw new TypeError("Super expression must either be null or a function");
        t.prototype = Object.create(e && e.prototype, {
            constructor: {
                value: t,
                writable: !0,
                configurable: !0
            }
        }),
        e && u(t, e)
    }(b, i.a),
    d = [{
        key: "FF",
        value: function(t, e, n) {
            return t & e | ~t & n
        }
    }, {
        key: "GG",
        value: function(t, e, n) {
            return t & n | e & ~n
        }
    }, {
        key: "HH",
        value: function(t, e, n) {
            return t ^ e ^ n
        }
    }, {
        key: "II",
        value: function(t, e, n) {
            return e ^ (t | ~n)
        }
    }, {
        key: "CC",
        value: function(t, e, n, i, r, o, a, s) {
            return Object(c.a)(n + t(i, r, o) + a + e, s) + i | 0
        }
    }],
    o((p = b).prototype, [{
        key: "reset",
        value: function() {
            a(s(b.prototype), "reset", this).call(this),
            this.state.hash = [1732584193, -271733879, -1732584194, 271733878]
        }
    }, {
        key: "processBlock",
        value: function(t) {
            var e = 0 | this.state.hash[0]
              , n = 0 | this.state.hash[1]
              , i = 0 | this.state.hash[2]
              , r = 0 | this.state.hash[3]
              , e = b.CC(b.FF, h[0], e, n, i, r, t[0], l[0][0])
              , r = b.CC(b.FF, h[1], r, e, n, i, t[1], l[0][1])
              , i = b.CC(b.FF, h[2], i, r, e, n, t[2], l[0][2])
              , n = b.CC(b.FF, h[3], n, i, r, e, t[3], l[0][3]);
            e = b.CC(b.FF, h[4], e, n, i, r, t[4], l[0][0]),
            r = b.CC(b.FF, h[5], r, e, n, i, t[5], l[0][1]),
            i = b.CC(b.FF, h[6], i, r, e, n, t[6], l[0][2]),
            n = b.CC(b.FF, h[7], n, i, r, e, t[7], l[0][3]),
            e = b.CC(b.FF, h[8], e, n, i, r, t[8], l[0][0]),
            r = b.CC(b.FF, h[9], r, e, n, i, t[9], l[0][1]),
            i = b.CC(b.FF, h[10], i, r, e, n, t[10], l[0][2]),
            n = b.CC(b.FF, h[11], n, i, r, e, t[11], l[0][3]),
            e = b.CC(b.FF, h[12], e, n, i, r, t[12], l[0][0]),
            r = b.CC(b.FF, h[13], r, e, n, i, t[13], l[0][1]),
            i = b.CC(b.FF, h[14], i, r, e, n, t[14], l[0][2]),
            n = b.CC(b.FF, h[15], n, i, r, e, t[15], l[0][3]),
            e = b.CC(b.GG, h[16], e, n, i, r, t[1], l[1][0]),
            r = b.CC(b.GG, h[17], r, e, n, i, t[6], l[1][1]),
            i = b.CC(b.GG, h[18], i, r, e, n, t[11], l[1][2]),
            n = b.CC(b.GG, h[19], n, i, r, e, t[0], l[1][3]),
            e = b.CC(b.GG, h[20], e, n, i, r, t[5], l[1][0]),
            r = b.CC(b.GG, h[21], r, e, n, i, t[10], l[1][1]),
            i = b.CC(b.GG, h[22], i, r, e, n, t[15], l[1][2]),
            n = b.CC(b.GG, h[23], n, i, r, e, t[4], l[1][3]),
            e = b.CC(b.GG, h[24], e, n, i, r, t[9], l[1][0]),
            r = b.CC(b.GG, h[25], r, e, n, i, t[14], l[1][1]),
            i = b.CC(b.GG, h[26], i, r, e, n, t[3], l[1][2]),
            n = b.CC(b.GG, h[27], n, i, r, e, t[8], l[1][3]),
            e = b.CC(b.GG, h[28], e, n, i, r, t[13], l[1][0]),
            r = b.CC(b.GG, h[29], r, e, n, i, t[2], l[1][1]),
            i = b.CC(b.GG, h[30], i, r, e, n, t[7], l[1][2]),
            n = b.CC(b.GG, h[31], n, i, r, e, t[12], l[1][3]),
            e = b.CC(b.HH, h[32], e, n, i, r, t[5], l[2][0]),
            r = b.CC(b.HH, h[33], r, e, n, i, t[8], l[2][1]),
            i = b.CC(b.HH, h[34], i, r, e, n, t[11], l[2][2]),
            n = b.CC(b.HH, h[35], n, i, r, e, t[14], l[2][3]),
            e = b.CC(b.HH, h[36], e, n, i, r, t[1], l[2][0]),
            r = b.CC(b.HH, h[37], r, e, n, i, t[4], l[2][1]),
            i = b.CC(b.HH, h[38], i, r, e, n, t[7], l[2][2]),
            n = b.CC(b.HH, h[39], n, i, r, e, t[10], l[2][3]),
            e = b.CC(b.HH, h[40], e, n, i, r, t[13], l[2][0]),
            r = b.CC(b.HH, h[41], r, e, n, i, t[0], l[2][1]),
            i = b.CC(b.HH, h[42], i, r, e, n, t[3], l[2][2]),
            n = b.CC(b.HH, h[43], n, i, r, e, t[6], l[2][3]),
            e = b.CC(b.HH, h[44], e, n, i, r, t[9], l[2][0]),
            r = b.CC(b.HH, h[45], r, e, n, i, t[12], l[2][1]),
            i = b.CC(b.HH, h[46], i, r, e, n, t[15], l[2][2]),
            n = b.CC(b.HH, h[47], n, i, r, e, t[2], l[2][3]),
            e = b.CC(b.II, h[48], e, n, i, r, t[0], l[3][0]),
            r = b.CC(b.II, h[49], r, e, n, i, t[7], l[3][1]),
            i = b.CC(b.II, h[50], i, r, e, n, t[14], l[3][2]),
            n = b.CC(b.II, h[51], n, i, r, e, t[5], l[3][3]),
            e = b.CC(b.II, h[52], e, n, i, r, t[12], l[3][0]),
            r = b.CC(b.II, h[53], r, e, n, i, t[3], l[3][1]),
            i = b.CC(b.II, h[54], i, r, e, n, t[10], l[3][2]),
            n = b.CC(b.II, h[55], n, i, r, e, t[1], l[3][3]),
            e = b.CC(b.II, h[56], e, n, i, r, t[8], l[3][0]),
            r = b.CC(b.II, h[57], r, e, n, i, t[15], l[3][1]),
            i = b.CC(b.II, h[58], i, r, e, n, t[6], l[3][2]),
            n = b.CC(b.II, h[59], n, i, r, e, t[13], l[3][3]),
            e = b.CC(b.II, h[60], e, n, i, r, t[4], l[3][0]),
            r = b.CC(b.II, h[61], r, e, n, i, t[11], l[3][1]),
            i = b.CC(b.II, h[62], i, r, e, n, t[2], l[3][2]),
            n = b.CC(b.II, h[63], n, i, r, e, t[9], l[3][3]),
            this.state.hash[0] = this.state.hash[0] + e | 0,
            this.state.hash[1] = this.state.hash[1] + n | 0,
            this.state.hash[2] = this.state.hash[2] + i | 0,
            this.state.hash[3] = this.state.hash[3] + r | 0
        }
    }, {
        key: "finalize",
        value: function() {
            return this.addPaddingISO7816(this.state.message.length < 56 ? 56 - this.state.message.length | 0 : 120 - this.state.message.length | 0),
            this.addLengthBits(),
            this.process(),
            this.getStateHash()
        }
    }]),
    o(p, d),
    b);
    function b() {
        return function(t) {
            if (!(t instanceof b))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        t = this,
        !(e = s(b).apply(this, arguments)) || "object" !== r(e) && "function" != typeof e ? function() {
            if (void 0 !== t)
                return t;
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
        }() : e;
        var t, e
    }
    e.a = M
}
, function(t, e, n) {
    "use strict";
    var i = n(3)
      , c = n(0);
    function r(t) {
        return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        }
        : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }
        )(t)
    }
    function o(t, e, n) {
        return (o = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
            var i = function(t, e) {
                for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = a(t)); )
                    ;
                return t
            }(t, e);
            if (i) {
                var r = Object.getOwnPropertyDescriptor(i, e);
                return r.get ? r.get.call(n) : r.value
            }
        }
        )(t, e, n || t)
    }
    function a(t) {
        return (a = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
            return t.__proto__ || Object.getPrototypeOf(t)
        }
        )(t)
    }
    function s(t, e) {
        return (s = Object.setPrototypeOf || function(t, e) {
            return t.__proto__ = e,
            t
        }
        )(t, e)
    }
    var u = [1518500249, 1859775393, 2400959708, 3395469782]
      , l = (function(t, e) {
        if ("function" != typeof e && null !== e)
            throw new TypeError("Super expression must either be null or a function");
        t.prototype = Object.create(e && e.prototype, {
            constructor: {
                value: t,
                writable: !0,
                configurable: !0
            }
        }),
        e && s(t, e)
    }(h, i.a),
    function(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }(h.prototype, [{
        key: "reset",
        value: function() {
            o(a(h.prototype), "reset", this).call(this),
            this.state.hash = [1732584193, -271733879, -1732584194, 271733878, -1009589776]
        }
    }, {
        key: "processBlock",
        value: function(t) {
            for (var e = 0 | this.state.hash[0], n = 0 | this.state.hash[1], i = 0 | this.state.hash[2], r = 0 | this.state.hash[3], o = 0 | this.state.hash[4], a = 0; a < this.options.rounds; a++) {
                this.W[a] = a < 16 ? 0 | t[a] : 0 | Object(c.a)(this.W[a - 3] ^ this.W[a - 8] ^ this.W[a - 14] ^ this.W[a - 16], 1);
                var s = Object(c.a)(e, 5) + o + this.W[a] + u[a / 20 >> 0] | 0
                  , s = a < 20 ? s + (n & i | ~n & r) | 0 : !(a < 40) && a < 60 ? s + (n & i | n & r | i & r) | 0 : s + (n ^ i ^ r) | 0
                  , o = r
                  , r = i
                  , i = 0 | Object(c.a)(n, 30)
                  , n = e
                  , e = s
            }
            this.state.hash[0] = this.state.hash[0] + e | 0,
            this.state.hash[1] = this.state.hash[1] + n | 0,
            this.state.hash[2] = this.state.hash[2] + i | 0,
            this.state.hash[3] = this.state.hash[3] + r | 0,
            this.state.hash[4] = this.state.hash[4] + o | 0
        }
    }, {
        key: "finalize",
        value: function() {
            return this.addPaddingISO7816(this.state.message.length < 56 ? 56 - this.state.message.length | 0 : 120 - this.state.message.length | 0),
            this.addLengthBits(),
            this.process(),
            this.getStateHash()
        }
    }]),
    h);
    function h(t) {
        var e, n, i;
        return function(t) {
            if (!(t instanceof h))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        n = this,
        (e = !(i = a(h).call(this, t)) || "object" !== r(i) && "function" != typeof i ? function() {
            if (void 0 !== n)
                return n;
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
        }() : i).options.rounds = e.options.rounds || 80,
        e.W = new Array(80),
        e
    }
    e.a = l
}
, function(t, e, n) {
    "use strict";
    var u = n(0)
      , i = n(3);
    function r(t) {
        return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        }
        : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }
        )(t)
    }
    function o(t, e, n) {
        return (o = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
            var i = function(t, e) {
                for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = a(t)); )
                    ;
                return t
            }(t, e);
            if (i) {
                var r = Object.getOwnPropertyDescriptor(i, e);
                return r.get ? r.get.call(n) : r.value
            }
        }
        )(t, e, n || t)
    }
    function a(t) {
        return (a = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
            return t.__proto__ || Object.getPrototypeOf(t)
        }
        )(t)
    }
    function s(t, e) {
        return (s = Object.setPrototypeOf || function(t, e) {
            return t.__proto__ = e,
            t
        }
        )(t, e)
    }
    var c = new Array(256)
      , l = [104, 208, 235, 43, 72, 157, 106, 228, 227, 163, 86, 129, 125, 241, 133, 158, 44, 142, 120, 202, 23, 169, 97, 213, 93, 11, 140, 60, 119, 81, 34, 66, 63, 84, 65, 128, 204, 134, 179, 24, 46, 87, 6, 98, 244, 54, 209, 107, 27, 101, 117, 16, 218, 73, 38, 249, 203, 102, 231, 186, 174, 80, 82, 171, 5, 240, 13, 115, 59, 4, 32, 254, 221, 245, 180, 95, 10, 181, 192, 160, 113, 165, 45, 96, 114, 147, 57, 8, 131, 33, 92, 135, 177, 224, 0, 195, 18, 145, 138, 2, 28, 230, 69, 194, 196, 253, 191, 68, 161, 76, 51, 197, 132, 35, 124, 176, 37, 21, 53, 105, 255, 148, 77, 112, 162, 175, 205, 214, 108, 183, 248, 9, 243, 103, 164, 234, 236, 182, 212, 210, 20, 30, 225, 36, 56, 198, 219, 75, 122, 58, 222, 94, 223, 149, 252, 170, 215, 206, 7, 15, 61, 88, 154, 152, 156, 242, 167, 17, 126, 139, 67, 3, 226, 220, 229, 178, 78, 199, 109, 233, 39, 64, 216, 55, 146, 143, 1, 29, 83, 62, 89, 193, 79, 50, 22, 250, 116, 251, 99, 159, 52, 26, 42, 90, 141, 201, 207, 246, 144, 40, 136, 155, 49, 14, 189, 74, 232, 150, 166, 12, 200, 121, 188, 190, 239, 110, 70, 151, 91, 237, 25, 217, 172, 153, 168, 41, 100, 31, 173, 85, 19, 187, 247, 111, 185, 71, 47, 238, 184, 123, 137, 48, 211, 127, 118, 130]
      , h = [1, 11, 9, 12, 13, 6, 15, 3, 14, 8, 7, 4, 10, 2, 5, 0]
      , f = [7, 12, 11, 13, 14, 4, 9, 15, 6, 3, 8, 10, 2, 5, 1, 0]
      , p = new Array(16)
      , d = [1, 1, 4, 1, 8, 5, 2, 9]
      , M = [1, 1, 3, 1, 5, 8, 9, 5]
      , b = new Array(512)
      , m = new Array(22)
      , g = new Array(512)
      , v = new Array(22)
      , A = new Array(512)
      , y = new Array(22);
    function z(t, e) {
        for (var n = new Array(512), i = new Array(22), r = 0; r < 8; r++)
            n[r] = [];
        for (var o = 0; o < 256; o++) {
            var a = new Array(10);
            a[1] = t[o],
            a[2] = a[1] << 1,
            256 <= a[2] && (a[2] ^= 285),
            a[3] = a[2] ^ a[1],
            a[4] = a[2] << 1,
            256 <= a[4] && (a[4] ^= 285),
            a[5] = a[4] ^ a[1],
            a[8] = a[4] << 1,
            256 <= a[8] && (a[8] ^= 285),
            a[9] = a[8] ^ a[1],
            n[0][2 * o] = a[e[0]] << 24 | a[e[1]] << 16 | a[e[2]] << 8 | a[e[3]],
            n[0][2 * o + 1] = a[e[4]] << 24 | a[e[5]] << 16 | a[e[6]] << 8 | a[e[7]];
            for (var s = 1; s < 8; s++)
                n[s][2 * o] = Object(u.d)(n[0][2 * o + 1], n[0][2 * o], s << 3),
                n[s][2 * o + 1] = Object(u.c)(n[0][2 * o + 1], n[0][2 * o], s << 3)
        }
        i[0] = 0,
        i[1] = 0;
        for (var c = 1; c <= 10; c++)
            i[2 * c] = 4278190080 & n[0][16 * c - 16] ^ 16711680 & n[1][16 * c - 14] ^ 65280 & n[2][16 * c - 12] ^ 255 & n[3][16 * c - 10],
            i[2 * c + 1] = 4278190080 & n[4][16 * c - 7] ^ 16711680 & n[5][16 * c - 5] ^ 65280 & n[6][16 * c - 3] ^ 255 & n[7][16 * c - 1];
        return [n, i]
    }
    !function() {
        !function() {
            for (var t = 0; t < 16; t++)
                p[h[t]] = 0 | t;
            for (var e = 0; e < 256; e++) {
                var n = h[e >> 4]
                  , i = p[15 & e]
                  , r = f[n ^ i];
                c[e] = h[n ^ r] << 4 | p[i ^ r]
            }
        }();
        var t = z(l, M);
        g = t[0],
        v = t[1],
        t = z(c, M),
        A = t[0],
        y = t[1],
        t = z(c, d),
        b = t[0],
        m = t[1]
    }();
    var _ = (function(t, e) {
        if ("function" != typeof e && null !== e)
            throw new TypeError("Super expression must either be null or a function");
        t.prototype = Object.create(e && e.prototype, {
            constructor: {
                value: t,
                writable: !0,
                configurable: !0
            }
        }),
        e && s(t, e)
    }(O, i.a),
    function(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }(O.prototype, [{
        key: "reset",
        value: function() {
            o(a(O.prototype), "reset", this).call(this),
            this.state.hash = new Array(16);
            for (var t = 0; t < 16; t++)
                this.state.hash[t] = 0
        }
    }, {
        key: "processBlock",
        value: function(t) {
            for (var e = new Array(16), n = [], i = 0; i < 16; i++)
                n[i] = t[i] ^ (e[i] = this.state.hash[i]) | 0;
            for (var r = [], o = 1; o <= this.options.rounds; o++) {
                for (var a = 0; a < 8; a++) {
                    r[2 * a] = 0;
                    for (var s = r[2 * a + 1] = 0, c = 56, u = 0; s < 8; s++,
                    u = (c -= 8) < 32 ? 1 : 0)
                        r[2 * a] ^= this.C[s][2 * (e[2 * (a - s & 7) + u] >>> c % 32 & 255)],
                        r[2 * a + 1] ^= this.C[s][2 * (e[2 * (a - s & 7) + u] >>> c % 32 & 255) + 1]
                }
                for (var l = 0; l < 16; l++)
                    e[l] = r[l];
                e[0] ^= this.RC[2 * o],
                e[1] ^= this.RC[2 * o + 1];
                for (var h = 0; h < 8; h++) {
                    r[2 * h] = e[2 * h],
                    r[2 * h + 1] = e[2 * h + 1];
                    for (var f = 0, p = 56, d = 0; f < 8; f++,
                    d = (p -= 8) < 32 ? 1 : 0)
                        r[2 * h] ^= this.C[f][2 * (n[2 * (h - f & 7) + d] >>> p % 32 & 255)],
                        r[2 * h + 1] ^= this.C[f][2 * (n[2 * (h - f & 7) + d] >>> p % 32 & 255) + 1]
                }
                for (var M = 0; M < 16; M++)
                    n[M] = r[M]
            }
            for (var b = 0; b < 16; b++)
                this.state.hash[b] ^= n[b] ^ t[b]
        }
    }, {
        key: "finalize",
        value: function() {
            return this.addPaddingISO7816(this.state.message.length < 32 ? 56 - this.state.message.length | 0 : 120 - this.state.message.length | 0),
            this.addLengthBits(),
            this.process(),
            this.getStateHash()
        }
    }]),
    O);
    function O(t) {
        var e, n, i;
        switch (function(t) {
            if (!(t instanceof O))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        (t = t || {}).type = t.type || "",
        t.rounds = t.rounds || 10,
        n = this,
        (e = !(i = a(O).call(this, t)) || "object" !== r(i) && "function" != typeof i ? function() {
            if (void 0 !== n)
                return n;
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
        }() : i).options.type) {
        case "0":
        case 0:
            e.C = g,
            e.RC = v;
            break;
        case "t":
            e.C = A,
            e.RC = y;
            break;
        default:
            e.C = b,
            e.RC = m
        }
        return e
    }
    e.a = _
}
, function(t, e, n) {
    "use strict";
    function r(t) {
        return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        }
        : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }
        )(t)
    }
    function o(t) {
        return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
            return t.__proto__ || Object.getPrototypeOf(t)
        }
        )(t)
    }
    function i(t, e) {
        return (i = Object.setPrototypeOf || function(t, e) {
            return t.__proto__ = e,
            t
        }
        )(t, e)
    }
    var a = (function(t, e) {
        if ("function" != typeof e && null !== e)
            throw new TypeError("Super expression must either be null or a function");
        t.prototype = Object.create(e && e.prototype, {
            constructor: {
                value: t,
                writable: !0,
                configurable: !0
            }
        }),
        e && i(t, e)
    }(s, n(4).a),
    function(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }(s.prototype, [{
        key: "process",
        value: function() {
            for (; this.state.message.length >= this.blockSizeInBytes; ) {
                this.blockUnits = new Array(this.blockSizeInBytes);
                for (var t = 0; t < this.blockSizeInBytes; t++)
                    this.blockUnits[t] = 0 | this.state.message.charCodeAt(t);
                this.state.message = this.state.message.substr(this.blockSizeInBytes),
                this.processBlock(this.blockUnits)
            }
        }
    }, {
        key: "processBlock",
        value: function(t) {}
    }, {
        key: "getStateHash",
        value: function(t) {
            t = t || this.state.hash.length;
            for (var e = "", n = 0; n < t; n++)
                e += String.fromCharCode(255 & this.state.hash[n]);
            return e
        }
    }]),
    s);
    function s(t) {
        var e, n, i;
        return function(t) {
            if (!(t instanceof s))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        n = this,
        (e = !(i = o(s).call(this, t)) || "object" !== r(i) && "function" != typeof i ? function() {
            if (void 0 !== n)
                return n;
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
        }() : i).unitSize = 1,
        e.blockSizeInBytes = e.blockSize * e.unitSize,
        e.blockUnits = [],
        e
    }
    function c(t) {
        return (c = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        }
        : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }
        )(t)
    }
    function u(t, e, n) {
        return (u = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
            var i = function(t, e) {
                for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = l(t)); )
                    ;
                return t
            }(t, e);
            if (i) {
                var r = Object.getOwnPropertyDescriptor(i, e);
                return r.get ? r.get.call(n) : r.value
            }
        }
        )(t, e, n || t)
    }
    function l(t) {
        return (l = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
            return t.__proto__ || Object.getPrototypeOf(t)
        }
        )(t)
    }
    function h(t, e) {
        return (h = Object.setPrototypeOf || function(t, e) {
            return t.__proto__ = e,
            t
        }
        )(t, e)
    }
    var f = [41, 46, 67, 201, 162, 216, 124, 1, 61, 54, 84, 161, 236, 240, 6, 19, 98, 167, 5, 243, 192, 199, 115, 140, 152, 147, 43, 217, 188, 76, 130, 202, 30, 155, 87, 60, 253, 212, 224, 22, 103, 66, 111, 24, 138, 23, 229, 18, 190, 78, 196, 214, 218, 158, 222, 73, 160, 251, 245, 142, 187, 47, 238, 122, 169, 104, 121, 145, 21, 178, 7, 63, 148, 194, 16, 137, 11, 34, 95, 33, 128, 127, 93, 154, 90, 144, 50, 39, 53, 62, 204, 231, 191, 247, 151, 3, 255, 25, 48, 179, 72, 165, 181, 209, 215, 94, 146, 42, 172, 86, 170, 198, 79, 184, 56, 210, 150, 164, 125, 182, 118, 252, 107, 226, 156, 116, 4, 241, 69, 157, 112, 89, 100, 113, 135, 32, 134, 91, 207, 101, 230, 45, 168, 2, 27, 96, 37, 173, 174, 176, 185, 246, 28, 70, 97, 105, 52, 64, 126, 15, 85, 71, 163, 35, 221, 81, 175, 58, 195, 92, 249, 206, 186, 197, 234, 38, 44, 83, 13, 110, 133, 40, 132, 9, 211, 223, 205, 244, 65, 129, 77, 82, 106, 220, 55, 200, 108, 193, 171, 250, 36, 225, 123, 8, 12, 189, 177, 74, 120, 136, 149, 139, 227, 99, 232, 109, 233, 203, 213, 254, 59, 0, 29, 57, 242, 239, 183, 14, 102, 88, 208, 228, 166, 119, 114, 248, 235, 117, 75, 10, 49, 68, 80, 180, 143, 237, 31, 26, 219, 153, 141, 51, 159, 17, 131, 20]
      , p = (function(t, e) {
        if ("function" != typeof e && null !== e)
            throw new TypeError("Super expression must either be null or a function");
        t.prototype = Object.create(e.prototype, {
            constructor: {
                value: t,
                writable: !0,
                configurable: !0
            }
        }),
        h(t, e)
    }(d, a),
    function(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }(d.prototype, [{
        key: "reset",
        value: function() {
            u(l(d.prototype), "reset", this).call(this),
            this.state.hash = new Array(48),
            this.state.checksum = new Array(16)
        }
    }, {
        key: "processBlock",
        value: function(t) {
            for (var e = 0; e < 16; e++)
                this.state.hash[16 + e] = 0 | t[e],
                this.state.hash[32 + e] = t[e] ^ this.state.hash[e];
            for (var n = 0, i = 0; i < this.options.rounds; i++) {
                for (var r = 0; r < 48; r++)
                    n = this.state.hash[r] ^= f[n];
                n = n + i & 255
            }
            n = 255 & this.state.checksum[15];
            for (var o = 0; o < 16; o++)
                n = this.state.checksum[o] ^= f[t[o] ^ n]
        }
    }, {
        key: "finalize",
        value: function() {
            this.addPaddingPKCS7(16 - (15 & this.state.message.length) | 0),
            this.process();
            for (var t = 0; t < 16; t++)
                this.state.message += String.fromCharCode(this.state.checksum[t]);
            return this.process(),
            this.getStateHash(16)
        }
    }]),
    d);
    function d(t) {
        var e, n, i;
        return function(t) {
            if (!(t instanceof d))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        n = this,
        (e = !(i = l(d).call(this, t)) || "object" !== c(i) && "function" != typeof i ? function() {
            if (void 0 !== n)
                return n;
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
        }() : i).options.rounds = e.options.rounds || 18,
        e
    }
    e.a = p
}
, function(t, e, n) {
    "use strict";
    var i = n(5)
      , u = n(0);
    function r(t) {
        return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        }
        : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }
        )(t)
    }
    function o(t, e, n) {
        return (o = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
            var i = function(t, e) {
                for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = a(t)); )
                    ;
                return t
            }(t, e);
            if (i) {
                var r = Object.getOwnPropertyDescriptor(i, e);
                return r.get ? r.get.call(n) : r.value
            }
        }
        )(t, e, n || t)
    }
    function a(t) {
        return (a = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
            return t.__proto__ || Object.getPrototypeOf(t)
        }
        )(t)
    }
    function s(t, e) {
        return (s = Object.setPrototypeOf || function(t, e) {
            return t.__proto__ = e,
            t
        }
        )(t, e)
    }
    var l = [0, 1518500249, 1859775393, 2400959708]
      , h = [5, 11, 7, 15, 6, 13, 8, 14, 7, 12, 9, 11, 8, 15, 6, 12, 9, 14, 5, 13]
      , f = [10, 17, 25, 30]
      , p = [18, 0, 1, 2, 3, 19, 4, 5, 6, 7, 16, 8, 9, 10, 11, 17, 12, 13, 14, 15, 22, 3, 6, 9, 12, 23, 15, 2, 5, 8, 20, 11, 14, 1, 4, 21, 7, 10, 13, 0, 26, 12, 5, 14, 7, 27, 0, 9, 2, 11, 24, 4, 13, 6, 15, 25, 8, 1, 10, 3, 30, 7, 2, 13, 8, 31, 3, 14, 9, 4, 28, 15, 10, 5, 0, 29, 11, 6, 1, 12]
      , c = (function(t, e) {
        if ("function" != typeof e && null !== e)
            throw new TypeError("Super expression must either be null or a function");
        t.prototype = Object.create(e && e.prototype, {
            constructor: {
                value: t,
                writable: !0,
                configurable: !0
            }
        }),
        e && s(t, e)
    }(d, i.a),
    function(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }(d.prototype, [{
        key: "reset",
        value: function() {
            o(a(d.prototype), "reset", this).call(this),
            this.state.hash = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]
        }
    }, {
        key: "processBlock",
        value: function(t) {
            for (var e = 0 | this.state.hash[0], n = 0 | this.state.hash[1], i = 0 | this.state.hash[2], r = 0 | this.state.hash[3], o = 0 | this.state.hash[4], a = 0; a < 16; a++)
                this.W[a] = 0 | t[a];
            this.W[16] = this.W[0] ^ this.W[1] ^ this.W[2] ^ this.W[3] | 0,
            this.W[17] = this.W[4] ^ this.W[5] ^ this.W[6] ^ this.W[7] | 0,
            this.W[18] = this.W[8] ^ this.W[9] ^ this.W[10] ^ this.W[11] | 0,
            this.W[19] = this.W[12] ^ this.W[13] ^ this.W[14] ^ this.W[15] | 0,
            this.W[20] = this.W[3] ^ this.W[6] ^ this.W[9] ^ this.W[12] | 0,
            this.W[21] = this.W[2] ^ this.W[5] ^ this.W[8] ^ this.W[15] | 0,
            this.W[22] = this.W[1] ^ this.W[4] ^ this.W[11] ^ this.W[14] | 0,
            this.W[23] = this.W[0] ^ this.W[7] ^ this.W[10] ^ this.W[13] | 0,
            this.W[24] = this.W[5] ^ this.W[7] ^ this.W[12] ^ this.W[14] | 0,
            this.W[25] = this.W[0] ^ this.W[2] ^ this.W[9] ^ this.W[11] | 0,
            this.W[26] = this.W[4] ^ this.W[6] ^ this.W[13] ^ this.W[15] | 0,
            this.W[27] = this.W[1] ^ this.W[3] ^ this.W[8] ^ this.W[10] | 0,
            this.W[28] = this.W[2] ^ this.W[7] ^ this.W[8] ^ this.W[13] | 0,
            this.W[29] = this.W[3] ^ this.W[4] ^ this.W[9] ^ this.W[14] | 0,
            this.W[30] = this.W[0] ^ this.W[5] ^ this.W[10] ^ this.W[15] | 0,
            this.W[31] = this.W[1] ^ this.W[6] ^ this.W[11] ^ this.W[12] | 0;
            for (var s = 0; s < this.options.rounds; s++)
                var c = Object(u.a)(e, h[s % 20]) + o + this.W[p[s]] + l[s / 20 >> 0] | 0
                  , c = s < 20 ? c + (n & i | ~n & r) | 0 : !(s < 40) && s < 60 ? c + (i ^ (n | ~r)) | 0 : c + (n ^ i ^ r) | 0
                  , o = r
                  , r = i
                  , i = 0 | Object(u.a)(n, f[s / 20 >> 0])
                  , n = e
                  , e = c;
            this.state.hash[0] = this.state.hash[0] + e | 0,
            this.state.hash[1] = this.state.hash[1] + n | 0,
            this.state.hash[2] = this.state.hash[2] + i | 0,
            this.state.hash[3] = this.state.hash[3] + r | 0,
            this.state.hash[4] = this.state.hash[4] + o | 0
        }
    }, {
        key: "finalize",
        value: function() {
            return this.addPaddingISO7816(this.state.message.length < 56 ? 56 - this.state.message.length | 0 : 120 - this.state.message.length | 0),
            this.addLengthBits(),
            this.process(),
            this.getStateHash()
        }
    }]),
    d);
    function d(t) {
        var e, n, i;
        return function(t) {
            if (!(t instanceof d))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        n = this,
        (e = !(i = a(d).call(this, t)) || "object" !== r(i) && "function" != typeof i ? function() {
            if (void 0 !== n)
                return n;
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
        }() : i).options.rounds = e.options.rounds || 80,
        e.W = new Array(32),
        e
    }
    e.a = c
}
, function(t, e, n) {
    "use strict";
    n.d(e, "a", function() {
        return i
    });
    var o = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
    function i(t) {
        for (var e = "", n = t.length - t.length % 3 | 0, i = 0, r = 0; r < n; r += 3)
            i = t.charCodeAt(r) << 16 | t.charCodeAt(r + 1) << 8 | t.charCodeAt(r + 2),
            e += o.charAt(i >> 18) + o.charAt(i >> 12 & 63) + o.charAt(i >> 6 & 63) + o.charAt(63 & i);
        return t.length - n == 2 ? (i = t.charCodeAt(n) << 16 | t.charCodeAt(1 + n) << 8,
        e += o.charAt(i >> 18) + o.charAt(i >> 12 & 63) + o.charAt(i >> 6 & 63) + "=") : t.length - n == 1 && (i = t.charCodeAt(n) << 16,
        e += o.charAt(i >> 18) + o.charAt(i >> 12 & 63) + "=="),
        e
    }
}
, function(t, e, n) {
    "use strict";
    var i = n(5)
      , c = n(0);
    function r(t) {
        return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        }
        : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }
        )(t)
    }
    function o(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }
    function a(t, e, n) {
        return (a = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
            var i = function(t, e) {
                for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = s(t)); )
                    ;
                return t
            }(t, e);
            if (i) {
                var r = Object.getOwnPropertyDescriptor(i, e);
                return r.get ? r.get.call(n) : r.value
            }
        }
        )(t, e, n || t)
    }
    function s(t) {
        return (s = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
            return t.__proto__ || Object.getPrototypeOf(t)
        }
        )(t)
    }
    function u(t, e) {
        return (u = Object.setPrototypeOf || function(t, e) {
            return t.__proto__ = e,
            t
        }
        )(t, e)
    }
    var l, h, f = [[3, 7, 11, 19], [3, 5, 9, 13], [3, 9, 11, 15]], p = 1518500249, d = 1859775393, M = (function(t, e) {
        if ("function" != typeof e && null !== e)
            throw new TypeError("Super expression must either be null or a function");
        t.prototype = Object.create(e && e.prototype, {
            constructor: {
                value: t,
                writable: !0,
                configurable: !0
            }
        }),
        e && u(t, e)
    }(b, i.a),
    h = [{
        key: "FF",
        value: function(t, e, n) {
            return t & e | ~t & n
        }
    }, {
        key: "GG",
        value: function(t, e, n) {
            return t & e | t & n | e & n
        }
    }, {
        key: "HH",
        value: function(t, e, n) {
            return t ^ e ^ n
        }
    }, {
        key: "CC",
        value: function(t, e, n, i, r, o, a, s) {
            return 0 | Object(c.a)(n + t(i, r, o) + a + e, s)
        }
    }],
    o((l = b).prototype, [{
        key: "reset",
        value: function() {
            a(s(b.prototype), "reset", this).call(this),
            this.state.hash = [1732584193, -271733879, -1732584194, 271733878]
        }
    }, {
        key: "processBlock",
        value: function(t) {
            var e = 0 | this.state.hash[0]
              , n = 0 | this.state.hash[1]
              , i = 0 | this.state.hash[2]
              , r = 0 | this.state.hash[3]
              , e = b.CC(b.FF, 0, e, n, i, r, t[0], f[0][0])
              , r = b.CC(b.FF, 0, r, e, n, i, t[1], f[0][1])
              , i = b.CC(b.FF, 0, i, r, e, n, t[2], f[0][2])
              , n = b.CC(b.FF, 0, n, i, r, e, t[3], f[0][3]);
            e = b.CC(b.FF, 0, e, n, i, r, t[4], f[0][0]),
            r = b.CC(b.FF, 0, r, e, n, i, t[5], f[0][1]),
            i = b.CC(b.FF, 0, i, r, e, n, t[6], f[0][2]),
            n = b.CC(b.FF, 0, n, i, r, e, t[7], f[0][3]),
            e = b.CC(b.FF, 0, e, n, i, r, t[8], f[0][0]),
            r = b.CC(b.FF, 0, r, e, n, i, t[9], f[0][1]),
            i = b.CC(b.FF, 0, i, r, e, n, t[10], f[0][2]),
            n = b.CC(b.FF, 0, n, i, r, e, t[11], f[0][3]),
            e = b.CC(b.FF, 0, e, n, i, r, t[12], f[0][0]),
            r = b.CC(b.FF, 0, r, e, n, i, t[13], f[0][1]),
            i = b.CC(b.FF, 0, i, r, e, n, t[14], f[0][2]),
            n = b.CC(b.FF, 0, n, i, r, e, t[15], f[0][3]),
            e = b.CC(b.GG, p, e, n, i, r, t[0], f[1][0]),
            r = b.CC(b.GG, p, r, e, n, i, t[4], f[1][1]),
            i = b.CC(b.GG, p, i, r, e, n, t[8], f[1][2]),
            n = b.CC(b.GG, p, n, i, r, e, t[12], f[1][3]),
            e = b.CC(b.GG, p, e, n, i, r, t[1], f[1][0]),
            r = b.CC(b.GG, p, r, e, n, i, t[5], f[1][1]),
            i = b.CC(b.GG, p, i, r, e, n, t[9], f[1][2]),
            n = b.CC(b.GG, p, n, i, r, e, t[13], f[1][3]),
            e = b.CC(b.GG, p, e, n, i, r, t[2], f[1][0]),
            r = b.CC(b.GG, p, r, e, n, i, t[6], f[1][1]),
            i = b.CC(b.GG, p, i, r, e, n, t[10], f[1][2]),
            n = b.CC(b.GG, p, n, i, r, e, t[14], f[1][3]),
            e = b.CC(b.GG, p, e, n, i, r, t[3], f[1][0]),
            r = b.CC(b.GG, p, r, e, n, i, t[7], f[1][1]),
            i = b.CC(b.GG, p, i, r, e, n, t[11], f[1][2]),
            n = b.CC(b.GG, p, n, i, r, e, t[15], f[1][3]),
            e = b.CC(b.HH, d, e, n, i, r, t[0], f[2][0]),
            r = b.CC(b.HH, d, r, e, n, i, t[8], f[2][1]),
            i = b.CC(b.HH, d, i, r, e, n, t[4], f[2][2]),
            n = b.CC(b.HH, d, n, i, r, e, t[12], f[2][3]),
            e = b.CC(b.HH, d, e, n, i, r, t[2], f[2][0]),
            r = b.CC(b.HH, d, r, e, n, i, t[10], f[2][1]),
            i = b.CC(b.HH, d, i, r, e, n, t[6], f[2][2]),
            n = b.CC(b.HH, d, n, i, r, e, t[14], f[2][3]),
            e = b.CC(b.HH, d, e, n, i, r, t[1], f[2][0]),
            r = b.CC(b.HH, d, r, e, n, i, t[9], f[2][1]),
            i = b.CC(b.HH, d, i, r, e, n, t[5], f[2][2]),
            n = b.CC(b.HH, d, n, i, r, e, t[13], f[2][3]),
            e = b.CC(b.HH, d, e, n, i, r, t[3], f[2][0]),
            r = b.CC(b.HH, d, r, e, n, i, t[11], f[2][1]),
            i = b.CC(b.HH, d, i, r, e, n, t[7], f[2][2]),
            n = b.CC(b.HH, d, n, i, r, e, t[15], f[2][3]),
            this.state.hash = [this.state.hash[0] + e | 0, this.state.hash[1] + n | 0, this.state.hash[2] + i | 0, this.state.hash[3] + r | 0]
        }
    }, {
        key: "finalize",
        value: function() {
            return this.addPaddingISO7816(this.state.message.length < 56 ? 56 - this.state.message.length | 0 : 120 - this.state.message.length | 0),
            this.addLengthBits(),
            this.process(),
            this.getStateHash()
        }
    }]),
    o(l, h),
    b);
    function b() {
        return function(t) {
            if (!(t instanceof b))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        t = this,
        !(e = s(b).apply(this, arguments)) || "object" !== r(e) && "function" != typeof e ? function() {
            if (void 0 !== t)
                return t;
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
        }() : e;
        var t, e
    }
    e.a = M
}
, function(t, e, n) {
    "use strict";
    var i = n(3)
      , c = n(0);
    function r(t) {
        return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        }
        : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }
        )(t)
    }
    function o(t, e, n) {
        return (o = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, n) {
            var i = function(t, e) {
                for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = a(t)); )
                    ;
                return t
            }(t, e);
            if (i) {
                var r = Object.getOwnPropertyDescriptor(i, e);
                return r.get ? r.get.call(n) : r.value
            }
        }
        )(t, e, n || t)
    }
    function a(t) {
        return (a = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
            return t.__proto__ || Object.getPrototypeOf(t)
        }
        )(t)
    }
    function s(t, e) {
        return (s = Object.setPrototypeOf || function(t, e) {
            return t.__proto__ = e,
            t
        }
        )(t, e)
    }
    var u = [1518500249, 1859775393, 2400959708, 3395469782]
      , l = (function(t, e) {
        if ("function" != typeof e && null !== e)
            throw new TypeError("Super expression must either be null or a function");
        t.prototype = Object.create(e && e.prototype, {
            constructor: {
                value: t,
                writable: !0,
                configurable: !0
            }
        }),
        e && s(t, e)
    }(h, i.a),
    function(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }(h.prototype, [{
        key: "reset",
        value: function() {
            o(a(h.prototype), "reset", this).call(this),
            this.state.hash = [1732584193, -271733879, -1732584194, 271733878, -1009589776]
        }
    }, {
        key: "processBlock",
        value: function(t) {
            for (var e = 0 | this.state.hash[0], n = 0 | this.state.hash[1], i = 0 | this.state.hash[2], r = 0 | this.state.hash[3], o = 0 | this.state.hash[4], a = 0; a < this.options.rounds; a++) {
                this.W[a] = a < 16 ? 0 | t[a] : this.W[a - 3] ^ this.W[a - 8] ^ this.W[a - 14] ^ this.W[a - 16] | 0;
                var s = Object(c.a)(e, 5) + o + this.W[a] + u[a / 20 >> 0] | 0
                  , s = a < 20 ? s + (n & i | ~n & r) | 0 : !(a < 40) && a < 60 ? s + (n & i | n & r | i & r) | 0 : s + (n ^ i ^ r) | 0
                  , o = r
                  , r = i
                  , i = 0 | Object(c.a)(n, 30)
                  , n = e
                  , e = s
            }
            this.state.hash[0] = this.state.hash[0] + e | 0,
            this.state.hash[1] = this.state.hash[1] + n | 0,
            this.state.hash[2] = this.state.hash[2] + i | 0,
            this.state.hash[3] = this.state.hash[3] + r | 0,
            this.state.hash[4] = this.state.hash[4] + o | 0
        }
    }, {
        key: "finalize",
        value: function() {
            return this.addPaddingISO7816(this.state.message.length < 56 ? 56 - this.state.message.length | 0 : 120 - this.state.message.length | 0),
            this.addLengthBits(),
            this.process(),
            this.getStateHash()
        }
    }]),
    h);
    function h(t) {
        var e, n, i;
        return function(t) {
            if (!(t instanceof h))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        n = this,
        (e = !(i = a(h).call(this, t)) || "object" !== r(i) && "function" != typeof i ? function() {
            if (void 0 !== n)
                return n;
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
        }() : i).options.rounds = e.options.rounds || 80,
        e.W = new Array(80),
        e
    }
    e.a = l
}
, function(t, e, n) {
    "use strict";
    function i(t) {
        for (var e = "", n = new Uint8Array(t), i = 0; i < n.length; i++)
            e += String.fromCharCode(n[i]);
        return e
    }
    n.d(e, "a", function() {
        return i
    })
}
, , function(t, e, n) {
    "use strict";
    var i = (function(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }(r.prototype, [{
        key: "update",
        value: function(t) {
            this.hasher.update(t)
        }
    }, {
        key: "finalize",
        value: function() {
            var t = this.hasher.finalize();
            return this.hasher.reset(),
            this.hasher.update(this.oPad),
            this.hasher.update(t),
            this.hasher.finalize()
        }
    }]),
    r);
    function r(t, e) {
        !function(t) {
            if (!(t instanceof r))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        t.length > e.blockSizeInBytes && (e.update(t),
        t = e.finalize(),
        e.reset());
        for (var n = t.length; n < e.blockSizeInBytes; n++)
            t += "\0";
        this.oPad = "";
        for (var i = 0; i < t.length; i++)
            e.update(String.fromCharCode(54 ^ t.charCodeAt(i))),
            this.oPad += String.fromCharCode(92 ^ t.charCodeAt(i));
        this.hasher = e
    }
    e.a = i
}
, , , , , , , , , function(t, e, n) {
    "use strict";
    n.r(e);
    var i = n(14)
      , r = n(13)
      , o = n(16)
      , a = n(10)
      , s = n(8)
      , c = n(17)
      , u = n(11)
      , l = n(7)
      , h = n(6)
      , f = n(9)
      , p = n(12)
      , d = n(1)
      , M = n(18)
      , b = n(2)
      , m = n(15)
      , g = n(20);
    var v = (function(t, e) {
        for (var n = 0; n < e.length; n++) {
            var i = e[n];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(t, i.key, i)
        }
    }(A.prototype, [{
        key: "getHasher",
        value: function(t, e) {
            switch (e = e || {},
            t) {
            case "has160":
                return new i.a(e);
            case "md2":
                return new r.a(e);
            case "md4":
                return new o.a(e);
            case "md5":
                return new a.a(e);
            case "ripemd128":
                return e = Object.assign({}, {
                    length: 128
                }, e),
                new s.a(e);
            case "ripemd":
            case "ripemd160":
                return e = Object.assign({}, {
                    length: 160
                }, e),
                new s.a(e);
            case "ripemd256":
                return e = Object.assign({}, {
                    length: 256
                }, e),
                new s.a(e);
            case "ripemd320":
                return e = Object.assign({}, {
                    length: 320
                }, e),
                new s.a(e);
            case "sha0":
                return new c.a(e);
            case "sha1":
                return new u.a(e);
            case "sha224":
                return e = Object.assign({}, {
                    length: 224
                }, e),
                new l.a(e);
            case "sha256":
                return e = Object.assign({}, {
                    length: 256
                }, e),
                new l.a(e);
            case "sha384":
                return e = Object.assign({}, {
                    length: 384
                }, e),
                new h.a(e);
            case "sha512":
                return e = Object.assign({}, {
                    length: 512
                }, e),
                new h.a(e);
            case "sha512/224":
                return e = Object.assign({}, {
                    length: 224
                }, e),
                new h.a(e);
            case "sha512/256":
                return e = Object.assign({}, {
                    length: 256
                }, e),
                new h.a(e);
            case "snefru":
            case "snefru128":
            case "snefru128/8":
                return e = Object.assign({}, {
                    length: 128
                }, e),
                new f.a(e);
            case "snefru256":
            case "snefru256/8":
                return e = Object.assign({}, {
                    length: 256
                }, e),
                new f.a(e);
            case "snefru128/2":
                return e = Object.assign({}, {
                    length: 128,
                    rounds: 2
                }, e),
                new f.a(e);
            case "snefru256/4":
                return e = Object.assign({}, {
                    length: 256,
                    rounds: 4
                }, e),
                new f.a(e);
            case "whirlpool":
                return new p.a(e);
            case "whirlpool-0":
                return e = Object.assign({}, {
                    type: "0"
                }, e),
                new p.a(e);
            case "whirlpool-t":
                return e = Object.assign({}, {
                    type: "t"
                }, e),
                new p.a(e)
            }
        }
    }, {
        key: "hash",
        value: function(t, e, n) {
            n = n || {};
            var i = this.getHasher(t, n);
            return i.update(Object(d.a)(e)),
            Object(b.a)(i.finalize())
        }
    }, {
        key: "getHmac",
        value: function(t, e) {
            return new g.a(t,e)
        }
    }, {
        key: "hmac",
        value: function(t, e, n) {
            var i = this.getHmac(Object(d.a)(t), n);
            return i.update(Object(d.a)(e)),
            Object(b.a)(i.finalize())
        }
    }]),
    A);
    function A() {
        !function(t) {
            if (!(t instanceof A))
                throw new TypeError("Cannot call a class as a function")
        }(this),
        this.encoder = {},
        this.encoder.fromUtf = d.a,
        this.encoder.fromArrayBuffer = M.a,
        this.encoder.toHex = b.a,
        this.encoder.toBase64 = m.a
    }
    v = new v,
    e.default = v
}
]).default;