@tricoteuses/assemblee 1.1.5 → 1.1.7

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 (120) hide show
  1. package/lib/api.js +1 -1
  2. package/lib/bugs/acteur-00010/plugin.test.js +1 -1
  3. package/lib/bugs/acteur-00010.js +1 -1
  4. package/lib/bugs/acteur-00010.mjs +1 -1
  5. package/lib/bugs/agenda-00002/plugin.test.js +1 -1
  6. package/lib/bugs/agenda-00002.js +2 -2
  7. package/lib/bugs/agenda-00002.mjs +2 -2
  8. package/lib/bugs/agenda-00008/plugin.test.js +1 -1
  9. package/lib/bugs/agenda-00008.js +1 -1
  10. package/lib/bugs/agenda-00008.mjs +1 -1
  11. package/lib/bugs/agenda-00011/plugin.test.js +1 -1
  12. package/lib/bugs/agenda-00011.js +1 -1
  13. package/lib/bugs/agenda-00011.mjs +1 -1
  14. package/lib/bugs.js +1 -1
  15. package/lib/bugs.mjs +1 -1
  16. package/lib/cleaners/actes_legislatifs.js +1 -1
  17. package/lib/cleaners/actes_legislatifs.mjs +1 -1
  18. package/lib/cleaners/acteurs.js +1 -1
  19. package/lib/cleaners/acteurs.mjs +1 -1
  20. package/lib/cleaners/amendements.js +1 -1
  21. package/lib/cleaners/amendements.mjs +1 -1
  22. package/lib/cleaners/documents.js +1 -1
  23. package/lib/cleaners/documents.mjs +1 -1
  24. package/lib/cleaners/dossiers_legislatifs.js +1 -1
  25. package/lib/cleaners/dossiers_legislatifs.mjs +1 -1
  26. package/lib/cleaners/index.js +1 -1
  27. package/lib/cleaners/organes.js +1 -1
  28. package/lib/cleaners/organes.mjs +1 -1
  29. package/lib/cleaners/reunions.js +1 -1
  30. package/lib/cleaners/reunions.mjs +1 -1
  31. package/lib/cleaners/scrutins.js +1 -1
  32. package/lib/cleaners/scrutins.mjs +1 -1
  33. package/lib/cleaners/xml.js +1 -1
  34. package/lib/cleaners/xml.mjs +1 -1
  35. package/lib/datasets.js +1 -1
  36. package/lib/datasets.mjs +1 -1
  37. package/lib/dates.js +16 -7
  38. package/lib/dates.mjs +15 -6
  39. package/lib/dossiers_legislatifs.js +1 -1
  40. package/lib/dossiers_legislatifs.mjs +1 -1
  41. package/lib/file_systems.js +2 -2
  42. package/lib/file_systems.mjs +2 -2
  43. package/lib/git.d.ts +2 -1
  44. package/lib/git.js +77 -44
  45. package/lib/git.mjs +48 -25
  46. package/lib/index.js +1 -1
  47. package/lib/inserters.js +1 -1
  48. package/lib/inserters.mjs +1 -1
  49. package/lib/loaders.d.ts +52 -2
  50. package/lib/loaders.js +961 -187
  51. package/lib/loaders.mjs +285 -3
  52. package/lib/organes.js +1 -1
  53. package/lib/organes.mjs +1 -1
  54. package/lib/parsers/documents.js +1 -1
  55. package/lib/parsers/documents.mjs +1 -1
  56. package/lib/parsers/index.js +1 -1
  57. package/lib/parsers/recherche_amendements.js +39 -32
  58. package/lib/parsers/recherche_amendements.mjs +5 -1
  59. package/lib/raw_types/acteurs_et_organes.js +1 -1
  60. package/lib/raw_types/acteurs_et_organes.mjs +1 -1
  61. package/lib/raw_types/agendas.js +1 -1
  62. package/lib/raw_types/agendas.mjs +1 -1
  63. package/lib/raw_types/amendements.js +1 -1
  64. package/lib/raw_types/amendements.mjs +1 -1
  65. package/lib/raw_types/dossiers_legislatifs.js +1 -1
  66. package/lib/raw_types/dossiers_legislatifs.mjs +1 -1
  67. package/lib/raw_types/scrutins.js +1 -1
  68. package/lib/raw_types/scrutins.mjs +1 -1
  69. package/lib/scripts/bugs_helper.js +3 -3
  70. package/lib/scripts/bugs_helper.mjs +3 -3
  71. package/lib/scripts/clean_data.js +1 -1
  72. package/lib/scripts/clean_data.mjs +1 -1
  73. package/lib/scripts/clean_reorganized_data.js +63 -61
  74. package/lib/scripts/clean_reorganized_data.mjs +55 -48
  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/merge_scrutins.js +1 -1
  81. package/lib/scripts/merge_scrutins.mjs +1 -1
  82. package/lib/scripts/parse_textes_lois.js +5 -48
  83. package/lib/scripts/parse_textes_lois.mjs +5 -49
  84. package/lib/scripts/raw_types_from_amendements.js +1 -1
  85. package/lib/scripts/raw_types_from_amendements.mjs +1 -1
  86. package/lib/scripts/reorganize_data.js +231 -239
  87. package/lib/scripts/reorganize_data.mjs +50 -59
  88. package/lib/scripts/retrieve_deputes_photos.js +86 -107
  89. package/lib/scripts/retrieve_deputes_photos.mjs +21 -42
  90. package/lib/scripts/retrieve_documents.js +3 -3
  91. package/lib/scripts/retrieve_documents.mjs +3 -3
  92. package/lib/scripts/retrieve_open_data.js +29 -22
  93. package/lib/scripts/retrieve_open_data.mjs +9 -4
  94. package/lib/scripts/retrieve_pending_amendments.js +73 -81
  95. package/lib/scripts/retrieve_pending_amendments.mjs +19 -26
  96. package/lib/scripts/retrieve_senateurs_photos.js +65 -87
  97. package/lib/scripts/retrieve_senateurs_photos.mjs +21 -42
  98. package/lib/scripts/retrieve_textes_lois.js +32 -71
  99. package/lib/scripts/retrieve_textes_lois.mjs +6 -44
  100. package/lib/scripts/test_load.js +1 -1
  101. package/lib/scripts/test_load_big_files.js +1 -1
  102. package/lib/scripts/validate_json.js +3 -3
  103. package/lib/scripts/validate_json.mjs +3 -3
  104. package/lib/shared_types/codes_actes.js +1 -1
  105. package/lib/strings.js +1 -1
  106. package/lib/strings.mjs +1 -1
  107. package/lib/types/acteurs_et_organes.js +1 -1
  108. package/lib/types/acteurs_et_organes.mjs +1 -1
  109. package/lib/types/agendas.js +1 -1
  110. package/lib/types/agendas.mjs +1 -1
  111. package/lib/types/amendements.js +1 -1
  112. package/lib/types/amendements.mjs +1 -1
  113. package/lib/types/dossiers_legislatifs.js +1 -1
  114. package/lib/types/dossiers_legislatifs.mjs +1 -1
  115. package/lib/types/legislatures.js +1 -1
  116. package/lib/types/scrutins.js +1 -1
  117. package/lib/types/scrutins.mjs +1 -1
  118. package/lib/urls.js +1 -1
  119. package/lib/urls.mjs +1 -1
  120. package/package.json +6 -5
package/lib/git.js CHANGED
@@ -15,15 +15,16 @@ Object.defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
17
  exports.commit = commit;
18
+ exports.commitAndPush = commitAndPush;
18
19
  exports.run = run;
19
20
  exports.test = test;
20
21
  exports.uidBranchUpdate = uidBranchUpdate;
22
+ require("core-js/modules/es.regexp.exec.js");
21
23
  require("core-js/modules/es.array.concat.js");
22
24
  require("core-js/modules/es.string.trim.js");
23
25
  require("core-js/modules/es.date.to-string.js");
24
26
  require("core-js/modules/es.object.to-string.js");
25
27
  require("core-js/modules/es.regexp.to-string.js");
26
- require("core-js/modules/es.regexp.exec.js");
27
28
  var _path = _interopRequireDefault(require("path"));
28
29
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
29
30
  var _file_systems = require("./file_systems");
@@ -33,6 +34,62 @@ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol
33
34
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
34
35
  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; }
35
36
  var MAXBUFFER = 50 * 1024 * 1024;
37
+ function commit(repositoryDir, message) {
38
+ (0, _child_process.execSync)("git add .", {
39
+ cwd: repositoryDir,
40
+ env: process.env,
41
+ encoding: "utf-8",
42
+ stdio: ["ignore", "ignore", "pipe"],
43
+ maxBuffer: MAXBUFFER
44
+ });
45
+ try {
46
+ (0, _child_process.execSync)("git commit -m \"".concat(message, "\" --quiet"), {
47
+ cwd: repositoryDir,
48
+ env: process.env,
49
+ encoding: "utf-8",
50
+ stdio: ["ignore", "pipe", "pipe"]
51
+ });
52
+ return true;
53
+ } catch (childProcess) {
54
+ if (childProcess.stdout === null || !/nothing to commit/.test(childProcess.stdout)) {
55
+ console.error(childProcess.output);
56
+ throw childProcess;
57
+ }
58
+ return false;
59
+ }
60
+ }
61
+ function commitAndPush(repositoryDir, message, remotes) {
62
+ var exitCode = 0;
63
+ if (commit(repositoryDir, message)) {
64
+ var _iterator = _createForOfIteratorHelper(remotes || []),
65
+ _step;
66
+ try {
67
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
68
+ var remote = _step.value;
69
+ try {
70
+ (0, _child_process.execSync)("git push ".concat(remote, " master"), {
71
+ cwd: repositoryDir,
72
+ env: process.env,
73
+ encoding: "utf-8",
74
+ stdio: ["ignore", "ignore", "pipe"]
75
+ });
76
+ } catch (childProcess) {
77
+ // Don't stop when push fails.
78
+ console.error(childProcess.output);
79
+ exitCode = childProcess.status;
80
+ }
81
+ }
82
+ } catch (err) {
83
+ _iterator.e(err);
84
+ } finally {
85
+ _iterator.f();
86
+ }
87
+ } else {
88
+ // There was nothing to commit.
89
+ exitCode = 10;
90
+ }
91
+ return exitCode;
92
+ }
36
93
  function run(repositoryDir, args, verbose) {
37
94
  try {
38
95
  if (verbose) console.log("git -C ".concat(repositoryDir, " ").concat(args));
@@ -65,60 +122,36 @@ function test(repositoryDir, args, verbose) {
65
122
  throw childProcess;
66
123
  }
67
124
  }
68
- function commit(repositoryDir, message) {
69
- (0, _child_process.execSync)("git add .", {
70
- cwd: repositoryDir,
71
- env: process.env,
72
- encoding: "utf-8",
73
- stdio: ["ignore", "ignore", "pipe"],
74
- maxBuffer: MAXBUFFER
75
- });
76
- try {
77
- (0, _child_process.execSync)("git commit -m \"".concat(message, "\" --quiet"), {
78
- cwd: repositoryDir,
79
- env: process.env,
80
- encoding: "utf-8",
81
- stdio: ["ignore", "pipe", "pipe"]
82
- });
83
- return true;
84
- } catch (childProcess) {
85
- if (childProcess.stdout === null || !/nothing to commit/.test(childProcess.stdout)) {
86
- console.error(childProcess.output);
87
- throw childProcess;
88
- }
89
- return false;
90
- }
91
- }
92
125
  function uidBranchUpdate(repositoryDir, subdirectories, notHard) {
93
126
  var previousBranch = run(repositoryDir, "rev-parse --abbrev-ref HEAD");
94
127
  var branch = "uid";
95
128
  var cwd = process.cwd();
96
129
  process.chdir(repositoryDir);
97
- var _iterator = _createForOfIteratorHelper(subdirectories),
98
- _step;
130
+ var _iterator2 = _createForOfIteratorHelper(subdirectories),
131
+ _step2;
99
132
  try {
100
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
101
- var subdirectory = _step.value;
133
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
134
+ var subdirectory = _step2.value;
102
135
  var uidDirectory = "".concat(subdirectory, "/uid");
103
136
  _fsExtra["default"].ensureDirSync(uidDirectory);
104
- var _iterator3 = _createForOfIteratorHelper((0, _file_systems.getFiles)(["".concat(subdirectory, "/**/*.json")])),
105
- _step3;
137
+ var _iterator4 = _createForOfIteratorHelper((0, _file_systems.getFiles)(["".concat(subdirectory, "/**/*.json")])),
138
+ _step4;
106
139
  try {
107
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
108
- var pathname = _step3.value;
140
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
141
+ var pathname = _step4.value;
109
142
  var filename = _path["default"].basename(pathname);
110
143
  _fsExtra["default"].renameSync(pathname, "".concat(uidDirectory, "/").concat(filename));
111
144
  }
112
145
  } catch (err) {
113
- _iterator3.e(err);
146
+ _iterator4.e(err);
114
147
  } finally {
115
- _iterator3.f();
148
+ _iterator4.f();
116
149
  }
117
150
  }
118
151
  } catch (err) {
119
- _iterator.e(err);
152
+ _iterator2.e(err);
120
153
  } finally {
121
- _iterator.f();
154
+ _iterator2.f();
122
155
  }
123
156
  process.chdir(cwd);
124
157
  if (test(repositoryDir, "rev-parse remotes/origin/".concat(branch))) {
@@ -137,18 +170,18 @@ function uidBranchUpdate(repositoryDir, subdirectories, notHard) {
137
170
  run(repositoryDir, "reset");
138
171
  run(repositoryDir, "rm -r .");
139
172
  }
140
- var _iterator2 = _createForOfIteratorHelper(subdirectories),
141
- _step2;
173
+ var _iterator3 = _createForOfIteratorHelper(subdirectories),
174
+ _step3;
142
175
  try {
143
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
144
- var _subdirectory = _step2.value;
176
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
177
+ var _subdirectory = _step3.value;
145
178
  var _uidDirectory = "".concat(_subdirectory, "/uid");
146
179
  run(repositoryDir, "add ".concat(_uidDirectory));
147
180
  }
148
181
  } catch (err) {
149
- _iterator2.e(err);
182
+ _iterator3.e(err);
150
183
  } finally {
151
- _iterator2.f();
184
+ _iterator3.f();
152
185
  }
153
186
  var status = false;
154
187
  if (!test(repositoryDir, "diff --quiet --cached")) {
@@ -160,4 +193,4 @@ function uidBranchUpdate(repositoryDir, subdirectories, notHard) {
160
193
  run(repositoryDir, "reset ".concat(resetOption));
161
194
  return status;
162
195
  }
163
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVhCVUZGRVIiLCJydW4iLCJyZXBvc2l0b3J5RGlyIiwiYXJncyIsInZlcmJvc2UiLCJjb25zb2xlIiwibG9nIiwib3V0cHV0IiwiZXhlY1N5bmMiLCJjd2QiLCJtYXhCdWZmZXIiLCJ0b1N0cmluZyIsInRyaW0iLCJjaGlsZFByb2Nlc3MiLCJlcnJvciIsInRlc3QiLCJzdGRpbyIsInN0YXR1cyIsImNvbW1pdCIsIm1lc3NhZ2UiLCJlbnYiLCJwcm9jZXNzIiwiZW5jb2RpbmciLCJzdGRvdXQiLCJ1aWRCcmFuY2hVcGRhdGUiLCJzdWJkaXJlY3RvcmllcyIsIm5vdEhhcmQiLCJwcmV2aW91c0JyYW5jaCIsImJyYW5jaCIsImNoZGlyIiwic3ViZGlyZWN0b3J5IiwidWlkRGlyZWN0b3J5IiwiZnMiLCJlbnN1cmVEaXJTeW5jIiwiZ2V0RmlsZXMiLCJwYXRobmFtZSIsImZpbGVuYW1lIiwicGF0aCIsImJhc2VuYW1lIiwicmVuYW1lU3luYyIsInJlc2V0T3B0aW9uIl0sInNvdXJjZXMiOlsiLi4vc3JjL2dpdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCB7IGdldEZpbGVzIH0gZnJvbSBcIi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IENoaWxkUHJvY2VzcywgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5cbmNvbnN0IE1BWEJVRkZFUiA9IDUwICogMTAyNCAqIDEwMjRcblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bihcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2coYGdpdCAtQyAke3JlcG9zaXRvcnlEaXJ9ICR7YXJnc31gKVxuICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGBnaXQgJHthcmdzfWAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIG1heEJ1ZmZlcjogTUFYQlVGRkVSLFxuICAgIH0pXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgIGlmICh2ZXJib3NlKSBjb25zb2xlLmxvZyhvdXRwdXQpXG4gICAgcmV0dXJuIG91dHB1dFxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBbXCJzdGRvdXRcIiwgXCJzdGRlcnJcIl0pXG4gICAgICBjb25zb2xlLmVycm9yKGAke291dHB1dH06ICR7KGNoaWxkUHJvY2VzcyBhcyBhbnkpW291dHB1dF19YClcbiAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVzdChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKGBnaXQgLUMgJHtyZXBvc2l0b3J5RGlyfSAke2FyZ3N9YClcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhgZ2l0ICR7YXJnc31gLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIl0sXG4gICAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgICB9KVxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2cob3V0cHV0KVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgIGlmICgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3RhdHVzICE9IDApIHJldHVybiBmYWxzZVxuICAgIHRocm93IGNoaWxkUHJvY2Vzc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXQocmVwb3NpdG9yeURpcjogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgbWF4QnVmZmVyOiBNQVhCVUZGRVIsXG4gIH0pXG4gIHRyeSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjb21taXQgLW0gXCIke21lc3NhZ2V9XCIgLS1xdWlldGAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJwaXBlXCJdLFxuICAgIH0pXG4gICAgcmV0dXJuIHRydWVcbiAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgaWYgKFxuICAgICAgKGNoaWxkUHJvY2VzcyBhcyBDaGlsZFByb2Nlc3MpLnN0ZG91dCA9PT0gbnVsbCB8fFxuICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICkge1xuICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1aWRCcmFuY2hVcGRhdGUoXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgc3ViZGlyZWN0b3JpZXM6IGFueSxcbiAgbm90SGFyZDogYm9vbGVhbixcbik6IGJvb2xlYW4ge1xuICBjb25zdCBwcmV2aW91c0JyYW5jaCA9IHJ1bihyZXBvc2l0b3J5RGlyLCBcInJldi1wYXJzZSAtLWFiYnJldi1yZWYgSEVBRFwiKVxuICBjb25zdCBicmFuY2ggPSBcInVpZFwiXG4gIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKClcbiAgcHJvY2Vzcy5jaGRpcihyZXBvc2l0b3J5RGlyKVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIGZzLmVuc3VyZURpclN5bmModWlkRGlyZWN0b3J5KVxuICAgIGZvciAoY29uc3QgcGF0aG5hbWUgb2YgZ2V0RmlsZXMoW2Ake3N1YmRpcmVjdG9yeX0vKiovKi5qc29uYF0pKSB7XG4gICAgICBjb25zdCBmaWxlbmFtZSA9IHBhdGguYmFzZW5hbWUocGF0aG5hbWUpXG4gICAgICBmcy5yZW5hbWVTeW5jKHBhdGhuYW1lLCBgJHt1aWREaXJlY3Rvcnl9LyR7ZmlsZW5hbWV9YClcbiAgICB9XG4gIH1cbiAgcHJvY2Vzcy5jaGRpcihjd2QpXG4gIGlmICh0ZXN0KHJlcG9zaXRvcnlEaXIsIGByZXYtcGFyc2UgcmVtb3Rlcy9vcmlnaW4vJHticmFuY2h9YCkpIHtcbiAgICAvLyBpZiBhIHJlbW90ZSBicmFuY2ggZXhpc3RzLCBpdCBtdXN0IGJlIHVzZWQgZXZlbiBpZiBhIGxvY2FsIGJyYW5jaCBleGlzdHNcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGJyYW5jaCAtLWZvcmNlICR7YnJhbmNofSBvcmlnaW4vJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICB9IGVsc2UgaWYgKHRlc3QocmVwb3NpdG9yeURpciwgYHJldi1wYXJzZSByZWZzL2hlYWRzLyR7YnJhbmNofWApKSB7XG4gICAgLy8gaWYgbm8gcmVtb3RlIGJyYW5jaCBleGlzdHMgYnV0IGEgbG9jYWwgb25lIGV4aXN0cywgdXNlIGl0XG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgfSBlbHNlIHtcbiAgICAvLyBpZiB0aGVyZSBhcmUgbm8gcmVtb3RlIG9yIGxvY2FsIGJyYW5jaGVzLCBjcmVhdGUgYSBuZXcgb25lXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBicmFuY2ggLS1mb3JjZSAke2JyYW5jaH0gbWFzdGVyYClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBcInJtIC1yIC5cIilcbiAgfVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgYWRkICR7dWlkRGlyZWN0b3J5fWApXG4gIH1cbiAgbGV0IHN0YXR1cyA9IGZhbHNlXG4gIGlmICghdGVzdChyZXBvc2l0b3J5RGlyLCBcImRpZmYgLS1xdWlldCAtLWNhY2hlZFwiKSkge1xuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgY29tbWl0IC1tICdVcGRhdGUnYClcbiAgICBzdGF0dXMgPSB0cnVlXG4gIH1cbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7cHJldmlvdXNCcmFuY2h9YClcbiAgY29uc3QgcmVzZXRPcHRpb24gPSBub3RIYXJkID8gXCJcIiA6IFwiLS1oYXJkXCJcbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGByZXNldCAke3Jlc2V0T3B0aW9ufWApXG4gIHJldHVy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
196
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfZmlsZV9zeXN0ZW1zIiwiX2NoaWxkX3Byb2Nlc3MiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJvIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiaSIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImUiLCJfZSIsImYiLCJUeXBlRXJyb3IiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwiZXJyIiwiY2FsbCIsInN0ZXAiLCJuZXh0IiwiX2UyIiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJhcnIiLCJsZW4iLCJhcnIyIiwiTUFYQlVGRkVSIiwiY29tbWl0IiwicmVwb3NpdG9yeURpciIsIm1lc3NhZ2UiLCJleGVjU3luYyIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwibWF4QnVmZmVyIiwiY29uY2F0IiwiY2hpbGRQcm9jZXNzIiwic3Rkb3V0IiwiY29uc29sZSIsImVycm9yIiwib3V0cHV0IiwiY29tbWl0QW5kUHVzaCIsInJlbW90ZXMiLCJleGl0Q29kZSIsIl9pdGVyYXRvciIsIl9zdGVwIiwicmVtb3RlIiwic3RhdHVzIiwicnVuIiwiYXJncyIsInZlcmJvc2UiLCJsb2ciLCJ0cmltIiwiX2kiLCJfYXJyIiwidWlkQnJhbmNoVXBkYXRlIiwic3ViZGlyZWN0b3JpZXMiLCJub3RIYXJkIiwicHJldmlvdXNCcmFuY2giLCJicmFuY2giLCJjaGRpciIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJzdWJkaXJlY3RvcnkiLCJ1aWREaXJlY3RvcnkiLCJmcyIsImVuc3VyZURpclN5bmMiLCJfaXRlcmF0b3I0IiwiZ2V0RmlsZXMiLCJfc3RlcDQiLCJwYXRobmFtZSIsImZpbGVuYW1lIiwicGF0aCIsImJhc2VuYW1lIiwicmVuYW1lU3luYyIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJyZXNldE9wdGlvbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9naXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgeyBnZXRGaWxlcyB9IGZyb20gXCIuL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQgeyBDaGlsZFByb2Nlc3MsIGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIlxuXG5jb25zdCBNQVhCVUZGRVIgPSA1MCAqIDEwMjQgKiAxMDI0XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXQocmVwb3NpdG9yeURpcjogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgbWF4QnVmZmVyOiBNQVhCVUZGRVIsXG4gIH0pXG4gIHRyeSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjb21taXQgLW0gXCIke21lc3NhZ2V9XCIgLS1xdWlldGAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJwaXBlXCJdLFxuICAgIH0pXG4gICAgcmV0dXJuIHRydWVcbiAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgaWYgKFxuICAgICAgKGNoaWxkUHJvY2VzcyBhcyBDaGlsZFByb2Nlc3MpLnN0ZG91dCA9PT0gbnVsbCB8fFxuICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICkge1xuICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXRBbmRQdXNoKFxuICByZXBvc2l0b3J5RGlyOiBzdHJpbmcsXG4gIG1lc3NhZ2U6IHN0cmluZyxcbiAgcmVtb3Rlcz86IHN0cmluZ1tdLFxuKTogbnVtYmVyIHtcbiAgbGV0IGV4aXRDb2RlID0gMFxuICBpZiAoY29tbWl0KHJlcG9zaXRvcnlEaXIsIG1lc3NhZ2UpKSB7XG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBleGl0Q29kZSA9IChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGF0dXNcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhlcmUgd2FzIG5vdGhpbmcgdG8gY29tbWl0LlxuICAgIGV4aXRDb2RlID0gMTBcbiAgfVxuICByZXR1cm4gZXhpdENvZGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bihcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2coYGdpdCAtQyAke3JlcG9zaXRvcnlEaXJ9ICR7YXJnc31gKVxuICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGBnaXQgJHthcmdzfWAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIG1heEJ1ZmZlcjogTUFYQlVGRkVSLFxuICAgIH0pXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgIGlmICh2ZXJib3NlKSBjb25zb2xlLmxvZyhvdXRwdXQpXG4gICAgcmV0dXJuIG91dHB1dFxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBbXCJzdGRvdXRcIiwgXCJzdGRlcnJcIl0pXG4gICAgICBjb25zb2xlLmVycm9yKGAke291dHB1dH06ICR7KGNoaWxkUHJvY2VzcyBhcyBhbnkpW291dHB1dF19YClcbiAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVzdChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKGBnaXQgLUMgJHtyZXBvc2l0b3J5RGlyfSAke2FyZ3N9YClcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhgZ2l0ICR7YXJnc31gLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIl0sXG4gICAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgICB9KVxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2cob3V0cHV0KVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgIGlmICgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3RhdHVzICE9IDApIHJldHVybiBmYWxzZVxuICAgIHRocm93IGNoaWxkUHJvY2Vzc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1aWRCcmFuY2hVcGRhdGUoXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgc3ViZGlyZWN0b3JpZXM6IGFueSxcbiAgbm90SGFyZDogYm9vbGVhbixcbik6IGJvb2xlYW4ge1xuICBjb25zdCBwcmV2aW91c0JyYW5jaCA9IHJ1bihyZXBvc2l0b3J5RGlyLCBcInJldi1wYXJzZSAtLWFiYnJldi1yZWYgSEVBRFwiKVxuICBjb25zdCBicmFuY2ggPSBcInVpZFwiXG4gIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKClcbiAgcHJvY2Vzcy5jaGRpcihyZXBvc2l0b3J5RGlyKVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIGZzLmVuc3VyZURpclN5bmModWlkRGlyZWN0b3J5KVxuICAgIGZvciAoY29uc3QgcGF0aG5hbWUgb2YgZ2V0RmlsZXMoW2Ake3N1YmRpcmVjdG9yeX0vKiovKi5qc29uYF0pKSB7XG4gICAgICBjb25zdCBmaWxlbmFtZSA9IHBhdGguYmFzZW5hbWUocGF0aG5hbWUpXG4gICAgICBmcy5yZW5hbWVTeW5jKHBhdGhuYW1lLCBgJHt1aWREaXJlY3Rvcnl9LyR7ZmlsZW5hbWV9YClcbiAgICB9XG4gIH1cbiAgcHJvY2Vzcy5jaGRpcihjd2QpXG4gIGlmICh0ZXN0KHJlcG9zaXRvcnlEaXIsIGByZXYtcGFyc2UgcmVtb3Rlcy9vcmlnaW4vJHticmFuY2h9YCkpIHtcbiAgICAvLyBpZiBhIHJlbW90ZSBicmFuY2ggZXhpc3RzLCBpdCBtdXN0IGJlIHVzZWQgZXZlbiBpZiBhIGxvY2FsIGJyYW5jaCBleGlzdHNcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGJyYW5jaCAtLWZvcmNlICR7YnJhbmNofSBvcmlnaW4vJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICB9IGVsc2UgaWYgKHRlc3QocmVwb3NpdG9yeURpciwgYHJldi1wYXJzZSByZWZzL2hlYWRzLyR7YnJhbmNofWApKSB7XG4gICAgLy8gaWYgbm8gcmVtb3RlIGJyYW5jaCBleGlzdHMgYnV0IGEgbG9jYWwgb25lIGV4aXN0cywgdXNlIGl0XG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgfSBlbHNlIHtcbiAgICAvLyBpZiB0aGVyZSBhcmUgbm8gcmVtb3RlIG9yIGxvY2FsIGJyYW5jaGVzLCBjcmVhdGUgYSBuZXcgb25lXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBicmFuY2ggLS1mb3JjZSAke2JyYW5jaH0gbWFzdGVyYClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBcInJtIC1yIC5cIilcbiAgfVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgYWRkICR7dWlkRGlyZWN0b3J5fWApXG4gIH1cbiAgbGV0IHN0YXR1cyA9IGZhbHNlXG4gIGlmICghdGVzdChyZXBvc2l0b3J5RGlyLCBcImRpZmYgLS1xdWlldCAtLWNhY2hlZFwiKSkge1xuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgY29tbWl0IC1tICdVcGRhdGUnYClcbiAgICBzdGF0dXMgPSB0cnVlXG4gIH1cbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7cHJldmlvdXNCcmFuY2h9YClcbiAgY29uc3QgcmVzZXRPcHRpb24gPSBub3RIYXJkID8gXCJcIiA6IFwiLS1oYXJkXCJcbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGByZXNldCAke3Jlc2V0T3B0aW9ufWApXG4gIHJldHVybiBzdGF0dXNcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsYUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBSCxPQUFBO0FBQXNELFNBQUFELHVCQUFBSyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFBQSxTQUFBRSwyQkFBQUMsQ0FBQSxFQUFBQyxjQUFBLFFBQUFDLEVBQUEsVUFBQUMsTUFBQSxvQkFBQUgsQ0FBQSxDQUFBRyxNQUFBLENBQUFDLFFBQUEsS0FBQUosQ0FBQSxxQkFBQUUsRUFBQSxRQUFBRyxLQUFBLENBQUFDLE9BQUEsQ0FBQU4sQ0FBQSxNQUFBRSxFQUFBLEdBQUFLLDJCQUFBLENBQUFQLENBQUEsTUFBQUMsY0FBQSxJQUFBRCxDQUFBLFdBQUFBLENBQUEsQ0FBQVEsTUFBQSxxQkFBQU4sRUFBQSxFQUFBRixDQUFBLEdBQUFFLEVBQUEsTUFBQU8sQ0FBQSxVQUFBQyxDQUFBLFlBQUFBLEVBQUEsZUFBQUMsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUEsRUFBQSxRQUFBSCxDQUFBLElBQUFULENBQUEsQ0FBQVEsTUFBQSxXQUFBSyxJQUFBLG1CQUFBQSxJQUFBLFNBQUFDLEtBQUEsRUFBQWQsQ0FBQSxDQUFBUyxDQUFBLFVBQUFNLENBQUEsV0FBQUEsRUFBQUMsRUFBQSxVQUFBQSxFQUFBLEtBQUFDLENBQUEsRUFBQVAsQ0FBQSxnQkFBQVEsU0FBQSxpSkFBQUMsZ0JBQUEsU0FBQUMsTUFBQSxVQUFBQyxHQUFBLFdBQUFWLENBQUEsV0FBQUEsRUFBQSxJQUFBVCxFQUFBLEdBQUFBLEVBQUEsQ0FBQW9CLElBQUEsQ0FBQXRCLENBQUEsTUFBQVksQ0FBQSxXQUFBQSxFQUFBLFFBQUFXLElBQUEsR0FBQXJCLEVBQUEsQ0FBQXNCLElBQUEsSUFBQUwsZ0JBQUEsR0FBQUksSUFBQSxDQUFBVixJQUFBLFNBQUFVLElBQUEsS0FBQVIsQ0FBQSxXQUFBQSxFQUFBVSxHQUFBLElBQUFMLE1BQUEsU0FBQUMsR0FBQSxHQUFBSSxHQUFBLEtBQUFSLENBQUEsV0FBQUEsRUFBQSxlQUFBRSxnQkFBQSxJQUFBakIsRUFBQSxvQkFBQUEsRUFBQSw4QkFBQWtCLE1BQUEsUUFBQUMsR0FBQTtBQUFBLFNBQUFkLDRCQUFBUCxDQUFBLEVBQUEwQixNQUFBLFNBQUExQixDQUFBLHFCQUFBQSxDQUFBLHNCQUFBMkIsaUJBQUEsQ0FBQTNCLENBQUEsRUFBQTBCLE1BQUEsT0FBQWQsQ0FBQSxHQUFBZ0IsTUFBQSxDQUFBQyxTQUFBLENBQUFDLFFBQUEsQ0FBQVIsSUFBQSxDQUFBdEIsQ0FBQSxFQUFBK0IsS0FBQSxhQUFBbkIsQ0FBQSxpQkFBQVosQ0FBQSxDQUFBZ0MsV0FBQSxFQUFBcEIsQ0FBQSxHQUFBWixDQUFBLENBQUFnQyxXQUFBLENBQUFDLElBQUEsTUFBQXJCLENBQUEsY0FBQUEsQ0FBQSxtQkFBQVAsS0FBQSxDQUFBNkIsSUFBQSxDQUFBbEMsQ0FBQSxPQUFBWSxDQUFBLCtEQUFBdUIsSUFBQSxDQUFBdkIsQ0FBQSxVQUFBZSxpQkFBQSxDQUFBM0IsQ0FBQSxFQUFBMEIsTUFBQTtBQUFBLFNBQUFDLGtCQUFBUyxHQUFBLEVBQUFDLEdBQUEsUUFBQUEsR0FBQSxZQUFBQSxHQUFBLEdBQUFELEdBQUEsQ0FBQTVCLE1BQUEsRUFBQTZCLEdBQUEsR0FBQUQsR0FBQSxDQUFBNUIsTUFBQSxXQUFBQyxDQUFBLE1BQUE2QixJQUFBLE9BQUFqQyxLQUFBLENBQUFnQyxHQUFBLEdBQUE1QixDQUFBLEdBQUE0QixHQUFBLEVBQUE1QixDQUFBLElBQUE2QixJQUFBLENBQUE3QixDQUFBLElBQUEyQixHQUFBLENBQUEzQixDQUFBLFVBQUE2QixJQUFBO0FBRXRELElBQU1DLFNBQVMsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUk7QUFFM0IsU0FBU0MsTUFBTUEsQ0FBQ0MsYUFBcUIsRUFBRUMsT0FBZSxFQUFXO0VBQ3RFLElBQUFDLHVCQUFRLEVBQUMsV0FBVyxFQUFFO0lBQ3BCQyxHQUFHLEVBQUVILGFBQWE7SUFDbEJJLEdBQUcsRUFBRUMsT0FBTyxDQUFDRCxHQUFHO0lBQ2hCRSxRQUFRLEVBQUUsT0FBTztJQUNqQkMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDbkNDLFNBQVMsRUFBRVY7RUFDYixDQUFDLENBQUM7RUFDRixJQUFJO0lBQ0YsSUFBQUksdUJBQVEscUJBQUFPLE1BQUEsQ0FBbUJSLE9BQU8saUJBQWE7TUFDN0NFLEdBQUcsRUFBRUgsYUFBYTtNQUNsQkksR0FBRyxFQUFFQyxPQUFPLENBQUNELEdBQUc7TUFDaEJFLFFBQVEsRUFBRSxPQUFPO01BQ2pCQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU07SUFDbEMsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxJQUFJO0VBQ2IsQ0FBQyxDQUFDLE9BQU9HLFlBQVksRUFBRTtJQUNyQixJQUNHQSxZQUFZLENBQWtCQyxNQUFNLEtBQUssSUFBSSxJQUM5QyxDQUFDLG1CQUFtQixDQUFDakIsSUFBSSxDQUFFZ0IsWUFBWSxDQUFTQyxNQUFNLENBQUMsRUFDdkQ7TUFDQUMsT0FBTyxDQUFDQyxLQUFLLENBQUVILFlBQVksQ0FBU0ksTUFBTSxDQUFDO01BQzNDLE1BQU1KLFlBQVk7SUFDcEI7SUFDQSxPQUFPLEtBQUs7RUFDZDtBQUNGO0FBRU8sU0FBU0ssYUFBYUEsQ0FDM0JmLGFBQXFCLEVBQ3JCQyxPQUFlLEVBQ2ZlLE9BQWtCLEVBQ1Y7RUFDUixJQUFJQyxRQUFRLEdBQUcsQ0FBQztFQUNoQixJQUFJbEIsTUFBTSxDQUFDQyxhQUFhLEVBQUVDLE9BQU8sQ0FBQyxFQUFFO0lBQUEsSUFBQWlCLFNBQUEsR0FBQTVELDBCQUFBLENBQ2IwRCxPQUFPLElBQUksRUFBRTtNQUFBRyxLQUFBO0lBQUE7TUFBbEMsS0FBQUQsU0FBQSxDQUFBaEQsQ0FBQSxNQUFBaUQsS0FBQSxHQUFBRCxTQUFBLENBQUEvQyxDQUFBLElBQUFDLElBQUEsR0FBb0M7UUFBQSxJQUF6QmdELE1BQU0sR0FBQUQsS0FBQSxDQUFBOUMsS0FBQTtRQUNmLElBQUk7VUFDRixJQUFBNkIsdUJBQVEsY0FBQU8sTUFBQSxDQUFhVyxNQUFNLGNBQVc7WUFDcENqQixHQUFHLEVBQUVILGFBQWE7WUFDbEJJLEdBQUcsRUFBRUMsT0FBTyxDQUFDRCxHQUFHO1lBQ2hCRSxRQUFRLEVBQUUsT0FBTztZQUNqQkMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNO1VBQ3BDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxPQUFPRyxZQUFZLEVBQUU7VUFDckI7VUFDQUUsT0FBTyxDQUFDQyxLQUFLLENBQUVILFlBQVksQ0FBU0ksTUFBTSxDQUFDO1VBQzNDRyxRQUFRLEdBQUlQLFlBQVksQ0FBU1csTUFBTTtRQUN6QztNQUNGO0lBQUMsU0FBQXpDLEdBQUE7TUFBQXNDLFNBQUEsQ0FBQTVDLENBQUEsQ0FBQU0sR0FBQTtJQUFBO01BQUFzQyxTQUFBLENBQUExQyxDQUFBO0lBQUE7RUFDSCxDQUFDLE1BQU07SUFDTDtJQUNBeUMsUUFBUSxHQUFHLEVBQUU7RUFDZjtFQUNBLE9BQU9BLFFBQVE7QUFDakI7QUFFTyxTQUFTSyxHQUFHQSxDQUNqQnRCLGFBQXFCLEVBQ3JCdUIsSUFBWSxFQUNaQyxPQUFpQixFQUNUO0VBQ1IsSUFBSTtJQUNGLElBQUlBLE9BQU8sRUFBRVosT0FBTyxDQUFDYSxHQUFHLFdBQUFoQixNQUFBLENBQVdULGFBQWEsT0FBQVMsTUFBQSxDQUFJYyxJQUFJLEVBQUc7SUFDM0QsSUFBTVQsTUFBTSxHQUFHLElBQUFaLHVCQUFRLFNBQUFPLE1BQUEsQ0FBUWMsSUFBSSxHQUFJO01BQ3JDcEIsR0FBRyxFQUFFSCxhQUFhO01BQ2xCUSxTQUFTLEVBQUVWO0lBQ2IsQ0FBQyxDQUFDLENBQ0NULFFBQVEsRUFBRSxDQUNWcUMsSUFBSSxFQUFFO0lBQ1QsSUFBSUYsT0FBTyxFQUFFWixPQUFPLENBQUNhLEdBQUcsQ0FBQ1gsTUFBTSxDQUFDO0lBQ2hDLE9BQU9BLE1BQU07RUFDZixDQUFDLENBQUMsT0FBT0osWUFBWSxFQUFFO0lBQ3JCLFNBQUFpQixFQUFBLE1BQUFDLElBQUEsR0FBcUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUFELEVBQUEsR0FBQUMsSUFBQSxDQUFBN0QsTUFBQSxFQUFBNEQsRUFBQTtNQUFwQyxJQUFNYixPQUFNLEdBQUFjLElBQUEsQ0FBQUQsRUFBQTtNQUNmZixPQUFPLENBQUNDLEtBQUssSUFBQUosTUFBQSxDQUFJSyxPQUFNLFFBQUFMLE1BQUEsQ0FBTUMsWUFBWSxDQUFTSSxPQUFNLENBQUMsRUFBRztJQUFBO0lBQzlELE1BQU1KLFlBQVk7RUFDcEI7QUFDRjtBQUVPLFNBQVNoQixJQUFJQSxDQUNsQk0sYUFBcUIsRUFDckJ1QixJQUFZLEVBQ1pDLE9BQWlCLEVBQ1I7RUFDVCxJQUFJO0lBQ0YsSUFBSUEsT0FBTyxFQUFFWixPQUFPLENBQUNhLEdBQUcsV0FBQWhCLE1BQUEsQ0FBV1QsYUFBYSxPQUFBUyxNQUFBLENBQUljLElBQUksRUFBRztJQUMzRCxJQUFNVCxNQUFNLEdBQUcsSUFBQVosdUJBQVEsU0FBQU8sTUFBQSxDQUFRYyxJQUFJLEdBQUk7TUFDckNwQixHQUFHLEVBQUVILGFBQWE7TUFDbEJPLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO01BQ2pDQyxTQUFTLEVBQUVWO0lBQ2IsQ0FBQyxDQUFDLENBQ0NULFFBQVEsRUFBRSxDQUNWcUMsSUFBSSxFQUFFO0lBQ1QsSUFBSUYsT0FBTyxFQUFFWixPQUFPLENBQUNhLEdBQUcsQ0FBQ1gsTUFBTSxDQUFDO0lBQ2hDLE9BQU8sSUFBSTtFQUNiLENBQUMsQ0FBQyxPQUFPSixZQUFZLEVBQUU7SUFDckIsSUFBS0EsWUFBWSxDQUFTVyxNQUFNLElBQUksQ0FBQyxFQUFFLE9BQU8sS0FBSztJQUNuRCxNQUFNWCxZQUFZO0VBQ3BCO0FBQ0Y7QUFFTyxTQUFTbUIsZUFBZUEsQ0FDN0I3QixhQUFxQixFQUNyQjhCLGNBQW1CLEVBQ25CQyxPQUFnQixFQUNQO0VBQ1QsSUFBTUMsY0FBYyxHQUFHVixHQUFHLENBQUN0QixhQUFhLEVBQUUsNkJBQTZCLENBQUM7RUFDeEUsSUFBTWlDLE1BQU0sR0FBRyxLQUFLO0VBQ3BCLElBQU05QixHQUFHLEdBQUdFLE9BQU8sQ0FBQ0YsR0FBRyxFQUFFO0VBQ3pCRSxPQUFPLENBQUM2QixLQUFLLENBQUNsQyxhQUFhLENBQUM7RUFBQSxJQUFBbUMsVUFBQSxHQUFBN0UsMEJBQUEsQ0FDRHdFLGNBQWM7SUFBQU0sTUFBQTtFQUFBO0lBQXpDLEtBQUFELFVBQUEsQ0FBQWpFLENBQUEsTUFBQWtFLE1BQUEsR0FBQUQsVUFBQSxDQUFBaEUsQ0FBQSxJQUFBQyxJQUFBLEdBQTJDO01BQUEsSUFBaENpRSxZQUFZLEdBQUFELE1BQUEsQ0FBQS9ELEtBQUE7TUFDckIsSUFBTWlFLFlBQVksTUFBQTdCLE1BQUEsQ0FBTTRCLFlBQVksU0FBTTtNQUMxQ0UsbUJBQUUsQ0FBQ0MsYUFBYSxDQUFDRixZQUFZLENBQUM7TUFBQSxJQUFBRyxVQUFBLEdBQUFuRiwwQkFBQSxDQUNQLElBQUFvRixzQkFBUSxFQUFDLElBQUFqQyxNQUFBLENBQUk0QixZQUFZLGdCQUFhLENBQUM7UUFBQU0sTUFBQTtNQUFBO1FBQTlELEtBQUFGLFVBQUEsQ0FBQXZFLENBQUEsTUFBQXlFLE1BQUEsR0FBQUYsVUFBQSxDQUFBdEUsQ0FBQSxJQUFBQyxJQUFBLEdBQWdFO1VBQUEsSUFBckR3RSxRQUFRLEdBQUFELE1BQUEsQ0FBQXRFLEtBQUE7VUFDakIsSUFBTXdFLFFBQVEsR0FBR0MsZ0JBQUksQ0FBQ0MsUUFBUSxDQUFDSCxRQUFRLENBQUM7VUFDeENMLG1CQUFFLENBQUNTLFVBQVUsQ0FBQ0osUUFBUSxLQUFBbkMsTUFBQSxDQUFLNkIsWUFBWSxPQUFBN0IsTUFBQSxDQUFJb0MsUUFBUSxFQUFHO1FBQ3hEO01BQUMsU0FBQWpFLEdBQUE7UUFBQTZELFVBQUEsQ0FBQW5FLENBQUEsQ0FBQU0sR0FBQTtNQUFBO1FBQUE2RCxVQUFBLENBQUFqRSxDQUFBO01BQUE7SUFDSDtFQUFDLFNBQUFJLEdBQUE7SUFBQXVELFVBQUEsQ0FBQTdELENBQUEsQ0FBQU0sR0FBQTtFQUFBO0lBQUF1RCxVQUFBLENBQUEzRCxDQUFBO0VBQUE7RUFDRDZCLE9BQU8sQ0FBQzZCLEtBQUssQ0FBQy9CLEdBQUcsQ0FBQztFQUNsQixJQUFJVCxJQUFJLENBQUNNLGFBQWEsOEJBQUFTLE1BQUEsQ0FBOEJ3QixNQUFNLEVBQUcsRUFBRTtJQUM3RDtJQUNBWCxHQUFHLENBQUN0QixhQUFhLG9CQUFBUyxNQUFBLENBQW9Cd0IsTUFBTSxjQUFBeEIsTUFBQSxDQUFXd0IsTUFBTSxFQUFHO0lBQy9EWCxHQUFHLENBQUN0QixhQUFhLGtDQUFBUyxNQUFBLENBQWtDd0IsTUFBTSxFQUFHO0lBQzVEWCxHQUFHLENBQUN0QixhQUFhLEVBQUUsT0FBTyxDQUFDO0VBQzdCLENBQUMsTUFBTSxJQUFJTixJQUFJLENBQUNNLGFBQWEsMEJBQUFTLE1BQUEsQ0FBMEJ3QixNQUFNLEVBQUcsRUFBRTtJQUNoRTtJQUNBWCxHQUFHLENBQUN0QixhQUFhLGtDQUFBUyxNQUFBLENBQWtDd0IsTUFBTSxFQUFHO0lBQzVEWCxHQUFHLENBQUN0QixhQUFhLEVBQUUsT0FBTyxDQUFDO0VBQzdCLENBQUMsTUFBTTtJQUNMO0lBQ0FzQixHQUFHLENBQUN0QixhQUFhLG9CQUFBUyxNQUFBLENBQW9Cd0IsTUFBTSxhQUFVO0lBQ3JEWCxHQUFHLENBQUN0QixhQUFhLGtDQUFBUyxNQUFBLENBQWtDd0IsTUFBTSxFQUFHO0lBQzVEWCxHQUFHLENBQUN0QixhQUFhLEVBQUUsT0FBTyxDQUFDO0lBQzNCc0IsR0FBRyxDQUFDdEIsYUFBYSxFQUFFLFNBQVMsQ0FBQztFQUMvQjtFQUFDLElBQUFpRCxVQUFBLEdBQUEzRiwwQkFBQSxDQUMwQndFLGNBQWM7SUFBQW9CLE1BQUE7RUFBQTtJQUF6QyxLQUFBRCxVQUFBLENBQUEvRSxDQUFBLE1BQUFnRixNQUFBLEdBQUFELFVBQUEsQ0FBQTlFLENBQUEsSUFBQUMsSUFBQSxHQUEyQztNQUFBLElBQWhDaUUsYUFBWSxHQUFBYSxNQUFBLENBQUE3RSxLQUFBO01BQ3JCLElBQU1pRSxhQUFZLE1BQUE3QixNQUFBLENBQU00QixhQUFZLFNBQU07TUFDMUNmLEdBQUcsQ0FBQ3RCLGFBQWEsU0FBQVMsTUFBQSxDQUFTNkIsYUFBWSxFQUFHO0lBQzNDO0VBQUMsU0FBQTFELEdBQUE7SUFBQXFFLFVBQUEsQ0FBQTNFLENBQUEsQ0FBQU0sR0FBQTtFQUFBO0lBQUFxRSxVQUFBLENBQUF6RSxDQUFBO0VBQUE7RUFDRCxJQUFJNkMsTUFBTSxHQUFHLEtBQUs7RUFDbEIsSUFBSSxDQUFDM0IsSUFBSSxDQUFDTSxhQUFhLEVBQUUsdUJBQXVCLENBQUMsRUFBRTtJQUNqRHNCLEdBQUcsQ0FBQ3RCLGFBQWEsdUJBQXVCO0lBQ3hDcUIsTUFBTSxHQUFHLElBQUk7RUFDZjtFQUNBQyxHQUFHLENBQUN0QixhQUFhLGtDQUFBUyxNQUFBLENBQWtDdUIsY0FBYyxFQUFHO0VBQ3BFLElBQU1tQixXQUFXLEdBQUdwQixPQUFPLEdBQUcsRUFBRSxHQUFHLFFBQVE7RUFDM0NULEdBQUcsQ0FBQ3RCLGFBQWEsV0FBQVMsTUFBQSxDQUFXMEMsV0FBVyxFQUFHO0VBQzFDLE9BQU85QixNQUFNO0FBQ2YifQ==
package/lib/git.mjs CHANGED
@@ -3,6 +3,53 @@ import fs from "fs-extra";
3
3
  import { getFiles } from "./file_systems.mjs";
4
4
  import { execSync } from "child_process";
5
5
  const MAXBUFFER = 50 * 1024 * 1024;
6
+ export function commit(repositoryDir, message) {
7
+ execSync("git add .", {
8
+ cwd: repositoryDir,
9
+ env: process.env,
10
+ encoding: "utf-8",
11
+ stdio: ["ignore", "ignore", "pipe"],
12
+ maxBuffer: MAXBUFFER
13
+ });
14
+ try {
15
+ execSync(`git commit -m "${message}" --quiet`, {
16
+ cwd: repositoryDir,
17
+ env: process.env,
18
+ encoding: "utf-8",
19
+ stdio: ["ignore", "pipe", "pipe"]
20
+ });
21
+ return true;
22
+ } catch (childProcess) {
23
+ if (childProcess.stdout === null || !/nothing to commit/.test(childProcess.stdout)) {
24
+ console.error(childProcess.output);
25
+ throw childProcess;
26
+ }
27
+ return false;
28
+ }
29
+ }
30
+ export function commitAndPush(repositoryDir, message, remotes) {
31
+ let exitCode = 0;
32
+ if (commit(repositoryDir, message)) {
33
+ for (const remote of remotes || []) {
34
+ try {
35
+ execSync(`git push ${remote} master`, {
36
+ cwd: repositoryDir,
37
+ env: process.env,
38
+ encoding: "utf-8",
39
+ stdio: ["ignore", "ignore", "pipe"]
40
+ });
41
+ } catch (childProcess) {
42
+ // Don't stop when push fails.
43
+ console.error(childProcess.output);
44
+ exitCode = childProcess.status;
45
+ }
46
+ }
47
+ } else {
48
+ // There was nothing to commit.
49
+ exitCode = 10;
50
+ }
51
+ return exitCode;
52
+ }
6
53
  export function run(repositoryDir, args, verbose) {
7
54
  try {
8
55
  if (verbose) console.log(`git -C ${repositoryDir} ${args}`);
@@ -32,30 +79,6 @@ export function test(repositoryDir, args, verbose) {
32
79
  throw childProcess;
33
80
  }
34
81
  }
35
- export function commit(repositoryDir, message) {
36
- execSync("git add .", {
37
- cwd: repositoryDir,
38
- env: process.env,
39
- encoding: "utf-8",
40
- stdio: ["ignore", "ignore", "pipe"],
41
- maxBuffer: MAXBUFFER
42
- });
43
- try {
44
- execSync(`git commit -m "${message}" --quiet`, {
45
- cwd: repositoryDir,
46
- env: process.env,
47
- encoding: "utf-8",
48
- stdio: ["ignore", "pipe", "pipe"]
49
- });
50
- return true;
51
- } catch (childProcess) {
52
- if (childProcess.stdout === null || !/nothing to commit/.test(childProcess.stdout)) {
53
- console.error(childProcess.output);
54
- throw childProcess;
55
- }
56
- return false;
57
- }
58
- }
59
82
  export function uidBranchUpdate(repositoryDir, subdirectories, notHard) {
60
83
  const previousBranch = run(repositoryDir, "rev-parse --abbrev-ref HEAD");
61
84
  const branch = "uid";
@@ -100,4 +123,4 @@ export function uidBranchUpdate(repositoryDir, subdirectories, notHard) {
100
123
  run(repositoryDir, `reset ${resetOption}`);
101
124
  return status;
102
125
  }
103
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiZnMiLCJnZXRGaWxlcyIsImV4ZWNTeW5jIiwiTUFYQlVGRkVSIiwicnVuIiwicmVwb3NpdG9yeURpciIsImFyZ3MiLCJ2ZXJib3NlIiwiY29uc29sZSIsImxvZyIsIm91dHB1dCIsImN3ZCIsIm1heEJ1ZmZlciIsInRvU3RyaW5nIiwidHJpbSIsImNoaWxkUHJvY2VzcyIsImVycm9yIiwidGVzdCIsInN0ZGlvIiwic3RhdHVzIiwiY29tbWl0IiwibWVzc2FnZSIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZG91dCIsInVpZEJyYW5jaFVwZGF0ZSIsInN1YmRpcmVjdG9yaWVzIiwibm90SGFyZCIsInByZXZpb3VzQnJhbmNoIiwiYnJhbmNoIiwiY2hkaXIiLCJzdWJkaXJlY3RvcnkiLCJ1aWREaXJlY3RvcnkiLCJlbnN1cmVEaXJTeW5jIiwicGF0aG5hbWUiLCJmaWxlbmFtZSIsImJhc2VuYW1lIiwicmVuYW1lU3luYyIsInJlc2V0T3B0aW9uIl0sInNvdXJjZXMiOlsiLi4vc3JjL2dpdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCB7IGdldEZpbGVzIH0gZnJvbSBcIi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IENoaWxkUHJvY2VzcywgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5cbmNvbnN0IE1BWEJVRkZFUiA9IDUwICogMTAyNCAqIDEwMjRcblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bihcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2coYGdpdCAtQyAke3JlcG9zaXRvcnlEaXJ9ICR7YXJnc31gKVxuICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGBnaXQgJHthcmdzfWAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIG1heEJ1ZmZlcjogTUFYQlVGRkVSLFxuICAgIH0pXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgIGlmICh2ZXJib3NlKSBjb25zb2xlLmxvZyhvdXRwdXQpXG4gICAgcmV0dXJuIG91dHB1dFxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBbXCJzdGRvdXRcIiwgXCJzdGRlcnJcIl0pXG4gICAgICBjb25zb2xlLmVycm9yKGAke291dHB1dH06ICR7KGNoaWxkUHJvY2VzcyBhcyBhbnkpW291dHB1dF19YClcbiAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVzdChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKGBnaXQgLUMgJHtyZXBvc2l0b3J5RGlyfSAke2FyZ3N9YClcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhgZ2l0ICR7YXJnc31gLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIl0sXG4gICAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgICB9KVxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2cob3V0cHV0KVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgIGlmICgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3RhdHVzICE9IDApIHJldHVybiBmYWxzZVxuICAgIHRocm93IGNoaWxkUHJvY2Vzc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXQocmVwb3NpdG9yeURpcjogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgbWF4QnVmZmVyOiBNQVhCVUZGRVIsXG4gIH0pXG4gIHRyeSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjb21taXQgLW0gXCIke21lc3NhZ2V9XCIgLS1xdWlldGAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJwaXBlXCJdLFxuICAgIH0pXG4gICAgcmV0dXJuIHRydWVcbiAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgaWYgKFxuICAgICAgKGNoaWxkUHJvY2VzcyBhcyBDaGlsZFByb2Nlc3MpLnN0ZG91dCA9PT0gbnVsbCB8fFxuICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICkge1xuICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1aWRCcmFuY2hVcGRhdGUoXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgc3ViZGlyZWN0b3JpZXM6IGFueSxcbiAgbm90SGFyZDogYm9vbGVhbixcbik6IGJvb2xlYW4ge1xuICBjb25zdCBwcmV2aW91c0JyYW5jaCA9IHJ1bihyZXBvc2l0b3J5RGlyLCBcInJldi1wYXJzZSAtLWFiYnJldi1yZWYgSEVBRFwiKVxuICBjb25zdCBicmFuY2ggPSBcInVpZFwiXG4gIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKClcbiAgcHJvY2Vzcy5jaGRpcihyZXBvc2l0b3J5RGlyKVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIGZzLmVuc3VyZURpclN5bmModWlkRGlyZWN0b3J5KVxuICAgIGZvciAoY29uc3QgcGF0aG5hbWUgb2YgZ2V0RmlsZXMoW2Ake3N1YmRpcmVjdG9yeX0vKiovKi5qc29uYF0pKSB7XG4gICAgICBjb25zdCBmaWxlbmFtZSA9IHBhdGguYmFzZW5hbWUocGF0aG5hbWUpXG4gICAgICBmcy5yZW5hbWVTeW5jKHBhdGhuYW1lLCBgJHt1aWREaXJlY3Rvcnl9LyR7ZmlsZW5hbWV9YClcbiAgICB9XG4gIH1cbiAgcHJvY2Vzcy5jaGRpcihjd2QpXG4gIGlmICh0ZXN0KHJlcG9zaXRvcnlEaXIsIGByZXYtcGFyc2UgcmVtb3Rlcy9vcmlnaW4vJHticmFuY2h9YCkpIHtcbiAgICAvLyBpZiBhIHJlbW90ZSBicmFuY2ggZXhpc3RzLCBpdCBtdXN0IGJlIHVzZWQgZXZlbiBpZiBhIGxvY2FsIGJyYW5jaCBleGlzdHNcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGJyYW5jaCAtLWZvcmNlICR7YnJhbmNofSBvcmlnaW4vJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICB9IGVsc2UgaWYgKHRlc3QocmVwb3NpdG9yeURpciwgYHJldi1wYXJzZSByZWZzL2hlYWRzLyR7YnJhbmNofWApKSB7XG4gICAgLy8gaWYgbm8gcmVtb3RlIGJyYW5jaCBleGlzdHMgYnV0IGEgbG9jYWwgb25lIGV4aXN0cywgdXNlIGl0XG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgfSBlbHNlIHtcbiAgICAvLyBpZiB0aGVyZSBhcmUgbm8gcmVtb3RlIG9yIGxvY2FsIGJyYW5jaGVzLCBjcmVhdGUgYSBuZXcgb25lXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBicmFuY2ggLS1mb3JjZSAke2JyYW5jaH0gbWFzdGVyYClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBcInJtIC1yIC5cIilcbiAgfVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgYWRkICR7dWlkRGlyZWN0b3J5fWApXG4gIH1cbiAgbGV0IHN0YXR1cyA9IGZhbHNlXG4gIGlmICghdGVzdChyZXBvc2l0b3J5RGlyLCBcImRpZmYgLS1xdWlldCAtLWNhY2hlZFwiKSkge1xuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgY29tbWl0IC1tICdVcGRhdGUnYClcbiAgICBzdGF0dXMgPSB0cnVlXG4gIH1cbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7cHJldmlvdXNCcmFuY2h9YClcbiAgY29uc3QgcmVzZXRPcHRpb24gPSBub3RIYXJkID8gXCJcIiA6IFwiLS1oYXJkXCJcbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGByZXNldCAke3Jlc2V0T3B0aW9ufWApXG4gIHJldHVy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
126
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiZnMiLCJnZXRGaWxlcyIsImV4ZWNTeW5jIiwiTUFYQlVGRkVSIiwiY29tbWl0IiwicmVwb3NpdG9yeURpciIsIm1lc3NhZ2UiLCJjd2QiLCJlbnYiLCJwcm9jZXNzIiwiZW5jb2RpbmciLCJzdGRpbyIsIm1heEJ1ZmZlciIsImNoaWxkUHJvY2VzcyIsInN0ZG91dCIsInRlc3QiLCJjb25zb2xlIiwiZXJyb3IiLCJvdXRwdXQiLCJjb21taXRBbmRQdXNoIiwicmVtb3RlcyIsImV4aXRDb2RlIiwicmVtb3RlIiwic3RhdHVzIiwicnVuIiwiYXJncyIsInZlcmJvc2UiLCJsb2ciLCJ0b1N0cmluZyIsInRyaW0iLCJ1aWRCcmFuY2hVcGRhdGUiLCJzdWJkaXJlY3RvcmllcyIsIm5vdEhhcmQiLCJwcmV2aW91c0JyYW5jaCIsImJyYW5jaCIsImNoZGlyIiwic3ViZGlyZWN0b3J5IiwidWlkRGlyZWN0b3J5IiwiZW5zdXJlRGlyU3luYyIsInBhdGhuYW1lIiwiZmlsZW5hbWUiLCJiYXNlbmFtZSIsInJlbmFtZVN5bmMiLCJyZXNldE9wdGlvbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9naXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgeyBnZXRGaWxlcyB9IGZyb20gXCIuL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQgeyBDaGlsZFByb2Nlc3MsIGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIlxuXG5jb25zdCBNQVhCVUZGRVIgPSA1MCAqIDEwMjQgKiAxMDI0XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXQocmVwb3NpdG9yeURpcjogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgbWF4QnVmZmVyOiBNQVhCVUZGRVIsXG4gIH0pXG4gIHRyeSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjb21taXQgLW0gXCIke21lc3NhZ2V9XCIgLS1xdWlldGAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJwaXBlXCJdLFxuICAgIH0pXG4gICAgcmV0dXJuIHRydWVcbiAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgaWYgKFxuICAgICAgKGNoaWxkUHJvY2VzcyBhcyBDaGlsZFByb2Nlc3MpLnN0ZG91dCA9PT0gbnVsbCB8fFxuICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICkge1xuICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXRBbmRQdXNoKFxuICByZXBvc2l0b3J5RGlyOiBzdHJpbmcsXG4gIG1lc3NhZ2U6IHN0cmluZyxcbiAgcmVtb3Rlcz86IHN0cmluZ1tdLFxuKTogbnVtYmVyIHtcbiAgbGV0IGV4aXRDb2RlID0gMFxuICBpZiAoY29tbWl0KHJlcG9zaXRvcnlEaXIsIG1lc3NhZ2UpKSB7XG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBleGl0Q29kZSA9IChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGF0dXNcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhlcmUgd2FzIG5vdGhpbmcgdG8gY29tbWl0LlxuICAgIGV4aXRDb2RlID0gMTBcbiAgfVxuICByZXR1cm4gZXhpdENvZGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bihcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2coYGdpdCAtQyAke3JlcG9zaXRvcnlEaXJ9ICR7YXJnc31gKVxuICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGBnaXQgJHthcmdzfWAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIG1heEJ1ZmZlcjogTUFYQlVGRkVSLFxuICAgIH0pXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgIGlmICh2ZXJib3NlKSBjb25zb2xlLmxvZyhvdXRwdXQpXG4gICAgcmV0dXJuIG91dHB1dFxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBbXCJzdGRvdXRcIiwgXCJzdGRlcnJcIl0pXG4gICAgICBjb25zb2xlLmVycm9yKGAke291dHB1dH06ICR7KGNoaWxkUHJvY2VzcyBhcyBhbnkpW291dHB1dF19YClcbiAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVzdChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKGBnaXQgLUMgJHtyZXBvc2l0b3J5RGlyfSAke2FyZ3N9YClcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhgZ2l0ICR7YXJnc31gLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIl0sXG4gICAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgICB9KVxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2cob3V0cHV0KVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgIGlmICgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3RhdHVzICE9IDApIHJldHVybiBmYWxzZVxuICAgIHRocm93IGNoaWxkUHJvY2Vzc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1aWRCcmFuY2hVcGRhdGUoXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgc3ViZGlyZWN0b3JpZXM6IGFueSxcbiAgbm90SGFyZDogYm9vbGVhbixcbik6IGJvb2xlYW4ge1xuICBjb25zdCBwcmV2aW91c0JyYW5jaCA9IHJ1bihyZXBvc2l0b3J5RGlyLCBcInJldi1wYXJzZSAtLWFiYnJldi1yZWYgSEVBRFwiKVxuICBjb25zdCBicmFuY2ggPSBcInVpZFwiXG4gIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKClcbiAgcHJvY2Vzcy5jaGRpcihyZXBvc2l0b3J5RGlyKVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIGZzLmVuc3VyZURpclN5bmModWlkRGlyZWN0b3J5KVxuICAgIGZvciAoY29uc3QgcGF0aG5hbWUgb2YgZ2V0RmlsZXMoW2Ake3N1YmRpcmVjdG9yeX0vKiovKi5qc29uYF0pKSB7XG4gICAgICBjb25zdCBmaWxlbmFtZSA9IHBhdGguYmFzZW5hbWUocGF0aG5hbWUpXG4gICAgICBmcy5yZW5hbWVTeW5jKHBhdGhuYW1lLCBgJHt1aWREaXJlY3Rvcnl9LyR7ZmlsZW5hbWV9YClcbiAgICB9XG4gIH1cbiAgcHJvY2Vzcy5jaGRpcihjd2QpXG4gIGlmICh0ZXN0KHJlcG9zaXRvcnlEaXIsIGByZXYtcGFyc2UgcmVtb3Rlcy9vcmlnaW4vJHticmFuY2h9YCkpIHtcbiAgICAvLyBpZiBhIHJlbW90ZSBicmFuY2ggZXhpc3RzLCBpdCBtdXN0IGJlIHVzZWQgZXZlbiBpZiBhIGxvY2FsIGJyYW5jaCBleGlzdHNcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGJyYW5jaCAtLWZvcmNlICR7YnJhbmNofSBvcmlnaW4vJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICB9IGVsc2UgaWYgKHRlc3QocmVwb3NpdG9yeURpciwgYHJldi1wYXJzZSByZWZzL2hlYWRzLyR7YnJhbmNofWApKSB7XG4gICAgLy8gaWYgbm8gcmVtb3RlIGJyYW5jaCBleGlzdHMgYnV0IGEgbG9jYWwgb25lIGV4aXN0cywgdXNlIGl0XG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgfSBlbHNlIHtcbiAgICAvLyBpZiB0aGVyZSBhcmUgbm8gcmVtb3RlIG9yIGxvY2FsIGJyYW5jaGVzLCBjcmVhdGUgYSBuZXcgb25lXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBicmFuY2ggLS1mb3JjZSAke2JyYW5jaH0gbWFzdGVyYClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBcInJtIC1yIC5cIilcbiAgfVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgYWRkICR7dWlkRGlyZWN0b3J5fWApXG4gIH1cbiAgbGV0IHN0YXR1cyA9IGZhbHNlXG4gIGlmICghdGVzdChyZXBvc2l0b3J5RGlyLCBcImRpZmYgLS1xdWlldCAtLWNhY2hlZFwiKSkge1xuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgY29tbWl0IC1tICdVcGRhdGUnYClcbiAgICBzdGF0dXMgPSB0cnVlXG4gIH1cbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7cHJldmlvdXNCcmFuY2h9YClcbiAgY29uc3QgcmVzZXRPcHRpb24gPSBub3RIYXJkID8gXCJcIiA6IFwiLS1oYXJkXCJcbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGByZXNldCAke3Jlc2V0T3B0aW9ufWApXG4gIHJldHVybiBzdGF0dXNcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsSUFBSSxNQUFNLE1BQU07QUFDdkIsT0FBT0MsRUFBRSxNQUFNLFVBQVU7QUFBQSxTQUNoQkMsUUFBUTtBQUNqQixTQUF1QkMsUUFBUSxRQUFRLGVBQWU7QUFF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
package/lib/index.js CHANGED
@@ -299,4 +299,4 @@ var _amendements = require("./types/amendements");
299
299
  var _dossiers_legislatifs2 = require("./types/dossiers_legislatifs");
300
300
  var _legislatures = require("./types/legislatures");
301
301
  var _urls = require("./urls");
302
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIE5vdGU6IFRoaXMgbW9kdWxlIGNhbiBvbmx5IGV4cG9ydCBjbGVhbiBkYXRhIGFuZCBoZWxwZXJzIHRvIG1hbmlwdWxhdGUgaXQuXG4vLyBOb3RlOiBUaGlzIG1vZHVsZSBjYW4gbm90IGNvbnRhaW4gTm9kZUpTIHNwZWNpZmljIGNvZGUgKGxpa2UgYGFzc2VydGApLlxuXG5leHBvcnQgdHlwZSB7XG4gIFNlYXJjaFF1ZXJ5LFxuICBWYWxpZFNlYXJjaFF1ZXJ5LFxuICBWYWxpZFNlYXJjaFF1ZXJ5U2hhcmVkU3Vic2V0LFxufSBmcm9tIFwiLi9hcGlcIlxuZXhwb3J0IHsgYWxsRmFjZXRzLCBhbGxGb2xsb3dzLCBGYWNldCwgRm9sbG93IH0gZnJvbSBcIi4vYXBpXCJcbmV4cG9ydCB7XG4gIGRhdGVGcm9tTnVsbGFibGVEYXRlT3JJc29TdHJpbmcsXG4gIGRhdGVGcm9tWWVhck1vbnRoRGF5VGltZXpvbmVTdHJpbmcsXG4gIGRpc3BsYXlEYXRlRnJvbUxvY2FsSXNvU3RyaW5nLFxuICBleGlzdGluZ0RhdGVUb0pzb24sXG4gIGZvcm1hdFJlbGF0aXZlRnJlbmNoVGltZSxcbiAgZnJlbmNoRGF0ZUZvcm1hdCxcbiAgZnJlbmNoRGF0ZVNhbWVZZWFyU2hvcnRGb3JtYXQsXG4gIGZyZW5jaERhdGVXaXRob3V0RGF5T2ZXZWVrRnJvbURhdGVPclN0cmluZyxcbiAgZnJlbmNoVGltZUZvcm1hdCxcbiAgZnJlbmNoVGltZUZyb21EYXRlT3JTdHJpbmcsXG4gIGxvY2FsSXNvODYwMVN0cmluZ0Zyb21EYXRlLFxuICBwYXRjaGVkRGF0ZVRvSnNvbixcbn0gZnJvbSBcIi4vZGF0ZXNcIlxuZXhwb3J0IHR5cGUgeyBTdGF0dXMgfSBmcm9tIFwiLi9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5leHBvcnQge1xuICBzdGF0ZUZyb21BY3RlUGF0aCxcbiAgc3RhdGVGcm9tQWN0ZXMsXG4gIHN0YXRlRnJvbURvc3NpZXIsXG4gIHN0YXR1c0Zyb21Db2RpZXJMaWJlbGxlLFxuICBTdGF0dXNPbmx5LFxufSBmcm9tIFwiLi9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5leHBvcnQgdHlwZSB7IE91dHB1dERhdGEgfSBmcm9tIFwiLi9pbnNlcnRlcnNcIlxuZXhwb3J0IHtcbiAgaW5zZXJ0QWN0ZXVyUmVmZXJlbmNlcyxcbiAgaW5zZXJ0QW1lbmRlbWVudFJlZmVyZW5jZXMsXG4gIGluc2VydERvY3VtZW50UmVmZXJlbmNlcyxcbiAgaW5zZXJ0RG9zc2llclJlZmVyZW5jZXMsXG4gIGluc2VydE9yZ2FuZVJlZmVyZW5jZXMsXG4gIGluc2VydFJldW5pb25SZWZlcmVuY2VzLFxuICBpbnNlcnRTY3J1dGluUmVmZXJlbmNlcyxcbn0gZnJvbSBcIi4vaW5zZXJ0ZXJzXCJcbmV4cG9ydCB7IHNob3J0TmFtZUZyb21PcmdhbmUgfSBmcm9tIFwiLi9vcmdhbmVzXCJcbmV4cG9ydCB7IENvZGVBY3RlIH0gZnJvbSBcIi4vc2hhcmVkX3R5cGVzL2NvZGVzX2FjdGVzXCJcbmV4cG9ydCB7IGNhcGl0YWxpemVGaXJzdExldHRlciwgdW5jYXBpdGFsaXplRmlyc3RMZXR0ZXIgfSBmcm9tIFwiLi9zdHJpbmdzXCJcbmV4cG9ydCB0eXBlIHtcbiAgQWN0ZXVyLFxuICBFdGF0Q2l2aWwsXG4gIE1hbmRhdCxcbiAgT3JnYW5lLFxuICBQaG90byxcbn0gZnJvbSBcIi4vdHlwZXMvYWN0ZXVyc19ldF9vcmdhbmVzXCJcbmV4cG9ydCB7XG4gIENvZGVUeXBlT3JnYW5lLFxuICBUeXBlTWFuZGF0LFxuICBUeXBlT3JnYW5lLFxufSBmcm9tIFwiLi90eXBlcy9hY3RldXJzX2V0X29yZ2FuZXNcIlxuZXhwb3J0IHR5cGUgeyBSZXVuaW9uIH0gZnJvbSBcIi4vdHlwZXMvYWdlbmRhc1wiXG5leHBvcnQgeyBFdGF0Q3ljbGVEZVZpZSwgVHlwZVJldW5pb24gfSBmcm9tIFwiLi90eXBlcy9hZ2VuZGFzXCJcbmV4cG9ydCB0eXBlIHtcbiAgQW1lbmRlbWVudCxcbiAgRXRhdEFtZW5kZW1lbnQsXG4gIFNpZ25hdGFpcmVzLFxufSBmcm9tIFwiLi90eXBlcy9hbWVuZGVtZW50c1wiXG5leHBvcnQge1xuICBBdmFudEFBcHJlcyxcbiAgQ29udmVydCBhcyBBbWVuZGVtZW50c0NvbnZlcnQsXG4gIEV0YXRBbWVuZGVtZW50TGliZWxsZSxcbiAgU29ydEFtZW5kZW1lbnQsXG59IGZyb20gXCIuL3R5cGVzL2FtZW5kZW1lbnRzXCJcbmV4cG9ydCB0eXBlIHtcbiAgQWN0ZUxlZ2lzbGF0aWYsXG4gIERpdmlzaW9uLFxuICBEb2N1bWVudCxcbiAgRG9zc2llclBhcmxlbWVudGFpcmUsXG4gIEluZm9Kbyxcbn0gZnJvbSBcIi4vdHlwZXMvZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuZXhwb3J0IHsgVHlwZUFjdGVMZWdpc2xhdGlmLCBUeXBlRG9jdW1lbnQgfSBmcm9tIFwiLi90eXBlcy9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5leHBvcnQgeyBMZWdpc2xhdHVyZSB9IGZyb20gXCIuL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5leHBvcnQgdHlwZSB7IFNjcnV0aW4gfSBmcm9tIFwiLi90eXBlcy9zY3J1dGluc1wiXG5leHBvcnQgeyBEb2N1bWVudFVybEZvcm1hdCwgdXJsRnJvbURvY3VtZW50LCB1cmxGcm9tU2NydXRpbiB9IGZyb20gXCIuL3VybHNcIlxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRQTtBQUNBO0FBZUE7QUFRQTtBQVNBO0FBQ0E7QUFDQTtBQVFBO0FBTUE7QUFNQTtBQWFBO0FBQ0E7QUFFQSJ9
302
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXBpIiwicmVxdWlyZSIsIl9kYXRlcyIsIl9kb3NzaWVyc19sZWdpc2xhdGlmcyIsIl9pbnNlcnRlcnMiLCJfb3JnYW5lcyIsIl9jb2Rlc19hY3RlcyIsIl9zdHJpbmdzIiwiX2FjdGV1cnNfZXRfb3JnYW5lcyIsIl9hZ2VuZGFzIiwiX2FtZW5kZW1lbnRzIiwiX2Rvc3NpZXJzX2xlZ2lzbGF0aWZzMiIsIl9sZWdpc2xhdHVyZXMiLCJfdXJscyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOb3RlOiBUaGlzIG1vZHVsZSBjYW4gb25seSBleHBvcnQgY2xlYW4gZGF0YSBhbmQgaGVscGVycyB0byBtYW5pcHVsYXRlIGl0LlxuLy8gTm90ZTogVGhpcyBtb2R1bGUgY2FuIG5vdCBjb250YWluIE5vZGVKUyBzcGVjaWZpYyBjb2RlIChsaWtlIGBhc3NlcnRgKS5cblxuZXhwb3J0IHR5cGUge1xuICBTZWFyY2hRdWVyeSxcbiAgVmFsaWRTZWFyY2hRdWVyeSxcbiAgVmFsaWRTZWFyY2hRdWVyeVNoYXJlZFN1YnNldCxcbn0gZnJvbSBcIi4vYXBpXCJcbmV4cG9ydCB7IGFsbEZhY2V0cywgYWxsRm9sbG93cywgRmFjZXQsIEZvbGxvdyB9IGZyb20gXCIuL2FwaVwiXG5leHBvcnQge1xuICBkYXRlRnJvbU51bGxhYmxlRGF0ZU9ySXNvU3RyaW5nLFxuICBkYXRlRnJvbVllYXJNb250aERheVRpbWV6b25lU3RyaW5nLFxuICBkaXNwbGF5RGF0ZUZyb21Mb2NhbElzb1N0cmluZyxcbiAgZXhpc3RpbmdEYXRlVG9Kc29uLFxuICBmb3JtYXRSZWxhdGl2ZUZyZW5jaFRpbWUsXG4gIGZyZW5jaERhdGVGb3JtYXQsXG4gIGZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0LFxuICBmcmVuY2hEYXRlV2l0aG91dERheU9mV2Vla0Zyb21EYXRlT3JTdHJpbmcsXG4gIGZyZW5jaFRpbWVGb3JtYXQsXG4gIGZyZW5jaFRpbWVGcm9tRGF0ZU9yU3RyaW5nLFxuICBsb2NhbElzbzg2MDFTdHJpbmdGcm9tRGF0ZSxcbiAgcGF0Y2hlZERhdGVUb0pzb24sXG59IGZyb20gXCIuL2RhdGVzXCJcbmV4cG9ydCB0eXBlIHsgU3RhdHVzIH0gZnJvbSBcIi4vZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuZXhwb3J0IHtcbiAgc3RhdGVGcm9tQWN0ZVBhdGgsXG4gIHN0YXRlRnJvbUFjdGVzLFxuICBzdGF0ZUZyb21Eb3NzaWVyLFxuICBzdGF0dXNGcm9tQ29kaWVyTGliZWxsZSxcbiAgU3RhdHVzT25seSxcbn0gZnJvbSBcIi4vZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuZXhwb3J0IHR5cGUgeyBPdXRwdXREYXRhIH0gZnJvbSBcIi4vaW5zZXJ0ZXJzXCJcbmV4cG9ydCB7XG4gIGluc2VydEFjdGV1clJlZmVyZW5jZXMsXG4gIGluc2VydEFtZW5kZW1lbnRSZWZlcmVuY2VzLFxuICBpbnNlcnREb2N1bWVudFJlZmVyZW5jZXMsXG4gIGluc2VydERvc3NpZXJSZWZlcmVuY2VzLFxuICBpbnNlcnRPcmdhbmVSZWZlcmVuY2VzLFxuICBpbnNlcnRSZXVuaW9uUmVmZXJlbmNlcyxcbiAgaW5zZXJ0U2NydXRpblJlZmVyZW5jZXMsXG59IGZyb20gXCIuL2luc2VydGVyc1wiXG5leHBvcnQgeyBzaG9ydE5hbWVGcm9tT3JnYW5lIH0gZnJvbSBcIi4vb3JnYW5lc1wiXG5leHBvcnQgeyBDb2RlQWN0ZSB9IGZyb20gXCIuL3NoYXJlZF90eXBlcy9jb2Rlc19hY3Rlc1wiXG5leHBvcnQgeyBjYXBpdGFsaXplRmlyc3RMZXR0ZXIsIHVuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyIH0gZnJvbSBcIi4vc3RyaW5nc1wiXG5leHBvcnQgdHlwZSB7XG4gIEFjdGV1cixcbiAgRXRhdENpdmlsLFxuICBNYW5kYXQsXG4gIE9yZ2FuZSxcbiAgUGhvdG8sXG59IGZyb20gXCIuL3R5cGVzL2FjdGV1cnNfZXRfb3JnYW5lc1wiXG5leHBvcnQge1xuICBDb2RlVHlwZU9yZ2FuZSxcbiAgVHlwZU1hbmRhdCxcbiAgVHlwZU9yZ2FuZSxcbn0gZnJvbSBcIi4vdHlwZXMvYWN0ZXVyc19ldF9vcmdhbmVzXCJcbmV4cG9ydCB0eXBlIHsgUmV1bmlvbiB9IGZyb20gXCIuL3R5cGVzL2FnZW5kYXNcIlxuZXhwb3J0IHsgRXRhdEN5Y2xlRGVWaWUsIFR5cGVSZXVuaW9uIH0gZnJvbSBcIi4vdHlwZXMvYWdlbmRhc1wiXG5leHBvcnQgdHlwZSB7XG4gIEFtZW5kZW1lbnQsXG4gIEV0YXRBbWVuZGVtZW50LFxuICBTaWduYXRhaXJlcyxcbn0gZnJvbSBcIi4vdHlwZXMvYW1lbmRlbWVudHNcIlxuZXhwb3J0IHtcbiAgQXZhbnRBQXByZXMsXG4gIENvbnZlcnQgYXMgQW1lbmRlbWVudHNDb252ZXJ0LFxuICBFdGF0QW1lbmRlbWVudExpYmVsbGUsXG4gIFNvcnRBbWVuZGVtZW50LFxufSBmcm9tIFwiLi90eXBlcy9hbWVuZGVtZW50c1wiXG5leHBvcnQgdHlwZSB7XG4gIEFjdGVMZWdpc2xhdGlmLFxuICBEaXZpc2lvbixcbiAgRG9jdW1lbnQsXG4gIERvc3NpZXJQYXJsZW1lbnRhaXJlLFxuICBJbmZvSm8sXG59IGZyb20gXCIuL3R5cGVzL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzXCJcbmV4cG9ydCB7IFR5cGVBY3RlTGVnaXNsYXRpZiwgVHlwZURvY3VtZW50IH0gZnJvbSBcIi4vdHlwZXMvZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuZXhwb3J0IHsgTGVnaXNsYXR1cmUgfSBmcm9tIFwiLi90eXBlcy9sZWdpc2xhdHVyZXNcIlxuZXhwb3J0IHR5cGUgeyBTY3J1dGluIH0gZnJvbSBcIi4vdHlwZXMvc2NydXRpbnNcIlxuZXhwb3J0IHsgRG9jdW1lbnRVcmxGb3JtYXQsIHVybEZyb21Eb2N1bWVudCwgdXJsRnJvbVNjcnV0aW4gfSBmcm9tIFwiLi91cmxzXCJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUUEsSUFBQUEsSUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBZUEsSUFBQUUscUJBQUEsR0FBQUYsT0FBQTtBQVFBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQVNBLElBQUFJLFFBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFlBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQU4sT0FBQTtBQVFBLElBQUFPLG1CQUFBLEdBQUFQLE9BQUE7QUFNQSxJQUFBUSxRQUFBLEdBQUFSLE9BQUE7QUFNQSxJQUFBUyxZQUFBLEdBQUFULE9BQUE7QUFhQSxJQUFBVSxzQkFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsYUFBQSxHQUFBWCxPQUFBO0FBRUEsSUFBQVksS0FBQSxHQUFBWixPQUFBIn0=
package/lib/inserters.js CHANGED
@@ -511,4 +511,4 @@ function insertScrutinReferences(scrutin, _data, visitedUids) {
511
511
 
512
512
  return scrutin;
513
513
  }
514
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbnNlcnRBY3RlTGVnaXNsYXRpZlJlZmVyZW5jZXMiLCJhY3RlIiwiZGF0YSIsInZpc2l0ZWRVaWRzIiwiaGFzIiwidWlkIiwiYWRkIiwiZG9jdW1lbnRCeVVpZCIsInVuZGVmaW5lZCIsImRlcG90SW5pdGlhbExlY3R1cmVEZWZpbml0aXZlUmVmIiwiZG9jdW1lbnQiLCJkZXBvdEluaXRpYWxMZWN0dXJlRGVmaW5pdGl2ZSIsImluc2VydERvY3VtZW50UmVmZXJlbmNlcyIsIm9yZ2FuZUJ5VWlkIiwib3JnYW5lUmVmIiwib3JnYW5lIiwiaW5zZXJ0T3JnYW5lUmVmZXJlbmNlcyIsInByb3ZlbmFuY2VSZWYiLCJwcm92ZW5hbmNlIiwiYWN0ZXVyQnlVaWQiLCJyYXBwb3J0ZXVycyIsInJhcHBvcnRldXIiLCJhY3RldXIiLCJhY3RldXJSZWYiLCJpbnNlcnRBY3RldXJSZWZlcmVuY2VzIiwicmV1bmlvbkJ5VWlkIiwicmV1bmlvblJlZiIsInJldW5pb24iLCJpbnNlcnRSZXVuaW9uUmVmZXJlbmNlcyIsIm9kalJlZiIsIm9kaiIsInBvaW50c09kaiIsInBvaW50T2RqIiwidGV4dGVBZG9wdGVSZWYiLCJ0ZXh0ZUFkb3B0ZSIsInRleHRlQXNzb2NpZVJlZiIsInRleHRlQXNzb2NpZSIsInRleHRlc0Fzc29jaWVzIiwic2NydXRpbkJ5VWlkIiwidm90ZVJlZnMiLCJzY3J1dGlucyIsInZvdGVSZWYiLCJzY3J1dGluIiwicHVzaCIsImluc2VydFNjcnV0aW5SZWZlcmVuY2VzIiwidm90ZXMiLCJhY3Rlc0xlZ2lzbGF0aWZzIiwiY2hpbGRBY3RlIiwibWFuZGF0cyIsIm1hbmRhdCIsIm9yZ2FuZXMiLCJvcmdhbmVzUmVmcyIsImluc2VydEFtZW5kZW1lbnRSZWZlcmVuY2VzIiwiYW1lbmRlbWVudCIsInNpZ25hdGFpcmVzIiwiYXV0ZXVyIiwiYXV0ZXVyUmFwcG9ydGV1ck9yZ2FuZVJlZiIsImF1dGV1clJhcHBvcnRldXJPcmdhbmUiLCJnb3V2ZXJuZW1lbnRSZWYiLCJnb3V2ZXJuZW1lbnQiLCJncm91cGVQb2xpdGlxdWVSZWYiLCJncm91cGVQb2xpdGlxdWUiLCJjb3NpZ25hdGFpcmVzUmVmcyIsImNvc2lnbmF0YWlyZXMiLCJjb3NpZ25hdGFpcmVSZWYiLCJjb3NpZ25hdGFpcmUiLCJpbnNlcnREaXZpc2lvblJlZmVyZW5jZXMiLCJkaXZpc2lvbiIsImF1dGV1cnMiLCJhY3RldXJTdW1tYXJ5IiwiZG9zc2llckJ5VWlkIiwiZG9zc2llciIsImRvc3NpZXJSZWYiLCJpbnNlcnREb3NzaWVyUmVmZXJlbmNlcyIsImRpdmlzaW9ucyIsImNoaWxkRGl2aXNpb24iLCJpbml0aWF0ZXVyIiwiYWN0ZXVycyIsIm1hbmRhdFJlZiIsIm9yZ2FuZVBhcmVudFJlZiIsIm9yZ2FuZVBhcmVudCIsImRlbWFuZGV1cnMiLCJvcmdhbmVTdW1tYXJ5Iiwib3JnYW5lUmV1bmlSZWYiLCJvcmdhbmVSZXVuaSIsInBhcnRpY2lwYW50cyIsInBhcnRpY2lwYW50c0ludGVybmVzIiwicGFydGljaXBhbnRJbnRlcm5lIiwiX2RhdGEiXSwic291cmNlcyI6WyIuLi9zcmMvaW5zZXJ0ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGV1ciwgT3JnYW5lIH0gZnJvbSBcIi4vdHlwZXMvYWN0ZXVyc19ldF9vcmdhbmVzXCJcbmltcG9ydCB7IFJldW5pb24gfSBmcm9tIFwiLi90eXBlcy9hZ2VuZGFzXCJcbmltcG9ydCB7IEFtZW5kZW1lbnQgfSBmcm9tIFwiLi90eXBlcy9hbWVuZGVtZW50c1wiXG5pbXBvcnQge1xuICBBY3RlTGVnaXNsYXRpZixcbiAgRGl2aXNpb24sXG4gIERvY3VtZW50LFxuICBEb3NzaWVyUGFybGVtZW50YWlyZSxcbn0gZnJvbSBcIi4vdHlwZXMvZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0IHsgU2NydXRpbiB9IGZyb20gXCIuL3R5cGVzL3NjcnV0aW5zXCJcblxuZXhwb3J0IGludGVyZmFjZSBPdXRwdXREYXRhIHtcbiAgcmVhZG9ubHkgYWN0ZXVyQnlVaWQ/OiB7IFt1aWQ6IHN0cmluZ106IEFjdGV1ciB9XG4gIHJlYWRvbmx5IGFtZW5kZW1lbnRCeVVpZD86IHsgW3VpZDogc3RyaW5nXTogQW1lbmRlbWVudCB9XG4gIHJlYWRvbmx5IGRvY3VtZW50QnlVaWQ/OiB7IFt1aWQ6IHN0cmluZ106IERvY3VtZW50IH1cbiAgcmVhZG9ubHkgZG9zc2llckJ5VWlkPzogeyBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZSB9XG4gIHJlYWRvbmx5IG9yZ2FuZUJ5VWlkPzogeyBbdWlkOiBzdHJpbmddOiBPcmdhbmUgfVxuICByZWFkb25seSByZXVuaW9uQnlVaWQ/OiB7IFt1aWQ6IHN0cmluZ106IFJldW5pb24gfVxuICByZWFkb25seSBzY3J1dGluQnlVaWQ/OiB7IFt1aWQ6IHN0cmluZ106IFNjcnV0aW4gfVxufVxuXG5mdW5jdGlvbiBpbnNlcnRBY3RlTGVnaXNsYXRpZlJlZmVyZW5jZXMoXG4gIGFjdGU6IEFjdGVMZWdpc2xhdGlmLFxuICBkYXRhOiBPdXRwdXREYXRhLFxuICB2aXNpdGVkVWlkczogU2V0PHN0cmluZz4sXG4pIHtcbiAgaWYgKCF2aXNpdGVkVWlkcy5oYXMoYWN0ZS51aWQpKSB7XG4gICAgdmlzaXRlZFVpZHMuYWRkKGFjdGUudWlkKVxuXG4gICAgaWYgKFxuICAgICAgZGF0YS5kb2N1bWVudEJ5VWlkICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIGFjdGUuZGVwb3RJbml0aWFsTGVjdHVyZURlZmluaXRpdmVSZWYgIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgY29uc3QgZG9jdW1lbnQgPSBkYXRhLmRvY3VtZW50QnlVaWRbYWN0ZS5kZXBvdEluaXRpYWxMZWN0dXJlRGVmaW5pdGl2ZVJlZl1cbiAgICAgIGlmIChkb2N1bWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGFjdGUuZGVwb3RJbml0aWFsTGVjdHVyZURlZmluaXRpdmUgPSBkb2N1bWVudFxuICAgICAgICBpbnNlcnREb2N1bWVudFJlZmVyZW5jZXMoZG9jdW1lbnQsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGF0YS5vcmdhbmVCeVVpZCAhPT0gdW5kZWZpbmVkICYmIGFjdGUub3JnYW5lUmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG9yZ2FuZSA9IGRhdGEub3JnYW5lQnlVaWRbYWN0ZS5vcmdhbmVSZWZdXG4gICAgICBpZiAob3JnYW5lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYWN0ZS5vcmdhbmUgPSBvcmdhbmVcbiAgICAgICAgaW5zZXJ0T3JnYW5lUmVmZXJlbmNlcyhvcmdhbmUsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGF0YS5vcmdhbmVCeVVpZCAhPT0gdW5kZWZpbmVkICYmIGFjdGUucHJvdmVuYW5jZVJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBvcmdhbmUgPSBkYXRhLm9yZ2FuZUJ5VWlkW2FjdGUucHJvdmVuYW5jZVJlZl1cbiAgICAgIGlmIChvcmdhbmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhY3RlLnByb3ZlbmFuY2UgPSBvcmdhbmVcbiAgICAgICAgaW5zZXJ0T3JnYW5lUmVmZXJlbmNlcyhvcmdhbmUsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGF0YS5hY3RldXJCeVVpZCAhPT0gdW5kZWZpbmVkICYmIGFjdGUucmFwcG9ydGV1cnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZm9yIChjb25zdCByYXBwb3J0ZXVyIG9mIGFjdGUucmFwcG9ydGV1cnMpIHtcbiAgICAgICAgY29uc3QgYWN0ZXVyID0gZGF0YS5hY3RldXJCeVVpZFtyYXBwb3J0ZXVyLmFjdGV1clJlZl1cbiAgICAgICAgaWYgKGFjdGV1ciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmFwcG9ydGV1ci5hY3RldXIgPSBhY3RldXJcbiAgICAgICAgICBpbnNlcnRBY3RldXJSZWZlcmVuY2VzKGFjdGV1ciwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEucmV1bmlvbkJ5VWlkICE9PSB1bmRlZmluZWQgJiYgYWN0ZS5yZXVuaW9uUmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHJldW5pb24gPSBkYXRhLnJldW5pb25CeVVpZFthY3RlLnJldW5pb25SZWZdXG4gICAgICBpZiAocmV1bmlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGFjdGUucmV1bmlvbiA9IHJldW5pb25cbiAgICAgICAgaW5zZXJ0UmV1bmlvblJlZmVyZW5jZXMocmV1bmlvbiwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICAgIGlmIChhY3RlLm9kalJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29uc3Qgb2RqID0gcmV1bmlvbi5vZGpcbiAgICAgICAgICBpZiAob2RqICE9PSB1bmRlZmluZWQgJiYgb2RqLnBvaW50c09kaiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHBvaW50T2RqIG9mIG9kai5wb2ludHNPZGopIHtcbiAgICAgICAgICAgICAgaWYgKHBvaW50T2RqLnVpZCA9PT0gYWN0ZS5vZGpSZWYpIHtcbiAgICAgICAgICAgICAgICBhY3RlLm9kaiA9IHBvaW50T2RqXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGF0YS5kb2N1bWVudEJ5VWlkICE9PSB1bmRlZmluZWQgJiYgYWN0ZS50ZXh0ZUFkb3B0ZVJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBkb2N1bWVudCA9IGRhdGEuZG9jdW1lbnRCeVVpZFthY3RlLnRleHRlQWRvcHRlUmVmXVxuICAgICAgaWYgKGRvY3VtZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYWN0ZS50ZXh0ZUFkb3B0ZSA9IGRvY3VtZW50XG4gICAgICAgIGluc2VydERvY3VtZW50UmVmZXJlbmNlcyhkb2N1bWVudCwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGRhdGEuZG9jdW1lbnRCeVVpZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBhY3RlLnRleHRlQXNzb2NpZVJlZiAhPT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICBjb25zdCBkb2N1bWVudCA9IGRhdGEuZG9jdW1lbnRCeVVpZFthY3RlLnRleHRlQXNzb2NpZVJlZl1cbiAgICAgIGlmIChkb2N1bWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGFjdGUudGV4dGVBc3NvY2llID0gZG9jdW1lbnRcbiAgICAgICAgaW5zZXJ0RG9jdW1lbnRSZWZlcmVuY2VzKGRvY3VtZW50LCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEuZG9jdW1lbnRCeVVpZCAhPT0gdW5kZWZpbmVkICYmIGFjdGUudGV4dGVzQXNzb2NpZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZm9yIChjb25zdCB0ZXh0ZUFzc29jaWUgb2YgYWN0ZS50ZXh0ZXNBc3NvY2llcykge1xuICAgICAgICBjb25zdCBkb2N1bWVudCA9IGRhdGEuZG9jdW1lbnRCeVVpZFt0ZXh0ZUFzc29jaWUudGV4dGVBc3NvY2llUmVmXVxuICAgICAgICBpZiAoZG9jdW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRleHRlQXNzb2NpZS50ZXh0ZUFzc29jaWUgPSBkb2N1bWVudFxuICAgICAgICAgIGluc2VydERvY3VtZW50UmVmZXJlbmNlcyhkb2N1bWVudCwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEuc2NydXRpbkJ5VWlkICE9PSB1bmRlZmluZWQgJiYgYWN0ZS52b3RlUmVmcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBzY3J1dGlucyA9IFtdXG4gICAgICBmb3IgKGNvbnN0IHZvdGVSZWYgb2YgYWN0ZS52b3RlUmVmcykge1xuICAgICAgICBjb25zdCBzY3J1dGluID0gZGF0YS5zY3J1dGluQnlVaWRbdm90ZVJlZl1cbiAgICAgICAgaWYgKHNjcnV0aW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHNjcnV0aW5zLnB1c2goc2NydXRpbilcbiAgICAgICAgICBpbnNlcnRTY3J1dGluUmVmZXJlbmNlcyhzY3J1dGluLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYWN0ZS52b3RlcyA9IHNjcnV0aW5zXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjaGlsZEFjdGUgb2YgYWN0ZS5hY3Rlc0xlZ2lzbGF0aWZzIHx8IFtdKSB7XG4gICAgICBpbnNlcnRBY3RlTGVnaXNsYXRpZlJlZmVyZW5jZXMoY2hpbGRBY3RlLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYWN0ZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0QWN0ZXVyUmVmZXJlbmNlcyhcbiAgYWN0ZXVyOiBBY3RldXIsXG4gIGRhdGE6IE91dHB1dERhdGEsXG4gIHZpc2l0ZWRVaWRzOiBTZXQ8c3RyaW5nPixcbikge1xuICBpZiAoIXZpc2l0ZWRVaWRzLmhhcyhhY3RldXIudWlkKSkge1xuICAgIHZpc2l0ZWRVaWRzLmFkZChhY3RldXIudWlkKVxuXG4gICAgaWYgKGRhdGEub3JnYW5lQnlVaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZm9yIChjb25zdCBtYW5kYXQgb2YgYWN0ZXVyLm1hbmRhdHMgfHwgW10pIHtcbiAgICAgICAgY29uc3Qgb3JnYW5lcyA9IFtdXG4gICAgICAgIGZvciAoY29uc3Qgb3JnYW5lUmVmIG9mIG1hbmRhdC5vcmdhbmVzUmVmcykge1xuICAgICAgICAgIGNvbnN0IG9yZ2FuZSA9IGRhdGEub3JnYW5lQnlVaWRbb3JnYW5lUmVmXVxuICAgICAgICAgIGlmIChvcmdhbmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgb3JnYW5lcy5wdXNoKG9yZ2FuZSlcbiAgICAgICAgICAgIGluc2VydE9yZ2FuZVJlZmVyZW5jZXMob3JnYW5lLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbWFuZGF0Lm9yZ2FuZXMgPSBvcmdhbmVzXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGFjdGV1clxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0QW1lbmRlbWVudFJlZmVyZW5jZXMoXG4gIGFtZW5kZW1lbnQ6IEFtZW5kZW1lbnQsXG4gIGRhdGE6IE91dHB1dERhdGEsXG4gIHZpc2l0ZWRVaWRzOiBTZXQ8c3RyaW5nPixcbikge1xuICBpZiAoIXZpc2l0ZWRVaWRzLmhhcyhhbWVuZGVtZW50LnVpZCkpIHtcbiAgICB2aXNpdGVkVWlkcy5hZGQoYW1lbmRlbWVudC51aWQpXG5cbiAgICBjb25zdCBzaWduYXRhaXJlcyA9IGFtZW5kZW1lbnQuc2lnbmF0YWlyZXNcbiAgICBjb25zdCBhdXRldXIgPSBzaWduYXRhaXJlcy5hdXRldXJcbiAgICBpZiAoZGF0YS5hY3RldXJCeVVpZCAhPT0gdW5kZWZpbmVkICYmIGF1dGV1ci5hY3RldXJSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgYWN0ZXVyID0gZGF0YS5hY3RldXJCeVVpZFthdXRldXIuYWN0ZXVyUmVmXVxuICAgICAgaWYgKGFjdGV1ciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGF1dGV1ci5hY3RldXIgPSBhY3RldXJcbiAgICAgICAgaW5zZXJ0QWN0ZXVyUmVmZXJlbmNlcyhhY3RldXIsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBkYXRhLm9yZ2FuZUJ5VWlkICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIGF1dGV1ci5hdXRldXJSYXBwb3J0ZXVyT3JnYW5lUmVmICE9PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIGNvbnN0IGF1dGV1clJhcHBvcnRldXJPcmdhbmUgPVxuICAgICAgICBkYXRhLm9yZ2FuZUJ5VWlkW2F1dGV1ci5hdXRldXJSYXBwb3J0ZXVyT3JnYW5lUmVmXVxuICAgICAgaWYgKGF1dGV1clJhcHBvcnRldXJPcmdhbmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhdXRldXIuYXV0ZXVyUmFwcG9ydGV1ck9yZ2FuZSA9IGF1dGV1clJhcHBvcnRldXJPcmdhbmVcbiAgICAgICAgaW5zZXJ0T3JnYW5lUmVmZXJlbmNlcyhhdXRldXJSYXBwb3J0ZXVyT3JnYW5lLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKFxuICAgICAgZGF0YS5vcmdhbmVCeVVpZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBhdXRldXIuZ291dmVybmVtZW50UmVmICE9PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIGNvbnN0IGdvdXZlcm5lbWVudCA9IGRhdGEub3JnYW5lQnlVaWRbYXV0ZXVyLmdvdXZlcm5lbWVudFJlZl1cbiAgICAgIGlmIChnb3V2ZXJuZW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhdXRldXIuZ291dmVybmVtZW50ID0gZ291dmVybmVtZW50XG4gICAgICAgIGluc2VydE9yZ2FuZVJlZmVyZW5jZXMoZ291dmVybmVtZW50LCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKFxuICAgICAgZGF0YS5vcmdhbmVCeVVpZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBhdXRldXIuZ3JvdXBlUG9saXRpcXVlUmVmICE9PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIGNvbnN0IG9yZ2FuZSA9IGRhdGEub3JnYW5lQnlVaWRbYXV0ZXVyLmdyb3VwZVBvbGl0aXF1ZVJlZl1cbiAgICAgIGlmIChvcmdhbmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhdXRldXIuZ3JvdXBlUG9saXRpcXVlID0gb3JnYW5lXG4gICAgICAgIGluc2VydE9yZ2FuZVJlZmVyZW5jZXMob3JnYW5lLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEuYWN0ZXVyQnlVaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgY29zaWduYXRhaXJlc1JlZnMgPSBzaWduYXRhaXJlcy5jb3NpZ25hdGFpcmVzUmVmc1xuICAgICAgaWYgKGNvc2lnbmF0YWlyZXNSZWZzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgY29zaWduYXRhaXJlcyA9IFtdXG4gICAgICAgIGZvciAoY29uc3QgY29zaWduYXRhaXJlUmVmIG9mIHNpZ25hdGFpcmVzLmNvc2lnbmF0YWlyZXNSZWZzIHx8IFtdKSB7XG4gICAgICAgICAgY29uc3QgY29zaWduYXRhaXJlID0gZGF0YS5hY3RldXJCeVVpZFtjb3NpZ25hdGFpcmVSZWZdXG4gICAgICAgICAgaWYgKGNvc2lnbmF0YWlyZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb3NpZ25hdGFpcmVzLnB1c2goY29zaWduYXRhaXJlKVxuICAgICAgICAgICAgaW5zZXJ0QWN0ZXVyUmVmZXJlbmNlcyhjb3NpZ25hdGFpcmUsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzaWduYXRhaXJlcy5jb3NpZ25hdGFpcmVzID0gY29zaWduYXRhaXJlc1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhbWVuZGVtZW50XG59XG5cbmZ1bmN0aW9uIGluc2VydERpdmlzaW9uUmVmZXJlbmNlcyhcbiAgZGl2aXNpb246IERpdmlzaW9uLFxuICBkYXRhOiBPdXRwdXREYXRhLFxuICB2aXNpdGVkVWlkczogU2V0PHN0cmluZz4sXG4pIHtcbiAgZm9yIChjb25zdCBhdXRldXIgb2YgZGl2aXNpb24uYXV0ZXVycykge1xuICAgIGNvbnN0IGFjdGV1clN1bW1hcnkgPSBhdXRldXIuYWN0ZXVyXG4gICAgaWYgKGRhdGEuYWN0ZXVyQnlVaWQgIT09IHVuZGVmaW5lZCAmJiBhY3RldXJTdW1tYXJ5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGFjdGV1ciA9IGRhdGEuYWN0ZXVyQnlVaWRbYWN0ZXVyU3VtbWFyeS5hY3RldXJSZWZdXG4gICAgICBpZiAoYWN0ZXVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYWN0ZXVyU3VtbWFyeS5hY3RldXIgPSBhY3RldXJcbiAgICAgICAgaW5zZXJ0QWN0ZXVyUmVmZXJlbmNlcyhhY3RldXIsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkYXRhLm9yZ2FuZUJ5VWlkICE9PSB1bmRlZmluZWQgJiYgYXV0ZXVyLm9yZ2FuZVJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBvcmdhbmUgPSBkYXRhLm9yZ2FuZUJ5VWlkW2F1dGV1ci5vcmdhbmVSZWZdXG4gICAgICBpZiAob3JnYW5lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYXV0ZXVyLm9yZ2FuZSA9IG9yZ2FuZVxuICAgICAgICBpbnNlcnRPcmdhbmVSZWZlcmVuY2VzKG9yZ2FuZSwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGRhdGEuZG9zc2llckJ5VWlkICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBkb3NzaWVyID0gZGF0YS5kb3NzaWVyQnlVaWRbZGl2aXNpb24uZG9zc2llclJlZl1cbiAgICBpZiAoZG9zc2llciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkaXZpc2lvbi5kb3NzaWVyID0gZG9zc2llclxuICAgICAgaW5zZXJ0RG9zc2llclJlZmVyZW5jZXMoZG9zc2llciwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBjaGlsZERpdmlzaW9uIG9mIGRpdmlzaW9uLmRpdmlzaW9ucyB8fCBbXSkge1xuICAgIGluc2VydERpdmlzaW9uUmVmZXJlbmNlcyhjaGlsZERpdmlzaW9uLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgfVxuXG4gIHJldHVybiBkaXZpc2lvblxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0RG9jdW1lbnRSZWZlcmVuY2VzKFxuICBkb2N1bWVudDogRG9jdW1lbnQsXG4gIGRhdGE6IE91dHB1dERhdGEsXG4gIHZpc2l0ZWRVaWRzOiBTZXQ8c3RyaW5nPixcbikge1xuICBpZiAoIXZpc2l0ZWRVaWRzLmhhcyhkb2N1bWVudC51aWQpKSB7XG4gICAgdmlzaXRlZFVpZHMuYWRkKGRvY3VtZW50LnVpZClcblxuICAgIGZvciAoY29uc3QgYXV0ZXVyIG9mIGRvY3VtZW50LmF1dGV1cnMpIHtcbiAgICAgIGNvbnN0IGFjdGV1clN1bW1hcnkgPSBhdXRldXIuYWN0ZXVyXG4gICAgICBpZiAoZGF0YS5hY3RldXJCeVVpZCAhPT0gdW5kZWZpbmVkICYmIGFjdGV1clN1bW1hcnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBhY3RldXIgPSBkYXRhLmFjdGV1ckJ5VWlkW2FjdGV1clN1bW1hcnkuYWN0ZXVyUmVmXVxuICAgICAgICBpZiAoYWN0ZXVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBhY3RldXJTdW1tYXJ5LmFjdGV1ciA9IGFjdGV1clxuICAgICAgICAgIGluc2VydEFjdGV1clJlZmVyZW5jZXMoYWN0ZXVyLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZGF0YS5vcmdhbmVCeVVpZCAhPT0gdW5kZWZpbmVkICYmIGF1dGV1ci5vcmdhbmVSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBvcmdhbmUgPSBkYXRhLm9yZ2FuZUJ5VWlkW2F1dGV1ci5vcmdhbmVSZWZdXG4gICAgICAgIGlmIChvcmdhbmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGF1dGV1ci5vcmdhbmUgPSBvcmdhbmVcbiAgICAgICAgICBpbnNlcnRPcmdhbmVSZWZlcmVuY2VzKG9yZ2FuZSwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGF0YS5kb3NzaWVyQnlVaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgZG9zc2llciA9IGRhdGEuZG9zc2llckJ5VWlkW2RvY3VtZW50LmRvc3NpZXJSZWZdXG4gICAgICBpZiAoZG9zc2llciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRvY3VtZW50LmRvc3NpZXIgPSBkb3NzaWVyXG4gICAgICAgIGluc2VydERvc3NpZXJSZWZlcmVuY2VzKGRvc3NpZXIsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgZGl2aXNpb24gb2YgZG9jdW1lbnQuZGl2aXNpb25zIHx8IFtdKSB7XG4gICAgICBpbnNlcnREaXZpc2lvblJlZmVyZW5jZXMoZGl2aXNpb24sIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkb2N1bWVudFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0RG9zc2llclJlZmVyZW5jZXMoXG4gIGRvc3NpZXI6IERvc3NpZXJQYXJsZW1lbnRhaXJlLFxuICBkYXRhOiBPdXRwdXREYXRhLFxuICB2aXNpdGVkVWlkczogU2V0PHN0cmluZz4sXG4pIHtcbiAgaWYgKCF2aXNpdGVkVWlkcy5oYXMoZG9zc2llci51aWQpKSB7XG4gICAgdmlzaXRlZFVpZHMuYWRkKGRvc3NpZXIudWlkKVxuXG4gICAgZm9yIChjb25zdCBhY3RlIG9mIGRvc3NpZXIuYWN0ZXNMZWdpc2xhdGlmcyA/PyBbXSkge1xuICAgICAgaW5zZXJ0QWN0ZUxlZ2lzbGF0aWZSZWZlcmVuY2VzKGFjdGUsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgIH1cblxuICAgIGNvbnN0IGluaXRpYXRldXIgPSBkb3NzaWVyLmluaXRpYXRldXJcbiAgICBpZiAoaW5pdGlhdGV1ciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoZGF0YS5hY3RldXJCeVVpZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGZvciAoY29uc3QgYWN0ZXVyU3VtbWFyeSBvZiBpbml0aWF0ZXVyLmFjdGV1cnMgfHwgW10pIHtcbiAgICAgICAgICBjb25zdCBhY3RldXIgPSBkYXRhLmFjdGV1ckJ5VWlkW2FjdGV1clN1bW1hcnkuYWN0ZXVyUmVmXVxuICAgICAgICAgIGlmIChhY3RldXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYWN0ZXVyU3VtbWFyeS5hY3RldXIgPSBhY3RldXJcbiAgICAgICAgICAgIGluc2VydEFjdGV1clJlZmVyZW5jZXMoYWN0ZXVyLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGFjdGV1ciAhPT0gdW5kZWZpbmVkICYmIGFjdGV1clN1bW1hcnkubWFuZGF0UmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgbWFuZGF0IG9mIGFjdGV1ci5tYW5kYXRzIHx8IFtdKSB7XG4gICAgICAgICAgICAgIGlmIChtYW5kYXQudWlkID09PSBhY3RldXJTdW1tYXJ5Lm1hbmRhdFJlZikge1xuICAgICAgICAgICAgICAgIGFjdGV1clN1bW1hcnkubWFuZGF0ID0gbWFuZGF0XG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBkYXRhLm9yZ2FuZUJ5VWlkICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgaW5pdGlhdGV1ci5vcmdhbmVSZWYgIT09IHVuZGVmaW5lZFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IG9yZ2FuZSA9IGRhdGEub3JnYW5lQnlVaWRbaW5pdGlhdGV1ci5vcmdhbmVSZWZdXG4gICAgICAgIGlmIChvcmdhbmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGluaXRpYXRldXIub3JnYW5lID0gb3JnYW5lXG4gICAgICAgICAgaW5zZXJ0T3JnYW5lUmVmZXJlbmNlcyhvcmdhbmUsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRvc3NpZXJcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydE9yZ2FuZVJlZmVyZW5jZXMoXG4gIG9yZ2FuZTogT3JnYW5lLFxuICBkYXRhOiBPdXRwdXREYXRhLFxuICB2aXNpdGVkVWlkczogU2V0PHN0cmluZz4sXG4pIHtcbiAgaWYgKCF2aXNpdGVkVWlkcy5oYXMob3JnYW5lLnVpZCkpIHtcbiAgICB2aXNpdGVkVWlkcy5hZGQob3JnYW5lLnVpZClcblxuICAgIGlmIChcbiAgICAgIGRhdGEub3JnYW5lQnlVaWQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgb3JnYW5lLm9yZ2FuZVBhcmVudFJlZiAhPT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICBjb25zdCBvcmdhbmVQYXJlbnQgPSBkYXRhLm9yZ2FuZUJ5VWlkW29yZ2FuZS5vcmdhbmVQYXJlbnRSZWZdXG4gICAgICBpZiAob3JnYW5lUGFyZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgb3JnYW5lLm9yZ2FuZVBhcmVudCA9IG9yZ2FuZVBhcmVudFxuICAgICAgICBpbnNlcnRPcmdhbmVSZWZlcmVuY2VzKG9yZ2FuZVBhcmVudCwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ET1xuICB9XG5cbiAgcmV0dXJuIG9yZ2FuZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0UmV1bmlvblJlZmVyZW5jZXMoXG4gIHJldW5pb246IFJldW5pb24sXG4gIGRhdGE6IE91dHB1dERhdGEsXG4gIHZpc2l0ZWRVaWRzOiBTZXQ8c3RyaW5nPixcbikge1xuICBpZiAoIXZpc2l0ZWRVaWRzLmhhcyhyZXVuaW9uLnVpZCkpIHtcbiAgICB2aXNpdGVkVWlkcy5hZGQocmV1bmlvbi51aWQpXG5cbiAgICBjb25zdCBkZW1hbmRldXJzID0gcmV1bmlvbi5kZW1hbmRldXJzXG4gICAgaWYgKGRlbWFuZGV1cnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGRhdGEuYWN0ZXVyQnlVaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBmb3IgKGNvbnN0IGFjdGV1clN1bW1hcnkgb2YgZGVtYW5kZXVycy5hY3RldXJzIHx8IFtdKSB7XG4gICAgICAgICAgY29uc3QgYWN0ZXVyID0gZGF0YS5hY3RldXJCeVVpZFthY3RldXJTdW1tYXJ5LmFjdGV1clJlZl1cbiAgICAgICAgICBpZiAoYWN0ZXVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGFjdGV1clN1bW1hcnkuYWN0ZXVyID0gYWN0ZXVyXG4gICAgICAgICAgICBpbnNlcnRBY3RldXJSZWZlcmVuY2VzKGFjdGV1ciwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZGF0YS5vcmdhbmVCeVVpZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IG9yZ2FuZVN1bW1hcnkgPSBkZW1hbmRldXJzLm9yZ2FuZVxuICAgICAgICBpZiAob3JnYW5lU3VtbWFyeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29uc3Qgb3JnYW5lID0gZGF0YS5vcmdhbmVCeVVpZFtvcmdhbmVTdW1tYXJ5Lm9yZ2FuZVJlZl1cbiAgICAgICAgICBpZiAob3JnYW5lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG9yZ2FuZVN1bW1hcnkub3JnYW5lID0gb3JnYW5lXG4gICAgICAgICAgICBpbnNlcnRPcmdhbmVSZWZlcmVuY2VzKG9yZ2FuZSwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGRhdGEub3JnYW5lQnlVaWQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgcmV1bmlvbi5vcmdhbmVSZXVuaVJlZiAhPT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICBjb25zdCBvcmdhbmVSZXVuaSA9IGRhdGEub3JnYW5lQnlVaWRbcmV1bmlvbi5vcmdhbmVSZXVuaVJlZl1cbiAgICAgIGlmIChvcmdhbmVSZXVuaSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldW5pb24ub3JnYW5lUmV1bmkgPSBvcmdhbmVSZXVuaVxuICAgICAgICBpbnNlcnRPcmdhbmVSZWZlcmVuY2VzKG9yZ2FuZVJldW5pLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEuYWN0ZXVyQnlVaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgcGFydGljaXBhbnRzID0gcmV1bmlvbi5wYXJ0aWNpcGFudHNcbiAgICAgIGlmIChwYXJ0aWNpcGFudHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBmb3IgKGNvbnN0IHBhcnRpY2lwYW50SW50ZXJuZSBvZiBwYXJ0aWNpcGFudHMucGFydGljaXBhbnRzSW50ZXJuZXMgfHxcbiAgICAgICAgICBbXSkge1xuICAgICAgICAgIGNvbnN0IGFjdGV1ciA9IGRhdGEuYWN0ZXVyQnlVaWRbcGFydGljaXBhbnRJbnRlcm5lLmFjdGV1clJlZl1cbiAgICAgICAgICBpZiAoYWN0ZXVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHBhcnRpY2lwYW50SW50ZXJuZS5hY3RldXIgPSBhY3RldXJcbiAgICAgICAgICAgIGluc2VydEFjdGV1clJlZmVyZW5jZXMoYWN0ZXVyLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV1bmlvblxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0U2NydXRpblJlZmVyZW5jZXMoXG4gIHNjcnV0aW46IFNjcnV0aW4sXG4gIF9kYXRhOiBPdXRwdXREYXRhLFxuICB2aXNpdGVkVWlkczogU2V0PHN0cmluZz4sXG4pIHtcbiAgaWYgKCF2aXNpdGVkVWlkcy5oYXMoc2NydXRpbi51aWQpKSB7XG4gICAgdmlzaXRlZFVpZHMuYWRkKHNjcnV0aW4udWlkKVxuXG4gICAgLy8gVE9ET1xuICB9XG5cbiAgcmV0dXJuIHNjcnV0aW5cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCQSxTQUFTQSw4QkFBOEIsQ0FDckNDLElBQW9CLEVBQ3BCQyxJQUFnQixFQUNoQkMsV0FBd0IsRUFDeEI7RUFDQSxJQUFJLENBQUNBLFdBQVcsQ0FBQ0MsR0FBRyxDQUFDSCxJQUFJLENBQUNJLEdBQUcsQ0FBQyxFQUFFO0lBQzlCRixXQUFXLENBQUNHLEdBQUcsQ0FBQ0wsSUFBSSxDQUFDSSxHQUFHLENBQUM7SUFFekIsSUFDRUgsSUFBSSxDQUFDSyxhQUFhLEtBQUtDLFNBQVMsSUFDaENQLElBQUksQ0FBQ1EsZ0NBQWdDLEtBQUtELFNBQVMsRUFDbkQ7TUFDQSxJQUFNRSxRQUFRLEdBQUdSLElBQUksQ0FBQ0ssYUFBYSxDQUFDTixJQUFJLENBQUNRLGdDQUFnQyxDQUFDO01BQzFFLElBQUlDLFFBQVEsS0FBS0YsU0FBUyxFQUFFO1FBQzFCUCxJQUFJLENBQUNVLDZCQUE2QixHQUFHRCxRQUFRO1FBQzdDRSx3QkFBd0IsQ0FBQ0YsUUFBUSxFQUFFUixJQUFJLEVBQUVDLFdBQVcsQ0FBQztNQUN2RDtJQUNGO0lBQ0EsSUFBSUQsSUFBSSxDQUFDVyxXQUFXLEtBQUtMLFNBQVMsSUFBSVAsSUFBSSxDQUFDYSxTQUFTLEtBQUtOLFNBQVMsRUFBRTtNQUNsRSxJQUFNTyxNQUFNLEdBQUdiLElBQUksQ0FBQ1csV0FBVyxDQUFDWixJQUFJLENBQUNhLFNBQVMsQ0FBQztNQUMvQyxJQUFJQyxNQUFNLEtBQUtQLFNBQVMsRUFBRTtRQUN4QlAsSUFBSSxDQUFDYyxNQUFNLEdBQUdBLE1BQU07UUFDcEJDLHNCQUFzQixDQUFDRCxNQUFNLEVBQUViLElBQUksRUFBRUMsV0FBVyxDQUFDO01BQ25EO0lBQ0Y7SUFDQSxJQUFJRCxJQUFJ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
514
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbnNlcnRBY3RlTGVnaXNsYXRpZlJlZmVyZW5jZXMiLCJhY3RlIiwiZGF0YSIsInZpc2l0ZWRVaWRzIiwiaGFzIiwidWlkIiwiYWRkIiwiZG9jdW1lbnRCeVVpZCIsInVuZGVmaW5lZCIsImRlcG90SW5pdGlhbExlY3R1cmVEZWZpbml0aXZlUmVmIiwiZG9jdW1lbnQiLCJkZXBvdEluaXRpYWxMZWN0dXJlRGVmaW5pdGl2ZSIsImluc2VydERvY3VtZW50UmVmZXJlbmNlcyIsIm9yZ2FuZUJ5VWlkIiwib3JnYW5lUmVmIiwib3JnYW5lIiwiaW5zZXJ0T3JnYW5lUmVmZXJlbmNlcyIsInByb3ZlbmFuY2VSZWYiLCJwcm92ZW5hbmNlIiwiYWN0ZXVyQnlVaWQiLCJyYXBwb3J0ZXVycyIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX3N0ZXAiLCJzIiwibiIsImRvbmUiLCJyYXBwb3J0ZXVyIiwidmFsdWUiLCJhY3RldXIiLCJhY3RldXJSZWYiLCJpbnNlcnRBY3RldXJSZWZlcmVuY2VzIiwiZXJyIiwiZSIsImYiLCJyZXVuaW9uQnlVaWQiLCJyZXVuaW9uUmVmIiwicmV1bmlvbiIsImluc2VydFJldW5pb25SZWZlcmVuY2VzIiwib2RqUmVmIiwib2RqIiwicG9pbnRzT2RqIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsInBvaW50T2RqIiwidGV4dGVBZG9wdGVSZWYiLCJ0ZXh0ZUFkb3B0ZSIsInRleHRlQXNzb2NpZVJlZiIsInRleHRlQXNzb2NpZSIsInRleHRlc0Fzc29jaWVzIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsInNjcnV0aW5CeVVpZCIsInZvdGVSZWZzIiwic2NydXRpbnMiLCJfaXRlcmF0b3I0IiwiX3N0ZXA0Iiwidm90ZVJlZiIsInNjcnV0aW4iLCJwdXNoIiwiaW5zZXJ0U2NydXRpblJlZmVyZW5jZXMiLCJ2b3RlcyIsIl9pdGVyYXRvcjUiLCJhY3Rlc0xlZ2lzbGF0aWZzIiwiX3N0ZXA1IiwiY2hpbGRBY3RlIiwiX2l0ZXJhdG9yNiIsIm1hbmRhdHMiLCJfc3RlcDYiLCJtYW5kYXQiLCJvcmdhbmVzIiwiX2l0ZXJhdG9yNyIsIm9yZ2FuZXNSZWZzIiwiX3N0ZXA3IiwiaW5zZXJ0QW1lbmRlbWVudFJlZmVyZW5jZXMiLCJhbWVuZGVtZW50Iiwic2lnbmF0YWlyZXMiLCJhdXRldXIiLCJhdXRldXJSYXBwb3J0ZXVyT3JnYW5lUmVmIiwiYXV0ZXVyUmFwcG9ydGV1ck9yZ2FuZSIsImdvdXZlcm5lbWVudFJlZiIsImdvdXZlcm5lbWVudCIsImdyb3VwZVBvbGl0aXF1ZVJlZiIsImdyb3VwZVBvbGl0aXF1ZSIsImNvc2lnbmF0YWlyZXNSZWZzIiwiY29zaWduYXRhaXJlcyIsIl9pdGVyYXRvcjgiLCJfc3RlcDgiLCJjb3NpZ25hdGFpcmVSZWYiLCJjb3NpZ25hdGFpcmUiLCJpbnNlcnREaXZpc2lvblJlZmVyZW5jZXMiLCJkaXZpc2lvbiIsIl9pdGVyYXRvcjkiLCJhdXRldXJzIiwiX3N0ZXA5IiwiYWN0ZXVyU3VtbWFyeSIsImRvc3NpZXJCeVVpZCIsImRvc3NpZXIiLCJkb3NzaWVyUmVmIiwiaW5zZXJ0RG9zc2llclJlZmVyZW5jZXMiLCJfaXRlcmF0b3IxMCIsImRpdmlzaW9ucyIsIl9zdGVwMTAiLCJjaGlsZERpdmlzaW9uIiwiX2l0ZXJhdG9yMTEiLCJfc3RlcDExIiwiX2l0ZXJhdG9yMTIiLCJfc3RlcDEyIiwiX2Rvc3NpZXIkYWN0ZXNMZWdpc2xhIiwiX2l0ZXJhdG9yMTMiLCJfc3RlcDEzIiwiaW5pdGlhdGV1ciIsIl9pdGVyYXRvcjE0IiwiYWN0ZXVycyIsIl9zdGVwMTQiLCJtYW5kYXRSZWYiLCJfaXRlcmF0b3IxNSIsIl9zdGVwMTUiLCJvcmdhbmVQYXJlbnRSZWYiLCJvcmdhbmVQYXJlbnQiLCJkZW1hbmRldXJzIiwiX2l0ZXJhdG9yMTYiLCJfc3RlcDE2Iiwib3JnYW5lU3VtbWFyeSIsIm9yZ2FuZVJldW5pUmVmIiwib3JnYW5lUmV1bmkiLCJwYXJ0aWNpcGFudHMiLCJfaXRlcmF0b3IxNyIsInBhcnRpY2lwYW50c0ludGVybmVzIiwiX3N0ZXAxNyIsInBhcnRpY2lwYW50SW50ZXJuZSIsIl9kYXRhIl0sInNvdXJjZXMiOlsiLi4vc3JjL2luc2VydGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RldXIsIE9yZ2FuZSB9IGZyb20gXCIuL3R5cGVzL2FjdGV1cnNfZXRfb3JnYW5lc1wiXG5pbXBvcnQgeyBSZXVuaW9uIH0gZnJvbSBcIi4vdHlwZXMvYWdlbmRhc1wiXG5pbXBvcnQgeyBBbWVuZGVtZW50IH0gZnJvbSBcIi4vdHlwZXMvYW1lbmRlbWVudHNcIlxuaW1wb3J0IHtcbiAgQWN0ZUxlZ2lzbGF0aWYsXG4gIERpdmlzaW9uLFxuICBEb2N1bWVudCxcbiAgRG9zc2llclBhcmxlbWVudGFpcmUsXG59IGZyb20gXCIuL3R5cGVzL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzXCJcbmltcG9ydCB7IFNjcnV0aW4gfSBmcm9tIFwiLi90eXBlcy9zY3J1dGluc1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0RGF0YSB7XG4gIHJlYWRvbmx5IGFjdGV1ckJ5VWlkPzogeyBbdWlkOiBzdHJpbmddOiBBY3RldXIgfVxuICByZWFkb25seSBhbWVuZGVtZW50QnlVaWQ/OiB7IFt1aWQ6IHN0cmluZ106IEFtZW5kZW1lbnQgfVxuICByZWFkb25seSBkb2N1bWVudEJ5VWlkPzogeyBbdWlkOiBzdHJpbmddOiBEb2N1bWVudCB9XG4gIHJlYWRvbmx5IGRvc3NpZXJCeVVpZD86IHsgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmUgfVxuICByZWFkb25seSBvcmdhbmVCeVVpZD86IHsgW3VpZDogc3RyaW5nXTogT3JnYW5lIH1cbiAgcmVhZG9ubHkgcmV1bmlvbkJ5VWlkPzogeyBbdWlkOiBzdHJpbmddOiBSZXVuaW9uIH1cbiAgcmVhZG9ubHkgc2NydXRpbkJ5VWlkPzogeyBbdWlkOiBzdHJpbmddOiBTY3J1dGluIH1cbn1cblxuZnVuY3Rpb24gaW5zZXJ0QWN0ZUxlZ2lzbGF0aWZSZWZlcmVuY2VzKFxuICBhY3RlOiBBY3RlTGVnaXNsYXRpZixcbiAgZGF0YTogT3V0cHV0RGF0YSxcbiAgdmlzaXRlZFVpZHM6IFNldDxzdHJpbmc+LFxuKSB7XG4gIGlmICghdmlzaXRlZFVpZHMuaGFzKGFjdGUudWlkKSkge1xuICAgIHZpc2l0ZWRVaWRzLmFkZChhY3RlLnVpZClcblxuICAgIGlmIChcbiAgICAgIGRhdGEuZG9jdW1lbnRCeVVpZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBhY3RlLmRlcG90SW5pdGlhbExlY3R1cmVEZWZpbml0aXZlUmVmICE9PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIGNvbnN0IGRvY3VtZW50ID0gZGF0YS5kb2N1bWVudEJ5VWlkW2FjdGUuZGVwb3RJbml0aWFsTGVjdHVyZURlZmluaXRpdmVSZWZdXG4gICAgICBpZiAoZG9jdW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhY3RlLmRlcG90SW5pdGlhbExlY3R1cmVEZWZpbml0aXZlID0gZG9jdW1lbnRcbiAgICAgICAgaW5zZXJ0RG9jdW1lbnRSZWZlcmVuY2VzKGRvY3VtZW50LCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEub3JnYW5lQnlVaWQgIT09IHVuZGVmaW5lZCAmJiBhY3RlLm9yZ2FuZVJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBvcmdhbmUgPSBkYXRhLm9yZ2FuZUJ5VWlkW2FjdGUub3JnYW5lUmVmXVxuICAgICAgaWYgKG9yZ2FuZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGFjdGUub3JnYW5lID0gb3JnYW5lXG4gICAgICAgIGluc2VydE9yZ2FuZVJlZmVyZW5jZXMob3JnYW5lLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEub3JnYW5lQnlVaWQgIT09IHVuZGVmaW5lZCAmJiBhY3RlLnByb3ZlbmFuY2VSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3Qgb3JnYW5lID0gZGF0YS5vcmdhbmVCeVVpZFthY3RlLnByb3ZlbmFuY2VSZWZdXG4gICAgICBpZiAob3JnYW5lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYWN0ZS5wcm92ZW5hbmNlID0gb3JnYW5lXG4gICAgICAgIGluc2VydE9yZ2FuZVJlZmVyZW5jZXMob3JnYW5lLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEuYWN0ZXVyQnlVaWQgIT09IHVuZGVmaW5lZCAmJiBhY3RlLnJhcHBvcnRldXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAoY29uc3QgcmFwcG9ydGV1ciBvZiBhY3RlLnJhcHBvcnRldXJzKSB7XG4gICAgICAgIGNvbnN0IGFjdGV1ciA9IGRhdGEuYWN0ZXVyQnlVaWRbcmFwcG9ydGV1ci5hY3RldXJSZWZdXG4gICAgICAgIGlmIChhY3RldXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJhcHBvcnRldXIuYWN0ZXVyID0gYWN0ZXVyXG4gICAgICAgICAgaW5zZXJ0QWN0ZXVyUmVmZXJlbmNlcyhhY3RldXIsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkYXRhLnJldW5pb25CeVVpZCAhPT0gdW5kZWZpbmVkICYmIGFjdGUucmV1bmlvblJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCByZXVuaW9uID0gZGF0YS5yZXVuaW9uQnlVaWRbYWN0ZS5yZXVuaW9uUmVmXVxuICAgICAgaWYgKHJldW5pb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhY3RlLnJldW5pb24gPSByZXVuaW9uXG4gICAgICAgIGluc2VydFJldW5pb25SZWZlcmVuY2VzKHJldW5pb24sIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgICBpZiAoYWN0ZS5vZGpSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbnN0IG9kaiA9IHJldW5pb24ub2RqXG4gICAgICAgICAgaWYgKG9kaiAhPT0gdW5kZWZpbmVkICYmIG9kai5wb2ludHNPZGogIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBwb2ludE9kaiBvZiBvZGoucG9pbnRzT2RqKSB7XG4gICAgICAgICAgICAgIGlmIChwb2ludE9kai51aWQgPT09IGFjdGUub2RqUmVmKSB7XG4gICAgICAgICAgICAgICAgYWN0ZS5vZGogPSBwb2ludE9kalxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEuZG9jdW1lbnRCeVVpZCAhPT0gdW5kZWZpbmVkICYmIGFjdGUudGV4dGVBZG9wdGVSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgZG9jdW1lbnQgPSBkYXRhLmRvY3VtZW50QnlVaWRbYWN0ZS50ZXh0ZUFkb3B0ZVJlZl1cbiAgICAgIGlmIChkb2N1bWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGFjdGUudGV4dGVBZG9wdGUgPSBkb2N1bWVudFxuICAgICAgICBpbnNlcnREb2N1bWVudFJlZmVyZW5jZXMoZG9jdW1lbnQsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBkYXRhLmRvY3VtZW50QnlVaWQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgYWN0ZS50ZXh0ZUFzc29jaWVSZWYgIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgY29uc3QgZG9jdW1lbnQgPSBkYXRhLmRvY3VtZW50QnlVaWRbYWN0ZS50ZXh0ZUFzc29jaWVSZWZdXG4gICAgICBpZiAoZG9jdW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhY3RlLnRleHRlQXNzb2NpZSA9IGRvY3VtZW50XG4gICAgICAgIGluc2VydERvY3VtZW50UmVmZXJlbmNlcyhkb2N1bWVudCwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkYXRhLmRvY3VtZW50QnlVaWQgIT09IHVuZGVmaW5lZCAmJiBhY3RlLnRleHRlc0Fzc29jaWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAoY29uc3QgdGV4dGVBc3NvY2llIG9mIGFjdGUudGV4dGVzQXNzb2NpZXMpIHtcbiAgICAgICAgY29uc3QgZG9jdW1lbnQgPSBkYXRhLmRvY3VtZW50QnlVaWRbdGV4dGVBc3NvY2llLnRleHRlQXNzb2NpZVJlZl1cbiAgICAgICAgaWYgKGRvY3VtZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0ZXh0ZUFzc29jaWUudGV4dGVBc3NvY2llID0gZG9jdW1lbnRcbiAgICAgICAgICBpbnNlcnREb2N1bWVudFJlZmVyZW5jZXMoZG9jdW1lbnQsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkYXRhLnNjcnV0aW5CeVVpZCAhPT0gdW5kZWZpbmVkICYmIGFjdGUudm90ZVJlZnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3Qgc2NydXRpbnMgPSBbXVxuICAgICAgZm9yIChjb25zdCB2b3RlUmVmIG9mIGFjdGUudm90ZVJlZnMpIHtcbiAgICAgICAgY29uc3Qgc2NydXRpbiA9IGRhdGEuc2NydXRpbkJ5VWlkW3ZvdGVSZWZdXG4gICAgICAgIGlmIChzY3J1dGluICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzY3J1dGlucy5wdXNoKHNjcnV0aW4pXG4gICAgICAgICAgaW5zZXJ0U2NydXRpblJlZmVyZW5jZXMoc2NydXRpbiwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGFjdGUudm90ZXMgPSBzY3J1dGluc1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY2hpbGRBY3RlIG9mIGFjdGUuYWN0ZXNMZWdpc2xhdGlmcyB8fCBbXSkge1xuICAgICAgaW5zZXJ0QWN0ZUxlZ2lzbGF0aWZSZWZlcmVuY2VzKGNoaWxkQWN0ZSwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGFjdGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydEFjdGV1clJlZmVyZW5jZXMoXG4gIGFjdGV1cjogQWN0ZXVyLFxuICBkYXRhOiBPdXRwdXREYXRhLFxuICB2aXNpdGVkVWlkczogU2V0PHN0cmluZz4sXG4pIHtcbiAgaWYgKCF2aXNpdGVkVWlkcy5oYXMoYWN0ZXVyLnVpZCkpIHtcbiAgICB2aXNpdGVkVWlkcy5hZGQoYWN0ZXVyLnVpZClcblxuICAgIGlmIChkYXRhLm9yZ2FuZUJ5VWlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAoY29uc3QgbWFuZGF0IG9mIGFjdGV1ci5tYW5kYXRzIHx8IFtdKSB7XG4gICAgICAgIGNvbnN0IG9yZ2FuZXMgPSBbXVxuICAgICAgICBmb3IgKGNvbnN0IG9yZ2FuZVJlZiBvZiBtYW5kYXQub3JnYW5lc1JlZnMpIHtcbiAgICAgICAgICBjb25zdCBvcmdhbmUgPSBkYXRhLm9yZ2FuZUJ5VWlkW29yZ2FuZVJlZl1cbiAgICAgICAgICBpZiAob3JnYW5lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG9yZ2FuZXMucHVzaChvcmdhbmUpXG4gICAgICAgICAgICBpbnNlcnRPcmdhbmVSZWZlcmVuY2VzKG9yZ2FuZSwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG1hbmRhdC5vcmdhbmVzID0gb3JnYW5lc1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhY3RldXJcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydEFtZW5kZW1lbnRSZWZlcmVuY2VzKFxuICBhbWVuZGVtZW50OiBBbWVuZGVtZW50LFxuICBkYXRhOiBPdXRwdXREYXRhLFxuICB2aXNpdGVkVWlkczogU2V0PHN0cmluZz4sXG4pIHtcbiAgaWYgKCF2aXNpdGVkVWlkcy5oYXMoYW1lbmRlbWVudC51aWQpKSB7XG4gICAgdmlzaXRlZFVpZHMuYWRkKGFtZW5kZW1lbnQudWlkKVxuXG4gICAgY29uc3Qgc2lnbmF0YWlyZXMgPSBhbWVuZGVtZW50LnNpZ25hdGFpcmVzXG4gICAgY29uc3QgYXV0ZXVyID0gc2lnbmF0YWlyZXMuYXV0ZXVyXG4gICAgaWYgKGRhdGEuYWN0ZXVyQnlVaWQgIT09IHVuZGVmaW5lZCAmJiBhdXRldXIuYWN0ZXVyUmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGFjdGV1ciA9IGRhdGEuYWN0ZXVyQnlVaWRbYXV0ZXVyLmFjdGV1clJlZl1cbiAgICAgIGlmIChhY3RldXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhdXRldXIuYWN0ZXVyID0gYWN0ZXVyXG4gICAgICAgIGluc2VydEFjdGV1clJlZmVyZW5jZXMoYWN0ZXVyLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKFxuICAgICAgZGF0YS5vcmdhbmVCeVVpZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBhdXRldXIuYXV0ZXVyUmFwcG9ydGV1ck9yZ2FuZVJlZiAhPT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICBjb25zdCBhdXRldXJSYXBwb3J0ZXVyT3JnYW5lID1cbiAgICAgICAgZGF0YS5vcmdhbmVCeVVpZFthdXRldXIuYXV0ZXVyUmFwcG9ydGV1ck9yZ2FuZVJlZl1cbiAgICAgIGlmIChhdXRldXJSYXBwb3J0ZXVyT3JnYW5lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYXV0ZXVyLmF1dGV1clJhcHBvcnRldXJPcmdhbmUgPSBhdXRldXJSYXBwb3J0ZXVyT3JnYW5lXG4gICAgICAgIGluc2VydE9yZ2FuZVJlZmVyZW5jZXMoYXV0ZXVyUmFwcG9ydGV1ck9yZ2FuZSwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGRhdGEub3JnYW5lQnlVaWQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgYXV0ZXVyLmdvdXZlcm5lbWVudFJlZiAhPT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICBjb25zdCBnb3V2ZXJuZW1lbnQgPSBkYXRhLm9yZ2FuZUJ5VWlkW2F1dGV1ci5nb3V2ZXJuZW1lbnRSZWZdXG4gICAgICBpZiAoZ291dmVybmVtZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYXV0ZXVyLmdvdXZlcm5lbWVudCA9IGdvdXZlcm5lbWVudFxuICAgICAgICBpbnNlcnRPcmdhbmVSZWZlcmVuY2VzKGdvdXZlcm5lbWVudCwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGRhdGEub3JnYW5lQnlVaWQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgYXV0ZXVyLmdyb3VwZVBvbGl0aXF1ZVJlZiAhPT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICBjb25zdCBvcmdhbmUgPSBkYXRhLm9yZ2FuZUJ5VWlkW2F1dGV1ci5ncm91cGVQb2xpdGlxdWVSZWZdXG4gICAgICBpZiAob3JnYW5lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYXV0ZXVyLmdyb3VwZVBvbGl0aXF1ZSA9IG9yZ2FuZVxuICAgICAgICBpbnNlcnRPcmdhbmVSZWZlcmVuY2VzKG9yZ2FuZSwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkYXRhLmFjdGV1ckJ5VWlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGNvc2lnbmF0YWlyZXNSZWZzID0gc2lnbmF0YWlyZXMuY29zaWduYXRhaXJlc1JlZnNcbiAgICAgIGlmIChjb3NpZ25hdGFpcmVzUmVmcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IGNvc2lnbmF0YWlyZXMgPSBbXVxuICAgICAgICBmb3IgKGNvbnN0IGNvc2lnbmF0YWlyZVJlZiBvZiBzaWduYXRhaXJlcy5jb3NpZ25hdGFpcmVzUmVmcyB8fCBbXSkge1xuICAgICAgICAgIGNvbnN0IGNvc2lnbmF0YWlyZSA9IGRhdGEuYWN0ZXVyQnlVaWRbY29zaWduYXRhaXJlUmVmXVxuICAgICAgICAgIGlmIChjb3NpZ25hdGFpcmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29zaWduYXRhaXJlcy5wdXNoKGNvc2lnbmF0YWlyZSlcbiAgICAgICAgICAgIGluc2VydEFjdGV1clJlZmVyZW5jZXMoY29zaWduYXRhaXJlLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2lnbmF0YWlyZXMuY29zaWduYXRhaXJlcyA9IGNvc2lnbmF0YWlyZXNcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gYW1lbmRlbWVudFxufVxuXG5mdW5jdGlvbiBpbnNlcnREaXZpc2lvblJlZmVyZW5jZXMoXG4gIGRpdmlzaW9uOiBEaXZpc2lvbixcbiAgZGF0YTogT3V0cHV0RGF0YSxcbiAgdmlzaXRlZFVpZHM6IFNldDxzdHJpbmc+LFxuKSB7XG4gIGZvciAoY29uc3QgYXV0ZXVyIG9mIGRpdmlzaW9uLmF1dGV1cnMpIHtcbiAgICBjb25zdCBhY3RldXJTdW1tYXJ5ID0gYXV0ZXVyLmFjdGV1clxuICAgIGlmIChkYXRhLmFjdGV1ckJ5VWlkICE9PSB1bmRlZmluZWQgJiYgYWN0ZXVyU3VtbWFyeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBhY3RldXIgPSBkYXRhLmFjdGV1ckJ5VWlkW2FjdGV1clN1bW1hcnkuYWN0ZXVyUmVmXVxuICAgICAgaWYgKGFjdGV1ciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGFjdGV1clN1bW1hcnkuYWN0ZXVyID0gYWN0ZXVyXG4gICAgICAgIGluc2VydEFjdGV1clJlZmVyZW5jZXMoYWN0ZXVyLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGF0YS5vcmdhbmVCeVVpZCAhPT0gdW5kZWZpbmVkICYmIGF1dGV1ci5vcmdhbmVSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3Qgb3JnYW5lID0gZGF0YS5vcmdhbmVCeVVpZFthdXRldXIub3JnYW5lUmVmXVxuICAgICAgaWYgKG9yZ2FuZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGF1dGV1ci5vcmdhbmUgPSBvcmdhbmVcbiAgICAgICAgaW5zZXJ0T3JnYW5lUmVmZXJlbmNlcyhvcmdhbmUsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChkYXRhLmRvc3NpZXJCeVVpZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgZG9zc2llciA9IGRhdGEuZG9zc2llckJ5VWlkW2RpdmlzaW9uLmRvc3NpZXJSZWZdXG4gICAgaWYgKGRvc3NpZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZGl2aXNpb24uZG9zc2llciA9IGRvc3NpZXJcbiAgICAgIGluc2VydERvc3NpZXJSZWZlcmVuY2VzKGRvc3NpZXIsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgY2hpbGREaXZpc2lvbiBvZiBkaXZpc2lvbi5kaXZpc2lvbnMgfHwgW10pIHtcbiAgICBpbnNlcnREaXZpc2lvblJlZmVyZW5jZXMoY2hpbGREaXZpc2lvbiwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gIH1cblxuICByZXR1cm4gZGl2aXNpb25cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydERvY3VtZW50UmVmZXJlbmNlcyhcbiAgZG9jdW1lbnQ6IERvY3VtZW50LFxuICBkYXRhOiBPdXRwdXREYXRhLFxuICB2aXNpdGVkVWlkczogU2V0PHN0cmluZz4sXG4pIHtcbiAgaWYgKCF2aXNpdGVkVWlkcy5oYXMoZG9jdW1lbnQudWlkKSkge1xuICAgIHZpc2l0ZWRVaWRzLmFkZChkb2N1bWVudC51aWQpXG5cbiAgICBmb3IgKGNvbnN0IGF1dGV1ciBvZiBkb2N1bWVudC5hdXRldXJzKSB7XG4gICAgICBjb25zdCBhY3RldXJTdW1tYXJ5ID0gYXV0ZXVyLmFjdGV1clxuICAgICAgaWYgKGRhdGEuYWN0ZXVyQnlVaWQgIT09IHVuZGVmaW5lZCAmJiBhY3RldXJTdW1tYXJ5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgYWN0ZXVyID0gZGF0YS5hY3RldXJCeVVpZFthY3RldXJTdW1tYXJ5LmFjdGV1clJlZl1cbiAgICAgICAgaWYgKGFjdGV1ciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgYWN0ZXVyU3VtbWFyeS5hY3RldXIgPSBhY3RldXJcbiAgICAgICAgICBpbnNlcnRBY3RldXJSZWZlcmVuY2VzKGFjdGV1ciwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGEub3JnYW5lQnlVaWQgIT09IHVuZGVmaW5lZCAmJiBhdXRldXIub3JnYW5lUmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3Qgb3JnYW5lID0gZGF0YS5vcmdhbmVCeVVpZFthdXRldXIub3JnYW5lUmVmXVxuICAgICAgICBpZiAob3JnYW5lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBhdXRldXIub3JnYW5lID0gb3JnYW5lXG4gICAgICAgICAgaW5zZXJ0T3JnYW5lUmVmZXJlbmNlcyhvcmdhbmUsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRhdGEuZG9zc2llckJ5VWlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGRvc3NpZXIgPSBkYXRhLmRvc3NpZXJCeVVpZFtkb2N1bWVudC5kb3NzaWVyUmVmXVxuICAgICAgaWYgKGRvc3NpZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkb2N1bWVudC5kb3NzaWVyID0gZG9zc2llclxuICAgICAgICBpbnNlcnREb3NzaWVyUmVmZXJlbmNlcyhkb3NzaWVyLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGRpdmlzaW9uIG9mIGRvY3VtZW50LmRpdmlzaW9ucyB8fCBbXSkge1xuICAgICAgaW5zZXJ0RGl2aXNpb25SZWZlcmVuY2VzKGRpdmlzaW9uLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZG9jdW1lbnRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydERvc3NpZXJSZWZlcmVuY2VzKFxuICBkb3NzaWVyOiBEb3NzaWVyUGFybGVtZW50YWlyZSxcbiAgZGF0YTogT3V0cHV0RGF0YSxcbiAgdmlzaXRlZFVpZHM6IFNldDxzdHJpbmc+LFxuKSB7XG4gIGlmICghdmlzaXRlZFVpZHMuaGFzKGRvc3NpZXIudWlkKSkge1xuICAgIHZpc2l0ZWRVaWRzLmFkZChkb3NzaWVyLnVpZClcblxuICAgIGZvciAoY29uc3QgYWN0ZSBvZiBkb3NzaWVyLmFjdGVzTGVnaXNsYXRpZnMgPz8gW10pIHtcbiAgICAgIGluc2VydEFjdGVMZWdpc2xhdGlmUmVmZXJlbmNlcyhhY3RlLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICB9XG5cbiAgICBjb25zdCBpbml0aWF0ZXVyID0gZG9zc2llci5pbml0aWF0ZXVyXG4gICAgaWYgKGluaXRpYXRldXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGRhdGEuYWN0ZXVyQnlVaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBmb3IgKGNvbnN0IGFjdGV1clN1bW1hcnkgb2YgaW5pdGlhdGV1ci5hY3RldXJzIHx8IFtdKSB7XG4gICAgICAgICAgY29uc3QgYWN0ZXVyID0gZGF0YS5hY3RldXJCeVVpZFthY3RldXJTdW1tYXJ5LmFjdGV1clJlZl1cbiAgICAgICAgICBpZiAoYWN0ZXVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGFjdGV1clN1bW1hcnkuYWN0ZXVyID0gYWN0ZXVyXG4gICAgICAgICAgICBpbnNlcnRBY3RldXJSZWZlcmVuY2VzKGFjdGV1ciwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChhY3RldXIgIT09IHVuZGVmaW5lZCAmJiBhY3RldXJTdW1tYXJ5Lm1hbmRhdFJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG1hbmRhdCBvZiBhY3RldXIubWFuZGF0cyB8fCBbXSkge1xuICAgICAgICAgICAgICBpZiAobWFuZGF0LnVpZCA9PT0gYWN0ZXVyU3VtbWFyeS5tYW5kYXRSZWYpIHtcbiAgICAgICAgICAgICAgICBhY3RldXJTdW1tYXJ5Lm1hbmRhdCA9IG1hbmRhdFxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgZGF0YS5vcmdhbmVCeVVpZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGluaXRpYXRldXIub3JnYW5lUmVmICE9PSB1bmRlZmluZWRcbiAgICAgICkge1xuICAgICAgICBjb25zdCBvcmdhbmUgPSBkYXRhLm9yZ2FuZUJ5VWlkW2luaXRpYXRldXIub3JnYW5lUmVmXVxuICAgICAgICBpZiAob3JnYW5lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpbml0aWF0ZXVyLm9yZ2FuZSA9IG9yZ2FuZVxuICAgICAgICAgIGluc2VydE9yZ2FuZVJlZmVyZW5jZXMob3JnYW5lLCBkYXRhLCB2aXNpdGVkVWlkcylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkb3NzaWVyXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRPcmdhbmVSZWZlcmVuY2VzKFxuICBvcmdhbmU6IE9yZ2FuZSxcbiAgZGF0YTogT3V0cHV0RGF0YSxcbiAgdmlzaXRlZFVpZHM6IFNldDxzdHJpbmc+LFxuKSB7XG4gIGlmICghdmlzaXRlZFVpZHMuaGFzKG9yZ2FuZS51aWQpKSB7XG4gICAgdmlzaXRlZFVpZHMuYWRkKG9yZ2FuZS51aWQpXG5cbiAgICBpZiAoXG4gICAgICBkYXRhLm9yZ2FuZUJ5VWlkICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIG9yZ2FuZS5vcmdhbmVQYXJlbnRSZWYgIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgY29uc3Qgb3JnYW5lUGFyZW50ID0gZGF0YS5vcmdhbmVCeVVpZFtvcmdhbmUub3JnYW5lUGFyZW50UmVmXVxuICAgICAgaWYgKG9yZ2FuZVBhcmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG9yZ2FuZS5vcmdhbmVQYXJlbnQgPSBvcmdhbmVQYXJlbnRcbiAgICAgICAgaW5zZXJ0T3JnYW5lUmVmZXJlbmNlcyhvcmdhbmVQYXJlbnQsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE9cbiAgfVxuXG4gIHJldHVybiBvcmdhbmVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydFJldW5pb25SZWZlcmVuY2VzKFxuICByZXVuaW9uOiBSZXVuaW9uLFxuICBkYXRhOiBPdXRwdXREYXRhLFxuICB2aXNpdGVkVWlkczogU2V0PHN0cmluZz4sXG4pIHtcbiAgaWYgKCF2aXNpdGVkVWlkcy5oYXMocmV1bmlvbi51aWQpKSB7XG4gICAgdmlzaXRlZFVpZHMuYWRkKHJldW5pb24udWlkKVxuXG4gICAgY29uc3QgZGVtYW5kZXVycyA9IHJldW5pb24uZGVtYW5kZXVyc1xuICAgIGlmIChkZW1hbmRldXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChkYXRhLmFjdGV1ckJ5VWlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZm9yIChjb25zdCBhY3RldXJTdW1tYXJ5IG9mIGRlbWFuZGV1cnMuYWN0ZXVycyB8fCBbXSkge1xuICAgICAgICAgIGNvbnN0IGFjdGV1ciA9IGRhdGEuYWN0ZXVyQnlVaWRbYWN0ZXVyU3VtbWFyeS5hY3RldXJSZWZdXG4gICAgICAgICAgaWYgKGFjdGV1ciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhY3RldXJTdW1tYXJ5LmFjdGV1ciA9IGFjdGV1clxuICAgICAgICAgICAgaW5zZXJ0QWN0ZXVyUmVmZXJlbmNlcyhhY3RldXIsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGRhdGEub3JnYW5lQnlVaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBvcmdhbmVTdW1tYXJ5ID0gZGVtYW5kZXVycy5vcmdhbmVcbiAgICAgICAgaWYgKG9yZ2FuZVN1bW1hcnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbnN0IG9yZ2FuZSA9IGRhdGEub3JnYW5lQnlVaWRbb3JnYW5lU3VtbWFyeS5vcmdhbmVSZWZdXG4gICAgICAgICAgaWYgKG9yZ2FuZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBvcmdhbmVTdW1tYXJ5Lm9yZ2FuZSA9IG9yZ2FuZVxuICAgICAgICAgICAgaW5zZXJ0T3JnYW5lUmVmZXJlbmNlcyhvcmdhbmUsIGRhdGEsIHZpc2l0ZWRVaWRzKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBkYXRhLm9yZ2FuZUJ5VWlkICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHJldW5pb24ub3JnYW5lUmV1bmlSZWYgIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgY29uc3Qgb3JnYW5lUmV1bmkgPSBkYXRhLm9yZ2FuZUJ5VWlkW3JldW5pb24ub3JnYW5lUmV1bmlSZWZdXG4gICAgICBpZiAob3JnYW5lUmV1bmkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXVuaW9uLm9yZ2FuZVJldW5pID0gb3JnYW5lUmV1bmlcbiAgICAgICAgaW5zZXJ0T3JnYW5lUmVmZXJlbmNlcyhvcmdhbmVSZXVuaSwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkYXRhLmFjdGV1ckJ5VWlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHBhcnRpY2lwYW50cyA9IHJldW5pb24ucGFydGljaXBhbnRzXG4gICAgICBpZiAocGFydGljaXBhbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNpcGFudEludGVybmUgb2YgcGFydGljaXBhbnRzLnBhcnRpY2lwYW50c0ludGVybmVzIHx8XG4gICAgICAgICAgW10pIHtcbiAgICAgICAgICBjb25zdCBhY3RldXIgPSBkYXRhLmFjdGV1ckJ5VWlkW3BhcnRpY2lwYW50SW50ZXJuZS5hY3RldXJSZWZdXG4gICAgICAgICAgaWYgKGFjdGV1ciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBwYXJ0aWNpcGFudEludGVybmUuYWN0ZXVyID0gYWN0ZXVyXG4gICAgICAgICAgICBpbnNlcnRBY3RldXJSZWZlcmVuY2VzKGFjdGV1ciwgZGF0YSwgdmlzaXRlZFVpZHMpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldW5pb25cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydFNjcnV0aW5SZWZlcmVuY2VzKFxuICBzY3J1dGluOiBTY3J1dGluLFxuICBfZGF0YTogT3V0cHV0RGF0YSxcbiAgdmlzaXRlZFVpZHM6IFNldDxzdHJpbmc+LFxuKSB7XG4gIGlmICghdmlzaXRlZFVpZHMuaGFzKHNjcnV0aW4udWlkKSkge1xuICAgIHZpc2l0ZWRVaWRzLmFkZChzY3J1dGluLnVpZClcblxuICAgIC8vIFRPRE9cbiAgfVxuXG4gIHJldHVybiBzY3J1dGluXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQkEsU0FBU0EsOEJBQThCQSxDQUNyQ0MsSUFBb0IsRUFDcEJDLElBQWdCLEVBQ2hCQyxXQUF3QixFQUN4QjtFQUNBLElBQUksQ0FBQ0EsV0FBVyxDQUFDQyxHQUFHLENBQUNILElBQUksQ0FBQ0ksR0FBRyxDQUFDLEVBQUU7SUFDOUJGLFdBQVcsQ0FBQ0csR0FBRyxDQUFDTCxJQUFJLENBQUNJLEdBQUcsQ0FBQztJQUV6QixJQUNFSCxJQUFJLENBQUNLLGFBQWEsS0FBS0MsU0FBUyxJQUNoQ1AsSUFBSSxDQUFDUSxnQ0FBZ0MsS0FBS0QsU0FBUyxFQUNuRDtNQUNBLElB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