@tricoteuses/assemblee 0.28.1 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/lib/bugs/acteur-00010/plugin.test.js +45 -5
  2. package/lib/bugs/acteur-00010.js +29 -9
  3. package/lib/bugs/agenda-00002/plugin.test.js +46 -6
  4. package/lib/bugs/agenda-00002.js +29 -13
  5. package/lib/bugs/agenda-00008/plugin.test.js +44 -4
  6. package/lib/bugs/agenda-00008.js +29 -9
  7. package/lib/bugs/agenda-00011/plugin.test.js +50 -12
  8. package/lib/bugs/agenda-00011.js +39 -19
  9. package/lib/bugs.js +51 -31
  10. package/lib/cleaners/documents.js +13 -1
  11. package/lib/cleaners/documents.mjs +13 -1
  12. package/lib/datasets.js +243 -8
  13. package/lib/datasets.mjs +238 -8
  14. package/lib/file_systems.js +25 -5
  15. package/lib/index.d.ts +1 -1
  16. package/lib/index.js +1 -1
  17. package/lib/index.mjs +1 -1
  18. package/lib/parsers/documents.js +27 -5
  19. package/lib/parsers/recherche_amendements.js +27 -7
  20. package/lib/raw_types/dossiers_legislatifs.d.ts +4 -0
  21. package/lib/raw_types/dossiers_legislatifs.js +10 -1
  22. package/lib/raw_types/dossiers_legislatifs.mjs +10 -1
  23. package/lib/scripts/bugs_helper.js +39 -19
  24. package/lib/scripts/document_dossiers_legislatifs.js +5 -3
  25. package/lib/scripts/raw_types_from_amendements.js +28 -4
  26. package/lib/scripts/retrieve_deputes_photos.js +28 -4
  27. package/lib/scripts/retrieve_documents.js +35 -15
  28. package/lib/scripts/retrieve_open_data.js +30 -6
  29. package/lib/scripts/retrieve_pending_amendments.js +26 -4
  30. package/lib/scripts/retrieve_senateurs_photos.js +28 -4
  31. package/lib/scripts/retrieve_textes_lois.js +22 -4
  32. package/lib/scripts/validate_json.js +27 -7
  33. package/lib/types/dossiers_legislatifs.d.ts +1 -0
  34. package/lib/types/dossiers_legislatifs.js +5 -1
  35. package/lib/types/dossiers_legislatifs.mjs +5 -1
  36. package/lib/types/legislatures.d.ts +1 -0
  37. package/lib/types/legislatures.js +2 -1
  38. package/lib/types/legislatures.mjs +2 -1
  39. package/package.json +1 -1
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
3
5
  require("core-js/modules/es.array.slice.js");
4
6
 
5
7
  require("core-js/modules/es.function.name.js");
@@ -30,7 +32,21 @@ require("core-js/modules/es.object.get-own-property-descriptors.js");
30
32
 
31
33
  require("core-js/modules/es.object.define-properties.js");
32
34
 
33
- require("regenerator-runtime/runtime.js");
35
+ require("core-js/modules/es.symbol.async-iterator.js");
36
+
37
+ require("core-js/modules/es.symbol.to-string-tag.js");
38
+
39
+ require("core-js/modules/es.json.to-string-tag.js");
40
+
41
+ require("core-js/modules/es.math.to-string-tag.js");
42
+
43
+ require("core-js/modules/es.object.create.js");
44
+
45
+ require("core-js/modules/es.object.get-prototype-of.js");
46
+
47
+ require("core-js/modules/es.object.set-prototype-of.js");
48
+
49
+ require("core-js/modules/es.array.reverse.js");
34
50
 
35
51
  require("core-js/modules/es.regexp.exec.js");
36
52
 
@@ -84,6 +100,8 @@ var _urls = require("../urls");
84
100
 
85
101
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
86
102
 
103
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
104
+
87
105
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
88
106
 
89
107
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -206,10 +224,10 @@ function retrieveDocuments() {
206
224
  }
207
225
 
208
226
  function _retrieveDocuments() {
209
- _retrieveDocuments = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
227
+ _retrieveDocuments = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
210
228
  var dataDir, _loadAssembleeData, documentByUid, textesLoisDir, _iterator2, _step2, filename, textesLois, firstUid, skip, _iterator3, _step3, texteLoi, url, filePath, response, page;
211
229
 
212
- return regeneratorRuntime.wrap(function _callee$(_context) {
230
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
213
231
  while (1) {
214
232
  switch (_context.prev = _context.next) {
215
233
  case 0:
@@ -401,4 +419,4 @@ retrieveDocuments()["catch"](function (error) {
401
419
  console.log(error);
402
420
  process.exit(1);
403
421
  });
404
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIkJvb2xlYW4iLCJkZWZhdWx0VmFsdWUiLCJTdHJpbmciLCJtdWx0aXBsZSIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY29tbWl0QW5kUHVzaCIsInJlcG9zaXRvcnlEaXIiLCJjb21taXQiLCJyZW1vdGVzIiwiZXJyb3IiLCJleGVjU3luYyIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwic3RkZXJyIiwidGVzdCIsInN0ZG91dCIsImNvbnNvbGUiLCJvdXRwdXQiLCJyZW1vdGUiLCJyZXRyaWV2ZURvY3VtZW50cyIsImFzc2VydCIsInVpZCIsImRhdGFEaXIiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIkVuYWJsZWREYXRhc2V0cyIsIkRvc3NpZXJzTGVnaXNsYXRpZnMiLCJsZWdpc2xhdHVyZSIsImRvY3VtZW50QnlVaWQiLCJ0ZXh0ZXNMb2lzRGlyIiwicGF0aCIsImpvaW4iLCJmcyIsImVuc3VyZURpclN5bmMiLCJyZWFkZGlyU3luYyIsImZpbGVuYW1lIiwicmVtb3ZlU3luYyIsInRleHRlc0xvaXMiLCJPYmplY3QiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJkb2N1bWVudCIsInhzaVR5cGUiLCJUeXBlRG9jdW1lbnQiLCJUZXh0ZUxvaVR5cGUiLCJzdGFydHNXaXRoIiwibWFwIiwicmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwiLCJ1cmxGcm9tRG9jdW1lbnQiLCJEb2N1bWVudFVybEZvcm1hdCIsIlJhd0h0bWwiLCJzb3J0IiwiYSIsImIiLCJsb2NhbGVDb21wYXJlIiwiZmlyc3RVaWQiLCJza2lwIiwidGV4dGVMb2kiLCJzaWxlbnQiLCJsb2ciLCJ1cmwiLCJVUkwiLCJmaWxlUGF0aCIsImhvc3RuYW1lIiwicGF0aG5hbWUiLCJzcGxpdCIsInN0cmljdEVxdWFsIiwiZGlybmFtZSIsImZldGNoIiwicmVzcG9uc2UiLCJ0ZXh0IiwicGFnZSIsIm9rIiwic3RhdHVzIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvZGUiLCJtZXNzYWdlIiwic3RhdHVzVGV4dCIsIndyaXRlRmlsZVN5bmMiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfdGV4dGVzX2xvaXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCB7IENoaWxkUHJvY2VzcywgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBmZXRjaCBmcm9tIFwibm9kZS1mZXRjaFwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IERvY3VtZW50LCBUeXBlRG9jdW1lbnQgfSBmcm9tIFwiLi4vdHlwZXMvZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0IHsgRG9jdW1lbnRVcmxGb3JtYXQsIHVybEZyb21Eb2N1bWVudCB9IGZyb20gXCIuLi91cmxzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICB7XG4gICAgYWxpYXM6IFwiY1wiLFxuICAgIGhlbHA6IFwiY29tbWl0IGRvY3VtZW50c1wiLFxuICAgIG5hbWU6IFwiY29tbWl0XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImxcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwiMTVcIixcbiAgICBuYW1lOiBcImxlZ2lzbGF0dXJlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiclwiLFxuICAgIGhlbHA6IFwicHVzaCBjb21taXQgdG8gZ2l2ZW4gcmVtb3RlXCIsXG4gICAgbXVsdGlwbGU6IHRydWUsXG4gICAgbmFtZTogXCJyZW1vdGVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJzXCIsXG4gICAgaGVscDogXCJkb24ndCBsb2cgYW55dGhpbmdcIixcbiAgICBuYW1lOiBcInNpbGVudFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ1XCIsXG4gICAgaGVscDogXCJVSUQgb2YgZmlyc3QgQXNzZW1ibMOpZSdzIGRvY3VtZW50IHRvIHJldHJpZXZlXCIsXG4gICAgbmFtZTogXCJ1aWRcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ2XCIsXG4gICAgaGVscDogXCJ2ZXJib3NlIGxvZ3NcIixcbiAgICBuYW1lOiBcInZlcmJvc2VcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICBoZWxwOiBcImRpcmVjdG9yeSBjb250YWluaW5nIEFzc2VtYmzDqWUgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmZ1bmN0aW9uIGNvbW1pdEFuZFB1c2goXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgY29tbWl0OiBib29sZWFuLFxuICByZW1vdGVzPzogc3RyaW5nW10sXG4pOiBib29sZWFuIHtcbiAgbGV0IGVycm9yID0gZmFsc2VcbiAgaWYgKGNvbW1pdCkge1xuICAgIGV4ZWNTeW5jKFwiZ2l0IGFkZCAuXCIsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgICB0cnkge1xuICAgICAgZXhlY1N5bmMoJ2dpdCBjb21taXQgLW0gXCJOb3V2ZWxsZSBtb2lzc29uXCInLCB7XG4gICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChjaGlsZFByb2Nlc3MgYXMgQ2hpbGRQcm9jZXNzKS5zdGRlcnIgPT09IG51bGwgfHxcbiAgICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVtb3RlIG9mIHJlbW90ZXMgfHwgW10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGV4ZWNTeW5jKGBnaXQgcHVzaCAke3JlbW90ZX0gbWFzdGVyYCwge1xuICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgLy8gRG9uJ3Qgc3RvcCB3aGVuIHB1c2ggZmFpbHMuXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgZXJyb3IgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBlcnJvclxufVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZURvY3VtZW50cygpOiBQcm9taXNlPERvY3VtZW50W10+IHtcbiAgYXNzZXJ0KFxuICAgICFvcHRpb25zLmNvbW1pdCB8fCBvcHRpb25zLnVpZCxcbiAgICAnT3B0aW9ucyBcImNvbW1pdFwiICYgXCJ1aWRcIiBhcmUgaW5jb21wYXRpYmxlJyxcbiAgKVxuXG4gIGNvbnN0IGRhdGFEaXIgPSBvcHRpb25zLmRhdGFEaXJcbiAgY29uc3QgeyBkb2N1bWVudEJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgICBkYXRhRGlyLFxuICAgIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gIClcblxuICBjb25zdCB0ZXh0ZXNMb2lzRGlyID0gcGF0aC5qb2luKFxuICAgIGRhdGFEaXIsXG4gICAgXCJ3d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mclwiLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gICAgXCJ0ZXh0ZXNcIixcbiAgKVxuICBmcy5lbnN1cmVEaXJTeW5jKHRleHRlc0xvaXNEaXIpXG4gIGlmICghb3B0aW9ucy51aWQpIHtcbiAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZzLnJlYWRkaXJTeW5jKHRleHRlc0xvaXNEaXIpKSB7XG4gICAgICBpZiAoZmlsZW5hbWVbMF0gPT09IFwiLlwiKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBmcy5yZW1vdmVTeW5jKHBhdGguam9pbih0ZXh0ZXNMb2lzRGlyLCBmaWxlbmFtZSkpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgdGV4dGVzTG9pcyA9IE9iamVjdC52YWx1ZXMoZG9jdW1lbnRCeVVpZClcbiAgICAuZmlsdGVyKChkb2N1bWVudCkgPT4gZG9jdW1lbnQueHNpVHlwZSA9PT0gVHlwZURvY3VtZW50LlRleHRlTG9pVHlwZSlcbiAgICAuZmlsdGVyKFxuICAgICAgKGRvY3VtZW50KSA9PlxuICAgICAgICBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBJT05BTlwiKSB8fCBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBSSkxBTlwiKSxcbiAgICApXG4gICAgLm1hcCgoZG9jdW1lbnQpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmRvY3VtZW50LFxuICAgICAgICByYXdEb2N1bWVudEFzc2VtYmxlZVVybDogdXJsRnJvbURvY3VtZW50KFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwsXG4gICAgICAgICksXG4gICAgICB9XG4gICAgfSlcbiAgICAuc29ydCgoYSwgYikgPT5cbiAgICAgIGEucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgICAgICAgPyAtMVxuICAgICAgICA6IGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgICAgICAgPyAxXG4gICAgICAgIDogYS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybC5sb2NhbGVDb21wYXJlKGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpLFxuICAgIClcblxuICBjb25zdCBmaXJzdFVpZCA9IG9wdGlvbnMudWlkXG4gIGxldCBza2lwID0gISFmaXJzdFVpZFxuICBmb3IgKGNvbnN0IHRleHRlTG9pIG9mIHRleHRlc0xvaXMpIHtcbiAgICBpZiAoc2tpcCkge1xuICAgICAgaWYgKHRleHRlTG9pLnVpZCA9PT0gZmlyc3RVaWQpIHtcbiAgICAgICAgc2tpcCA9IGZhbHNlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFJldHJpZXZpbmcgYmlsbCAke3RleHRlTG9pLnVpZH0gYXQgJHt0ZXh0ZUxvaS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybH1gLFxuICAgICAgKVxuICAgIH1cbiAgICBpZiAodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpXG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgdXJsLmhvc3RuYW1lLFxuICAgICAgLi4udXJsLnBhdGhuYW1lLnNwbGl0KFwiL1wiKSxcbiAgICApXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRleHRlc0xvaXNEaXIsIHBhdGguZGlybmFtZShmaWxlUGF0aCkpXG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsKVxuICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCByZXNwb25zZS50ZXh0KClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSA0MDQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgRXJyb3Igd2hpbGUgZ2V0dGluZyBwYWdlIFwiJHtcbiAgICAgICAgICAgIHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsXG4gICAgICAgICAgfVwiICh1aWQ6ICR7dGV4dGVMb2kudWlkfSk6XFxuXFxuRXJyb3I6XFxuJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHsgY29kZTogcmVzcG9uc2Uuc3RhdHVzLCBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0IH0sXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgMixcbiAgICAgICAgICApfWAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIHBhZ2UpXG4gIH1cblxuICBpZiAoY29tbWl0QW5kUHVzaCh0ZXh0ZXNMb2lzRGlyLCBvcHRpb25zLmNvbW1pdCwgb3B0aW9ucy5yZW1vdGUpKSB7XG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbiAgcmV0dXJuIHRleHRlc0xvaXNcbn1cblxucmV0cmlldmVEb2N1bWVudHMoKS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgY29uc29sZS5sb2coZXJyb3IpXG4gIHByb2Nlc3MuZXhpdCgxKVxufSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTUEsa0JBQWtCLEdBQUcsQ0FDekI7RUFDRUMsS0FBSyxFQUFFLEdBRFQ7RUFFRUMsSUFBSSxFQUFFLGtCQUZSO0VBR0VDLElBQUksRUFBRSxRQUhSO0VBSUVDLElBQUksRUFBRUM7QUFKUixDQUR5QixFQU96QjtFQUNFSixLQUFLLEVBQUUsR0FEVDtFQUVFSyxZQUFZLEVBQUUsSUFGaEI7RUFHRUgsSUFBSSxFQUFFLGFBSFI7RUFJRUMsSUFBSSxFQUFFRztBQUpSLENBUHlCLEVBYXpCO0VBQ0VOLEtBQUssRUFBRSxHQURUO0VBRUVDLElBQUksRUFBRSw2QkFGUjtFQUdFTSxRQUFRLEVBQUUsSUFIWjtFQUlFTCxJQUFJLEVBQUUsUUFKUjtFQUtFQyxJQUFJLEVBQUVHO0FBTFIsQ0FieUIsRUFvQnpCO0VBQ0VOLEtBQUssRUFBRSxHQURUO0VBRUVDLElBQUksRUFBRSxvQkFGUjtFQUdFQyxJQUFJLEVBQUUsUUFIUjtFQUlFQyxJQUFJLEVBQUVDO0FBSlIsQ0FwQnlCLEVBMEJ6QjtFQUNFSixLQUFLLEVBQUUsR0FEVDtFQUVFQyxJQUFJ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
422
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIkJvb2xlYW4iLCJkZWZhdWx0VmFsdWUiLCJTdHJpbmciLCJtdWx0aXBsZSIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY29tbWl0QW5kUHVzaCIsInJlcG9zaXRvcnlEaXIiLCJjb21taXQiLCJyZW1vdGVzIiwiZXJyb3IiLCJleGVjU3luYyIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwic3RkZXJyIiwidGVzdCIsInN0ZG91dCIsImNvbnNvbGUiLCJvdXRwdXQiLCJyZW1vdGUiLCJyZXRyaWV2ZURvY3VtZW50cyIsImFzc2VydCIsInVpZCIsImRhdGFEaXIiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIkVuYWJsZWREYXRhc2V0cyIsIkRvc3NpZXJzTGVnaXNsYXRpZnMiLCJsZWdpc2xhdHVyZSIsImRvY3VtZW50QnlVaWQiLCJ0ZXh0ZXNMb2lzRGlyIiwicGF0aCIsImpvaW4iLCJmcyIsImVuc3VyZURpclN5bmMiLCJyZWFkZGlyU3luYyIsImZpbGVuYW1lIiwicmVtb3ZlU3luYyIsInRleHRlc0xvaXMiLCJPYmplY3QiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJkb2N1bWVudCIsInhzaVR5cGUiLCJUeXBlRG9jdW1lbnQiLCJUZXh0ZUxvaVR5cGUiLCJzdGFydHNXaXRoIiwibWFwIiwicmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwiLCJ1cmxGcm9tRG9jdW1lbnQiLCJEb2N1bWVudFVybEZvcm1hdCIsIlJhd0h0bWwiLCJzb3J0IiwiYSIsImIiLCJsb2NhbGVDb21wYXJlIiwiZmlyc3RVaWQiLCJza2lwIiwidGV4dGVMb2kiLCJzaWxlbnQiLCJsb2ciLCJ1cmwiLCJVUkwiLCJmaWxlUGF0aCIsImhvc3RuYW1lIiwicGF0aG5hbWUiLCJzcGxpdCIsInN0cmljdEVxdWFsIiwiZGlybmFtZSIsImZldGNoIiwicmVzcG9uc2UiLCJ0ZXh0IiwicGFnZSIsIm9rIiwic3RhdHVzIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvZGUiLCJtZXNzYWdlIiwic3RhdHVzVGV4dCIsIndyaXRlRmlsZVN5bmMiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfdGV4dGVzX2xvaXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCB7IENoaWxkUHJvY2VzcywgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBmZXRjaCBmcm9tIFwibm9kZS1mZXRjaFwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IERvY3VtZW50LCBUeXBlRG9jdW1lbnQgfSBmcm9tIFwiLi4vdHlwZXMvZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0IHsgRG9jdW1lbnRVcmxGb3JtYXQsIHVybEZyb21Eb2N1bWVudCB9IGZyb20gXCIuLi91cmxzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICB7XG4gICAgYWxpYXM6IFwiY1wiLFxuICAgIGhlbHA6IFwiY29tbWl0IGRvY3VtZW50c1wiLFxuICAgIG5hbWU6IFwiY29tbWl0XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImxcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwiMTVcIixcbiAgICBuYW1lOiBcImxlZ2lzbGF0dXJlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiclwiLFxuICAgIGhlbHA6IFwicHVzaCBjb21taXQgdG8gZ2l2ZW4gcmVtb3RlXCIsXG4gICAgbXVsdGlwbGU6IHRydWUsXG4gICAgbmFtZTogXCJyZW1vdGVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJzXCIsXG4gICAgaGVscDogXCJkb24ndCBsb2cgYW55dGhpbmdcIixcbiAgICBuYW1lOiBcInNpbGVudFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ1XCIsXG4gICAgaGVscDogXCJVSUQgb2YgZmlyc3QgQXNzZW1ibMOpZSdzIGRvY3VtZW50IHRvIHJldHJpZXZlXCIsXG4gICAgbmFtZTogXCJ1aWRcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ2XCIsXG4gICAgaGVscDogXCJ2ZXJib3NlIGxvZ3NcIixcbiAgICBuYW1lOiBcInZlcmJvc2VcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICBoZWxwOiBcImRpcmVjdG9yeSBjb250YWluaW5nIEFzc2VtYmzDqWUgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmZ1bmN0aW9uIGNvbW1pdEFuZFB1c2goXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgY29tbWl0OiBib29sZWFuLFxuICByZW1vdGVzPzogc3RyaW5nW10sXG4pOiBib29sZWFuIHtcbiAgbGV0IGVycm9yID0gZmFsc2VcbiAgaWYgKGNvbW1pdCkge1xuICAgIGV4ZWNTeW5jKFwiZ2l0IGFkZCAuXCIsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgICB0cnkge1xuICAgICAgZXhlY1N5bmMoJ2dpdCBjb21taXQgLW0gXCJOb3V2ZWxsZSBtb2lzc29uXCInLCB7XG4gICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChjaGlsZFByb2Nlc3MgYXMgQ2hpbGRQcm9jZXNzKS5zdGRlcnIgPT09IG51bGwgfHxcbiAgICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVtb3RlIG9mIHJlbW90ZXMgfHwgW10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGV4ZWNTeW5jKGBnaXQgcHVzaCAke3JlbW90ZX0gbWFzdGVyYCwge1xuICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgLy8gRG9uJ3Qgc3RvcCB3aGVuIHB1c2ggZmFpbHMuXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgZXJyb3IgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBlcnJvclxufVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZURvY3VtZW50cygpOiBQcm9taXNlPERvY3VtZW50W10+IHtcbiAgYXNzZXJ0KFxuICAgICFvcHRpb25zLmNvbW1pdCB8fCBvcHRpb25zLnVpZCxcbiAgICAnT3B0aW9ucyBcImNvbW1pdFwiICYgXCJ1aWRcIiBhcmUgaW5jb21wYXRpYmxlJyxcbiAgKVxuXG4gIGNvbnN0IGRhdGFEaXIgPSBvcHRpb25zLmRhdGFEaXJcbiAgY29uc3QgeyBkb2N1bWVudEJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgICBkYXRhRGlyLFxuICAgIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gIClcblxuICBjb25zdCB0ZXh0ZXNMb2lzRGlyID0gcGF0aC5qb2luKFxuICAgIGRhdGFEaXIsXG4gICAgXCJ3d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mclwiLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gICAgXCJ0ZXh0ZXNcIixcbiAgKVxuICBmcy5lbnN1cmVEaXJTeW5jKHRleHRlc0xvaXNEaXIpXG4gIGlmICghb3B0aW9ucy51aWQpIHtcbiAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZzLnJlYWRkaXJTeW5jKHRleHRlc0xvaXNEaXIpKSB7XG4gICAgICBpZiAoZmlsZW5hbWVbMF0gPT09IFwiLlwiKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBmcy5yZW1vdmVTeW5jKHBhdGguam9pbih0ZXh0ZXNMb2lzRGlyLCBmaWxlbmFtZSkpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgdGV4dGVzTG9pcyA9IE9iamVjdC52YWx1ZXMoZG9jdW1lbnRCeVVpZClcbiAgICAuZmlsdGVyKChkb2N1bWVudCkgPT4gZG9jdW1lbnQueHNpVHlwZSA9PT0gVHlwZURvY3VtZW50LlRleHRlTG9pVHlwZSlcbiAgICAuZmlsdGVyKFxuICAgICAgKGRvY3VtZW50KSA9PlxuICAgICAgICBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBJT05BTlwiKSB8fCBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBSSkxBTlwiKSxcbiAgICApXG4gICAgLm1hcCgoZG9jdW1lbnQpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmRvY3VtZW50LFxuICAgICAgICByYXdEb2N1bWVudEFzc2VtYmxlZVVybDogdXJsRnJvbURvY3VtZW50KFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwsXG4gICAgICAgICksXG4gICAgICB9XG4gICAgfSlcbiAgICAuc29ydCgoYSwgYikgPT5cbiAgICAgIGEucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgICAgICAgPyAtMVxuICAgICAgICA6IGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgICAgICAgPyAxXG4gICAgICAgIDogYS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybC5sb2NhbGVDb21wYXJlKGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpLFxuICAgIClcblxuICBjb25zdCBmaXJzdFVpZCA9IG9wdGlvbnMudWlkXG4gIGxldCBza2lwID0gISFmaXJzdFVpZFxuICBmb3IgKGNvbnN0IHRleHRlTG9pIG9mIHRleHRlc0xvaXMpIHtcbiAgICBpZiAoc2tpcCkge1xuICAgICAgaWYgKHRleHRlTG9pLnVpZCA9PT0gZmlyc3RVaWQpIHtcbiAgICAgICAgc2tpcCA9IGZhbHNlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFJldHJpZXZpbmcgYmlsbCAke3RleHRlTG9pLnVpZH0gYXQgJHt0ZXh0ZUxvaS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybH1gLFxuICAgICAgKVxuICAgIH1cbiAgICBpZiAodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpXG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgdXJsLmhvc3RuYW1lLFxuICAgICAgLi4udXJsLnBhdGhuYW1lLnNwbGl0KFwiL1wiKSxcbiAgICApXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRleHRlc0xvaXNEaXIsIHBhdGguZGlybmFtZShmaWxlUGF0aCkpXG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsKVxuICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCByZXNwb25zZS50ZXh0KClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSA0MDQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgRXJyb3Igd2hpbGUgZ2V0dGluZyBwYWdlIFwiJHtcbiAgICAgICAgICAgIHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsXG4gICAgICAgICAgfVwiICh1aWQ6ICR7dGV4dGVMb2kudWlkfSk6XFxuXFxuRXJyb3I6XFxuJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHsgY29kZTogcmVzcG9uc2Uuc3RhdHVzLCBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0IH0sXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgMixcbiAgICAgICAgICApfWAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIHBhZ2UpXG4gIH1cblxuICBpZiAoY29tbWl0QW5kUHVzaCh0ZXh0ZXNMb2lzRGlyLCBvcHRpb25zLmNvbW1pdCwgb3B0aW9ucy5yZW1vdGUpKSB7XG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbiAgcmV0dXJuIHRleHRlc0xvaXNcbn1cblxucmV0cmlldmVEb2N1bWVudHMoKS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgY29uc29sZS5sb2coZXJyb3IpXG4gIHByb2Nlc3MuZXhpdCgxKVxufSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7OzsrQ0FUQSxvSjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSxJQUFNQSxrQkFBa0IsR0FBRyxDQUN6QjtFQUNFQyxLQUFLLEVBQUUsR0FEVDtFQUVFQyxJQUFJLEVBQUUsa0JBRlI7RUFHRUMsSUFBSSxFQUFFLFFBSFI7RUFJRUMsSUFBSSxFQUFFQztBQUpSLENBRHlCLEVBT3pCO0VBQ0VKLEtBQUssRUFBRSxHQURUO0VBRUVLLFlBQVksRUFBRSxJQUZoQjtFQUdFSCxJQUFJLEVBQUUsYUFIUjtFQUlFQyxJQUFJLEVBQUVHO0FBSlIsQ0FQeUIsRUFhekI7RUFDRU4sS0FBSyxFQUFFLEdBRFQ7RUFFRUMsSUFBSSxFQUFFLDZCQUZSO0VBR0VNLFFBQVEsRUFBRSxJQUhaO0VBSUVMLElBQUksRUFBRSxRQUpSO0VBS0VDLElBQUksRUFBRUc7QUFMUixDQWJ5QixFQW9CekI7RUFDRU4sS0FBSyxFQUFFLEdBRFQ7RUFFRUMsSUFBSSxFQUFFLG9CQUZSO0VBR0VDLElBQUksRUFBRSxRQUhSO0VBSUVDLElBQUksRUFBRUM7QUFKUixDQXBCeUIsRUEwQnpCO0VBQ0VKLEtBQUssRUFBRSxHQURUO0VBRUVDLElBQUksRUFBRSwrQ0FGUjtFQUdFQyxJQUFJLEVBQUUsS0FIUjtFQUlFQyxJQUFJLEVBQUVHO0FBSlIsQ0ExQnlCLEVBZ0N6QjtFQUNFTixLQUFLLEVBQUUsR0FEVDtFQUVFQyxJQUFJLEVBQUUsY0FGUjtFQUdFQyxJQUFJLEVBQUUsU0FIUjtFQUlFQyxJQUFJLEVBQUVDO0FBSlIsQ0FoQ3lCLEVBc0N6QjtFQUNFSSxhQUFhLEVBQUUsSUFEakI7RUFFRVAsSUFBSSxFQUFFLGdEQUZSO0VBR0VDLElBQUksRUFBRSxTQUhSO0VBSUVDLElBQUksRUFBRUc7QUFKUixDQXRDeUIsQ0FBM0I7QUE2Q0EsSUFBTUcsT0FBTyxHQUFHLElBQUFDLDJCQUFBLEVBQWdCWCxrQkFBaEIsQ0FBaEI7O0FBRUEsU0FBU1ksYUFBVCxDQUNFQyxhQURGLEVBRUVDLE1BRkYsRUFHRUMsT0FIRixFQUlXO0VBQ1QsSUFBSUMsS0FBSyxHQUFHLEtBQVo7O0VBQ0EsSUFBSUYsTUFBSixFQUFZO0lBQ1YsSUFBQUcsdUJBQUEsRUFBUyxXQUFULEVBQXNCO01BQ3BCQyxHQUFHLEVBQUVMLGFBRGU7TUFFcEJNLEdBQUcsRUFBRUMsT0FBTyxDQUFDRCxHQUZPO01BR3BCRSxRQUFRLEVBQUUsT0FIVTtNQUlwQkMsS0FBSyxFQUFFLENBQUMsUUFBRCxFQUFXLFFBQVgsRUFBcUIsTUFBckI7SUFKYSxDQUF0Qjs7SUFNQSxJQUFJO01BQ0YsSUFBQUwsdUJBQUEsRUFBUyxrQ0FBVCxFQUE2QztRQUMzQ0MsR0FBRyxFQUFFTCxhQURzQztRQUUzQ00sR0FBRyxFQUFFQyxPQUFPLENBQUNELEdBRjhCO1FBRzNDRSxRQUFRLEVBQUU7TUFIaUMsQ0FBN0M7SUFLRCxDQU5ELENBTUUsT0FBT0UsWUFBUCxFQUFxQjtNQUNyQixJQUNHQSxZQUFELENBQStCQyxNQUEvQixLQUEwQyxJQUExQyxJQUNBLENBQUMsb0JBQW9CQyxJQUFwQixDQUEwQkYsWUFBRCxDQUFzQkcsTUFBL0MsQ0FGSCxFQUdFO1FBQ0FDLE9BQU8sQ0FBQ1gsS0FBUixDQUFlTyxZQUFELENBQXNCSyxNQUFwQztRQUNBLE1BQU1MLFlBQU47TUFDRDtJQUNGOztJQXJCUywyQ0FzQldSLE9BQU8sSUFBSSxFQXRCdEI7SUFBQTs7SUFBQTtNQXNCVixvREFBb0M7UUFBQSxJQUF6QmMsTUFBeUI7O1FBQ2xDLElBQUk7VUFDRixJQUFBWix1QkFBQSxxQkFBcUJZLE1BQXJCLGNBQXNDO1lBQ3BDWCxHQUFHLEVBQUVMLGFBRCtCO1lBRXBDTSxHQUFHLEVBQUVDLE9BQU8sQ0FBQ0QsR0FGdUI7WUFHcENFLFFBQVEsRUFBRSxPQUgwQjtZQUlwQ0MsS0FBSyxFQUFFLENBQUMsUUFBRCxFQUFXLFFBQVgsRUFBcUIsTUFBckI7VUFKNkIsQ0FBdEM7UUFNRCxDQVBELENBT0UsT0FBT0MsWUFBUCxFQUFxQjtVQUNyQjtVQUNBSSxPQUFPLENBQUNYLEtBQVIsQ0FBZU8sWUFBRCxDQUFzQkssTUFBcEM7VUFDQVosS0FBSyxHQUFHLElBQVI7UUFDRDtNQUNGO0lBbkNTO01BQUE7SUFBQTtNQUFBO0lBQUE7RUFvQ1g7O0VBQ0QsT0FBT0EsS0FBUDtBQUNEOztTQUVjYyxpQjs7Ozs7a0ZBQWY7SUFBQTs7SUFBQTtNQUFBO1FBQUE7VUFBQTtZQUNFLElBQUFDLGtCQUFBLEVBQ0UsQ0FBQ3JCLE9BQU8sQ0FBQ0ksTUFBVCxJQUFtQkosT0FBTyxDQUFDc0IsR0FEN0IsRUFFRSwyQ0FGRjtZQUtNQyxPQU5SLEdBTWtCdkIsT0FBTyxDQUFDdUIsT0FOMUI7WUFBQSxxQkFPNEIsSUFBQUMsMEJBQUEsRUFDeEJELE9BRHdCLEVBRXhCRSx5QkFBQSxDQUFnQkMsbUJBRlEsRUFHeEIxQixPQUFPLENBQUMyQixXQUhnQixDQVA1QixFQU9VQyxhQVBWLHNCQU9VQSxhQVBWO1lBYVFDLGFBYlIsR0Fhd0JDLGdCQUFBLENBQUtDLElBQUwsQ0FDcEJSLE9BRG9CLEVBRXBCLDRCQUZvQixFQUdwQnZCLE9BQU8sQ0FBQzJCLFdBSFksRUFJcEIsUUFKb0IsQ0FieEI7O1lBbUJFSyxtQkFBQSxDQUFHQyxhQUFILENBQWlCSixhQUFqQjs7WUFuQkYsSUFvQk83QixPQUFPLENBQUNzQixHQXBCZjtjQUFBO2NBQUE7WUFBQTs7WUFBQSx3Q0FxQjJCVSxtQkFBQSxDQUFHRSxXQUFILENBQWVMLGFBQWYsQ0FyQjNCO1lBQUE7O1lBQUE7O1VBQUE7WUFBQTtjQUFBO2NBQUE7WUFBQTs7WUFxQmVNLFFBckJmOztZQUFBLE1Bc0JVQSxRQUFRLENBQUMsQ0FBRCxDQUFSLEtBQWdCLEdBdEIxQjtjQUFBO2NBQUE7WUFBQTs7WUFBQTs7VUFBQTtZQXlCTUgsbUJBQUEsQ0FBR0ksVUFBSCxDQUFjTixnQkFBQSxDQUFLQyxJQUFMLENBQVVGLGFBQVYsRUFBeUJNLFFBQXpCLENBQWQ7O1VBekJOO1lBQUE7WUFBQTs7VUFBQTtZQUFBO1lBQUE7O1VBQUE7WUFBQTtZQUFBOztZQUFBOztVQUFBO1lBQUE7O1lBQUE7O1lBQUE7O1VBQUE7WUE2QlFFLFVBN0JSLEdBNkJxQkMsTUFBTSxDQUFDQyxNQUFQLENBQWNYLGFBQWQsRUFDaEJZLE1BRGdCLENBQ1QsVUFBQ0MsUUFBRDtjQUFBLE9BQWNBLFFBQVEsQ0FBQ0MsT0FBVCxLQUFxQkMsa0NBQUEsQ0FBYUMsWUFBaEQ7WUFBQSxDQURTLEVBRWhCSixNQUZnQixDQUdmLFVBQUNDLFFBQUQ7Y0FBQSxPQUNFQSxRQUFRLENBQUNuQixHQUFULENBQWF1QixVQUFiLENBQXdCLFFBQXhCLEtBQXFDSixRQUFRLENBQUNuQixHQUFULENBQWF1QixVQUFiLENBQXdCLFFBQXhCLENBRHZDO1lBQUEsQ0FIZSxFQU1oQkMsR0FOZ0IsQ0FNWixVQUFDTCxRQUFELEVBQWM7Y0FDakIsdUNBQ0tBLFFBREw7Z0JBRUVNLHVCQUF1QixFQUFFLElBQUFDLHFCQUFBLEVBQ3ZCUCxRQUR1QixFQUV2QlEsdUJBQUEsQ0FBa0JDLE9BRks7Y0FGM0I7WUFPRCxDQWRnQixFQWVoQkMsSUFmZ0IsQ0FlWCxVQUFDQyxDQUFELEVBQUlDLENBQUo7Y0FBQSxPQUNKRCxDQUFDLENBQUNMLHVCQUFGLEtBQThCLElBQTlCLEdBQ0ksQ0FBQyxDQURMLEdBRUlNLENBQUMsQ0FBQ04sdUJBQUYsS0FBOEIsSUFBOUIsR0FDQSxDQURBLEdBRUFLLENBQUMsQ0FBQ0wsdUJBQUYsQ0FBMEJPLGFBQTFCLENBQXdDRCxDQUFDLENBQUNOLHVCQUExQyxDQUxBO1lBQUEsQ0FmVyxDQTdCckI7WUFvRFFRLFFBcERSLEdBb0RtQnZELE9BQU8sQ0FBQ3NCLEdBcEQzQjtZQXFETWtDLElBckROLEdBcURhLENBQUMsQ0FBQ0QsUUFyRGY7WUFBQSx3Q0FzRHlCbEIsVUF0RHpCO1lBQUE7O1lBQUE7O1VBQUE7WUFBQTtjQUFBO2NBQUE7WUFBQTs7WUFzRGFvQixRQXREYjs7WUFBQSxLQXVEUUQsSUF2RFI7Y0FBQTtjQUFBO1lBQUE7O1lBQUEsTUF3RFVDLFFBQVEsQ0FBQ25DLEdBQVQsS0FBaUJpQyxRQXhEM0I7Y0FBQTtjQUFBO1lBQUE7O1lBeURRQyxJQUFJLEdBQUcsS0FBUDtZQXpEUjtZQUFBOztVQUFBO1lBQUE7O1VBQUE7WUE4REksSUFBSSxDQUFDeEQsT0FBTyxDQUFDMEQsTUFBYixFQUFxQjtjQUNuQnpDLE9BQU8sQ0FBQzBDLEdBQVIsMkJBQ3FCRixRQUFRLENBQUNuQyxHQUQ5QixpQkFDd0NtQyxRQUFRLENBQUNWLHVCQURqRDtZQUdEOztZQWxFTCxNQW1FUVUsUUFBUSxDQUFDVix1QkFBVCxLQUFxQyxJQW5FN0M7Y0FBQTtjQUFBO1lBQUE7O1lBQUE7O1VBQUE7WUFzRVVhLEdBdEVWLEdBc0VnQixJQUFJQyxHQUFKLENBQVFKLFFBQVEsQ0FBQ1YsdUJBQWpCLENBdEVoQjtZQXVFVWUsUUF2RVYsR0F1RXFCaEMsZ0JBQUEsQ0FBS0MsSUFBTCxPQUFBRCxnQkFBQSxHQUNmUCxPQURlLEVBRWZxQyxHQUFHLENBQUNHLFFBRlcsNEJBR1pILEdBQUcsQ0FBQ0ksUUFBSixDQUFhQyxLQUFiLENBQW1CLEdBQW5CLENBSFksR0F2RXJCOztZQTRFSTVDLGtCQUFBLENBQU82QyxXQUFQLENBQW1CckMsYUFBbkIsRUFBa0NDLGdCQUFBLENBQUtxQyxPQUFMLENBQWFMLFFBQWIsQ0FBbEM7O1lBNUVKO1lBQUEsT0E4RTJCLElBQUFNLHFCQUFBLEVBQU1YLFFBQVEsQ0FBQ1YsdUJBQWYsQ0E5RTNCOztVQUFBO1lBOEVVc0IsUUE5RVY7WUFBQTtZQUFBLE9BK0V1QkEsUUFBUSxDQUFDQyxJQUFULEVBL0V2Qjs7VUFBQTtZQStFVUMsSUEvRVY7O1lBQUEsSUFnRlNGLFFBQVEsQ0FBQ0csRUFoRmxCO2NBQUE7Y0FBQTtZQUFBOztZQWlGTSxJQUFJSCxRQUFRLENBQUNJLE1BQVQsS0FBb0IsR0FBeEIsRUFBNkI7Y0FDM0J4RCxPQUFPLENBQUNYLEtBQVIsc0NBRUltRCxRQUFRLENBQUNWLHVCQUZiLHNCQUdhVSxRQUFRLENBQUNuQyxHQUh0QiwyQkFHMENvRCxJQUFJLENBQUNDLFNBQUwsQ0FDdEM7Z0JBQUVDLElBQUksRUFBRVAsUUFBUSxDQUFDSSxNQUFqQjtnQkFBeUJJLE9BQU8sRUFBRVIsUUFBUSxDQUFDUztjQUEzQyxDQURzQyxFQUV0QyxJQUZzQyxFQUd0QyxDQUhzQyxDQUgxQztZQVNEOztZQTNGUDs7VUFBQTtZQThGSTlDLG1CQUFBLENBQUcrQyxhQUFILENBQWlCakIsUUFBakIsRUFBMkJTLElBQTNCOztVQTlGSjtZQUFBO1lBQUE7O1VBQUE7WUFBQTtZQUFBOztVQUFBO1lBQUE7WUFBQTs7WUFBQTs7VUFBQTtZQUFBOztZQUFBOztZQUFBOztVQUFBO1lBaUdFLElBQUlyRSxhQUFhLENBQUMyQixhQUFELEVBQWdCN0IsT0FBTyxDQUFDSSxNQUF4QixFQUFnQ0osT0FBTyxDQUFDbUIsTUFBeEMsQ0FBakIsRUFBa0U7Y0FDaEVULE9BQU8sQ0FBQ3NFLElBQVIsQ0FBYSxDQUFiO1lBQ0Q7O1lBbkdILGlDQW9HUzNDLFVBcEdUOztVQUFBO1VBQUE7WUFBQTtRQUFBO01BQUE7SUFBQTtFQUFBLEM7Ozs7QUF1R0FqQixpQkFBaUIsV0FBakIsQ0FBMEIsVUFBQ2QsS0FBRCxFQUFXO0VBQ25DVyxPQUFPLENBQUMwQyxHQUFSLENBQVlyRCxLQUFaO0VBQ0FJLE9BQU8sQ0FBQ3NFLElBQVIsQ0FBYSxDQUFiO0FBQ0QsQ0FIRCJ9
@@ -26,12 +26,30 @@ require("core-js/modules/es.array.is-array.js");
26
26
 
27
27
  require("core-js/modules/es.promise.js");
28
28
 
29
+ require("core-js/modules/es.symbol.async-iterator.js");
30
+
31
+ require("core-js/modules/es.symbol.to-string-tag.js");
32
+
33
+ require("core-js/modules/es.json.to-string-tag.js");
34
+
35
+ require("core-js/modules/es.math.to-string-tag.js");
36
+
37
+ require("core-js/modules/es.object.create.js");
38
+
39
+ require("core-js/modules/es.object.get-prototype-of.js");
40
+
41
+ require("core-js/modules/es.array.for-each.js");
42
+
43
+ require("core-js/modules/web.dom-collections.for-each.js");
44
+
45
+ require("core-js/modules/es.object.set-prototype-of.js");
46
+
47
+ require("core-js/modules/es.array.reverse.js");
48
+
29
49
  require("core-js/modules/es.weak-map.js");
30
50
 
31
51
  require("core-js/modules/es.object.get-own-property-descriptor.js");
32
52
 
33
- require("regenerator-runtime/runtime.js");
34
-
35
53
  require("core-js/modules/es.array.includes.js");
36
54
 
37
55
  require("core-js/modules/es.string.includes.js");
@@ -72,6 +90,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
72
90
 
73
91
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
74
92
 
93
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
94
+
75
95
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
76
96
 
77
97
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
@@ -281,10 +301,10 @@ var Validate = /*#__PURE__*/function () {
281
301
  }, {
282
302
  key: "process",
283
303
  value: function () {
284
- var _process = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
304
+ var _process = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
285
305
  var status, _iterator3, _step3, file, content;
286
306
 
287
- return regeneratorRuntime.wrap(function _callee$(_context) {
307
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
288
308
  while (1) {
289
309
  switch (_context.prev = _context.next) {
290
310
  case 0:
@@ -331,10 +351,10 @@ function main(_x) {
331
351
 
332
352
 
333
353
  function _main() {
334
- _main = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(argv) {
354
+ _main = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(argv) {
335
355
  var options, directorySchema, _iterator4, _step4, d, validate, status;
336
356
 
337
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
357
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
338
358
  while (1) {
339
359
  switch (_context2.prev = _context2.next) {
340
360
  case 0:
@@ -443,4 +463,4 @@ if (process.argv[1].endsWith("validate_json.ts")) main(process.argv).then(functi
443
463
  console.error(error);
444
464
  process.exit(1);
445
465
  });
446
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0ZW1wIiwidHJhY2siLCJwYXJzZUFyZ3MiLCJhcmd2Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiZGVzY3JpcHRpb24iLCJkZWZhdWx0T3B0aW9uIiwibmFtZSIsInR5cGUiLCJTdHJpbmciLCJkZWZhdWx0VmFsdWUiLCJnZXREYXRhc2V0cyIsImdldFNjaGVtYXMiLCJCb29sZWFuIiwic2VjdGlvbnMiLCJoZWFkZXIiLCJjb250ZW50Iiwib3B0aW9uTGlzdCIsIm9wdGlvbnMiLCJjb21tYW5kTGluZUFyZ3MiLCJkYXRhc2V0IiwidmFsaWREYXRhc2V0IiwiY29uc29sZSIsImVycm9yIiwiaGVscCIsInNjaGVtYSIsImluY2x1ZGVzIiwidXNhZ2UiLCJjb21tYW5kTGluZVVzYWdlIiwid2FybiIsIlZhbGlkYXRlIiwidmVyc2lvbjJzY2hlbWEiLCJ0bXBEaXIiLCJta2RpclN5bmMiLCJ0YWciLCJkZXYiLCJ2ZXJib3NlIiwibG9nIiwicmVwb3NpdG9yeURpciIsInBhdGgiLCJqb2luIiwidGFnRGlyIiwiZnMiLCJleGlzdHNTeW5jIiwiZ2l0IiwicnVuIiwicmVwb3NpdG9yeSIsInJlbmFtZVN5bmMiLCJ2ZXJzaW9uIiwiYWp2IiwiQWp2IiwiZGlyIiwiZ2V0U2NoZW1hRGlyIiwicmVmZXJlbmNlcyIsImdldEZpbGVzIiwicmVmZXJlbmNlIiwicHVzaCIsImZpbGUiLCJhZGRTY2hlbWEiLCJsb2FkIiwiU2NoZW1hIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsInMiLCJjb21waWxlIiwic2NoZW1hVmVyc2lvbiIsInVuZGVmaW5lZCIsInJlcGxhY2UiLCJmaWxlbmFtZSIsImdldFZlcnNpb24iLCJ2YWxpZGF0b3IiLCJnZXRWYWxpZGF0b3IiLCJ2YWxpZCIsInNjaGVtYVVSTCIsImdldFNjaGVtYVVSTCIsImVycm9ycyIsInN0YXR1cyIsImRhdGEiLCJ2YWxpZGF0ZSIsIm1haW4iLCJkaXJlY3RvcnlTY2hlbWEiLCJkYXRhc2V0RGlyZWN0b3J5U2NoZW1hIiwiZCIsInByb2Nlc3MiLCJlbmRzV2l0aCIsInRoZW4iLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvdmFsaWRhdGVfanNvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQWp2IGZyb20gXCJhanZcIlxuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGNvbW1hbmRMaW5lVXNhZ2UgZnJvbSBcImNvbW1hbmQtbGluZS11c2FnZVwiXG5pbXBvcnQgeyBsb2FkLCBnZXRGaWxlcyB9IGZyb20gXCIuLi9maWxlX3N5c3RlbXNcIlxuaW1wb3J0ICogYXMgZ2l0IGZyb20gXCIuLi9naXRcIlxuaW1wb3J0IHRlbXAgZnJvbSBcInRlbXBcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQge1xuICB2YWxpZERhdGFzZXQsXG4gIGdldERhdGFzZXRzLFxuICBnZXRTY2hlbWFzLFxuICBkYXRhc2V0RGlyZWN0b3J5U2NoZW1hLFxufSBmcm9tIFwiLi4vLi4vc3JjL2RhdGFzZXRzXCJcblxuLy8gQXV0b21hdGljYWxseSB0cmFjayBhbmQgY2xlYW51cCBmaWxlcyBhdCBleGl0XG50ZW1wLnRyYWNrKClcblxuZnVuY3Rpb24gcGFyc2VBcmdzKGFyZ3Y6IHN0cmluZ1tdKTogYW55IHtcbiAgY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcInBhdGhuYW1lIHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgZGF0YXNldFwiLFxuICAgICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICAgIG5hbWU6IFwiZGF0YVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IFwiVVJMIG9yIHBhdGggdG8gdGhlIHRyaWNvdGV1c2VzLWFzc2VtYmxlZSBnaXQgcmVwb3NpdG9yeVwiLFxuICAgICAgZGVmYXVsdFZhbHVlOlxuICAgICAgICBcImh0dHBzOi8vZ2l0LmVuLXJvb3Qub3JnL3RyaWNvdGV1c2VzL3RyaWNvdGV1c2VzLWFzc2VtYmxlZS5naXRcIixcbiAgICAgIG5hbWU6IFwicmVwb3NpdG9yeVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IGBkYXRhc2V0IChwb3NzaWJsZSB2YWx1ZXMgbXVzdCBpbmNsdWRlIGV4YWN0bHkgb25lIG9mICR7Z2V0RGF0YXNldHMoKX0pYCxcbiAgICAgIG5hbWU6IFwiZGF0YXNldFwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IGBzY2hlbWEgKHBvc3NpYmxlIHZhbHVlcyBhcmUgJHtnZXRTY2hlbWFzKCl9KWAsXG4gICAgICBuYW1lOiBcInNjaGVtYVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiaWdub3JlIHNjaGVtYVZlcnNpb24gZnJvbSBKU09OIGZpbGVzIGFuZCB1c2UgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGluc3RlYWQgb2YgdGhlIC0tcmVwb3NpdG9yeVwiLFxuICAgICAgbmFtZTogXCJkZXZcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJpbmNyZWFzZSB2ZXJib3NpdHlcIixcbiAgICAgIG5hbWU6IFwidmVyYm9zZVwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwiaGVscFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiUHJpbnQgdGhpcyB1c2FnZSBndWlkZS5cIixcbiAgICB9LFxuICBdXG4gIGNvbnN0IHNlY3Rpb25zID0gW1xuICAgIHtcbiAgICAgIGhlYWRlcjogXCJWYWxpZGF0ZSBKU09OIGZpbGVzXCIsXG4gICAgICBjb250ZW50OiBcIlZhbGlkYXRlIEpTT04gZmlsZXNcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGhlYWRlcjogXCJPcHRpb25zXCIsXG4gICAgICBvcHRpb25MaXN0OiBvcHRpb25zRGVmaW5pdGlvbnMsXG4gICAgfSxcbiAgXVxuICBjb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucywge1xuICAgIGFyZ3Y6IGFyZ3YsXG4gIH0pXG5cbiAgaWYgKG9wdGlvbnMuZGF0YXNldCkge1xuICAgIGlmICghdmFsaWREYXRhc2V0KG9wdGlvbnMuZGF0YXNldCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYC0tZGF0YXNldCAke29wdGlvbnMuZGF0YXNldH1gKVxuICAgICAgb3B0aW9ucy5oZWxwID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGlmIChvcHRpb25zLnNjaGVtYSkge1xuICAgIGlmICghZ2V0U2NoZW1hcygpLmluY2x1ZGVzKG9wdGlvbnMuc2NoZW1hKSkge1xuICAgICAgY29uc29sZS5lcnJvcihgLS1zY2hlbWEgJHtvcHRpb25zLnNjaGVtYX1gKVxuICAgICAgb3B0aW9ucy5oZWxwID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGlmIChcImhlbHBcIiBpbiBvcHRpb25zKSB7XG4gICAgY29uc3QgdXNhZ2UgPSBjb21tYW5kTGluZVVzYWdlKHNlY3Rpb25zKVxuICAgIGNvbnNvbGUud2Fybih1c2FnZSlcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIHJldHVybiBvcHRpb25zXG59XG5cbmNsYXNzIFZhbGlkYXRlIHtcbiAgb3B0aW9uczogYW55XG4gIHZlcnNpb24yc2NoZW1hOiBhbnlcbiAgdG1wRGlyOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zXG4gICAgdGhpcy52ZXJzaW9uMnNjaGVtYSA9IHt9XG4gICAgdGhpcy50bXBEaXIgPSB0ZW1wLm1rZGlyU3luYyhcInZhbGlkYXRpb25cIilcbiAgfVxuXG4gIGdldFNjaGVtYURpcih0YWc6IHN0cmluZykge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuZGV2ID09IHRydWUpIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkgY29uc29sZS5sb2coXCItLWRldjogdXNlIHNyYy9zY2hlbWFzXCIpXG4gICAgICByZXR1cm4gXCJzcmMvc2NoZW1hc1wiXG4gICAgfVxuICAgIGNvbnN0IHJlcG9zaXRvcnlEaXIgPSBwYXRoLmpvaW4odGhpcy50bXBEaXIsIFwidHJpY290ZXVzZXMtYXNzZW1ibGVlXCIpXG4gICAgY29uc3QgdGFnRGlyID0gcGF0aC5qb2luKHRoaXMudG1wRGlyLCB0YWcpXG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKHRhZ0RpcikpIHtcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhyZXBvc2l0b3J5RGlyKSkge1xuICAgICAgICBnaXQucnVuKFxuICAgICAgICAgIHRoaXMudG1wRGlyLFxuICAgICAgICAgIGBjbG9uZSAtLXF1aWV0ICR7dGhpcy5vcHRpb25zLnJlcG9zaXRvcnl9ICR7cmVwb3NpdG9yeURpcn1gLFxuICAgICAgICApXG4gICAgICB9XG4gICAgICBnaXQucnVuKFxuICAgICAgICByZXBvc2l0b3J5RGlyLFxuICAgICAgICBgY2hlY2tvdXQgdGFncy8ke3RhZ30gLS0gc3JjL3NjaGVtYXMgPiAvZGV2L251bGwgMj4mMWAsXG4gICAgICApXG4gICAgICBmcy5yZW5hbWVTeW5jKHBhdGguam9pbihyZXBvc2l0b3J5RGlyLCBcInNyYy9zY2hlbWFzXCIpLCB0YWdEaXIpXG4gICAgfVxuICAgIHJldHVybiB0YWdEaXJcbiAgfVxuXG4gIGdldFZhbGlkYXRvcih2ZXJzaW9uOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICghKHZlcnNpb24gaW4gdGhpcy52ZXJzaW9uMnNjaGVtYSkpIHtcbiAgICAgIGNvbnN0IGFqdiA9IG5ldyBBanYoKVxuICAgICAgY29uc3QgZGlyID0gdGhpcy5nZXRTY2hlbWFEaXIoYHNjaGVtYS0ke3ZlcnNpb259YClcbiAgICAgIGxldCByZWZlcmVuY2VzID0gW11cbiAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIGdldEZpbGVzKFtcbiAgICAgICAgYCR7ZGlyfS8ke3RoaXMub3B0aW9ucy5zY2hlbWF9LyouanNvbmAsXG4gICAgICBdKSlcbiAgICAgICAgcmVmZXJlbmNlcy5wdXNoKHJlZmVyZW5jZSlcbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBnZXRGaWxlcyhyZWZlcmVuY2VzKSkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIGNvbnNvbGUubG9nKGByZWZlcmVuY2U6ICR7ZmlsZX1gKVxuICAgICAgICBhanYuYWRkU2NoZW1hKGxvYWQoZmlsZSkpXG4gICAgICB9XG4gICAgICBjb25zdCBzY2hlbWEgPSB0aGlzLm9wdGlvbnMuc2NoZW1hXG4gICAgICBjb25zdCBTY2hlbWEgPSBzY2hlbWEuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzY2hlbWEuc2xpY2UoMSlcbiAgICAgIGNvbnN0IHMgPSBgJHtkaXJ9LyR7c2NoZW1hfS8ke1NjaGVtYX0uanNvbmBcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkgY29uc29sZS5sb2coYHNjaGVtYSAke3N9YClcbiAgICAgIHRoaXMudmVyc2lvbjJzY2hlbWFbdmVyc2lvbl0gPSBhanYuY29tcGlsZShsb2FkKHMpKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy52ZXJzaW9uMnNjaGVtYVt2ZXJzaW9uXVxuICB9XG5cbiAgZ2V0VmVyc2lvbihjb250ZW50OiBhbnkpOiBzdHJpbmcge1xuICAgIGlmIChjb250ZW50LnNjaGVtYVZlcnNpb24gIT0gdW5kZWZpbmVkKSByZXR1cm4gY29udGVudC5zY2hlbWFWZXJzaW9uXG4gICAgcmV0dXJuIGAke3RoaXMub3B0aW9ucy5zY2hlbWF9LTEuMGBcbiAgfVxuXG4gIGdldFNjaGVtYVVSTCh2ZXJzaW9uOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuZGV2ID09IHRydWUpIHJldHVybiBcInNyYy9zY2hlbWFzXCJcbiAgICBlbHNlIHtcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRoaXMub3B0aW9ucy5yZXBvc2l0b3J5KSkge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5vcHRpb25zLnJlcG9zaXRvcnl9L3NyYy9zY2hlbWFzIGF0IHRhZyBzY2hlbWEtJHt2ZXJzaW9ufWBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlcG9zaXRvcnkgPSB0aGlzLm9wdGlvbnMucmVwb3NpdG9yeS5yZXBsYWNlKC9cXC5naXQkLywgXCJcIilcbiAgICAgICAgcmV0dXJuIGAke3JlcG9zaXRvcnl9L3RyZWUvc2NoZW1hLSR7dmVyc2lvbn0vc3JjL3NjaGVtYXNgXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGUoY29udGVudDogYW55LCBmaWxlbmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCB0YWcgPSB0aGlzLmdldFZlcnNpb24oY29udGVudClcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLmdldFZhbGlkYXRvcih0YWcpXG4gICAgY29uc3QgdmFsaWQgPSB2YWxpZGF0b3IoY29udGVudClcbiAgICBjb25zdCBzY2hlbWFVUkwgPSB0aGlzLmdldFNjaGVtYVVSTCh0YWcpXG4gICAgaWYgKCF2YWxpZCkge1xuICAgICAgY29uc29sZS5lcnJvcihgJHtzY2hlbWFVUkx9IGZpbmRzICR7ZmlsZW5hbWV9IGlzIGludmFsaWRgKVxuICAgICAgY29uc29sZS5lcnJvcih2YWxpZGF0b3IuZXJyb3JzKVxuICAgICAgcmV0dXJuIDFcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy52ZXJib3NlKVxuICAgICAgICBjb25zb2xlLmxvZyhgJHtzY2hlbWFVUkx9IGZpbmRzICR7ZmlsZW5hbWV9IGlzIHZhbGlkYClcbiAgICAgIHJldHVybiAwXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcHJvY2VzcygpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGxldCBzdGF0dXMgPSAwXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGdldEZpbGVzKFt0aGlzLm9wdGlvbnMuZGF0YV0pKSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gbG9hZChmaWxlKVxuICAgICAgc3RhdHVzIHw9IHRoaXMudmFsaWRhdGUoY29udGVudCwgZmlsZSlcbiAgICB9XG4gICAgcmV0dXJuIHN0YXR1c1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oYXJndjogYW55KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHBhcnNlQXJncyhhcmd2KVxuICBpZiAob3B0aW9ucyA9PT0gbnVsbCkgcmV0dXJuIDFcbiAgbGV0IGRpcmVjdG9yeVNjaGVtYSA9IFtdXG4gIGlmIChvcHRpb25zLnNjaGVtYSkge1xuICAgIGRpcmVjdG9yeVNjaGVtYSA9IFtbb3B0aW9ucy5kYXRhLCBvcHRpb25zLnNjaGVtYV1dXG4gIH0gZWxzZSBpZiAob3B0aW9ucy5kYXRhc2V0KSB7XG4gICAgZGlyZWN0b3J5U2NoZW1hID0gZGF0YXNldERpcmVjdG9yeVNjaGVtYShvcHRpb25zLmRhdGFzZXQpXG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5lcnJvcihcImVpdGhlciAtLXNjaGVtYSBvciAtLWRhdGFzZXQgaXMgcmVxdWlyZWRcIilcbiAgICByZXR1cm4gMVxuICB9XG4gIGZvciAoY29uc3QgZCBvZiBkaXJlY3RvcnlTY2hlbWEpIHtcbiAgICBvcHRpb25zLnNjaGVtYSA9IGRbMV1cbiAgICBvcHRpb25zLmRhdGEgPSBkWzBdXG4gICAgaWYgKG9wdGlvbnMudmVyYm9zZSlcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgd29ya2luZyBvbiBmaWxlcyAke29wdGlvbnMuZGF0YX0gd2l0aCBzY2hlbWEgJHtvcHRpb25zLnNjaGVtYX1gLFxuICAgICAgKVxuICAgIGNvbnN0IHZhbGlkYXRlID0gbmV3IFZhbGlkYXRlKG9wdGlvbnMpXG4gICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdmFsaWRhdGUucHJvY2VzcygpXG4gICAgaWYgKHN0YXR1cyAhPSAwKSByZXR1cm4gc3RhdHVzXG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAocHJvY2Vzcy5hcmd2WzFdLmVuZHNXaXRoKFwidmFsaWRhdGVfanNvbi50c1wiKSlcbiAgbWFpbihwcm9jZXNzLmFyZ3YpXG4gICAgLnRoZW4oKHN0YXR1cykgPT4ge1xuICAgICAgcHJvY2Vzcy5leGl0KHN0YXR1cylcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9BO0FBQ0FBLGdCQUFBLENBQUtDLEtBQUw7O0FBRUEsU0FBU0MsU0FBVCxDQUFtQkMsSUFBbkIsRUFBd0M7RUFDdEMsSUFBTUMsa0JBQWtCLEdBQUcsQ0FDekI7SUFDRUMsV0FBVyxFQUFFLGtEQURmO0lBRUVDLGFBQWEsRUFBRSxJQUZqQjtJQUdFQyxJQUFJLEVBQUUsTUFIUjtJQUlFQyxJQUFJLEVBQUVDO0VBSlIsQ0FEeUIsRUFPekI7SUFDRUosV0FBVyxFQUFFLHlEQURmO0lBRUVLLFlBQVksRUFDViwrREFISjtJQUlFSCxJQUFJLEVBQUUsWUFKUjtJQUtFQyxJQUFJLEVBQUVDO0VBTFIsQ0FQeUIsRUFjekI7SUFDRUosV0FBVyxpRUFBMEQsSUFBQU0scUJBQUEsR0FBMUQsTUFEYjtJQUVFSixJQUFJLEVBQUUsU0FGUjtJQUdFQyxJQUFJLEVBQUVDO0VBSFIsQ0FkeUIsRUFtQnpCO0lB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
466
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0ZW1wIiwidHJhY2siLCJwYXJzZUFyZ3MiLCJhcmd2Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiZGVzY3JpcHRpb24iLCJkZWZhdWx0T3B0aW9uIiwibmFtZSIsInR5cGUiLCJTdHJpbmciLCJkZWZhdWx0VmFsdWUiLCJnZXREYXRhc2V0cyIsImdldFNjaGVtYXMiLCJCb29sZWFuIiwic2VjdGlvbnMiLCJoZWFkZXIiLCJjb250ZW50Iiwib3B0aW9uTGlzdCIsIm9wdGlvbnMiLCJjb21tYW5kTGluZUFyZ3MiLCJkYXRhc2V0IiwidmFsaWREYXRhc2V0IiwiY29uc29sZSIsImVycm9yIiwiaGVscCIsInNjaGVtYSIsImluY2x1ZGVzIiwidXNhZ2UiLCJjb21tYW5kTGluZVVzYWdlIiwid2FybiIsIlZhbGlkYXRlIiwidmVyc2lvbjJzY2hlbWEiLCJ0bXBEaXIiLCJta2RpclN5bmMiLCJ0YWciLCJkZXYiLCJ2ZXJib3NlIiwibG9nIiwicmVwb3NpdG9yeURpciIsInBhdGgiLCJqb2luIiwidGFnRGlyIiwiZnMiLCJleGlzdHNTeW5jIiwiZ2l0IiwicnVuIiwicmVwb3NpdG9yeSIsInJlbmFtZVN5bmMiLCJ2ZXJzaW9uIiwiYWp2IiwiQWp2IiwiZGlyIiwiZ2V0U2NoZW1hRGlyIiwicmVmZXJlbmNlcyIsImdldEZpbGVzIiwicmVmZXJlbmNlIiwicHVzaCIsImZpbGUiLCJhZGRTY2hlbWEiLCJsb2FkIiwiU2NoZW1hIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsInMiLCJjb21waWxlIiwic2NoZW1hVmVyc2lvbiIsInVuZGVmaW5lZCIsInJlcGxhY2UiLCJmaWxlbmFtZSIsImdldFZlcnNpb24iLCJ2YWxpZGF0b3IiLCJnZXRWYWxpZGF0b3IiLCJ2YWxpZCIsInNjaGVtYVVSTCIsImdldFNjaGVtYVVSTCIsImVycm9ycyIsInN0YXR1cyIsImRhdGEiLCJ2YWxpZGF0ZSIsIm1haW4iLCJkaXJlY3RvcnlTY2hlbWEiLCJkYXRhc2V0RGlyZWN0b3J5U2NoZW1hIiwiZCIsInByb2Nlc3MiLCJlbmRzV2l0aCIsInRoZW4iLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvdmFsaWRhdGVfanNvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQWp2IGZyb20gXCJhanZcIlxuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGNvbW1hbmRMaW5lVXNhZ2UgZnJvbSBcImNvbW1hbmQtbGluZS11c2FnZVwiXG5pbXBvcnQgeyBsb2FkLCBnZXRGaWxlcyB9IGZyb20gXCIuLi9maWxlX3N5c3RlbXNcIlxuaW1wb3J0ICogYXMgZ2l0IGZyb20gXCIuLi9naXRcIlxuaW1wb3J0IHRlbXAgZnJvbSBcInRlbXBcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQge1xuICB2YWxpZERhdGFzZXQsXG4gIGdldERhdGFzZXRzLFxuICBnZXRTY2hlbWFzLFxuICBkYXRhc2V0RGlyZWN0b3J5U2NoZW1hLFxufSBmcm9tIFwiLi4vLi4vc3JjL2RhdGFzZXRzXCJcblxuLy8gQXV0b21hdGljYWxseSB0cmFjayBhbmQgY2xlYW51cCBmaWxlcyBhdCBleGl0XG50ZW1wLnRyYWNrKClcblxuZnVuY3Rpb24gcGFyc2VBcmdzKGFyZ3Y6IHN0cmluZ1tdKTogYW55IHtcbiAgY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcInBhdGhuYW1lIHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgZGF0YXNldFwiLFxuICAgICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICAgIG5hbWU6IFwiZGF0YVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IFwiVVJMIG9yIHBhdGggdG8gdGhlIHRyaWNvdGV1c2VzLWFzc2VtYmxlZSBnaXQgcmVwb3NpdG9yeVwiLFxuICAgICAgZGVmYXVsdFZhbHVlOlxuICAgICAgICBcImh0dHBzOi8vZ2l0LmVuLXJvb3Qub3JnL3RyaWNvdGV1c2VzL3RyaWNvdGV1c2VzLWFzc2VtYmxlZS5naXRcIixcbiAgICAgIG5hbWU6IFwicmVwb3NpdG9yeVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IGBkYXRhc2V0IChwb3NzaWJsZSB2YWx1ZXMgbXVzdCBpbmNsdWRlIGV4YWN0bHkgb25lIG9mICR7Z2V0RGF0YXNldHMoKX0pYCxcbiAgICAgIG5hbWU6IFwiZGF0YXNldFwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IGBzY2hlbWEgKHBvc3NpYmxlIHZhbHVlcyBhcmUgJHtnZXRTY2hlbWFzKCl9KWAsXG4gICAgICBuYW1lOiBcInNjaGVtYVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiaWdub3JlIHNjaGVtYVZlcnNpb24gZnJvbSBKU09OIGZpbGVzIGFuZCB1c2UgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGluc3RlYWQgb2YgdGhlIC0tcmVwb3NpdG9yeVwiLFxuICAgICAgbmFtZTogXCJkZXZcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJpbmNyZWFzZSB2ZXJib3NpdHlcIixcbiAgICAgIG5hbWU6IFwidmVyYm9zZVwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwiaGVscFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiUHJpbnQgdGhpcyB1c2FnZSBndWlkZS5cIixcbiAgICB9LFxuICBdXG4gIGNvbnN0IHNlY3Rpb25zID0gW1xuICAgIHtcbiAgICAgIGhlYWRlcjogXCJWYWxpZGF0ZSBKU09OIGZpbGVzXCIsXG4gICAgICBjb250ZW50OiBcIlZhbGlkYXRlIEpTT04gZmlsZXNcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGhlYWRlcjogXCJPcHRpb25zXCIsXG4gICAgICBvcHRpb25MaXN0OiBvcHRpb25zRGVmaW5pdGlvbnMsXG4gICAgfSxcbiAgXVxuICBjb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucywge1xuICAgIGFyZ3Y6IGFyZ3YsXG4gIH0pXG5cbiAgaWYgKG9wdGlvbnMuZGF0YXNldCkge1xuICAgIGlmICghdmFsaWREYXRhc2V0KG9wdGlvbnMuZGF0YXNldCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYC0tZGF0YXNldCAke29wdGlvbnMuZGF0YXNldH1gKVxuICAgICAgb3B0aW9ucy5oZWxwID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGlmIChvcHRpb25zLnNjaGVtYSkge1xuICAgIGlmICghZ2V0U2NoZW1hcygpLmluY2x1ZGVzKG9wdGlvbnMuc2NoZW1hKSkge1xuICAgICAgY29uc29sZS5lcnJvcihgLS1zY2hlbWEgJHtvcHRpb25zLnNjaGVtYX1gKVxuICAgICAgb3B0aW9ucy5oZWxwID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGlmIChcImhlbHBcIiBpbiBvcHRpb25zKSB7XG4gICAgY29uc3QgdXNhZ2UgPSBjb21tYW5kTGluZVVzYWdlKHNlY3Rpb25zKVxuICAgIGNvbnNvbGUud2Fybih1c2FnZSlcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIHJldHVybiBvcHRpb25zXG59XG5cbmNsYXNzIFZhbGlkYXRlIHtcbiAgb3B0aW9uczogYW55XG4gIHZlcnNpb24yc2NoZW1hOiBhbnlcbiAgdG1wRGlyOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zXG4gICAgdGhpcy52ZXJzaW9uMnNjaGVtYSA9IHt9XG4gICAgdGhpcy50bXBEaXIgPSB0ZW1wLm1rZGlyU3luYyhcInZhbGlkYXRpb25cIilcbiAgfVxuXG4gIGdldFNjaGVtYURpcih0YWc6IHN0cmluZykge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuZGV2ID09IHRydWUpIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkgY29uc29sZS5sb2coXCItLWRldjogdXNlIHNyYy9zY2hlbWFzXCIpXG4gICAgICByZXR1cm4gXCJzcmMvc2NoZW1hc1wiXG4gICAgfVxuICAgIGNvbnN0IHJlcG9zaXRvcnlEaXIgPSBwYXRoLmpvaW4odGhpcy50bXBEaXIsIFwidHJpY290ZXVzZXMtYXNzZW1ibGVlXCIpXG4gICAgY29uc3QgdGFnRGlyID0gcGF0aC5qb2luKHRoaXMudG1wRGlyLCB0YWcpXG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKHRhZ0RpcikpIHtcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhyZXBvc2l0b3J5RGlyKSkge1xuICAgICAgICBnaXQucnVuKFxuICAgICAgICAgIHRoaXMudG1wRGlyLFxuICAgICAgICAgIGBjbG9uZSAtLXF1aWV0ICR7dGhpcy5vcHRpb25zLnJlcG9zaXRvcnl9ICR7cmVwb3NpdG9yeURpcn1gLFxuICAgICAgICApXG4gICAgICB9XG4gICAgICBnaXQucnVuKFxuICAgICAgICByZXBvc2l0b3J5RGlyLFxuICAgICAgICBgY2hlY2tvdXQgdGFncy8ke3RhZ30gLS0gc3JjL3NjaGVtYXMgPiAvZGV2L251bGwgMj4mMWAsXG4gICAgICApXG4gICAgICBmcy5yZW5hbWVTeW5jKHBhdGguam9pbihyZXBvc2l0b3J5RGlyLCBcInNyYy9zY2hlbWFzXCIpLCB0YWdEaXIpXG4gICAgfVxuICAgIHJldHVybiB0YWdEaXJcbiAgfVxuXG4gIGdldFZhbGlkYXRvcih2ZXJzaW9uOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICghKHZlcnNpb24gaW4gdGhpcy52ZXJzaW9uMnNjaGVtYSkpIHtcbiAgICAgIGNvbnN0IGFqdiA9IG5ldyBBanYoKVxuICAgICAgY29uc3QgZGlyID0gdGhpcy5nZXRTY2hlbWFEaXIoYHNjaGVtYS0ke3ZlcnNpb259YClcbiAgICAgIGxldCByZWZlcmVuY2VzID0gW11cbiAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIGdldEZpbGVzKFtcbiAgICAgICAgYCR7ZGlyfS8ke3RoaXMub3B0aW9ucy5zY2hlbWF9LyouanNvbmAsXG4gICAgICBdKSlcbiAgICAgICAgcmVmZXJlbmNlcy5wdXNoKHJlZmVyZW5jZSlcbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBnZXRGaWxlcyhyZWZlcmVuY2VzKSkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIGNvbnNvbGUubG9nKGByZWZlcmVuY2U6ICR7ZmlsZX1gKVxuICAgICAgICBhanYuYWRkU2NoZW1hKGxvYWQoZmlsZSkpXG4gICAgICB9XG4gICAgICBjb25zdCBzY2hlbWEgPSB0aGlzLm9wdGlvbnMuc2NoZW1hXG4gICAgICBjb25zdCBTY2hlbWEgPSBzY2hlbWEuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzY2hlbWEuc2xpY2UoMSlcbiAgICAgIGNvbnN0IHMgPSBgJHtkaXJ9LyR7c2NoZW1hfS8ke1NjaGVtYX0uanNvbmBcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkgY29uc29sZS5sb2coYHNjaGVtYSAke3N9YClcbiAgICAgIHRoaXMudmVyc2lvbjJzY2hlbWFbdmVyc2lvbl0gPSBhanYuY29tcGlsZShsb2FkKHMpKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy52ZXJzaW9uMnNjaGVtYVt2ZXJzaW9uXVxuICB9XG5cbiAgZ2V0VmVyc2lvbihjb250ZW50OiBhbnkpOiBzdHJpbmcge1xuICAgIGlmIChjb250ZW50LnNjaGVtYVZlcnNpb24gIT0gdW5kZWZpbmVkKSByZXR1cm4gY29udGVudC5zY2hlbWFWZXJzaW9uXG4gICAgcmV0dXJuIGAke3RoaXMub3B0aW9ucy5zY2hlbWF9LTEuMGBcbiAgfVxuXG4gIGdldFNjaGVtYVVSTCh2ZXJzaW9uOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuZGV2ID09IHRydWUpIHJldHVybiBcInNyYy9zY2hlbWFzXCJcbiAgICBlbHNlIHtcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRoaXMub3B0aW9ucy5yZXBvc2l0b3J5KSkge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5vcHRpb25zLnJlcG9zaXRvcnl9L3NyYy9zY2hlbWFzIGF0IHRhZyBzY2hlbWEtJHt2ZXJzaW9ufWBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlcG9zaXRvcnkgPSB0aGlzLm9wdGlvbnMucmVwb3NpdG9yeS5yZXBsYWNlKC9cXC5naXQkLywgXCJcIilcbiAgICAgICAgcmV0dXJuIGAke3JlcG9zaXRvcnl9L3RyZWUvc2NoZW1hLSR7dmVyc2lvbn0vc3JjL3NjaGVtYXNgXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGUoY29udGVudDogYW55LCBmaWxlbmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCB0YWcgPSB0aGlzLmdldFZlcnNpb24oY29udGVudClcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLmdldFZhbGlkYXRvcih0YWcpXG4gICAgY29uc3QgdmFsaWQgPSB2YWxpZGF0b3IoY29udGVudClcbiAgICBjb25zdCBzY2hlbWFVUkwgPSB0aGlzLmdldFNjaGVtYVVSTCh0YWcpXG4gICAgaWYgKCF2YWxpZCkge1xuICAgICAgY29uc29sZS5lcnJvcihgJHtzY2hlbWFVUkx9IGZpbmRzICR7ZmlsZW5hbWV9IGlzIGludmFsaWRgKVxuICAgICAgY29uc29sZS5lcnJvcih2YWxpZGF0b3IuZXJyb3JzKVxuICAgICAgcmV0dXJuIDFcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy52ZXJib3NlKVxuICAgICAgICBjb25zb2xlLmxvZyhgJHtzY2hlbWFVUkx9IGZpbmRzICR7ZmlsZW5hbWV9IGlzIHZhbGlkYClcbiAgICAgIHJldHVybiAwXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcHJvY2VzcygpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGxldCBzdGF0dXMgPSAwXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGdldEZpbGVzKFt0aGlzLm9wdGlvbnMuZGF0YV0pKSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gbG9hZChmaWxlKVxuICAgICAgc3RhdHVzIHw9IHRoaXMudmFsaWRhdGUoY29udGVudCwgZmlsZSlcbiAgICB9XG4gICAgcmV0dXJuIHN0YXR1c1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oYXJndjogYW55KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHBhcnNlQXJncyhhcmd2KVxuICBpZiAob3B0aW9ucyA9PT0gbnVsbCkgcmV0dXJuIDFcbiAgbGV0IGRpcmVjdG9yeVNjaGVtYSA9IFtdXG4gIGlmIChvcHRpb25zLnNjaGVtYSkge1xuICAgIGRpcmVjdG9yeVNjaGVtYSA9IFtbb3B0aW9ucy5kYXRhLCBvcHRpb25zLnNjaGVtYV1dXG4gIH0gZWxzZSBpZiAob3B0aW9ucy5kYXRhc2V0KSB7XG4gICAgZGlyZWN0b3J5U2NoZW1hID0gZGF0YXNldERpcmVjdG9yeVNjaGVtYShvcHRpb25zLmRhdGFzZXQpXG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5lcnJvcihcImVpdGhlciAtLXNjaGVtYSBvciAtLWRhdGFzZXQgaXMgcmVxdWlyZWRcIilcbiAgICByZXR1cm4gMVxuICB9XG4gIGZvciAoY29uc3QgZCBvZiBkaXJlY3RvcnlTY2hlbWEpIHtcbiAgICBvcHRpb25zLnNjaGVtYSA9IGRbMV1cbiAgICBvcHRpb25zLmRhdGEgPSBkWzBdXG4gICAgaWYgKG9wdGlvbnMudmVyYm9zZSlcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgd29ya2luZyBvbiBmaWxlcyAke29wdGlvbnMuZGF0YX0gd2l0aCBzY2hlbWEgJHtvcHRpb25zLnNjaGVtYX1gLFxuICAgICAgKVxuICAgIGNvbnN0IHZhbGlkYXRlID0gbmV3IFZhbGlkYXRlKG9wdGlvbnMpXG4gICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdmFsaWRhdGUucHJvY2VzcygpXG4gICAgaWYgKHN0YXR1cyAhPSAwKSByZXR1cm4gc3RhdHVzXG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAocHJvY2Vzcy5hcmd2WzFdLmVuZHNXaXRoKFwidmFsaWRhdGVfanNvbi50c1wiKSlcbiAgbWFpbihwcm9jZXNzLmFyZ3YpXG4gICAgLnRoZW4oKHN0YXR1cykgPT4ge1xuICAgICAgcHJvY2Vzcy5leGl0KHN0YXR1cylcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7OzsrQ0FQQSxvSjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjQTtBQUNBQSxnQkFBQSxDQUFLQyxLQUFMOztBQUVBLFNBQVNDLFNBQVQsQ0FBbUJDLElBQW5CLEVBQXdDO0VBQ3RDLElBQU1DLGtCQUFrQixHQUFHLENBQ3pCO0lBQ0VDLFdBQVcsRUFBRSxrREFEZjtJQUVFQyxhQUFhLEVBQUUsSUFGakI7SUFHRUMsSUFBSSxFQUFFLE1BSFI7SUFJRUMsSUFBSSxFQUFFQztFQUpSLENBRHlCLEVBT3pCO0lBQ0VKLFdBQVcsRUFBRSx5REFEZjtJQUVFSyxZQUFZLEVBQ1YsK0RBSEo7SUFJRUgsSUFBSSxFQUFFLFlBSlI7SUFLRUMsSUFBSSxFQUFFQztFQUxSLENBUHlCLEVBY3pCO0lBQ0VKLFdBQVcsaUVBQTBELElBQUFNLHFCQUFBLEdBQTFELE1BRGI7SUFFRUosSUFBSSxFQUFFLFNBRlI7SUFHRUMsSUFB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
@@ -297,6 +297,7 @@ export interface Document {
297
297
  imprimerie?: Imprimerie;
298
298
  coSignataires?: CoSignataireElement[];
299
299
  depotAmendements?: DepotAmendements;
300
+ organesReferents?: string[];
300
301
  rapportPublie?: boolean;
301
302
  }
302
303
  export declare enum TypeDocument {