@tricoteuses/assemblee 1.7.5 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.md +4 -4
  2. package/lib/bugs/acteur-00010/plugin.test.js +2 -2
  3. package/lib/bugs/acteur-00010.js +3 -3
  4. package/lib/bugs/agenda-00002/plugin.test.js +3 -3
  5. package/lib/bugs/agenda-00002.js +5 -5
  6. package/lib/bugs/agenda-00008/plugin.test.js +2 -2
  7. package/lib/bugs/agenda-00008.js +3 -3
  8. package/lib/bugs/agenda-00011/plugin.test.js +6 -6
  9. package/lib/bugs/agenda-00011.js +8 -8
  10. package/lib/bugs.js +11 -11
  11. package/lib/cleaners/index.d.ts +1 -0
  12. package/lib/cleaners/index.js +8 -1
  13. package/lib/cleaners/index.mjs +2 -1
  14. package/lib/cleaners/scrutins.js +2 -1
  15. package/lib/cleaners/scrutins.mjs +3 -2
  16. package/lib/cleaners/textes_loi.d.ts +1 -0
  17. package/lib/cleaners/textes_loi.js +12 -0
  18. package/lib/cleaners/textes_loi.mjs +5 -0
  19. package/lib/cleaners/xml.d.ts +3 -0
  20. package/lib/cleaners/xml.js +13 -1
  21. package/lib/cleaners/xml.mjs +11 -1
  22. package/lib/datasets.d.ts +9 -2
  23. package/lib/datasets.js +233 -6
  24. package/lib/datasets.mjs +233 -6
  25. package/lib/dates.js +3 -3
  26. package/lib/examples/PIONANR5L15B0020/input.d.ts +2 -0
  27. package/lib/examples/PIONANR5L15B0020/input.js +10 -0
  28. package/lib/examples/PIONANR5L15B0020/input.mjs +193 -0
  29. package/lib/examples/PRJLANR5L16B0914/input.d.ts +2 -0
  30. package/lib/examples/PRJLANR5L16B0914/input.js +10 -0
  31. package/lib/examples/PRJLANR5L16B0914/input.mjs +322 -0
  32. package/lib/examples/PRJLANR5L16B2014/input.d.ts +2 -0
  33. package/lib/examples/PRJLANR5L16B2014/input.js +10 -0
  34. package/lib/examples/PRJLANR5L16B2014/input.mjs +577 -0
  35. package/lib/examples/PRJLANR5L16B2424/input.d.ts +2 -0
  36. package/lib/examples/PRJLANR5L16B2424/input.js +10 -0
  37. package/lib/examples/PRJLANR5L16B2424/input.mjs +322 -0
  38. package/lib/examples/PRJLANR5L16B2462/input.d.ts +2 -0
  39. package/lib/examples/PRJLANR5L16B2462/input.js +10 -0
  40. package/lib/examples/PRJLANR5L16B2462/input.mjs +1308 -0
  41. package/lib/loaders.d.ts +5 -0
  42. package/lib/loaders.js +311 -265
  43. package/lib/loaders.mjs +19 -6
  44. package/lib/logger.d.ts +16 -0
  45. package/lib/logger.js +35 -0
  46. package/lib/logger.mjs +26 -0
  47. package/lib/parsers/documents.js +2 -2
  48. package/lib/parsers/textes_lois.d.ts +16 -1
  49. package/lib/parsers/textes_lois.js +733 -28
  50. package/lib/parsers/textes_lois.mjs +587 -22
  51. package/lib/raw_types/acteurs_et_organes.js +1 -1
  52. package/lib/raw_types/agendas.js +1 -1
  53. package/lib/raw_types/amendements.js +1 -1
  54. package/lib/raw_types/debats.js +1 -1
  55. package/lib/raw_types/dossiers_legislatifs.js +1 -1
  56. package/lib/raw_types/questions.js +1 -1
  57. package/lib/raw_types/scrutins.d.ts +18 -13
  58. package/lib/raw_types/scrutins.js +28 -14
  59. package/lib/raw_types/scrutins.mjs +28 -14
  60. package/lib/raw_types/textes_loi.d.ts +93 -0
  61. package/lib/raw_types/textes_loi.js +429 -0
  62. package/lib/raw_types/textes_loi.mjs +378 -0
  63. package/lib/scripts/bugs_helper.js +9 -9
  64. package/lib/scripts/document_dossiers_legislatifs.js +1 -1
  65. package/lib/scripts/get_today_reunions.js +2 -2
  66. package/lib/scripts/get_today_reunions.mjs +2 -2
  67. package/lib/scripts/process_open_dataset.d.ts +17 -0
  68. package/lib/scripts/process_open_dataset.js +302 -0
  69. package/lib/scripts/process_open_dataset.mjs +136 -0
  70. package/lib/scripts/process_textes_loi_dataset.d.ts +7 -0
  71. package/lib/scripts/process_textes_loi_dataset.js +374 -0
  72. package/lib/scripts/process_textes_loi_dataset.mjs +237 -0
  73. package/lib/scripts/raw_types_from_amendements.js +2 -2
  74. package/lib/scripts/reorganize_data.js +1 -1
  75. package/lib/scripts/reorganize_data.mjs +1 -1
  76. package/lib/scripts/retrieve_deputes_photos.js +34 -33
  77. package/lib/scripts/retrieve_deputes_photos.mjs +3 -2
  78. package/lib/scripts/retrieve_documents.js +4 -4
  79. package/lib/scripts/retrieve_open_data.js +41 -279
  80. package/lib/scripts/retrieve_open_data.mjs +13 -126
  81. package/lib/scripts/retrieve_pending_amendments.js +2 -2
  82. package/lib/scripts/retrieve_senateurs_photos.js +2 -2
  83. package/lib/scripts/retrieve_textes_lois.js +2 -2
  84. package/lib/scripts/shared/cli_helpers.d.ts +5 -0
  85. package/lib/scripts/shared/cli_helpers.js +7 -2
  86. package/lib/scripts/shared/cli_helpers.mjs +6 -1
  87. package/lib/scripts/test_iter_load.js +25 -10
  88. package/lib/scripts/test_iter_load.mjs +19 -11
  89. package/lib/scripts/validate_json.js +3 -3
  90. package/lib/types/acteurs_et_organes.js +1 -1
  91. package/lib/types/agendas.js +1 -1
  92. package/lib/types/amendements.js +1 -1
  93. package/lib/types/debats.js +1 -1
  94. package/lib/types/dossiers_legislatifs.js +1 -1
  95. package/lib/types/legislatures.d.ts +2 -0
  96. package/lib/types/legislatures.js +3 -1
  97. package/lib/types/legislatures.mjs +3 -1
  98. package/lib/types/questions.js +1 -1
  99. package/lib/types/scrutins.d.ts +6 -3
  100. package/lib/types/scrutins.js +13 -7
  101. package/lib/types/scrutins.mjs +13 -7
  102. package/lib/types/textes_loi.d.ts +94 -0
  103. package/lib/types/textes_loi.js +429 -0
  104. package/lib/types/textes_loi.mjs +378 -0
  105. package/package.json +16 -15
  106. package/lib/scripts/retrieve_textes_lois_llm.d.ts +0 -1
  107. package/lib/scripts/retrieve_textes_lois_llm.js +0 -188
  108. package/lib/scripts/retrieve_textes_lois_llm.mjs +0 -85
package/lib/loaders.js CHANGED
@@ -41,6 +41,7 @@ exports.iterLoadAssembleeOrganes = iterLoadAssembleeOrganes;
41
41
  exports.iterLoadAssembleeQuestions = iterLoadAssembleeQuestions;
42
42
  exports.iterLoadAssembleeReunions = iterLoadAssembleeReunions;
43
43
  exports.iterLoadAssembleeScrutins = iterLoadAssembleeScrutins;
44
+ exports.iterLoadAssembleeTexteLoi = iterLoadAssembleeTexteLoi;
44
45
  exports.loadAssembleeData = loadAssembleeData;
45
46
  exports.loadAssembleeDataFromBigFiles = loadAssembleeDataFromBigFiles;
46
47
  exports.loadAssembleeDocumentFile = loadAssembleeDocumentFile;
@@ -89,6 +90,7 @@ var _legislatures = require("./types/legislatures");
89
90
  var _scrutins = require("./types/scrutins");
90
91
  var _questions = require("./types/questions");
91
92
  var _debats = require("./types/debats");
93
+ var _textes_loi = require("./types/textes_loi");
92
94
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
93
95
  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 e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
94
96
  function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
@@ -101,7 +103,7 @@ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length)
101
103
  function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(e, r) { return new BabelRegExp(e, void 0, r); }; var e = RegExp.prototype, r = new WeakMap(); function BabelRegExp(e, t, p) { var o = RegExp(e, t); return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype); } function buildGroups(e, t) { var p = r.get(t); return Object.keys(p).reduce(function (r, t) { var o = p[t]; if ("number" == typeof o) r[t] = e[o];else { for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++; r[t] = e[o[i]]; } return r; }, Object.create(null)); } return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) { var t = e.exec.call(this, r); if (t) { t.groups = buildGroups(t, this); var p = t.indices; p && (p.groups = buildGroups(p, this)); } return t; }, BabelRegExp.prototype[Symbol.replace] = function (t, p) { if ("string" == typeof p) { var o = r.get(this); return e[Symbol.replace].call(this, t, p.replace(/\$<([^>]+)>/g, function (e, r) { var t = o[r]; return "$" + (Array.isArray(t) ? t.join("$") : t); })); } if ("function" == typeof p) { var i = this; return e[Symbol.replace].call(this, t, function () { var e = arguments; return "object" != _typeof(e[e.length - 1]) && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e); }); } return e[Symbol.replace].call(this, t, p); }, _wrapRegExp.apply(this, arguments); }
102
104
  function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
103
105
  function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } /// Load data from files
104
- var documentUidRegex = /*#__PURE__*/_wrapRegExp(/^((ACIN|ALCN|AVCE|AVIS|DECL|ETDI|LETT|MESS|MION|PION|PNRE|PRJL|RAPP|RINF|RION)(AN|CG|SN)(R\d+)[LS](\d+)(B|BTA|BTC|TAP)(\d+)(\x2D.*)?)|((MION)(AN|SN)(R\d+)[LS](\d+)\x2DN(\d+))$/, {
106
+ var documentUidRegex = /*#__PURE__*/_wrapRegExp(/^((ACIN|ALCN|AVCE|AVIS|DECL|ETDI|LETT|MESS|MION|PION|PNRE|PRJL|RAPP|RINF|RION)(AN|CG|SN)(R\d+)[LS](\d+)(B|BTA|BTC|TAP)(\d+)(-.*)?)|((MION)(AN|SN)(R\d+)[LS](\d+)-N(\d+))$/, {
105
107
  documentType: 2,
106
108
  chambre: 3,
107
109
  republique: 4,
@@ -117,7 +119,7 @@ var documentUidRegex = /*#__PURE__*/_wrapRegExp(/^((ACIN|ALCN|AVCE|AVIS|DECL|ETD
117
119
  var dossierUidRegex = /^DL(R\d+)(L\d+)N(\d+)$/;
118
120
  var reunionUidRegex = /^RU(AN|CG|SN)(R\d+)(L\d+)([AS]\d{4})(IDC|IDFL?|IDS)(\d+)$/;
119
121
  var scrutinUidRegex = /^VT(AN|CG)(R\d+)(L\d+)V(\d+)$/;
120
- var compteRenduUidRegex = /^CRS(AN|CG)(R\d+)(L\d+)(S\d+)(O|E)(\d+)(N\d+)$/;
122
+ var compteRenduUidRegex = /^CRS(AN|CG)(R\d+)(L\d+)(S\d+)(O|E|D)(\d+)(N\d+)$/;
121
123
  var questionUidRegex = /^QAN(R\d+)(L\d+)Q(E|G|OSD)(\d+)$/;
122
124
  function iterLoadAssembleeItems(dataDir, legislature, datasets, convertToItem, subfolderName) {
123
125
  var fileExtension = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : "json";
@@ -137,7 +139,7 @@ function iterLoadAssembleeItems(dataDir, legislature, datasets, convertToItem, s
137
139
  _iterator.s();
138
140
  case 4:
139
141
  if ((_step = _iterator.n()).done) {
140
- _context.next = 41;
142
+ _context.next = 42;
141
143
  break;
142
144
  }
143
145
  dataset = _step.value;
@@ -145,13 +147,13 @@ function iterLoadAssembleeItems(dataDir, legislature, datasets, convertToItem, s
145
147
  _context.next = 8;
146
148
  break;
147
149
  }
148
- return _context.abrupt("continue", 39);
150
+ return _context.abrupt("continue", 40);
149
151
  case 8:
150
152
  if (!(legislature !== undefined && legislature !== _legislatures.Legislature.All && dataset.legislature !== _legislatures.Legislature.All && legislature !== dataset.legislature)) {
151
153
  _context.next = 10;
152
154
  break;
153
155
  }
154
- return _context.abrupt("continue", 39);
156
+ return _context.abrupt("continue", 40);
155
157
  case 10:
156
158
  fileExtensionRegex = new RegExp("\\.".concat(fileExtension, "$"));
157
159
  datasetDir = _path["default"].join(dataDir, dataset.filename.replace(fileExtensionRegex, "_nettoye"));
@@ -160,7 +162,7 @@ function iterLoadAssembleeItems(dataDir, legislature, datasets, convertToItem, s
160
162
  _iterator2.s();
161
163
  case 15:
162
164
  if ((_step2 = _iterator2.n()).done) {
163
- _context.next = 31;
165
+ _context.next = 32;
164
166
  break;
165
167
  }
166
168
  itemSplitPath = _step2.value;
@@ -169,7 +171,7 @@ function iterLoadAssembleeItems(dataDir, legislature, datasets, convertToItem, s
169
171
  _context.next = 20;
170
172
  break;
171
173
  }
172
- return _context.abrupt("continue", 29);
174
+ return _context.abrupt("continue", 30);
173
175
  case 20:
174
176
  itemFilePath = _path["default"].join.apply(_path["default"], [datasetDir].concat(_toConsumableArray(itemSplitPath)));
175
177
  if (log) {
@@ -183,7 +185,7 @@ function iterLoadAssembleeItems(dataDir, legislature, datasets, convertToItem, s
183
185
  _context.next = 26;
184
186
  break;
185
187
  }
186
- return _context.abrupt("continue", 29);
188
+ return _context.abrupt("continue", 30);
187
189
  case 26:
188
190
  itemUid.add(item.uid);
189
191
  _context.next = 29;
@@ -192,38 +194,40 @@ function iterLoadAssembleeItems(dataDir, legislature, datasets, convertToItem, s
192
194
  datasetLegislature: dataset.legislature
193
195
  };
194
196
  case 29:
197
+ itemJson = null;
198
+ case 30:
195
199
  _context.next = 15;
196
200
  break;
197
- case 31:
198
- _context.next = 36;
201
+ case 32:
202
+ _context.next = 37;
199
203
  break;
200
- case 33:
201
- _context.prev = 33;
204
+ case 34:
205
+ _context.prev = 34;
202
206
  _context.t0 = _context["catch"](13);
203
207
  _iterator2.e(_context.t0);
204
- case 36:
205
- _context.prev = 36;
208
+ case 37:
209
+ _context.prev = 37;
206
210
  _iterator2.f();
207
- return _context.finish(36);
208
- case 39:
211
+ return _context.finish(37);
212
+ case 40:
209
213
  _context.next = 4;
210
214
  break;
211
- case 41:
212
- _context.next = 46;
215
+ case 42:
216
+ _context.next = 47;
213
217
  break;
214
- case 43:
215
- _context.prev = 43;
218
+ case 44:
219
+ _context.prev = 44;
216
220
  _context.t1 = _context["catch"](2);
217
221
  _iterator.e(_context.t1);
218
- case 46:
219
- _context.prev = 46;
222
+ case 47:
223
+ _context.prev = 47;
220
224
  _iterator.f();
221
- return _context.finish(46);
222
- case 49:
225
+ return _context.finish(47);
226
+ case 50:
223
227
  case "end":
224
228
  return _context.stop();
225
229
  }
226
- }, _callee, null, [[2, 43, 46, 49], [13, 33, 36, 39]]);
230
+ }, _callee, null, [[2, 44, 47, 50], [13, 34, 37, 40]]);
227
231
  })();
228
232
  }
229
233
  function iterLoadAssembleeActeurs(dataDir, legislature) {
@@ -604,6 +608,48 @@ function iterLoadAssembleeComptesRendus(dataDir, legislature) {
604
608
  }, _callee10, null, [[1, 11, 14, 17]]);
605
609
  })();
606
610
  }
611
+ function iterLoadAssembleeTexteLoi(dataDir, legislature) {
612
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
613
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {
614
+ var _iterator12, _step12, _step12$value, texteLoi, datasetLegislature;
615
+ return _regeneratorRuntime().wrap(function _callee11$(_context11) {
616
+ while (1) switch (_context11.prev = _context11.next) {
617
+ case 0:
618
+ _iterator12 = _createForOfIteratorHelper(iterLoadAssembleeItems(dataDir, legislature, _datasets.datasets.textesLoi, _textes_loi.Convert.toTextesLoi, [], "json", options));
619
+ _context11.prev = 1;
620
+ _iterator12.s();
621
+ case 3:
622
+ if ((_step12 = _iterator12.n()).done) {
623
+ _context11.next = 9;
624
+ break;
625
+ }
626
+ _step12$value = _step12.value, texteLoi = _step12$value.item, datasetLegislature = _step12$value.datasetLegislature;
627
+ _context11.next = 7;
628
+ return {
629
+ texteLoi: texteLoi,
630
+ datasetLegislature: datasetLegislature
631
+ };
632
+ case 7:
633
+ _context11.next = 3;
634
+ break;
635
+ case 9:
636
+ _context11.next = 14;
637
+ break;
638
+ case 11:
639
+ _context11.prev = 11;
640
+ _context11.t0 = _context11["catch"](1);
641
+ _iterator12.e(_context11.t0);
642
+ case 14:
643
+ _context11.prev = 14;
644
+ _iterator12.f();
645
+ return _context11.finish(14);
646
+ case 17:
647
+ case "end":
648
+ return _context11.stop();
649
+ }
650
+ }, _callee11, null, [[1, 11, 14, 17]]);
651
+ })();
652
+ }
607
653
 
608
654
  /// Load data from split files.
609
655
  /// Deprecated: Use iterLoad... iterators instead.
@@ -614,11 +660,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
614
660
  var acteurByUid = {};
615
661
  var organeByUid = {};
616
662
  if (enabledDatasets & _datasets.EnabledDatasets.ActeursEtOrganes) {
617
- var _iterator12 = _createForOfIteratorHelper(_datasets.datasets.acteursEtOrganes),
618
- _step12;
663
+ var _iterator13 = _createForOfIteratorHelper(_datasets.datasets.acteursEtOrganes),
664
+ _step13;
619
665
  try {
620
- for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
621
- var dataset = _step12.value;
666
+ for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
667
+ var dataset = _step13.value;
622
668
  if (dataset.ignoreForWeb) {
623
669
  continue;
624
670
  }
@@ -626,11 +672,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
626
672
  continue;
627
673
  }
628
674
  var datasetDir = _path["default"].join(dataDir, dataset.filename.replace(/\.json$/, "_nettoye"));
629
- var _iterator13 = _createForOfIteratorHelper((0, _file_systems.walkDir)(datasetDir, ["acteurs"])),
630
- _step13;
675
+ var _iterator14 = _createForOfIteratorHelper((0, _file_systems.walkDir)(datasetDir, ["acteurs"])),
676
+ _step14;
631
677
  try {
632
- for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
633
- var acteurSplitPath = _step13.value;
678
+ for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
679
+ var acteurSplitPath = _step14.value;
634
680
  var acteurFilename = acteurSplitPath[acteurSplitPath.length - 1];
635
681
  if (!acteurFilename.endsWith(".json")) {
636
682
  continue;
@@ -649,15 +695,15 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
649
695
  }
650
696
  }
651
697
  } catch (err) {
652
- _iterator13.e(err);
698
+ _iterator14.e(err);
653
699
  } finally {
654
- _iterator13.f();
700
+ _iterator14.f();
655
701
  }
656
- var _iterator14 = _createForOfIteratorHelper((0, _file_systems.walkDir)(datasetDir, ["organes"])),
657
- _step14;
702
+ var _iterator15 = _createForOfIteratorHelper((0, _file_systems.walkDir)(datasetDir, ["organes"])),
703
+ _step15;
658
704
  try {
659
- for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
660
- var organeSplitPath = _step14.value;
705
+ for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
706
+ var organeSplitPath = _step15.value;
661
707
  var organeFilename = organeSplitPath[organeSplitPath.length - 1];
662
708
  if (!organeFilename.endsWith(".json")) {
663
709
  continue;
@@ -676,26 +722,26 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
676
722
  }
677
723
  }
678
724
  } catch (err) {
679
- _iterator14.e(err);
725
+ _iterator15.e(err);
680
726
  } finally {
681
- _iterator14.f();
727
+ _iterator15.f();
682
728
  }
683
729
  }
684
730
  } catch (err) {
685
- _iterator12.e(err);
731
+ _iterator13.e(err);
686
732
  } finally {
687
- _iterator12.f();
733
+ _iterator13.f();
688
734
  }
689
735
  }
690
736
  var reunionByUid = {};
691
737
  var reunionsByDay = {};
692
738
  var reunionsByDossierUid = {};
693
739
  if (enabledDatasets & _datasets.EnabledDatasets.Agendas) {
694
- var _iterator15 = _createForOfIteratorHelper(_datasets.datasets.agendas),
695
- _step15;
740
+ var _iterator16 = _createForOfIteratorHelper(_datasets.datasets.agendas),
741
+ _step16;
696
742
  try {
697
- for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
698
- var _dataset = _step15.value;
743
+ for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
744
+ var _dataset = _step16.value;
699
745
  if (_dataset.ignoreForWeb) {
700
746
  continue;
701
747
  }
@@ -703,11 +749,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
703
749
  continue;
704
750
  }
705
751
  var _datasetDir = _path["default"].join(dataDir, _dataset.filename.replace(/\.json$/, "_nettoye"));
706
- var _iterator16 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir)),
707
- _step16;
752
+ var _iterator17 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir)),
753
+ _step17;
708
754
  try {
709
- for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
710
- var reunionSplitPath = _step16.value;
755
+ for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
756
+ var reunionSplitPath = _step17.value;
711
757
  var reunionFilename = reunionSplitPath[reunionSplitPath.length - 1];
712
758
  if (!reunionFilename.endsWith(".json")) {
713
759
  continue;
@@ -731,16 +777,16 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
731
777
  reunionsAtDay.push(reunion);
732
778
  var odj = reunion.odj;
733
779
  if (odj !== undefined) {
734
- var _iterator17 = _createForOfIteratorHelper(odj.pointsOdj || []),
735
- _step17;
780
+ var _iterator18 = _createForOfIteratorHelper(odj.pointsOdj || []),
781
+ _step18;
736
782
  try {
737
- for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
738
- var pointOdj = _step17.value;
739
- var _iterator18 = _createForOfIteratorHelper(pointOdj.dossiersLegislatifsRefs || []),
740
- _step18;
783
+ for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
784
+ var pointOdj = _step18.value;
785
+ var _iterator19 = _createForOfIteratorHelper(pointOdj.dossiersLegislatifsRefs || []),
786
+ _step19;
741
787
  try {
742
- for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
743
- var dossierLegislatifRef = _step18.value;
788
+ for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
789
+ var dossierLegislatifRef = _step19.value;
744
790
  var reunionsAtDossierUid = reunionsByDossierUid[dossierLegislatifRef];
745
791
  if (reunionsAtDossierUid === undefined) {
746
792
  reunionsAtDossierUid = reunionsByDossierUid[dossierLegislatifRef] = [];
@@ -748,37 +794,37 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
748
794
  reunionsAtDossierUid.push(reunion);
749
795
  }
750
796
  } catch (err) {
751
- _iterator18.e(err);
797
+ _iterator19.e(err);
752
798
  } finally {
753
- _iterator18.f();
799
+ _iterator19.f();
754
800
  }
755
801
  }
756
802
  } catch (err) {
757
- _iterator17.e(err);
803
+ _iterator18.e(err);
758
804
  } finally {
759
- _iterator17.f();
805
+ _iterator18.f();
760
806
  }
761
807
  }
762
808
  }
763
809
  } catch (err) {
764
- _iterator16.e(err);
810
+ _iterator17.e(err);
765
811
  } finally {
766
- _iterator16.f();
812
+ _iterator17.f();
767
813
  }
768
814
  }
769
815
  } catch (err) {
770
- _iterator15.e(err);
816
+ _iterator16.e(err);
771
817
  } finally {
772
- _iterator15.f();
818
+ _iterator16.f();
773
819
  }
774
820
  }
775
821
  var amendementByUid = {};
776
822
  if (enabledDatasets & _datasets.EnabledDatasets.Amendements) {
777
- var _iterator19 = _createForOfIteratorHelper(_datasets.datasets.amendements),
778
- _step19;
823
+ var _iterator20 = _createForOfIteratorHelper(_datasets.datasets.amendements),
824
+ _step20;
779
825
  try {
780
- for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
781
- var _dataset2 = _step19.value;
826
+ for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
827
+ var _dataset2 = _step20.value;
782
828
  if (_dataset2.ignoreForWeb) {
783
829
  continue;
784
830
  }
@@ -786,11 +832,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
786
832
  continue;
787
833
  }
788
834
  var _datasetDir2 = _path["default"].join(dataDir, _dataset2.filename.replace(/\.json$/, "_nettoye"));
789
- var _iterator20 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir2)),
790
- _step20;
835
+ var _iterator21 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir2)),
836
+ _step21;
791
837
  try {
792
- for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
793
- var amendementSplitPath = _step20.value;
838
+ for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
839
+ var amendementSplitPath = _step21.value;
794
840
  var amendementFilename = amendementSplitPath[amendementSplitPath.length - 1];
795
841
  if (!amendementFilename.endsWith(".json")) {
796
842
  continue;
@@ -808,15 +854,15 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
808
854
  }
809
855
  }
810
856
  } catch (err) {
811
- _iterator20.e(err);
857
+ _iterator21.e(err);
812
858
  } finally {
813
- _iterator20.f();
859
+ _iterator21.f();
814
860
  }
815
861
  }
816
862
  } catch (err) {
817
- _iterator19.e(err);
863
+ _iterator20.e(err);
818
864
  } finally {
819
- _iterator19.f();
865
+ _iterator20.f();
820
866
  }
821
867
  }
822
868
  var documentByUid = {};
@@ -824,11 +870,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
824
870
  var dossierParlementaireByTitreChemin = {};
825
871
  var dossierParlementaireByUid = {};
826
872
  if (enabledDatasets & _datasets.EnabledDatasets.DossiersLegislatifs) {
827
- var _iterator21 = _createForOfIteratorHelper(_datasets.datasets.dossiersLegislatifs),
828
- _step21;
873
+ var _iterator22 = _createForOfIteratorHelper(_datasets.datasets.dossiersLegislatifs),
874
+ _step22;
829
875
  try {
830
- for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
831
- var _dataset3 = _step21.value;
876
+ for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
877
+ var _dataset3 = _step22.value;
832
878
  if (_dataset3.ignoreForWeb) {
833
879
  continue;
834
880
  }
@@ -836,11 +882,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
836
882
  continue;
837
883
  }
838
884
  var _datasetDir3 = _path["default"].join(dataDir, _dataset3.filename.replace(/\.json$/, "_nettoye"));
839
- var _iterator22 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir3, ["documents"])),
840
- _step22;
885
+ var _iterator23 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir3, ["documents"])),
886
+ _step23;
841
887
  try {
842
- for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
843
- var documentSplitPath = _step22.value;
888
+ for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
889
+ var documentSplitPath = _step23.value;
844
890
  var documentFilename = documentSplitPath[documentSplitPath.length - 1];
845
891
  if (!documentFilename.endsWith(".json")) {
846
892
  continue;
@@ -858,15 +904,15 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
858
904
  }
859
905
  }
860
906
  } catch (err) {
861
- _iterator22.e(err);
907
+ _iterator23.e(err);
862
908
  } finally {
863
- _iterator22.f();
909
+ _iterator23.f();
864
910
  }
865
- var _iterator23 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir3, ["dossiers"])),
866
- _step23;
911
+ var _iterator24 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir3, ["dossiers"])),
912
+ _step24;
867
913
  try {
868
- for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
869
- var dossierSplitPath = _step23.value;
914
+ for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {
915
+ var dossierSplitPath = _step24.value;
870
916
  var dossierFilename = dossierSplitPath[dossierSplitPath.length - 1];
871
917
  if (!dossierFilename.endsWith(".json")) {
872
918
  continue;
@@ -891,15 +937,15 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
891
937
  }
892
938
  }
893
939
  } catch (err) {
894
- _iterator23.e(err);
940
+ _iterator24.e(err);
895
941
  } finally {
896
- _iterator23.f();
942
+ _iterator24.f();
897
943
  }
898
944
  }
899
945
  } catch (err) {
900
- _iterator21.e(err);
946
+ _iterator22.e(err);
901
947
  } finally {
902
- _iterator21.f();
948
+ _iterator22.f();
903
949
  }
904
950
  }
905
951
  var photoByUid = {};
@@ -907,7 +953,7 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
907
953
  {
908
954
  var jsonFilePath = _path["default"].join(dataDir, "photos_deputes_".concat(
909
955
  // TODO: Handle Legislature.All.
910
- legislature === _legislatures.Legislature.All ? _legislatures.Legislature.Seize : legislature), "deputes.json");
956
+ legislature === _legislatures.Legislature.All ? _legislatures.Legislature.DixSept : legislature), "deputes.json");
911
957
  if (_fsExtra["default"].existsSync(jsonFilePath)) {
912
958
  if (log) {
913
959
  console.log("Loading file: ".concat(jsonFilePath));
@@ -937,11 +983,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
937
983
  }
938
984
  var scrutinByUid = {};
939
985
  if (enabledDatasets & _datasets.EnabledDatasets.Scrutins) {
940
- var _iterator24 = _createForOfIteratorHelper(_datasets.datasets.scrutins),
941
- _step24;
986
+ var _iterator25 = _createForOfIteratorHelper(_datasets.datasets.scrutins),
987
+ _step25;
942
988
  try {
943
- for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {
944
- var _dataset4 = _step24.value;
989
+ for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {
990
+ var _dataset4 = _step25.value;
945
991
  if (_dataset4.ignoreForWeb) {
946
992
  continue;
947
993
  }
@@ -949,11 +995,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
949
995
  continue;
950
996
  }
951
997
  var _datasetDir4 = _path["default"].join(dataDir, _dataset4.filename.replace(/\.json$/, "_nettoye"));
952
- var _iterator25 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir4)),
953
- _step25;
998
+ var _iterator26 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir4)),
999
+ _step26;
954
1000
  try {
955
- for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {
956
- var scrutinSplitPath = _step25.value;
1001
+ for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {
1002
+ var scrutinSplitPath = _step26.value;
957
1003
  var scrutinFilename = scrutinSplitPath[scrutinSplitPath.length - 1];
958
1004
  if (!scrutinFilename.endsWith(".json")) {
959
1005
  continue;
@@ -971,24 +1017,24 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
971
1017
  }
972
1018
  }
973
1019
  } catch (err) {
974
- _iterator25.e(err);
1020
+ _iterator26.e(err);
975
1021
  } finally {
976
- _iterator25.f();
1022
+ _iterator26.f();
977
1023
  }
978
1024
  }
979
1025
  } catch (err) {
980
- _iterator24.e(err);
1026
+ _iterator25.e(err);
981
1027
  } finally {
982
- _iterator24.f();
1028
+ _iterator25.f();
983
1029
  }
984
1030
  }
985
1031
  var questionByUid = {};
986
1032
  if (enabledDatasets & _datasets.EnabledDatasets.Questions) {
987
- var _iterator26 = _createForOfIteratorHelper(_datasets.datasets.questions),
988
- _step26;
1033
+ var _iterator27 = _createForOfIteratorHelper(_datasets.datasets.questions),
1034
+ _step27;
989
1035
  try {
990
- for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {
991
- var _dataset5 = _step26.value;
1036
+ for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) {
1037
+ var _dataset5 = _step27.value;
992
1038
  if (_dataset5.ignoreForWeb) {
993
1039
  continue;
994
1040
  }
@@ -996,11 +1042,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
996
1042
  continue;
997
1043
  }
998
1044
  var _datasetDir5 = _path["default"].join(dataDir, _dataset5.filename.replace(/\.json$/, "_nettoye"));
999
- var _iterator27 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir5)),
1000
- _step27;
1045
+ var _iterator28 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir5)),
1046
+ _step28;
1001
1047
  try {
1002
- for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) {
1003
- var questionSplitPath = _step27.value;
1048
+ for (_iterator28.s(); !(_step28 = _iterator28.n()).done;) {
1049
+ var questionSplitPath = _step28.value;
1004
1050
  var questionFilename = questionSplitPath[questionSplitPath.length - 1];
1005
1051
  if (!questionFilename.endsWith(".json")) {
1006
1052
  continue;
@@ -1018,24 +1064,24 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
1018
1064
  }
1019
1065
  }
1020
1066
  } catch (err) {
1021
- _iterator27.e(err);
1067
+ _iterator28.e(err);
1022
1068
  } finally {
1023
- _iterator27.f();
1069
+ _iterator28.f();
1024
1070
  }
1025
1071
  }
1026
1072
  } catch (err) {
1027
- _iterator26.e(err);
1073
+ _iterator27.e(err);
1028
1074
  } finally {
1029
- _iterator26.f();
1075
+ _iterator27.f();
1030
1076
  }
1031
1077
  }
1032
1078
  var compteRenduByUid = {};
1033
1079
  if (enabledDatasets & _datasets.EnabledDatasets.ComptesRendusSeances) {
1034
- var _iterator28 = _createForOfIteratorHelper(_datasets.datasets.comptesRendusSeances),
1035
- _step28;
1080
+ var _iterator29 = _createForOfIteratorHelper(_datasets.datasets.comptesRendusSeances),
1081
+ _step29;
1036
1082
  try {
1037
- for (_iterator28.s(); !(_step28 = _iterator28.n()).done;) {
1038
- var _dataset6 = _step28.value;
1083
+ for (_iterator29.s(); !(_step29 = _iterator29.n()).done;) {
1084
+ var _dataset6 = _step29.value;
1039
1085
  if (_dataset6.ignoreForWeb) {
1040
1086
  continue;
1041
1087
  }
@@ -1043,11 +1089,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
1043
1089
  continue;
1044
1090
  }
1045
1091
  var _datasetDir6 = _path["default"].join(dataDir, _dataset6.filename.replace(/\.json$/, "_nettoye"));
1046
- var _iterator29 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir6)),
1047
- _step29;
1092
+ var _iterator30 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir6)),
1093
+ _step30;
1048
1094
  try {
1049
- for (_iterator29.s(); !(_step29 = _iterator29.n()).done;) {
1050
- var compteRenduPath = _step29.value;
1095
+ for (_iterator30.s(); !(_step30 = _iterator30.n()).done;) {
1096
+ var compteRenduPath = _step30.value;
1051
1097
  var compteRenduFilename = compteRenduPath[compteRenduPath.length - 1];
1052
1098
  if (!compteRenduFilename.endsWith(".json")) {
1053
1099
  continue;
@@ -1065,15 +1111,15 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
1065
1111
  }
1066
1112
  }
1067
1113
  } catch (err) {
1068
- _iterator29.e(err);
1114
+ _iterator30.e(err);
1069
1115
  } finally {
1070
- _iterator29.f();
1116
+ _iterator30.f();
1071
1117
  }
1072
1118
  }
1073
1119
  } catch (err) {
1074
- _iterator28.e(err);
1120
+ _iterator29.e(err);
1075
1121
  } finally {
1076
- _iterator28.f();
1122
+ _iterator29.f();
1077
1123
  }
1078
1124
  }
1079
1125
  return {
@@ -1103,11 +1149,11 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1103
1149
  var acteurByUid = {};
1104
1150
  var organeByUid = {};
1105
1151
  if (enabledDatasets & _datasets.EnabledDatasets.ActeursEtOrganes) {
1106
- var _iterator30 = _createForOfIteratorHelper(_datasets.datasets.acteursEtOrganes),
1107
- _step30;
1152
+ var _iterator31 = _createForOfIteratorHelper(_datasets.datasets.acteursEtOrganes),
1153
+ _step31;
1108
1154
  try {
1109
- for (_iterator30.s(); !(_step30 = _iterator30.n()).done;) {
1110
- var dataset = _step30.value;
1155
+ for (_iterator31.s(); !(_step31 = _iterator31.n()).done;) {
1156
+ var dataset = _step31.value;
1111
1157
  if (dataset.ignoreForWeb) {
1112
1158
  continue;
1113
1159
  }
@@ -1122,52 +1168,52 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1122
1168
  encoding: "utf8"
1123
1169
  });
1124
1170
  var acteursEtOrganes = _acteurs_et_organes.Convert.toActeursEtOrganes(_json3);
1125
- var _iterator31 = _createForOfIteratorHelper(acteursEtOrganes.acteurs),
1126
- _step31;
1171
+ var _iterator32 = _createForOfIteratorHelper(acteursEtOrganes.acteurs),
1172
+ _step32;
1127
1173
  try {
1128
- for (_iterator31.s(); !(_step31 = _iterator31.n()).done;) {
1129
- var acteur = _step31.value;
1174
+ for (_iterator32.s(); !(_step32 = _iterator32.n()).done;) {
1175
+ var acteur = _step32.value;
1130
1176
  // Keep the first existing "acteur", because the first wrapper is the most complete.
1131
1177
  if (acteurByUid[acteur.uid] === undefined) {
1132
1178
  acteurByUid[acteur.uid] = acteur;
1133
1179
  }
1134
1180
  }
1135
1181
  } catch (err) {
1136
- _iterator31.e(err);
1182
+ _iterator32.e(err);
1137
1183
  } finally {
1138
- _iterator31.f();
1184
+ _iterator32.f();
1139
1185
  }
1140
- var _iterator32 = _createForOfIteratorHelper(acteursEtOrganes.organes),
1141
- _step32;
1186
+ var _iterator33 = _createForOfIteratorHelper(acteursEtOrganes.organes),
1187
+ _step33;
1142
1188
  try {
1143
- for (_iterator32.s(); !(_step32 = _iterator32.n()).done;) {
1144
- var organe = _step32.value;
1189
+ for (_iterator33.s(); !(_step33 = _iterator33.n()).done;) {
1190
+ var organe = _step33.value;
1145
1191
  // Keep the first existing "organe", because the first wrapper is the most complete.
1146
1192
  if (organeByUid[organe.uid] === undefined) {
1147
1193
  organeByUid[organe.uid] = organe;
1148
1194
  }
1149
1195
  }
1150
1196
  } catch (err) {
1151
- _iterator32.e(err);
1197
+ _iterator33.e(err);
1152
1198
  } finally {
1153
- _iterator32.f();
1199
+ _iterator33.f();
1154
1200
  }
1155
1201
  }
1156
1202
  } catch (err) {
1157
- _iterator30.e(err);
1203
+ _iterator31.e(err);
1158
1204
  } finally {
1159
- _iterator30.f();
1205
+ _iterator31.f();
1160
1206
  }
1161
1207
  }
1162
1208
  var reunionByUid = {};
1163
1209
  var reunionsByDay = {};
1164
1210
  var reunionsByDossierUid = {};
1165
1211
  if (enabledDatasets & _datasets.EnabledDatasets.Agendas) {
1166
- var _iterator33 = _createForOfIteratorHelper(_datasets.datasets.agendas),
1167
- _step33;
1212
+ var _iterator34 = _createForOfIteratorHelper(_datasets.datasets.agendas),
1213
+ _step34;
1168
1214
  try {
1169
- for (_iterator33.s(); !(_step33 = _iterator33.n()).done;) {
1170
- var _dataset7 = _step33.value;
1215
+ for (_iterator34.s(); !(_step34 = _iterator34.n()).done;) {
1216
+ var _dataset7 = _step34.value;
1171
1217
  if (_dataset7.ignoreForWeb) {
1172
1218
  continue;
1173
1219
  }
@@ -1182,11 +1228,11 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1182
1228
  encoding: "utf8"
1183
1229
  });
1184
1230
  var agendas = _agendas.Convert.toAgendas(_json4);
1185
- var _iterator34 = _createForOfIteratorHelper(agendas.reunions),
1186
- _step34;
1231
+ var _iterator35 = _createForOfIteratorHelper(agendas.reunions),
1232
+ _step35;
1187
1233
  try {
1188
- for (_iterator34.s(); !(_step34 = _iterator34.n()).done;) {
1189
- var reunion = _step34.value;
1234
+ for (_iterator35.s(); !(_step35 = _iterator35.n()).done;) {
1235
+ var reunion = _step35.value;
1190
1236
  if (reunionByUid[reunion.uid] === undefined) {
1191
1237
  reunionByUid[reunion.uid] = reunion;
1192
1238
  }
@@ -1198,16 +1244,16 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1198
1244
  reunionsAtDay.push(reunion);
1199
1245
  var odj = reunion.odj;
1200
1246
  if (odj !== undefined) {
1201
- var _iterator35 = _createForOfIteratorHelper(odj.pointsOdj || []),
1202
- _step35;
1247
+ var _iterator36 = _createForOfIteratorHelper(odj.pointsOdj || []),
1248
+ _step36;
1203
1249
  try {
1204
- for (_iterator35.s(); !(_step35 = _iterator35.n()).done;) {
1205
- var pointOdj = _step35.value;
1206
- var _iterator36 = _createForOfIteratorHelper(pointOdj.dossiersLegislatifsRefs || []),
1207
- _step36;
1250
+ for (_iterator36.s(); !(_step36 = _iterator36.n()).done;) {
1251
+ var pointOdj = _step36.value;
1252
+ var _iterator37 = _createForOfIteratorHelper(pointOdj.dossiersLegislatifsRefs || []),
1253
+ _step37;
1208
1254
  try {
1209
- for (_iterator36.s(); !(_step36 = _iterator36.n()).done;) {
1210
- var dossierLegislatifRef = _step36.value;
1255
+ for (_iterator37.s(); !(_step37 = _iterator37.n()).done;) {
1256
+ var dossierLegislatifRef = _step37.value;
1211
1257
  var reunionsAtDossierUid = reunionsByDossierUid[dossierLegislatifRef];
1212
1258
  if (reunionsAtDossierUid === undefined) {
1213
1259
  reunionsAtDossierUid = reunionsByDossierUid[dossierLegislatifRef] = [];
@@ -1215,37 +1261,37 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1215
1261
  reunionsAtDossierUid.push(reunion);
1216
1262
  }
1217
1263
  } catch (err) {
1218
- _iterator36.e(err);
1264
+ _iterator37.e(err);
1219
1265
  } finally {
1220
- _iterator36.f();
1266
+ _iterator37.f();
1221
1267
  }
1222
1268
  }
1223
1269
  } catch (err) {
1224
- _iterator35.e(err);
1270
+ _iterator36.e(err);
1225
1271
  } finally {
1226
- _iterator35.f();
1272
+ _iterator36.f();
1227
1273
  }
1228
1274
  }
1229
1275
  }
1230
1276
  } catch (err) {
1231
- _iterator34.e(err);
1277
+ _iterator35.e(err);
1232
1278
  } finally {
1233
- _iterator34.f();
1279
+ _iterator35.f();
1234
1280
  }
1235
1281
  }
1236
1282
  } catch (err) {
1237
- _iterator33.e(err);
1283
+ _iterator34.e(err);
1238
1284
  } finally {
1239
- _iterator33.f();
1285
+ _iterator34.f();
1240
1286
  }
1241
1287
  }
1242
1288
  var amendementByUid = {};
1243
1289
  if (enabledDatasets & _datasets.EnabledDatasets.Amendements) {
1244
- var _iterator37 = _createForOfIteratorHelper(_datasets.datasets.amendements),
1245
- _step37;
1290
+ var _iterator38 = _createForOfIteratorHelper(_datasets.datasets.amendements),
1291
+ _step38;
1246
1292
  try {
1247
- for (_iterator37.s(); !(_step37 = _iterator37.n()).done;) {
1248
- var _dataset8 = _step37.value;
1293
+ for (_iterator38.s(); !(_step38 = _iterator38.n()).done;) {
1294
+ var _dataset8 = _step38.value;
1249
1295
  if (_dataset8.ignoreForWeb) {
1250
1296
  continue;
1251
1297
  }
@@ -1260,36 +1306,36 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1260
1306
  encoding: "utf8"
1261
1307
  });
1262
1308
  var amendements = _amendements.Convert.toAmendements(_json5);
1263
- var _iterator38 = _createForOfIteratorHelper(amendements.textesLegislatifs),
1264
- _step38;
1309
+ var _iterator39 = _createForOfIteratorHelper(amendements.textesLegislatifs),
1310
+ _step39;
1265
1311
  try {
1266
- for (_iterator38.s(); !(_step38 = _iterator38.n()).done;) {
1267
- var texteLegislatif = _step38.value;
1268
- var _iterator39 = _createForOfIteratorHelper(texteLegislatif.amendements),
1269
- _step39;
1312
+ for (_iterator39.s(); !(_step39 = _iterator39.n()).done;) {
1313
+ var texteLegislatif = _step39.value;
1314
+ var _iterator40 = _createForOfIteratorHelper(texteLegislatif.amendements),
1315
+ _step40;
1270
1316
  try {
1271
- for (_iterator39.s(); !(_step39 = _iterator39.n()).done;) {
1272
- var amendement = _step39.value;
1317
+ for (_iterator40.s(); !(_step40 = _iterator40.n()).done;) {
1318
+ var amendement = _step40.value;
1273
1319
  if (amendementByUid[amendement.uid] === undefined) {
1274
1320
  amendementByUid[amendement.uid] = amendement;
1275
1321
  }
1276
1322
  }
1277
1323
  } catch (err) {
1278
- _iterator39.e(err);
1324
+ _iterator40.e(err);
1279
1325
  } finally {
1280
- _iterator39.f();
1326
+ _iterator40.f();
1281
1327
  }
1282
1328
  }
1283
1329
  } catch (err) {
1284
- _iterator38.e(err);
1330
+ _iterator39.e(err);
1285
1331
  } finally {
1286
- _iterator38.f();
1332
+ _iterator39.f();
1287
1333
  }
1288
1334
  }
1289
1335
  } catch (err) {
1290
- _iterator37.e(err);
1336
+ _iterator38.e(err);
1291
1337
  } finally {
1292
- _iterator37.f();
1338
+ _iterator38.f();
1293
1339
  }
1294
1340
  }
1295
1341
  var documentByUid = {};
@@ -1297,11 +1343,11 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1297
1343
  var dossierParlementaireByTitreChemin = {};
1298
1344
  var dossierParlementaireByUid = {};
1299
1345
  if (enabledDatasets & _datasets.EnabledDatasets.DossiersLegislatifs) {
1300
- var _iterator40 = _createForOfIteratorHelper(_datasets.datasets.dossiersLegislatifs),
1301
- _step40;
1346
+ var _iterator41 = _createForOfIteratorHelper(_datasets.datasets.dossiersLegislatifs),
1347
+ _step41;
1302
1348
  try {
1303
- for (_iterator40.s(); !(_step40 = _iterator40.n()).done;) {
1304
- var _dataset9 = _step40.value;
1349
+ for (_iterator41.s(); !(_step41 = _iterator41.n()).done;) {
1350
+ var _dataset9 = _step41.value;
1305
1351
  if (_dataset9.ignoreForWeb) {
1306
1352
  continue;
1307
1353
  }
@@ -1316,25 +1362,25 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1316
1362
  encoding: "utf8"
1317
1363
  });
1318
1364
  var dossiersLegislatifs = _dossiers_legislatifs.Convert.toDossiersLegislatifs(_json6);
1319
- var _iterator41 = _createForOfIteratorHelper(dossiersLegislatifs.textesLegislatifs),
1320
- _step41;
1365
+ var _iterator42 = _createForOfIteratorHelper(dossiersLegislatifs.textesLegislatifs),
1366
+ _step42;
1321
1367
  try {
1322
- for (_iterator41.s(); !(_step41 = _iterator41.n()).done;) {
1323
- var document = _step41.value;
1368
+ for (_iterator42.s(); !(_step42 = _iterator42.n()).done;) {
1369
+ var document = _step42.value;
1324
1370
  if (documentByUid[document.uid] === undefined) {
1325
1371
  documentByUid[document.uid] = document;
1326
1372
  }
1327
1373
  }
1328
1374
  } catch (err) {
1329
- _iterator41.e(err);
1375
+ _iterator42.e(err);
1330
1376
  } finally {
1331
- _iterator41.f();
1377
+ _iterator42.f();
1332
1378
  }
1333
- var _iterator42 = _createForOfIteratorHelper(dossiersLegislatifs.dossiersParlementaires),
1334
- _step42;
1379
+ var _iterator43 = _createForOfIteratorHelper(dossiersLegislatifs.dossiersParlementaires),
1380
+ _step43;
1335
1381
  try {
1336
- for (_iterator42.s(); !(_step42 = _iterator42.n()).done;) {
1337
- var dossier = _step42.value;
1382
+ for (_iterator43.s(); !(_step43 = _iterator43.n()).done;) {
1383
+ var dossier = _step43.value;
1338
1384
  var titreDossier = dossier.titreDossier;
1339
1385
  if (titreDossier.senatChemin && dossierParlementaireBySenatChemin[titreDossier.senatChemin] === undefined) {
1340
1386
  dossierParlementaireBySenatChemin[titreDossier.senatChemin] = dossier;
@@ -1347,15 +1393,15 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1347
1393
  }
1348
1394
  }
1349
1395
  } catch (err) {
1350
- _iterator42.e(err);
1396
+ _iterator43.e(err);
1351
1397
  } finally {
1352
- _iterator42.f();
1398
+ _iterator43.f();
1353
1399
  }
1354
1400
  }
1355
1401
  } catch (err) {
1356
- _iterator40.e(err);
1402
+ _iterator41.e(err);
1357
1403
  } finally {
1358
- _iterator40.f();
1404
+ _iterator41.f();
1359
1405
  }
1360
1406
  }
1361
1407
  var photoByUid = {};
@@ -1364,7 +1410,7 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1364
1410
  {
1365
1411
  var _jsonFilePath5 = _path["default"].join(dataDir, "photos_deputes_".concat(
1366
1412
  // TODO: Handle Legislature.All.
1367
- legislature === _legislatures.Legislature.All ? _legislatures.Legislature.Seize : legislature), "deputes.json");
1413
+ legislature === _legislatures.Legislature.All ? _legislatures.Legislature.DixSept : legislature), "deputes.json");
1368
1414
  if (_fsExtra["default"].existsSync(_jsonFilePath5)) {
1369
1415
  if (log) {
1370
1416
  console.log("Loading file: ".concat(_jsonFilePath5));
@@ -1394,11 +1440,11 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1394
1440
  }
1395
1441
  var scrutinByUid = {};
1396
1442
  if (enabledDatasets & _datasets.EnabledDatasets.Scrutins) {
1397
- var _iterator43 = _createForOfIteratorHelper(_datasets.datasets.scrutins),
1398
- _step43;
1443
+ var _iterator44 = _createForOfIteratorHelper(_datasets.datasets.scrutins),
1444
+ _step44;
1399
1445
  try {
1400
- for (_iterator43.s(); !(_step43 = _iterator43.n()).done;) {
1401
- var _dataset10 = _step43.value;
1446
+ for (_iterator44.s(); !(_step44 = _iterator44.n()).done;) {
1447
+ var _dataset10 = _step44.value;
1402
1448
  if (_dataset10.ignoreForWeb) {
1403
1449
  continue;
1404
1450
  }
@@ -1413,34 +1459,34 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1413
1459
  encoding: "utf8"
1414
1460
  });
1415
1461
  var scrutins = _scrutins.Convert.toScrutins(_json9);
1416
- var _iterator44 = _createForOfIteratorHelper(scrutins.scrutins),
1417
- _step44;
1462
+ var _iterator45 = _createForOfIteratorHelper(scrutins.scrutins),
1463
+ _step45;
1418
1464
  try {
1419
- for (_iterator44.s(); !(_step44 = _iterator44.n()).done;) {
1420
- var scrutin = _step44.value;
1465
+ for (_iterator45.s(); !(_step45 = _iterator45.n()).done;) {
1466
+ var scrutin = _step45.value;
1421
1467
  if (scrutinByUid[scrutin.uid] === undefined) {
1422
1468
  scrutinByUid[scrutin.uid] = scrutin;
1423
1469
  }
1424
1470
  }
1425
1471
  } catch (err) {
1426
- _iterator44.e(err);
1472
+ _iterator45.e(err);
1427
1473
  } finally {
1428
- _iterator44.f();
1474
+ _iterator45.f();
1429
1475
  }
1430
1476
  }
1431
1477
  } catch (err) {
1432
- _iterator43.e(err);
1478
+ _iterator44.e(err);
1433
1479
  } finally {
1434
- _iterator43.f();
1480
+ _iterator44.f();
1435
1481
  }
1436
1482
  }
1437
1483
  var questionByUid = {};
1438
1484
  if (enabledDatasets & _datasets.EnabledDatasets.Questions) {
1439
- var _iterator45 = _createForOfIteratorHelper(_datasets.datasets.questions),
1440
- _step45;
1485
+ var _iterator46 = _createForOfIteratorHelper(_datasets.datasets.questions),
1486
+ _step46;
1441
1487
  try {
1442
- for (_iterator45.s(); !(_step45 = _iterator45.n()).done;) {
1443
- var _dataset11 = _step45.value;
1488
+ for (_iterator46.s(); !(_step46 = _iterator46.n()).done;) {
1489
+ var _dataset11 = _step46.value;
1444
1490
  if (_dataset11.ignoreForWeb) {
1445
1491
  continue;
1446
1492
  }
@@ -1455,34 +1501,34 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1455
1501
  encoding: "utf8"
1456
1502
  });
1457
1503
  var questions = _questions.Convert.toQuestions(_json10);
1458
- var _iterator46 = _createForOfIteratorHelper(questions.questions),
1459
- _step46;
1504
+ var _iterator47 = _createForOfIteratorHelper(questions.questions),
1505
+ _step47;
1460
1506
  try {
1461
- for (_iterator46.s(); !(_step46 = _iterator46.n()).done;) {
1462
- var question = _step46.value;
1507
+ for (_iterator47.s(); !(_step47 = _iterator47.n()).done;) {
1508
+ var question = _step47.value;
1463
1509
  if (questionByUid[question.uid] === undefined) {
1464
1510
  questionByUid[question.uid] = question;
1465
1511
  }
1466
1512
  }
1467
1513
  } catch (err) {
1468
- _iterator46.e(err);
1514
+ _iterator47.e(err);
1469
1515
  } finally {
1470
- _iterator46.f();
1516
+ _iterator47.f();
1471
1517
  }
1472
1518
  }
1473
1519
  } catch (err) {
1474
- _iterator45.e(err);
1520
+ _iterator46.e(err);
1475
1521
  } finally {
1476
- _iterator45.f();
1522
+ _iterator46.f();
1477
1523
  }
1478
1524
  }
1479
1525
  var compteRenduByUid = {};
1480
1526
  if (enabledDatasets & _datasets.EnabledDatasets.ComptesRendusSeances) {
1481
- var _iterator47 = _createForOfIteratorHelper(_datasets.datasets.comptesRendusSeances),
1482
- _step47;
1527
+ var _iterator48 = _createForOfIteratorHelper(_datasets.datasets.comptesRendusSeances),
1528
+ _step48;
1483
1529
  try {
1484
- for (_iterator47.s(); !(_step47 = _iterator47.n()).done;) {
1485
- var _dataset12 = _step47.value;
1530
+ for (_iterator48.s(); !(_step48 = _iterator48.n()).done;) {
1531
+ var _dataset12 = _step48.value;
1486
1532
  if (_dataset12.ignoreForWeb) {
1487
1533
  continue;
1488
1534
  }
@@ -1497,25 +1543,25 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1497
1543
  encoding: "utf8"
1498
1544
  });
1499
1545
  var comptesRendus = _debats.Convert.toComptesRendus(_json11);
1500
- var _iterator48 = _createForOfIteratorHelper(comptesRendus.comptesRendus),
1501
- _step48;
1546
+ var _iterator49 = _createForOfIteratorHelper(comptesRendus.comptesRendus),
1547
+ _step49;
1502
1548
  try {
1503
- for (_iterator48.s(); !(_step48 = _iterator48.n()).done;) {
1504
- var compteRendu = _step48.value;
1549
+ for (_iterator49.s(); !(_step49 = _iterator49.n()).done;) {
1550
+ var compteRendu = _step49.value;
1505
1551
  if (compteRenduByUid[compteRendu.uid] === undefined) {
1506
1552
  compteRenduByUid[compteRendu.uid] = compteRendu;
1507
1553
  }
1508
1554
  }
1509
1555
  } catch (err) {
1510
- _iterator48.e(err);
1556
+ _iterator49.e(err);
1511
1557
  } finally {
1512
- _iterator48.f();
1558
+ _iterator49.f();
1513
1559
  }
1514
1560
  }
1515
1561
  } catch (err) {
1516
- _iterator47.e(err);
1562
+ _iterator48.e(err);
1517
1563
  } finally {
1518
- _iterator47.f();
1564
+ _iterator48.f();
1519
1565
  }
1520
1566
  }
1521
1567
  return {
@@ -1551,19 +1597,19 @@ function loadAssembleeDocumentFile(dataDir, uid, formats) {
1551
1597
  return undefined;
1552
1598
  }
1553
1599
  var index = _fsExtra["default"].readJsonSync(indexPath);
1554
- var _iterator49 = _createForOfIteratorHelper(formats),
1555
- _step49;
1600
+ var _iterator50 = _createForOfIteratorHelper(formats),
1601
+ _step50;
1556
1602
  try {
1557
- for (_iterator49.s(); !(_step49 = _iterator49.n()).done;) {
1603
+ for (_iterator50.s(); !(_step50 = _iterator50.n()).done;) {
1558
1604
  var _index$format;
1559
- var format = _step49.value;
1560
- var _iterator50 = _createForOfIteratorHelper((_index$format = index[format]) !== null && _index$format !== void 0 ? _index$format : []),
1561
- _step50;
1605
+ var format = _step50.value;
1606
+ var _iterator51 = _createForOfIteratorHelper((_index$format = index[format]) !== null && _index$format !== void 0 ? _index$format : []),
1607
+ _step51;
1562
1608
  try {
1563
- for (_iterator50.s(); !(_step50 = _iterator50.n()).done;) {
1564
- var _step50$value = _step50.value,
1565
- filename = _step50$value.filename,
1566
- url = _step50$value.url;
1609
+ for (_iterator51.s(); !(_step51 = _iterator51.n()).done;) {
1610
+ var _step51$value = _step51.value,
1611
+ filename = _step51$value.filename,
1612
+ url = _step51$value.url;
1567
1613
  if (filename === undefined) {
1568
1614
  continue;
1569
1615
  }
@@ -1574,15 +1620,15 @@ function loadAssembleeDocumentFile(dataDir, uid, formats) {
1574
1620
  };
1575
1621
  }
1576
1622
  } catch (err) {
1577
- _iterator50.e(err);
1623
+ _iterator51.e(err);
1578
1624
  } finally {
1579
- _iterator50.f();
1625
+ _iterator51.f();
1580
1626
  }
1581
1627
  }
1582
1628
  } catch (err) {
1583
- _iterator49.e(err);
1629
+ _iterator50.e(err);
1584
1630
  } finally {
1585
- _iterator49.f();
1631
+ _iterator50.f();
1586
1632
  }
1587
1633
  return undefined;
1588
1634
  }
@@ -1592,7 +1638,7 @@ function loadAssembleePhotosDeputes(dataDir, legislature) {
1592
1638
  log = _ref4$log === void 0 ? false : _ref4$log;
1593
1639
  var jsonFilePath = _path["default"].join(dataDir, "photos_deputes_".concat(
1594
1640
  // TODO: Handle Legislature.All.
1595
- legislature === _legislatures.Legislature.All ? _legislatures.Legislature.Seize : legislature), "deputes.json");
1641
+ legislature === _legislatures.Legislature.All ? _legislatures.Legislature.DixSept : legislature), "deputes.json");
1596
1642
  if (log) {
1597
1643
  console.log("Loading file: ".concat(jsonFilePath));
1598
1644
  }
@@ -1684,4 +1730,4 @@ function pathFromUid(dataDir, uid, dataRegexp) {
1684
1730
  _fsExtra["default"].ensureDirSync(numeroMilliersDir);
1685
1731
  return _path["default"].join(numeroMilliersDir, uid);
1686
1732
  }
1687
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX2RhdGFzZXRzIiwiX2ZpbGVfc3lzdGVtcyIsIl9hY3RldXJzX2V0X29yZ2FuZXMiLCJfYWdlbmRhcyIsIl9hbWVuZGVtZW50cyIsIl9kb3NzaWVyc19sZWdpc2xhdGlmcyIsIl9sZWdpc2xhdHVyZXMiLCJfc2NydXRpbnMiLCJfcXVlc3Rpb25zIiwiX2RlYmF0cyIsImUiLCJfX2VzTW9kdWxlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX24iLCJGIiwidG9TdHJpbmciLCJ0ZXN0IiwiX3dyYXBSZWdFeHAiLCJCYWJlbFJlZ0V4cCIsIlJlZ0V4cCIsIldlYWtNYXAiLCJzZXQiLCJnZXQiLCJfc2V0UHJvdG90eXBlT2YiLCJidWlsZEdyb3VwcyIsInJlZHVjZSIsIl9pbmhlcml0cyIsImV4ZWMiLCJncm91cHMiLCJpbmRpY2VzIiwicmVwbGFjZSIsImpvaW4iLCJhcmd1bWVudHMiLCJhcHBseSIsImJpbmQiLCJkb2N1bWVudFVpZFJlZ2V4IiwiZG9jdW1lbnRUeXBlIiwiY2hhbWJyZSIsInJlcHVibGlxdWUiLCJsZWdpc2xhdHVyZSIsImV0YXQiLCJudW1lcm8iLCJkb2N1bWVudFR5cGUyIiwiY2hhbWJyZTIiLCJyZXB1YmxpcXVlMiIsImxlZ2lzbGF0dXJlMiIsIm51bWVybzIiLCJkb3NzaWVyVWlkUmVnZXgiLCJyZXVuaW9uVWlkUmVnZXgiLCJzY3J1dGluVWlkUmVnZXgiLCJjb21wdGVSZW5kdVVpZFJlZ2V4IiwicXVlc3Rpb25VaWRSZWdleCIsIml0ZXJMb2FkQXNzZW1ibGVlSXRlbXMiLCJkYXRhRGlyIiwiZGF0YXNldHMiLCJjb252ZXJ0VG9JdGVtIiwic3ViZm9sZGVyTmFtZSIsImZpbGVFeHRlbnNpb24iLCJ1bmRlZmluZWQiLCJfcmVmIiwiX3JlZiRub1ZhbGlkYXRpb24iLCJub1ZhbGlkYXRpb24iLCJfcmVmJGxvZyIsImxvZyIsIl9jYWxsZWUiLCJpdGVtVWlkIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJkYXRhc2V0IiwiZmlsZUV4dGVuc2lvblJlZ2V4IiwiZGF0YXNldERpciIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJpdGVtU3BsaXRQYXRoIiwiaXRlbUZpbGVuYW1lIiwiaXRlbUZpbGVQYXRoIiwiaXRlbUpzb24iLCJpdGVtIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsIlNldCIsImlnbm9yZUZvcldlYiIsIkxlZ2lzbGF0dXJlIiwiQWxsIiwiY29uY2F0IiwicGF0aCIsImZpbGVuYW1lIiwid2Fsa0RpciIsImVuZHNXaXRoIiwiY29uc29sZSIsImZzIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJKU09OIiwicGFyc2UiLCJoYXMiLCJ1aWQiLCJhZGQiLCJkYXRhc2V0TGVnaXNsYXR1cmUiLCJ0MCIsInQxIiwiaXRlckxvYWRBc3NlbWJsZWVBY3RldXJzIiwib3B0aW9ucyIsIl9jYWxsZWUyIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsIl9zdGVwMyR2YWx1ZSIsImFjdGV1ciIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsImFjdGV1cnNFdE9yZ2FuZXMiLCJBY3RldXJzRXRPcmdhbmVzQ29udmVydCIsInRvQWN0ZXVyIiwiaXRlckxvYWRBc3NlbWJsZWVPcmdhbmVzIiwiX2NhbGxlZTMiLCJfaXRlcmF0b3I0IiwiX3N0ZXA0IiwiX3N0ZXA0JHZhbHVlIiwib3JnYW5lIiwiX2NhbGxlZTMkIiwiX2NvbnRleHQzIiwidG9PcmdhbmUiLCJpdGVyTG9hZEFzc2VtYmxlZUFtZW5kZW1lbnRzIiwiX2NhbGxlZTQiLCJfaXRlcmF0b3I1IiwiX3N0ZXA1IiwiX3N0ZXA1JHZhbHVlIiwiYW1lbmRlbWVudCIsIl9jYWxsZWU0JCIsIl9jb250ZXh0NCIsImFtZW5kZW1lbnRzIiwiQW1lbmRlbWVudHNDb252ZXJ0IiwidG9BbWVuZGVtZW50IiwiaXRlckxvYWRBc3NlbWJsZWVEb2N1bWVudHMiLCJfY2FsbGVlNSIsIl9pdGVyYXRvcjYiLCJfc3RlcDYiLCJfc3RlcDYkdmFsdWUiLCJkb2N1bWVudCIsIl9jYWxsZWU1JCIsIl9jb250ZXh0NSIsImRvc3NpZXJzTGVnaXNsYXRpZnMiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydCIsInRvRG9jdW1lbnQiLCJpdGVyTG9hZEFzc2VtYmxlZURvc3NpZXJzUGFybGVtZW50YWlyZXMiLCJfY2FsbGVlNiIsIl9pdGVyYXRvcjciLCJfc3RlcDciLCJfc3RlcDckdmFsdWUiLCJkb3NzaWVyUGFybGVtZW50YWlyZSIsIl9jYWxsZWU2JCIsIl9jb250ZXh0NiIsInRvRG9zc2llclBhcmxlbWVudGFpcmUiLCJpdGVyTG9hZEFzc2VtYmxlZVJldW5pb25zIiwiX2NhbGxlZTciLCJfaXRlcmF0b3I4IiwiX3N0ZXA4IiwiX3N0ZXA4JHZhbHVlIiwicmV1bmlvbiIsIl9jYWxsZWU3JCIsIl9jb250ZXh0NyIsImFnZW5kYXMiLCJBZ2VuZGFzQ29udmVydCIsInRvUmV1bmlvbiIsIml0ZXJMb2FkQXNzZW1ibGVlU2NydXRpbnMiLCJfY2FsbGVlOCIsIl9pdGVyYXRvcjkiLCJfc3RlcDkiLCJfc3RlcDkkdmFsdWUiLCJzY3J1dGluIiwiX2NhbGxlZTgkIiwiX2NvbnRleHQ4Iiwic2NydXRpbnMiLCJTY3J1dGluc0NvbnZlcnQiLCJ0b1NjcnV0aW4iLCJpdGVyTG9hZEFzc2VtYmxlZVF1ZXN0aW9ucyIsIl9jYWxsZWU5IiwiX2l0ZXJhdG9yMTAiLCJfc3RlcDEwIiwiX3N0ZXAxMCR2YWx1ZSIsInF1ZXN0aW9uIiwiX2NhbGxlZTkkIiwiX2NvbnRleHQ5IiwicXVlc3Rpb25zIiwiUXVlc3Rpb25zQ29udmVydCIsInRvUXVlc3Rpb24iLCJpdGVyTG9hZEFzc2VtYmxlZUNvbXB0ZXNSZW5kdXMiLCJfY2FsbGVlMTAiLCJfaXRlcmF0b3IxMSIsIl9zdGVwMTEiLCJfc3RlcDExJHZhbHVlIiwiY29tcHRlUmVuZHUiLCJfY2FsbGVlMTAkIiwiX2NvbnRleHQxMCIsImNvbXB0ZXNSZW5kdXNTZWFuY2VzIiwiQ29tcHRlc1JlbmR1c0NvbnZlcnQiLCJ0b0NvbXB0ZVJlbmR1IiwibG9hZEFzc2VtYmxlZURhdGEiLCJlbmFibGVkRGF0YXNldHMiLCJfcmVmMiIsIl9yZWYyJGxvZyIsImFjdGV1ckJ5VWlkIiwib3JnYW5lQnlVaWQiLCJFbmFibGVkRGF0YXNldHMiLCJBY3RldXJzRXRPcmdhbmVzIiwiX2l0ZXJhdG9yMTIiLCJfc3RlcDEyIiwiX2l0ZXJhdG9yMTMiLCJfc3RlcDEzIiwiYWN0ZXVyU3BsaXRQYXRoIiwiYWN0ZXVyRmlsZW5hbWUiLCJhY3RldXJGaWxlUGF0aCIsImFjdGV1ckpzb24iLCJlcnIiLCJfaXRlcmF0b3IxNCIsIl9zdGVwMTQiLCJvcmdhbmVTcGxpdFBhdGgiLCJvcmdhbmVGaWxlbmFtZSIsIm9yZ2FuZUZpbGVQYXRoIiwib3JnYW5lSnNvbiIsInJldW5pb25CeVVpZCIsInJldW5pb25zQnlEYXkiLCJyZXVuaW9uc0J5RG9zc2llclVpZCIsIkFnZW5kYXMiLCJfaXRlcmF0b3IxNSIsIl9zdGVwMTUiLCJfaXRlcmF0b3IxNiIsIl9zdGVwMTYiLCJyZXVuaW9uU3BsaXRQYXRoIiwicmV1bmlvbkZpbGVuYW1lIiwicmV1bmlvbkZpbGVQYXRoIiwicmV1bmlvbkpzb24iLCJkYXkiLCJ0aW1lc3RhbXBEZWJ1dCIsInRvSVNPU3RyaW5nIiwic3BsaXQiLCJyZXVuaW9uc0F0RGF5Iiwib2RqIiwiX2l0ZXJhdG9yMTciLCJwb2ludHNPZGoiLCJfc3RlcDE3IiwicG9pbnRPZGoiLCJfaXRlcmF0b3IxOCIsImRvc3NpZXJzTGVnaXNsYXRpZnNSZWZzIiwiX3N0ZXAxOCIsImRvc3NpZXJMZWdpc2xhdGlmUmVmIiwicmV1bmlvbnNBdERvc3NpZXJVaWQiLCJhbWVuZGVtZW50QnlVaWQiLCJBbWVuZGVtZW50cyIsIl9pdGVyYXRvcjE5IiwiX3N0ZXAxOSIsIl9pdGVyYXRvcjIwIiwiX3N0ZXAyMCIsImFtZW5kZW1lbnRTcGxpdFBhdGgiLCJhbWVuZGVtZW50RmlsZW5hbWUiLCJhbWVuZGVtZW50RmlsZVBhdGgiLCJhbWVuZGVtZW50SnNvbiIsImRvY3VtZW50QnlVaWQiLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW4iLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW4iLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkIiwiRG9zc2llcnNMZWdpc2xhdGlmcyIsIl9pdGVyYXRvcjIxIiwiX3N0ZXAyMSIsIl9pdGVyYXRvcjIyIiwiX3N0ZXAyMiIsImRvY3VtZW50U3BsaXRQYXRoIiwiZG9jdW1lbnRGaWxlbmFtZSIsImRvY3VtZW50RmlsZVBhdGgiLCJkb2N1bWVudEpzb24iLCJfaXRlcmF0b3IyMyIsIl9zdGVwMjMiLCJkb3NzaWVyU3BsaXRQYXRoIiwiZG9zc2llckZpbGVuYW1lIiwiZG9zc2llckZpbGVQYXRoIiwiZG9zc2llckpzb24iLCJkb3NzaWVyIiwidGl0cmVEb3NzaWVyIiwic2VuYXRDaGVtaW4iLCJ0aXRyZUNoZW1pbiIsInBob3RvQnlVaWQiLCJQaG90b3MiLCJqc29uRmlsZVBhdGgiLCJTZWl6ZSIsImV4aXN0c1N5bmMiLCJqc29uIiwiYXNzaWduIiwic2NydXRpbkJ5VWlkIiwiU2NydXRpbnMiLCJfaXRlcmF0b3IyNCIsIl9zdGVwMjQiLCJfaXRlcmF0b3IyNSIsIl9zdGVwMjUiLCJzY3J1dGluU3BsaXRQYXRoIiwic2NydXRpbkZpbGVuYW1lIiwic2NydXRpbkZpbGVQYXRoIiwic2NydXRpbkpzb24iLCJxdWVzdGlvbkJ5VWlkIiwiUXVlc3Rpb25zIiwiX2l0ZXJhdG9yMjYiLCJfc3RlcDI2IiwiX2l0ZXJhdG9yMjciLCJfc3RlcDI3IiwicXVlc3Rpb25TcGxpdFBhdGgiLCJxdWVzdGlvbkZpbGVuYW1lIiwicXVlc3Rpb25GaWxlUGF0aCIsInF1ZXN0aW9uSnNvbiIsImNvbXB0ZVJlbmR1QnlVaWQiLCJDb21wdGVzUmVuZHVzU2VhbmNlcyIsIl9pdGVyYXRvcjI4IiwiX3N0ZXAyOCIsIl9pdGVyYXRvcjI5IiwiX3N0ZXAyOSIsImNvbXB0ZVJlbmR1UGF0aCIsImNvbXB0ZVJlbmR1RmlsZW5hbWUiLCJjb21wdGVSZW5kdUZpbGVQYXRoIiwiY29tcHRlUmVuZHVKc29uIiwibG9hZEFzc2VtYmxlZURhdGFGcm9tQmlnRmlsZXMiLCJfcmVmMyIsIl9yZWYzJGxvZyIsIl9pdGVyYXRvcjMwIiwiX3N0ZXAzMCIsInRvQWN0ZXVyc0V0T3JnYW5lcyIsIl9pdGVyYXRvcjMxIiwiYWN0ZXVycyIsIl9zdGVwMzEiLCJfaXRlcmF0b3IzMiIsIm9yZ2FuZXMiLCJfc3RlcDMyIiwiX2l0ZXJhdG9yMzMiLCJfc3RlcDMzIiwidG9BZ2VuZGFzIiwiX2l0ZXJhdG9yMzQiLCJyZXVuaW9ucyIsIl9zdGVwMzQiLCJfaXRlcmF0b3IzNSIsIl9zdGVwMzUiLCJfaXRlcmF0b3IzNiIsIl9zdGVwMzYiLCJfaXRlcmF0b3IzNyIsIl9zdGVwMzciLCJ0b0FtZW5kZW1lbnRzIiwiX2l0ZXJhdG9yMzgiLCJ0ZXh0ZXNMZWdpc2xhdGlmcyIsIl9zdGVwMzgiLCJ0ZXh0ZUxlZ2lzbGF0aWYiLCJfaXRlcmF0b3IzOSIsIl9zdGVwMzkiLCJfaXRlcmF0b3I0MCIsIl9zdGVwNDAiLCJ0b0Rvc3NpZXJzTGVnaXNsYXRpZnMiLCJfaXRlcmF0b3I0MSIsIl9zdGVwNDEiLCJfaXRlcmF0b3I0MiIsImRvc3NpZXJzUGFybGVtZW50YWlyZXMiLCJfc3RlcDQyIiwiX2l0ZXJhdG9yNDMiLCJfc3RlcDQzIiwidG9TY3J1dGlucyIsIl9pdGVyYXRvcjQ0IiwiX3N0ZXA0NCIsIl9pdGVyYXRvcjQ1IiwiX3N0ZXA0NSIsInRvUXVlc3Rpb25zIiwiX2l0ZXJhdG9yNDYiLCJfc3RlcDQ2IiwiX2l0ZXJhdG9yNDciLCJfc3RlcDQ3IiwiY29tcHRlc1JlbmR1cyIsInRvQ29tcHRlc1JlbmR1cyIsIl9pdGVyYXRvcjQ4IiwiX3N0ZXA0OCIsImxvYWRBc3NlbWJsZWVEb2N1bWVudEZpbGUiLCJmb3JtYXRzIiwiZG9jdW1lbnRzRGlyIiwiZG9jdW1lbnREaXIiLCJwYXRoRnJvbURvY3VtZW50VWlkIiwiaW5kZXhQYXRoIiwicGF0aEV4aXN0c1N5bmMiLCJpbmRleCIsInJlYWRKc29uU3luYyIsIl9pdGVyYXRvcjQ5IiwiX3N0ZXA0OSIsIl9pbmRleCRmb3JtYXQiLCJmb3JtYXQiLCJfaXRlcmF0b3I1MCIsIl9zdGVwNTAiLCJfc3RlcDUwJHZhbHVlIiwidXJsIiwibG9hZEFzc2VtYmxlZVBob3Rvc0RlcHV0ZXMiLCJfcmVmNCIsIl9yZWY0JGxvZyIsImxvYWRBc3NlbWJsZWVQaG90b3NTZW5hdGV1cnMiLCJfcmVmNSIsIl9yZWY1JGxvZyIsIl9ncm91cHMkZG9jdW1lbnRUeXBlIiwiX2dyb3VwcyRjaGFtYnJlIiwiX2dyb3VwcyRyZXB1YmxpcXVlIiwiX2dyb3VwcyRsZWdpc2xhdHVyZSIsIl9ncm91cHMkbnVtZXJvIiwibWF0Y2giLCJhc3NlcnQiLCJub3RTdHJpY3RFcXVhbCIsImNoYW1icmVEaXIiLCJyZXB1YmxpcXVlRGlyIiwibGVnaXNsYXR1cmVEaXIiLCJlbnN1cmVEaXJTeW5jIiwiZXRhdERpciIsInN1YnN0cmluZyIsIm51bWVyb01pbGxpZXJzRGlyIiwicGF0aEZyb21Eb3NzaWVyUGFybGVtZW50YWlyZVVpZCIsImRvc3NpZXJzRGlyIiwicGF0aEZyb21VaWQiLCJwYXRoRnJvbVJldW5pb25VaWQiLCJyZXVuaW9uc0RpciIsInNlc3Npb25EaXIiLCJpZERpciIsIm51bWVyb01pbGxpb25zRGlyIiwicGF0aEZyb21TY3J1dGluVWlkIiwic2NydXRpbnNEaXIiLCJwYXRoRnJvbVF1ZXN0aW9uVWlkIiwicGF0aEZyb21Db21wdGVSZW5kdVVpZCIsImRhdGFSZWdleHAiXSwic291cmNlcyI6WyIuLi9zcmMvbG9hZGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gTG9hZCBkYXRhIGZyb20gZmlsZXNcblxuaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5leHBvcnQgeyBFbmFibGVkRGF0YXNldHMgfSBmcm9tIFwiLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBkYXRhc2V0cywgRW5hYmxlZERhdGFzZXRzLCBEYXRhc2V0IH0gZnJvbSBcIi4vZGF0YXNldHNcIlxuaW1wb3J0IHR5cGUgeyBEb2N1bWVudEZpbGVzSW5kZXggfSBmcm9tIFwiLi9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5leHBvcnQgeyB3YWxrRGlyIH0gZnJvbSBcIi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi9maWxlX3N5c3RlbXNcIlxuaW1wb3J0IHtcbiAgQWN0ZXVyLFxuICBDb252ZXJ0IGFzIEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LFxuICBPcmdhbmUsXG4gIFBob3RvLFxufSBmcm9tIFwiLi90eXBlcy9hY3RldXJzX2V0X29yZ2FuZXNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBBZ2VuZGFzQ29udmVydCwgUmV1bmlvbiB9IGZyb20gXCIuL3R5cGVzL2FnZW5kYXNcIlxuaW1wb3J0IHsgQW1lbmRlbWVudCwgQ29udmVydCBhcyBBbWVuZGVtZW50c0NvbnZlcnQgfSBmcm9tIFwiLi90eXBlcy9hbWVuZGVtZW50c1wiXG5pbXBvcnQge1xuICBDb252ZXJ0IGFzIERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LFxuICBEb2N1bWVudCxcbiAgRG9zc2llclBhcmxlbWVudGFpcmUsXG59IGZyb20gXCIuL3R5cGVzL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4vdHlwZXMvbGVnaXNsYXR1cmVzXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgU2NydXRpbnNDb252ZXJ0LCBTY3J1dGluIH0gZnJvbSBcIi4vdHlwZXMvc2NydXRpbnNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBRdWVzdGlvbnNDb252ZXJ0LCBRdWVzdGlvbiB9IGZyb20gXCIuL3R5cGVzL3F1ZXN0aW9uc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIENvbXB0ZXNSZW5kdXNDb252ZXJ0LCBDb21wdGVSZW5kdSB9IGZyb20gXCIuL3R5cGVzL2RlYmF0c1wiXG5pbXBvcnQgeyBEb2N1bWVudFVybEZvcm1hdCB9IGZyb20gXCIuL3VybHNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGEge1xuICByZWFkb25seSBhY3RldXJCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBY3RldXIgfVxuICByZWFkb25seSBhbWVuZGVtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQW1lbmRlbWVudCB9XG4gIHJlYWRvbmx5IGRvY3VtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogRG9jdW1lbnQgfVxuICByZWFkb25seSBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW46IHtcbiAgICBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICB9XG4gIHJlYWRvbmx5IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH1cbiAgcmVhZG9ubHkgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZSB9XG4gIHJlYWRvbmx5IG9yZ2FuZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IE9yZ2FuZSB9XG4gIHJlYWRvbmx5IHBob3RvQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfVxuICByZWFkb25seSByZXVuaW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUmV1bmlvbiB9XG4gIHJlYWRvbmx5IHJldW5pb25zQnlEYXk6IHsgW2RheTogc3RyaW5nXTogUmV1bmlvbltdIH1cbiAgcmVhZG9ubHkgcmV1bmlvbnNCeURvc3NpZXJVaWQ6IHsgW2Rvc3NpZXJVaWQ6IHN0cmluZ106IFJldW5pb25bXSB9XG4gIHJlYWRvbmx5IHNjcnV0aW5CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBTY3J1dGluIH1cbiAgcmVhZG9ubHkgcXVlc3Rpb25CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBRdWVzdGlvbiB9XG4gIHJlYWRvbmx5IGNvbXB0ZVJlbmR1QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQ29tcHRlUmVuZHUgfVxufVxuXG5jb25zdCBkb2N1bWVudFVpZFJlZ2V4ID1cbiAgL14oKD88ZG9jdW1lbnRUeXBlPkFDSU58QUxDTnxBVkNFfEFWSVN8REVDTHxFVERJfExFVFR8TUVTU3xNSU9OfFBJT058UE5SRXxQUkpMfFJBUFB8UklORnxSSU9OKSg/PGNoYW1icmU+QU58Q0d8U04pKD88cmVwdWJsaXF1ZT5SXFxkKylbTFNdKD88bGVnaXNsYXR1cmU+XFxkKykoPzxldGF0PkJ8QlRBfEJUQ3xUQVApKD88bnVtZXJvPlxcZCspKC0uKik/KXwoKD88ZG9jdW1lbnRUeXBlMj5NSU9OKSg/PGNoYW1icmUyPkFOfFNOKSg/PHJlcHVibGlxdWUyPlJcXGQrKVtMU10oPzxsZWdpc2xhdHVyZTI+XFxkKyktTig/PG51bWVybzI+XFxkKykpJC9cbmNvbnN0IGRvc3NpZXJVaWRSZWdleCA9IC9eREwoUlxcZCspKExcXGQrKU4oXFxkKykkL1xuY29uc3QgcmV1bmlvblVpZFJlZ2V4ID1cbiAgL15SVShBTnxDR3xTTikoUlxcZCspKExcXGQrKShbQVNdXFxkezR9KShJREN8SURGTD98SURTKShcXGQrKSQvXG5jb25zdCBzY3J1dGluVWlkUmVnZXggPSAvXlZUKEFOfENHKShSXFxkKykoTFxcZCspVihcXGQrKSQvXG5jb25zdCBjb21wdGVSZW5kdVVpZFJlZ2V4OiBSZWdFeHAgPVxuICAvXkNSUyhBTnxDRykoUlxcZCspKExcXGQrKShTXFxkKykoT3xFKShcXGQrKShOXFxkKykkL1xuY29uc3QgcXVlc3Rpb25VaWRSZWdleDogUmVnRXhwID0gL15RQU4oUlxcZCspKExcXGQrKVEoRXxHfE9TRCkoXFxkKykkL1xuXG50eXBlIEl0ZW1Db252ZXJ0ZXI8VD4gPSAoanNvbjogc3RyaW5nKSA9PiBUXG5cbmZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZUl0ZW1zPFQgZXh0ZW5kcyB7IHVpZDogc3RyaW5nIH0+KFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgZGF0YXNldHM6IERhdGFzZXRbXSxcbiAgY29udmVydFRvSXRlbTogSXRlbUNvbnZlcnRlcjxUPixcbiAgc3ViZm9sZGVyTmFtZTogc3RyaW5nW10sXG4gIGZpbGVFeHRlbnNpb246IHN0cmluZyA9IFwianNvblwiLFxuICB7IG5vVmFsaWRhdGlvbiA9IGZhbHNlLCBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiBHZW5lcmF0b3I8eyBpdGVtOiBUOyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sIHZvaWQsIHVua25vd24+IHtcbiAgY29uc3QgaXRlbVVpZCA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cykge1xuICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKFxuICAgICAgbGVnaXNsYXR1cmUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgbGV0IGZpbGVFeHRlbnNpb25SZWdleCA9IG5ldyBSZWdFeHAoYFxcXFwuJHtmaWxlRXh0ZW5zaW9ufSRgKVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKGZpbGVFeHRlbnNpb25SZWdleCwgXCJfbmV0dG95ZVwiKSxcbiAgICApXG5cbiAgICBmb3IgKGNvbnN0IGl0ZW1TcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBzdWJmb2xkZXJOYW1lKSkge1xuICAgICAgY29uc3QgaXRlbUZpbGVuYW1lID0gaXRlbVNwbGl0UGF0aFtpdGVtU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICBpZiAoIWl0ZW1GaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBpdGVtRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uaXRlbVNwbGl0UGF0aClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtpdGVtRmlsZVBhdGh94oCmYClcbiAgICAgIH1cblxuICAgICAgY29uc3QgaXRlbUpzb24gPSBmcy5yZWFkRmlsZVN5bmMoaXRlbUZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgbGV0IGl0ZW06IFQgPSBub1ZhbGlkYXRpb25cbiAgICAgICAgPyBKU09OLnBhcnNlKGl0ZW1Kc29uKVxuICAgICAgICA6IGNvbnZlcnRUb0l0ZW0oaXRlbUpzb24pXG5cbiAgICAgIGlmIChpdGVtVWlkLmhhcyhpdGVtLnVpZCkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGl0ZW1VaWQuYWRkKGl0ZW0udWlkKVxuICAgICAgeWllbGQgeyBpdGVtOiBpdGVtLCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlQWN0ZXVycyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIG9wdGlvbnMgPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBhY3RldXI6IEFjdGV1cjsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgZm9yIChjb25zdCB7XG4gICAgaXRlbTogYWN0ZXVyLFxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZSxcbiAgfSBvZiBpdGVyTG9hZEFzc2VtYmxlZUl0ZW1zPEFjdGV1cj4oXG4gICAgZGF0YURpcixcbiAgICBsZWdpc2xhdHVyZSxcbiAgICBkYXRhc2V0cy5hY3RldXJzRXRPcmdhbmVzLFxuICAgIEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LnRvQWN0ZXVyLFxuICAgIFtcImFjdGV1cnNcIl0sXG4gICAgXCJqc29uXCIsXG4gICAgb3B0aW9ucyxcbiAgKSkge1xuICAgIHlpZWxkIHsgYWN0ZXVyLCBkYXRhc2V0TGVnaXNsYXR1cmUgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVPcmdhbmVzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgb3B0aW9ucyA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IG9yZ2FuZTogT3JnYW5lOyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBmb3IgKGNvbnN0IHtcbiAgICBpdGVtOiBvcmdhbmUsXG4gICAgZGF0YXNldExlZ2lzbGF0dXJlLFxuICB9IG9mIGl0ZXJMb2FkQXNzZW1ibGVlSXRlbXM8T3JnYW5lPihcbiAgICBkYXRhRGlyLFxuICAgIGxlZ2lzbGF0dXJlLFxuICAgIGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXMsXG4gICAgQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQudG9PcmdhbmUsXG4gICAgW1wib3JnYW5lc1wiXSxcbiAgICBcImpzb25cIixcbiAgICBvcHRpb25zLFxuICApKSB7XG4gICAgeWllbGQgeyBvcmdhbmUsIGRhdGFzZXRMZWdpc2xhdHVyZSB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZUFtZW5kZW1lbnRzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgb3B0aW9ucyA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IGFtZW5kZW1lbnQ6IEFtZW5kZW1lbnQ7IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGZvciAoY29uc3Qge1xuICAgIGl0ZW06IGFtZW5kZW1lbnQsXG4gICAgZGF0YXNldExlZ2lzbGF0dXJlLFxuICB9IG9mIGl0ZXJMb2FkQXNzZW1ibGVlSXRlbXM8QW1lbmRlbWVudD4oXG4gICAgZGF0YURpcixcbiAgICBsZWdpc2xhdHVyZSxcbiAgICBkYXRhc2V0cy5hbWVuZGVtZW50cyxcbiAgICBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50LFxuICAgIFtdLFxuICAgIFwianNvblwiLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICB5aWVsZCB7IGFtZW5kZW1lbnQsIGRhdGFzZXRMZWdpc2xhdHVyZSB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZURvY3VtZW50cyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIG9wdGlvbnMgPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBkb2N1bWVudDogRG9jdW1lbnQ7IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGZvciAoY29uc3Qge1xuICAgIGl0ZW06IGRvY3VtZW50LFxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZSxcbiAgfSBvZiBpdGVyTG9hZEFzc2VtYmxlZUl0ZW1zPERvY3VtZW50PihcbiAgICBkYXRhRGlyLFxuICAgIGxlZ2lzbGF0dXJlLFxuICAgIGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMsXG4gICAgRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb2N1bWVudCxcbiAgICBbXCJkb2N1bWVudHNcIl0sXG4gICAgXCJqc29uXCIsXG4gICAgb3B0aW9ucyxcbiAgKSkge1xuICAgIHlpZWxkIHsgZG9jdW1lbnQsIGRhdGFzZXRMZWdpc2xhdHVyZSB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZURvc3NpZXJzUGFybGVtZW50YWlyZXMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHtcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZTogRG9zc2llclBhcmxlbWVudGFpcmVcbiAgICBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlXG4gIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBmb3IgKGNvbnN0IHtcbiAgICBpdGVtOiBkb3NzaWVyUGFybGVtZW50YWlyZSxcbiAgICBkYXRhc2V0TGVnaXNsYXR1cmUsXG4gIH0gb2YgaXRlckxvYWRBc3NlbWJsZWVJdGVtczxEb3NzaWVyUGFybGVtZW50YWlyZT4oXG4gICAgZGF0YURpcixcbiAgICBsZWdpc2xhdHVyZSxcbiAgICBkYXRhc2V0cy5kb3NzaWVyc0xlZ2lzbGF0aWZzLFxuICAgIERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LnRvRG9zc2llclBhcmxlbWVudGFpcmUsXG4gICAgW1wiZG9zc2llcnNcIl0sXG4gICAgXCJqc29uXCIsXG4gICAgb3B0aW9ucyxcbiAgKSkge1xuICAgIHlpZWxkIHsgZG9zc2llclBhcmxlbWVudGFpcmUsIGRhdGFzZXRMZWdpc2xhdHVyZSB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZVJldW5pb25zKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgb3B0aW9ucyA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IHJldW5pb246IFJldW5pb247IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGZvciAoY29uc3Qge1xuICAgIGl0ZW06IHJldW5pb24sXG4gICAgZGF0YXNldExlZ2lzbGF0dXJlLFxuICB9IG9mIGl0ZXJMb2FkQXNzZW1ibGVlSXRlbXM8UmV1bmlvbj4oXG4gICAgZGF0YURpcixcbiAgICBsZWdpc2xhdHVyZSxcbiAgICBkYXRhc2V0cy5hZ2VuZGFzLFxuICAgIEFnZW5kYXNDb252ZXJ0LnRvUmV1bmlvbixcbiAgICBbXSxcbiAgICBcImpzb25cIixcbiAgICBvcHRpb25zLFxuICApKSB7XG4gICAgeWllbGQgeyByZXVuaW9uLCBkYXRhc2V0TGVnaXNsYXR1cmUgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVTY3J1dGlucyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIG9wdGlvbnMgPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBzY3J1dGluOiBTY3J1dGluOyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBmb3IgKGNvbnN0IHtcbiAgICBpdGVtOiBzY3J1dGluLFxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZSxcbiAgfSBvZiBpdGVyTG9hZEFzc2VtYmxlZUl0ZW1zPFNjcnV0aW4+KFxuICAgIGRhdGFEaXIsXG4gICAgbGVnaXNsYXR1cmUsXG4gICAgZGF0YXNldHMuc2NydXRpbnMsXG4gICAgU2NydXRpbnNDb252ZXJ0LnRvU2NydXRpbixcbiAgICBbXSxcbiAgICBcImpzb25cIixcbiAgICBvcHRpb25zLFxuICApKSB7XG4gICAgeWllbGQgeyBzY3J1dGluLCBkYXRhc2V0TGVnaXNsYXR1cmUgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVRdWVzdGlvbnMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgcXVlc3Rpb246IFF1ZXN0aW9uOyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBmb3IgKGNvbnN0IHtcbiAgICBpdGVtOiBxdWVzdGlvbixcbiAgICBkYXRhc2V0TGVnaXNsYXR1cmUsXG4gIH0gb2YgaXRlckxvYWRBc3NlbWJsZWVJdGVtczxRdWVzdGlvbj4oXG4gICAgZGF0YURpcixcbiAgICBsZWdpc2xhdHVyZSxcbiAgICBkYXRhc2V0cy5xdWVzdGlvbnMsXG4gICAgUXVlc3Rpb25zQ29udmVydC50b1F1ZXN0aW9uLFxuICAgIFtdLFxuICAgIFwianNvblwiLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICB5aWVsZCB7IHF1ZXN0aW9uLCBkYXRhc2V0TGVnaXNsYXR1cmUgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVDb21wdGVzUmVuZHVzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgb3B0aW9ucyA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IGNvbXB0ZVJlbmR1OiBDb21wdGVSZW5kdTsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgZm9yIChjb25zdCB7XG4gICAgaXRlbTogY29tcHRlUmVuZHUsXG4gICAgZGF0YXNldExlZ2lzbGF0dXJlLFxuICB9IG9mIGl0ZXJMb2FkQXNzZW1ibGVlSXRlbXM8Q29tcHRlUmVuZHU+KFxuICAgIGRhdGFEaXIsXG4gICAgbGVnaXNsYXR1cmUsXG4gICAgZGF0YXNldHMuY29tcHRlc1JlbmR1c1NlYW5jZXMsXG4gICAgQ29tcHRlc1JlbmR1c0NvbnZlcnQudG9Db21wdGVSZW5kdSxcbiAgICBbXSxcbiAgICBcInhtbFwiLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICB5aWVsZCB7IGNvbXB0ZVJlbmR1LCBkYXRhc2V0TGVnaXNsYXR1cmUgfVxuICB9XG59XG5cbi8vLyBMb2FkIGRhdGEgZnJvbSBzcGxpdCBmaWxlcy5cbi8vLyBEZXByZWNhdGVkOiBVc2UgaXRlckxvYWQuLi4gaXRlcmF0b3JzIGluc3RlYWQuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFzc2VtYmxlZURhdGEoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgZW5hYmxlZERhdGFzZXRzOiBFbmFibGVkRGF0YXNldHMsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiBEYXRhIHtcbiAgY29uc3QgYWN0ZXVyQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQWN0ZXVyIH0gPSB7fVxuICBjb25zdCBvcmdhbmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBPcmdhbmUgfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWN0ZXVyc0V0T3JnYW5lcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3QgYWN0ZXVyU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgW1wiYWN0ZXVyc1wiXSkpIHtcbiAgICAgICAgY29uc3QgYWN0ZXVyRmlsZW5hbWUgPSBhY3RldXJTcGxpdFBhdGhbYWN0ZXVyU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghYWN0ZXVyRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWN0ZXVyRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uYWN0ZXVyU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHthY3RldXJGaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGV1ckpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhhY3RldXJGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgYWN0ZXVyID0gQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQudG9BY3RldXIoYWN0ZXVySnNvbilcbiAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJhY3RldXJcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgICAgaWYgKGFjdGV1ckJ5VWlkW2FjdGV1ci51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBhY3RldXJCeVVpZFthY3RldXIudWlkXSA9IGFjdGV1clxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3Qgb3JnYW5lU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgW1wib3JnYW5lc1wiXSkpIHtcbiAgICAgICAgY29uc3Qgb3JnYW5lRmlsZW5hbWUgPSBvcmdhbmVTcGxpdFBhdGhbb3JnYW5lU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghb3JnYW5lRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3JnYW5lRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4ub3JnYW5lU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtvcmdhbmVGaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9yZ2FuZUpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhvcmdhbmVGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3Qgb3JnYW5lID0gQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQudG9PcmdhbmUob3JnYW5lSnNvbilcbiAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJvcmdhbmVcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgICAgaWYgKG9yZ2FuZUJ5VWlkW29yZ2FuZS51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBvcmdhbmVCeVVpZFtvcmdhbmUudWlkXSA9IG9yZ2FuZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmV1bmlvbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFJldW5pb24gfSA9IHt9XG4gIGNvbnN0IHJldW5pb25zQnlEYXk6IHsgW2RheTogc3RyaW5nXTogUmV1bmlvbltdIH0gPSB7fVxuICBjb25zdCByZXVuaW9uc0J5RG9zc2llclVpZDogeyBbZG9zc2llclVpZDogc3RyaW5nXTogUmV1bmlvbltdIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFnZW5kYXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYWdlbmRhcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgICAgKVxuICAgICAgZm9yIChjb25zdCByZXVuaW9uU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgICAgY29uc3QgcmV1bmlvbkZpbGVuYW1lID0gcmV1bmlvblNwbGl0UGF0aFtyZXVuaW9uU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghcmV1bmlvbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJldW5pb25GaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5yZXVuaW9uU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtyZXVuaW9uRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXVuaW9uSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHJldW5pb25GaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgcmV1bmlvbiA9IEFnZW5kYXNDb252ZXJ0LnRvUmV1bmlvbihyZXVuaW9uSnNvbilcbiAgICAgICAgaWYgKHJldW5pb25CeVVpZFtyZXVuaW9uLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldW5pb25CeVVpZFtyZXVuaW9uLnVpZF0gPSByZXVuaW9uXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkYXkgPSByZXVuaW9uLnRpbWVzdGFtcERlYnV0LnRvSVNPU3RyaW5nKCkuc3BsaXQoXCJUXCIpWzBdXG4gICAgICAgIGxldCByZXVuaW9uc0F0RGF5ID0gcmV1bmlvbnNCeURheVtkYXldXG4gICAgICAgIGlmIChyZXVuaW9uc0F0RGF5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXVuaW9uc0F0RGF5ID0gcmV1bmlvbnNCeURheVtkYXldID0gW11cbiAgICAgICAgfVxuICAgICAgICByZXVuaW9uc0F0RGF5LnB1c2gocmV1bmlvbilcblxuICAgICAgICBjb25zdCBvZGogPSByZXVuaW9uLm9kalxuICAgICAgICBpZiAob2RqICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHBvaW50T2RqIG9mIG9kai5wb2ludHNPZGogfHwgW10pIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZG9zc2llckxlZ2lzbGF0aWZSZWYgb2YgcG9pbnRPZGouZG9zc2llcnNMZWdpc2xhdGlmc1JlZnMgfHxcbiAgICAgICAgICAgICAgW10pIHtcbiAgICAgICAgICAgICAgbGV0IHJldW5pb25zQXREb3NzaWVyVWlkID1cbiAgICAgICAgICAgICAgICByZXVuaW9uc0J5RG9zc2llclVpZFtkb3NzaWVyTGVnaXNsYXRpZlJlZl1cbiAgICAgICAgICAgICAgaWYgKHJldW5pb25zQXREb3NzaWVyVWlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXVuaW9uc0F0RG9zc2llclVpZCA9IHJldW5pb25zQnlEb3NzaWVyVWlkW1xuICAgICAgICAgICAgICAgICAgZG9zc2llckxlZ2lzbGF0aWZSZWZcbiAgICAgICAgICAgICAgICBdID0gW11cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXVuaW9uc0F0RG9zc2llclVpZC5wdXNoKHJldW5pb24pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgYW1lbmRlbWVudEJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IEFtZW5kZW1lbnQgfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQW1lbmRlbWVudHMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYW1lbmRlbWVudHMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBhbWVuZGVtZW50U3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgICAgY29uc3QgYW1lbmRlbWVudEZpbGVuYW1lID1cbiAgICAgICAgICBhbWVuZGVtZW50U3BsaXRQYXRoW2FtZW5kZW1lbnRTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFhbWVuZGVtZW50RmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYW1lbmRlbWVudEZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLmFtZW5kZW1lbnRTcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2FtZW5kZW1lbnRGaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFtZW5kZW1lbnRKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoYW1lbmRlbWVudEZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBhbWVuZGVtZW50ID0gQW1lbmRlbWVudHNDb252ZXJ0LnRvQW1lbmRlbWVudChhbWVuZGVtZW50SnNvbilcbiAgICAgICAgaWYgKGFtZW5kZW1lbnRCeVVpZFthbWVuZGVtZW50LnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGFtZW5kZW1lbnRCeVVpZFthbWVuZGVtZW50LnVpZF0gPSBhbWVuZGVtZW50XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBkb2N1bWVudEJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IERvY3VtZW50IH0gPSB7fVxuICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW46IHtcbiAgICBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICB9ID0ge31cbiAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluOiB7XG4gICAgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmVcbiAgfSA9IHt9XG4gIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmUgfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuRG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5kb3NzaWVyc0xlZ2lzbGF0aWZzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3QgZG9jdW1lbnRTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJkb2N1bWVudHNcIl0pKSB7XG4gICAgICAgIGNvbnN0IGRvY3VtZW50RmlsZW5hbWUgPSBkb2N1bWVudFNwbGl0UGF0aFtkb2N1bWVudFNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICBpZiAoIWRvY3VtZW50RmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZG9jdW1lbnRGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5kb2N1bWVudFNwbGl0UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7ZG9jdW1lbnRGaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRvY3VtZW50SnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGRvY3VtZW50RmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IGRvY3VtZW50ID0gRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb2N1bWVudChkb2N1bWVudEpzb24pXG4gICAgICAgIGlmIChkb2N1bWVudEJ5VWlkW2RvY3VtZW50LnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGRvY3VtZW50QnlVaWRbZG9jdW1lbnQudWlkXSA9IGRvY3VtZW50XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBkb3NzaWVyU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgW1wiZG9zc2llcnNcIl0pKSB7XG4gICAgICAgIGNvbnN0IGRvc3NpZXJGaWxlbmFtZSA9IGRvc3NpZXJTcGxpdFBhdGhbZG9zc2llclNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICBpZiAoIWRvc3NpZXJGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb3NzaWVyRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uZG9zc2llclNwbGl0UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7ZG9zc2llckZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZG9zc2llckpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhkb3NzaWVyRmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IGRvc3NpZXIgPVxuICAgICAgICAgIERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LnRvRG9zc2llclBhcmxlbWVudGFpcmUoZG9zc2llckpzb24pXG4gICAgICAgIGNvbnN0IHRpdHJlRG9zc2llciA9IGRvc3NpZXIudGl0cmVEb3NzaWVyXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW4gJiZcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW5bdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluXSA9PT1cbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW5bdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluICYmXG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluW3RpdHJlRG9zc2llci50aXRyZUNoZW1pbl0gPT09XG4gICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluW3RpdHJlRG9zc2llci50aXRyZUNoZW1pbl0gPSBkb3NzaWVyXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWRbZG9zc2llci51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkW2Rvc3NpZXIudWlkXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCBwaG90b0J5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlBob3Rvcykge1xuICAgIHtcbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBgcGhvdG9zX2RlcHV0ZXNfJHtcbiAgICAgICAgICAvLyBUT0RPOiBIYW5kbGUgTGVnaXNsYXR1cmUuQWxsLlxuICAgICAgICAgIGxlZ2lzbGF0dXJlID09PSBMZWdpc2xhdHVyZS5BbGwgPyBMZWdpc2xhdHVyZS5TZWl6ZSA6IGxlZ2lzbGF0dXJlXG4gICAgICAgIH1gLFxuICAgICAgICBcImRlcHV0ZXMuanNvblwiLFxuICAgICAgKVxuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoanNvbkZpbGVQYXRoKSkge1xuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgICBPYmplY3QuYXNzaWduKHBob3RvQnlVaWQsIEpTT04ucGFyc2UoanNvbikpXG4gICAgICB9IGVsc2UgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgSWdub3JpbmcgbWlzc2luZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgIH1cblxuICAgIHtcbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBcInBob3Rvc19zZW5hdGV1cnNcIixcbiAgICAgICAgXCJzZW5hdGV1cnMuanNvblwiLFxuICAgICAgKVxuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoanNvbkZpbGVQYXRoKSkge1xuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgICBPYmplY3QuYXNzaWduKHBob3RvQnlVaWQsIEpTT04ucGFyc2UoanNvbikpXG4gICAgICB9IGVsc2UgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgSWdub3JpbmcgbWlzc2luZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNjcnV0aW5CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBTY3J1dGluIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlNjcnV0aW5zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnNjcnV0aW5zKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3Qgc2NydXRpblNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICAgIGNvbnN0IHNjcnV0aW5GaWxlbmFtZSA9IHNjcnV0aW5TcGxpdFBhdGhbc2NydXRpblNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICBpZiAoIXNjcnV0aW5GaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzY3J1dGluRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uc2NydXRpblNwbGl0UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7c2NydXRpbkZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2NydXRpbkpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhzY3J1dGluRmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IHNjcnV0aW4gPSBTY3J1dGluc0NvbnZlcnQudG9TY3J1dGluKHNjcnV0aW5Kc29uKVxuICAgICAgICBpZiAoc2NydXRpbkJ5VWlkW3NjcnV0aW4udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2NydXRpbkJ5VWlkW3NjcnV0aW4udWlkXSA9IHNjcnV0aW5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHF1ZXN0aW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUXVlc3Rpb24gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUXVlc3Rpb25zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnF1ZXN0aW9ucykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgICAgKVxuXG4gICAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgICAgY29uc3QgcXVlc3Rpb25GaWxlbmFtZSA9IHF1ZXN0aW9uU3BsaXRQYXRoW3F1ZXN0aW9uU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghcXVlc3Rpb25GaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWVzdGlvbkZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLnF1ZXN0aW9uU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtxdWVzdGlvbkZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcXVlc3Rpb25Kc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMocXVlc3Rpb25GaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgcXVlc3Rpb24gPSBRdWVzdGlvbnNDb252ZXJ0LnRvUXVlc3Rpb24ocXVlc3Rpb25Kc29uKVxuICAgICAgICBpZiAocXVlc3Rpb25CeVVpZFtxdWVzdGlvbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBxdWVzdGlvbkJ5VWlkW3F1ZXN0aW9uLnVpZF0gPSBxdWVzdGlvblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY29tcHRlUmVuZHVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBDb21wdGVSZW5kdSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Db21wdGVzUmVuZHVzU2VhbmNlcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5jb21wdGVzUmVuZHVzU2VhbmNlcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgICAgKVxuXG4gICAgICBmb3IgKGNvbnN0IGNvbXB0ZVJlbmR1UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1RmlsZW5hbWUgPSBjb21wdGVSZW5kdVBhdGhbY29tcHRlUmVuZHVQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghY29tcHRlUmVuZHVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb21wdGVSZW5kdUZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLmNvbXB0ZVJlbmR1UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7Y29tcHRlUmVuZHVGaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1SnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGNvbXB0ZVJlbmR1RmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1ID0gQ29tcHRlc1JlbmR1c0NvbnZlcnQudG9Db21wdGVSZW5kdShjb21wdGVSZW5kdUpzb24pXG4gICAgICAgIGlmIChjb21wdGVSZW5kdUJ5VWlkW2NvbXB0ZVJlbmR1LnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbXB0ZVJlbmR1QnlVaWRbY29tcHRlUmVuZHUudWlkXSA9IGNvbXB0ZVJlbmR1XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFjdGV1ckJ5VWlkLFxuICAgIGFtZW5kZW1lbnRCeVVpZCxcbiAgICBkb2N1bWVudEJ5VWlkLFxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbixcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW4sXG4gICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZCxcbiAgICBvcmdhbmVCeVVpZCxcbiAgICBwaG90b0J5VWlkLFxuICAgIHJldW5pb25CeVVpZCxcbiAgICByZXVuaW9uc0J5RGF5LFxuICAgIHJldW5pb25zQnlEb3NzaWVyVWlkLFxuICAgIHNjcnV0aW5CeVVpZCxcbiAgICBxdWVzdGlvbkJ5VWlkLFxuICAgIGNvbXB0ZVJlbmR1QnlVaWQsXG4gIH1cbn1cblxuLy8vIExvYWQgZGF0YSBmcm9tIGJpZyBtb25vbHl0aWMgZmlsZXMuXG4vLy8gRGVwcmVjYXRlZDogQXNzZW1ibMOpZSBuYXRpb25hbGUgb3BlbiBkYXRhIG5vIG1vcmUgdXNlcyBtb25vbHl0aWMgZmlsZXMuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFzc2VtYmxlZURhdGFGcm9tQmlnRmlsZXMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgZW5hYmxlZERhdGFzZXRzOiBFbmFibGVkRGF0YXNldHMsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiBEYXRhIHtcbiAgY29uc3QgYWN0ZXVyQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQWN0ZXVyIH0gPSB7fVxuICBjb25zdCBvcmdhbmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBPcmdhbmUgfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWN0ZXVyc0V0T3JnYW5lcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llLmpzb25cIiksXG4gICAgICApXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgY29uc3QgYWN0ZXVyc0V0T3JnYW5lcyA9IEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LnRvQWN0ZXVyc0V0T3JnYW5lcyhqc29uKVxuICAgICAgZm9yIChjb25zdCBhY3RldXIgb2YgYWN0ZXVyc0V0T3JnYW5lcy5hY3RldXJzKSB7XG4gICAgICAgIC8vIEtlZXAgdGhlIGZpcnN0IGV4aXN0aW5nIFwiYWN0ZXVyXCIsIGJlY2F1c2UgdGhlIGZpcnN0IHdyYXBwZXIgaXMgdGhlIG1vc3QgY29tcGxldGUuXG4gICAgICAgIGlmIChhY3RldXJCeVVpZFthY3RldXIudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgYWN0ZXVyQnlVaWRbYWN0ZXVyLnVpZF0gPSBhY3RldXJcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBvcmdhbmUgb2YgYWN0ZXVyc0V0T3JnYW5lcy5vcmdhbmVzKSB7XG4gICAgICAgIC8vIEtlZXAgdGhlIGZpcnN0IGV4aXN0aW5nIFwib3JnYW5lXCIsIGJlY2F1c2UgdGhlIGZpcnN0IHdyYXBwZXIgaXMgdGhlIG1vc3QgY29tcGxldGUuXG4gICAgICAgIGlmIChvcmdhbmVCeVVpZFtvcmdhbmUudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgb3JnYW5lQnlVaWRbb3JnYW5lLnVpZF0gPSBvcmdhbmVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJldW5pb25CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBSZXVuaW9uIH0gPSB7fVxuICBjb25zdCByZXVuaW9uc0J5RGF5OiB7IFtkYXk6IHN0cmluZ106IFJldW5pb25bXSB9ID0ge31cbiAgY29uc3QgcmV1bmlvbnNCeURvc3NpZXJVaWQ6IHsgW2Rvc3NpZXJVaWQ6IHN0cmluZ106IFJldW5pb25bXSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BZ2VuZGFzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFnZW5kYXMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBhZ2VuZGFzID0gQWdlbmRhc0NvbnZlcnQudG9BZ2VuZGFzKGpzb24pXG4gICAgICBmb3IgKGNvbnN0IHJldW5pb24gb2YgYWdlbmRhcy5yZXVuaW9ucykge1xuICAgICAgICBpZiAocmV1bmlvbkJ5VWlkW3JldW5pb24udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV1bmlvbkJ5VWlkW3JldW5pb24udWlkXSA9IHJldW5pb25cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRheSA9IHJldW5pb24udGltZXN0YW1wRGVidXQudG9JU09TdHJpbmcoKS5zcGxpdChcIlRcIilbMF1cbiAgICAgICAgbGV0IHJldW5pb25zQXREYXkgPSByZXVuaW9uc0J5RGF5W2RheV1cbiAgICAgICAgaWYgKHJldW5pb25zQXREYXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldW5pb25zQXREYXkgPSByZXVuaW9uc0J5RGF5W2RheV0gPSBbXVxuICAgICAgICB9XG4gICAgICAgIHJldW5pb25zQXREYXkucHVzaChyZXVuaW9uKVxuXG4gICAgICAgIGNvbnN0IG9kaiA9IHJldW5pb24ub2RqXG4gICAgICAgIGlmIChvZGogIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGZvciAoY29uc3QgcG9pbnRPZGogb2Ygb2RqLnBvaW50c09kaiB8fCBbXSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBkb3NzaWVyTGVnaXNsYXRpZlJlZiBvZiBwb2ludE9kai5kb3NzaWVyc0xlZ2lzbGF0aWZzUmVmcyB8fFxuICAgICAgICAgICAgICBbXSkge1xuICAgICAgICAgICAgICBsZXQgcmV1bmlvbnNBdERvc3NpZXJVaWQgPVxuICAgICAgICAgICAgICAgIHJldW5pb25zQnlEb3NzaWVyVWlkW2Rvc3NpZXJMZWdpc2xhdGlmUmVmXVxuICAgICAgICAgICAgICBpZiAocmV1bmlvbnNBdERvc3NpZXJVaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldW5pb25zQXREb3NzaWVyVWlkID0gcmV1bmlvbnNCeURvc3NpZXJVaWRbXG4gICAgICAgICAgICAgICAgICBkb3NzaWVyTGVnaXNsYXRpZlJlZlxuICAgICAgICAgICAgICAgIF0gPSBbXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldW5pb25zQXREb3NzaWVyVWlkLnB1c2gocmV1bmlvbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBhbWVuZGVtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQW1lbmRlbWVudCB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BbWVuZGVtZW50cykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hbWVuZGVtZW50cykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRzID0gQW1lbmRlbWVudHNDb252ZXJ0LnRvQW1lbmRlbWVudHMoanNvbilcbiAgICAgIGZvciAoY29uc3QgdGV4dGVMZWdpc2xhdGlmIG9mIGFtZW5kZW1lbnRzLnRleHRlc0xlZ2lzbGF0aWZzKSB7XG4gICAgICAgIGZvciAoY29uc3QgYW1lbmRlbWVudCBvZiB0ZXh0ZUxlZ2lzbGF0aWYuYW1lbmRlbWVudHMpIHtcbiAgICAgICAgICBpZiAoYW1lbmRlbWVudEJ5VWlkW2FtZW5kZW1lbnQudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhbWVuZGVtZW50QnlVaWRbYW1lbmRlbWVudC51aWRdID0gYW1lbmRlbWVudFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRvY3VtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogRG9jdW1lbnQgfSA9IHt9XG4gIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH0gPSB7fVxuICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW46IHtcbiAgICBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICB9ID0ge31cbiAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBkb3NzaWVyc0xlZ2lzbGF0aWZzID1cbiAgICAgICAgRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb3NzaWVyc0xlZ2lzbGF0aWZzKGpzb24pXG4gICAgICBmb3IgKGNvbnN0IGRvY3VtZW50IG9mIGRvc3NpZXJzTGVnaXNsYXRpZnMudGV4dGVzTGVnaXNsYXRpZnMpIHtcbiAgICAgICAgaWYgKGRvY3VtZW50QnlVaWRbZG9jdW1lbnQudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZG9jdW1lbnRCeVVpZFtkb2N1bWVudC51aWRdID0gZG9jdW1lbnRcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBkb3NzaWVyIG9mIGRvc3NpZXJzTGVnaXNsYXRpZnMuZG9zc2llcnNQYXJsZW1lbnRhaXJlcykge1xuICAgICAgICBjb25zdCB0aXRyZURvc3NpZXIgPSBkb3NzaWVyLnRpdHJlRG9zc2llclxuICAgICAgICBpZiAoXG4gICAgICAgICAgdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluICYmXG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluW3RpdHJlRG9zc2llci5zZW5hdENoZW1pbl0gPT09XG4gICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluW3RpdHJlRG9zc2llci5zZW5hdENoZW1pbl0gPSBkb3NzaWVyXG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRpdHJlRG9zc2llci50aXRyZUNoZW1pbiAmJlxuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pblt0aXRyZURvc3NpZXIudGl0cmVDaGVtaW5dID09PVxuICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pblt0aXRyZURvc3NpZXIudGl0cmVDaGVtaW5dID0gZG9zc2llclxuICAgICAgICB9XG4gICAgICAgIGlmIChkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkW2Rvc3NpZXIudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZFtkb3NzaWVyLnVpZF0gPSBkb3NzaWVyXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBwaG90b0J5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlBob3Rvcykge1xuICAgIGNvbnN0IHBob3RvQnlVaWQgPSB7fVxuXG4gICAge1xuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGBwaG90b3NfZGVwdXRlc18ke1xuICAgICAgICAgIC8vIFRPRE86IEhhbmRsZSBMZWdpc2xhdHVyZS5BbGwuXG4gICAgICAgICAgbGVnaXNsYXR1cmUgPT09IExlZ2lzbGF0dXJlLkFsbCA/IExlZ2lzbGF0dXJlLlNlaXplIDogbGVnaXNsYXR1cmVcbiAgICAgICAgfWAsXG4gICAgICAgIFwiZGVwdXRlcy5qc29uXCIsXG4gICAgICApXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhqc29uRmlsZVBhdGgpKSB7XG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGhvdG9CeVVpZCwgSlNPTi5wYXJzZShqc29uKSlcbiAgICAgIH0gZWxzZSBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyBtaXNzaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgfVxuXG4gICAge1xuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIFwicGhvdG9zX3NlbmF0ZXVyc1wiLFxuICAgICAgICBcInNlbmF0ZXVycy5qc29uXCIsXG4gICAgICApXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhqc29uRmlsZVBhdGgpKSB7XG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGhvdG9CeVVpZCwgSlNPTi5wYXJzZShqc29uKSlcbiAgICAgIH0gZWxzZSBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyBtaXNzaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2NydXRpbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFNjcnV0aW4gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuU2NydXRpbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuc2NydXRpbnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBzY3J1dGlucyA9IFNjcnV0aW5zQ29udmVydC50b1NjcnV0aW5zKGpzb24pXG4gICAgICBmb3IgKGNvbnN0IHNjcnV0aW4gb2Ygc2NydXRpbnMuc2NydXRpbnMpIHtcbiAgICAgICAgaWYgKHNjcnV0aW5CeVVpZFtzY3J1dGluLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHNjcnV0aW5CeVVpZFtzY3J1dGluLnVpZF0gPSBzY3J1dGluXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBxdWVzdGlvbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFF1ZXN0aW9uIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlF1ZXN0aW9ucykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5xdWVzdGlvbnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBxdWVzdGlvbnMgPSBRdWVzdGlvbnNDb252ZXJ0LnRvUXVlc3Rpb25zKGpzb24pXG4gICAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIG9mIHF1ZXN0aW9ucy5xdWVzdGlvbnMpIHtcbiAgICAgICAgaWYgKHF1ZXN0aW9uQnlVaWRbcXVlc3Rpb24udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcXVlc3Rpb25CeVVpZFtxdWVzdGlvbi51aWRdID0gcXVlc3Rpb25cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNvbXB0ZVJlbmR1QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQ29tcHRlUmVuZHUgfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQ29tcHRlc1JlbmR1c1NlYW5jZXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuY29tcHRlc1JlbmR1c1NlYW5jZXMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBjb21wdGVzUmVuZHVzID0gQ29tcHRlc1JlbmR1c0NvbnZlcnQudG9Db21wdGVzUmVuZHVzKGpzb24pXG4gICAgICBmb3IgKGNvbnN0IGNvbXB0ZVJlbmR1IG9mIGNvbXB0ZXNSZW5kdXMuY29tcHRlc1JlbmR1cykge1xuICAgICAgICBpZiAoY29tcHRlUmVuZHVCeVVpZFtjb21wdGVSZW5kdS51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb21wdGVSZW5kdUJ5VWlkW2NvbXB0ZVJlbmR1LnVpZF0gPSBjb21wdGVSZW5kdVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhY3RldXJCeVVpZCxcbiAgICBhbWVuZGVtZW50QnlVaWQsXG4gICAgZG9jdW1lbnRCeVVpZCxcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW4sXG4gICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluLFxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWQsXG4gICAgb3JnYW5lQnlVaWQsXG4gICAgcGhvdG9CeVVpZCxcbiAgICByZXVuaW9uQnlVaWQsXG4gICAgcmV1bmlvbnNCeURheSxcbiAgICByZXVuaW9uc0J5RG9zc2llclVpZCxcbiAgICBzY3J1dGluQnlVaWQsXG4gICAgcXVlc3Rpb25CeVVpZCxcbiAgICBjb21wdGVSZW5kdUJ5VWlkLFxuICB9XG59XG5cbi8qKlxuICogUmVhZCBpbmZvcyBvZiBhIGRvY3VtZW50IG9yIGEgZGl2aXNpb24gb2YgYSBkb2N1bWVudCBmcm9tIGZpbGUgc3lzdGVtXG4gKlxuICogQHBhcmFtIGRhdGFEaXJcbiAqIEBwYXJhbSB1aWQgVUlEIG9mIGEgZG9jdW1lbnQgb3IgYSBkaXZpc2lvblxuICogQHBhcmFtIGZvcm1hdHMgcmVxdWVzdGVkIGZvcm1hdHMgb2YgdGhlIGRvY3VtZW50IGluIGRlY3JlYXNpbmcgcHJlZmVyZW5jZSBvcmRlclxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFzc2VtYmxlZURvY3VtZW50RmlsZShcbiAgZGF0YURpcjogc3RyaW5nLFxuICB1aWQ6IHN0cmluZyxcbiAgZm9ybWF0czogRG9jdW1lbnRVcmxGb3JtYXRbXSxcbik6XG4gIHwge1xuICAgICAgZm9ybWF0OiBEb2N1bWVudFVybEZvcm1hdFxuICAgICAgcGF0aDogc3RyaW5nXG4gICAgICB1cmw6IHN0cmluZ1xuICAgIH1cbiAgfCB1bmRlZmluZWQge1xuICBjb25zdCBkb2N1bWVudHNEaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgXCJEb2N1bWVudHNcIilcbiAgY29uc3QgZG9jdW1lbnREaXIgPSBwYXRoRnJvbURvY3VtZW50VWlkKGRvY3VtZW50c0RpciwgdWlkKVxuICBjb25zdCBpbmRleFBhdGggPSBwYXRoLmpvaW4oZG9jdW1lbnREaXIsIFwiaW5kZXguanNvblwiKVxuICBpZiAoIWZzLnBhdGhFeGlzdHNTeW5jKGluZGV4UGF0aCkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbiAgY29uc3QgaW5kZXggPSBmcy5yZWFkSnNvblN5bmMoaW5kZXhQYXRoKSBhcyBEb2N1bWVudEZpbGVzSW5kZXhcbiAgZm9yIChjb25zdCBmb3JtYXQgb2YgZm9ybWF0cykge1xuICAgIGZvciAoY29uc3QgeyBmaWxlbmFtZSwgdXJsIH0gb2YgaW5kZXhbZm9ybWF0XSA/PyBbXSkge1xuICAgICAgaWYgKGZpbGVuYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IGZvcm1hdCwgcGF0aDogcGF0aC5qb2luKGRvY3VtZW50RGlyLCBmaWxlbmFtZSksIHVybCB9XG4gICAgfVxuICB9XG4gIHJldHVybiB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBc3NlbWJsZWVQaG90b3NEZXB1dGVzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0ge1xuICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICBkYXRhRGlyLFxuICAgIGBwaG90b3NfZGVwdXRlc18ke1xuICAgICAgLy8gVE9ETzogSGFuZGxlIExlZ2lzbGF0dXJlLkFsbC5cbiAgICAgIGxlZ2lzbGF0dXJlID09PSBMZWdpc2xhdHVyZS5BbGwgPyBMZWdpc2xhdHVyZS5TZWl6ZSA6IGxlZ2lzbGF0dXJlXG4gICAgfWAsXG4gICAgXCJkZXB1dGVzLmpzb25cIixcbiAgKVxuICBpZiAobG9nKSB7XG4gICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgfVxuICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICByZXR1cm4gSlNPTi5wYXJzZShqc29uKSBhcyB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBc3NlbWJsZWVQaG90b3NTZW5hdGV1cnMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgeyBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0ge1xuICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICBkYXRhRGlyLFxuICAgIFwicGhvdG9zX3NlbmF0ZXVyc1wiLFxuICAgIFwic2VuYXRldXJzLmpzb25cIixcbiAgKVxuICBpZiAobG9nKSB7XG4gICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgfVxuICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICByZXR1cm4gSlNPTi5wYXJzZShqc29uKSBhcyB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tRG9jdW1lbnRVaWQoZG9jdW1lbnRzRGlyOiBzdHJpbmcsIHVpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbWF0Y2ggPSB1aWQubWF0Y2goZG9jdW1lbnRVaWRSZWdleClcbiAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgIG1hdGNoLFxuICAgIG51bGwsXG4gICAgYFVuZXhwZWN0ZWQgc3RydWN0dXJlIGZvciBkb2N1bWVudCBVSUQ6ICR7dWlkfWAsXG4gIClcbiAgY29uc3QgZ3JvdXBzID0gbWF0Y2ghLmdyb3VwcyBhcyB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4gIGNvbnN0IGRvY3VtZW50VHlwZSA9IHBhdGguam9pbihcbiAgICBkb2N1bWVudHNEaXIsXG4gICAgZ3JvdXBzLmRvY3VtZW50VHlwZSA/PyBncm91cHMuZG9jdW1lbnRUeXBlMixcbiAgKVxuICBjb25zdCBjaGFtYnJlRGlyID0gcGF0aC5qb2luKGRvY3VtZW50VHlwZSwgZ3JvdXBzLmNoYW1icmUgPz8gZ3JvdXBzLmNoYW1icmUyKVxuICBjb25zdCByZXB1YmxpcXVlRGlyID0gcGF0aC5qb2luKFxuICAgIGNoYW1icmVEaXIsXG4gICAgZ3JvdXBzLnJlcHVibGlxdWUgPz8gZ3JvdXBzLnJlcHVibGlxdWUyLFxuICApXG4gIGNvbnN0IGxlZ2lzbGF0dXJlRGlyID0gcGF0aC5qb2luKFxuICAgIHJlcHVibGlxdWVEaXIsXG4gICAgZ3JvdXBzLmxlZ2lzbGF0dXJlID8/IGdyb3Vwcy5sZWdpc2xhdHVyZTIsXG4gIClcbiAgY29uc3QgZXRhdCA9IGdyb3Vwcy5ldGF0XG4gIGlmIChldGF0ID09PSB1bmRlZmluZWQpIHtcbiAgICBmcy5lbnN1cmVEaXJTeW5jKGxlZ2lzbGF0dXJlRGlyKVxuICAgIHJldHVybiBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIHVpZClcbiAgfVxuICBjb25zdCBldGF0RGlyID0gcGF0aC5qb2luKGxlZ2lzbGF0dXJlRGlyLCBldGF0KVxuICBsZXQgbnVtZXJvID0gXCIwMDAwMDBcIiArIChncm91cHMubnVtZXJvID8/IGdyb3Vwcy5udW1lcm8yKVxuICBudW1lcm8gPSBudW1lcm8uc3Vic3RyaW5nKG51bWVyby5sZW5ndGggLSA2KVxuICBjb25zdCBudW1lcm9NaWxsaWVyc0RpciA9IHBhdGguam9pbihldGF0RGlyLCBudW1lcm8uc3Vic3RyaW5nKDAsIDMpKVxuICBmcy5lbnN1cmVEaXJTeW5jKG51bWVyb01pbGxpZXJzRGlyKVxuICByZXR1cm4gcGF0aC5qb2luKG51bWVyb01pbGxpZXJzRGlyLCB1aWQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRoRnJvbURvc3NpZXJQYXJsZW1lbnRhaXJlVWlkKFxuICBkb3NzaWVyc0Rpcjogc3RyaW5nLFxuICB1aWQ6IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIHJldHVybiBwYXRoRnJvbVVpZChkb3NzaWVyc0RpciwgdWlkLCBkb3NzaWVyVWlkUmVnZXgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRoRnJvbVJldW5pb25VaWQocmV1bmlvbnNEaXI6IHN0cmluZywgdWlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IHJldW5pb25VaWRSZWdleC5leGVjKHVpZClcbiAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgIG1hdGNoLFxuICAgIG51bGwsXG4gICAgYFVuZXhwZWN0ZWQgc3RydWN0dXJlIGZvciByZXVuaW9uIFVJRDogJHt1aWR9YCxcbiAgKVxuICBjb25zdCBjaGFtYnJlRGlyID0gcGF0aC5qb2luKHJldW5pb25zRGlyLCBtYXRjaCFbMV0pXG4gIGNvbnN0IHJlcHVibGlxdWVEaXIgPSBwYXRoLmpvaW4oY2hhbWJyZURpciwgbWF0Y2ghWzJdKVxuICBjb25zdCBsZWdpc2xhdHVyZURpciA9IHBhdGguam9pbihyZXB1YmxpcXVlRGlyLCBtYXRjaCFbM10pXG4gIGNvbnN0IHNlc3Npb25EaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIG1hdGNoIVs0XSlcbiAgY29uc3QgaWREaXIgPSBwYXRoLmpvaW4oc2Vzc2lvbkRpciwgbWF0Y2ghWzVdKVxuICBsZXQgbnVtZXJvID0gXCIwMDAwMDAwMDBcIiArIG1hdGNoIVs2XVxuICBudW1lcm8gPSBudW1lcm8uc3Vic3RyaW5nKG51bWVyby5sZW5ndGggLSA5KVxuICBjb25zdCBudW1lcm9NaWxsaW9uc0RpciA9IHBhdGguam9pbihpZERpciwgbnVtZXJvLnN1YnN0cmluZygwLCAzKSlcbiAgY29uc3QgbnVtZXJvTWlsbGllcnNEaXIgPSBwYXRoLmpvaW4obnVtZXJvTWlsbGlvbnNEaXIsIG51bWVyby5zdWJzdHJpbmcoMywgMykpXG4gIGZzLmVuc3VyZURpclN5bmMobnVtZXJvTWlsbGllcnNEaXIpXG4gIHJldHVybiBwYXRoLmpvaW4obnVtZXJvTWlsbGllcnNEaXIsIHVpZClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tU2NydXRpblVpZChzY3J1dGluc0Rpcjogc3RyaW5nLCB1aWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG1hdGNoID0gc2NydXRpblVpZFJlZ2V4LmV4ZWModWlkKVxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgbWF0Y2gsXG4gICAgbnVsbCxcbiAgICBgVW5leHBlY3RlZCBzdHJ1Y3R1cmUgZm9yIHNjcnV0aW4gVUlEOiAke3VpZH1gLFxuICApXG4gIGNvbnN0IGNoYW1icmVEaXIgPSBwYXRoLmpvaW4oc2NydXRpbnNEaXIsIG1hdGNoIVsxXSlcbiAgY29uc3QgcmVwdWJsaXF1ZURpciA9IHBhdGguam9pbihjaGFtYnJlRGlyLCBtYXRjaCFbMl0pXG4gIGNvbnN0IGxlZ2lzbGF0dXJlRGlyID0gcGF0aC5qb2luKHJlcHVibGlxdWVEaXIsIG1hdGNoIVszXSlcbiAgbGV0IG51bWVybyA9IFwiMDAwMDAwXCIgKyBtYXRjaCFbNF1cbiAgbnVtZXJvID0gbnVtZXJvLnN1YnN0cmluZyhudW1lcm8ubGVuZ3RoIC0gNilcbiAgY29uc3QgbnVtZXJvTWlsbGllcnNEaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIG51bWVyby5zdWJzdHJpbmcoMCwgMykpXG4gIGZzLmVuc3VyZURpclN5bmMobnVtZXJvTWlsbGllcnNEaXIpXG4gIHJldHVybiBwYXRoLmpvaW4obnVtZXJvTWlsbGllcnNEaXIsIHVpZClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tUXVlc3Rpb25VaWQoZGF0YURpcjogc3RyaW5nLCB1aWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBwYXRoRnJvbVVpZChkYXRhRGlyLCB1aWQsIHF1ZXN0aW9uVWlkUmVnZXgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRoRnJvbUNvbXB0ZVJlbmR1VWlkKGRhdGFEaXI6IHN0cmluZywgdWlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcGF0aEZyb21VaWQoZGF0YURpciwgdWlkLCBjb21wdGVSZW5kdVVpZFJlZ2V4KVxufVxuXG4vLyBHZXQgc3RhbmRhcmQgcGF0aCBmb3Igb2JqZWN0IHdpdGggdWlkIDogcmVwdWJsaXF1ZSA+IGxlZ2lzbGF0dXJlID4gZ3JvdXAgb2JqZWN0cyBieSB0aG91c2FuZHNcbmZ1bmN0aW9uIHBhdGhGcm9tVWlkKGRhdGFEaXI6IHN0cmluZywgdWlkOiBzdHJpbmcsIGRhdGFSZWdleHA6IFJlZ0V4cCk6IHN0cmluZyB7XG4gIGNvbnN0IG1hdGNoID0gZGF0YVJlZ2V4cC5leGVjKHVpZClcbiAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgIG1hdGNoLFxuICAgIG51bGwsXG4gICAgYFVuZXhwZWN0ZWQgc3RydWN0dXJlIGZvciBvYmplY3Qgd2l0aCBVSUQ6ICR7dWlkfWAsXG4gIClcbiAgY29uc3QgcmVwdWJsaXF1ZURpciA9IHBhdGguam9pbihkYXRhRGlyLCBtYXRjaCFbMV0pXG4gIGNvbnN0IGxlZ2lzbGF0dXJlRGlyID0gcGF0aC5qb2luKHJlcHVibGlxdWVEaXIsIG1hdGNoIVsyXSlcbiAgbGV0IG51bWVybyA9IFwiMDAwMDAwXCIgKyBtYXRjaCFbM11cbiAgbnVtZXJvID0gbnVtZXJvLnN1YnN0cmluZyhudW1lcm8ubGVuZ3RoIC0gNilcbiAgY29uc3QgbnVtZXJvTWlsbGllcnNEaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIG51bWVyby5zdWJzdHJpbmcoMCwgMykpXG4gIGZzLmVuc3VyZURpclN5bmMobnVtZXJvTWlsbGllcnNEaXIpXG4gIHJldHVybiBwYXRoLmpvaW4obnVtZXJvTWlsbGllcnNEaXIsIHVpZClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUcsU0FBQSxH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
1733
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX2RhdGFzZXRzIiwiX2ZpbGVfc3lzdGVtcyIsIl9hY3RldXJzX2V0X29yZ2FuZXMiLCJfYWdlbmRhcyIsIl9hbWVuZGVtZW50cyIsIl9kb3NzaWVyc19sZWdpc2xhdGlmcyIsIl9sZWdpc2xhdHVyZXMiLCJfc2NydXRpbnMiLCJfcXVlc3Rpb25zIiwiX2RlYmF0cyIsIl90ZXh0ZXNfbG9pIiwiZSIsIl9fZXNNb2R1bGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwidCIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImNhbGwiLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfbiIsIkYiLCJ0b1N0cmluZyIsInRlc3QiLCJfd3JhcFJlZ0V4cCIsIkJhYmVsUmVnRXhwIiwiUmVnRXhwIiwiV2Vha01hcCIsInNldCIsImdldCIsIl9zZXRQcm90b3R5cGVPZiIsImJ1aWxkR3JvdXBzIiwicmVkdWNlIiwiX2luaGVyaXRzIiwiZXhlYyIsImdyb3VwcyIsImluZGljZXMiLCJyZXBsYWNlIiwiam9pbiIsImFyZ3VtZW50cyIsImFwcGx5IiwiYmluZCIsImRvY3VtZW50VWlkUmVnZXgiLCJkb2N1bWVudFR5cGUiLCJjaGFtYnJlIiwicmVwdWJsaXF1ZSIsImxlZ2lzbGF0dXJlIiwiZXRhdCIsIm51bWVybyIsImRvY3VtZW50VHlwZTIiLCJjaGFtYnJlMiIsInJlcHVibGlxdWUyIiwibGVnaXNsYXR1cmUyIiwibnVtZXJvMiIsImRvc3NpZXJVaWRSZWdleCIsInJldW5pb25VaWRSZWdleCIsInNjcnV0aW5VaWRSZWdleCIsImNvbXB0ZVJlbmR1VWlkUmVnZXgiLCJxdWVzdGlvblVpZFJlZ2V4IiwiaXRlckxvYWRBc3NlbWJsZWVJdGVtcyIsImRhdGFEaXIiLCJkYXRhc2V0cyIsImNvbnZlcnRUb0l0ZW0iLCJzdWJmb2xkZXJOYW1lIiwiZmlsZUV4dGVuc2lvbiIsInVuZGVmaW5lZCIsIl9yZWYiLCJfcmVmJG5vVmFsaWRhdGlvbiIsIm5vVmFsaWRhdGlvbiIsIl9yZWYkbG9nIiwibG9nIiwiX2NhbGxlZSIsIml0ZW1VaWQiLCJfaXRlcmF0b3IiLCJfc3RlcCIsImRhdGFzZXQiLCJmaWxlRXh0ZW5zaW9uUmVnZXgiLCJkYXRhc2V0RGlyIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsIml0ZW1TcGxpdFBhdGgiLCJpdGVtRmlsZW5hbWUiLCJpdGVtRmlsZVBhdGgiLCJpdGVtSnNvbiIsIml0ZW0iLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwiU2V0IiwiaWdub3JlRm9yV2ViIiwiTGVnaXNsYXR1cmUiLCJBbGwiLCJjb25jYXQiLCJwYXRoIiwiZmlsZW5hbWUiLCJ3YWxrRGlyIiwiZW5kc1dpdGgiLCJjb25zb2xlIiwiZnMiLCJyZWFkRmlsZVN5bmMiLCJlbmNvZGluZyIsIkpTT04iLCJwYXJzZSIsImhhcyIsInVpZCIsImFkZCIsImRhdGFzZXRMZWdpc2xhdHVyZSIsInQwIiwidDEiLCJpdGVyTG9hZEFzc2VtYmxlZUFjdGV1cnMiLCJvcHRpb25zIiwiX2NhbGxlZTIiLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwiX3N0ZXAzJHZhbHVlIiwiYWN0ZXVyIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwiYWN0ZXVyc0V0T3JnYW5lcyIsIkFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0IiwidG9BY3RldXIiLCJpdGVyTG9hZEFzc2VtYmxlZU9yZ2FuZXMiLCJfY2FsbGVlMyIsIl9pdGVyYXRvcjQiLCJfc3RlcDQiLCJfc3RlcDQkdmFsdWUiLCJvcmdhbmUiLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJ0b09yZ2FuZSIsIml0ZXJMb2FkQXNzZW1ibGVlQW1lbmRlbWVudHMiLCJfY2FsbGVlNCIsIl9pdGVyYXRvcjUiLCJfc3RlcDUiLCJfc3RlcDUkdmFsdWUiLCJhbWVuZGVtZW50IiwiX2NhbGxlZTQkIiwiX2NvbnRleHQ0IiwiYW1lbmRlbWVudHMiLCJBbWVuZGVtZW50c0NvbnZlcnQiLCJ0b0FtZW5kZW1lbnQiLCJpdGVyTG9hZEFzc2VtYmxlZURvY3VtZW50cyIsIl9jYWxsZWU1IiwiX2l0ZXJhdG9yNiIsIl9zdGVwNiIsIl9zdGVwNiR2YWx1ZSIsImRvY3VtZW50IiwiX2NhbGxlZTUkIiwiX2NvbnRleHQ1IiwiZG9zc2llcnNMZWdpc2xhdGlmcyIsIkRvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0IiwidG9Eb2N1bWVudCIsIml0ZXJMb2FkQXNzZW1ibGVlRG9zc2llcnNQYXJsZW1lbnRhaXJlcyIsIl9jYWxsZWU2IiwiX2l0ZXJhdG9yNyIsIl9zdGVwNyIsIl9zdGVwNyR2YWx1ZSIsImRvc3NpZXJQYXJsZW1lbnRhaXJlIiwiX2NhbGxlZTYkIiwiX2NvbnRleHQ2IiwidG9Eb3NzaWVyUGFybGVtZW50YWlyZSIsIml0ZXJMb2FkQXNzZW1ibGVlUmV1bmlvbnMiLCJfY2FsbGVlNyIsIl9pdGVyYXRvcjgiLCJfc3RlcDgiLCJfc3RlcDgkdmFsdWUiLCJyZXVuaW9uIiwiX2NhbGxlZTckIiwiX2NvbnRleHQ3IiwiYWdlbmRhcyIsIkFnZW5kYXNDb252ZXJ0IiwidG9SZXVuaW9uIiwiaXRlckxvYWRBc3NlbWJsZWVTY3J1dGlucyIsIl9jYWxsZWU4IiwiX2l0ZXJhdG9yOSIsIl9zdGVwOSIsIl9zdGVwOSR2YWx1ZSIsInNjcnV0aW4iLCJfY2FsbGVlOCQiLCJfY29udGV4dDgiLCJzY3J1dGlucyIsIlNjcnV0aW5zQ29udmVydCIsInRvU2NydXRpbiIsIml0ZXJMb2FkQXNzZW1ibGVlUXVlc3Rpb25zIiwiX2NhbGxlZTkiLCJfaXRlcmF0b3IxMCIsIl9zdGVwMTAiLCJfc3RlcDEwJHZhbHVlIiwicXVlc3Rpb24iLCJfY2FsbGVlOSQiLCJfY29udGV4dDkiLCJxdWVzdGlvbnMiLCJRdWVzdGlvbnNDb252ZXJ0IiwidG9RdWVzdGlvbiIsIml0ZXJMb2FkQXNzZW1ibGVlQ29tcHRlc1JlbmR1cyIsIl9jYWxsZWUxMCIsIl9pdGVyYXRvcjExIiwiX3N0ZXAxMSIsIl9zdGVwMTEkdmFsdWUiLCJjb21wdGVSZW5kdSIsIl9jYWxsZWUxMCQiLCJfY29udGV4dDEwIiwiY29tcHRlc1JlbmR1c1NlYW5jZXMiLCJDb21wdGVzUmVuZHVzQ29udmVydCIsInRvQ29tcHRlUmVuZHUiLCJpdGVyTG9hZEFzc2VtYmxlZVRleHRlTG9pIiwiX2NhbGxlZTExIiwiX2l0ZXJhdG9yMTIiLCJfc3RlcDEyIiwiX3N0ZXAxMiR2YWx1ZSIsInRleHRlTG9pIiwiX2NhbGxlZTExJCIsIl9jb250ZXh0MTEiLCJ0ZXh0ZXNMb2kiLCJUZXh0ZXNMb2lDb252ZXJ0IiwidG9UZXh0ZXNMb2kiLCJsb2FkQXNzZW1ibGVlRGF0YSIsImVuYWJsZWREYXRhc2V0cyIsIl9yZWYyIiwiX3JlZjIkbG9nIiwiYWN0ZXVyQnlVaWQiLCJvcmdhbmVCeVVpZCIsIkVuYWJsZWREYXRhc2V0cyIsIkFjdGV1cnNFdE9yZ2FuZXMiLCJfaXRlcmF0b3IxMyIsIl9zdGVwMTMiLCJfaXRlcmF0b3IxNCIsIl9zdGVwMTQiLCJhY3RldXJTcGxpdFBhdGgiLCJhY3RldXJGaWxlbmFtZSIsImFjdGV1ckZpbGVQYXRoIiwiYWN0ZXVySnNvbiIsImVyciIsIl9pdGVyYXRvcjE1IiwiX3N0ZXAxNSIsIm9yZ2FuZVNwbGl0UGF0aCIsIm9yZ2FuZUZpbGVuYW1lIiwib3JnYW5lRmlsZVBhdGgiLCJvcmdhbmVKc29uIiwicmV1bmlvbkJ5VWlkIiwicmV1bmlvbnNCeURheSIsInJldW5pb25zQnlEb3NzaWVyVWlkIiwiQWdlbmRhcyIsIl9pdGVyYXRvcjE2IiwiX3N0ZXAxNiIsIl9pdGVyYXRvcjE3IiwiX3N0ZXAxNyIsInJldW5pb25TcGxpdFBhdGgiLCJyZXVuaW9uRmlsZW5hbWUiLCJyZXVuaW9uRmlsZVBhdGgiLCJyZXVuaW9uSnNvbiIsImRheSIsInRpbWVzdGFtcERlYnV0IiwidG9JU09TdHJpbmciLCJzcGxpdCIsInJldW5pb25zQXREYXkiLCJvZGoiLCJfaXRlcmF0b3IxOCIsInBvaW50c09kaiIsIl9zdGVwMTgiLCJwb2ludE9kaiIsIl9pdGVyYXRvcjE5IiwiZG9zc2llcnNMZWdpc2xhdGlmc1JlZnMiLCJfc3RlcDE5IiwiZG9zc2llckxlZ2lzbGF0aWZSZWYiLCJyZXVuaW9uc0F0RG9zc2llclVpZCIsImFtZW5kZW1lbnRCeVVpZCIsIkFtZW5kZW1lbnRzIiwiX2l0ZXJhdG9yMjAiLCJfc3RlcDIwIiwiX2l0ZXJhdG9yMjEiLCJfc3RlcDIxIiwiYW1lbmRlbWVudFNwbGl0UGF0aCIsImFtZW5kZW1lbnRGaWxlbmFtZSIsImFtZW5kZW1lbnRGaWxlUGF0aCIsImFtZW5kZW1lbnRKc29uIiwiZG9jdW1lbnRCeVVpZCIsImRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbiIsImRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pbiIsImRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWQiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzIiwiX2l0ZXJhdG9yMjIiLCJfc3RlcDIyIiwiX2l0ZXJhdG9yMjMiLCJfc3RlcDIzIiwiZG9jdW1lbnRTcGxpdFBhdGgiLCJkb2N1bWVudEZpbGVuYW1lIiwiZG9jdW1lbnRGaWxlUGF0aCIsImRvY3VtZW50SnNvbiIsIl9pdGVyYXRvcjI0IiwiX3N0ZXAyNCIsImRvc3NpZXJTcGxpdFBhdGgiLCJkb3NzaWVyRmlsZW5hbWUiLCJkb3NzaWVyRmlsZVBhdGgiLCJkb3NzaWVySnNvbiIsImRvc3NpZXIiLCJ0aXRyZURvc3NpZXIiLCJzZW5hdENoZW1pbiIsInRpdHJlQ2hlbWluIiwicGhvdG9CeVVpZCIsIlBob3RvcyIsImpzb25GaWxlUGF0aCIsIkRpeFNlcHQiLCJleGlzdHNTeW5jIiwianNvbiIsImFzc2lnbiIsInNjcnV0aW5CeVVpZCIsIlNjcnV0aW5zIiwiX2l0ZXJhdG9yMjUiLCJfc3RlcDI1IiwiX2l0ZXJhdG9yMjYiLCJfc3RlcDI2Iiwic2NydXRpblNwbGl0UGF0aCIsInNjcnV0aW5GaWxlbmFtZSIsInNjcnV0aW5GaWxlUGF0aCIsInNjcnV0aW5Kc29uIiwicXVlc3Rpb25CeVVpZCIsIlF1ZXN0aW9ucyIsIl9pdGVyYXRvcjI3IiwiX3N0ZXAyNyIsIl9pdGVyYXRvcjI4IiwiX3N0ZXAyOCIsInF1ZXN0aW9uU3BsaXRQYXRoIiwicXVlc3Rpb25GaWxlbmFtZSIsInF1ZXN0aW9uRmlsZVBhdGgiLCJxdWVzdGlvbkpzb24iLCJjb21wdGVSZW5kdUJ5VWlkIiwiQ29tcHRlc1JlbmR1c1NlYW5jZXMiLCJfaXRlcmF0b3IyOSIsIl9zdGVwMjkiLCJfaXRlcmF0b3IzMCIsIl9zdGVwMzAiLCJjb21wdGVSZW5kdVBhdGgiLCJjb21wdGVSZW5kdUZpbGVuYW1lIiwiY29tcHRlUmVuZHVGaWxlUGF0aCIsImNvbXB0ZVJlbmR1SnNvbiIsImxvYWRBc3NlbWJsZWVEYXRhRnJvbUJpZ0ZpbGVzIiwiX3JlZjMiLCJfcmVmMyRsb2ciLCJfaXRlcmF0b3IzMSIsIl9zdGVwMzEiLCJ0b0FjdGV1cnNFdE9yZ2FuZXMiLCJfaXRlcmF0b3IzMiIsImFjdGV1cnMiLCJfc3RlcDMyIiwiX2l0ZXJhdG9yMzMiLCJvcmdhbmVzIiwiX3N0ZXAzMyIsIl9pdGVyYXRvcjM0IiwiX3N0ZXAzNCIsInRvQWdlbmRhcyIsIl9pdGVyYXRvcjM1IiwicmV1bmlvbnMiLCJfc3RlcDM1IiwiX2l0ZXJhdG9yMzYiLCJfc3RlcDM2IiwiX2l0ZXJhdG9yMzciLCJfc3RlcDM3IiwiX2l0ZXJhdG9yMzgiLCJfc3RlcDM4IiwidG9BbWVuZGVtZW50cyIsIl9pdGVyYXRvcjM5IiwidGV4dGVzTGVnaXNsYXRpZnMiLCJfc3RlcDM5IiwidGV4dGVMZWdpc2xhdGlmIiwiX2l0ZXJhdG9yNDAiLCJfc3RlcDQwIiwiX2l0ZXJhdG9yNDEiLCJfc3RlcDQxIiwidG9Eb3NzaWVyc0xlZ2lzbGF0aWZzIiwiX2l0ZXJhdG9yNDIiLCJfc3RlcDQyIiwiX2l0ZXJhdG9yNDMiLCJkb3NzaWVyc1BhcmxlbWVudGFpcmVzIiwiX3N0ZXA0MyIsIl9pdGVyYXRvcjQ0IiwiX3N0ZXA0NCIsInRvU2NydXRpbnMiLCJfaXRlcmF0b3I0NSIsIl9zdGVwNDUiLCJfaXRlcmF0b3I0NiIsIl9zdGVwNDYiLCJ0b1F1ZXN0aW9ucyIsIl9pdGVyYXRvcjQ3IiwiX3N0ZXA0NyIsIl9pdGVyYXRvcjQ4IiwiX3N0ZXA0OCIsImNvbXB0ZXNSZW5kdXMiLCJ0b0NvbXB0ZXNSZW5kdXMiLCJfaXRlcmF0b3I0OSIsIl9zdGVwNDkiLCJsb2FkQXNzZW1ibGVlRG9jdW1lbnRGaWxlIiwiZm9ybWF0cyIsImRvY3VtZW50c0RpciIsImRvY3VtZW50RGlyIiwicGF0aEZyb21Eb2N1bWVudFVpZCIsImluZGV4UGF0aCIsInBhdGhFeGlzdHNTeW5jIiwiaW5kZXgiLCJyZWFkSnNvblN5bmMiLCJfaXRlcmF0b3I1MCIsIl9zdGVwNTAiLCJfaW5kZXgkZm9ybWF0IiwiZm9ybWF0IiwiX2l0ZXJhdG9yNTEiLCJfc3RlcDUxIiwiX3N0ZXA1MSR2YWx1ZSIsInVybCIsImxvYWRBc3NlbWJsZWVQaG90b3NEZXB1dGVzIiwiX3JlZjQiLCJfcmVmNCRsb2ciLCJsb2FkQXNzZW1ibGVlUGhvdG9zU2VuYXRldXJzIiwiX3JlZjUiLCJfcmVmNSRsb2ciLCJfZ3JvdXBzJGRvY3VtZW50VHlwZSIsIl9ncm91cHMkY2hhbWJyZSIsIl9ncm91cHMkcmVwdWJsaXF1ZSIsIl9ncm91cHMkbGVnaXNsYXR1cmUiLCJfZ3JvdXBzJG51bWVybyIsIm1hdGNoIiwiYXNzZXJ0Iiwibm90U3RyaWN0RXF1YWwiLCJjaGFtYnJlRGlyIiwicmVwdWJsaXF1ZURpciIsImxlZ2lzbGF0dXJlRGlyIiwiZW5zdXJlRGlyU3luYyIsImV0YXREaXIiLCJzdWJzdHJpbmciLCJudW1lcm9NaWxsaWVyc0RpciIsInBhdGhGcm9tRG9zc2llclBhcmxlbWVudGFpcmVVaWQiLCJkb3NzaWVyc0RpciIsInBhdGhGcm9tVWlkIiwicGF0aEZyb21SZXVuaW9uVWlkIiwicmV1bmlvbnNEaXIiLCJzZXNzaW9uRGlyIiwiaWREaXIiLCJudW1lcm9NaWxsaW9uc0RpciIsInBhdGhGcm9tU2NydXRpblVpZCIsInNjcnV0aW5zRGlyIiwicGF0aEZyb21RdWVzdGlvblVpZCIsInBhdGhGcm9tQ29tcHRlUmVuZHVVaWQiLCJkYXRhUmVnZXhwIl0sInNvdXJjZXMiOlsiLi4vc3JjL2xvYWRlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8vIExvYWQgZGF0YSBmcm9tIGZpbGVzXG5cbmltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuZXhwb3J0IHsgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4vZGF0YXNldHNcIlxuaW1wb3J0IHsgZGF0YXNldHMsIEVuYWJsZWREYXRhc2V0cywgRGF0YXNldCB9IGZyb20gXCIuL2RhdGFzZXRzXCJcbmltcG9ydCB0eXBlIHsgRG9jdW1lbnRGaWxlc0luZGV4IH0gZnJvbSBcIi4vZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuZXhwb3J0IHsgd2Fsa0RpciB9IGZyb20gXCIuL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQgeyB3YWxrRGlyIH0gZnJvbSBcIi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7XG4gIEFjdGV1cixcbiAgQ29udmVydCBhcyBBY3RldXJzRXRPcmdhbmVzQ29udmVydCxcbiAgT3JnYW5lLFxuICBQaG90byxcbn0gZnJvbSBcIi4vdHlwZXMvYWN0ZXVyc19ldF9vcmdhbmVzXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgQWdlbmRhc0NvbnZlcnQsIFJldW5pb24gfSBmcm9tIFwiLi90eXBlcy9hZ2VuZGFzXCJcbmltcG9ydCB7IEFtZW5kZW1lbnQsIENvbnZlcnQgYXMgQW1lbmRlbWVudHNDb252ZXJ0IH0gZnJvbSBcIi4vdHlwZXMvYW1lbmRlbWVudHNcIlxuaW1wb3J0IHtcbiAgQ29udmVydCBhcyBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydCxcbiAgRG9jdW1lbnQsXG4gIERvc3NpZXJQYXJsZW1lbnRhaXJlLFxufSBmcm9tIFwiLi90eXBlcy9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5pbXBvcnQgeyBMZWdpc2xhdHVyZSB9IGZyb20gXCIuL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIFNjcnV0aW5zQ29udmVydCwgU2NydXRpbiB9IGZyb20gXCIuL3R5cGVzL3NjcnV0aW5zXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgUXVlc3Rpb25zQ29udmVydCwgUXVlc3Rpb24gfSBmcm9tIFwiLi90eXBlcy9xdWVzdGlvbnNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBDb21wdGVzUmVuZHVzQ29udmVydCwgQ29tcHRlUmVuZHUgfSBmcm9tIFwiLi90eXBlcy9kZWJhdHNcIlxuaW1wb3J0IHsgVGV4dGVzTG9pLCBDb252ZXJ0IGFzIFRleHRlc0xvaUNvbnZlcnQgfSBmcm9tIFwiLi90eXBlcy90ZXh0ZXNfbG9pXCJcbmltcG9ydCB7IERvY3VtZW50VXJsRm9ybWF0IH0gZnJvbSBcIi4vdXJsc1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YSB7XG4gIHJlYWRvbmx5IGFjdGV1ckJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IEFjdGV1ciB9XG4gIHJlYWRvbmx5IGFtZW5kZW1lbnRCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBbWVuZGVtZW50IH1cbiAgcmVhZG9ubHkgZG9jdW1lbnRCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb2N1bWVudCB9XG4gIHJlYWRvbmx5IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH1cbiAgcmVhZG9ubHkgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluOiB7XG4gICAgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmVcbiAgfVxuICByZWFkb25seSBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlIH1cbiAgcmVhZG9ubHkgb3JnYW5lQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogT3JnYW5lIH1cbiAgcmVhZG9ubHkgcGhvdG9CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBQaG90byB9XG4gIHJlYWRvbmx5IHJldW5pb25CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBSZXVuaW9uIH1cbiAgcmVhZG9ubHkgcmV1bmlvbnNCeURheTogeyBbZGF5OiBzdHJpbmddOiBSZXVuaW9uW10gfVxuICByZWFkb25seSByZXVuaW9uc0J5RG9zc2llclVpZDogeyBbZG9zc2llclVpZDogc3RyaW5nXTogUmV1bmlvbltdIH1cbiAgcmVhZG9ubHkgc2NydXRpbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFNjcnV0aW4gfVxuICByZWFkb25seSBxdWVzdGlvbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFF1ZXN0aW9uIH1cbiAgcmVhZG9ubHkgY29tcHRlUmVuZHVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBDb21wdGVSZW5kdSB9XG59XG5cbmNvbnN0IGRvY3VtZW50VWlkUmVnZXggPVxuICAvXigoPzxkb2N1bWVudFR5cGU+QUNJTnxBTENOfEFWQ0V8QVZJU3xERUNMfEVUREl8TEVUVHxNRVNTfE1JT058UElPTnxQTlJFfFBSSkx8UkFQUHxSSU5GfFJJT04pKD88Y2hhbWJyZT5BTnxDR3xTTikoPzxyZXB1YmxpcXVlPlJcXGQrKVtMU10oPzxsZWdpc2xhdHVyZT5cXGQrKSg/PGV0YXQ+QnxCVEF8QlRDfFRBUCkoPzxudW1lcm8+XFxkKykoLS4qKT8pfCgoPzxkb2N1bWVudFR5cGUyPk1JT04pKD88Y2hhbWJyZTI+QU58U04pKD88cmVwdWJsaXF1ZTI+UlxcZCspW0xTXSg/PGxlZ2lzbGF0dXJlMj5cXGQrKS1OKD88bnVtZXJvMj5cXGQrKSkkL1xuY29uc3QgZG9zc2llclVpZFJlZ2V4ID0gL15ETChSXFxkKykoTFxcZCspTihcXGQrKSQvXG5jb25zdCByZXVuaW9uVWlkUmVnZXggPVxuICAvXlJVKEFOfENHfFNOKShSXFxkKykoTFxcZCspKFtBU11cXGR7NH0pKElEQ3xJREZMP3xJRFMpKFxcZCspJC9cbmNvbnN0IHNjcnV0aW5VaWRSZWdleCA9IC9eVlQoQU58Q0cpKFJcXGQrKShMXFxkKylWKFxcZCspJC9cbmNvbnN0IGNvbXB0ZVJlbmR1VWlkUmVnZXg6IFJlZ0V4cCA9XG4gIC9eQ1JTKEFOfENHKShSXFxkKykoTFxcZCspKFNcXGQrKShPfEV8RCkoXFxkKykoTlxcZCspJC9cbmNvbnN0IHF1ZXN0aW9uVWlkUmVnZXg6IFJlZ0V4cCA9IC9eUUFOKFJcXGQrKShMXFxkKylRKEV8R3xPU0QpKFxcZCspJC9cblxudHlwZSBJdGVtQ29udmVydGVyPFQ+ID0gKGpzb246IHN0cmluZykgPT4gVFxuXG5mdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVJdGVtczxUIGV4dGVuZHMgeyB1aWQ6IHN0cmluZyB9PihcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIGRhdGFzZXRzOiBEYXRhc2V0W10sXG4gIGNvbnZlcnRUb0l0ZW06IEl0ZW1Db252ZXJ0ZXI8VD4sXG4gIHN1YmZvbGRlck5hbWU6IHN0cmluZ1tdLFxuICBmaWxlRXh0ZW5zaW9uOiBzdHJpbmcgPSBcImpzb25cIixcbiAgeyBub1ZhbGlkYXRpb24gPSBmYWxzZSwgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogR2VuZXJhdG9yPHsgaXRlbTogVDsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LCB2b2lkLCB1bmtub3duPiB7XG4gIGNvbnN0IGl0ZW1VaWQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGxldCBmaWxlRXh0ZW5zaW9uUmVnZXggPSBuZXcgUmVnRXhwKGBcXFxcLiR7ZmlsZUV4dGVuc2lvbn0kYClcbiAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgZGF0YURpcixcbiAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZShmaWxlRXh0ZW5zaW9uUmVnZXgsIFwiX25ldHRveWVcIiksXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCBpdGVtU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgc3ViZm9sZGVyTmFtZSkpIHtcbiAgICAgIGNvbnN0IGl0ZW1GaWxlbmFtZSA9IGl0ZW1TcGxpdFBhdGhbaXRlbVNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFpdGVtRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgaXRlbUZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLml0ZW1TcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7aXRlbUZpbGVQYXRofeKApmApXG4gICAgICB9XG5cbiAgICAgIGxldCBpdGVtSnNvbjogYW55ID0gZnMucmVhZEZpbGVTeW5jKGl0ZW1GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGxldCBpdGVtOiBUID0gbm9WYWxpZGF0aW9uXG4gICAgICAgID8gSlNPTi5wYXJzZShpdGVtSnNvbilcbiAgICAgICAgOiBjb252ZXJ0VG9JdGVtKGl0ZW1Kc29uKVxuXG4gICAgICBpZiAoaXRlbVVpZC5oYXMoaXRlbS51aWQpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpdGVtVWlkLmFkZChpdGVtLnVpZClcbiAgICAgIHlpZWxkIHsgaXRlbTogaXRlbSwgZGF0YXNldExlZ2lzbGF0dXJlOiBkYXRhc2V0LmxlZ2lzbGF0dXJlIH1cblxuICAgICAgaXRlbUpzb24gPSBudWxsXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVBY3RldXJzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgb3B0aW9ucyA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IGFjdGV1cjogQWN0ZXVyOyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBmb3IgKGNvbnN0IHtcbiAgICBpdGVtOiBhY3RldXIsXG4gICAgZGF0YXNldExlZ2lzbGF0dXJlLFxuICB9IG9mIGl0ZXJMb2FkQXNzZW1ibGVlSXRlbXM8QWN0ZXVyPihcbiAgICBkYXRhRGlyLFxuICAgIGxlZ2lzbGF0dXJlLFxuICAgIGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXMsXG4gICAgQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQudG9BY3RldXIsXG4gICAgW1wiYWN0ZXVyc1wiXSxcbiAgICBcImpzb25cIixcbiAgICBvcHRpb25zLFxuICApKSB7XG4gICAgeWllbGQgeyBhY3RldXIsIGRhdGFzZXRMZWdpc2xhdHVyZSB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZU9yZ2FuZXMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgb3JnYW5lOiBPcmdhbmU7IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGZvciAoY29uc3Qge1xuICAgIGl0ZW06IG9yZ2FuZSxcbiAgICBkYXRhc2V0TGVnaXNsYXR1cmUsXG4gIH0gb2YgaXRlckxvYWRBc3NlbWJsZWVJdGVtczxPcmdhbmU+KFxuICAgIGRhdGFEaXIsXG4gICAgbGVnaXNsYXR1cmUsXG4gICAgZGF0YXNldHMuYWN0ZXVyc0V0T3JnYW5lcyxcbiAgICBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b09yZ2FuZSxcbiAgICBbXCJvcmdhbmVzXCJdLFxuICAgIFwianNvblwiLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICB5aWVsZCB7IG9yZ2FuZSwgZGF0YXNldExlZ2lzbGF0dXJlIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlQW1lbmRlbWVudHMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgYW1lbmRlbWVudDogQW1lbmRlbWVudDsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgZm9yIChjb25zdCB7XG4gICAgaXRlbTogYW1lbmRlbWVudCxcbiAgICBkYXRhc2V0TGVnaXNsYXR1cmUsXG4gIH0gb2YgaXRlckxvYWRBc3NlbWJsZWVJdGVtczxBbWVuZGVtZW50PihcbiAgICBkYXRhRGlyLFxuICAgIGxlZ2lzbGF0dXJlLFxuICAgIGRhdGFzZXRzLmFtZW5kZW1lbnRzLFxuICAgIEFtZW5kZW1lbnRzQ29udmVydC50b0FtZW5kZW1lbnQsXG4gICAgW10sXG4gICAgXCJqc29uXCIsXG4gICAgb3B0aW9ucyxcbiAgKSkge1xuICAgIHlpZWxkIHsgYW1lbmRlbWVudCwgZGF0YXNldExlZ2lzbGF0dXJlIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlRG9jdW1lbnRzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgb3B0aW9ucyA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IGRvY3VtZW50OiBEb2N1bWVudDsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgZm9yIChjb25zdCB7XG4gICAgaXRlbTogZG9jdW1lbnQsXG4gICAgZGF0YXNldExlZ2lzbGF0dXJlLFxuICB9IG9mIGl0ZXJMb2FkQXNzZW1ibGVlSXRlbXM8RG9jdW1lbnQ+KFxuICAgIGRhdGFEaXIsXG4gICAgbGVnaXNsYXR1cmUsXG4gICAgZGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcyxcbiAgICBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0RvY3VtZW50LFxuICAgIFtcImRvY3VtZW50c1wiXSxcbiAgICBcImpzb25cIixcbiAgICBvcHRpb25zLFxuICApKSB7XG4gICAgeWllbGQgeyBkb2N1bWVudCwgZGF0YXNldExlZ2lzbGF0dXJlIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlRG9zc2llcnNQYXJsZW1lbnRhaXJlcyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIG9wdGlvbnMgPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAge1xuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmVcbiAgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGZvciAoY29uc3Qge1xuICAgIGl0ZW06IGRvc3NpZXJQYXJsZW1lbnRhaXJlLFxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZSxcbiAgfSBvZiBpdGVyTG9hZEFzc2VtYmxlZUl0ZW1zPERvc3NpZXJQYXJsZW1lbnRhaXJlPihcbiAgICBkYXRhRGlyLFxuICAgIGxlZ2lzbGF0dXJlLFxuICAgIGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMsXG4gICAgRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb3NzaWVyUGFybGVtZW50YWlyZSxcbiAgICBbXCJkb3NzaWVyc1wiXSxcbiAgICBcImpzb25cIixcbiAgICBvcHRpb25zLFxuICApKSB7XG4gICAgeWllbGQgeyBkb3NzaWVyUGFybGVtZW50YWlyZSwgZGF0YXNldExlZ2lzbGF0dXJlIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlUmV1bmlvbnMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgcmV1bmlvbjogUmV1bmlvbjsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgZm9yIChjb25zdCB7XG4gICAgaXRlbTogcmV1bmlvbixcbiAgICBkYXRhc2V0TGVnaXNsYXR1cmUsXG4gIH0gb2YgaXRlckxvYWRBc3NlbWJsZWVJdGVtczxSZXVuaW9uPihcbiAgICBkYXRhRGlyLFxuICAgIGxlZ2lzbGF0dXJlLFxuICAgIGRhdGFzZXRzLmFnZW5kYXMsXG4gICAgQWdlbmRhc0NvbnZlcnQudG9SZXVuaW9uLFxuICAgIFtdLFxuICAgIFwianNvblwiLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICB5aWVsZCB7IHJldW5pb24sIGRhdGFzZXRMZWdpc2xhdHVyZSB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZVNjcnV0aW5zKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgb3B0aW9ucyA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IHNjcnV0aW46IFNjcnV0aW47IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGZvciAoY29uc3Qge1xuICAgIGl0ZW06IHNjcnV0aW4sXG4gICAgZGF0YXNldExlZ2lzbGF0dXJlLFxuICB9IG9mIGl0ZXJMb2FkQXNzZW1ibGVlSXRlbXM8U2NydXRpbj4oXG4gICAgZGF0YURpcixcbiAgICBsZWdpc2xhdHVyZSxcbiAgICBkYXRhc2V0cy5zY3J1dGlucyxcbiAgICBTY3J1dGluc0NvbnZlcnQudG9TY3J1dGluLFxuICAgIFtdLFxuICAgIFwianNvblwiLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICB5aWVsZCB7IHNjcnV0aW4sIGRhdGFzZXRMZWdpc2xhdHVyZSB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZVF1ZXN0aW9ucyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIG9wdGlvbnMgPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBxdWVzdGlvbjogUXVlc3Rpb247IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGZvciAoY29uc3Qge1xuICAgIGl0ZW06IHF1ZXN0aW9uLFxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZSxcbiAgfSBvZiBpdGVyTG9hZEFzc2VtYmxlZUl0ZW1zPFF1ZXN0aW9uPihcbiAgICBkYXRhRGlyLFxuICAgIGxlZ2lzbGF0dXJlLFxuICAgIGRhdGFzZXRzLnF1ZXN0aW9ucyxcbiAgICBRdWVzdGlvbnNDb252ZXJ0LnRvUXVlc3Rpb24sXG4gICAgW10sXG4gICAgXCJqc29uXCIsXG4gICAgb3B0aW9ucyxcbiAgKSkge1xuICAgIHlpZWxkIHsgcXVlc3Rpb24sIGRhdGFzZXRMZWdpc2xhdHVyZSB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZUNvbXB0ZXNSZW5kdXMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgY29tcHRlUmVuZHU6IENvbXB0ZVJlbmR1OyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBmb3IgKGNvbnN0IHtcbiAgICBpdGVtOiBjb21wdGVSZW5kdSxcbiAgICBkYXRhc2V0TGVnaXNsYXR1cmUsXG4gIH0gb2YgaXRlckxvYWRBc3NlbWJsZWVJdGVtczxDb21wdGVSZW5kdT4oXG4gICAgZGF0YURpcixcbiAgICBsZWdpc2xhdHVyZSxcbiAgICBkYXRhc2V0cy5jb21wdGVzUmVuZHVzU2VhbmNlcyxcbiAgICBDb21wdGVzUmVuZHVzQ29udmVydC50b0NvbXB0ZVJlbmR1LFxuICAgIFtdLFxuICAgIFwieG1sXCIsXG4gICAgb3B0aW9ucyxcbiAgKSkge1xuICAgIHlpZWxkIHsgY29tcHRlUmVuZHUsIGRhdGFzZXRMZWdpc2xhdHVyZSB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZVRleHRlTG9pKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgb3B0aW9ucyA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IHRleHRlTG9pOiBUZXh0ZXNMb2k7IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGZvciAoY29uc3Qge1xuICAgIGl0ZW06IHRleHRlTG9pLFxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZSxcbiAgfSBvZiBpdGVyTG9hZEFzc2VtYmxlZUl0ZW1zPFRleHRlc0xvaT4oXG4gICAgZGF0YURpcixcbiAgICBsZWdpc2xhdHVyZSxcbiAgICBkYXRhc2V0cy50ZXh0ZXNMb2ksXG4gICAgVGV4dGVzTG9pQ29udmVydC50b1RleHRlc0xvaSxcbiAgICBbXSxcbiAgICBcImpzb25cIixcbiAgICBvcHRpb25zLFxuICApKSB7XG4gICAgeWllbGQgeyB0ZXh0ZUxvaSwgZGF0YXNldExlZ2lzbGF0dXJlIH1cbiAgfVxufVxuXG4vLy8gTG9hZCBkYXRhIGZyb20gc3BsaXQgZmlsZXMuXG4vLy8gRGVwcmVjYXRlZDogVXNlIGl0ZXJMb2FkLi4uIGl0ZXJhdG9ycyBpbnN0ZWFkLlxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBc3NlbWJsZWVEYXRhKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGVuYWJsZWREYXRhc2V0czogRW5hYmxlZERhdGFzZXRzLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogRGF0YSB7XG4gIGNvbnN0IGFjdGV1ckJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IEFjdGV1ciB9ID0ge31cbiAgY29uc3Qgb3JnYW5lQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogT3JnYW5lIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYWN0ZXVyc0V0T3JnYW5lcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgICAgKVxuXG4gICAgICBmb3IgKGNvbnN0IGFjdGV1clNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIsIFtcImFjdGV1cnNcIl0pKSB7XG4gICAgICAgIGNvbnN0IGFjdGV1ckZpbGVuYW1lID0gYWN0ZXVyU3BsaXRQYXRoW2FjdGV1clNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICBpZiAoIWFjdGV1ckZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGV1ckZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLmFjdGV1clNwbGl0UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7YWN0ZXVyRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RldXJKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoYWN0ZXVyRmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IGFjdGV1ciA9IEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LnRvQWN0ZXVyKGFjdGV1ckpzb24pXG4gICAgICAgIC8vIEtlZXAgdGhlIGZpcnN0IGV4aXN0aW5nIFwiYWN0ZXVyXCIsIGJlY2F1c2UgdGhlIGZpcnN0IHdyYXBwZXIgaXMgdGhlIG1vc3QgY29tcGxldGUuXG4gICAgICAgIGlmIChhY3RldXJCeVVpZFthY3RldXIudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgYWN0ZXVyQnlVaWRbYWN0ZXVyLnVpZF0gPSBhY3RldXJcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IG9yZ2FuZVNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIsIFtcIm9yZ2FuZXNcIl0pKSB7XG4gICAgICAgIGNvbnN0IG9yZ2FuZUZpbGVuYW1lID0gb3JnYW5lU3BsaXRQYXRoW29yZ2FuZVNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICBpZiAoIW9yZ2FuZUZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9yZ2FuZUZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLm9yZ2FuZVNwbGl0UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7b3JnYW5lRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcmdhbmVKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMob3JnYW5lRmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IG9yZ2FuZSA9IEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LnRvT3JnYW5lKG9yZ2FuZUpzb24pXG4gICAgICAgIC8vIEtlZXAgdGhlIGZpcnN0IGV4aXN0aW5nIFwib3JnYW5lXCIsIGJlY2F1c2UgdGhlIGZpcnN0IHdyYXBwZXIgaXMgdGhlIG1vc3QgY29tcGxldGUuXG4gICAgICAgIGlmIChvcmdhbmVCeVVpZFtvcmdhbmUudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgb3JnYW5lQnlVaWRbb3JnYW5lLnVpZF0gPSBvcmdhbmVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJldW5pb25CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBSZXVuaW9uIH0gPSB7fVxuICBjb25zdCByZXVuaW9uc0J5RGF5OiB7IFtkYXk6IHN0cmluZ106IFJldW5pb25bXSB9ID0ge31cbiAgY29uc3QgcmV1bmlvbnNCeURvc3NpZXJVaWQ6IHsgW2Rvc3NpZXJVaWQ6IHN0cmluZ106IFJldW5pb25bXSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BZ2VuZGFzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFnZW5kYXMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcbiAgICAgIGZvciAoY29uc3QgcmV1bmlvblNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICAgIGNvbnN0IHJldW5pb25GaWxlbmFtZSA9IHJldW5pb25TcGxpdFBhdGhbcmV1bmlvblNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICBpZiAoIXJldW5pb25GaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXVuaW9uRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4ucmV1bmlvblNwbGl0UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7cmV1bmlvbkZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmV1bmlvbkpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhyZXVuaW9uRmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IHJldW5pb24gPSBBZ2VuZGFzQ29udmVydC50b1JldW5pb24ocmV1bmlvbkpzb24pXG4gICAgICAgIGlmIChyZXVuaW9uQnlVaWRbcmV1bmlvbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXVuaW9uQnlVaWRbcmV1bmlvbi51aWRdID0gcmV1bmlvblxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF5ID0gcmV1bmlvbi50aW1lc3RhbXBEZWJ1dC50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXVxuICAgICAgICBsZXQgcmV1bmlvbnNBdERheSA9IHJldW5pb25zQnlEYXlbZGF5XVxuICAgICAgICBpZiAocmV1bmlvbnNBdERheSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV1bmlvbnNBdERheSA9IHJldW5pb25zQnlEYXlbZGF5XSA9IFtdXG4gICAgICAgIH1cbiAgICAgICAgcmV1bmlvbnNBdERheS5wdXNoKHJldW5pb24pXG5cbiAgICAgICAgY29uc3Qgb2RqID0gcmV1bmlvbi5vZGpcbiAgICAgICAgaWYgKG9kaiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBwb2ludE9kaiBvZiBvZGoucG9pbnRzT2RqIHx8IFtdKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRvc3NpZXJMZWdpc2xhdGlmUmVmIG9mIHBvaW50T2RqLmRvc3NpZXJzTGVnaXNsYXRpZnNSZWZzIHx8XG4gICAgICAgICAgICAgIFtdKSB7XG4gICAgICAgICAgICAgIGxldCByZXVuaW9uc0F0RG9zc2llclVpZCA9XG4gICAgICAgICAgICAgICAgcmV1bmlvbnNCeURvc3NpZXJVaWRbZG9zc2llckxlZ2lzbGF0aWZSZWZdXG4gICAgICAgICAgICAgIGlmIChyZXVuaW9uc0F0RG9zc2llclVpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV1bmlvbnNBdERvc3NpZXJVaWQgPSByZXVuaW9uc0J5RG9zc2llclVpZFtcbiAgICAgICAgICAgICAgICAgIGRvc3NpZXJMZWdpc2xhdGlmUmVmXG4gICAgICAgICAgICAgICAgXSA9IFtdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV1bmlvbnNBdERvc3NpZXJVaWQucHVzaChyZXVuaW9uKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGFtZW5kZW1lbnRCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBbWVuZGVtZW50IH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFtZW5kZW1lbnRzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFtZW5kZW1lbnRzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3QgYW1lbmRlbWVudFNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICAgIGNvbnN0IGFtZW5kZW1lbnRGaWxlbmFtZSA9XG4gICAgICAgICAgYW1lbmRlbWVudFNwbGl0UGF0aFthbWVuZGVtZW50U3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghYW1lbmRlbWVudEZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFtZW5kZW1lbnRGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5hbWVuZGVtZW50U3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHthbWVuZGVtZW50RmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbWVuZGVtZW50SnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGFtZW5kZW1lbnRGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgYW1lbmRlbWVudCA9IEFtZW5kZW1lbnRzQ29udmVydC50b0FtZW5kZW1lbnQoYW1lbmRlbWVudEpzb24pXG4gICAgICAgIGlmIChhbWVuZGVtZW50QnlVaWRbYW1lbmRlbWVudC51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBhbWVuZGVtZW50QnlVaWRbYW1lbmRlbWVudC51aWRdID0gYW1lbmRlbWVudFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZG9jdW1lbnRCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb2N1bWVudCB9ID0ge31cbiAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluOiB7XG4gICAgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmVcbiAgfSA9IHt9XG4gIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH0gPSB7fVxuICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgICAgKVxuXG4gICAgICBmb3IgKGNvbnN0IGRvY3VtZW50U3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgW1wiZG9jdW1lbnRzXCJdKSkge1xuICAgICAgICBjb25zdCBkb2N1bWVudEZpbGVuYW1lID0gZG9jdW1lbnRTcGxpdFBhdGhbZG9jdW1lbnRTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFkb2N1bWVudEZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRvY3VtZW50RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uZG9jdW1lbnRTcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2RvY3VtZW50RmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb2N1bWVudEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhkb2N1bWVudEZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBkb2N1bWVudCA9IERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LnRvRG9jdW1lbnQoZG9jdW1lbnRKc29uKVxuICAgICAgICBpZiAoZG9jdW1lbnRCeVVpZFtkb2N1bWVudC51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkb2N1bWVudEJ5VWlkW2RvY3VtZW50LnVpZF0gPSBkb2N1bWVudFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgZG9zc2llclNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIsIFtcImRvc3NpZXJzXCJdKSkge1xuICAgICAgICBjb25zdCBkb3NzaWVyRmlsZW5hbWUgPSBkb3NzaWVyU3BsaXRQYXRoW2Rvc3NpZXJTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFkb3NzaWVyRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZG9zc2llckZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLmRvc3NpZXJTcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2Rvc3NpZXJGaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRvc3NpZXJKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoZG9zc2llckZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBkb3NzaWVyID1cbiAgICAgICAgICBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0Rvc3NpZXJQYXJsZW1lbnRhaXJlKGRvc3NpZXJKc29uKVxuICAgICAgICBjb25zdCB0aXRyZURvc3NpZXIgPSBkb3NzaWVyLnRpdHJlRG9zc2llclxuICAgICAgICBpZiAoXG4gICAgICAgICAgdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluICYmXG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluW3RpdHJlRG9zc2llci5zZW5hdENoZW1pbl0gPT09XG4gICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluW3RpdHJlRG9zc2llci5zZW5hdENoZW1pbl0gPSBkb3NzaWVyXG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRpdHJlRG9zc2llci50aXRyZUNoZW1pbiAmJlxuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pblt0aXRyZURvc3NpZXIudGl0cmVDaGVtaW5dID09PVxuICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pblt0aXRyZURvc3NpZXIudGl0cmVDaGVtaW5dID0gZG9zc2llclxuICAgICAgICB9XG4gICAgICAgIGlmIChkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkW2Rvc3NpZXIudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZFtkb3NzaWVyLnVpZF0gPSBkb3NzaWVyXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgcGhvdG9CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBQaG90byB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5QaG90b3MpIHtcbiAgICB7XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgYHBob3Rvc19kZXB1dGVzXyR7XG4gICAgICAgICAgLy8gVE9ETzogSGFuZGxlIExlZ2lzbGF0dXJlLkFsbC5cbiAgICAgICAgICBsZWdpc2xhdHVyZSA9PT0gTGVnaXNsYXR1cmUuQWxsID8gTGVnaXNsYXR1cmUuRGl4U2VwdCA6IGxlZ2lzbGF0dXJlXG4gICAgICAgIH1gLFxuICAgICAgICBcImRlcHV0ZXMuanNvblwiLFxuICAgICAgKVxuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoanNvbkZpbGVQYXRoKSkge1xuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgICBPYmplY3QuYXNzaWduKHBob3RvQnlVaWQsIEpTT04ucGFyc2UoanNvbikpXG4gICAgICB9IGVsc2UgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgSWdub3JpbmcgbWlzc2luZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgIH1cblxuICAgIHtcbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBcInBob3Rvc19zZW5hdGV1cnNcIixcbiAgICAgICAgXCJzZW5hdGV1cnMuanNvblwiLFxuICAgICAgKVxuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoanNvbkZpbGVQYXRoKSkge1xuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgICBPYmplY3QuYXNzaWduKHBob3RvQnlVaWQsIEpTT04ucGFyc2UoanNvbikpXG4gICAgICB9IGVsc2UgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgSWdub3JpbmcgbWlzc2luZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNjcnV0aW5CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBTY3J1dGluIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlNjcnV0aW5zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnNjcnV0aW5zKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3Qgc2NydXRpblNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICAgIGNvbnN0IHNjcnV0aW5GaWxlbmFtZSA9IHNjcnV0aW5TcGxpdFBhdGhbc2NydXRpblNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICBpZiAoIXNjcnV0aW5GaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzY3J1dGluRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uc2NydXRpblNwbGl0UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7c2NydXRpbkZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2NydXRpbkpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhzY3J1dGluRmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IHNjcnV0aW4gPSBTY3J1dGluc0NvbnZlcnQudG9TY3J1dGluKHNjcnV0aW5Kc29uKVxuICAgICAgICBpZiAoc2NydXRpbkJ5VWlkW3NjcnV0aW4udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2NydXRpbkJ5VWlkW3NjcnV0aW4udWlkXSA9IHNjcnV0aW5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHF1ZXN0aW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUXVlc3Rpb24gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUXVlc3Rpb25zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnF1ZXN0aW9ucykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgICAgKVxuXG4gICAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgICAgY29uc3QgcXVlc3Rpb25GaWxlbmFtZSA9IHF1ZXN0aW9uU3BsaXRQYXRoW3F1ZXN0aW9uU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghcXVlc3Rpb25GaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWVzdGlvbkZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLnF1ZXN0aW9uU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtxdWVzdGlvbkZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcXVlc3Rpb25Kc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMocXVlc3Rpb25GaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgcXVlc3Rpb24gPSBRdWVzdGlvbnNDb252ZXJ0LnRvUXVlc3Rpb24ocXVlc3Rpb25Kc29uKVxuICAgICAgICBpZiAocXVlc3Rpb25CeVVpZFtxdWVzdGlvbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBxdWVzdGlvbkJ5VWlkW3F1ZXN0aW9uLnVpZF0gPSBxdWVzdGlvblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY29tcHRlUmVuZHVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBDb21wdGVSZW5kdSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Db21wdGVzUmVuZHVzU2VhbmNlcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5jb21wdGVzUmVuZHVzU2VhbmNlcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgICAgKVxuXG4gICAgICBmb3IgKGNvbnN0IGNvbXB0ZVJlbmR1UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1RmlsZW5hbWUgPSBjb21wdGVSZW5kdVBhdGhbY29tcHRlUmVuZHVQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghY29tcHRlUmVuZHVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb21wdGVSZW5kdUZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLmNvbXB0ZVJlbmR1UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7Y29tcHRlUmVuZHVGaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1SnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGNvbXB0ZVJlbmR1RmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1ID0gQ29tcHRlc1JlbmR1c0NvbnZlcnQudG9Db21wdGVSZW5kdShjb21wdGVSZW5kdUpzb24pXG4gICAgICAgIGlmIChjb21wdGVSZW5kdUJ5VWlkW2NvbXB0ZVJlbmR1LnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbXB0ZVJlbmR1QnlVaWRbY29tcHRlUmVuZHUudWlkXSA9IGNvbXB0ZVJlbmR1XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFjdGV1ckJ5VWlkLFxuICAgIGFtZW5kZW1lbnRCeVVpZCxcbiAgICBkb2N1bWVudEJ5VWlkLFxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbixcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW4sXG4gICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZCxcbiAgICBvcmdhbmVCeVVpZCxcbiAgICBwaG90b0J5VWlkLFxuICAgIHJldW5pb25CeVVpZCxcbiAgICByZXVuaW9uc0J5RGF5LFxuICAgIHJldW5pb25zQnlEb3NzaWVyVWlkLFxuICAgIHNjcnV0aW5CeVVpZCxcbiAgICBxdWVzdGlvbkJ5VWlkLFxuICAgIGNvbXB0ZVJlbmR1QnlVaWQsXG4gIH1cbn1cblxuLy8vIExvYWQgZGF0YSBmcm9tIGJpZyBtb25vbHl0aWMgZmlsZXMuXG4vLy8gRGVwcmVjYXRlZDogQXNzZW1ibMOpZSBuYXRpb25hbGUgb3BlbiBkYXRhIG5vIG1vcmUgdXNlcyBtb25vbHl0aWMgZmlsZXMuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFzc2VtYmxlZURhdGFGcm9tQmlnRmlsZXMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgZW5hYmxlZERhdGFzZXRzOiBFbmFibGVkRGF0YXNldHMsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiBEYXRhIHtcbiAgY29uc3QgYWN0ZXVyQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQWN0ZXVyIH0gPSB7fVxuICBjb25zdCBvcmdhbmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBPcmdhbmUgfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWN0ZXVyc0V0T3JnYW5lcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llLmpzb25cIiksXG4gICAgICApXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgY29uc3QgYWN0ZXVyc0V0T3JnYW5lcyA9IEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LnRvQWN0ZXVyc0V0T3JnYW5lcyhqc29uKVxuICAgICAgZm9yIChjb25zdCBhY3RldXIgb2YgYWN0ZXVyc0V0T3JnYW5lcy5hY3RldXJzKSB7XG4gICAgICAgIC8vIEtlZXAgdGhlIGZpcnN0IGV4aXN0aW5nIFwiYWN0ZXVyXCIsIGJlY2F1c2UgdGhlIGZpcnN0IHdyYXBwZXIgaXMgdGhlIG1vc3QgY29tcGxldGUuXG4gICAgICAgIGlmIChhY3RldXJCeVVpZFthY3RldXIudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgYWN0ZXVyQnlVaWRbYWN0ZXVyLnVpZF0gPSBhY3RldXJcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBvcmdhbmUgb2YgYWN0ZXVyc0V0T3JnYW5lcy5vcmdhbmVzKSB7XG4gICAgICAgIC8vIEtlZXAgdGhlIGZpcnN0IGV4aXN0aW5nIFwib3JnYW5lXCIsIGJlY2F1c2UgdGhlIGZpcnN0IHdyYXBwZXIgaXMgdGhlIG1vc3QgY29tcGxldGUuXG4gICAgICAgIGlmIChvcmdhbmVCeVVpZFtvcmdhbmUudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgb3JnYW5lQnlVaWRbb3JnYW5lLnVpZF0gPSBvcmdhbmVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJldW5pb25CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBSZXVuaW9uIH0gPSB7fVxuICBjb25zdCByZXVuaW9uc0J5RGF5OiB7IFtkYXk6IHN0cmluZ106IFJldW5pb25bXSB9ID0ge31cbiAgY29uc3QgcmV1bmlvbnNCeURvc3NpZXJVaWQ6IHsgW2Rvc3NpZXJVaWQ6IHN0cmluZ106IFJldW5pb25bXSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BZ2VuZGFzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFnZW5kYXMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBhZ2VuZGFzID0gQWdlbmRhc0NvbnZlcnQudG9BZ2VuZGFzKGpzb24pXG4gICAgICBmb3IgKGNvbnN0IHJldW5pb24gb2YgYWdlbmRhcy5yZXVuaW9ucykge1xuICAgICAgICBpZiAocmV1bmlvbkJ5VWlkW3JldW5pb24udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV1bmlvbkJ5VWlkW3JldW5pb24udWlkXSA9IHJldW5pb25cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRheSA9IHJldW5pb24udGltZXN0YW1wRGVidXQudG9JU09TdHJpbmcoKS5zcGxpdChcIlRcIilbMF1cbiAgICAgICAgbGV0IHJldW5pb25zQXREYXkgPSByZXVuaW9uc0J5RGF5W2RheV1cbiAgICAgICAgaWYgKHJldW5pb25zQXREYXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldW5pb25zQXREYXkgPSByZXVuaW9uc0J5RGF5W2RheV0gPSBbXVxuICAgICAgICB9XG4gICAgICAgIHJldW5pb25zQXREYXkucHVzaChyZXVuaW9uKVxuXG4gICAgICAgIGNvbnN0IG9kaiA9IHJldW5pb24ub2RqXG4gICAgICAgIGlmIChvZGogIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGZvciAoY29uc3QgcG9pbnRPZGogb2Ygb2RqLnBvaW50c09kaiB8fCBbXSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBkb3NzaWVyTGVnaXNsYXRpZlJlZiBvZiBwb2ludE9kai5kb3NzaWVyc0xlZ2lzbGF0aWZzUmVmcyB8fFxuICAgICAgICAgICAgICBbXSkge1xuICAgICAgICAgICAgICBsZXQgcmV1bmlvbnNBdERvc3NpZXJVaWQgPVxuICAgICAgICAgICAgICAgIHJldW5pb25zQnlEb3NzaWVyVWlkW2Rvc3NpZXJMZWdpc2xhdGlmUmVmXVxuICAgICAgICAgICAgICBpZiAocmV1bmlvbnNBdERvc3NpZXJVaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldW5pb25zQXREb3NzaWVyVWlkID0gcmV1bmlvbnNCeURvc3NpZXJVaWRbXG4gICAgICAgICAgICAgICAgICBkb3NzaWVyTGVnaXNsYXRpZlJlZlxuICAgICAgICAgICAgICAgIF0gPSBbXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldW5pb25zQXREb3NzaWVyVWlkLnB1c2gocmV1bmlvbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBhbWVuZGVtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQW1lbmRlbWVudCB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BbWVuZGVtZW50cykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hbWVuZGVtZW50cykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRzID0gQW1lbmRlbWVudHNDb252ZXJ0LnRvQW1lbmRlbWVudHMoanNvbilcbiAgICAgIGZvciAoY29uc3QgdGV4dGVMZWdpc2xhdGlmIG9mIGFtZW5kZW1lbnRzLnRleHRlc0xlZ2lzbGF0aWZzKSB7XG4gICAgICAgIGZvciAoY29uc3QgYW1lbmRlbWVudCBvZiB0ZXh0ZUxlZ2lzbGF0aWYuYW1lbmRlbWVudHMpIHtcbiAgICAgICAgICBpZiAoYW1lbmRlbWVudEJ5VWlkW2FtZW5kZW1lbnQudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhbWVuZGVtZW50QnlVaWRbYW1lbmRlbWVudC51aWRdID0gYW1lbmRlbWVudFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRvY3VtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogRG9jdW1lbnQgfSA9IHt9XG4gIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH0gPSB7fVxuICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW46IHtcbiAgICBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICB9ID0ge31cbiAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBkb3NzaWVyc0xlZ2lzbGF0aWZzID1cbiAgICAgICAgRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb3NzaWVyc0xlZ2lzbGF0aWZzKGpzb24pXG4gICAgICBmb3IgKGNvbnN0IGRvY3VtZW50IG9mIGRvc3NpZXJzTGVnaXNsYXRpZnMudGV4dGVzTGVnaXNsYXRpZnMpIHtcbiAgICAgICAgaWYgKGRvY3VtZW50QnlVaWRbZG9jdW1lbnQudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZG9jdW1lbnRCeVVpZFtkb2N1bWVudC51aWRdID0gZG9jdW1lbnRcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBkb3NzaWVyIG9mIGRvc3NpZXJzTGVnaXNsYXRpZnMuZG9zc2llcnNQYXJsZW1lbnRhaXJlcykge1xuICAgICAgICBjb25zdCB0aXRyZURvc3NpZXIgPSBkb3NzaWVyLnRpdHJlRG9zc2llclxuICAgICAgICBpZiAoXG4gICAgICAgICAgdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluICYmXG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluW3RpdHJlRG9zc2llci5zZW5hdENoZW1pbl0gPT09XG4gICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluW3RpdHJlRG9zc2llci5zZW5hdENoZW1pbl0gPSBkb3NzaWVyXG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRpdHJlRG9zc2llci50aXRyZUNoZW1pbiAmJlxuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pblt0aXRyZURvc3NpZXIudGl0cmVDaGVtaW5dID09PVxuICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pblt0aXRyZURvc3NpZXIudGl0cmVDaGVtaW5dID0gZG9zc2llclxuICAgICAgICB9XG4gICAgICAgIGlmIChkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkW2Rvc3NpZXIudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZFtkb3NzaWVyLnVpZF0gPSBkb3NzaWVyXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBwaG90b0J5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlBob3Rvcykge1xuICAgIGNvbnN0IHBob3RvQnlVaWQgPSB7fVxuXG4gICAge1xuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGBwaG90b3NfZGVwdXRlc18ke1xuICAgICAgICAgIC8vIFRPRE86IEhhbmRsZSBMZWdpc2xhdHVyZS5BbGwuXG4gICAgICAgICAgbGVnaXNsYXR1cmUgPT09IExlZ2lzbGF0dXJlLkFsbCA/IExlZ2lzbGF0dXJlLkRpeFNlcHQgOiBsZWdpc2xhdHVyZVxuICAgICAgICB9YCxcbiAgICAgICAgXCJkZXB1dGVzLmpzb25cIixcbiAgICAgIClcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKGpzb25GaWxlUGF0aCkpIHtcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgICAgT2JqZWN0LmFzc2lnbihwaG90b0J5VWlkLCBKU09OLnBhcnNlKGpzb24pKVxuICAgICAgfSBlbHNlIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYElnbm9yaW5nIG1pc3NpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICB9XG5cbiAgICB7XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgXCJwaG90b3Nfc2VuYXRldXJzXCIsXG4gICAgICAgIFwic2VuYXRldXJzLmpzb25cIixcbiAgICAgIClcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKGpzb25GaWxlUGF0aCkpIHtcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgICAgT2JqZWN0LmFzc2lnbihwaG90b0J5VWlkLCBKU09OLnBhcnNlKGpzb24pKVxuICAgICAgfSBlbHNlIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYElnbm9yaW5nIG1pc3NpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBzY3J1dGluQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogU2NydXRpbiB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5TY3J1dGlucykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5zY3J1dGlucykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IHNjcnV0aW5zID0gU2NydXRpbnNDb252ZXJ0LnRvU2NydXRpbnMoanNvbilcbiAgICAgIGZvciAoY29uc3Qgc2NydXRpbiBvZiBzY3J1dGlucy5zY3J1dGlucykge1xuICAgICAgICBpZiAoc2NydXRpbkJ5VWlkW3NjcnV0aW4udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2NydXRpbkJ5VWlkW3NjcnV0aW4udWlkXSA9IHNjcnV0aW5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHF1ZXN0aW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUXVlc3Rpb24gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUXVlc3Rpb25zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnF1ZXN0aW9ucykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IHF1ZXN0aW9ucyA9IFF1ZXN0aW9uc0NvbnZlcnQudG9RdWVzdGlvbnMoanNvbilcbiAgICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2YgcXVlc3Rpb25zLnF1ZXN0aW9ucykge1xuICAgICAgICBpZiAocXVlc3Rpb25CeVVpZFtxdWVzdGlvbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBxdWVzdGlvbkJ5VWlkW3F1ZXN0aW9uLnVpZF0gPSBxdWVzdGlvblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY29tcHRlUmVuZHVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBDb21wdGVSZW5kdSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Db21wdGVzUmVuZHVzU2VhbmNlcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5jb21wdGVzUmVuZHVzU2VhbmNlcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGNvbXB0ZXNSZW5kdXMgPSBDb21wdGVzUmVuZHVzQ29udmVydC50b0NvbXB0ZXNSZW5kdXMoanNvbilcbiAgICAgIGZvciAoY29uc3QgY29tcHRlUmVuZHUgb2YgY29tcHRlc1JlbmR1cy5jb21wdGVzUmVuZHVzKSB7XG4gICAgICAgIGlmIChjb21wdGVSZW5kdUJ5VWlkW2NvbXB0ZVJlbmR1LnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbXB0ZVJlbmR1QnlVaWRbY29tcHRlUmVuZHUudWlkXSA9IGNvbXB0ZVJlbmR1XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFjdGV1ckJ5VWlkLFxuICAgIGFtZW5kZW1lbnRCeVVpZCxcbiAgICBkb2N1bWVudEJ5VWlkLFxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbixcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW4sXG4gICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZCxcbiAgICBvcmdhbmVCeVVpZCxcbiAgICBwaG90b0J5VWlkLFxuICAgIHJldW5pb25CeVVpZCxcbiAgICByZXVuaW9uc0J5RGF5LFxuICAgIHJldW5pb25zQnlEb3NzaWVyVWlkLFxuICAgIHNjcnV0aW5CeVVpZCxcbiAgICBxdWVzdGlvbkJ5VWlkLFxuICAgIGNvbXB0ZVJlbmR1QnlVaWQsXG4gIH1cbn1cblxuLyoqXG4gKiBSZWFkIGluZm9zIG9mIGEgZG9jdW1lbnQgb3IgYSBkaXZpc2lvbiBvZiBhIGRvY3VtZW50IGZyb20gZmlsZSBzeXN0ZW1cbiAqXG4gKiBAcGFyYW0gZGF0YURpclxuICogQHBhcmFtIHVpZCBVSUQgb2YgYSBkb2N1bWVudCBvciBhIGRpdmlzaW9uXG4gKiBAcGFyYW0gZm9ybWF0cyByZXF1ZXN0ZWQgZm9ybWF0cyBvZiB0aGUgZG9jdW1lbnQgaW4gZGVjcmVhc2luZyBwcmVmZXJlbmNlIG9yZGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXNzZW1ibGVlRG9jdW1lbnRGaWxlKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIHVpZDogc3RyaW5nLFxuICBmb3JtYXRzOiBEb2N1bWVudFVybEZvcm1hdFtdLFxuKTpcbiAgfCB7XG4gICAgICBmb3JtYXQ6IERvY3VtZW50VXJsRm9ybWF0XG4gICAgICBwYXRoOiBzdHJpbmdcbiAgICAgIHVybDogc3RyaW5nXG4gICAgfVxuICB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRvY3VtZW50c0RpciA9IHBhdGguam9pbihkYXRhRGlyLCBcIkRvY3VtZW50c1wiKVxuICBjb25zdCBkb2N1bWVudERpciA9IHBhdGhGcm9tRG9jdW1lbnRVaWQoZG9jdW1lbnRzRGlyLCB1aWQpXG4gIGNvbnN0IGluZGV4UGF0aCA9IHBhdGguam9pbihkb2N1bWVudERpciwgXCJpbmRleC5qc29uXCIpXG4gIGlmICghZnMucGF0aEV4aXN0c1N5bmMoaW5kZXhQYXRoKSkge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuICBjb25zdCBpbmRleCA9IGZzLnJlYWRKc29uU3luYyhpbmRleFBhdGgpIGFzIERvY3VtZW50RmlsZXNJbmRleFxuICBmb3IgKGNvbnN0IGZvcm1hdCBvZiBmb3JtYXRzKSB7XG4gICAgZm9yIChjb25zdCB7IGZpbGVuYW1lLCB1cmwgfSBvZiBpbmRleFtmb3JtYXRdID8/IFtdKSB7XG4gICAgICBpZiAoZmlsZW5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgcmV0dXJuIHsgZm9ybWF0LCBwYXRoOiBwYXRoLmpvaW4oZG9jdW1lbnREaXIsIGZpbGVuYW1lKSwgdXJsIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFzc2VtYmxlZVBob3Rvc0RlcHV0ZXMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSB7XG4gIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgIGRhdGFEaXIsXG4gICAgYHBob3Rvc19kZXB1dGVzXyR7XG4gICAgICAvLyBUT0RPOiBIYW5kbGUgTGVnaXNsYXR1cmUuQWxsLlxuICAgICAgbGVnaXNsYXR1cmUgPT09IExlZ2lzbGF0dXJlLkFsbCA/IExlZ2lzbGF0dXJlLkRpeFNlcHQgOiBsZWdpc2xhdHVyZVxuICAgIH1gLFxuICAgIFwiZGVwdXRlcy5qc29uXCIsXG4gIClcbiAgaWYgKGxvZykge1xuICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gIH1cbiAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgcmV0dXJuIEpTT04ucGFyc2UoanNvbikgYXMgeyBbdWlkOiBzdHJpbmddOiBQaG90byB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXNzZW1ibGVlUGhvdG9zU2VuYXRldXJzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIHsgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogeyBbdWlkOiBzdHJpbmddOiBQaG90byB9IHtcbiAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgZGF0YURpcixcbiAgICBcInBob3Rvc19zZW5hdGV1cnNcIixcbiAgICBcInNlbmF0ZXVycy5qc29uXCIsXG4gIClcbiAgaWYgKGxvZykge1xuICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gIH1cbiAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgcmV0dXJuIEpTT04ucGFyc2UoanNvbikgYXMgeyBbdWlkOiBzdHJpbmddOiBQaG90byB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRoRnJvbURvY3VtZW50VWlkKGRvY3VtZW50c0Rpcjogc3RyaW5nLCB1aWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG1hdGNoID0gdWlkLm1hdGNoKGRvY3VtZW50VWlkUmVnZXgpXG4gIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICBtYXRjaCxcbiAgICBudWxsLFxuICAgIGBVbmV4cGVjdGVkIHN0cnVjdHVyZSBmb3IgZG9jdW1lbnQgVUlEOiAke3VpZH1gLFxuICApXG4gIGNvbnN0IGdyb3VwcyA9IG1hdGNoIS5ncm91cHMgYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxuICBjb25zdCBkb2N1bWVudFR5cGUgPSBwYXRoLmpvaW4oXG4gICAgZG9jdW1lbnRzRGlyLFxuICAgIGdyb3Vwcy5kb2N1bWVudFR5cGUgPz8gZ3JvdXBzLmRvY3VtZW50VHlwZTIsXG4gIClcbiAgY29uc3QgY2hhbWJyZURpciA9IHBhdGguam9pbihkb2N1bWVudFR5cGUsIGdyb3Vwcy5jaGFtYnJlID8/IGdyb3Vwcy5jaGFtYnJlMilcbiAgY29uc3QgcmVwdWJsaXF1ZURpciA9IHBhdGguam9pbihcbiAgICBjaGFtYnJlRGlyLFxuICAgIGdyb3Vwcy5yZXB1YmxpcXVlID8/IGdyb3Vwcy5yZXB1YmxpcXVlMixcbiAgKVxuICBjb25zdCBsZWdpc2xhdHVyZURpciA9IHBhdGguam9pbihcbiAgICByZXB1YmxpcXVlRGlyLFxuICAgIGdyb3Vwcy5sZWdpc2xhdHVyZSA/PyBncm91cHMubGVnaXNsYXR1cmUyLFxuICApXG4gIGNvbnN0IGV0YXQgPSBncm91cHMuZXRhdFxuICBpZiAoZXRhdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZnMuZW5zdXJlRGlyU3luYyhsZWdpc2xhdHVyZURpcilcbiAgICByZXR1cm4gcGF0aC5qb2luKGxlZ2lzbGF0dXJlRGlyLCB1aWQpXG4gIH1cbiAgY29uc3QgZXRhdERpciA9IHBhdGguam9pbihsZWdpc2xhdHVyZURpciwgZXRhdClcbiAgbGV0IG51bWVybyA9IFwiMDAwMDAwXCIgKyAoZ3JvdXBzLm51bWVybyA/PyBncm91cHMubnVtZXJvMilcbiAgbnVtZXJvID0gbnVtZXJvLnN1YnN0cmluZyhudW1lcm8ubGVuZ3RoIC0gNilcbiAgY29uc3QgbnVtZXJvTWlsbGllcnNEaXIgPSBwYXRoLmpvaW4oZXRhdERpciwgbnVtZXJvLnN1YnN0cmluZygwLCAzKSlcbiAgZnMuZW5zdXJlRGlyU3luYyhudW1lcm9NaWxsaWVyc0RpcilcbiAgcmV0dXJuIHBhdGguam9pbihudW1lcm9NaWxsaWVyc0RpciwgdWlkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aEZyb21Eb3NzaWVyUGFybGVtZW50YWlyZVVpZChcbiAgZG9zc2llcnNEaXI6IHN0cmluZyxcbiAgdWlkOiBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICByZXR1cm4gcGF0aEZyb21VaWQoZG9zc2llcnNEaXIsIHVpZCwgZG9zc2llclVpZFJlZ2V4KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aEZyb21SZXVuaW9uVWlkKHJldW5pb25zRGlyOiBzdHJpbmcsIHVpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbWF0Y2ggPSByZXVuaW9uVWlkUmVnZXguZXhlYyh1aWQpXG4gIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICBtYXRjaCxcbiAgICBudWxsLFxuICAgIGBVbmV4cGVjdGVkIHN0cnVjdHVyZSBmb3IgcmV1bmlvbiBVSUQ6ICR7dWlkfWAsXG4gIClcbiAgY29uc3QgY2hhbWJyZURpciA9IHBhdGguam9pbihyZXVuaW9uc0RpciwgbWF0Y2ghWzFdKVxuICBjb25zdCByZXB1YmxpcXVlRGlyID0gcGF0aC5qb2luKGNoYW1icmVEaXIsIG1hdGNoIVsyXSlcbiAgY29uc3QgbGVnaXNsYXR1cmVEaXIgPSBwYXRoLmpvaW4ocmVwdWJsaXF1ZURpciwgbWF0Y2ghWzNdKVxuICBjb25zdCBzZXNzaW9uRGlyID0gcGF0aC5qb2luKGxlZ2lzbGF0dXJlRGlyLCBtYXRjaCFbNF0pXG4gIGNvbnN0IGlkRGlyID0gcGF0aC5qb2luKHNlc3Npb25EaXIsIG1hdGNoIVs1XSlcbiAgbGV0IG51bWVybyA9IFwiMDAwMDAwMDAwXCIgKyBtYXRjaCFbNl1cbiAgbnVtZXJvID0gbnVtZXJvLnN1YnN0cmluZyhudW1lcm8ubGVuZ3RoIC0gOSlcbiAgY29uc3QgbnVtZXJvTWlsbGlvbnNEaXIgPSBwYXRoLmpvaW4oaWREaXIsIG51bWVyby5zdWJzdHJpbmcoMCwgMykpXG4gIGNvbnN0IG51bWVyb01pbGxpZXJzRGlyID0gcGF0aC5qb2luKG51bWVyb01pbGxpb25zRGlyLCBudW1lcm8uc3Vic3RyaW5nKDMsIDMpKVxuICBmcy5lbnN1cmVEaXJTeW5jKG51bWVyb01pbGxpZXJzRGlyKVxuICByZXR1cm4gcGF0aC5qb2luKG51bWVyb01pbGxpZXJzRGlyLCB1aWQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRoRnJvbVNjcnV0aW5VaWQoc2NydXRpbnNEaXI6IHN0cmluZywgdWlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IHNjcnV0aW5VaWRSZWdleC5leGVjKHVpZClcbiAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgIG1hdGNoLFxuICAgIG51bGwsXG4gICAgYFVuZXhwZWN0ZWQgc3RydWN0dXJlIGZvciBzY3J1dGluIFVJRDogJHt1aWR9YCxcbiAgKVxuICBjb25zdCBjaGFtYnJlRGlyID0gcGF0aC5qb2luKHNjcnV0aW5zRGlyLCBtYXRjaCFbMV0pXG4gIGNvbnN0IHJlcHVibGlxdWVEaXIgPSBwYXRoLmpvaW4oY2hhbWJyZURpciwgbWF0Y2ghWzJdKVxuICBjb25zdCBsZWdpc2xhdHVyZURpciA9IHBhdGguam9pbihyZXB1YmxpcXVlRGlyLCBtYXRjaCFbM10pXG4gIGxldCBudW1lcm8gPSBcIjAwMDAwMFwiICsgbWF0Y2ghWzRdXG4gIG51bWVybyA9IG51bWVyby5zdWJzdHJpbmcobnVtZXJvLmxlbmd0aCAtIDYpXG4gIGNvbnN0IG51bWVyb01pbGxpZXJzRGlyID0gcGF0aC5qb2luKGxlZ2lzbGF0dXJlRGlyLCBudW1lcm8uc3Vic3RyaW5nKDAsIDMpKVxuICBmcy5lbnN1cmVEaXJTeW5jKG51bWVyb01pbGxpZXJzRGlyKVxuICByZXR1cm4gcGF0aC5qb2luKG51bWVyb01pbGxpZXJzRGlyLCB1aWQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRoRnJvbVF1ZXN0aW9uVWlkKGRhdGFEaXI6IHN0cmluZywgdWlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcGF0aEZyb21VaWQoZGF0YURpciwgdWlkLCBxdWVzdGlvblVpZFJlZ2V4KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aEZyb21Db21wdGVSZW5kdVVpZChkYXRhRGlyOiBzdHJpbmcsIHVpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGhGcm9tVWlkKGRhdGFEaXIsIHVpZCwgY29tcHRlUmVuZHVVaWRSZWdleClcbn1cblxuLy8gR2V0IHN0YW5kYXJkIHBhdGggZm9yIG9iamVjdCB3aXRoIHVpZCA6IHJlcHVibGlxdWUgPiBsZWdpc2xhdHVyZSA+IGdyb3VwIG9iamVjdHMgYnkgdGhvdXNhbmRzXG5mdW5jdGlvbiBwYXRoRnJvbVVpZChkYXRhRGlyOiBzdHJpbmcsIHVpZDogc3RyaW5nLCBkYXRhUmVnZXhwOiBSZWdFeHApOiBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IGRhdGFSZWdleHAuZXhlYyh1aWQpXG4gIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICBtYXRjaCxcbiAgICBudWxsLFxuICAgIGBVbmV4cGVjdGVkIHN0cnVjdHVyZSBmb3Igb2JqZWN0IHdpdGggVUlEOiAke3VpZH1gLFxuICApXG4gIGNvbnN0IHJlcHVibGlxdWVEaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgbWF0Y2ghWzFdKVxuICBjb25zdCBsZWdpc2xhdHVyZURpciA9IHBhdGguam9pbihyZXB1YmxpcXVlRGlyLCBtYXRjaCFbMl0pXG4gIGxldCBudW1lcm8gPSBcIjAwMDAwMFwiICsgbWF0Y2ghWzNdXG4gIG51bWVybyA9IG51bWVyby5zdWJzdHJpbmcobnVtZXJvLmxlbmd0aCAtIDYpXG4gIGNvbnN0IG51bWVyb01pbGxpZXJzRGlyID0gcGF0aC5qb2luKGxlZ2lzbGF0dXJlRGlyLCBudW1lcm8uc3Vic3RyaW5nKDAsIDMpKVxuICBmcy5lbnN1cmVEaXJTeW5jKG51bWVyb01pbGxpZXJzRGlyKVxuICByZXR1cm4gcGF0aC5qb2luKG51bWVyb01pbGxpZXJzRGlyLCB1aWQpXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFHQSxJQUFBSSxhQUFBLEdBQUFKLE9BQUE7QUFFQSxJQUFBSyxtQkFBQSxHQUFBTCxPQUFBO0FBTUEsSUFBQU0sUUFBQSxHQUFBTixPQUFBO0FBQ0Es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