From ac535b1d0314f44c5be3458bb288e0fcd3600fdd Mon Sep 17 00:00:00 2001 From: djmaze Date: Fri, 9 Oct 2020 10:20:22 +0200 Subject: [PATCH] Remove more unused Knockout code --- .../build/fragments/source-references.js | 2 +- .../build/output/knockout-latest.debug.js | 155 +++----------- .../knockout/build/output/knockout-latest.js | 198 +++++++++--------- .../src/binding/bindingAttributeSyntax.js | 55 ++--- .../src/binding/defaultBindings/hasfocus.js | 10 - .../src/binding/defaultBindings/options.js | 7 +- vendors/knockout/src/options.js | 7 - .../src/subscribables/dependentObservable.js | 18 +- .../knockout/src/subscribables/extenders.js | 30 --- .../knockout/src/subscribables/observable.js | 5 - .../src/subscribables/observableArray.js | 4 +- .../src/subscribables/subscribable.js | 7 +- vendors/knockout/src/templating/templating.js | 6 +- vendors/knockout/src/utils.js | 6 +- 14 files changed, 155 insertions(+), 355 deletions(-) delete mode 100644 vendors/knockout/src/options.js diff --git a/vendors/knockout/build/fragments/source-references.js b/vendors/knockout/build/fragments/source-references.js index 30ba9817c..3d5b3cf12 100644 --- a/vendors/knockout/build/fragments/source-references.js +++ b/vendors/knockout/build/fragments/source-references.js @@ -2,7 +2,7 @@ knockoutDebugCallback([ 'src/namespace.js', 'src/google-closure-compiler-utils.js', 'src/version.js', - 'src/options.js', +// 'src/options.js', 'src/utils.js', 'src/utils.domData.js', 'src/utils.domNodeDisposal.js', diff --git a/vendors/knockout/build/output/knockout-latest.debug.js b/vendors/knockout/build/output/knockout-latest.debug.js index 712e4a9a4..1fce984b2 100644 --- a/vendors/knockout/build/output/knockout-latest.debug.js +++ b/vendors/knockout/build/output/knockout-latest.debug.js @@ -34,13 +34,6 @@ ko.exportProperty = function(owner, publicName, object) { ko.version = "3.5.1-pre"; ko.exportSymbol('version', ko.version); -// For any options that may affect various areas of Knockout and aren't directly associated with data binding. -ko.options = { - 'deferUpdates': false, - 'foreachHidesDestroyed': false -}; - -//ko.exportSymbol('options', ko.options); // 'options' isn't minified ko.utils = (() => { function arrayCall(name, arr, p1, p2) { @@ -101,9 +94,6 @@ ko.utils = (() => { } }, - arrayFilter: (array, predicate, predicateOwner) => - array ? arrayCall('filter', array, predicate, predicateOwner) : [], - arrayPushAll: (array, valuesToPush) => { if (valuesToPush instanceof Array) array.push.apply(array, valuesToPush); @@ -234,7 +224,7 @@ ko.utils = (() => { }, domNodeIsContainedBy: (node, containedByNode) => - containedByNode.contains(node.nodeType !== 1 ? node.parentNode : node), + containedByNode.contains(node.nodeType !== 1 ? node.parentNode : node), domNodeIsAttachedToDocument: node => ko.utils.domNodeIsContainedBy(node, node.ownerDocument.documentElement), @@ -305,7 +295,6 @@ ko.utils = (() => { ko.exportSymbol('utils', ko.utils); ko.exportSymbol('utils.arrayForEach', ko.utils.arrayForEach); ko.exportSymbol('utils.arrayFirst', ko.utils.arrayFirst); -ko.exportSymbol('utils.arrayFilter', ko.utils.arrayFilter); ko.exportSymbol('utils.arrayIndexOf', ko.utils.arrayIndexOf); ko.exportSymbol('utils.arrayPushAll', ko.utils.arrayPushAll); ko.exportSymbol('utils.arrayRemoveItem', ko.utils.arrayRemoveItem); @@ -717,40 +706,10 @@ ko.extenders = { method = options['method']; } - // rateLimit supersedes deferred updates - target._deferUpdates = false; - limitFunction = typeof method == 'function' ? method : method == 'notifyWhenChangesStop' ? debounce : throttle; target.limit(callback => limitFunction(callback, timeout, options)); }, - 'deferred': (target, options) => { - if (options !== true) { - throw new Error('The \'deferred\' extender only accepts the value \'true\', because it is not supported to turn deferral off once enabled.') - } - - if (!target._deferUpdates) { - target._deferUpdates = true; - target.limit(callback => { - var handle, - ignoreUpdates = false; - return () => { - if (!ignoreUpdates) { - ko.tasks.cancel(handle); - handle = ko.tasks.schedule(callback); - - try { - ignoreUpdates = true; - target['notifySubscribers'](undefined, 'dirty'); - } finally { - ignoreUpdates = false; - } - } - }; - }); - } - }, - 'notify': (target, notifyWhen) => { target["equalityComparer"] = notifyWhen == "always" ? null : // null equalityComparer means to always notify @@ -966,10 +925,9 @@ var ko_subscribable_fn = { return this._subscriptions[event] && this._subscriptions[event].length || 0; } var total = 0; - ko.utils.objectForEach(this._subscriptions, (eventName, subscriptions) => { - if (eventName !== 'dirty') - total += subscriptions.length; - }); + ko.utils.objectForEach(this._subscriptions, (eventName, subscriptions) => + total += subscriptions.length + ); return total; }, @@ -1102,10 +1060,6 @@ ko.observable = initialValue => { // Inherit from 'observable' ko.utils.setPrototypeOfOrExtend(observable, observableFn); - if (ko.options['deferUpdates']) { - ko.extenders['deferred'](observable, true); - } - return observable; } @@ -1146,7 +1100,6 @@ ko.isWriteableObservable = instance => { ko.exportSymbol('observable', ko.observable); ko.exportSymbol('isObservable', ko.isObservable); ko.exportSymbol('isWriteableObservable', ko.isWriteableObservable); -ko.exportSymbol('isWritableObservable', ko.isWriteableObservable); ko.exportSymbol('observable.fn', observableFn); ko.exportProperty(observableFn, 'peek', observableFn.peek); ko.exportProperty(observableFn, 'valueHasMutated', observableFn.valueHasMutated); @@ -1219,7 +1172,7 @@ if (ko.utils.canSetPrototype) { // Populate ko.observableArray.fn with read/write functions from native arrays // Important: Do not add any additional functions here that may reasonably be used to *read* data from the array // because we'll eval them without causing subscriptions, so ko.computed output could end up getting stale -ko.utils.arrayForEach(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], methodName => { +["pop", "push", "reverse", "shift", "sort", "splice", "unshift"].forEach(methodName => { ko.observableArray['fn'][methodName] = function () { // Use "peek" to avoid creating a subscription in any computed that we're executing in the context of // (for consistency with mutating regular observables) @@ -1234,7 +1187,7 @@ ko.utils.arrayForEach(["pop", "push", "reverse", "shift", "sort", "splice", "uns }); // Populate ko.observableArray.fn with read-only functions from native arrays -ko.utils.arrayForEach(["slice"], methodName => { +["slice"].forEach(methodName => { ko.observableArray['fn'][methodName] = function () { var underlyingArray = this(); return underlyingArray[methodName].apply(underlyingArray, arguments); @@ -1483,10 +1436,6 @@ ko.computed = ko.dependentObservable = function (evaluatorFunctionOrOptions, eva ko.utils.extend(computedObservable, deferEvaluationOverrides); } - if (ko.options['deferUpdates']) { - ko.extenders['deferred'](computedObservable, true); - } - if (DEBUG) { // #1731 - Aid debugging by exposing the computed's options computedObservable["_options"] = options; @@ -1617,19 +1566,7 @@ var computedFn = { } }, subscribeToDependency: function (target) { - if (target._deferUpdates) { - var dirtySub = target.subscribe(this.markDirty, this, 'dirty'), - changeSub = target.subscribe(this.respondToChange, this); - return { - _target: target, - dispose: () => { - dirtySub.dispose(); - changeSub.dispose(); - } - }; - } else { - return target.subscribe(this.evaluatePossiblyAsync, this); - } + return target.subscribe(this.evaluatePossiblyAsync, this); }, evaluatePossiblyAsync: function () { var computedObservable = this, @@ -2702,38 +2639,22 @@ ko.exportSymbol('bindingProvider', ko.bindingProvider); } }; - // Returns the valueAccessor function for a binding value - function makeValueAccessor(value) { - return function() { - return value; - }; - } - - // Returns the value of a valueAccessor function - function evaluateValueAccessor(valueAccessor) { - return valueAccessor(); - } - // Given a function that returns bindings, create and return a new object that contains // binding value-accessors functions. Each accessor function calls the original function // so that it always gets the latest value and all dependencies are captured. This is used // by ko.applyBindingsToNode and getBindingsAndMakeAccessors. function makeAccessorsFromFunction(callback) { - return ko.utils.objectMap(ko.dependencyDetection.ignore(callback), function(value, key) { - return function() { - return callback()[key]; - }; - }); + return ko.utils.objectMap(ko.dependencyDetection.ignore(callback), (value, key) => + () => callback()[key] + ); } // Given a bindings function or object, create and return a new object that contains // binding value-accessors functions. This is used by ko.applyBindingsToNode. function makeBindingAccessors(bindings, context, node) { - if (typeof bindings === 'function') { - return makeAccessorsFromFunction(bindings.bind(null, context, node)); - } else { - return ko.utils.objectMap(bindings, makeValueAccessor); - } + return (typeof bindings === 'function') + ? makeAccessorsFromFunction(bindings.bind(null, context, node)) + : ko.utils.objectMap(bindings, value => () => value); } // This function is used if the binding provider doesn't include a getBindingAccessors function. @@ -2807,7 +2728,7 @@ ko.exportSymbol('bindingProvider', ko.bindingProvider); // First add dependencies (if any) of the current binding if (binding['after']) { cyclicDependencyStack.push(bindingKey); - ko.utils.arrayForEach(binding['after'], function(bindingDependencyKey) { + ko.utils.arrayForEach(binding['after'], bindingDependencyKey => { if (bindings[bindingDependencyKey]) { if (ko.utils.arrayIndexOf(cyclicDependencyStack, bindingDependencyKey) !== -1) { throw Error("Cannot combine the following bindings, because they have a cyclic dependency: " + cyclicDependencyStack.join(", ")); @@ -2857,7 +2778,7 @@ ko.exportSymbol('bindingProvider', ko.bindingProvider); // Get the binding from the provider within a computed observable so that we can update the bindings whenever // the binding context is updated or if the binding provider accesses observables. var bindingsUpdater = ko.dependentObservable( - function() { + () => { bindings = sourceBindings ? sourceBindings(bindingContext, node) : getBindings.call(provider, node, bindingContext); // Register a dependency on the binding context to support observable view models. if (bindings) { @@ -2884,20 +2805,20 @@ ko.exportSymbol('bindingProvider', ko.bindingProvider); // context update), just return the value accessor from the binding. Otherwise, return a function that always gets // the latest binding value and registers a dependency on the binding updater. var getValueAccessor = bindingsUpdater - ? bindingKey => () => evaluateValueAccessor(bindingsUpdater()[bindingKey]) + ? bindingKey => () => bindingsUpdater()[bindingKey]() : bindingKey => bindings[bindingKey]; // Use of allBindings as a function is maintained for backwards compatibility, but its use is deprecated function allBindings() { - return ko.utils.objectMap(bindingsUpdater ? bindingsUpdater() : bindings, evaluateValueAccessor); + return ko.utils.objectMap(bindingsUpdater ? bindingsUpdater() : bindings, valueAccessor => valueAccessor()); } // The following is the 3.x allBindings API - allBindings['get'] = key => bindings[key] && evaluateValueAccessor(getValueAccessor(key)); + allBindings['get'] = key => bindings[key] && getValueAccessor(key)(); allBindings['has'] = key => key in bindings; if (ko.bindingEvent.childrenComplete in bindings) { ko.bindingEvent.subscribe(node, ko.bindingEvent.childrenComplete, () => { - var callback = evaluateValueAccessor(bindings[ko.bindingEvent.childrenComplete]); + var callback = bindings[ko.bindingEvent.childrenComplete](); if (callback) { var nodes = ko.virtualElements.childNodes(node); if (nodes.length) { @@ -2909,8 +2830,8 @@ ko.exportSymbol('bindingProvider', ko.bindingProvider); if (ko.bindingEvent.descendantsComplete in bindings) { contextToExtend = ko.bindingEvent.startPossiblyAsyncContentBinding(node, bindingContext); - ko.bindingEvent.subscribe(node, ko.bindingEvent.descendantsComplete, function () { - var callback = evaluateValueAccessor(bindings[ko.bindingEvent.descendantsComplete]); + ko.bindingEvent.subscribe(node, ko.bindingEvent.descendantsComplete, () => { + var callback = bindings[ko.bindingEvent.descendantsComplete](); if (callback && ko.virtualElements.firstChild(node)) { callback(node); } @@ -2921,7 +2842,7 @@ ko.exportSymbol('bindingProvider', ko.bindingProvider); var orderedBindings = topologicalSortBindings(bindings); // Go through the sorted bindings, calling init and update for each - ko.utils.arrayForEach(orderedBindings, function(bindingKeyAndHandler) { + ko.utils.arrayForEach(orderedBindings, bindingKeyAndHandler => { // Note that topologicalSortBindings has already filtered out any nonexistent binding handlers, // so bindingKeyAndHandler.handler will always be nonnull. var handlerInitFn = bindingKeyAndHandler.handler["init"], @@ -3007,14 +2928,9 @@ ko.exportSymbol('bindingProvider', ko.bindingProvider); }; // Retrieving binding context from arbitrary nodes - ko.contextFor = node => { - // We can only do something meaningful for elements and comment nodes (in particular, not text nodes, as IE can't store domdata for them) - if (node && (node.nodeType === 1 || node.nodeType === 8)) { - return ko.storedBindingContextForNode(node); - } - }; ko.dataFor = node => { - var context = ko.contextFor(node); + // We can only do something meaningful for elements and comment nodes (in particular, not text nodes, as IE can't store domdata for them) + var context = node && [1,8].includes(node.nodeType) && ko.storedBindingContextForNode(node); return context ? context['$data'] : undefined; }; @@ -3728,16 +3644,6 @@ ko.bindingHandlers['hasfocus'] = { if (!element[hasfocusUpdatingProperty] && element[hasfocusLastValue] !== value) { value ? element.focus() : element.blur(); - - // In IE, the blur method doesn't always cause the element to lose focus (for example, if the window is not in focus). - // Setting focus to the body element does seem to be reliable in IE, but should only be used if we know that the current - // element was focused already. - if (!value && element[hasfocusLastValue]) { - element.ownerDocument.body.focus(); - } - - // For IE, which doesn't reliably fire "focus" or "blur" events synchronously - ko.dependencyDetection.ignore(ko.utils.triggerEvent, null, [element, value ? "focusin" : "focusout"]); } } }; @@ -3770,7 +3676,7 @@ ko.bindingHandlers['options'] = { }, 'update': (element, valueAccessor, allBindings) => { function selectedOptions() { - return ko.utils.arrayFilter(element.options, node => node.selected); + return Array.from(element.options).filter(node => node.selected); } var selectWasPreviouslyEmpty = element.length == 0, @@ -3778,7 +3684,6 @@ ko.bindingHandlers['options'] = { previousScrollTop = (!selectWasPreviouslyEmpty && multiple) ? element.scrollTop : null, unwrappedArray = ko.utils.unwrapObservable(valueAccessor()), valueAllowUnset = allBindings.get('valueAllowUnset') && allBindings['has']('value'), - includeDestroyed = allBindings.get('optionsIncludeDestroyed'), arrayToDomNodeChildrenOptions = {}, captionValue, filteredArray, @@ -3797,9 +3702,7 @@ ko.bindingHandlers['options'] = { unwrappedArray = [unwrappedArray]; // Filter out any entries marked as destroyed - filteredArray = ko.utils.arrayFilter(unwrappedArray, item => - includeDestroyed || item === undefined || item === null || !ko.utils.unwrapObservable(item['_destroy']) - ); + filteredArray = unwrappedArray.filter(item => item || item == null); // If caption is included, add it to the array if (allBindings['has']('optionsCaption')) { @@ -4663,7 +4566,7 @@ ko.exportSymbol('__tr_ambtns', ko.templateRewriting.applyMemoizedBindingsToNextS ko.bindingEvent.notify(targetNode, ko.bindingEvent.childrenComplete); }; - var shouldHideDestroyed = (options['includeDestroyed'] === false) || (ko.options['foreachHidesDestroyed'] && !options['includeDestroyed']); + var shouldHideDestroyed = (options['includeDestroyed'] === false); if (!shouldHideDestroyed && !options['beforeRemove'] && ko.isObservableArray(arrayOrObservableArray)) { setDomNodeChildrenFromArrayMapping(arrayOrObservableArray.peek()); @@ -4682,9 +4585,7 @@ ko.exportSymbol('__tr_ambtns', ko.templateRewriting.applyMemoizedBindingsToNextS if (shouldHideDestroyed) { // Filter out any entries marked as destroyed - unwrappedArray = ko.utils.arrayFilter(unwrappedArray, item => { - return item === undefined || item === null || !ko.utils.unwrapObservable(item['_destroy']); - }); + unwrappedArray = unwrappedArray.filter(item => item || item == null); } setDomNodeChildrenFromArrayMapping(unwrappedArray); diff --git a/vendors/knockout/build/output/knockout-latest.js b/vendors/knockout/build/output/knockout-latest.js index 982b95ffc..636833dae 100644 --- a/vendors/knockout/build/output/knockout-latest.js +++ b/vendors/knockout/build/output/knockout-latest.js @@ -4,103 +4,101 @@ * License: MIT (http://www.opensource.org/licenses/mit-license.php) */ -(E=>{function I(b,c){return null===b||typeof b in ja?b===c:!1}function L(b,c){var e;return()=>{e||(e=a.a.setTimeout(()=>{e=void 0;b()},c))}}function P(b,c){var e;return()=>{clearTimeout(e);e=a.a.setTimeout(b,c)}}function Z(b,c){c&&"change"!==c?"beforeChange"===c?this.fc(b):this.Ta(b,c):this.hc(b)}function ka(b,c){null!==c&&c.m&&c.m()}function la(b,c){var e=this.ad,g=e[D];g.la||(this.Eb&&this.$a[c]?(e.lc(c,b,this.$a[c]),this.$a[c]=null,--this.Eb):g.D[c]||e.lc(c,b,g.G?{Z:b}:e.Mc(b)),b.za&&b.Rc())}var W= -E.document,aa={},a="undefined"!==typeof aa?aa:{};a.b=function(b,c){b=b.split(".");for(var e=a,g=0;g{function b(f,h,d,l){return Array.prototype[f].call(h,d,l)}function c(f,h){h&&Object.entries(h).forEach(d=>f[d[0]]=d[1]);return f}function e(f,h){f.__proto__=h;return f}var g={__proto__:[]}instanceof Array;return{R:(f,h, -d)=>b("forEach",f,h,d),$:(f,h)=>b("indexOf",f,h),zb:(f,h,d)=>{for(var l=0,k=f.length;l{h=a.a.$(f,h);0f?b("filter",f,h,d):[],Ab:(f,h)=>{if(h instanceof Array)f.push.apply(f,h);else for(var d=0,l=h.length;dh(d[0],d[1]))},ua:(f,h,d)=>{if(!f)return f;var l={};Object.entries(f).forEach(k=> -l[k[0]]=h.call(d,k[1],k[0],f));return l},Hb:f=>{for(;f.firstChild;)a.removeNode(f.firstChild)},Mb:f=>{var h=a.a.ta(f),d=(h[0]&&h[0].ownerDocument||W).createElement("div");f.forEach(l=>d.append(a.ja(l)));return d},Bb:(f,h)=>b("map",f,h?d=>a.ja(d.cloneNode(!0)):d=>d.cloneNode(!0)),wa:(f,h)=>{a.a.Hb(f);h&&f.append.apply(f,h)},Kc:(f,h)=>{f=f.nodeType?[f]:f;if(0{if(f.length){for(h=8===h.nodeType&&h.parentNode||h;f.length&&f[0].parentNode!==h;)f.splice(0,1);for(;1null===f||void 0===f?"":f.trim?f.trim():f.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,""),zd:(f,h)=>{f=f||"";return h.length>f.length?!1:f.substring(0,h.length)===h},ed:(f,h)=>h.contains(1!==f.nodeType?f.parentNode:f),Gb:f=>a.a.ed(f, -f.ownerDocument.documentElement),Vc:f=>!!a.a.zb(f,a.a.Gb),ia:f=>f&&f.tagName&&f.tagName.toLowerCase(),rc:f=>a.onError?function(){try{return f.apply(this,arguments)}catch(h){throw a.onError&&a.onError(h),h;}}:f,setTimeout:(f,h)=>setTimeout(a.a.rc(f),h),wc:f=>setTimeout(()=>{a.onError&&a.onError(f);throw f;},0),L:(f,h,d)=>{f.addEventListener(h,a.a.rc(d),!1)},sb:(f,h)=>{if(!f||!f.nodeType)throw Error("element must be a DOM node when calling triggerEvent");f.dispatchEvent(new Event(h))},h:f=>a.T(f)?f(): -f,Ic:f=>a.T(f)?f.A():f,rb:function(f,h,d){if(h){var l=d?"add":"remove";h.split(/\s+/).forEach(k=>f.classList[l](k))}},qb:(f,h)=>{h=a.a.h(h);if(null===h||void 0===h)h="";var d=a.g.firstChild(f);!d||3!=d.nodeType||a.g.nextSibling(d)?a.g.wa(f,[f.ownerDocument.createTextNode(h)]):d.data=h},ta:f=>Array.from(f)}})();a.b("utils",a.a);a.b("utils.arrayForEach",a.a.R);a.b("utils.arrayFirst",a.a.zb);a.b("utils.arrayFilter",a.a.Wa);a.b("utils.arrayIndexOf",a.a.$);a.b("utils.arrayPushAll",a.a.Ab);a.b("utils.arrayRemoveItem", -a.a.Da);a.b("utils.cloneNodes",a.a.Bb);a.b("utils.extend",a.a.extend);a.b("utils.objectMap",a.a.ua);a.b("utils.peekObservable",a.a.Ic);a.b("utils.registerEventHandler",a.a.L);a.b("utils.stringifyJson",a.a.Dd);a.b("utils.toggleDomNodeCssClass",a.a.rb);a.b("utils.triggerEvent",a.a.sb);a.b("utils.unwrapObservable",a.a.h);a.b("utils.objectForEach",a.a.K);a.b("utils.setTextContent",a.a.qb);a.b("unwrap",a.a.h);a.a.c=new function(){var b=0,c="__ko__"+Date.now(),e=(g,f)=>{var h=g[c];!h&&f&&(h=g[c]={});return h}; -return{get:(g,f)=>(g=e(g,!1))&&g[f],set:(g,f,h)=>{(g=e(g,void 0!==h))&&(g[f]=h)},Ib:(g,f,h)=>{g=e(g,!0);return g[f]||(g[f]=h)},clear:g=>g[c]?(delete g[c],!0):!1,da:()=>b++ +c}};a.b("utils.domData",a.a.c);a.b("utils.domData.clear",a.a.c.clear);a.a.M=new function(){function b(d,l){var k=a.a.c.get(d,g);void 0===k&&l&&(k=[],a.a.c.set(d,g,k));return k}function c(d){var l=b(d,!1);if(l){l=l.slice(0);for(var k=0;k{if("function"!=typeof l)throw Error("Callback must be a function");b(d,!0).push(l)},nb:(d,l)=>{var k=b(d,!1);k&&(a.a.Da(k,l),0==k.length&&a.a.c.set(d,g,void 0))},ja:d=>{a.o.F(()=>{f[d.nodeType]&&(c(d),h[d.nodeType]&&e(d.getElementsByTagName("*")))});return d},removeNode:d=>{a.ja(d);d.parentNode&&d.parentNode.removeChild(d)}}}; -a.ja=a.a.M.ja;a.removeNode=a.a.M.removeNode;a.b("cleanNode",a.ja);a.b("removeNode",a.removeNode);a.b("utils.domNodeDisposal",a.a.M);a.b("utils.domNodeDisposal.addDisposeCallback",a.a.M.Ca);a.b("utils.domNodeDisposal.removeDisposeCallback",a.a.M.nb);(()=>{var b=[0,"",""],c=[1,"","
"],e=[3,"","
"],g=[1,""],f={thead:c,tbody:c,tfoot:c,tr:[2,"","
"],td:e,th:e,option:g,optgroup:g};a.a.Ma= -(h,d)=>{var l=d;l||(l=W);d=l.parentWindow||l.defaultView||E;var k=a.a.Xb(h).toLowerCase();l=l.createElement("div");var m=(k=k.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&f[k[1]]||b;k=m[0];h="ignored
"+m[1]+h+m[2]+"
";for("function"==typeof d.innerShiv?l.append(d.innerShiv(h)):l.innerHTML=h;k--;)l=l.lastChild;return a.a.ta(l.lastChild.childNodes)};a.a.vd=(h,d)=>{h=a.a.Ma(h,d);return h.length&&h[0].parentElement||a.a.Mb(h)};a.a.Vb=(h,d)=>{a.a.Hb(h);d=a.a.h(d);if(null!==d&&void 0!== -d){"string"!=typeof d&&(d=d.toString());d=a.a.Ma(d,h.ownerDocument);for(var l=0;l{if("function"!=typeof e)throw Error("You can only pass a function to ko.memoization.memoize()");var g= -(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);c[g]=e;return"\x3c!--[ko_memo:"+g+"]--\x3e"},Nc:(e,g)=>{var f=c[e];if(void 0===f)throw Error("Couldn't find any memo with ID "+e+". Perhaps it's already been unmemoized.");try{return f.apply(null,g||[]),!0}finally{delete c[e]}},Oc:(e,g)=>{var f=[];b(e,f);e=0;for(var h=f.length;e(e=e.match(/^\[ko_memo:(.*?)\]$/))?e[1]:null}}();a.b("memoization",a.X);a.b("memoization.memoize",a.X.Lb);a.b("memoization.unmemoize",a.X.Nc);a.b("memoization.parseMemoText",a.X.Hc);a.b("memoization.unmemoizeDomNodeAndDescendants",a.X.Oc);a.xa=(()=>{function b(){if(e)for(var d=e,l=0,k;fd){if(5E3<=++l){f=e;a.a.wc(Error("'Too much recursion' after processing "+l+" task groups."));break}d=e}try{k()}catch(m){a.a.wc(m)}}f=e=c.length=0}var c=[],e=0,g=1,f=0,h=(d=>{var l=W.createElement("div"); -(new MutationObserver(d)).observe(l,{attributes:!0});return()=>l.classList.toggle("foo")})(b);return{ob:d=>{e||h(b);c[e++]=d;return g++},cancel:d=>{d-=g-e;d>=f&&d{b.throttleEvaluation=c;var e=null;return a.W({read:b,write:g=>{clearTimeout(e);e=a.a.setTimeout(()=>b(g),c)}})},rateLimit:(b,c)=>{if("number"==typeof c)var e=c;else{e=c.timeout;var g=c.method}b.vb=!1;var f="function"==typeof g?g:"notifyWhenChangesStop"== -g?P:L;b.lb(h=>f(h,e,c))},deferred:(b,c)=>{if(!0!==c)throw Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.");b.vb||(b.vb=!0,b.lb(e=>{var g,f=!1;return()=>{if(!f){a.xa.cancel(g);g=a.xa.ob(e);try{f=!0,b.notifySubscribers(void 0,"dirty")}finally{f=!1}}}}))},notify:(b,c)=>{b.equalityComparer="always"==c?null:I}};var ja={undefined:1,"boolean":1,number:1,string:1};a.b("extenders",a.Ha);a.Yb=function(b,c,e){this.Z=b;this.bc=c;this.cc= -e;this.wb=!1;this.Sa=this.xb=null;a.H(this,"dispose",this.m);a.H(this,"disposeWhenNodeIsRemoved",this.l)};a.Yb.prototype.m=function(){this.wb||(this.Sa&&a.a.M.nb(this.xb,this.Sa),this.wb=!0,this.cc(),this.Z=this.bc=this.cc=this.xb=this.Sa=null)};a.Yb.prototype.l=function(b){this.xb=b;a.a.M.Ca(b,this.Sa=this.m.bind(this))};a.O=function(){a.a.pb(this,Q);Q.fb(this)};var Q={fb:b=>{b.P={change:[]};b.jc=1},subscribe:function(b,c,e){var g=this;e=e||"change";var f=new a.Yb(g,c?b.bind(c):b,()=>{a.a.Da(g.P[e], -f);g.Ua&&g.Ua(e)});g.Ea&&g.Ea(e);g.P[e]||(g.P[e]=[]);g.P[e].push(f);return f},notifySubscribers:function(b,c){c=c||"change";"change"===c&&this.ub();if(this.Ka(c)){c="change"===c&&this.Pc||this.P[c].slice(0);try{a.o.oc();for(var e=0,g;g=c[e];++e)g.wb||g.bc(b)}finally{a.o.end()}}},cb:function(){return this.jc},ld:function(b){return this.cb()!==b},ub:function(){++this.jc},lb:function(b){var c=this,e=a.T(c),g,f,h,d,l;c.Ta||(c.Ta=c.notifySubscribers,c.notifySubscribers=Z);var k=b(()=>{c.za=!1;e&&d===c&& -(d=c.dc?c.dc():c());var m=f||l&&c.hb(h,d);l=f=g=!1;m&&c.Ta(h=d)});c.hc=(m,n)=>{n&&c.za||(l=!n);c.Pc=c.P.change.slice(0);c.za=g=!0;d=m;k()};c.fc=m=>{g||(h=m,c.Ta(m,"beforeChange"))};c.ic=()=>{l=!0};c.Rc=()=>{c.hb(h,c.A(!0))&&(f=!0)}},Ka:function(b){return this.P[b]&&this.P[b].length},jd:function(b){if(b)return this.P[b]&&this.P[b].length||0;var c=0;a.a.K(this.P,(e,g)=>{"dirty"!==e&&(c+=g.length)});return c},hb:function(b,c){return!this.equalityComparer||!this.equalityComparer(b,c)},toString:()=>"[object Object]", -extend:function(b){var c=this;b&&a.a.K(b,(e,g)=>{e=a.Ha[e];"function"==typeof e&&(c=e(c,g)||c)});return c}};a.H(Q,"init",Q.fb);a.H(Q,"subscribe",Q.subscribe);a.H(Q,"extend",Q.extend);a.H(Q,"getSubscriptionsCount",Q.jd);a.a.qa&&a.a.setPrototypeOf(Q,Function.prototype);a.O.fn=Q;a.Ec=b=>null!=b&&"function"==typeof b.subscribe&&"function"==typeof b.notifySubscribers;a.b("subscribable",a.O);a.b("isSubscribable",a.Ec);a.ka=a.o=(()=>{function b(h){e.push(g);g=h}function c(){g=e.pop()}var e=[],g,f=0;return{oc:b, -end:c,Sb:h=>{if(g){if(!a.Ec(h))throw Error("Only subscribable things can act as dependencies");g.Zc.call(g.$c,h,h.Qc||(h.Qc=++f))}},F:(h,d,l)=>{try{return b(),h.apply(d,l||[])}finally{c()}},bb:()=>{if(g)return g.s.bb()},Ja:()=>{if(g)return g.s.Ja()},ib:()=>{if(g)return g.ib},s:()=>{if(g)return g.s}}})();a.b("computedContext",a.ka);a.b("computedContext.getDependenciesCount",a.ka.bb);a.b("computedContext.getDependencies",a.ka.Ja);a.b("computedContext.isInitial",a.ka.ib);a.b("computedContext.registerDependency", -a.ka.Sb);a.b("ignoreDependencies",a.Cd=a.o.F);var T=Symbol("_latestValue");a.na=b=>{function c(){if(0{if((b="function"==typeof b&&b[U])&&b!==R[U]&&b!==a.s.fn[U])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!b};a.kb=b=>"function"==typeof b&&(b[U]===R[U]||b[U]===a.s.fn[U]&&b.Bc);a.b("observable",a.na);a.b("isObservable",a.T);a.b("isWriteableObservable",a.kb);a.b("isWritableObservable",a.kb);a.b("observable.fn",R);a.H(R,"peek",R.A);a.H(R, -"valueHasMutated",R.Pa);a.H(R,"valueWillMutate",R.Qa);a.va=b=>{b=b||[];if("object"!=typeof b||!("length"in b))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");b=a.na(b);a.a.pb(b,a.va.fn);return b.extend({trackArrayChanges:!0})};a.va.fn={remove:function(b){for(var c=this.A(),e=[],g="function"!=typeof b||a.T(b)?function(d){return d===b}:b,f=0;f{a.va.fn[b]=function(){var c=this.A();this.Qa();this.qc(c,b,arguments);var e=c[b].apply(c,arguments);this.Pa();return e=== -c?this:e}});a.a.R(["slice"],b=>{a.va.fn[b]=function(){var c=this();return c[b].apply(c,arguments)}});a.Dc=b=>a.T(b)&&"function"==typeof b.remove&&"function"==typeof b.push;a.b("observableArray",a.va);a.b("isObservableArray",a.Dc);a.Ha.trackArrayChanges=(b,c)=>{function e(){function p(){if(l){var r=[].concat(b.A()||[]);if(b.Ka("arrayChange")){if(!f||1++l,null,"spectate"),k= -[].concat(b.A()||[]),f=null,h=b.subscribe(p))}b.Cb={};c&&"object"==typeof c&&a.a.extend(b.Cb,c);b.Cb.sparse=!0;if(!b.qc){var g=!1,f=null,h,d,l=0,k,m=b.Ea,n=b.Ua;b.Ea=p=>{m&&m.call(b,p);"arrayChange"===p&&e()};b.Ua=p=>{n&&n.call(b,p);"arrayChange"!==p||b.Ka("arrayChange")||(h&&h.m(),d&&d.m(),d=h=null,g=!1,k=void 0)};b.qc=(p,r,w)=>{function x(F,y,C){return v[v.length]={status:F,value:y,index:C}}if(g&&!l){var v=[],z=p.length,B=w.length,q=0;switch(r){case "push":q=z;case "unshift":for(r=0;rw[0]?z+w[0]:w[0]),z);z=1===B?z:Math.min(r+(w[1]||0),z);B=r+B-2;q=Math.max(z,B);for(var u=[],t=[],A=2;rb[e.Aa]=e.Z);return b},Jb:function(b){if(!this[D].S)return!1;var c=this.Ja();return-1!==a.a.$(c,b)?!0:!!a.a.zb(c,e=>e.Jb&&e.Jb(b))},lc:function(b,c,e){if(this[D].mb&& -c===this)throw Error("A 'pure' computed must not be called recursively");this[D].D[b]=e;e.Aa=this[D].S++;e.Ba=c.cb()},La:function(){var b,c=this[D].D;for(b in c)if(Object.prototype.hasOwnProperty.call(c,b)){var e=c[b];if(this.ya&&e.Z.za||e.Z.ld(e.Ba))return!0}},qd:function(){this.ya&&!this[D].gb&&this.ya(!1)},ga:function(){var b=this[D];return b.ha||0{c.m();e.m()}}}return b.subscribe(this.xc,this)},xc:function(){var b=this,c=b.throttleEvaluation;c&&0<=c?(clearTimeout(this[D].yc),this[D].yc=a.a.setTimeout(()=>b.ca(!0),c)):b.ya?b.ya(!0):b.ca(!0)},ca:function(b){var c=this[D],e=c.Fa,g=!1;if(!c.gb&&!c.la){if(c.l&&!a.a.Gb(c.l)||e&&e()){if(!c.Zb){this.m();return}}else c.Zb=!1;c.gb=!0;try{g=this.hd(b)}finally{c.gb=!1}return g}},hd:function(b){var c=this[D],e=c.mb?void 0:!c.S;var g={ad:this,$a:c.D,Eb:c.S};a.o.oc({$c:g,Zc:la,s:this, -ib:e});c.D={};c.S=0;var f=this.gd(c,g);c.S?g=this.hb(c.U,f):(this.m(),g=!0);g&&(c.G?this.ub():this.notifySubscribers(c.U,"beforeChange"),c.U=f,this.notifySubscribers(c.U,"spectate"),!c.G&&b&&this.notifySubscribers(c.U),this.ic&&this.ic());e&&this.notifySubscribers(c.U,"awake");return g},gd:(b,c)=>{try{var e=b.Jc;return b.ab?e.call(b.ab):e()}finally{a.o.end(),c.Eb&&!b.G&&a.a.K(c.$a,ka),b.ma=b.ha=!1}},A:function(b){var c=this[D];(c.ha&&(b||!c.S)||c.G&&this.La())&&this.ca();return c.U},lb:function(b){a.O.fn.lb.call(this, -b);this.dc=function(){this[D].G||(this[D].ma?this.ca():this[D].ha=!1);return this[D].U};this.ya=function(c){this.fc(this[D].U);this[D].ha=!0;c&&(this[D].ma=!0);this.hc(this,!c)}},m:function(){var b=this[D];!b.G&&b.D&&a.a.K(b.D,(c,e)=>e.m&&e.m());b.l&&b.Fb&&a.a.M.nb(b.l,b.Fb);b.D=void 0;b.S=0;b.la=!0;b.ma=!1;b.ha=!1;b.G=!1;b.l=void 0;b.Fa=void 0;b.Jc=void 0;this.Bc||(b.ab=void 0)}},ma={Ea:function(b){var c=this,e=c[D];if(!e.la&&e.G&&"change"==b){e.G=!1;if(e.ma||c.La())e.D=null,e.S=0,c.ca()&&c.ub(); -else{var g=[];a.a.K(e.D,(f,h)=>g[h.Aa]=f);a.a.R(g,(f,h)=>{var d=e.D[f],l=c.Mc(d.Z);l.Aa=h;l.Ba=d.Ba;e.D[f]=l});c.La()&&c.ca()&&c.ub()}e.la||c.notifySubscribers(e.U,"awake")}},Ua:function(b){var c=this[D];c.la||"change"!=b||this.Ka("change")||(a.a.K(c.D,(e,g)=>{g.m&&(c.D[e]={Z:g.Z,Aa:g.Aa,Ba:g.Ba},g.m())}),c.G=!0,this.notifySubscribers(void 0,"asleep"))},cb:function(){var b=this[D];b.G&&(b.ma||this.La())&&this.ca();return a.O.fn.cb.call(this)}},na={Ea:function(b){"change"!=b&&"beforeChange"!=b||this.A()}}; -a.a.qa&&a.a.setPrototypeOf(M,a.O.fn);var ba=a.na.Sc;M[ba]=a.s;a.Cc=b=>"function"==typeof b&&b[ba]===M[ba];a.nd=b=>a.Cc(b)&&b[D]&&b[D].mb;a.b("computed",a.s);a.b("dependentObservable",a.s);a.b("isComputed",a.Cc);a.b("isPureComputed",a.nd);a.b("computed.fn",M);a.H(M,"peek",M.A);a.H(M,"dispose",M.m);a.H(M,"isActive",M.ga);a.H(M,"getDependenciesCount",M.bb);a.H(M,"getDependencies",M.Ja);a.Rb=(b,c)=>{if("function"===typeof b)return a.s(b,c,{pure:!0});b=a.a.extend({},b);b.pure=!0;return a.s(b,c)};a.b("pureComputed", -a.Rb);a.Bd=(b,c,e)=>{function g(f){var h=a.Rb(b,e).extend({notify:"always"}),d=h.subscribe(l=>{l&&(d.m(),f(l))});h.notifySubscribers(h.A());return d}return c?g(c.bind(e)):new Promise(g)};a.b("when",a.Bd);(()=>{a.v={N:b=>{switch(a.a.ia(b)){case "option":return!0===b.__ko__hasDomDataOptionValue__?a.a.c.get(b,a.f.options.Ob):b.value;case "select":return 0<=b.selectedIndex?a.v.N(b.options[b.selectedIndex]):void 0;default:return b.value}},Ra:(b,c,e)=>{switch(a.a.ia(b)){case "option":"string"===typeof c? -(a.a.c.set(b,a.f.options.Ob,void 0),delete b.__ko__hasDomDataOptionValue__,b.value=c):(a.a.c.set(b,a.f.options.Ob,c),b.__ko__hasDomDataOptionValue__=!0,b.value="number"===typeof c?c:"");break;case "select":if(""===c||null===c)c=void 0;for(var g=-1,f=0,h=b.options.length,d;f{function b(l){l=a.a.Xb(l);123===l.charCodeAt(0)&&(l=l.slice(1,-1));l+="\n,";var k=[],m=l.match(g),n=[],p=0;if(1=p){k.push(v&&n.length?{key:v,value:n.join("")}:{unknown:v||n.join("")});var v=p=0;n=[];continue}}else if(58===x){if(!p&&!v&&1===n.length){v=n.pop();continue}}else if(47===x&&1m(x.key||x.unknown,x.value));p.length&&m("_ko_property_writers","{"+p.join(",")+" }");return n.join(",")},pd:(l,k)=>{for(var m=0;m{if(l&&a.T(l))!a.kb(l)||p&&l.A()===n||l(n);else if((l=k.get("_ko_property_writers"))&&l[m])l[m](n)}}})();a.b("expressionRewriting",a.u);a.b("expressionRewriting.bindingRewriteValidators",a.u.Ya);a.b("expressionRewriting.parseObjectLiteral",a.u.Pb);a.b("expressionRewriting.preProcessBindings", -a.u.Qb);(()=>{function b(d){return 8==d.nodeType&&g.test(d.nodeValue)}function c(d){return 8==d.nodeType&&f.test(d.nodeValue)}function e(d,l){for(var k=d,m=1,n=[];k=k.nextSibling;){if(c(k)&&(a.a.c.set(k,h,!0),m--,0===m))return n;n.push(k);b(k)&&m++}if(!l)throw Error("Cannot find closing comment tag to match: "+d.nodeValue);return null}var g=/^\s*ko(?:\s+([\s\S]+))?\s*$/,f=/^\s*\/ko\s*$/,h="__ko_matchedEndComment__";a.g={oa:{},childNodes:d=>b(d)?e(d):d.childNodes,Ga:d=>{if(b(d)){d=a.g.childNodes(d); -for(var l=0,k=d.length;l{if(b(d)){a.g.Ga(d);d=d.nextSibling;for(var k=0,m=l.length;k{if(b(d)){var k=d.nextSibling;d=d.parentNode}else k=d.firstChild;d.insertBefore(l,k)},Kb:(d,l,k)=>{k?(k=k.nextSibling,b(d)&&(d=d.parentNode),d.insertBefore(l,k)):a.g.prepend(d,l)},firstChild:d=>{if(!b(d)){if(d.firstChild&&c(d.firstChild))throw Error("Found invalid end comment, as the first child of "+ -d);return d.firstChild}return!d.nextSibling||c(d.nextSibling)?null:d.nextSibling},nextSibling:d=>{if(b(d)){var l=e(d,void 0);d=l?0(d=d.nodeValue.match(g))?d[1]:null}})();a.b("virtualElements",a.g);a.b("virtualElements.allowedBindings",a.g.oa); -a.b("virtualElements.emptyNode",a.g.Ga);a.b("virtualElements.insertAfter",a.g.Kb);a.b("virtualElements.prepend",a.g.prepend);a.b("virtualElements.setDomNodeChildren",a.g.wa);(function(){a.ba=function(){this.Yc={}};a.a.extend(a.ba.prototype,{nodeHasBindings:b=>{switch(b.nodeType){case 1:return null!=b.getAttribute("data-bind")||a.j.getComponentNameForNode(b);case 8:return a.g.kd(b);default:return!1}},getBindings:function(b,c){var e=this.getBindingsString(b,c);e=e?this.parseBindingsString(e,c,b):null; -return a.j.kc(e,b,c,!1)},getBindingAccessors:function(b,c){var e=this.getBindingsString(b,c);e=e?this.parseBindingsString(e,c,b,{valueAccessors:!0}):null;return a.j.kc(e,b,c,!0)},getBindingsString:b=>{switch(b.nodeType){case 1:return b.getAttribute("data-bind");case 8:return a.g.Ad(b)}return null},parseBindingsString:function(b,c,e,g){try{var f=this.Yc,h=b+(g&&g.valueAccessors||""),d;if(!(d=f[h])){var l="with($context){with($data||{}){return{"+a.u.Qb(b,g)+"}}}";var k=new Function("$context","$element", -l);d=f[h]=k}return d(c,e)}catch(m){throw m.message="Unable to parse bindings.\nBindings value: "+b+"\nMessage: "+m.message,m;}}});a.ba.instance=new a.ba})();a.b("bindingProvider",a.ba);(()=>{function b(q){var u=(q=a.a.c.get(q,B))&&q.I;u&&(q.I=null,u.Gc())}function c(q,u,t){this.node=q;this.pc=u;this.Xa=[];this.J=!1;u.I||a.a.M.Ca(q,b);t&&t.I&&(t.I.Xa.push(q),this.yb=t)}function e(q){return function(){return q}}function g(q){return q()}function f(q){return a.a.ua(a.o.F(q),function(u,t){return function(){return q()[t]}})} -function h(q,u,t){return"function"===typeof q?f(q.bind(null,u,t)):a.a.ua(q,e)}function d(q,u){return f(this.getBindings.bind(this,q,u))}function l(q,u){var t=a.g.firstChild(u);if(t){var A,F=a.ba.instance,y=F.preprocessNode;if(y){for(;A=t;)t=a.g.nextSibling(A),y.call(F,A);t=a.g.firstChild(u)}for(;A=t;)t=a.g.nextSibling(A),k(q,A)}a.i.notify(u,a.i.J)}function k(q,u){var t=q;if(1===u.nodeType||a.ba.instance.nodeHasBindings(u))t=n(u,null,q).bindingContextForDescendants;t&&!v[a.a.ia(u)]&&l(t,u)}function m(q){var u= -[],t={},A=[];a.a.K(q,function C(y){if(!t[y]){var N=a.getBindingHandler(y);N&&(N.after&&(A.push(y),a.a.R(N.after,function(G){if(q[G]){if(-1!==a.a.$(A,G))throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+A.join(", "));C(G)}}),A.length--),u.push({key:y,Ac:N}));t[y]=!0}});return u}function n(q,u,t){var A=a.a.c.Ib(q,B,{}),F=A.Tc;if(!u){if(F)throw Error("You cannot apply bindings multiple times to the same element.");A.Tc=!0}F||(A.context=t);A.Nb||(A.Nb={});if(u&& -"function"!==typeof u)var y=u;else{var C=a.ba.instance,N=C.getBindingAccessors||d,G=a.W(function(){if(y=u?u(t,q):N.call(C,q,t)){if(t[r])t[r]();if(t[x])t[x]()}return y},null,{l:q});y&&G.ga()||(G=null)}var J=t,K;if(y){var O=G?H=>()=>(0,G()[H])():H=>y[H];function S(){return a.a.ua(G?G():y,g)}S.get=H=>y[H]&&O(H)();S.has=H=>H in y;a.i.J in y&&a.i.subscribe(q,a.i.J,()=>{var H=(0,y[a.i.J])();if(H){var X=a.g.childNodes(q);X.length&&H(X,a.uc(X[0]))}});a.i.ra in y&&(J=a.i.Wb(q,t),a.i.subscribe(q,a.i.ra,function(){var H= -(0,y[a.i.ra])();H&&a.g.firstChild(q)&&H(q)}));A=m(y);a.a.R(A,function(H){var X=H.Ac.init,da=H.Ac.update,V=H.key;if(8===q.nodeType&&!a.g.oa[V])throw Error("The binding '"+V+"' cannot be used with virtual elements");try{"function"==typeof X&&a.o.F(()=>{var Y=X(q,O(V),S,J.$data,J);if(Y&&Y.controlsDescendantBindings){if(void 0!==K)throw Error("Multiple bindings ("+K+" and "+V+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element."); -K=V}}),"function"==typeof da&&a.W(()=>da(q,O(V),S,J.$data,J),null,{l:q})}catch(Y){throw Y.message='Unable to process binding "'+V+": "+y[V]+'"\nMessage: '+Y.message,Y;}})}A=void 0===K;return{shouldBindDescendants:A,bindingContextForDescendants:A&&J}}function p(q,u){return q&&q instanceof a.aa?q:new a.aa(q,void 0,void 0,u)}var r=Symbol("_subscribable"),w=Symbol("_ancestorBindingInfo"),x=Symbol("_dataDependency");a.f={};var v={script:!0,textarea:!0,template:!0};a.getBindingHandler=q=>a.f[q];var z={}; -a.aa=function(q,u,t,A,F){function y(){var S=J?G():G,H=a.a.h(S);u?(a.a.extend(C,u),w in u&&(C[w]=u[w])):(C.$parents=[],C.$root=H,C.ko=a);C[r]=O;N?H=C.$data:(C.$rawData=S,C.$data=H);t&&(C[t]=H);A&&A(C,u,H);if(u&&u[r]&&!a.ka.s().Jb(u[r]))u[r]();K&&(C[x]=K);return C.$data}var C=this,N=q===z,G=N?void 0:q,J="function"==typeof G&&!a.T(G),K=F&&F.dataDependency;if(F&&F.exportDependencies)y();else{var O=a.Rb(y);O.A();O.ga()?O.equalityComparer=null:C[r]=void 0}};a.aa.prototype.createChildContext=function(q, -u,t,A){!A&&u&&"object"==typeof u&&(A=u,u=A.as,t=A.extend);if(u&&A&&A.noChildContext){var F="function"==typeof q&&!a.T(q);return new a.aa(z,this,null,y=>{t&&t(y);y[u]=F?q():q},A)}return new a.aa(q,this,u,(y,C)=>{y.$parentContext=C;y.$parent=C.$data;y.$parents=(C.$parents||[]).slice(0);y.$parents.unshift(y.$parent);t&&t(y)},A)};a.aa.prototype.extend=function(q,u){return new a.aa(z,this,null,t=>a.a.extend(t,"function"==typeof q?q(t):q),u)};var B=a.a.c.da();c.prototype.Gc=function(){this.yb&&this.yb.I&& -this.yb.I.cd(this.node)};c.prototype.cd=function(q){a.a.Da(this.Xa,q);!this.Xa.length&&this.J&&this.tc()};c.prototype.tc=function(){this.J=!0;this.pc.I&&!this.Xa.length&&(this.pc.I=null,a.a.M.nb(this.node,b),a.i.notify(this.node,a.i.ra),this.Gc())};a.i={J:"childrenComplete",ra:"descendantsComplete",subscribe:(q,u,t,A,F)=>{var y=a.a.c.Ib(q,B,{});y.sa||(y.sa=new a.O);F&&F.notifyImmediately&&y.Nb[u]&&a.o.F(t,A,[q]);return y.sa.subscribe(t,A,u)},notify:(q,u)=>{var t=a.a.c.get(q,B);if(t&&(t.Nb[u]=!0,t.sa&& -t.sa.notifySubscribers(q,u),u==a.i.J))if(t.I)t.I.tc();else if(void 0===t.I&&t.sa&&t.sa.Ka(a.i.ra))throw Error("descendantsComplete event not supported for bindings on this node");},Wb:(q,u)=>{var t=a.a.c.Ib(q,B,{});t.I||(t.I=new c(q,t,u[w]));return u[w]==t?u:u.extend(A=>{A[w]=t})}};a.yd=q=>(q=a.a.c.get(q,B))&&q.context;a.Va=(q,u,t)=>n(q,u,p(t));a.Wc=(q,u,t)=>{t=p(t);return a.Va(q,h(u,t,q),t)};a.nc=(q,u)=>{1!==u.nodeType&&8!==u.nodeType||l(p(q),u)};a.mc=function(q,u,t){if(2>arguments.length){if(u= -W.body,!u)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?");}else if(!u||1!==u.nodeType&&8!==u.nodeType)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");k(p(q,t),u)};a.bd=q=>{if(q&&(1===q.nodeType||8===q.nodeType))return a.yd(q)};a.uc=q=>(q=a.bd(q))?q.$data:void 0;a.b("bindingHandlers",a.f);a.b("bindingEvent",a.i);a.b("bindingEvent.subscribe",a.i.subscribe);a.b("bindingEvent.startPossiblyAsyncContentBinding", -a.i.Wb);a.b("applyBindings",a.mc);a.b("applyBindingsToDescendants",a.nc);a.b("applyBindingAccessorsToNode",a.Va);a.b("applyBindingsToNode",a.Wc);a.b("dataFor",a.uc)})();(()=>{function b(d,l){return Object.prototype.hasOwnProperty.call(d,l)?d[l]:void 0}function c(d,l){var k=b(f,d);if(k)k.subscribe(l);else{k=f[d]=new a.O;k.subscribe(l);e(d,(n,p)=>{p=!(!p||!p.synchronous);h[d]={definition:n,od:p};delete f[d];m||p?k.notifySubscribers(n):a.xa.ob(()=>k.notifySubscribers(n))});var m=!0}}function e(d,l){g("getConfig", -[d],k=>{k?g("loadComponent",[d,k],m=>l(m,k)):l(null,null)})}function g(d,l,k,m){m||(m=a.j.loaders.slice(0));var n=m.shift();if(n){var p=n[d];if(p){var r=!1;if(void 0!==p.apply(n,l.concat(function(w){r?k(null):null!==w?k(w):g(d,l,k,m)}))&&(r=!0,!n.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.");}else g(d,l,k,m)}else k(null)}var f={},h={};a.j={get:(d,l)=>{var k=b(h,d);k?k.od?a.o.F(()=>l(k.definition)):a.xa.ob(()=> -l(k.definition)):c(d,l)},sc:d=>delete h[d],ec:g};a.j.loaders=[];a.b("components",a.j);a.b("components.get",a.j.get);a.b("components.clearCachedDefinition",a.j.sc)})();(()=>{function b(d,l,k,m){var n={},p=2;l=k.template;k=k.viewModel;l?a.j.ec("loadTemplate",[d,l],r=>{n.template=r;0===--p&&m(n)}):0===--p&&m(n);k?a.j.ec("loadViewModel",[d,k],r=>{n[h]=r;0===--p&&m(n)}):0===--p&&m(n)}function c(d,l,k){if("function"===typeof l)k(n=>new l(n));else if("function"===typeof l[h])k(l[h]);else if("instance"in -l){var m=l.instance;k(()=>m)}else"viewModel"in l?c(d,l.viewModel,k):d("Unknown viewModel value: "+l)}function e(d){if("template"==a.a.ia(d)&&d.content instanceof DocumentFragment)return a.a.Bb(d.content.childNodes);throw"Template Source Element not a