All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.resources.bower_components.jqwidgets.scripts.knockout-2.2.1.js Maven / Gradle / Ivy

// Knockout JavaScript library v2.2.1
// (c) Steven Sanderson - http://knockoutjs.com/
// License: MIT (http://www.opensource.org/licenses/mit-license.php)

(function () {
    function j(w) {
        throw w;
    }
    var m = !0, p = null, r = !1;
    function u(w) {
        return function () {
            return w
        }
    }

    var x = window, y = document, ga = navigator, F = window.jQuery, I = void 0;

    function L(w) {
        function ha(a, d, c, e, f) {
            var g = [];
            a = b.j(function () {
                var a = d(c, f) || [];
                0 < g.length && (b.a.Ya(M(g), a), e && b.r.K(e, p, [c, a, f]));
                g.splice(0, g.length);
                b.a.P(g, a)
            }, p, {
                W: a, Ka: function () {
                    return 0 == g.length || !b.a.X(g[0])
                }
            });
            return {M: g, j: a.pa() ? a : I}
        }

        function M(a) {
            for (; a.length && !b.a.X(a[0]);) a.splice(0, 1);
            if (1 < a.length) {
                for (var d = a[0], c = a[a.length - 1], e = [d]; d !== c;) {
                    d = d.nextSibling;
                    if (!d) return;
                    e.push(d)
                }
                Array.prototype.splice.apply(a, [0, a.length].concat(e))
            }
            return a
        }

        function S(a, b, c, e, f) {
            var g = Math.min,
                h = Math.max, k = [], l, n = a.length, q, s = b.length, v = s - n || 1, G = n + s + 1, J, A, z;
            for (l = 0; l <= n; l++) {
                A = J;
                k.push(J = []);
                z = g(s, l + v);
                for (q = h(0, l - 1); q <= z; q++) J[q] = q ? l ? a[l - 1] === b[q - 1] ? A[q - 1] : g(A[q] || G, J[q - 1] || G) + 1 : q + 1 : l + 1
            }
            g = [];
            h = [];
            v = [];
            l = n;
            for (q = s; l || q;) s = k[l][q] - 1, q && s === k[l][q - 1] ? h.push(g[g.length] = {status: c, value: b[--q], index: q}) : l && s === k[l - 1][q] ? v.push(g[g.length] = {status: e, value: a[--l], index: l}) : (g.push({status: "retained", value: b[--q]}), --l);
            if (h.length && v.length) {
                a = 10 * n;
                var t;
                for (b = c = 0; (f || b < a) && (t = h[c]); c++) {
                    for (e =
                             0; k = v[e]; e++) if (t.value === k.value) {
                        t.moved = k.index;
                        k.moved = t.index;
                        v.splice(e, 1);
                        b = e = 0;
                        break
                    }
                    b += e
                }
            }
            return g.reverse()
        }

        function T(a, d, c, e, f) {
            f = f || {};
            var g = a && N(a), g = g && g.ownerDocument, h = f.templateEngine || O;
            b.za.vb(c, h, g);
            c = h.renderTemplate(c, e, f, g);
            ("number" != typeof c.length || 0 < c.length && "number" != typeof c[0].nodeType) && j(Error("Template engine must return an array of DOM nodes"));
            g = r;
            switch (d) {
                case "replaceChildren":
                    b.e.N(a, c);
                    g = m;
                    break;
                case "replaceNode":
                    b.a.Ya(a, c);
                    g = m;
                    break;
                case "ignoreTargetNode":
                    break;
                default:
                    j(Error("Unknown renderMode: " + d))
            }
            g && (U(c, e), f.afterRender && b.r.K(f.afterRender, p, [c, e.$data]));
            return c
        }

        function N(a) {
            return a.nodeType ? a : 0 < a.length ? a[0] : p
        }

        function U(a, d) {
            if (a.length) {
                var c = a[0], e = a[a.length - 1];
                V(c, e, function (a) {
                    b.Da(d, a)
                });
                V(c, e, function (a) {
                    b.s.ib(a, [d])
                })
            }
        }

        function V(a, d, c) {
            var e;
            for (d = b.e.nextSibling(d); a && (e = a) !== d;) a = b.e.nextSibling(e), (1 === e.nodeType || 8 === e.nodeType) && c(e)
        }

        function W(a, d, c) {
            a = b.g.aa(a);
            for (var e = b.g.Q, f = 0; f < a.length; f++) {
                var g = a[f].key;
                if (e.hasOwnProperty(g)) {
                    var h =
                        e[g];
                    "function" === typeof h ? (g = h(a[f].value)) && j(Error(g)) : h || j(Error("This template engine does not support the '" + g + "' binding within its templates"))
                }
            }
            a = "ko.__tr_ambtns(function($context,$element){return(function(){return{ " + b.g.ba(a) + " } })()})";
            return c.createJavaScriptEvaluatorBlock(a) + d
        }

        function X(a, d, c, e) {
            function f(a) {
                return function () {
                    return k[a]
                }
            }

            function g() {
                return k
            }

            var h = 0, k, l;
            b.j(function () {
                var n = c && c instanceof b.z ? c : new b.z(b.a.d(c)), q = n.$data;
                e && b.eb(a, n);
                if (k = ("function" == typeof d ?
                    d(n, a) : d) || b.J.instance.getBindings(a, n)) {
                    if (0 === h) {
                        h = 1;
                        for (var s in k) {
                            var v = b.c[s];
                            v && 8 === a.nodeType && !b.e.I[s] && j(Error("The binding '" + s + "' cannot be used with virtual elements"));
                            if (v && "function" == typeof v.init && (v = (0, v.init)(a, f(s), g, q, n)) && v.controlsDescendantBindings) l !== I && j(Error("Multiple bindings (" + l + " and " + s + ") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.")), l = s
                        }
                        h = 2
                    }
                    if (2 === h) for (s in k) (v = b.c[s]) && "function" ==
                    typeof v.update && (0, v.update)(a, f(s), g, q, n)
                }
            }, p, {W: a});
            return {Nb: l === I}
        }

        function Y(a, d, c) {
            var e = m, f = 1 === d.nodeType;
            f && b.e.Ta(d);
            if (f && c || b.J.instance.nodeHasBindings(d)) e = X(d, p, a, c).Nb;
            e && Z(a, d, !f)
        }

        function Z(a, d, c) {
            for (var e = b.e.firstChild(d); d = e;) e = b.e.nextSibling(d), Y(a, d, c)
        }

        function $(a, b) {
            var c = aa(a, b);
            return c ? 0 < c.length ? c[c.length - 1].nextSibling : a.nextSibling : p
        }

        function aa(a, b) {
            for (var c = a, e = 1, f = []; c = c.nextSibling;) {
                if (H(c) && (e--, 0 === e)) return f;
                f.push(c);
                B(c) && e++
            }
            b || j(Error("Cannot find closing comment tag to match: " +
                a.nodeValue));
            return p
        }

        function H(a) {
            return 8 == a.nodeType && (K ? a.text : a.nodeValue).match(ia)
        }

        function B(a) {
            return 8 == a.nodeType && (K ? a.text : a.nodeValue).match(ja)
        }

        function P(a, b) {
            for (var c = p; a != c;) c = a, a = a.replace(ka, function (a, c) {
                return b[c]
            });
            return a
        }

        function la() {
            var a = [], d = [];
            this.save = function (c, e) {
                var f = b.a.i(a, c);
                0 <= f ? d[f] = e : (a.push(c), d.push(e))
            };
            this.get = function (c) {
                c = b.a.i(a, c);
                return 0 <= c ? d[c] : I
            }
        }

        function ba(a, b, c) {
            function e(e) {
                var g = b(a[e]);
                switch (typeof g) {
                    case "boolean":
                    case "number":
                    case "string":
                    case "function":
                        f[e] =
                            g;
                        break;
                    case "object":
                    case "undefined":
                        var h = c.get(g);
                        f[e] = h !== I ? h : ba(g, b, c)
                }
            }

            c = c || new la;
            a = b(a);
            if (!("object" == typeof a && a !== p && a !== I && !(a instanceof Date))) return a;
            var f = a instanceof Array ? [] : {};
            c.save(a, f);
            var g = a;
            if (g instanceof Array) {
                for (var h = 0; h < g.length; h++) e(h);
                "function" == typeof g.toJSON && e("toJSON")
            } else for (h in g) e(h);
            return f
        }

        function ca(a, d) {
            if (a) if (8 == a.nodeType) {
                var c = b.s.Ua(a.nodeValue);
                c != p && d.push({sb: a, Fb: c})
            } else if (1 == a.nodeType) for (var c = 0, e = a.childNodes, f = e.length; c < f; c++) ca(e[c],
                d)
        }

        function Q(a, d, c, e) {
            b.c[a] = {
                init: function (a) {
                    b.a.f.set(a, da, {});
                    return {controlsDescendantBindings: m}
                }, update: function (a, g, h, k, l) {
                    h = b.a.f.get(a, da);
                    g = b.a.d(g());
                    k = !c !== !g;
                    var n = !h.Za;
                    if (n || d || k !== h.qb) n && (h.Za = b.a.Ia(b.e.childNodes(a), m)), k ? (n || b.e.N(a, b.a.Ia(h.Za)), b.Ea(e ? e(l, g) : l, a)) : b.e.Y(a), h.qb = k
                }
            };
            b.g.Q[a] = r;
            b.e.I[a] = m
        }

        function ea(a, d, c) {
            c && d !== b.k.q(a) && b.k.T(a, d);
            d !== b.k.q(a) && b.r.K(b.a.Ba, p, [a, "change"])
        }

        var b = "undefined" !== typeof w ? w : {};
        b.b = function (a, d) {
            for (var c = a.split("."), e = b, f = 0; f <
            c.length - 1; f++) e = e[c[f]];
            e[c[c.length - 1]] = d
        };
        b.p = function (a, b, c) {
            a[b] = c
        };
        b.version = "2.2.1";
        b.b("version", b.version);
        b.a = new function () {
            function a(a, d) {
                if ("input" !== b.a.u(a) || !a.type || "click" != d.toLowerCase()) return r;
                var c = a.type;
                return "checkbox" == c || "radio" == c
            }

            var d = /^(\s|\u00A0)+|(\s|\u00A0)+$/g, c = {}, e = {};
            c[/Firefox\/2/i.test(ga.userAgent) ? "KeyboardEvent" : "UIEvents"] = ["keyup", "keydown", "keypress"];
            c.MouseEvents = "click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" ");
            for (var f in c) {
                var g = c[f];
                if (g.length) for (var h = 0, k = g.length; h < k; h++) e[g[h]] = f
            }
            var l = {propertychange: m}, n, c = 3;
            f = y.createElement("div");
            for (g = f.getElementsByTagName("i"); f.innerHTML = "\x3c!--[if gt IE " + ++c + "]> b.a.i(d, a[c]) && d.push(a[c]);
                    return d
                }, V: function (a, b) {
                    a = a || [];
                    for (var d = [], c = 0, e = a.length; c < e; c++) d.push(b(a[c]));
                    return d
                }, fa: function (a, b) {
                    a = a || [];
                    for (var d = [], c = 0, e = a.length; c < e; c++) b(a[c]) && d.push(a[c]);
                    return d
                }, P: function (a, b) {
                    if (b instanceof Array) a.push.apply(a,
                        b); else for (var d = 0, c = b.length; d < c; d++) a.push(b[d]);
                    return a
                }, extend: function (a, b) {
                    if (b) for (var d in b) b.hasOwnProperty(d) && (a[d] = b[d]);
                    return a
                }, ka: function (a) {
                    for (; a.firstChild;) b.removeNode(a.firstChild)
                }, Hb: function (a) {
                    a = b.a.L(a);
                    for (var d = y.createElement("div"), c = 0, e = a.length; c < e; c++) d.appendChild(b.A(a[c]));
                    return d
                }, Ia: function (a, d) {
                    for (var c = 0, e = a.length, g = []; c < e; c++) {
                        var f = a[c].cloneNode(m);
                        g.push(d ? b.A(f) : f)
                    }
                    return g
                }, N: function (a, d) {
                    b.a.ka(a);
                    if (d) for (var c = 0, e = d.length; c < e; c++) a.appendChild(d[c])
                },
                Ya: function (a, d) {
                    var c = a.nodeType ? [a] : a;
                    if (0 < c.length) {
                        for (var e = c[0], g = e.parentNode, f = 0, h = d.length; f < h; f++) g.insertBefore(d[f], e);
                        f = 0;
                        for (h = c.length; f < h; f++) b.removeNode(c[f])
                    }
                }, bb: function (a, b) {
                    7 > n ? a.setAttribute("selected", b) : a.selected = b
                }, D: function (a) {
                    return (a || "").replace(d, "")
                }, Rb: function (a, d) {
                    for (var c = [], e = (a || "").split(d), f = 0, g = e.length; f < g; f++) {
                        var h = b.a.D(e[f]);
                        "" !== h && c.push(h)
                    }
                    return c
                }, Ob: function (a, b) {
                    a = a || "";
                    return b.length > a.length ? r : a.substring(0, b.length) === b
                }, tb: function (a, b) {
                    if (b.compareDocumentPosition) return 16 ==
                        (b.compareDocumentPosition(a) & 16);
                    for (; a != p;) {
                        if (a == b) return m;
                        a = a.parentNode
                    }
                    return r
                }, X: function (a) {
                    return b.a.tb(a, a.ownerDocument)
                }, u: function (a) {
                    return a && a.tagName && a.tagName.toLowerCase()
                }, n: function (b, d, c) {
                    var e = n && l[d];
                    if (!e && "undefined" != typeof F) {
                        if (a(b, d)) {
                            var f = c;
                            c = function (a, b) {
                                var d = this.checked;
                                b && (this.checked = b.nb !== m);
                                f.call(this, a);
                                this.checked = d
                            }
                        }
                        F(b).bind(d, c)
                    } else !e && "function" == typeof b.addEventListener ? b.addEventListener(d, c, r) : "undefined" != typeof b.attachEvent ? b.attachEvent("on" +
                        d, function (a) {
                        c.call(b, a)
                    }) : j(Error("Browser doesn't support addEventListener or attachEvent"))
                }, Ba: function (b, d) {
                    (!b || !b.nodeType) && j(Error("element must be a DOM node when calling triggerEvent"));
                    if ("undefined" != typeof F) {
                        var c = [];
                        a(b, d) && c.push({nb: b.checked});
                        F(b).trigger(d, c)
                    } else "function" == typeof y.createEvent ? "function" == typeof b.dispatchEvent ? (c = y.createEvent(e[d] || "HTMLEvents"), c.initEvent(d, m, m, x, 0, 0, 0, 0, 0, r, r, r, r, 0, b), b.dispatchEvent(c)) : j(Error("The supplied element doesn't support dispatchEvent")) :
                        "undefined" != typeof b.fireEvent ? (a(b, d) && (b.checked = b.checked !== m), b.fireEvent("on" + d)) : j(Error("Browser doesn't support triggering events"))
                }, d: function (a) {
                    return b.$(a) ? a() : a
                }, ua: function (a) {
                    return b.$(a) ? a.t() : a
                }, da: function (a, d, c) {
                    if (d) {
                        var e = /[\w-]+/g, f = a.className.match(e) || [];
                        b.a.o(d.match(e), function (a) {
                            var d = b.a.i(f, a);
                            0 <= d ? c || f.splice(d, 1) : c && f.push(a)
                        });
                        a.className = f.join(" ")
                    }
                }, cb: function (a, d) {
                    var c = b.a.d(d);
                    if (c === p || c === I) c = "";
                    if (3 === a.nodeType) a.data = c; else {
                        var e = b.e.firstChild(a);
                        !e || 3 != e.nodeType || b.e.nextSibling(e) ? b.e.N(a, [y.createTextNode(c)]) : e.data = c;
                        b.a.wb(a)
                    }
                }, ab: function (a, b) {
                    a.name = b;
                    if (7 >= n) try {
                        a.mergeAttributes(y.createElement(""), r)
                    } catch (d) {
                    }
                }, wb: function (a) {
                    9 <= n && (a = 1 == a.nodeType ? a : a.parentNode, a.style && (a.style.zoom = a.style.zoom))
                }, ub: function (a) {
                    if (9 <= n) {
                        var b = a.style.width;
                        a.style.width = 0;
                        a.style.width = b
                    }
                }, Lb: function (a, d) {
                    a = b.a.d(a);
                    d = b.a.d(d);
                    for (var c = [], e = a; e <= d; e++) c.push(e);
                    return c
                }, L: function (a) {
                    for (var b = [], d = 0, c = a.length; d <
                    c; d++) b.push(a[d]);
                    return b
                }, Pb: 6 === n, Qb: 7 === n, Z: n, Oa: function (a, d) {
                    for (var c = b.a.L(a.getElementsByTagName("input")).concat(b.a.L(a.getElementsByTagName("textarea"))), e = "string" == typeof d ? function (a) {
                        return a.name === d
                    } : function (a) {
                        return d.test(a.name)
                    }, f = [], g = c.length - 1; 0 <= g; g--) e(c[g]) && f.push(c[g]);
                    return f
                }, Ib: function (a) {
                    return "string" == typeof a && (a = b.a.D(a)) ? x.JSON && x.JSON.parse ? x.JSON.parse(a) : (new Function("return " + a))() : p
                }, xa: function (a, d, c) {
                    ("undefined" == typeof JSON || "undefined" == typeof JSON.stringify) &&
                    j(Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js"));
                    return JSON.stringify(b.a.d(a), d, c)
                }, Jb: function (a, d, c) {
                    c = c || {};
                    var e = c.params || {}, f = c.includeFields || this.Na, g = a;
                    if ("object" == typeof a && "form" === b.a.u(a)) for (var g = a.action, h = f.length - 1; 0 <= h; h--) for (var k = b.a.Oa(a, f[h]), l = k.length - 1; 0 <= l; l--) e[k[l].name] = k[l].value;
                    d = b.a.d(d);
                    var n = y.createElement("form");
                    n.style.display = "none";
                    n.action = g;
                    n.method = "post";
                    for (var w in d) a = y.createElement("input"), a.name = w, a.value = b.a.xa(b.a.d(d[w])), n.appendChild(a);
                    for (w in e) a = y.createElement("input"), a.name = w, a.value = e[w], n.appendChild(a);
                    y.body.appendChild(n);
                    c.submitter ? c.submitter(n) : n.submit();
                    setTimeout(function () {
                        n.parentNode.removeChild(n)
                    }, 0)
                }
            }
        };
        b.b("utils", b.a);
        b.b("utils.arrayForEach", b.a.o);
        b.b("utils.arrayFirst", b.a.lb);
        b.b("utils.arrayFilter", b.a.fa);
        b.b("utils.arrayGetDistinctValues", b.a.Ga);
        b.b("utils.arrayIndexOf",
            b.a.i);
        b.b("utils.arrayMap", b.a.V);
        b.b("utils.arrayPushAll", b.a.P);
        b.b("utils.arrayRemoveItem", b.a.ga);
        b.b("utils.extend", b.a.extend);
        b.b("utils.fieldsIncludedWithJsonPost", b.a.Na);
        b.b("utils.getFormFields", b.a.Oa);
        b.b("utils.peekObservable", b.a.ua);
        b.b("utils.postJson", b.a.Jb);
        b.b("utils.parseJson", b.a.Ib);
        b.b("utils.registerEventHandler", b.a.n);
        b.b("utils.stringifyJson", b.a.xa);
        b.b("utils.range", b.a.Lb);
        b.b("utils.toggleDomNodeCssClass", b.a.da);
        b.b("utils.triggerEvent", b.a.Ba);
        b.b("utils.unwrapObservable",
            b.a.d);
        Function.prototype.bind || (Function.prototype.bind = function (a) {
            var b = this, c = Array.prototype.slice.call(arguments);
            a = c.shift();
            return function () {
                return b.apply(a, c.concat(Array.prototype.slice.call(arguments)))
            }
        });
        b.a.f = new function () {
            var a = 0, d = "__ko__" + (new Date).getTime(), c = {};
            return {
                get: function (a, d) {
                    var c = b.a.f.la(a, r);
                    return c === I ? I : c[d]
                }, set: function (a, d, c) {
                    c === I && b.a.f.la(a, r) === I || (b.a.f.la(a, m)[d] = c)
                }, la: function (b, f) {
                    var g = b[d];
                    if (!g || !("null" !== g && c[g])) {
                        if (!f) return I;
                        g = b[d] = "ko" +
                            a++;
                        c[g] = {}
                    }
                    return c[g]
                }, clear: function (a) {
                    var b = a[d];
                    return b ? (delete c[b], a[d] = p, m) : r
                }
            }
        };
        b.b("utils.domData", b.a.f);
        b.b("utils.domData.clear", b.a.f.clear);
        b.a.F = new function () {
            function a(a, d) {
                var e = b.a.f.get(a, c);
                e === I && d && (e = [], b.a.f.set(a, c, e));
                return e
            }

            function d(c) {
                var e = a(c, r);
                if (e) for (var e = e.slice(0), k = 0; k < e.length; k++) e[k](c);
                b.a.f.clear(c);
                "function" == typeof F && "function" == typeof F.cleanData && F.cleanData([c]);
                if (f[c.nodeType]) for (e = c.firstChild; c = e;) e = c.nextSibling, 8 === c.nodeType && d(c)
            }

            var c = "__ko_domNodeDisposal__" + (new Date).getTime(), e = {1: m, 8: m, 9: m}, f = {1: m, 9: m};
            return {
                Ca: function (b, d) {
                    "function" != typeof d && j(Error("Callback must be a function"));
                    a(b, m).push(d)
                }, Xa: function (d, e) {
                    var f = a(d, r);
                    f && (b.a.ga(f, e), 0 == f.length && b.a.f.set(d, c, I))
                }, A: function (a) {
                    if (e[a.nodeType] && (d(a), f[a.nodeType])) {
                        var c = [];
                        b.a.P(c, a.getElementsByTagName("*"));
                        for (var k = 0, l = c.length; k < l; k++) d(c[k])
                    }
                    return a
                }, removeNode: function (a) {
                    b.A(a);
                    a.parentNode && a.parentNode.removeChild(a)
                }
            }
        };
        b.A = b.a.F.A;
        b.removeNode =
            b.a.F.removeNode;
        b.b("cleanNode", b.A);
        b.b("removeNode", b.removeNode);
        b.b("utils.domNodeDisposal", b.a.F);
        b.b("utils.domNodeDisposal.addDisposeCallback", b.a.F.Ca);
        b.b("utils.domNodeDisposal.removeDisposeCallback", b.a.F.Xa);
        b.a.ta = function (a) {
            var d;
            if ("undefined" != typeof F) if (F.parseHTML) d = F.parseHTML(a); else {
                if ((d = F.clean([a])) && d[0]) {
                    for (a = d[0]; a.parentNode && 11 !== a.parentNode.nodeType;) a = a.parentNode;
                    a.parentNode && a.parentNode.removeChild(a)
                }
            } else {
                var c = b.a.D(a).toLowerCase();
                d = y.createElement("div");
                c = c.match(/^<(thead|tbody|tfoot)/) && [1, "", "
"] || !c.indexOf("", ""] || (!c.indexOf("", ""] || [0, "", ""]; a = "ignored
" + c[1] + a + c[2] + "
"; for ("function" == typeof x.innerShiv ? d.appendChild(x.innerShiv(a)) : d.innerHTML = a; c[0]--;) d = d.lastChild; d = b.a.L(d.lastChild.childNodes) } return d }; b.a.ca = function (a, d) { b.a.ka(a); d = b.a.d(d); if (d !== p && d !== I) if ("string" != typeof d && (d = d.toString()), "undefined" != typeof F) F(a).html(d); else for (var c = b.a.ta(d), e = 0; e < c.length; e++) a.appendChild(c[e]) }; b.b("utils.parseHtmlFragment", b.a.ta); b.b("utils.setHtml", b.a.ca); var R = {}; b.s = { ra: function (a) { "function" != typeof a && j(Error("You can only pass a function to ko.memoization.memoize()")); var b = (4294967296 * (1 + Math.random()) | 0).toString(16).substring(1) + (4294967296 * (1 + Math.random()) | 0).toString(16).substring(1); R[b] = a; return "\x3c!--[ko_memo:" + b + "]--\x3e" }, hb: function (a, b) { var c = R[a]; c === I && j(Error("Couldn't find any memo with ID " + a + ". Perhaps it's already been unmemoized.")); try { return c.apply(p, b || []), m } finally { delete R[a] } }, ib: function (a, d) { var c = []; ca(a, c); for (var e = 0, f = c.length; e < f; e++) { var g = c[e].sb, h = [g]; d && b.a.P(h, d); b.s.hb(c[e].Fb, h); g.nodeValue = ""; g.parentNode && g.parentNode.removeChild(g) } }, Ua: function (a) { return (a = a.match(/^\[ko_memo\:(.*?)\]$/)) ? a[1] : p } }; b.b("memoization", b.s); b.b("memoization.memoize", b.s.ra); b.b("memoization.unmemoize", b.s.hb); b.b("memoization.parseMemoText", b.s.Ua); b.b("memoization.unmemoizeDomNodeAndDescendants", b.s.ib); b.Ma = { throttle: function (a, d) { a.throttleEvaluation = d; var c = p; return b.j({ read: a, write: function (b) { clearTimeout(c); c = setTimeout(function () { a(b) }, d) } }) }, notify: function (a, d) { a.equalityComparer = "always" == d ? u(r) : b.m.fn.equalityComparer; return a } }; b.b("extenders", b.Ma); b.fb = function (a, d, c) { this.target = a; this.ha = d; this.rb = c; b.p(this, "dispose", this.B) }; b.fb.prototype.B = function () { this.Cb = m; this.rb() }; b.S = function () { this.w = {}; b.a.extend(this, b.S.fn); b.p(this, "subscribe", this.ya); b.p(this, "extend", this.extend); b.p(this, "getSubscriptionsCount", this.yb) }; b.S.fn = { ya: function (a, d, c) { c = c || "change"; var e = new b.fb(this, d ? a.bind(d) : a, function () { b.a.ga(this.w[c], e) }.bind(this)); this.w[c] || (this.w[c] = []); this.w[c].push(e); return e }, notifySubscribers: function (a, d) { d = d || "change"; this.w[d] && b.r.K(function () { b.a.o(this.w[d].slice(0), function (b) { b && b.Cb !== m && b.ha(a) }) }, this) }, yb: function () { var a = 0, b; for (b in this.w) this.w.hasOwnProperty(b) && (a += this.w[b].length); return a }, extend: function (a) { var d = this; if (a) for (var c in a) { var e = b.Ma[c]; "function" == typeof e && (d = e(d, a[c])) } return d } }; b.Qa = function (a) { return "function" == typeof a.ya && "function" == typeof a.notifySubscribers }; b.b("subscribable", b.S); b.b("isSubscribable", b.Qa); var C = []; b.r = { mb: function (a) { C.push({ha: a, La: []}) }, end: function () { C.pop() }, Wa: function (a) { b.Qa(a) || j(Error("Only subscribable things can act as dependencies")); if (0 < C.length) { var d = C[C.length - 1]; d && !(0 <= b.a.i(d.La, a)) && (d.La.push(a), d.ha(a)) } }, K: function (a, b, c) { try { return C.push(p), a.apply(b, c || []) } finally { C.pop() } } }; var ma = {undefined: m, "boolean": m, number: m, string: m}; b.m = function (a) { function d() { if (0 < arguments.length) { if (!d.equalityComparer || !d.equalityComparer(c, arguments[0])) d.H(), c = arguments[0], d.G(); return this } b.r.Wa(d); return c } var c = a; b.S.call(d); d.t = function () { return c }; d.G = function () { d.notifySubscribers(c) }; d.H = function () { d.notifySubscribers(c, "beforeChange") }; b.a.extend(d, b.m.fn); b.p(d, "peek", d.t); b.p(d, "valueHasMutated", d.G); b.p(d, "valueWillMutate", d.H); return d }; b.m.fn = { equalityComparer: function (a, b) { return a === p || typeof a in ma ? a === b : r } }; var E = b.m.Kb = "__ko_proto__"; b.m.fn[E] = b.m; b.ma = function (a, d) { return a === p || a === I || a[E] === I ? r : a[E] === d ? m : b.ma(a[E], d) }; b.$ = function (a) { return b.ma(a, b.m) }; b.Ra = function (a) { return "function" == typeof a && a[E] === b.m || "function" == typeof a && a[E] === b.j && a.zb ? m : r }; b.b("observable", b.m); b.b("isObservable", b.$); b.b("isWriteableObservable", b.Ra); b.R = function (a) { 0 == arguments.length && (a = []); a !== p && (a !== I && !("length" in a)) && j(Error("The argument passed when initializing an observable array must be an array, or null, or undefined.")); var d = b.m(a); b.a.extend(d, b.R.fn); return d }; b.R.fn = { remove: function (a) { for (var b = this.t(), c = [], e = "function" == typeof a ? a : function (b) { return b === a }, f = 0; f < b.length; f++) { var g = b[f]; e(g) && (0 === c.length && this.H(), c.push(g), b.splice(f, 1), f--) } c.length && this.G(); return c }, removeAll: function (a) { if (a === I) { var d = this.t(), c = d.slice(0); this.H(); d.splice(0, d.length); this.G(); return c } return !a ? [] : this.remove(function (d) { return 0 <= b.a.i(a, d) }) }, destroy: function (a) { var b = this.t(), c = "function" == typeof a ? a : function (b) { return b === a }; this.H(); for (var e = b.length - 1; 0 <= e; e--) c(b[e]) && (b[e]._destroy = m); this.G() }, destroyAll: function (a) { return a === I ? this.destroy(u(m)) : !a ? [] : this.destroy(function (d) { return 0 <= b.a.i(a, d) }) }, indexOf: function (a) { var d = this(); return b.a.i(d, a) }, replace: function (a, b) { var c = this.indexOf(a); 0 <= c && (this.H(), this.t()[c] = b, this.G()) } }; b.a.o("pop push reverse shift sort splice unshift".split(" "), function (a) { b.R.fn[a] = function () { var b = this.t(); this.H(); b = b[a].apply(b, arguments); this.G(); return b } }); b.a.o(["slice"], function (a) { b.R.fn[a] = function () { var b = this(); return b[a].apply(b, arguments) } }); b.b("observableArray", b.R); b.j = function (a, d, c) { function e() { b.a.o(z, function (a) { a.B() }); z = [] } function f() { var a = h.throttleEvaluation; a && 0 <= a ? (clearTimeout(t), t = setTimeout(g, a)) : g() } function g() { if (!q) if (n && w()) A(); else { q = m; try { var a = b.a.V(z, function (a) { return a.target }); b.r.mb(function (c) { var d; 0 <= (d = b.a.i(a, c)) ? a[d] = I : z.push(c.ya(f)) }); for (var c = s.call(d), e = a.length - 1; 0 <= e; e--) a[e] && z.splice(e, 1)[0].B(); n = m; h.notifySubscribers(l, "beforeChange"); l = c } finally { b.r.end() } h.notifySubscribers(l); q = r; z.length || A() } } function h() { if (0 < arguments.length) return "function" === typeof v ? v.apply(d, arguments) : j(Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.")), this; n || g(); b.r.Wa(h); return l } function k() { return !n || 0 < z.length } var l, n = r, q = r, s = a; s && "object" == typeof s ? (c = s, s = c.read) : (c = c || {}, s || (s = c.read)); "function" != typeof s && j(Error("Pass a function that returns the value of the ko.computed")); var v = c.write, G = c.disposeWhenNodeIsRemoved || c.W || p, w = c.disposeWhen || c.Ka || u(r), A = e, z = [], t = p; d || (d = c.owner); h.t = function () { n || g(); return l }; h.xb = function () { return z.length }; h.zb = "function" === typeof c.write; h.B = function () { A() }; h.pa = k; b.S.call(h); b.a.extend(h, b.j.fn); b.p(h, "peek", h.t); b.p(h, "dispose", h.B); b.p(h, "isActive", h.pa); b.p(h, "getDependenciesCount", h.xb); c.deferEvaluation !== m && g(); if (G && k()) { A = function () { b.a.F.Xa(G, arguments.callee); e() }; b.a.F.Ca(G, A); var D = w, w = function () { return !b.a.X(G) || D() } } return h }; b.Bb = function (a) { return b.ma(a, b.j) }; w = b.m.Kb; b.j[w] = b.m; b.j.fn = {}; b.j.fn[w] = b.j; b.b("dependentObservable", b.j); b.b("computed", b.j); b.b("isComputed", b.Bb); b.gb = function (a) { 0 == arguments.length && j(Error("When calling ko.toJS, pass the object you want to convert.")); return ba(a, function (a) { for (var c = 0; b.$(a) && 10 > c; c++) a = a(); return a }) }; b.toJSON = function (a, d, c) { a = b.gb(a); return b.a.xa(a, d, c) }; b.b("toJS", b.gb); b.b("toJSON", b.toJSON); b.k = { q: function (a) { switch (b.a.u(a)) { case "option": return a.__ko__hasDomDataOptionValue__ === m ? b.a.f.get(a, b.c.options.sa) : 7 >= b.a.Z ? a.getAttributeNode("value").specified ? a.value : a.text : a.value; case "select": return 0 <= a.selectedIndex ? b.k.q(a.options[a.selectedIndex]) : I; default: return a.value } }, T: function (a, d) { switch (b.a.u(a)) { case "option": switch (typeof d) { case "string": b.a.f.set(a, b.c.options.sa, I); "__ko__hasDomDataOptionValue__" in a && delete a.__ko__hasDomDataOptionValue__; a.value = d; break; default: b.a.f.set(a, b.c.options.sa, d), a.__ko__hasDomDataOptionValue__ = m, a.value = "number" === typeof d ? d : "" } break; case "select": for (var c = a.options.length - 1; 0 <= c; c--) if (b.k.q(a.options[c]) == d) { a.selectedIndex = c; break } break; default: if (d === p || d === I) d = ""; a.value = d } } }; b.b("selectExtensions", b.k); b.b("selectExtensions.readValue", b.k.q); b.b("selectExtensions.writeValue", b.k.T); var ka = /\@ko_token_(\d+)\@/g, na = ["true", "false"], oa = /^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i; b.g = { Q: [], aa: function (a) { var d = b.a.D(a); if (3 > d.length) return []; "{" === d.charAt(0) && (d = d.substring(1, d.length - 1)); a = []; for (var c = p, e, f = 0; f < d.length; f++) { var g = d.charAt(f); if (c === p) switch (g) { case '"': case "'": case "/": c = f, e = g } else if (g == e && "\\" !== d.charAt(f - 1)) { g = d.substring(c, f + 1); a.push(g); var h = "@ko_token_" + (a.length - 1) + "@", d = d.substring(0, c) + h + d.substring(f + 1), f = f - (g.length - h.length), c = p } } e = c = p; for (var k = 0, l = p, f = 0; f < d.length; f++) { g = d.charAt(f); if (c === p) switch (g) { case "{": c = f; l = g; e = "}"; break; case "(": c = f; l = g; e = ")"; break; case "[": c = f, l = g, e = "]" } g === l ? k++ : g === e && (k--, 0 === k && (g = d.substring(c, f + 1), a.push(g), h = "@ko_token_" + (a.length - 1) + "@", d = d.substring(0, c) + h + d.substring(f + 1), f -= g.length - h.length, c = p)) } e = []; d = d.split(","); c = 0; for (f = d.length; c < f; c++) k = d[c], l = k.indexOf(":"), 0 < l && l < k.length - 1 ? (g = k.substring(l + 1), e.push({key: P(k.substring(0, l), a), value: P(g, a)})) : e.push({unknown: P(k, a)}); return e }, ba: function (a) { var d = "string" === typeof a ? b.g.aa(a) : a, c = []; a = []; for (var e, f = 0; e = d[f]; f++) if (0 < c.length && c.push(","), e.key) { var g; a:{ g = e.key; var h = b.a.D(g); switch (h.length && h.charAt(0)) { case "'": case '"': break a; default: g = "'" + h + "'" } } e = e.value; c.push(g); c.push(":"); c.push(e); e = b.a.D(e); 0 <= b.a.i(na, b.a.D(e).toLowerCase()) ? e = r : (h = e.match(oa), e = h === p ? r : h[1] ? "Object(" + h[1] + ")" + h[2] : e); e && (0 < a.length && a.push(", "), a.push(g + " : function(__ko_value) { " + e + " = __ko_value; }")) } else e.unknown && c.push(e.unknown); d = c.join(""); 0 < a.length && (d = d + ", '_ko_property_writers' : { " + a.join("") + " } "); return d }, Eb: function (a, d) { for (var c = 0; c < a.length; c++) if (b.a.D(a[c].key) == d) return m; return r }, ea: function (a, d, c, e, f) { if (!a || !b.Ra(a)) { if ((a = d()._ko_property_writers) && a[c]) a[c](e) } else (!f || a.t() !== e) && a(e) } }; b.b("expressionRewriting", b.g); b.b("expressionRewriting.bindingRewriteValidators", b.g.Q); b.b("expressionRewriting.parseObjectLiteral", b.g.aa); b.b("expressionRewriting.preProcessBindings", b.g.ba); b.b("jsonExpressionRewriting", b.g); b.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson", b.g.ba); var K = "\x3c!--test--\x3e" === y.createComment("test").text, ja = K ? /^\x3c!--\s*ko(?:\s+(.+\s*\:[\s\S]*))?\s*--\x3e$/ : /^\s*ko(?:\s+(.+\s*\:[\s\S]*))?\s*$/, ia = K ? /^\x3c!--\s*\/ko\s*--\x3e$/ : /^\s*\/ko\s*$/, pa = {ul: m, ol: m}; b.e = { I: {}, childNodes: function (a) { return B(a) ? aa(a) : a.childNodes }, Y: function (a) { if (B(a)) { a = b.e.childNodes(a); for (var d = 0, c = a.length; d < c; d++) b.removeNode(a[d]) } else b.a.ka(a) }, N: function (a, d) { if (B(a)) { b.e.Y(a); for (var c = a.nextSibling, e = 0, f = d.length; e < f; e++) c.parentNode.insertBefore(d[e], c) } else b.a.N(a, d) }, Va: function (a, b) { B(a) ? a.parentNode.insertBefore(b, a.nextSibling) : a.firstChild ? a.insertBefore(b, a.firstChild) : a.appendChild(b) }, Pa: function (a, d, c) { c ? B(a) ? a.parentNode.insertBefore(d, c.nextSibling) : c.nextSibling ? a.insertBefore(d, c.nextSibling) : a.appendChild(d) : b.e.Va(a, d) }, firstChild: function (a) { return !B(a) ? a.firstChild : !a.nextSibling || H(a.nextSibling) ? p : a.nextSibling }, nextSibling: function (a) { B(a) && (a = $(a)); return a.nextSibling && H(a.nextSibling) ? p : a.nextSibling }, jb: function (a) { return (a = B(a)) ? a[1] : p }, Ta: function (a) { if (pa[b.a.u(a)]) { var d = a.firstChild; if (d) { do if (1 === d.nodeType) { var c; c = d.firstChild; var e = p; if (c) { do if (e) e.push(c); else if (B(c)) { var f = $(c, m); f ? c = f : e = [c] } else H(c) && (e = [c]); while (c = c.nextSibling) } if (c = e) { e = d.nextSibling; for (f = 0; f < c.length; f++) e ? a.insertBefore(c[f], e) : a.appendChild(c[f]) } } while (d = d.nextSibling) } } } }; b.b("virtualElements", b.e); b.b("virtualElements.allowedBindings", b.e.I); b.b("virtualElements.emptyNode", b.e.Y); b.b("virtualElements.insertAfter", b.e.Pa); b.b("virtualElements.prepend", b.e.Va); b.b("virtualElements.setDomNodeChildren", b.e.N); b.J = function () { this.Ha = {} }; b.a.extend(b.J.prototype, { nodeHasBindings: function (a) { switch (a.nodeType) { case 1: return a.getAttribute("data-bind") != p; case 8: return b.e.jb(a) != p; default: return r } }, getBindings: function (a, b) { var c = this.getBindingsString(a, b); return c ? this.parseBindingsString(c, b, a) : p }, getBindingsString: function (a) { switch (a.nodeType) { case 1: return a.getAttribute("data-bind"); case 8: return b.e.jb(a); default: return p } }, parseBindingsString: function (a, d, c) { try { var e; if (!(e = this.Ha[a])) { var f = this.Ha, g, h = "with($context){with($data||{}){return{" + b.g.ba(a) + "}}}"; g = new Function("$context", "$element", h); e = f[a] = g } return e(d, c) } catch (k) { j(Error("Unable to parse bindings.\nMessage: " + k + ";\nBindings value: " + a)) } } }); b.J.instance = new b.J; b.b("bindingProvider", b.J); b.c = {}; b.z = function (a, d, c) { d ? (b.a.extend(this, d), this.$parentContext = d, this.$parent = d.$data, this.$parents = (d.$parents || []).slice(0), this.$parents.unshift(this.$parent)) : (this.$parents = [], this.$root = a, this.ko = b); this.$data = a; c && (this[c] = a) }; b.z.prototype.createChildContext = function (a, d) { return new b.z(a, this, d) }; b.z.prototype.extend = function (a) { var d = b.a.extend(new b.z, this); return b.a.extend(d, a) }; b.eb = function (a, d) { if (2 == arguments.length) b.a.f.set(a, "__ko_bindingContext__", d); else return b.a.f.get(a, "__ko_bindingContext__") }; b.Fa = function (a, d, c) { 1 === a.nodeType && b.e.Ta(a); return X(a, d, c, m) }; b.Ea = function (a, b) { (1 === b.nodeType || 8 === b.nodeType) && Z(a, b, m) }; b.Da = function (a, b) { b && (1 !== b.nodeType && 8 !== b.nodeType) && j(Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node")); b = b || x.document.body; Y(a, b, m) }; b.ja = function (a) { switch (a.nodeType) { case 1: case 8: var d = b.eb(a); if (d) return d; if (a.parentNode) return b.ja(a.parentNode) } return I }; b.pb = function (a) { return (a = b.ja(a)) ? a.$data : I }; b.b("bindingHandlers", b.c); b.b("applyBindings", b.Da); b.b("applyBindingsToDescendants", b.Ea); b.b("applyBindingsToNode", b.Fa); b.b("contextFor", b.ja); b.b("dataFor", b.pb); var fa = {"class": "className", "for": "htmlFor"}; b.c.attr = { update: function (a, d) { var c = b.a.d(d()) || {}, e; for (e in c) if ("string" == typeof e) { var f = b.a.d(c[e]), g = f === r || f === p || f === I; g && a.removeAttribute(e); 8 >= b.a.Z && e in fa ? (e = fa[e], g ? a.removeAttribute(e) : a[e] = f) : g || a.setAttribute(e, f.toString()); "name" === e && b.a.ab(a, g ? "" : f.toString()) } } }; b.c.checked = { init: function (a, d, c) { b.a.n(a, "click", function () { var e; if ("checkbox" == a.type) e = a.checked; else if ("radio" == a.type && a.checked) e = a.value; else return; var f = d(), g = b.a.d(f); "checkbox" == a.type && g instanceof Array ? (e = b.a.i(g, a.value), a.checked && 0 > e ? f.push(a.value) : !a.checked && 0 <= e && f.splice(e, 1)) : b.g.ea(f, c, "checked", e, m) }); "radio" == a.type && !a.name && b.c.uniqueName.init(a, u(m)) }, update: function (a, d) { var c = b.a.d(d()); "checkbox" == a.type ? a.checked = c instanceof Array ? 0 <= b.a.i(c, a.value) : c : "radio" == a.type && (a.checked = a.value == c) } }; b.c.css = { update: function (a, d) { var c = b.a.d(d()); if ("object" == typeof c) for (var e in c) { var f = b.a.d(c[e]); b.a.da(a, e, f) } else c = String(c || ""), b.a.da(a, a.__ko__cssValue, r), a.__ko__cssValue = c, b.a.da(a, c, m) } }; b.c.enable = { update: function (a, d) { var c = b.a.d(d()); c && a.disabled ? a.removeAttribute("disabled") : !c && !a.disabled && (a.disabled = m) } }; b.c.disable = { update: function (a, d) { b.c.enable.update(a, function () { return !b.a.d(d()) }) } }; b.c.event = { init: function (a, d, c, e) { var f = d() || {}, g; for (g in f) (function () { var f = g; "string" == typeof f && b.a.n(a, f, function (a) { var g, n = d()[f]; if (n) { var q = c(); try { var s = b.a.L(arguments); s.unshift(e); g = n.apply(e, s) } finally { g !== m && (a.preventDefault ? a.preventDefault() : a.returnValue = r) } q[f + "Bubble"] === r && (a.cancelBubble = m, a.stopPropagation && a.stopPropagation()) } }) })() } }; b.c.foreach = { Sa: function (a) { return function () { var d = a(), c = b.a.ua(d); if (!c || "number" == typeof c.length) return {foreach: d, templateEngine: b.C.oa}; b.a.d(d); return {foreach: c.data, as: c.as, includeDestroyed: c.includeDestroyed, afterAdd: c.afterAdd, beforeRemove: c.beforeRemove, afterRender: c.afterRender, beforeMove: c.beforeMove, afterMove: c.afterMove, templateEngine: b.C.oa} } }, init: function (a, d) { return b.c.template.init(a, b.c.foreach.Sa(d)) }, update: function (a, d, c, e, f) { return b.c.template.update(a, b.c.foreach.Sa(d), c, e, f) } }; b.g.Q.foreach = r; b.e.I.foreach = m; b.c.hasfocus = { init: function (a, d, c) { function e(e) { a.__ko_hasfocusUpdating = m; var f = a.ownerDocument; "activeElement" in f && (e = f.activeElement === a); f = d(); b.g.ea(f, c, "hasfocus", e, m); a.__ko_hasfocusUpdating = r } var f = e.bind(p, m), g = e.bind(p, r); b.a.n(a, "focus", f); b.a.n(a, "focusin", f); b.a.n(a, "blur", g); b.a.n(a, "focusout", g) }, update: function (a, d) { var c = b.a.d(d()); a.__ko_hasfocusUpdating || (c ? a.focus() : a.blur(), b.r.K(b.a.Ba, p, [a, c ? "focusin" : "focusout"])) } }; b.c.html = { init: function () { return {controlsDescendantBindings: m} }, update: function (a, d) { b.a.ca(a, d()) } }; var da = "__ko_withIfBindingData"; Q("if"); Q("ifnot", r, m); Q("with", m, r, function (a, b) { return a.createChildContext(b) }); b.c.options = { update: function (a, d, c) { "select" !== b.a.u(a) && j(Error("options binding applies only to SELECT elements")); for (var e = 0 == a.length, f = b.a.V(b.a.fa(a.childNodes, function (a) { return a.tagName && "option" === b.a.u(a) && a.selected }), function (a) { return b.k.q(a) || a.innerText || a.textContent }), g = a.scrollTop, h = b.a.d(d()); 0 < a.length;) b.A(a.options[0]), a.remove(0); if (h) { c = c(); var k = c.optionsIncludeDestroyed; "number" != typeof h.length && (h = [h]); if (c.optionsCaption) { var l = y.createElement("option"); b.a.ca(l, c.optionsCaption); b.k.T(l, I); a.appendChild(l) } d = 0; for (var n = h.length; d < n; d++) { var q = h[d]; if (!q || !q._destroy || k) { var l = y.createElement("option"), s = function (a, b, c) { var d = typeof b; return "function" == d ? b(a) : "string" == d ? a[b] : c }, v = s(q, c.optionsValue, q); b.k.T(l, b.a.d(v)); q = s(q, c.optionsText, v); b.a.cb(l, q); a.appendChild(l) } } h = a.getElementsByTagName("option"); d = k = 0; for (n = h.length; d < n; d++) 0 <= b.a.i(f, b.k.q(h[d])) && (b.a.bb(h[d], m), k++); a.scrollTop = g; e && "value" in c && ea(a, b.a.ua(c.value), m); b.a.ub(a) } } }; b.c.options.sa = "__ko.optionValueDomData__"; b.c.selectedOptions = { init: function (a, d, c) { b.a.n(a, "change", function () { var e = d(), f = []; b.a.o(a.getElementsByTagName("option"), function (a) { a.selected && f.push(b.k.q(a)) }); b.g.ea(e, c, "value", f) }) }, update: function (a, d) { "select" != b.a.u(a) && j(Error("values binding applies only to SELECT elements")); var c = b.a.d(d()); c && "number" == typeof c.length && b.a.o(a.getElementsByTagName("option"), function (a) { var d = 0 <= b.a.i(c, b.k.q(a)); b.a.bb(a, d) }) } }; b.c.style = { update: function (a, d) { var c = b.a.d(d() || {}), e; for (e in c) if ("string" == typeof e) { var f = b.a.d(c[e]); a.style[e] = f || "" } } }; b.c.submit = { init: function (a, d, c, e) { "function" != typeof d() && j(Error("The value for a submit binding must be a function")); b.a.n(a, "submit", function (b) { var c, h = d(); try { c = h.call(e, a) } finally { c !== m && (b.preventDefault ? b.preventDefault() : b.returnValue = r) } }) } }; b.c.text = { update: function (a, d) { b.a.cb(a, d()) } }; b.e.I.text = m; b.c.uniqueName = { init: function (a, d) { if (d()) { var c = "ko_unique_" + ++b.c.uniqueName.ob; b.a.ab(a, c) } } }; b.c.uniqueName.ob = 0; b.c.value = { init: function (a, d, c) { function e() { h = r; var e = d(), f = b.k.q(a); b.g.ea(e, c, "value", f) } var f = ["change"], g = c().valueUpdate, h = r; g && ("string" == typeof g && (g = [g]), b.a.P(f, g), f = b.a.Ga(f)); if (b.a.Z && ("input" == a.tagName.toLowerCase() && "text" == a.type && "off" != a.autocomplete && (!a.form || "off" != a.form.autocomplete)) && -1 == b.a.i(f, "propertychange")) b.a.n(a, "propertychange", function () { h = m }), b.a.n(a, "blur", function () { h && e() }); b.a.o(f, function (c) { var d = e; b.a.Ob(c, "after") && (d = function () { setTimeout(e, 0) }, c = c.substring(5)); b.a.n(a, c, d) }) }, update: function (a, d) { var c = "select" === b.a.u(a), e = b.a.d(d()), f = b.k.q(a), g = e != f; 0 === e && (0 !== f && "0" !== f) && (g = m); g && (f = function () { b.k.T(a, e) }, f(), c && setTimeout(f, 0)); c && 0 < a.length && ea(a, e, r) } }; b.c.visible = { update: function (a, d) { var c = b.a.d(d()), e = "none" != a.style.display; c && !e ? a.style.display = "" : !c && e && (a.style.display = "none") } }; b.c.click = { init: function (a, d, c, e) { return b.c.event.init.call(this, a, function () { var a = {}; a.click = d(); return a }, c, e) } }; b.v = function () { }; b.v.prototype.renderTemplateSource = function () { j(Error("Override renderTemplateSource")) }; b.v.prototype.createJavaScriptEvaluatorBlock = function () { j(Error("Override createJavaScriptEvaluatorBlock")) }; b.v.prototype.makeTemplateSource = function (a, d) { if ("string" == typeof a) { d = d || y; var c = d.getElementById(a); c || j(Error("Cannot find template with ID " + a)); return new b.l.h(c) } if (1 == a.nodeType || 8 == a.nodeType) return new b.l.O(a); j(Error("Unknown template type: " + a)) }; b.v.prototype.renderTemplate = function (a, b, c, e) { a = this.makeTemplateSource(a, e); return this.renderTemplateSource(a, b, c) }; b.v.prototype.isTemplateRewritten = function (a, b) { return this.allowTemplateRewriting === r ? m : this.makeTemplateSource(a, b).data("isRewritten") }; b.v.prototype.rewriteTemplate = function (a, b, c) { a = this.makeTemplateSource(a, c); b = b(a.text()); a.text(b); a.data("isRewritten", m) }; b.b("templateEngine", b.v); var qa = /(<[a-z]+\d*(\s+(?!data-bind=)[a-z0-9\-]+(=(\"[^\"]*\"|\'[^\']*\'))?)*\s+)data-bind=(["'])([\s\S]*?)\5/gi, ra = /\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g; b.za = { vb: function (a, d, c) { d.isTemplateRewritten(a, c) || d.rewriteTemplate(a, function (a) { return b.za.Gb(a, d) }, c) }, Gb: function (a, b) { return a.replace(qa, function (a, e, f, g, h, k, l) { return W(l, e, b) }).replace(ra, function (a, e) { return W(e, "\x3c!-- ko --\x3e", b) }) }, kb: function (a) { return b.s.ra(function (d, c) { d.nextSibling && b.Fa(d.nextSibling, a, c) }) } }; b.b("__tr_ambtns", b.za.kb); b.l = {}; b.l.h = function (a) { this.h = a }; b.l.h.prototype.text = function () { var a = b.a.u(this.h), a = "script" === a ? "text" : "textarea" === a ? "value" : "innerHTML"; if (0 == arguments.length) return this.h[a]; var d = arguments[0]; "innerHTML" === a ? b.a.ca(this.h, d) : this.h[a] = d }; b.l.h.prototype.data = function (a) { if (1 === arguments.length) return b.a.f.get(this.h, "templateSourceData_" + a); b.a.f.set(this.h, "templateSourceData_" + a, arguments[1]) }; b.l.O = function (a) { this.h = a }; b.l.O.prototype = new b.l.h; b.l.O.prototype.text = function () { if (0 == arguments.length) { var a = b.a.f.get(this.h, "__ko_anon_template__") || {}; a.Aa === I && a.ia && (a.Aa = a.ia.innerHTML); return a.Aa } b.a.f.set(this.h, "__ko_anon_template__", {Aa: arguments[0]}) }; b.l.h.prototype.nodes = function () { if (0 == arguments.length) return (b.a.f.get(this.h, "__ko_anon_template__") || {}).ia; b.a.f.set(this.h, "__ko_anon_template__", {ia: arguments[0]}) }; b.b("templateSources", b.l); b.b("templateSources.domElement", b.l.h); b.b("templateSources.anonymousTemplate", b.l.O); var O; b.wa = function (a) { a != I && !(a instanceof b.v) && j(Error("templateEngine must inherit from ko.templateEngine")); O = a }; b.va = function (a, d, c, e, f) { c = c || {}; (c.templateEngine || O) == I && j(Error("Set a template engine before calling renderTemplate")); f = f || "replaceChildren"; if (e) { var g = N(e); return b.j(function () { var h = d && d instanceof b.z ? d : new b.z(b.a.d(d)), k = "function" == typeof a ? a(h.$data, h) : a, h = T(e, f, k, h, c); "replaceNode" == f && (e = h, g = N(e)) }, p, { Ka: function () { return !g || !b.a.X(g) }, W: g && "replaceNode" == f ? g.parentNode : g }) } return b.s.ra(function (e) { b.va(a, d, c, e, "replaceNode") }) }; b.Mb = function (a, d, c, e, f) { function g(a, b) { U(b, k); c.afterRender && c.afterRender(b, a) } function h(d, e) { k = f.createChildContext(b.a.d(d), c.as); k.$index = e; var g = "function" == typeof a ? a(d, k) : a; return T(p, "ignoreTargetNode", g, k, c) } var k; return b.j(function () { var a = b.a.d(d) || []; "undefined" == typeof a.length && (a = [a]); a = b.a.fa(a, function (a) { return c.includeDestroyed || a === I || a === p || !b.a.d(a._destroy) }); b.r.K(b.a.$a, p, [e, a, h, c, g]) }, p, {W: e}) }; b.c.template = { init: function (a, d) { var c = b.a.d(d()); if ("string" != typeof c && !c.name && (1 == a.nodeType || 8 == a.nodeType)) c = 1 == a.nodeType ? a.childNodes : b.e.childNodes(a), c = b.a.Hb(c), (new b.l.O(a)).nodes(c); return {controlsDescendantBindings: m} }, update: function (a, d, c, e, f) { d = b.a.d(d()); c = {}; e = m; var g, h = p; "string" != typeof d && (c = d, d = c.name, "if" in c && (e = b.a.d(c["if"])), e && "ifnot" in c && (e = !b.a.d(c.ifnot)), g = b.a.d(c.data)); "foreach" in c ? h = b.Mb(d || a, e && c.foreach || [], c, a, f) : e ? (f = "data" in c ? f.createChildContext(g, c.as) : f, h = b.va(d || a, f, c, a)) : b.e.Y(a); f = h; (g = b.a.f.get(a, "__ko__templateComputedDomDataKey__")) && "function" == typeof g.B && g.B(); b.a.f.set(a, "__ko__templateComputedDomDataKey__", f && f.pa() ? f : I) } }; b.g.Q.template = function (a) { a = b.g.aa(a); return 1 == a.length && a[0].unknown || b.g.Eb(a, "name") ? p : "This template engine does not support anonymous templates nested within its templates" }; b.e.I.template = m; b.b("setTemplateEngine", b.wa); b.b("renderTemplate", b.va); b.a.Ja = function (a, b, c) { a = a || []; b = b || []; return a.length <= b.length ? S(a, b, "added", "deleted", c) : S(b, a, "deleted", "added", c) }; b.b("utils.compareArrays", b.a.Ja); b.a.$a = function (a, d, c, e, f) { function g(a, b) { t = l[b]; w !== b && (z[a] = t); t.na(w++); M(t.M); s.push(t); A.push(t) } function h(a, c) { if (a) for (var d = 0, e = c.length; d < e; d++) c[d] && b.a.o(c[d].M, function (b) { a(b, d, c[d].U) }) } d = d || []; e = e || {}; var k = b.a.f.get(a, "setDomNodeChildrenFromArrayMapping_lastMappingResult") === I, l = b.a.f.get(a, "setDomNodeChildrenFromArrayMapping_lastMappingResult") || [], n = b.a.V(l, function (a) { return a.U }), q = b.a.Ja(n, d), s = [], v = 0, w = 0, B = [], A = []; d = []; for (var z = [], n = [], t, D = 0, C, E; C = q[D]; D++) switch (E = C.moved, C.status) { case "deleted": E === I && (t = l[v], t.j && t.j.B(), B.push.apply(B, M(t.M)), e.beforeRemove && (d[D] = t, A.push(t))); v++; break; case "retained": g(D, v++); break; case "added": E !== I ? g(D, E) : (t = {U: C.value, na: b.m(w++)}, s.push(t), A.push(t), k || (n[D] = t)) } h(e.beforeMove, z); b.a.o(B, e.beforeRemove ? b.A : b.removeNode); for (var D = 0, k = b.e.firstChild(a), H; t = A[D]; D++) { t.M || b.a.extend(t, ha(a, c, t.U, f, t.na)); for (v = 0; q = t.M[v]; k = q.nextSibling, H = q, v++) q !== k && b.e.Pa(a, q, H); !t.Ab && f && (f(t.U, t.M, t.na), t.Ab = m) } h(e.beforeRemove, d); h(e.afterMove, z); h(e.afterAdd, n); b.a.f.set(a, "setDomNodeChildrenFromArrayMapping_lastMappingResult", s) }; b.b("utils.setDomNodeChildrenFromArrayMapping", b.a.$a); b.C = function () { this.allowTemplateRewriting = r }; b.C.prototype = new b.v; b.C.prototype.renderTemplateSource = function (a) { var d = !(9 > b.a.Z) && a.nodes ? a.nodes() : p; if (d) return b.a.L(d.cloneNode(m).childNodes); a = a.text(); return b.a.ta(a) }; b.C.oa = new b.C; b.wa(b.C.oa); b.b("nativeTemplateEngine", b.C); b.qa = function () { var a = this.Db = function () { if ("undefined" == typeof F || !F.tmpl) return 0; try { if (0 <= F.tmpl.tag.tmpl.open.toString().indexOf("__")) return 2 } catch (a) { } return 1 }(); this.renderTemplateSource = function (b, c, e) { e = e || {}; 2 > a && j(Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.")); var f = b.data("precompiled"); f || (f = b.text() || "", f = F.template(p, "{{ko_with $item.koBindingContext}}" + f + "{{/ko_with}}"), b.data("precompiled", f)); b = [c.$data]; c = F.extend({koBindingContext: c}, e.templateOptions); c = F.tmpl(f, b, c); c.appendTo(y.createElement("div")); F.fragments = {}; return c }; this.createJavaScriptEvaluatorBlock = function (a) { return "{{ko_code ((function() { return " + a + " })()) }}" }; this.addTemplate = function (a, b) { y.write("