(function(){var n=!1;(function(t){var u=this||eval("this"),i=u.document,e=u.navigator,r=u.jQuery,f=u.JSON;(function(n){typeof define=="function"&&define.amd?define(["exports","require"],n):typeof exports=="object"&&typeof module=="object"?n(module.exports||exports):n(u.ko={})})(function(o,s){function nt(n,t){var i=n===null||typeof n in ft;return i?n===t:!1}function et(n,i){var r;return function(){r||(r=h.utils.setTimeout(function(){r=t;n()},i))}}function ot(n,t){var i;return function(){clearTimeout(i);i=h.utils.setTimeout(n,t)}}function st(n){var t=this;return n&&h.utils.objectForEach(n,function(n,i){var r=h.extenders[n];typeof r=="function"&&(t=r(t,i)||t)}),t}function ht(n,t){t&&t!==w?t==="beforeChange"?this._limitBeforeChange(n):this._origNotifySubscribers(n,t):this._limitChange(n)}function ct(n,t){t!==null&&t.dispose&&t.dispose()}function lt(n,t){var i=this.computedObservable,r=i[c];r.isDisposed||(this.disposalCount&&this.disposalCandidates[t]?(i.addDependencyTracking(t,n,this.disposalCandidates[t]),this.disposalCandidates[t]=null,--this.disposalCount):r.dependencyTracking[t]||i.addDependencyTracking(t,n,r.isSleeping?{_target:n}:i.subscribeToDependency(n)))}function yt(n){h.bindingHandlers[n]={init:function(t,i,r,u,f){var e=function(){var t={};return t[n]=i(),t};return h.bindingHandlers.event.init.call(this,t,e,r,u,f)}}}function ut(n,t,i,r){h.bindingHandlers[n]={init:function(n,u,f,e,o){var c,s;return h.computed(function(){var l=h.utils.unwrapObservable(u()),f=!i!=!l,e=!s,a=e||t||f!==c;a&&(e&&h.computedContext.getDependenciesCount()&&(s=h.utils.cloneNodes(h.virtualElements.childNodes(n),!0)),f?(e||h.virtualElements.setDomNodeChildren(n,h.utils.cloneNodes(s)),h.applyBindingsToDescendants(r?r(o,l):o,n)):h.virtualElements.emptyNode(n),c=f)},null,{disposeWhenNodeIsRemoved:n}),{controlsDescendantBindings:!0}}};h.expressionRewriting.bindingRewriteValidators[n]=!1;h.virtualElements.allowedBindings[n]=!0}var h=typeof o!="undefined"?o:{},ft,w,a,y,v,p,b,c,tt,it,rt,k,d,g;h.exportSymbol=function(n,t){for(var i=n.split("."),r=h,u=0;u<\/i>",u[0];);return n>4?n:t}(),g=o===6,nt=o===7;return s=/\S+/g,{fieldsIncludedWithJsonPost:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],arrayForEach:function(n,t){for(var i=0,r=n.length;i0?n.splice(i,1):i===0&&n.shift()},arrayGetDistinctValues:function(n){var i,t,r;for(n=n||[],i=[],t=0,r=n.length;t0){for(f=r[0],e=f.parentNode,i=0,u=t.length;i1&&n[n.length-1].parentNode!==t)n.length--;if(n.length>1){var i=n[0],r=n[n.length-1];for(n.length=0;i!==r;)n.push(i),i=i.nextSibling;n.push(r)}}return n},setOptionNodeSelectionState:function(n,t){o<7?n.setAttribute("selected",t):n.selected=t},stringTrim:function(n){return n===null||n===t?"":n.trim?n.trim():n.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},stringStartsWith:function(n,t){return(n=n||"",t.length>n.length)?!1:n.substring(0,t.length)===t},domNodeIsContainedBy:function(n,t){if(n===t)return!0;if(n.nodeType===11)return!1;if(t.contains)return t.contains(n.nodeType===3?n.parentNode:n);if(t.compareDocumentPosition)return(t.compareDocumentPosition(n)&16)==16;while(n&&n!=t)n=n.parentNode;return!!n},domNodeIsAttachedToDocument:function(n){return h.utils.domNodeIsContainedBy(n,n.ownerDocument.documentElement)},anyDomNodeIsAttachedToDocument:function(n){return!!h.utils.arrayFirst(n,h.utils.domNodeIsAttachedToDocument)},tagNameLower:function(n){return n&&n.tagName&&n.tagName.toLowerCase()},catchFunctionErrors:function(n){return h.onError?function(){try{return n.apply(this,arguments)}catch(t){h.onError&&h.onError(t);throw t;}}:n},setTimeout:function(n,t){return setTimeout(h.utils.catchFunctionErrors(n),t)},deferError:function(n){setTimeout(function(){h.onError&&h.onError(n);throw n;},0)},registerEventHandler:function(n,t,i){var u=h.utils.catchFunctionErrors(i),s=o&&d[t],f,e;if(h.options.useOnlyNativeEvents||s||!r)if(s||typeof n.addEventListener!="function")if(typeof n.attachEvent!="undefined")f=function(t){u.call(n,t)},e="on"+t,n.attachEvent(e,f),h.utils.domNodeDisposal.addDisposeCallback(n,function(){n.detachEvent(e,f)});else throw new Error("Browser doesn't support addEventListener or attachEvent");else n.addEventListener(t,u,!1);else r(n).bind(t,u)},triggerEvent:function(n,t){var f,o,e;if(!(n&&n.nodeType))throw new Error("element must be a DOM node when calling triggerEvent");if(f=tt(n,t),h.options.useOnlyNativeEvents||!r||f)if(typeof i.createEvent=="function")if(typeof n.dispatchEvent=="function")o=p[t]||"HTMLEvents",e=i.createEvent(o),e.initEvent(t,!0,!0,u,0,0,0,0,0,!1,!1,!1,!1,0,n),n.dispatchEvent(e);else throw new Error("The supplied element doesn't support dispatchEvent");else if(f&&n.click)n.click();else if(typeof n.fireEvent!="undefined")n.fireEvent("on"+t);else throw new Error("Browser doesn't support triggering events");else r(n).trigger(t)},unwrapObservable:function(n){return h.isObservable(n)?n():n},peekObservable:function(n){return h.isObservable(n)?n.peek():n},toggleDomNodeCssClass:it,setTextContent:function(n,i){var r=h.utils.unwrapObservable(i),u;(r===null||r===t)&&(r="");u=h.virtualElements.firstChild(n);!u||u.nodeType!=3||h.virtualElements.nextSibling(u)?h.virtualElements.setDomNodeChildren(n,[n.ownerDocument.createTextNode(r)]):u.data=r;h.utils.forceRefresh(n)},setElementName:function(n,t){if(n.name=t,o<=7)try{n.mergeAttributes(i.createElement(""),!1)}catch(r){}},forceRefresh:function(n){if(o>=9){var t=n.nodeType==1?n:n.parentNode;t.style&&(t.style.zoom=t.style.zoom)}},ensureSelectElementIsRenderedCorrectly:function(n){if(o){var t=n.style.width;n.style.width=0;n.style.width=t}},range:function(n,t){var r,i;for(n=h.utils.unwrapObservable(n),t=h.utils.unwrapObservable(t),r=[],i=n;i<=t;i++)r.push(i);return r},makeArray:function(n){for(var i=[],t=0,r=n.length;t=0;i--)f(r[i])&&u.push(r[i]);return u},parseJson:function(n){return typeof n=="string"&&(n=h.utils.stringTrim(n),n)?f&&f.parse?f.parse(n):new Function("return "+n)():null},stringifyJson:function(n,t,i){if(!f||!f.stringify)throw new 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 f.stringify(h.utils.unwrapObservable(n),t,i)},postJson:function(n,t,r){var l,o,s,f,u,a,e;r=r||{};var v=r.params||{},y=r.includeFields||this.fieldsIncludedWithJsonPost,p=n;if(typeof n=="object"&&h.utils.tagNameLower(n)==="form")for(l=n,p=l.action,o=y.length-1;o>=0;o--)for(s=h.utils.getFormFields(l,y[o]),f=s.length-1;f>=0;f--)v[s[f].name]=s[f].value;t=h.utils.unwrapObservable(t);u=i.createElement("form");u.style.display="none";u.action=p;u.method="post";for(a in t)e=i.createElement("input"),e.type="hidden",e.name=a,e.value=h.utils.stringifyJson(h.utils.unwrapObservable(t[a])),u.appendChild(e);c(v,function(n,t){var r=i.createElement("input");r.type="hidden";r.name=n;r.value=t;u.appendChild(r)});i.body.appendChild(u);r.submitter?r.submitter(u):u.submit();setTimeout(function(){u.parentNode.removeChild(u)},0)}}}();h.exportSymbol("utils",h.utils);h.exportSymbol("utils.arrayForEach",h.utils.arrayForEach);h.exportSymbol("utils.arrayFirst",h.utils.arrayFirst);h.exportSymbol("utils.arrayFilter",h.utils.arrayFilter);h.exportSymbol("utils.arrayGetDistinctValues",h.utils.arrayGetDistinctValues);h.exportSymbol("utils.arrayIndexOf",h.utils.arrayIndexOf);h.exportSymbol("utils.arrayMap",h.utils.arrayMap);h.exportSymbol("utils.arrayPushAll",h.utils.arrayPushAll);h.exportSymbol("utils.arrayRemoveItem",h.utils.arrayRemoveItem);h.exportSymbol("utils.extend",h.utils.extend);h.exportSymbol("utils.fieldsIncludedWithJsonPost",h.utils.fieldsIncludedWithJsonPost);h.exportSymbol("utils.getFormFields",h.utils.getFormFields);h.exportSymbol("utils.peekObservable",h.utils.peekObservable);h.exportSymbol("utils.postJson",h.utils.postJson);h.exportSymbol("utils.parseJson",h.utils.parseJson);h.exportSymbol("utils.registerEventHandler",h.utils.registerEventHandler);h.exportSymbol("utils.stringifyJson",h.utils.stringifyJson);h.exportSymbol("utils.range",h.utils.range);h.exportSymbol("utils.toggleDomNodeCssClass",h.utils.toggleDomNodeCssClass);h.exportSymbol("utils.triggerEvent",h.utils.triggerEvent);h.exportSymbol("utils.unwrapObservable",h.utils.unwrapObservable);h.exportSymbol("utils.objectForEach",h.utils.objectForEach);h.exportSymbol("utils.addOrRemoveItem",h.utils.addOrRemoveItem);h.exportSymbol("utils.setTextContent",h.utils.setTextContent);h.exportSymbol("unwrap",h.utils.unwrapObservable);Function.prototype.bind||(Function.prototype.bind=function(n){var t=this,i;return arguments.length===1?function(){return t.apply(n,arguments)}:(i=Array.prototype.slice.call(arguments,1),function(){var r=i.slice(0);return r.push.apply(r,arguments),t.apply(n,r)})});h.utils.domData=new function(){function r(r,f){var e=r[n],o=e&&e!=="null"&&i[e];if(!o){if(!f)return t;e=r[n]="ko"+u++;i[e]={}}return i[e]}var u=0,n="__ko__"+(new Date).getTime(),i={};return{get:function(n,i){var u=r(n,!1);return u===t?t:u[i]},set:function(n,i,u){if(u!==t||r(n,!1)!==t){var f=r(n,!0);f[i]=u}},clear:function(t){var r=t[n];return r?(delete i[r],t[n]=null,!0):!1},nextKey:function(){return u+++n}}};h.exportSymbol("utils.domData",h.utils.domData);h.exportSymbol("utils.domData.clear",h.utils.domData.clear);h.utils.domNodeDisposal=new function(){function i(i,r){var u=h.utils.domData.get(i,n);return u===t&&r&&(u=[],h.utils.domData.set(i,n,u)),u}function o(i){h.utils.domData.set(i,n,t)}function u(n){var t=i(n,!1),r;if(t)for(t=t.slice(0),r=0;r]/);return t&&c[t[1]]||s}function a(n,t){t||(t=i);var e=t.parentWindow||t.defaultView||u,c=h.utils.stringTrim(n).toLowerCase(),r=t.createElement("div"),f=l(c),a=f[0],s="ignored
"+f[1]+n+f[2]+"<\/div>";for(typeof e.innerShiv=="function"?r.appendChild(e.innerShiv(s)):(o&&t.appendChild(r),r.innerHTML=s,o&&r.parentNode.removeChild(r));a--;)r=r.lastChild;return h.utils.makeArray(r.lastChild.childNodes)}function v(n,t){var u,i;if(r.parseHTML)return r.parseHTML(n,t)||[];if(u=r.clean([n],t),u&&u[0]){for(i=u[0];i.parentNode&&i.parentNode.nodeType!==11;)i=i.parentNode;i.parentNode&&i.parentNode.removeChild(i)}return u}var s=[0,"",""],n=[1,"","<\/table>"],f=[3,"
","<\/tr><\/tbody><\/table>"],e=[1,"
","<\/tbody><\/table>"],td:f,th:f,option:e,optgroup:e},o=h.utils.ieVersion<=8;h.utils.parseHtmlFragment=function(n,t){return r?v(n,t):a(n,t)};h.utils.setHtml=function(n,i){var f,u;if(h.utils.emptyDomNode(n),i=h.utils.unwrapObservable(i),i!==null&&i!==t)if(typeof i!="string"&&(i=i.toString()),r)r(n).html(i);else for(f=h.utils.parseHtmlFragment(i,n.ownerDocument),u=0;u"},unmemoize:function(i,r){var u=n[i];if(u===t)throw new Error("Couldn't find any memo with ID "+i+". Perhaps it's already been unmemoized.");try{return u.apply(null,r||[]),!0}finally{delete n[i]}},unmemoizeDomNodeAndDescendants:function(n,t){var f=[],u,o,i,e;for(r(n,f),u=0,o=f.length;ui){if(++u>=5e3){t=n;h.utils.deferError(Error("'Too much recursion' after processing "+u+" task groups."));break}i=n}try{f()}catch(e){h.utils.deferError(e)}}}function s(){o();t=n=r.length=0}function c(){h.tasks.scheduler(s)}var f,r=[],n=0,e=1,t=0;return f=u.MutationObserver?function(n){var t=i.createElement("div");return new MutationObserver(n).observe(t,{attributes:!0}),function(){t.classList.toggle("foo")}}(s):i&&"onreadystatechange"in i.createElement("script")?function(n){var t=i.createElement("script");t.onreadystatechange=function(){t.onreadystatechange=null;i.documentElement.removeChild(t);t=null;n()};i.documentElement.appendChild(t)}:function(n){setTimeout(n,0)},{scheduler:f,schedule:function(t){return n||c(),r[n++]=t,e++},cancel:function(i){var u=i-(e-n);u>=t&&u0?(t.isDifferent(t[y],arguments[0])&&(t.valueWillMutate(),t[y]=arguments[0],t.valueHasMutated()),this):(h.dependencyDetection.registerDependency(t),t[y])}return t[y]=n,h.utils.canSetPrototype||h.utils.extend(t,h.subscribable.fn),h.subscribable.fn.init(t),h.utils.setPrototypeOfOrExtend(t,v),h.options.deferUpdates&&h.extenders.deferred(t,!0),t};v={equalityComparer:nt,peek:function(){return this[y]},valueHasMutated:function(){this.notifySubscribers(this[y])},valueWillMutate:function(){this.notifySubscribers(this[y],"beforeChange")}};h.utils.canSetPrototype&&h.utils.setPrototypeOf(v,h.subscribable.fn);p=h.observable.protoProperty="__ko_proto__";v[p]=h.observable;h.hasPrototype=function(n,i){return n===null||n===t||n[p]===t?!1:n[p]===i?!0:h.hasPrototype(n[p],i)};h.isObservable=function(n){return h.hasPrototype(n,h.observable)};h.isWriteableObservable=function(n){return typeof n=="function"&&n[p]===h.observable?!0:typeof n=="function"&&n[p]===h.dependentObservable&&n.hasWriteFunction?!0:!1};h.exportSymbol("observable",h.observable);h.exportSymbol("isObservable",h.isObservable);h.exportSymbol("isWriteableObservable",h.isWriteableObservable);h.exportSymbol("isWritableObservable",h.isWriteableObservable);h.exportSymbol("observable.fn",v);h.exportProperty(v,"peek",v.peek);h.exportProperty(v,"valueHasMutated",v.valueHasMutated);h.exportProperty(v,"valueWillMutate",v.valueWillMutate);h.observableArray=function(n){if(n=n||[],typeof n!="object"||!("length"in n))throw new Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");var t=h.observable(n);return h.utils.setPrototypeOfOrExtend(t,h.observableArray.fn),t.extend({trackArrayChanges:!0})};h.observableArray.fn={remove:function(n){for(var u,r=this.peek(),i=[],f=typeof n=="function"&&!h.isObservable(n)?n:function(t){return t===n},t=0;t=0}):[]},destroy:function(n){var i=this.peek(),u=typeof n=="function"&&!h.isObservable(n)?n:function(t){return t===n},t,r;for(this.valueWillMutate(),t=i.length-1;t>=0;t--)r=i[t],u(r)&&(i[t]._destroy=!0);this.valueHasMutated()},destroyAll:function(n){return n===t?this.destroy(function(){return!0}):n?this.destroy(function(t){return h.utils.arrayIndexOf(n,t)>=0}):[]},indexOf:function(n){var t=this();return h.utils.arrayIndexOf(t,n)},replace:function(n,t){var i=this.indexOf(n);i>=0&&(this.valueWillMutate(),this.peek()[i]=t,this.valueHasMutated())}};h.utils.canSetPrototype&&h.utils.setPrototypeOf(h.observableArray.fn,h.observable.fn);h.utils.arrayForEach(["pop","push","reverse","shift","sort","splice","unshift"],function(n){h.observableArray.fn[n]=function(){var t=this.peek(),i;return this.valueWillMutate(),this.cacheDiffForKnownOperation(t,n,arguments),i=t[n].apply(t,arguments),this.valueHasMutated(),i===t?this:i}});h.utils.arrayForEach(["slice"],function(n){h.observableArray.fn[n]=function(){var t=this();return t[n].apply(t,arguments)}});h.exportSymbol("observableArray",h.observableArray);b="arrayChange";h.extenders.trackArrayChanges=function(n,t){function s(){var e,t;r||(r=!0,e=n.notifySubscribers,n.notifySubscribers=function(n,t){return t&&t!==w||++u,e.apply(this,arguments)},t=[].concat(n.peek()||[]),i=null,f=n.subscribe(function(r){if(r=[].concat(r||[]),n.hasSubscriptionsForEvent(b))var f=c(t,r);t=r;i=null;u=0;f&&f.length&&n.notifySubscribers(f,b)}))}function c(t,r){return(!i||u>1)&&(i=h.utils.compareArrays(t,r,n.compareArrayOptions)),i}if(n.compareArrayOptions={},t&&typeof t=="object"&&h.utils.extend(n.compareArrayOptions,t),n.compareArrayOptions.sparse=!0,!n.cacheDiffForKnownOperation){var r=!1,i=null,f,u=0,e=n.beforeSubscriptionAdd,o=n.afterSubscriptionRemove;n.beforeSubscriptionAdd=function(t){e&&e.call(n,t);t===b&&s()};n.afterSubscriptionRemove=function(t){o&&o.call(n,t);t!==b||n.hasSubscriptionsForEvent(b)||(f.dispose(),r=!1)};n.cacheDiffForKnownOperation=function(n,t,f){function c(n,t,i){return l[l.length]={status:n,value:t,index:i}}var e,y;if(r&&!u){var l=[],o=n.length,a=f.length,s=0;switch(t){case"push":s=o;case"unshift":for(e=0;e0){if(typeof o=="function")o.apply(e.evaluatorFunctionTarget,arguments);else throw new 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.");return this}return h.dependencyDetection.registerDependency(f),(e.isStale||e.isSleeping&&f.haveDependenciesChanged())&&f.evaluateImmediate(),e.latestValue}if(typeof i=="object"?u=i:(u=u||{},i&&(u.read=i)),typeof u.read!="function")throw Error("Pass a function that returns the value of the ko.computed");var o=u.write,e={latestValue:t,isStale:!0,isBeingEvaluated:!1,suppressDisposalUntilDisposeWhenReturnsFalse:!1,isDisposed:!1,pure:!1,isSleeping:!1,readFunction:u.read,evaluatorFunctionTarget:r||u.owner,disposeWhenNodeIsRemoved:u.disposeWhenNodeIsRemoved||u.disposeWhenNodeIsRemoved||null,disposeWhen:u.disposeWhen||u.disposeWhen,domNodeDisposalCallback:null,dependencyTracking:{},dependenciesCount:0,evaluationTimeoutInstance:null};return f[c]=e,f.hasWriteFunction=typeof o=="function",h.utils.canSetPrototype||h.utils.extend(f,h.subscribable.fn),h.subscribable.fn.init(f),h.utils.setPrototypeOfOrExtend(f,l),u.pure?(e.pure=!0,e.isSleeping=!0,h.utils.extend(f,at)):u.deferEvaluation&&h.utils.extend(f,vt),h.options.deferUpdates&&h.extenders.deferred(f,!0),n&&(f._options=u),e.disposeWhenNodeIsRemoved&&(e.suppressDisposalUntilDisposeWhenReturnsFalse=!0,e.disposeWhenNodeIsRemoved.nodeType||(e.disposeWhenNodeIsRemoved=null)),e.isSleeping||u.deferEvaluation||f.evaluateImmediate(),e.disposeWhenNodeIsRemoved&&f.isActive()&&h.utils.domNodeDisposal.addDisposeCallback(e.disposeWhenNodeIsRemoved,e.domNodeDisposalCallback=function(){f.dispose()}),f};var l={equalityComparer:nt,getDependenciesCount:function(){return this[c].dependenciesCount},addDependencyTracking:function(n,t,i){if(this[c].pure&&t===this)throw Error("A 'pure' computed must not be called recursively");this[c].dependencyTracking[n]=i;i._order=this[c].dependenciesCount++;i._version=t.getVersion()},haveDependenciesChanged:function(){var n,t,i=this[c].dependencyTracking;for(n in i)if(i.hasOwnProperty(n)&&(t=i[n],t._target.hasChanged(t._version)))return!0},markDirty:function(){this._evalDelayed&&!this[c].isBeingEvaluated&&this._evalDelayed()},isActive:function(){return this[c].isStale||this[c].dependenciesCount>0},respondToChange:function(){this._notificationIsPending||this.evaluatePossiblyAsync()},subscribeToDependency:function(n){if(n._deferUpdates&&!this[c].disposeWhenNodeIsRemoved){var t=n.subscribe(this.markDirty,this,"dirty"),i=n.subscribe(this.respondToChange,this);return{_target:n,dispose:function(){t.dispose();i.dispose()}}}return n.subscribe(this.evaluatePossiblyAsync,this)},evaluatePossiblyAsync:function(){var n=this,t=n.throttleEvaluation;t&&t>=0?(clearTimeout(this[c].evaluationTimeoutInstance),this[c].evaluationTimeoutInstance=h.utils.setTimeout(function(){n.evaluateImmediate(!0)},t)):n._evalDelayed?n._evalDelayed():n.evaluateImmediate(!0)},evaluateImmediate:function(n){var i=this,t=i[c],r=t.disposeWhen;if(!t.isBeingEvaluated&&!t.isDisposed){if(t.disposeWhenNodeIsRemoved&&!h.utils.domNodeIsAttachedToDocument(t.disposeWhenNodeIsRemoved)||r&&r()){if(!t.suppressDisposalUntilDisposeWhenReturnsFalse){i.dispose();return}}else t.suppressDisposalUntilDisposeWhenReturnsFalse=!1;t.isBeingEvaluated=!0;try{this.evaluateImmediate_CallReadWithDependencyDetection(n)}finally{t.isBeingEvaluated=!1}t.dependenciesCount||i.dispose()}},evaluateImmediate_CallReadWithDependencyDetection:function(n){var r=this,i=r[c],f=i.pure?t:!i.dependenciesCount,e={computedObservable:r,disposalCandidates:i.dependencyTracking,disposalCount:i.dependenciesCount},u;h.dependencyDetection.begin({callbackTarget:e,callback:lt,computed:r,isInitial:f});i.dependencyTracking={};i.dependenciesCount=0;u=this.evaluateImmediate_CallReadThenEndDependencyDetection(i,e);r.isDifferent(i.latestValue,u)&&(i.isSleeping||r.notifySubscribers(i.latestValue,"beforeChange"),i.latestValue=u,i.isSleeping?r.updateVersion():n&&r.notifySubscribers(i.latestValue));f&&r.notifySubscribers(i.latestValue,"awake")},evaluateImmediate_CallReadThenEndDependencyDetection:function(n,t){try{var i=n.readFunction;return n.evaluatorFunctionTarget?i.call(n.evaluatorFunctionTarget):i()}finally{h.dependencyDetection.end();t.disposalCount&&!n.isSleeping&&h.utils.objectForEach(t.disposalCandidates,ct);n.isStale=!1}},peek:function(){var n=this[c];return(n.isStale&&!n.dependenciesCount||n.isSleeping&&this.haveDependenciesChanged())&&this.evaluateImmediate(),n.latestValue},limit:function(n){h.subscribable.fn.limit.call(this,n);this._evalDelayed=function(){this._limitBeforeChange(this[c].latestValue);this[c].isStale=!0;this._limitChange(this)}},dispose:function(){var n=this[c];!n.isSleeping&&n.dependencyTracking&&h.utils.objectForEach(n.dependencyTracking,function(n,t){t.dispose&&t.dispose()});n.disposeWhenNodeIsRemoved&&n.domNodeDisposalCallback&&h.utils.domNodeDisposal.removeDisposeCallback(n.disposeWhenNodeIsRemoved,n.domNodeDisposalCallback);n.dependencyTracking=null;n.dependenciesCount=0;n.isDisposed=!0;n.isStale=!1;n.isSleeping=!1;n.disposeWhenNodeIsRemoved=null}},at={beforeSubscriptionAdd:function(n){var i=this,t=i[c],r;!t.isDisposed&&t.isSleeping&&n=="change"&&(t.isSleeping=!1,t.isStale||i.haveDependenciesChanged()?(t.dependencyTracking=null,t.dependenciesCount=0,t.isStale=!0,i.evaluateImmediate()):(r=[],h.utils.objectForEach(t.dependencyTracking,function(n,t){r[t._order]=n}),h.utils.arrayForEach(r,function(n,r){var f=t.dependencyTracking[n],u=i.subscribeToDependency(f._target);u._order=r;u._version=f._version;t.dependencyTracking[n]=u})),t.isDisposed||i.notifySubscribers(t.latestValue,"awake"))},afterSubscriptionRemove:function(n){var i=this[c];i.isDisposed||n!="change"||this.hasSubscriptionsForEvent("change")||(h.utils.objectForEach(i.dependencyTracking,function(n,t){t.dispose&&(i.dependencyTracking[n]={_target:t._target,_order:t._order,_version:t._version},t.dispose())}),i.isSleeping=!0,this.notifySubscribers(t,"asleep"))},getVersion:function(){var n=this[c];return n.isSleeping&&(n.isStale||this.haveDependenciesChanged())&&this.evaluateImmediate(),h.subscribable.fn.getVersion.call(this)}},vt={beforeSubscriptionAdd:function(n){(n=="change"||n=="beforeChange")&&this.peek()}};h.utils.canSetPrototype&&h.utils.setPrototypeOf(l,h.subscribable.fn);tt=h.observable.protoProperty;h.computed[tt]=h.observable;l[tt]=h.computed;h.isComputed=function(n){return h.hasPrototype(n,h.computed)};h.isPureComputed=function(n){return h.hasPrototype(n,h.computed)&&n[c]&&n[c].pure};h.exportSymbol("computed",h.computed);h.exportSymbol("dependentObservable",h.computed);h.exportSymbol("isComputed",h.isComputed);h.exportSymbol("isPureComputed",h.isPureComputed);h.exportSymbol("computed.fn",l);h.exportProperty(l,"peek",l.peek);h.exportProperty(l,"dispose",l.dispose);h.exportProperty(l,"isActive",l.isActive);h.exportProperty(l,"getDependenciesCount",l.getDependenciesCount);h.pureComputed=function(n,t){return typeof n=="function"?h.computed(n,t,{pure:!0}):(n=h.utils.extend({},n),n.pure=!0,h.computed(n,t))};h.exportSymbol("pureComputed",h.pureComputed),function(){function i(r,f,e){var s,o;return(e=e||new n,r=f(r),s=typeof r=="object"&&r!==null&&r!==t&&!(r instanceof RegExp)&&!(r instanceof Date)&&!(r instanceof String)&&!(r instanceof Number)&&!(r instanceof Boolean),!s)?r:(o=r instanceof Array?[]:{},e.save(r,o),u(r,function(n){var u=f(r[n]),s;switch(typeof u){case"boolean":case"number":case"string":case"function":o[n]=u;break;case"object":case"undefined":s=e.get(u);o[n]=s!==t?s:i(u,f,e)}}),o)}function u(n,t){var i,r;if(n instanceof Array){for(i=0;i=0?this.values[i]=t:(this.keys.push(n),this.values.push(t))},get:function(n){var i=h.utils.arrayIndexOf(this.keys,n);return i>=0?this.values[i]:t}}}();h.exportSymbol("toJS",h.toJS);h.exportSymbol("toJSON",h.toJSON),function(){var n="__ko__hasDomDataOptionValue__";h.selectExtensions={readValue:function(i){switch(h.utils.tagNameLower(i)){case"option":return i[n]===!0?h.utils.domData.get(i,h.bindingHandlers.options.optionValueDomDataKey):h.utils.ieVersion<=7?i.getAttributeNode("value")&&i.getAttributeNode("value").specified?i.value:i.text:i.value;case"select":return i.selectedIndex>=0?h.selectExtensions.readValue(i.options[i.selectedIndex]):t;default:return i.value}},writeValue:function(i,r,u){var e,f,s,o;switch(h.utils.tagNameLower(i)){case"option":switch(typeof r){case"string":h.utils.domData.set(i,h.bindingHandlers.options.optionValueDomDataKey,t);n in i&&delete i[n];i.value=r;break;default:h.utils.domData.set(i,h.bindingHandlers.options.optionValueDomDataKey,r);i[n]=!0;i.value=typeof r=="number"?r:""}break;case"select":for((r===""||r===null)&&(r=t),e=-1,f=0,s=i.options.length;f=0||r===t&&i.size>1)&&(i.selectedIndex=e);break;default:(r===null||r===t)&&(r="");i.value=r}}}}();h.exportSymbol("selectExtensions",h.selectExtensions);h.exportSymbol("selectExtensions.readValue",h.selectExtensions.readValue);h.exportSymbol("selectExtensions.writeValue",h.selectExtensions.writeValue);h.expressionRewriting=function(){function e(n){if(h.utils.arrayIndexOf(u,n)>=0)return!1;var t=n.match(f);return t===null?!1:t[1]?"Object("+t[1]+")"+t[2]:n}function i(n){var r=h.utils.stringTrim(n),l,f,i,v;r.charCodeAt(0)===123&&(r=r.slice(1,-1));var y=[],o=r.match(t),e,u=[],a=0;if(o)for(o.push(","),l=0;f=o[l];++l){if(i=f.charCodeAt(0),i===44){if(a<=0){y.push(e&&u.length?{key:e,value:u.join("")}:{unknown:e||u.join("")});e=a=0;u=[];continue}}else if(i===58){if(!a&&!e&&u.length===1){e=u.pop();continue}}else i===47&&l&&f.length>1?(v=o[l-1].match(s),v&&!c[v[0]]&&(r=r.substr(r.indexOf(f)+1),o=r.match(t),o.push(","),l=-1,f="/")):i===40||i===123||i===91?++a:i===41||i===125||i===93?--a:e||u.length||i!==34&&i!==39||(f=f.slice(1,-1));u.push(f)}return y}function l(n,t){function u(n,t){function l(i){return i&&i.preprocess?t=i.preprocess(t,n,u):!0}var i;if(!c){if(!l(h.getBindingHandler(n)))return;r[n]&&(i=e(t))&&f.push("'"+n+"':function(_z){"+i+"=_z}")}s&&(t="function(){return "+t+" }");o.push("'"+n+"':"+t)}t=t||{};var o=[],f=[],s=t.valueAccessors,c=t.bindingParams,l=typeof n=="string"?i(n):n;return h.utils.arrayForEach(l,function(n){u(n.key||n.unknown,n.value)}),f.length&&u("_ko_property_writers","{"+f.join(",")+" }"),o.join(",")}var u=["true","false","null","undefined"],f=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,n=",\"'{}()/:[\\]",o="[^\\s:,/][^"+n+"]*[^\\s"+n+"]",t=RegExp("\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|/(?:[^/\\\\]|\\\\.)*/w*|"+o+"|[^\\s]","g"),s=/[\])"'A-Za-z0-9_$]+$/,c={"in":1,"return":1,"typeof":1},r={};return{bindingRewriteValidators:[],twoWayBindings:r,parseObjectLiteral:i,preProcessBindings:l,keyValueArrayContainsKey:function(n,t){for(var i=0;i0?i[i.length-1].nextSibling:n.nextSibling:null}function c(t){var i=t.firstChild,u=null,f;if(i)do u?u.push(i):n(i)?(f=e(i,!0),f?i=f:u=[i]):r(i)&&(u=[i]);while(i=i.nextSibling);return u}var t=i&&i.createComment("test").text==="",u=t?/^$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,o=t?/^$/:/^\s*\/ko\s*$/,s={ul:!0,ol:!0};h.virtualElements={allowedBindings:{},childNodes:function(t){return n(t)?f(t):t.childNodes},emptyNode:function(t){var r,i,u;if(n(t))for(r=h.virtualElements.childNodes(t),i=0,u=r.length;i=0:s?t:f()===t}var f=h.pureComputed(function(){return r.has("checkedValue")?h.utils.unwrapObservable(r.get("checkedValue")):r.has("value")?h.utils.unwrapObservable(r.get("value")):n.value}),s=n.type=="checkbox",e=n.type=="radio";if(s||e){var o=i(),u=s&&h.utils.unwrapObservable(o)instanceof Array,a=!(u&&o.push&&o.splice),c=u?f():t,y=e||u;e&&!n.name&&h.bindingHandlers.uniqueName.init(n,function(){return!0});h.computed(l,null,{disposeWhenNodeIsRemoved:n});h.utils.registerEventHandler(n,"click",l);h.computed(v,null,{disposeWhenNodeIsRemoved:n});o=t}}};h.expressionRewriting.twoWayBindings.checked=!0;h.bindingHandlers.checkedValue={update:function(n,t){n.value=h.utils.unwrapObservable(t())}}}();rt="__ko__cssValue";h.bindingHandlers.css={update:function(n,t){var i=h.utils.unwrapObservable(t());i!==null&&typeof i=="object"?h.utils.objectForEach(i,function(t,i){i=h.utils.unwrapObservable(i);h.utils.toggleDomNodeCssClass(n,t,i)}):(i=h.utils.stringTrim(String(i||"")),h.utils.toggleDomNodeCssClass(n,n[rt],!1),n[rt]=i,h.utils.toggleDomNodeCssClass(n,i,!0))}};h.bindingHandlers.enable={update:function(n,t){var i=h.utils.unwrapObservable(t());i&&n.disabled?n.removeAttribute("disabled"):i||n.disabled||(n.disabled=!0)}};h.bindingHandlers.disable={update:function(n,t){h.bindingHandlers.enable.update(n,function(){return!h.utils.unwrapObservable(t())})}};h.bindingHandlers.event={init:function(n,t,i,r,u){var f=t()||{};h.utils.objectForEach(f,function(f){typeof f=="string"&&h.utils.registerEventHandler(n,f,function(n){var o,s=t()[f],e,c;if(s){try{e=h.utils.makeArray(arguments);r=u.$data;e.unshift(r);o=s.apply(r,e)}finally{o!==!0&&(n.preventDefault?n.preventDefault():n.returnValue=!1)}c=i.get(f+"Bubble")!==!1;c||(n.cancelBubble=!0,n.stopPropagation&&n.stopPropagation())}})})}};h.bindingHandlers.foreach={makeTemplateValueAccessor:function(n){return function(){var i=n(),t=h.utils.peekObservable(i);return!t||typeof t.length=="number"?{foreach:i,templateEngine:h.nativeTemplateEngine.instance}:(h.utils.unwrapObservable(i),{foreach:t.data,as:t.as,includeDestroyed:t.includeDestroyed,afterAdd:t.afterAdd,beforeRemove:t.beforeRemove,afterRender:t.afterRender,beforeMove:t.beforeMove,afterMove:t.afterMove,templateEngine:h.nativeTemplateEngine.instance})}},init:function(n,t){return h.bindingHandlers.template.init(n,h.bindingHandlers.foreach.makeTemplateValueAccessor(t))},update:function(n,t,i,r,u){return h.bindingHandlers.template.update(n,h.bindingHandlers.foreach.makeTemplateValueAccessor(t),i,r,u)}};h.expressionRewriting.bindingRewriteValidators.foreach=!1;h.virtualElements.allowedBindings.foreach=!0;k="__ko_hasfocusUpdating";d="__ko_hasfocusLastValue";h.bindingHandlers.hasfocus={init:function(n,t,i){var r=function(r){var u,f,e;if(n[k]=!0,u=n.ownerDocument,"activeElement"in u){try{f=u.activeElement}catch(o){f=u.body}r=f===n}e=t();h.expressionRewriting.writeValueToProperty(e,i,"hasfocus",r,!0);n[d]=r;n[k]=!1},u=r.bind(null,!0),f=r.bind(null,!1);h.utils.registerEventHandler(n,"focus",u);h.utils.registerEventHandler(n,"focusin",u);h.utils.registerEventHandler(n,"blur",f);h.utils.registerEventHandler(n,"focusout",f)},update:function(n,t){var i=!!h.utils.unwrapObservable(t());n[k]||n[d]===i||(i?n.focus():n.blur(),!i&&n[d]&&n.ownerDocument.body.focus(),h.dependencyDetection.ignore(h.utils.triggerEvent,null,[n,i?"focusin":"focusout"]))}};h.expressionRewriting.twoWayBindings.hasfocus=!0;h.bindingHandlers.hasFocus=h.bindingHandlers.hasfocus;h.expressionRewriting.twoWayBindings.hasFocus=!0;h.bindingHandlers.html={init:function(){return{controlsDescendantBindings:!0}},update:function(n,t){h.utils.setHtml(n,t())}};ut("if");ut("ifnot",!1,!0);ut("with",!0,!1,function(n,t){return n.createChildContext(t)});g={};h.bindingHandlers.options={init:function(n){if(h.utils.tagNameLower(n)!=="select")throw new Error("options binding applies only to SELECT elements");while(n.length>0)n.remove(0);return{controlsDescendantBindings:!0}},update:function(n,i,r){function y(){return h.utils.arrayFilter(n.options,function(n){return n.selected})}function w(n,t,i){var r=typeof t;return r=="function"?t(n):r=="string"?n[t]:i}function nt(i,f,s){var c,l,a;return s.length&&(u=!e&&s[0].selected?[h.selectExtensions.readValue(s[0])]:[],o=!0),c=n.ownerDocument.createElement("option"),i===g?(h.utils.setTextContent(c,r.get("optionsCaption")),h.selectExtensions.writeValue(c,t)):(l=w(i,r.get("optionsValue"),i),h.selectExtensions.writeValue(c,h.utils.unwrapObservable(l)),a=w(i,r.get("optionsText"),l),h.utils.setTextContent(c,a)),[c]}function b(t,i){if(o&&e)h.selectExtensions.writeValue(n,h.utils.unwrapObservable(r.get("value")),!0);else if(u.length){var f=h.utils.arrayIndexOf(u,h.selectExtensions.readValue(i[0]))>=0;h.utils.setOptionNodeSelectionState(i[0],f);o&&!f&&h.dependencyDetection.ignore(h.utils.triggerEvent,null,[n,"change"])}}var k=n.length==0,s=n.multiple,c=!k&&s?n.scrollTop:null,f=h.utils.unwrapObservable(i()),e=r.get("valueAllowUnset")&&r.has("value"),d=r.get("optionsIncludeDestroyed"),p={},l,a,u=[],o,v;e||(s?u=h.utils.arrayMap(y(),h.selectExtensions.readValue):n.selectedIndex>=0&&u.push(h.selectExtensions.readValue(n.options[n.selectedIndex])));f&&(typeof f.length=="undefined"&&(f=[f]),a=h.utils.arrayFilter(f,function(n){return d||n===t||n===null||!h.utils.unwrapObservable(n._destroy)}),r.has("optionsCaption")&&(l=h.utils.unwrapObservable(r.get("optionsCaption")),l!==null&&l!==t&&a.unshift(g)));o=!1;p.beforeRemove=function(t){n.removeChild(t)};v=b;r.has("optionsAfterRender")&&typeof r.get("optionsAfterRender")=="function"&&(v=function(n,i){b(n,i);h.dependencyDetection.ignore(r.get("optionsAfterRender"),null,[i[0],n!==g?n:t])});h.utils.setDomNodeChildrenFromArrayMapping(n,a,nt,p,v);h.dependencyDetection.ignore(function(){if(e)h.selectExtensions.writeValue(n,h.utils.unwrapObservable(r.get("value")),!0);else{var t;t=s?u.length&&y().length=0?h.selectExtensions.readValue(n.options[n.selectedIndex])!==u[0]:u.length||n.selectedIndex>=0;t&&h.utils.triggerEvent(n,"change")}});h.utils.ensureSelectElementIsRenderedCorrectly(n);c&&Math.abs(c-n.scrollTop)>20&&(n.scrollTop=c)}};h.bindingHandlers.options.optionValueDomDataKey=h.utils.domData.nextKey();h.bindingHandlers.selectedOptions={after:["options","foreach"],init:function(n,t,i){h.utils.registerEventHandler(n,"change",function(){var u=t(),r=[];h.utils.arrayForEach(n.getElementsByTagName("option"),function(n){n.selected&&r.push(h.selectExtensions.readValue(n))});h.expressionRewriting.writeValueToProperty(u,i,"selectedOptions",r)})},update:function(n,t){if(h.utils.tagNameLower(n)!="select")throw new Error("values binding applies only to SELECT elements");var i=h.utils.unwrapObservable(t()),r=n.scrollTop;i&&typeof i.length=="number"&&h.utils.arrayForEach(n.getElementsByTagName("option"),function(n){var t=h.utils.arrayIndexOf(i,h.selectExtensions.readValue(n))>=0;n.selected!=t&&h.utils.setOptionNodeSelectionState(n,t)});n.scrollTop=r}};h.expressionRewriting.twoWayBindings.selectedOptions=!0;h.bindingHandlers.style={update:function(n,i){var r=h.utils.unwrapObservable(i()||{});h.utils.objectForEach(r,function(i,r){r=h.utils.unwrapObservable(r);(r===null||r===t||r===!1)&&(r="");n.style[i]=r})}};h.bindingHandlers.submit={init:function(n,t,i,r,u){if(typeof t()!="function")throw new Error("The value for a submit binding must be a function");h.utils.registerEventHandler(n,"submit",function(i){var r,f=t();try{r=f.call(u.$data,n)}finally{r!==!0&&(i.preventDefault?i.preventDefault():i.returnValue=!1)}})}};h.bindingHandlers.text={init:function(){return{controlsDescendantBindings:!0}},update:function(n,t){h.utils.setTextContent(n,t())}};h.virtualElements.allowedBindings.text=!0,function(){if(u&&u.navigator)var i=function(n){if(n)return parseFloat(n[1])},o=u.opera&&u.opera.version&&parseInt(u.opera.version()),r=u.navigator.userAgent,s=i(r.match(/^(?:(?!chrome).)*version\/([^ ]*) safari/i)),c=i(r.match(/Firefox\/([^ ]*)/));if(h.utils.ieVersion<10)var f=h.utils.domData.nextKey(),e=h.utils.domData.nextKey(),l=function(n){var t=this.activeElement,i=t&&h.utils.domData.get(t,e);i&&i(n)},a=function(n,t){var i=n.ownerDocument;h.utils.domData.get(i,f)||(h.utils.domData.set(i,f,!0),h.utils.registerEventHandler(i,"selectionchange",l));h.utils.domData.set(n,e,t)};h.bindingHandlers.textInput={init:function(i,r,u){var p=i.value,v,y,e=function(f){clearTimeout(v);y=v=t;var e=i.value;p!==e&&(n&&f&&(i._ko_textInputProcessedEvent=f.type),p=e,h.expressionRewriting.writeValueToProperty(r(),u,"textInput",e))},l=function(t){if(!v){y=i.value;var r=n?e.bind(i,{type:t.type}):e;v=h.utils.setTimeout(r,4)}},w=h.utils.ieVersion==9?l:e,b=function(){var n=h.utils.unwrapObservable(r());if((n===null||n===t)&&(n=""),y!==t&&n===y){h.utils.setTimeout(b,4);return}i.value!==n&&(p=n,i.value=n)},f=function(n,t){h.utils.registerEventHandler(i,n,t)};n&&h.bindingHandlers.textInput._forceUpdateOn?h.utils.arrayForEach(h.bindingHandlers.textInput._forceUpdateOn,function(n){n.slice(0,5)=="after"?f(n.slice(5),l):f(n,e)}):h.utils.ieVersion<10?(f("propertychange",function(n){n.propertyName==="value"&&w(n)}),h.utils.ieVersion==8&&(f("keyup",e),f("keydown",e)),h.utils.ieVersion>=8&&(a(i,w),f("dragend",l))):(f("input",e),s<5&&h.utils.tagNameLower(i)==="textarea"?(f("keydown",l),f("paste",l),f("cut",l)):o<11?f("keydown",l):c<4&&(f("DOMAutoComplete",e),f("dragdrop",e),f("drop",e)));f("change",e);h.computed(b,null,{disposeWhenNodeIsRemoved:i})}};h.expressionRewriting.twoWayBindings.textInput=!0;h.bindingHandlers.textinput={preprocess:function(n,t,i){i("textInput",n)}}}();h.bindingHandlers.uniqueName={init:function(n,t){if(t()){var i="ko_unique_"+ ++h.bindingHandlers.uniqueName.currentIndex;h.utils.setElementName(n,i)}}};h.bindingHandlers.uniqueName.currentIndex=0;h.bindingHandlers.value={after:["options","foreach"],init:function(n,t,i){var o,c,s;if(n.tagName.toLowerCase()=="input"&&(n.type=="checkbox"||n.type=="radio")){h.applyBindingAccessorsToNode(n,{checkedValue:t});return}var r=["change"],u=i.get("valueUpdate"),f=!1,e=null;u&&(typeof u=="string"&&(u=[u]),h.utils.arrayPushAll(r,u),r=h.utils.arrayGetDistinctValues(r));o=function(){e=null;f=!1;var r=t(),u=h.selectExtensions.readValue(n);h.expressionRewriting.writeValueToProperty(r,i,"value",u)};c=h.utils.ieVersion&&n.tagName.toLowerCase()=="input"&&n.type=="text"&&n.autocomplete!="off"&&(!n.form||n.form.autocomplete!="off");c&&h.utils.arrayIndexOf(r,"propertychange")==-1&&(h.utils.registerEventHandler(n,"propertychange",function(){f=!0}),h.utils.registerEventHandler(n,"focus",function(){f=!1}),h.utils.registerEventHandler(n,"blur",function(){f&&o()}));h.utils.arrayForEach(r,function(t){var i=o;h.utils.stringStartsWith(t,"after")&&(i=function(){e=h.selectExtensions.readValue(n);h.utils.setTimeout(o,0)},t=t.substring(5));h.utils.registerEventHandler(n,t,i)});s=function(){var r=h.utils.unwrapObservable(t()),c=h.selectExtensions.readValue(n),o,u,f;if(e!==null&&r===e){h.utils.setTimeout(s,0);return}o=r!==c;o&&(h.utils.tagNameLower(n)==="select"?(u=i.get("valueAllowUnset"),f=function(){h.selectExtensions.writeValue(n,r,u)},f(),u||r===h.selectExtensions.readValue(n)?h.utils.setTimeout(f,0):h.dependencyDetection.ignore(h.utils.triggerEvent,null,[n,"change"])):h.selectExtensions.writeValue(n,r))};h.computed(s,null,{disposeWhenNodeIsRemoved:n})},update:function(){}};h.expressionRewriting.twoWayBindings.value=!0;h.bindingHandlers.visible={update:function(n,t){var i=h.utils.unwrapObservable(t()),r=!(n.style.display=="none");i&&!r?n.style.display="":!i&&r&&(n.style.display="none")}};yt("click");h.templateEngine=function(){};h.templateEngine.prototype.renderTemplateSource=function(){throw new Error("Override renderTemplateSource");};h.templateEngine.prototype.createJavaScriptEvaluatorBlock=function(){throw new Error("Override createJavaScriptEvaluatorBlock");};h.templateEngine.prototype.makeTemplateSource=function(n,t){if(typeof n=="string"){t=t||i;var r=t.getElementById(n);if(!r)throw new Error("Cannot find template with ID "+n);return new h.templateSources.domElement(r)}if(n.nodeType==1||n.nodeType==8)return new h.templateSources.anonymousTemplate(n);throw new Error("Unknown template type: "+n);};h.templateEngine.prototype.renderTemplate=function(n,t,i,r){var u=this.makeTemplateSource(n,r);return this.renderTemplateSource(u,t,i,r)};h.templateEngine.prototype.isTemplateRewritten=function(n,t){return this.allowTemplateRewriting===!1?!0:this.makeTemplateSource(n,t).data("isRewritten")};h.templateEngine.prototype.rewriteTemplate=function(n,t,i){var r=this.makeTemplateSource(n,i),u=t(r.text());r.text(u);r.data("isRewritten",!0)};h.exportSymbol("templateEngine",h.templateEngine);h.templateRewriting=function(){function r(n){for(var i,r,u,f=h.expressionRewriting.bindingRewriteValidators,t=0;t]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,i=//g;return{ensureTemplateIsRewritten:function(n,t,i){t.isTemplateRewritten(n,i)||t.rewriteTemplate(n,function(n){return h.templateRewriting.memoizeBindingAttributeSyntax(n,t)},i)},memoizeBindingAttributeSyntax:function(r,u){return r.replace(t,function(){return n(arguments[4],arguments[1],arguments[2],u)}).replace(i,function(){return n(arguments[1],"","#comment",u)})},applyMemoizedBindingsToNextSibling:function(n,t){return h.memoization.memoize(function(i,r){var u=i.nextSibling;u&&u.nodeName.toLowerCase()===t&&h.applyBindingAccessorsToNode(u,n,r)})}}}();h.exportSymbol("__tr_ambtns",h.templateRewriting.applyMemoizedBindingsToNextSibling),function(){function o(n){return h.utils.domData.get(n,i)||{}}function s(n,t){h.utils.domData.set(n,i,t)}var n,i;h.templateSources={};var r=1,u=2,f=3,e=4;h.templateSources.domElement=function(n){if(this.domElement=n,n){var t=h.utils.tagNameLower(n);this.templateType=t==="script"?r:t==="textarea"?u:t=="template"&&n.content&&n.content.nodeType===11?f:e}};h.templateSources.domElement.prototype.text=function(){var n=this.templateType===r?"text":this.templateType===u?"value":"innerHTML",t;if(arguments.length==0)return this.domElement[n];t=arguments[0];n==="innerHTML"?h.utils.setHtml(this.domElement,t):this.domElement[n]=t};n=h.utils.domData.nextKey()+"_";h.templateSources.domElement.prototype.data=function(t){if(arguments.length===1)return h.utils.domData.get(this.domElement,n+t);h.utils.domData.set(this.domElement,n+t,arguments[1])};i=h.utils.domData.nextKey();h.templateSources.domElement.prototype.nodes=function(){var n=this.domElement,i,r,u;if(arguments.length==0)return i=o(n),r=i.containerData,r||(this.templateType===f?n.content:this.templateType===e?n:t);u=arguments[0];s(n,{containerData:u})};h.templateSources.anonymousTemplate=function(n){this.domElement=n};h.templateSources.anonymousTemplate.prototype=new h.templateSources.domElement;h.templateSources.anonymousTemplate.prototype.constructor=h.templateSources.anonymousTemplate;h.templateSources.anonymousTemplate.prototype.text=function(){var n,i;if(arguments.length==0)return n=o(this.domElement),n.textData===t&&n.containerData&&(n.textData=n.containerData.innerHTML),n.textData;i=arguments[0];s(this.domElement,{textData:i})};h.exportSymbol("templateSources",h.templateSources);h.exportSymbol("templateSources.domElement",h.templateSources.domElement);h.exportSymbol("templateSources.anonymousTemplate",h.templateSources.anonymousTemplate)}(),function(){function i(n,t,i){for(var u,r=n,f=h.virtualElements.nextSibling(t);r&&(u=r)!==f;)r=h.virtualElements.nextSibling(u),i(u,r)}function f(n,t){if(n.length){var r=n[0],u=n[n.length-1],f=r.parentNode,e=h.bindingProvider.instance,o=e.preprocessNode;if(o){if(i(r,u,function(n,t){var f=n.previousSibling,i=o.call(e,n);i&&(n===r&&(r=i[0]||t),n===u&&(u=i[i.length-1]||f))}),n.length=0,!r)return;r===u?n.push(r):(n.push(r,u),h.utils.fixUpContinuousNodeArray(n,f))}i(r,u,function(n){(n.nodeType===1||n.nodeType===8)&&h.applyBindings(t,n)});i(r,u,function(n){(n.nodeType===1||n.nodeType===8)&&h.memoization.unmemoizeDomNodeAndDescendants(n,[t])});h.utils.fixUpContinuousNodeArray(n,f)}}function r(n){return n.nodeType?n:n.length>0?n[0]:null}function e(t,i,u,e,o){var s,c;o=o||{};var v=t&&r(t),l=(v||u||{}).ownerDocument,a=o.templateEngine||n;if(h.templateRewriting.ensureTemplateIsRewritten(u,a,l),s=a.renderTemplate(u,e,o,l),typeof s.length!="number"||s.length>0&&typeof s[0].nodeType!="number")throw new Error("Template engine must return an array of DOM nodes");c=!1;switch(i){case"replaceChildren":h.virtualElements.setDomNodeChildren(t,s);c=!0;break;case"replaceNode":h.utils.replaceDomNodes(t,s);c=!0;break;case"ignoreTargetNode":break;default:throw new Error("Unknown renderMode: "+i);}return c&&(f(s,e),o.afterRender&&h.dependencyDetection.ignore(o.afterRender,null,[s,e.$data])),s}function o(n,t,i){return h.isObservable(n)?n():typeof n=="function"?n(t,i):n}function s(n,i){var r=h.utils.domData.get(n,u);r&&typeof r.dispose=="function"&&r.dispose();h.utils.domData.set(n,u,i&&i.isActive()?i:t)}var n,u;h.setTemplateEngine=function(i){if(i!=t&&!(i instanceof h.templateEngine))throw new Error("templateEngine must inherit from ko.templateEngine");n=i};h.renderTemplate=function(i,u,f,s,c){if(f=f||{},(f.templateEngine||n)==t)throw new Error("Set a template engine before calling renderTemplate");if(c=c||"replaceChildren",s){var l=r(s),a=function(){return!l||!h.utils.domNodeIsAttachedToDocument(l)},v=l&&c=="replaceNode"?l.parentNode:l;return h.dependentObservable(function(){var n=u&&u instanceof h.bindingContext?u:new h.bindingContext(h.utils.unwrapObservable(u)),t=o(i,n.$data,n),a=e(s,c,t,n,f);c=="replaceNode"&&(s=a,l=r(s))},null,{disposeWhen:a,disposeWhenNodeIsRemoved:v})}return h.memoization.memoize(function(n){h.renderTemplate(i,u,f,n,"replaceNode")})};h.renderTemplateForEach=function(n,i,r,u,s){var c,l=function(t,i){c=s.createChildContext(t,r.as,function(n){n.$index=i});var u=o(n,t,c);return e(null,"ignoreTargetNode",u,c,r)},a=function(n,t){f(t,c);r.afterRender&&r.afterRender(t,n);c=null};return h.dependentObservable(function(){var n=h.utils.unwrapObservable(i)||[],f;typeof n.length=="undefined"&&(n=[n]);f=h.utils.arrayFilter(n,function(n){return r.includeDestroyed||n===t||n===null||!h.utils.unwrapObservable(n._destroy)});h.dependencyDetection.ignore(h.utils.setDomNodeChildrenFromArrayMapping,null,[u,f,l,r,a])},null,{disposeWhenNodeIsRemoved:u})};u=h.utils.domData.nextKey();h.bindingHandlers.template={init:function(n,t){var i=h.utils.unwrapObservable(t()),u,f,r;if(typeof i=="string"||i.name)h.virtualElements.emptyNode(n);else if("nodes"in i){if(u=i.nodes||[],h.isObservable(u))throw new Error('The "nodes" option must be a plain, non-observable array.');r=h.utils.moveCleanedNodesToContainerElement(u);new h.templateSources.anonymousTemplate(n).nodes(r)}else f=h.virtualElements.childNodes(n),r=h.utils.moveCleanedNodesToContainerElement(f),new h.templateSources.anonymousTemplate(n).nodes(r);return{controlsDescendantBindings:!0}},update:function(n,t,i,r,u){var a=t(),v,f=h.utils.unwrapObservable(a),e=!0,c=null,o,l,y;typeof f=="string"?(o=a,f={}):(o=f.name,"if"in f&&(e=h.utils.unwrapObservable(f["if"])),e&&"ifnot"in f&&(e=!h.utils.unwrapObservable(f.ifnot)),v=h.utils.unwrapObservable(f.data));"foreach"in f?(l=e&&f.foreach||[],c=h.renderTemplateForEach(o||n,l,f,n,u)):"pagedForeach"in f?(l=e&&f.pagedForeach.pager.pagedItems||[],c=h.renderTemplateForEach(o||n,l,f,n,u)):e?(y="data"in f?u.createChildContext(v,f.as):u,c=h.renderTemplate(o||n,y,f,n)):h.virtualElements.emptyNode(n);s(n,c)}};h.expressionRewriting.bindingRewriteValidators.template=function(n){var t=h.expressionRewriting.parseObjectLiteral(n);return t.length==1&&t[0].unknown?null:h.expressionRewriting.keyValueArrayContainsKey(t,"name")?null:"This template engine does not support anonymous templates nested within its templates"};h.virtualElements.allowedBindings.template=!0}();h.exportSymbol("setTemplateEngine",h.setTemplateEngine);h.exportSymbol("renderTemplate",h.renderTemplate);h.utils.findMovesInArrayComparison=function(n,t,i){if(n.length&&t.length)for(var o,r,f,e,u=o=0;(!i||u0&&(h.utils.replaceDomNodes(e,t),u&&h.dependencyDetection.ignore(u,null,[r,t,f]));e.length=0;h.utils.arrayPushAll(e,t)},null,{disposeWhenNodeIsRemoved:n,disposeWhen:function(){return!h.utils.anyDomNodeIsAttachedToDocument(e)}});return{mappedNodes:e,dependentObservable:o.isActive()?o:t}}var n=h.utils.domData.nextKey(),i=h.utils.domData.nextKey();h.utils.setDomNodeChildrenFromArrayMapping=function(u,f,e,o,s){function et(n,t){c=d[t];nt!==t&&(it[n]=c);c.indexObservable(nt++);h.utils.fixUpContinuousNodeArray(c.mappedNodes,u);y.push(c);p.push(c)}function w(n,t){if(n)for(var i=0,r=t.length;i=0)return 2}catch(n){}return 1}();this.renderTemplateSource=function(n,f,e,o){var s,h;o=o||i;e=e||{};t();s=n.data("precompiled");s||(h=n.text()||"",h="{{ko_with $item.koBindingContext}}"+h+"{{/ko_with}}",s=r.template(null,h),n.data("precompiled",s));var l=[f.$data],a=r.extend({koBindingContext:f},e.templateOptions),c=u(s,l,a);return c.appendTo(o.createElement("div")),r.fragments={},c};this.createJavaScriptEvaluatorBlock=function(n){return"{{ko_code ((function() { return "+n+" })()) }}"};this.addTemplate=function(n,t){i.write("