pragma-schema
Advanced tools
Comparing version 1.0.20 to 1.0.21
@@ -217,6 +217,5 @@ define(["exports"], function (exports) { | ||
add(id, name) { | ||
const templateId = id == undefined ? this.length : id; | ||
const templateName = name == undefined ? `template ${templateId}` : name; | ||
const itemToAdd = new Template(templateId, templateName); | ||
add(id) { | ||
id == undefined ? this.length : id; | ||
const itemToAdd = new Template(id, `item ${id}`); | ||
this.push(itemToAdd); | ||
@@ -413,2 +412,2 @@ return itemToAdd; | ||
}); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVtYS5qcyJdLCJuYW1lcyI6WyJJZE9iamVjdCIsImNvbnN0cnVjdG9yIiwiaWQiLCJQZXJzcGVjdGl2ZSIsIm5hbWUiLCJpZEZpZWxkIiwiY2FjaGUiLCJhZ2dyZWdhdGUiLCJncm91cGluZyIsInNvcnRpbmciLCJkYXRhIiwiUGVyc3BlY3RpdmVEYXRhIiwidmlld3MiLCJWaWV3Q29sbGVjdGlvbiIsImNyZWF0ZUluc3RhbmNlIiwiUGVyc3BlY3RpdmVDb2xsZWN0aW9uIiwiQXJyYXkiLCJyZXN1bHQiLCJfX3Byb3RvX18iLCJwcm90b3R5cGUiLCJhZGQiLCJsZW5ndGgiLCJpdGVtVG9BZGQiLCJwdXNoIiwiTG9va3VwIiwicGVyc3BlY3RpdmUiLCJ2aWV3IiwicmVtb3RlIiwibWFwcGluZyIsIk1hcHBpbmdDb2xsZWN0aW9uIiwiQ29sdW1uIiwiZmllbGQiLCJ0aXRsZSIsIndpZHRoIiwiQ29sdW1uQ29sbGVjdGlvbiIsIlZpZXciLCJ0eXBlIiwiY29sdW1ucyIsIkxvb2t1cENvbGxlY3Rpb24iLCJ0YXJnZXQiLCJzb3VyY2UiLCJWYWxpZGF0aW9uIiwicnVsZXMiLCJhZGRSdWxlIiwicnVsZSIsInZhbHVlIiwicmVtb3ZlUnVsZSIsIlZhbGlkYXRpb25Db2xsZWN0aW9uIiwiRmllbGQiLCJsb29rdXAiLCJ2YWxpZGF0aW9ucyIsIkZpZWxkQ29sbGVjdGlvbiIsImJ5TmFtZSIsImZpbmQiLCJpdGVtIiwiRGF0YXNldCIsImZpZWxkcyIsIkRhdGFzZXRDb2xsZWN0aW9uIiwiZHNJZCIsInVuZGVmaW5lZCIsImRzTmFtZSIsIlRlbXBsYXRlIiwiZWxlbWVudHMiLCJUZW1wbGF0ZUNvbGxlY3Rpb24iLCJ0ZW1wbGF0ZUlkIiwidGVtcGxhdGVOYW1lIiwiRGF0YVNvdXJjZSIsInJlZmVyZW5jZSIsIlJlc291cmNlRGF0YVNvdXJjZSIsInJlc291cmNlIiwiUmVzb3VyY2VEYXRhU291cmNlSXRlbSIsIkRhdGFTb3VyY2VDb2xsZWN0aW9uIiwiYWRkVHlwZSIsImFkZFJlc291cmNlIiwiU2NoZW1hIiwicGVyc3BlY3RpdmVzIiwibG9va3VwcyIsImRhdGFzZXRzIiwiZGF0YXNvdXJjZXMiLCJ0ZW1wbGF0ZXMiLCJib2R5IiwiU2NoZW1hRWxlbWVudEZhY3RvcnkiLCJncm91cCIsImNoZWNrYm94IiwiYXR0cmlidXRlcyIsInN0eWxlcyIsImFkZEF0dHJpYnV0ZXMiLCJhZGRTdHlsZXMiLCJpbnB1dCIsInJlYWRvbmx5Iiwic2VsZWN0IiwiZGF0YVNvdXJjZUlkIiwibWVtbyIsInRlbXBsYXRlIiwiY2FyZCIsImh0bWxFbGVtZW50IiwiaHRtbFRhZyIsImNvbnRlbnQiLCJ2aXN1YWxpemF0aW9uIiwiZGF0YXNvdXJjZSIsIm9iaiJdLCJtYXBwaW5ncyI6Ijs7OztRQUFNQSxRLEdBQU4sTUFBTUEsUUFBTixDQUFlOztBQUdYQyxvQkFBWUMsRUFBWixFQUFnQjtBQUNaLGlCQUFLQSxFQUFMLEdBQVVBLEVBQVY7QUFDSDtBQUxVLEs7UUFRRkMsVyxXQUFBQSxXLEdBQU4sTUFBTUEsV0FBTixTQUEwQkgsUUFBMUIsQ0FBbUM7O0FBS3RDQyxvQkFBWUMsRUFBWixFQUFnQkUsSUFBaEIsRUFBc0JDLE9BQXRCLEVBQStCQyxLQUEvQixFQUFzQ0MsU0FBdEMsRUFBaURDLFFBQWpELEVBQTJEQyxPQUEzRCxFQUFvRTtBQUNoRSxrQkFBTVAsRUFBTjtBQUNBLGlCQUFLRSxJQUFMLEdBQVlBLElBQVo7QUFDQSxpQkFBSyxVQUFMLElBQW1CQyxPQUFuQjtBQUNBLGlCQUFLSyxJQUFMLEdBQVksSUFBSUMsZUFBSixDQUFvQkwsS0FBcEIsRUFBMkJDLFNBQTNCLEVBQXNDQyxRQUF0QyxFQUFnREMsT0FBaEQsQ0FBWjtBQUNBLGlCQUFLRyxLQUFMLEdBQWFDLGVBQWVDLGNBQWYsRUFBYjtBQUNIO0FBWHFDLEs7UUFjN0JDLHFCLFdBQUFBLHFCLEdBQU4sTUFBTUEscUJBQU4sU0FBb0NDLEtBQXBDLENBQTBDO0FBQzdDLGVBQU9GLGNBQVAsR0FBd0I7QUFDcEIsa0JBQU1HLFNBQVMsSUFBSUYscUJBQUosRUFBZjtBQUNBRSxtQkFBT0MsU0FBUCxHQUFtQkgsc0JBQXNCSSxTQUF6QztBQUNBLG1CQUFPRixNQUFQO0FBQ0g7O0FBRURHLFlBQUloQixJQUFKLEVBQVVDLE9BQVYsRUFBbUJDLEtBQW5CLEVBQTBCQyxTQUExQixFQUFxQ0MsUUFBckMsRUFBK0NDLE9BQS9DLEVBQXdEO0FBQ3BELGtCQUFNUCxLQUFLLEtBQUttQixNQUFoQjtBQUNBLGtCQUFNQyxZQUFZLElBQUluQixXQUFKLENBQWdCRCxFQUFoQixFQUFvQkUsSUFBcEIsRUFBMEJDLE9BQTFCLEVBQW1DQyxLQUFuQyxFQUEwQ0MsU0FBMUMsRUFBcURDLFFBQXJELEVBQStEQyxPQUEvRCxDQUFsQjtBQUNBLGlCQUFLYyxJQUFMLENBQVVELFNBQVY7QUFDQSxtQkFBT0EsU0FBUDtBQUNIO0FBWjRDLEs7UUFlcENYLGUsV0FBQUEsZSxHQUFOLE1BQU1BLGVBQU4sQ0FBc0I7O0FBTXpCVixvQkFBWUssS0FBWixFQUFtQkMsU0FBbkIsRUFBOEJDLFFBQTlCLEVBQXdDQyxPQUF4QyxFQUFpRDtBQUM3QyxpQkFBS0gsS0FBTCxHQUFhQSxLQUFiO0FBQ0EsaUJBQUtDLFNBQUwsR0FBaUJBLFNBQWpCO0FBQ0EsaUJBQUtDLFFBQUwsR0FBZ0JBLFFBQWhCO0FBQ0EsaUJBQUtDLE9BQUwsR0FBZUEsT0FBZjtBQUNIO0FBWHdCLEs7UUFjaEJlLE0sV0FBQUEsTSxHQUFOLE1BQU1BLE1BQU4sU0FBcUJ4QixRQUFyQixDQUE4Qjs7QUFPakNDLG9CQUFZQyxFQUFaLEVBQWdCRSxJQUFoQixFQUFzQnFCLFdBQXRCLEVBQW1DQyxJQUFuQyxFQUF5Q0MsTUFBekMsRUFBaUQ7QUFDN0Msa0JBQU16QixFQUFOO0FBQ0EsaUJBQUtFLElBQUwsR0FBWUEsSUFBWjtBQUNBLGlCQUFLd0IsT0FBTCxHQUFlQyxrQkFBa0JmLGNBQWxCLEVBQWY7QUFDQSxpQkFBS1csV0FBTCxHQUFtQkEsV0FBbkI7QUFDQSxpQkFBS0MsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsaUJBQUtDLE1BQUwsR0FBY0EsTUFBZDtBQUNIO0FBZGdDLEs7UUFpQnhCRyxNLFdBQUFBLE0sR0FBTixNQUFNQSxNQUFOLENBQWE7O0FBS2hCN0Isb0JBQVk4QixLQUFaLEVBQW1CQyxLQUFuQixFQUEwQkMsS0FBMUIsRUFBaUM7QUFDN0IsaUJBQUtGLEtBQUwsR0FBYUEsS0FBYjtBQUNBLGlCQUFLQyxLQUFMLEdBQWFBLEtBQWI7QUFDQSxpQkFBS0MsS0FBTCxHQUFhQSxLQUFiO0FBQ0g7QUFUZSxLO1FBWVBDLGdCLFdBQUFBLGdCLEdBQU4sTUFBTUEsZ0JBQU4sU0FBK0JsQixLQUEvQixDQUFxQztBQUN4QyxlQUFPRixjQUFQLEdBQXdCO0FBQ3BCLGtCQUFNRyxTQUFTLElBQUlpQixnQkFBSixFQUFmO0FBQ0FqQixtQkFBT0MsU0FBUCxHQUFtQmdCLGlCQUFpQmYsU0FBcEM7QUFDQSxtQkFBT0YsTUFBUDtBQUNIOztBQUVERyxZQUFJVyxLQUFKLEVBQVdDLEtBQVgsRUFBa0JDLEtBQWxCLEVBQXlCO0FBQ3JCLGtCQUFNWCxZQUFZLElBQUlRLE1BQUosQ0FBV0MsS0FBWCxFQUFrQkMsS0FBbEIsRUFBeUJDLEtBQXpCLENBQWxCO0FBQ0EsaUJBQUtWLElBQUwsQ0FBVUQsU0FBVjtBQUNBLG1CQUFPQSxTQUFQO0FBQ0g7QUFYdUMsSztRQWMvQmEsSSxXQUFBQSxJLEdBQU4sTUFBTUEsSUFBTixTQUFtQm5DLFFBQW5CLENBQTRCOztBQUsvQkMsb0JBQVlDLEVBQVosRUFBZ0JFLElBQWhCLEVBQXNCZ0MsSUFBdEIsRUFBNEI7QUFDeEIsa0JBQU1sQyxFQUFOO0FBQ0EsaUJBQUtFLElBQUwsR0FBWUEsSUFBWjtBQUNBLGlCQUFLZ0MsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsaUJBQUtDLE9BQUwsR0FBZUgsaUJBQWlCcEIsY0FBakIsRUFBZjtBQUNIO0FBVjhCLEs7UUFhdEJELGMsV0FBQUEsYyxHQUFOLE1BQU1BLGNBQU4sU0FBNkJHLEtBQTdCLENBQW1DO0FBQ3RDLGVBQU9GLGNBQVAsR0FBd0I7QUFDcEIsa0JBQU1HLFNBQVMsSUFBSUosY0FBSixFQUFmO0FBQ0FJLG1CQUFPQyxTQUFQLEdBQW1CTCxlQUFlTSxTQUFsQztBQUNBLG1CQUFPRixNQUFQO0FBQ0g7O0FBRURHLFlBQUloQixJQUFKLEVBQVVnQyxJQUFWLEVBQWdCO0FBQ1osa0JBQU1sQyxLQUFLLEtBQUttQixNQUFoQjtBQUNBLGtCQUFNQyxZQUFZLElBQUlhLElBQUosQ0FBU2pDLEVBQVQsRUFBYUUsSUFBYixFQUFtQmdDLElBQW5CLENBQWxCO0FBQ0EsaUJBQUtiLElBQUwsQ0FBVUQsU0FBVjtBQUNBLG1CQUFPQSxTQUFQO0FBQ0g7QUFacUMsSztRQWU3QmdCLGdCLFdBQUFBLGdCLEdBQU4sTUFBTUEsZ0JBQU4sU0FBK0J0QixLQUEvQixDQUFxQztBQUN4QyxlQUFPRixjQUFQLEdBQXdCO0FBQ3BCLGtCQUFNRyxTQUFTLElBQUlxQixnQkFBSixFQUFmO0FBQ0FyQixtQkFBT0MsU0FBUCxHQUFtQm9CLGlCQUFpQm5CLFNBQXBDO0FBQ0EsbUJBQU9GLE1BQVA7QUFDSDs7QUFFREcsWUFBSWhCLElBQUosRUFBVXFCLFdBQVYsRUFBdUJDLElBQXZCLEVBQTZCQyxNQUE3QixFQUFxQztBQUNqQyxrQkFBTXpCLEtBQUssS0FBS21CLE1BQUwsR0FBYyxDQUF6QjtBQUNBLGtCQUFNQyxZQUFZLElBQUlFLE1BQUosQ0FBV3RCLEVBQVgsRUFBZUUsSUFBZixFQUFxQnFCLFdBQXJCLEVBQWtDQyxJQUFsQyxFQUF3Q0MsTUFBeEMsQ0FBbEI7QUFDQSxpQkFBS0osSUFBTCxDQUFVRCxTQUFWO0FBQ0EsbUJBQU9BLFNBQVA7QUFDSDtBQVp1QyxLO1FBZS9CTyxpQixXQUFBQSxpQixHQUFOLE1BQU1BLGlCQUFOLFNBQWdDYixLQUFoQyxDQUFzQztBQUN6QyxlQUFPRixjQUFQLEdBQXdCO0FBQ3BCLGtCQUFNRyxTQUFTLElBQUlZLGlCQUFKLEVBQWY7QUFDQVosbUJBQU9DLFNBQVAsR0FBbUJXLGtCQUFrQlYsU0FBckM7QUFDQSxtQkFBT0YsTUFBUDtBQUNIOztBQUVERyxZQUFJbUIsTUFBSixFQUFZQyxNQUFaLEVBQW9CO0FBQ2hCLGtCQUFNbEIsWUFBWSxFQUFDLENBQUNpQixNQUFELEdBQVVDLE1BQVgsRUFBbEI7QUFDQSxpQkFBS2pCLElBQUwsQ0FBVUQsU0FBVjtBQUNBLG1CQUFPQSxTQUFQO0FBQ0g7QUFYd0MsSztRQWNoQ21CLFUsV0FBQUEsVSxHQUFOLE1BQU1BLFVBQU4sQ0FBaUI7O0FBSXBCeEMsb0JBQVltQyxJQUFaLEVBQWtCO0FBQ2QsaUJBQUtBLElBQUwsR0FBWUEsSUFBWjtBQUNBLGlCQUFLTSxLQUFMLEdBQWEsRUFBYjtBQUNIOztBQUVEQyxnQkFBUUMsSUFBUixFQUFjQyxLQUFkLEVBQXFCO0FBQ2pCLGlCQUFLSCxLQUFMLENBQVdFLElBQVgsSUFBbUJDLEtBQW5CO0FBQ0g7O0FBRURDLG1CQUFXRixJQUFYLEVBQWlCO0FBQ2IsbUJBQU8sS0FBS0YsS0FBTCxDQUFXRSxJQUFYLENBQVA7QUFDSDtBQWZtQixLO1FBa0JYRyxvQixXQUFBQSxvQixHQUFOLE1BQU1BLG9CQUFOLFNBQW1DL0IsS0FBbkMsQ0FBeUM7QUFDNUMsZUFBT0YsY0FBUCxHQUF3QjtBQUNwQixrQkFBTUcsU0FBUyxJQUFJOEIsb0JBQUosRUFBZjtBQUNBOUIsbUJBQU9DLFNBQVAsR0FBbUI2QixxQkFBcUI1QixTQUF4QztBQUNBLG1CQUFPRixNQUFQO0FBQ0g7O0FBRURHLFlBQUlnQixJQUFKLEVBQVU7QUFDTixrQkFBTWQsWUFBWSxJQUFJbUIsVUFBSixDQUFlTCxJQUFmLENBQWxCO0FBQ0EsaUJBQUtiLElBQUwsQ0FBVUQsU0FBVjtBQUNBLG1CQUFPQSxTQUFQO0FBQ0g7QUFYMkMsSztRQWNuQzBCLEssV0FBQUEsSyxHQUFOLE1BQU1BLEtBQU4sQ0FBWTs7QUFLZi9DLG9CQUFZRyxJQUFaLEVBQWtCNkMsTUFBbEIsRUFBMEI7QUFDdEIsaUJBQUs3QyxJQUFMLEdBQVlBLElBQVo7QUFDQSxpQkFBSzZDLE1BQUwsR0FBY0EsTUFBZDtBQUNBLGlCQUFLQyxXQUFMLEdBQW1CSCxxQkFBcUJqQyxjQUFyQixFQUFuQjtBQUNIO0FBVGMsSztRQVlOcUMsZSxXQUFBQSxlLEdBQU4sTUFBTUEsZUFBTixTQUE4Qm5DLEtBQTlCLENBQW9DO0FBQ3ZDLGVBQU9GLGNBQVAsR0FBd0I7QUFDcEIsa0JBQU1HLFNBQVMsSUFBSWtDLGVBQUosRUFBZjtBQUNBbEMsbUJBQU9DLFNBQVAsR0FBbUJpQyxnQkFBZ0JoQyxTQUFuQztBQUNBLG1CQUFPRixNQUFQO0FBQ0g7O0FBRURHLFlBQUloQixJQUFKLEVBQVU2QyxNQUFWLEVBQWtCO0FBQ2Qsa0JBQU0zQixZQUFZLElBQUkwQixLQUFKLENBQVU1QyxJQUFWLEVBQWdCNkMsTUFBaEIsQ0FBbEI7QUFDQSxpQkFBSzFCLElBQUwsQ0FBVUQsU0FBVjtBQUNBLG1CQUFPQSxTQUFQO0FBQ0g7O0FBRUQ4QixlQUFPaEQsSUFBUCxFQUFhO0FBQ1QsbUJBQU8sS0FBS2lELElBQUwsQ0FBVUMsUUFBUUEsS0FBS2xELElBQUwsSUFBYUEsSUFBL0IsQ0FBUDtBQUNIO0FBZnNDLEs7UUFrQjlCbUQsTyxXQUFBQSxPLEdBQU4sTUFBTUEsT0FBTixTQUFzQnZELFFBQXRCLENBQStCOztBQUlsQ0Msb0JBQVlDLEVBQVosRUFBZ0JFLElBQWhCLEVBQXNCO0FBQ2xCLGtCQUFNRixFQUFOO0FBQ0EsaUJBQUtFLElBQUwsR0FBWUEsSUFBWjtBQUNBLGlCQUFLb0QsTUFBTCxHQUFjTCxnQkFBZ0JyQyxjQUFoQixFQUFkO0FBQ0g7QUFSaUMsSztRQVd6QjJDLGlCLFdBQUFBLGlCLEdBQU4sTUFBTUEsaUJBQU4sU0FBZ0N6QyxLQUFoQyxDQUFzQztBQUN6QyxlQUFPRixjQUFQLEdBQXdCO0FBQ3BCLGtCQUFNRyxTQUFTLElBQUl3QyxpQkFBSixFQUFmO0FBQ0F4QyxtQkFBT0MsU0FBUCxHQUFtQnVDLGtCQUFrQnRDLFNBQXJDO0FBQ0EsbUJBQU9GLE1BQVA7QUFDSDs7QUFFREcsWUFBSWxCLEVBQUosRUFBUUUsSUFBUixFQUFjO0FBQ1Ysa0JBQU1zRCxPQUFPeEQsTUFBTXlELFNBQU4sR0FBa0IsS0FBS3RDLE1BQUwsR0FBYyxDQUFoQyxHQUFvQ25CLEVBQWpEO0FBQ0Esa0JBQU0wRCxTQUFTeEQsUUFBUXVELFNBQVIsR0FBcUIsV0FBVUQsSUFBSyxFQUFwQyxHQUF3Q3RELElBQXZEO0FBQ0Esa0JBQU1rQixZQUFZLElBQUlpQyxPQUFKLENBQVlHLElBQVosRUFBa0JFLE1BQWxCLENBQWxCO0FBQ0EsaUJBQUtyQyxJQUFMLENBQVVELFNBQVY7QUFDQSxtQkFBT0EsU0FBUDtBQUNIO0FBYndDLEs7UUFnQmhDdUMsUSxXQUFBQSxRLEdBQU4sTUFBTUEsUUFBTixTQUF1QjdELFFBQXZCLENBQWdDOztBQUluQ0Msb0JBQVlDLEVBQVosRUFBZ0JFLElBQWhCLEVBQXNCO0FBQ2xCLGtCQUFNRixFQUFOO0FBQ0EsaUJBQUtFLElBQUwsR0FBWUEsSUFBWjtBQUNBLGlCQUFLMEQsUUFBTCxHQUFnQixFQUFoQjtBQUNIO0FBUmtDLEs7UUFXMUJDLGtCLFdBQUFBLGtCLEdBQU4sTUFBTUEsa0JBQU4sU0FBaUMvQyxLQUFqQyxDQUF1QztBQUMxQyxlQUFPRixjQUFQLEdBQXdCO0FBQ3BCLGtCQUFNRyxTQUFTLElBQUk4QyxrQkFBSixFQUFmO0FBQ0E5QyxtQkFBT0MsU0FBUCxHQUFtQjZDLG1CQUFtQjVDLFNBQXRDO0FBQ0EsbUJBQU9GLE1BQVA7QUFDSDs7QUFFREcsWUFBSWxCLEVBQUosRUFBUUUsSUFBUixFQUFjO0FBQ1Ysa0JBQU00RCxhQUFhOUQsTUFBTXlELFNBQU4sR0FBa0IsS0FBS3RDLE1BQXZCLEdBQWdDbkIsRUFBbkQ7QUFDQSxrQkFBTStELGVBQWU3RCxRQUFRdUQsU0FBUixHQUFxQixZQUFXSyxVQUFXLEVBQTNDLEdBQStDNUQsSUFBcEU7QUFDQSxrQkFBTWtCLFlBQVksSUFBSXVDLFFBQUosQ0FBYUcsVUFBYixFQUF5QkMsWUFBekIsQ0FBbEI7QUFDQSxpQkFBSzFDLElBQUwsQ0FBVUQsU0FBVjtBQUNBLG1CQUFPQSxTQUFQO0FBQ0g7QUFieUMsSztRQWdCakM0QyxVLFdBQUFBLFUsR0FBTixNQUFNQSxVQUFOLFNBQXlCbEUsUUFBekIsQ0FBa0M7O0FBSXJDQyxvQkFBWUMsRUFBWixFQUFnQjtBQUNaLGtCQUFNQSxFQUFOO0FBQ0EsaUJBQUtpRSxTQUFMLEdBQWlCLEVBQWpCO0FBQ0g7QUFQb0MsSztRQVU1QkMsa0IsV0FBQUEsa0IsR0FBTixNQUFNQSxrQkFBTixDQUF5Qjs7QUFJNUJuRSxvQkFBWUMsRUFBWixFQUFnQjtBQUNaLGlCQUFLQSxFQUFMLEdBQVVBLEVBQVY7QUFDQSxpQkFBS21FLFFBQUwsR0FBZ0IsRUFBaEI7QUFDSDs7QUFFRGpELGNBQU07QUFDRixrQkFBTWxCLEtBQUssS0FBS21FLFFBQUwsQ0FBY2hELE1BQWQsR0FBdUIsQ0FBbEM7QUFDQSxrQkFBTUMsWUFBWSxJQUFJZ0Qsc0JBQUosQ0FBMkJwRSxFQUEzQixDQUFsQjtBQUNBLGlCQUFLbUUsUUFBTCxDQUFjOUMsSUFBZCxDQUFtQkQsU0FBbkI7QUFDQSxtQkFBT0EsU0FBUDtBQUNIO0FBZDJCLEs7UUFpQm5CZ0Qsc0IsV0FBQUEsc0IsR0FBTixNQUFNQSxzQkFBTixTQUFxQ3RFLFFBQXJDLENBQThDOztBQUlqREMsb0JBQVlDLEVBQVosRUFBZ0I7QUFDWixrQkFBTUEsRUFBTjtBQUNBLGlCQUFLOEIsS0FBTCxHQUFjLFFBQU85QixFQUFHLEVBQXhCO0FBQ0g7QUFQZ0QsSztRQVV4Q3FFLG9CLFdBQUFBLG9CLEdBQU4sTUFBTUEsb0JBQU4sU0FBbUN2RCxLQUFuQyxDQUF5QztBQUM1QyxlQUFPRixjQUFQLEdBQXdCO0FBQ3BCLGtCQUFNRyxTQUFTLElBQUlzRCxvQkFBSixFQUFmO0FBQ0F0RCxtQkFBT0MsU0FBUCxHQUFtQnFELHFCQUFxQnBELFNBQXhDO0FBQ0EsbUJBQU9GLE1BQVA7QUFDSDs7QUFFREcsY0FBTTtBQUNGLG1CQUFPLEtBQUtvRCxPQUFMLENBQWFOLFVBQWIsQ0FBUDtBQUNIOztBQUVETyxzQkFBYztBQUNWLG1CQUFPLEtBQUtELE9BQUwsQ0FBYUosa0JBQWIsQ0FBUDtBQUNIOztBQUVESSxnQkFBUXBDLElBQVIsRUFBYztBQUNWLGtCQUFNbEMsS0FBSyxLQUFLbUIsTUFBaEI7QUFDQSxrQkFBTUMsWUFBWSxJQUFJYyxJQUFKLENBQVNsQyxFQUFULENBQWxCO0FBQ0EsaUJBQUtxQixJQUFMLENBQVVELFNBQVY7QUFDQSxtQkFBT0EsU0FBUDtBQUNIO0FBcEIyQyxLO1FBdUJuQ29ELE0sV0FBQUEsTSxHQUFOLE1BQU1BLE1BQU4sQ0FBYTs7QUFTaEJ6RSxvQkFBWW1DLElBQVosRUFBa0I7QUFDZCxpQkFBS0EsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsaUJBQUt1QyxZQUFMLEdBQW9CNUQsc0JBQXNCRCxjQUF0QixFQUFwQjtBQUNBLGlCQUFLOEQsT0FBTCxHQUFldEMsaUJBQWlCeEIsY0FBakIsRUFBZjtBQUNBLGlCQUFLK0QsUUFBTCxHQUFnQnBCLGtCQUFrQjNDLGNBQWxCLEVBQWhCO0FBQ0EsaUJBQUtnRSxXQUFMLEdBQW1CUCxxQkFBcUJ6RCxjQUFyQixFQUFuQjtBQUNBLGlCQUFLaUUsU0FBTCxHQUFpQmhCLG1CQUFtQmpELGNBQW5CLEVBQWpCO0FBQ0EsaUJBQUtrRSxJQUFMLEdBQVksRUFBWjs7QUFFQSxpQkFBS0gsUUFBTCxDQUFjekQsR0FBZCxDQUFrQixDQUFsQixFQUFxQixPQUFyQjtBQUNIO0FBbkJlLEs7UUFzQlA2RCxvQixXQUFBQSxvQixHQUFOLE1BQU1BLG9CQUFOLENBQTJCO0FBQzlCLGVBQU9DLEtBQVAsQ0FBYWxELEtBQWIsRUFBb0I7QUFDaEIsbUJBQU87QUFDSCwyQkFBVyxPQURSO0FBRUgseUJBQVNBLEtBRk47QUFHSCw0QkFBWTtBQUhULGFBQVA7QUFLSDs7QUFFRCxlQUFPbUQsUUFBUCxDQUFnQm5ELEtBQWhCLEVBQXVCRCxLQUF2QixFQUE4QnFELFVBQTlCLEVBQTBDQyxNQUExQyxFQUFrRDtBQUM5QyxrQkFBTXBFLFNBQVM7QUFDWCwyQkFBVyxVQURBO0FBRVgseUJBQVNlLEtBRkU7QUFHWCx5QkFBU0Q7QUFIRSxhQUFmOztBQU1Ba0QsaUNBQXFCSyxhQUFyQixDQUFtQ3JFLE1BQW5DLEVBQTJDbUUsVUFBM0M7QUFDQUgsaUNBQXFCTSxTQUFyQixDQUErQnRFLE1BQS9CLEVBQXVDb0UsTUFBdkM7O0FBRUEsbUJBQU9wRSxNQUFQO0FBQ0g7O0FBRUQsZUFBT3VFLEtBQVAsQ0FBYXhELEtBQWIsRUFBb0JELEtBQXBCLEVBQTJCSyxJQUEzQixFQUFpQ2dELFVBQWpDLEVBQTZDQyxNQUE3QyxFQUFxRDtBQUNqRCxrQkFBTXBFLFNBQVM7QUFDWCwyQkFBVyxPQURBO0FBRVgseUJBQVNlLEtBRkU7QUFHWCx5QkFBU0Q7QUFIRSxhQUFmOztBQU1Ba0QsaUNBQXFCSyxhQUFyQixDQUFtQ3JFLE1BQW5DLEVBQTJDbUUsVUFBM0M7QUFDQUgsaUNBQXFCTSxTQUFyQixDQUErQnRFLE1BQS9CLEVBQXVDb0UsTUFBdkM7O0FBRUFwRSxtQkFBT21FLFVBQVAsQ0FBa0I3RCxJQUFsQixDQUF1QjtBQUNuQix3QkFBUWE7QUFEVyxhQUF2Qjs7QUFJQSxtQkFBT25CLE1BQVA7QUFDSDs7QUFFRCxlQUFPd0UsUUFBUCxDQUFnQnpELEtBQWhCLEVBQXVCRCxLQUF2QixFQUE4QkssSUFBOUIsRUFBb0NnRCxVQUFwQyxFQUFnREMsTUFBaEQsRUFBd0Q7QUFDcEQsa0JBQU1wRSxTQUFTO0FBQ1gsMkJBQVcsVUFEQTtBQUVYLHlCQUFTZSxLQUZFO0FBR1gseUJBQVNEO0FBSEUsYUFBZjs7QUFNQWtELGlDQUFxQk0sU0FBckIsQ0FBK0J0RSxNQUEvQixFQUF1Q29FLE1BQXZDOztBQUVBLG1CQUFPcEUsTUFBUDtBQUNIOztBQUVELGVBQU95RSxNQUFQLENBQWMxRCxLQUFkLEVBQXFCRCxLQUFyQixFQUE0QjRELFlBQTVCLEVBQTBDUCxVQUExQyxFQUFzREMsTUFBdEQsRUFBOEQ7QUFDMUQsa0JBQU1wRSxTQUFTO0FBQ1gsMkJBQVcsUUFEQTtBQUVYLHlCQUFTZSxLQUZFO0FBR1gseUJBQVNELEtBSEU7QUFJWCw4QkFBYzREO0FBSkgsYUFBZjs7QUFPQVYsaUNBQXFCSyxhQUFyQixDQUFtQ3JFLE1BQW5DLEVBQTJDbUUsVUFBM0M7QUFDQUgsaUNBQXFCTSxTQUFyQixDQUErQnRFLE1BQS9CLEVBQXVDb0UsTUFBdkM7O0FBRUEsbUJBQU9wRSxNQUFQO0FBQ0g7O0FBRUQsZUFBTzJFLElBQVAsQ0FBWTVELEtBQVosRUFBbUJELEtBQW5CLEVBQTBCcUQsVUFBMUIsRUFBc0NDLE1BQXRDLEVBQThDO0FBQzFDLGtCQUFNcEUsU0FBUztBQUNYLDJCQUFXLE1BREE7QUFFWCx5QkFBU2UsS0FGRTtBQUdYLHlCQUFTRDtBQUhFLGFBQWY7O0FBTUFrRCxpQ0FBcUJLLGFBQXJCLENBQW1DckUsTUFBbkMsRUFBMkNtRSxVQUEzQztBQUNBSCxpQ0FBcUJNLFNBQXJCLENBQStCdEUsTUFBL0IsRUFBdUNvRSxNQUF2Qzs7QUFFQSxtQkFBT3BFLE1BQVA7QUFDSDs7QUFFRCxlQUFPNEUsUUFBUCxDQUFnQjdCLFVBQWhCLEVBQTRCO0FBQ3hCLG1CQUFPO0FBQ0gsMkJBQVcsVUFEUjtBQUVILDRCQUFZQTtBQUZULGFBQVA7QUFJSDs7QUFFRCxlQUFPOEIsSUFBUCxHQUFjO0FBQ1YsbUJBQU87QUFDSCwyQkFBVyxNQURSO0FBRUgsNEJBQVk7QUFGVCxhQUFQO0FBSUg7O0FBRUQsZUFBT0MsV0FBUCxDQUFtQkMsT0FBbkIsRUFBNEJDLE9BQTVCLEVBQXFDO0FBQ2pDLG1CQUFPO0FBQ0gsMkJBQVdELE9BRFI7QUFFSCwyQkFBV0M7QUFGUixhQUFQO0FBSUg7O0FBRUQsZUFBT0MsYUFBUCxDQUFxQkMsVUFBckIsRUFBaUMxRSxXQUFqQyxFQUE4Q0MsSUFBOUMsRUFBb0Q7QUFDaEQsbUJBQU87QUFDSCwyQkFBVyxlQURSO0FBRUgsOEJBQWN5RSxVQUZYO0FBR0gsK0JBQWUxRSxXQUhaO0FBSUgsd0JBQVFDO0FBSkwsYUFBUDtBQU1IOztBQUVELGVBQU80RCxhQUFQLENBQXFCYyxHQUFyQixFQUEwQmhCLFVBQTFCLEVBQXNDO0FBQ2xDLGdCQUFJQSxjQUFjekIsU0FBbEIsRUFBNkI7QUFDekJ5QyxvQkFBSWhCLFVBQUosR0FBaUJBLFVBQWpCO0FBQ0gsYUFGRCxNQUdLO0FBQ0RnQixvQkFBSWhCLFVBQUosR0FBaUIsRUFBakI7QUFDSDtBQUNKOztBQUVELGVBQU9HLFNBQVAsQ0FBaUJhLEdBQWpCLEVBQXNCZixNQUF0QixFQUE4QjtBQUMxQixnQkFBSUEsVUFBVTFCLFNBQWQsRUFBeUI7QUFDckIxQyx1QkFBT29FLE1BQVAsR0FBZ0JBLE1BQWhCO0FBQ0g7QUFDSjtBQXpINkIsSyIsImZpbGUiOiJzY2hlbWEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBJZE9iamVjdCB7XHJcbiAgICBpZDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCkge1xyXG4gICAgICAgIHRoaXMuaWQgPSBpZDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcnNwZWN0aXZlIGV4dGVuZHMgSWRPYmplY3Qge1xyXG4gICAgbmFtZTtcclxuICAgIGRhdGE7XHJcbiAgICB2aWV3cztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCwgbmFtZSwgaWRGaWVsZCwgY2FjaGUsIGFnZ3JlZ2F0ZSwgZ3JvdXBpbmcsIHNvcnRpbmcpIHtcclxuICAgICAgICBzdXBlcihpZCk7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgICAgICB0aGlzWydpZC1maWVsZCddID0gaWRGaWVsZDtcclxuICAgICAgICB0aGlzLmRhdGEgPSBuZXcgUGVyc3BlY3RpdmVEYXRhKGNhY2hlLCBhZ2dyZWdhdGUsIGdyb3VwaW5nLCBzb3J0aW5nKTtcclxuICAgICAgICB0aGlzLnZpZXdzID0gVmlld0NvbGxlY3Rpb24uY3JlYXRlSW5zdGFuY2UoKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcnNwZWN0aXZlQ29sbGVjdGlvbiBleHRlbmRzIEFycmF5IHtcclxuICAgIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgUGVyc3BlY3RpdmVDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IFBlcnNwZWN0aXZlQ29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQobmFtZSwgaWRGaWVsZCwgY2FjaGUsIGFnZ3JlZ2F0ZSwgZ3JvdXBpbmcsIHNvcnRpbmcpIHtcclxuICAgICAgICBjb25zdCBpZCA9IHRoaXMubGVuZ3RoO1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IG5ldyBQZXJzcGVjdGl2ZShpZCwgbmFtZSwgaWRGaWVsZCwgY2FjaGUsIGFnZ3JlZ2F0ZSwgZ3JvdXBpbmcsIHNvcnRpbmcpO1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXJzcGVjdGl2ZURhdGEge1xyXG4gICAgY2FjaGU7XHJcbiAgICBhZ2dyZWdhdGU7XHJcbiAgICBncm91cGluZztcclxuICAgIHNvcnRpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoY2FjaGUsIGFnZ3JlZ2F0ZSwgZ3JvdXBpbmcsIHNvcnRpbmcpIHtcclxuICAgICAgICB0aGlzLmNhY2hlID0gY2FjaGU7XHJcbiAgICAgICAgdGhpcy5hZ2dyZWdhdGUgPSBhZ2dyZWdhdGU7XHJcbiAgICAgICAgdGhpcy5ncm91cGluZyA9IGdyb3VwaW5nO1xyXG4gICAgICAgIHRoaXMuc29ydGluZyA9IHNvcnRpbmc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMb29rdXAgZXh0ZW5kcyBJZE9iamVjdCB7XHJcbiAgICBuYW1lO1xyXG4gICAgbWFwcGluZztcclxuICAgIHBlcnNwZWN0aXZlO1xyXG4gICAgdmlldztcclxuICAgIHJlbW90ZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCwgbmFtZSwgcGVyc3BlY3RpdmUsIHZpZXcsIHJlbW90ZSkge1xyXG4gICAgICAgIHN1cGVyKGlkKTtcclxuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgICAgIHRoaXMubWFwcGluZyA9IE1hcHBpbmdDb2xsZWN0aW9uLmNyZWF0ZUluc3RhbmNlKCk7XHJcbiAgICAgICAgdGhpcy5wZXJzcGVjdGl2ZSA9IHBlcnNwZWN0aXZlO1xyXG4gICAgICAgIHRoaXMudmlldyA9IHZpZXc7XHJcbiAgICAgICAgdGhpcy5yZW1vdGUgPSByZW1vdGU7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW4ge1xyXG4gICAgZmllbGQ7XHJcbiAgICB0aXRsZTtcclxuICAgIHdpZHRoO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGZpZWxkLCB0aXRsZSwgd2lkdGgpIHtcclxuICAgICAgICB0aGlzLmZpZWxkID0gZmllbGQ7XHJcbiAgICAgICAgdGhpcy50aXRsZSA9IHRpdGxlO1xyXG4gICAgICAgIHRoaXMud2lkdGggPSB3aWR0aDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbHVtbkNvbGxlY3Rpb24gZXh0ZW5kcyBBcnJheSB7XHJcbiAgICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IENvbHVtbkNvbGxlY3Rpb24oKTtcclxuICAgICAgICByZXN1bHQuX19wcm90b19fID0gQ29sdW1uQ29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQoZmllbGQsIHRpdGxlLCB3aWR0aCkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IG5ldyBDb2x1bW4oZmllbGQsIHRpdGxlLCB3aWR0aCk7XHJcbiAgICAgICAgdGhpcy5wdXNoKGl0ZW1Ub0FkZCk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1Ub0FkZDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpZXcgZXh0ZW5kcyBJZE9iamVjdCB7XHJcbiAgICBuYW1lO1xyXG4gICAgdHlwZTtcclxuICAgIGNvbHVtbnM7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaWQsIG5hbWUsIHR5cGUpIHtcclxuICAgICAgICBzdXBlcihpZCk7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgICAgIHRoaXMuY29sdW1ucyA9IENvbHVtbkNvbGxlY3Rpb24uY3JlYXRlSW5zdGFuY2UoKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpZXdDb2xsZWN0aW9uIGV4dGVuZHMgQXJyYXkge1xyXG4gICAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBWaWV3Q29sbGVjdGlvbigpO1xyXG4gICAgICAgIHJlc3VsdC5fX3Byb3RvX18gPSBWaWV3Q29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQobmFtZSwgdHlwZSkge1xyXG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5sZW5ndGg7XHJcbiAgICAgICAgY29uc3QgaXRlbVRvQWRkID0gbmV3IFZpZXcoaWQsIG5hbWUsIHR5cGUpO1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMb29rdXBDb2xsZWN0aW9uIGV4dGVuZHMgQXJyYXkge1xyXG4gICAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBMb29rdXBDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IExvb2t1cENvbGxlY3Rpb24ucHJvdG90eXBlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKG5hbWUsIHBlcnNwZWN0aXZlLCB2aWV3LCByZW1vdGUpIHtcclxuICAgICAgICBjb25zdCBpZCA9IHRoaXMubGVuZ3RoICsgMTtcclxuICAgICAgICBjb25zdCBpdGVtVG9BZGQgPSBuZXcgTG9va3VwKGlkLCBuYW1lLCBwZXJzcGVjdGl2ZSwgdmlldywgcmVtb3RlKTtcclxuICAgICAgICB0aGlzLnB1c2goaXRlbVRvQWRkKTtcclxuICAgICAgICByZXR1cm4gaXRlbVRvQWRkO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTWFwcGluZ0NvbGxlY3Rpb24gZXh0ZW5kcyBBcnJheSB7XHJcbiAgICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IE1hcHBpbmdDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IE1hcHBpbmdDb2xsZWN0aW9uLnByb3RvdHlwZTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIGFkZCh0YXJnZXQsIHNvdXJjZSkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IHtbdGFyZ2V0XTogc291cmNlfTtcclxuICAgICAgICB0aGlzLnB1c2goaXRlbVRvQWRkKTtcclxuICAgICAgICByZXR1cm4gaXRlbVRvQWRkO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbiB7XHJcbiAgICB0eXBlO1xyXG4gICAgcnVsZXM7XHJcblxyXG4gICAgY29uc3RydWN0b3IodHlwZSkge1xyXG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XHJcbiAgICAgICAgdGhpcy5ydWxlcyA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGFkZFJ1bGUocnVsZSwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLnJ1bGVzW3J1bGVdID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlUnVsZShydWxlKSB7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMucnVsZXNbcnVsZV07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uQ29sbGVjdGlvbiBleHRlbmRzIEFycmF5IHtcclxuICAgIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgVmFsaWRhdGlvbkNvbGxlY3Rpb24oKTtcclxuICAgICAgICByZXN1bHQuX19wcm90b19fID0gVmFsaWRhdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKHR5cGUpIHtcclxuICAgICAgICBjb25zdCBpdGVtVG9BZGQgPSBuZXcgVmFsaWRhdGlvbih0eXBlKTtcclxuICAgICAgICB0aGlzLnB1c2goaXRlbVRvQWRkKTtcclxuICAgICAgICByZXR1cm4gaXRlbVRvQWRkO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmllbGQge1xyXG4gICAgbmFtZTtcclxuICAgIGxvb2t1cDtcclxuICAgIHZhbGlkYXRpb25zO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGxvb2t1cCkge1xyXG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICAgICAgdGhpcy5sb29rdXAgPSBsb29rdXA7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ucyA9IFZhbGlkYXRpb25Db2xsZWN0aW9uLmNyZWF0ZUluc3RhbmNlKCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaWVsZENvbGxlY3Rpb24gZXh0ZW5kcyBBcnJheSB7XHJcbiAgICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IEZpZWxkQ29sbGVjdGlvbigpO1xyXG4gICAgICAgIHJlc3VsdC5fX3Byb3RvX18gPSBGaWVsZENvbGxlY3Rpb24ucHJvdG90eXBlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKG5hbWUsIGxvb2t1cCkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IG5ldyBGaWVsZChuYW1lLCBsb29rdXApO1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcblxyXG4gICAgYnlOYW1lKG5hbWUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maW5kKGl0ZW0gPT4gaXRlbS5uYW1lID09IG5hbWUpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YXNldCBleHRlbmRzIElkT2JqZWN0IHtcclxuICAgIG5hbWU7XHJcbiAgICBmaWVsZHM7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaWQsIG5hbWUpIHtcclxuICAgICAgICBzdXBlcihpZCk7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgICAgICB0aGlzLmZpZWxkcyA9IEZpZWxkQ29sbGVjdGlvbi5jcmVhdGVJbnN0YW5jZSgpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YXNldENvbGxlY3Rpb24gZXh0ZW5kcyBBcnJheSB7XHJcbiAgICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGFzZXRDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IERhdGFzZXRDb2xsZWN0aW9uLnByb3RvdHlwZTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIGFkZChpZCwgbmFtZSkge1xyXG4gICAgICAgIGNvbnN0IGRzSWQgPSBpZCA9PSB1bmRlZmluZWQgPyB0aGlzLmxlbmd0aCArIDEgOiBpZDtcclxuICAgICAgICBjb25zdCBkc05hbWUgPSBuYW1lID09IHVuZGVmaW5lZCA/IGBkYXRhc2V0ICR7ZHNJZH1gIDogbmFtZTtcclxuICAgICAgICBjb25zdCBpdGVtVG9BZGQgPSBuZXcgRGF0YXNldChkc0lkLCBkc05hbWUpO1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZSBleHRlbmRzIElkT2JqZWN0IHtcclxuICAgIG5hbWU7XHJcbiAgICBlbGVtZW50cztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCwgbmFtZSkge1xyXG4gICAgICAgIHN1cGVyKGlkKTtcclxuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgICAgIHRoaXMuZWxlbWVudHMgPSBbXTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlQ29sbGVjdGlvbiBleHRlbmRzIEFycmF5IHtcclxuICAgIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgVGVtcGxhdGVDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IFRlbXBsYXRlQ29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQoaWQsIG5hbWUpIHtcclxuICAgICAgICBjb25zdCB0ZW1wbGF0ZUlkID0gaWQgPT0gdW5kZWZpbmVkID8gdGhpcy5sZW5ndGggOiBpZDtcclxuICAgICAgICBjb25zdCB0ZW1wbGF0ZU5hbWUgPSBuYW1lID09IHVuZGVmaW5lZCA/IGB0ZW1wbGF0ZSAke3RlbXBsYXRlSWR9YCA6IG5hbWU7XHJcbiAgICAgICAgY29uc3QgaXRlbVRvQWRkID0gbmV3IFRlbXBsYXRlKHRlbXBsYXRlSWQsIHRlbXBsYXRlTmFtZSk7XHJcbiAgICAgICAgdGhpcy5wdXNoKGl0ZW1Ub0FkZCk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1Ub0FkZDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2UgZXh0ZW5kcyBJZE9iamVjdCB7XHJcbiAgICBpZDtcclxuICAgIHJlZmVyZW5jZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCkge1xyXG4gICAgICAgIHN1cGVyKGlkKTtcclxuICAgICAgICB0aGlzLnJlZmVyZW5jZSA9IFwiXCI7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZXNvdXJjZURhdGFTb3VyY2Uge1xyXG4gICAgaWQ7XHJcbiAgICByZXNvdXJjZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCkge1xyXG4gICAgICAgIHRoaXMuaWQgPSBpZDtcclxuICAgICAgICB0aGlzLnJlc291cmNlID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKCkge1xyXG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5yZXNvdXJjZS5sZW5ndGggKyAxO1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IG5ldyBSZXNvdXJjZURhdGFTb3VyY2VJdGVtKGlkKTtcclxuICAgICAgICB0aGlzLnJlc291cmNlLnB1c2goaXRlbVRvQWRkKTtcclxuICAgICAgICByZXR1cm4gaXRlbVRvQWRkO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VEYXRhU291cmNlSXRlbSBleHRlbmRzIElkT2JqZWN0IHtcclxuICAgIGlkO1xyXG4gICAgdGl0bGU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaWQpIHtcclxuICAgICAgICBzdXBlcihpZCk7XHJcbiAgICAgICAgdGhpcy50aXRsZSA9IGBJdGVtICR7aWR9YDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VDb2xsZWN0aW9uIGV4dGVuZHMgQXJyYXkge1xyXG4gICAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRhU291cmNlQ29sbGVjdGlvbigpO1xyXG4gICAgICAgIHJlc3VsdC5fX3Byb3RvX18gPSBEYXRhU291cmNlQ29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkVHlwZShEYXRhU291cmNlKTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRSZXNvdXJjZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hZGRUeXBlKFJlc291cmNlRGF0YVNvdXJjZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkVHlwZSh0eXBlKSB7XHJcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBpdGVtVG9BZGQgPSBuZXcgdHlwZShpZCk7XHJcbiAgICAgICAgdGhpcy5wdXNoKGl0ZW1Ub0FkZCk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1Ub0FkZDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNjaGVtYSB7XHJcbiAgICB0eXBlO1xyXG4gICAgcGVyc3BlY3RpdmVzO1xyXG4gICAgbG9va3VwcztcclxuICAgIGRhdGFzZXRzO1xyXG4gICAgZGF0YXNvdXJjZXM7XHJcbiAgICBib2R5O1xyXG4gICAgdGVtcGxhdGVzO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHR5cGUpIHtcclxuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgICAgIHRoaXMucGVyc3BlY3RpdmVzID0gUGVyc3BlY3RpdmVDb2xsZWN0aW9uLmNyZWF0ZUluc3RhbmNlKCk7XHJcbiAgICAgICAgdGhpcy5sb29rdXBzID0gTG9va3VwQ29sbGVjdGlvbi5jcmVhdGVJbnN0YW5jZSgpO1xyXG4gICAgICAgIHRoaXMuZGF0YXNldHMgPSBEYXRhc2V0Q29sbGVjdGlvbi5jcmVhdGVJbnN0YW5jZSgpO1xyXG4gICAgICAgIHRoaXMuZGF0YXNvdXJjZXMgPSBEYXRhU291cmNlQ29sbGVjdGlvbi5jcmVhdGVJbnN0YW5jZSgpO1xyXG4gICAgICAgIHRoaXMudGVtcGxhdGVzID0gVGVtcGxhdGVDb2xsZWN0aW9uLmNyZWF0ZUluc3RhbmNlKCk7XHJcbiAgICAgICAgdGhpcy5ib2R5ID0ge307XHJcblxyXG4gICAgICAgIHRoaXMuZGF0YXNldHMuYWRkKDAsIFwibW9kZWxcIik7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTY2hlbWFFbGVtZW50RmFjdG9yeSB7XHJcbiAgICBzdGF0aWMgZ3JvdXAodGl0bGUpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBcImVsZW1lbnRcIjogXCJncm91cFwiLFxyXG4gICAgICAgICAgICBcInRpdGxlXCI6IHRpdGxlLFxyXG4gICAgICAgICAgICBcImVsZW1lbnRzXCI6IFtdXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBjaGVja2JveCh0aXRsZSwgZmllbGQsIGF0dHJpYnV0ZXMsIHN0eWxlcykge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgICAgICAgXCJlbGVtZW50XCI6IFwiY2hlY2tib3hcIixcclxuICAgICAgICAgICAgXCJ0aXRsZVwiOiB0aXRsZSxcclxuICAgICAgICAgICAgXCJmaWVsZFwiOiBmaWVsZFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIFNjaGVtYUVsZW1lbnRGYWN0b3J5LmFkZEF0dHJpYnV0ZXMocmVzdWx0LCBhdHRyaWJ1dGVzKTtcclxuICAgICAgICBTY2hlbWFFbGVtZW50RmFjdG9yeS5hZGRTdHlsZXMocmVzdWx0LCBzdHlsZXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpbnB1dCh0aXRsZSwgZmllbGQsIHR5cGUsIGF0dHJpYnV0ZXMsIHN0eWxlcykge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgICAgICAgXCJlbGVtZW50XCI6IFwiaW5wdXRcIixcclxuICAgICAgICAgICAgXCJ0aXRsZVwiOiB0aXRsZSxcclxuICAgICAgICAgICAgXCJmaWVsZFwiOiBmaWVsZFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIFNjaGVtYUVsZW1lbnRGYWN0b3J5LmFkZEF0dHJpYnV0ZXMocmVzdWx0LCBhdHRyaWJ1dGVzKTtcclxuICAgICAgICBTY2hlbWFFbGVtZW50RmFjdG9yeS5hZGRTdHlsZXMocmVzdWx0LCBzdHlsZXMpO1xyXG5cclxuICAgICAgICByZXN1bHQuYXR0cmlidXRlcy5wdXNoKHtcclxuICAgICAgICAgICAgXCJ0eXBlXCI6IHR5cGVcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcmVhZG9ubHkodGl0bGUsIGZpZWxkLCB0eXBlLCBhdHRyaWJ1dGVzLCBzdHlsZXMpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSB7XHJcbiAgICAgICAgICAgIFwiZWxlbWVudFwiOiBcInJlYWRvbmx5XCIsXHJcbiAgICAgICAgICAgIFwidGl0bGVcIjogdGl0bGUsXHJcbiAgICAgICAgICAgIFwiZmllbGRcIjogZmllbGRcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBTY2hlbWFFbGVtZW50RmFjdG9yeS5hZGRTdHlsZXMocmVzdWx0LCBzdHlsZXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBzZWxlY3QodGl0bGUsIGZpZWxkLCBkYXRhU291cmNlSWQsIGF0dHJpYnV0ZXMsIHN0eWxlcykge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgICAgICAgXCJlbGVtZW50XCI6IFwic2VsZWN0XCIsXHJcbiAgICAgICAgICAgIFwidGl0bGVcIjogdGl0bGUsXHJcbiAgICAgICAgICAgIFwiZmllbGRcIjogZmllbGQsXHJcbiAgICAgICAgICAgIFwiZGF0YXNvdXJjZVwiOiBkYXRhU291cmNlSWQsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgU2NoZW1hRWxlbWVudEZhY3RvcnkuYWRkQXR0cmlidXRlcyhyZXN1bHQsIGF0dHJpYnV0ZXMpO1xyXG4gICAgICAgIFNjaGVtYUVsZW1lbnRGYWN0b3J5LmFkZFN0eWxlcyhyZXN1bHQsIHN0eWxlcyk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIG1lbW8odGl0bGUsIGZpZWxkLCBhdHRyaWJ1dGVzLCBzdHlsZXMpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSB7XHJcbiAgICAgICAgICAgIFwiZWxlbWVudFwiOiBcIm1lbW9cIixcclxuICAgICAgICAgICAgXCJ0aXRsZVwiOiB0aXRsZSxcclxuICAgICAgICAgICAgXCJmaWVsZFwiOiBmaWVsZFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIFNjaGVtYUVsZW1lbnRGYWN0b3J5LmFkZEF0dHJpYnV0ZXMocmVzdWx0LCBhdHRyaWJ1dGVzKTtcclxuICAgICAgICBTY2hlbWFFbGVtZW50RmFjdG9yeS5hZGRTdHlsZXMocmVzdWx0LCBzdHlsZXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyB0ZW1wbGF0ZSh0ZW1wbGF0ZUlkKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgXCJlbGVtZW50XCI6IFwidGVtcGxhdGVcIixcclxuICAgICAgICAgICAgXCJ0ZW1wbGF0ZVwiOiB0ZW1wbGF0ZUlkXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBjYXJkKCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIFwiZWxlbWVudFwiOiBcImNhcmRcIixcclxuICAgICAgICAgICAgXCJlbGVtZW50c1wiOiBbXVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGh0bWxFbGVtZW50KGh0bWxUYWcsIGNvbnRlbnQpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBcImVsZW1lbnRcIjogaHRtbFRhZyxcclxuICAgICAgICAgICAgXCJjb250ZW50XCI6IGNvbnRlbnRcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyB2aXN1YWxpemF0aW9uKGRhdGFzb3VyY2UsIHBlcnNwZWN0aXZlLCB2aWV3KSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgXCJlbGVtZW50XCI6IFwidmlzdWFsaXphdGlvblwiLFxyXG4gICAgICAgICAgICBcImRhdGFzb3VyY2VcIjogZGF0YXNvdXJjZSxcclxuICAgICAgICAgICAgXCJwZXJzcGVjdGl2ZVwiOiBwZXJzcGVjdGl2ZSxcclxuICAgICAgICAgICAgXCJ2aWV3XCI6IHZpZXdcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGFkZEF0dHJpYnV0ZXMob2JqLCBhdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgaWYgKGF0dHJpYnV0ZXMgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIG9iai5hdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIG9iai5hdHRyaWJ1dGVzID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBhZGRTdHlsZXMob2JqLCBzdHlsZXMpIHtcclxuICAgICAgICBpZiAoc3R5bGVzICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICByZXN1bHQuc3R5bGVzID0gc3R5bGVzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVtYS5qcyJdLCJuYW1lcyI6WyJJZE9iamVjdCIsImNvbnN0cnVjdG9yIiwiaWQiLCJQZXJzcGVjdGl2ZSIsIm5hbWUiLCJpZEZpZWxkIiwiY2FjaGUiLCJhZ2dyZWdhdGUiLCJncm91cGluZyIsInNvcnRpbmciLCJkYXRhIiwiUGVyc3BlY3RpdmVEYXRhIiwidmlld3MiLCJWaWV3Q29sbGVjdGlvbiIsImNyZWF0ZUluc3RhbmNlIiwiUGVyc3BlY3RpdmVDb2xsZWN0aW9uIiwiQXJyYXkiLCJyZXN1bHQiLCJfX3Byb3RvX18iLCJwcm90b3R5cGUiLCJhZGQiLCJsZW5ndGgiLCJpdGVtVG9BZGQiLCJwdXNoIiwiTG9va3VwIiwicGVyc3BlY3RpdmUiLCJ2aWV3IiwicmVtb3RlIiwibWFwcGluZyIsIk1hcHBpbmdDb2xsZWN0aW9uIiwiQ29sdW1uIiwiZmllbGQiLCJ0aXRsZSIsIndpZHRoIiwiQ29sdW1uQ29sbGVjdGlvbiIsIlZpZXciLCJ0eXBlIiwiY29sdW1ucyIsIkxvb2t1cENvbGxlY3Rpb24iLCJ0YXJnZXQiLCJzb3VyY2UiLCJWYWxpZGF0aW9uIiwicnVsZXMiLCJhZGRSdWxlIiwicnVsZSIsInZhbHVlIiwicmVtb3ZlUnVsZSIsIlZhbGlkYXRpb25Db2xsZWN0aW9uIiwiRmllbGQiLCJsb29rdXAiLCJ2YWxpZGF0aW9ucyIsIkZpZWxkQ29sbGVjdGlvbiIsImJ5TmFtZSIsImZpbmQiLCJpdGVtIiwiRGF0YXNldCIsImZpZWxkcyIsIkRhdGFzZXRDb2xsZWN0aW9uIiwiZHNJZCIsInVuZGVmaW5lZCIsImRzTmFtZSIsIlRlbXBsYXRlIiwiZWxlbWVudHMiLCJUZW1wbGF0ZUNvbGxlY3Rpb24iLCJEYXRhU291cmNlIiwicmVmZXJlbmNlIiwiUmVzb3VyY2VEYXRhU291cmNlIiwicmVzb3VyY2UiLCJSZXNvdXJjZURhdGFTb3VyY2VJdGVtIiwiRGF0YVNvdXJjZUNvbGxlY3Rpb24iLCJhZGRUeXBlIiwiYWRkUmVzb3VyY2UiLCJTY2hlbWEiLCJwZXJzcGVjdGl2ZXMiLCJsb29rdXBzIiwiZGF0YXNldHMiLCJkYXRhc291cmNlcyIsInRlbXBsYXRlcyIsImJvZHkiLCJTY2hlbWFFbGVtZW50RmFjdG9yeSIsImdyb3VwIiwiY2hlY2tib3giLCJhdHRyaWJ1dGVzIiwic3R5bGVzIiwiYWRkQXR0cmlidXRlcyIsImFkZFN0eWxlcyIsImlucHV0IiwicmVhZG9ubHkiLCJzZWxlY3QiLCJkYXRhU291cmNlSWQiLCJtZW1vIiwidGVtcGxhdGUiLCJ0ZW1wbGF0ZUlkIiwiY2FyZCIsImh0bWxFbGVtZW50IiwiaHRtbFRhZyIsImNvbnRlbnQiLCJ2aXN1YWxpemF0aW9uIiwiZGF0YXNvdXJjZSIsIm9iaiJdLCJtYXBwaW5ncyI6Ijs7OztRQUFNQSxRLEdBQU4sTUFBTUEsUUFBTixDQUFlOztBQUdYQyxvQkFBWUMsRUFBWixFQUFnQjtBQUNaLGlCQUFLQSxFQUFMLEdBQVVBLEVBQVY7QUFDSDtBQUxVLEs7UUFRRkMsVyxXQUFBQSxXLEdBQU4sTUFBTUEsV0FBTixTQUEwQkgsUUFBMUIsQ0FBbUM7O0FBS3RDQyxvQkFBWUMsRUFBWixFQUFnQkUsSUFBaEIsRUFBc0JDLE9BQXRCLEVBQStCQyxLQUEvQixFQUFzQ0MsU0FBdEMsRUFBaURDLFFBQWpELEVBQTJEQyxPQUEzRCxFQUFvRTtBQUNoRSxrQkFBTVAsRUFBTjtBQUNBLGlCQUFLRSxJQUFMLEdBQVlBLElBQVo7QUFDQSxpQkFBSyxVQUFMLElBQW1CQyxPQUFuQjtBQUNBLGlCQUFLSyxJQUFMLEdBQVksSUFBSUMsZUFBSixDQUFvQkwsS0FBcEIsRUFBMkJDLFNBQTNCLEVBQXNDQyxRQUF0QyxFQUFnREMsT0FBaEQsQ0FBWjtBQUNBLGlCQUFLRyxLQUFMLEdBQWFDLGVBQWVDLGNBQWYsRUFBYjtBQUNIO0FBWHFDLEs7UUFjN0JDLHFCLFdBQUFBLHFCLEdBQU4sTUFBTUEscUJBQU4sU0FBb0NDLEtBQXBDLENBQTBDO0FBQzdDLGVBQU9GLGNBQVAsR0FBd0I7QUFDcEIsa0JBQU1HLFNBQVMsSUFBSUYscUJBQUos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QixFQUFzQmhCLE1BQXRCLEVBQThCO0FBQzFCLGdCQUFJQSxVQUFVeEIsU0FBZCxFQUF5QjtBQUNyQjFDLHVCQUFPa0UsTUFBUCxHQUFnQkEsTUFBaEI7QUFDSDtBQUNKO0FBekg2QixLIiwiZmlsZSI6InNjaGVtYS5qcyIsInNvdXJjZXNDb250ZW50IjpbImNsYXNzIElkT2JqZWN0IHtcclxuICAgIGlkO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGlkKSB7XHJcbiAgICAgICAgdGhpcy5pZCA9IGlkO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVyc3BlY3RpdmUgZXh0ZW5kcyBJZE9iamVjdCB7XHJcbiAgICBuYW1lO1xyXG4gICAgZGF0YTtcclxuICAgIHZpZXdzO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGlkLCBuYW1lLCBpZEZpZWxkLCBjYWNoZSwgYWdncmVnYXRlLCBncm91cGluZywgc29ydGluZykge1xyXG4gICAgICAgIHN1cGVyKGlkKTtcclxuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgICAgIHRoaXNbJ2lkLWZpZWxkJ10gPSBpZEZpZWxkO1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IG5ldyBQZXJzcGVjdGl2ZURhdGEoY2FjaGUsIGFnZ3JlZ2F0ZSwgZ3JvdXBpbmcsIHNvcnRpbmcpO1xyXG4gICAgICAgIHRoaXMudmlld3MgPSBWaWV3Q29sbGVjdGlvbi5jcmVhdGVJbnN0YW5jZSgpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVyc3BlY3RpdmVDb2xsZWN0aW9uIGV4dGVuZHMgQXJyYXkge1xyXG4gICAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBQZXJzcGVjdGl2ZUNvbGxlY3Rpb24oKTtcclxuICAgICAgICByZXN1bHQuX19wcm90b19fID0gUGVyc3BlY3RpdmVDb2xsZWN0aW9uLnByb3RvdHlwZTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIGFkZChuYW1lLCBpZEZpZWxkLCBjYWNoZSwgYWdncmVnYXRlLCBncm91cGluZywgc29ydGluZykge1xyXG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5sZW5ndGg7XHJcbiAgICAgICAgY29uc3QgaXRlbVRvQWRkID0gbmV3IFBlcnNwZWN0aXZlKGlkLCBuYW1lLCBpZEZpZWxkLCBjYWNoZSwgYWdncmVnYXRlLCBncm91cGluZywgc29ydGluZyk7XHJcbiAgICAgICAgdGhpcy5wdXNoKGl0ZW1Ub0FkZCk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1Ub0FkZDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcnNwZWN0aXZlRGF0YSB7XHJcbiAgICBjYWNoZTtcclxuICAgIGFnZ3JlZ2F0ZTtcclxuICAgIGdyb3VwaW5nO1xyXG4gICAgc29ydGluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihjYWNoZSwgYWdncmVnYXRlLCBncm91cGluZywgc29ydGluZykge1xyXG4gICAgICAgIHRoaXMuY2FjaGUgPSBjYWNoZTtcclxuICAgICAgICB0aGlzLmFnZ3JlZ2F0ZSA9IGFnZ3JlZ2F0ZTtcclxuICAgICAgICB0aGlzLmdyb3VwaW5nID0gZ3JvdXBpbmc7XHJcbiAgICAgICAgdGhpcy5zb3J0aW5nID0gc29ydGluZztcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExvb2t1cCBleHRlbmRzIElkT2JqZWN0IHtcclxuICAgIG5hbWU7XHJcbiAgICBtYXBwaW5nO1xyXG4gICAgcGVyc3BlY3RpdmU7XHJcbiAgICB2aWV3O1xyXG4gICAgcmVtb3RlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGlkLCBuYW1lLCBwZXJzcGVjdGl2ZSwgdmlldywgcmVtb3RlKSB7XHJcbiAgICAgICAgc3VwZXIoaWQpO1xyXG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICAgICAgdGhpcy5tYXBwaW5nID0gTWFwcGluZ0NvbGxlY3Rpb24uY3JlYXRlSW5zdGFuY2UoKTtcclxuICAgICAgICB0aGlzLnBlcnNwZWN0aXZlID0gcGVyc3BlY3RpdmU7XHJcbiAgICAgICAgdGhpcy52aWV3ID0gdmlldztcclxuICAgICAgICB0aGlzLnJlbW90ZSA9IHJlbW90ZTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbHVtbiB7XHJcbiAgICBmaWVsZDtcclxuICAgIHRpdGxlO1xyXG4gICAgd2lkdGg7XHJcblxyXG4gICAgY29uc3RydWN0b3IoZmllbGQsIHRpdGxlLCB3aWR0aCkge1xyXG4gICAgICAgIHRoaXMuZmllbGQgPSBmaWVsZDtcclxuICAgICAgICB0aGlzLnRpdGxlID0gdGl0bGU7XHJcbiAgICAgICAgdGhpcy53aWR0aCA9IHdpZHRoO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sdW1uQ29sbGVjdGlvbiBleHRlbmRzIEFycmF5IHtcclxuICAgIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgQ29sdW1uQ29sbGVjdGlvbigpO1xyXG4gICAgICAgIHJlc3VsdC5fX3Byb3RvX18gPSBDb2x1bW5Db2xsZWN0aW9uLnByb3RvdHlwZTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIGFkZChmaWVsZCwgdGl0bGUsIHdpZHRoKSB7XHJcbiAgICAgICAgY29uc3QgaXRlbVRvQWRkID0gbmV3IENvbHVtbihmaWVsZCwgdGl0bGUsIHdpZHRoKTtcclxuICAgICAgICB0aGlzLnB1c2goaXRlbVRvQWRkKTtcclxuICAgICAgICByZXR1cm4gaXRlbVRvQWRkO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVmlldyBleHRlbmRzIElkT2JqZWN0IHtcclxuICAgIG5hbWU7XHJcbiAgICB0eXBlO1xyXG4gICAgY29sdW1ucztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCwgbmFtZSwgdHlwZSkge1xyXG4gICAgICAgIHN1cGVyKGlkKTtcclxuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zID0gQ29sdW1uQ29sbGVjdGlvbi5jcmVhdGVJbnN0YW5jZSgpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVmlld0NvbGxlY3Rpb24gZXh0ZW5kcyBBcnJheSB7XHJcbiAgICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IFZpZXdDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IFZpZXdDb2xsZWN0aW9uLnByb3RvdHlwZTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIGFkZChuYW1lLCB0eXBlKSB7XHJcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBpdGVtVG9BZGQgPSBuZXcgVmlldyhpZCwgbmFtZSwgdHlwZSk7XHJcbiAgICAgICAgdGhpcy5wdXNoKGl0ZW1Ub0FkZCk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1Ub0FkZDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExvb2t1cENvbGxlY3Rpb24gZXh0ZW5kcyBBcnJheSB7XHJcbiAgICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IExvb2t1cENvbGxlY3Rpb24oKTtcclxuICAgICAgICByZXN1bHQuX19wcm90b19fID0gTG9va3VwQ29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQobmFtZSwgcGVyc3BlY3RpdmUsIHZpZXcsIHJlbW90ZSkge1xyXG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5sZW5ndGggKyAxO1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IG5ldyBMb29rdXAoaWQsIG5hbWUsIHBlcnNwZWN0aXZlLCB2aWV3LCByZW1vdGUpO1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNYXBwaW5nQ29sbGVjdGlvbiBleHRlbmRzIEFycmF5IHtcclxuICAgIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgTWFwcGluZ0NvbGxlY3Rpb24oKTtcclxuICAgICAgICByZXN1bHQuX19wcm90b19fID0gTWFwcGluZ0NvbGxlY3Rpb24ucHJvdG90eXBlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKHRhcmdldCwgc291cmNlKSB7XHJcbiAgICAgICAgY29uc3QgaXRlbVRvQWRkID0ge1t0YXJnZXRdOiBzb3VyY2V9O1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uIHtcclxuICAgIHR5cGU7XHJcbiAgICBydWxlcztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcih0eXBlKSB7XHJcbiAgICAgICAgdGhpcy50eXBlID0gdHlwZTtcclxuICAgICAgICB0aGlzLnJ1bGVzID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgYWRkUnVsZShydWxlLCB2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMucnVsZXNbcnVsZV0gPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVSdWxlKHJ1bGUpIHtcclxuICAgICAgICBkZWxldGUgdGhpcy5ydWxlc1tydWxlXTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25Db2xsZWN0aW9uIGV4dGVuZHMgQXJyYXkge1xyXG4gICAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBWYWxpZGF0aW9uQ29sbGVjdGlvbigpO1xyXG4gICAgICAgIHJlc3VsdC5fX3Byb3RvX18gPSBWYWxpZGF0aW9uQ29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQodHlwZSkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IG5ldyBWYWxpZGF0aW9uKHR5cGUpO1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaWVsZCB7XHJcbiAgICBuYW1lO1xyXG4gICAgbG9va3VwO1xyXG4gICAgdmFsaWRhdGlvbnM7XHJcblxyXG4gICAgY29uc3RydWN0b3IobmFtZSwgbG9va3VwKSB7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgICAgICB0aGlzLmxvb2t1cCA9IGxvb2t1cDtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25zID0gVmFsaWRhdGlvbkNvbGxlY3Rpb24uY3JlYXRlSW5zdGFuY2UoKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZpZWxkQ29sbGVjdGlvbiBleHRlbmRzIEFycmF5IHtcclxuICAgIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgRmllbGRDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IEZpZWxkQ29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQobmFtZSwgbG9va3VwKSB7XHJcbiAgICAgICAgY29uc3QgaXRlbVRvQWRkID0gbmV3IEZpZWxkKG5hbWUsIGxvb2t1cCk7XHJcbiAgICAgICAgdGhpcy5wdXNoKGl0ZW1Ub0FkZCk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1Ub0FkZDtcclxuICAgIH1cclxuXHJcbiAgICBieU5hbWUobmFtZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbmQoaXRlbSA9PiBpdGVtLm5hbWUgPT0gbmFtZSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhc2V0IGV4dGVuZHMgSWRPYmplY3Qge1xyXG4gICAgbmFtZTtcclxuICAgIGZpZWxkcztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCwgbmFtZSkge1xyXG4gICAgICAgIHN1cGVyKGlkKTtcclxuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgICAgIHRoaXMuZmllbGRzID0gRmllbGRDb2xsZWN0aW9uLmNyZWF0ZUluc3RhbmNlKCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhc2V0Q29sbGVjdGlvbiBleHRlbmRzIEFycmF5IHtcclxuICAgIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0YXNldENvbGxlY3Rpb24oKTtcclxuICAgICAgICByZXN1bHQuX19wcm90b19fID0gRGF0YXNldENvbGxlY3Rpb24ucHJvdG90eXBlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKGlkLCBuYW1lKSB7XHJcbiAgICAgICAgY29uc3QgZHNJZCA9IGlkID09IHVuZGVmaW5lZCA/IHRoaXMubGVuZ3RoICsgMSA6IGlkO1xyXG4gICAgICAgIGNvbnN0IGRzTmFtZSA9IG5hbWUgPT0gdW5kZWZpbmVkID8gYGRhdGFzZXQgJHtkc0lkfWAgOiBuYW1lO1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IG5ldyBEYXRhc2V0KGRzSWQsIGRzTmFtZSk7XHJcbiAgICAgICAgdGhpcy5wdXNoKGl0ZW1Ub0FkZCk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1Ub0FkZDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlIGV4dGVuZHMgSWRPYmplY3Qge1xyXG4gICAgbmFtZTtcclxuICAgIGVsZW1lbnRzO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGlkLCBuYW1lKSB7XHJcbiAgICAgICAgc3VwZXIoaWQpO1xyXG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50cyA9IFtdO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVDb2xsZWN0aW9uIGV4dGVuZHMgQXJyYXkge1xyXG4gICAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBUZW1wbGF0ZUNvbGxlY3Rpb24oKTtcclxuICAgICAgICByZXN1bHQuX19wcm90b19fID0gVGVtcGxhdGVDb2xsZWN0aW9uLnByb3RvdHlwZTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIGFkZChpZCkge1xyXG4gICAgICAgIGlkID09IHVuZGVmaW5lZCA/IHRoaXMubGVuZ3RoIDogaWQ7XHJcbiAgICAgICAgY29uc3QgaXRlbVRvQWRkID0gbmV3IFRlbXBsYXRlKGlkLCBgaXRlbSAke2lkfWApO1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlIGV4dGVuZHMgSWRPYmplY3Qge1xyXG4gICAgaWQ7XHJcbiAgICByZWZlcmVuY2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaWQpIHtcclxuICAgICAgICBzdXBlcihpZCk7XHJcbiAgICAgICAgdGhpcy5yZWZlcmVuY2UgPSBcIlwiO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VEYXRhU291cmNlIHtcclxuICAgIGlkO1xyXG4gICAgcmVzb3VyY2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaWQpIHtcclxuICAgICAgICB0aGlzLmlkID0gaWQ7XHJcbiAgICAgICAgdGhpcy5yZXNvdXJjZSA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZCgpIHtcclxuICAgICAgICBjb25zdCBpZCA9IHRoaXMucmVzb3VyY2UubGVuZ3RoICsgMTtcclxuICAgICAgICBjb25zdCBpdGVtVG9BZGQgPSBuZXcgUmVzb3VyY2VEYXRhU291cmNlSXRlbShpZCk7XHJcbiAgICAgICAgdGhpcy5yZXNvdXJjZS5wdXNoKGl0ZW1Ub0FkZCk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1Ub0FkZDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJlc291cmNlRGF0YVNvdXJjZUl0ZW0gZXh0ZW5kcyBJZE9iamVjdCB7XHJcbiAgICBpZDtcclxuICAgIHRpdGxlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGlkKSB7XHJcbiAgICAgICAgc3VwZXIoaWQpO1xyXG4gICAgICAgIHRoaXMudGl0bGUgPSBgSXRlbSAke2lkfWA7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlQ29sbGVjdGlvbiBleHRlbmRzIEFycmF5IHtcclxuICAgIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0YVNvdXJjZUNvbGxlY3Rpb24oKTtcclxuICAgICAgICByZXN1bHQuX19wcm90b19fID0gRGF0YVNvdXJjZUNvbGxlY3Rpb24ucHJvdG90eXBlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFkZFR5cGUoRGF0YVNvdXJjZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkUmVzb3VyY2UoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkVHlwZShSZXNvdXJjZURhdGFTb3VyY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZFR5cGUodHlwZSkge1xyXG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5sZW5ndGg7XHJcbiAgICAgICAgY29uc3QgaXRlbVRvQWRkID0gbmV3IHR5cGUoaWQpO1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTY2hlbWEge1xyXG4gICAgdHlwZTtcclxuICAgIHBlcnNwZWN0aXZlcztcclxuICAgIGxvb2t1cHM7XHJcbiAgICBkYXRhc2V0cztcclxuICAgIGRhdGFzb3VyY2VzO1xyXG4gICAgYm9keTtcclxuICAgIHRlbXBsYXRlcztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcih0eXBlKSB7XHJcbiAgICAgICAgdGhpcy50eXBlID0gdHlwZTtcclxuICAgICAgICB0aGlzLnBlcnNwZWN0aXZlcyA9IFBlcnNwZWN0aXZlQ29sbGVjdGlvbi5jcmVhdGVJbnN0YW5jZSgpO1xyXG4gICAgICAgIHRoaXMubG9va3VwcyA9IExvb2t1cENvbGxlY3Rpb24uY3JlYXRlSW5zdGFuY2UoKTtcclxuICAgICAgICB0aGlzLmRhdGFzZXRzID0gRGF0YXNldENvbGxlY3Rpb24uY3JlYXRlSW5zdGFuY2UoKTtcclxuICAgICAgICB0aGlzLmRhdGFzb3VyY2VzID0gRGF0YVNvdXJjZUNvbGxlY3Rpb24uY3JlYXRlSW5zdGFuY2UoKTtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlcyA9IFRlbXBsYXRlQ29sbGVjdGlvbi5jcmVhdGVJbnN0YW5jZSgpO1xyXG4gICAgICAgIHRoaXMuYm9keSA9IHt9O1xyXG5cclxuICAgICAgICB0aGlzLmRhdGFzZXRzLmFkZCgwLCBcIm1vZGVsXCIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2NoZW1hRWxlbWVudEZhY3Rvcnkge1xyXG4gICAgc3RhdGljIGdyb3VwKHRpdGxlKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgXCJlbGVtZW50XCI6IFwiZ3JvdXBcIixcclxuICAgICAgICAgICAgXCJ0aXRsZVwiOiB0aXRsZSxcclxuICAgICAgICAgICAgXCJlbGVtZW50c1wiOiBbXVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgY2hlY2tib3godGl0bGUsIGZpZWxkLCBhdHRyaWJ1dGVzLCBzdHlsZXMpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSB7XHJcbiAgICAgICAgICAgIFwiZWxlbWVudFwiOiBcImNoZWNrYm94XCIsXHJcbiAgICAgICAgICAgIFwidGl0bGVcIjogdGl0bGUsXHJcbiAgICAgICAgICAgIFwiZmllbGRcIjogZmllbGRcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBTY2hlbWFFbGVtZW50RmFjdG9yeS5hZGRBdHRyaWJ1dGVzKHJlc3VsdCwgYXR0cmlidXRlcyk7XHJcbiAgICAgICAgU2NoZW1hRWxlbWVudEZhY3RvcnkuYWRkU3R5bGVzKHJlc3VsdCwgc3R5bGVzKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaW5wdXQodGl0bGUsIGZpZWxkLCB0eXBlLCBhdHRyaWJ1dGVzLCBzdHlsZXMpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSB7XHJcbiAgICAgICAgICAgIFwiZWxlbWVudFwiOiBcImlucHV0XCIsXHJcbiAgICAgICAgICAgIFwidGl0bGVcIjogdGl0bGUsXHJcbiAgICAgICAgICAgIFwiZmllbGRcIjogZmllbGRcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBTY2hlbWFFbGVtZW50RmFjdG9yeS5hZGRBdHRyaWJ1dGVzKHJlc3VsdCwgYXR0cmlidXRlcyk7XHJcbiAgICAgICAgU2NoZW1hRWxlbWVudEZhY3RvcnkuYWRkU3R5bGVzKHJlc3VsdCwgc3R5bGVzKTtcclxuXHJcbiAgICAgICAgcmVzdWx0LmF0dHJpYnV0ZXMucHVzaCh7XHJcbiAgICAgICAgICAgIFwidHlwZVwiOiB0eXBlXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHJlYWRvbmx5KHRpdGxlLCBmaWVsZCwgdHlwZSwgYXR0cmlidXRlcywgc3R5bGVzKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xyXG4gICAgICAgICAgICBcImVsZW1lbnRcIjogXCJyZWFkb25seVwiLFxyXG4gICAgICAgICAgICBcInRpdGxlXCI6IHRpdGxlLFxyXG4gICAgICAgICAgICBcImZpZWxkXCI6IGZpZWxkXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgU2NoZW1hRWxlbWVudEZhY3RvcnkuYWRkU3R5bGVzKHJlc3VsdCwgc3R5bGVzKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgc2VsZWN0KHRpdGxlLCBmaWVsZCwgZGF0YVNvdXJjZUlkLCBhdHRyaWJ1dGVzLCBzdHlsZXMpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSB7XHJcbiAgICAgICAgICAgIFwiZWxlbWVudFwiOiBcInNlbGVjdFwiLFxyXG4gICAgICAgICAgICBcInRpdGxlXCI6IHRpdGxlLFxyXG4gICAgICAgICAgICBcImZpZWxkXCI6IGZpZWxkLFxyXG4gICAgICAgICAgICBcImRhdGFzb3VyY2VcIjogZGF0YVNvdXJjZUlkLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIFNjaGVtYUVsZW1lbnRGYWN0b3J5LmFkZEF0dHJpYnV0ZXMocmVzdWx0LCBhdHRyaWJ1dGVzKTtcclxuICAgICAgICBTY2hlbWFFbGVtZW50RmFjdG9yeS5hZGRTdHlsZXMocmVzdWx0LCBzdHlsZXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBtZW1vKHRpdGxlLCBmaWVsZCwgYXR0cmlidXRlcywgc3R5bGVzKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xyXG4gICAgICAgICAgICBcImVsZW1lbnRcIjogXCJtZW1vXCIsXHJcbiAgICAgICAgICAgIFwidGl0bGVcIjogdGl0bGUsXHJcbiAgICAgICAgICAgIFwiZmllbGRcIjogZmllbGRcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBTY2hlbWFFbGVtZW50RmFjdG9yeS5hZGRBdHRyaWJ1dGVzKHJlc3VsdCwgYXR0cmlidXRlcyk7XHJcbiAgICAgICAgU2NoZW1hRWxlbWVudEZhY3RvcnkuYWRkU3R5bGVzKHJlc3VsdCwgc3R5bGVzKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdGVtcGxhdGUodGVtcGxhdGVJZCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIFwiZWxlbWVudFwiOiBcInRlbXBsYXRlXCIsXHJcbiAgICAgICAgICAgIFwidGVtcGxhdGVcIjogdGVtcGxhdGVJZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgY2FyZCgpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBcImVsZW1lbnRcIjogXCJjYXJkXCIsXHJcbiAgICAgICAgICAgIFwiZWxlbWVudHNcIjogW11cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBodG1sRWxlbWVudChodG1sVGFnLCBjb250ZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgXCJlbGVtZW50XCI6IGh0bWxUYWcsXHJcbiAgICAgICAgICAgIFwiY29udGVudFwiOiBjb250ZW50XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdmlzdWFsaXphdGlvbihkYXRhc291cmNlLCBwZXJzcGVjdGl2ZSwgdmlldykge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIFwiZWxlbWVudFwiOiBcInZpc3VhbGl6YXRpb25cIixcclxuICAgICAgICAgICAgXCJkYXRhc291cmNlXCI6IGRhdGFzb3VyY2UsXHJcbiAgICAgICAgICAgIFwicGVyc3BlY3RpdmVcIjogcGVyc3BlY3RpdmUsXHJcbiAgICAgICAgICAgIFwidmlld1wiOiB2aWV3XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBhZGRBdHRyaWJ1dGVzKG9iaiwgYXR0cmlidXRlcykge1xyXG4gICAgICAgIGlmIChhdHRyaWJ1dGVzICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBvYmouYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBvYmouYXR0cmlidXRlcyA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgYWRkU3R5bGVzKG9iaiwgc3R5bGVzKSB7XHJcbiAgICAgICAgaWYgKHN0eWxlcyAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmVzdWx0LnN0eWxlcyA9IHN0eWxlcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0= |
@@ -216,6 +216,5 @@ "use strict"; | ||
add(id, name) { | ||
const templateId = id == undefined ? this.length : id; | ||
const templateName = name == undefined ? `template ${templateId}` : name; | ||
const itemToAdd = new Template(templateId, templateName); | ||
add(id) { | ||
id == undefined ? this.length : id; | ||
const itemToAdd = new Template(id, `item ${id}`); | ||
this.push(itemToAdd); | ||
@@ -411,2 +410,2 @@ return itemToAdd; | ||
}; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVtYS5qcyJdLCJuYW1lcyI6WyJJZE9iamVjdCIsImNvbnN0cnVjdG9yIiwiaWQiLCJQZXJzcGVjdGl2ZSIsIm5hbWUiLCJpZEZpZWxkIiwiY2FjaGUiLCJhZ2dyZWdhdGUiLCJncm91cGluZyIsInNvcnRpbmciLCJkYXRhIiwiUGVyc3BlY3RpdmVEYXRhIiwidmlld3MiLCJWaWV3Q29sbGVjdGlvbiIsImNyZWF0ZUluc3RhbmNlIiwiUGVyc3BlY3RpdmVDb2xsZWN0aW9uIiwiQXJyYXkiLCJyZXN1bHQiLCJfX3Byb3RvX18iLCJwcm90b3R5cGUiLCJhZGQiLCJsZW5ndGgiLCJpdGVtVG9BZGQiLCJwdXNoIiwiTG9va3VwIiwicGVyc3BlY3RpdmUiLCJ2aWV3IiwicmVtb3RlIiwibWFwcGluZyIsIk1hcHBpbmdDb2xsZWN0aW9uIiwiQ29sdW1uIiwiZmllbGQiLCJ0aXRsZSIsIndpZHRoIiwiQ29sdW1uQ29sbGVjdGlvbiIsIlZpZXciLCJ0eXBlIiwiY29sdW1ucyIsIkxvb2t1cENvbGxlY3Rpb24iLCJ0YXJnZXQiLCJzb3VyY2UiLCJWYWxpZGF0aW9uIiwicnVsZXMiLCJhZGRSdWxlIiwicnVsZSIsInZhbHVlIiwicmVtb3ZlUnVsZSIsIlZhbGlkYXRpb25Db2xsZWN0aW9uIiwiRmllbGQiLCJsb29rdXAiLCJ2YWxpZGF0aW9ucyIsIkZpZWxkQ29sbGVjdGlvbiIsImJ5TmFtZSIsImZpbmQiLCJpdGVtIiwiRGF0YXNldCIsImZpZWxkcyIsIkRhdGFzZXRDb2xsZWN0aW9uIiwiZHNJZCIsInVuZGVmaW5lZCIsImRzTmFtZSIsIlRlbXBsYXRlIiwiZWxlbWVudHMiLCJUZW1wbGF0ZUNvbGxlY3Rpb24iLCJ0ZW1wbGF0ZUlkIiwidGVtcGxhdGVOYW1lIiwiRGF0YVNvdXJjZSIsInJlZmVyZW5jZSIsIlJlc291cmNlRGF0YVNvdXJjZSIsInJlc291cmNlIiwiUmVzb3VyY2VEYXRhU291cmNlSXRlbSIsIkRhdGFTb3VyY2VDb2xsZWN0aW9uIiwiYWRkVHlwZSIsImFkZFJlc291cmNlIiwiU2NoZW1hIiwicGVyc3BlY3RpdmVzIiwibG9va3VwcyIsImRhdGFzZXRzIiwiZGF0YXNvdXJjZXMiLCJ0ZW1wbGF0ZXMiLCJib2R5IiwiU2NoZW1hRWxlbWVudEZhY3RvcnkiLCJncm91cCIsImNoZWNrYm94IiwiYXR0cmlidXRlcyIsInN0eWxlcyIsImFkZEF0dHJpYnV0ZXMiLCJhZGRTdHlsZXMiLCJpbnB1dCIsInJlYWRvbmx5Iiwic2VsZWN0IiwiZGF0YVNvdXJjZUlkIiwibWVtbyIsInRlbXBsYXRlIiwiY2FyZCIsImh0bWxFbGVtZW50IiwiaHRtbFRhZyIsImNvbnRlbnQiLCJ2aXN1YWxpemF0aW9uIiwiZGF0YXNvdXJjZSIsIm9iaiJdLCJtYXBwaW5ncyI6Ijs7O0lBQU1BLFEsR0FBTixNQUFNQSxRQUFOLENBQWU7O0FBR1hDLGdCQUFZQyxFQUFaLEVBQWdCO0FBQ1osYUFBS0EsRUFBTCxHQUFVQSxFQUFWO0FBQ0g7QUFMVSxDO0lBUUZDLFcsV0FBQUEsVyxHQUFOLE1BQU1BLFdBQU4sU0FBMEJILFFBQTFCLENBQW1DOztBQUt0Q0MsZ0JBQVlDLEVBQVosRUFBZ0JFLElBQWhCLEVBQXNCQyxPQUF0QixFQUErQkMsS0FBL0IsRUFBc0NDLFNBQXRDLEVBQWlEQyxRQUFqRCxFQUEyREMsT0FBM0QsRUFBb0U7QUFDaEUsY0FBTVAsRUFBTjtBQUNBLGFBQUtFLElBQUwsR0FBWUEsSUFBWjtBQUNBLGFBQUssVUFBTCxJQUFtQkMsT0FBbkI7QUFDQSxhQUFLSyxJQUFMLEdBQVksSUFBSUMsZUFBSixDQUFvQkwsS0FBcEIsRUFBMkJDLFNBQTNCLEVBQXNDQyxRQUF0QyxFQUFnREMsT0FBaEQsQ0FBWjtBQUNBLGFBQUtHLEtBQUwsR0FBYUMsZUFBZUMsY0FBZixFQUFiO0FBQ0g7QUFYcUMsQztJQWM3QkMscUIsV0FBQUEscUIsR0FBTixNQUFNQSxxQkFBTixTQUFvQ0MsS0FBcEMsQ0FBMEM7QUFDN0MsV0FBT0YsY0FBUCxHQUF3QjtBQUNwQixjQUFNRyxTQUFTLElBQUlG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RUFBeUI7QUFDckIxQyxtQkFBT29FLE1BQVAsR0FBZ0JBLE1BQWhCO0FBQ0g7QUFDSjtBQXpINkIsQyIsImZpbGUiOiJzY2hlbWEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBJZE9iamVjdCB7XHJcbiAgICBpZDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCkge1xyXG4gICAgICAgIHRoaXMuaWQgPSBpZDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcnNwZWN0aXZlIGV4dGVuZHMgSWRPYmplY3Qge1xyXG4gICAgbmFtZTtcclxuICAgIGRhdGE7XHJcbiAgICB2aWV3cztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCwgbmFtZSwgaWRGaWVsZCwgY2FjaGUsIGFnZ3JlZ2F0ZSwgZ3JvdXBpbmcsIHNvcnRpbmcpIHtcclxuICAgICAgICBzdXBlcihpZCk7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgICAgICB0aGlzWydpZC1maWVsZCddID0gaWRGaWVsZDtcclxuICAgICAgICB0aGlzLmRhdGEgPSBuZXcgUGVyc3BlY3RpdmVEYXRhKGNhY2hlLCBhZ2dyZWdhdGUsIGdyb3VwaW5nLCBzb3J0aW5nKTtcclxuICAgICAgICB0aGlzLnZpZXdzID0gVmlld0NvbGxlY3Rpb24uY3JlYXRlSW5zdGFuY2UoKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcnNwZWN0aXZlQ29sbGVjdGlvbiBleHRlbmRzIEFycmF5IHtcclxuICAgIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgUGVyc3BlY3RpdmVDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IFBlcnNwZWN0aXZlQ29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQobmFtZSwgaWRGaWVsZCwgY2FjaGUsIGFnZ3JlZ2F0ZSwgZ3JvdXBpbmcsIHNvcnRpbmcpIHtcclxuICAgICAgICBjb25zdCBpZCA9IHRoaXMubGVuZ3RoO1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IG5ldyBQZXJzcGVjdGl2ZShpZCwgbmFtZSwgaWRGaWVsZCwgY2FjaGUsIGFnZ3JlZ2F0ZSwgZ3JvdXBpbmcsIHNvcnRpbmcpO1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXJzcGVjdGl2ZURhdGEge1xyXG4gICAgY2FjaGU7XHJcbiAgICBhZ2dyZWdhdGU7XHJcbiAgICBncm91cGluZztcclxuICAgIHNvcnRpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoY2FjaGUsIGFnZ3JlZ2F0ZSwgZ3JvdXBpbmcsIHNvcnRpbmcpIHtcclxuICAgICAgICB0aGlzLmNhY2hlID0gY2FjaGU7XHJcbiAgICAgICAgdGhpcy5hZ2dyZWdhdGUgPSBhZ2dyZWdhdGU7XHJcbiAgICAgICAgdGhpcy5ncm91cGluZyA9IGdyb3VwaW5nO1xyXG4gICAgICAgIHRoaXMuc29ydGluZyA9IHNvcnRpbmc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMb29rdXAgZXh0ZW5kcyBJZE9iamVjdCB7XHJcbiAgICBuYW1lO1xyXG4gICAgbWFwcGluZztcclxuICAgIHBlcnNwZWN0aXZlO1xyXG4gICAgdmlldztcclxuICAgIHJlbW90ZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCwgbmFtZSwgcGVyc3BlY3RpdmUsIHZpZXcsIHJlbW90ZSkge1xyXG4gICAgICAgIHN1cGVyKGlkKTtcclxuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgICAgIHRoaXMubWFwcGluZyA9IE1hcHBpbmdDb2xsZWN0aW9uLmNyZWF0ZUluc3RhbmNlKCk7XHJcbiAgICAgICAgdGhpcy5wZXJzcGVjdGl2ZSA9IHBlcnNwZWN0aXZlO1xyXG4gICAgICAgIHRoaXMudmlldyA9IHZpZXc7XHJcbiAgICAgICAgdGhpcy5yZW1vdGUgPSByZW1vdGU7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW4ge1xyXG4gICAgZmllbGQ7XHJcbiAgICB0aXRsZTtcclxuICAgIHdpZHRoO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGZpZWxkLCB0aXRsZSwgd2lkdGgpIHtcclxuICAgICAgICB0aGlzLmZpZWxkID0gZmllbGQ7XHJcbiAgICAgICAgdGhpcy50aXRsZSA9IHRpdGxlO1xyXG4gICAgICAgIHRoaXMud2lkdGggPSB3aWR0aDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbHVtbkNvbGxlY3Rpb24gZXh0ZW5kcyBBcnJheSB7XHJcbiAgICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IENvbHVtbkNvbGxlY3Rpb24oKTtcclxuICAgICAgICByZXN1bHQuX19wcm90b19fID0gQ29sdW1uQ29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQoZmllbGQsIHRpdGxlLCB3aWR0aCkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IG5ldyBDb2x1bW4oZmllbGQsIHRpdGxlLCB3aWR0aCk7XHJcbiAgICAgICAgdGhpcy5wdXNoKGl0ZW1Ub0FkZCk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1Ub0FkZDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpZXcgZXh0ZW5kcyBJZE9iamVjdCB7XHJcbiAgICBuYW1lO1xyXG4gICAgdHlwZTtcclxuICAgIGNvbHVtbnM7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaWQsIG5hbWUsIHR5cGUpIHtcclxuICAgICAgICBzdXBlcihpZCk7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgICAgIHRoaXMuY29sdW1ucyA9IENvbHVtbkNvbGxlY3Rpb24uY3JlYXRlSW5zdGFuY2UoKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpZXdDb2xsZWN0aW9uIGV4dGVuZHMgQXJyYXkge1xyXG4gICAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBWaWV3Q29sbGVjdGlvbigpO1xyXG4gICAgICAgIHJlc3VsdC5fX3Byb3RvX18gPSBWaWV3Q29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQobmFtZSwgdHlwZSkge1xyXG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5sZW5ndGg7XHJcbiAgICAgICAgY29uc3QgaXRlbVRvQWRkID0gbmV3IFZpZXcoaWQsIG5hbWUsIHR5cGUpO1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMb29rdXBDb2xsZWN0aW9uIGV4dGVuZHMgQXJyYXkge1xyXG4gICAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBMb29rdXBDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IExvb2t1cENvbGxlY3Rpb24ucHJvdG90eXBlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKG5hbWUsIHBlcnNwZWN0aXZlLCB2aWV3LCByZW1vdGUpIHtcclxuICAgICAgICBjb25zdCBpZCA9IHRoaXMubGVuZ3RoICsgMTtcclxuICAgICAgICBjb25zdCBpdGVtVG9BZGQgPSBuZXcgTG9va3VwKGlkLCBuYW1lLCBwZXJzcGVjdGl2ZSwgdmlldywgcmVtb3RlKTtcclxuICAgICAgICB0aGlzLnB1c2goaXRlbVRvQWRkKTtcclxuICAgICAgICByZXR1cm4gaXRlbVRvQWRkO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTWFwcGluZ0NvbGxlY3Rpb24gZXh0ZW5kcyBBcnJheSB7XHJcbiAgICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IE1hcHBpbmdDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IE1hcHBpbmdDb2xsZWN0aW9uLnByb3RvdHlwZTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIGFkZCh0YXJnZXQsIHNvdXJjZSkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IHtbdGFyZ2V0XTogc291cmNlfTtcclxuICAgICAgICB0aGlzLnB1c2goaXRlbVRvQWRkKTtcclxuICAgICAgICByZXR1cm4gaXRlbVRvQWRkO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbiB7XHJcbiAgICB0eXBlO1xyXG4gICAgcnVsZXM7XHJcblxyXG4gICAgY29uc3RydWN0b3IodHlwZSkge1xyXG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XHJcbiAgICAgICAgdGhpcy5ydWxlcyA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGFkZFJ1bGUocnVsZSwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLnJ1bGVzW3J1bGVdID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlUnVsZShydWxlKSB7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMucnVsZXNbcnVsZV07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uQ29sbGVjdGlvbiBleHRlbmRzIEFycmF5IHtcclxuICAgIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgVmFsaWRhdGlvbkNvbGxlY3Rpb24oKTtcclxuICAgICAgICByZXN1bHQuX19wcm90b19fID0gVmFsaWRhdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKHR5cGUpIHtcclxuICAgICAgICBjb25zdCBpdGVtVG9BZGQgPSBuZXcgVmFsaWRhdGlvbih0eXBlKTtcclxuICAgICAgICB0aGlzLnB1c2goaXRlbVRvQWRkKTtcclxuICAgICAgICByZXR1cm4gaXRlbVRvQWRkO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmllbGQge1xyXG4gICAgbmFtZTtcclxuICAgIGxvb2t1cDtcclxuICAgIHZhbGlkYXRpb25zO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGxvb2t1cCkge1xyXG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICAgICAgdGhpcy5sb29rdXAgPSBsb29rdXA7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ucyA9IFZhbGlkYXRpb25Db2xsZWN0aW9uLmNyZWF0ZUluc3RhbmNlKCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaWVsZENvbGxlY3Rpb24gZXh0ZW5kcyBBcnJheSB7XHJcbiAgICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IEZpZWxkQ29sbGVjdGlvbigpO1xyXG4gICAgICAgIHJlc3VsdC5fX3Byb3RvX18gPSBGaWVsZENvbGxlY3Rpb24ucHJvdG90eXBlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKG5hbWUsIGxvb2t1cCkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IG5ldyBGaWVsZChuYW1lLCBsb29rdXApO1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcblxyXG4gICAgYnlOYW1lKG5hbWUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maW5kKGl0ZW0gPT4gaXRlbS5uYW1lID09IG5hbWUpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YXNldCBleHRlbmRzIElkT2JqZWN0IHtcclxuICAgIG5hbWU7XHJcbiAgICBmaWVsZHM7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaWQsIG5hbWUpIHtcclxuICAgICAgICBzdXBlcihpZCk7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgICAgICB0aGlzLmZpZWxkcyA9IEZpZWxkQ29sbGVjdGlvbi5jcmVhdGVJbnN0YW5jZSgpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YXNldENvbGxlY3Rpb24gZXh0ZW5kcyBBcnJheSB7XHJcbiAgICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGFzZXRDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IERhdGFzZXRDb2xsZWN0aW9uLnByb3RvdHlwZTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIGFkZChpZCwgbmFtZSkge1xyXG4gICAgICAgIGNvbnN0IGRzSWQgPSBpZCA9PSB1bmRlZmluZWQgPyB0aGlzLmxlbmd0aCArIDEgOiBpZDtcclxuICAgICAgICBjb25zdCBkc05hbWUgPSBuYW1lID09IHVuZGVmaW5lZCA/IGBkYXRhc2V0ICR7ZHNJZH1gIDogbmFtZTtcclxuICAgICAgICBjb25zdCBpdGVtVG9BZGQgPSBuZXcgRGF0YXNldChkc0lkLCBkc05hbWUpO1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZSBleHRlbmRzIElkT2JqZWN0IHtcclxuICAgIG5hbWU7XHJcbiAgICBlbGVtZW50cztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCwgbmFtZSkge1xyXG4gICAgICAgIHN1cGVyKGlkKTtcclxuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgICAgIHRoaXMuZWxlbWVudHMgPSBbXTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlQ29sbGVjdGlvbiBleHRlbmRzIEFycmF5IHtcclxuICAgIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgVGVtcGxhdGVDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IFRlbXBsYXRlQ29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQoaWQsIG5hbWUpIHtcclxuICAgICAgICBjb25zdCB0ZW1wbGF0ZUlkID0gaWQgPT0gdW5kZWZpbmVkID8gdGhpcy5sZW5ndGggOiBpZDtcclxuICAgICAgICBjb25zdCB0ZW1wbGF0ZU5hbWUgPSBuYW1lID09IHVuZGVmaW5lZCA/IGB0ZW1wbGF0ZSAke3RlbXBsYXRlSWR9YCA6IG5hbWU7XHJcbiAgICAgICAgY29uc3QgaXRlbVRvQWRkID0gbmV3IFRlbXBsYXRlKHRlbXBsYXRlSWQsIHRlbXBsYXRlTmFtZSk7XHJcbiAgICAgICAgdGhpcy5wdXNoKGl0ZW1Ub0FkZCk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1Ub0FkZDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2UgZXh0ZW5kcyBJZE9iamVjdCB7XHJcbiAgICBpZDtcclxuICAgIHJlZmVyZW5jZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCkge1xyXG4gICAgICAgIHN1cGVyKGlkKTtcclxuICAgICAgICB0aGlzLnJlZmVyZW5jZSA9IFwiXCI7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZXNvdXJjZURhdGFTb3VyY2Uge1xyXG4gICAgaWQ7XHJcbiAgICByZXNvdXJjZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCkge1xyXG4gICAgICAgIHRoaXMuaWQgPSBpZDtcclxuICAgICAgICB0aGlzLnJlc291cmNlID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKCkge1xyXG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5yZXNvdXJjZS5sZW5ndGggKyAxO1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IG5ldyBSZXNvdXJjZURhdGFTb3VyY2VJdGVtKGlkKTtcclxuICAgICAgICB0aGlzLnJlc291cmNlLnB1c2goaXRlbVRvQWRkKTtcclxuICAgICAgICByZXR1cm4gaXRlbVRvQWRkO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VEYXRhU291cmNlSXRlbSBleHRlbmRzIElkT2JqZWN0IHtcclxuICAgIGlkO1xyXG4gICAgdGl0bGU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaWQpIHtcclxuICAgICAgICBzdXBlcihpZCk7XHJcbiAgICAgICAgdGhpcy50aXRsZSA9IGBJdGVtICR7aWR9YDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VDb2xsZWN0aW9uIGV4dGVuZHMgQXJyYXkge1xyXG4gICAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRhU291cmNlQ29sbGVjdGlvbigpO1xyXG4gICAgICAgIHJlc3VsdC5fX3Byb3RvX18gPSBEYXRhU291cmNlQ29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkVHlwZShEYXRhU291cmNlKTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRSZXNvdXJjZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hZGRUeXBlKFJlc291cmNlRGF0YVNvdXJjZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkVHlwZSh0eXBlKSB7XHJcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBpdGVtVG9BZGQgPSBuZXcgdHlwZShpZCk7XHJcbiAgICAgICAgdGhpcy5wdXNoKGl0ZW1Ub0FkZCk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1Ub0FkZDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNjaGVtYSB7XHJcbiAgICB0eXBlO1xyXG4gICAgcGVyc3BlY3RpdmVzO1xyXG4gICAgbG9va3VwcztcclxuICAgIGRhdGFzZXRzO1xyXG4gICAgZGF0YXNvdXJjZXM7XHJcbiAgICBib2R5O1xyXG4gICAgdGVtcGxhdGVzO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHR5cGUpIHtcclxuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgICAgIHRoaXMucGVyc3BlY3RpdmVzID0gUGVyc3BlY3RpdmVDb2xsZWN0aW9uLmNyZWF0ZUluc3RhbmNlKCk7XHJcbiAgICAgICAgdGhpcy5sb29rdXBzID0gTG9va3VwQ29sbGVjdGlvbi5jcmVhdGVJbnN0YW5jZSgpO1xyXG4gICAgICAgIHRoaXMuZGF0YXNldHMgPSBEYXRhc2V0Q29sbGVjdGlvbi5jcmVhdGVJbnN0YW5jZSgpO1xyXG4gICAgICAgIHRoaXMuZGF0YXNvdXJjZXMgPSBEYXRhU291cmNlQ29sbGVjdGlvbi5jcmVhdGVJbnN0YW5jZSgpO1xyXG4gICAgICAgIHRoaXMudGVtcGxhdGVzID0gVGVtcGxhdGVDb2xsZWN0aW9uLmNyZWF0ZUluc3RhbmNlKCk7XHJcbiAgICAgICAgdGhpcy5ib2R5ID0ge307XHJcblxyXG4gICAgICAgIHRoaXMuZGF0YXNldHMuYWRkKDAsIFwibW9kZWxcIik7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTY2hlbWFFbGVtZW50RmFjdG9yeSB7XHJcbiAgICBzdGF0aWMgZ3JvdXAodGl0bGUpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBcImVsZW1lbnRcIjogXCJncm91cFwiLFxyXG4gICAgICAgICAgICBcInRpdGxlXCI6IHRpdGxlLFxyXG4gICAgICAgICAgICBcImVsZW1lbnRzXCI6IFtdXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBjaGVja2JveCh0aXRsZSwgZmllbGQsIGF0dHJpYnV0ZXMsIHN0eWxlcykge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgICAgICAgXCJlbGVtZW50XCI6IFwiY2hlY2tib3hcIixcclxuICAgICAgICAgICAgXCJ0aXRsZVwiOiB0aXRsZSxcclxuICAgICAgICAgICAgXCJmaWVsZFwiOiBmaWVsZFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIFNjaGVtYUVsZW1lbnRGYWN0b3J5LmFkZEF0dHJpYnV0ZXMocmVzdWx0LCBhdHRyaWJ1dGVzKTtcclxuICAgICAgICBTY2hlbWFFbGVtZW50RmFjdG9yeS5hZGRTdHlsZXMocmVzdWx0LCBzdHlsZXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpbnB1dCh0aXRsZSwgZmllbGQsIHR5cGUsIGF0dHJpYnV0ZXMsIHN0eWxlcykge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgICAgICAgXCJlbGVtZW50XCI6IFwiaW5wdXRcIixcclxuICAgICAgICAgICAgXCJ0aXRsZVwiOiB0aXRsZSxcclxuICAgICAgICAgICAgXCJmaWVsZFwiOiBmaWVsZFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIFNjaGVtYUVsZW1lbnRGYWN0b3J5LmFkZEF0dHJpYnV0ZXMocmVzdWx0LCBhdHRyaWJ1dGVzKTtcclxuICAgICAgICBTY2hlbWFFbGVtZW50RmFjdG9yeS5hZGRTdHlsZXMocmVzdWx0LCBzdHlsZXMpO1xyXG5cclxuICAgICAgICByZXN1bHQuYXR0cmlidXRlcy5wdXNoKHtcclxuICAgICAgICAgICAgXCJ0eXBlXCI6IHR5cGVcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcmVhZG9ubHkodGl0bGUsIGZpZWxkLCB0eXBlLCBhdHRyaWJ1dGVzLCBzdHlsZXMpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSB7XHJcbiAgICAgICAgICAgIFwiZWxlbWVudFwiOiBcInJlYWRvbmx5XCIsXHJcbiAgICAgICAgICAgIFwidGl0bGVcIjogdGl0bGUsXHJcbiAgICAgICAgICAgIFwiZmllbGRcIjogZmllbGRcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBTY2hlbWFFbGVtZW50RmFjdG9yeS5hZGRTdHlsZXMocmVzdWx0LCBzdHlsZXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBzZWxlY3QodGl0bGUsIGZpZWxkLCBkYXRhU291cmNlSWQsIGF0dHJpYnV0ZXMsIHN0eWxlcykge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgICAgICAgXCJlbGVtZW50XCI6IFwic2VsZWN0XCIsXHJcbiAgICAgICAgICAgIFwidGl0bGVcIjogdGl0bGUsXHJcbiAgICAgICAgICAgIFwiZmllbGRcIjogZmllbGQsXHJcbiAgICAgICAgICAgIFwiZGF0YXNvdXJjZVwiOiBkYXRhU291cmNlSWQsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgU2NoZW1hRWxlbWVudEZhY3RvcnkuYWRkQXR0cmlidXRlcyhyZXN1bHQsIGF0dHJpYnV0ZXMpO1xyXG4gICAgICAgIFNjaGVtYUVsZW1lbnRGYWN0b3J5LmFkZFN0eWxlcyhyZXN1bHQsIHN0eWxlcyk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIG1lbW8odGl0bGUsIGZpZWxkLCBhdHRyaWJ1dGVzLCBzdHlsZXMpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSB7XHJcbiAgICAgICAgICAgIFwiZWxlbWVudFwiOiBcIm1lbW9cIixcclxuICAgICAgICAgICAgXCJ0aXRsZVwiOiB0aXRsZSxcclxuICAgICAgICAgICAgXCJmaWVsZFwiOiBmaWVsZFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIFNjaGVtYUVsZW1lbnRGYWN0b3J5LmFkZEF0dHJpYnV0ZXMocmVzdWx0LCBhdHRyaWJ1dGVzKTtcclxuICAgICAgICBTY2hlbWFFbGVtZW50RmFjdG9yeS5hZGRTdHlsZXMocmVzdWx0LCBzdHlsZXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyB0ZW1wbGF0ZSh0ZW1wbGF0ZUlkKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgXCJlbGVtZW50XCI6IFwidGVtcGxhdGVcIixcclxuICAgICAgICAgICAgXCJ0ZW1wbGF0ZVwiOiB0ZW1wbGF0ZUlkXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBjYXJkKCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIFwiZWxlbWVudFwiOiBcImNhcmRcIixcclxuICAgICAgICAgICAgXCJlbGVtZW50c1wiOiBbXVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGh0bWxFbGVtZW50KGh0bWxUYWcsIGNvbnRlbnQpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBcImVsZW1lbnRcIjogaHRtbFRhZyxcclxuICAgICAgICAgICAgXCJjb250ZW50XCI6IGNvbnRlbnRcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyB2aXN1YWxpemF0aW9uKGRhdGFzb3VyY2UsIHBlcnNwZWN0aXZlLCB2aWV3KSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgXCJlbGVtZW50XCI6IFwidmlzdWFsaXphdGlvblwiLFxyXG4gICAgICAgICAgICBcImRhdGFzb3VyY2VcIjogZGF0YXNvdXJjZSxcclxuICAgICAgICAgICAgXCJwZXJzcGVjdGl2ZVwiOiBwZXJzcGVjdGl2ZSxcclxuICAgICAgICAgICAgXCJ2aWV3XCI6IHZpZXdcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGFkZEF0dHJpYnV0ZXMob2JqLCBhdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgaWYgKGF0dHJpYnV0ZXMgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIG9iai5hdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIG9iai5hdHRyaWJ1dGVzID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBhZGRTdHlsZXMob2JqLCBzdHlsZXMpIHtcclxuICAgICAgICBpZiAoc3R5bGVzICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICByZXN1bHQuc3R5bGVzID0gc3R5bGVzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVtYS5qcyJdLCJuYW1lcyI6WyJJZE9iamVjdCIsImNvbnN0cnVjdG9yIiwiaWQiLCJQZXJzcGVjdGl2ZSIsIm5hbWUiLCJpZEZpZWxkIiwiY2FjaGUiLCJhZ2dyZWdhdGUiLCJncm91cGluZyIsInNvcnRpbmciLCJkYXRhIiwiUGVyc3BlY3RpdmVEYXRhIiwidmlld3MiLCJWaWV3Q29sbGVjdGlvbiIsImNyZWF0ZUluc3RhbmNlIiwiUGVyc3BlY3RpdmVDb2xsZWN0aW9uIiwiQXJyYXkiLCJyZXN1bHQiLCJfX3Byb3RvX18iLCJwcm90b3R5cGUiLCJhZGQiLCJsZW5ndGgiLCJpdGVtVG9BZGQiLCJwdXNoIiwiTG9va3VwIiwicGVyc3BlY3RpdmUiLCJ2aWV3IiwicmVtb3RlIiwibWFwcGluZyIsIk1hcHBpbmdDb2xsZWN0aW9uIiwiQ29sdW1uIiwiZmllbGQiLCJ0aXRsZSIsIndpZHRoIiwiQ29sdW1uQ29sbGVjdGlvbiIsIlZpZXciLCJ0eXBlIiwiY29sdW1ucyIsIkxvb2t1cENvbGxlY3Rpb24iLCJ0YXJnZXQiLCJzb3VyY2UiLCJWYWxpZGF0aW9uIiwicnVsZXMiLCJhZGRSdWxlIiwicnVsZSIsInZhbHVlIiwicmVtb3ZlUnVsZSIsIlZhbGlkYXRpb25Db2xsZWN0aW9uIiwiRmllbGQiLCJsb29rdXAiLCJ2YWxpZGF0aW9ucyIsIkZpZWxkQ29sbGVjdGlvbiIsImJ5TmFtZSIsImZpbmQiLCJpdGVtIiwiRGF0YXNldCIsImZpZWxkcyIsIkRhdGFzZXRDb2xsZWN0aW9uIiwiZHNJZCIsInVuZGVmaW5lZCIsImRzTmFtZSIsIlRlbXBsYXRlIiwiZWxlbWVudHMiLCJUZW1wbGF0ZUNvbGxlY3Rpb24iLCJEYXRhU291cmNlIiwicmVmZXJlbmNlIiwiUmVzb3VyY2VEYXRhU291cmNlIiwicmVzb3VyY2UiLCJSZXNvdXJjZURhdGFTb3VyY2VJdGVtIiwiRGF0YVNvdXJjZUNvbGxlY3Rpb24iLCJhZGRUeXBlIiwiYWRkUmVzb3VyY2UiLCJTY2hlbWEiLCJwZXJzcGVjdGl2ZXMiLCJsb29rdXBzIiwiZGF0YXNldHMiLCJkYXRhc291cmNlcyIsInRlbXBsYXRlcyIsImJvZHkiLCJTY2hlbWFFbGVtZW50RmFjdG9yeSIsImdyb3VwIiwiY2hlY2tib3giLCJhdHRyaWJ1dGVzIiwic3R5bGVzIiwiYWRkQXR0cmlidXRlcyIsImFkZFN0eWxlcyIsImlucHV0IiwicmVhZG9ubHkiLCJzZWxlY3QiLCJkYXRhU291cmNlSWQiLCJtZW1vIiwidGVtcGxhdGUiLCJ0ZW1wbGF0ZUlkIiwiY2FyZCIsImh0bWxFbGVtZW50IiwiaHRtbFRhZyIsImNvbnRlbnQiLCJ2aXN1YWxpemF0aW9uIiwiZGF0YXNvdXJjZSIsIm9iaiJdLCJtYXBwaW5ncyI6Ijs7O0lBQU1BLFEsR0FBTixNQUFNQSxRQUFOLENBQWU7O0FBR1hDLGdCQUFZQyxFQUFaLEVBQWdCO0FBQ1osYUFBS0EsRUFBTCxHQUFVQSxFQUFWO0FBQ0g7QUFMVSxDO0lBUUZDLFcsV0FBQUEsVyxHQUFOLE1BQU1BLFdBQU4sU0FBMEJILFFBQTFCLENBQW1DOztBQUt0Q0MsZ0JBQVlDLEVBQVosRUFBZ0JFLElBQWhCLEVBQXNCQyxPQUF0QixFQUErQkMsS0FBL0IsRUFBc0NDLFNBQXRDLEVBQWlEQyxRQUFqRCxFQUEyREMsT0FBM0QsRUFBb0U7QUFDaEUsY0FBTVAsRUFBTjtBQUNBLGFBQUtFLElBQUwsR0FBWUEsSUFBWjtBQUNBLGFBQUssVUFBTCxJQUFtQkMsT0FBbkI7QUFDQSxhQUFLSyxJQUFMLEdBQVksSUFBSUMsZUFBSixDQUFvQkwsS0FBcEIsRUFBMkJDLFNBQTNCLEVBQXNDQyxRQUF0QyxFQUFnREMsT0FBaEQsQ0FBWjtBQUNBLGFBQUtHLEtBQUwsR0FBYUMsZUFBZUMsY0FBZixFQUFiO0FBQ0g7QUFYcUMsQztJQWM3QkMscUIsV0FBQUEscUIsR0FBTixNQUFNQSxxQkFBTixTQUFvQ0MsS0FBcEMsQ0FBMEM7QUFDN0MsV0FBT0YsY0FBUCxHQUF3QjtBQUNwQixjQUFNRyxTQUFTLElBQUlGLHFCQUFKLEVBQWY7QUFD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bGFzcyBJZE9iamVjdCB7XHJcbiAgICBpZDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCkge1xyXG4gICAgICAgIHRoaXMuaWQgPSBpZDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcnNwZWN0aXZlIGV4dGVuZHMgSWRPYmplY3Qge1xyXG4gICAgbmFtZTtcclxuICAgIGRhdGE7XHJcbiAgICB2aWV3cztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCwgbmFtZSwgaWRGaWVsZCwgY2FjaGUsIGFnZ3JlZ2F0ZSwgZ3JvdXBpbmcsIHNvcnRpbmcpIHtcclxuICAgICAgICBzdXBlcihpZCk7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgICAgICB0aGlzWydpZC1maWVsZCddID0gaWRGaWVsZDtcclxuICAgICAgICB0aGlzLmRhdGEgPSBuZXcgUGVyc3BlY3RpdmVEYXRhKGNhY2hlLCBhZ2dyZWdhdGUsIGdyb3VwaW5nLCBzb3J0aW5nKTtcclxuICAgICAgICB0aGlzLnZpZXdzID0gVmlld0NvbGxlY3Rpb24uY3JlYXRlSW5zdGFuY2UoKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcnNwZWN0aXZlQ29sbGVjdGlvbiBleHRlbmRzIEFycmF5IHtcclxuICAgIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgUGVyc3BlY3RpdmVDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IFBlcnNwZWN0aXZlQ29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQobmFtZSwgaWRGaWVsZCwgY2FjaGUsIGFnZ3JlZ2F0ZSwgZ3JvdXBpbmcsIHNvcnRpbmcpIHtcclxuICAgICAgICBjb25zdCBpZCA9IHRoaXMubGVuZ3RoO1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IG5ldyBQZXJzcGVjdGl2ZShpZCwgbmFtZSwgaWRGaWVsZCwgY2FjaGUsIGFnZ3JlZ2F0ZSwgZ3JvdXBpbmcsIHNvcnRpbmcpO1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXJzcGVjdGl2ZURhdGEge1xyXG4gICAgY2FjaGU7XHJcbiAgICBhZ2dyZWdhdGU7XHJcbiAgICBncm91cGluZztcclxuICAgIHNvcnRpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoY2FjaGUsIGFnZ3JlZ2F0ZSwgZ3JvdXBpbmcsIHNvcnRpbmcpIHtcclxuICAgICAgICB0aGlzLmNhY2hlID0gY2FjaGU7XHJcbiAgICAgICAgdGhpcy5hZ2dyZWdhdGUgPSBhZ2dyZWdhdGU7XHJcbiAgICAgICAgdGhpcy5ncm91cGluZyA9IGdyb3VwaW5nO1xyXG4gICAgICAgIHRoaXMuc29ydGluZyA9IHNvcnRpbmc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMb29rdXAgZXh0ZW5kcyBJZE9iamVjdCB7XHJcbiAgICBuYW1lO1xyXG4gICAgbWFwcGluZztcclxuICAgIHBlcnNwZWN0aXZlO1xyXG4gICAgdmlldztcclxuICAgIHJlbW90ZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCwgbmFtZSwgcGVyc3BlY3RpdmUsIHZpZXcsIHJlbW90ZSkge1xyXG4gICAgICAgIHN1cGVyKGlkKTtcclxuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgICAgIHRoaXMubWFwcGluZyA9IE1hcHBpbmdDb2xsZWN0aW9uLmNyZWF0ZUluc3RhbmNlKCk7XHJcbiAgICAgICAgdGhpcy5wZXJzcGVjdGl2ZSA9IHBlcnNwZWN0aXZlO1xyXG4gICAgICAgIHRoaXMudmlldyA9IHZpZXc7XHJcbiAgICAgICAgdGhpcy5yZW1vdGUgPSByZW1vdGU7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW4ge1xyXG4gICAgZmllbGQ7XHJcbiAgICB0aXRsZTtcclxuICAgIHdpZHRoO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGZpZWxkLCB0aXRsZSwgd2lkdGgpIHtcclxuICAgICAgICB0aGlzLmZpZWxkID0gZmllbGQ7XHJcbiAgICAgICAgdGhpcy50aXRsZSA9IHRpdGxlO1xyXG4gICAgICAgIHRoaXMud2lkdGggPSB3aWR0aDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbHVtbkNvbGxlY3Rpb24gZXh0ZW5kcyBBcnJheSB7XHJcbiAgICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IENvbHVtbkNvbGxlY3Rpb24oKTtcclxuICAgICAgICByZXN1bHQuX19wcm90b19fID0gQ29sdW1uQ29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQoZmllbGQsIHRpdGxlLCB3aWR0aCkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IG5ldyBDb2x1bW4oZmllbGQsIHRpdGxlLCB3aWR0aCk7XHJcbiAgICAgICAgdGhpcy5wdXNoKGl0ZW1Ub0FkZCk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1Ub0FkZDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpZXcgZXh0ZW5kcyBJZE9iamVjdCB7XHJcbiAgICBuYW1lO1xyXG4gICAgdHlwZTtcclxuICAgIGNvbHVtbnM7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaWQsIG5hbWUsIHR5cGUpIHtcclxuICAgICAgICBzdXBlcihpZCk7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgICAgIHRoaXMuY29sdW1ucyA9IENvbHVtbkNvbGxlY3Rpb24uY3JlYXRlSW5zdGFuY2UoKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpZXdDb2xsZWN0aW9uIGV4dGVuZHMgQXJyYXkge1xyXG4gICAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBWaWV3Q29sbGVjdGlvbigpO1xyXG4gICAgICAgIHJlc3VsdC5fX3Byb3RvX18gPSBWaWV3Q29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQobmFtZSwgdHlwZSkge1xyXG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5sZW5ndGg7XHJcbiAgICAgICAgY29uc3QgaXRlbVRvQWRkID0gbmV3IFZpZXcoaWQsIG5hbWUsIHR5cGUpO1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMb29rdXBDb2xsZWN0aW9uIGV4dGVuZHMgQXJyYXkge1xyXG4gICAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBMb29rdXBDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IExvb2t1cENvbGxlY3Rpb24ucHJvdG90eXBlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKG5hbWUsIHBlcnNwZWN0aXZlLCB2aWV3LCByZW1vdGUpIHtcclxuICAgICAgICBjb25zdCBpZCA9IHRoaXMubGVuZ3RoICsgMTtcclxuICAgICAgICBjb25zdCBpdGVtVG9BZGQgPSBuZXcgTG9va3VwKGlkLCBuYW1lLCBwZXJzcGVjdGl2ZSwgdmlldywgcmVtb3RlKTtcclxuICAgICAgICB0aGlzLnB1c2goaXRlbVRvQWRkKTtcclxuICAgICAgICByZXR1cm4gaXRlbVRvQWRkO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTWFwcGluZ0NvbGxlY3Rpb24gZXh0ZW5kcyBBcnJheSB7XHJcbiAgICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IE1hcHBpbmdDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IE1hcHBpbmdDb2xsZWN0aW9uLnByb3RvdHlwZTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIGFkZCh0YXJnZXQsIHNvdXJjZSkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IHtbdGFyZ2V0XTogc291cmNlfTtcclxuICAgICAgICB0aGlzLnB1c2goaXRlbVRvQWRkKTtcclxuICAgICAgICByZXR1cm4gaXRlbVRvQWRkO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbiB7XHJcbiAgICB0eXBlO1xyXG4gICAgcnVsZXM7XHJcblxyXG4gICAgY29uc3RydWN0b3IodHlwZSkge1xyXG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XHJcbiAgICAgICAgdGhpcy5ydWxlcyA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGFkZFJ1bGUocnVsZSwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLnJ1bGVzW3J1bGVdID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlUnVsZShydWxlKSB7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMucnVsZXNbcnVsZV07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uQ29sbGVjdGlvbiBleHRlbmRzIEFycmF5IHtcclxuICAgIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgVmFsaWRhdGlvbkNvbGxlY3Rpb24oKTtcclxuICAgICAgICByZXN1bHQuX19wcm90b19fID0gVmFsaWRhdGlvbkNvbGxlY3Rpb24ucHJvdG90eXBlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKHR5cGUpIHtcclxuICAgICAgICBjb25zdCBpdGVtVG9BZGQgPSBuZXcgVmFsaWRhdGlvbih0eXBlKTtcclxuICAgICAgICB0aGlzLnB1c2goaXRlbVRvQWRkKTtcclxuICAgICAgICByZXR1cm4gaXRlbVRvQWRkO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmllbGQge1xyXG4gICAgbmFtZTtcclxuICAgIGxvb2t1cDtcclxuICAgIHZhbGlkYXRpb25zO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGxvb2t1cCkge1xyXG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICAgICAgdGhpcy5sb29rdXAgPSBsb29rdXA7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ucyA9IFZhbGlkYXRpb25Db2xsZWN0aW9uLmNyZWF0ZUluc3RhbmNlKCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaWVsZENvbGxlY3Rpb24gZXh0ZW5kcyBBcnJheSB7XHJcbiAgICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IEZpZWxkQ29sbGVjdGlvbigpO1xyXG4gICAgICAgIHJlc3VsdC5fX3Byb3RvX18gPSBGaWVsZENvbGxlY3Rpb24ucHJvdG90eXBlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKG5hbWUsIGxvb2t1cCkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IG5ldyBGaWVsZChuYW1lLCBsb29rdXApO1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcblxyXG4gICAgYnlOYW1lKG5hbWUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maW5kKGl0ZW0gPT4gaXRlbS5uYW1lID09IG5hbWUpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YXNldCBleHRlbmRzIElkT2JqZWN0IHtcclxuICAgIG5hbWU7XHJcbiAgICBmaWVsZHM7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaWQsIG5hbWUpIHtcclxuICAgICAgICBzdXBlcihpZCk7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgICAgICB0aGlzLmZpZWxkcyA9IEZpZWxkQ29sbGVjdGlvbi5jcmVhdGVJbnN0YW5jZSgpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YXNldENvbGxlY3Rpb24gZXh0ZW5kcyBBcnJheSB7XHJcbiAgICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGFzZXRDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IERhdGFzZXRDb2xsZWN0aW9uLnByb3RvdHlwZTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIGFkZChpZCwgbmFtZSkge1xyXG4gICAgICAgIGNvbnN0IGRzSWQgPSBpZCA9PSB1bmRlZmluZWQgPyB0aGlzLmxlbmd0aCArIDEgOiBpZDtcclxuICAgICAgICBjb25zdCBkc05hbWUgPSBuYW1lID09IHVuZGVmaW5lZCA/IGBkYXRhc2V0ICR7ZHNJZH1gIDogbmFtZTtcclxuICAgICAgICBjb25zdCBpdGVtVG9BZGQgPSBuZXcgRGF0YXNldChkc0lkLCBkc05hbWUpO1xyXG4gICAgICAgIHRoaXMucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZSBleHRlbmRzIElkT2JqZWN0IHtcclxuICAgIG5hbWU7XHJcbiAgICBlbGVtZW50cztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCwgbmFtZSkge1xyXG4gICAgICAgIHN1cGVyKGlkKTtcclxuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgICAgIHRoaXMuZWxlbWVudHMgPSBbXTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlQ29sbGVjdGlvbiBleHRlbmRzIEFycmF5IHtcclxuICAgIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgVGVtcGxhdGVDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IFRlbXBsYXRlQ29sbGVjdGlvbi5wcm90b3R5cGU7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQoaWQpIHtcclxuICAgICAgICBpZCA9PSB1bmRlZmluZWQgPyB0aGlzLmxlbmd0aCA6IGlkO1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IG5ldyBUZW1wbGF0ZShpZCwgYGl0ZW0gJHtpZH1gKTtcclxuICAgICAgICB0aGlzLnB1c2goaXRlbVRvQWRkKTtcclxuICAgICAgICByZXR1cm4gaXRlbVRvQWRkO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YVNvdXJjZSBleHRlbmRzIElkT2JqZWN0IHtcclxuICAgIGlkO1xyXG4gICAgcmVmZXJlbmNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGlkKSB7XHJcbiAgICAgICAgc3VwZXIoaWQpO1xyXG4gICAgICAgIHRoaXMucmVmZXJlbmNlID0gXCJcIjtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJlc291cmNlRGF0YVNvdXJjZSB7XHJcbiAgICBpZDtcclxuICAgIHJlc291cmNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGlkKSB7XHJcbiAgICAgICAgdGhpcy5pZCA9IGlkO1xyXG4gICAgICAgIHRoaXMucmVzb3VyY2UgPSBbXTtcclxuICAgIH1cclxuXHJcbiAgICBhZGQoKSB7XHJcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLnJlc291cmNlLmxlbmd0aCArIDE7XHJcbiAgICAgICAgY29uc3QgaXRlbVRvQWRkID0gbmV3IFJlc291cmNlRGF0YVNvdXJjZUl0ZW0oaWQpO1xyXG4gICAgICAgIHRoaXMucmVzb3VyY2UucHVzaChpdGVtVG9BZGQpO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG9BZGQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZXNvdXJjZURhdGFTb3VyY2VJdGVtIGV4dGVuZHMgSWRPYmplY3Qge1xyXG4gICAgaWQ7XHJcbiAgICB0aXRsZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZCkge1xyXG4gICAgICAgIHN1cGVyKGlkKTtcclxuICAgICAgICB0aGlzLnRpdGxlID0gYEl0ZW0gJHtpZH1gO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YVNvdXJjZUNvbGxlY3Rpb24gZXh0ZW5kcyBBcnJheSB7XHJcbiAgICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGFTb3VyY2VDb2xsZWN0aW9uKCk7XHJcbiAgICAgICAgcmVzdWx0Ll9fcHJvdG9fXyA9IERhdGFTb3VyY2VDb2xsZWN0aW9uLnByb3RvdHlwZTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIGFkZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hZGRUeXBlKERhdGFTb3VyY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZFJlc291cmNlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFkZFR5cGUoUmVzb3VyY2VEYXRhU291cmNlKTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRUeXBlKHR5cGUpIHtcclxuICAgICAgICBjb25zdCBpZCA9IHRoaXMubGVuZ3RoO1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub0FkZCA9IG5ldyB0eXBlKGlkKTtcclxuICAgICAgICB0aGlzLnB1c2goaXRlbVRvQWRkKTtcclxuICAgICAgICByZXR1cm4gaXRlbVRvQWRkO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2NoZW1hIHtcclxuICAgIHR5cGU7XHJcbiAgICBwZXJzcGVjdGl2ZXM7XHJcbiAgICBsb29rdXBzO1xyXG4gICAgZGF0YXNldHM7XHJcbiAgICBkYXRhc291cmNlcztcclxuICAgIGJvZHk7XHJcbiAgICB0ZW1wbGF0ZXM7XHJcblxyXG4gICAgY29uc3RydWN0b3IodHlwZSkge1xyXG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XHJcbiAgICAgICAgdGhpcy5wZXJzcGVjdGl2ZXMgPSBQZXJzcGVjdGl2ZUNvbGxlY3Rpb24uY3JlYXRlSW5zdGFuY2UoKTtcclxuICAgICAgICB0aGlzLmxvb2t1cHMgPSBMb29rdXBDb2xsZWN0aW9uLmNyZWF0ZUluc3RhbmNlKCk7XHJcbiAgICAgICAgdGhpcy5kYXRhc2V0cyA9IERhdGFzZXRDb2xsZWN0aW9uLmNyZWF0ZUluc3RhbmNlKCk7XHJcbiAgICAgICAgdGhpcy5kYXRhc291cmNlcyA9IERhdGFTb3VyY2VDb2xsZWN0aW9uLmNyZWF0ZUluc3RhbmNlKCk7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMgPSBUZW1wbGF0ZUNvbGxlY3Rpb24uY3JlYXRlSW5zdGFuY2UoKTtcclxuICAgICAgICB0aGlzLmJvZHkgPSB7fTtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRhc2V0cy5hZGQoMCwgXCJtb2RlbFwiKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNjaGVtYUVsZW1lbnRGYWN0b3J5IHtcclxuICAgIHN0YXRpYyBncm91cCh0aXRsZSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIFwiZWxlbWVudFwiOiBcImdyb3VwXCIsXHJcbiAgICAgICAgICAgIFwidGl0bGVcIjogdGl0bGUsXHJcbiAgICAgICAgICAgIFwiZWxlbWVudHNcIjogW11cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGNoZWNrYm94KHRpdGxlLCBmaWVsZCwgYXR0cmlidXRlcywgc3R5bGVzKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xyXG4gICAgICAgICAgICBcImVsZW1lbnRcIjogXCJjaGVja2JveFwiLFxyXG4gICAgICAgICAgICBcInRpdGxlXCI6IHRpdGxlLFxyXG4gICAgICAgICAgICBcImZpZWxkXCI6IGZpZWxkXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgU2NoZW1hRWxlbWVudEZhY3RvcnkuYWRkQXR0cmlidXRlcyhyZXN1bHQsIGF0dHJpYnV0ZXMpO1xyXG4gICAgICAgIFNjaGVtYUVsZW1lbnRGYWN0b3J5LmFkZFN0eWxlcyhyZXN1bHQsIHN0eWxlcyk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlucHV0KHRpdGxlLCBmaWVsZCwgdHlwZSwgYXR0cmlidXRlcywgc3R5bGVzKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xyXG4gICAgICAgICAgICBcImVsZW1lbnRcIjogXCJpbnB1dFwiLFxyXG4gICAgICAgICAgICBcInRpdGxlXCI6IHRpdGxlLFxyXG4gICAgICAgICAgICBcImZpZWxkXCI6IGZpZWxkXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgU2NoZW1hRWxlbWVudEZhY3RvcnkuYWRkQXR0cmlidXRlcyhyZXN1bHQsIGF0dHJpYnV0ZXMpO1xyXG4gICAgICAgIFNjaGVtYUVsZW1lbnRGYWN0b3J5LmFkZFN0eWxlcyhyZXN1bHQsIHN0eWxlcyk7XHJcblxyXG4gICAgICAgIHJlc3VsdC5hdHRyaWJ1dGVzLnB1c2goe1xyXG4gICAgICAgICAgICBcInR5cGVcIjogdHlwZVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyByZWFkb25seSh0aXRsZSwgZmllbGQsIHR5cGUsIGF0dHJpYnV0ZXMsIHN0eWxlcykge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgICAgICAgXCJlbGVtZW50XCI6IFwicmVhZG9ubHlcIixcclxuICAgICAgICAgICAgXCJ0aXRsZVwiOiB0aXRsZSxcclxuICAgICAgICAgICAgXCJmaWVsZFwiOiBmaWVsZFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIFNjaGVtYUVsZW1lbnRGYWN0b3J5LmFkZFN0eWxlcyhyZXN1bHQsIHN0eWxlcyk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHNlbGVjdCh0aXRsZSwgZmllbGQsIGRhdGFTb3VyY2VJZCwgYXR0cmlidXRlcywgc3R5bGVzKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xyXG4gICAgICAgICAgICBcImVsZW1lbnRcIjogXCJzZWxlY3RcIixcclxuICAgICAgICAgICAgXCJ0aXRsZVwiOiB0aXRsZSxcclxuICAgICAgICAgICAgXCJmaWVsZFwiOiBmaWVsZCxcclxuICAgICAgICAgICAgXCJkYXRhc291cmNlXCI6IGRhdGFTb3VyY2VJZCxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBTY2hlbWFFbGVtZW50RmFjdG9yeS5hZGRBdHRyaWJ1dGVzKHJlc3VsdCwgYXR0cmlidXRlcyk7XHJcbiAgICAgICAgU2NoZW1hRWxlbWVudEZhY3RvcnkuYWRkU3R5bGVzKHJlc3VsdCwgc3R5bGVzKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgbWVtbyh0aXRsZSwgZmllbGQsIGF0dHJpYnV0ZXMsIHN0eWxlcykge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgICAgICAgXCJlbGVtZW50XCI6IFwibWVtb1wiLFxyXG4gICAgICAgICAgICBcInRpdGxlXCI6IHRpdGxlLFxyXG4gICAgICAgICAgICBcImZpZWxkXCI6IGZpZWxkXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgU2NoZW1hRWxlbWVudEZhY3RvcnkuYWRkQXR0cmlidXRlcyhyZXN1bHQsIGF0dHJpYnV0ZXMpO1xyXG4gICAgICAgIFNjaGVtYUVsZW1lbnRGYWN0b3J5LmFkZFN0eWxlcyhyZXN1bHQsIHN0eWxlcyk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHRlbXBsYXRlKHRlbXBsYXRlSWQpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBcImVsZW1lbnRcIjogXCJ0ZW1wbGF0ZVwiLFxyXG4gICAgICAgICAgICBcInRlbXBsYXRlXCI6IHRlbXBsYXRlSWRcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGNhcmQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgXCJlbGVtZW50XCI6IFwiY2FyZFwiLFxyXG4gICAgICAgICAgICBcImVsZW1lbnRzXCI6IFtdXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaHRtbEVsZW1lbnQoaHRtbFRhZywgY29udGVudCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIFwiZWxlbWVudFwiOiBodG1sVGFnLFxyXG4gICAgICAgICAgICBcImNvbnRlbnRcIjogY29udGVudFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHZpc3VhbGl6YXRpb24oZGF0YXNvdXJjZSwgcGVyc3BlY3RpdmUsIHZpZXcpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBcImVsZW1lbnRcIjogXCJ2aXN1YWxpemF0aW9uXCIsXHJcbiAgICAgICAgICAgIFwiZGF0YXNvdXJjZVwiOiBkYXRhc291cmNlLFxyXG4gICAgICAgICAgICBcInBlcnNwZWN0aXZlXCI6IHBlcnNwZWN0aXZlLFxyXG4gICAgICAgICAgICBcInZpZXdcIjogdmlld1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgYWRkQXR0cmlidXRlcyhvYmosIGF0dHJpYnV0ZXMpIHtcclxuICAgICAgICBpZiAoYXR0cmlidXRlcyAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgb2JqLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgb2JqLmF0dHJpYnV0ZXMgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGFkZFN0eWxlcyhvYmosIHN0eWxlcykge1xyXG4gICAgICAgIGlmIChzdHlsZXMgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5zdHlsZXMgPSBzdHlsZXM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19 |
{ | ||
"name": "pragma-schema", | ||
"version": "1.0.20", | ||
"version": "1.0.21", | ||
"description": "utility for building pragma schema structures", | ||
"main": "commonjs/src/schema-parser.js", | ||
"main": "commonjs/src/schema.js", | ||
"scripts": { | ||
@@ -7,0 +7,0 @@ "test": "nyc mocha --compilers js:babel-core/register --recursive", |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
86426
3
710
1