@tricoteuses/assemblee 1.1.8 → 1.1.10

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 (136) hide show
  1. package/LICENSE.md +5 -1
  2. package/README.md +69 -178
  3. package/lib/api.js +9 -9
  4. package/lib/api.mjs +7 -7
  5. package/lib/bugs/acteur-00010/plugin.test.js +1 -1
  6. package/lib/bugs/agenda-00002/plugin.test.js +1 -1
  7. package/lib/bugs/agenda-00002/plugin.test.mjs +1 -1
  8. package/lib/bugs/agenda-00002.js +3 -3
  9. package/lib/bugs/agenda-00002.mjs +2 -2
  10. package/lib/bugs/agenda-00008/plugin.test.js +1 -1
  11. package/lib/bugs/agenda-00011/plugin.test.js +1 -1
  12. package/lib/bugs/agenda-00011/plugin.test.mjs +1 -1
  13. package/lib/bugs/agenda-00011.js +1 -1
  14. package/lib/bugs/agenda-00011.mjs +1 -1
  15. package/lib/bugs.js +1 -1
  16. package/lib/bugs.mjs +1 -1
  17. package/lib/cleaners/acteurs.js +1 -1
  18. package/lib/cleaners/acteurs.mjs +1 -1
  19. package/lib/cleaners/amendements.js +1 -1
  20. package/lib/cleaners/amendements.mjs +1 -1
  21. package/lib/cleaners/debats.d.ts +1 -0
  22. package/lib/cleaners/debats.js +12 -0
  23. package/lib/cleaners/debats.mjs +5 -0
  24. package/lib/cleaners/index.d.ts +2 -0
  25. package/lib/cleaners/index.js +15 -1
  26. package/lib/cleaners/index.mjs +3 -1
  27. package/lib/cleaners/questions.d.ts +1 -0
  28. package/lib/cleaners/questions.js +12 -0
  29. package/lib/cleaners/questions.mjs +5 -0
  30. package/lib/cleaners/reunions.js +1 -1
  31. package/lib/cleaners/reunions.mjs +1 -1
  32. package/lib/cleaners/xml.js +12 -6
  33. package/lib/cleaners/xml.mjs +12 -6
  34. package/lib/datasets.d.ts +5 -1
  35. package/lib/datasets.js +70 -12
  36. package/lib/datasets.mjs +68 -10
  37. package/lib/dates.js +1 -1
  38. package/lib/dates.mjs +1 -1
  39. package/lib/dossiers_legislatifs.js +9 -9
  40. package/lib/dossiers_legislatifs.mjs +7 -7
  41. package/lib/file_systems.js +4 -4
  42. package/lib/file_systems.mjs +2 -2
  43. package/lib/git.js +1 -1
  44. package/lib/git.mjs +1 -1
  45. package/lib/loaders.d.ts +21 -0
  46. package/lib/loaders.js +608 -202
  47. package/lib/loaders.mjs +200 -3
  48. package/lib/organes.js +1 -1
  49. package/lib/organes.mjs +1 -1
  50. package/lib/parsers/documents.js +1 -1
  51. package/lib/parsers/documents.mjs +1 -1
  52. package/lib/parsers/recherche_amendements.js +3 -2
  53. package/lib/parsers/recherche_amendements.mjs +1 -1
  54. package/lib/raw_types/acteurs_et_organes.js +49 -49
  55. package/lib/raw_types/acteurs_et_organes.mjs +37 -37
  56. package/lib/raw_types/agendas.js +50 -50
  57. package/lib/raw_types/agendas.mjs +39 -39
  58. package/lib/raw_types/amendements.d.ts +2 -0
  59. package/lib/raw_types/amendements.js +53 -51
  60. package/lib/raw_types/amendements.mjs +41 -39
  61. package/lib/raw_types/debats.d.ts +190 -0
  62. package/lib/raw_types/debats.js +816 -0
  63. package/lib/raw_types/debats.mjs +758 -0
  64. package/lib/raw_types/dossiers_legislatifs.js +71 -62
  65. package/lib/raw_types/dossiers_legislatifs.mjs +46 -46
  66. package/lib/raw_types/questions.d.ts +129 -0
  67. package/lib/raw_types/questions.js +497 -0
  68. package/lib/raw_types/questions.mjs +439 -0
  69. package/lib/raw_types/scrutins.js +34 -34
  70. package/lib/raw_types/scrutins.mjs +28 -28
  71. package/lib/scripts/bugs_helper.js +1 -1
  72. package/lib/scripts/bugs_helper.mjs +1 -1
  73. package/lib/scripts/clean_reorganized_data.js +174 -24
  74. package/lib/scripts/clean_reorganized_data.mjs +127 -13
  75. package/lib/scripts/diff_amendements.js +1 -1
  76. package/lib/scripts/diff_amendements.mjs +1 -1
  77. package/lib/scripts/document_dossiers_legislatifs.js +1 -1
  78. package/lib/scripts/document_dossiers_legislatifs.mjs +1 -1
  79. package/lib/scripts/get_today_reunions.js +1 -1
  80. package/lib/scripts/get_today_reunions.mjs +1 -1
  81. package/lib/scripts/merge_scrutins.js +1 -1
  82. package/lib/scripts/merge_scrutins.mjs +1 -1
  83. package/lib/scripts/parse_textes_lois.js +4 -3
  84. package/lib/scripts/parse_textes_lois.mjs +1 -1
  85. package/lib/scripts/raw_types_from_amendements.js +1 -1
  86. package/lib/scripts/raw_types_from_amendements.mjs +1 -1
  87. package/lib/scripts/reorganize_data.js +189 -7
  88. package/lib/scripts/reorganize_data.mjs +136 -8
  89. package/lib/scripts/retrieve_deputes_photos.js +7 -1
  90. package/lib/scripts/retrieve_deputes_photos.mjs +7 -1
  91. package/lib/scripts/retrieve_documents.js +1 -1
  92. package/lib/scripts/retrieve_documents.mjs +1 -1
  93. package/lib/scripts/retrieve_open_data.js +105 -37
  94. package/lib/scripts/retrieve_open_data.mjs +34 -2
  95. package/lib/scripts/retrieve_pending_amendments.js +7 -1
  96. package/lib/scripts/retrieve_pending_amendments.mjs +7 -1
  97. package/lib/scripts/retrieve_senateurs_photos.js +10 -2
  98. package/lib/scripts/retrieve_senateurs_photos.mjs +7 -1
  99. package/lib/scripts/retrieve_textes_lois.js +1 -1
  100. package/lib/scripts/retrieve_textes_lois.mjs +1 -1
  101. package/lib/scripts/test_load.js +1 -1
  102. package/lib/scripts/test_load.mjs +1 -1
  103. package/lib/scripts/test_load_big_files.js +1 -1
  104. package/lib/scripts/test_load_big_files.mjs +1 -1
  105. package/lib/scripts/validate_json.js +1 -1
  106. package/lib/scripts/validate_json.mjs +1 -1
  107. package/lib/shared_types/codes_actes.d.ts +4 -0
  108. package/lib/shared_types/codes_actes.js +19 -17
  109. package/lib/shared_types/codes_actes.mjs +15 -13
  110. package/lib/strings.js +1 -1
  111. package/lib/strings.mjs +1 -1
  112. package/lib/types/acteurs_et_organes.js +37 -37
  113. package/lib/types/acteurs_et_organes.mjs +28 -28
  114. package/lib/types/agendas.js +50 -50
  115. package/lib/types/agendas.mjs +40 -40
  116. package/lib/types/amendements.d.ts +1 -0
  117. package/lib/types/amendements.js +52 -51
  118. package/lib/types/amendements.mjs +42 -41
  119. package/lib/types/debats.d.ts +184 -0
  120. package/lib/types/debats.js +805 -0
  121. package/lib/types/debats.mjs +747 -0
  122. package/lib/types/dossiers_legislatifs.js +68 -59
  123. package/lib/types/dossiers_legislatifs.mjs +46 -46
  124. package/lib/types/legislatures.js +5 -5
  125. package/lib/types/legislatures.mjs +4 -4
  126. package/lib/types/questions.d.ts +122 -0
  127. package/lib/types/questions.js +482 -0
  128. package/lib/types/questions.mjs +424 -0
  129. package/lib/types/scrutins.js +34 -34
  130. package/lib/types/scrutins.mjs +28 -28
  131. package/lib/urls.js +5 -5
  132. package/lib/urls.mjs +4 -4
  133. package/package.json +15 -7
  134. package/lib/scripts/clean_data.d.ts +0 -1
  135. package/lib/scripts/clean_data.js +0 -309
  136. package/lib/scripts/clean_data.mjs +0 -171
@@ -8,7 +8,6 @@ require("core-js/modules/es.symbol.iterator.js");
8
8
  require("core-js/modules/es.array.from.js");
9
9
  require("core-js/modules/es.array.slice.js");
10
10
  require("core-js/modules/es.function.name.js");
11
- require("core-js/modules/es.regexp.exec.js");
12
11
  require("core-js/modules/es.object.define-property.js");
13
12
  require("core-js/modules/es.symbol.async-iterator.js");
14
13
  require("core-js/modules/es.symbol.to-string-tag.js");
@@ -37,6 +36,8 @@ require("core-js/modules/web.dom-collections.iterator.js");
37
36
  require("core-js/modules/es.array.join.js");
38
37
  require("core-js/modules/es.promise.js");
39
38
  require("core-js/modules/es.string.ends-with.js");
39
+ require("core-js/modules/es.regexp.exec.js");
40
+ require("core-js/modules/es.string.replace.js");
40
41
  var _assert = _interopRequireDefault(require("assert"));
41
42
  var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
42
43
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
@@ -59,6 +60,7 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
59
60
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
60
61
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
61
62
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
63
+ var xml2js = require("xml2js");
62
64
  var optionsDefinitions = [{
63
65
  alias: "f",
64
66
  help: "fetch datasets instead of retrieving them from files",
@@ -97,8 +99,8 @@ function _retrieveOpenData() {
97
99
  _retrieveOpenData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(dataDir) {
98
100
  var _options$legislature;
99
101
  var enabledDatasets, choosenDatasets, legislatures, enabledLegislatures, _iterator, _step, _loop;
100
- return _regeneratorRuntime().wrap(function _callee$(_context2) {
101
- while (1) switch (_context2.prev = _context2.next) {
102
+ return _regeneratorRuntime().wrap(function _callee$(_context3) {
103
+ while (1) switch (_context3.prev = _context3.next) {
102
104
  case 0:
103
105
  options.categories.map(function (datasetName) {
104
106
  return _assert["default"].notStrictEqual(_datasets.EnabledDatasets[datasetName], undefined, "Unknown name of dataset: ".concat(datasetName));
@@ -106,7 +108,7 @@ function _retrieveOpenData() {
106
108
  enabledDatasets = options.categories.reduce(function (enabledDatasets, datasetName) {
107
109
  return enabledDatasets | _datasets.EnabledDatasets[datasetName];
108
110
  }, _datasets.EnabledDatasets.None);
109
- choosenDatasets = [].concat(_toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.ActeursEtOrganes ? _datasets.datasets.acteursEtOrganes : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Agendas ? _datasets.datasets.agendas : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Amendements ? _datasets.datasets.amendements : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.DossiersLegislatifs ? _datasets.datasets.dossiersLegislatifs : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Scrutins ? _datasets.datasets.scrutins : [])); // When a given legislature is 0, it is the same as giving no legislature:
111
+ choosenDatasets = [].concat(_toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.ActeursEtOrganes ? _datasets.datasets.acteursEtOrganes : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Agendas ? _datasets.datasets.agendas : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Amendements ? _datasets.datasets.amendements : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.DossiersLegislatifs ? _datasets.datasets.dossiersLegislatifs : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Scrutins ? _datasets.datasets.scrutins : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Questions ? _datasets.datasets.questions : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.ComptesRendusSeances ? _datasets.datasets.comptesRendusSeances : [])); // When a given legislature is 0, it is the same as giving no legislature:
110
112
  // It means "every legislatures".
111
113
  legislatures = (_options$legislature = options.legislature) !== null && _options$legislature !== void 0 && _options$legislature.some(function (legislature) {
112
114
  return legislature === 0;
@@ -120,40 +122,40 @@ function _retrieveOpenData() {
120
122
  });
121
123
  }
122
124
  _iterator = _createForOfIteratorHelper(choosenDatasets);
123
- _context2.prev = 6;
125
+ _context3.prev = 6;
124
126
  _loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop() {
125
- var dataset, zipFilePath, response, dataDirOrFilePath, zip, _iterator2, _step2, dataFileSplitPath, dataFilePath, data, _data;
126
- return _regeneratorRuntime().wrap(function _loop$(_context) {
127
- while (1) switch (_context.prev = _context.next) {
127
+ var dataset, zipFilePath, response, dataDirOrFilePath, zip, _iterator2, _step2, _loop2, _iterator3, _step3, dataFileSplitPath, dataFilePath, data, _data;
128
+ return _regeneratorRuntime().wrap(function _loop$(_context2) {
129
+ while (1) switch (_context2.prev = _context2.next) {
128
130
  case 0:
129
131
  dataset = _step.value;
130
132
  zipFilePath = _path["default"].join(dataDir, "".concat(dataset.filename, ".zip"));
131
133
  if (!options.fetch) {
132
- _context.next = 17;
134
+ _context2.next = 17;
133
135
  break;
134
136
  }
135
137
  // Fetch & save ZIP file.
136
138
  if (!options.silent) {
137
139
  console.log("Loading ".concat(dataset.title, ": ").concat(dataset.filename, ".zip"));
138
140
  }
139
- _context.next = 6;
141
+ _context2.next = 6;
140
142
  return (0, _nodeFetch["default"])(dataset.url);
141
143
  case 6:
142
- response = _context.sent;
144
+ response = _context2.sent;
143
145
  if (response.ok) {
144
- _context.next = 15;
146
+ _context2.next = 15;
145
147
  break;
146
148
  }
147
149
  console.error(response.status, response.statusText);
148
- _context.t0 = console;
149
- _context.next = 12;
150
+ _context2.t0 = console;
151
+ _context2.next = 12;
150
152
  return response.text();
151
153
  case 12:
152
- _context.t1 = _context.sent;
153
- _context.t0.error.call(_context.t0, _context.t1);
154
+ _context2.t1 = _context2.sent;
155
+ _context2.t0.error.call(_context2.t0, _context2.t1);
154
156
  throw new Error("Fetch failed: ".concat(dataset.url));
155
157
  case 15:
156
- _context.next = 17;
158
+ _context2.next = 17;
157
159
  return pipeline(response.body, _fsExtra["default"].createWriteStream(zipFilePath));
158
160
  case 17:
159
161
  if (!options.silent) {
@@ -165,7 +167,7 @@ function _retrieveOpenData() {
165
167
  file: zipFilePath,
166
168
  storeEntries: true
167
169
  });
168
- _context.next = 23;
170
+ _context2.next = 23;
169
171
  return new Promise(function (resolve, reject) {
170
172
  zip.on("ready", function () {
171
173
  // Patch following line, because of wrong TypeScript definition for zip.extract.
@@ -187,15 +189,81 @@ function _retrieveOpenData() {
187
189
  }
188
190
  dataset.repairZip(dataset, dataDir);
189
191
  }
192
+
193
+ // Convert xml to JSON.
194
+ if (!dataset.filename.endsWith(".xml")) {
195
+ _context2.next = 41;
196
+ break;
197
+ }
198
+ _iterator2 = _createForOfIteratorHelper((0, _file_systems.walkDir)(dataDirOrFilePath));
199
+ _context2.prev = 26;
200
+ _loop2 = /*#__PURE__*/_regeneratorRuntime().mark(function _loop2() {
201
+ var dataFileSplitPath, dataFilePath, format, parser;
202
+ return _regeneratorRuntime().wrap(function _loop2$(_context) {
203
+ while (1) switch (_context.prev = _context.next) {
204
+ case 0:
205
+ dataFileSplitPath = _step2.value;
206
+ dataFilePath = _path["default"].join.apply(_path["default"], [dataDirOrFilePath].concat(_toConsumableArray(dataFileSplitPath)));
207
+ if (dataFilePath.endsWith(".xml")) {
208
+ format = function format(key, value) {
209
+ if (key === "br" || key === "italique" || key === "exposant") {
210
+ return undefined;
211
+ }
212
+ return value;
213
+ };
214
+ parser = new xml2js.Parser({
215
+ mergeAttrs: true,
216
+ explicitArray: false
217
+ });
218
+ _fsExtra["default"].readFile(dataFilePath, function (err, data) {
219
+ if (err) return console.error(err);
220
+ parser.parseString(data, function (err, result) {
221
+ var newDataFilePath = dataFilePath.replace(/\.[^.]+$/, ".json");
222
+ if (err) return console.error(err);
223
+ _fsExtra["default"].copy(dataFilePath, newDataFilePath, function (err) {
224
+ _fsExtra["default"].writeFileSync(newDataFilePath, JSON.stringify(result, format, 2));
225
+ if (err) return console.error(err);
226
+ });
227
+ });
228
+ });
229
+ }
230
+ case 3:
231
+ case "end":
232
+ return _context.stop();
233
+ }
234
+ }, _loop2);
235
+ });
236
+ _iterator2.s();
237
+ case 29:
238
+ if ((_step2 = _iterator2.n()).done) {
239
+ _context2.next = 33;
240
+ break;
241
+ }
242
+ return _context2.delegateYield(_loop2(), "t2", 31);
243
+ case 31:
244
+ _context2.next = 29;
245
+ break;
246
+ case 33:
247
+ _context2.next = 38;
248
+ break;
249
+ case 35:
250
+ _context2.prev = 35;
251
+ _context2.t3 = _context2["catch"](26);
252
+ _iterator2.e(_context2.t3);
253
+ case 38:
254
+ _context2.prev = 38;
255
+ _iterator2.f();
256
+ return _context2.finish(38);
257
+ case 41:
190
258
  // Reindent JSON file.
191
259
  if (!options.silent) {
192
260
  console.log("Reidenting ".concat(dataset.title, ": ").concat(dataset.filename));
193
261
  }
194
262
  if (_fsExtra["default"].statSync(dataDirOrFilePath).isDirectory()) {
195
- _iterator2 = _createForOfIteratorHelper((0, _file_systems.walkDir)(dataDirOrFilePath));
263
+ _iterator3 = _createForOfIteratorHelper((0, _file_systems.walkDir)(dataDirOrFilePath));
196
264
  try {
197
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
198
- dataFileSplitPath = _step2.value;
265
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
266
+ dataFileSplitPath = _step3.value;
199
267
  dataFilePath = _path["default"].join.apply(_path["default"], [dataDirOrFilePath].concat(_toConsumableArray(dataFileSplitPath)));
200
268
  if (dataFilePath.endsWith(".json")) {
201
269
  data = JSON.parse(_fsExtra["default"].readFileSync(dataFilePath, {
@@ -205,9 +273,9 @@ function _retrieveOpenData() {
205
273
  }
206
274
  }
207
275
  } catch (err) {
208
- _iterator2.e(err);
276
+ _iterator3.e(err);
209
277
  } finally {
210
- _iterator2.f();
278
+ _iterator3.f();
211
279
  }
212
280
  } else {
213
281
  _data = JSON.parse(_fsExtra["default"].readFileSync(dataDirOrFilePath, {
@@ -215,36 +283,36 @@ function _retrieveOpenData() {
215
283
  }));
216
284
  _fsExtra["default"].writeFileSync(dataDirOrFilePath, JSON.stringify(_data, null, 2));
217
285
  }
218
- case 26:
286
+ case 43:
219
287
  case "end":
220
- return _context.stop();
288
+ return _context2.stop();
221
289
  }
222
- }, _loop);
290
+ }, _loop, null, [[26, 35, 38, 41]]);
223
291
  });
224
292
  _iterator.s();
225
293
  case 9:
226
294
  if ((_step = _iterator.n()).done) {
227
- _context2.next = 13;
295
+ _context3.next = 13;
228
296
  break;
229
297
  }
230
- return _context2.delegateYield(_loop(), "t0", 11);
298
+ return _context3.delegateYield(_loop(), "t0", 11);
231
299
  case 11:
232
- _context2.next = 9;
300
+ _context3.next = 9;
233
301
  break;
234
302
  case 13:
235
- _context2.next = 18;
303
+ _context3.next = 18;
236
304
  break;
237
305
  case 15:
238
- _context2.prev = 15;
239
- _context2.t1 = _context2["catch"](6);
240
- _iterator.e(_context2.t1);
306
+ _context3.prev = 15;
307
+ _context3.t1 = _context3["catch"](6);
308
+ _iterator.e(_context3.t1);
241
309
  case 18:
242
- _context2.prev = 18;
310
+ _context3.prev = 18;
243
311
  _iterator.f();
244
- return _context2.finish(18);
312
+ return _context3.finish(18);
245
313
  case 21:
246
314
  case "end":
247
- return _context2.stop();
315
+ return _context3.stop();
248
316
  }
249
317
  }, _callee, null, [[6, 15, 18, 21]]);
250
318
  }));
@@ -254,4 +322,4 @@ retrieveOpenData(options.dataDir)["catch"](function (error) {
254
322
  console.log(error);
255
323
  process.exit(1);
256
324
  });
257
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2ZzRXh0cmEiLCJfbm9kZUZldGNoIiwiX3BhdGgiLCJfc3RyZWFtIiwiX25vZGVTdHJlYW1aaXAiLCJfdXRpbCIsIl9kYXRhc2V0cyIsIl9maWxlX3N5c3RlbXMiLCJfbGVnaXNsYXR1cmVzIiwib2JqIiwiX19lc01vZHVsZSIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJleHBvcnRzIiwiT3AiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd24iLCJoYXNPd25Qcm9wZXJ0eSIsImRlZmluZVByb3BlcnR5Iiwia2V5IiwiZGVzYyIsInZhbHVlIiwiJFN5bWJvbCIsIlN5bWJvbCIsIml0ZXJhdG9yU3ltYm9sIiwiaXRlcmF0b3IiLCJhc3luY0l0ZXJhdG9yU3ltYm9sIiwiYXN5bmNJdGVyYXRvciIsInRvU3RyaW5nVGFnU3ltYm9sIiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJlcnIiLCJ3cmFwIiwiaW5uZXJGbiIsIm91dGVyRm4iLCJzZWxmIiwidHJ5TG9jc0xpc3QiLCJwcm90b0dlbmVyYXRvciIsIkdlbmVyYXRvciIsImdlbmVyYXRvciIsImNyZWF0ZSIsImNvbnRleHQiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiZm4iLCJhcmciLCJ0eXBlIiwiY2FsbCIsIkNvbnRpbnVlU2VudGluZWwiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiSXRlcmF0b3JQcm90b3R5cGUiLCJnZXRQcm90byIsImdldFByb3RvdHlwZU9mIiwiTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUiLCJ2YWx1ZXMiLCJHcCIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJtZXRob2QiLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsIlByb21pc2VJbXBsIiwiaW52b2tlIiwicmVzb2x2ZSIsInJlamVjdCIsInJlY29yZCIsInJlc3VsdCIsIl90eXBlb2YiLCJfX2F3YWl0IiwidGhlbiIsInVud3JhcHBlZCIsImVycm9yIiwicHJldmlvdXNQcm9taXNlIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJzdGF0ZSIsIkVycm9yIiwiZG9uZVJlc3VsdCIsImRlbGVnYXRlIiwiZGVsZWdhdGVSZXN1bHQiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJkb25lIiwibWV0aG9kTmFtZSIsInVuZGVmaW5lZCIsIlR5cGVFcnJvciIsImluZm8iLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJsb2NzIiwiZW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsIml0ZXJhYmxlIiwiaXRlcmF0b3JNZXRob2QiLCJpc05hTiIsImxlbmd0aCIsImkiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJnZW5GdW4iLCJjdG9yIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJpdGVyIiwia2V5cyIsInZhbCIsIm9iamVjdCIsInJldmVyc2UiLCJwb3AiLCJza2lwVGVtcFJlc2V0IiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJvb3RSZWNvcmQiLCJydmFsIiwiZXhjZXB0aW9uIiwiaGFuZGxlIiwibG9jIiwiY2F1Z2h0IiwiaGFzQ2F0Y2giLCJoYXNGaW5hbGx5IiwiZmluYWxseUVudHJ5IiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJ0aHJvd24iLCJkZWxlZ2F0ZVlpZWxkIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJvIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIkYiLCJzIiwibiIsImUiLCJfZSIsImYiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwic3RlcCIsIl9lMiIsIl90b0NvbnN1bWFibGVBcnJheSIsImFyciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwiZnJvbSIsInRlc3QiLCJsZW4iLCJhcnIyIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImFsaWFzIiwiaGVscCIsIkJvb2xlYW4iLCJkZWZhdWx0VmFsdWUiLCJtdWx0aXBsZSIsIlN0cmluZyIsIk51bWJlciIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwicGlwZWxpbmUiLCJ1dGlsIiwicHJvbWlzaWZ5Iiwic3RyZWFtIiwicmV0cmlldmVPcGVuRGF0YSIsIl94IiwiX3JldHJpZXZlT3BlbkRhdGEiLCJfY2FsbGVlIiwiZGF0YURpciIsIl9vcHRpb25zJGxlZ2lzbGF0dXJlIiwiZW5hYmxlZERhdGFzZXRzIiwiY2hvb3NlbkRhdGFzZXRzIiwibGVnaXNsYXR1cmVzIiwiZW5hYmxlZExlZ2lzbGF0dXJlcyIsIl9pdGVyYXRvciIsIl9zdGVwIiwiX2xvb3AiLCJfY2FsbGVlJCIsIl9jb250ZXh0MiIsImNhdGVnb3JpZXMiLCJtYXAiLCJkYXRhc2V0TmFtZSIsImFzc2VydCIsIm5vdFN0cmljdEVxdWFsIiwiRW5hYmxlZERhdGFzZXRzIiwiY29uY2F0IiwicmVkdWNlIiwiTm9uZSIsIkFjdGV1cnNFdE9yZ2FuZXMiLCJkYXRhc2V0cyIsImFjdGV1cnNFdE9yZ2FuZXMiLCJBZ2VuZGFzIiwiYWdlbmRhcyIsIkFtZW5kZW1lbnRzIiwiYW1lbmRlbWVudHMiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzIiwiZG9zc2llcnNMZWdpc2xhdGlmcyIsIlNjcnV0aW5zIiwic2NydXRpbnMiLCJsZWdpc2xhdHVyZSIsInNvbWUiLCJmaWx0ZXIiLCJkYXRhc2V0IiwiTGVnaXNsYXR1cmUiLCJBbGwiLCJpbmNsdWRlcyIsInppcEZpbGVQYXRoIiwicmVzcG9uc2UiLCJkYXRhRGlyT3JGaWxlUGF0aCIsInppcCIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJkYXRhRmlsZVNwbGl0UGF0aCIsImRhdGFGaWxlUGF0aCIsImRhdGEiLCJfZGF0YSIsIl9sb29wJCIsIl9jb250ZXh0IiwicGF0aCIsImpvaW4iLCJmaWxlbmFtZSIsImZldGNoIiwic2lsZW50IiwiY29uc29sZSIsImxvZyIsInRpdGxlIiwidXJsIiwib2siLCJzdGF0dXMiLCJzdGF0dXNUZXh0IiwidDAiLCJ0ZXh0IiwidDEiLCJib2R5IiwiZnMiLCJjcmVhdGVXcml0ZVN0cmVhbSIsInJlbW92ZVN5bmMiLCJTdHJlYW1aaXAiLCJmaWxlIiwic3RvcmVFbnRyaWVzIiwib24iLCJleHRyYWN0IiwiY2xvc2UiLCJyZXBhaXJaaXAiLCJzdGF0U3luYyIsImlzRGlyZWN0b3J5Iiwid2Fsa0RpciIsImVuZHNXaXRoIiwiSlNPTiIsInBhcnNlIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJ3cml0ZUZpbGVTeW5jIiwic3RyaW5naWZ5IiwicHJvY2VzcyIsImV4aXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV9vcGVuX2RhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBzdHJlYW0gZnJvbSBcInN0cmVhbVwiXG5pbXBvcnQgU3RyZWFtWmlwIGZyb20gXCJub2RlLXN0cmVhbS16aXBcIlxuaW1wb3J0IHV0aWwgZnJvbSBcInV0aWxcIlxuXG5pbXBvcnQgeyBkYXRhc2V0cywgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4uL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcImZcIixcbiAgICBoZWxwOiBcImZldGNoIGRhdGFzZXRzIGluc3RlYWQgb2YgcmV0cmlldmluZyB0aGVtIGZyb20gZmlsZXNcIixcbiAgICBuYW1lOiBcImZldGNoXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImtcIixcbiAgICBkZWZhdWx0VmFsdWU6IFtcIkFsbFwiXSxcbiAgICBoZWxwOiBcImNhdGVnb3JpZXMgb2YgZGF0YXNldHMgdG8gcmV0cmlldmVcIixcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBuYW1lOiBcImNhdGVnb3JpZXNcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJsXCIsXG4gICAgaGVscDogXCJsZWdpc2xhdHVyZXMgb2YgY2F0ZWdvcmllcyBvZiBkYXRhc2V0cyB0byByZXRyaWV2ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwibGVnaXNsYXR1cmVcIixcbiAgICB0eXBlOiBOdW1iZXIsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJzXCIsXG4gICAgaGVscDogXCJkb24ndCBsb2cgYW55dGhpbmdcIixcbiAgICBuYW1lOiBcInNpbGVudFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBkZWZhdWx0T3B0aW9uOiB0cnVlLFxuICAgIGhlbHA6IFwiZGlyZWN0b3J5IGNvbnRhaW5pbmcgQXNzZW1ibMOpZSBvcGVuIGRhdGEgZmlsZXNcIixcbiAgICBuYW1lOiBcImRhdGFEaXJcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuY29uc3QgcGlwZWxpbmUgPSB1dGlsLnByb21pc2lmeShzdHJlYW0ucGlwZWxpbmUpXG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlT3BlbkRhdGEoZGF0YURpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIG9wdGlvbnMuY2F0ZWdvcmllcy5tYXAoKGRhdGFzZXROYW1lOiBzdHJpbmcpID0+XG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgICBkYXRhc2V0TmFtZVxuICAgICAgXSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGBVbmtub3duIG5hbWUgb2YgZGF0YXNldDogJHtkYXRhc2V0TmFtZX1gLFxuICAgICksXG4gIClcbiAgY29uc3QgZW5hYmxlZERhdGFzZXRzID0gb3B0aW9ucy5jYXRlZ29yaWVzLnJlZHVjZShcbiAgICAoZW5hYmxlZERhdGFzZXRzOiBFbmFibGVkRGF0YXNldHMsIGRhdGFzZXROYW1lOiBzdHJpbmcpOiBFbmFibGVkRGF0YXNldHMgPT5cbiAgICAgIGVuYWJsZWREYXRhc2V0cyB8XG4gICAgICAoRW5hYmxlZERhdGFzZXRzIGFzIGFueSBhcyB7IFtuYW1lOiBzdHJpbmddOiBFbmFibGVkRGF0YXNldHMgfSlbXG4gICAgICAgIGRhdGFzZXROYW1lXG4gICAgICBdLFxuICAgIEVuYWJsZWREYXRhc2V0cy5Ob25lLFxuICApXG5cbiAgbGV0IGNob29zZW5EYXRhc2V0cyA9IFtcbiAgICAuLi4oZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFjdGV1cnNFdE9yZ2FuZXNcbiAgICAgID8gZGF0YXNldHMuYWN0ZXVyc0V0T3JnYW5lc1xuICAgICAgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BZ2VuZGFzID8gZGF0YXNldHMuYWdlbmRhcyA6IFtdKSxcbiAgICAuLi4oZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFtZW5kZW1lbnRzXG4gICAgICA/IGRhdGFzZXRzLmFtZW5kZW1lbnRzXG4gICAgICA6IFtdKSxcbiAgICAuLi4oZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkRvc3NpZXJzTGVnaXNsYXRpZnNcbiAgICAgID8gZGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmc1xuICAgICAgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5TY3J1dGlucyA/IGRhdGFzZXRzLnNjcnV0aW5zIDogW10pLFxuICBdXG5cbiAgLy8gV2hlbiBhIGdpdmVuIGxlZ2lzbGF0dXJlIGlzIDAsIGl0IGlzIHRoZSBzYW1lIGFzIGdpdmluZyBubyBsZWdpc2xhdHVyZTpcbiAgLy8gSXQgbWVhbnMgXCJldmVyeSBsZWdpc2xhdHVyZXNcIi5cbiAgY29uc3QgbGVnaXNsYXR1cmVzID0gb3B0aW9ucy5sZWdpc2xhdHVyZT8uc29tZShcbiAgICAobGVnaXNsYXR1cmU6IG51bWJlcikgPT4gbGVnaXNsYXR1cmUgPT09IDAsXG4gIClcbiAgICA/IHVuZGVmaW5lZFxuICAgIDogb3B0aW9ucy5sZWdpc2xhdHVyZVxuICBpZiAobGVnaXNsYXR1cmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBlbmFibGVkTGVnaXNsYXR1cmVzID0gbGVnaXNsYXR1cmVzLm1hcCgobGVnaXNsYXR1cmU6IG51bWJlcikgPT5cbiAgICAgIGxlZ2lzbGF0dXJlLnRvU3RyaW5nKCksXG4gICAgKVxuICAgIGNob29zZW5EYXRhc2V0cyA9IGNob29zZW5EYXRhc2V0cy5maWx0ZXIoXG4gICAgICAoZGF0YXNldCkgPT5cbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSA9PT0gTGVnaXNsYXR1cmUuQWxsIHx8XG4gICAgICAgIGVuYWJsZWRMZWdpc2xhdHVyZXMuaW5jbHVkZXMoZGF0YXNldC5sZWdpc2xhdHVyZSksXG4gICAgKVxuICB9XG5cbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob29zZW5EYXRhc2V0cykge1xuICAgIGNvbnN0IHppcEZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFEaXIsIGAke2RhdGFzZXQuZmlsZW5hbWV9LnppcGApXG4gICAgaWYgKG9wdGlvbnMuZmV0Y2gpIHtcbiAgICAgIC8vIEZldGNoICYgc2F2ZSBaSVAgZmlsZS5cbiAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgJHtkYXRhc2V0LnRpdGxlfTogJHtkYXRhc2V0LmZpbGVuYW1lfS56aXBgKVxuICAgICAgfVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChkYXRhc2V0LnVybClcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihyZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlLnN0YXR1c1RleHQpXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYXdhaXQgcmVzcG9uc2UudGV4dCgpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZldGNoIGZhaWxlZDogJHtkYXRhc2V0LnVybH1gKVxuICAgICAgfVxuICAgICAgYXdhaXQgcGlwZWxpbmUocmVzcG9uc2UuYm9keSEsIGZzLmNyZWF0ZVdyaXRlU3RyZWFtKHppcEZpbGVQYXRoKSlcbiAgICB9XG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coYFVuemlwcGluZyAke2RhdGFzZXQudGl0bGV9OiAke2RhdGFzZXQuZmlsZW5hbWV9LnppcGApXG4gICAgfVxuICAgIGNvbnN0IGRhdGFEaXJPckZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgZnMucmVtb3ZlU3luYyhkYXRhRGlyT3JGaWxlUGF0aClcbiAgICBjb25zdCB6aXAgPSBuZXcgU3RyZWFtWmlwKHtcbiAgICAgIGZpbGU6IHppcEZpbGVQYXRoLFxuICAgICAgc3RvcmVFbnRyaWVzOiB0cnVlLFxuICAgIH0pXG4gICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgemlwLm9uKFwicmVhZHlcIiwgKCkgPT4ge1xuICAgICAgICAvLyBQYXRjaCBmb2xsb3dpbmcgbGluZSwgYmVjYXVzZSBvZiB3cm9uZyBUeXBlU2NyaXB0IGRlZmluaXRpb24gZm9yIHppcC5leHRyYWN0LlxuICAgICAgICAvLyB6aXAuZXh0cmFjdChudWxsLCBkYXRhRGlyLCAoZXJyOiBhbnksIF9jb3VudDogbnVtYmVyKSA9PiB7XG4gICAgICAgIHppcC5leHRyYWN0KG51bGwhLCBkYXRhRGlyLCAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB6aXAuY2xvc2UoKVxuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdChlcnIpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUobnVsbClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH0pXG5cbiAgICBpZiAoZGF0YXNldC5yZXBhaXJaaXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgUmVwYWlyaW5nICR7ZGF0YXNldC50aXRsZX06ICR7ZGF0YXNldC5maWxlbmFtZX1gKVxuICAgICAgfVxuICAgICAgZGF0YXNldC5yZXBhaXJaaXAoZGF0YXNldCwgZGF0YURpcilcbiAgICB9XG4gICAgLy8gUmVpbmRlbnQgSlNPTiBmaWxlLlxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBSZWlkZW50aW5nICR7ZGF0YXNldC50aXRsZX06ICR7ZGF0YXNldC5maWxlbmFtZX1gKVxuICAgIH1cbiAgICBpZiAoZnMuc3RhdFN5bmMoZGF0YURpck9yRmlsZVBhdGgpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIGZvciAoY29uc3QgZGF0YUZpbGVTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhRGlyT3JGaWxlUGF0aCkpIHtcbiAgICAgICAgY29uc3QgZGF0YUZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFEaXJPckZpbGVQYXRoLCAuLi5kYXRhRmlsZVNwbGl0UGF0aClcbiAgICAgICAgaWYgKGRhdGFGaWxlUGF0aC5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgICBmcy5yZWFkRmlsZVN5bmMoZGF0YUZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0Zi04XCIgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZGF0YUZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShcbiAgICAgICAgZnMucmVhZEZpbGVTeW5jKGRhdGFEaXJPckZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0Zi04XCIgfSksXG4gICAgICApXG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGRhdGFEaXJPckZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKSlcbiAgICB9XG4gIH1cbn1cblxucmV0cmlldmVPcGVuRGF0YShvcHRpb25zLmRhdGFEaXIpLmNhdGNoKChlcnJvcikgPT4ge1xuICBjb25zb2xlLmxvZyhlcnJvcilcbiAgcHJvY2Vzcy5leGl0KDEpXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxnQkFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsUUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssT0FBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sY0FBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sS0FBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQVEsU0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsYUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsYUFBQSxHQUFBVixPQUFBO0FBQW1ELFNBQUFELHVCQUFBWSxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFBQSxTQUFBRSxvQkFBQSxrQkFWbkQscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLE9BQUEsU0FBQUEsT0FBQSxPQUFBQyxFQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFBQyxNQUFBLEdBQUFILEVBQUEsQ0FBQUksY0FBQSxFQUFBQyxjQUFBLEdBQUFKLE1BQUEsQ0FBQUksY0FBQSxjQUFBVCxHQUFBLEVBQUFVLEdBQUEsRUFBQUMsSUFBQSxJQUFBWCxHQUFBLENBQUFVLEdBQUEsSUFBQUMsSUFBQSxDQUFBQyxLQUFBLEtBQUFDLE9BQUEsd0JBQUFDLE1BQUEsR0FB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
325
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2ZzRXh0cmEiLCJfbm9kZUZldGNoIiwiX3BhdGgiLCJfc3RyZWFtIiwiX25vZGVTdHJlYW1aaXAiLCJfdXRpbCIsIl9kYXRhc2V0cyIsIl9maWxlX3N5c3RlbXMiLCJfbGVnaXNsYXR1cmVzIiwib2JqIiwiX19lc01vZHVsZSIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJleHBvcnRzIiwiT3AiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd24iLCJoYXNPd25Qcm9wZXJ0eSIsImRlZmluZVByb3BlcnR5Iiwia2V5IiwiZGVzYyIsInZhbHVlIiwiJFN5bWJvbCIsIlN5bWJvbCIsIml0ZXJhdG9yU3ltYm9sIiwiaXRlcmF0b3IiLCJhc3luY0l0ZXJhdG9yU3ltYm9sIiwiYXN5bmNJdGVyYXRvciIsInRvU3RyaW5nVGFnU3ltYm9sIiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJlcnIiLCJ3cmFwIiwiaW5uZXJGbiIsIm91dGVyRm4iLCJzZWxmIiwidHJ5TG9jc0xpc3QiLCJwcm90b0dlbmVyYXRvciIsIkdlbmVyYXRvciIsImdlbmVyYXRvciIsImNyZWF0ZSIsImNvbnRleHQiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiZm4iLCJhcmciLCJ0eXBlIiwiY2FsbCIsIkNvbnRpbnVlU2VudGluZWwiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiSXRlcmF0b3JQcm90b3R5cGUiLCJnZXRQcm90byIsImdldFByb3RvdHlwZU9mIiwiTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUiLCJ2YWx1ZXMiLCJHcCIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJtZXRob2QiLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsIlByb21pc2VJbXBsIiwiaW52b2tlIiwicmVzb2x2ZSIsInJlamVjdCIsInJlY29yZCIsInJlc3VsdCIsIl90eXBlb2YiLCJfX2F3YWl0IiwidGhlbiIsInVud3JhcHBlZCIsImVycm9yIiwicHJldmlvdXNQcm9taXNlIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJzdGF0ZSIsIkVycm9yIiwiZG9uZVJlc3VsdCIsImRlbGVnYXRlIiwiZGVsZWdhdGVSZXN1bHQiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJkb25lIiwibWV0aG9kTmFtZSIsInVuZGVmaW5lZCIsIlR5cGVFcnJvciIsImluZm8iLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJsb2NzIiwiZW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsIml0ZXJhYmxlIiwiaXRlcmF0b3JNZXRob2QiLCJpc05hTiIsImxlbmd0aCIsImkiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJnZW5GdW4iLCJjdG9yIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJpdGVyIiwia2V5cyIsInZhbCIsIm9iamVjdCIsInJldmVyc2UiLCJwb3AiLCJza2lwVGVtcFJlc2V0IiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJvb3RSZWNvcmQiLCJydmFsIiwiZXhjZXB0aW9uIiwiaGFuZGxlIiwibG9jIiwiY2F1Z2h0IiwiaGFzQ2F0Y2giLCJoYXNGaW5hbGx5IiwiZmluYWxseUVudHJ5IiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJ0aHJvd24iLCJkZWxlZ2F0ZVlpZWxkIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJvIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIkYiLCJzIiwibiIsImUiLCJfZSIsImYiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwic3RlcCIsIl9lMiIsIl90b0NvbnN1bWFibGVBcnJheSIsImFyciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwiZnJvbSIsInRlc3QiLCJsZW4iLCJhcnIyIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsInhtbDJqcyIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImFsaWFzIiwiaGVscCIsIkJvb2xlYW4iLCJkZWZhdWx0VmFsdWUiLCJtdWx0aXBsZSIsIlN0cmluZyIsIk51bWJlciIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwicGlwZWxpbmUiLCJ1dGlsIiwicHJvbWlzaWZ5Iiwic3RyZWFtIiwicmV0cmlldmVPcGVuRGF0YSIsIl94IiwiX3JldHJpZXZlT3BlbkRhdGEiLCJfY2FsbGVlIiwiZGF0YURpciIsIl9vcHRpb25zJGxlZ2lzbGF0dXJlIiwiZW5hYmxlZERhdGFzZXRzIiwiY2hvb3NlbkRhdGFzZXRzIiwibGVnaXNsYXR1cmVzIiwiZW5hYmxlZExlZ2lzbGF0dXJlcyIsIl9pdGVyYXRvciIsIl9zdGVwIiwiX2xvb3AiLCJfY2FsbGVlJCIsIl9jb250ZXh0MyIsImNhdGVnb3JpZXMiLCJtYXAiLCJkYXRhc2V0TmFtZSIsImFzc2VydCIsIm5vdFN0cmljdEVxdWFsIiwiRW5hYmxlZERhdGFzZXRzIiwiY29uY2F0IiwicmVkdWNlIiwiTm9uZSIsIkFjdGV1cnNFdE9yZ2FuZXMiLCJkYXRhc2V0cyIsImFjdGV1cnNFdE9yZ2FuZXMiLCJBZ2VuZGFzIiwiYWdlbmRhcyIsIkFtZW5kZW1lbnRzIiwiYW1lbmRlbWVudHMiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzIiwiZG9zc2llcnNMZWdpc2xhdGlmcyIsIlNjcnV0aW5zIiwic2NydXRpbnMiLCJRdWVzdGlvbnMiLCJxdWVzdGlvbnMiLCJDb21wdGVzUmVuZHVzU2VhbmNlcyIsImNvbXB0ZXNSZW5kdXNTZWFuY2VzIiwibGVnaXNsYXR1cmUiLCJzb21lIiwiZmlsdGVyIiwiZGF0YXNldCIsIkxlZ2lzbGF0dXJlIiwiQWxsIiwiaW5jbHVkZXMiLCJ6aXBGaWxlUGF0aCIsInJlc3BvbnNlIiwiZGF0YURpck9yRmlsZVBhdGgiLCJ6aXAiLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiX2xvb3AyIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsImRhdGFGaWxlU3BsaXRQYXRoIiwiZGF0YUZpbGVQYXRoIiwiZGF0YSIsIl9kYXRhIiwiX2xvb3AkIiwiX2NvbnRleHQyIiwicGF0aCIsImpvaW4iLCJmaWxlbmFtZSIsImZldGNoIiwic2lsZW50IiwiY29uc29sZSIsImxvZyIsInRpdGxlIiwidXJsIiwib2siLCJzdGF0dXMiLCJzdGF0dXNUZXh0IiwidDAiLCJ0ZXh0IiwidDEiLCJib2R5IiwiZnMiLCJjcmVhdGVXcml0ZVN0cmVhbSIsInJlbW92ZVN5bmMiLCJTdHJlYW1aaXAiLCJmaWxlIiwic3RvcmVFbnRyaWVzIiwib24iLCJleHRyYWN0IiwiY2xvc2UiLCJyZXBhaXJaaXAiLCJlbmRzV2l0aCIsIndhbGtEaXIiLCJmb3JtYXQiLCJwYXJzZXIiLCJfbG9vcDIkIiwiX2NvbnRleHQiLCJQYXJzZXIiLCJtZXJnZUF0dHJzIiwiZXhwbGljaXRBcnJheSIsInJlYWRGaWxlIiwicGFyc2VTdHJpbmciLCJuZXdEYXRhRmlsZVBhdGgiLCJyZXBsYWNlIiwiY29weSIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5IiwidDMiLCJzdGF0U3luYyIsImlzRGlyZWN0b3J5IiwicGFyc2UiLCJyZWFkRmlsZVN5bmMiLCJlbmNvZGluZyIsInByb2Nlc3MiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfb3Blbl9kYXRhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBmZXRjaCBmcm9tIFwibm9kZS1mZXRjaFwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQgc3RyZWFtIGZyb20gXCJzdHJlYW1cIlxuaW1wb3J0IFN0cmVhbVppcCBmcm9tIFwibm9kZS1zdHJlYW0temlwXCJcbmltcG9ydCB1dGlsIGZyb20gXCJ1dGlsXCJcblxuaW1wb3J0IHsgZGF0YXNldHMsIEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyB3YWxrRGlyIH0gZnJvbSBcIi4uL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQgeyBMZWdpc2xhdHVyZSB9IGZyb20gXCIuLi90eXBlcy9sZWdpc2xhdHVyZXNcIlxuXG5sZXQgeG1sMmpzID0gcmVxdWlyZShcInhtbDJqc1wiKVxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gIHtcbiAgICBhbGlhczogXCJmXCIsXG4gICAgaGVscDogXCJmZXRjaCBkYXRhc2V0cyBpbnN0ZWFkIG9mIHJldHJpZXZpbmcgdGhlbSBmcm9tIGZpbGVzXCIsXG4gICAgbmFtZTogXCJmZXRjaFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJrXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBbXCJBbGxcIl0sXG4gICAgaGVscDogXCJjYXRlZ29yaWVzIG9mIGRhdGFzZXRzIHRvIHJldHJpZXZlXCIsXG4gICAgbXVsdGlwbGU6IHRydWUsXG4gICAgbmFtZTogXCJjYXRlZ29yaWVzXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwibFwiLFxuICAgIGhlbHA6IFwibGVnaXNsYXR1cmVzIG9mIGNhdGVnb3JpZXMgb2YgZGF0YXNldHMgdG8gcmV0cmlldmVcIixcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBuYW1lOiBcImxlZ2lzbGF0dXJlXCIsXG4gICAgdHlwZTogTnVtYmVyLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwic1wiLFxuICAgIGhlbHA6IFwiZG9uJ3QgbG9nIGFueXRoaW5nXCIsXG4gICAgbmFtZTogXCJzaWxlbnRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICBoZWxwOiBcImRpcmVjdG9yeSBjb250YWluaW5nIEFzc2VtYmzDqWUgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmNvbnN0IHBpcGVsaW5lID0gdXRpbC5wcm9taXNpZnkoc3RyZWFtLnBpcGVsaW5lKVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZU9wZW5EYXRhKGRhdGFEaXI6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBvcHRpb25zLmNhdGVnb3JpZXMubWFwKChkYXRhc2V0TmFtZTogc3RyaW5nKSA9PlxuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgIChFbmFibGVkRGF0YXNldHMgYXMgYW55IGFzIHsgW25hbWU6IHN0cmluZ106IEVuYWJsZWREYXRhc2V0cyB9KVtcbiAgICAgICAgZGF0YXNldE5hbWVcbiAgICAgIF0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBgVW5rbm93biBuYW1lIG9mIGRhdGFzZXQ6ICR7ZGF0YXNldE5hbWV9YCxcbiAgICApLFxuICApXG4gIGNvbnN0IGVuYWJsZWREYXRhc2V0cyA9IG9wdGlvbnMuY2F0ZWdvcmllcy5yZWR1Y2UoXG4gICAgKGVuYWJsZWREYXRhc2V0czogRW5hYmxlZERhdGFzZXRzLCBkYXRhc2V0TmFtZTogc3RyaW5nKTogRW5hYmxlZERhdGFzZXRzID0+XG4gICAgICBlbmFibGVkRGF0YXNldHMgfFxuICAgICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgICBkYXRhc2V0TmFtZVxuICAgICAgXSxcbiAgICBFbmFibGVkRGF0YXNldHMuTm9uZSxcbiAgKVxuXG4gIGxldCBjaG9vc2VuRGF0YXNldHMgPSBbXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzXG4gICAgICA/IGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXNcbiAgICAgIDogW10pLFxuICAgIC4uLihlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWdlbmRhcyA/IGRhdGFzZXRzLmFnZW5kYXMgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BbWVuZGVtZW50c1xuICAgICAgPyBkYXRhc2V0cy5hbWVuZGVtZW50c1xuICAgICAgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzXG4gICAgICA/IGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnNcbiAgICAgIDogW10pLFxuICAgIC4uLihlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuU2NydXRpbnMgPyBkYXRhc2V0cy5zY3J1dGlucyA6IFtdKSxcbiAgICAuLi4oZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlF1ZXN0aW9ucyA/IGRhdGFzZXRzLnF1ZXN0aW9ucyA6IFtdKSxcbiAgICAuLi4oZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkNvbXB0ZXNSZW5kdXNTZWFuY2VzXG4gICAgICA/IGRhdGFzZXRzLmNvbXB0ZXNSZW5kdXNTZWFuY2VzXG4gICAgICA6IFtdKSxcbiAgXVxuXG4gIC8vIFdoZW4gYSBnaXZlbiBsZWdpc2xhdHVyZSBpcyAwLCBpdCBpcyB0aGUgc2FtZSBhcyBnaXZpbmcgbm8gbGVnaXNsYXR1cmU6XG4gIC8vIEl0IG1lYW5zIFwiZXZlcnkgbGVnaXNsYXR1cmVzXCIuXG4gIGNvbnN0IGxlZ2lzbGF0dXJlcyA9IG9wdGlvbnMubGVnaXNsYXR1cmU/LnNvbWUoXG4gICAgKGxlZ2lzbGF0dXJlOiBudW1iZXIpID0+IGxlZ2lzbGF0dXJlID09PSAwLFxuICApXG4gICAgPyB1bmRlZmluZWRcbiAgICA6IG9wdGlvbnMubGVnaXNsYXR1cmVcbiAgaWYgKGxlZ2lzbGF0dXJlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgZW5hYmxlZExlZ2lzbGF0dXJlcyA9IGxlZ2lzbGF0dXJlcy5tYXAoKGxlZ2lzbGF0dXJlOiBudW1iZXIpID0+XG4gICAgICBsZWdpc2xhdHVyZS50b1N0cmluZygpLFxuICAgIClcbiAgICBjaG9vc2VuRGF0YXNldHMgPSBjaG9vc2VuRGF0YXNldHMuZmlsdGVyKFxuICAgICAgKGRhdGFzZXQpID0+XG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgPT09IExlZ2lzbGF0dXJlLkFsbCB8fFxuICAgICAgICBlbmFibGVkTGVnaXNsYXR1cmVzLmluY2x1ZGVzKGRhdGFzZXQubGVnaXNsYXR1cmUpLFxuICAgIClcbiAgfVxuXG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBjaG9vc2VuRGF0YXNldHMpIHtcbiAgICBjb25zdCB6aXBGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhRGlyLCBgJHtkYXRhc2V0LmZpbGVuYW1lfS56aXBgKVxuICAgIGlmIChvcHRpb25zLmZldGNoKSB7XG4gICAgICAvLyBGZXRjaCAmIHNhdmUgWklQIGZpbGUuXG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nICR7ZGF0YXNldC50aXRsZX06ICR7ZGF0YXNldC5maWxlbmFtZX0uemlwYClcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goZGF0YXNldC51cmwpXG4gICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IocmVzcG9uc2Uuc3RhdHVzLCByZXNwb25zZS5zdGF0dXNUZXh0KVxuICAgICAgICBjb25zb2xlLmVycm9yKGF3YWl0IHJlc3BvbnNlLnRleHQoKSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGZXRjaCBmYWlsZWQ6ICR7ZGF0YXNldC51cmx9YClcbiAgICAgIH1cbiAgICAgIGF3YWl0IHBpcGVsaW5lKHJlc3BvbnNlLmJvZHkhLCBmcy5jcmVhdGVXcml0ZVN0cmVhbSh6aXBGaWxlUGF0aCkpXG4gICAgfVxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBVbnppcHBpbmcgJHtkYXRhc2V0LnRpdGxlfTogJHtkYXRhc2V0LmZpbGVuYW1lfS56aXBgKVxuICAgIH1cbiAgICBjb25zdCBkYXRhRGlyT3JGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgIGZzLnJlbW92ZVN5bmMoZGF0YURpck9yRmlsZVBhdGgpXG4gICAgY29uc3QgemlwID0gbmV3IFN0cmVhbVppcCh7XG4gICAgICBmaWxlOiB6aXBGaWxlUGF0aCxcbiAgICAgIHN0b3JlRW50cmllczogdHJ1ZSxcbiAgICB9KVxuICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHppcC5vbihcInJlYWR5XCIsICgpID0+IHtcbiAgICAgICAgLy8gUGF0Y2ggZm9sbG93aW5nIGxpbmUsIGJlY2F1c2Ugb2Ygd3JvbmcgVHlwZVNjcmlwdCBkZWZpbml0aW9uIGZvciB6aXAuZXh0cmFjdC5cbiAgICAgICAgLy8gemlwLmV4dHJhY3QobnVsbCwgZGF0YURpciwgKGVycjogYW55LCBfY291bnQ6IG51bWJlcikgPT4ge1xuICAgICAgICB6aXAuZXh0cmFjdChudWxsISwgZGF0YURpciwgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgemlwLmNsb3NlKClcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZWplY3QoZXJyKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgaWYgKGRhdGFzZXQucmVwYWlyWmlwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFJlcGFpcmluZyAke2RhdGFzZXQudGl0bGV9OiAke2RhdGFzZXQuZmlsZW5hbWV9YClcbiAgICAgIH1cbiAgICAgIGRhdGFzZXQucmVwYWlyWmlwKGRhdGFzZXQsIGRhdGFEaXIpXG4gICAgfVxuXG4gICAgLy8gQ29udmVydCB4bWwgdG8gSlNPTi5cbiAgICBpZiAoZGF0YXNldC5maWxlbmFtZS5lbmRzV2l0aChcIi54bWxcIikpIHtcbiAgICAgIGZvciAoY29uc3QgZGF0YUZpbGVTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhRGlyT3JGaWxlUGF0aCkpIHtcbiAgICAgICAgY29uc3QgZGF0YUZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFEaXJPckZpbGVQYXRoLCAuLi5kYXRhRmlsZVNwbGl0UGF0aClcbiAgICAgICAgaWYgKGRhdGFGaWxlUGF0aC5lbmRzV2l0aChcIi54bWxcIikpIHtcbiAgICAgICAgICBmdW5jdGlvbiBmb3JtYXQoa2V5OiBhbnksIHZhbHVlOiBhbnkpIHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09IFwiYnJcIiB8fCBrZXkgPT09IFwiaXRhbGlxdWVcIiB8fCBrZXkgPT09IFwiZXhwb3NhbnRcIikge1xuICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgcGFyc2VyID0gbmV3IHhtbDJqcy5QYXJzZXIoe1xuICAgICAgICAgICAgbWVyZ2VBdHRyczogdHJ1ZSxcbiAgICAgICAgICAgIGV4cGxpY2l0QXJyYXk6IGZhbHNlLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgZnMucmVhZEZpbGUoZGF0YUZpbGVQYXRoLCBmdW5jdGlvbiAoZXJyLCBkYXRhKSB7XG4gICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gY29uc29sZS5lcnJvcihlcnIpXG4gICAgICAgICAgICBwYXJzZXIucGFyc2VTdHJpbmcoZGF0YSwgZnVuY3Rpb24gKGVycjogYW55LCByZXN1bHQ6IGFueSkge1xuICAgICAgICAgICAgICBjb25zdCBuZXdEYXRhRmlsZVBhdGggPSBkYXRhRmlsZVBhdGgucmVwbGFjZSgvXFwuW14uXSskLywgXCIuanNvblwiKVxuICAgICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gY29uc29sZS5lcnJvcihlcnIpXG4gICAgICAgICAgICAgIGZzLmNvcHkoZGF0YUZpbGVQYXRoLCBuZXdEYXRhRmlsZVBhdGgsIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgICAgICAgICAgICAgbmV3RGF0YUZpbGVQYXRoLFxuICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkocmVzdWx0LCBmb3JtYXQsIDIpLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gY29uc29sZS5lcnJvcihlcnIpXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZWluZGVudCBKU09OIGZpbGUuXG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coYFJlaWRlbnRpbmcgJHtkYXRhc2V0LnRpdGxlfTogJHtkYXRhc2V0LmZpbGVuYW1lfWApXG4gICAgfVxuICAgIGlmIChmcy5zdGF0U3luYyhkYXRhRGlyT3JGaWxlUGF0aCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgZm9yIChjb25zdCBkYXRhRmlsZVNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFEaXJPckZpbGVQYXRoKSkge1xuICAgICAgICBjb25zdCBkYXRhRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YURpck9yRmlsZVBhdGgsIC4uLmRhdGFGaWxlU3BsaXRQYXRoKVxuICAgICAgICBpZiAoZGF0YUZpbGVQYXRoLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShcbiAgICAgICAgICAgIGZzLnJlYWRGaWxlU3luYyhkYXRhRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmLThcIiB9KSxcbiAgICAgICAgICApXG4gICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhkYXRhRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKFxuICAgICAgICBmcy5yZWFkRmlsZVN5bmMoZGF0YURpck9yRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmLThcIiB9KSxcbiAgICAgIClcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoZGF0YURpck9yRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpKVxuICAgIH1cbiAgfVxufVxuXG5yZXRyaWV2ZU9wZW5EYXRhKG9wdGlvbnMuZGF0YURpcikuY2F0Y2goKGVycm9yKSA9PiB7XG4gIGNvbnNvbGUubG9nKGVycm9yKVxuICBwcm9jZXNzLmV4aXQoMSlcbn0pXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxnQkFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsUUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssT0FBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sY0FBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sS0FBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQVEsU0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsYUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsYUFBQSxHQUFBVixPQUFBO0FBQW1ELFNBQUFELHVCQUFBWSxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFBQSxTQUFBRSxvQkFBQSxrQkFWbkQscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLE9BQUEsU0FBQUEsT0FBQSxPQUFBQyxFQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFBQyxNQUFBLEdBQUFILEVBQUEsQ0FBQUksY0FBQSxFQUFBQyxjQUFBLEdBQUFKLE1BQUEsQ0FBQUksY0FBQSxjQUFBVCxHQUFBLEVBQUFVLEdBQUEsRUFBQUMsSUFBQSxJQUFBWCxHQUFBLENBQUFVLEdBQUEsSUFBQUMsSUFBQSxDQUFBQyxLQUFBLEtBQUFDLE9BQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxjQUFBLEdBQUFGLE9BQUEsQ0FBQUcs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
@@ -9,6 +9,7 @@ import util from "util";
9
9
  import { datasets, EnabledDatasets } from "../datasets.mjs";
10
10
  import { walkDir } from "../file_systems.mjs";
11
11
  import { Legislature } from "../types/legislatures.mjs";
12
+ let xml2js = require("xml2js");
12
13
  const optionsDefinitions = [{
13
14
  alias: "f",
14
15
  help: "fetch datasets instead of retrieving them from files",
@@ -43,7 +44,7 @@ const pipeline = util.promisify(stream.pipeline);
43
44
  async function retrieveOpenData(dataDir) {
44
45
  options.categories.map(datasetName => assert.notStrictEqual(EnabledDatasets[datasetName], undefined, `Unknown name of dataset: ${datasetName}`));
45
46
  const enabledDatasets = options.categories.reduce((enabledDatasets, datasetName) => enabledDatasets | EnabledDatasets[datasetName], EnabledDatasets.None);
46
- let choosenDatasets = [...(enabledDatasets & EnabledDatasets.ActeursEtOrganes ? datasets.acteursEtOrganes : []), ...(enabledDatasets & EnabledDatasets.Agendas ? datasets.agendas : []), ...(enabledDatasets & EnabledDatasets.Amendements ? datasets.amendements : []), ...(enabledDatasets & EnabledDatasets.DossiersLegislatifs ? datasets.dossiersLegislatifs : []), ...(enabledDatasets & EnabledDatasets.Scrutins ? datasets.scrutins : [])];
47
+ let choosenDatasets = [...(enabledDatasets & EnabledDatasets.ActeursEtOrganes ? datasets.acteursEtOrganes : []), ...(enabledDatasets & EnabledDatasets.Agendas ? datasets.agendas : []), ...(enabledDatasets & EnabledDatasets.Amendements ? datasets.amendements : []), ...(enabledDatasets & EnabledDatasets.DossiersLegislatifs ? datasets.dossiersLegislatifs : []), ...(enabledDatasets & EnabledDatasets.Scrutins ? datasets.scrutins : []), ...(enabledDatasets & EnabledDatasets.Questions ? datasets.questions : []), ...(enabledDatasets & EnabledDatasets.ComptesRendusSeances ? datasets.comptesRendusSeances : [])];
47
48
 
48
49
  // When a given legislature is 0, it is the same as giving no legislature:
49
50
  // It means "every legislatures".
@@ -96,6 +97,37 @@ async function retrieveOpenData(dataDir) {
96
97
  }
97
98
  dataset.repairZip(dataset, dataDir);
98
99
  }
100
+
101
+ // Convert xml to JSON.
102
+ if (dataset.filename.endsWith(".xml")) {
103
+ for (const dataFileSplitPath of walkDir(dataDirOrFilePath)) {
104
+ const dataFilePath = path.join(dataDirOrFilePath, ...dataFileSplitPath);
105
+ if (dataFilePath.endsWith(".xml")) {
106
+ function format(key, value) {
107
+ if (key === "br" || key === "italique" || key === "exposant") {
108
+ return undefined;
109
+ }
110
+ return value;
111
+ }
112
+ let parser = new xml2js.Parser({
113
+ mergeAttrs: true,
114
+ explicitArray: false
115
+ });
116
+ fs.readFile(dataFilePath, function (err, data) {
117
+ if (err) return console.error(err);
118
+ parser.parseString(data, function (err, result) {
119
+ const newDataFilePath = dataFilePath.replace(/\.[^.]+$/, ".json");
120
+ if (err) return console.error(err);
121
+ fs.copy(dataFilePath, newDataFilePath, err => {
122
+ fs.writeFileSync(newDataFilePath, JSON.stringify(result, format, 2));
123
+ if (err) return console.error(err);
124
+ });
125
+ });
126
+ });
127
+ }
128
+ }
129
+ }
130
+
99
131
  // Reindent JSON file.
100
132
  if (!options.silent) {
101
133
  console.log(`Reidenting ${dataset.title}: ${dataset.filename}`);
@@ -122,4 +154,4 @@ retrieveOpenData(options.dataDir).catch(error => {
122
154
  console.log(error);
123
155
  process.exit(1);
124
156
  });
125
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjb21tYW5kTGluZUFyZ3MiLCJmcyIsImZldGNoIiwicGF0aCIsInN0cmVhbSIsIlN0cmVhbVppcCIsInV0aWwiLCJkYXRhc2V0cyIsIkVuYWJsZWREYXRhc2V0cyIsIndhbGtEaXIiLCJMZWdpc2xhdHVyZSIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImFsaWFzIiwiaGVscCIsIm5hbWUiLCJ0eXBlIiwiQm9vbGVhbiIsImRlZmF1bHRWYWx1ZSIsIm11bHRpcGxlIiwiU3RyaW5nIiwiTnVtYmVyIiwiZGVmYXVsdE9wdGlvbiIsIm9wdGlvbnMiLCJwaXBlbGluZSIsInByb21pc2lmeSIsInJldHJpZXZlT3BlbkRhdGEiLCJkYXRhRGlyIiwiY2F0ZWdvcmllcyIsIm1hcCIsImRhdGFzZXROYW1lIiwibm90U3RyaWN0RXF1YWwiLCJ1bmRlZmluZWQiLCJlbmFibGVkRGF0YXNldHMiLCJyZWR1Y2UiLCJOb25lIiwiY2hvb3NlbkRhdGFzZXRzIiwiQWN0ZXVyc0V0T3JnYW5lcyIsImFjdGV1cnNFdE9yZ2FuZXMiLCJBZ2VuZGFzIiwiYWdlbmRhcyIsIkFtZW5kZW1lbnRzIiwiYW1lbmRlbWVudHMiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzIiwiZG9zc2llcnNMZWdpc2xhdGlmcyIsIlNjcnV0aW5zIiwic2NydXRpbnMiLCJsZWdpc2xhdHVyZXMiLCJsZWdpc2xhdHVyZSIsInNvbWUiLCJlbmFibGVkTGVnaXNsYXR1cmVzIiwidG9TdHJpbmciLCJmaWx0ZXIiLCJkYXRhc2V0IiwiQWxsIiwiaW5jbHVkZXMiLCJ6aXBGaWxlUGF0aCIsImpvaW4iLCJmaWxlbmFtZSIsInNpbGVudCIsImNvbnNvbGUiLCJsb2ciLCJ0aXRsZSIsInJlc3BvbnNlIiwidXJsIiwib2siLCJlcnJvciIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJ0ZXh0IiwiRXJyb3IiLCJib2R5IiwiY3JlYXRlV3JpdGVTdHJlYW0iLCJkYXRhRGlyT3JGaWxlUGF0aCIsInJlbW92ZVN5bmMiLCJ6aXAiLCJmaWxlIiwic3RvcmVFbnRyaWVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJvbiIsImV4dHJhY3QiLCJlcnIiLCJjbG9zZSIsInJlcGFpclppcCIsInN0YXRTeW5jIiwiaXNEaXJlY3RvcnkiLCJkYXRhRmlsZVNwbGl0UGF0aCIsImRhdGFGaWxlUGF0aCIsImVuZHNXaXRoIiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwid3JpdGVGaWxlU3luYyIsInN0cmluZ2lmeSIsImNhdGNoIiwicHJvY2VzcyIsImV4aXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV9vcGVuX2RhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBzdHJlYW0gZnJvbSBcInN0cmVhbVwiXG5pbXBvcnQgU3RyZWFtWmlwIGZyb20gXCJub2RlLXN0cmVhbS16aXBcIlxuaW1wb3J0IHV0aWwgZnJvbSBcInV0aWxcIlxuXG5pbXBvcnQgeyBkYXRhc2V0cywgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4uL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcImZcIixcbiAgICBoZWxwOiBcImZldGNoIGRhdGFzZXRzIGluc3RlYWQgb2YgcmV0cmlldmluZyB0aGVtIGZyb20gZmlsZXNcIixcbiAgICBuYW1lOiBcImZldGNoXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImtcIixcbiAgICBkZWZhdWx0VmFsdWU6IFtcIkFsbFwiXSxcbiAgICBoZWxwOiBcImNhdGVnb3JpZXMgb2YgZGF0YXNldHMgdG8gcmV0cmlldmVcIixcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBuYW1lOiBcImNhdGVnb3JpZXNcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJsXCIsXG4gICAgaGVscDogXCJsZWdpc2xhdHVyZXMgb2YgY2F0ZWdvcmllcyBvZiBkYXRhc2V0cyB0byByZXRyaWV2ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwibGVnaXNsYXR1cmVcIixcbiAgICB0eXBlOiBOdW1iZXIsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJzXCIsXG4gICAgaGVscDogXCJkb24ndCBsb2cgYW55dGhpbmdcIixcbiAgICBuYW1lOiBcInNpbGVudFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBkZWZhdWx0T3B0aW9uOiB0cnVlLFxuICAgIGhlbHA6IFwiZGlyZWN0b3J5IGNvbnRhaW5pbmcgQXNzZW1ibMOpZSBvcGVuIGRhdGEgZmlsZXNcIixcbiAgICBuYW1lOiBcImRhdGFEaXJcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuY29uc3QgcGlwZWxpbmUgPSB1dGlsLnByb21pc2lmeShzdHJlYW0ucGlwZWxpbmUpXG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlT3BlbkRhdGEoZGF0YURpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIG9wdGlvbnMuY2F0ZWdvcmllcy5tYXAoKGRhdGFzZXROYW1lOiBzdHJpbmcpID0+XG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgICBkYXRhc2V0TmFtZVxuICAgICAgXSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGBVbmtub3duIG5hbWUgb2YgZGF0YXNldDogJHtkYXRhc2V0TmFtZX1gLFxuICAgICksXG4gIClcbiAgY29uc3QgZW5hYmxlZERhdGFzZXRzID0gb3B0aW9ucy5jYXRlZ29yaWVzLnJlZHVjZShcbiAgICAoZW5hYmxlZERhdGFzZXRzOiBFbmFibGVkRGF0YXNldHMsIGRhdGFzZXROYW1lOiBzdHJpbmcpOiBFbmFibGVkRGF0YXNldHMgPT5cbiAgICAgIGVuYWJsZWREYXRhc2V0cyB8XG4gICAgICAoRW5hYmxlZERhdGFzZXRzIGFzIGFueSBhcyB7IFtuYW1lOiBzdHJpbmddOiBFbmFibGVkRGF0YXNldHMgfSlbXG4gICAgICAgIGRhdGFzZXROYW1lXG4gICAgICBdLFxuICAgIEVuYWJsZWREYXRhc2V0cy5Ob25lLFxuICApXG5cbiAgbGV0IGNob29zZW5EYXRhc2V0cyA9IFtcbiAgICAuLi4oZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFjdGV1cnNFdE9yZ2FuZXNcbiAgICAgID8gZGF0YXNldHMuYWN0ZXVyc0V0T3JnYW5lc1xuICAgICAgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BZ2VuZGFzID8gZGF0YXNldHMuYWdlbmRhcyA6IFtdKSxcbiAgICAuLi4oZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFtZW5kZW1lbnRzXG4gICAgICA/IGRhdGFzZXRzLmFtZW5kZW1lbnRzXG4gICAgICA6IFtdKSxcbiAgICAuLi4oZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkRvc3NpZXJzTGVnaXNsYXRpZnNcbiAgICAgID8gZGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmc1xuICAgICAgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5TY3J1dGlucyA/IGRhdGFzZXRzLnNjcnV0aW5zIDogW10pLFxuICBdXG5cbiAgLy8gV2hlbiBhIGdpdmVuIGxlZ2lzbGF0dXJlIGlzIDAsIGl0IGlzIHRoZSBzYW1lIGFzIGdpdmluZyBubyBsZWdpc2xhdHVyZTpcbiAgLy8gSXQgbWVhbnMgXCJldmVyeSBsZWdpc2xhdHVyZXNcIi5cbiAgY29uc3QgbGVnaXNsYXR1cmVzID0gb3B0aW9ucy5sZWdpc2xhdHVyZT8uc29tZShcbiAgICAobGVnaXNsYXR1cmU6IG51bWJlcikgPT4gbGVnaXNsYXR1cmUgPT09IDAsXG4gIClcbiAgICA/IHVuZGVmaW5lZFxuICAgIDogb3B0aW9ucy5sZWdpc2xhdHVyZVxuICBpZiAobGVnaXNsYXR1cmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBlbmFibGVkTGVnaXNsYXR1cmVzID0gbGVnaXNsYXR1cmVzLm1hcCgobGVnaXNsYXR1cmU6IG51bWJlcikgPT5cbiAgICAgIGxlZ2lzbGF0dXJlLnRvU3RyaW5nKCksXG4gICAgKVxuICAgIGNob29zZW5EYXRhc2V0cyA9IGNob29zZW5EYXRhc2V0cy5maWx0ZXIoXG4gICAgICAoZGF0YXNldCkgPT5cbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSA9PT0gTGVnaXNsYXR1cmUuQWxsIHx8XG4gICAgICAgIGVuYWJsZWRMZWdpc2xhdHVyZXMuaW5jbHVkZXMoZGF0YXNldC5sZWdpc2xhdHVyZSksXG4gICAgKVxuICB9XG5cbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob29zZW5EYXRhc2V0cykge1xuICAgIGNvbnN0IHppcEZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFEaXIsIGAke2RhdGFzZXQuZmlsZW5hbWV9LnppcGApXG4gICAgaWYgKG9wdGlvbnMuZmV0Y2gpIHtcbiAgICAgIC8vIEZldGNoICYgc2F2ZSBaSVAgZmlsZS5cbiAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgJHtkYXRhc2V0LnRpdGxlfTogJHtkYXRhc2V0LmZpbGVuYW1lfS56aXBgKVxuICAgICAgfVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChkYXRhc2V0LnVybClcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihyZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlLnN0YXR1c1RleHQpXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYXdhaXQgcmVzcG9uc2UudGV4dCgpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZldGNoIGZhaWxlZDogJHtkYXRhc2V0LnVybH1gKVxuICAgICAgfVxuICAgICAgYXdhaXQgcGlwZWxpbmUocmVzcG9uc2UuYm9keSEsIGZzLmNyZWF0ZVdyaXRlU3RyZWFtKHppcEZpbGVQYXRoKSlcbiAgICB9XG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coYFVuemlwcGluZyAke2RhdGFzZXQudGl0bGV9OiAke2RhdGFzZXQuZmlsZW5hbWV9LnppcGApXG4gICAgfVxuICAgIGNvbnN0IGRhdGFEaXJPckZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgZnMucmVtb3ZlU3luYyhkYXRhRGlyT3JGaWxlUGF0aClcbiAgICBjb25zdCB6aXAgPSBuZXcgU3RyZWFtWmlwKHtcbiAgICAgIGZpbGU6IHppcEZpbGVQYXRoLFxuICAgICAgc3RvcmVFbnRyaWVzOiB0cnVlLFxuICAgIH0pXG4gICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgemlwLm9uKFwicmVhZHlcIiwgKCkgPT4ge1xuICAgICAgICAvLyBQYXRjaCBmb2xsb3dpbmcgbGluZSwgYmVjYXVzZSBvZiB3cm9uZyBUeXBlU2NyaXB0IGRlZmluaXRpb24gZm9yIHppcC5leHRyYWN0LlxuICAgICAgICAvLyB6aXAuZXh0cmFjdChudWxsLCBkYXRhRGlyLCAoZXJyOiBhbnksIF9jb3VudDogbnVtYmVyKSA9PiB7XG4gICAgICAgIHppcC5leHRyYWN0KG51bGwhLCBkYXRhRGlyLCAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB6aXAuY2xvc2UoKVxuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdChlcnIpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUobnVsbClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH0pXG5cbiAgICBpZiAoZGF0YXNldC5yZXBhaXJaaXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgUmVwYWlyaW5nICR7ZGF0YXNldC50aXRsZX06ICR7ZGF0YXNldC5maWxlbmFtZX1gKVxuICAgICAgfVxuICAgICAgZGF0YXNldC5yZXBhaXJaaXAoZGF0YXNldCwgZGF0YURpcilcbiAgICB9XG4gICAgLy8gUmVpbmRlbnQgSlNPTiBmaWxlLlxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBSZWlkZW50aW5nICR7ZGF0YXNldC50aXRsZX06ICR7ZGF0YXNldC5maWxlbmFtZX1gKVxuICAgIH1cbiAgICBpZiAoZnMuc3RhdFN5bmMoZGF0YURpck9yRmlsZVBhdGgpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIGZvciAoY29uc3QgZGF0YUZpbGVTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhRGlyT3JGaWxlUGF0aCkpIHtcbiAgICAgICAgY29uc3QgZGF0YUZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFEaXJPckZpbGVQYXRoLCAuLi5kYXRhRmlsZVNwbGl0UGF0aClcbiAgICAgICAgaWYgKGRhdGFGaWxlUGF0aC5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgICBmcy5yZWFkRmlsZVN5bmMoZGF0YUZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0Zi04XCIgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZGF0YUZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShcbiAgICAgICAgZnMucmVhZEZpbGVTeW5jKGRhdGFEaXJPckZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0Zi04XCIgfSksXG4gICAgICApXG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGRhdGFEaXJPckZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKSlcbiAgICB9XG4gIH1cbn1cblxucmV0cmlldmVPcGVuRGF0YShvcHRpb25zLmRhdGFEaXIpLmNhdGNoKChlcnJvcikgPT4ge1xuICBjb25zb2xlLmxvZyhlcnJvcilcbiAgcHJvY2Vzcy5leGl0KDEpXG59KVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLE1BQU0sUUFBUTtBQUMzQixPQUFPQyxlQUFlLE1BQU0sbUJBQW1CO0FBQy9DLE9BQU9DLEVBQUUsTUFBTSxVQUFVO0FBQ3pCLE9BQU9DLEtBQUssTUFBTSxZQUFZO0FBQzlCLE9BQU9DLElBQUksTUFBTSxNQUFNO0FBQ3ZCLE9BQU9DLE1BQU0sTUFBTSxRQUFRO0FBQzNCLE9BQU9DLFNBQVMsTUFBTSxpQkFBaUI7QUFDdkMsT0FBT0MsSUFBSSxNQUFNLE1BQU07QUFBQSxTQUVkQyxRQUFRLEVBQUVDLGVBQWU7QUFBQSxTQUN6QkMsT0FBTztBQUFBLFNBQ1BDLFdBQVc7QUFFcEIsTUFBTUMsa0JBQWtCLEdBQUcsQ0FDekI7RUFDRUMsS0FBSyxFQUFFLEdBQUc7RUFDVkMsSUFBSSxFQUFFLHNEQUFzRDtFQUM1REMsSUFBSSxFQUFFLE9BQU87RUFDYkMsSUFBSSxFQUFFQztBQUNSLENBQUMsRUFDRDtFQUNFSixLQUFLLEVBQUUsR0FBRztFQUNWSyxZQUFZLEVBQUUsQ0FBQyxLQUFLLENBQUM7RUFDckJKLElBQUksRUFBRSxvQ0FBb0M7RUFDMUNLLFFBQVEsRUFBRSxJQUFJO0VBQ2RKLElBQUksRUFBRSxZQUFZO0VBQ2xCQyxJQUFJLEVBQUVJO0FBQ1IsQ0FBQyxFQUNEO0VBQ0VQLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLElBQUksRUFBRSxvREFBb0Q7RUFDMURLLFFBQVEsRUFBRSxJQUFJO0VBQ2RKLElBQUksRUFBRSxhQUFhO0VBQ25CQyxJQUFJLEVBQUVLO0FBQ1IsQ0FBQyxFQUNEO0VBQ0VSLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLElBQUksRUFBRSxvQkFBb0I7RUFDMUJDLElBQUksRUFBRSxRQUFRO0VBQ2RDLElBQUksRUFBRUM7QUFDUixDQUFDLEVBQ0Q7RUFDRUssYUFBYSxFQUFFLElBQUk7RUFDbkJSLElBQUksRUFBRSxnREFBZ0Q7RUFDdERDLElBQUksRUFBRSxTQUFTO0VBQ2ZDLElBQUksRUFBRUk7QUFDUixDQUFDLENBQ0Y7QUFDRCxNQUFNRyxPQUFPLEdBQUd0QixlQUFlLENBQUNXLGtCQUFrQixDQUFDO0FBRW5ELE1BQU1ZLFFBQVEsR0FBR2pCLElBQUksQ0FBQ2tCLFNBQVMsQ0FBQ3BCLE1BQU0sQ0FBQ21CLFFBQVEsQ0FBQztBQUVoRCxlQUFlRSxnQkFBZ0JBLENBQUNDLE9BQWUsRUFBaUI7RUFDOURKLE9BQU8sQ0FBQ0ssVUFBVSxDQUFDQyxHQUFHLENBQUVDLFdBQW1CLElBQ3pDOUIsTUFBTSxDQUFDK0IsY0FBYyxDQUNsQnRCLGVBQWUsQ0FDZHFCLFdBQVcsQ0FDWixFQUNERSxTQUFTLEVBQ1IsNEJBQTJCRixXQUFZLEVBQUMsQ0FDMUMsQ0FDRjtFQUNELE1BQU1HLGVBQWUsR0FBR1YsT0FBTyxDQUFDSyxVQUFVLENBQUNNLE1BQU0sQ0FDL0MsQ0FBQ0QsZUFBZ0MsRUFBRUgsV0FBbUIsS0FDcERHLGVBQWUsR0FDZHhCLGVBQWUsQ0FDZHFCLFdBQVcsQ0FDWixFQUNIckIsZUFBZSxDQUFDMEIsSUFBSSxDQUNyQjtFQUVELElBQUlDLGVBQWUsR0FBRyxDQUNwQixJQUFJSCxlQUFlLEdBQUd4QixlQUFlLENBQUM0QixnQkFBZ0IsR0FDbEQ3QixRQUFRLENBQUM4QixnQkFBZ0IsR0FDekIsRUFBRSxDQUFDLEVBQ1AsSUFBSUwsZUFBZSxHQUFHeEIsZUFBZSxDQUFDOEIsT0FBTyxHQUFHL0IsUUFBUSxDQUFDZ0MsT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUN0RSxJQUFJUCxlQUFlLEdBQUd4QixlQUFlLENBQUNnQyxXQUFXLEdBQzdDakMsUUFBUSxDQUFDa0MsV0FBVyxHQUNwQixFQUFFLENBQUMsRUFDUCxJQUFJVCxlQUFlLEdBQUd4QixlQUFlLENBQUNrQyxtQkFBbUIsR0FDckRuQyxRQUFRLENBQUNvQyxtQkFBbUIsR0FDNUIsRUFBRSxDQUFDLEVBQ1AsSUFBSVgsZUFBZSxHQUFHeEIsZUFBZSxDQUFDb0MsUUFBUSxHQUFHckMsUUFBUSxDQUFDc0MsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUN6RTs7RUFFRDtFQUNBO0VBQ0EsTUFBTUMsWUFBWSxHQUFHeEIsT0FBTyxDQUFDeUIsV0FBVyxFQUFFQyxJQUFJLENBQzNDRCxXQUFtQixJQUFLQSxXQUFXLEtBQUssQ0FBQyxDQUMzQyxHQUNHaEIsU0FBUyxHQUNUVCxPQUFPLENBQUN5QixXQUFXO0VBQ3ZCLElBQUlELFlBQVksS0FBS2YsU0FBUyxFQUFFO0lBQzlCLE1BQU1rQixtQkFBbUIsR0FBR0gsWUFBWSxDQUFDbEIsR0FBRyxDQUFFbUIsV0FBbUIsSUFDL0RBLFdBQVcsQ0FBQ0csUUFBUSxFQUFFLENBQ3ZCO0lBQ0RmLGVBQWUsR0FBR0EsZUFBZSxDQUFDZ0IsTUFBTSxDQUNyQ0MsT0FBTyxJQUNOQSxPQUFPLENBQUNMLFdBQVcsS0FBS3JDLFdBQVcsQ0FBQzJDLEdBQUcsSUFDdkNKLG1CQUFtQixDQUFDSyxRQUFRLENBQUNGLE9BQU8sQ0FBQ0wsV0FBVyxDQUFDLENBQ3BEO0VBQ0g7RUFFQSxLQUFLLE1BQU1LLE9BQU8sSUFBSWpCLGVBQWUsRUFBRTtJQUNyQyxNQUFNb0IsV0FBVyxHQUFHcEQsSUFBSSxDQUFDcUQsSUFBSSxDQUFDOUIsT0FBTyxFQUFHLEdBQUUwQixPQUFPLENBQUNLLFFBQVMsTUFBSyxDQUFDO0lBQ2pFLElBQUluQyxPQUFPLENBQUNwQixLQUFLLEVBQUU7TUFDakI7TUFDQSxJQUFJLENBQUNvQixPQUFPLENBQUNvQyxNQUFNLEVBQUU7UUFDbkJDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFFLFdBQVVSLE9BQU8sQ0FBQ1MsS0FBTSxLQUFJVCxPQUFPLENBQUNLLFFBQVMsTUFBSyxDQUFDO01BQ2xFO01BQ0EsTUFBTUssUUFBUSxHQUFHLE1BQU01RCxLQUFLLENBQUNrRCxPQUFPLENBQUNXLEdBQUcsQ0FBQztNQUN6QyxJQUFJLENBQUNELFFBQVEsQ0FBQ0UsRUFBRSxFQUFFO1FBQ2hCTCxPQUFPLENBQUNNLEtBQUssQ0FBQ0gsUUFBUSxDQUFDSSxNQUFNLEVBQUVKLFFBQVEsQ0FBQ0ssVUFBVSxDQUFDO1FBQ25EUixPQUFPLENBQUNNLEtBQUssQ0FBQyxNQUFNSCxRQUFRLENBQUNNLElBQUksRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSUMsS0FBSyxDQUFFLGlCQUFnQmpCLE9BQU8sQ0FBQ1csR0FBSSxFQUFDLENBQUM7TUFDakQ7TUFDQSxNQUFNeEMsUUFBUSxDQUFDdUMsUUFBUSxDQUFDUSxJQUFJLEVBQUdyRSxFQUFFLENBQUNzRSxpQkFBaUIsQ0FBQ2hCLFdBQVcsQ0FBQyxDQUFDO0lBQ25FO0lBQ0EsSUFBSSxDQUFDakMsT0FBTyxDQUFDb0MsTUFBTSxFQUFFO01BQ25CQyxPQUFPLENBQUNDLEdBQUcsQ0FBRSxhQUFZUixPQUFPLENBQUNTLEtBQU0sS0FBSVQsT0FBTyxDQUFDSyxRQUFTLE1BQUssQ0FBQztJQUNwRTtJQUNBLE1BQU1lLGlCQUFpQixHQUFHckUsSUFBSSxDQUFDcUQsSUFBSSxDQUFDOUIsT0FBTyxFQUFFMEIsT0FBTyxDQUFDSyxRQUFRLENBQUM7SUFDOUR4RCxFQUFFLENBQUN3RSxVQUFVLENBQUNELGlCQUFpQixDQUFDO0lBQ2hDLE1BQU1FLEdBQUcsR0FBRyxJQUFJckUsU0FBUyxDQUFDO01BQ3hCc0UsSUFBSSxFQUFFcEIsV0FBVztNQUNqQnFCLFlBQVksRUFBRTtJQUNoQixDQUFDLENBQUM7SUFDRixNQUFNLElBQUlDLE9BQU8sQ0FBQyxDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FBSztNQUNyQ0wsR0FBRyxDQUFDTSxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU07UUFDcEI7UUFDQTtRQUNBTixHQUFHLENBQUNPLE9BQU8sQ0FBQyxJQUFJLEVBQUd2RCxPQUFPLEVBQUd3RCxHQUFRLElBQUs7VUFDeENSLEdBQUcsQ0FBQ1MsS0FBSyxFQUFFO1VBQ1gsSUFBSUQsR0FBRyxFQUFFO1lBQ1BILE1BQU0sQ0FBQ0csR0FBRyxDQUFDO1VBQ2IsQ0FBQyxNQUFNO1lBQ0xKLE9BQU8sQ0FBQyxJQUFJLENBQUM7VUFDZjtRQUNGLENBQUMsQ0FBQztNQUNKLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGLElBQUkxQixPQUFPLENBQUNnQyxTQUFTLEtBQUtyRCxTQUFTLEVBQUU7TUFDbkMsSUFBSSxDQUFDVCxPQUFPLENBQUNvQyxNQUFNLEVBQUU7UUFDbkJDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFFLGFBQVlSLE9BQU8sQ0FBQ1MsS0FBTSxLQUFJVCxPQUFPLENBQUNLLFFBQVMsRUFBQyxDQUFDO01BQ2hFO01BQ0FMLE9BQU8sQ0FBQ2dDLFNBQVMsQ0FBQ2hDLE9BQU8sRUFBRTFCLE9BQU8sQ0FBQztJQUNyQztJQUNBO0lBQ0EsSUFBSSxDQUFDSixPQUFPLENBQUNvQyxNQUFNLEVBQUU7TUFDbkJDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFFLGNBQWFSLE9BQU8sQ0FBQ1MsS0FBTSxLQUFJVCxPQUFPLENBQUNLLFFBQVMsRUFBQyxDQUFDO0lBQ2pFO0lBQ0EsSUFBSXhELEVBQUUsQ0FBQ29GLFFBQVEsQ0FBQ2IsaUJBQWlCLENBQUMsQ0FBQ2MsV0FBVyxFQUFFLEVBQUU7TUFDaEQsS0FBSyxNQUFNQyxpQkFBaUIsSUFBSTlFLE9BQU8sQ0FBQytELGlCQUFpQixDQUFDLEVBQUU7UUFDMUQsTUFBTWdCLFlBQVksR0FBR3JGLElBQUksQ0FBQ3FELElBQUksQ0FBQ2dCLGlCQUFpQixFQUFFLEdBQUdlLGlCQUFpQixDQUFDO1FBQ3ZFLElBQUlDLFlBQVksQ0FBQ0MsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1VBQ2xDLE1BQU1DLElBQUksR0FBR0MsSUFBSSxDQUFDQyxLQUFLLENBQ3JCM0YsRUFBRSxDQUFDNEYsWUFBWSxDQUFDTCxZQUFZLEVBQUU7WUFBRU0sUUFBUSxFQUFFO1VBQVEsQ0FBQyxDQUFDLENBQ3JEO1VBQ0Q3RixFQUFFLENBQUM4RixhQUFhLENBQUNQLFlBQVksRUFBRUcsSUFBSSxDQUFDSyxTQUFTLENBQUNOLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0Q7TUFDRjtJQUNGLENBQUMsTUFBTTtNQUNMLE1BQU1BLElBQUksR0FBR0MsSUFBSSxDQUFDQyxLQUFLLENBQ3JCM0YsRUFBRSxDQUFDNEYsWUFBWSxDQUFDckIsaUJBQWlCLEVBQUU7UUFBRXNCLFFBQVEsRUFBRTtNQUFRLENBQUMsQ0FBQyxDQUMxRDtNQUNEN0YsRUFBRSxDQUFDOEYsYUFBYSxDQUFDdkIsaUJBQWlCLEVBQUVtQixJQUFJLENBQUNLLFNBQVMsQ0FBQ04sSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwRTtFQUNGO0FBQ0Y7QUFFQWpFLGdCQUFnQixDQUFDSCxPQUFPLENBQUNJLE9BQU8sQ0FBQyxDQUFDdUUsS0FBSyxDQUFFaEMsS0FBSyxJQUFLO0VBQ2pETixPQUFPLENBQUNDLEdBQUcsQ0FBQ0ssS0FBSyxDQUFDO0VBQ2xCaUMsT0FBTyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyJ9
157
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjb21tYW5kTGluZUFyZ3MiLCJmcyIsImZldGNoIiwicGF0aCIsInN0cmVhbSIsIlN0cmVhbVppcCIsInV0aWwiLCJkYXRhc2V0cyIsIkVuYWJsZWREYXRhc2V0cyIsIndhbGtEaXIiLCJMZWdpc2xhdHVyZSIsInhtbDJqcyIsInJlcXVpcmUiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIkJvb2xlYW4iLCJkZWZhdWx0VmFsdWUiLCJtdWx0aXBsZSIsIlN0cmluZyIsIk51bWJlciIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwicGlwZWxpbmUiLCJwcm9taXNpZnkiLCJyZXRyaWV2ZU9wZW5EYXRhIiwiZGF0YURpciIsImNhdGVnb3JpZXMiLCJtYXAiLCJkYXRhc2V0TmFtZSIsIm5vdFN0cmljdEVxdWFsIiwidW5kZWZpbmVkIiwiZW5hYmxlZERhdGFzZXRzIiwicmVkdWNlIiwiTm9uZSIsImNob29zZW5EYXRhc2V0cyIsIkFjdGV1cnNFdE9yZ2FuZXMiLCJhY3RldXJzRXRPcmdhbmVzIiwiQWdlbmRhcyIsImFnZW5kYXMiLCJBbWVuZGVtZW50cyIsImFtZW5kZW1lbnRzIiwiRG9zc2llcnNMZWdpc2xhdGlmcyIsImRvc3NpZXJzTGVnaXNsYXRpZnMiLCJTY3J1dGlucyIsInNjcnV0aW5zIiwiUXVlc3Rpb25zIiwicXVlc3Rpb25zIiwiQ29tcHRlc1JlbmR1c1NlYW5jZXMiLCJjb21wdGVzUmVuZHVzU2VhbmNlcyIsImxlZ2lzbGF0dXJlcyIsImxlZ2lzbGF0dXJlIiwic29tZSIsImVuYWJsZWRMZWdpc2xhdHVyZXMiLCJ0b1N0cmluZyIsImZpbHRlciIsImRhdGFzZXQiLCJBbGwiLCJpbmNsdWRlcyIsInppcEZpbGVQYXRoIiwiam9pbiIsImZpbGVuYW1lIiwic2lsZW50IiwiY29uc29sZSIsImxvZyIsInRpdGxlIiwicmVzcG9uc2UiLCJ1cmwiLCJvayIsImVycm9yIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInRleHQiLCJFcnJvciIsImJvZHkiLCJjcmVhdGVXcml0ZVN0cmVhbSIsImRhdGFEaXJPckZpbGVQYXRoIiwicmVtb3ZlU3luYyIsInppcCIsImZpbGUiLCJzdG9yZUVudHJpZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsIm9uIiwiZXh0cmFjdCIsImVyciIsImNsb3NlIiwicmVwYWlyWmlwIiwiZW5kc1dpdGgiLCJkYXRhRmlsZVNwbGl0UGF0aCIsImRhdGFGaWxlUGF0aCIsImZvcm1hdCIsImtleSIsInZhbHVlIiwicGFyc2VyIiwiUGFyc2VyIiwibWVyZ2VBdHRycyIsImV4cGxpY2l0QXJyYXkiLCJyZWFkRmlsZSIsImRhdGEiLCJwYXJzZVN0cmluZyIsInJlc3VsdCIsIm5ld0RhdGFGaWxlUGF0aCIsInJlcGxhY2UiLCJjb3B5Iiwid3JpdGVGaWxlU3luYyIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0U3luYyIsImlzRGlyZWN0b3J5IiwicGFyc2UiLCJyZWFkRmlsZVN5bmMiLCJlbmNvZGluZyIsImNhdGNoIiwicHJvY2VzcyIsImV4aXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV9vcGVuX2RhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBzdHJlYW0gZnJvbSBcInN0cmVhbVwiXG5pbXBvcnQgU3RyZWFtWmlwIGZyb20gXCJub2RlLXN0cmVhbS16aXBcIlxuaW1wb3J0IHV0aWwgZnJvbSBcInV0aWxcIlxuXG5pbXBvcnQgeyBkYXRhc2V0cywgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4uL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5cbmxldCB4bWwyanMgPSByZXF1aXJlKFwieG1sMmpzXCIpXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcImZcIixcbiAgICBoZWxwOiBcImZldGNoIGRhdGFzZXRzIGluc3RlYWQgb2YgcmV0cmlldmluZyB0aGVtIGZyb20gZmlsZXNcIixcbiAgICBuYW1lOiBcImZldGNoXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImtcIixcbiAgICBkZWZhdWx0VmFsdWU6IFtcIkFsbFwiXSxcbiAgICBoZWxwOiBcImNhdGVnb3JpZXMgb2YgZGF0YXNldHMgdG8gcmV0cmlldmVcIixcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBuYW1lOiBcImNhdGVnb3JpZXNcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJsXCIsXG4gICAgaGVscDogXCJsZWdpc2xhdHVyZXMgb2YgY2F0ZWdvcmllcyBvZiBkYXRhc2V0cyB0byByZXRyaWV2ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwibGVnaXNsYXR1cmVcIixcbiAgICB0eXBlOiBOdW1iZXIsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJzXCIsXG4gICAgaGVscDogXCJkb24ndCBsb2cgYW55dGhpbmdcIixcbiAgICBuYW1lOiBcInNpbGVudFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBkZWZhdWx0T3B0aW9uOiB0cnVlLFxuICAgIGhlbHA6IFwiZGlyZWN0b3J5IGNvbnRhaW5pbmcgQXNzZW1ibMOpZSBvcGVuIGRhdGEgZmlsZXNcIixcbiAgICBuYW1lOiBcImRhdGFEaXJcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuY29uc3QgcGlwZWxpbmUgPSB1dGlsLnByb21pc2lmeShzdHJlYW0ucGlwZWxpbmUpXG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlT3BlbkRhdGEoZGF0YURpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIG9wdGlvbnMuY2F0ZWdvcmllcy5tYXAoKGRhdGFzZXROYW1lOiBzdHJpbmcpID0+XG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgICBkYXRhc2V0TmFtZVxuICAgICAgXSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGBVbmtub3duIG5hbWUgb2YgZGF0YXNldDogJHtkYXRhc2V0TmFtZX1gLFxuICAgICksXG4gIClcbiAgY29uc3QgZW5hYmxlZERhdGFzZXRzID0gb3B0aW9ucy5jYXRlZ29yaWVzLnJlZHVjZShcbiAgICAoZW5hYmxlZERhdGFzZXRzOiBFbmFibGVkRGF0YXNldHMsIGRhdGFzZXROYW1lOiBzdHJpbmcpOiBFbmFibGVkRGF0YXNldHMgPT5cbiAgICAgIGVuYWJsZWREYXRhc2V0cyB8XG4gICAgICAoRW5hYmxlZERhdGFzZXRzIGFzIGFueSBhcyB7IFtuYW1lOiBzdHJpbmddOiBFbmFibGVkRGF0YXNldHMgfSlbXG4gICAgICAgIGRhdGFzZXROYW1lXG4gICAgICBdLFxuICAgIEVuYWJsZWREYXRhc2V0cy5Ob25lLFxuICApXG5cbiAgbGV0IGNob29zZW5EYXRhc2V0cyA9IFtcbiAgICAuLi4oZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFjdGV1cnNFdE9yZ2FuZXNcbiAgICAgID8gZGF0YXNldHMuYWN0ZXVyc0V0T3JnYW5lc1xuICAgICAgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BZ2VuZGFzID8gZGF0YXNldHMuYWdlbmRhcyA6IFtdKSxcbiAgICAuLi4oZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFtZW5kZW1lbnRzXG4gICAgICA/IGRhdGFzZXRzLmFtZW5kZW1lbnRzXG4gICAgICA6IFtdKSxcbiAgICAuLi4oZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkRvc3NpZXJzTGVnaXNsYXRpZnNcbiAgICAgID8gZGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmc1xuICAgICAgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5TY3J1dGlucyA/IGRhdGFzZXRzLnNjcnV0aW5zIDogW10pLFxuICAgIC4uLihlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUXVlc3Rpb25zID8gZGF0YXNldHMucXVlc3Rpb25zIDogW10pLFxuICAgIC4uLihlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQ29tcHRlc1JlbmR1c1NlYW5jZXNcbiAgICAgID8gZGF0YXNldHMuY29tcHRlc1JlbmR1c1NlYW5jZXNcbiAgICAgIDogW10pLFxuICBdXG5cbiAgLy8gV2hlbiBhIGdpdmVuIGxlZ2lzbGF0dXJlIGlzIDAsIGl0IGlzIHRoZSBzYW1lIGFzIGdpdmluZyBubyBsZWdpc2xhdHVyZTpcbiAgLy8gSXQgbWVhbnMgXCJldmVyeSBsZWdpc2xhdHVyZXNcIi5cbiAgY29uc3QgbGVnaXNsYXR1cmVzID0gb3B0aW9ucy5sZWdpc2xhdHVyZT8uc29tZShcbiAgICAobGVnaXNsYXR1cmU6IG51bWJlcikgPT4gbGVnaXNsYXR1cmUgPT09IDAsXG4gIClcbiAgICA/IHVuZGVmaW5lZFxuICAgIDogb3B0aW9ucy5sZWdpc2xhdHVyZVxuICBpZiAobGVnaXNsYXR1cmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBlbmFibGVkTGVnaXNsYXR1cmVzID0gbGVnaXNsYXR1cmVzLm1hcCgobGVnaXNsYXR1cmU6IG51bWJlcikgPT5cbiAgICAgIGxlZ2lzbGF0dXJlLnRvU3RyaW5nKCksXG4gICAgKVxuICAgIGNob29zZW5EYXRhc2V0cyA9IGNob29zZW5EYXRhc2V0cy5maWx0ZXIoXG4gICAgICAoZGF0YXNldCkgPT5cbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSA9PT0gTGVnaXNsYXR1cmUuQWxsIHx8XG4gICAgICAgIGVuYWJsZWRMZWdpc2xhdHVyZXMuaW5jbHVkZXMoZGF0YXNldC5sZWdpc2xhdHVyZSksXG4gICAgKVxuICB9XG5cbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob29zZW5EYXRhc2V0cykge1xuICAgIGNvbnN0IHppcEZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFEaXIsIGAke2RhdGFzZXQuZmlsZW5hbWV9LnppcGApXG4gICAgaWYgKG9wdGlvbnMuZmV0Y2gpIHtcbiAgICAgIC8vIEZldGNoICYgc2F2ZSBaSVAgZmlsZS5cbiAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgJHtkYXRhc2V0LnRpdGxlfTogJHtkYXRhc2V0LmZpbGVuYW1lfS56aXBgKVxuICAgICAgfVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChkYXRhc2V0LnVybClcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihyZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlLnN0YXR1c1RleHQpXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYXdhaXQgcmVzcG9uc2UudGV4dCgpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZldGNoIGZhaWxlZDogJHtkYXRhc2V0LnVybH1gKVxuICAgICAgfVxuICAgICAgYXdhaXQgcGlwZWxpbmUocmVzcG9uc2UuYm9keSEsIGZzLmNyZWF0ZVdyaXRlU3RyZWFtKHppcEZpbGVQYXRoKSlcbiAgICB9XG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coYFVuemlwcGluZyAke2RhdGFzZXQudGl0bGV9OiAke2RhdGFzZXQuZmlsZW5hbWV9LnppcGApXG4gICAgfVxuICAgIGNvbnN0IGRhdGFEaXJPckZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgZnMucmVtb3ZlU3luYyhkYXRhRGlyT3JGaWxlUGF0aClcbiAgICBjb25zdCB6aXAgPSBuZXcgU3RyZWFtWmlwKHtcbiAgICAgIGZpbGU6IHppcEZpbGVQYXRoLFxuICAgICAgc3RvcmVFbnRyaWVzOiB0cnVlLFxuICAgIH0pXG4gICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgemlwLm9uKFwicmVhZHlcIiwgKCkgPT4ge1xuICAgICAgICAvLyBQYXRjaCBmb2xsb3dpbmcgbGluZSwgYmVjYXVzZSBvZiB3cm9uZyBUeXBlU2NyaXB0IGRlZmluaXRpb24gZm9yIHppcC5leHRyYWN0LlxuICAgICAgICAvLyB6aXAuZXh0cmFjdChudWxsLCBkYXRhRGlyLCAoZXJyOiBhbnksIF9jb3VudDogbnVtYmVyKSA9PiB7XG4gICAgICAgIHppcC5leHRyYWN0KG51bGwhLCBkYXRhRGlyLCAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB6aXAuY2xvc2UoKVxuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdChlcnIpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUobnVsbClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH0pXG5cbiAgICBpZiAoZGF0YXNldC5yZXBhaXJaaXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgUmVwYWlyaW5nICR7ZGF0YXNldC50aXRsZX06ICR7ZGF0YXNldC5maWxlbmFtZX1gKVxuICAgICAgfVxuICAgICAgZGF0YXNldC5yZXBhaXJaaXAoZGF0YXNldCwgZGF0YURpcilcbiAgICB9XG5cbiAgICAvLyBDb252ZXJ0IHhtbCB0byBKU09OLlxuICAgIGlmIChkYXRhc2V0LmZpbGVuYW1lLmVuZHNXaXRoKFwiLnhtbFwiKSkge1xuICAgICAgZm9yIChjb25zdCBkYXRhRmlsZVNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFEaXJPckZpbGVQYXRoKSkge1xuICAgICAgICBjb25zdCBkYXRhRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YURpck9yRmlsZVBhdGgsIC4uLmRhdGFGaWxlU3BsaXRQYXRoKVxuICAgICAgICBpZiAoZGF0YUZpbGVQYXRoLmVuZHNXaXRoKFwiLnhtbFwiKSkge1xuICAgICAgICAgIGZ1bmN0aW9uIGZvcm1hdChrZXk6IGFueSwgdmFsdWU6IGFueSkge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gXCJiclwiIHx8IGtleSA9PT0gXCJpdGFsaXF1ZVwiIHx8IGtleSA9PT0gXCJleHBvc2FudFwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGxldCBwYXJzZXIgPSBuZXcgeG1sMmpzLlBhcnNlcih7XG4gICAgICAgICAgICBtZXJnZUF0dHJzOiB0cnVlLFxuICAgICAgICAgICAgZXhwbGljaXRBcnJheTogZmFsc2UsXG4gICAgICAgICAgfSlcbiAgICAgICAgICBmcy5yZWFkRmlsZShkYXRhRmlsZVBhdGgsIGZ1bmN0aW9uIChlcnIsIGRhdGEpIHtcbiAgICAgICAgICAgIGlmIChlcnIpIHJldHVybiBjb25zb2xlLmVycm9yKGVycilcbiAgICAgICAgICAgIHBhcnNlci5wYXJzZVN0cmluZyhkYXRhLCBmdW5jdGlvbiAoZXJyOiBhbnksIHJlc3VsdDogYW55KSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld0RhdGFGaWxlUGF0aCA9IGRhdGFGaWxlUGF0aC5yZXBsYWNlKC9cXC5bXi5dKyQvLCBcIi5qc29uXCIpXG4gICAgICAgICAgICAgIGlmIChlcnIpIHJldHVybiBjb25zb2xlLmVycm9yKGVycilcbiAgICAgICAgICAgICAgZnMuY29weShkYXRhRmlsZVBhdGgsIG5ld0RhdGFGaWxlUGF0aCwgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICAgICAgICAgICAgICBuZXdEYXRhRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShyZXN1bHQsIGZvcm1hdCwgMiksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHJldHVybiBjb25zb2xlLmVycm9yKGVycilcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlaW5kZW50IEpTT04gZmlsZS5cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhgUmVpZGVudGluZyAke2RhdGFzZXQudGl0bGV9OiAke2RhdGFzZXQuZmlsZW5hbWV9YClcbiAgICB9XG4gICAgaWYgKGZzLnN0YXRTeW5jKGRhdGFEaXJPckZpbGVQYXRoKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICBmb3IgKGNvbnN0IGRhdGFGaWxlU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YURpck9yRmlsZVBhdGgpKSB7XG4gICAgICAgIGNvbnN0IGRhdGFGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhRGlyT3JGaWxlUGF0aCwgLi4uZGF0YUZpbGVTcGxpdFBhdGgpXG4gICAgICAgIGlmIChkYXRhRmlsZVBhdGguZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKFxuICAgICAgICAgICAgZnMucmVhZEZpbGVTeW5jKGRhdGFGaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGYtOFwiIH0pLFxuICAgICAgICAgIClcbiAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGRhdGFGaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMikpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoXG4gICAgICAgIGZzLnJlYWRGaWxlU3luYyhkYXRhRGlyT3JGaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGYtOFwiIH0pLFxuICAgICAgKVxuICAgICAgZnMud3JpdGVGaWxlU3luYyhkYXRhRGlyT3JGaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMikpXG4gICAgfVxuICB9XG59XG5cbnJldHJpZXZlT3BlbkRhdGEob3B0aW9ucy5kYXRhRGlyKS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgY29uc29sZS5sb2coZXJyb3IpXG4gIHByb2Nlc3MuZXhpdCgxKVxufSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLFFBQVE7QUFDM0IsT0FBT0MsZUFBZSxNQUFNLG1CQUFtQjtBQUMvQyxPQUFPQyxFQUFFLE1BQU0sVUFBVTtBQUN6QixPQUFPQyxLQUFLLE1BQU0sWUFBWTtBQUM5QixPQUFPQyxJQUFJLE1BQU0sTUFBTTtBQUN2QixPQUFPQyxNQUFNLE1BQU0sUUFBUTtBQUMzQixPQUFPQyxTQUFTLE1BQU0saUJBQWlCO0FBQ3ZDLE9BQU9DLElBQUksTUFBTSxNQUFNO0FBQUEsU0FFZEMsUUFBUSxFQUFFQyxlQUFlO0FBQUEsU0FDekJDLE9BQU87QUFBQSxTQUNQQyxXQUFXO0FBRXBCLElBQUlDLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQVEsQ0FBQztBQUU5QixNQUFNQyxrQkFBa0IsR0FBRyxDQUN6QjtFQUNFQyxLQUFLLEVBQUUsR0FBRztFQUNWQyxJQUFJLEVBQUUsc0RBQXNEO0VBQzVEQyxJQUFJLEVBQUUsT0FBTztFQUNiQyxJQUFJLEVBQUVDO0FBQ1IsQ0FBQyxF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