nextcloud/apps/workflowengine/js/workflowengine.js.map

1 line
202 KiB
Plaintext

{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/handlebars/dist/cjs/handlebars/utils.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/exception.js","webpack:///./node_modules/handlebars/runtime.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/base.js","webpack:///./apps/workflowengine/src/hbs_helpers/selectItem.js","webpack:///./apps/workflowengine/src/templates/operation.handlebars","webpack:///./apps/workflowengine/src/templates/operations.handlebars","webpack:///./node_modules/handlebars/dist/cjs/handlebars.runtime.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/if.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/decorators.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/logger.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/safe-string.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/runtime.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js","webpack:///(webpack)/buildin/global.js","webpack:///./apps/workflowengine/src/hbs_helpers/getOperators.js","webpack:///./apps/workflowengine/src/filemimetypeplugin.js","webpack:///./apps/workflowengine/src/filenameplugin.js","webpack:///./apps/workflowengine/src/filesizeplugin.js","webpack:///./apps/workflowengine/src/filesystemtagsplugin.js","webpack:///./apps/workflowengine/src/requestremoteaddressplugin.js","webpack:///./apps/workflowengine/src/requesttimeplugin.js","webpack:///./apps/workflowengine/src/requesturlplugin.js","webpack:///./apps/workflowengine/src/requestuseragentplugin.js","webpack:///./apps/workflowengine/src/usergroupmembershipplugin.js","webpack:///./apps/workflowengine/src/admin.js","webpack:///./apps/workflowengine/src/workflowengine.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","extend","indexOf","array","len","length","escapeExpression","string","toHTML","possible","test","replace","badChars","escapeChar","isEmpty","isArray","createFrame","frame","_parent","blockParams","params","ids","path","appendContextPath","contextPath","id","escape","chr","obj","arguments","toString","isFunction","Array","errorProps","Exception","message","node","loc","line","undefined","column","start","tmp","Error","constructor","this","idx","captureStackTrace","lineNumber","nop","_interopRequireDefault","HandlebarsEnvironment","_utils","_exception2","_helpers","_decorators","_logger2","VERSION","COMPILER_REVISION","REVISION_CHANGES","1","2","3","4","5","6","7","helpers","partials","decorators","registerDefaultHelpers","registerDefaultDecorators","logger","log","registerHelper","fn","unregisterHelper","registerPartial","partial","unregisterPartial","registerDecorator","unregisterDecorator","currentValue","itemValue","Handlebars","__default","template","container","depth0","data","depths","stack1","alias1","lambda","alias2","alias3","nullContext","index","each","classes","program","noop","operator","operation","saveTXT","resetTXT","savingTXT","errorMessage","hasChanged","shortRuleDescTXT","checks","addRuleTXT","saving","helper","addRuleGroupTXT","helperMissing","_interopRequireWildcard","newObj","base","_handlebarsSafeString2","_handlebarsException2","Utils","runtime","_handlebarsNoConflict2","hb","SafeString","VM","spec","inst","instance","_helpersBlockHelperMissing2","_helpersEach2","_helpersHelperMissing2","_helpersIf2","_helpersLog2","_helpersLookup2","_helpersWith2","context","options","inverse","_exception","ret","execIteration","field","last","first","j","priorKey","conditional","hash","includeZero","args","push","level","apply","propertyIsEnumerable","_decoratorsInline2","_decoratorsInline","props","original","methodMap","lookupLevel","levelMap","toLowerCase","parseInt","console","method","_len","_key","checkRevision","compilerInfo","compilerRevision","currentRevision","_base","runtimeVersions","compilerVersions","templateSpec","env","main","decorator","main_d","compiler","strict","lookup","current","invokePartial","resolvePartial","result","compile","compilerOptions","indent","lines","split","join","programs","declaredBlockParams","programWrapper","wrapProgram","depth","merge","param","common","seal","_setup","useData","root","initData","useBlockParams","useDepths","concat","executeDecorators","isTop","usePartial","useDecorators","_child","currentPartialBlock","partialBlock","Function","prog","currentDepths","global","window","$Handlebars","noConflict","g","e","classname","check","OCA","WorkflowEngine","getCheckByClass","_","isUndefined","Plugins","FileMimeTypePlugin","getCheck","render","element","placeholder","_validateRegex","$","removeClass","addClass","css","attr","tooltip","placement","exec","OC","register","FileNamePlugin","FileSizePlugin","FileSystemTagsPlugin","collection","SystemTags","select2","allowClear","multiple","query","debounce","callback","results","filterByName","term","initSelection","val","formatResult","tag","getDescriptiveTag","formatSelection","tagId","escapeMarkup","RequestRemoteAddressPlugin","_validateIPv6","_validateIPv4","RequestTimePlugin","timezones","_$element","startTime","endTime","timezone","jstz","determine","$element","isString","JSON","parse","splittedStart","splittedEnd","valueJSON","stringify","insertBefore","timezoneInput","ajax","url","generateUrl","dataType","quietMillis","search","response","more","parent","on","update","event","target","classList","moment","parsedDate","format","indexValue","trigger","warn","RequestURLPlugin","predefinedValues","self","text","children","unshift","createSearchChoice","RequestUserAgentPlugin","UserGroupMembershipPlugin","groups","groupId","displayname","find","group","escapeHTML","availablePlugins","availableChecks","className","Operation","Backbone","Model","defaults","OperationsCollection","Collection","model","OperationView","View","templateId","events","originalModel","vars","OperationTemplate","initialize","linkToOCS","success","ocs","forEach","Notification","error","type","delete","PasswordConfirmation","requiresPasswordConfirmation","requirePasswordConfirmation","destroy","remove","reset","set","silent","save","responseText","add","clone","operators","checkChanged","parentElement","substr","has","deleteCheck","splice","operationChanged","$el","html","toJSON","valueElement","plugin","delay","elements","OperationsView","OperationsTemplate","getPlugins","fetch","once","renderOperation","subView","append"],"mappings":"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","file":"workflowengine.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 33);\n","'use strict';\n\nexports.__esModule = true;\nexports.extend = extend;\nexports.indexOf = indexOf;\nexports.escapeExpression = escapeExpression;\nexports.isEmpty = isEmpty;\nexports.createFrame = createFrame;\nexports.blockParams = blockParams;\nexports.appendContextPath = appendContextPath;\nvar escape = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#x27;',\n '`': '&#x60;',\n '=': '&#x3D;'\n};\n\nvar badChars = /[&<>\"'`=]/g,\n possible = /[&<>\"'`=]/;\n\nfunction escapeChar(chr) {\n return escape[chr];\n}\n\nfunction extend(obj /* , ...source */) {\n for (var i = 1; i < arguments.length; i++) {\n for (var key in arguments[i]) {\n if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n obj[key] = arguments[i][key];\n }\n }\n }\n\n return obj;\n}\n\nvar toString = Object.prototype.toString;\n\nexports.toString = toString;\n// Sourced from lodash\n// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n/* eslint-disable func-style */\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n// fallback for older versions of Chrome and Safari\n/* istanbul ignore next */\nif (isFunction(/x/)) {\n exports.isFunction = isFunction = function (value) {\n return typeof value === 'function' && toString.call(value) === '[object Function]';\n };\n}\nexports.isFunction = isFunction;\n\n/* eslint-enable func-style */\n\n/* istanbul ignore next */\nvar isArray = Array.isArray || function (value) {\n return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\n};\n\nexports.isArray = isArray;\n// Older IE versions do not directly support indexOf so we must implement our own, sadly.\n\nfunction indexOf(array, value) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n return -1;\n}\n\nfunction escapeExpression(string) {\n if (typeof string !== 'string') {\n // don't escape SafeStrings, since they're already safe\n if (string && string.toHTML) {\n return string.toHTML();\n } else if (string == null) {\n return '';\n } else if (!string) {\n return string + '';\n }\n\n // Force a string conversion as this will be done by the append regardless and\n // the regex test will do this transparently behind the scenes, causing issues if\n // an object's to string has escaped characters in it.\n string = '' + string;\n }\n\n if (!possible.test(string)) {\n return string;\n }\n return string.replace(badChars, escapeChar);\n}\n\nfunction isEmpty(value) {\n if (!value && value !== 0) {\n return true;\n } else if (isArray(value) && value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction createFrame(object) {\n var frame = extend({}, object);\n frame._parent = object;\n return frame;\n}\n\nfunction blockParams(params, ids) {\n params.path = ids;\n return params;\n}\n\nfunction appendContextPath(contextPath, id) {\n return (contextPath ? contextPath + '.' : '') + id;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3V0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFNLE1BQU0sR0FBRztBQUNiLEtBQUcsRUFBRSxPQUFPO0FBQ1osS0FBRyxFQUFFLE1BQU07QUFDWCxLQUFHLEVBQUUsTUFBTTtBQUNYLEtBQUcsRUFBRSxRQUFRO0FBQ2IsS0FBRyxFQUFFLFFBQVE7QUFDYixLQUFHLEVBQUUsUUFBUTtBQUNiLEtBQUcsRUFBRSxRQUFRO0NBQ2QsQ0FBQzs7QUFFRixJQUFNLFFBQVEsR0FBRyxZQUFZO0lBQ3ZCLFFBQVEsR0FBRyxXQUFXLENBQUM7O0FBRTdCLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRTtBQUN2QixTQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNwQjs7QUFFTSxTQUFTLE1BQU0sQ0FBQyxHQUFHLG9CQUFtQjtBQUMzQyxPQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN6QyxTQUFLLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM1QixVQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDM0QsV0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztPQUM5QjtLQUNGO0dBQ0Y7O0FBRUQsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7Ozs7O0FBS2hELElBQUksVUFBVSxHQUFHLG9CQUFTLEtBQUssRUFBRTtBQUMvQixTQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztDQUNwQyxDQUFDOzs7QUFHRixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNuQixVQUlNLFVBQVUsR0FKaEIsVUFBVSxHQUFHLFVBQVMsS0FBSyxFQUFFO0FBQzNCLFdBQU8sT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssbUJBQW1CLENBQUM7R0FDcEYsQ0FBQztDQUNIO1FBQ08sVUFBVSxHQUFWLFVBQVU7Ozs7O0FBSVgsSUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxVQUFTLEtBQUssRUFBRTtBQUN0RCxTQUFPLEFBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsR0FBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGdCQUFnQixHQUFHLEtBQUssQ0FBQztDQUNqRyxDQUFDOzs7OztBQUdLLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDcEMsT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNoRCxRQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7QUFDdEIsYUFBTyxDQUFDLENBQUM7S0FDVjtHQUNGO0FBQ0QsU0FBTyxDQUFDLENBQUMsQ0FBQztDQUNYOztBQUdNLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0FBQ3ZDLE1BQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFOztBQUU5QixRQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQzNCLGFBQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ3hCLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQ3pCLGFBQU8sRUFBRSxDQUFDO0tBQ1gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2xCLGFBQU8sTUFBTSxHQUFHLEVBQUUsQ0FBQztLQUNwQjs7Ozs7QUFLRCxVQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztHQUN0Qjs7QUFFRCxNQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUFFLFdBQU8sTUFBTSxDQUFDO0dBQUU7QUFDOUMsU0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztDQUM3Qzs7QUFFTSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLFdBQU8sSUFBSSxDQUFDO0dBQ2IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMvQyxXQUFPLElBQUksQ0FBQztHQUNiLE1BQU07QUFDTCxXQUFPLEtBQUssQ0FBQztHQUNkO0NBQ0Y7O0FBRU0sU0FBUyxXQUFXLENBQUMsTUFBTSxFQUFFO0FBQ2xDLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0IsT0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDdkIsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ3ZDLFFBQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLFNBQU8sTUFBTSxDQUFDO0NBQ2Y7O0FBRU0sU0FBUyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO0FBQ2pELFNBQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUEsR0FBSSxFQUFFLENBQUM7Q0FDcEQiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlc2NhcGUgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmI3gyNzsnLFxuICAnYCc6ICcmI3g2MDsnLFxuICAnPSc6ICcmI3gzRDsnXG59O1xuXG5jb25zdCBiYWRDaGFycyA9IC9bJjw+XCInYD1dL2csXG4gICAgICBwb3NzaWJsZSA9IC9bJjw+XCInYD1dLztcblxuZnVuY3Rpb24gZXNjYXBlQ2hhcihjaHIpIHtcbiAgcmV0dXJuIGVzY2FwZVtjaHJdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kKG9iai8qICwgLi4uc291cmNlICovKSB7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3VtZW50c1tpXSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmd1bWVudHNbaV0sIGtleSkpIHtcbiAgICAgICAgb2JqW2tleV0gPSBhcmd1bWVudHNbaV1ba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgbGV0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuLy8gU291cmNlZCBmcm9tIGxvZGFzaFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Jlc3RpZWpzL2xvZGFzaC9ibG9iL21hc3Rlci9MSUNFTlNFLnR4dFxuLyogZXNsaW50LWRpc2FibGUgZnVuYy1zdHlsZSAqL1xubGV0IGlzRnVuY3Rpb24gPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufTtcbi8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBDaHJvbWUgYW5kIFNhZmFyaVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChpc0Z1bmN0aW9uKC94LykpIHtcbiAgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcbiAgfTtcbn1cbmV4cG9ydCB7aXNGdW5jdGlvbn07XG4vKiBlc2xpbnQtZW5hYmxlIGZ1bmMtc3R5bGUgKi9cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmV4cG9ydCBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpID8gdG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEFycmF5XScgOiBmYWxzZTtcbn07XG5cbi8vIE9sZGVyIElFIHZlcnNpb25zIGRvIG5vdCBkaXJlY3RseSBzdXBwb3J0IGluZGV4T2Ygc28gd2UgbXVzdCBpbXBsZW1lbnQgb3VyIG93biwgc2FkbHkuXG5leHBvcnQgZnVuY3Rpb24gaW5kZXhPZihhcnJheSwgdmFsdWUpIHtcbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGFycmF5Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGFycmF5W2ldID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGk7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlRXhwcmVzc2lvbihzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gZG9uJ3QgZXNjYXBlIFNhZmVTdHJpbmdzLCBzaW5jZSB0aGV5J3JlIGFscmVhZHkgc2FmZVxuICAgIGlmIChzdHJpbmcgJiYgc3RyaW5nLnRvSFRNTCkge1xuICAgICAgcmV0dXJuIHN0cmluZy50b0hUTUwoKTtcbiAgICB9IGVsc2UgaWYgKHN0cmluZyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIGlmICghc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyaW5nICsgJyc7XG4gICAgfVxuXG4gICAgLy8gRm9yY2UgYSBzdHJpbmcgY29udmVyc2lvbiBhcyB0aGlzIHdpbGwgYmUgZG9uZSBieSB0aGUgYXBwZW5kIHJlZ2FyZGxlc3MgYW5kXG4gICAgLy8gdGhlIHJlZ2V4IHRlc3Qgd2lsbCBkbyB0aGlzIHRyYW5zcGFyZW50bHkgYmVoaW5kIHRoZSBzY2VuZXMsIGNhdXNpbmcgaXNzdWVzIGlmXG4gICAgLy8gYW4gb2JqZWN0J3MgdG8gc3RyaW5nIGhhcyBlc2NhcGVkIGNoYXJhY3RlcnMgaW4gaXQuXG4gICAgc3RyaW5nID0gJycgKyBzdHJpbmc7XG4gIH1cblxuICBpZiAoIXBvc3NpYmxlLnRlc3Qoc3RyaW5nKSkgeyByZXR1cm4gc3RyaW5nOyB9XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZShiYWRDaGFycywgZXNjYXBlQ2hhcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VtcHR5KHZhbHVlKSB7XG4gIGlmICghdmFsdWUgJiYgdmFsdWUgIT09IDApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIGlmIChpc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZyYW1lKG9iamVjdCkge1xuICBsZXQgZnJhbWUgPSBleHRlbmQoe30sIG9iamVjdCk7XG4gIGZyYW1lLl9wYXJlbnQgPSBvYmplY3Q7XG4gIHJldHVybiBmcmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJsb2NrUGFyYW1zKHBhcmFtcywgaWRzKSB7XG4gIHBhcmFtcy5wYXRoID0gaWRzO1xuICByZXR1cm4gcGFyYW1zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kQ29udGV4dFBhdGgoY29udGV4dFBhdGgsIGlkKSB7XG4gIHJldHVybiAoY29udGV4dFBhdGggPyBjb250ZXh0UGF0aCArICcuJyA6ICcnKSArIGlkO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nvar errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var loc = node && node.loc,\n line = undefined,\n column = undefined;\n if (loc) {\n line = loc.start.line;\n column = loc.start.column;\n\n message += ' - ' + line + ':' + column;\n }\n\n var tmp = Error.prototype.constructor.call(this, message);\n\n // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n\n /* istanbul ignore else */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, Exception);\n }\n\n try {\n if (loc) {\n this.lineNumber = line;\n\n // Work around issue under safari where we can't directly set the column value\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(this, 'column', {\n value: column,\n enumerable: true\n });\n } else {\n this.column = column;\n }\n }\n } catch (nop) {\n /* Ignore if the browser is very particular */\n }\n}\n\nException.prototype = new Error();\n\nexports['default'] = Exception;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2V4Y2VwdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsSUFBTSxVQUFVLEdBQUcsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQzs7QUFFbkcsU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNoQyxNQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUc7TUFDdEIsSUFBSSxZQUFBO01BQ0osTUFBTSxZQUFBLENBQUM7QUFDWCxNQUFJLEdBQUcsRUFBRTtBQUNQLFFBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztBQUN0QixVQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7O0FBRTFCLFdBQU8sSUFBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUM7R0FDeEM7O0FBRUQsTUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQzs7O0FBRzFELE9BQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO0FBQ2hELFFBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7R0FDOUM7OztBQUdELE1BQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFO0FBQzNCLFNBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7R0FDMUM7O0FBRUQsTUFBSTtBQUNGLFFBQUksR0FBRyxFQUFFO0FBQ1AsVUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Ozs7QUFJdkIsVUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFO0FBQ3pCLGNBQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtBQUNwQyxlQUFLLEVBQUUsTUFBTTtBQUNiLG9CQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7T0FDSixNQUFNO0FBQ0wsWUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7T0FDdEI7S0FDRjtHQUNGLENBQUMsT0FBTyxHQUFHLEVBQUU7O0dBRWI7Q0FDRjs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7O3FCQUVuQixTQUFTIiwiZmlsZSI6ImV4Y2VwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuY29uc3QgZXJyb3JQcm9wcyA9IFsnZGVzY3JpcHRpb24nLCAnZmlsZU5hbWUnLCAnbGluZU51bWJlcicsICdtZXNzYWdlJywgJ25hbWUnLCAnbnVtYmVyJywgJ3N0YWNrJ107XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIGxldCBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgICAgbGluZSxcbiAgICAgIGNvbHVtbjtcbiAgaWYgKGxvYykge1xuICAgIGxpbmUgPSBsb2Muc3RhcnQubGluZTtcbiAgICBjb2x1bW4gPSBsb2Muc3RhcnQuY29sdW1uO1xuXG4gICAgbWVzc2FnZSArPSAnIC0gJyArIGxpbmUgKyAnOicgKyBjb2x1bW47XG4gIH1cblxuICBsZXQgdG1wID0gRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgbWVzc2FnZSk7XG5cbiAgLy8gVW5mb3J0dW5hdGVseSBlcnJvcnMgYXJlIG5vdCBlbnVtZXJhYmxlIGluIENocm9tZSAoYXQgbGVhc3QpLCBzbyBgZm9yIHByb3AgaW4gdG1wYCBkb2Vzbid0IHdvcmsuXG4gIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9yUHJvcHMubGVuZ3RoOyBpZHgrKykge1xuICAgIHRoaXNbZXJyb3JQcm9wc1tpZHhdXSA9IHRtcFtlcnJvclByb3BzW2lkeF1dO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKGxvYykge1xuICAgICAgdGhpcy5saW5lTnVtYmVyID0gbGluZTtcblxuICAgICAgLy8gV29yayBhcm91bmQgaXNzdWUgdW5kZXIgc2FmYXJpIHdoZXJlIHdlIGNhbid0IGRpcmVjdGx5IHNldCB0aGUgY29sdW1uIHZhbHVlXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2NvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogY29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKG5vcCkge1xuICAgIC8qIElnbm9yZSBpZiB0aGUgYnJvd3NlciBpcyB2ZXJ5IHBhcnRpY3VsYXIgKi9cbiAgfVxufVxuXG5FeGNlcHRpb24ucHJvdG90eXBlID0gbmV3IEVycm9yKCk7XG5cbmV4cG9ydCBkZWZhdWx0IEV4Y2VwdGlvbjtcbiJdfQ==\n","// Create a simple path alias to allow browserify to resolve\n// the runtime on a supported path.\nmodule.exports = require('./dist/cjs/handlebars.runtime')['default'];\n","'use strict';\n\nexports.__esModule = true;\nexports.HandlebarsEnvironment = HandlebarsEnvironment;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _helpers = require('./helpers');\n\nvar _decorators = require('./decorators');\n\nvar _logger = require('./logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar VERSION = '4.2.0';\nexports.VERSION = VERSION;\nvar COMPILER_REVISION = 7;\n\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '== 1.x.x',\n 5: '== 2.0.0-alpha.x',\n 6: '>= 2.0.0-beta.1',\n 7: '>= 4.0.0'\n};\n\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials, decorators) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n this.decorators = decorators || {};\n\n _helpers.registerDefaultHelpers(this);\n _decorators.registerDefaultDecorators(this);\n}\n\nHandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n\n logger: _logger2['default'],\n log: _logger2['default'].log,\n\n registerHelper: function registerHelper(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple helpers');\n }\n _utils.extend(this.helpers, name);\n } else {\n this.helpers[name] = fn;\n }\n },\n unregisterHelper: function unregisterHelper(name) {\n delete this.helpers[name];\n },\n\n registerPartial: function registerPartial(name, partial) {\n if (_utils.toString.call(name) === objectType) {\n _utils.extend(this.partials, name);\n } else {\n if (typeof partial === 'undefined') {\n throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n }\n this.partials[name] = partial;\n }\n },\n unregisterPartial: function unregisterPartial(name) {\n delete this.partials[name];\n },\n\n registerDecorator: function registerDecorator(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple decorators');\n }\n _utils.extend(this.decorators, name);\n } else {\n this.decorators[name] = fn;\n }\n },\n unregisterDecorator: function unregisterDecorator(name) {\n delete this.decorators[name];\n }\n};\n\nvar log = _logger2['default'].log;\n\nexports.log = log;\nexports.createFrame = _utils.createFrame;\nexports.logger = _logger2['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQTRDLFNBQVM7O3lCQUMvQixhQUFhOzs7O3VCQUNFLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNuQyxVQUFVOzs7O0FBRXRCLElBQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQzs7QUFDeEIsSUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7OztBQUU1QixJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxVQUFVO0NBQ2QsQ0FBQzs7O0FBRUYsSUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUM7O0FBRTlCLFNBQVMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7QUFDbkUsTUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQzdCLE1BQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUMvQixNQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7O0FBRW5DLGtDQUF1QixJQUFJLENBQUMsQ0FBQztBQUM3Qix3Q0FBMEIsSUFBSSxDQUFDLENBQUM7Q0FDakM7O0FBRUQscUJBQXFCLENBQUMsU0FBUyxHQUFHO0FBQ2hDLGFBQVcsRUFBRSxxQkFBcUI7O0FBRWxDLFFBQU0scUJBQVE7QUFDZCxLQUFHLEVBQUUsb0JBQU8sR0FBRzs7QUFFZixnQkFBYyxFQUFFLHdCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDakMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQUUsY0FBTSwyQkFBYyx5Q0FBeUMsQ0FBQyxDQUFDO09BQUU7QUFDM0Usb0JBQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztLQUM1QixNQUFNO0FBQ0wsVUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDekI7R0FDRjtBQUNELGtCQUFnQixFQUFFLDBCQUFTLElBQUksRUFBRTtBQUMvQixXQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDM0I7O0FBRUQsaUJBQWUsRUFBRSx5QkFBUyxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQ3ZDLFFBQUksZ0JBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtBQUN0QyxvQkFBTyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzdCLE1BQU07QUFDTCxVQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRTtBQUNsQyxjQUFNLHlFQUEwRCxJQUFJLG9CQUFpQixDQUFDO09BQ3ZGO0FBQ0QsVUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7S0FDL0I7R0FDRjtBQUNELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRTtBQUNoQyxXQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDNUI7O0FBRUQsbUJBQWlCLEVBQUUsMkJBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNwQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFBRSxjQUFNLDJCQUFjLDRDQUE0QyxDQUFDLENBQUM7T0FBRTtBQUM5RSxvQkFBTyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQy9CLE1BQU07QUFDTCxVQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUM1QjtHQUNGO0FBQ0QscUJBQW1CLEVBQUUsNkJBQVMsSUFBSSxFQUFFO0FBQ2xDLFdBQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUM5QjtDQUNGLENBQUM7O0FBRUssSUFBSSxHQUFHLEdBQUcsb0JBQU8sR0FBRyxDQUFDOzs7UUFFcEIsV0FBVztRQUFFLE1BQU0iLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlRnJhbWUsIGV4dGVuZCwgdG9TdHJpbmd9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdEhlbHBlcnN9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnN9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcblxuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSAnNC4yLjAnO1xuZXhwb3J0IGNvbnN0IENPTVBJTEVSX1JFVklTSU9OID0gNztcblxuZXhwb3J0IGNvbnN0IFJFVklTSU9OX0NIQU5HRVMgPSB7XG4gIDE6ICc8PSAxLjAucmMuMicsIC8vIDEuMC5yYy4yIGlzIGFjdHVhbGx5IHJldjIgYnV0IGRvZXNuJ3QgcmVwb3J0IGl0XG4gIDI6ICc9PSAxLjAuMC1yYy4zJyxcbiAgMzogJz09IDEuMC4wLXJjLjQnLFxuICA0OiAnPT0gMS54LngnLFxuICA1OiAnPT0gMi4wLjAtYWxwaGEueCcsXG4gIDY6ICc+PSAyLjAuMC1iZXRhLjEnLFxuICA3OiAnPj0gNC4wLjAnXG59O1xuXG5jb25zdCBvYmplY3RUeXBlID0gJ1tvYmplY3QgT2JqZWN0XSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBIYW5kbGViYXJzRW52aXJvbm1lbnQoaGVscGVycywgcGFydGlhbHMsIGRlY29yYXRvcnMpIHtcbiAgdGhpcy5oZWxwZXJzID0gaGVscGVycyB8fCB7fTtcbiAgdGhpcy5wYXJ0aWFscyA9IHBhcnRpYWxzIHx8IHt9O1xuICB0aGlzLmRlY29yYXRvcnMgPSBkZWNvcmF0b3JzIHx8IHt9O1xuXG4gIHJlZ2lzdGVyRGVmYXVsdEhlbHBlcnModGhpcyk7XG4gIHJlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnModGhpcyk7XG59XG5cbkhhbmRsZWJhcnNFbnZpcm9ubWVudC5wcm90b3R5cGUgPSB7XG4gIGNvbnN0cnVjdG9yOiBIYW5kbGViYXJzRW52aXJvbm1lbnQsXG5cbiAgbG9nZ2VyOiBsb2dnZXIsXG4gIGxvZzogbG9nZ2VyLmxvZyxcblxuICByZWdpc3RlckhlbHBlcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7IHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgaGVscGVycycpOyB9XG4gICAgICBleHRlbmQodGhpcy5oZWxwZXJzLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oZWxwZXJzW25hbWVdID0gZm47XG4gICAgfVxuICB9LFxuICB1bnJlZ2lzdGVySGVscGVyOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMuaGVscGVyc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUsIHBhcnRpYWwpIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgZXh0ZW5kKHRoaXMucGFydGlhbHMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZW9mIHBhcnRpYWwgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oYEF0dGVtcHRpbmcgdG8gcmVnaXN0ZXIgYSBwYXJ0aWFsIGNhbGxlZCBcIiR7bmFtZX1cIiBhcyB1bmRlZmluZWRgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFydGlhbHNbbmFtZV0gPSBwYXJ0aWFsO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5wYXJ0aWFsc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7IHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgZGVjb3JhdG9ycycpOyB9XG4gICAgICBleHRlbmQodGhpcy5kZWNvcmF0b3JzLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWNvcmF0b3JzW25hbWVdID0gZm47XG4gICAgfVxuICB9LFxuICB1bnJlZ2lzdGVyRGVjb3JhdG9yOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMuZGVjb3JhdG9yc1tuYW1lXTtcbiAgfVxufTtcblxuZXhwb3J0IGxldCBsb2cgPSBsb2dnZXIubG9nO1xuXG5leHBvcnQge2NyZWF0ZUZyYW1lLCBsb2dnZXJ9O1xuIl19\n","module.exports = function(currentValue, itemValue) {\n\tif (currentValue === itemValue) {\n\t\treturn 'selected=\"selected\"';\n\t}\n\n\treturn \"\";\n}\n","var Handlebars = require(\"../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \" modified\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \"\t\t\t<span class=\\\"button-delete icon-delete\\\"></span>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, alias3=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \"\t\t\t<div class=\\\"check\\\" data-id=\\\"\"\n + alias2(alias1((data && data.index), depth0))\n + \"\\\">\\n\t\t\t\t<select class=\\\"check-class\\\">\\n\"\n + ((stack1 = helpers.each.call(alias3,(depths[1] != null ? depths[1].classes : depths[1]),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(6, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t\t\t</select>\\n\t\t\t\t<select class=\\\"check-operator\\\">\\n\"\n + ((stack1 = helpers.each.call(alias3,__default(require(\"../hbs_helpers/getOperators.js\")).call(alias3,(depth0 != null ? depth0[\"class\"] : depth0),{\"name\":\"getOperators\",\"hash\":{},\"data\":data}),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(8, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t\t\t</select>\\n\t\t\t\t<input type=\\\"text\\\" class=\\\"check-value\\\" value=\\\"\"\n + alias2(alias1((depth0 != null ? depth0.value : depth0), depth0))\n + \"\\\">\\n\t\t\t\t<span class=\\\"button-delete-check icon-delete\\\"></span>\\n\t\t\t</div>\\n\";\n},\"6\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression;\n\n return \"\t\t\t\t\t\t<option value=\\\"\"\n + alias2(alias1((depth0 != null ? depth0[\"class\"] : depth0), depth0))\n + \"\\\" \"\n + ((stack1 = __default(require(\"../hbs_helpers/selectItem.js\")).call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0[\"class\"] : depth0),(depths[1] != null ? depths[1][\"class\"] : depths[1]),{\"name\":\"selectItem\",\"hash\":{},\"data\":data})) != null ? stack1 : \"\")\n + \">\"\n + alias2(alias1((depth0 != null ? depth0.name : depth0), depth0))\n + \"</option>\\n\";\n},\"8\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression;\n\n return \"\t\t\t\t\t\t<option value=\\\"\"\n + alias2(alias1((depth0 != null ? depth0.operator : depth0), depth0))\n + \"\\\" \"\n + ((stack1 = __default(require(\"../hbs_helpers/selectItem.js\")).call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.operator : depth0),(depths[1] != null ? depths[1].operator : depths[1]),{\"name\":\"selectItem\",\"hash\":{},\"data\":data})) != null ? stack1 : \"\")\n + \">\"\n + alias2(alias1((depth0 != null ? depth0.name : depth0), depth0))\n + \"</option>\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.id : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t<button class=\\\"button-save pull-right\\\">\"\n + container.escapeExpression(container.lambda((depth0 != null ? depth0.saveTXT : depth0), depth0))\n + \"</button>\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n return \"\t\t\t<button class=\\\"button-reset pull-right\\\">\"\n + container.escapeExpression(container.lambda((depth0 != null ? depth0.resetTXT : depth0), depth0))\n + \"</button>\\n\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n return \"\t\t<span class=\\\"icon-loading-small pull-right\\\"></span>\\n\t\t<span class=\\\"pull-right\\\">\"\n + container.escapeExpression(container.lambda((depth0 != null ? depth0.savingTXT : depth0), depth0))\n + \"</span>\\n\t\";\n},\"15\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.message : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(16, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"16\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \"\\n\t\t<span class=\\\"msg pull-right \"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.errorMessage : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(17, data, 0),\"inverse\":container.program(19, data, 0),\"data\":data})) != null ? stack1 : \"\")\n + \"\\\">\\n\t\t\t\t\t\"\n + container.escapeExpression(container.lambda((depth0 != null ? depth0.message : depth0), depth0))\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.errorMessage : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(21, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\n\t\t\t\t</span>\\n\t\";\n},\"17\":function(container,depth0,helpers,partials,data) {\n return \"error\";\n},\"19\":function(container,depth0,helpers,partials,data) {\n return \"success\";\n},\"21\":function(container,depth0,helpers,partials,data) {\n return \" \"\n + container.escapeExpression(container.lambda((depth0 != null ? depth0.errorMessage : depth0), depth0));\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.lambda, alias3=container.escapeExpression;\n\n return \"<div class=\\\"operation\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasChanged : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\">\\n\t<div class=\\\"operation-header\\\">\\n\t\t<input type=\\\"text\\\" class=\\\"operation-name\\\" placeholder=\\\"\"\n + alias3(alias2((depth0 != null ? depth0.shortRuleDescTXT : depth0), depth0))\n + \"\\\" value=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.name : stack1), depth0))\n + \"\\\" />\\n\t\t<input type=\\\"text\\\" class=\\\"operation-operation\\\" value=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.operation : stack1), depth0))\n + \"\\\" />\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.id : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t</div>\\n\\n\t<div class=\\\"checks\\\">\\n\"\n + ((stack1 = helpers.each.call(alias1,((stack1 = (depth0 != null ? depth0.operation : depth0)) != null ? stack1.checks : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(5, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t</div>\\n\t<button class=\\\"button-add\\\">\"\n + alias3(alias2((depth0 != null ? depth0.addRuleTXT : depth0), depth0))\n + \"</button>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasChanged : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.saving : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(13, data, 0, blockParams, depths),\"inverse\":container.program(15, data, 0, blockParams, depths),\"data\":data})) != null ? stack1 : \"\")\n + \"\\n</div>\\n\";\n},\"useData\":true,\"useDepths\":true});","var Handlebars = require(\"../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"<div class=\\\"operations\\\"></div>\\n<button class=\\\"button-add-operation\\\">\"\n + container.escapeExpression(((helper = (helper = helpers.addRuleGroupTXT || (depth0 != null ? depth0.addRuleGroupTXT : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"addRuleGroupTXT\",\"hash\":{},\"data\":data}) : helper)))\n + \"</button>\\n\";\n},\"useData\":true});","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _handlebarsBase = require('./handlebars/base');\n\nvar base = _interopRequireWildcard(_handlebarsBase);\n\n// Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\n\nvar _handlebarsSafeString = require('./handlebars/safe-string');\n\nvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\nvar _handlebarsException = require('./handlebars/exception');\n\nvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\nvar _handlebarsUtils = require('./handlebars/utils');\n\nvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\nvar _handlebarsRuntime = require('./handlebars/runtime');\n\nvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\n// For compatibility and usage outside of module systems, make the Handlebars object a namespace\nfunction create() {\n var hb = new base.HandlebarsEnvironment();\n\n Utils.extend(hb, base);\n hb.SafeString = _handlebarsSafeString2['default'];\n hb.Exception = _handlebarsException2['default'];\n hb.Utils = Utils;\n hb.escapeExpression = Utils.escapeExpression;\n\n hb.VM = runtime;\n hb.template = function (spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst['default'] = inst;\n\nexports['default'] = inst;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLnJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OEJBQXNCLG1CQUFtQjs7SUFBN0IsSUFBSTs7Ozs7b0NBSU8sMEJBQTBCOzs7O21DQUMzQix3QkFBd0I7Ozs7K0JBQ3ZCLG9CQUFvQjs7SUFBL0IsS0FBSzs7aUNBQ1Esc0JBQXNCOztJQUFuQyxPQUFPOztvQ0FFSSwwQkFBMEI7Ozs7O0FBR2pELFNBQVMsTUFBTSxHQUFHO0FBQ2hCLE1BQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0FBRTFDLE9BQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUUsQ0FBQyxVQUFVLG9DQUFhLENBQUM7QUFDM0IsSUFBRSxDQUFDLFNBQVMsbUNBQVksQ0FBQztBQUN6QixJQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNqQixJQUFFLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDOztBQUU3QyxJQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNoQixJQUFFLENBQUMsUUFBUSxHQUFHLFVBQVMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7R0FDbkMsQ0FBQzs7QUFFRixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztBQUVyQixrQ0FBVyxJQUFJLENBQUMsQ0FBQzs7QUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzs7cUJBRVIsSUFBSSIsImZpbGUiOiJoYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vaGFuZGxlYmFycy9iYXNlJztcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcbmltcG9ydCBTYWZlU3RyaW5nIGZyb20gJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vaGFuZGxlYmFycy9leGNlcHRpb24nO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi9oYW5kbGViYXJzL3V0aWxzJztcbmltcG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSAnLi9oYW5kbGViYXJzL3J1bnRpbWUnO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgbGV0IGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IFNhZmVTdHJpbmc7XG4gIGhiLkV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjtcbiAgaGIuVXRpbHMgPSBVdGlscztcbiAgaGIuZXNjYXBlRXhwcmVzc2lvbiA9IFV0aWxzLmVzY2FwZUV4cHJlc3Npb247XG5cbiAgaGIuVk0gPSBydW50aW1lO1xuICBoYi50ZW1wbGF0ZSA9IGZ1bmN0aW9uKHNwZWMpIHtcbiAgICByZXR1cm4gcnVudGltZS50ZW1wbGF0ZShzcGVjLCBoYik7XG4gIH07XG5cbiAgcmV0dXJuIGhiO1xufVxuXG5sZXQgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbm5vQ29uZmxpY3QoaW5zdCk7XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3Q7XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultHelpers = registerDefaultHelpers;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersBlockHelperMissing = require('./helpers/block-helper-missing');\n\nvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\nvar _helpersEach = require('./helpers/each');\n\nvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\nvar _helpersHelperMissing = require('./helpers/helper-missing');\n\nvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\nvar _helpersIf = require('./helpers/if');\n\nvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\nvar _helpersLog = require('./helpers/log');\n\nvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\nvar _helpersLookup = require('./helpers/lookup');\n\nvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\nvar _helpersWith = require('./helpers/with');\n\nvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\nfunction registerDefaultHelpers(instance) {\n _helpersBlockHelperMissing2['default'](instance);\n _helpersEach2['default'](instance);\n _helpersHelperMissing2['default'](instance);\n _helpersIf2['default'](instance);\n _helpersLog2['default'](instance);\n _helpersLookup2['default'](instance);\n _helpersWith2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7eUNBQXVDLGdDQUFnQzs7OzsyQkFDOUMsZ0JBQWdCOzs7O29DQUNQLDBCQUEwQjs7Ozt5QkFDckMsY0FBYzs7OzswQkFDYixlQUFlOzs7OzZCQUNaLGtCQUFrQjs7OzsyQkFDcEIsZ0JBQWdCOzs7O0FBRWxDLFNBQVMsc0JBQXNCLENBQUMsUUFBUSxFQUFFO0FBQy9DLHlDQUEyQixRQUFRLENBQUMsQ0FBQztBQUNyQywyQkFBYSxRQUFRLENBQUMsQ0FBQztBQUN2QixvQ0FBc0IsUUFBUSxDQUFDLENBQUM7QUFDaEMseUJBQVcsUUFBUSxDQUFDLENBQUM7QUFDckIsMEJBQVksUUFBUSxDQUFDLENBQUM7QUFDdEIsNkJBQWUsUUFBUSxDQUFDLENBQUM7QUFDekIsMkJBQWEsUUFBUSxDQUFDLENBQUM7Q0FDeEIiLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByZWdpc3RlckJsb2NrSGVscGVyTWlzc2luZyBmcm9tICcuL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcnO1xuaW1wb3J0IHJlZ2lzdGVyRWFjaCBmcm9tICcuL2hlbHBlcnMvZWFjaCc7XG5pbXBvcnQgcmVnaXN0ZXJIZWxwZXJNaXNzaW5nIGZyb20gJy4vaGVscGVycy9oZWxwZXItbWlzc2luZyc7XG5pbXBvcnQgcmVnaXN0ZXJJZiBmcm9tICcuL2hlbHBlcnMvaWYnO1xuaW1wb3J0IHJlZ2lzdGVyTG9nIGZyb20gJy4vaGVscGVycy9sb2cnO1xuaW1wb3J0IHJlZ2lzdGVyTG9va3VwIGZyb20gJy4vaGVscGVycy9sb29rdXAnO1xuaW1wb3J0IHJlZ2lzdGVyV2l0aCBmcm9tICcuL2hlbHBlcnMvd2l0aCc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckRlZmF1bHRIZWxwZXJzKGluc3RhbmNlKSB7XG4gIHJlZ2lzdGVyQmxvY2tIZWxwZXJNaXNzaW5nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJFYWNoKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJIZWxwZXJNaXNzaW5nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJJZihpbnN0YW5jZSk7XG4gIHJlZ2lzdGVyTG9nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJMb29rdXAoaW5zdGFuY2UpO1xuICByZWdpc3RlcldpdGgoaW5zdGFuY2UpO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('blockHelperMissing', function (context, options) {\n var inverse = options.inverse,\n fn = options.fn;\n\n if (context === true) {\n return fn(this);\n } else if (context === false || context == null) {\n return inverse(this);\n } else if (_utils.isArray(context)) {\n if (context.length > 0) {\n if (options.ids) {\n options.ids = [options.name];\n }\n\n return instance.helpers.each(context, options);\n } else {\n return inverse(this);\n }\n } else {\n if (options.data && options.ids) {\n var data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\n options = { data: data };\n }\n\n return fn(context, options);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBc0QsVUFBVTs7cUJBRWpELFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3ZFLFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPO1FBQ3pCLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVwQixRQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7QUFDcEIsYUFBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakIsTUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJLElBQUksRUFBRTtBQUMvQyxhQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN0QixNQUFNLElBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUMzQixVQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCLFlBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGlCQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCOztBQUVELGVBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO09BQ2hELE1BQU07QUFDTCxlQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztPQUN0QjtLQUNGLE1BQU07QUFDTCxVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLElBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdFLGVBQU8sR0FBRyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQztPQUN4Qjs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDN0I7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJibG9jay1oZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXBwZW5kQ29udGV4dFBhdGgsIGNyZWF0ZUZyYW1lLCBpc0FycmF5fSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCdibG9ja0hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgbGV0IGludmVyc2UgPSBvcHRpb25zLmludmVyc2UsXG4gICAgICAgIGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmIChjb250ZXh0ID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZm4odGhpcyk7XG4gICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSBmYWxzZSB8fCBjb250ZXh0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgaWYgKGNvbnRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgICBvcHRpb25zLmlkcyA9IFtvcHRpb25zLm5hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnMuZWFjaChjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGxldCBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCwgb3B0aW9ucy5uYW1lKTtcbiAgICAgICAgb3B0aW9ucyA9IHtkYXRhOiBkYXRhfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('each', function (context, options) {\n if (!options) {\n throw new _exception2['default']('Must pass iterator to #each');\n }\n\n var fn = options.fn,\n inverse = options.inverse,\n i = 0,\n ret = '',\n data = undefined,\n contextPath = undefined;\n\n if (options.data && options.ids) {\n contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n if (options.data) {\n data = _utils.createFrame(options.data);\n }\n\n function execIteration(field, index, last) {\n if (data) {\n data.key = field;\n data.index = index;\n data.first = index === 0;\n data.last = !!last;\n\n if (contextPath) {\n data.contextPath = contextPath + field;\n }\n }\n\n ret = ret + fn(context[field], {\n data: data,\n blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n });\n }\n\n if (context && typeof context === 'object') {\n if (_utils.isArray(context)) {\n for (var j = context.length; i < j; i++) {\n if (i in context) {\n execIteration(i, i, i === context.length - 1);\n }\n }\n } else {\n var priorKey = undefined;\n\n for (var key in context) {\n if (context.hasOwnProperty(key)) {\n // We're running the iterations one step out of sync so we can detect\n // the last iteration without have to scan the object twice and create\n // an itermediate keys array.\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1);\n }\n priorKey = key;\n i++;\n }\n }\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1, true);\n }\n }\n }\n\n if (i === 0) {\n ret = inverse(this);\n }\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQUErRSxVQUFVOzt5QkFDbkUsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3pELFFBQUksQ0FBQyxPQUFPLEVBQUU7QUFDWixZQUFNLDJCQUFjLDZCQUE2QixDQUFDLENBQUM7S0FDcEQ7O0FBRUQsUUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUU7UUFDZixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU87UUFDekIsQ0FBQyxHQUFHLENBQUM7UUFDTCxHQUFHLEdBQUcsRUFBRTtRQUNSLElBQUksWUFBQTtRQUNKLFdBQVcsWUFBQSxDQUFDOztBQUVoQixRQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixpQkFBVyxHQUFHLHlCQUFrQixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0tBQ2pGOztBQUVELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFBRSxhQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUFFOztBQUUxRCxRQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDaEIsVUFBSSxHQUFHLG1CQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNsQzs7QUFFRCxhQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtBQUN6QyxVQUFJLElBQUksRUFBRTtBQUNSLFlBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBQ2pCLFlBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBQ25CLFlBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQztBQUN6QixZQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7O0FBRW5CLFlBQUksV0FBVyxFQUFFO0FBQ2YsY0FBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLEdBQUcsS0FBSyxDQUFDO1NBQ3hDO09BQ0Y7O0FBRUQsU0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzdCLFlBQUksRUFBRSxJQUFJO0FBQ1YsbUJBQVcsRUFBRSxtQkFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7T0FDL0UsQ0FBQyxDQUFDO0tBQ0o7O0FBRUQsUUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzFDLFVBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNwQixhQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxjQUFJLENBQUMsSUFBSSxPQUFPLEVBQUU7QUFDaEIseUJBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1dBQy9DO1NBQ0Y7T0FDRixNQUFNO0FBQ0wsWUFBSSxRQUFRLFlBQUEsQ0FBQzs7QUFFYixhQUFLLElBQUksR0FBRyxJQUFJLE9BQU8sRUFBRTtBQUN2QixjQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Ozs7QUFJL0IsZ0JBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQiwyQkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7QUFDRCxvQkFBUSxHQUFHLEdBQUcsQ0FBQztBQUNmLGFBQUMsRUFBRSxDQUFDO1dBQ0w7U0FDRjtBQUNELFlBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQix1QkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3RDO09BQ0Y7S0FDRjs7QUFFRCxRQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDWCxTQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3JCOztBQUVELFdBQU8sR0FBRyxDQUFDO0dBQ1osQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXBwZW5kQ29udGV4dFBhdGgsIGJsb2NrUGFyYW1zLCBjcmVhdGVGcmFtZSwgaXNBcnJheSwgaXNGdW5jdGlvbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignZWFjaCcsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICAgIGludmVyc2UgPSBvcHRpb25zLmludmVyc2UsXG4gICAgICAgIGkgPSAwLFxuICAgICAgICByZXQgPSAnJyxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgY29udGV4dFBhdGg7XG5cbiAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICBjb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCwgb3B0aW9ucy5pZHNbMF0pICsgJy4nO1xuICAgIH1cblxuICAgIGlmIChpc0Z1bmN0aW9uKGNvbnRleHQpKSB7IGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7IH1cblxuICAgIGlmIChvcHRpb25zLmRhdGEpIHtcbiAgICAgIGRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4ZWNJdGVyYXRpb24oZmllbGQsIGluZGV4LCBsYXN0KSB7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICBkYXRhLmtleSA9IGZpZWxkO1xuICAgICAgICBkYXRhLmluZGV4ID0gaW5kZXg7XG4gICAgICAgIGRhdGEuZmlyc3QgPSBpbmRleCA9PT0gMDtcbiAgICAgICAgZGF0YS5sYXN0ID0gISFsYXN0O1xuXG4gICAgICAgIGlmIChjb250ZXh0UGF0aCkge1xuICAgICAgICAgIGRhdGEuY29udGV4dFBhdGggPSBjb250ZXh0UGF0aCArIGZpZWxkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldCA9IHJldCArIGZuKGNvbnRleHRbZmllbGRdLCB7XG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhbY29udGV4dFtmaWVsZF0sIGZpZWxkXSwgW2NvbnRleHRQYXRoICsgZmllbGQsIG51bGxdKVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRleHQgJiYgdHlwZW9mIGNvbnRleHQgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgICBmb3IgKGxldCBqID0gY29udGV4dC5sZW5ndGg7IGkgPCBqOyBpKyspIHtcbiAgICAgICAgICBpZiAoaSBpbiBjb250ZXh0KSB7XG4gICAgICAgICAgICBleGVjSXRlcmF0aW9uKGksIGksIGkgPT09IGNvbnRleHQubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcHJpb3JLZXk7XG5cbiAgICAgICAgZm9yIChsZXQga2V5IGluIGNvbnRleHQpIHtcbiAgICAgICAgICBpZiAoY29udGV4dC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAvLyBXZSdyZSBydW5uaW5nIHRoZSBpdGVyYXRpb25zIG9uZSBzdGVwIG91dCBvZiBzeW5jIHNvIHdlIGNhbiBkZXRlY3RcbiAgICAgICAgICAgIC8vIHRoZSBsYXN0IGl0ZXJhdGlvbiB3aXRob3V0IGhhdmUgdG8gc2NhbiB0aGUgb2JqZWN0IHR3aWNlIGFuZCBjcmVhdGVcbiAgICAgICAgICAgIC8vIGFuIGl0ZXJtZWRpYXRlIGtleXMgYXJyYXkuXG4gICAgICAgICAgICBpZiAocHJpb3JLZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcmlvcktleSA9IGtleTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByaW9yS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgcmV0ID0gaW52ZXJzZSh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('helperMissing', function () /* [args, ]options */{\n if (arguments.length === 1) {\n // A missing field in a {{foo}} construct.\n return undefined;\n } else {\n // Someone is actually trying to call something, blow up.\n throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsaUNBQWdDO0FBQ3ZFLFFBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0FBRTFCLGFBQU8sU0FBUyxDQUFDO0tBQ2xCLE1BQU07O0FBRUwsWUFBTSwyQkFBYyxtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7S0FDdkY7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJoZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbigvKiBbYXJncywgXW9wdGlvbnMgKi8pIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gQSBtaXNzaW5nIGZpZWxkIGluIGEge3tmb299fSBjb25zdHJ1Y3QuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTb21lb25lIGlzIGFjdHVhbGx5IHRyeWluZyB0byBjYWxsIHNvbWV0aGluZywgYmxvdyB1cC5cbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ01pc3NpbmcgaGVscGVyOiBcIicgKyBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdLm5hbWUgKyAnXCInKTtcbiAgICB9XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('if', function (conditional, options) {\n if (_utils.isFunction(conditional)) {\n conditional = conditional.call(this);\n }\n\n // Default behavior is to render the positive path if the value is truthy and not empty.\n // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\n return options.inverse(this);\n } else {\n return options.fn(this);\n }\n });\n\n instance.registerHelper('unless', function (conditional, options) {\n return instance.helpers['if'].call(this, conditional, { fn: options.inverse, inverse: options.fn, hash: options.hash });\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaWYuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBa0MsVUFBVTs7cUJBRTdCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRTtBQUMzRCxRQUFJLGtCQUFXLFdBQVcsQ0FBQyxFQUFFO0FBQUUsaUJBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQUU7Ozs7O0FBS3RFLFFBQUksQUFBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxJQUFLLGVBQVEsV0FBVyxDQUFDLEVBQUU7QUFDdkUsYUFBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekI7R0FDRixDQUFDLENBQUM7O0FBRUgsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxXQUFXLEVBQUUsT0FBTyxFQUFFO0FBQy9ELFdBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQztHQUN2SCxDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJpZi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNFbXB0eSwgaXNGdW5jdGlvbn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignaWYnLCBmdW5jdGlvbihjb25kaXRpb25hbCwgb3B0aW9ucykge1xuICAgIGlmIChpc0Z1bmN0aW9uKGNvbmRpdGlvbmFsKSkgeyBjb25kaXRpb25hbCA9IGNvbmRpdGlvbmFsLmNhbGwodGhpcyk7IH1cblxuICAgIC8vIERlZmF1bHQgYmVoYXZpb3IgaXMgdG8gcmVuZGVyIHRoZSBwb3NpdGl2ZSBwYXRoIGlmIHRoZSB2YWx1ZSBpcyB0cnV0aHkgYW5kIG5vdCBlbXB0eS5cbiAgICAvLyBUaGUgYGluY2x1ZGVaZXJvYCBvcHRpb24gbWF5IGJlIHNldCB0byB0cmVhdCB0aGUgY29uZHRpb25hbCBhcyBwdXJlbHkgbm90IGVtcHR5IGJhc2VkIG9uIHRoZVxuICAgIC8vIGJlaGF2aW9yIG9mIGlzRW1wdHkuIEVmZmVjdGl2ZWx5IHRoaXMgZGV0ZXJtaW5lcyBpZiAwIGlzIGhhbmRsZWQgYnkgdGhlIHBvc2l0aXZlIHBhdGggb3IgbmVnYXRpdmUuXG4gICAgaWYgKCghb3B0aW9ucy5oYXNoLmluY2x1ZGVaZXJvICYmICFjb25kaXRpb25hbCkgfHwgaXNFbXB0eShjb25kaXRpb25hbCkpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmludmVyc2UodGhpcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmZuKHRoaXMpO1xuICAgIH1cbiAgfSk7XG5cbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ3VubGVzcycsIGZ1bmN0aW9uKGNvbmRpdGlvbmFsLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnNbJ2lmJ10uY2FsbCh0aGlzLCBjb25kaXRpb25hbCwge2ZuOiBvcHRpb25zLmludmVyc2UsIGludmVyc2U6IG9wdGlvbnMuZm4sIGhhc2g6IG9wdGlvbnMuaGFzaH0pO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('log', function () /* message, options */{\n var args = [undefined],\n options = arguments[arguments.length - 1];\n for (var i = 0; i < arguments.length - 1; i++) {\n args.push(arguments[i]);\n }\n\n var level = 1;\n if (options.hash.level != null) {\n level = options.hash.level;\n } else if (options.data && options.data.level != null) {\n level = options.data.level;\n }\n args[0] = level;\n\n instance.log.apply(instance, args);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0NBQWlDO0FBQzlELFFBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ2xCLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM5QyxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0MsVUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6Qjs7QUFFRCxRQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZCxRQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtBQUM5QixXQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDNUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO0FBQ3JELFdBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUM1QjtBQUNELFFBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRWhCLFlBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBWixRQUFRLEVBQVMsSUFBSSxDQUFDLENBQUM7R0FDeEIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvZycsIGZ1bmN0aW9uKC8qIG1lc3NhZ2UsIG9wdGlvbnMgKi8pIHtcbiAgICBsZXQgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgICBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICAgIH1cblxuICAgIGxldCBsZXZlbCA9IDE7XG4gICAgaWYgKG9wdGlvbnMuaGFzaC5sZXZlbCAhPSBudWxsKSB7XG4gICAgICBsZXZlbCA9IG9wdGlvbnMuaGFzaC5sZXZlbDtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGEubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmRhdGEubGV2ZWw7XG4gICAgfVxuICAgIGFyZ3NbMF0gPSBsZXZlbDtcblxuICAgIGluc3RhbmNlLmxvZyguLi4gYXJncyk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('lookup', function (obj, field) {\n if (!obj) {\n return obj;\n }\n if (field === 'constructor' && !obj.propertyIsEnumerable(field)) {\n return undefined;\n }\n return obj[field];\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9va3VwLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLEVBQUUsS0FBSyxFQUFFO0FBQ3JELFFBQUksQ0FBQyxHQUFHLEVBQUU7QUFDUixhQUFPLEdBQUcsQ0FBQztLQUNaO0FBQ0QsUUFBSSxLQUFLLEtBQUssYUFBYSxJQUFJLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQy9ELGFBQU8sU0FBUyxDQUFDO0tBQ2xCO0FBQ0QsV0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7R0FDbkIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9va3VwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvb2t1cCcsIGZ1bmN0aW9uKG9iaiwgZmllbGQpIHtcbiAgICBpZiAoIW9iaikge1xuICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG4gICAgaWYgKGZpZWxkID09PSAnY29uc3RydWN0b3InICYmICFvYmoucHJvcGVydHlJc0VudW1lcmFibGUoZmllbGQpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gb2JqW2ZpZWxkXTtcbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('with', function (context, options) {\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n var fn = options.fn;\n\n if (!_utils.isEmpty(context)) {\n var data = options.data;\n if (options.data && options.ids) {\n data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n }\n\n return fn(context, {\n data: data,\n blockParams: _utils.blockParams([context], [data && data.contextPath])\n });\n } else {\n return options.inverse(this);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvd2l0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUErRSxVQUFVOztxQkFFMUUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3pELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFBRSxhQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUFFOztBQUUxRCxRQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVwQixRQUFJLENBQUMsZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNyQixVQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0FBQ3hCLFVBQUksT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO0FBQy9CLFlBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO09BQ2hGOztBQUVELGFBQU8sRUFBRSxDQUFDLE9BQU8sRUFBRTtBQUNqQixZQUFJLEVBQUUsSUFBSTtBQUNWLG1CQUFXLEVBQUUsbUJBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7T0FDaEUsQ0FBQyxDQUFDO0tBQ0osTUFBTTtBQUNMLGFBQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM5QjtHQUNGLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6IndpdGguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FwcGVuZENvbnRleHRQYXRoLCBibG9ja1BhcmFtcywgY3JlYXRlRnJhbWUsIGlzRW1wdHksIGlzRnVuY3Rpb259IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ3dpdGgnLCBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgaWYgKGlzRnVuY3Rpb24oY29udGV4dCkpIHsgY29udGV4dCA9IGNvbnRleHQuY2FsbCh0aGlzKTsgfVxuXG4gICAgbGV0IGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmICghaXNFbXB0eShjb250ZXh0KSkge1xuICAgICAgbGV0IGRhdGEgPSBvcHRpb25zLmRhdGE7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgICAgICBkYXRhLmNvbnRleHRQYXRoID0gYXBwZW5kQ29udGV4dFBhdGgob3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoLCBvcHRpb25zLmlkc1swXSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmbihjb250ZXh0LCB7XG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhbY29udGV4dF0sIFtkYXRhICYmIGRhdGEuY29udGV4dFBhdGhdKVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmludmVyc2UodGhpcyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultDecorators = registerDefaultDecorators;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _decoratorsInline = require('./decorators/inline');\n\nvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\nfunction registerDefaultDecorators(instance) {\n _decoratorsInline2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Z0NBQTJCLHFCQUFxQjs7OztBQUV6QyxTQUFTLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtBQUNsRCxnQ0FBZSxRQUFRLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVySW5saW5lIGZyb20gJy4vZGVjb3JhdG9ycy9pbmxpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyhpbnN0YW5jZSkge1xuICByZWdpc3RlcklubGluZShpbnN0YW5jZSk7XG59XG5cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerDecorator('inline', function (fn, props, container, options) {\n var ret = fn;\n if (!props.partials) {\n props.partials = {};\n ret = function (context, options) {\n // Create a new partials stack frame prior to exec.\n var original = container.partials;\n container.partials = _utils.extend({}, original, props.partials);\n var ret = fn(context, options);\n container.partials = original;\n return ret;\n };\n }\n\n props.partials[options.args[0]] = options.fn;\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQXFCLFVBQVU7O3FCQUVoQixVQUFTLFFBQVEsRUFBRTtBQUNoQyxVQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQzNFLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNiLFFBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0FBQ25CLFdBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLFNBQUcsR0FBRyxVQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRS9CLFlBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsY0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRCxZQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGlCQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixlQUFPLEdBQUcsQ0FBQztPQUNaLENBQUM7S0FDSDs7QUFFRCxTQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUU3QyxXQUFPLEdBQUcsQ0FBQztHQUNaLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlubGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZXh0ZW5kfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVyRGVjb3JhdG9yKCdpbmxpbmUnLCBmdW5jdGlvbihmbiwgcHJvcHMsIGNvbnRhaW5lciwgb3B0aW9ucykge1xuICAgIGxldCByZXQgPSBmbjtcbiAgICBpZiAoIXByb3BzLnBhcnRpYWxzKSB7XG4gICAgICBwcm9wcy5wYXJ0aWFscyA9IHt9O1xuICAgICAgcmV0ID0gZnVuY3Rpb24oY29udGV4dCwgb3B0aW9ucykge1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgcGFydGlhbHMgc3RhY2sgZnJhbWUgcHJpb3IgdG8gZXhlYy5cbiAgICAgICAgbGV0IG9yaWdpbmFsID0gY29udGFpbmVyLnBhcnRpYWxzO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBleHRlbmQoe30sIG9yaWdpbmFsLCBwcm9wcy5wYXJ0aWFscyk7XG4gICAgICAgIGxldCByZXQgPSBmbihjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgICAgY29udGFpbmVyLnBhcnRpYWxzID0gb3JpZ2luYWw7XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLnBhcnRpYWxzW29wdGlvbnMuYXJnc1swXV0gPSBvcHRpb25zLmZuO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('./utils');\n\nvar logger = {\n methodMap: ['debug', 'info', 'warn', 'error'],\n level: 'info',\n\n // Maps a given level value to the `methodMap` indexes above.\n lookupLevel: function lookupLevel(level) {\n if (typeof level === 'string') {\n var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\n if (levelMap >= 0) {\n level = levelMap;\n } else {\n level = parseInt(level, 10);\n }\n }\n\n return level;\n },\n\n // Can be overridden in the host environment\n log: function log(level) {\n level = logger.lookupLevel(level);\n\n if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\n var method = logger.methodMap[level];\n if (!console[method]) {\n // eslint-disable-line no-console\n method = 'log';\n }\n\n for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n message[_key - 1] = arguments[_key];\n }\n\n console[method].apply(console, message); // eslint-disable-line no-console\n }\n }\n};\n\nexports['default'] = logger;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUFzQixTQUFTOztBQUUvQixJQUFJLE1BQU0sR0FBRztBQUNYLFdBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztBQUM3QyxPQUFLLEVBQUUsTUFBTTs7O0FBR2IsYUFBVyxFQUFFLHFCQUFTLEtBQUssRUFBRTtBQUMzQixRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM3QixVQUFJLFFBQVEsR0FBRyxlQUFRLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDOUQsVUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO0FBQ2pCLGFBQUssR0FBRyxRQUFRLENBQUM7T0FDbEIsTUFBTTtBQUNMLGFBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO09BQzdCO0tBQ0Y7O0FBRUQsV0FBTyxLQUFLLENBQUM7R0FDZDs7O0FBR0QsS0FBRyxFQUFFLGFBQVMsS0FBSyxFQUFjO0FBQy9CLFNBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUVsQyxRQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEVBQUU7QUFDL0UsVUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNyQyxVQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFOztBQUNwQixjQUFNLEdBQUcsS0FBSyxDQUFDO09BQ2hCOzt3Q0FQbUIsT0FBTztBQUFQLGVBQU87OztBQVEzQixhQUFPLENBQUMsTUFBTSxPQUFDLENBQWYsT0FBTyxFQUFZLE9BQU8sQ0FBQyxDQUFDO0tBQzdCO0dBQ0Y7Q0FDRixDQUFDOztxQkFFYSxNQUFNIiwiZmlsZSI6ImxvZ2dlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5kZXhPZn0gZnJvbSAnLi91dGlscyc7XG5cbmxldCBsb2dnZXIgPSB7XG4gIG1ldGhvZE1hcDogWydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InXSxcbiAgbGV2ZWw6ICdpbmZvJyxcblxuICAvLyBNYXBzIGEgZ2l2ZW4gbGV2ZWwgdmFsdWUgdG8gdGhlIGBtZXRob2RNYXBgIGluZGV4ZXMgYWJvdmUuXG4gIGxvb2t1cExldmVsOiBmdW5jdGlvbihsZXZlbCkge1xuICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgbGV2ZWxNYXAgPSBpbmRleE9mKGxvZ2dlci5tZXRob2RNYXAsIGxldmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKGxldmVsTWFwID49IDApIHtcbiAgICAgICAgbGV2ZWwgPSBsZXZlbE1hcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldmVsID0gcGFyc2VJbnQobGV2ZWwsIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGV2ZWw7XG4gIH0sXG5cbiAgLy8gQ2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGhvc3QgZW52aXJvbm1lbnRcbiAgbG9nOiBmdW5jdGlvbihsZXZlbCwgLi4ubWVzc2FnZSkge1xuICAgIGxldmVsID0gbG9nZ2VyLmxvb2t1cExldmVsKGxldmVsKTtcblxuICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbG9nZ2VyLmxvb2t1cExldmVsKGxvZ2dlci5sZXZlbCkgPD0gbGV2ZWwpIHtcbiAgICAgIGxldCBtZXRob2QgPSBsb2dnZXIubWV0aG9kTWFwW2xldmVsXTtcbiAgICAgIGlmICghY29uc29sZVttZXRob2RdKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZVxuICAgICAgICBtZXRob2QgPSAnbG9nJztcbiAgICAgIH1cbiAgICAgIGNvbnNvbGVbbWV0aG9kXSguLi5tZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2dnZXI7XG4iXX0=\n","// Build out our basic SafeString type\n'use strict';\n\nexports.__esModule = true;\nfunction SafeString(string) {\n this.string = string;\n}\n\nSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\n return '' + this.string;\n};\n\nexports['default'] = SafeString;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3NhZmUtc3RyaW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDMUIsTUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDdEI7O0FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsWUFBVztBQUN2RSxTQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0NBQ3pCLENBQUM7O3FCQUVhLFVBQVUiLCJmaWxlIjoic2FmZS1zdHJpbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCdWlsZCBvdXQgb3VyIGJhc2ljIFNhZmVTdHJpbmcgdHlwZVxuZnVuY3Rpb24gU2FmZVN0cmluZyhzdHJpbmcpIHtcbiAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG59XG5cblNhZmVTdHJpbmcucHJvdG90eXBlLnRvU3RyaW5nID0gU2FmZVN0cmluZy5wcm90b3R5cGUudG9IVE1MID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAnJyArIHRoaXMuc3RyaW5nO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2FmZVN0cmluZztcbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.checkRevision = checkRevision;\nexports.template = template;\nexports.wrapProgram = wrapProgram;\nexports.resolvePartial = resolvePartial;\nexports.invokePartial = invokePartial;\nexports.noop = noop;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _utils = require('./utils');\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _base = require('./base');\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = _base.COMPILER_REVISION;\n\n if (compilerRevision !== currentRevision) {\n if (compilerRevision < currentRevision) {\n var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n }\n }\n}\n\nfunction template(templateSpec, env) {\n /* istanbul ignore next */\n if (!env) {\n throw new _exception2['default']('No environment passed to template');\n }\n if (!templateSpec || !templateSpec.main) {\n throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n }\n\n templateSpec.main.decorator = templateSpec.main_d;\n\n // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as psuedo-supported APIs.\n env.VM.checkRevision(templateSpec.compiler);\n\n function invokePartialWrapper(partial, context, options) {\n if (options.hash) {\n context = Utils.extend({}, context, options.hash);\n if (options.ids) {\n options.ids[0] = true;\n }\n }\n\n partial = env.VM.resolvePartial.call(this, partial, context, options);\n var result = env.VM.invokePartial.call(this, partial, context, options);\n\n if (result == null && env.compile) {\n options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n result = options.partials[options.name](context, options);\n }\n if (result != null) {\n if (options.indent) {\n var lines = result.split('\\n');\n for (var i = 0, l = lines.length; i < l; i++) {\n if (!lines[i] && i + 1 === l) {\n break;\n }\n\n lines[i] = options.indent + lines[i];\n }\n result = lines.join('\\n');\n }\n return result;\n } else {\n throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n }\n }\n\n // Just add water\n var container = {\n strict: function strict(obj, name) {\n if (!(name in obj)) {\n throw new _exception2['default']('\"' + name + '\" not defined in ' + obj);\n }\n return obj[name];\n },\n lookup: function lookup(depths, name) {\n var len = depths.length;\n for (var i = 0; i < len; i++) {\n if (depths[i] && depths[i][name] != null) {\n return depths[i][name];\n }\n }\n },\n lambda: function lambda(current, context) {\n return typeof current === 'function' ? current.call(context) : current;\n },\n\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n\n fn: function fn(i) {\n var ret = templateSpec[i];\n ret.decorator = templateSpec[i + '_d'];\n return ret;\n },\n\n programs: [],\n program: function program(i, data, declaredBlockParams, blockParams, depths) {\n var programWrapper = this.programs[i],\n fn = this.fn(i);\n if (data || depths || blockParams || declaredBlockParams) {\n programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n }\n return programWrapper;\n },\n\n data: function data(value, depth) {\n while (value && depth--) {\n value = value._parent;\n }\n return value;\n },\n merge: function merge(param, common) {\n var obj = param || common;\n\n if (param && common && param !== common) {\n obj = Utils.extend({}, common, param);\n }\n\n return obj;\n },\n // An empty object to use as replacement for null-contexts\n nullContext: Object.seal({}),\n\n noop: env.VM.noop,\n compilerInfo: templateSpec.compiler\n };\n\n function ret(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var data = options.data;\n\n ret._setup(options);\n if (!options.partial && templateSpec.useData) {\n data = initData(context, data);\n }\n var depths = undefined,\n blockParams = templateSpec.useBlockParams ? [] : undefined;\n if (templateSpec.useDepths) {\n if (options.depths) {\n depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n } else {\n depths = [context];\n }\n }\n\n function main(context /*, options*/) {\n return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n }\n main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n return main(context, options);\n }\n ret.isTop = true;\n\n ret._setup = function (options) {\n if (!options.partial) {\n container.helpers = container.merge(options.helpers, env.helpers);\n\n if (templateSpec.usePartial) {\n container.partials = container.merge(options.partials, env.partials);\n }\n if (templateSpec.usePartial || templateSpec.useDecorators) {\n container.decorators = container.merge(options.decorators, env.decorators);\n }\n } else {\n container.helpers = options.helpers;\n container.partials = options.partials;\n container.decorators = options.decorators;\n }\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (templateSpec.useBlockParams && !blockParams) {\n throw new _exception2['default']('must pass block params');\n }\n if (templateSpec.useDepths && !depths) {\n throw new _exception2['default']('must pass parent depths');\n }\n\n return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n };\n return ret;\n}\n\nfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n function prog(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var currentDepths = depths;\n if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n currentDepths = [context].concat(depths);\n }\n\n return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n }\n\n prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n\n prog.program = i;\n prog.depth = depths ? depths.length : 0;\n prog.blockParams = declaredBlockParams || 0;\n return prog;\n}\n\n/**\n * This is currently part of the official API, therefore implementation details should not be changed.\n */\n\nfunction resolvePartial(partial, context, options) {\n if (!partial) {\n if (options.name === '@partial-block') {\n partial = options.data['partial-block'];\n } else {\n partial = options.partials[options.name];\n }\n } else if (!partial.call && !options.name) {\n // This is a dynamic partial that returned a string\n options.name = partial;\n partial = options.partials[partial];\n }\n return partial;\n}\n\nfunction invokePartial(partial, context, options) {\n // Use the current closure context to save the partial-block if this partial\n var currentPartialBlock = options.data && options.data['partial-block'];\n options.partial = true;\n if (options.ids) {\n options.data.contextPath = options.ids[0] || options.data.contextPath;\n }\n\n var partialBlock = undefined;\n if (options.fn && options.fn !== noop) {\n (function () {\n options.data = _base.createFrame(options.data);\n // Wrapper function to get access to currentPartialBlock from the closure\n var fn = options.fn;\n partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n // Restore the partial-block from the closure for the execution of the block\n // i.e. the part inside the block of the partial call.\n options.data = _base.createFrame(options.data);\n options.data['partial-block'] = currentPartialBlock;\n return fn(context, options);\n };\n if (fn.partials) {\n options.partials = Utils.extend({}, options.partials, fn.partials);\n }\n })();\n }\n\n if (partial === undefined && partialBlock) {\n partial = partialBlock;\n }\n\n if (partial === undefined) {\n throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n } else if (partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nfunction noop() {\n return '';\n}\n\nfunction initData(context, data) {\n if (!data || !('root' in data)) {\n data = data ? _base.createFrame(data) : {};\n data.root = context;\n }\n return data;\n}\n\nfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n if (fn.decorator) {\n var props = {};\n prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n Utils.extend(prog, props);\n }\n return prog;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3J1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBQXVCLFNBQVM7O0lBQXBCLEtBQUs7O3lCQUNLLGFBQWE7Ozs7b0JBQzhCLFFBQVE7O0FBRWxFLFNBQVMsYUFBYSxDQUFDLFlBQVksRUFBRTtBQUMxQyxNQUFNLGdCQUFnQixHQUFHLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztNQUN2RCxlQUFlLDBCQUFvQixDQUFDOztBQUUxQyxNQUFJLGdCQUFnQixLQUFLLGVBQWUsRUFBRTtBQUN4QyxRQUFJLGdCQUFnQixHQUFHLGVBQWUsRUFBRTtBQUN0QyxVQUFNLGVBQWUsR0FBRyx1QkFBaUIsZUFBZSxDQUFDO1VBQ25ELGdCQUFnQixHQUFHLHVCQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQzVELFlBQU0sMkJBQWMseUZBQXlGLEdBQ3ZHLHFEQUFxRCxHQUFHLGVBQWUsR0FBRyxtREFBbUQsR0FBRyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUNoSyxNQUFNOztBQUVMLFlBQU0sMkJBQWMsd0ZBQXdGLEdBQ3RHLGlEQUFpRCxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUNuRjtHQUNGO0NBQ0Y7O0FBRU0sU0FBUyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTs7QUFFMUMsTUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNSLFVBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztHQUMxRDtBQUNELE1BQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLFVBQU0sMkJBQWMsMkJBQTJCLEdBQUcsT0FBTyxZQUFZLENBQUMsQ0FBQztHQUN4RTs7QUFFRCxjQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDOzs7O0FBSWxELEtBQUcs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SSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzVGLFNBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0dBQzNCO0FBQ0QsU0FBTyxJQUFJLENBQUM7Q0FDYiIsImZpbGUiOiJydW50aW1lLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vZXhjZXB0aW9uJztcbmltcG9ydCB7IENPTVBJTEVSX1JFVklTSU9OLCBSRVZJU0lPTl9DSEFOR0VTLCBjcmVhdGVGcmFtZSB9IGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1JldmlzaW9uKGNvbXBpbGVySW5mbykge1xuICBjb25zdCBjb21waWxlclJldmlzaW9uID0gY29tcGlsZXJJbmZvICYmIGNvbXBpbGVySW5mb1swXSB8fCAxLFxuICAgICAgICBjdXJyZW50UmV2aXNpb24gPSBDT01QSUxFUl9SRVZJU0lPTjtcblxuICBpZiAoY29tcGlsZXJSZXZpc2lvbiAhPT0gY3VycmVudFJldmlzaW9uKSB7XG4gICAgaWYgKGNvbXBpbGVyUmV2aXNpb24gPCBjdXJyZW50UmV2aXNpb24pIHtcbiAgICAgIGNvbnN0IHJ1bnRpbWVWZXJzaW9ucyA9IFJFVklTSU9OX0NIQU5HRVNbY3VycmVudFJldmlzaW9uXSxcbiAgICAgICAgICAgIGNvbXBpbGVyVmVyc2lvbnMgPSBSRVZJU0lPTl9DSEFOR0VTW2NvbXBpbGVyUmV2aXNpb25dO1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignVGVtcGxhdGUgd2FzIHByZWNvbXBpbGVkIHdpdGggYW4gb2xkZXIgdmVyc2lvbiBvZiBIYW5kbGViYXJzIHRoYW4gdGhlIGN1cnJlbnQgcnVudGltZS4gJyArXG4gICAgICAgICAgICAnUGxlYXNlIHVwZGF0ZSB5b3VyIHByZWNvbXBpbGVyIHRvIGEgbmV3ZXIgdmVyc2lvbiAoJyArIHJ1bnRpbWVWZXJzaW9ucyArICcpIG9yIGRvd25ncmFkZSB5b3VyIHJ1bnRpbWUgdG8gYW4gb2xkZXIgdmVyc2lvbiAoJyArIGNvbXBpbGVyVmVyc2lvbnMgKyAnKS4nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVXNlIHRoZSBlbWJlZGRlZCB2ZXJzaW9uIGluZm8gc2luY2UgdGhlIHJ1bnRpbWUgZG9lc24ndCBrbm93IGFib3V0IHRoaXMgcmV2aXNpb24geWV0XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdUZW1wbGF0ZSB3YXMgcHJlY29tcGlsZWQgd2l0aCBhIG5ld2VyIHZlcnNpb24gb2YgSGFuZGxlYmFycyB0aGFuIHRoZSBjdXJyZW50IHJ1bnRpbWUuICcgK1xuICAgICAgICAgICAgJ1BsZWFzZSB1cGRhdGUgeW91ciBydW50aW1lIHRvIGEgbmV3ZXIgdmVyc2lvbiAoJyArIGNvbXBpbGVySW5mb1sxXSArICcpLicpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVtcGxhdGUodGVtcGxhdGVTcGVjLCBlbnYpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCFlbnYpIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdObyBlbnZpcm9ubWVudCBwYXNzZWQgdG8gdGVtcGxhdGUnKTtcbiAgfVxuICBpZiAoIXRlbXBsYXRlU3BlYyB8fCAhdGVtcGxhdGVTcGVjLm1haW4pIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdVbmtub3duIHRlbXBsYXRlIG9iamVjdDogJyArIHR5cGVvZiB0ZW1wbGF0ZVNwZWMpO1xuICB9XG5cbiAgdGVtcGxhdGVTcGVjLm1haW4uZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjLm1haW5fZDtcblxuICAvLyBOb3RlOiBVc2luZyBlbnYuVk0gcmVmZXJlbmNlcyByYXRoZXIgdGhhbiBsb2NhbCB2YXIgcmVmZXJlbmNlcyB0aHJvdWdob3V0IHRoaXMgc2VjdGlvbiB0byBhbGxvd1xuICAvLyBmb3IgZXh0ZXJuYWwgdXNlcnMgdG8gb3ZlcnJpZGUgdGhlc2UgYXMgcHN1ZWRvLXN1cHBvcnRlZCBBUElzLlxuICBlbnYuVk0uY2hlY2tSZXZpc2lvbih0ZW1wbGF0ZVNwZWMuY29tcGlsZXIpO1xuXG4gIGZ1bmN0aW9uIGludm9rZVBhcnRpYWxXcmFwcGVyKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5oYXNoKSB7XG4gICAgICBjb250ZXh0ID0gVXRpbHMuZXh0ZW5kKHt9LCBjb250ZXh0LCBvcHRpb25zLmhhc2gpO1xuICAgICAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIG9wdGlvbnMuaWRzWzBdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwYXJ0aWFsID0gZW52LlZNLnJlc29sdmVQYXJ0aWFsLmNhbGwodGhpcywgcGFydGlhbCwgY29udGV4dCwgb3B0aW9ucyk7XG4gICAgbGV0IHJlc3VsdCA9IGVudi5WTS5pbnZva2VQYXJ0aWFsLmNhbGwodGhpcywgcGFydGlhbCwgY29udGV4dCwgb3B0aW9ucyk7XG5cbiAgICBpZiAocmVzdWx0ID09IG51bGwgJiYgZW52LmNvbXBpbGUpIHtcbiAgICAgIG9wdGlvbnMucGFydGlhbHNbb3B0aW9ucy5uYW1lXSA9IGVudi5jb21waWxlKHBhcnRpYWwsIHRlbXBsYXRlU3BlYy5jb21waWxlck9wdGlvbnMsIGVudik7XG4gICAgICByZXN1bHQgPSBvcHRpb25zLnBhcnRpYWxzW29wdGlvbnMubmFtZV0oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChyZXN1bHQgIT0gbnVsbCkge1xuICAgICAgaWYgKG9wdGlvbnMuaW5kZW50KSB7XG4gICAgICAgIGxldCBsaW5lcyA9IHJlc3VsdC5zcGxpdCgnXFxuJyk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsID0gbGluZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgaWYgKCFsaW5lc1tpXSAmJiBpICsgMSA9PT0gbCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGluZXNbaV0gPSBvcHRpb25zLmluZGVudCArIGxpbmVzW2ldO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCA9IGxpbmVzLmpvaW4oJ1xcbicpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignVGhlIHBhcnRpYWwgJyArIG9wdGlvbnMubmFtZSArICcgY291bGQgbm90IGJlIGNvbXBpbGVkIHdoZW4gcnVubmluZyBpbiBydW50aW1lLW9ubHkgbW9kZScpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEp1c3QgYWRkIHdhdGVyXG4gIGxldCBjb250YWluZXIgPSB7XG4gICAgc3RyaWN0OiBmdW5jdGlvbihvYmosIG5hbWUpIHtcbiAgICAgIGlmICghKG5hbWUgaW4gb2JqKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdcIicgKyBuYW1lICsgJ1wiIG5vdCBkZWZpbmVkIGluICcgKyBvYmopO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9ialtuYW1lXTtcbiAgICB9LFxuICAgIGxvb2t1cDogZnVuY3Rpb24oZGVwdGhzLCBuYW1lKSB7XG4gICAgICBjb25zdCBsZW4gPSBkZXB0aHMubGVuZ3RoO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICBpZiAoZGVwdGhzW2ldICYmIGRlcHRoc1tpXVtuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGRlcHRoc1tpXVtuYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgbGFtYmRhOiBmdW5jdGlvbihjdXJyZW50LCBjb250ZXh0KSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGN1cnJlbnQgPT09ICdmdW5jdGlvbicgPyBjdXJyZW50LmNhbGwoY29udGV4dCkgOiBjdXJyZW50O1xuICAgIH0sXG5cbiAgICBlc2NhcGVFeHByZXNzaW9uOiBVdGlscy5lc2NhcGVFeHByZXNzaW9uLFxuICAgIGludm9rZVBhcnRpYWw6IGludm9rZVBhcnRpYWxXcmFwcGVyLFxuXG4gICAgZm46IGZ1bmN0aW9uKGkpIHtcbiAgICAgIGxldCByZXQgPSB0ZW1wbGF0ZVNwZWNbaV07XG4gICAgICByZXQuZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjW2kgKyAnX2QnXTtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSxcblxuICAgIHByb2dyYW1zOiBbXSxcbiAgICBwcm9ncmFtOiBmdW5jdGlvbihpLCBkYXRhLCBkZWNsYXJlZEJsb2NrUGFyYW1zLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgICBsZXQgcHJvZ3JhbVdyYXBwZXIgPSB0aGlzLnByb2dyYW1zW2ldLFxuICAgICAgICAgIGZuID0gdGhpcy5mbihpKTtcbiAgICAgIGlmIChkYXRhIHx8IGRlcHRocyB8fCBibG9ja1BhcmFtcyB8fCBkZWNsYXJlZEJsb2NrUGFyYW1zKSB7XG4gICAgICAgIHByb2dyYW1XcmFwcGVyID0gd3JhcFByb2dyYW0odGhpcywgaSwgZm4sIGRhdGEsIGRlY2xhcmVkQmxvY2tQYXJhbXMsIGJsb2NrUGFyYW1zLCBkZXB0aHMpO1xuICAgICAgfSBlbHNlIGlmICghcHJvZ3JhbVdyYXBwZXIpIHtcbiAgICAgICAgcHJvZ3JhbVdyYXBwZXIgPSB0aGlzLnByb2dyYW1zW2ldID0gd3JhcFByb2dyYW0odGhpcywgaSwgZm4pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHByb2dyYW1XcmFwcGVyO1xuICAgIH0sXG5cbiAgICBkYXRhOiBmdW5jdGlvbih2YWx1ZSwgZGVwdGgpIHtcbiAgICAgIHdoaWxlICh2YWx1ZSAmJiBkZXB0aC0tKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUuX3BhcmVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9LFxuICAgIG1lcmdlOiBmdW5jdGlvbihwYXJhbSwgY29tbW9uKSB7XG4gICAgICBsZXQgb2JqID0gcGFyYW0gfHwgY29tbW9uO1xuXG4gICAgICBpZiAocGFyYW0gJiYgY29tbW9uICYmIChwYXJhbSAhPT0gY29tbW9uKSkge1xuICAgICAgICBvYmogPSBVdGlscy5leHRlbmQoe30sIGNvbW1vbiwgcGFyYW0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2JqO1xuICAgIH0sXG4gICAgLy8gQW4gZW1wdHkgb2JqZWN0IHRvIHVzZSBhcyByZXBsYWNlbWVudCBmb3IgbnVsbC1jb250ZXh0c1xuICAgIG51bGxDb250ZXh0OiBPYmplY3Quc2VhbCh7fSksXG5cbiAgICBub29wOiBlbnYuVk0ubm9vcCxcbiAgICBjb21waWxlckluZm86IHRlbXBsYXRlU3BlYy5jb21waWxlclxuICB9O1xuXG4gIGZ1bmN0aW9uIHJldChjb250ZXh0LCBvcHRpb25zID0ge30pIHtcbiAgICBsZXQgZGF0YSA9IG9wdGlvbnMuZGF0YTtcblxuICAgIHJldC5fc2V0dXAob3B0aW9ucyk7XG4gICAgaWYgKCFvcHRpb25zLnBhcnRpYWwgJiYgdGVtcGxhdGVTcGVjLnVzZURhdGEpIHtcbiAgICAgIGRhdGEgPSBpbml0RGF0YShjb250ZXh0LCBkYXRhKTtcbiAgICB9XG4gICAgbGV0IGRlcHRocyxcbiAgICAgICAgYmxvY2tQYXJhbXMgPSB0ZW1wbGF0ZVNwZWMudXNlQmxvY2tQYXJhbXMgPyBbXSA6IHVuZGVmaW5lZDtcbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZURlcHRocykge1xuICAgICAgaWYgKG9wdGlvbnMuZGVwdGhzKSB7XG4gICAgICAgIGRlcHRocyA9IGNvbnRleHQgIT0gb3B0aW9ucy5kZXB0aHNbMF0gPyBbY29udGV4dF0uY29uY2F0KG9wdGlvbnMuZGVwdGhzKSA6IG9wdGlvbnMuZGVwdGhzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVwdGhzID0gW2NvbnRleHRdO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1haW4oY29udGV4dC8qLCBvcHRpb25zKi8pIHtcbiAgICAgIHJldHVybiAnJyArIHRlbXBsYXRlU3BlYy5tYWluKGNvbnRhaW5lciwgY29udGV4dCwgY29udGFpbmVyLmhlbHBlcnMsIGNvbnRhaW5lci5wYXJ0aWFscywgZGF0YSwgYmxvY2tQYXJhbXMsIGRlcHRocyk7XG4gICAgfVxuICAgIG1haW4gPSBleGVjdXRlRGVjb3JhdG9ycyh0ZW1wbGF0ZVNwZWMubWFpbiwgbWFpbiwgY29udGFpbmVyLCBvcHRpb25zLmRlcHRocyB8fCBbXSwgZGF0YSwgYmxvY2tQYXJhbXMpO1xuICAgIHJldHVybiBtYWluKGNvbnRleHQsIG9wdGlvbnMpO1xuICB9XG4gIHJldC5pc1RvcCA9IHRydWU7XG5cbiAgcmV0Ll9zZXR1cCA9IGZ1bmN0aW9uKG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMucGFydGlhbCkge1xuICAgICAgY29udGFpbmVyLmhlbHBlcnMgPSBjb250YWluZXIubWVyZ2Uob3B0aW9ucy5oZWxwZXJzLCBlbnYuaGVscGVycyk7XG5cbiAgICAgIGlmICh0ZW1wbGF0ZVNwZWMudXNlUGFydGlhbCkge1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBjb250YWluZXIubWVyZ2Uob3B0aW9ucy5wYXJ0aWFscywgZW52LnBhcnRpYWxzKTtcbiAgICAgIH1cbiAgICAgIGlmICh0ZW1wbGF0ZVNwZWMudXNlUGFydGlhbCB8fCB0ZW1wbGF0ZVNwZWMudXNlRGVjb3JhdG9ycykge1xuICAgICAgICBjb250YWluZXIuZGVjb3JhdG9ycyA9IGNvbnRhaW5lci5tZXJnZShvcHRpb25zLmRlY29yYXRvcnMsIGVudi5kZWNvcmF0b3JzKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29udGFpbmVyLmhlbHBlcnMgPSBvcHRpb25zLmhlbHBlcnM7XG4gICAgICBjb250YWluZXIucGFydGlhbHMgPSBvcHRpb25zLnBhcnRpYWxzO1xuICAgICAgY29udGFpbmVyLmRlY29yYXRvcnMgPSBvcHRpb25zLmRlY29yYXRvcnM7XG4gICAgfVxuICB9O1xuXG4gIHJldC5fY2hpbGQgPSBmdW5jdGlvbihpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyAmJiAhYmxvY2tQYXJhbXMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ211c3QgcGFzcyBibG9jayBwYXJhbXMnKTtcbiAgICB9XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VEZXB0aHMgJiYgIWRlcHRocykge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignbXVzdCBwYXNzIHBhcmVudCBkZXB0aHMnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gd3JhcFByb2dyYW0oY29udGFpbmVyLCBpLCB0ZW1wbGF0ZVNwZWNbaV0sIGRhdGEsIDAsIGJsb2NrUGFyYW1zLCBkZXB0aHMpO1xuICB9O1xuICByZXR1cm4gcmV0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JhcFByb2dyYW0oY29udGFpbmVyLCBpLCBmbiwgZGF0YSwgZGVjbGFyZWRCbG9ja1BhcmFtcywgYmxvY2tQYXJhbXMsIGRlcHRocykge1xuICBmdW5jdGlvbiBwcm9nKGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBjdXJyZW50RGVwdGhzID0gZGVwdGhzO1xuICAgIGlmIChkZXB0aHMgJiYgY29udGV4dCAhPSBkZXB0aHNbMF0gJiYgIShjb250ZXh0ID09PSBjb250YWluZXIubnVsbENvbnRleHQgJiYgZGVwdGhzWzBdID09PSBudWxsKSkge1xuICAgICAgY3VycmVudERlcHRocyA9IFtjb250ZXh0XS5jb25jYXQoZGVwdGhzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm4oY29udGFpbmVyLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBjb250YWluZXIuaGVscGVycywgY29udGFpbmVyLnBhcnRpYWxzLFxuICAgICAgICBvcHRpb25zLmRhdGEgfHwgZGF0YSxcbiAgICAgICAgYmxvY2tQYXJhbXMgJiYgW29wdGlvbnMuYmxvY2tQYXJhbXNdLmNvbmNhdChibG9ja1BhcmFtcyksXG4gICAgICAgIGN1cnJlbnREZXB0aHMpO1xuICB9XG5cbiAgcHJvZyA9IGV4ZWN1dGVEZWNvcmF0b3JzKGZuLCBwcm9nLCBjb250YWluZXIsIGRlcHRocywgZGF0YSwgYmxvY2tQYXJhbXMpO1xuXG4gIHByb2cucHJvZ3JhbSA9IGk7XG4gIHByb2cuZGVwdGggPSBkZXB0aHMgPyBkZXB0aHMubGVuZ3RoIDogMDtcbiAgcHJvZy5ibG9ja1BhcmFtcyA9IGRlY2xhcmVkQmxvY2tQYXJhbXMgfHwgMDtcbiAgcmV0dXJuIHByb2c7XG59XG5cbi8qKlxuICogVGhpcyBpcyBjdXJyZW50bHkgcGFydCBvZiB0aGUgb2ZmaWNpYWwgQVBJLCB0aGVyZWZvcmUgaW1wbGVtZW50YXRpb24gZGV0YWlscyBzaG91bGQgbm90IGJlIGNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlUGFydGlhbChwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKSB7XG4gIGlmICghcGFydGlhbCkge1xuICAgIGlmIChvcHRpb25zLm5hbWUgPT09ICdAcGFydGlhbC1ibG9jaycpIHtcbiAgICAgIHBhcnRpYWwgPSBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFydGlhbCA9IG9wdGlvbnMucGFydGlhbHNbb3B0aW9ucy5uYW1lXTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoIXBhcnRpYWwuY2FsbCAmJiAhb3B0aW9ucy5uYW1lKSB7XG4gICAgLy8gVGhpcyBpcyBhIGR5bmFtaWMgcGFydGlhbCB0aGF0IHJldHVybmVkIGEgc3RyaW5nXG4gICAgb3B0aW9ucy5uYW1lID0gcGFydGlhbDtcbiAgICBwYXJ0aWFsID0gb3B0aW9ucy5wYXJ0aWFsc1twYXJ0aWFsXTtcbiAgfVxuICByZXR1cm4gcGFydGlhbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludm9rZVBhcnRpYWwocGFydGlhbCwgY29udGV4dCwgb3B0aW9ucykge1xuICAvLyBVc2UgdGhlIGN1cnJlbnQgY2xvc3VyZSBjb250ZXh0IHRvIHNhdmUgdGhlIHBhcnRpYWwtYmxvY2sgaWYgdGhpcyBwYXJ0aWFsXG4gIGNvbnN0IGN1cnJlbnRQYXJ0aWFsQmxvY2sgPSBvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ107XG4gIG9wdGlvbnMucGFydGlhbCA9IHRydWU7XG4gIGlmIChvcHRpb25zLmlkcykge1xuICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCA9IG9wdGlvbnMuaWRzWzBdIHx8IG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aDtcbiAgfVxuXG4gIGxldCBwYXJ0aWFsQmxvY2s7XG4gIGlmIChvcHRpb25zLmZuICYmIG9wdGlvbnMuZm4gIT09IG5vb3ApIHtcbiAgICBvcHRpb25zLmRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgIC8vIFdyYXBwZXIgZnVuY3Rpb24gdG8gZ2V0IGFjY2VzcyB0byBjdXJyZW50UGFydGlhbEJsb2NrIGZyb20gdGhlIGNsb3N1cmVcbiAgICBsZXQgZm4gPSBvcHRpb25zLmZuO1xuICAgIHBhcnRpYWxCbG9jayA9IG9wdGlvbnMuZGF0YVsncGFydGlhbC1ibG9jayddID0gZnVuY3Rpb24gcGFydGlhbEJsb2NrV3JhcHBlcihjb250ZXh0LCBvcHRpb25zID0ge30pIHtcblxuICAgICAgLy8gUmVzdG9yZSB0aGUgcGFydGlhbC1ibG9jayBmcm9tIHRoZSBjbG9zdXJlIGZvciB0aGUgZXhlY3V0aW9uIG9mIHRoZSBibG9ja1xuICAgICAgLy8gaS5lLiB0aGUgcGFydCBpbnNpZGUgdGhlIGJsb2NrIG9mIHRoZSBwYXJ0aWFsIGNhbGwuXG4gICAgICBvcHRpb25zLmRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgICAgb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBjdXJyZW50UGFydGlhbEJsb2NrO1xuICAgICAgcmV0dXJuIGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgIH07XG4gICAgaWYgKGZuLnBhcnRpYWxzKSB7XG4gICAgICBvcHRpb25zLnBhcnRpYWxzID0gVXRpbHMuZXh0ZW5kKHt9LCBvcHRpb25zLnBhcnRpYWxzLCBmbi5wYXJ0aWFscyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHBhcnRpYWwgPT09IHVuZGVmaW5lZCAmJiBwYXJ0aWFsQmxvY2spIHtcbiAgICBwYXJ0aWFsID0gcGFydGlhbEJsb2NrO1xuICB9XG5cbiAgaWYgKHBhcnRpYWwgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1RoZSBwYXJ0aWFsICcgKyBvcHRpb25zLm5hbWUgKyAnIGNvdWxkIG5vdCBiZSBmb3VuZCcpO1xuICB9IGVsc2UgaWYgKHBhcnRpYWwgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgIHJldHVybiBwYXJ0aWFsKGNvbnRleHQsIG9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub29wKCkgeyByZXR1cm4gJyc7IH1cblxuZnVuY3Rpb24gaW5pdERhdGEoY29udGV4dCwgZGF0YSkge1xuICBpZiAoIWRhdGEgfHwgISgncm9vdCcgaW4gZGF0YSkpIHtcbiAgICBkYXRhID0gZGF0YSA/IGNyZWF0ZUZyYW1lKGRhdGEpIDoge307XG4gICAgZGF0YS5yb290ID0gY29udGV4dDtcbiAgfVxuICByZXR1cm4gZGF0YTtcbn1cblxuZnVuY3Rpb24gZXhlY3V0ZURlY29yYXRvcnMoZm4sIHByb2csIGNvbnRhaW5lciwgZGVwdGhzLCBkYXRhLCBibG9ja1BhcmFtcykge1xuICBpZiAoZm4uZGVjb3JhdG9yKSB7XG4gICAgbGV0IHByb3BzID0ge307XG4gICAgcHJvZyA9IGZuLmRlY29yYXRvcihwcm9nLCBwcm9wcywgY29udGFpbmVyLCBkZXB0aHMgJiYgZGVwdGhzWzBdLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKTtcbiAgICBVdGlscy5leHRlbmQocHJvZywgcHJvcHMpO1xuICB9XG4gIHJldHVybiBwcm9nO1xufVxuIl19\n","/* global window */\n'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (Handlebars) {\n /* istanbul ignore next */\n var root = typeof global !== 'undefined' ? global : window,\n $Handlebars = root.Handlebars;\n /* istanbul ignore next */\n Handlebars.noConflict = function () {\n if (root.Handlebars === Handlebars) {\n root.Handlebars = $Handlebars;\n }\n return Handlebars;\n };\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL25vLWNvbmZsaWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O3FCQUNlLFVBQVMsVUFBVSxFQUFFOztBQUVsQyxNQUFJLElBQUksR0FBRyxPQUFPLE1BQU0sS0FBSyxXQUFXLEdBQUcsTUFBTSxHQUFHLE1BQU07TUFDdEQsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7O0FBRWxDLFlBQVUsQ0FBQyxVQUFVLEdBQUcsWUFBVztBQUNqQyxRQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO0FBQ2xDLFVBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO0tBQy9CO0FBQ0QsV0FBTyxVQUFVLENBQUM7R0FDbkIsQ0FBQztDQUNIIiwiZmlsZSI6Im5vLWNvbmZsaWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIHdpbmRvdyAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oSGFuZGxlYmFycykge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBsZXQgcm9vdCA9IHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogd2luZG93LFxuICAgICAgJEhhbmRsZWJhcnMgPSByb290LkhhbmRsZWJhcnM7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIEhhbmRsZWJhcnMubm9Db25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICAgIGlmIChyb290LkhhbmRsZWJhcnMgPT09IEhhbmRsZWJhcnMpIHtcbiAgICAgIHJvb3QuSGFuZGxlYmFycyA9ICRIYW5kbGViYXJzO1xuICAgIH1cbiAgICByZXR1cm4gSGFuZGxlYmFycztcbiAgfTtcbn1cbiJdfQ==\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(classname) {\n\tvar check = OCA.WorkflowEngine.getCheckByClass(classname);\n\tif (!_.isUndefined(check)) {\n\t\treturn check['operators'];\n\t}\n\treturn [];\n}\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.FileMimeTypePlugin = {\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\FileMimeType',\n\t\t\t\t'name': t('workflowengine', 'File MIME type'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not')},\n\t\t\t\t\t{'operator': 'matches', 'name': t('workflowengine', 'matches')},\n\t\t\t\t\t{'operator': '!matches', 'name': t('workflowengine', 'does not match')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\FileMimeType') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = 'text/plain';\n\t\t\tif (check['operator'] === 'matches' || check['operator'] === '!matches') {\n\t\t\t\tplaceholder = '/^text\\\\/(plain|html)$/i';\n\n\t\t\t\tif (this._validateRegex(check['value'])) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$(element).css('width', '250px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\t\t},\n\n\t\t_validateRegex: function(string) {\n\t\t\tvar regexRegex = /^\\/(.*)\\/([gui]{0,3})$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.FileMimeTypePlugin);\n","/**\n * @copyright Copyright (c) 2018 Daniel Kesselberg <mail@danielkesselberg.de>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function () {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.FileNamePlugin = {\n\t\tgetCheck: function () {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\FileName',\n\t\t\t\t'name': t('workflowengine', 'File name'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not')},\n\t\t\t\t\t{\n\t\t\t\t\t\t'operator': 'matches',\n\t\t\t\t\t\t'name': t('workflowengine', 'matches')\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t'operator': '!matches',\n\t\t\t\t\t\t'name': t('workflowengine', 'does not match')\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function (element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\FileName') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = 'dummy.jpg';\n\t\t\tif (check['operator'] === 'matches' || check['operator'] === '!matches') {\n\t\t\t\tplaceholder = '/^dummy-.+$/i';\n\n\t\t\t\tif (this._validateRegex(check['value'])) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$(element).css('width', '250px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\t\t},\n\n\t\t_validateRegex: function (string) {\n\t\t\tvar regexRegex = /^\\/(.*)\\/([gui]{0,3})$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.FileNamePlugin);","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.FileSizePlugin = {\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\FileSize',\n\t\t\t\t'name': t('workflowengine', 'File size (upload)'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'less', 'name': t('workflowengine', 'less')},\n\t\t\t\t\t{'operator': '!greater', 'name': t('workflowengine', 'less or equals')},\n\t\t\t\t\t{'operator': '!less', 'name': t('workflowengine', 'greater or equals')},\n\t\t\t\t\t{'operator': 'greater', 'name': t('workflowengine', 'greater')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\FileSize') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = '12 MB'; // Do not translate!!!\n\t\t\t$(element).css('width', '250px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.FileSizePlugin);\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.FileSystemTagsPlugin = {\n\t\tgetCheck: function() {\n\t\t\tthis.collection = OC.SystemTags.collection;\n\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\FileSystemTags',\n\t\t\t\t'name': t('workflowengine', 'File system tag'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is tagged with')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not tagged with')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\FileSystemTags') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$(element).css('width', '400px');\n\n\t\t\t$(element).select2({\n\t\t\t\tallowClear: false,\n\t\t\t\tmultiple: false,\n\t\t\t\tplaceholder: t('workflowengine', 'Select tag…'),\n\t\t\t\tquery: _.debounce(function(query) {\n\t\t\t\t\tquery.callback({\n\t\t\t\t\t\tresults: OC.SystemTags.collection.filterByName(query.term)\n\t\t\t\t\t});\n\t\t\t\t}, 100, true),\n\t\t\t\tid: function(element) {\n\t\t\t\t\treturn element.get('id');\n\t\t\t\t},\n\t\t\t\tinitSelection: function(element, callback) {\n\t\t\t\t\tcallback($(element).val());\n\t\t\t\t},\n\t\t\t\tformatResult: function (tag) {\n\t\t\t\t\treturn OC.SystemTags.getDescriptiveTag(tag);\n\t\t\t\t},\n\t\t\t\tformatSelection: function (tagId) {\n\t\t\t\t\tvar tag = OC.SystemTags.collection.get(tagId);\n\t\t\t\t\tif (!_.isUndefined(tag)) {\n\t\t\t\t\t\treturn OC.SystemTags.getDescriptiveTag(tag);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tescapeMarkup: function(m) {\n\t\t\t\t\treturn m;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.FileSystemTagsPlugin);\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.RequestRemoteAddressPlugin = {\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestRemoteAddress',\n\t\t\t\t'name': t('workflowengine', 'Request remote address'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'matchesIPv4', 'name': t('workflowengine', 'matches IPv4')},\n\t\t\t\t\t{'operator': '!matchesIPv4', 'name': t('workflowengine', 'does not match IPv4')},\n\t\t\t\t\t{'operator': 'matchesIPv6', 'name': t('workflowengine', 'matches IPv6')},\n\t\t\t\t\t{'operator': '!matchesIPv6', 'name': t('workflowengine', 'does not match IPv6')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestRemoteAddress') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = '127.0.0.1/32'; // Do not translate!!!\n\t\t\tif (check['operator'] === 'matchesIPv6' || check['operator'] === '!matchesIPv6') {\n\t\t\t\tplaceholder = '::1/128'; // Do not translate!!!\n\t\t\t\tif (this._validateIPv6(check['value'])) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this._validateIPv4(check['value'])) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$(element).css('width', '300px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\t\t},\n\n\t\t_validateIPv4: function(string) {\n\t\t\tvar regexRegex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\/(3[0-2]|[1-2][0-9]|[1-9])$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t},\n\n\t\t_validateIPv6: function(string) {\n\t\t\tvar regexRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(1([01][0-9]|2[0-8])|[1-9][0-9]|[0-9])$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.RequestRemoteAddressPlugin);\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.RequestTimePlugin = {\n\t\ttimezones: [\n\t\t\t\"Europe/Berlin\",\n\t\t\t\"Europe/London\"\n\t\t],\n\t\t_$element: null,\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestTime',\n\t\t\t\t'name': t('workflowengine', 'Request time'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'in', 'name': t('workflowengine', 'between')},\n\t\t\t\t\t{'operator': '!in', 'name': t('workflowengine', 'not between')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestTime') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar startTime = '09:00',\n\t\t\t\tendTime = '18:00',\n\t\t\t\ttimezone = jstz.determine().name(),\n\t\t\t\t$element = $(element);\n\n\t\t\tif (_.isString(check['value']) && check['value'] !== '') {\n\t\t\t\tvar value = JSON.parse(check['value']),\n\t\t\t\t\tsplittedStart = value[0].split(' ', 2),\n\t\t\t\t\tsplittedEnd = value[1].split(' ', 2);\n\n\t\t\t\tstartTime = splittedStart[0];\n\t\t\t\tendTime = splittedEnd[0];\n\t\t\t\ttimezone = splittedStart[1];\n\t\t\t}\n\n\t\t\tvar valueJSON = JSON.stringify([startTime + ' ' + timezone, endTime + ' ' + timezone]);\n\t\t\tif (check['value'] !== valueJSON) {\n\t\t\t\tcheck['value'] = valueJSON;\n\t\t\t\t$element.val(valueJSON);\n\t\t\t}\n\n\t\t\t$element.css('display', 'none');\n\n\t\t\t$('<input>')\n\t\t\t\t.attr('type', 'text')\n\t\t\t\t.attr('placeholder', t('workflowengine', 'Start'))\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: '16:00'}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t})\n\t\t\t\t.addClass('start')\n\t\t\t\t.val(startTime)\n\t\t\t\t.insertBefore($element);\n\t\t\t$('<input>')\n\t\t\t\t.attr('type', 'text')\n\t\t\t\t.attr('placeholder', t('workflowengine', 'End'))\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: '16:00'}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t})\n\t\t\t\t.addClass('end')\n\t\t\t\t.val(endTime)\n\t\t\t\t.insertBefore($element);\n\n\t\t\tvar timezoneInput = $('<input>')\n\t\t\t\t.attr('type', 'hidden')\n\t\t\t\t.css('width', '250px')\n\t\t\t\t.insertBefore($element)\n\t\t\t\t.val(timezone);\n\n\t\t\ttimezoneInput.select2({\n\t\t\t\tallowClear: false,\n\t\t\t\tmultiple: false,\n\t\t\t\tplaceholder: t('workflowengine', 'Select timezone…'),\n\t\t\t\tajax: {\n\t\t\t\t\turl: OC.generateUrl('apps/workflowengine/timezones'),\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tquietMillis: 100,\n\t\t\t\t\tdata: function (term) {\n\t\t\t\t\t\tif (term === '') {\n\t\t\t\t\t\t\t// Default search in the same continent...\n\t\t\t\t\t\t\tterm = jstz.determine().name().split('/');\n\t\t\t\t\t\t\tterm = term[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tsearch: term\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\tresults: function (response) {\n\t\t\t\t\t\tvar results = [];\n\t\t\t\t\t\t$.each(response, function(timezone) {\n\t\t\t\t\t\t\tresults.push({ id: timezone });\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tresults: results,\n\t\t\t\t\t\t\tmore: false\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tinitSelection: function (element, callback) {\n\t\t\t\t\tcallback(element.val());\n\t\t\t\t},\n\t\t\t\tformatResult: function (element) {\n\t\t\t\t\treturn '<span>' + element.id + '</span>';\n\t\t\t\t},\n\t\t\t\tformatSelection: function (element) {\n\t\t\t\t\tif (!_.isUndefined(element.id)) {\n\t\t\t\t\t\telement = element.id;\n\t\t\t\t\t}\n\t\t\t\t\treturn '<span>' + element + '</span>';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Has to be added after select2 for `event.target.classList`\n\t\t\ttimezoneInput.addClass('timezone');\n\n\t\t\t$element.parent()\n\t\t\t\t.on('change', '.start', _.bind(this.update, this))\n\t\t\t\t.on('change', '.end', _.bind(this.update, this))\n\t\t\t\t.on('change', '.timezone', _.bind(this.update, this));\n\n\t\t\tthis._$element = $element;\n\t\t},\n\t\tupdate: function(event) {\n\t\t\tvar value = event.target.value,\n\t\t\t\tkey = null;\n\n\t\t\tfor (var i = 0; i < event.target.classList.length; i++) {\n\t\t\t\tkey = event.target.classList[i];\n\t\t\t}\n\n\t\t\tif (key === null) {\n\t\t\t\tconsole.warn('update triggered but element doesn\\'t have any class');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar data = JSON.parse(this._$element.val()),\n\t\t\t\tstartTime = moment(data[0].split(' ', 2)[0], 'H:m Z'),\n\t\t\t\tendTime = moment(data[1].split(' ', 2)[0], 'H:m Z'),\n\t\t\t\ttimezone = data[0].split(' ', 2)[1];\n\n\t\t\tif (key === 'start' || key === 'end') {\n\t\t\t\tvar parsedDate = moment(value, ['H:m', 'h:m a'], true).format('HH:mm');\n\n\t\t\t\tif (parsedDate === 'Invalid date') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar indexValue = 0;\n\t\t\t\tif (key === 'end') {\n\t\t\t\t\tindexValue = 1;\n\t\t\t\t}\n\t\t\t\tdata[indexValue] = parsedDate + ' ' + timezone;\n\t\t\t}\n\n\t\t\tif (key === 'timezone') {\n\t\t\t\tdata[0] = startTime.format('HH:mm') + ' ' + value;\n\t\t\t\tdata[1] = endTime.format('HH:mm') + ' ' + value;\n\t\t\t}\n\n\t\t\tthis._$element.val(JSON.stringify(data));\n\t\t\tthis._$element.trigger('change');\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.RequestTimePlugin);\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.RequestURLPlugin = {\n\t\tpredefinedValues: ['webdav'],\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestURL',\n\t\t\t\t'name': t('workflowengine', 'Request URL'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not')},\n\t\t\t\t\t{'operator': 'matches', 'name': t('workflowengine', 'matches')},\n\t\t\t\t\t{'operator': '!matches', 'name': t('workflowengine', 'does not match')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestURL') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = 'https://localhost/index.php';\n\n\t\t\tif (check['operator'] === 'matches' || check['operator'] === '!matches') {\n\t\t\t\tplaceholder = '/^https\\\\:\\\\/\\\\/localhost\\\\/index\\\\.php$/i';\n\t\t\t}\n\n\t\t\t$(element).css('width', '250px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\n\t\t\tif (check['operator'] === 'matches' || check['operator'] === '!matches') {\n\t\t\t\tif (this._validateRegex(check['value'])) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar self = this,\n\t\t\t\t\tdata = [\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: t('workflowengine', 'Predefined URLs'),\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t{id: 'webdav', text: t('workflowengine', 'Files WebDAV')}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t];\n\t\t\t\tif (this.predefinedValues.indexOf(check['value']) === -1) {\n\t\t\t\t\tdata.unshift({\n\t\t\t\t\t\tid: check['value'],\n\t\t\t\t\t\ttext: check['value']\n\t\t\t\t\t})\n\t\t\t\t}\n\n\n\t\t\t\t$(element).select2({\n\t\t\t\t\tdata: data,\n\t\t\t\t\tcreateSearchChoice: function(term) {\n\t\t\t\t\t\tif (self.predefinedValues.indexOf(check['value']) === -1) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tid: term,\n\t\t\t\t\t\t\t\ttext: term\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tid: function(element) {\n\t\t\t\t\t\treturn element.id;\n\t\t\t\t\t},\n\t\t\t\t\tformatResult: function (tag) {\n\t\t\t\t\t\treturn tag.text;\n\t\t\t\t\t},\n\t\t\t\t\tformatSelection: function (tag) {\n\t\t\t\t\t\treturn tag.text;\n\t\t\t\t\t},\n\t\t\t\t\tescapeMarkup: function(m) {\n\t\t\t\t\t\treturn m;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t_validateRegex: function(string) {\n\t\t\tvar regexRegex = /^\\/(.*)\\/([gui]{0,3})$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.RequestURLPlugin);\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.RequestUserAgentPlugin = {\n\t\tpredefinedValues: ['android', 'ios', 'desktop'],\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestUserAgent',\n\t\t\t\t'name': t('workflowengine', 'Request user agent'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not')},\n\t\t\t\t\t{'operator': 'matches', 'name': t('workflowengine', 'matches')},\n\t\t\t\t\t{'operator': '!matches', 'name': t('workflowengine', 'does not match')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\RequestUserAgent') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar placeholder = 'Mozilla/5.0 User Agent';\n\n\t\t\tif (check.operator === 'matches' || check.operator === '!matches') {\n\t\t\t\tplaceholder = '/^Mozilla\\\\/5\\\\.0 (.*)$/i';\n\t\t\t}\n\n\t\t\t$(element).css('width', '250px')\n\t\t\t\t.attr('placeholder', placeholder)\n\t\t\t\t.attr('title', t('workflowengine', 'Example: {placeholder}', {placeholder: placeholder}))\n\t\t\t\t.addClass('has-tooltip')\n\t\t\t\t.tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\n\t\t\tif (check.operator === 'matches' || check.operator === '!matches') {\n\t\t\t\tif (this._validateRegex(check.value)) {\n\t\t\t\t\t$(element).removeClass('invalid-input');\n\t\t\t\t} else {\n\t\t\t\t\t$(element).addClass('invalid-input');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar self = this,\n\t\t\t\t\tdata = [\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: t('workflowengine', 'Sync clients'),\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t{id: 'android', text: t('workflowengine', 'Android client')},\n\t\t\t\t\t\t\t{id: 'ios', text: t('workflowengine', 'iOS client')},\n\t\t\t\t\t\t\t{id: 'desktop', text: t('workflowengine', 'Desktop client')},\n\t\t\t\t\t\t\t{id: 'mail', text: t('workflowengine', 'Thunderbird & Outlook addons')}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t];\n\t\t\t\tif (this.predefinedValues.indexOf(check.value) === -1) {\n\t\t\t\t\tdata.unshift({\n\t\t\t\t\t\tid: check.value,\n\t\t\t\t\t\ttext: check.value\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t$(element).select2({\n\t\t\t\t\tdata: data,\n\t\t\t\t\tcreateSearchChoice: function(term) {\n\t\t\t\t\t\tif (self.predefinedValues.indexOf(check.value) === -1) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tid: term,\n\t\t\t\t\t\t\t\ttext: term\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tid: function(element) {\n\t\t\t\t\t\treturn element.id;\n\t\t\t\t\t},\n\t\t\t\t\tformatResult: function (tag) {\n\t\t\t\t\t\treturn tag.text;\n\t\t\t\t\t},\n\t\t\t\t\tformatSelection: function (tag) {\n\t\t\t\t\t\treturn tag.text;\n\t\t\t\t\t},\n\t\t\t\t\tescapeMarkup: function(m) {\n\t\t\t\t\t\treturn m;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t_validateRegex: function(string) {\n\t\t\tvar regexRegex = /^\\/(.*)\\/([gui]{0,3})$/,\n\t\t\t\tresult = regexRegex.exec(string);\n\t\t\treturn result !== null;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.RequestUserAgentPlugin);\n","/**\n * @copyright Copyright (c) 2016 Morris Jobke <hey@morrisjobke.de>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\n\tOCA.WorkflowEngine = OCA.WorkflowEngine || {};\n\tOCA.WorkflowEngine.Plugins = OCA.WorkflowEngine.Plugins || {};\n\n\tOCA.WorkflowEngine.Plugins.UserGroupMembershipPlugin = {\n\t\tgetCheck: function() {\n\t\t\treturn {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Check\\\\UserGroupMembership',\n\t\t\t\t'name': t('workflowengine', 'User group membership'),\n\t\t\t\t'operators': [\n\t\t\t\t\t{'operator': 'is', 'name': t('workflowengine', 'is member of')},\n\t\t\t\t\t{'operator': '!is', 'name': t('workflowengine', 'is not member of')}\n\t\t\t\t]\n\t\t\t};\n\t\t},\n\t\trender: function(element, check, groups) {\n\t\t\tif (check['class'] !== 'OCA\\\\WorkflowEngine\\\\Check\\\\UserGroupMembership') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$(element).css('width', '400px');\n\n\t\t\t$(element).select2({\n\t\t\t\tdata: { results: groups, text: 'displayname' },\n\t\t\t\tinitSelection: function (element, callback) {\n\t\t\t\t\tvar groupId = element.val();\n\t\t\t\t\tif (groupId && groups.length > 0) {\n\t\t\t\t\t\tcallback({\n\t\t\t\t\t\t\tid: groupId,\n\t\t\t\t\t\t\tdisplayname: groups.find(function (group) {\n\t\t\t\t\t\t\t\treturn group.id === groupId;\n\t\t\t\t\t\t\t}).displayname\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (groupId) {\n\t\t\t\t\t\tcallback({\n\t\t\t\t\t\t\tid: groupId,\n\t\t\t\t\t\t\tdisplayname: groupId\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tformatResult: function (element) {\n\t\t\t\t\treturn '<span>' + escapeHTML(element.displayname) + '</span>';\n\t\t\t\t},\n\t\t\t\tformatSelection: function (element) {\n\t\t\t\t\treturn '<span title=\"'+escapeHTML(element.id)+'\">'+escapeHTML(element.displayname)+'</span>';\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.WorkflowEngine.CheckPlugins', OCA.WorkflowEngine.Plugins.UserGroupMembershipPlugin);\n","/**\n * @copyright Copyright (c) 2016 Morris Jobke <hey@morrisjobke.de>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport OperationTemplate from './templates/operation.handlebars';\nimport OperationsTemplate from './templates/operations.handlebars';\n\n(function() {\n\tOCA.WorkflowEngine = _.extend(OCA.WorkflowEngine || {}, {\n\t\tavailablePlugins: [],\n\t\tavailableChecks: [],\n\n\t\tgetCheckByClass: function(className) {\n\t\t\tvar length = OCA.WorkflowEngine.availableChecks.length;\n\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\tif (OCA.WorkflowEngine.availableChecks[i]['class'] === className) {\n\t\t\t\t\treturn OCA.WorkflowEngine.availableChecks[i];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\t});\n\n\t/**\n\t * 888b d888 888 888\n\t * 8888b d8888 888 888\n\t * 88888b.d88888 888 888\n\t * 888Y88888P888 .d88b. .d88888 .d88b. 888 .d8888b\n\t * 888 Y888P 888 d88\"\"88b d88\" 888 d8P Y8b 888 88K\n\t * 888 Y8P 888 888 888 888 888 88888888 888 \"Y8888b.\n\t * 888 \" 888 Y88..88P Y88b 888 Y8b. 888 X88\n\t * 888 888 \"Y88P\" \"Y88888 \"Y8888 888 88888P'\n\t */\n\n\t/**\n\t * @class OCA.WorkflowEngine.Operation\n\t */\n\tOCA.WorkflowEngine.Operation =\n\t\tOC.Backbone.Model.extend({\n\t\t\tdefaults: {\n\t\t\t\t'class': 'OCA\\\\WorkflowEngine\\\\Operation',\n\t\t\t\t'name': '',\n\t\t\t\t'checks': [],\n\t\t\t\t'operation': ''\n\t\t\t}\n\t\t});\n\n\t/**\n\t * .d8888b. 888 888 888 d8b\n\t * d88P Y88b 888 888 888 Y8P\n\t * 888 888 888 888 888\n\t * 888 .d88b. 888 888 .d88b. .d8888b 888888 888 .d88b. 88888b. .d8888b\n\t * 888 d88\"\"88b 888 888 d8P Y8b d88P\" 888 888 d88\"\"88b 888 \"88b 88K\n\t * 888 888 888 888 888 888 88888888 888 888 888 888 888 888 888 \"Y8888b.\n\t * Y88b d88P Y88..88P 888 888 Y8b. Y88b. Y88b. 888 Y88..88P 888 888 X88\n\t * \"Y8888P\" \"Y88P\" 888 888 \"Y8888 \"Y8888P \"Y888 888 \"Y88P\" 888 888 88888P'\n\t */\n\n\t/**\n\t * @class OCA.WorkflowEngine.OperationsCollection\n\t *\n\t * collection for all configurated operations\n\t */\n\tOCA.WorkflowEngine.OperationsCollection =\n\t\tOC.Backbone.Collection.extend({\n\t\t\tmodel: OCA.WorkflowEngine.Operation,\n\t\t\turl: OC.generateUrl('apps/workflowengine/operations')\n\t\t});\n\n\t/**\n\t * 888 888 d8b\n\t * 888 888 Y8P\n\t * 888 888\n\t * Y88b d88P 888 .d88b. 888 888 888 .d8888b\n\t * Y88b d88P 888 d8P Y8b 888 888 888 88K\n\t * Y88o88P 888 88888888 888 888 888 \"Y8888b.\n\t * Y888P 888 Y8b. Y88b 888 d88P X88\n\t * Y8P 888 \"Y8888 \"Y8888888P\" 88888P'\n\t */\n\n\t/**\n\t * @class OCA.WorkflowEngine.OperationView\n\t *\n\t * this creates the view for a single operation\n\t */\n\tOCA.WorkflowEngine.OperationView =\n\t\tOC.Backbone.View.extend({\n\t\t\ttemplateId: '#operation-template',\n\t\t\tevents: {\n\t\t\t\t'change .check-class': 'checkChanged',\n\t\t\t\t'change .check-operator': 'checkChanged',\n\t\t\t\t'change .check-value': 'checkChanged',\n\t\t\t\t'change .operation-name': 'operationChanged',\n\t\t\t\t'change .operation-operation': 'operationChanged',\n\t\t\t\t'click .button-reset': 'reset',\n\t\t\t\t'click .button-save': 'save',\n\t\t\t\t'click .button-add': 'add',\n\t\t\t\t'click .button-delete': 'delete',\n\t\t\t\t'click .button-delete-check': 'deleteCheck'\n\t\t\t},\n\t\t\toriginalModel: null,\n\t\t\thasChanged: false,\n\t\t\tmessage: '',\n\t\t\terrorMessage: '',\n\t\t\tsaving: false,\n\t\t\tgroups: [],\n\t\t\ttemplate: function(vars) {\n\t\t\t\treturn OperationTemplate(_.extend(\n\t\t\t\t\t{\n\t\t\t\t\t\tshortRuleDescTXT: t('workflowengine', 'Short rule description'),\n\t\t\t\t\t\taddRuleTXT: t('workflowengine', 'Add rule'),\n\t\t\t\t\t\tresetTXT: t('workflowengine', 'Reset'),\n\t\t\t\t\t\tsaveTXT: t('workflowengine', 'Save'),\n\t\t\t\t\t\tsavingTXT: t('workflowengine', 'Saving…')\n\t\t\t\t\t},\n\t\t\t\t\tvars\n\t\t\t\t));\n\t\t\t},\n\t\t\tinitialize: function() {\n\t\t\t\t// this creates a new copy of the object to definitely have a new reference and being able to reset the model\n\t\t\t\tthis.originalModel = JSON.parse(JSON.stringify(this.model));\n\t\t\t\tthis.model.on('change', function() {\n\t\t\t\t\tconsole.log('model changed');\n\t\t\t\t\tthis.hasChanged = true;\n\t\t\t\t\tthis.render();\n\t\t\t\t}, this);\n\n\t\t\t\tif (this.model.get('id') === undefined) {\n\t\t\t\t\tthis.hasChanged = true;\n\t\t\t\t}\n\t\t\t\tvar self = this;\n\t\t\t\t$.ajax({\n\t\t\t\t\turl: OC.linkToOCS('cloud/groups', 2) + 'details',\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tquietMillis: 100,\n\t\t\t\t}).success(function(data) {\n\t\t\t\t\tif (data.ocs.data.groups && data.ocs.data.groups.length > 0) {\n\n\t\t\t\t\t\tdata.ocs.data.groups.forEach(function(group) {\n\t\t\t\t\t\t\tself.groups.push({ id: group.id, displayname: group.displayname });\n\t\t\t\t\t\t});\n\t\t\t\t\t\tself.render();\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tOC.Notification.error(t('workflowengine', 'Group list is empty'), { type: 'error' });\n\t\t\t\t\t\tconsole.log(data);\n\t\t\t\t\t}\n\t\t\t\t}).error(function(data) {\n\t\t\t\t\tOC.Notification.error(t('workflowengine', 'Unable to retrieve the group list'), { type: 'error' });\n\t\t\t\t\tconsole.log(data);\n\t\t\t\t});\n\t\t\t},\n\t\t\tdelete: function() {\n\t\t\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this.delete, this));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.model.destroy();\n\t\t\t\tthis.remove();\n\t\t\t},\n\t\t\treset: function() {\n\t\t\t\tthis.hasChanged = false;\n\t\t\t\t// silent is need to not trigger the change event which resets the hasChanged attribute\n\t\t\t\tthis.model.set(this.originalModel, { silent: true });\n\t\t\t\tthis.render();\n\t\t\t},\n\t\t\tsave: function() {\n\t\t\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this.save, this));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar success = function(model, response, options) {\n\t\t\t\t\tthis.saving = false;\n\t\t\t\t\tthis.originalModel = JSON.parse(JSON.stringify(this.model));\n\n\t\t\t\t\tthis.message = t('workflowengine', 'Saved');\n\t\t\t\t\tthis.errorMessage = '';\n\t\t\t\t\tthis.render();\n\t\t\t\t};\n\t\t\t\tvar error = function(model, response, options) {\n\t\t\t\t\tthis.saving = false;\n\t\t\t\t\tthis.hasChanged = true;\n\n\t\t\t\t\tthis.message = t('workflowengine', 'Saving failed:');\n\t\t\t\t\tthis.errorMessage = response.responseText;\n\t\t\t\t\tthis.render();\n\t\t\t\t};\n\t\t\t\tthis.hasChanged = false;\n\t\t\t\tthis.saving = true;\n\t\t\t\tthis.render();\n\t\t\t\tthis.model.save(null, { success: success, error: error, context: this });\n\t\t\t},\n\t\t\tadd: function() {\n\t\t\t\tvar checks = _.clone(this.model.get('checks')),\n\t\t\t\t\tclassname = OCA.WorkflowEngine.availableChecks[0]['class'],\n\t\t\t\t\toperators = OCA.WorkflowEngine.availableChecks[0]['operators'];\n\n\t\t\t\tchecks.push({\n\t\t\t\t\t'class': classname,\n\t\t\t\t\t'operator': operators[0]['operator'],\n\t\t\t\t\t'value': ''\n\t\t\t\t});\n\t\t\t\tthis.model.set({ 'checks': checks });\n\t\t\t},\n\t\t\tcheckChanged: function(event) {\n\t\t\t\tvar value = event.target.value,\n\t\t\t\t\tid = $(event.target.parentElement).data('id'),\n\t\t\t\t\t// this creates a new copy of the object to definitely have a new reference\n\t\t\t\t\tchecks = JSON.parse(JSON.stringify(this.model.get('checks'))),\n\t\t\t\t\tkey = null;\n\n\t\t\t\tfor (var i = 0; i < event.target.classList.length; i++) {\n\t\t\t\t\tvar className = event.target.classList[i];\n\t\t\t\t\tif (className.substr(0, 'check-'.length) === 'check-') {\n\t\t\t\t\t\tkey = className.substr('check-'.length);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (key === null) {\n\t\t\t\t\tconsole.warn('checkChanged triggered but element doesn\\'t have any \"check-\" class');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!_.has(checks[id], key)) {\n\t\t\t\t\tconsole.warn('key \"' + key + '\" is not available in check', check);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tchecks[id][key] = value;\n\t\t\t\t// if the class is changed most likely also the operators have changed\n\t\t\t\t// with this we set the operator to the first possible operator\n\t\t\t\tif (key === 'class') {\n\t\t\t\t\tvar check = OCA.WorkflowEngine.getCheckByClass(value);\n\t\t\t\t\tif (!_.isUndefined(check)) {\n\t\t\t\t\t\tchecks[id]['operator'] = check['operators'][0]['operator'];\n\t\t\t\t\t\tchecks[id]['value'] = '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// model change will trigger render\n\t\t\t\tthis.model.set({ 'checks': checks });\n\t\t\t},\n\t\t\tdeleteCheck: function(event) {\n\t\t\t\tconsole.log(arguments);\n\t\t\t\tvar id = $(event.target.parentElement).data('id'),\n\t\t\t\t\tchecks = JSON.parse(JSON.stringify(this.model.get('checks')));\n\n\t\t\t\t// splice removes 1 element at index `id`\n\t\t\t\tchecks.splice(id, 1);\n\t\t\t\t// model change will trigger render\n\t\t\t\tthis.model.set({ 'checks': checks });\n\t\t\t},\n\t\t\toperationChanged: function(event) {\n\t\t\t\tvar value = event.target.value,\n\t\t\t\t\tkey = null;\n\n\t\t\t\tfor (var i = 0; i < event.target.classList.length; i++) {\n\t\t\t\t\tvar className = event.target.classList[i];\n\t\t\t\t\tif (className.substr(0, 'operation-'.length) === 'operation-') {\n\t\t\t\t\t\tkey = className.substr('operation-'.length);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (key === null) {\n\t\t\t\t\tconsole.warn('operationChanged triggered but element doesn\\'t have any \"operation-\" class');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (key !== 'name' && key !== 'operation') {\n\t\t\t\t\tconsole.warn('key \"' + key + '\" is no valid attribute');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// model change will trigger render\n\t\t\t\tthis.model.set(key, value);\n\t\t\t},\n\t\t\trender: function() {\n\t\t\t\tthis.$el.html(this.template({\n\t\t\t\t\toperation: this.model.toJSON(),\n\t\t\t\t\tclasses: OCA.WorkflowEngine.availableChecks,\n\t\t\t\t\thasChanged: this.hasChanged,\n\t\t\t\t\tmessage: this.message,\n\t\t\t\t\terrorMessage: this.errorMessage,\n\t\t\t\t\tsaving: this.saving\n\t\t\t\t}));\n\n\t\t\t\tvar checks = this.model.get('checks');\n\t\t\t\t_.each(this.$el.find('.check'), function(element) {\n\t\t\t\t\tvar $element = $(element),\n\t\t\t\t\t\tid = $element.data('id'),\n\t\t\t\t\t\tcheck = checks[id],\n\t\t\t\t\t\tvalueElement = $element.find('.check-value').first();\n\t\t\t\t\tvar self = this;\n\n\t\t\t\t\t_.each(OCA.WorkflowEngine.availablePlugins, function(plugin) {\n\t\t\t\t\t\tif (_.isFunction(plugin.render)) {\n\t\t\t\t\t\t\tplugin.render(valueElement, check, self.groups);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}, this);\n\n\t\t\t\tif (this.message !== '') {\n\t\t\t\t\t// hide success messages after some time\n\t\t\t\t\t_.delay(function(elements) {\n\t\t\t\t\t\t$(elements).css('opacity', 0);\n\t\t\t\t\t}, 7000, this.$el.find('.msg.success'));\n\t\t\t\t\tthis.message = '';\n\t\t\t\t}\n\n\t\t\t\treturn this.$el;\n\t\t\t}\n\t\t});\n\n\t/**\n\t * @class OCA.WorkflowEngine.OperationsView\n\t *\n\t * this creates the view for configured operations\n\t */\n\tOCA.WorkflowEngine.OperationsView =\n\t\tOC.Backbone.View.extend({\n\t\t\ttemplateId: '#operations-template',\n\t\t\tcollection: null,\n\t\t\t$el: null,\n\t\t\tevents: {\n\t\t\t\t'click .button-add-operation': 'add'\n\t\t\t},\n\t\t\ttemplate: function(vars) {\n\t\t\t\treturn OperationsTemplate(_.extend(\n\t\t\t\t\t{\n\t\t\t\t\t\taddRuleGroupTXT: t('workflowengine', 'Add rule group')\n\t\t\t\t\t},\n\t\t\t\t\tvars\n\t\t\t\t));\n\t\t\t},\n\t\t\tinitialize: function(classname) {\n\t\t\t\tif (!OCA.WorkflowEngine.availablePlugins.length) {\n\t\t\t\t\tOCA.WorkflowEngine.availablePlugins = OC.Plugins.getPlugins('OCA.WorkflowEngine.CheckPlugins');\n\t\t\t\t\t_.each(OCA.WorkflowEngine.availablePlugins, function(plugin) {\n\t\t\t\t\t\tif (_.isFunction(plugin.getCheck)) {\n\t\t\t\t\t\t\tOCA.WorkflowEngine.availableChecks.push(plugin.getCheck(classname));\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.collection.fetch({\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t'class': classname\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tthis.collection.once('sync', this.render, this);\n\t\t\t},\n\t\t\tadd: function() {\n\t\t\t\tvar operation = this.collection.create();\n\t\t\t\tthis.renderOperation(operation);\n\t\t\t},\n\t\t\trenderOperation: function(subView) {\n\t\t\t\tvar operationsElement = this.$el.find('.operations');\n\t\t\t\toperationsElement.append(subView.$el);\n\t\t\t\tsubView.render();\n\t\t\t},\n\t\t\trender: function() {\n\t\t\t\tthis.$el.html(this.template());\n\t\t\t\tthis.collection.each(this.renderOperation, this);\n\t\t\t}\n\t\t});\n})();\n","import './admin'\nimport './filemimetypeplugin'\nimport './filenameplugin'\nimport './filesizeplugin'\nimport './filesystemtagsplugin'\nimport './requestremoteaddressplugin'\nimport './requesttimeplugin'\nimport './requesturlplugin'\nimport './requestuseragentplugin'\nimport './usergroupmembershipplugin'\n\nwindow.OCA.WorkflowEngine = OCA.WorkflowEngine\n"],"sourceRoot":""}