/*! * surveyjs - Survey JavaScript library v1.1.1 * Copyright (c) 2015-2019 Devsoft Baltic OÜ - http://surveyjs.io/ * License: MIT (http://www.opensource.org/licenses/mit-license.php) */ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("jquery")):"function"==typeof define&&define.amd?define("Survey",["jquery"],t):"object"==typeof exports?exports.Survey=t(require("jquery")):e.Survey=t(e.jQuery)}(this,function(e){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=152)}([function(e,t,n){"use strict";function r(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}n.d(t,"b",function(){return i}),t.a=r,n.d(t,"c",function(){return o});var i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}},function(e,t,n){"use strict";var r=n(0),i=n(4);n.d(t,"c",function(){return o}),n.d(t,"d",function(){return a}),n.d(t,"h",function(){return s}),n.d(t,"g",function(){return u}),n.d(t,"e",function(){return l}),n.d(t,"l",function(){return c}),n.d(t,"j",function(){return p}),n.d(t,"i",function(){return d}),n.d(t,"f",function(){return h}),n.d(t,"k",function(){return f}),n.d(t,"b",function(){return m}),n.d(t,"a",function(){return g});var o=function(){function e(e,t){void 0===t&&(t=!1),this.name=e,this.typeValue=null,this.choicesValue=null,this.baseValue=null,this.isRequiredValue=!1,this.readOnlyValue=null,this.visibleValue=null,this.isLocalizableValue=null,this.choicesfunc=null,this.dependedProperties=null,this.isSerializable=!0,this.isLightSerializable=!0,this.isCustom=!1,this.isDynamicChoices=!1,this.className=null,this.alternativeName=null,this.classNamePart=null,this.baseClassName=null,this.defaultValueValue=null,this.serializationProperty=null,this.layout=null,this.onGetValue=null,this.onSetValue=null,this.visibleIf=null,this.isArray=!1,this.isRequiredValue=t}return Object.defineProperty(e.prototype,"type",{get:function(){return this.typeValue?this.typeValue:"string"},set:function(e){"itemvalues"===e&&(e="itemvalue[]"),this.typeValue=e,this.typeValue.indexOf("[]")===this.typeValue.length-2&&(this.isArray=!0,this.className=this.typeValue.substr(0,this.typeValue.length-2))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isRequired",{get:function(){return this.isRequiredValue},set:function(e){this.isRequiredValue=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasToUseGetValue",{get:function(){return this.onGetValue||this.serializationProperty},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"defaultValue",{get:function(){var t=this.defaultValueValue;return e.getItemValuesDefaultValue&&m.metaData.isDescendantOf(this.className,"itemvalue")&&(t=e.getItemValuesDefaultValue(this.defaultValueValue||[])),t},set:function(e){this.defaultValueValue=e},enumerable:!0,configurable:!0}),e.prototype.isDefaultValue=function(e){return i.a.isValueEmpty(this.defaultValue)?!1===e&&"boolean"==this.type||""===e||i.a.isValueEmpty(e):this.defaultValue==e},e.prototype.getValue=function(e){return this.onGetValue?this.onGetValue(e):this.serializationProperty&&e[this.serializationProperty]?e[this.serializationProperty].getJson():e[this.name]},e.prototype.getPropertyValue=function(e){return this.isLocalizable?e[this.serializationProperty].text:this.getValue(e)},Object.defineProperty(e.prototype,"hasToUseSetValue",{get:function(){return this.onSetValue||this.serializationProperty},enumerable:!0,configurable:!0}),e.prototype.setValue=function(e,t,n){this.onSetValue?this.onSetValue(e,t,n):this.serializationProperty&&e[this.serializationProperty]?e[this.serializationProperty].setJson(t):(t&&"string"==typeof t&&("number"==this.type&&(t=parseInt(t)),"boolean"==this.type&&(t="true"===t.toLowerCase())),e[this.name]=t)},e.prototype.getObjType=function(e){return this.classNamePart?e.replace(this.classNamePart,""):e},e.prototype.getClassName=function(e){return e&&(e=e.toLowerCase()),this.classNamePart&&e.indexOf(this.classNamePart)<0?e+this.classNamePart:e},Object.defineProperty(e.prototype,"choices",{get:function(){return this.getChoices(null)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasChoices",{get:function(){return!!this.choicesValue||!!this.choicesfunc},enumerable:!0,configurable:!0}),e.prototype.getChoices=function(e,t){return void 0===t&&(t=null),null!=this.choicesValue?this.choicesValue:null!=this.choicesfunc?this.choicesfunc(e,t):null},e.prototype.setChoices=function(e,t){this.choicesValue=e,this.choicesfunc=t},e.prototype.getBaseValue=function(){return this.baseValue?"function"==typeof this.baseValue?this.baseValue():this.baseValue:""},e.prototype.setBaseValue=function(e){this.baseValue=e},Object.defineProperty(e.prototype,"readOnly",{get:function(){return null!=this.readOnlyValue&&this.readOnlyValue},set:function(e){this.readOnlyValue=e},enumerable:!0,configurable:!0}),e.prototype.isVisible=function(e,t){void 0===t&&(t=null);var n=!this.layout||this.layout==e;return!(!this.visible||!n)&&(!this.visibleIf||!t||this.visibleIf(t))},Object.defineProperty(e.prototype,"visible",{get:function(){return null==this.visibleValue||this.visibleValue},set:function(e){this.visibleValue=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isLocalizable",{get:function(){return null!=this.isLocalizableValue&&this.isLocalizableValue},set:function(e){this.isLocalizableValue=e},enumerable:!0,configurable:!0}),e.prototype.mergeWith=function(t){for(var n=e.mergableValues,r=0;r-1&&(r=n.substring(a+1),n=n.substring(0,a));var s=this.getIsPropertyNameRequired(n)||!!t.isRequired;n=this.getPropertyName(n);var u=new o(n,s);if(r&&(u.type=r),"object"==typeof t){if(t.type&&(u.type=t.type),i.a.isValueEmpty(t.default)||(u.defaultValue=t.default),i.a.isValueEmpty(t.isSerializable)||(u.isSerializable=t.isSerializable),i.a.isValueEmpty(t.isLightSerializable)||(u.isLightSerializable=t.isLightSerializable),i.a.isValueEmpty(t.isDynamicChoices)||(u.isDynamicChoices=t.isDynamicChoices),!1===t.visible&&(u.visible=!1),t.visibleIf&&(u.visibleIf=t.visibleIf),t.choices){var l="function"==typeof t.choices?t.choices:null,c="function"!=typeof t.choices?t.choices:null;u.setChoices(c,l)}if(t.baseValue&&u.setBaseValue(t.baseValue),t.onGetValue&&(u.onGetValue=t.onGetValue),t.onSetValue&&(u.onSetValue=t.onSetValue),t.isLocalizable&&(t.serializationProperty="loc"+t.name),t.serializationProperty){u.serializationProperty=t.serializationProperty;u.serializationProperty&&0==u.serializationProperty.indexOf("loc")&&(u.isLocalizable=!0)}t.isLocalizable&&(u.isLocalizable=t.isLocalizable),t.className&&(u.className=t.className),t.baseClassName&&(u.baseClassName=t.baseClassName),t.classNamePart&&(u.classNamePart=t.classNamePart),t.alternativeName&&(u.alternativeName=t.alternativeName),t.layout&&(u.layout=t.layout),t.dependsOn&&this.addDependsOnProperties(u,t.dependsOn)}return u}},e.prototype.addDependsOnProperties=function(e,t){if(Array.isArray(t))for(var n=0;n0&&t[0]==e.requiredSymbol},e.prototype.getPropertyName=function(e){return this.getIsPropertyNameRequired(e)?e=e.slice(1):e},e.requiredSymbol="!",e.typeSymbol=":",e}(),u=function(){function e(){this.classes={},this.alternativeNames={},this.childrenClasses={},this.classProperties={},this.classHashProperties={}}return e.prototype.addClass=function(e,t,n,r){void 0===n&&(n=null),void 0===r&&(r=null),e=e.toLowerCase();var i=new s(e,t,n,r);if(this.classes[e]=i,r){r=r.toLowerCase();this.childrenClasses[r]||(this.childrenClasses[r]=[]),this.childrenClasses[r].push(i)}return i},e.prototype.removeClass=function(e){var t=this.findClass(e);if(t&&(delete this.classes[t.name],t.parentName)){var n=this.childrenClasses[t.parentName].indexOf(t);n>-1&&this.childrenClasses[t.parentName].splice(n,1)}},e.prototype.overrideClassCreatore=function(e,t){this.overrideClassCreator(e,t)},e.prototype.overrideClassCreator=function(e,t){e=e.toLowerCase();var n=this.findClass(e);n&&(n.creator=t)},e.prototype.getProperties=function(e){var t=this.findClass(e);if(!t)return[];var n=this.classProperties[t.name];return n||(this.fillPropertiesForClass(t.name),this.classProperties[t.name])},e.prototype.getHashProperties=function(e){var t=this.findClass(e);if(!t)return{};var n=this.classHashProperties[t.name];return n||(this.fillPropertiesForClass(t.name),this.classHashProperties[t.name])},e.prototype.fillPropertiesForClass=function(e){var t=new Array,n={};this.fillProperties(e,t,n),this.classProperties[e]=t,this.classHashProperties[e]=n},e.prototype.getDynamicProperties=function(e){if(e.getDynamicProperties&&e.getDynamicType){var t=e.getDynamicProperties();return m.metaData.findProperties(e.getDynamicType(),t)}return[]},e.prototype.getPropertiesByObj=function(e){if(!e||!e.getType)return[];for(var t=[],n=this.getProperties(e.getType()),r=0;r0)for(var r=0;r0&&(r.description+=", "),r.description+=i[o].name;r.description+="."}return r}return r.a(t,e),t}(l),p=function(e){function t(t,n,r){var i=e.call(this,n,r)||this;i.baseClassName=t,i.type=n,i.message=r,i.description="The following types are available: ";for(var o=m.metaData.getChildrenClasses(t,!0),a=0;a0&&(i.description+=", "),i.description+="'"+o[a].name+"'";return i.description+=".",i}return r.a(t,e),t}(l),d=function(e){function t(t,n){var r=e.call(this,n,"missingtypeproperty","The property type is missing in the object. Please take a look at property: '"+t+"'.")||this;return r.propertyName=t,r.baseClassName=n,r}return r.a(t,e),t}(p),h=function(e){function t(t,n){var r=e.call(this,n,"incorrecttypeproperty","The property type is incorrect in the object. Please take a look at property: '"+t+"'.")||this;return r.propertyName=t,r.baseClassName=n,r}return r.a(t,e),t}(p),f=function(e){function t(t,n){var r=e.call(this,"requiredproperty","The property '"+t+"' is required in class '"+n+"'.")||this;return r.propertyName=t,r.className=n,r}return r.a(t,e),t}(l),m=function(){function e(){this.errors=new Array,this.lightSerializing=!1}return Object.defineProperty(e,"metaData",{get:function(){return e.metaDataValue},enumerable:!0,configurable:!0}),e.prototype.toJsonObject=function(e,t){return void 0===t&&(t=!1),this.toJsonObjectCore(e,null,t)},e.prototype.toObject=function(t,n){if(t){var r=null,i=void 0,o=!0;if(n.getType&&(i=n.getType(),r=e.metaData.getProperties(i),o=!!i&&!e.metaData.isDescendantOf(i,"itemvalue")),r){n.startLoadingFromJson&&n.startLoadingFromJson(),r=this.addDynamicProperties(n,t,r);for(var a in t)if(a!==e.typePropertyName)if(a!==e.positionPropertyName){var s=this.findProperty(r,a);s?this.valueToObj(t[a],n,s):o&&this.addNewError(new c(a.toString(),i),t)}else n[a]=t[a];n.endLoadingFromJson&&n.endLoadingFromJson()}}},e.prototype.toJsonObjectCore=function(t,n,r){if(void 0===r&&(r=!1),!t||!t.getType)return t;if("function"==typeof t.getData)return t.getData();var i={};return null==n||n.className||(i[e.typePropertyName]=n.getObjType(t.getType())),this.propertiesToJson(t,e.metaData.getProperties(t.getType()),i,r),this.propertiesToJson(t,this.getDynamicProperties(t),i,r),i},e.prototype.getDynamicProperties=function(t){if(t.getDynamicProperties&&t.getDynamicType){var n=t.getDynamicProperties();return e.metaData.findProperties(t.getDynamicType(),n)}return[]},e.prototype.addDynamicProperties=function(e,t,n){if(!e.getDynamicPropertyName)return n;var r=e.getDynamicPropertyName();if(!r)return n;t[r]&&(e[r]=t[r]);for(var i=this.getDynamicProperties(e),o=[],a=0;a0?o:null}else i=this.toJsonObjectCore(i,n,r);var s="function"==typeof e.getPropertyValue&&null!==e.getPropertyValue(n.name,null);(r&&s||!n.isDefaultValue(i))&&(t[n.name]=i)}}},e.prototype.valueToObj=function(e,t,n){if(null!=e){if(this.removePos(n,e),null!=n&&n.hasToUseSetValue)return void n.setValue(t,e,this);if(this.isValueArray(e))return void this.valueToArray(e,t,n.name,n);var r=this.createNewObj(e,n);r.newObj&&(this.toObject(e,r.newObj),e=r.newObj),r.error||(null!=n?n.setValue(t,e,this):t[n.name]=e)}},e.prototype.removePos=function(e,t){!e||!e.type||e.type.indexOf("value")<0||this.removePosFromObj(t)},e.prototype.removePosFromObj=function(t){if(t){if(Array.isArray(t))for(var n=0;n0&&t[n].splice(0,t[n].length),t[n]||(t[n]=[]);for(var i=0;i0)for(var t=0;t0;t--){var n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e},e.getUnbindValue=function(e){return e&&e instanceof Object?JSON.parse(JSON.stringify(e)):e},e.getMaxLength=function(e,t){return e<0&&(e=t),e>0?e:null},e}();String.prototype.format||(String.prototype.format=function(){var e=arguments;return this.replace(/{(\d+)}/g,function(t,n){return void 0!==e[n]?e[n]:t})})},function(e,t,n){"use strict";var r=n(0),i=n(14),o=n(4),a=n(1),s=n(9);n.d(t,"c",function(){return u}),n.d(t,"d",function(){return l}),n.d(t,"b",function(){return c}),n.d(t,"a",function(){return p});var u=function(){function e(){this.propertyHash={},this.isLoadingFromJsonValue=!1,this.onPropertyChanged=new p,a.d.createProperties(this)}return Object.defineProperty(e,"commentPrefix",{get:function(){return s.a.commentPrefix},set:function(e){s.a.commentPrefix=e},enumerable:!0,configurable:!0}),e.prototype.isValueEmpty=function(e){return o.a.isValueEmpty(e)},e.prototype.IsPropertyEmpty=function(e){return""!==e&&this.isValueEmpty(e)},e.prototype.getType=function(){return"base"},e.prototype.getTemplate=function(){return this.getType()},Object.defineProperty(e.prototype,"isLoadingFromJson",{get:function(){return this.isLoadingFromJsonValue},enumerable:!0,configurable:!0}),e.prototype.startLoadingFromJson=function(){this.isLoadingFromJsonValue=!0},e.prototype.endLoadingFromJson=function(){this.isLoadingFromJsonValue=!1},e.prototype.toJSON=function(){return(new a.b).toJsonObject(this)},e.prototype.locStrsChanged=function(){if(this.arraysInfo)for(var t in this.arraysInfo){var n=this.arraysInfo[t];if(n&&n.isItemValues){var r=this.getPropertyValue(t);r&&e.itemValueLocStrChanged&&e.itemValueLocStrChanged(r)}}if(this.localizableStrings)for(var t in this.localizableStrings){var n=this.getLocalizableString(t);n&&n.strChanged()}},e.prototype.getPropertyValue=function(e,t){void 0===t&&(t=null);var n=this.getPropertyValueCore(this.propertyHash,e);if(this.IsPropertyEmpty(n)){if(null!=t)return t;var r=a.a.findProperty(this.getType(),e),i=r&&!r.isCustom?r.defaultValue:null;if(!this.IsPropertyEmpty(i))return i}return n},e.prototype.getPropertyValueCore=function(e,t){return this.getPropertyValueCoreHandler?this.getPropertyValueCoreHandler(e,t):e[t]},e.prototype.geValueFromHash=function(){return this.propertyHash.value},e.prototype.setPropertyValueCore=function(e,t,n){this.setPropertyValueCoreHandler?this.setPropertyValueCoreHandler(e,t,n):e[t]=n},e.prototype.iteratePropertiesHash=function(e){var t=this,n=[];for(var r in this.propertyHash)n.push(r);n.forEach(function(n){return e(t.propertyHash,n)})},e.prototype.setPropertyValue=function(e,t){var n=this.getPropertyValue(e);if(n&&Array.isArray(n)){if(this.isTwoValueEquals(n,t))return;var r=this.arraysInfo[e];this.setArray(n,t,!!r&&r.isItemValues,r?r.onPush:null),this.propertyValueChanged(e,n,n)}else this.setPropertyValueCore(this.propertyHash,e,t),this.isTwoValueEquals(n,t)||this.propertyValueChanged(e,n,t)},e.prototype.propertyValueChanged=function(e,t,n){if(!this.isLoadingFromJson&&(this.onPropertyChanged.fire(this,{name:e,oldValue:t,newValue:n}),this.onPropChangeFunctions))for(var r=0;r-1},e}()},function(e,t,n){var r,i,o;/*! * Knockout JavaScript library v3.4.0 * (c) Steven Sanderson - http://knockoutjs.com/ * License: MIT (http://www.opensource.org/licenses/mit-license.php) */ !function(){var a=!0;!function(s){var u=this||(0,eval)("this"),l=u.document,c=u.navigator,p=u.jQuery,d=u.JSON;!function(a){i=[t,n],r=a,(o="function"==typeof r?r.apply(t,i):r)!==s&&(e.exports=o)}(function(e,t){function n(e,t){return!!(null===e||typeof e in b)&&e===t}function r(e,t){var n;return function(){n||(n=v.utils.setTimeout(function(){n=s,e()},t))}}function i(e,t){var n;return function(){clearTimeout(n),n=v.utils.setTimeout(e,t)}}function o(e){var t=this;return e&&v.utils.objectForEach(e,function(e,n){var r=v.extenders[e];"function"==typeof r&&(t=r(t,n)||t)}),t}function h(e,t){t&&t!==x?"beforeChange"===t?this._limitBeforeChange(e):this._origNotifySubscribers(e,t):this._limitChange(e)}function f(e,t){null!==t&&t.dispose&&t.dispose()}function m(e,t){var n=this.computedObservable,r=n[S];r.isDisposed||(this.disposalCount&&this.disposalCandidates[t]?(n.addDependencyTracking(t,e,this.disposalCandidates[t]),this.disposalCandidates[t]=null,--this.disposalCount):r.dependencyTracking[t]||n.addDependencyTracking(t,e,r.isSleeping?{_target:e}:n.subscribeToDependency(e)))}function g(e){v.bindingHandlers[e]={init:function(t,n,r,i,o){var a=function(){var t={};return t[e]=n(),t};return v.bindingHandlers.event.init.call(this,t,a,r,i,o)}}}function y(e,t,n,r){v.bindingHandlers[e]={init:function(e,i,o,a,s){var u,l;return v.computed(function(){var o=v.utils.unwrapObservable(i()),a=!n!=!o,c=!l;(c||t||a!==u)&&(c&&v.computedContext.getDependenciesCount()&&(l=v.utils.cloneNodes(v.virtualElements.childNodes(e),!0)),a?(c||v.virtualElements.setDomNodeChildren(e,v.utils.cloneNodes(l)),v.applyBindingsToDescendants(r?r(s,o):s,e)):v.virtualElements.emptyNode(e),u=a)},null,{disposeWhenNodeIsRemoved:e}),{controlsDescendantBindings:!0}}},v.expressionRewriting.bindingRewriteValidators[e]=!1,v.virtualElements.allowedBindings[e]=!0}var v=void 0!==e?e:{};v.exportSymbol=function(e,t){for(var n=e.split("."),r=v,i=0;i4?e:s}(),x=6===b,C=7===b,w=/\S+/g;return{fieldsIncludedWithJsonPost:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],arrayForEach:function(e,t){for(var n=0,r=e.length;n0?e.splice(n,1):0===n&&e.shift()},arrayGetDistinctValues:function(e){e=e||[];for(var t=[],n=0,r=e.length;n0){for(var r=n[0],i=r.parentNode,o=0,a=t.length;o1&&e[e.length-1].parentNode!==t;)e.length--;if(e.length>1){var n=e[0],r=e[e.length-1];for(e.length=0;n!==r;)e.push(n),n=n.nextSibling;e.push(r)}}return e},setOptionNodeSelectionState:function(e,t){b<7?e.setAttribute("selected",t):e.selected=t},stringTrim:function(e){return null===e||e===s?"":e.trim?e.trim():e.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},stringStartsWith:function(e,t){return e=e||"",!(t.length>e.length)&&e.substring(0,t.length)===t},domNodeIsContainedBy:function(e,t){if(e===t)return!0;if(11===e.nodeType)return!1;if(t.contains)return t.contains(3===e.nodeType?e.parentNode:e);if(t.compareDocumentPosition)return 16==(16&t.compareDocumentPosition(e));for(;e&&e!=t;)e=e.parentNode;return!!e},domNodeIsAttachedToDocument:function(e){return v.utils.domNodeIsContainedBy(e,e.ownerDocument.documentElement)},anyDomNodeIsAttachedToDocument:function(e){return!!v.utils.arrayFirst(e,v.utils.domNodeIsAttachedToDocument)},tagNameLower:function(e){return e&&e.tagName&&e.tagName.toLowerCase()},catchFunctionErrors:function(e){return v.onError?function(){try{return e.apply(this,arguments)}catch(e){throw v.onError&&v.onError(e),e}}:e},setTimeout:function(e,t){return setTimeout(v.utils.catchFunctionErrors(e),t)},deferError:function(e){setTimeout(function(){throw v.onError&&v.onError(e),e},0)},registerEventHandler:function(e,t,n){var r=v.utils.catchFunctionErrors(n),i=b&&y[t];if(v.options.useOnlyNativeEvents||i||!p)if(i||"function"!=typeof e.addEventListener){if(void 0===e.attachEvent)throw new Error("Browser doesn't support addEventListener or attachEvent");var o=function(t){r.call(e,t)},a="on"+t;e.attachEvent(a,o),v.utils.domNodeDisposal.addDisposeCallback(e,function(){e.detachEvent(a,o)})}else e.addEventListener(t,r,!1);else p(e).bind(t,r)},triggerEvent:function(e,t){if(!e||!e.nodeType)throw new Error("element must be a DOM node when calling triggerEvent");var n=r(e,t);if(v.options.useOnlyNativeEvents||!p||n)if("function"==typeof l.createEvent){if("function"!=typeof e.dispatchEvent)throw new Error("The supplied element doesn't support dispatchEvent");var i=g[t]||"HTMLEvents",o=l.createEvent(i);o.initEvent(t,!0,!0,u,0,0,0,0,0,!1,!1,!1,!1,0,e),e.dispatchEvent(o)}else if(n&&e.click)e.click();else{if(void 0===e.fireEvent)throw new Error("Browser doesn't support triggering events");e.fireEvent("on"+t)}else p(e).trigger(t)},unwrapObservable:function(e){return v.isObservable(e)?e():e},peekObservable:function(e){return v.isObservable(e)?e.peek():e},toggleDomNodeCssClass:i,setTextContent:function(e,t){var n=v.utils.unwrapObservable(t);null!==n&&n!==s||(n="");var r=v.virtualElements.firstChild(e);!r||3!=r.nodeType||v.virtualElements.nextSibling(r)?v.virtualElements.setDomNodeChildren(e,[e.ownerDocument.createTextNode(n)]):r.data=n,v.utils.forceRefresh(e)},setElementName:function(e,t){if(e.name=t,b<=7)try{e.mergeAttributes(l.createElement(""),!1)}catch(e){}},forceRefresh:function(e){if(b>=9){var t=1==e.nodeType?e:e.parentNode;t.style&&(t.style.zoom=t.style.zoom)}},ensureSelectElementIsRenderedCorrectly:function(e){if(b){var t=e.style.width;e.style.width=0,e.style.width=t}},range:function(e,t){e=v.utils.unwrapObservable(e),t=v.utils.unwrapObservable(t);for(var n=[],r=e;r<=t;r++)n.push(r);return n},makeArray:function(e){for(var t=[],n=0,r=e.length;n=0;o--)r(n[o])&&i.push(n[o]);return i},parseJson:function(e){return"string"==typeof e&&(e=v.utils.stringTrim(e))?d&&d.parse?d.parse(e):new Function("return "+e)():null},stringifyJson:function(e,t,n){if(!d||!d.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 d.stringify(v.utils.unwrapObservable(e),t,n)},postJson:function(t,n,r){r=r||{};var i=r.params||{},o=r.includeFields||this.fieldsIncludedWithJsonPost,a=t;if("object"==typeof t&&"form"===v.utils.tagNameLower(t)){var s=t;a=s.action;for(var u=o.length-1;u>=0;u--)for(var c=v.utils.getFormFields(s,o[u]),p=c.length-1;p>=0;p--)i[c[p].name]=c[p].value}n=v.utils.unwrapObservable(n);var d=l.createElement("form");d.style.display="none",d.action=a,d.method="post";for(var h in n){var f=l.createElement("input");f.type="hidden",f.name=h,f.value=v.utils.stringifyJson(v.utils.unwrapObservable(n[h])),d.appendChild(f)}e(i,function(e,t){var n=l.createElement("input");n.type="hidden",n.name=e,n.value=t,d.appendChild(n)}),l.body.appendChild(d),r.submitter?r.submitter(d):d.submit(),setTimeout(function(){d.parentNode.removeChild(d)},0)}}}(),v.exportSymbol("utils",v.utils),v.exportSymbol("utils.arrayForEach",v.utils.arrayForEach),v.exportSymbol("utils.arrayFirst",v.utils.arrayFirst),v.exportSymbol("utils.arrayFilter",v.utils.arrayFilter),v.exportSymbol("utils.arrayGetDistinctValues",v.utils.arrayGetDistinctValues),v.exportSymbol("utils.arrayIndexOf",v.utils.arrayIndexOf),v.exportSymbol("utils.arrayMap",v.utils.arrayMap),v.exportSymbol("utils.arrayPushAll",v.utils.arrayPushAll),v.exportSymbol("utils.arrayRemoveItem",v.utils.arrayRemoveItem),v.exportSymbol("utils.extend",v.utils.extend),v.exportSymbol("utils.fieldsIncludedWithJsonPost",v.utils.fieldsIncludedWithJsonPost),v.exportSymbol("utils.getFormFields",v.utils.getFormFields),v.exportSymbol("utils.peekObservable",v.utils.peekObservable),v.exportSymbol("utils.postJson",v.utils.postJson),v.exportSymbol("utils.parseJson",v.utils.parseJson),v.exportSymbol("utils.registerEventHandler",v.utils.registerEventHandler),v.exportSymbol("utils.stringifyJson",v.utils.stringifyJson),v.exportSymbol("utils.range",v.utils.range),v.exportSymbol("utils.toggleDomNodeCssClass",v.utils.toggleDomNodeCssClass),v.exportSymbol("utils.triggerEvent",v.utils.triggerEvent),v.exportSymbol("utils.unwrapObservable",v.utils.unwrapObservable),v.exportSymbol("utils.objectForEach",v.utils.objectForEach),v.exportSymbol("utils.addOrRemoveItem",v.utils.addOrRemoveItem),v.exportSymbol("utils.setTextContent",v.utils.setTextContent),v.exportSymbol("unwrap",v.utils.unwrapObservable),Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if(1===arguments.length)return function(){return t.apply(e,arguments)};var n=Array.prototype.slice.call(arguments,1);return function(){var r=n.slice(0);return r.push.apply(r,arguments),t.apply(e,r)}}),v.utils.domData=new function(){function e(e,i){var o=e[n];if(!o||"null"===o||!r[o]){if(!i)return s;o=e[n]="ko"+t++,r[o]={}}return r[o]}var t=0,n="__ko__"+(new Date).getTime(),r={};return{get:function(t,n){var r=e(t,!1);return r===s?s:r[n]},set:function(t,n,r){if(r!==s||e(t,!1)!==s){e(t,!0)[n]=r}},clear:function(e){var t=e[n];return!!t&&(delete r[t],e[n]=null,!0)},nextKey:function(){return t+++n}}},v.exportSymbol("utils.domData",v.utils.domData),v.exportSymbol("utils.domData.clear",v.utils.domData.clear),v.utils.domNodeDisposal=new function(){function e(e,t){var n=v.utils.domData.get(e,i);return n===s&&t&&(n=[],v.utils.domData.set(e,i,n)),n}function t(e){v.utils.domData.set(e,i,s)}function n(t){var n=e(t,!1);if(n){n=n.slice(0);for(var i=0;i]/);return t&&d[t[1]]||r}function t(t,n){n||(n=l);var r=n.parentWindow||n.defaultView||u,i=v.utils.stringTrim(t).toLowerCase(),o=n.createElement("div"),a=e(i),s=a[0],c="ignored
"+a[1]+t+a[2]+"
";for("function"==typeof r.innerShiv?o.appendChild(r.innerShiv(c)):(h&&n.appendChild(o),o.innerHTML=c,h&&o.parentNode.removeChild(o));s--;)o=o.lastChild;return v.utils.makeArray(o.lastChild.childNodes)}function n(e,t){if(p.parseHTML)return p.parseHTML(e,t)||[];var n=p.clean([e],t);if(n&&n[0]){for(var r=n[0];r.parentNode&&11!==r.parentNode.nodeType;)r=r.parentNode;r.parentNode&&r.parentNode.removeChild(r)}return n}var r=[0,"",""],i=[1,"","
"],o=[2,"","
"],a=[3,"","
"],c=[1,""],d={thead:i,tbody:i,tfoot:i,tr:o,td:a,th:a,option:c,optgroup:c},h=v.utils.ieVersion<=8;v.utils.parseHtmlFragment=function(e,r){return p?n(e,r):t(e,r)},v.utils.setHtml=function(e,t){if(v.utils.emptyDomNode(e),null!==(t=v.utils.unwrapObservable(t))&&t!==s)if("string"!=typeof t&&(t=t.toString()),p)p(e).html(t);else for(var n=v.utils.parseHtmlFragment(t,e.ownerDocument),r=0;rt){if(++n>=5e3){s=o,v.utils.deferError(Error("'Too much recursion' after processing "+n+" task groups."));break}t=o}try{e()}catch(e){v.utils.deferError(e)}}}function t(){e(),s=o=i.length=0}function n(){v.tasks.scheduler(t)}var r,i=[],o=0,a=1,s=0;return r=u.MutationObserver?function(e){var t=l.createElement("div");return new MutationObserver(e).observe(t,{attributes:!0}),function(){t.classList.toggle("foo")}}(t):l&&"onreadystatechange"in l.createElement("script")?function(e){var t=l.createElement("script");t.onreadystatechange=function(){t.onreadystatechange=null,l.documentElement.removeChild(t),t=null,e()},l.documentElement.appendChild(t)}:function(e){setTimeout(e,0)},{scheduler:r,schedule:function(e){return o||n(),i[o++]=e,a++},cancel:function(e){var t=e-(a-o);t>=s&&t0?(t.isDifferent(t[w],arguments[0])&&(t.valueWillMutate(),t[w]=arguments[0],t.valueHasMutated()),this):(v.dependencyDetection.registerDependency(t),t[w])}return t[w]=e,v.utils.canSetPrototype||v.utils.extend(t,v.subscribable.fn),v.subscribable.fn.init(t),v.utils.setPrototypeOfOrExtend(t,P),v.options.deferUpdates&&v.extenders.deferred(t,!0),t};var P={equalityComparer:n,peek:function(){return this[w]},valueHasMutated:function(){this.notifySubscribers(this[w])},valueWillMutate:function(){this.notifySubscribers(this[w],"beforeChange")}};v.utils.canSetPrototype&&v.utils.setPrototypeOf(P,v.subscribable.fn);var V=v.observable.protoProperty="__ko_proto__";P[V]=v.observable,v.hasPrototype=function(e,t){return null!==e&&e!==s&&e[V]!==s&&(e[V]===t||v.hasPrototype(e[V],t))},v.isObservable=function(e){return v.hasPrototype(e,v.observable)},v.isWriteableObservable=function(e){return"function"==typeof e&&e[V]===v.observable||!("function"!=typeof e||e[V]!==v.dependentObservable||!e.hasWriteFunction)},v.exportSymbol("observable",v.observable),v.exportSymbol("isObservable",v.isObservable),v.exportSymbol("isWriteableObservable",v.isWriteableObservable),v.exportSymbol("isWritableObservable",v.isWriteableObservable),v.exportSymbol("observable.fn",P),v.exportProperty(P,"peek",P.peek),v.exportProperty(P,"valueHasMutated",P.valueHasMutated),v.exportProperty(P,"valueWillMutate",P.valueWillMutate),v.observableArray=function(e){if("object"!=typeof(e=e||[])||!("length"in e))throw new Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");var t=v.observable(e);return v.utils.setPrototypeOfOrExtend(t,v.observableArray.fn),t.extend({trackArrayChanges:!0})},v.observableArray.fn={remove:function(e){for(var t=this.peek(),n=[],r="function"!=typeof e||v.isObservable(e)?function(t){return t===e}:e,i=0;i=0}):[]},destroy:function(e){var t=this.peek(),n="function"!=typeof e||v.isObservable(e)?function(t){return t===e}:e;this.valueWillMutate();for(var r=t.length-1;r>=0;r--){n(t[r])&&(t[r]._destroy=!0)}this.valueHasMutated()},destroyAll:function(e){return e===s?this.destroy(function(){return!0}):e?this.destroy(function(t){return v.utils.arrayIndexOf(e,t)>=0}):[]},indexOf:function(e){var t=this();return v.utils.arrayIndexOf(t,e)},replace:function(e,t){var n=this.indexOf(e);n>=0&&(this.valueWillMutate(),this.peek()[n]=t,this.valueHasMutated())}},v.utils.canSetPrototype&&v.utils.setPrototypeOf(v.observableArray.fn,v.observable.fn),v.utils.arrayForEach(["pop","push","reverse","shift","sort","splice","unshift"],function(e){v.observableArray.fn[e]=function(){var t=this.peek();this.valueWillMutate(),this.cacheDiffForKnownOperation(t,e,arguments);var n=t[e].apply(t,arguments);return this.valueHasMutated(),n===t?this:n}}),v.utils.arrayForEach(["slice"],function(e){v.observableArray.fn[e]=function(){var t=this();return t[e].apply(t,arguments)}}),v.exportSymbol("observableArray",v.observableArray);var T="arrayChange";v.extenders.trackArrayChanges=function(e,t){function n(){if(!o){o=!0;var t=e.notifySubscribers;e.notifySubscribers=function(e,n){return n&&n!==x||++s,t.apply(this,arguments)};var n=[].concat(e.peek()||[]);a=null,i=e.subscribe(function(t){if(t=[].concat(t||[]),e.hasSubscriptionsForEvent(T))var i=r(n,t);n=t,a=null,s=0,i&&i.length&&e.notifySubscribers(i,T)})}}function r(t,n){return(!a||s>1)&&(a=v.utils.compareArrays(t,n,e.compareArrayOptions)),a}if(e.compareArrayOptions={},t&&"object"==typeof t&&v.utils.extend(e.compareArrayOptions,t),e.compareArrayOptions.sparse=!0,!e.cacheDiffForKnownOperation){var i,o=!1,a=null,s=0,u=e.beforeSubscriptionAdd,l=e.afterSubscriptionRemove;e.beforeSubscriptionAdd=function(t){u&&u.call(e,t),t===T&&n()},e.afterSubscriptionRemove=function(t){l&&l.call(e,t),t!==T||e.hasSubscriptionsForEvent(T)||(i.dispose(),o=!1)},e.cacheDiffForKnownOperation=function(e,t,n){function r(e,t,n){return i[i.length]={status:e,value:t,index:n}}if(o&&!s){var i=[],u=e.length,l=n.length,c=0;switch(t){case"push":c=u;case"unshift":for(var p=0;p0){if("function"!=typeof i)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 i.apply(o.evaluatorFunctionTarget,arguments),this}return v.dependencyDetection.registerDependency(r),(o.isStale||o.isSleeping&&r.haveDependenciesChanged())&&r.evaluateImmediate(),o.latestValue}if("object"==typeof e?n=e:(n=n||{},e&&(n.read=e)),"function"!=typeof n.read)throw Error("Pass a function that returns the value of the ko.computed");var i=n.write,o={latestValue:s,isStale:!0,isBeingEvaluated:!1,suppressDisposalUntilDisposeWhenReturnsFalse:!1,isDisposed:!1,pure:!1,isSleeping:!1,readFunction:n.read,evaluatorFunctionTarget:t||n.owner,disposeWhenNodeIsRemoved:n.disposeWhenNodeIsRemoved||n.disposeWhenNodeIsRemoved||null,disposeWhen:n.disposeWhen||n.disposeWhen,domNodeDisposalCallback:null,dependencyTracking:{},dependenciesCount:0,evaluationTimeoutInstance:null};return r[S]=o,r.hasWriteFunction="function"==typeof i,v.utils.canSetPrototype||v.utils.extend(r,v.subscribable.fn),v.subscribable.fn.init(r),v.utils.setPrototypeOfOrExtend(r,k),n.pure?(o.pure=!0,o.isSleeping=!0,v.utils.extend(r,E)):n.deferEvaluation&&v.utils.extend(r,R),v.options.deferUpdates&&v.extenders.deferred(r,!0),a&&(r._options=n),o.disposeWhenNodeIsRemoved&&(o.suppressDisposalUntilDisposeWhenReturnsFalse=!0,o.disposeWhenNodeIsRemoved.nodeType||(o.disposeWhenNodeIsRemoved=null)),o.isSleeping||n.deferEvaluation||r.evaluateImmediate(),o.disposeWhenNodeIsRemoved&&r.isActive()&&v.utils.domNodeDisposal.addDisposeCallback(o.disposeWhenNodeIsRemoved,o.domNodeDisposalCallback=function(){r.dispose()}),r};var k={equalityComparer:n,getDependenciesCount:function(){return this[S].dependenciesCount},addDependencyTracking:function(e,t,n){if(this[S].pure&&t===this)throw Error("A 'pure' computed must not be called recursively");this[S].dependencyTracking[e]=n,n._order=this[S].dependenciesCount++,n._version=t.getVersion()},haveDependenciesChanged:function(){var e,t,n=this[S].dependencyTracking;for(e in n)if(n.hasOwnProperty(e)&&(t=n[e],t._target.hasChanged(t._version)))return!0},markDirty:function(){this._evalDelayed&&!this[S].isBeingEvaluated&&this._evalDelayed()},isActive:function(){return this[S].isStale||this[S].dependenciesCount>0},respondToChange:function(){this._notificationIsPending||this.evaluatePossiblyAsync()},subscribeToDependency:function(e){if(e._deferUpdates&&!this[S].disposeWhenNodeIsRemoved){var t=e.subscribe(this.markDirty,this,"dirty"),n=e.subscribe(this.respondToChange,this);return{_target:e,dispose:function(){t.dispose(),n.dispose()}}}return e.subscribe(this.evaluatePossiblyAsync,this)},evaluatePossiblyAsync:function(){var e=this,t=e.throttleEvaluation;t&&t>=0?(clearTimeout(this[S].evaluationTimeoutInstance),this[S].evaluationTimeoutInstance=v.utils.setTimeout(function(){e.evaluateImmediate(!0)},t)):e._evalDelayed?e._evalDelayed():e.evaluateImmediate(!0)},evaluateImmediate:function(e){var t=this,n=t[S],r=n.disposeWhen;if(!n.isBeingEvaluated&&!n.isDisposed){if(n.disposeWhenNodeIsRemoved&&!v.utils.domNodeIsAttachedToDocument(n.disposeWhenNodeIsRemoved)||r&&r()){if(!n.suppressDisposalUntilDisposeWhenReturnsFalse)return void t.dispose()}else n.suppressDisposalUntilDisposeWhenReturnsFalse=!1;n.isBeingEvaluated=!0;try{this.evaluateImmediate_CallReadWithDependencyDetection(e)}finally{n.isBeingEvaluated=!1}n.dependenciesCount||t.dispose()}},evaluateImmediate_CallReadWithDependencyDetection:function(e){var t=this,n=t[S],r=n.pure?s:!n.dependenciesCount,i={computedObservable:t,disposalCandidates:n.dependencyTracking,disposalCount:n.dependenciesCount};v.dependencyDetection.begin({callbackTarget:i,callback:m,computed:t,isInitial:r}),n.dependencyTracking={},n.dependenciesCount=0;var o=this.evaluateImmediate_CallReadThenEndDependencyDetection(n,i);t.isDifferent(n.latestValue,o)&&(n.isSleeping||t.notifySubscribers(n.latestValue,"beforeChange"),n.latestValue=o,n.isSleeping?t.updateVersion():e&&t.notifySubscribers(n.latestValue)),r&&t.notifySubscribers(n.latestValue,"awake")},evaluateImmediate_CallReadThenEndDependencyDetection:function(e,t){try{var n=e.readFunction;return e.evaluatorFunctionTarget?n.call(e.evaluatorFunctionTarget):n()}finally{v.dependencyDetection.end(),t.disposalCount&&!e.isSleeping&&v.utils.objectForEach(t.disposalCandidates,f),e.isStale=!1}},peek:function(){var e=this[S];return(e.isStale&&!e.dependenciesCount||e.isSleeping&&this.haveDependenciesChanged())&&this.evaluateImmediate(),e.latestValue},limit:function(e){v.subscribable.fn.limit.call(this,e),this._evalDelayed=function(){this._limitBeforeChange(this[S].latestValue),this[S].isStale=!0,this._limitChange(this)}},dispose:function(){var e=this[S];!e.isSleeping&&e.dependencyTracking&&v.utils.objectForEach(e.dependencyTracking,function(e,t){t.dispose&&t.dispose()}),e.disposeWhenNodeIsRemoved&&e.domNodeDisposalCallback&&v.utils.domNodeDisposal.removeDisposeCallback(e.disposeWhenNodeIsRemoved,e.domNodeDisposalCallback),e.dependencyTracking=null,e.dependenciesCount=0,e.isDisposed=!0,e.isStale=!1,e.isSleeping=!1,e.disposeWhenNodeIsRemoved=null}},E={beforeSubscriptionAdd:function(e){var t=this,n=t[S];if(!n.isDisposed&&n.isSleeping&&"change"==e){if(n.isSleeping=!1,n.isStale||t.haveDependenciesChanged())n.dependencyTracking=null,n.dependenciesCount=0,n.isStale=!0,t.evaluateImmediate();else{var r=[];v.utils.objectForEach(n.dependencyTracking,function(e,t){r[t._order]=e}),v.utils.arrayForEach(r,function(e,r){var i=n.dependencyTracking[e],o=t.subscribeToDependency(i._target);o._order=r,o._version=i._version,n.dependencyTracking[e]=o})}n.isDisposed||t.notifySubscribers(n.latestValue,"awake")}},afterSubscriptionRemove:function(e){var t=this[S];t.isDisposed||"change"!=e||this.hasSubscriptionsForEvent("change")||(v.utils.objectForEach(t.dependencyTracking,function(e,n){n.dispose&&(t.dependencyTracking[e]={_target:n._target,_order:n._order,_version:n._version},n.dispose())}),t.isSleeping=!0,this.notifySubscribers(s,"asleep"))},getVersion:function(){var e=this[S];return e.isSleeping&&(e.isStale||this.haveDependenciesChanged())&&this.evaluateImmediate(),v.subscribable.fn.getVersion.call(this)}},R={beforeSubscriptionAdd:function(e){"change"!=e&&"beforeChange"!=e||this.peek()}};v.utils.canSetPrototype&&v.utils.setPrototypeOf(k,v.subscribable.fn);var O=v.observable.protoProperty;v.computed[O]=v.observable,k[O]=v.computed,v.isComputed=function(e){return v.hasPrototype(e,v.computed)},v.isPureComputed=function(e){return v.hasPrototype(e,v.computed)&&e[S]&&e[S].pure},v.exportSymbol("computed",v.computed),v.exportSymbol("dependentObservable",v.computed),v.exportSymbol("isComputed",v.isComputed),v.exportSymbol("isPureComputed",v.isPureComputed),v.exportSymbol("computed.fn",k),v.exportProperty(k,"peek",k.peek),v.exportProperty(k,"dispose",k.dispose),v.exportProperty(k,"isActive",k.isActive),v.exportProperty(k,"getDependenciesCount",k.getDependenciesCount),v.pureComputed=function(e,t){return"function"==typeof e?v.computed(e,t,{pure:!0}):(e=v.utils.extend({},e),e.pure=!0,v.computed(e,t))},v.exportSymbol("pureComputed",v.pureComputed),function(){function e(r,i,o){if(o=o||new n,!!("object"!=typeof(r=i(r))||null===r||r===s||r instanceof RegExp||r instanceof Date||r instanceof String||r instanceof Number||r instanceof Boolean))return r;var a=r instanceof Array?[]:{};return o.save(r,a),t(r,function(t){var n=i(r[t]);switch(typeof n){case"boolean":case"number":case"string":case"function":a[t]=n;break;case"object":case"undefined":var u=o.get(n);a[t]=u!==s?u:e(n,i,o)}}),a}function t(e,t){if(e instanceof Array){for(var n=0;n=0?this.values[n]=t:(this.keys.push(e),this.values.push(t))},get:function(e){var t=v.utils.arrayIndexOf(this.keys,e);return t>=0?this.values[t]:s}}}(),v.exportSymbol("toJS",v.toJS),v.exportSymbol("toJSON",v.toJSON),function(){var e="__ko__hasDomDataOptionValue__";v.selectExtensions={readValue:function(t){switch(v.utils.tagNameLower(t)){case"option":return!0===t[e]?v.utils.domData.get(t,v.bindingHandlers.options.optionValueDomDataKey):v.utils.ieVersion<=7?t.getAttributeNode("value")&&t.getAttributeNode("value").specified?t.value:t.text:t.value;case"select":return t.selectedIndex>=0?v.selectExtensions.readValue(t.options[t.selectedIndex]):s;default:return t.value}},writeValue:function(t,n,r){switch(v.utils.tagNameLower(t)){case"option":switch(typeof n){case"string":v.utils.domData.set(t,v.bindingHandlers.options.optionValueDomDataKey,s),e in t&&delete t[e],t.value=n;break;default:v.utils.domData.set(t,v.bindingHandlers.options.optionValueDomDataKey,n),t[e]=!0,t.value="number"==typeof n?n:""}break;case"select":""!==n&&null!==n||(n=s);for(var i,o=-1,a=0,u=t.options.length;a=0||n===s&&t.size>1)&&(t.selectedIndex=o);break;default:null!==n&&n!==s||(n=""),t.value=n}}}}(),v.exportSymbol("selectExtensions",v.selectExtensions),v.exportSymbol("selectExtensions.readValue",v.selectExtensions.readValue),v.exportSymbol("selectExtensions.writeValue",v.selectExtensions.writeValue),v.expressionRewriting=function(){function e(e){if(v.utils.arrayIndexOf(r,e)>=0)return!1;var t=e.match(i);return null!==t&&(t[1]?"Object("+t[1]+")"+t[2]:e)}function t(e){var t=v.utils.stringTrim(e);123===t.charCodeAt(0)&&(t=t.slice(1,-1));var n,r=[],i=t.match(p),o=[],a=0;if(i){i.push(",");for(var s,u=0;s=i[u];++u){var l=s.charCodeAt(0);if(44===l){if(a<=0){r.push(n&&o.length?{key:n,value:o.join("")}:{unknown:n||o.join("")}),n=a=0,o=[];continue}}else if(58===l){if(!a&&!n&&1===o.length){n=o.pop();continue}}else if(47===l&&u&&s.length>1){var c=i[u-1].match(d);c&&!h[c[0]]&&(t=t.substr(t.indexOf(s)+1),i=t.match(p),i.push(","),u=-1,s="/")}else 40===l||123===l||91===l?++a:41===l||125===l||93===l?--a:n||o.length||34!==l&&39!==l||(s=s.slice(1,-1));o.push(s)}}return r}function n(n,r){function i(t,n){function r(e){return!e||!e.preprocess||(n=e.preprocess(n,t,i))}var l;if(!u){if(!r(v.getBindingHandler(t)))return;f[t]&&(l=e(n))&&a.push("'"+t+"':function(_z){"+l+"=_z}")}s&&(n="function(){return "+n+" }"),o.push("'"+t+"':"+n)}r=r||{};var o=[],a=[],s=r.valueAccessors,u=r.bindingParams,l="string"==typeof n?t(n):n;return v.utils.arrayForEach(l,function(e){i(e.key||e.unknown,e.value)}),a.length&&i("_ko_property_writers","{"+a.join(",")+" }"),o.join(",")}var r=["true","false","null","undefined"],i=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,o='"(?:[^"\\\\]|\\\\.)*"',a="'(?:[^'\\\\]|\\\\.)*'",s="/(?:[^/\\\\]|\\\\.)*/w*",u=",\"'{}()/:[\\]",l="[^\\s:,/][^"+u+"]*[^\\s"+u+"]",c="[^\\s]",p=RegExp(o+"|"+a+"|"+s+"|"+l+"|"+c,"g"),d=/[\])"'A-Za-z0-9_$]+$/,h={in:1,return:1,typeof:1},f={};return{bindingRewriteValidators:[],twoWayBindings:f,parseObjectLiteral:t,preProcessBindings:n,keyValueArrayContainsKey:function(e,t){for(var n=0;n0?r[r.length-1].nextSibling:e.nextSibling:null}function i(n){var i=n.firstChild,o=null;if(i)do{if(o)o.push(i);else if(e(i)){var a=r(i,!0);a?i=a:o=[i]}else t(i)&&(o=[i])}while(i=i.nextSibling);return o}var o=l&&"\x3c!--test--\x3e"===l.createComment("test").text,a=o?/^$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,s=o?/^$/:/^\s*\/ko\s*$/,u={ul:!0,ol:!0};v.virtualElements={allowedBindings:{},childNodes:function(t){return e(t)?n(t):t.childNodes},emptyNode:function(t){if(e(t))for(var n=v.virtualElements.childNodes(t),r=0,i=n.length;r=0:a?n:o()===n}var o=v.pureComputed(function(){return n.has("checkedValue")?v.utils.unwrapObservable(n.get("checkedValue")):n.has("value")?v.utils.unwrapObservable(n.get("value")):e.value}),a="checkbox"==e.type,u="radio"==e.type;if(a||u){var l=t(),c=a&&v.utils.unwrapObservable(l)instanceof Array,p=!(c&&l.push&&l.splice),d=c?o():s,h=u||c;u&&!e.name&&v.bindingHandlers.uniqueName.init(e,function(){return!0}),v.computed(r,null,{disposeWhenNodeIsRemoved:e}),v.utils.registerEventHandler(e,"click",r),v.computed(i,null,{disposeWhenNodeIsRemoved:e}),l=s}}},v.expressionRewriting.twoWayBindings.checked=!0,v.bindingHandlers.checkedValue={update:function(e,t){e.value=v.utils.unwrapObservable(t())}}}();var _="__ko__cssValue";v.bindingHandlers.css={update:function(e,t){var n=v.utils.unwrapObservable(t());null!==n&&"object"==typeof n?v.utils.objectForEach(n,function(t,n){n=v.utils.unwrapObservable(n),v.utils.toggleDomNodeCssClass(e,t,n)}):(n=v.utils.stringTrim(String(n||"")),v.utils.toggleDomNodeCssClass(e,e[_],!1),e[_]=n,v.utils.toggleDomNodeCssClass(e,n,!0))}},v.bindingHandlers.enable={update:function(e,t){var n=v.utils.unwrapObservable(t());n&&e.disabled?e.removeAttribute("disabled"):n||e.disabled||(e.disabled=!0)}},v.bindingHandlers.disable={update:function(e,t){v.bindingHandlers.enable.update(e,function(){return!v.utils.unwrapObservable(t())})}},v.bindingHandlers.event={init:function(e,t,n,r,i){var o=t()||{};v.utils.objectForEach(o,function(o){"string"==typeof o&&v.utils.registerEventHandler(e,o,function(e){var a,s=t()[o];if(s){try{var u=v.utils.makeArray(arguments);r=i.$data,u.unshift(r),a=s.apply(r,u)}finally{!0!==a&&(e.preventDefault?e.preventDefault():e.returnValue=!1)}!1!==n.get(o+"Bubble")||(e.cancelBubble=!0,e.stopPropagation&&e.stopPropagation())}})})}},v.bindingHandlers.foreach={makeTemplateValueAccessor:function(e){return function(){var t=e(),n=v.utils.peekObservable(t);return n&&"number"!=typeof n.length?(v.utils.unwrapObservable(t),{foreach:n.data,as:n.as,includeDestroyed:n.includeDestroyed,afterAdd:n.afterAdd,beforeRemove:n.beforeRemove,afterRender:n.afterRender,beforeMove:n.beforeMove,afterMove:n.afterMove,templateEngine:v.nativeTemplateEngine.instance}):{foreach:t,templateEngine:v.nativeTemplateEngine.instance}}},init:function(e,t,n,r,i){return v.bindingHandlers.template.init(e,v.bindingHandlers.foreach.makeTemplateValueAccessor(t))},update:function(e,t,n,r,i){return v.bindingHandlers.template.update(e,v.bindingHandlers.foreach.makeTemplateValueAccessor(t),n,r,i)}},v.expressionRewriting.bindingRewriteValidators.foreach=!1,v.virtualElements.allowedBindings.foreach=!0;var I="__ko_hasfocusUpdating",D="__ko_hasfocusLastValue";v.bindingHandlers.hasfocus={init:function(e,t,n){var r=function(r){e[I]=!0;var i=e.ownerDocument;if("activeElement"in i){var o;try{o=i.activeElement}catch(e){o=i.body}r=o===e}var a=t();v.expressionRewriting.writeValueToProperty(a,n,"hasfocus",r,!0),e[D]=r,e[I]=!1},i=r.bind(null,!0),o=r.bind(null,!1);v.utils.registerEventHandler(e,"focus",i),v.utils.registerEventHandler(e,"focusin",i),v.utils.registerEventHandler(e,"blur",o),v.utils.registerEventHandler(e,"focusout",o)},update:function(e,t){var n=!!v.utils.unwrapObservable(t());e[I]||e[D]===n||(n?e.focus():e.blur(),!n&&e[D]&&e.ownerDocument.body.focus(),v.dependencyDetection.ignore(v.utils.triggerEvent,null,[e,n?"focusin":"focusout"]))}},v.expressionRewriting.twoWayBindings.hasfocus=!0,v.bindingHandlers.hasFocus=v.bindingHandlers.hasfocus,v.expressionRewriting.twoWayBindings.hasFocus=!0,v.bindingHandlers.html={init:function(){return{controlsDescendantBindings:!0}},update:function(e,t){v.utils.setHtml(e,t())}},y("if"),y("ifnot",!1,!0),y("with",!0,!1,function(e,t){return e.createChildContext(t)});var N={};v.bindingHandlers.options={init:function(e){if("select"!==v.utils.tagNameLower(e))throw new Error("options binding applies only to SELECT elements");for(;e.length>0;)e.remove(0);return{controlsDescendantBindings:!0}},update:function(e,t,n){function r(){return v.utils.arrayFilter(e.options,function(e){return e.selected})}function i(e,t,n){var r=typeof t;return"function"==r?t(e):"string"==r?e[t]:n}function o(t,r,o){o.length&&(y=!f&&o[0].selected?[v.selectExtensions.readValue(o[0])]:[],b=!0);var a=e.ownerDocument.createElement("option");if(t===N)v.utils.setTextContent(a,n.get("optionsCaption")),v.selectExtensions.writeValue(a,s);else{var u=i(t,n.get("optionsValue"),t);v.selectExtensions.writeValue(a,v.utils.unwrapObservable(u));var l=i(t,n.get("optionsText"),u);v.utils.setTextContent(a,l)}return[a]}function a(t,r){if(b&&f)v.selectExtensions.writeValue(e,v.utils.unwrapObservable(n.get("value")),!0);else if(y.length){var i=v.utils.arrayIndexOf(y,v.selectExtensions.readValue(r[0]))>=0;v.utils.setOptionNodeSelectionState(r[0],i),b&&!i&&v.dependencyDetection.ignore(v.utils.triggerEvent,null,[e,"change"])}}var u,l,c=0==e.length,p=e.multiple,d=!c&&p?e.scrollTop:null,h=v.utils.unwrapObservable(t()),f=n.get("valueAllowUnset")&&n.has("value"),m=n.get("optionsIncludeDestroyed"),g={},y=[];f||(p?y=v.utils.arrayMap(r(),v.selectExtensions.readValue):e.selectedIndex>=0&&y.push(v.selectExtensions.readValue(e.options[e.selectedIndex]))),h&&(void 0===h.length&&(h=[h]),l=v.utils.arrayFilter(h,function(e){return m||e===s||null===e||!v.utils.unwrapObservable(e._destroy)}),n.has("optionsCaption")&&null!==(u=v.utils.unwrapObservable(n.get("optionsCaption")))&&u!==s&&l.unshift(N));var b=!1;g.beforeRemove=function(t){e.removeChild(t)};var x=a;n.has("optionsAfterRender")&&"function"==typeof n.get("optionsAfterRender")&&(x=function(e,t){a(e,t),v.dependencyDetection.ignore(n.get("optionsAfterRender"),null,[t[0],e!==N?e:s])}),v.utils.setDomNodeChildrenFromArrayMapping(e,l,o,g,x),v.dependencyDetection.ignore(function(){if(f)v.selectExtensions.writeValue(e,v.utils.unwrapObservable(n.get("value")),!0);else{var t;t=p?y.length&&r().length=0?v.selectExtensions.readValue(e.options[e.selectedIndex])!==y[0]:y.length||e.selectedIndex>=0,t&&v.utils.triggerEvent(e,"change")}}),v.utils.ensureSelectElementIsRenderedCorrectly(e),d&&Math.abs(d-e.scrollTop)>20&&(e.scrollTop=d)}},v.bindingHandlers.options.optionValueDomDataKey=v.utils.domData.nextKey(),v.bindingHandlers.selectedOptions={after:["options","foreach"],init:function(e,t,n){v.utils.registerEventHandler(e,"change",function(){var r=t(),i=[];v.utils.arrayForEach(e.getElementsByTagName("option"),function(e){e.selected&&i.push(v.selectExtensions.readValue(e))}),v.expressionRewriting.writeValueToProperty(r,n,"selectedOptions",i)})},update:function(e,t){if("select"!=v.utils.tagNameLower(e))throw new Error("values binding applies only to SELECT elements");var n=v.utils.unwrapObservable(t()),r=e.scrollTop;n&&"number"==typeof n.length&&v.utils.arrayForEach(e.getElementsByTagName("option"),function(e){var t=v.utils.arrayIndexOf(n,v.selectExtensions.readValue(e))>=0;e.selected!=t&&v.utils.setOptionNodeSelectionState(e,t)}),e.scrollTop=r}},v.expressionRewriting.twoWayBindings.selectedOptions=!0,v.bindingHandlers.style={update:function(e,t){var n=v.utils.unwrapObservable(t()||{});v.utils.objectForEach(n,function(t,n){n=v.utils.unwrapObservable(n),null!==n&&n!==s&&!1!==n||(n=""),e.style[t]=n})}},v.bindingHandlers.submit={init:function(e,t,n,r,i){if("function"!=typeof t())throw new Error("The value for a submit binding must be a function");v.utils.registerEventHandler(e,"submit",function(n){var r,o=t();try{r=o.call(i.$data,e)}finally{!0!==r&&(n.preventDefault?n.preventDefault():n.returnValue=!1)}})}},v.bindingHandlers.text={init:function(){return{controlsDescendantBindings:!0}},update:function(e,t){v.utils.setTextContent(e,t())}},v.virtualElements.allowedBindings.text=!0,function(){if(u&&u.navigator)var e=function(e){if(e)return parseFloat(e[1])},t=u.opera&&u.opera.version&&parseInt(u.opera.version()),n=u.navigator.userAgent,r=e(n.match(/^(?:(?!chrome).)*version\/([^ ]*) safari/i)),i=e(n.match(/Firefox\/([^ ]*)/));if(v.utils.ieVersion<10)var o=v.utils.domData.nextKey(),l=v.utils.domData.nextKey(),c=function(e){var t=this.activeElement,n=t&&v.utils.domData.get(t,l);n&&n(e)},p=function(e,t){var n=e.ownerDocument;v.utils.domData.get(n,o)||(v.utils.domData.set(n,o,!0),v.utils.registerEventHandler(n,"selectionchange",c)),v.utils.domData.set(e,l,t)};v.bindingHandlers.textInput={init:function(e,n,o){var u,l,c=e.value,d=function(t){clearTimeout(u),l=u=s;var r=e.value;c!==r&&(a&&t&&(e._ko_textInputProcessedEvent=t.type),c=r,v.expressionRewriting.writeValueToProperty(n(),o,"textInput",r))},h=function(t){if(!u){l=e.value;var n=a?d.bind(e,{type:t.type}):d;u=v.utils.setTimeout(n,4)}},f=9==v.utils.ieVersion?h:d,m=function(){var t=v.utils.unwrapObservable(n());if(null!==t&&t!==s||(t=""),l!==s&&t===l)return void v.utils.setTimeout(m,4);e.value!==t&&(c=t,e.value=t)},g=function(t,n){v.utils.registerEventHandler(e,t,n)};a&&v.bindingHandlers.textInput._forceUpdateOn?v.utils.arrayForEach(v.bindingHandlers.textInput._forceUpdateOn,function(e){"after"==e.slice(0,5)?g(e.slice(5),h):g(e,d)}):v.utils.ieVersion<10?(g("propertychange",function(e){"value"===e.propertyName&&f(e)}),8==v.utils.ieVersion&&(g("keyup",d),g("keydown",d)),v.utils.ieVersion>=8&&(p(e,f),g("dragend",h))):(g("input",d),r<5&&"textarea"===v.utils.tagNameLower(e)?(g("keydown",h),g("paste",h),g("cut",h)):t<11?g("keydown",h):i<4&&(g("DOMAutoComplete",d),g("dragdrop",d),g("drop",d))),g("change",d),v.computed(m,null,{disposeWhenNodeIsRemoved:e})}},v.expressionRewriting.twoWayBindings.textInput=!0,v.bindingHandlers.textinput={preprocess:function(e,t,n){n("textInput",e)}}}(),v.bindingHandlers.uniqueName={init:function(e,t){if(t()){var n="ko_unique_"+ ++v.bindingHandlers.uniqueName.currentIndex;v.utils.setElementName(e,n)}}},v.bindingHandlers.uniqueName.currentIndex=0,v.bindingHandlers.value={after:["options","foreach"],init:function(e,t,n){if("input"==e.tagName.toLowerCase()&&("checkbox"==e.type||"radio"==e.type))return void v.applyBindingAccessorsToNode(e,{checkedValue:t});var r=["change"],i=n.get("valueUpdate"),o=!1,a=null;i&&("string"==typeof i&&(i=[i]),v.utils.arrayPushAll(r,i),r=v.utils.arrayGetDistinctValues(r));var s=function(){a=null,o=!1;var r=t(),i=v.selectExtensions.readValue(e);v.expressionRewriting.writeValueToProperty(r,n,"value",i)};v.utils.ieVersion&&"input"==e.tagName.toLowerCase()&&"text"==e.type&&"off"!=e.autocomplete&&(!e.form||"off"!=e.form.autocomplete)&&-1==v.utils.arrayIndexOf(r,"propertychange")&&(v.utils.registerEventHandler(e,"propertychange",function(){o=!0}),v.utils.registerEventHandler(e,"focus",function(){o=!1}),v.utils.registerEventHandler(e,"blur",function(){o&&s()})),v.utils.arrayForEach(r,function(t){var n=s;v.utils.stringStartsWith(t,"after")&&(n=function(){a=v.selectExtensions.readValue(e),v.utils.setTimeout(s,0)},t=t.substring("after".length)),v.utils.registerEventHandler(e,t,n)});var u=function(){var r=v.utils.unwrapObservable(t()),i=v.selectExtensions.readValue(e);if(null!==a&&r===a)return void v.utils.setTimeout(u,0);if(r!==i)if("select"===v.utils.tagNameLower(e)){var o=n.get("valueAllowUnset"),s=function(){v.selectExtensions.writeValue(e,r,o)};s(),o||r===v.selectExtensions.readValue(e)?v.utils.setTimeout(s,0):v.dependencyDetection.ignore(v.utils.triggerEvent,null,[e,"change"])}else v.selectExtensions.writeValue(e,r)};v.computed(u,null,{disposeWhenNodeIsRemoved:e})},update:function(){}},v.expressionRewriting.twoWayBindings.value=!0,v.bindingHandlers.visible={update:function(e,t){var n=v.utils.unwrapObservable(t()),r=!("none"==e.style.display);n&&!r?e.style.display="":!n&&r&&(e.style.display="none")}},g("click"),v.templateEngine=function(){},v.templateEngine.prototype.renderTemplateSource=function(e,t,n,r){throw new Error("Override renderTemplateSource")},v.templateEngine.prototype.createJavaScriptEvaluatorBlock=function(e){throw new Error("Override createJavaScriptEvaluatorBlock")},v.templateEngine.prototype.makeTemplateSource=function(e,t){if("string"==typeof e){t=t||l;var n=t.getElementById(e);if(!n)throw new Error("Cannot find template with ID "+e);return new v.templateSources.domElement(n)}if(1==e.nodeType||8==e.nodeType)return new v.templateSources.anonymousTemplate(e);throw new Error("Unknown template type: "+e)},v.templateEngine.prototype.renderTemplate=function(e,t,n,r){var i=this.makeTemplateSource(e,r);return this.renderTemplateSource(i,t,n,r)},v.templateEngine.prototype.isTemplateRewritten=function(e,t){return!1===this.allowTemplateRewriting||this.makeTemplateSource(e,t).data("isRewritten")},v.templateEngine.prototype.rewriteTemplate=function(e,t,n){var r=this.makeTemplateSource(e,n),i=t(r.text());r.text(i),r.data("isRewritten",!0)},v.exportSymbol("templateEngine",v.templateEngine),v.templateRewriting=function(){function e(e){for(var t=v.expressionRewriting.bindingRewriteValidators,n=0;n]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,r=//g;return{ensureTemplateIsRewritten:function(e,t,n){t.isTemplateRewritten(e,n)||t.rewriteTemplate(e,function(e){return v.templateRewriting.memoizeBindingAttributeSyntax(e,t)},n)},memoizeBindingAttributeSyntax:function(e,i){return e.replace(n,function(){return t(arguments[4],arguments[1],arguments[2],i)}).replace(r,function(){return t(arguments[1],"\x3c!-- ko --\x3e","#comment",i)})},applyMemoizedBindingsToNextSibling:function(e,t){return v.memoization.memoize(function(n,r){var i=n.nextSibling;i&&i.nodeName.toLowerCase()===t&&v.applyBindingAccessorsToNode(i,e,r)})}}}(),v.exportSymbol("__tr_ambtns",v.templateRewriting.applyMemoizedBindingsToNextSibling),function(){function e(e){return v.utils.domData.get(e,u)||{}}function t(e,t){v.utils.domData.set(e,u,t)}v.templateSources={};var n=1,r=2,i=3,o=4;v.templateSources.domElement=function(e){if(this.domElement=e,e){var t=v.utils.tagNameLower(e);this.templateType="script"===t?n:"textarea"===t?r:"template"==t&&e.content&&11===e.content.nodeType?i:o}},v.templateSources.domElement.prototype.text=function(){var e=this.templateType===n?"text":this.templateType===r?"value":"innerHTML";if(0==arguments.length)return this.domElement[e];var t=arguments[0];"innerHTML"===e?v.utils.setHtml(this.domElement,t):this.domElement[e]=t};var a=v.utils.domData.nextKey()+"_";v.templateSources.domElement.prototype.data=function(e){if(1===arguments.length)return v.utils.domData.get(this.domElement,a+e);v.utils.domData.set(this.domElement,a+e,arguments[1])};var u=v.utils.domData.nextKey();v.templateSources.domElement.prototype.nodes=function(){var n=this.domElement;if(0==arguments.length){return e(n).containerData||(this.templateType===i?n.content:this.templateType===o?n:s)}t(n,{containerData:arguments[0]})},v.templateSources.anonymousTemplate=function(e){this.domElement=e},v.templateSources.anonymousTemplate.prototype=new v.templateSources.domElement,v.templateSources.anonymousTemplate.prototype.constructor=v.templateSources.anonymousTemplate,v.templateSources.anonymousTemplate.prototype.text=function(){if(0==arguments.length){var n=e(this.domElement);return n.textData===s&&n.containerData&&(n.textData=n.containerData.innerHTML),n.textData}var r=arguments[0];t(this.domElement,{textData:r})},v.exportSymbol("templateSources",v.templateSources),v.exportSymbol("templateSources.domElement",v.templateSources.domElement),v.exportSymbol("templateSources.anonymousTemplate",v.templateSources.anonymousTemplate)}(),function(){function e(e,t,n){for(var r,i=e,o=v.virtualElements.nextSibling(t);i&&(r=i)!==o;)i=v.virtualElements.nextSibling(r),n(r,i)}function t(t,n){if(t.length){var r=t[0],i=t[t.length-1],o=r.parentNode,a=v.bindingProvider.instance,s=a.preprocessNode;if(s){if(e(r,i,function(e,t){var n=e.previousSibling,o=s.call(a,e);o&&(e===r&&(r=o[0]||t),e===i&&(i=o[o.length-1]||n))}),t.length=0,!r)return;r===i?t.push(r):(t.push(r,i),v.utils.fixUpContinuousNodeArray(t,o))}e(r,i,function(e){1!==e.nodeType&&8!==e.nodeType||v.applyBindings(n,e)}),e(r,i,function(e){1!==e.nodeType&&8!==e.nodeType||v.memoization.unmemoizeDomNodeAndDescendants(e,[n])}),v.utils.fixUpContinuousNodeArray(t,o)}}function n(e){return e.nodeType?e:e.length>0?e[0]:null}function r(e,r,i,o,s){s=s||{};var u=e&&n(e),l=(u||i||{}).ownerDocument,c=s.templateEngine||a;v.templateRewriting.ensureTemplateIsRewritten(i,c,l);var p=c.renderTemplate(i,o,s,l);if("number"!=typeof p.length||p.length>0&&"number"!=typeof p[0].nodeType)throw new Error("Template engine must return an array of DOM nodes");var d=!1;switch(r){case"replaceChildren":v.virtualElements.setDomNodeChildren(e,p),d=!0;break;case"replaceNode":v.utils.replaceDomNodes(e,p),d=!0;break;case"ignoreTargetNode":break;default:throw new Error("Unknown renderMode: "+r)}return d&&(t(p,o),s.afterRender&&v.dependencyDetection.ignore(s.afterRender,null,[p,o.$data])),p}function i(e,t,n){return v.isObservable(e)?e():"function"==typeof e?e(t,n):e}function o(e,t){var n=v.utils.domData.get(e,u);n&&"function"==typeof n.dispose&&n.dispose(),v.utils.domData.set(e,u,t&&t.isActive()?t:s)}var a;v.setTemplateEngine=function(e){if(e!=s&&!(e instanceof v.templateEngine))throw new Error("templateEngine must inherit from ko.templateEngine");a=e},v.renderTemplate=function(e,t,o,u,l){if(o=o||{},(o.templateEngine||a)==s)throw new Error("Set a template engine before calling renderTemplate");if(l=l||"replaceChildren",u){var c=n(u),p=function(){return!c||!v.utils.domNodeIsAttachedToDocument(c)},d=c&&"replaceNode"==l?c.parentNode:c;return v.dependentObservable(function(){var a=t&&t instanceof v.bindingContext?t:new v.bindingContext(v.utils.unwrapObservable(t)),s=i(e,a.$data,a),p=r(u,l,s,a,o);"replaceNode"==l&&(u=p,c=n(u))},null,{disposeWhen:p,disposeWhenNodeIsRemoved:d})}return v.memoization.memoize(function(n){v.renderTemplate(e,t,o,n,"replaceNode")})},v.renderTemplateForEach=function(e,n,o,a,u){var l,c=function(t,n){return l=u.createChildContext(t,o.as,function(e){e.$index=n}),r(null,"ignoreTargetNode",i(e,t,l),l,o)},p=function(e,n,r){t(n,l),o.afterRender&&o.afterRender(n,e),l=null};return v.dependentObservable(function(){var e=v.utils.unwrapObservable(n)||[];void 0===e.length&&(e=[e]);var t=v.utils.arrayFilter(e,function(e){return o.includeDestroyed||e===s||null===e||!v.utils.unwrapObservable(e._destroy)});v.dependencyDetection.ignore(v.utils.setDomNodeChildrenFromArrayMapping,null,[a,t,c,o,p])},null,{disposeWhenNodeIsRemoved:a})};var u=v.utils.domData.nextKey();v.bindingHandlers.template={init:function(e,t){var n=v.utils.unwrapObservable(t());if("string"==typeof n||n.name)v.virtualElements.emptyNode(e);else if("nodes"in n){var r=n.nodes||[];if(v.isObservable(r))throw new Error('The "nodes" option must be a plain, non-observable array.');var i=v.utils.moveCleanedNodesToContainerElement(r);new v.templateSources.anonymousTemplate(e).nodes(i)}else{var o=v.virtualElements.childNodes(e),i=v.utils.moveCleanedNodesToContainerElement(o);new v.templateSources.anonymousTemplate(e).nodes(i)}return{controlsDescendantBindings:!0}},update:function(e,t,n,r,i){var a,s,u=t(),l=v.utils.unwrapObservable(u),c=!0,p=null;if("string"==typeof l?(s=u,l={}):(s=l.name,"if"in l&&(c=v.utils.unwrapObservable(l.if)),c&&"ifnot"in l&&(c=!v.utils.unwrapObservable(l.ifnot)),a=v.utils.unwrapObservable(l.data)),"foreach"in l){var d=c&&l.foreach||[];p=v.renderTemplateForEach(s||e,d,l,e,i)}else if(c){var h="data"in l?i.createChildContext(a,l.as):i;p=v.renderTemplate(s||e,h,l,e)}else v.virtualElements.emptyNode(e);o(e,p)}},v.expressionRewriting.bindingRewriteValidators.template=function(e){var t=v.expressionRewriting.parseObjectLiteral(e);return 1==t.length&&t[0].unknown?null:v.expressionRewriting.keyValueArrayContainsKey(t,"name")?null:"This template engine does not support anonymous templates nested within its templates"},v.virtualElements.allowedBindings.template=!0}(),v.exportSymbol("setTemplateEngine",v.setTemplateEngine),v.exportSymbol("renderTemplate",v.renderTemplate),v.utils.findMovesInArrayComparison=function(e,t,n){if(e.length&&t.length){var r,i,o,a,s;for(r=i=0;(!n||r0&&(v.utils.replaceDomNodes(o,a),r&&v.dependencyDetection.ignore(r,null,[n,a,i])),o.length=0,v.utils.arrayPushAll(o,a)},null,{disposeWhenNodeIsRemoved:e,disposeWhen:function(){return!v.utils.anyDomNodeIsAttachedToDocument(o)}});return{mappedNodes:o,dependentObservable:a.isActive()?a:s}}var t=v.utils.domData.nextKey(),n=v.utils.domData.nextKey();v.utils.setDomNodeChildrenFromArrayMapping=function(r,i,o,a,u){function l(e,t){p=m[t],C!==t&&(T[e]=p),p.indexObservable(C++),v.utils.fixUpContinuousNodeArray(p.mappedNodes,r),b.push(p),P.push(p)}function c(e,t){if(e)for(var n=0,r=t.length;n=0)return 2}catch(e){}return 1}();this.renderTemplateSource=function(n,r,i,o){o=o||l,i=i||{},e();var a=n.data("precompiled");if(!a){var s=n.text()||"";s="{{ko_with $item.koBindingContext}}"+s+"{{/ko_with}}",a=p.template(null,s),n.data("precompiled",a)}var u=[r.$data],c=p.extend({koBindingContext:r},i.templateOptions),d=t(a,u,c);return d.appendTo(o.createElement("div")),p.fragments={},d},this.createJavaScriptEvaluatorBlock=function(e){return"{{ko_code ((function() { return "+e+" })()) }}"},this.addTemplate=function(e,t){l.write("