From 96a29ac3c7cb232be1ab8dcaf1d9d304851f9e7d Mon Sep 17 00:00:00 2001
From: Konstantin Baierer <unixprog@gmail.com>
Date: Fri, 1 Nov 2019 10:28:10 +0100
Subject: [PATCH] toggle to show/hide unofficial projects/processors

---
 webapp/dist/build.js             | 14 +++++++-------
 webapp/src/App.vue               |  1 +
 webapp/src/OcrdProcessorList.vue |  9 +++++++++
 webapp/src/OcrdProjectList.vue   | 13 ++++++++++++-
 4 files changed, 29 insertions(+), 8 deletions(-)

diff --git a/webapp/dist/build.js b/webapp/dist/build.js
index a0c96a4..6ab8cd2 100644
--- a/webapp/dist/build.js
+++ b/webapp/dist/build.js
@@ -721,14 +721,14 @@ eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__,
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__OcrdProcessorList_vue__ = __webpack_require__(232);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__OcrdProjectList_vue__ = __webpack_require__(235);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__OcrdProcessorListItem_vue__ = __webpack_require__(96);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__OcrdProjectListItem_vue__ = __webpack_require__(99);\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n  components: {\n    OcrdProcessorList: __WEBPACK_IMPORTED_MODULE_0__OcrdProcessorList_vue__[\"a\" /* default */],\n    OcrdProjectList: __WEBPACK_IMPORTED_MODULE_1__OcrdProjectList_vue__[\"a\" /* default */],\n    OcrdProcessorListItem: __WEBPACK_IMPORTED_MODULE_2__OcrdProcessorListItem_vue__[\"a\" /* default */],\n    OcrdProjectListItem: __WEBPACK_IMPORTED_MODULE_3__OcrdProjectListItem_vue__[\"a\" /* default */]\n  },\n  data: function data() {\n    return {};\n  },\n\n  computed: {\n    projects: function projects() {\n      return this.$root.projects;\n    },\n    processors: function processors() {\n      return this.projects.reduce(function (all, project) {\n        var tool_idx = 0;\n        if (project.ocrd_tool) all.push.apply(all, _toConsumableArray(Object.values(project.ocrd_tool.tools).map(function (tool) {\n          tool.idx = tool_idx++;\n          tool.part_of = project.org_plus_name;\n          return tool;\n        })));\n        return all;\n      }, []);\n    }\n  },\n  mounted: function mounted() {\n    this.$root.fetchprojectData();\n  },\n\n  methods: {}\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0FwcC52dWU/ZWE5OSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4RkFEQTtBQUVBLDBGQUZBO0FBR0Esc0dBSEE7QUFJQTtBQUpBLEdBREE7QUFPQSxNQVBBLGtCQU9BO0FBQ0E7QUFFQSxHQVZBOztBQVdBO0FBQ0EsWUFEQSxzQkFDQTtBQUNBO0FBQ0EsS0FIQTtBQUlBLGNBSkEsd0JBSUE7QUFDQTtBQUNBO0FBQ0EsK0JBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUpBO0FBS0E7QUFDQSxPQVRBLEVBU0EsRUFUQTtBQVVBO0FBZkEsR0FYQTtBQTRCQSxTQTVCQSxxQkE0QkE7QUFDQTtBQUNBLEdBOUJBOztBQStCQTtBQS9CQSIsImZpbGUiOiI5NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cbiAgPGItY29udGFpbmVyIGZsdWlkPlxuICAgIDxiLXJvdz5cbiAgICAgIDxidXR0b24gQGNsaWNrPVwiJHJvb3QuZmV0Y2hwcm9qZWN0RGF0YVwiPkZldGNoITwvYnV0dG9uPlxuICAgIDwvYi1yb3c+XG4gICAgPGItdGFicz5cbiAgICAgIDxiLXRhYiB0aXRsZT1cIlByb2Nlc3NvcnNcIj5cbiAgICAgICAgPG9jcmQtcHJvY2Vzc29yLWxpc3RcbiAgICAgICAgICA6cHJvY2Vzc29ycz1cInByb2Nlc3NvcnNcIlxuICAgICAgICAgID48L29jcmQtcHJvY2Vzc29yLWxpc3Q+XG4gICAgICA8L2ItdGFiPlxuICAgICAgPGItdGFiIGFjdGl2ZSB0aXRsZT1cIlByb2plY3RzXCI+XG4gICAgICAgIDxvY3JkLXByb2plY3QtbGlzdFxuICAgICAgICAgIDpwcm9qZWN0cz1cInByb2plY3RzXCJcbiAgICAgICAgICA+PC9vY3JkLXByb2plY3QtbGlzdD5cbiAgICAgIDwvYi10YWI+XG4gICAgPC9iLXRhYnM+XG4gICAgPCEtLSA8Yi1tb2RhbCBpZD1cInByb2Nlc3Nvci1tb2RhbFwiPlxuICAgIDwvYi1tb2RhbD4gLS0+XG4gIDwvYi1jb250YWluZXI+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IE9jcmRQcm9jZXNzb3JMaXN0IGZyb20gJy4vT2NyZFByb2Nlc3Nvckxpc3QudnVlJ1xuaW1wb3J0IE9jcmRQcm9qZWN0TGlzdCBmcm9tICcuL09jcmRQcm9qZWN0TGlzdC52dWUnXG5pbXBvcnQgT2NyZFByb2Nlc3Nvckxpc3RJdGVtIGZyb20gJy4vT2NyZFByb2Nlc3Nvckxpc3RJdGVtLnZ1ZSdcbmltcG9ydCBPY3JkUHJvamVjdExpc3RJdGVtIGZyb20gJy4vT2NyZFByb2plY3RMaXN0SXRlbS52dWUnXG5leHBvcnQgZGVmYXVsdCB7XG4gIGNvbXBvbmVudHM6IHtcbiAgICBPY3JkUHJvY2Vzc29yTGlzdCxcbiAgICBPY3JkUHJvamVjdExpc3QsXG4gICAgT2NyZFByb2Nlc3Nvckxpc3RJdGVtLFxuICAgIE9jcmRQcm9qZWN0TGlzdEl0ZW1cbiAgfSxcbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgIH1cbiAgfSxcbiAgY29tcHV0ZWQ6IHtcbiAgICBwcm9qZWN0cygpIHtcbiAgICAgIHJldHVybiB0aGlzLiRyb290LnByb2plY3RzXG4gICAgfSxcbiAgICBwcm9jZXNzb3JzKCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvamVjdHMucmVkdWNlKChhbGwsIHByb2plY3QpID0+IHtcbiAgICAgICAgbGV0IHRvb2xfaWR4ID0gMFxuICAgICAgICBpZiAocHJvamVjdC5vY3JkX3Rvb2wpXG4gICAgICAgICAgYWxsLnB1c2goLi4uT2JqZWN0LnZhbHVlcyhwcm9qZWN0Lm9jcmRfdG9vbC50b29scykubWFwKHRvb2wgPT4ge1xuICAgICAgICAgICAgdG9vbC5pZHggPSB0b29sX2lkeCsrXG4gICAgICAgICAgICB0b29sLnBhcnRfb2YgPSBwcm9qZWN0Lm9yZ19wbHVzX25hbWVcbiAgICAgICAgICAgIHJldHVybiB0b29sXG4gICAgICAgICAgfSkpXG4gICAgICAgIHJldHVybiBhbGxcbiAgICAgIH0sIFtdKVxuICAgIH0sXG4gIH0sXG4gIG1vdW50ZWQoKSB7XG4gICAgICB0aGlzLiRyb290LmZldGNocHJvamVjdERhdGEoKVxuICB9LFxuICBtZXRob2RzOiB7fVxufVxuPC9zY3JpcHQ+XG5cbjxzdHlsZT5cbjwvc3R5bGU+XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc3JjL0FwcC52dWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///94\n");
+eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__OcrdProcessorList_vue__ = __webpack_require__(232);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__OcrdProjectList_vue__ = __webpack_require__(235);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__OcrdProcessorListItem_vue__ = __webpack_require__(96);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__OcrdProjectListItem_vue__ = __webpack_require__(99);\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n  components: {\n    OcrdProcessorList: __WEBPACK_IMPORTED_MODULE_0__OcrdProcessorList_vue__[\"a\" /* default */],\n    OcrdProjectList: __WEBPACK_IMPORTED_MODULE_1__OcrdProjectList_vue__[\"a\" /* default */],\n    OcrdProcessorListItem: __WEBPACK_IMPORTED_MODULE_2__OcrdProcessorListItem_vue__[\"a\" /* default */],\n    OcrdProjectListItem: __WEBPACK_IMPORTED_MODULE_3__OcrdProjectListItem_vue__[\"a\" /* default */]\n  },\n  data: function data() {\n    return {};\n  },\n\n  computed: {\n    projects: function projects() {\n      return this.$root.projects;\n    },\n    processors: function processors() {\n      return this.projects.reduce(function (all, project) {\n        var tool_idx = 0;\n        if (project.ocrd_tool) all.push.apply(all, _toConsumableArray(Object.values(project.ocrd_tool.tools).map(function (tool) {\n          tool.idx = tool_idx++;\n          tool.part_of = project.org_plus_name;\n          tool.official = project.official;\n          return tool;\n        })));\n        return all;\n      }, []);\n    }\n  },\n  mounted: function mounted() {\n    this.$root.fetchprojectData();\n  },\n\n  methods: {}\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0FwcC52dWU/ZWE5OSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4RkFEQTtBQUVBLDBGQUZBO0FBR0Esc0dBSEE7QUFJQTtBQUpBLEdBREE7QUFPQSxNQVBBLGtCQU9BO0FBQ0E7QUFFQSxHQVZBOztBQVdBO0FBQ0EsWUFEQSxzQkFDQTtBQUNBO0FBQ0EsS0FIQTtBQUlBLGNBSkEsd0JBSUE7QUFDQTtBQUNBO0FBQ0EsK0JBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBTEE7QUFNQTtBQUNBLE9BVkEsRUFVQSxFQVZBO0FBV0E7QUFoQkEsR0FYQTtBQTZCQSxTQTdCQSxxQkE2QkE7QUFDQTtBQUNBLEdBL0JBOztBQWdDQTtBQWhDQSIsImZpbGUiOiI5NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cbiAgPGItY29udGFpbmVyIGZsdWlkPlxuICAgIDxiLXJvdz5cbiAgICAgIDxidXR0b24gQGNsaWNrPVwiJHJvb3QuZmV0Y2hwcm9qZWN0RGF0YVwiPkZldGNoITwvYnV0dG9uPlxuICAgIDwvYi1yb3c+XG4gICAgPGItdGFicz5cbiAgICAgIDxiLXRhYiB0aXRsZT1cIlByb2Nlc3NvcnNcIj5cbiAgICAgICAgPG9jcmQtcHJvY2Vzc29yLWxpc3RcbiAgICAgICAgICA6cHJvY2Vzc29ycz1cInByb2Nlc3NvcnNcIlxuICAgICAgICAgID48L29jcmQtcHJvY2Vzc29yLWxpc3Q+XG4gICAgICA8L2ItdGFiPlxuICAgICAgPGItdGFiIGFjdGl2ZSB0aXRsZT1cIlByb2plY3RzXCI+XG4gICAgICAgIDxvY3JkLXByb2plY3QtbGlzdFxuICAgICAgICAgIDpwcm9qZWN0cz1cInByb2plY3RzXCJcbiAgICAgICAgICA+PC9vY3JkLXByb2plY3QtbGlzdD5cbiAgICAgIDwvYi10YWI+XG4gICAgPC9iLXRhYnM+XG4gICAgPCEtLSA8Yi1tb2RhbCBpZD1cInByb2Nlc3Nvci1tb2RhbFwiPlxuICAgIDwvYi1tb2RhbD4gLS0+XG4gIDwvYi1jb250YWluZXI+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IE9jcmRQcm9jZXNzb3JMaXN0IGZyb20gJy4vT2NyZFByb2Nlc3Nvckxpc3QudnVlJ1xuaW1wb3J0IE9jcmRQcm9qZWN0TGlzdCBmcm9tICcuL09jcmRQcm9qZWN0TGlzdC52dWUnXG5pbXBvcnQgT2NyZFByb2Nlc3Nvckxpc3RJdGVtIGZyb20gJy4vT2NyZFByb2Nlc3Nvckxpc3RJdGVtLnZ1ZSdcbmltcG9ydCBPY3JkUHJvamVjdExpc3RJdGVtIGZyb20gJy4vT2NyZFByb2plY3RMaXN0SXRlbS52dWUnXG5leHBvcnQgZGVmYXVsdCB7XG4gIGNvbXBvbmVudHM6IHtcbiAgICBPY3JkUHJvY2Vzc29yTGlzdCxcbiAgICBPY3JkUHJvamVjdExpc3QsXG4gICAgT2NyZFByb2Nlc3Nvckxpc3RJdGVtLFxuICAgIE9jcmRQcm9qZWN0TGlzdEl0ZW1cbiAgfSxcbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgIH1cbiAgfSxcbiAgY29tcHV0ZWQ6IHtcbiAgICBwcm9qZWN0cygpIHtcbiAgICAgIHJldHVybiB0aGlzLiRyb290LnByb2plY3RzXG4gICAgfSxcbiAgICBwcm9jZXNzb3JzKCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvamVjdHMucmVkdWNlKChhbGwsIHByb2plY3QpID0+IHtcbiAgICAgICAgbGV0IHRvb2xfaWR4ID0gMFxuICAgICAgICBpZiAocHJvamVjdC5vY3JkX3Rvb2wpXG4gICAgICAgICAgYWxsLnB1c2goLi4uT2JqZWN0LnZhbHVlcyhwcm9qZWN0Lm9jcmRfdG9vbC50b29scykubWFwKHRvb2wgPT4ge1xuICAgICAgICAgICAgdG9vbC5pZHggPSB0b29sX2lkeCsrXG4gICAgICAgICAgICB0b29sLnBhcnRfb2YgPSBwcm9qZWN0Lm9yZ19wbHVzX25hbWVcbiAgICAgICAgICAgIHRvb2wub2ZmaWNpYWwgPSBwcm9qZWN0Lm9mZmljaWFsXG4gICAgICAgICAgICByZXR1cm4gdG9vbFxuICAgICAgICAgIH0pKVxuICAgICAgICByZXR1cm4gYWxsXG4gICAgICB9LCBbXSlcbiAgICB9LFxuICB9LFxuICBtb3VudGVkKCkge1xuICAgICAgdGhpcy4kcm9vdC5mZXRjaHByb2plY3REYXRhKClcbiAgfSxcbiAgbWV0aG9kczoge31cbn1cbjwvc2NyaXB0PlxuXG48c3R5bGU+XG48L3N0eWxlPlxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHNyYy9BcHAudnVlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///94\n");
 
 /***/ }),
 /* 95 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__OcrdProcessorListItem_vue__ = __webpack_require__(96);\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n  components: {\n    OcrdProcessorListItem: __WEBPACK_IMPORTED_MODULE_0__OcrdProcessorListItem_vue__[\"a\" /* default */]\n  },\n  data: function data() {\n    return _defineProperty({\n      step_filter: [],\n      category_filter: { require: true }\n    }, 'category_filter', []);\n  },\n\n  props: {\n    processors: { required: true }\n  },\n  computed: {\n    filtered_processors: function filtered_processors() {\n      var _this = this;\n\n      return this.processors.filter(function (tool) {\n        var _iteratorNormalCompletion = true;\n        var _didIteratorError = false;\n        var _iteratorError = undefined;\n\n        try {\n          for (var _iterator = _this.step_filter[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n            var step_filter = _step.value;\n\n            if (tool.steps.indexOf(step_filter) == -1) return false;\n          }\n        } catch (err) {\n          _didIteratorError = true;\n          _iteratorError = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion && _iterator.return) {\n              _iterator.return();\n            }\n          } finally {\n            if (_didIteratorError) {\n              throw _iteratorError;\n            }\n          }\n        }\n\n        var _iteratorNormalCompletion2 = true;\n        var _didIteratorError2 = false;\n        var _iteratorError2 = undefined;\n\n        try {\n          for (var _iterator2 = _this.category_filter[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n            var category_filter = _step2.value;\n\n            if (tool.categories.indexOf(category_filter) == -1) return false;\n          }\n        } catch (err) {\n          _didIteratorError2 = true;\n          _iteratorError2 = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion2 && _iterator2.return) {\n              _iterator2.return();\n            }\n          } finally {\n            if (_didIteratorError2) {\n              throw _iteratorError2;\n            }\n          }\n        }\n\n        return true;\n      });\n    },\n    steps: function steps() {\n      return this.processors.reduce(function (all, processor) {\n        all.push.apply(all, _toConsumableArray(processor.steps.filter(function (step) {\n          return all.indexOf(step) == -1;\n        })));\n        return all;\n      }, []);\n    },\n    categories: function categories() {\n      return this.processors.reduce(function (all, processor) {\n        all.push.apply(all, _toConsumableArray(processor.categories.filter(function (category) {\n          return all.indexOf(category) == -1;\n        })));\n        return all;\n      }, []);\n    }\n  },\n  methods: {\n    toggleStepFilter: function toggleStepFilter(v) {\n      if (v in this.step_filter) {\n        this.step_filter = this.step_filter.splice(this.step_filter.indexOf(v), 1);\n      } else {\n        this.step_filter.push(v);\n      }\n    }\n  }\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL09jcmRQcm9jZXNzb3JMaXN0LnZ1ZT83NDIzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMENBO0FBQ0E7QUFDQTtBQUNBO0FBREEsR0FEQTtBQUlBLE1BSkEsa0JBSUE7QUFDQTtBQUNBLHFCQURBO0FBRUE7QUFGQSwwQkFHQSxFQUhBO0FBS0EsR0FWQTs7QUFXQTtBQUNBO0FBREEsR0FYQTtBQWNBO0FBQ0EsdUJBREEsaUNBQ0E7QUFBQTs7QUFDQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUNBO0FBQUE7O0FBQ0EsdURBQ0E7QUFDQTtBQUpBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBS0E7QUFBQTs7QUFDQSxnRUFDQTtBQUNBO0FBUkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFTQTtBQUNBLE9BVkE7QUFXQSxLQWJBO0FBY0EsU0FkQSxtQkFjQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQSxPQUhBLEVBR0EsRUFIQTtBQUlBLEtBbkJBO0FBb0JBLGNBcEJBLHdCQW9CQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQSxPQUhBLEVBR0EsRUFIQTtBQUlBO0FBekJBLEdBZEE7QUF5Q0E7QUFDQSxvQkFEQSw0QkFDQSxDQURBLEVBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FGQSxNQUVBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUF6Q0EiLCJmaWxlIjoiOTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XG4gIDxkaXY+XG4gICAgPGItcm93PlxuICAgICAgPGItYnV0dG9uIHYtYi10b2dnbGUucHJvY2Vzc29yLWNvbnRyb2xzIGNsYXNzPVwibS0xXCI+VG9nZ2xlIENvbnRyb2xzPC9iLWJ1dHRvbj5cbiAgICAgIDxiLWNvbGxhcHNlIGlkPVwicHJvY2Vzc29yLWNvbnRyb2xzXCI+XG4gICAgICAgIDxiLWNvbnRhaW5lcj5cbiAgICAgICAgICA8Yi1yb3c+XG4gICAgICAgICAgICBGaWx0ZXIgYnkgY2F0ZWdvcnk6XG4gICAgICAgICAgICA8Yi1iYWRnZVxuICAgICAgICAgICAgICB2LWZvcj1cImNhdGVnb3J5IGluIGNhdGVnb3JpZXNcIlxuICAgICAgICAgICAgICA6a2V5PVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICA6dmFyaWFudD1cImNhdGVnb3J5X2ZpbHRlci5pbmRleE9mKGNhdGVnb3J5KSAhPSAtMSA/ICdwcmltYXJ5JyA6ICdzZWNvbmRhcnknXCJcbiAgICAgICAgICAgICAgQGNsaWNrPVwiY2F0ZWdvcnlfZmlsdGVyLmluZGV4T2YoY2F0ZWdvcnkpICE9IC0xID8gY2F0ZWdvcnlfZmlsdGVyLnNwbGljZShjYXRlZ29yeV9maWx0ZXIuaW5kZXhPZihjYXRlZ29yeSksIDEpIDogY2F0ZWdvcnlfZmlsdGVyLnB1c2goY2F0ZWdvcnkpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBjYXRlZ29yeSB9fVxuICAgICAgICAgICAgPC9iLWJhZGdlPlxuICAgICAgICAgIDwvYi1yb3c+XG4gICAgICAgICAgPGItcm93PlxuICAgICAgICAgICAgRmlsdGVyIGJ5IHN0ZXA6XG4gICAgICAgICAgICA8Yi1iYWRnZVxuICAgICAgICAgICAgICB2LWZvcj1cInN0ZXAgaW4gc3RlcHNcIlxuICAgICAgICAgICAgICA6a2V5PVwic3RlcFwiXG4gICAgICAgICAgICAgIDp2YXJpYW50PVwic3RlcF9maWx0ZXIuaW5kZXhPZihzdGVwKSAhPSAtMSA/ICdwcmltYXJ5JyA6ICdzZWNvbmRhcnknXCJcbiAgICAgICAgICAgICAgQGNsaWNrPVwic3RlcF9maWx0ZXIuaW5kZXhPZihzdGVwKSAhPSAtMSA/IHN0ZXBfZmlsdGVyLnNwbGljZShzdGVwX2ZpbHRlci5pbmRleE9mKHN0ZXApLCAxKSA6IHN0ZXBfZmlsdGVyLnB1c2goc3RlcClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IHN0ZXAgfX1cbiAgICAgICAgICAgIDwvYi1iYWRnZT5cbiAgICAgICAgICA8L2Itcm93PlxuICAgICAgICA8L2ItY29udGFpbmVyPlxuICAgICAgPC9iLWNvbGxhcHNlPlxuICAgIDwvYi1yb3c+XG4gICAgPGItcm93PlxuICAgICAgICA8b2NyZC1wcm9jZXNzb3ItbGlzdC1pdGVtXG4gICAgICAgICAgdi1mb3I9XCJwcm9jZXNzb3IgaW4gZmlsdGVyZWRfcHJvY2Vzc29yc1wiXG4gICAgICAgICAgOmtleT1cInByb2Nlc3Nvci5leGVjdXRhYmxlXCJcbiAgICAgICAgICA6cHJvY2Vzc29yPVwicHJvY2Vzc29yXCJcbiAgICAgICAgPjwvb2NyZC1wcm9jZXNzb3ItbGlzdC1pdGVtPlxuICAgIDwvYi1yb3c+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCBPY3JkUHJvY2Vzc29yTGlzdEl0ZW0gZnJvbSAnLi9PY3JkUHJvY2Vzc29yTGlzdEl0ZW0udnVlJ1xuZXhwb3J0IGRlZmF1bHQge1xuICBjb21wb25lbnRzOiB7XG4gICAgT2NyZFByb2Nlc3Nvckxpc3RJdGVtXG4gIH0sXG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0ZXBfZmlsdGVyOiBbXSxcbiAgICAgIGNhdGVnb3J5X2ZpbHRlcjoge3JlcXVpcmU6IHRydWV9LFxuICAgICAgY2F0ZWdvcnlfZmlsdGVyOiBbXSxcbiAgICB9XG4gIH0sXG4gIHByb3BzOiB7XG4gICAgcHJvY2Vzc29yczoge3JlcXVpcmVkOiB0cnVlfSxcbiAgfSxcbiAgY29tcHV0ZWQ6IHtcbiAgICBmaWx0ZXJlZF9wcm9jZXNzb3JzKCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc29ycy5maWx0ZXIodG9vbCA9PiB7XG4gICAgICAgIGZvciAobGV0IHN0ZXBfZmlsdGVyIG9mIHRoaXMuc3RlcF9maWx0ZXIpIHtcbiAgICAgICAgICBpZiAodG9vbC5zdGVwcy5pbmRleE9mKHN0ZXBfZmlsdGVyKSA9PSAtMSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGNhdGVnb3J5X2ZpbHRlciBvZiB0aGlzLmNhdGVnb3J5X2ZpbHRlcikge1xuICAgICAgICAgIGlmICh0b29sLmNhdGVnb3JpZXMuaW5kZXhPZihjYXRlZ29yeV9maWx0ZXIpID09IC0xKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH0pXG4gICAgfSxcbiAgICBzdGVwcygpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NvcnMucmVkdWNlKChhbGwsIHByb2Nlc3NvcikgPT4ge1xuICAgICAgICBhbGwucHVzaCguLi5wcm9jZXNzb3Iuc3RlcHMuZmlsdGVyKHN0ZXAgPT4gYWxsLmluZGV4T2Yoc3RlcCkgPT0gLTEpKVxuICAgICAgICByZXR1cm4gYWxsXG4gICAgICB9LCBbXSlcbiAgICB9LFxuICAgIGNhdGVnb3JpZXMoKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9jZXNzb3JzLnJlZHVjZSgoYWxsLCBwcm9jZXNzb3IpID0+IHtcbiAgICAgICAgYWxsLnB1c2goLi4ucHJvY2Vzc29yLmNhdGVnb3JpZXMuZmlsdGVyKGNhdGVnb3J5ID0+IGFsbC5pbmRleE9mKGNhdGVnb3J5KSA9PSAtMSkpXG4gICAgICAgIHJldHVybiBhbGxcbiAgICAgIH0sIFtdKVxuICAgIH0sXG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICB0b2dnbGVTdGVwRmlsdGVyKHYpIHtcbiAgICAgIGlmICh2IGluIHRoaXMuc3RlcF9maWx0ZXIpIHtcbiAgICAgICAgdGhpcy5zdGVwX2ZpbHRlciA9IHRoaXMuc3RlcF9maWx0ZXIuc3BsaWNlKHRoaXMuc3RlcF9maWx0ZXIuaW5kZXhPZih2KSwgMSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RlcF9maWx0ZXIucHVzaCh2KVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuPC9zY3JpcHQ+XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc3JjL09jcmRQcm9jZXNzb3JMaXN0LnZ1ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///95\n");
+eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__OcrdProcessorListItem_vue__ = __webpack_require__(96);\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n  components: {\n    OcrdProcessorListItem: __WEBPACK_IMPORTED_MODULE_0__OcrdProcessorListItem_vue__[\"a\" /* default */]\n  },\n  data: function data() {\n    return _defineProperty({\n      step_filter: [],\n      show_unofficial: true,\n      category_filter: { require: true }\n    }, 'category_filter', []);\n  },\n\n  props: {\n    processors: { required: true }\n  },\n  computed: {\n    filtered_processors: function filtered_processors() {\n      var _this = this;\n\n      return this.processors.filter(function (tool) {\n        var _iteratorNormalCompletion = true;\n        var _didIteratorError = false;\n        var _iteratorError = undefined;\n\n        try {\n          for (var _iterator = _this.step_filter[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n            var step_filter = _step.value;\n\n            if (tool.steps.indexOf(step_filter) == -1) return false;\n          }\n        } catch (err) {\n          _didIteratorError = true;\n          _iteratorError = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion && _iterator.return) {\n              _iterator.return();\n            }\n          } finally {\n            if (_didIteratorError) {\n              throw _iteratorError;\n            }\n          }\n        }\n\n        var _iteratorNormalCompletion2 = true;\n        var _didIteratorError2 = false;\n        var _iteratorError2 = undefined;\n\n        try {\n          for (var _iterator2 = _this.category_filter[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n            var category_filter = _step2.value;\n\n            if (tool.categories.indexOf(category_filter) == -1) return false;\n          }\n        } catch (err) {\n          _didIteratorError2 = true;\n          _iteratorError2 = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion2 && _iterator2.return) {\n              _iterator2.return();\n            }\n          } finally {\n            if (_didIteratorError2) {\n              throw _iteratorError2;\n            }\n          }\n        }\n\n        if (!(_this.show_unofficial || tool.official)) {\n          return false;\n        }\n        return true;\n      });\n    },\n    steps: function steps() {\n      return this.processors.reduce(function (all, processor) {\n        all.push.apply(all, _toConsumableArray(processor.steps.filter(function (step) {\n          return all.indexOf(step) == -1;\n        })));\n        return all;\n      }, []);\n    },\n    categories: function categories() {\n      return this.processors.reduce(function (all, processor) {\n        all.push.apply(all, _toConsumableArray(processor.categories.filter(function (category) {\n          return all.indexOf(category) == -1;\n        })));\n        return all;\n      }, []);\n    }\n  },\n  methods: {\n    toggleStepFilter: function toggleStepFilter(v) {\n      if (v in this.step_filter) {\n        this.step_filter = this.step_filter.splice(this.step_filter.indexOf(v), 1);\n      } else {\n        this.step_filter.push(v);\n      }\n    }\n  }\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL09jcmRQcm9jZXNzb3JMaXN0LnZ1ZT83NDIzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUErQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQSxHQURBO0FBSUEsTUFKQSxrQkFJQTtBQUNBO0FBQ0EscUJBREE7QUFFQSwyQkFGQTtBQUdBO0FBSEEsMEJBSUEsRUFKQTtBQU1BLEdBWEE7O0FBWUE7QUFDQTtBQURBLEdBWkE7QUFlQTtBQUNBLHVCQURBLGlDQUNBO0FBQUE7O0FBQ0E7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFDQTtBQUFBOztBQUNBLHVEQUNBO0FBQ0E7QUFKQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUtBO0FBQUE7O0FBQ0EsZ0VBQ0E7QUFDQTtBQVJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQWJBO0FBY0EsS0FoQkE7QUFpQkEsU0FqQkEsbUJBaUJBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBLE9BSEEsRUFHQSxFQUhBO0FBSUEsS0F0QkE7QUF1QkEsY0F2QkEsd0JBdUJBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBLE9BSEEsRUFHQSxFQUhBO0FBSUE7QUE1QkEsR0FmQTtBQTZDQTtBQUNBLG9CQURBLDRCQUNBLENBREEsRUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUZBLE1BRUE7QUFDQTtBQUNBO0FBQ0E7QUFQQTtBQTdDQSIsImZpbGUiOiI5NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cbiAgPGRpdj5cbiAgICA8Yi1yb3c+XG4gICAgICA8Yi1idXR0b24gdi1iLXRvZ2dsZS5wcm9jZXNzb3ItY29udHJvbHMgY2xhc3M9XCJtLTFcIj5Ub2dnbGUgQ29udHJvbHM8L2ItYnV0dG9uPlxuICAgICAgPGItY29sbGFwc2UgaWQ9XCJwcm9jZXNzb3ItY29udHJvbHNcIj5cbiAgICAgICAgPGItY29udGFpbmVyPlxuICAgICAgICAgIDxiLXJvdz5cbiAgICAgICAgICAgIDxiLWZvcm0tY2hlY2tib3ggdi1tb2RlbD1cInNob3dfdW5vZmZpY2lhbFwiIG5hbWU9XCJjaGVjay1idXR0b25cIiBzd2l0Y2g+XG4gICAgICAgICAgICBVbm9mZmljaWFsIHByb2Nlc3NvcnMgPGI+KHt7IGNoZWNrZWQgPyBcIlNob3dcIiA6IFwiaGlkZVwiIH19KTwvYj5cbiAgICAgICAgICAgIDwvYi1mb3JtLWNoZWNrYm94PlxuICAgICAgICAgIDwvYi1yb3c+XG4gICAgICAgICAgPGItcm93PlxuICAgICAgICAgICAgRmlsdGVyIGJ5IGNhdGVnb3J5OlxuICAgICAgICAgICAgPGItYmFkZ2VcbiAgICAgICAgICAgICAgdi1mb3I9XCJjYXRlZ29yeSBpbiBjYXRlZ29yaWVzXCJcbiAgICAgICAgICAgICAgOmtleT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgOnZhcmlhbnQ9XCJjYXRlZ29yeV9maWx0ZXIuaW5kZXhPZihjYXRlZ29yeSkgIT0gLTEgPyAncHJpbWFyeScgOiAnc2Vjb25kYXJ5J1wiXG4gICAgICAgICAgICAgIEBjbGljaz1cImNhdGVnb3J5X2ZpbHRlci5pbmRleE9mKGNhdGVnb3J5KSAhPSAtMSA/IGNhdGVnb3J5X2ZpbHRlci5zcGxpY2UoY2F0ZWdvcnlfZmlsdGVyLmluZGV4T2YoY2F0ZWdvcnkpLCAxKSA6IGNhdGVnb3J5X2ZpbHRlci5wdXNoKGNhdGVnb3J5KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgY2F0ZWdvcnkgfX1cbiAgICAgICAgICAgIDwvYi1iYWRnZT5cbiAgICAgICAgICA8L2Itcm93PlxuICAgICAgICAgIDxiLXJvdz5cbiAgICAgICAgICAgIEZpbHRlciBieSBzdGVwOlxuICAgICAgICAgICAgPGItYmFkZ2VcbiAgICAgICAgICAgICAgdi1mb3I9XCJzdGVwIGluIHN0ZXBzXCJcbiAgICAgICAgICAgICAgOmtleT1cInN0ZXBcIlxuICAgICAgICAgICAgICA6dmFyaWFudD1cInN0ZXBfZmlsdGVyLmluZGV4T2Yoc3RlcCkgIT0gLTEgPyAncHJpbWFyeScgOiAnc2Vjb25kYXJ5J1wiXG4gICAgICAgICAgICAgIEBjbGljaz1cInN0ZXBfZmlsdGVyLmluZGV4T2Yoc3RlcCkgIT0gLTEgPyBzdGVwX2ZpbHRlci5zcGxpY2Uoc3RlcF9maWx0ZXIuaW5kZXhPZihzdGVwKSwgMSkgOiBzdGVwX2ZpbHRlci5wdXNoKHN0ZXApXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBzdGVwIH19XG4gICAgICAgICAgICA8L2ItYmFkZ2U+XG4gICAgICAgICAgPC9iLXJvdz5cbiAgICAgICAgPC9iLWNvbnRhaW5lcj5cbiAgICAgIDwvYi1jb2xsYXBzZT5cbiAgICA8L2Itcm93PlxuICAgIDxiLXJvdz5cbiAgICAgICAgPG9jcmQtcHJvY2Vzc29yLWxpc3QtaXRlbVxuICAgICAgICAgIHYtZm9yPVwicHJvY2Vzc29yIGluIGZpbHRlcmVkX3Byb2Nlc3NvcnNcIlxuICAgICAgICAgIDprZXk9XCJwcm9jZXNzb3IuZXhlY3V0YWJsZVwiXG4gICAgICAgICAgOnByb2Nlc3Nvcj1cInByb2Nlc3NvclwiXG4gICAgICAgID48L29jcmQtcHJvY2Vzc29yLWxpc3QtaXRlbT5cbiAgICA8L2Itcm93PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgT2NyZFByb2Nlc3Nvckxpc3RJdGVtIGZyb20gJy4vT2NyZFByb2Nlc3Nvckxpc3RJdGVtLnZ1ZSdcbmV4cG9ydCBkZWZhdWx0IHtcbiAgY29tcG9uZW50czoge1xuICAgIE9jcmRQcm9jZXNzb3JMaXN0SXRlbVxuICB9LFxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBzdGVwX2ZpbHRlcjogW10sXG4gICAgICBzaG93X3Vub2ZmaWNpYWw6IHRydWUsXG4gICAgICBjYXRlZ29yeV9maWx0ZXI6IHtyZXF1aXJlOiB0cnVlfSxcbiAgICAgIGNhdGVnb3J5X2ZpbHRlcjogW10sXG4gICAgfVxuICB9LFxuICBwcm9wczoge1xuICAgIHByb2Nlc3NvcnM6IHtyZXF1aXJlZDogdHJ1ZX0sXG4gIH0sXG4gIGNvbXB1dGVkOiB7XG4gICAgZmlsdGVyZWRfcHJvY2Vzc29ycygpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NvcnMuZmlsdGVyKHRvb2wgPT4ge1xuICAgICAgICBmb3IgKGxldCBzdGVwX2ZpbHRlciBvZiB0aGlzLnN0ZXBfZmlsdGVyKSB7XG4gICAgICAgICAgaWYgKHRvb2wuc3RlcHMuaW5kZXhPZihzdGVwX2ZpbHRlcikgPT0gLTEpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBjYXRlZ29yeV9maWx0ZXIgb2YgdGhpcy5jYXRlZ29yeV9maWx0ZXIpIHtcbiAgICAgICAgICBpZiAodG9vbC5jYXRlZ29yaWVzLmluZGV4T2YoY2F0ZWdvcnlfZmlsdGVyKSA9PSAtMSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGlmICghKHRoaXMuc2hvd191bm9mZmljaWFsIHx8IHRvb2wub2ZmaWNpYWwpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH0pXG4gICAgfSxcbiAgICBzdGVwcygpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NvcnMucmVkdWNlKChhbGwsIHByb2Nlc3NvcikgPT4ge1xuICAgICAgICBhbGwucHVzaCguLi5wcm9jZXNzb3Iuc3RlcHMuZmlsdGVyKHN0ZXAgPT4gYWxsLmluZGV4T2Yoc3RlcCkgPT0gLTEpKVxuICAgICAgICByZXR1cm4gYWxsXG4gICAgICB9LCBbXSlcbiAgICB9LFxuICAgIGNhdGVnb3JpZXMoKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9jZXNzb3JzLnJlZHVjZSgoYWxsLCBwcm9jZXNzb3IpID0+IHtcbiAgICAgICAgYWxsLnB1c2goLi4ucHJvY2Vzc29yLmNhdGVnb3JpZXMuZmlsdGVyKGNhdGVnb3J5ID0+IGFsbC5pbmRleE9mKGNhdGVnb3J5KSA9PSAtMSkpXG4gICAgICAgIHJldHVybiBhbGxcbiAgICAgIH0sIFtdKVxuICAgIH0sXG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICB0b2dnbGVTdGVwRmlsdGVyKHYpIHtcbiAgICAgIGlmICh2IGluIHRoaXMuc3RlcF9maWx0ZXIpIHtcbiAgICAgICAgdGhpcy5zdGVwX2ZpbHRlciA9IHRoaXMuc3RlcF9maWx0ZXIuc3BsaWNlKHRoaXMuc3RlcF9maWx0ZXIuaW5kZXhPZih2KSwgMSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RlcF9maWx0ZXIucHVzaCh2KVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuPC9zY3JpcHQ+XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc3JjL09jcmRQcm9jZXNzb3JMaXN0LnZ1ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///95\n");
 
 /***/ }),
 /* 96 */
@@ -749,7 +749,7 @@ eval("//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__OcrdProjectListItem_vue__ = __webpack_require__(99);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n  data: function data() {\n    return {\n      name_filter: '',\n      tabIndex: 0\n    };\n  },\n\n  computed: {\n    filtered_projects: function filtered_projects() {\n      var _this = this;\n\n      return this.projects.filter(function (project) {\n        return project.name.toLowerCase().includes(_this.name_filter.toLowerCase());\n      });\n    }\n  },\n  components: {\n    OcrdProjectListItem: __WEBPACK_IMPORTED_MODULE_0__OcrdProjectListItem_vue__[\"a\" /* default */]\n  },\n  props: {\n    projects: { required: true }\n  },\n  methods: {\n    switchTab: function switchTab(delta) {\n      this.tabIndex += delta;\n    }\n  }\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL09jcmRQcm9qZWN0TGlzdC52dWU/ZDRmNCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMENBO0FBQ0E7QUFDQSxNQURBLGtCQUNBO0FBQ0E7QUFDQSxxQkFEQTtBQUVBO0FBRkE7QUFJQSxHQU5BOztBQU9BO0FBQ0EscUJBREEsK0JBQ0E7QUFBQTs7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUhBLEdBUEE7QUFZQTtBQUNBO0FBREEsR0FaQTtBQWVBO0FBQ0E7QUFEQSxHQWZBO0FBa0JBO0FBQ0EsYUFEQSxxQkFDQSxLQURBLEVBQ0E7QUFDQTtBQUNBO0FBSEE7QUFsQkEiLCJmaWxlIjoiOTguanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XG4gIDxkaXY+XG4gICAgPGItcm93PlxuICAgICAgPGItYnV0dG9uIHYtYi10b2dnbGUucHJvamVjdC1jb250cm9scyBjbGFzcz1cIm0tMVwiPlRvZ2dsZSBDb250cm9sczwvYi1idXR0b24+XG4gICAgICA8Yi1jb2xsYXBzZSBpZD1cInByb2plY3QtY29udHJvbHNcIj5cbiAgICAgICAgPGItY29udGFpbmVyPlxuICAgICAgICAgIDxiLXJvdz5cbiAgICAgICAgICAgIEZpbHRlciBieSBuYW1lOiA8aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwibmFtZV9maWx0ZXJcIi8+IChTaG93aW5nIHt7IGZpbHRlcmVkX3Byb2plY3RzLmxlbmd0aCB9fSBvZiB7eyBwcm9qZWN0cy5sZW5ndGh9fSBwcm9qZWN0cylcbiAgICAgICAgICA8L2Itcm93PlxuICAgICAgICAgIDxiLXJvdz5cbiAgICAgICAgICAgIFRhYnM6IDxiLWJ1dHRvbiBAY2xpY2s9XCJ0YWJJbmRleCAtPSAxXCI+Jmx0OzwvYi1idXR0b24+IDxiLWJ1dHRvbiBAY2xpY2s9XCJ0YWJJbmRleCArPSAxXCI+Jmd0OzwvYi1idXR0b24+XG4gICAgICAgICAgPC9iLXJvdz5cbiAgICAgICAgPC9iLWNvbnRhaW5lcj5cbiAgICAgIDwvYi1jb2xsYXBzZT5cbiAgICA8L2Itcm93PlxuICAgIDxiLXJvdyBjbGFzcz1cImxpc3RcIj5cbiAgICAgIDxvY3JkLXByb2plY3QtbGlzdC1pdGVtXG4gICAgICAgIHYtZm9yPVwicHJvamVjdCxpZHggaW4gZmlsdGVyZWRfcHJvamVjdHNcIlxuICAgICAgICA6a2V5PVwicHJvamVjdC5vcmdfcGx1c19uYW1lXCJcbiAgICAgICAgOnByb2plY3Q9XCJwcm9qZWN0XCJcbiAgICAgICAgOnRhYkluZGV4PVwidGFiSW5kZXhcIlxuICAgICAgICA6cHJvamVjdEluZGV4PVwiaWR4XCJcbiAgICAgID5cbiAgICAgIDwvb2NyZC1wcm9qZWN0LWxpc3QtaXRlbT5cbiAgICA8L2Itcm93PlxuXG4gICAgPGItbW9kYWwgaWQ9XCJwcm9qZWN0LW1vZGFsXCJcbiAgICAgICAgICAgICBzaXplPVwieGxcIlxuICAgICAgICAgICAgIDpoaWRlLWhlYWRlcj1cInRydWVcIlxuICAgICAgICAgICAgIDpoaWRlLWZvb3Rlcj1cInRydWVcIlxuICAgICAgPlxuICAgICAgPG9jcmQtcHJvamVjdC1saXN0LWl0ZW1cbiAgICAgICAgOnByb2plY3Q9XCJwcm9qZWN0c1skcm9vdC5tb2RhbFByb2plY3RJbmRleF1cIlxuICAgICAgICA6cHJvamVjdEluZGV4PVwiJHJvb3QubW9kYWxQcm9qZWN0SW5kZXhcIlxuICAgICAgICA6bW9kYWw9XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgPC9vY3JkLXByb2plY3QtbGlzdC1pdGVtPlxuICAgIDwvYi1tb2RhbD5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IE9jcmRQcm9qZWN0TGlzdEl0ZW0gZnJvbSAnLi9PY3JkUHJvamVjdExpc3RJdGVtLnZ1ZSdcbmV4cG9ydCBkZWZhdWx0IHtcbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZV9maWx0ZXI6ICcnLFxuICAgICAgdGFiSW5kZXg6IDAsXG4gICAgfVxuICB9LFxuICBjb21wdXRlZDoge1xuICAgIGZpbHRlcmVkX3Byb2plY3RzKCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvamVjdHMuZmlsdGVyKHByb2plY3QgPT4gcHJvamVjdC5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5uYW1lX2ZpbHRlci50b0xvd2VyQ2FzZSgpKSlcbiAgICB9XG4gIH0sXG4gIGNvbXBvbmVudHM6IHtcbiAgICBPY3JkUHJvamVjdExpc3RJdGVtXG4gIH0sXG4gIHByb3BzOiB7XG4gICAgcHJvamVjdHM6IHtyZXF1aXJlZDogdHJ1ZX1cbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIHN3aXRjaFRhYihkZWx0YSkge1xuICAgICAgdGhpcy50YWJJbmRleCArPSBkZWx0YVxuICAgIH1cbiAgfVxufVxuPC9zY3JpcHQ+XG5cbjxzdHlsZT5cblxuLmxpc3QgLm9jcmQtcHJvamVjdC1saXN0LWl0ZW0ge1xuICBtYXgtd2lkdGg6IDMwcmVtO1xuICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbjwvc3R5bGU+XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc3JjL09jcmRQcm9qZWN0TGlzdC52dWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///98\n");
+eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__OcrdProjectListItem_vue__ = __webpack_require__(99);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n  data: function data() {\n    return {\n      name_filter: '',\n      show_unofficial: true,\n      tabIndex: 0\n    };\n  },\n\n  computed: {\n    filtered_projects: function filtered_projects() {\n      var _this = this;\n\n      return this.projects.filter(function (project) {\n        if (!(_this.show_unofficial || project.official)) {\n          return false;\n        }\n        return project.name.toLowerCase().includes(_this.name_filter.toLowerCase());\n      });\n    }\n  },\n  components: {\n    OcrdProjectListItem: __WEBPACK_IMPORTED_MODULE_0__OcrdProjectListItem_vue__[\"a\" /* default */]\n  },\n  props: {\n    projects: { required: true }\n  },\n  methods: {\n    switchTab: function switchTab(delta) {\n      this.tabIndex += delta;\n    }\n  }\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL09jcmRQcm9qZWN0TGlzdC52dWU/ZDRmNCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUErQ0E7QUFDQTtBQUNBLE1BREEsa0JBQ0E7QUFDQTtBQUNBLHFCQURBO0FBRUEsMkJBRkE7QUFHQTtBQUhBO0FBS0EsR0FQQTs7QUFRQTtBQUNBLHFCQURBLCtCQUNBO0FBQUE7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BTEE7QUFNQTtBQVJBLEdBUkE7QUFrQkE7QUFDQTtBQURBLEdBbEJBO0FBcUJBO0FBQ0E7QUFEQSxHQXJCQTtBQXdCQTtBQUNBLGFBREEscUJBQ0EsS0FEQSxFQUNBO0FBQ0E7QUFDQTtBQUhBO0FBeEJBIiwiZmlsZSI6Ijk4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxuICA8ZGl2PlxuICAgIDxiLXJvdz5cbiAgICAgIDxiLWJ1dHRvbiB2LWItdG9nZ2xlLnByb2plY3QtY29udHJvbHMgY2xhc3M9XCJtLTFcIj5Ub2dnbGUgQ29udHJvbHM8L2ItYnV0dG9uPlxuICAgICAgPGItY29sbGFwc2UgaWQ9XCJwcm9qZWN0LWNvbnRyb2xzXCI+XG4gICAgICAgIDxiLWNvbnRhaW5lcj5cbiAgICAgICAgICA8Yi1yb3c+XG4gICAgICAgICAgICA8Yi1mb3JtLWNoZWNrYm94IHYtbW9kZWw9XCJzaG93X3Vub2ZmaWNpYWxcIiBuYW1lPVwiY2hlY2stYnV0dG9uXCIgc3dpdGNoPlxuICAgICAgICAgICAgVW5vZmZpY2lhbCBwcm9qZWN0cyA8Yj4oe3sgY2hlY2tlZCA/IFwiU2hvd1wiIDogXCJoaWRlXCIgfX0pPC9iPlxuICAgICAgICAgICAgPC9iLWZvcm0tY2hlY2tib3g+XG4gICAgICAgICAgPC9iLXJvdz5cbiAgICAgICAgICA8Yi1yb3c+XG4gICAgICAgICAgICBGaWx0ZXIgYnkgbmFtZTogPGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIm5hbWVfZmlsdGVyXCIvPiAoU2hvd2luZyB7eyBmaWx0ZXJlZF9wcm9qZWN0cy5sZW5ndGggfX0gb2Yge3sgcHJvamVjdHMubGVuZ3RofX0gcHJvamVjdHMpXG4gICAgICAgICAgPC9iLXJvdz5cbiAgICAgICAgICA8Yi1yb3c+XG4gICAgICAgICAgICBUYWJzOiA8Yi1idXR0b24gQGNsaWNrPVwidGFiSW5kZXggLT0gMVwiPiZsdDs8L2ItYnV0dG9uPiA8Yi1idXR0b24gQGNsaWNrPVwidGFiSW5kZXggKz0gMVwiPiZndDs8L2ItYnV0dG9uPlxuICAgICAgICAgIDwvYi1yb3c+XG4gICAgICAgIDwvYi1jb250YWluZXI+XG4gICAgICA8L2ItY29sbGFwc2U+XG4gICAgPC9iLXJvdz5cbiAgICA8Yi1yb3cgY2xhc3M9XCJsaXN0XCI+XG4gICAgICA8b2NyZC1wcm9qZWN0LWxpc3QtaXRlbVxuICAgICAgICB2LWZvcj1cInByb2plY3QsaWR4IGluIGZpbHRlcmVkX3Byb2plY3RzXCJcbiAgICAgICAgOmtleT1cInByb2plY3Qub3JnX3BsdXNfbmFtZVwiXG4gICAgICAgIDpwcm9qZWN0PVwicHJvamVjdFwiXG4gICAgICAgIDp0YWJJbmRleD1cInRhYkluZGV4XCJcbiAgICAgICAgOnByb2plY3RJbmRleD1cImlkeFwiXG4gICAgICA+XG4gICAgICA8L29jcmQtcHJvamVjdC1saXN0LWl0ZW0+XG4gICAgPC9iLXJvdz5cblxuICAgIDxiLW1vZGFsIGlkPVwicHJvamVjdC1tb2RhbFwiXG4gICAgICAgICAgICAgc2l6ZT1cInhsXCJcbiAgICAgICAgICAgICA6aGlkZS1oZWFkZXI9XCJ0cnVlXCJcbiAgICAgICAgICAgICA6aGlkZS1mb290ZXI9XCJ0cnVlXCJcbiAgICAgID5cbiAgICAgIDxvY3JkLXByb2plY3QtbGlzdC1pdGVtXG4gICAgICAgIDpwcm9qZWN0PVwicHJvamVjdHNbJHJvb3QubW9kYWxQcm9qZWN0SW5kZXhdXCJcbiAgICAgICAgOnByb2plY3RJbmRleD1cIiRyb290Lm1vZGFsUHJvamVjdEluZGV4XCJcbiAgICAgICAgOm1vZGFsPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgIDwvb2NyZC1wcm9qZWN0LWxpc3QtaXRlbT5cbiAgICA8L2ItbW9kYWw+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCBPY3JkUHJvamVjdExpc3RJdGVtIGZyb20gJy4vT2NyZFByb2plY3RMaXN0SXRlbS52dWUnXG5leHBvcnQgZGVmYXVsdCB7XG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWVfZmlsdGVyOiAnJyxcbiAgICAgIHNob3dfdW5vZmZpY2lhbDogdHJ1ZSxcbiAgICAgIHRhYkluZGV4OiAwLFxuICAgIH1cbiAgfSxcbiAgY29tcHV0ZWQ6IHtcbiAgICBmaWx0ZXJlZF9wcm9qZWN0cygpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2plY3RzLmZpbHRlcihwcm9qZWN0ID0+IHtcbiAgICAgICAgaWYgKCEodGhpcy5zaG93X3Vub2ZmaWNpYWwgfHwgcHJvamVjdC5vZmZpY2lhbCkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJvamVjdC5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5uYW1lX2ZpbHRlci50b0xvd2VyQ2FzZSgpKVxuICAgICAgfSlcbiAgICB9XG4gIH0sXG4gIGNvbXBvbmVudHM6IHtcbiAgICBPY3JkUHJvamVjdExpc3RJdGVtXG4gIH0sXG4gIHByb3BzOiB7XG4gICAgcHJvamVjdHM6IHtyZXF1aXJlZDogdHJ1ZX1cbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIHN3aXRjaFRhYihkZWx0YSkge1xuICAgICAgdGhpcy50YWJJbmRleCArPSBkZWx0YVxuICAgIH1cbiAgfVxufVxuPC9zY3JpcHQ+XG5cbjxzdHlsZT5cblxuLmxpc3QgLm9jcmQtcHJvamVjdC1saXN0LWl0ZW0ge1xuICBtYXgtd2lkdGg6IDMwcmVtO1xuICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbjwvc3R5bGU+XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc3JjL09jcmRQcm9qZWN0TGlzdC52dWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///98\n");
 
 /***/ }),
 /* 99 */
@@ -1669,7 +1669,7 @@ eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// lo
 /* 230 */
 /***/ (function(module, exports, __webpack_require__) {
 
-eval("exports = module.exports = __webpack_require__(22)(true);\n// imports\n\n\n// module\nexports.push([module.i, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\", \"\", {\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"file\":\"App.vue\",\"sourceRoot\":\"\"}]);\n\n// exports\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvQXBwLnZ1ZT8wMzI4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJCQUEyQixtQkFBTyxDQUFDLEVBQTRDO0FBQy9FOzs7QUFHQTtBQUNBLGNBQWMsUUFBUyx5SUFBeUksbUZBQW1GOztBQUVuUCIsImZpbGUiOiIyMzAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvbGliL2Nzcy1iYXNlLmpzXCIpKHRydWUpO1xuLy8gaW1wb3J0c1xuXG5cbi8vIG1vZHVsZVxuZXhwb3J0cy5wdXNoKFttb2R1bGUuaWQsIFwiXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXCIsIFwiXCIsIHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJcIixcImZpbGVcIjpcIkFwcC52dWVcIixcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuXG4vLyBleHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyP3NvdXJjZU1hcCEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zdHlsZS1jb21waWxlcj97XCJ2dWVcIjp0cnVlLFwiaWRcIjpcImRhdGEtdi03YmE1YmQ5MFwiLFwic2NvcGVkXCI6ZmFsc2UsXCJoYXNJbmxpbmVDb25maWdcIjpmYWxzZX0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zdHlsZXMmaW5kZXg9MCEuL3NyYy9BcHAudnVlXG4vLyBtb2R1bGUgaWQgPSAyMzBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///230\n");
+eval("exports = module.exports = __webpack_require__(22)(true);\n// imports\n\n\n// module\nexports.push([module.i, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\", \"\", {\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"file\":\"App.vue\",\"sourceRoot\":\"\"}]);\n\n// exports\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvQXBwLnZ1ZT8wMzI4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJCQUEyQixtQkFBTyxDQUFDLEVBQTRDO0FBQy9FOzs7QUFHQTtBQUNBLGNBQWMsUUFBUywySUFBMkksbUZBQW1GOztBQUVyUCIsImZpbGUiOiIyMzAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvbGliL2Nzcy1iYXNlLmpzXCIpKHRydWUpO1xuLy8gaW1wb3J0c1xuXG5cbi8vIG1vZHVsZVxuZXhwb3J0cy5wdXNoKFttb2R1bGUuaWQsIFwiXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXCIsIFwiXCIsIHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJcIixcImZpbGVcIjpcIkFwcC52dWVcIixcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuXG4vLyBleHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyP3NvdXJjZU1hcCEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zdHlsZS1jb21waWxlcj97XCJ2dWVcIjp0cnVlLFwiaWRcIjpcImRhdGEtdi03YmE1YmQ5MFwiLFwic2NvcGVkXCI6ZmFsc2UsXCJoYXNJbmxpbmVDb25maWdcIjpmYWxzZX0hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT1zdHlsZXMmaW5kZXg9MCEuL3NyYy9BcHAudnVlXG4vLyBtb2R1bGUgaWQgPSAyMzBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///230\n");
 
 /***/ }),
 /* 231 */
@@ -1696,7 +1696,7 @@ eval("var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    [\n      _c(\n        \"b-row\",\n        [\n          _c(\n            \"b-button\",\n            {\n              directives: [\n                {\n                  name: \"b-toggle\",\n                  rawName: \"v-b-toggle.processor-controls\",\n                  modifiers: { \"processor-controls\": true }\n                }\n              ],\n              staticClass: \"m-1\"\n            },\n            [_vm._v(\"Toggle Controls\")]\n          ),\n          _vm._v(\" \"),\n          _c(\n            \"b-collapse\",\n            { attrs: { id: \"processor-controls\" } },\n            [\n              _c(\n                \"b-container\",\n                [\n                  _c(\n                    \"b-row\",\n                    [\n                      _vm._v(\"\\n          Filter by category:\\n          \"),\n                      _vm._l(_vm.categories, function(category) {\n                        return _c(\n                          \"b-badge\",\n                          {\n                            key: category,\n                            attrs: {\n                              variant:\n                                _vm.category_filter.indexOf(category) != -1\n                                  ? \"primary\"\n                                  : \"secondary\"\n                            },\n                            on: {\n                              click: function($event) {\n                                _vm.category_filter.indexOf(category) != -1\n                                  ? _vm.category_filter.splice(\n                                      _vm.category_filter.indexOf(category),\n                                      1\n                                    )\n                                  : _vm.category_filter.push(category)\n                              }\n                            }\n                          },\n                          [\n                            _vm._v(\n                              \"\\n            \" +\n                                _vm._s(category) +\n                                \"\\n          \"\n                            )\n                          ]\n                        )\n                      })\n                    ],\n                    2\n                  ),\n                  _vm._v(\" \"),\n                  _c(\n                    \"b-row\",\n                    [\n                      _vm._v(\"\\n          Filter by step:\\n          \"),\n                      _vm._l(_vm.steps, function(step) {\n                        return _c(\n                          \"b-badge\",\n                          {\n                            key: step,\n                            attrs: {\n                              variant:\n                                _vm.step_filter.indexOf(step) != -1\n                                  ? \"primary\"\n                                  : \"secondary\"\n                            },\n                            on: {\n                              click: function($event) {\n                                _vm.step_filter.indexOf(step) != -1\n                                  ? _vm.step_filter.splice(\n                                      _vm.step_filter.indexOf(step),\n                                      1\n                                    )\n                                  : _vm.step_filter.push(step)\n                              }\n                            }\n                          },\n                          [\n                            _vm._v(\n                              \"\\n            \" + _vm._s(step) + \"\\n          \"\n                            )\n                          ]\n                        )\n                      })\n                    ],\n                    2\n                  )\n                ],\n                1\n              )\n            ],\n            1\n          )\n        ],\n        1\n      ),\n      _vm._v(\" \"),\n      _c(\n        \"b-row\",\n        _vm._l(_vm.filtered_processors, function(processor) {\n          return _c(\"ocrd-processor-list-item\", {\n            key: processor.executable,\n            attrs: { processor: processor }\n          })\n        }),\n        1\n      )\n    ],\n    1\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\nif (false) {\n  module.hot.accept()\n  if (module.hot.data) {\n    require(\"vue-hot-reload-api\")      .rerender(\"data-v-5757c97e\", esExports)\n  }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvT2NyZFByb2Nlc3Nvckxpc3QudnVlP2YzMzEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsU0FBUywyQkFBMkIsRUFBRTtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQixXQUFXO0FBQ1gsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDRixrRUFBUztBQUN4QixJQUFJLEtBQVU7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjIzNC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciByZW5kZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJkaXZcIixcbiAgICBbXG4gICAgICBfYyhcbiAgICAgICAgXCJiLXJvd1wiLFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXG4gICAgICAgICAgICBcImItYnV0dG9uXCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiBcImItdG9nZ2xlXCIsXG4gICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtYi10b2dnbGUucHJvY2Vzc29yLWNvbnRyb2xzXCIsXG4gICAgICAgICAgICAgICAgICBtb2RpZmllcnM6IHsgXCJwcm9jZXNzb3ItY29udHJvbHNcIjogdHJ1ZSB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJtLTFcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtfdm0uX3YoXCJUb2dnbGUgQ29udHJvbHNcIildXG4gICAgICAgICAgKSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF9jKFxuICAgICAgICAgICAgXCJiLWNvbGxhcHNlXCIsXG4gICAgICAgICAgICB7IGF0dHJzOiB7IGlkOiBcInByb2Nlc3Nvci1jb250cm9sc1wiIH0gfSxcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgXCJiLWNvbnRhaW5lclwiLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgICBcImItcm93XCIsXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCJcXG4gICAgICAgICAgRmlsdGVyIGJ5IGNhdGVnb3J5OlxcbiAgICAgICAgICBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgX3ZtLl9sKF92bS5jYXRlZ29yaWVzLCBmdW5jdGlvbihjYXRlZ29yeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcImItYmFkZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogY2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5jYXRlZ29yeV9maWx0ZXIuaW5kZXhPZihjYXRlZ29yeSkgIT0gLTFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uY2F0ZWdvcnlfZmlsdGVyLmluZGV4T2YoY2F0ZWdvcnkpICE9IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBfdm0uY2F0ZWdvcnlfZmlsdGVyLnNwbGljZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLmNhdGVnb3J5X2ZpbHRlci5pbmRleE9mKGNhdGVnb3J5KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogX3ZtLmNhdGVnb3J5X2ZpbHRlci5wdXNoKGNhdGVnb3J5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fdihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXFxuICAgICAgICAgICAgXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3MoY2F0ZWdvcnkpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcXG4gICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAyXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgICBcImItcm93XCIsXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCJcXG4gICAgICAgICAgRmlsdGVyIGJ5IHN0ZXA6XFxuICAgICAgICAgIFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICBfdm0uX2woX3ZtLnN0ZXBzLCBmdW5jdGlvbihzdGVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2MoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiYi1iYWRnZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBzdGVwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uc3RlcF9maWx0ZXIuaW5kZXhPZihzdGVwKSAhPSAtMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5zdGVwX2ZpbHRlci5pbmRleE9mKHN0ZXApICE9IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBfdm0uc3RlcF9maWx0ZXIuc3BsaWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uc3RlcF9maWx0ZXIuaW5kZXhPZihzdGVwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogX3ZtLnN0ZXBfZmlsdGVyLnB1c2goc3RlcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxcbiAgICAgICAgICAgIFwiICsgX3ZtLl9zKHN0ZXApICsgXCJcXG4gICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAyXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAxXG4gICAgICAgICAgKVxuICAgICAgICBdLFxuICAgICAgICAxXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImItcm93XCIsXG4gICAgICAgIF92bS5fbChfdm0uZmlsdGVyZWRfcHJvY2Vzc29ycywgZnVuY3Rpb24ocHJvY2Vzc29yKSB7XG4gICAgICAgICAgcmV0dXJuIF9jKFwib2NyZC1wcm9jZXNzb3ItbGlzdC1pdGVtXCIsIHtcbiAgICAgICAgICAgIGtleTogcHJvY2Vzc29yLmV4ZWN1dGFibGUsXG4gICAgICAgICAgICBhdHRyczogeyBwcm9jZXNzb3I6IHByb2Nlc3NvciB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfSksXG4gICAgICAgIDFcbiAgICAgIClcbiAgICBdLFxuICAgIDFcbiAgKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcbnZhciBlc0V4cG9ydHMgPSB7IHJlbmRlcjogcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucyB9XG5leHBvcnQgZGVmYXVsdCBlc0V4cG9ydHNcbmlmIChtb2R1bGUuaG90KSB7XG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKG1vZHVsZS5ob3QuZGF0YSkge1xuICAgIHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIikgICAgICAucmVyZW5kZXIoXCJkYXRhLXYtNTc1N2M5N2VcIiwgZXNFeHBvcnRzKVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi01NzU3Yzk3ZVwiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL3NyYy9PY3JkUHJvY2Vzc29yTGlzdC52dWVcbi8vIG1vZHVsZSBpZCA9IDIzNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///234\n");
+eval("var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    [\n      _c(\n        \"b-row\",\n        [\n          _c(\n            \"b-button\",\n            {\n              directives: [\n                {\n                  name: \"b-toggle\",\n                  rawName: \"v-b-toggle.processor-controls\",\n                  modifiers: { \"processor-controls\": true }\n                }\n              ],\n              staticClass: \"m-1\"\n            },\n            [_vm._v(\"Toggle Controls\")]\n          ),\n          _vm._v(\" \"),\n          _c(\n            \"b-collapse\",\n            { attrs: { id: \"processor-controls\" } },\n            [\n              _c(\n                \"b-container\",\n                [\n                  _c(\n                    \"b-row\",\n                    [\n                      _c(\n                        \"b-form-checkbox\",\n                        {\n                          attrs: { name: \"check-button\", switch: \"\" },\n                          model: {\n                            value: _vm.show_unofficial,\n                            callback: function($$v) {\n                              _vm.show_unofficial = $$v\n                            },\n                            expression: \"show_unofficial\"\n                          }\n                        },\n                        [\n                          _vm._v(\"\\n          Unofficial processors \"),\n                          _c(\"b\", [\n                            _vm._v(\n                              \"(\" + _vm._s(_vm.checked ? \"Show\" : \"hide\") + \")\"\n                            )\n                          ])\n                        ]\n                      )\n                    ],\n                    1\n                  ),\n                  _vm._v(\" \"),\n                  _c(\n                    \"b-row\",\n                    [\n                      _vm._v(\"\\n          Filter by category:\\n          \"),\n                      _vm._l(_vm.categories, function(category) {\n                        return _c(\n                          \"b-badge\",\n                          {\n                            key: category,\n                            attrs: {\n                              variant:\n                                _vm.category_filter.indexOf(category) != -1\n                                  ? \"primary\"\n                                  : \"secondary\"\n                            },\n                            on: {\n                              click: function($event) {\n                                _vm.category_filter.indexOf(category) != -1\n                                  ? _vm.category_filter.splice(\n                                      _vm.category_filter.indexOf(category),\n                                      1\n                                    )\n                                  : _vm.category_filter.push(category)\n                              }\n                            }\n                          },\n                          [\n                            _vm._v(\n                              \"\\n            \" +\n                                _vm._s(category) +\n                                \"\\n          \"\n                            )\n                          ]\n                        )\n                      })\n                    ],\n                    2\n                  ),\n                  _vm._v(\" \"),\n                  _c(\n                    \"b-row\",\n                    [\n                      _vm._v(\"\\n          Filter by step:\\n          \"),\n                      _vm._l(_vm.steps, function(step) {\n                        return _c(\n                          \"b-badge\",\n                          {\n                            key: step,\n                            attrs: {\n                              variant:\n                                _vm.step_filter.indexOf(step) != -1\n                                  ? \"primary\"\n                                  : \"secondary\"\n                            },\n                            on: {\n                              click: function($event) {\n                                _vm.step_filter.indexOf(step) != -1\n                                  ? _vm.step_filter.splice(\n                                      _vm.step_filter.indexOf(step),\n                                      1\n                                    )\n                                  : _vm.step_filter.push(step)\n                              }\n                            }\n                          },\n                          [\n                            _vm._v(\n                              \"\\n            \" + _vm._s(step) + \"\\n          \"\n                            )\n                          ]\n                        )\n                      })\n                    ],\n                    2\n                  )\n                ],\n                1\n              )\n            ],\n            1\n          )\n        ],\n        1\n      ),\n      _vm._v(\" \"),\n      _c(\n        \"b-row\",\n        _vm._l(_vm.filtered_processors, function(processor) {\n          return _c(\"ocrd-processor-list-item\", {\n            key: processor.executable,\n            attrs: { processor: processor }\n          })\n        }),\n        1\n      )\n    ],\n    1\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\nif (false) {\n  module.hot.accept()\n  if (module.hot.data) {\n    require(\"vue-hot-reload-api\")      .rerender(\"data-v-5757c97e\", esExports)\n  }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvT2NyZFByb2Nlc3Nvckxpc3QudnVlP2YzMzEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsU0FBUywyQkFBMkIsRUFBRTtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxtQ0FBbUM7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQixXQUFXO0FBQ1gsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDRixrRUFBUztBQUN4QixJQUFJLEtBQVU7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjIzNC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciByZW5kZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJkaXZcIixcbiAgICBbXG4gICAgICBfYyhcbiAgICAgICAgXCJiLXJvd1wiLFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXG4gICAgICAgICAgICBcImItYnV0dG9uXCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiBcImItdG9nZ2xlXCIsXG4gICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtYi10b2dnbGUucHJvY2Vzc29yLWNvbnRyb2xzXCIsXG4gICAgICAgICAgICAgICAgICBtb2RpZmllcnM6IHsgXCJwcm9jZXNzb3ItY29udHJvbHNcIjogdHJ1ZSB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJtLTFcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtfdm0uX3YoXCJUb2dnbGUgQ29udHJvbHNcIildXG4gICAgICAgICAgKSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF9jKFxuICAgICAgICAgICAgXCJiLWNvbGxhcHNlXCIsXG4gICAgICAgICAgICB7IGF0dHJzOiB7IGlkOiBcInByb2Nlc3Nvci1jb250cm9sc1wiIH0gfSxcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgXCJiLWNvbnRhaW5lclwiLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgICBcImItcm93XCIsXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYi1mb3JtLWNoZWNrYm94XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IG5hbWU6IFwiY2hlY2stYnV0dG9uXCIsIHN3aXRjaDogXCJcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlbDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBfdm0uc2hvd191bm9mZmljaWFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbigkJHYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5zaG93X3Vub2ZmaWNpYWwgPSAkJHZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IFwic2hvd191bm9mZmljaWFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiXFxuICAgICAgICAgIFVub2ZmaWNpYWwgcHJvY2Vzc29ycyBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF9jKFwiYlwiLCBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIoXCIgKyBfdm0uX3MoX3ZtLmNoZWNrZWQgPyBcIlNob3dcIiA6IFwiaGlkZVwiKSArIFwiKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgXCJiLXJvd1wiLFxuICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiXFxuICAgICAgICAgIEZpbHRlciBieSBjYXRlZ29yeTpcXG4gICAgICAgICAgXCIpLFxuICAgICAgICAgICAgICAgICAgICAgIF92bS5fbChfdm0uY2F0ZWdvcmllcywgZnVuY3Rpb24oY2F0ZWdvcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJiLWJhZGdlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGNhdGVnb3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uY2F0ZWdvcnlfZmlsdGVyLmluZGV4T2YoY2F0ZWdvcnkpICE9IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLmNhdGVnb3J5X2ZpbHRlci5pbmRleE9mKGNhdGVnb3J5KSAhPSAtMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gX3ZtLmNhdGVnb3J5X2ZpbHRlci5zcGxpY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5jYXRlZ29yeV9maWx0ZXIuaW5kZXhPZihjYXRlZ29yeSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IF92bS5jYXRlZ29yeV9maWx0ZXIucHVzaChjYXRlZ29yeSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxcbiAgICAgICAgICAgIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl9zKGNhdGVnb3J5KSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXFxuICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgMlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgXCJiLXJvd1wiLFxuICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiXFxuICAgICAgICAgIEZpbHRlciBieSBzdGVwOlxcbiAgICAgICAgICBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgX3ZtLl9sKF92bS5zdGVwcywgZnVuY3Rpb24oc3RlcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcImItYmFkZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogc3RlcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLnN0ZXBfZmlsdGVyLmluZGV4T2Yoc3RlcCkgIT0gLTFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uc3RlcF9maWx0ZXIuaW5kZXhPZihzdGVwKSAhPSAtMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gX3ZtLnN0ZXBfZmlsdGVyLnNwbGljZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLnN0ZXBfZmlsdGVyLmluZGV4T2Yoc3RlcCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IF92bS5zdGVwX2ZpbHRlci5wdXNoKHN0ZXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcXG4gICAgICAgICAgICBcIiArIF92bS5fcyhzdGVwKSArIFwiXFxuICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgMlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgMVxuICAgICAgICAgIClcbiAgICAgICAgXSxcbiAgICAgICAgMVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJiLXJvd1wiLFxuICAgICAgICBfdm0uX2woX3ZtLmZpbHRlcmVkX3Byb2Nlc3NvcnMsIGZ1bmN0aW9uKHByb2Nlc3Nvcikge1xuICAgICAgICAgIHJldHVybiBfYyhcIm9jcmQtcHJvY2Vzc29yLWxpc3QtaXRlbVwiLCB7XG4gICAgICAgICAgICBrZXk6IHByb2Nlc3Nvci5leGVjdXRhYmxlLFxuICAgICAgICAgICAgYXR0cnM6IHsgcHJvY2Vzc29yOiBwcm9jZXNzb3IgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pLFxuICAgICAgICAxXG4gICAgICApXG4gICAgXSxcbiAgICAxXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG52YXIgZXNFeHBvcnRzID0geyByZW5kZXI6IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnMgfVxuZXhwb3J0IGRlZmF1bHQgZXNFeHBvcnRzXG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LTU3NTdjOTdlXCIsIGVzRXhwb3J0cylcbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyP3tcImlkXCI6XCJkYXRhLXYtNTc1N2M5N2VcIixcImhhc1Njb3BlZFwiOmZhbHNlLFwiYnVibGVcIjp7XCJ0cmFuc2Zvcm1zXCI6e319fSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvT2NyZFByb2Nlc3Nvckxpc3QudnVlXG4vLyBtb2R1bGUgaWQgPSAyMzRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///234\n");
 
 /***/ }),
 /* 235 */
@@ -1715,7 +1715,7 @@ eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// lo
 /* 237 */
 /***/ (function(module, exports, __webpack_require__) {
 
-eval("exports = module.exports = __webpack_require__(22)(true);\n// imports\n\n\n// module\nexports.push([module.i, \"\\n.list .ocrd-project-list-item {\\n  max-width: 30rem;\\n  max-height: 30rem;\\n  overflow: auto;\\n}\\n\\n\", \"\", {\"version\":3,\"sources\":[\"/data/monorepo/ocrd-kwalitee/webapp/src/src/OcrdProjectList.vue\"],\"names\":[],\"mappings\":\";AAuEA;EACA,iBAAA;EACA,kBAAA;EACA,eAAA;CACA\",\"file\":\"OcrdProjectList.vue\",\"sourcesContent\":[\"<template>\\n  <div>\\n    <b-row>\\n      <b-button v-b-toggle.project-controls class=\\\"m-1\\\">Toggle Controls</b-button>\\n      <b-collapse id=\\\"project-controls\\\">\\n        <b-container>\\n          <b-row>\\n            Filter by name: <input type=\\\"text\\\" v-model=\\\"name_filter\\\"/> (Showing {{ filtered_projects.length }} of {{ projects.length}} projects)\\n          </b-row>\\n          <b-row>\\n            Tabs: <b-button @click=\\\"tabIndex -= 1\\\">&lt;</b-button> <b-button @click=\\\"tabIndex += 1\\\">&gt;</b-button>\\n          </b-row>\\n        </b-container>\\n      </b-collapse>\\n    </b-row>\\n    <b-row class=\\\"list\\\">\\n      <ocrd-project-list-item\\n        v-for=\\\"project,idx in filtered_projects\\\"\\n        :key=\\\"project.org_plus_name\\\"\\n        :project=\\\"project\\\"\\n        :tabIndex=\\\"tabIndex\\\"\\n        :projectIndex=\\\"idx\\\"\\n      >\\n      </ocrd-project-list-item>\\n    </b-row>\\n\\n    <b-modal id=\\\"project-modal\\\"\\n             size=\\\"xl\\\"\\n             :hide-header=\\\"true\\\"\\n             :hide-footer=\\\"true\\\"\\n      >\\n      <ocrd-project-list-item\\n        :project=\\\"projects[$root.modalProjectIndex]\\\"\\n        :projectIndex=\\\"$root.modalProjectIndex\\\"\\n        :modal=\\\"true\\\"\\n        >\\n      </ocrd-project-list-item>\\n    </b-modal>\\n  </div>\\n</template>\\n\\n<script>\\nimport OcrdProjectListItem from './OcrdProjectListItem.vue'\\nexport default {\\n  data() {\\n    return {\\n      name_filter: '',\\n      tabIndex: 0,\\n    }\\n  },\\n  computed: {\\n    filtered_projects() {\\n      return this.projects.filter(project => project.name.toLowerCase().includes(this.name_filter.toLowerCase()))\\n    }\\n  },\\n  components: {\\n    OcrdProjectListItem\\n  },\\n  props: {\\n    projects: {required: true}\\n  },\\n  methods: {\\n    switchTab(delta) {\\n      this.tabIndex += delta\\n    }\\n  }\\n}\\n</script>\\n\\n<style>\\n\\n.list .ocrd-project-list-item {\\n  max-width: 30rem;\\n  max-height: 30rem;\\n  overflow: auto;\\n}\\n\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n\n// exports\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvT2NyZFByb2plY3RMaXN0LnZ1ZT85NzVmIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJCQUEyQixtQkFBTyxDQUFDLEVBQTRDO0FBQy9FOzs7QUFHQTtBQUNBLGNBQWMsUUFBUyxvQ0FBb0MscUJBQXFCLHNCQUFzQixtQkFBbUIsR0FBRyxZQUFZLGtIQUFrSCxNQUFNLFdBQVcsV0FBVyxVQUFVLDBWQUEwViw0QkFBNEIsTUFBTSxrQkFBa0IsNEdBQTRHLG1EQUFtRCx1MkJBQXUyQixZQUFZLGNBQWMsbURBQW1ELEtBQUssZ0JBQWdCLDJCQUEyQiwwSEFBMEgsS0FBSyxrQkFBa0IsOEJBQThCLGFBQWEsaUJBQWlCLGVBQWUsS0FBSyxlQUFlLHdCQUF3QixxQ0FBcUMsS0FBSyxHQUFHLHlEQUF5RCxxQkFBcUIsc0JBQXNCLG1CQUFtQixHQUFHLGlDQUFpQzs7QUFFandFIiwiZmlsZSI6IjIzNy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCIuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9saWIvY3NzLWJhc2UuanNcIikodHJ1ZSk7XG4vLyBpbXBvcnRzXG5cblxuLy8gbW9kdWxlXG5leHBvcnRzLnB1c2goW21vZHVsZS5pZCwgXCJcXG4ubGlzdCAub2NyZC1wcm9qZWN0LWxpc3QtaXRlbSB7XFxuICBtYXgtd2lkdGg6IDMwcmVtO1xcbiAgbWF4LWhlaWdodDogMzByZW07XFxuICBvdmVyZmxvdzogYXV0bztcXG59XFxuXFxuXCIsIFwiXCIsIHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIi9kYXRhL21vbm9yZXBvL29jcmQta3dhbGl0ZWUvd2ViYXBwL3NyYy9zcmMvT2NyZFByb2plY3RMaXN0LnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiO0FBdUVBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7Q0FDQVwiLFwiZmlsZVwiOlwiT2NyZFByb2plY3RMaXN0LnZ1ZVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCI8dGVtcGxhdGU+XFxuICA8ZGl2PlxcbiAgICA8Yi1yb3c+XFxuICAgICAgPGItYnV0dG9uIHYtYi10b2dnbGUucHJvamVjdC1jb250cm9scyBjbGFzcz1cXFwibS0xXFxcIj5Ub2dnbGUgQ29udHJvbHM8L2ItYnV0dG9uPlxcbiAgICAgIDxiLWNvbGxhcHNlIGlkPVxcXCJwcm9qZWN0LWNvbnRyb2xzXFxcIj5cXG4gICAgICAgIDxiLWNvbnRhaW5lcj5cXG4gICAgICAgICAgPGItcm93PlxcbiAgICAgICAgICAgIEZpbHRlciBieSBuYW1lOiA8aW5wdXQgdHlwZT1cXFwidGV4dFxcXCIgdi1tb2RlbD1cXFwibmFtZV9maWx0ZXJcXFwiLz4gKFNob3dpbmcge3sgZmlsdGVyZWRfcHJvamVjdHMubGVuZ3RoIH19IG9mIHt7IHByb2plY3RzLmxlbmd0aH19IHByb2plY3RzKVxcbiAgICAgICAgICA8L2Itcm93PlxcbiAgICAgICAgICA8Yi1yb3c+XFxuICAgICAgICAgICAgVGFiczogPGItYnV0dG9uIEBjbGljaz1cXFwidGFiSW5kZXggLT0gMVxcXCI+Jmx0OzwvYi1idXR0b24+IDxiLWJ1dHRvbiBAY2xpY2s9XFxcInRhYkluZGV4ICs9IDFcXFwiPiZndDs8L2ItYnV0dG9uPlxcbiAgICAgICAgICA8L2Itcm93PlxcbiAgICAgICAgPC9iLWNvbnRhaW5lcj5cXG4gICAgICA8L2ItY29sbGFwc2U+XFxuICAgIDwvYi1yb3c+XFxuICAgIDxiLXJvdyBjbGFzcz1cXFwibGlzdFxcXCI+XFxuICAgICAgPG9jcmQtcHJvamVjdC1saXN0LWl0ZW1cXG4gICAgICAgIHYtZm9yPVxcXCJwcm9qZWN0LGlkeCBpbiBmaWx0ZXJlZF9wcm9qZWN0c1xcXCJcXG4gICAgICAgIDprZXk9XFxcInByb2plY3Qub3JnX3BsdXNfbmFtZVxcXCJcXG4gICAgICAgIDpwcm9qZWN0PVxcXCJwcm9qZWN0XFxcIlxcbiAgICAgICAgOnRhYkluZGV4PVxcXCJ0YWJJbmRleFxcXCJcXG4gICAgICAgIDpwcm9qZWN0SW5kZXg9XFxcImlkeFxcXCJcXG4gICAgICA+XFxuICAgICAgPC9vY3JkLXByb2plY3QtbGlzdC1pdGVtPlxcbiAgICA8L2Itcm93PlxcblxcbiAgICA8Yi1tb2RhbCBpZD1cXFwicHJvamVjdC1tb2RhbFxcXCJcXG4gICAgICAgICAgICAgc2l6ZT1cXFwieGxcXFwiXFxuICAgICAgICAgICAgIDpoaWRlLWhlYWRlcj1cXFwidHJ1ZVxcXCJcXG4gICAgICAgICAgICAgOmhpZGUtZm9vdGVyPVxcXCJ0cnVlXFxcIlxcbiAgICAgID5cXG4gICAgICA8b2NyZC1wcm9qZWN0LWxpc3QtaXRlbVxcbiAgICAgICAgOnByb2plY3Q9XFxcInByb2plY3RzWyRyb290Lm1vZGFsUHJvamVjdEluZGV4XVxcXCJcXG4gICAgICAgIDpwcm9qZWN0SW5kZXg9XFxcIiRyb290Lm1vZGFsUHJvamVjdEluZGV4XFxcIlxcbiAgICAgICAgOm1vZGFsPVxcXCJ0cnVlXFxcIlxcbiAgICAgICAgPlxcbiAgICAgIDwvb2NyZC1wcm9qZWN0LWxpc3QtaXRlbT5cXG4gICAgPC9iLW1vZGFsPlxcbiAgPC9kaXY+XFxuPC90ZW1wbGF0ZT5cXG5cXG48c2NyaXB0PlxcbmltcG9ydCBPY3JkUHJvamVjdExpc3RJdGVtIGZyb20gJy4vT2NyZFByb2plY3RMaXN0SXRlbS52dWUnXFxuZXhwb3J0IGRlZmF1bHQge1xcbiAgZGF0YSgpIHtcXG4gICAgcmV0dXJuIHtcXG4gICAgICBuYW1lX2ZpbHRlcjogJycsXFxuICAgICAgdGFiSW5kZXg6IDAsXFxuICAgIH1cXG4gIH0sXFxuICBjb21wdXRlZDoge1xcbiAgICBmaWx0ZXJlZF9wcm9qZWN0cygpIHtcXG4gICAgICByZXR1cm4gdGhpcy5wcm9qZWN0cy5maWx0ZXIocHJvamVjdCA9PiBwcm9qZWN0Lm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLm5hbWVfZmlsdGVyLnRvTG93ZXJDYXNlKCkpKVxcbiAgICB9XFxuICB9LFxcbiAgY29tcG9uZW50czoge1xcbiAgICBPY3JkUHJvamVjdExpc3RJdGVtXFxuICB9LFxcbiAgcHJvcHM6IHtcXG4gICAgcHJvamVjdHM6IHtyZXF1aXJlZDogdHJ1ZX1cXG4gIH0sXFxuICBtZXRob2RzOiB7XFxuICAgIHN3aXRjaFRhYihkZWx0YSkge1xcbiAgICAgIHRoaXMudGFiSW5kZXggKz0gZGVsdGFcXG4gICAgfVxcbiAgfVxcbn1cXG48L3NjcmlwdD5cXG5cXG48c3R5bGU+XFxuXFxuLmxpc3QgLm9jcmQtcHJvamVjdC1saXN0LWl0ZW0ge1xcbiAgbWF4LXdpZHRoOiAzMHJlbTtcXG4gIG1heC1oZWlnaHQ6IDMwcmVtO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcblxcbjwvc3R5bGU+XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG5cbi8vIGV4cG9ydHNcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXI/c291cmNlTWFwIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3N0eWxlLWNvbXBpbGVyP3tcInZ1ZVwiOnRydWUsXCJpZFwiOlwiZGF0YS12LWExNWMzNWYwXCIsXCJzY29wZWRcIjpmYWxzZSxcImhhc0lubGluZUNvbmZpZ1wiOmZhbHNlfSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXN0eWxlcyZpbmRleD0wIS4vc3JjL09jcmRQcm9qZWN0TGlzdC52dWVcbi8vIG1vZHVsZSBpZCA9IDIzN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///237\n");
+eval("exports = module.exports = __webpack_require__(22)(true);\n// imports\n\n\n// module\nexports.push([module.i, \"\\n.list .ocrd-project-list-item {\\n  max-width: 30rem;\\n  max-height: 30rem;\\n  overflow: auto;\\n}\\n\\n\", \"\", {\"version\":3,\"sources\":[\"/data/monorepo/ocrd-kwalitee/webapp/src/src/OcrdProjectList.vue\"],\"names\":[],\"mappings\":\";AAkFA;EACA,iBAAA;EACA,kBAAA;EACA,eAAA;CACA\",\"file\":\"OcrdProjectList.vue\",\"sourcesContent\":[\"<template>\\n  <div>\\n    <b-row>\\n      <b-button v-b-toggle.project-controls class=\\\"m-1\\\">Toggle Controls</b-button>\\n      <b-collapse id=\\\"project-controls\\\">\\n        <b-container>\\n          <b-row>\\n            <b-form-checkbox v-model=\\\"show_unofficial\\\" name=\\\"check-button\\\" switch>\\n            Unofficial projects <b>({{ checked ? \\\"Show\\\" : \\\"hide\\\" }})</b>\\n            </b-form-checkbox>\\n          </b-row>\\n          <b-row>\\n            Filter by name: <input type=\\\"text\\\" v-model=\\\"name_filter\\\"/> (Showing {{ filtered_projects.length }} of {{ projects.length}} projects)\\n          </b-row>\\n          <b-row>\\n            Tabs: <b-button @click=\\\"tabIndex -= 1\\\">&lt;</b-button> <b-button @click=\\\"tabIndex += 1\\\">&gt;</b-button>\\n          </b-row>\\n        </b-container>\\n      </b-collapse>\\n    </b-row>\\n    <b-row class=\\\"list\\\">\\n      <ocrd-project-list-item\\n        v-for=\\\"project,idx in filtered_projects\\\"\\n        :key=\\\"project.org_plus_name\\\"\\n        :project=\\\"project\\\"\\n        :tabIndex=\\\"tabIndex\\\"\\n        :projectIndex=\\\"idx\\\"\\n      >\\n      </ocrd-project-list-item>\\n    </b-row>\\n\\n    <b-modal id=\\\"project-modal\\\"\\n             size=\\\"xl\\\"\\n             :hide-header=\\\"true\\\"\\n             :hide-footer=\\\"true\\\"\\n      >\\n      <ocrd-project-list-item\\n        :project=\\\"projects[$root.modalProjectIndex]\\\"\\n        :projectIndex=\\\"$root.modalProjectIndex\\\"\\n        :modal=\\\"true\\\"\\n        >\\n      </ocrd-project-list-item>\\n    </b-modal>\\n  </div>\\n</template>\\n\\n<script>\\nimport OcrdProjectListItem from './OcrdProjectListItem.vue'\\nexport default {\\n  data() {\\n    return {\\n      name_filter: '',\\n      show_unofficial: true,\\n      tabIndex: 0,\\n    }\\n  },\\n  computed: {\\n    filtered_projects() {\\n      return this.projects.filter(project => {\\n        if (!(this.show_unofficial || project.official)) {\\n          return false\\n        }\\n        return project.name.toLowerCase().includes(this.name_filter.toLowerCase())\\n      })\\n    }\\n  },\\n  components: {\\n    OcrdProjectListItem\\n  },\\n  props: {\\n    projects: {required: true}\\n  },\\n  methods: {\\n    switchTab(delta) {\\n      this.tabIndex += delta\\n    }\\n  }\\n}\\n</script>\\n\\n<style>\\n\\n.list .ocrd-project-list-item {\\n  max-width: 30rem;\\n  max-height: 30rem;\\n  overflow: auto;\\n}\\n\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n\n// exports\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvT2NyZFByb2plY3RMaXN0LnZ1ZT85NzVmIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJCQUEyQixtQkFBTyxDQUFDLEVBQTRDO0FBQy9FOzs7QUFHQTtBQUNBLGNBQWMsUUFBUyxvQ0FBb0MscUJBQXFCLHNCQUFzQixtQkFBbUIsR0FBRyxZQUFZLGtIQUFrSCxNQUFNLFdBQVcsV0FBVyxVQUFVLGtZQUFrWSxpQ0FBaUMsb0tBQW9LLDRCQUE0QixNQUFNLGtCQUFrQiw0R0FBNEcsbURBQW1ELHUyQkFBdTJCLFlBQVksY0FBYyxpRkFBaUYsS0FBSyxnQkFBZ0IsMkJBQTJCLGdEQUFnRCw0REFBNEQsbUNBQW1DLDZGQUE2RixRQUFRLEtBQUssa0JBQWtCLDhCQUE4QixhQUFhLGlCQUFpQixlQUFlLEtBQUssZUFBZSx3QkFBd0IscUNBQXFDLEtBQUssR0FBRyx5REFBeUQscUJBQXFCLHNCQUFzQixtQkFBbUIsR0FBRyxpQ0FBaUM7O0FBRXRvRiIsImZpbGUiOiIyMzcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvbGliL2Nzcy1iYXNlLmpzXCIpKHRydWUpO1xuLy8gaW1wb3J0c1xuXG5cbi8vIG1vZHVsZVxuZXhwb3J0cy5wdXNoKFttb2R1bGUuaWQsIFwiXFxuLmxpc3QgLm9jcmQtcHJvamVjdC1saXN0LWl0ZW0ge1xcbiAgbWF4LXdpZHRoOiAzMHJlbTtcXG4gIG1heC1oZWlnaHQ6IDMwcmVtO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcblxcblwiLCBcIlwiLCB7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCIvZGF0YS9tb25vcmVwby9vY3JkLWt3YWxpdGVlL3dlYmFwcC9zcmMvc3JjL09jcmRQcm9qZWN0TGlzdC52dWVcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIjtBQWtGQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0NBQ0FcIixcImZpbGVcIjpcIk9jcmRQcm9qZWN0TGlzdC52dWVcIixcInNvdXJjZXNDb250ZW50XCI6W1wiPHRlbXBsYXRlPlxcbiAgPGRpdj5cXG4gICAgPGItcm93PlxcbiAgICAgIDxiLWJ1dHRvbiB2LWItdG9nZ2xlLnByb2plY3QtY29udHJvbHMgY2xhc3M9XFxcIm0tMVxcXCI+VG9nZ2xlIENvbnRyb2xzPC9iLWJ1dHRvbj5cXG4gICAgICA8Yi1jb2xsYXBzZSBpZD1cXFwicHJvamVjdC1jb250cm9sc1xcXCI+XFxuICAgICAgICA8Yi1jb250YWluZXI+XFxuICAgICAgICAgIDxiLXJvdz5cXG4gICAgICAgICAgICA8Yi1mb3JtLWNoZWNrYm94IHYtbW9kZWw9XFxcInNob3dfdW5vZmZpY2lhbFxcXCIgbmFtZT1cXFwiY2hlY2stYnV0dG9uXFxcIiBzd2l0Y2g+XFxuICAgICAgICAgICAgVW5vZmZpY2lhbCBwcm9qZWN0cyA8Yj4oe3sgY2hlY2tlZCA/IFxcXCJTaG93XFxcIiA6IFxcXCJoaWRlXFxcIiB9fSk8L2I+XFxuICAgICAgICAgICAgPC9iLWZvcm0tY2hlY2tib3g+XFxuICAgICAgICAgIDwvYi1yb3c+XFxuICAgICAgICAgIDxiLXJvdz5cXG4gICAgICAgICAgICBGaWx0ZXIgYnkgbmFtZTogPGlucHV0IHR5cGU9XFxcInRleHRcXFwiIHYtbW9kZWw9XFxcIm5hbWVfZmlsdGVyXFxcIi8+IChTaG93aW5nIHt7IGZpbHRlcmVkX3Byb2plY3RzLmxlbmd0aCB9fSBvZiB7eyBwcm9qZWN0cy5sZW5ndGh9fSBwcm9qZWN0cylcXG4gICAgICAgICAgPC9iLXJvdz5cXG4gICAgICAgICAgPGItcm93PlxcbiAgICAgICAgICAgIFRhYnM6IDxiLWJ1dHRvbiBAY2xpY2s9XFxcInRhYkluZGV4IC09IDFcXFwiPiZsdDs8L2ItYnV0dG9uPiA8Yi1idXR0b24gQGNsaWNrPVxcXCJ0YWJJbmRleCArPSAxXFxcIj4mZ3Q7PC9iLWJ1dHRvbj5cXG4gICAgICAgICAgPC9iLXJvdz5cXG4gICAgICAgIDwvYi1jb250YWluZXI+XFxuICAgICAgPC9iLWNvbGxhcHNlPlxcbiAgICA8L2Itcm93PlxcbiAgICA8Yi1yb3cgY2xhc3M9XFxcImxpc3RcXFwiPlxcbiAgICAgIDxvY3JkLXByb2plY3QtbGlzdC1pdGVtXFxuICAgICAgICB2LWZvcj1cXFwicHJvamVjdCxpZHggaW4gZmlsdGVyZWRfcHJvamVjdHNcXFwiXFxuICAgICAgICA6a2V5PVxcXCJwcm9qZWN0Lm9yZ19wbHVzX25hbWVcXFwiXFxuICAgICAgICA6cHJvamVjdD1cXFwicHJvamVjdFxcXCJcXG4gICAgICAgIDp0YWJJbmRleD1cXFwidGFiSW5kZXhcXFwiXFxuICAgICAgICA6cHJvamVjdEluZGV4PVxcXCJpZHhcXFwiXFxuICAgICAgPlxcbiAgICAgIDwvb2NyZC1wcm9qZWN0LWxpc3QtaXRlbT5cXG4gICAgPC9iLXJvdz5cXG5cXG4gICAgPGItbW9kYWwgaWQ9XFxcInByb2plY3QtbW9kYWxcXFwiXFxuICAgICAgICAgICAgIHNpemU9XFxcInhsXFxcIlxcbiAgICAgICAgICAgICA6aGlkZS1oZWFkZXI9XFxcInRydWVcXFwiXFxuICAgICAgICAgICAgIDpoaWRlLWZvb3Rlcj1cXFwidHJ1ZVxcXCJcXG4gICAgICA+XFxuICAgICAgPG9jcmQtcHJvamVjdC1saXN0LWl0ZW1cXG4gICAgICAgIDpwcm9qZWN0PVxcXCJwcm9qZWN0c1skcm9vdC5tb2RhbFByb2plY3RJbmRleF1cXFwiXFxuICAgICAgICA6cHJvamVjdEluZGV4PVxcXCIkcm9vdC5tb2RhbFByb2plY3RJbmRleFxcXCJcXG4gICAgICAgIDptb2RhbD1cXFwidHJ1ZVxcXCJcXG4gICAgICAgID5cXG4gICAgICA8L29jcmQtcHJvamVjdC1saXN0LWl0ZW0+XFxuICAgIDwvYi1tb2RhbD5cXG4gIDwvZGl2PlxcbjwvdGVtcGxhdGU+XFxuXFxuPHNjcmlwdD5cXG5pbXBvcnQgT2NyZFByb2plY3RMaXN0SXRlbSBmcm9tICcuL09jcmRQcm9qZWN0TGlzdEl0ZW0udnVlJ1xcbmV4cG9ydCBkZWZhdWx0IHtcXG4gIGRhdGEoKSB7XFxuICAgIHJldHVybiB7XFxuICAgICAgbmFtZV9maWx0ZXI6ICcnLFxcbiAgICAgIHNob3dfdW5vZmZpY2lhbDogdHJ1ZSxcXG4gICAgICB0YWJJbmRleDogMCxcXG4gICAgfVxcbiAgfSxcXG4gIGNvbXB1dGVkOiB7XFxuICAgIGZpbHRlcmVkX3Byb2plY3RzKCkge1xcbiAgICAgIHJldHVybiB0aGlzLnByb2plY3RzLmZpbHRlcihwcm9qZWN0ID0+IHtcXG4gICAgICAgIGlmICghKHRoaXMuc2hvd191bm9mZmljaWFsIHx8IHByb2plY3Qub2ZmaWNpYWwpKSB7XFxuICAgICAgICAgIHJldHVybiBmYWxzZVxcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHByb2plY3QubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMubmFtZV9maWx0ZXIudG9Mb3dlckNhc2UoKSlcXG4gICAgICB9KVxcbiAgICB9XFxuICB9LFxcbiAgY29tcG9uZW50czoge1xcbiAgICBPY3JkUHJvamVjdExpc3RJdGVtXFxuICB9LFxcbiAgcHJvcHM6IHtcXG4gICAgcHJvamVjdHM6IHtyZXF1aXJlZDogdHJ1ZX1cXG4gIH0sXFxuICBtZXRob2RzOiB7XFxuICAgIHN3aXRjaFRhYihkZWx0YSkge1xcbiAgICAgIHRoaXMudGFiSW5kZXggKz0gZGVsdGFcXG4gICAgfVxcbiAgfVxcbn1cXG48L3NjcmlwdD5cXG5cXG48c3R5bGU+XFxuXFxuLmxpc3QgLm9jcmQtcHJvamVjdC1saXN0LWl0ZW0ge1xcbiAgbWF4LXdpZHRoOiAzMHJlbTtcXG4gIG1heC1oZWlnaHQ6IDMwcmVtO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcblxcbjwvc3R5bGU+XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG5cbi8vIGV4cG9ydHNcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXI/c291cmNlTWFwIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3N0eWxlLWNvbXBpbGVyP3tcInZ1ZVwiOnRydWUsXCJpZFwiOlwiZGF0YS12LWExNWMzNWYwXCIsXCJzY29wZWRcIjpmYWxzZSxcImhhc0lubGluZUNvbmZpZ1wiOmZhbHNlfSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXN0eWxlcyZpbmRleD0wIS4vc3JjL09jcmRQcm9qZWN0TGlzdC52dWVcbi8vIG1vZHVsZSBpZCA9IDIzN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///237\n");
 
 /***/ }),
 /* 238 */
@@ -1760,7 +1760,7 @@ eval("var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    [\n      _c(\n        \"b-row\",\n        [\n          _c(\n            \"b-button\",\n            {\n              directives: [\n                {\n                  name: \"b-toggle\",\n                  rawName: \"v-b-toggle.project-controls\",\n                  modifiers: { \"project-controls\": true }\n                }\n              ],\n              staticClass: \"m-1\"\n            },\n            [_vm._v(\"Toggle Controls\")]\n          ),\n          _vm._v(\" \"),\n          _c(\n            \"b-collapse\",\n            { attrs: { id: \"project-controls\" } },\n            [\n              _c(\n                \"b-container\",\n                [\n                  _c(\"b-row\", [\n                    _vm._v(\"\\n          Filter by name: \"),\n                    _c(\"input\", {\n                      directives: [\n                        {\n                          name: \"model\",\n                          rawName: \"v-model\",\n                          value: _vm.name_filter,\n                          expression: \"name_filter\"\n                        }\n                      ],\n                      attrs: { type: \"text\" },\n                      domProps: { value: _vm.name_filter },\n                      on: {\n                        input: function($event) {\n                          if ($event.target.composing) {\n                            return\n                          }\n                          _vm.name_filter = $event.target.value\n                        }\n                      }\n                    }),\n                    _vm._v(\n                      \" (Showing \" +\n                        _vm._s(_vm.filtered_projects.length) +\n                        \" of \" +\n                        _vm._s(_vm.projects.length) +\n                        \" projects)\\n        \"\n                    )\n                  ]),\n                  _vm._v(\" \"),\n                  _c(\n                    \"b-row\",\n                    [\n                      _vm._v(\"\\n          Tabs: \"),\n                      _c(\n                        \"b-button\",\n                        {\n                          on: {\n                            click: function($event) {\n                              _vm.tabIndex -= 1\n                            }\n                          }\n                        },\n                        [_vm._v(\"<\")]\n                      ),\n                      _vm._v(\" \"),\n                      _c(\n                        \"b-button\",\n                        {\n                          on: {\n                            click: function($event) {\n                              _vm.tabIndex += 1\n                            }\n                          }\n                        },\n                        [_vm._v(\">\")]\n                      )\n                    ],\n                    1\n                  )\n                ],\n                1\n              )\n            ],\n            1\n          )\n        ],\n        1\n      ),\n      _vm._v(\" \"),\n      _c(\n        \"b-row\",\n        { staticClass: \"list\" },\n        _vm._l(_vm.filtered_projects, function(project, idx) {\n          return _c(\"ocrd-project-list-item\", {\n            key: project.org_plus_name,\n            attrs: {\n              project: project,\n              tabIndex: _vm.tabIndex,\n              projectIndex: idx\n            }\n          })\n        }),\n        1\n      ),\n      _vm._v(\" \"),\n      _c(\n        \"b-modal\",\n        {\n          attrs: {\n            id: \"project-modal\",\n            size: \"xl\",\n            \"hide-header\": true,\n            \"hide-footer\": true\n          }\n        },\n        [\n          _c(\"ocrd-project-list-item\", {\n            attrs: {\n              project: _vm.projects[_vm.$root.modalProjectIndex],\n              projectIndex: _vm.$root.modalProjectIndex,\n              modal: true\n            }\n          })\n        ],\n        1\n      )\n    ],\n    1\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\nif (false) {\n  module.hot.accept()\n  if (module.hot.data) {\n    require(\"vue-hot-reload-api\")      .rerender(\"data-v-a15c35f0\", esExports)\n  }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvT2NyZFByb2plY3RMaXN0LnZ1ZT9kYTZjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEI7QUFDOUI7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFNBQVMseUJBQXlCLEVBQUU7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGVBQWU7QUFDN0MsaUNBQWlDLHlCQUF5QjtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLHNCQUFzQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ0Ysa0VBQVM7QUFDeEIsSUFBSSxLQUFVO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIyNDQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZGl2XCIsXG4gICAgW1xuICAgICAgX2MoXG4gICAgICAgIFwiYi1yb3dcIixcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFxuICAgICAgICAgICAgXCJiLWJ1dHRvblwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogXCJiLXRvZ2dsZVwiLFxuICAgICAgICAgICAgICAgICAgcmF3TmFtZTogXCJ2LWItdG9nZ2xlLnByb2plY3QtY29udHJvbHNcIixcbiAgICAgICAgICAgICAgICAgIG1vZGlmaWVyczogeyBcInByb2plY3QtY29udHJvbHNcIjogdHJ1ZSB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJtLTFcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtfdm0uX3YoXCJUb2dnbGUgQ29udHJvbHNcIildXG4gICAgICAgICAgKSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF9jKFxuICAgICAgICAgICAgXCJiLWNvbGxhcHNlXCIsXG4gICAgICAgICAgICB7IGF0dHJzOiB7IGlkOiBcInByb2plY3QtY29udHJvbHNcIiB9IH0sXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgIFwiYi1jb250YWluZXJcIixcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBfYyhcImItcm93XCIsIFtcbiAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiXFxuICAgICAgICAgIEZpbHRlciBieSBuYW1lOiBcIiksXG4gICAgICAgICAgICAgICAgICAgIF9jKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJtb2RlbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtbW9kZWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IF92bS5uYW1lX2ZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogXCJuYW1lX2ZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyczogeyB0eXBlOiBcInRleHRcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgIGRvbVByb3BzOiB7IHZhbHVlOiBfdm0ubmFtZV9maWx0ZXIgfSxcbiAgICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGV2ZW50LnRhcmdldC5jb21wb3NpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0ubmFtZV9maWx0ZXIgPSAkZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFxuICAgICAgICAgICAgICAgICAgICAgIFwiIChTaG93aW5nIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fcyhfdm0uZmlsdGVyZWRfcHJvamVjdHMubGVuZ3RoKSArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiBvZiBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3MoX3ZtLnByb2plY3RzLmxlbmd0aCkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCIgcHJvamVjdHMpXFxuICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgXCJiLXJvd1wiLFxuICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiXFxuICAgICAgICAgIFRhYnM6IFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYi1idXR0b25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0udGFiSW5kZXggLT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtfdm0uX3YoXCI8XCIpXVxuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYi1idXR0b25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0udGFiSW5kZXggKz0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtfdm0uX3YoXCI+XCIpXVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgMVxuICAgICAgICAgIClcbiAgICAgICAgXSxcbiAgICAgICAgMVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJiLXJvd1wiLFxuICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImxpc3RcIiB9LFxuICAgICAgICBfdm0uX2woX3ZtLmZpbHRlcmVkX3Byb2plY3RzLCBmdW5jdGlvbihwcm9qZWN0LCBpZHgpIHtcbiAgICAgICAgICByZXR1cm4gX2MoXCJvY3JkLXByb2plY3QtbGlzdC1pdGVtXCIsIHtcbiAgICAgICAgICAgIGtleTogcHJvamVjdC5vcmdfcGx1c19uYW1lLFxuICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgcHJvamVjdDogcHJvamVjdCxcbiAgICAgICAgICAgICAgdGFiSW5kZXg6IF92bS50YWJJbmRleCxcbiAgICAgICAgICAgICAgcHJvamVjdEluZGV4OiBpZHhcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9KSxcbiAgICAgICAgMVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJiLW1vZGFsXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgaWQ6IFwicHJvamVjdC1tb2RhbFwiLFxuICAgICAgICAgICAgc2l6ZTogXCJ4bFwiLFxuICAgICAgICAgICAgXCJoaWRlLWhlYWRlclwiOiB0cnVlLFxuICAgICAgICAgICAgXCJoaWRlLWZvb3RlclwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJvY3JkLXByb2plY3QtbGlzdC1pdGVtXCIsIHtcbiAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgIHByb2plY3Q6IF92bS5wcm9qZWN0c1tfdm0uJHJvb3QubW9kYWxQcm9qZWN0SW5kZXhdLFxuICAgICAgICAgICAgICBwcm9qZWN0SW5kZXg6IF92bS4kcm9vdC5tb2RhbFByb2plY3RJbmRleCxcbiAgICAgICAgICAgICAgbW9kYWw6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICBdLFxuICAgICAgICAxXG4gICAgICApXG4gICAgXSxcbiAgICAxXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG52YXIgZXNFeHBvcnRzID0geyByZW5kZXI6IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnMgfVxuZXhwb3J0IGRlZmF1bHQgZXNFeHBvcnRzXG5pZiAobW9kdWxlLmhvdCkge1xuICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gIGlmIChtb2R1bGUuaG90LmRhdGEpIHtcbiAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpICAgICAgLnJlcmVuZGVyKFwiZGF0YS12LWExNWMzNWYwXCIsIGVzRXhwb3J0cylcbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyP3tcImlkXCI6XCJkYXRhLXYtYTE1YzM1ZjBcIixcImhhc1Njb3BlZFwiOmZhbHNlLFwiYnVibGVcIjp7XCJ0cmFuc2Zvcm1zXCI6e319fSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvci5qcz90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9zcmMvT2NyZFByb2plY3RMaXN0LnZ1ZVxuLy8gbW9kdWxlIGlkID0gMjQ0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///244\n");
+eval("var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    [\n      _c(\n        \"b-row\",\n        [\n          _c(\n            \"b-button\",\n            {\n              directives: [\n                {\n                  name: \"b-toggle\",\n                  rawName: \"v-b-toggle.project-controls\",\n                  modifiers: { \"project-controls\": true }\n                }\n              ],\n              staticClass: \"m-1\"\n            },\n            [_vm._v(\"Toggle Controls\")]\n          ),\n          _vm._v(\" \"),\n          _c(\n            \"b-collapse\",\n            { attrs: { id: \"project-controls\" } },\n            [\n              _c(\n                \"b-container\",\n                [\n                  _c(\n                    \"b-row\",\n                    [\n                      _c(\n                        \"b-form-checkbox\",\n                        {\n                          attrs: { name: \"check-button\", switch: \"\" },\n                          model: {\n                            value: _vm.show_unofficial,\n                            callback: function($$v) {\n                              _vm.show_unofficial = $$v\n                            },\n                            expression: \"show_unofficial\"\n                          }\n                        },\n                        [\n                          _vm._v(\"\\n          Unofficial projects \"),\n                          _c(\"b\", [\n                            _vm._v(\n                              \"(\" + _vm._s(_vm.checked ? \"Show\" : \"hide\") + \")\"\n                            )\n                          ])\n                        ]\n                      )\n                    ],\n                    1\n                  ),\n                  _vm._v(\" \"),\n                  _c(\"b-row\", [\n                    _vm._v(\"\\n          Filter by name: \"),\n                    _c(\"input\", {\n                      directives: [\n                        {\n                          name: \"model\",\n                          rawName: \"v-model\",\n                          value: _vm.name_filter,\n                          expression: \"name_filter\"\n                        }\n                      ],\n                      attrs: { type: \"text\" },\n                      domProps: { value: _vm.name_filter },\n                      on: {\n                        input: function($event) {\n                          if ($event.target.composing) {\n                            return\n                          }\n                          _vm.name_filter = $event.target.value\n                        }\n                      }\n                    }),\n                    _vm._v(\n                      \" (Showing \" +\n                        _vm._s(_vm.filtered_projects.length) +\n                        \" of \" +\n                        _vm._s(_vm.projects.length) +\n                        \" projects)\\n        \"\n                    )\n                  ]),\n                  _vm._v(\" \"),\n                  _c(\n                    \"b-row\",\n                    [\n                      _vm._v(\"\\n          Tabs: \"),\n                      _c(\n                        \"b-button\",\n                        {\n                          on: {\n                            click: function($event) {\n                              _vm.tabIndex -= 1\n                            }\n                          }\n                        },\n                        [_vm._v(\"<\")]\n                      ),\n                      _vm._v(\" \"),\n                      _c(\n                        \"b-button\",\n                        {\n                          on: {\n                            click: function($event) {\n                              _vm.tabIndex += 1\n                            }\n                          }\n                        },\n                        [_vm._v(\">\")]\n                      )\n                    ],\n                    1\n                  )\n                ],\n                1\n              )\n            ],\n            1\n          )\n        ],\n        1\n      ),\n      _vm._v(\" \"),\n      _c(\n        \"b-row\",\n        { staticClass: \"list\" },\n        _vm._l(_vm.filtered_projects, function(project, idx) {\n          return _c(\"ocrd-project-list-item\", {\n            key: project.org_plus_name,\n            attrs: {\n              project: project,\n              tabIndex: _vm.tabIndex,\n              projectIndex: idx\n            }\n          })\n        }),\n        1\n      ),\n      _vm._v(\" \"),\n      _c(\n        \"b-modal\",\n        {\n          attrs: {\n            id: \"project-modal\",\n            size: \"xl\",\n            \"hide-header\": true,\n            \"hide-footer\": true\n          }\n        },\n        [\n          _c(\"ocrd-project-list-item\", {\n            attrs: {\n              project: _vm.projects[_vm.$root.modalProjectIndex],\n              projectIndex: _vm.$root.modalProjectIndex,\n              modal: true\n            }\n          })\n        ],\n        1\n      )\n    ],\n    1\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\nif (false) {\n  module.hot.accept()\n  if (module.hot.data) {\n    require(\"vue-hot-reload-api\")      .rerender(\"data-v-a15c35f0\", esExports)\n  }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvT2NyZFByb2plY3RMaXN0LnZ1ZT9kYTZjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEI7QUFDOUI7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFNBQVMseUJBQXlCLEVBQUU7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsbUNBQW1DO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGVBQWU7QUFDN0MsaUNBQWlDLHlCQUF5QjtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLHNCQUFzQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ0Ysa0VBQVM7QUFDeEIsSUFBSSxLQUFVO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIyNDQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZGl2XCIsXG4gICAgW1xuICAgICAgX2MoXG4gICAgICAgIFwiYi1yb3dcIixcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFxuICAgICAgICAgICAgXCJiLWJ1dHRvblwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogXCJiLXRvZ2dsZVwiLFxuICAgICAgICAgICAgICAgICAgcmF3TmFtZTogXCJ2LWItdG9nZ2xlLnByb2plY3QtY29udHJvbHNcIixcbiAgICAgICAgICAgICAgICAgIG1vZGlmaWVyczogeyBcInByb2plY3QtY29udHJvbHNcIjogdHJ1ZSB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJtLTFcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtfdm0uX3YoXCJUb2dnbGUgQ29udHJvbHNcIildXG4gICAgICAgICAgKSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF9jKFxuICAgICAgICAgICAgXCJiLWNvbGxhcHNlXCIsXG4gICAgICAgICAgICB7IGF0dHJzOiB7IGlkOiBcInByb2plY3QtY29udHJvbHNcIiB9IH0sXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgIFwiYi1jb250YWluZXJcIixcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgXCJiLXJvd1wiLFxuICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgICAgICAgICBcImItZm9ybS1jaGVja2JveFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyczogeyBuYW1lOiBcImNoZWNrLWJ1dHRvblwiLCBzd2l0Y2g6IFwiXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWw6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogX3ZtLnNob3dfdW5vZmZpY2lhbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24oJCR2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uc2hvd191bm9mZmljaWFsID0gJCR2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uOiBcInNob3dfdW5vZmZpY2lhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fdihcIlxcbiAgICAgICAgICBVbm9mZmljaWFsIHByb2plY3RzIFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgX2MoXCJiXCIsIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIihcIiArIF92bS5fcyhfdm0uY2hlY2tlZCA/IFwiU2hvd1wiIDogXCJoaWRlXCIpICsgXCIpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgICAgIF9jKFwiYi1yb3dcIiwgW1xuICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCJcXG4gICAgICAgICAgRmlsdGVyIGJ5IG5hbWU6IFwiKSxcbiAgICAgICAgICAgICAgICAgICAgX2MoXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIm1vZGVsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi1tb2RlbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogX3ZtLm5hbWVfZmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uOiBcIm5hbWVfZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IHR5cGU6IFwidGV4dFwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgZG9tUHJvcHM6IHsgdmFsdWU6IF92bS5uYW1lX2ZpbHRlciB9LFxuICAgICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dDogZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZXZlbnQudGFyZ2V0LmNvbXBvc2luZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5uYW1lX2ZpbHRlciA9ICRldmVudC50YXJnZXQudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXG4gICAgICAgICAgICAgICAgICAgICAgXCIgKFNob3dpbmcgXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl9zKF92bS5maWx0ZXJlZF9wcm9qZWN0cy5sZW5ndGgpICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIG9mIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fcyhfdm0ucHJvamVjdHMubGVuZ3RoKSArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiBwcm9qZWN0cylcXG4gICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgICBcImItcm93XCIsXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCJcXG4gICAgICAgICAgVGFiczogXCIpLFxuICAgICAgICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJiLWJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS50YWJJbmRleCAtPSAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgW192bS5fdihcIjxcIildXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJiLWJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS50YWJJbmRleCArPSAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgW192bS5fdihcIj5cIildXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAxXG4gICAgICAgICAgKVxuICAgICAgICBdLFxuICAgICAgICAxXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImItcm93XCIsXG4gICAgICAgIHsgc3RhdGljQ2xhc3M6IFwibGlzdFwiIH0sXG4gICAgICAgIF92bS5fbChfdm0uZmlsdGVyZWRfcHJvamVjdHMsIGZ1bmN0aW9uKHByb2plY3QsIGlkeCkge1xuICAgICAgICAgIHJldHVybiBfYyhcIm9jcmQtcHJvamVjdC1saXN0LWl0ZW1cIiwge1xuICAgICAgICAgICAga2V5OiBwcm9qZWN0Lm9yZ19wbHVzX25hbWUsXG4gICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICBwcm9qZWN0OiBwcm9qZWN0LFxuICAgICAgICAgICAgICB0YWJJbmRleDogX3ZtLnRhYkluZGV4LFxuICAgICAgICAgICAgICBwcm9qZWN0SW5kZXg6IGlkeFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pLFxuICAgICAgICAxXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImItbW9kYWxcIixcbiAgICAgICAge1xuICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICBpZDogXCJwcm9qZWN0LW1vZGFsXCIsXG4gICAgICAgICAgICBzaXplOiBcInhsXCIsXG4gICAgICAgICAgICBcImhpZGUtaGVhZGVyXCI6IHRydWUsXG4gICAgICAgICAgICBcImhpZGUtZm9vdGVyXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcIm9jcmQtcHJvamVjdC1saXN0LWl0ZW1cIiwge1xuICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgcHJvamVjdDogX3ZtLnByb2plY3RzW192bS4kcm9vdC5tb2RhbFByb2plY3RJbmRleF0sXG4gICAgICAgICAgICAgIHByb2plY3RJbmRleDogX3ZtLiRyb290Lm1vZGFsUHJvamVjdEluZGV4LFxuICAgICAgICAgICAgICBtb2RhbDogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIF0sXG4gICAgICAgIDFcbiAgICAgIClcbiAgICBdLFxuICAgIDFcbiAgKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcbnZhciBlc0V4cG9ydHMgPSB7IHJlbmRlcjogcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucyB9XG5leHBvcnQgZGVmYXVsdCBlc0V4cG9ydHNcbmlmIChtb2R1bGUuaG90KSB7XG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKG1vZHVsZS5ob3QuZGF0YSkge1xuICAgIHJlcXVpcmUoXCJ2dWUtaG90LXJlbG9hZC1hcGlcIikgICAgICAucmVyZW5kZXIoXCJkYXRhLXYtYTE1YzM1ZjBcIiwgZXNFeHBvcnRzKVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/e1wiaWRcIjpcImRhdGEtdi1hMTVjMzVmMFwiLFwiaGFzU2NvcGVkXCI6ZmFsc2UsXCJidWJsZVwiOntcInRyYW5zZm9ybXNcIjp7fX19IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9dGVtcGxhdGUmaW5kZXg9MCEuL3NyYy9PY3JkUHJvamVjdExpc3QudnVlXG4vLyBtb2R1bGUgaWQgPSAyNDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///244\n");
 
 /***/ }),
 /* 245 */
diff --git a/webapp/src/App.vue b/webapp/src/App.vue
index abb4416..a5de04f 100644
--- a/webapp/src/App.vue
+++ b/webapp/src/App.vue
@@ -47,6 +47,7 @@ export default {
           all.push(...Object.values(project.ocrd_tool.tools).map(tool => {
             tool.idx = tool_idx++
             tool.part_of = project.org_plus_name
+            tool.official = project.official
             return tool
           }))
         return all
diff --git a/webapp/src/OcrdProcessorList.vue b/webapp/src/OcrdProcessorList.vue
index cc6602f..8aeab30 100644
--- a/webapp/src/OcrdProcessorList.vue
+++ b/webapp/src/OcrdProcessorList.vue
@@ -4,6 +4,11 @@
       <b-button v-b-toggle.processor-controls class="m-1">Toggle Controls</b-button>
       <b-collapse id="processor-controls">
         <b-container>
+          <b-row>
+            <b-form-checkbox v-model="show_unofficial" name="check-button" switch>
+            Unofficial processors <b>({{ checked ? "Show" : "hide" }})</b>
+            </b-form-checkbox>
+          </b-row>
           <b-row>
             Filter by category:
             <b-badge
@@ -48,6 +53,7 @@ export default {
   data() {
     return {
       step_filter: [],
+      show_unofficial: true,
       category_filter: {require: true},
       category_filter: [],
     }
@@ -66,6 +72,9 @@ export default {
           if (tool.categories.indexOf(category_filter) == -1)
             return false
         }
+        if (!(this.show_unofficial || tool.official)) {
+          return false
+        }
         return true
       })
     },
diff --git a/webapp/src/OcrdProjectList.vue b/webapp/src/OcrdProjectList.vue
index 725595e..64711b2 100644
--- a/webapp/src/OcrdProjectList.vue
+++ b/webapp/src/OcrdProjectList.vue
@@ -4,6 +4,11 @@
       <b-button v-b-toggle.project-controls class="m-1">Toggle Controls</b-button>
       <b-collapse id="project-controls">
         <b-container>
+          <b-row>
+            <b-form-checkbox v-model="show_unofficial" name="check-button" switch>
+            Unofficial projects <b>({{ checked ? "Show" : "hide" }})</b>
+            </b-form-checkbox>
+          </b-row>
           <b-row>
             Filter by name: <input type="text" v-model="name_filter"/> (Showing {{ filtered_projects.length }} of {{ projects.length}} projects)
           </b-row>
@@ -45,12 +50,18 @@ export default {
   data() {
     return {
       name_filter: '',
+      show_unofficial: true,
       tabIndex: 0,
     }
   },
   computed: {
     filtered_projects() {
-      return this.projects.filter(project => project.name.toLowerCase().includes(this.name_filter.toLowerCase()))
+      return this.projects.filter(project => {
+        if (!(this.show_unofficial || project.official)) {
+          return false
+        }
+        return project.name.toLowerCase().includes(this.name_filter.toLowerCase())
+      })
     }
   },
   components: {
-- 
GitLab