@tricoteuses/assemblee 1.1.1 → 1.1.2

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 (50) hide show
  1. package/lib/bugs/acteur-00010/plugin.test.js +1 -1
  2. package/lib/bugs/acteur-00010.js +9 -4
  3. package/lib/bugs/agenda-00002/plugin.test.js +1 -1
  4. package/lib/bugs/agenda-00002.js +13 -9
  5. package/lib/bugs/agenda-00002.mjs +4 -2
  6. package/lib/bugs/agenda-00008/plugin.test.js +1 -1
  7. package/lib/bugs/agenda-00008.js +9 -4
  8. package/lib/bugs/agenda-00011/plugin.test.js +1 -1
  9. package/lib/bugs/agenda-00011.js +14 -9
  10. package/lib/bugs/agenda-00011.mjs +4 -2
  11. package/lib/bugs.js +13 -8
  12. package/lib/bugs.mjs +4 -2
  13. package/lib/cleaners/xml.js +1 -1
  14. package/lib/datasets.js +1 -1
  15. package/lib/dossiers_legislatifs.d.ts +1 -1
  16. package/lib/file_systems.js +9 -4
  17. package/lib/file_systems.mjs +4 -2
  18. package/lib/parsers/documents.js +1 -1
  19. package/lib/parsers/recherche_amendements.js +2 -2
  20. package/lib/raw_types/acteurs_et_organes.js +10 -5
  21. package/lib/raw_types/agendas.js +10 -5
  22. package/lib/raw_types/amendements.js +10 -5
  23. package/lib/raw_types/dossiers_legislatifs.js +10 -5
  24. package/lib/raw_types/scrutins.js +10 -5
  25. package/lib/scripts/bugs_helper.js +13 -9
  26. package/lib/scripts/bugs_helper.mjs +4 -2
  27. package/lib/scripts/clean_reorganized_data.js +1 -1
  28. package/lib/scripts/document_dossiers_legislatifs.js +9 -4
  29. package/lib/scripts/document_dossiers_legislatifs.mjs +4 -2
  30. package/lib/scripts/raw_types_from_amendements.js +1 -1
  31. package/lib/scripts/reorganize_data.js +1 -1
  32. package/lib/scripts/retrieve_deputes_photos.js +2 -2
  33. package/lib/scripts/retrieve_documents.js +14 -9
  34. package/lib/scripts/retrieve_documents.mjs +4 -2
  35. package/lib/scripts/retrieve_open_data.js +1 -1
  36. package/lib/scripts/retrieve_pending_amendments.js +2 -2
  37. package/lib/scripts/retrieve_senateurs_photos.js +2 -2
  38. package/lib/scripts/retrieve_textes_lois.js +8 -3
  39. package/lib/scripts/validate_json.js +13 -8
  40. package/lib/scripts/validate_json.mjs +4 -2
  41. package/lib/shared_types/codes_actes.d.ts +3 -1
  42. package/lib/shared_types/codes_actes.js +17 -5
  43. package/lib/shared_types/codes_actes.mjs +2 -1
  44. package/lib/types/acteurs_et_organes.d.ts +1 -1
  45. package/lib/types/acteurs_et_organes.js +10 -5
  46. package/lib/types/agendas.js +10 -5
  47. package/lib/types/amendements.js +10 -5
  48. package/lib/types/dossiers_legislatifs.js +10 -5
  49. package/lib/types/scrutins.js +10 -5
  50. package/package.json +4 -4
@@ -41,10 +41,10 @@ var _datasets = require("../datasets");
41
41
  var _loaders = require("../loaders");
42
42
  var _acteurs_et_organes = require("../types/acteurs_et_organes");
43
43
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
44
- 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, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $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 defineProperty(generator, "_invoke", { value: makeInvokeMethod(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; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(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); } }; } 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, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), 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 (val) { var object = Object(val), 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; }
44
+ 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, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $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 defineProperty(generator, "_invoke", { value: makeInvokeMethod(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; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(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); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), 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, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), 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 (val) { var object = Object(val), 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; }
45
45
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
46
46
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
47
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
47
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
48
48
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
49
49
  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); } }
50
50
  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); }); }; }
@@ -9,6 +9,9 @@ require("core-js/modules/es.symbol.description.js");
9
9
  require("core-js/modules/es.symbol.iterator.js");
10
10
  require("core-js/modules/es.array.is-array.js");
11
11
  require("core-js/modules/es.promise.js");
12
+ require("core-js/modules/es.symbol.to-primitive.js");
13
+ require("core-js/modules/es.date.to-primitive.js");
14
+ require("core-js/modules/es.number.constructor.js");
12
15
  require("core-js/modules/es.object.define-property.js");
13
16
  require("core-js/modules/es.object.keys.js");
14
17
  require("core-js/modules/es.object.get-own-property-descriptor.js");
@@ -49,14 +52,16 @@ var _loaders = require("../loaders");
49
52
  var _dossiers_legislatifs = require("../types/dossiers_legislatifs");
50
53
  var _urls = require("../urls");
51
54
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
52
- 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, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $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 defineProperty(generator, "_invoke", { value: makeInvokeMethod(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; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(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); } }; } 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, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), 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 (val) { var object = Object(val), 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; }
55
+ 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, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $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 defineProperty(generator, "_invoke", { value: makeInvokeMethod(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; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(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); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), 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, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), 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 (val) { var object = Object(val), 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; }
53
56
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
54
57
  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."); }
55
58
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
56
59
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
57
60
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
58
61
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
59
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
62
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
63
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
64
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
60
65
  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); } }
61
66
  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); }); }; }
62
67
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
@@ -298,4 +303,4 @@ retrieveDocuments()["catch"](function (error) {
298
303
  console.log(error);
299
304
  process.exit(1);
300
305
  });
301
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIkJvb2xlYW4iLCJkZWZhdWx0VmFsdWUiLCJTdHJpbmciLCJtdWx0aXBsZSIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY29tbWl0QW5kUHVzaCIsInJlcG9zaXRvcnlEaXIiLCJjb21taXQiLCJyZW1vdGVzIiwiZXJyb3IiLCJleGVjU3luYyIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwic3RkZXJyIiwidGVzdCIsInN0ZG91dCIsImNvbnNvbGUiLCJvdXRwdXQiLCJyZW1vdGUiLCJyZXRyaWV2ZURvY3VtZW50cyIsImFzc2VydCIsInVpZCIsImRhdGFEaXIiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIkVuYWJsZWREYXRhc2V0cyIsIkRvc3NpZXJzTGVnaXNsYXRpZnMiLCJsZWdpc2xhdHVyZSIsImRvY3VtZW50QnlVaWQiLCJ0ZXh0ZXNMb2lzRGlyIiwicGF0aCIsImpvaW4iLCJmcyIsImVuc3VyZURpclN5bmMiLCJyZWFkZGlyU3luYyIsImZpbGVuYW1lIiwicmVtb3ZlU3luYyIsInRleHRlc0xvaXMiLCJPYmplY3QiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJkb2N1bWVudCIsInhzaVR5cGUiLCJUeXBlRG9jdW1lbnQiLCJUZXh0ZUxvaVR5cGUiLCJzdGFydHNXaXRoIiwibWFwIiwicmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwiLCJ1cmxGcm9tRG9jdW1lbnQiLCJEb2N1bWVudFVybEZvcm1hdCIsIlJhd0h0bWwiLCJzb3J0IiwiYSIsImIiLCJsb2NhbGVDb21wYXJlIiwiZmlyc3RVaWQiLCJza2lwIiwidGV4dGVMb2kiLCJzaWxlbnQiLCJsb2ciLCJ1cmwiLCJVUkwiLCJmaWxlUGF0aCIsImhvc3RuYW1lIiwicGF0aG5hbWUiLCJzcGxpdCIsInN0cmljdEVxdWFsIiwiZGlybmFtZSIsImZldGNoIiwicmVzcG9uc2UiLCJ0ZXh0IiwicGFnZSIsIm9rIiwic3RhdHVzIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvZGUiLCJtZXNzYWdlIiwic3RhdHVzVGV4dCIsIndyaXRlRmlsZVN5bmMiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfdGV4dGVzX2xvaXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCB7IENoaWxkUHJvY2VzcywgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBmZXRjaCBmcm9tIFwibm9kZS1mZXRjaFwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IERvY3VtZW50LCBUeXBlRG9jdW1lbnQgfSBmcm9tIFwiLi4vdHlwZXMvZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0IHsgRG9jdW1lbnRVcmxGb3JtYXQsIHVybEZyb21Eb2N1bWVudCB9IGZyb20gXCIuLi91cmxzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICB7XG4gICAgYWxpYXM6IFwiY1wiLFxuICAgIGhlbHA6IFwiY29tbWl0IGRvY3VtZW50c1wiLFxuICAgIG5hbWU6IFwiY29tbWl0XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImxcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwiMTZcIixcbiAgICBuYW1lOiBcImxlZ2lzbGF0dXJlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiclwiLFxuICAgIGhlbHA6IFwicHVzaCBjb21taXQgdG8gZ2l2ZW4gcmVtb3RlXCIsXG4gICAgbXVsdGlwbGU6IHRydWUsXG4gICAgbmFtZTogXCJyZW1vdGVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJzXCIsXG4gICAgaGVscDogXCJkb24ndCBsb2cgYW55dGhpbmdcIixcbiAgICBuYW1lOiBcInNpbGVudFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ1XCIsXG4gICAgaGVscDogXCJVSUQgb2YgZmlyc3QgQXNzZW1ibMOpZSdzIGRvY3VtZW50IHRvIHJldHJpZXZlXCIsXG4gICAgbmFtZTogXCJ1aWRcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ2XCIsXG4gICAgaGVscDogXCJ2ZXJib3NlIGxvZ3NcIixcbiAgICBuYW1lOiBcInZlcmJvc2VcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICBoZWxwOiBcImRpcmVjdG9yeSBjb250YWluaW5nIEFzc2VtYmzDqWUgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmZ1bmN0aW9uIGNvbW1pdEFuZFB1c2goXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgY29tbWl0OiBib29sZWFuLFxuICByZW1vdGVzPzogc3RyaW5nW10sXG4pOiBib29sZWFuIHtcbiAgbGV0IGVycm9yID0gZmFsc2VcbiAgaWYgKGNvbW1pdCkge1xuICAgIGV4ZWNTeW5jKFwiZ2l0IGFkZCAuXCIsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgICB0cnkge1xuICAgICAgZXhlY1N5bmMoJ2dpdCBjb21taXQgLW0gXCJOb3V2ZWxsZSBtb2lzc29uXCInLCB7XG4gICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChjaGlsZFByb2Nlc3MgYXMgQ2hpbGRQcm9jZXNzKS5zdGRlcnIgPT09IG51bGwgfHxcbiAgICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVtb3RlIG9mIHJlbW90ZXMgfHwgW10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGV4ZWNTeW5jKGBnaXQgcHVzaCAke3JlbW90ZX0gbWFzdGVyYCwge1xuICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgLy8gRG9uJ3Qgc3RvcCB3aGVuIHB1c2ggZmFpbHMuXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgZXJyb3IgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBlcnJvclxufVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZURvY3VtZW50cygpOiBQcm9taXNlPERvY3VtZW50W10+IHtcbiAgYXNzZXJ0KFxuICAgICFvcHRpb25zLmNvbW1pdCB8fCBvcHRpb25zLnVpZCxcbiAgICAnT3B0aW9ucyBcImNvbW1pdFwiICYgXCJ1aWRcIiBhcmUgaW5jb21wYXRpYmxlJyxcbiAgKVxuXG4gIGNvbnN0IGRhdGFEaXIgPSBvcHRpb25zLmRhdGFEaXJcbiAgY29uc3QgeyBkb2N1bWVudEJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgICBkYXRhRGlyLFxuICAgIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gIClcblxuICBjb25zdCB0ZXh0ZXNMb2lzRGlyID0gcGF0aC5qb2luKFxuICAgIGRhdGFEaXIsXG4gICAgXCJ3d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mclwiLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gICAgXCJ0ZXh0ZXNcIixcbiAgKVxuICBmcy5lbnN1cmVEaXJTeW5jKHRleHRlc0xvaXNEaXIpXG4gIGlmICghb3B0aW9ucy51aWQpIHtcbiAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZzLnJlYWRkaXJTeW5jKHRleHRlc0xvaXNEaXIpKSB7XG4gICAgICBpZiAoZmlsZW5hbWVbMF0gPT09IFwiLlwiKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBmcy5yZW1vdmVTeW5jKHBhdGguam9pbih0ZXh0ZXNMb2lzRGlyLCBmaWxlbmFtZSkpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgdGV4dGVzTG9pcyA9IE9iamVjdC52YWx1ZXMoZG9jdW1lbnRCeVVpZClcbiAgICAuZmlsdGVyKChkb2N1bWVudCkgPT4gZG9jdW1lbnQueHNpVHlwZSA9PT0gVHlwZURvY3VtZW50LlRleHRlTG9pVHlwZSlcbiAgICAuZmlsdGVyKFxuICAgICAgKGRvY3VtZW50KSA9PlxuICAgICAgICBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBJT05BTlwiKSB8fCBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBSSkxBTlwiKSxcbiAgICApXG4gICAgLm1hcCgoZG9jdW1lbnQpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmRvY3VtZW50LFxuICAgICAgICByYXdEb2N1bWVudEFzc2VtYmxlZVVybDogdXJsRnJvbURvY3VtZW50KFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwsXG4gICAgICAgICksXG4gICAgICB9XG4gICAgfSlcbiAgICAuc29ydCgoYSwgYikgPT5cbiAgICAgIGEucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgICAgICAgPyAtMVxuICAgICAgICA6IGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgICAgICAgPyAxXG4gICAgICAgIDogYS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybC5sb2NhbGVDb21wYXJlKGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpLFxuICAgIClcblxuICBjb25zdCBmaXJzdFVpZCA9IG9wdGlvbnMudWlkXG4gIGxldCBza2lwID0gISFmaXJzdFVpZFxuICBmb3IgKGNvbnN0IHRleHRlTG9pIG9mIHRleHRlc0xvaXMpIHtcbiAgICBpZiAoc2tpcCkge1xuICAgICAgaWYgKHRleHRlTG9pLnVpZCA9PT0gZmlyc3RVaWQpIHtcbiAgICAgICAgc2tpcCA9IGZhbHNlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFJldHJpZXZpbmcgYmlsbCAke3RleHRlTG9pLnVpZH0gYXQgJHt0ZXh0ZUxvaS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybH1gLFxuICAgICAgKVxuICAgIH1cbiAgICBpZiAodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpXG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgdXJsLmhvc3RuYW1lLFxuICAgICAgLi4udXJsLnBhdGhuYW1lLnNwbGl0KFwiL1wiKSxcbiAgICApXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRleHRlc0xvaXNEaXIsIHBhdGguZGlybmFtZShmaWxlUGF0aCkpXG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsKVxuICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCByZXNwb25zZS50ZXh0KClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSA0MDQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgRXJyb3Igd2hpbGUgZ2V0dGluZyBwYWdlIFwiJHtcbiAgICAgICAgICAgIHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsXG4gICAgICAgICAgfVwiICh1aWQ6ICR7dGV4dGVMb2kudWlkfSk6XFxuXFxuRXJyb3I6XFxuJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHsgY29kZTogcmVzcG9uc2Uuc3RhdHVzLCBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0IH0sXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgMixcbiAgICAgICAgICApfWAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIHBhZ2UpXG4gIH1cblxuICBpZiAoY29tbWl0QW5kUHVzaCh0ZXh0ZXNMb2lzRGlyLCBvcHRpb25zLmNvbW1pdCwgb3B0aW9ucy5yZW1vdGUpKSB7XG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbiAgcmV0dXJuIHRleHRlc0xvaXNcbn1cblxucmV0cmlldmVEb2N1bWVudHMoKS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgY29uc29sZS5sb2coZXJyb3IpXG4gIHByb2Nlc3MuZXhpdCgxKVxufSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQTREO0FBQUEsK0NBVDVEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0EsSUFBTUEsa0JBQWtCLEdBQUcsQ0FDekI7RUFDRUMsS0FBSyxFQUFFLEdBQUc7RUFDVkMsSUFBSSxFQUFFLGtCQUFrQjtFQUN4QkMsSUFBSSxFQUFFLFFBQVE7RUFDZEMsSUFBSSxFQUFFQztBQUNSLENBQUMsRUFDRDtFQUNFSixLQUFLLEVBQUUsR0FBRztFQUNWSyxZQUFZLEVBQUUsSUFBSTtFQUNsQkgsSUFBSSxFQUFFLGFBQWE7RUFDbkJDLElBQUksRUFBRUc7QUFDUixDQUFDLEVBQ0Q7RUFDRU4sS0FBSyxFQUFFLEdBQUc7RUFDVkMsSUFBSSxFQUFFLDZCQUE2QjtFQUNuQ00sUUFBUSxFQUFFLElBQUk7RUFDZEwsSUFBSSxFQUFFLFFBQVE7RUFDZEMsSUFBSSxFQUFFRztBQUNSLENBQUMsRUFDRDtFQUNFTixLQUFLLEVBQUUsR0FBRztFQUNWQyxJQUFJLEVBQUUsb0JBQW9CO0VBQzFCQyxJQUFJLEVBQUUsUUFBUTtFQUNkQyxJQUFJLEVBQUVDO0FBQ1IsQ0FBQyxFQUNEO0VBQ0VKLEtBQUssRUFBRSxH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
306
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIkJvb2xlYW4iLCJkZWZhdWx0VmFsdWUiLCJTdHJpbmciLCJtdWx0aXBsZSIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY29tbWl0QW5kUHVzaCIsInJlcG9zaXRvcnlEaXIiLCJjb21taXQiLCJyZW1vdGVzIiwiZXJyb3IiLCJleGVjU3luYyIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwic3RkZXJyIiwidGVzdCIsInN0ZG91dCIsImNvbnNvbGUiLCJvdXRwdXQiLCJyZW1vdGUiLCJyZXRyaWV2ZURvY3VtZW50cyIsImFzc2VydCIsInVpZCIsImRhdGFEaXIiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIkVuYWJsZWREYXRhc2V0cyIsIkRvc3NpZXJzTGVnaXNsYXRpZnMiLCJsZWdpc2xhdHVyZSIsImRvY3VtZW50QnlVaWQiLCJ0ZXh0ZXNMb2lzRGlyIiwicGF0aCIsImpvaW4iLCJmcyIsImVuc3VyZURpclN5bmMiLCJyZWFkZGlyU3luYyIsImZpbGVuYW1lIiwicmVtb3ZlU3luYyIsInRleHRlc0xvaXMiLCJPYmplY3QiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJkb2N1bWVudCIsInhzaVR5cGUiLCJUeXBlRG9jdW1lbnQiLCJUZXh0ZUxvaVR5cGUiLCJzdGFydHNXaXRoIiwibWFwIiwicmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwiLCJ1cmxGcm9tRG9jdW1lbnQiLCJEb2N1bWVudFVybEZvcm1hdCIsIlJhd0h0bWwiLCJzb3J0IiwiYSIsImIiLCJsb2NhbGVDb21wYXJlIiwiZmlyc3RVaWQiLCJza2lwIiwidGV4dGVMb2kiLCJzaWxlbnQiLCJsb2ciLCJ1cmwiLCJVUkwiLCJmaWxlUGF0aCIsImhvc3RuYW1lIiwicGF0aG5hbWUiLCJzcGxpdCIsInN0cmljdEVxdWFsIiwiZGlybmFtZSIsImZldGNoIiwicmVzcG9uc2UiLCJ0ZXh0IiwicGFnZSIsIm9rIiwic3RhdHVzIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvZGUiLCJtZXNzYWdlIiwic3RhdHVzVGV4dCIsIndyaXRlRmlsZVN5bmMiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfdGV4dGVzX2xvaXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCB7IENoaWxkUHJvY2VzcywgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBmZXRjaCBmcm9tIFwibm9kZS1mZXRjaFwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IERvY3VtZW50LCBUeXBlRG9jdW1lbnQgfSBmcm9tIFwiLi4vdHlwZXMvZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0IHsgRG9jdW1lbnRVcmxGb3JtYXQsIHVybEZyb21Eb2N1bWVudCB9IGZyb20gXCIuLi91cmxzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICB7XG4gICAgYWxpYXM6IFwiY1wiLFxuICAgIGhlbHA6IFwiY29tbWl0IGRvY3VtZW50c1wiLFxuICAgIG5hbWU6IFwiY29tbWl0XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImxcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwiMTZcIixcbiAgICBuYW1lOiBcImxlZ2lzbGF0dXJlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiclwiLFxuICAgIGhlbHA6IFwicHVzaCBjb21taXQgdG8gZ2l2ZW4gcmVtb3RlXCIsXG4gICAgbXVsdGlwbGU6IHRydWUsXG4gICAgbmFtZTogXCJyZW1vdGVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJzXCIsXG4gICAgaGVscDogXCJkb24ndCBsb2cgYW55dGhpbmdcIixcbiAgICBuYW1lOiBcInNpbGVudFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ1XCIsXG4gICAgaGVscDogXCJVSUQgb2YgZmlyc3QgQXNzZW1ibMOpZSdzIGRvY3VtZW50IHRvIHJldHJpZXZlXCIsXG4gICAgbmFtZTogXCJ1aWRcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ2XCIsXG4gICAgaGVscDogXCJ2ZXJib3NlIGxvZ3NcIixcbiAgICBuYW1lOiBcInZlcmJvc2VcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICBoZWxwOiBcImRpcmVjdG9yeSBjb250YWluaW5nIEFzc2VtYmzDqWUgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmZ1bmN0aW9uIGNvbW1pdEFuZFB1c2goXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgY29tbWl0OiBib29sZWFuLFxuICByZW1vdGVzPzogc3RyaW5nW10sXG4pOiBib29sZWFuIHtcbiAgbGV0IGVycm9yID0gZmFsc2VcbiAgaWYgKGNvbW1pdCkge1xuICAgIGV4ZWNTeW5jKFwiZ2l0IGFkZCAuXCIsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgICB0cnkge1xuICAgICAgZXhlY1N5bmMoJ2dpdCBjb21taXQgLW0gXCJOb3V2ZWxsZSBtb2lzc29uXCInLCB7XG4gICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChjaGlsZFByb2Nlc3MgYXMgQ2hpbGRQcm9jZXNzKS5zdGRlcnIgPT09IG51bGwgfHxcbiAgICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVtb3RlIG9mIHJlbW90ZXMgfHwgW10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGV4ZWNTeW5jKGBnaXQgcHVzaCAke3JlbW90ZX0gbWFzdGVyYCwge1xuICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgLy8gRG9uJ3Qgc3RvcCB3aGVuIHB1c2ggZmFpbHMuXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgZXJyb3IgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBlcnJvclxufVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZURvY3VtZW50cygpOiBQcm9taXNlPERvY3VtZW50W10+IHtcbiAgYXNzZXJ0KFxuICAgICFvcHRpb25zLmNvbW1pdCB8fCBvcHRpb25zLnVpZCxcbiAgICAnT3B0aW9ucyBcImNvbW1pdFwiICYgXCJ1aWRcIiBhcmUgaW5jb21wYXRpYmxlJyxcbiAgKVxuXG4gIGNvbnN0IGRhdGFEaXIgPSBvcHRpb25zLmRhdGFEaXJcbiAgY29uc3QgeyBkb2N1bWVudEJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgICBkYXRhRGlyLFxuICAgIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gIClcblxuICBjb25zdCB0ZXh0ZXNMb2lzRGlyID0gcGF0aC5qb2luKFxuICAgIGRhdGFEaXIsXG4gICAgXCJ3d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mclwiLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gICAgXCJ0ZXh0ZXNcIixcbiAgKVxuICBmcy5lbnN1cmVEaXJTeW5jKHRleHRlc0xvaXNEaXIpXG4gIGlmICghb3B0aW9ucy51aWQpIHtcbiAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZzLnJlYWRkaXJTeW5jKHRleHRlc0xvaXNEaXIpKSB7XG4gICAgICBpZiAoZmlsZW5hbWVbMF0gPT09IFwiLlwiKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBmcy5yZW1vdmVTeW5jKHBhdGguam9pbih0ZXh0ZXNMb2lzRGlyLCBmaWxlbmFtZSkpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgdGV4dGVzTG9pcyA9IE9iamVjdC52YWx1ZXMoZG9jdW1lbnRCeVVpZClcbiAgICAuZmlsdGVyKChkb2N1bWVudCkgPT4gZG9jdW1lbnQueHNpVHlwZSA9PT0gVHlwZURvY3VtZW50LlRleHRlTG9pVHlwZSlcbiAgICAuZmlsdGVyKFxuICAgICAgKGRvY3VtZW50KSA9PlxuICAgICAgICBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBJT05BTlwiKSB8fCBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBSSkxBTlwiKSxcbiAgICApXG4gICAgLm1hcCgoZG9jdW1lbnQpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmRvY3VtZW50LFxuICAgICAgICByYXdEb2N1bWVudEFzc2VtYmxlZVVybDogdXJsRnJvbURvY3VtZW50KFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwsXG4gICAgICAgICksXG4gICAgICB9XG4gICAgfSlcbiAgICAuc29ydCgoYSwgYikgPT5cbiAgICAgIGEucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgICAgICAgPyAtMVxuICAgICAgICA6IGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgICAgICAgPyAxXG4gICAgICAgIDogYS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybC5sb2NhbGVDb21wYXJlKGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpLFxuICAgIClcblxuICBjb25zdCBmaXJzdFVpZCA9IG9wdGlvbnMudWlkXG4gIGxldCBza2lwID0gISFmaXJzdFVpZFxuICBmb3IgKGNvbnN0IHRleHRlTG9pIG9mIHRleHRlc0xvaXMpIHtcbiAgICBpZiAoc2tpcCkge1xuICAgICAgaWYgKHRleHRlTG9pLnVpZCA9PT0gZmlyc3RVaWQpIHtcbiAgICAgICAgc2tpcCA9IGZhbHNlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFJldHJpZXZpbmcgYmlsbCAke3RleHRlTG9pLnVpZH0gYXQgJHt0ZXh0ZUxvaS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybH1gLFxuICAgICAgKVxuICAgIH1cbiAgICBpZiAodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpXG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgdXJsLmhvc3RuYW1lLFxuICAgICAgLi4udXJsLnBhdGhuYW1lLnNwbGl0KFwiL1wiKSxcbiAgICApXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRleHRlc0xvaXNEaXIsIHBhdGguZGlybmFtZShmaWxlUGF0aCkpXG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsKVxuICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCByZXNwb25zZS50ZXh0KClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSA0MDQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgRXJyb3Igd2hpbGUgZ2V0dGluZyBwYWdlIFwiJHtcbiAgICAgICAgICAgIHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsXG4gICAgICAgICAgfVwiICh1aWQ6ICR7dGV4dGVMb2kudWlkfSk6XFxuXFxuRXJyb3I6XFxuJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHsgY29kZTogcmVzcG9uc2Uuc3RhdHVzLCBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0IH0sXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgMixcbiAgICAgICAgICApfWAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIHBhZ2UpXG4gIH1cblxuICBpZiAoY29tbWl0QW5kUHVzaCh0ZXh0ZXNMb2lzRGlyLCBvcHRpb25zLmNvbW1pdCwgb3B0aW9ucy5yZW1vdGUpKSB7XG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbiAgcmV0dXJuIHRleHRlc0xvaXNcbn1cblxucmV0cmlldmVEb2N1bWVudHMoKS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgY29uc29sZS5sb2coZXJyb3IpXG4gIHByb2Nlc3MuZXhpdCgxKVxufSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQTREO0FBQUEsK0NBVDVEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBLElBQU1BLGtCQUFrQixHQUFHLENBQ3pCO0VBQ0VDLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLElBQUksRUFBRSxrQkFBa0I7RUFDeEJDLElBQUksRUFBRSxRQUFRO0VBQ2RDLElBQUksRUFBRUM7QUFDUixDQUFDLEVBQ0Q7RUFDRUosS0FBSyxFQUFFLEdBQUc7RUFDVkssWUFBWSxFQUFFLElBQUk7RUFDbEJILElBQUksRUFBRSxhQUFhO0VBQ25CQyxJQUFJLEVBQUVHO0FBQ1IsQ0FBQyxFQUNEO0VBQ0VOLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLElBQUksRUFBRSw2QkFBNkI7RUFDbkNNLFFBQVEsRUFBRSxJQUFJO0VBQ2RMLElBQUksRUFBRSxRQUFRO0VBQ2RDLElBQUksRUFBRUc7QUFDUixDQUFDLEVBQ0Q7RUFDRU4sS0FBSyxFQUFFLEdBQUc7RUFDVkMsSUFBSSxFQUFFLG9CQUFvQjtFQUMxQkMsSUFBSSxFQUFFLFFBQVE7RUFDZEMsSUFBSSxFQUFFQztBQUNSLENBQUMsRUFDRDtFQUNF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
@@ -1,13 +1,15 @@
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
- require("core-js/modules/es.object.define-property.js");
3
+ require("core-js/modules/es.symbol.to-primitive.js");
4
+ require("core-js/modules/es.date.to-primitive.js");
5
+ require("core-js/modules/es.symbol.js");
6
+ require("core-js/modules/es.symbol.description.js");
5
7
  require("core-js/modules/es.object.to-string.js");
8
+ require("core-js/modules/es.number.constructor.js");
9
+ require("core-js/modules/es.object.define-property.js");
6
10
  require("core-js/modules/es.function.name.js");
7
11
  require("core-js/modules/es.array.from.js");
8
12
  require("core-js/modules/es.string.iterator.js");
9
- require("core-js/modules/es.symbol.js");
10
- require("core-js/modules/es.symbol.description.js");
11
13
  require("core-js/modules/es.symbol.iterator.js");
12
14
  require("core-js/modules/es.array.iterator.js");
13
15
  require("core-js/modules/web.dom-collections.iterator.js");
@@ -25,6 +27,7 @@ require("core-js/modules/es.object.set-prototype-of.js");
25
27
  require("core-js/modules/es.array.reverse.js");
26
28
  require("core-js/modules/es.weak-map.js");
27
29
  require("core-js/modules/es.object.get-own-property-descriptor.js");
30
+ 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); }
28
31
  require("core-js/modules/es.array.includes.js");
29
32
  require("core-js/modules/es.string.includes.js");
30
33
  require("core-js/modules/es.array.join.js");
@@ -45,16 +48,18 @@ var _datasets = require("../../src/datasets");
45
48
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
46
49
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
47
50
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
48
- 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, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $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 defineProperty(generator, "_invoke", { value: makeInvokeMethod(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; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(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); } }; } 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, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), 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 (val) { var object = Object(val), 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; }
51
+ 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, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $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 defineProperty(generator, "_invoke", { value: makeInvokeMethod(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; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(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); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), 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, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), 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 (val) { var object = Object(val), 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; }
49
52
  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); } }
50
53
  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); }); }; }
51
54
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
52
55
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
53
56
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
54
57
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
55
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
58
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
56
59
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
57
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
60
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
61
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
62
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
58
63
  // Automatically track and cleanup files at exit
59
64
  _temp["default"].track();
60
65
  function parseArgs(argv) {
@@ -348,4 +353,4 @@ if (process.argv[1].endsWith("validate_json.ts")) main(process.argv).then(functi
348
353
  console.error(error);
349
354
  process.exit(1);
350
355
  });
351
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0ZW1wIiwidHJhY2siLCJwYXJzZUFyZ3MiLCJhcmd2Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiZGVzY3JpcHRpb24iLCJkZWZhdWx0T3B0aW9uIiwibmFtZSIsInR5cGUiLCJTdHJpbmciLCJkZWZhdWx0VmFsdWUiLCJnZXREYXRhc2V0cyIsImdldFNjaGVtYXMiLCJCb29sZWFuIiwic2VjdGlvbnMiLCJoZWFkZXIiLCJjb250ZW50Iiwib3B0aW9uTGlzdCIsIm9wdGlvbnMiLCJjb21tYW5kTGluZUFyZ3MiLCJkYXRhc2V0IiwidmFsaWREYXRhc2V0IiwiY29uc29sZSIsImVycm9yIiwiaGVscCIsInNjaGVtYSIsImluY2x1ZGVzIiwidXNhZ2UiLCJjb21tYW5kTGluZVVzYWdlIiwid2FybiIsIlZhbGlkYXRlIiwidmVyc2lvbjJzY2hlbWEiLCJ0bXBEaXIiLCJta2RpclN5bmMiLCJ0YWciLCJkZXYiLCJ2ZXJib3NlIiwibG9nIiwicmVwb3NpdG9yeURpciIsInBhdGgiLCJqb2luIiwidGFnRGlyIiwiZnMiLCJleGlzdHNTeW5jIiwiZ2l0IiwicnVuIiwicmVwb3NpdG9yeSIsInJlbmFtZVN5bmMiLCJ2ZXJzaW9uIiwiYWp2IiwiQWp2IiwiZGlyIiwiZ2V0U2NoZW1hRGlyIiwicmVmZXJlbmNlcyIsImdldEZpbGVzIiwicmVmZXJlbmNlIiwicHVzaCIsImZpbGUiLCJhZGRTY2hlbWEiLCJsb2FkIiwiU2NoZW1hIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsInMiLCJjb21waWxlIiwic2NoZW1hVmVyc2lvbiIsInVuZGVmaW5lZCIsInJlcGxhY2UiLCJmaWxlbmFtZSIsImdldFZlcnNpb24iLCJ2YWxpZGF0b3IiLCJnZXRWYWxpZGF0b3IiLCJ2YWxpZCIsInNjaGVtYVVSTCIsImdldFNjaGVtYVVSTCIsImVycm9ycyIsInN0YXR1cyIsImRhdGEiLCJ2YWxpZGF0ZSIsIm1haW4iLCJkaXJlY3RvcnlTY2hlbWEiLCJkYXRhc2V0RGlyZWN0b3J5U2NoZW1hIiwiZCIsInByb2Nlc3MiLCJlbmRzV2l0aCIsInRoZW4iLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvdmFsaWRhdGVfanNvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQWp2IGZyb20gXCJhanZcIlxuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGNvbW1hbmRMaW5lVXNhZ2UgZnJvbSBcImNvbW1hbmQtbGluZS11c2FnZVwiXG5pbXBvcnQgeyBsb2FkLCBnZXRGaWxlcyB9IGZyb20gXCIuLi9maWxlX3N5c3RlbXNcIlxuaW1wb3J0ICogYXMgZ2l0IGZyb20gXCIuLi9naXRcIlxuaW1wb3J0IHRlbXAgZnJvbSBcInRlbXBcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQge1xuICB2YWxpZERhdGFzZXQsXG4gIGdldERhdGFzZXRzLFxuICBnZXRTY2hlbWFzLFxuICBkYXRhc2V0RGlyZWN0b3J5U2NoZW1hLFxufSBmcm9tIFwiLi4vLi4vc3JjL2RhdGFzZXRzXCJcblxuLy8gQXV0b21hdGljYWxseSB0cmFjayBhbmQgY2xlYW51cCBmaWxlcyBhdCBleGl0XG50ZW1wLnRyYWNrKClcblxuZnVuY3Rpb24gcGFyc2VBcmdzKGFyZ3Y6IHN0cmluZ1tdKTogYW55IHtcbiAgY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcInBhdGhuYW1lIHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgZGF0YXNldFwiLFxuICAgICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICAgIG5hbWU6IFwiZGF0YVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IFwiVVJMIG9yIHBhdGggdG8gdGhlIHRyaWNvdGV1c2VzLWFzc2VtYmxlZSBnaXQgcmVwb3NpdG9yeVwiLFxuICAgICAgZGVmYXVsdFZhbHVlOlxuICAgICAgICBcImh0dHBzOi8vZ2l0LmVuLXJvb3Qub3JnL3RyaWNvdGV1c2VzL3RyaWNvdGV1c2VzLWFzc2VtYmxlZS5naXRcIixcbiAgICAgIG5hbWU6IFwicmVwb3NpdG9yeVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IGBkYXRhc2V0IChwb3NzaWJsZSB2YWx1ZXMgbXVzdCBpbmNsdWRlIGV4YWN0bHkgb25lIG9mICR7Z2V0RGF0YXNldHMoKX0pYCxcbiAgICAgIG5hbWU6IFwiZGF0YXNldFwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IGBzY2hlbWEgKHBvc3NpYmxlIHZhbHVlcyBhcmUgJHtnZXRTY2hlbWFzKCl9KWAsXG4gICAgICBuYW1lOiBcInNjaGVtYVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiaWdub3JlIHNjaGVtYVZlcnNpb24gZnJvbSBKU09OIGZpbGVzIGFuZCB1c2UgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGluc3RlYWQgb2YgdGhlIC0tcmVwb3NpdG9yeVwiLFxuICAgICAgbmFtZTogXCJkZXZcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJpbmNyZWFzZSB2ZXJib3NpdHlcIixcbiAgICAgIG5hbWU6IFwidmVyYm9zZVwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwiaGVscFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiUHJpbnQgdGhpcyB1c2FnZSBndWlkZS5cIixcbiAgICB9LFxuICBdXG4gIGNvbnN0IHNlY3Rpb25zID0gW1xuICAgIHtcbiAgICAgIGhlYWRlcjogXCJWYWxpZGF0ZSBKU09OIGZpbGVzXCIsXG4gICAgICBjb250ZW50OiBcIlZhbGlkYXRlIEpTT04gZmlsZXNcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGhlYWRlcjogXCJPcHRpb25zXCIsXG4gICAgICBvcHRpb25MaXN0OiBvcHRpb25zRGVmaW5pdGlvbnMsXG4gICAgfSxcbiAgXVxuICBjb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucywge1xuICAgIGFyZ3Y6IGFyZ3YsXG4gIH0pXG5cbiAgaWYgKG9wdGlvbnMuZGF0YXNldCkge1xuICAgIGlmICghdmFsaWREYXRhc2V0KG9wdGlvbnMuZGF0YXNldCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYC0tZGF0YXNldCAke29wdGlvbnMuZGF0YXNldH1gKVxuICAgICAgb3B0aW9ucy5oZWxwID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGlmIChvcHRpb25zLnNjaGVtYSkge1xuICAgIGlmICghZ2V0U2NoZW1hcygpLmluY2x1ZGVzKG9wdGlvbnMuc2NoZW1hKSkge1xuICAgICAgY29uc29sZS5lcnJvcihgLS1zY2hlbWEgJHtvcHRpb25zLnNjaGVtYX1gKVxuICAgICAgb3B0aW9ucy5oZWxwID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGlmIChcImhlbHBcIiBpbiBvcHRpb25zKSB7XG4gICAgY29uc3QgdXNhZ2UgPSBjb21tYW5kTGluZVVzYWdlKHNlY3Rpb25zKVxuICAgIGNvbnNvbGUud2Fybih1c2FnZSlcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIHJldHVybiBvcHRpb25zXG59XG5cbmNsYXNzIFZhbGlkYXRlIHtcbiAgb3B0aW9uczogYW55XG4gIHZlcnNpb24yc2NoZW1hOiBhbnlcbiAgdG1wRGlyOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zXG4gICAgdGhpcy52ZXJzaW9uMnNjaGVtYSA9IHt9XG4gICAgdGhpcy50bXBEaXIgPSB0ZW1wLm1rZGlyU3luYyhcInZhbGlkYXRpb25cIilcbiAgfVxuXG4gIGdldFNjaGVtYURpcih0YWc6IHN0cmluZykge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuZGV2ID09IHRydWUpIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkgY29uc29sZS5sb2coXCItLWRldjogdXNlIHNyYy9zY2hlbWFzXCIpXG4gICAgICByZXR1cm4gXCJzcmMvc2NoZW1hc1wiXG4gICAgfVxuICAgIGNvbnN0IHJlcG9zaXRvcnlEaXIgPSBwYXRoLmpvaW4odGhpcy50bXBEaXIsIFwidHJpY290ZXVzZXMtYXNzZW1ibGVlXCIpXG4gICAgY29uc3QgdGFnRGlyID0gcGF0aC5qb2luKHRoaXMudG1wRGlyLCB0YWcpXG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKHRhZ0RpcikpIHtcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhyZXBvc2l0b3J5RGlyKSkge1xuICAgICAgICBnaXQucnVuKFxuICAgICAgICAgIHRoaXMudG1wRGlyLFxuICAgICAgICAgIGBjbG9uZSAtLXF1aWV0ICR7dGhpcy5vcHRpb25zLnJlcG9zaXRvcnl9ICR7cmVwb3NpdG9yeURpcn1gLFxuICAgICAgICApXG4gICAgICB9XG4gICAgICBnaXQucnVuKFxuICAgICAgICByZXBvc2l0b3J5RGlyLFxuICAgICAgICBgY2hlY2tvdXQgdGFncy8ke3RhZ30gLS0gc3JjL3NjaGVtYXMgPiAvZGV2L251bGwgMj4mMWAsXG4gICAgICApXG4gICAgICBmcy5yZW5hbWVTeW5jKHBhdGguam9pbihyZXBvc2l0b3J5RGlyLCBcInNyYy9zY2hlbWFzXCIpLCB0YWdEaXIpXG4gICAgfVxuICAgIHJldHVybiB0YWdEaXJcbiAgfVxuXG4gIGdldFZhbGlkYXRvcih2ZXJzaW9uOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICghKHZlcnNpb24gaW4gdGhpcy52ZXJzaW9uMnNjaGVtYSkpIHtcbiAgICAgIGNvbnN0IGFqdiA9IG5ldyBBanYoKVxuICAgICAgY29uc3QgZGlyID0gdGhpcy5nZXRTY2hlbWFEaXIoYHNjaGVtYS0ke3ZlcnNpb259YClcbiAgICAgIGxldCByZWZlcmVuY2VzID0gW11cbiAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIGdldEZpbGVzKFtcbiAgICAgICAgYCR7ZGlyfS8ke3RoaXMub3B0aW9ucy5zY2hlbWF9LyouanNvbmAsXG4gICAgICBdKSlcbiAgICAgICAgcmVmZXJlbmNlcy5wdXNoKHJlZmVyZW5jZSlcbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBnZXRGaWxlcyhyZWZlcmVuY2VzKSkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIGNvbnNvbGUubG9nKGByZWZlcmVuY2U6ICR7ZmlsZX1gKVxuICAgICAgICBhanYuYWRkU2NoZW1hKGxvYWQoZmlsZSkpXG4gICAgICB9XG4gICAgICBjb25zdCBzY2hlbWEgPSB0aGlzLm9wdGlvbnMuc2NoZW1hXG4gICAgICBjb25zdCBTY2hlbWEgPSBzY2hlbWEuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzY2hlbWEuc2xpY2UoMSlcbiAgICAgIGNvbnN0IHMgPSBgJHtkaXJ9LyR7c2NoZW1hfS8ke1NjaGVtYX0uanNvbmBcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkgY29uc29sZS5sb2coYHNjaGVtYSAke3N9YClcbiAgICAgIHRoaXMudmVyc2lvbjJzY2hlbWFbdmVyc2lvbl0gPSBhanYuY29tcGlsZShsb2FkKHMpKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy52ZXJzaW9uMnNjaGVtYVt2ZXJzaW9uXVxuICB9XG5cbiAgZ2V0VmVyc2lvbihjb250ZW50OiBhbnkpOiBzdHJpbmcge1xuICAgIGlmIChjb250ZW50LnNjaGVtYVZlcnNpb24gIT0gdW5kZWZpbmVkKSByZXR1cm4gY29udGVudC5zY2hlbWFWZXJzaW9uXG4gICAgcmV0dXJuIGAke3RoaXMub3B0aW9ucy5zY2hlbWF9LTEuMGBcbiAgfVxuXG4gIGdldFNjaGVtYVVSTCh2ZXJzaW9uOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuZGV2ID09IHRydWUpIHJldHVybiBcInNyYy9zY2hlbWFzXCJcbiAgICBlbHNlIHtcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRoaXMub3B0aW9ucy5yZXBvc2l0b3J5KSkge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5vcHRpb25zLnJlcG9zaXRvcnl9L3NyYy9zY2hlbWFzIGF0IHRhZyBzY2hlbWEtJHt2ZXJzaW9ufWBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlcG9zaXRvcnkgPSB0aGlzLm9wdGlvbnMucmVwb3NpdG9yeS5yZXBsYWNlKC9cXC5naXQkLywgXCJcIilcbiAgICAgICAgcmV0dXJuIGAke3JlcG9zaXRvcnl9L3RyZWUvc2NoZW1hLSR7dmVyc2lvbn0vc3JjL3NjaGVtYXNgXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGUoY29udGVudDogYW55LCBmaWxlbmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCB0YWcgPSB0aGlzLmdldFZlcnNpb24oY29udGVudClcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLmdldFZhbGlkYXRvcih0YWcpXG4gICAgY29uc3QgdmFsaWQgPSB2YWxpZGF0b3IoY29udGVudClcbiAgICBjb25zdCBzY2hlbWFVUkwgPSB0aGlzLmdldFNjaGVtYVVSTCh0YWcpXG4gICAgaWYgKCF2YWxpZCkge1xuICAgICAgY29uc29sZS5lcnJvcihgJHtzY2hlbWFVUkx9IGZpbmRzICR7ZmlsZW5hbWV9IGlzIGludmFsaWRgKVxuICAgICAgY29uc29sZS5lcnJvcih2YWxpZGF0b3IuZXJyb3JzKVxuICAgICAgcmV0dXJuIDFcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy52ZXJib3NlKVxuICAgICAgICBjb25zb2xlLmxvZyhgJHtzY2hlbWFVUkx9IGZpbmRzICR7ZmlsZW5hbWV9IGlzIHZhbGlkYClcbiAgICAgIHJldHVybiAwXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcHJvY2VzcygpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGxldCBzdGF0dXMgPSAwXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGdldEZpbGVzKFt0aGlzLm9wdGlvbnMuZGF0YV0pKSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gbG9hZChmaWxlKVxuICAgICAgc3RhdHVzIHw9IHRoaXMudmFsaWRhdGUoY29udGVudCwgZmlsZSlcbiAgICB9XG4gICAgcmV0dXJuIHN0YXR1c1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oYXJndjogYW55KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHBhcnNlQXJncyhhcmd2KVxuICBpZiAob3B0aW9ucyA9PT0gbnVsbCkgcmV0dXJuIDFcbiAgbGV0IGRpcmVjdG9yeVNjaGVtYSA9IFtdXG4gIGlmIChvcHRpb25zLnNjaGVtYSkge1xuICAgIGRpcmVjdG9yeVNjaGVtYSA9IFtbb3B0aW9ucy5kYXRhLCBvcHRpb25zLnNjaGVtYV1dXG4gIH0gZWxzZSBpZiAob3B0aW9ucy5kYXRhc2V0KSB7XG4gICAgZGlyZWN0b3J5U2NoZW1hID0gZGF0YXNldERpcmVjdG9yeVNjaGVtYShvcHRpb25zLmRhdGFzZXQpXG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5lcnJvcihcImVpdGhlciAtLXNjaGVtYSBvciAtLWRhdGFzZXQgaXMgcmVxdWlyZWRcIilcbiAgICByZXR1cm4gMVxuICB9XG4gIGZvciAoY29uc3QgZCBvZiBkaXJlY3RvcnlTY2hlbWEpIHtcbiAgICBvcHRpb25zLnNjaGVtYSA9IGRbMV1cbiAgICBvcHRpb25zLmRhdGEgPSBkWzBdXG4gICAgaWYgKG9wdGlvbnMudmVyYm9zZSlcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgd29ya2luZyBvbiBmaWxlcyAke29wdGlvbnMuZGF0YX0gd2l0aCBzY2hlbWEgJHtvcHRpb25zLnNjaGVtYX1gLFxuICAgICAgKVxuICAgIGNvbnN0IHZhbGlkYXRlID0gbmV3IFZhbGlkYXRlKG9wdGlvbnMpXG4gICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdmFsaWRhdGUucHJvY2VzcygpXG4gICAgaWYgKHN0YXR1cyAhPSAwKSByZXR1cm4gc3RhdHVzXG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAocHJvY2Vzcy5hcmd2WzFdLmVuZHNXaXRoKFwidmFsaWRhdGVfanNvbi50c1wiKSlcbiAgbWFpbihwcm9jZXNzLmFyZ3YpXG4gICAgLnRoZW4oKHN0YXR1cykgPT4ge1xuICAgICAgcHJvY2Vzcy5leGl0KHN0YXR1cylcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUsyQjtBQUFBO0FBQUE7QUFBQSwrQ0FaM0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQTtBQUNBQSxnQkFBSSxDQUFDQyxLQUFLLEVBQUU7QUFFWixTQUFTQyxTQUFTLENBQUNDLElBQWMsRUFBTztFQUN0QyxJQUFNQyxrQkFBa0IsR0FBRyxDQUN6QjtJQUNFQyxXQUFXLEVBQUUsa0RBQWtEO0lBQy9EQyxhQUFhLEVBQUUsSUFBSTtJQUNuQkMsSUFBSSxFQUFFLE1BQU07SUFDWkMsSUFBSSxFQUFFQztFQUNSLENBQUMsRUFDRDtJQUNFSixXQUFXLEVBQUUseURBQXlEO0lBQ3RFSyxZQUFZLEVBQ1YsK0RBQStEO0lBQ2pFSCxJQUFJLEVBQUUsWUFBWTtJQUNsQkMsSUFBSSxFQUFFQztFQUNSLENBQUMsRUFDRDtJQUNFSixXQUFXLGlFQUEwRCxJQUFBTSxxQkFBVyxHQUFFLE1BQUc7SUFDckZKLElBQUksRUFBRSxTQUFTO0lBQ2ZDLElB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
356
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0ZW1wIiwidHJhY2siLCJwYXJzZUFyZ3MiLCJhcmd2Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiZGVzY3JpcHRpb24iLCJkZWZhdWx0T3B0aW9uIiwibmFtZSIsInR5cGUiLCJTdHJpbmciLCJkZWZhdWx0VmFsdWUiLCJnZXREYXRhc2V0cyIsImdldFNjaGVtYXMiLCJCb29sZWFuIiwic2VjdGlvbnMiLCJoZWFkZXIiLCJjb250ZW50Iiwib3B0aW9uTGlzdCIsIm9wdGlvbnMiLCJjb21tYW5kTGluZUFyZ3MiLCJkYXRhc2V0IiwidmFsaWREYXRhc2V0IiwiY29uc29sZSIsImVycm9yIiwiaGVscCIsInNjaGVtYSIsImluY2x1ZGVzIiwidXNhZ2UiLCJjb21tYW5kTGluZVVzYWdlIiwid2FybiIsIlZhbGlkYXRlIiwidmVyc2lvbjJzY2hlbWEiLCJ0bXBEaXIiLCJta2RpclN5bmMiLCJ0YWciLCJkZXYiLCJ2ZXJib3NlIiwibG9nIiwicmVwb3NpdG9yeURpciIsInBhdGgiLCJqb2luIiwidGFnRGlyIiwiZnMiLCJleGlzdHNTeW5jIiwiZ2l0IiwicnVuIiwicmVwb3NpdG9yeSIsInJlbmFtZVN5bmMiLCJ2ZXJzaW9uIiwiYWp2IiwiQWp2IiwiZGlyIiwiZ2V0U2NoZW1hRGlyIiwicmVmZXJlbmNlcyIsImdldEZpbGVzIiwicmVmZXJlbmNlIiwicHVzaCIsImZpbGUiLCJhZGRTY2hlbWEiLCJsb2FkIiwiU2NoZW1hIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsInMiLCJjb21waWxlIiwic2NoZW1hVmVyc2lvbiIsInVuZGVmaW5lZCIsInJlcGxhY2UiLCJmaWxlbmFtZSIsImdldFZlcnNpb24iLCJ2YWxpZGF0b3IiLCJnZXRWYWxpZGF0b3IiLCJ2YWxpZCIsInNjaGVtYVVSTCIsImdldFNjaGVtYVVSTCIsImVycm9ycyIsInN0YXR1cyIsImRhdGEiLCJ2YWxpZGF0ZSIsIm1haW4iLCJkaXJlY3RvcnlTY2hlbWEiLCJkYXRhc2V0RGlyZWN0b3J5U2NoZW1hIiwiZCIsInByb2Nlc3MiLCJlbmRzV2l0aCIsInRoZW4iLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvdmFsaWRhdGVfanNvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQWp2IGZyb20gXCJhanZcIlxuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGNvbW1hbmRMaW5lVXNhZ2UgZnJvbSBcImNvbW1hbmQtbGluZS11c2FnZVwiXG5pbXBvcnQgeyBsb2FkLCBnZXRGaWxlcyB9IGZyb20gXCIuLi9maWxlX3N5c3RlbXNcIlxuaW1wb3J0ICogYXMgZ2l0IGZyb20gXCIuLi9naXRcIlxuaW1wb3J0IHRlbXAgZnJvbSBcInRlbXBcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQge1xuICB2YWxpZERhdGFzZXQsXG4gIGdldERhdGFzZXRzLFxuICBnZXRTY2hlbWFzLFxuICBkYXRhc2V0RGlyZWN0b3J5U2NoZW1hLFxufSBmcm9tIFwiLi4vLi4vc3JjL2RhdGFzZXRzXCJcblxuLy8gQXV0b21hdGljYWxseSB0cmFjayBhbmQgY2xlYW51cCBmaWxlcyBhdCBleGl0XG50ZW1wLnRyYWNrKClcblxuZnVuY3Rpb24gcGFyc2VBcmdzKGFyZ3Y6IHN0cmluZ1tdKTogYW55IHtcbiAgY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcInBhdGhuYW1lIHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgZGF0YXNldFwiLFxuICAgICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICAgIG5hbWU6IFwiZGF0YVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IFwiVVJMIG9yIHBhdGggdG8gdGhlIHRyaWNvdGV1c2VzLWFzc2VtYmxlZSBnaXQgcmVwb3NpdG9yeVwiLFxuICAgICAgZGVmYXVsdFZhbHVlOlxuICAgICAgICBcImh0dHBzOi8vZ2l0LmVuLXJvb3Qub3JnL3RyaWNvdGV1c2VzL3RyaWNvdGV1c2VzLWFzc2VtYmxlZS5naXRcIixcbiAgICAgIG5hbWU6IFwicmVwb3NpdG9yeVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IGBkYXRhc2V0IChwb3NzaWJsZSB2YWx1ZXMgbXVzdCBpbmNsdWRlIGV4YWN0bHkgb25lIG9mICR7Z2V0RGF0YXNldHMoKX0pYCxcbiAgICAgIG5hbWU6IFwiZGF0YXNldFwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IGBzY2hlbWEgKHBvc3NpYmxlIHZhbHVlcyBhcmUgJHtnZXRTY2hlbWFzKCl9KWAsXG4gICAgICBuYW1lOiBcInNjaGVtYVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiaWdub3JlIHNjaGVtYVZlcnNpb24gZnJvbSBKU09OIGZpbGVzIGFuZCB1c2UgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGluc3RlYWQgb2YgdGhlIC0tcmVwb3NpdG9yeVwiLFxuICAgICAgbmFtZTogXCJkZXZcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJpbmNyZWFzZSB2ZXJib3NpdHlcIixcbiAgICAgIG5hbWU6IFwidmVyYm9zZVwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwiaGVscFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiUHJpbnQgdGhpcyB1c2FnZSBndWlkZS5cIixcbiAgICB9LFxuICBdXG4gIGNvbnN0IHNlY3Rpb25zID0gW1xuICAgIHtcbiAgICAgIGhlYWRlcjogXCJWYWxpZGF0ZSBKU09OIGZpbGVzXCIsXG4gICAgICBjb250ZW50OiBcIlZhbGlkYXRlIEpTT04gZmlsZXNcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGhlYWRlcjogXCJPcHRpb25zXCIsXG4gICAgICBvcHRpb25MaXN0OiBvcHRpb25zRGVmaW5pdGlvbnMsXG4gICAgfSxcbiAgXVxuICBjb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucywge1xuICAgIGFyZ3Y6IGFyZ3YsXG4gIH0pXG5cbiAgaWYgKG9wdGlvbnMuZGF0YXNldCkge1xuICAgIGlmICghdmFsaWREYXRhc2V0KG9wdGlvbnMuZGF0YXNldCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYC0tZGF0YXNldCAke29wdGlvbnMuZGF0YXNldH1gKVxuICAgICAgb3B0aW9ucy5oZWxwID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGlmIChvcHRpb25zLnNjaGVtYSkge1xuICAgIGlmICghZ2V0U2NoZW1hcygpLmluY2x1ZGVzKG9wdGlvbnMuc2NoZW1hKSkge1xuICAgICAgY29uc29sZS5lcnJvcihgLS1zY2hlbWEgJHtvcHRpb25zLnNjaGVtYX1gKVxuICAgICAgb3B0aW9ucy5oZWxwID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGlmIChcImhlbHBcIiBpbiBvcHRpb25zKSB7XG4gICAgY29uc3QgdXNhZ2UgPSBjb21tYW5kTGluZVVzYWdlKHNlY3Rpb25zKVxuICAgIGNvbnNvbGUud2Fybih1c2FnZSlcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIHJldHVybiBvcHRpb25zXG59XG5cbmNsYXNzIFZhbGlkYXRlIHtcbiAgb3B0aW9uczogYW55XG4gIHZlcnNpb24yc2NoZW1hOiBhbnlcbiAgdG1wRGlyOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zXG4gICAgdGhpcy52ZXJzaW9uMnNjaGVtYSA9IHt9XG4gICAgdGhpcy50bXBEaXIgPSB0ZW1wLm1rZGlyU3luYyhcInZhbGlkYXRpb25cIilcbiAgfVxuXG4gIGdldFNjaGVtYURpcih0YWc6IHN0cmluZykge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuZGV2ID09IHRydWUpIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkgY29uc29sZS5sb2coXCItLWRldjogdXNlIHNyYy9zY2hlbWFzXCIpXG4gICAgICByZXR1cm4gXCJzcmMvc2NoZW1hc1wiXG4gICAgfVxuICAgIGNvbnN0IHJlcG9zaXRvcnlEaXIgPSBwYXRoLmpvaW4odGhpcy50bXBEaXIsIFwidHJpY290ZXVzZXMtYXNzZW1ibGVlXCIpXG4gICAgY29uc3QgdGFnRGlyID0gcGF0aC5qb2luKHRoaXMudG1wRGlyLCB0YWcpXG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKHRhZ0RpcikpIHtcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhyZXBvc2l0b3J5RGlyKSkge1xuICAgICAgICBnaXQucnVuKFxuICAgICAgICAgIHRoaXMudG1wRGlyLFxuICAgICAgICAgIGBjbG9uZSAtLXF1aWV0ICR7dGhpcy5vcHRpb25zLnJlcG9zaXRvcnl9ICR7cmVwb3NpdG9yeURpcn1gLFxuICAgICAgICApXG4gICAgICB9XG4gICAgICBnaXQucnVuKFxuICAgICAgICByZXBvc2l0b3J5RGlyLFxuICAgICAgICBgY2hlY2tvdXQgdGFncy8ke3RhZ30gLS0gc3JjL3NjaGVtYXMgPiAvZGV2L251bGwgMj4mMWAsXG4gICAgICApXG4gICAgICBmcy5yZW5hbWVTeW5jKHBhdGguam9pbihyZXBvc2l0b3J5RGlyLCBcInNyYy9zY2hlbWFzXCIpLCB0YWdEaXIpXG4gICAgfVxuICAgIHJldHVybiB0YWdEaXJcbiAgfVxuXG4gIGdldFZhbGlkYXRvcih2ZXJzaW9uOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICghKHZlcnNpb24gaW4gdGhpcy52ZXJzaW9uMnNjaGVtYSkpIHtcbiAgICAgIGNvbnN0IGFqdiA9IG5ldyBBanYoKVxuICAgICAgY29uc3QgZGlyID0gdGhpcy5nZXRTY2hlbWFEaXIoYHNjaGVtYS0ke3ZlcnNpb259YClcbiAgICAgIGxldCByZWZlcmVuY2VzID0gW11cbiAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIGdldEZpbGVzKFtcbiAgICAgICAgYCR7ZGlyfS8ke3RoaXMub3B0aW9ucy5zY2hlbWF9LyouanNvbmAsXG4gICAgICBdKSlcbiAgICAgICAgcmVmZXJlbmNlcy5wdXNoKHJlZmVyZW5jZSlcbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBnZXRGaWxlcyhyZWZlcmVuY2VzKSkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIGNvbnNvbGUubG9nKGByZWZlcmVuY2U6ICR7ZmlsZX1gKVxuICAgICAgICBhanYuYWRkU2NoZW1hKGxvYWQoZmlsZSkpXG4gICAgICB9XG4gICAgICBjb25zdCBzY2hlbWEgPSB0aGlzLm9wdGlvbnMuc2NoZW1hXG4gICAgICBjb25zdCBTY2hlbWEgPSBzY2hlbWEuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzY2hlbWEuc2xpY2UoMSlcbiAgICAgIGNvbnN0IHMgPSBgJHtkaXJ9LyR7c2NoZW1hfS8ke1NjaGVtYX0uanNvbmBcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkgY29uc29sZS5sb2coYHNjaGVtYSAke3N9YClcbiAgICAgIHRoaXMudmVyc2lvbjJzY2hlbWFbdmVyc2lvbl0gPSBhanYuY29tcGlsZShsb2FkKHMpKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy52ZXJzaW9uMnNjaGVtYVt2ZXJzaW9uXVxuICB9XG5cbiAgZ2V0VmVyc2lvbihjb250ZW50OiBhbnkpOiBzdHJpbmcge1xuICAgIGlmIChjb250ZW50LnNjaGVtYVZlcnNpb24gIT0gdW5kZWZpbmVkKSByZXR1cm4gY29udGVudC5zY2hlbWFWZXJzaW9uXG4gICAgcmV0dXJuIGAke3RoaXMub3B0aW9ucy5zY2hlbWF9LTEuMGBcbiAgfVxuXG4gIGdldFNjaGVtYVVSTCh2ZXJzaW9uOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuZGV2ID09IHRydWUpIHJldHVybiBcInNyYy9zY2hlbWFzXCJcbiAgICBlbHNlIHtcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRoaXMub3B0aW9ucy5yZXBvc2l0b3J5KSkge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5vcHRpb25zLnJlcG9zaXRvcnl9L3NyYy9zY2hlbWFzIGF0IHRhZyBzY2hlbWEtJHt2ZXJzaW9ufWBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlcG9zaXRvcnkgPSB0aGlzLm9wdGlvbnMucmVwb3NpdG9yeS5yZXBsYWNlKC9cXC5naXQkLywgXCJcIilcbiAgICAgICAgcmV0dXJuIGAke3JlcG9zaXRvcnl9L3RyZWUvc2NoZW1hLSR7dmVyc2lvbn0vc3JjL3NjaGVtYXNgXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGUoY29udGVudDogYW55LCBmaWxlbmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCB0YWcgPSB0aGlzLmdldFZlcnNpb24oY29udGVudClcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLmdldFZhbGlkYXRvcih0YWcpXG4gICAgY29uc3QgdmFsaWQgPSB2YWxpZGF0b3IoY29udGVudClcbiAgICBjb25zdCBzY2hlbWFVUkwgPSB0aGlzLmdldFNjaGVtYVVSTCh0YWcpXG4gICAgaWYgKCF2YWxpZCkge1xuICAgICAgY29uc29sZS5lcnJvcihgJHtzY2hlbWFVUkx9IGZpbmRzICR7ZmlsZW5hbWV9IGlzIGludmFsaWRgKVxuICAgICAgY29uc29sZS5lcnJvcih2YWxpZGF0b3IuZXJyb3JzKVxuICAgICAgcmV0dXJuIDFcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy52ZXJib3NlKVxuICAgICAgICBjb25zb2xlLmxvZyhgJHtzY2hlbWFVUkx9IGZpbmRzICR7ZmlsZW5hbWV9IGlzIHZhbGlkYClcbiAgICAgIHJldHVybiAwXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcHJvY2VzcygpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGxldCBzdGF0dXMgPSAwXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGdldEZpbGVzKFt0aGlzLm9wdGlvbnMuZGF0YV0pKSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gbG9hZChmaWxlKVxuICAgICAgc3RhdHVzIHw9IHRoaXMudmFsaWRhdGUoY29udGVudCwgZmlsZSlcbiAgICB9XG4gICAgcmV0dXJuIHN0YXR1c1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oYXJndjogYW55KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHBhcnNlQXJncyhhcmd2KVxuICBpZiAob3B0aW9ucyA9PT0gbnVsbCkgcmV0dXJuIDFcbiAgbGV0IGRpcmVjdG9yeVNjaGVtYSA9IFtdXG4gIGlmIChvcHRpb25zLnNjaGVtYSkge1xuICAgIGRpcmVjdG9yeVNjaGVtYSA9IFtbb3B0aW9ucy5kYXRhLCBvcHRpb25zLnNjaGVtYV1dXG4gIH0gZWxzZSBpZiAob3B0aW9ucy5kYXRhc2V0KSB7XG4gICAgZGlyZWN0b3J5U2NoZW1hID0gZGF0YXNldERpcmVjdG9yeVNjaGVtYShvcHRpb25zLmRhdGFzZXQpXG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5lcnJvcihcImVpdGhlciAtLXNjaGVtYSBvciAtLWRhdGFzZXQgaXMgcmVxdWlyZWRcIilcbiAgICByZXR1cm4gMVxuICB9XG4gIGZvciAoY29uc3QgZCBvZiBkaXJlY3RvcnlTY2hlbWEpIHtcbiAgICBvcHRpb25zLnNjaGVtYSA9IGRbMV1cbiAgICBvcHRpb25zLmRhdGEgPSBkWzBdXG4gICAgaWYgKG9wdGlvbnMudmVyYm9zZSlcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgd29ya2luZyBvbiBmaWxlcyAke29wdGlvbnMuZGF0YX0gd2l0aCBzY2hlbWEgJHtvcHRpb25zLnNjaGVtYX1gLFxuICAgICAgKVxuICAgIGNvbnN0IHZhbGlkYXRlID0gbmV3IFZhbGlkYXRlKG9wdGlvbnMpXG4gICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdmFsaWRhdGUucHJvY2VzcygpXG4gICAgaWYgKHN0YXR1cyAhPSAwKSByZXR1cm4gc3RhdHVzXG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAocHJvY2Vzcy5hcmd2WzFdLmVuZHNXaXRoKFwidmFsaWRhdGVfanNvbi50c1wiKSlcbiAgbWFpbihwcm9jZXNzLmFyZ3YpXG4gICAgLnRoZW4oKHN0YXR1cykgPT4ge1xuICAgICAgcHJvY2Vzcy5leGl0KHN0YXR1cylcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUsyQjtBQUFBO0FBQUE7QUFBQSwrQ0FaM0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0E7QUFDQUEsZ0JBQUksQ0FBQ0MsS0FBSyxFQUFFO0FBRVosU0FBU0MsU0FBUyxDQUFDQyxJQUFjLEVBQU87RUFDdEMsSUFBTUMsa0JBQWtCLEdBQUcsQ0FDekI7SUFDRUMsV0FBVyxFQUFFLGtEQUFrRDtJQUMvREMsYUFBYSxFQUFFLElBQUk7SUFDbkJDLElBQUksRUFBRSxNQUFNO0lBQ1pDLElBQUksRUFBRUM7RUFDUixDQUFDLEVBQ0Q7SUFDRUosV0FBVyxFQUFFLHlEQUF5RDtJQUN0RUssWUFBWSxFQUNWLCtEQUErRDtJQUNqRUgsSUFBSSxFQUFFLFlBQVk7SUFDbEJDLElBQUksRUFBRUM7RUFDUixDQUFDLEVBQ0Q7SUFDRUosV0FBVyxpRUFBMEQsSUFBQU0scUJBQVcsR0FBRSxNQUFHO0lBQ3JGSixJQUFJLEVBQUUs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
@@ -1,4 +1,6 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
2
4
  import Ajv from "ajv";
3
5
  import commandLineArgs from "command-line-args";
4
6
  import commandLineUsage from "command-line-usage";
@@ -179,4 +181,4 @@ if (process.argv[1].endsWith("validate_json.ts")) main(process.argv).then(status
179
181
  console.error(error);
180
182
  process.exit(1);
181
183
  });
182
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBanYiLCJjb21tYW5kTGluZUFyZ3MiLCJjb21tYW5kTGluZVVzYWdlIiwibG9hZCIsImdldEZpbGVzIiwiZ2l0IiwidGVtcCIsImZzIiwicGF0aCIsInZhbGlkRGF0YXNldCIsImdldERhdGFzZXRzIiwiZ2V0U2NoZW1hcyIsImRhdGFzZXREaXJlY3RvcnlTY2hlbWEiLCJ0cmFjayIsInBhcnNlQXJncyIsImFyZ3YiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJkZXNjcmlwdGlvbiIsImRlZmF1bHRPcHRpb24iLCJuYW1lIiwidHlwZSIsIlN0cmluZyIsImRlZmF1bHRWYWx1ZSIsIkJvb2xlYW4iLCJzZWN0aW9ucyIsImhlYWRlciIsImNvbnRlbnQiLCJvcHRpb25MaXN0Iiwib3B0aW9ucyIsImRhdGFzZXQiLCJjb25zb2xlIiwiZXJyb3IiLCJoZWxwIiwic2NoZW1hIiwiaW5jbHVkZXMiLCJ1c2FnZSIsIndhcm4iLCJWYWxpZGF0ZSIsImNvbnN0cnVjdG9yIiwidmVyc2lvbjJzY2hlbWEiLCJ0bXBEaXIiLCJta2RpclN5bmMiLCJnZXRTY2hlbWFEaXIiLCJ0YWciLCJkZXYiLCJ2ZXJib3NlIiwibG9nIiwicmVwb3NpdG9yeURpciIsImpvaW4iLCJ0YWdEaXIiLCJleGlzdHNTeW5jIiwicnVuIiwicmVwb3NpdG9yeSIsInJlbmFtZVN5bmMiLCJnZXRWYWxpZGF0b3IiLCJ2ZXJzaW9uIiwiYWp2IiwiZGlyIiwicmVmZXJlbmNlcyIsInJlZmVyZW5jZSIsInB1c2giLCJmaWxlIiwiYWRkU2NoZW1hIiwiU2NoZW1hIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsInMiLCJjb21waWxlIiwiZ2V0VmVyc2lvbiIsInNjaGVtYVZlcnNpb24iLCJ1bmRlZmluZWQiLCJnZXRTY2hlbWFVUkwiLCJyZXBsYWNlIiwidmFsaWRhdGUiLCJmaWxlbmFtZSIsInZhbGlkYXRvciIsInZhbGlkIiwic2NoZW1hVVJMIiwiZXJyb3JzIiwicHJvY2VzcyIsInN0YXR1cyIsImRhdGEiLCJtYWluIiwiZGlyZWN0b3J5U2NoZW1hIiwiZCIsImVuZHNXaXRoIiwidGhlbiIsImV4aXQiLCJjYXRjaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3ZhbGlkYXRlX2pzb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFqdiBmcm9tIFwiYWp2XCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBjb21tYW5kTGluZVVzYWdlIGZyb20gXCJjb21tYW5kLWxpbmUtdXNhZ2VcIlxuaW1wb3J0IHsgbG9hZCwgZ2V0RmlsZXMgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCAqIGFzIGdpdCBmcm9tIFwiLi4vZ2l0XCJcbmltcG9ydCB0ZW1wIGZyb20gXCJ0ZW1wXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IHtcbiAgdmFsaWREYXRhc2V0LFxuICBnZXREYXRhc2V0cyxcbiAgZ2V0U2NoZW1hcyxcbiAgZGF0YXNldERpcmVjdG9yeVNjaGVtYSxcbn0gZnJvbSBcIi4uLy4uL3NyYy9kYXRhc2V0c1wiXG5cbi8vIEF1dG9tYXRpY2FsbHkgdHJhY2sgYW5kIGNsZWFudXAgZmlsZXMgYXQgZXhpdFxudGVtcC50cmFjaygpXG5cbmZ1bmN0aW9uIHBhcnNlQXJncyhhcmd2OiBzdHJpbmdbXSk6IGFueSB7XG4gIGNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAgICB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJwYXRobmFtZSB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGRhdGFzZXRcIixcbiAgICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgICBuYW1lOiBcImRhdGFcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlVSTCBvciBwYXRoIHRvIHRoZSB0cmljb3RldXNlcy1hc3NlbWJsZWUgZ2l0IHJlcG9zaXRvcnlcIixcbiAgICAgIGRlZmF1bHRWYWx1ZTpcbiAgICAgICAgXCJodHRwczovL2dpdC5lbi1yb290Lm9yZy90cmljb3RldXNlcy90cmljb3RldXNlcy1hc3NlbWJsZWUuZ2l0XCIsXG4gICAgICBuYW1lOiBcInJlcG9zaXRvcnlcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgZGF0YXNldCAocG9zc2libGUgdmFsdWVzIG11c3QgaW5jbHVkZSBleGFjdGx5IG9uZSBvZiAke2dldERhdGFzZXRzKCl9KWAsXG4gICAgICBuYW1lOiBcImRhdGFzZXRcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgc2NoZW1hIChwb3NzaWJsZSB2YWx1ZXMgYXJlICR7Z2V0U2NoZW1hcygpfSlgLFxuICAgICAgbmFtZTogXCJzY2hlbWFcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcImlnbm9yZSBzY2hlbWFWZXJzaW9uIGZyb20gSlNPTiBmaWxlcyBhbmQgdXNlIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBpbnN0ZWFkIG9mIHRoZSAtLXJlcG9zaXRvcnlcIixcbiAgICAgIG5hbWU6IFwiZGV2XCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IFwiaW5jcmVhc2UgdmVyYm9zaXR5XCIsXG4gICAgICBuYW1lOiBcInZlcmJvc2VcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImhlbHBcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlByaW50IHRoaXMgdXNhZ2UgZ3VpZGUuXCIsXG4gICAgfSxcbiAgXVxuICBjb25zdCBzZWN0aW9ucyA9IFtcbiAgICB7XG4gICAgICBoZWFkZXI6IFwiVmFsaWRhdGUgSlNPTiBmaWxlc1wiLFxuICAgICAgY29udGVudDogXCJWYWxpZGF0ZSBKU09OIGZpbGVzXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBoZWFkZXI6IFwiT3B0aW9uc1wiLFxuICAgICAgb3B0aW9uTGlzdDogb3B0aW9uc0RlZmluaXRpb25zLFxuICAgIH0sXG4gIF1cbiAgY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMsIHtcbiAgICBhcmd2OiBhcmd2LFxuICB9KVxuXG4gIGlmIChvcHRpb25zLmRhdGFzZXQpIHtcbiAgICBpZiAoIXZhbGlkRGF0YXNldChvcHRpb25zLmRhdGFzZXQpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAtLWRhdGFzZXQgJHtvcHRpb25zLmRhdGFzZXR9YClcbiAgICAgIG9wdGlvbnMuaGVscCA9IHRydWVcbiAgICB9XG4gIH1cblxuICBpZiAob3B0aW9ucy5zY2hlbWEpIHtcbiAgICBpZiAoIWdldFNjaGVtYXMoKS5pbmNsdWRlcyhvcHRpb25zLnNjaGVtYSkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYC0tc2NoZW1hICR7b3B0aW9ucy5zY2hlbWF9YClcbiAgICAgIG9wdGlvbnMuaGVscCA9IHRydWVcbiAgICB9XG4gIH1cblxuICBpZiAoXCJoZWxwXCIgaW4gb3B0aW9ucykge1xuICAgIGNvbnN0IHVzYWdlID0gY29tbWFuZExpbmVVc2FnZShzZWN0aW9ucylcbiAgICBjb25zb2xlLndhcm4odXNhZ2UpXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICByZXR1cm4gb3B0aW9uc1xufVxuXG5jbGFzcyBWYWxpZGF0ZSB7XG4gIG9wdGlvbnM6IGFueVxuICB2ZXJzaW9uMnNjaGVtYTogYW55XG4gIHRtcERpcjogc3RyaW5nXG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogYW55KSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9uc1xuICAgIHRoaXMudmVyc2lvbjJzY2hlbWEgPSB7fVxuICAgIHRoaXMudG1wRGlyID0gdGVtcC5ta2RpclN5bmMoXCJ2YWxpZGF0aW9uXCIpXG4gIH1cblxuICBnZXRTY2hlbWFEaXIodGFnOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmRldiA9PSB0cnVlKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIGNvbnNvbGUubG9nKFwiLS1kZXY6IHVzZSBzcmMvc2NoZW1hc1wiKVxuICAgICAgcmV0dXJuIFwic3JjL3NjaGVtYXNcIlxuICAgIH1cbiAgICBjb25zdCByZXBvc2l0b3J5RGlyID0gcGF0aC5qb2luKHRoaXMudG1wRGlyLCBcInRyaWNvdGV1c2VzLWFzc2VtYmxlZVwiKVxuICAgIGNvbnN0IHRhZ0RpciA9IHBhdGguam9pbih0aGlzLnRtcERpciwgdGFnKVxuICAgIGlmICghZnMuZXhpc3RzU3luYyh0YWdEaXIpKSB7XG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocmVwb3NpdG9yeURpcikpIHtcbiAgICAgICAgZ2l0LnJ1bihcbiAgICAgICAgICB0aGlzLnRtcERpcixcbiAgICAgICAgICBgY2xvbmUgLS1xdWlldCAke3RoaXMub3B0aW9ucy5yZXBvc2l0b3J5fSAke3JlcG9zaXRvcnlEaXJ9YCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgZ2l0LnJ1bihcbiAgICAgICAgcmVwb3NpdG9yeURpcixcbiAgICAgICAgYGNoZWNrb3V0IHRhZ3MvJHt0YWd9IC0tIHNyYy9zY2hlbWFzID4gL2Rldi9udWxsIDI+JjFgLFxuICAgICAgKVxuICAgICAgZnMucmVuYW1lU3luYyhwYXRoLmpvaW4ocmVwb3NpdG9yeURpciwgXCJzcmMvc2NoZW1hc1wiKSwgdGFnRGlyKVxuICAgIH1cbiAgICByZXR1cm4gdGFnRGlyXG4gIH1cblxuICBnZXRWYWxpZGF0b3IodmVyc2lvbjogc3RyaW5nKTogYW55IHtcbiAgICBpZiAoISh2ZXJzaW9uIGluIHRoaXMudmVyc2lvbjJzY2hlbWEpKSB7XG4gICAgICBjb25zdCBhanYgPSBuZXcgQWp2KClcbiAgICAgIGNvbnN0IGRpciA9IHRoaXMuZ2V0U2NoZW1hRGlyKGBzY2hlbWEtJHt2ZXJzaW9ufWApXG4gICAgICBsZXQgcmVmZXJlbmNlcyA9IFtdXG4gICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiBnZXRGaWxlcyhbXG4gICAgICAgIGAke2Rpcn0vJHt0aGlzLm9wdGlvbnMuc2NoZW1hfS8qLmpzb25gLFxuICAgICAgXSkpXG4gICAgICAgIHJlZmVyZW5jZXMucHVzaChyZWZlcmVuY2UpXG4gICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZ2V0RmlsZXMocmVmZXJlbmNlcykpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy52ZXJib3NlKSBjb25zb2xlLmxvZyhgcmVmZXJlbmNlOiAke2ZpbGV9YClcbiAgICAgICAgYWp2LmFkZFNjaGVtYShsb2FkKGZpbGUpKVxuICAgICAgfVxuICAgICAgY29uc3Qgc2NoZW1hID0gdGhpcy5vcHRpb25zLnNjaGVtYVxuICAgICAgY29uc3QgU2NoZW1hID0gc2NoZW1hLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc2NoZW1hLnNsaWNlKDEpXG4gICAgICBjb25zdCBzID0gYCR7ZGlyfS8ke3NjaGVtYX0vJHtTY2hlbWF9Lmpzb25gXG4gICAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIGNvbnNvbGUubG9nKGBzY2hlbWEgJHtzfWApXG4gICAgICB0aGlzLnZlcnNpb24yc2NoZW1hW3ZlcnNpb25dID0gYWp2LmNvbXBpbGUobG9hZChzKSlcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudmVyc2lvbjJzY2hlbWFbdmVyc2lvbl1cbiAgfVxuXG4gIGdldFZlcnNpb24oY29udGVudDogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoY29udGVudC5zY2hlbWFWZXJzaW9uICE9IHVuZGVmaW5lZCkgcmV0dXJuIGNvbnRlbnQuc2NoZW1hVmVyc2lvblxuICAgIHJldHVybiBgJHt0aGlzLm9wdGlvbnMuc2NoZW1hfS0xLjBgXG4gIH1cblxuICBnZXRTY2hlbWFVUkwodmVyc2lvbjogc3RyaW5nKTogYW55IHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmRldiA9PSB0cnVlKSByZXR1cm4gXCJzcmMvc2NoZW1hc1wiXG4gICAgZWxzZSB7XG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyh0aGlzLm9wdGlvbnMucmVwb3NpdG9yeSkpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMub3B0aW9ucy5yZXBvc2l0b3J5fS9zcmMvc2NoZW1hcyBhdCB0YWcgc2NoZW1hLSR7dmVyc2lvbn1gXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZXBvc2l0b3J5ID0gdGhpcy5vcHRpb25zLnJlcG9zaXRvcnkucmVwbGFjZSgvXFwuZ2l0JC8sIFwiXCIpXG4gICAgICAgIHJldHVybiBgJHtyZXBvc2l0b3J5fS90cmVlL3NjaGVtYS0ke3ZlcnNpb259L3NyYy9zY2hlbWFzYFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRlbnQ6IGFueSwgZmlsZW5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgdGFnID0gdGhpcy5nZXRWZXJzaW9uKGNvbnRlbnQpXG4gICAgY29uc3QgdmFsaWRhdG9yID0gdGhpcy5nZXRWYWxpZGF0b3IodGFnKVxuICAgIGNvbnN0IHZhbGlkID0gdmFsaWRhdG9yKGNvbnRlbnQpXG4gICAgY29uc3Qgc2NoZW1hVVJMID0gdGhpcy5nZXRTY2hlbWFVUkwodGFnKVxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7c2NoZW1hVVJMfSBmaW5kcyAke2ZpbGVuYW1lfSBpcyBpbnZhbGlkYClcbiAgICAgIGNvbnNvbGUuZXJyb3IodmFsaWRhdG9yLmVycm9ycylcbiAgICAgIHJldHVybiAxXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSlcbiAgICAgICAgY29uc29sZS5sb2coYCR7c2NoZW1hVVJMfSBmaW5kcyAke2ZpbGVuYW1lfSBpcyB2YWxpZGApXG4gICAgICByZXR1cm4gMFxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHByb2Nlc3MoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBsZXQgc3RhdHVzID0gMFxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBnZXRGaWxlcyhbdGhpcy5vcHRpb25zLmRhdGFdKSkge1xuICAgICAgY29uc3QgY29udGVudCA9IGxvYWQoZmlsZSlcbiAgICAgIHN0YXR1cyB8PSB0aGlzLnZhbGlkYXRlKGNvbnRlbnQsIGZpbGUpXG4gICAgfVxuICAgIHJldHVybiBzdGF0dXNcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBtYWluKGFyZ3Y6IGFueSk6IFByb21pc2U8bnVtYmVyPiB7XG4gIGNvbnN0IG9wdGlvbnMgPSBwYXJzZUFyZ3MoYXJndilcbiAgaWYgKG9wdGlvbnMgPT09IG51bGwpIHJldHVybiAxXG4gIGxldCBkaXJlY3RvcnlTY2hlbWEgPSBbXVxuICBpZiAob3B0aW9ucy5zY2hlbWEpIHtcbiAgICBkaXJlY3RvcnlTY2hlbWEgPSBbW29wdGlvbnMuZGF0YSwgb3B0aW9ucy5zY2hlbWFdXVxuICB9IGVsc2UgaWYgKG9wdGlvbnMuZGF0YXNldCkge1xuICAgIGRpcmVjdG9yeVNjaGVtYSA9IGRhdGFzZXREaXJlY3RvcnlTY2hlbWEob3B0aW9ucy5kYXRhc2V0KVxuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJlaXRoZXIgLS1zY2hlbWEgb3IgLS1kYXRhc2V0IGlzIHJlcXVpcmVkXCIpXG4gICAgcmV0dXJuIDFcbiAgfVxuICBmb3IgKGNvbnN0IGQgb2YgZGlyZWN0b3J5U2NoZW1hKSB7XG4gICAgb3B0aW9ucy5zY2hlbWEgPSBkWzFdXG4gICAgb3B0aW9ucy5kYXRhID0gZFswXVxuICAgIGlmIChvcHRpb25zLnZlcmJvc2UpXG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYHdvcmtpbmcgb24gZmlsZXMgJHtvcHRpb25zLmRhdGF9IHdpdGggc2NoZW1hICR7b3B0aW9ucy5zY2hlbWF9YCxcbiAgICAgIClcbiAgICBjb25zdCB2YWxpZGF0ZSA9IG5ldyBWYWxpZGF0ZShvcHRpb25zKVxuICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHZhbGlkYXRlLnByb2Nlc3MoKVxuICAgIGlmIChzdGF0dXMgIT0gMCkgcmV0dXJuIHN0YXR1c1xuICB9XG4gIHJldHVybiAwXG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuaWYgKHByb2Nlc3MuYXJndlsxXS5lbmRzV2l0aChcInZhbGlkYXRlX2pzb24udHNcIikpXG4gIG1haW4ocHJvY2Vzcy5hcmd2KVxuICAgIC50aGVuKChzdGF0dXMpID0+IHtcbiAgICAgIHByb2Nlc3MuZXhpdChzdGF0dXMpXG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfSlcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLEdBQUcsTUFBTSxLQUFLO0FBQ3JCLE9BQU9DLGVBQWUsTUFBTSxtQkFBbUI7QUFDL0MsT0FBT0MsZ0JBQWdCLE1BQU0sb0JBQW9CO0FBQUEsU0FDeENDLElBQUksRUFBRUMsUUFBUTtBQUFBLE9BQ2hCLEtBQUtDLEdBQUc7QUFDZixPQUFPQyxJQUFJLE1BQU0sTUFBTTtBQUN2QixPQUFPQyxFQUFFLE1BQU0sVUFBVTtBQUN6QixPQUFPQyxJQUFJLE1BQU0sTUFBTTtBQUFBLFNBRXJCQyxZQUFZLEVBQ1pDLFdBQVcsRUFDWEMsVUFBVSxFQUNWQyxzQkFBc0Isa0NBR3hCO0FBQ0FOLElBQUksQ0FBQ08sS0FBSyxFQUFFO0FBRVosU0FBU0MsU0FBUyxDQUFDQyxJQUFjLEVBQU87RUFDdEMsTUFBTUMsa0JBQWtCLEdBQUcsQ0FDekI7SUFDRUMsV0FBVyxFQUFFLGtEQUFrRDtJQUMvREMsYUFBYSxFQUFFLElBQUk7SUFDbkJDLElBQUksRUFBRSxNQUFNO0lBQ1pDLElBQUksRUFBRUM7RUFDUixDQUFDLEVBQ0Q7SUFDRUosV0FBVyxFQUFFLHlEQUF5RDtJQUN0RUssWUFB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
184
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBanYiLCJjb21tYW5kTGluZUFyZ3MiLCJjb21tYW5kTGluZVVzYWdlIiwibG9hZCIsImdldEZpbGVzIiwiZ2l0IiwidGVtcCIsImZzIiwicGF0aCIsInZhbGlkRGF0YXNldCIsImdldERhdGFzZXRzIiwiZ2V0U2NoZW1hcyIsImRhdGFzZXREaXJlY3RvcnlTY2hlbWEiLCJ0cmFjayIsInBhcnNlQXJncyIsImFyZ3YiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJkZXNjcmlwdGlvbiIsImRlZmF1bHRPcHRpb24iLCJuYW1lIiwidHlwZSIsIlN0cmluZyIsImRlZmF1bHRWYWx1ZSIsIkJvb2xlYW4iLCJzZWN0aW9ucyIsImhlYWRlciIsImNvbnRlbnQiLCJvcHRpb25MaXN0Iiwib3B0aW9ucyIsImRhdGFzZXQiLCJjb25zb2xlIiwiZXJyb3IiLCJoZWxwIiwic2NoZW1hIiwiaW5jbHVkZXMiLCJ1c2FnZSIsIndhcm4iLCJWYWxpZGF0ZSIsImNvbnN0cnVjdG9yIiwidmVyc2lvbjJzY2hlbWEiLCJ0bXBEaXIiLCJta2RpclN5bmMiLCJnZXRTY2hlbWFEaXIiLCJ0YWciLCJkZXYiLCJ2ZXJib3NlIiwibG9nIiwicmVwb3NpdG9yeURpciIsImpvaW4iLCJ0YWdEaXIiLCJleGlzdHNTeW5jIiwicnVuIiwicmVwb3NpdG9yeSIsInJlbmFtZVN5bmMiLCJnZXRWYWxpZGF0b3IiLCJ2ZXJzaW9uIiwiYWp2IiwiZGlyIiwicmVmZXJlbmNlcyIsInJlZmVyZW5jZSIsInB1c2giLCJmaWxlIiwiYWRkU2NoZW1hIiwiU2NoZW1hIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsInMiLCJjb21waWxlIiwiZ2V0VmVyc2lvbiIsInNjaGVtYVZlcnNpb24iLCJ1bmRlZmluZWQiLCJnZXRTY2hlbWFVUkwiLCJyZXBsYWNlIiwidmFsaWRhdGUiLCJmaWxlbmFtZSIsInZhbGlkYXRvciIsInZhbGlkIiwic2NoZW1hVVJMIiwiZXJyb3JzIiwicHJvY2VzcyIsInN0YXR1cyIsImRhdGEiLCJtYWluIiwiZGlyZWN0b3J5U2NoZW1hIiwiZCIsImVuZHNXaXRoIiwidGhlbiIsImV4aXQiLCJjYXRjaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3ZhbGlkYXRlX2pzb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFqdiBmcm9tIFwiYWp2XCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBjb21tYW5kTGluZVVzYWdlIGZyb20gXCJjb21tYW5kLWxpbmUtdXNhZ2VcIlxuaW1wb3J0IHsgbG9hZCwgZ2V0RmlsZXMgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCAqIGFzIGdpdCBmcm9tIFwiLi4vZ2l0XCJcbmltcG9ydCB0ZW1wIGZyb20gXCJ0ZW1wXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IHtcbiAgdmFsaWREYXRhc2V0LFxuICBnZXREYXRhc2V0cyxcbiAgZ2V0U2NoZW1hcyxcbiAgZGF0YXNldERpcmVjdG9yeVNjaGVtYSxcbn0gZnJvbSBcIi4uLy4uL3NyYy9kYXRhc2V0c1wiXG5cbi8vIEF1dG9tYXRpY2FsbHkgdHJhY2sgYW5kIGNsZWFudXAgZmlsZXMgYXQgZXhpdFxudGVtcC50cmFjaygpXG5cbmZ1bmN0aW9uIHBhcnNlQXJncyhhcmd2OiBzdHJpbmdbXSk6IGFueSB7XG4gIGNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAgICB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJwYXRobmFtZSB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGRhdGFzZXRcIixcbiAgICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgICBuYW1lOiBcImRhdGFcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlVSTCBvciBwYXRoIHRvIHRoZSB0cmljb3RldXNlcy1hc3NlbWJsZWUgZ2l0IHJlcG9zaXRvcnlcIixcbiAgICAgIGRlZmF1bHRWYWx1ZTpcbiAgICAgICAgXCJodHRwczovL2dpdC5lbi1yb290Lm9yZy90cmljb3RldXNlcy90cmljb3RldXNlcy1hc3NlbWJsZWUuZ2l0XCIsXG4gICAgICBuYW1lOiBcInJlcG9zaXRvcnlcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgZGF0YXNldCAocG9zc2libGUgdmFsdWVzIG11c3QgaW5jbHVkZSBleGFjdGx5IG9uZSBvZiAke2dldERhdGFzZXRzKCl9KWAsXG4gICAgICBuYW1lOiBcImRhdGFzZXRcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgc2NoZW1hIChwb3NzaWJsZSB2YWx1ZXMgYXJlICR7Z2V0U2NoZW1hcygpfSlgLFxuICAgICAgbmFtZTogXCJzY2hlbWFcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcImlnbm9yZSBzY2hlbWFWZXJzaW9uIGZyb20gSlNPTiBmaWxlcyBhbmQgdXNlIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBpbnN0ZWFkIG9mIHRoZSAtLXJlcG9zaXRvcnlcIixcbiAgICAgIG5hbWU6IFwiZGV2XCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IFwiaW5jcmVhc2UgdmVyYm9zaXR5XCIsXG4gICAgICBuYW1lOiBcInZlcmJvc2VcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImhlbHBcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlByaW50IHRoaXMgdXNhZ2UgZ3VpZGUuXCIsXG4gICAgfSxcbiAgXVxuICBjb25zdCBzZWN0aW9ucyA9IFtcbiAgICB7XG4gICAgICBoZWFkZXI6IFwiVmFsaWRhdGUgSlNPTiBmaWxlc1wiLFxuICAgICAgY29udGVudDogXCJWYWxpZGF0ZSBKU09OIGZpbGVzXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBoZWFkZXI6IFwiT3B0aW9uc1wiLFxuICAgICAgb3B0aW9uTGlzdDogb3B0aW9uc0RlZmluaXRpb25zLFxuICAgIH0sXG4gIF1cbiAgY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMsIHtcbiAgICBhcmd2OiBhcmd2LFxuICB9KVxuXG4gIGlmIChvcHRpb25zLmRhdGFzZXQpIHtcbiAgICBpZiAoIXZhbGlkRGF0YXNldChvcHRpb25zLmRhdGFzZXQpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAtLWRhdGFzZXQgJHtvcHRpb25zLmRhdGFzZXR9YClcbiAgICAgIG9wdGlvbnMuaGVscCA9IHRydWVcbiAgICB9XG4gIH1cblxuICBpZiAob3B0aW9ucy5zY2hlbWEpIHtcbiAgICBpZiAoIWdldFNjaGVtYXMoKS5pbmNsdWRlcyhvcHRpb25zLnNjaGVtYSkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYC0tc2NoZW1hICR7b3B0aW9ucy5zY2hlbWF9YClcbiAgICAgIG9wdGlvbnMuaGVscCA9IHRydWVcbiAgICB9XG4gIH1cblxuICBpZiAoXCJoZWxwXCIgaW4gb3B0aW9ucykge1xuICAgIGNvbnN0IHVzYWdlID0gY29tbWFuZExpbmVVc2FnZShzZWN0aW9ucylcbiAgICBjb25zb2xlLndhcm4odXNhZ2UpXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICByZXR1cm4gb3B0aW9uc1xufVxuXG5jbGFzcyBWYWxpZGF0ZSB7XG4gIG9wdGlvbnM6IGFueVxuICB2ZXJzaW9uMnNjaGVtYTogYW55XG4gIHRtcERpcjogc3RyaW5nXG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogYW55KSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9uc1xuICAgIHRoaXMudmVyc2lvbjJzY2hlbWEgPSB7fVxuICAgIHRoaXMudG1wRGlyID0gdGVtcC5ta2RpclN5bmMoXCJ2YWxpZGF0aW9uXCIpXG4gIH1cblxuICBnZXRTY2hlbWFEaXIodGFnOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmRldiA9PSB0cnVlKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIGNvbnNvbGUubG9nKFwiLS1kZXY6IHVzZSBzcmMvc2NoZW1hc1wiKVxuICAgICAgcmV0dXJuIFwic3JjL3NjaGVtYXNcIlxuICAgIH1cbiAgICBjb25zdCByZXBvc2l0b3J5RGlyID0gcGF0aC5qb2luKHRoaXMudG1wRGlyLCBcInRyaWNvdGV1c2VzLWFzc2VtYmxlZVwiKVxuICAgIGNvbnN0IHRhZ0RpciA9IHBhdGguam9pbih0aGlzLnRtcERpciwgdGFnKVxuICAgIGlmICghZnMuZXhpc3RzU3luYyh0YWdEaXIpKSB7XG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocmVwb3NpdG9yeURpcikpIHtcbiAgICAgICAgZ2l0LnJ1bihcbiAgICAgICAgICB0aGlzLnRtcERpcixcbiAgICAgICAgICBgY2xvbmUgLS1xdWlldCAke3RoaXMub3B0aW9ucy5yZXBvc2l0b3J5fSAke3JlcG9zaXRvcnlEaXJ9YCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgZ2l0LnJ1bihcbiAgICAgICAgcmVwb3NpdG9yeURpcixcbiAgICAgICAgYGNoZWNrb3V0IHRhZ3MvJHt0YWd9IC0tIHNyYy9zY2hlbWFzID4gL2Rldi9udWxsIDI+JjFgLFxuICAgICAgKVxuICAgICAgZnMucmVuYW1lU3luYyhwYXRoLmpvaW4ocmVwb3NpdG9yeURpciwgXCJzcmMvc2NoZW1hc1wiKSwgdGFnRGlyKVxuICAgIH1cbiAgICByZXR1cm4gdGFnRGlyXG4gIH1cblxuICBnZXRWYWxpZGF0b3IodmVyc2lvbjogc3RyaW5nKTogYW55IHtcbiAgICBpZiAoISh2ZXJzaW9uIGluIHRoaXMudmVyc2lvbjJzY2hlbWEpKSB7XG4gICAgICBjb25zdCBhanYgPSBuZXcgQWp2KClcbiAgICAgIGNvbnN0IGRpciA9IHRoaXMuZ2V0U2NoZW1hRGlyKGBzY2hlbWEtJHt2ZXJzaW9ufWApXG4gICAgICBsZXQgcmVmZXJlbmNlcyA9IFtdXG4gICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiBnZXRGaWxlcyhbXG4gICAgICAgIGAke2Rpcn0vJHt0aGlzLm9wdGlvbnMuc2NoZW1hfS8qLmpzb25gLFxuICAgICAgXSkpXG4gICAgICAgIHJlZmVyZW5jZXMucHVzaChyZWZlcmVuY2UpXG4gICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZ2V0RmlsZXMocmVmZXJlbmNlcykpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy52ZXJib3NlKSBjb25zb2xlLmxvZyhgcmVmZXJlbmNlOiAke2ZpbGV9YClcbiAgICAgICAgYWp2LmFkZFNjaGVtYShsb2FkKGZpbGUpKVxuICAgICAgfVxuICAgICAgY29uc3Qgc2NoZW1hID0gdGhpcy5vcHRpb25zLnNjaGVtYVxuICAgICAgY29uc3QgU2NoZW1hID0gc2NoZW1hLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc2NoZW1hLnNsaWNlKDEpXG4gICAgICBjb25zdCBzID0gYCR7ZGlyfS8ke3NjaGVtYX0vJHtTY2hlbWF9Lmpzb25gXG4gICAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIGNvbnNvbGUubG9nKGBzY2hlbWEgJHtzfWApXG4gICAgICB0aGlzLnZlcnNpb24yc2NoZW1hW3ZlcnNpb25dID0gYWp2LmNvbXBpbGUobG9hZChzKSlcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudmVyc2lvbjJzY2hlbWFbdmVyc2lvbl1cbiAgfVxuXG4gIGdldFZlcnNpb24oY29udGVudDogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoY29udGVudC5zY2hlbWFWZXJzaW9uICE9IHVuZGVmaW5lZCkgcmV0dXJuIGNvbnRlbnQuc2NoZW1hVmVyc2lvblxuICAgIHJldHVybiBgJHt0aGlzLm9wdGlvbnMuc2NoZW1hfS0xLjBgXG4gIH1cblxuICBnZXRTY2hlbWFVUkwodmVyc2lvbjogc3RyaW5nKTogYW55IHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmRldiA9PSB0cnVlKSByZXR1cm4gXCJzcmMvc2NoZW1hc1wiXG4gICAgZWxzZSB7XG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyh0aGlzLm9wdGlvbnMucmVwb3NpdG9yeSkpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMub3B0aW9ucy5yZXBvc2l0b3J5fS9zcmMvc2NoZW1hcyBhdCB0YWcgc2NoZW1hLSR7dmVyc2lvbn1gXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZXBvc2l0b3J5ID0gdGhpcy5vcHRpb25zLnJlcG9zaXRvcnkucmVwbGFjZSgvXFwuZ2l0JC8sIFwiXCIpXG4gICAgICAgIHJldHVybiBgJHtyZXBvc2l0b3J5fS90cmVlL3NjaGVtYS0ke3ZlcnNpb259L3NyYy9zY2hlbWFzYFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRlbnQ6IGFueSwgZmlsZW5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgdGFnID0gdGhpcy5nZXRWZXJzaW9uKGNvbnRlbnQpXG4gICAgY29uc3QgdmFsaWRhdG9yID0gdGhpcy5nZXRWYWxpZGF0b3IodGFnKVxuICAgIGNvbnN0IHZhbGlkID0gdmFsaWRhdG9yKGNvbnRlbnQpXG4gICAgY29uc3Qgc2NoZW1hVVJMID0gdGhpcy5nZXRTY2hlbWFVUkwodGFnKVxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7c2NoZW1hVVJMfSBmaW5kcyAke2ZpbGVuYW1lfSBpcyBpbnZhbGlkYClcbiAgICAgIGNvbnNvbGUuZXJyb3IodmFsaWRhdG9yLmVycm9ycylcbiAgICAgIHJldHVybiAxXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSlcbiAgICAgICAgY29uc29sZS5sb2coYCR7c2NoZW1hVVJMfSBmaW5kcyAke2ZpbGVuYW1lfSBpcyB2YWxpZGApXG4gICAgICByZXR1cm4gMFxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHByb2Nlc3MoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBsZXQgc3RhdHVzID0gMFxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBnZXRGaWxlcyhbdGhpcy5vcHRpb25zLmRhdGFdKSkge1xuICAgICAgY29uc3QgY29udGVudCA9IGxvYWQoZmlsZSlcbiAgICAgIHN0YXR1cyB8PSB0aGlzLnZhbGlkYXRlKGNvbnRlbnQsIGZpbGUpXG4gICAgfVxuICAgIHJldHVybiBzdGF0dXNcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBtYWluKGFyZ3Y6IGFueSk6IFByb21pc2U8bnVtYmVyPiB7XG4gIGNvbnN0IG9wdGlvbnMgPSBwYXJzZUFyZ3MoYXJndilcbiAgaWYgKG9wdGlvbnMgPT09IG51bGwpIHJldHVybiAxXG4gIGxldCBkaXJlY3RvcnlTY2hlbWEgPSBbXVxuICBpZiAob3B0aW9ucy5zY2hlbWEpIHtcbiAgICBkaXJlY3RvcnlTY2hlbWEgPSBbW29wdGlvbnMuZGF0YSwgb3B0aW9ucy5zY2hlbWFdXVxuICB9IGVsc2UgaWYgKG9wdGlvbnMuZGF0YXNldCkge1xuICAgIGRpcmVjdG9yeVNjaGVtYSA9IGRhdGFzZXREaXJlY3RvcnlTY2hlbWEob3B0aW9ucy5kYXRhc2V0KVxuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJlaXRoZXIgLS1zY2hlbWEgb3IgLS1kYXRhc2V0IGlzIHJlcXVpcmVkXCIpXG4gICAgcmV0dXJuIDFcbiAgfVxuICBmb3IgKGNvbnN0IGQgb2YgZGlyZWN0b3J5U2NoZW1hKSB7XG4gICAgb3B0aW9ucy5zY2hlbWEgPSBkWzFdXG4gICAgb3B0aW9ucy5kYXRhID0gZFswXVxuICAgIGlmIChvcHRpb25zLnZlcmJvc2UpXG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYHdvcmtpbmcgb24gZmlsZXMgJHtvcHRpb25zLmRhdGF9IHdpdGggc2NoZW1hICR7b3B0aW9ucy5zY2hlbWF9YCxcbiAgICAgIClcbiAgICBjb25zdCB2YWxpZGF0ZSA9IG5ldyBWYWxpZGF0ZShvcHRpb25zKVxuICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHZhbGlkYXRlLnByb2Nlc3MoKVxuICAgIGlmIChzdGF0dXMgIT0gMCkgcmV0dXJuIHN0YXR1c1xuICB9XG4gIHJldHVybiAwXG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuaWYgKHByb2Nlc3MuYXJndlsxXS5lbmRzV2l0aChcInZhbGlkYXRlX2pzb24udHNcIikpXG4gIG1haW4ocHJvY2Vzcy5hcmd2KVxuICAgIC50aGVuKChzdGF0dXMpID0+IHtcbiAgICAgIHByb2Nlc3MuZXhpdChzdGF0dXMpXG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfSlcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsT0FBT0EsR0FBRyxNQUFNLEtBQUs7QUFDckIsT0FBT0MsZUFBZSxNQUFNLG1CQUFtQjtBQUMvQyxPQUFPQyxnQkFBZ0IsTUFBTSxvQkFBb0I7QUFBQSxTQUN4Q0MsSUFBSSxFQUFFQyxRQUFRO0FBQUEsT0FDaEIsS0FBS0MsR0FBRztBQUNmLE9BQU9DLElBQUksTUFBTSxNQUFNO0FBQ3ZCLE9BQU9DLEVBQUUsTUFBTSxVQUFVO0FBQ3pCLE9BQU9DLElBQUksTUFBTSxNQUFNO0FBQUEsU0FFckJDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxVQUFVLEVBQ1ZDLHNCQUFzQixrQ0FHeEI7QUFDQU4sSUFBSSxDQUFDTyxLQUFLLEVBQUU7QUFFWixTQUFTQyxTQUFTLENBQUNDLElBQWMsRUFBTztFQUN0QyxNQUFNQyxrQkFBa0IsR0FBRyxDQUN6QjtJQUNFQyxXQUFXLEVBQUUsa0RBQWtEO0lBQy9EQyxhQUFhLEVBQUUsSUFBSTtJQUNuQkMsSUFBSSxFQUFFLE1BQU07SUFDWkMsSUFBSSxFQUFFQztFQUNSLENBQUMsRUFDRDtJQUNFSixXQUFXLEVBQUUseURBQXlEO0lBQ3RFSyxZ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
@@ -49,6 +49,7 @@ export declare enum CodeActeNiveau1 {
49
49
  AnldefDebats = "ANLDEF-DEBATS",
50
50
  AnldefDepot = "ANLDEF-DEPOT",
51
51
  AnldefDgvt = "ANLDEF-DGVT",
52
+ AnldefMotion = "ANLDEF-MOTION",
52
53
  AnluniCom = "ANLUNI-COM",
53
54
  AnluniDebats = "ANLUNI-DEBATS",
54
55
  AnluniDepot = "ANLUNI-DEPOT",
@@ -352,6 +353,7 @@ export declare const CodeActe: {
352
353
  AnldefDebats: CodeActeNiveau1.AnldefDebats;
353
354
  AnldefDepot: CodeActeNiveau1.AnldefDepot;
354
355
  AnldefDgvt: CodeActeNiveau1.AnldefDgvt;
356
+ AnldefMotion: CodeActeNiveau1.AnldefMotion;
355
357
  AnluniCom: CodeActeNiveau1.AnluniCom;
356
358
  AnluniDebats: CodeActeNiveau1.AnluniDebats;
357
359
  AnluniDepot: CodeActeNiveau1.AnluniDepot;
@@ -412,4 +414,4 @@ export declare const CodeActe: {
412
414
  Sn3: CodeActeNiveau0.Sn3;
413
415
  Snnlec: CodeActeNiveau0.Snnlec;
414
416
  };
415
- export declare type CodeActe = typeof CodeActe;
417
+ export type CodeActe = typeof CodeActe;