@tricoteuses/assemblee 1.0.7 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/lib/api.js +3 -9
  2. package/lib/api.mjs +4 -5
  3. package/lib/bugs/acteur-00010/plugin.test.js +3 -50
  4. package/lib/bugs/acteur-00010/plugin.test.mjs +1 -1
  5. package/lib/bugs/acteur-00010.js +2 -57
  6. package/lib/bugs/acteur-00010.mjs +1 -6
  7. package/lib/bugs/agenda-00002/plugin.test.js +3 -53
  8. package/lib/bugs/agenda-00002/plugin.test.mjs +1 -3
  9. package/lib/bugs/agenda-00002.js +3 -148
  10. package/lib/bugs/agenda-00002.mjs +1 -28
  11. package/lib/bugs/agenda-00008/plugin.test.js +3 -52
  12. package/lib/bugs/agenda-00008/plugin.test.mjs +1 -1
  13. package/lib/bugs/agenda-00008.js +2 -61
  14. package/lib/bugs/agenda-00008.mjs +1 -5
  15. package/lib/bugs/agenda-00011/plugin.test.js +5 -99
  16. package/lib/bugs/agenda-00011/plugin.test.mjs +3 -3
  17. package/lib/bugs/agenda-00011.js +4 -105
  18. package/lib/bugs/agenda-00011.mjs +3 -29
  19. package/lib/bugs.js +3 -164
  20. package/lib/bugs.mjs +1 -26
  21. package/lib/cleaners/actes_legislatifs.js +11 -115
  22. package/lib/cleaners/actes_legislatifs.mjs +7 -82
  23. package/lib/cleaners/acteurs.js +12 -92
  24. package/lib/cleaners/acteurs.mjs +7 -38
  25. package/lib/cleaners/amendements.js +10 -103
  26. package/lib/cleaners/amendements.mjs +4 -58
  27. package/lib/cleaners/documents.js +5 -67
  28. package/lib/cleaners/documents.mjs +1 -37
  29. package/lib/cleaners/dossiers_legislatifs.js +5 -61
  30. package/lib/cleaners/dossiers_legislatifs.mjs +1 -29
  31. package/lib/cleaners/index.js +1 -9
  32. package/lib/cleaners/index.mjs +1 -1
  33. package/lib/cleaners/organes.js +1 -33
  34. package/lib/cleaners/organes.mjs +1 -17
  35. package/lib/cleaners/reunions.js +4 -119
  36. package/lib/cleaners/reunions.mjs +1 -64
  37. package/lib/cleaners/scrutins.js +10 -102
  38. package/lib/cleaners/scrutins.mjs +1 -48
  39. package/lib/cleaners/xml.js +8 -42
  40. package/lib/cleaners/xml.mjs +6 -8
  41. package/lib/datasets.js +14 -113
  42. package/lib/datasets.mjs +6 -46
  43. package/lib/dates.js +7 -37
  44. package/lib/dates.mjs +9 -14
  45. package/lib/dossiers_legislatifs.js +6 -68
  46. package/lib/dossiers_legislatifs.mjs +5 -36
  47. package/lib/file_systems.js +56 -139
  48. package/lib/file_systems.mjs +1 -9
  49. package/lib/git.js +4 -53
  50. package/lib/git.mjs +1 -12
  51. package/lib/index.js +1 -15
  52. package/lib/index.mjs +1 -1
  53. package/lib/inserters.js +23 -146
  54. package/lib/inserters.mjs +6 -87
  55. package/lib/loaders.js +44 -316
  56. package/lib/loaders.mjs +12 -135
  57. package/lib/organes.js +1 -7
  58. package/lib/organes.mjs +1 -4
  59. package/lib/parsers/documents.js +22 -151
  60. package/lib/parsers/documents.mjs +19 -81
  61. package/lib/parsers/index.js +1 -4
  62. package/lib/parsers/index.mjs +1 -1
  63. package/lib/parsers/recherche_amendements.js +302 -527
  64. package/lib/parsers/recherche_amendements.mjs +8 -31
  65. package/lib/raw_types/acteurs_et_organes.d.ts +1 -30
  66. package/lib/raw_types/acteurs_et_organes.js +5 -124
  67. package/lib/raw_types/acteurs_et_organes.mjs +5 -105
  68. package/lib/raw_types/agendas.js +6 -89
  69. package/lib/raw_types/agendas.mjs +9 -65
  70. package/lib/raw_types/amendements.d.ts +2 -0
  71. package/lib/raw_types/amendements.js +10 -90
  72. package/lib/raw_types/amendements.mjs +11 -69
  73. package/lib/raw_types/dossiers_legislatifs.js +6 -96
  74. package/lib/raw_types/dossiers_legislatifs.mjs +6 -73
  75. package/lib/raw_types/scrutins.js +6 -81
  76. package/lib/raw_types/scrutins.mjs +9 -57
  77. package/lib/scripts/bugs_helper.js +2 -181
  78. package/lib/scripts/bugs_helper.mjs +2 -39
  79. package/lib/scripts/clean_data.js +27 -143
  80. package/lib/scripts/clean_data.mjs +15 -34
  81. package/lib/scripts/clean_reorganized_data.js +76 -240
  82. package/lib/scripts/clean_reorganized_data.mjs +36 -99
  83. package/lib/scripts/diff_amendements.js +19 -79
  84. package/lib/scripts/diff_amendements.mjs +17 -35
  85. package/lib/scripts/document_dossiers_legislatifs.js +17 -142
  86. package/lib/scripts/document_dossiers_legislatifs.mjs +6 -90
  87. package/lib/scripts/get_today_reunions.js +4 -22
  88. package/lib/scripts/get_today_reunions.mjs +1 -7
  89. package/lib/scripts/merge_scrutins.js +3 -47
  90. package/lib/scripts/merge_scrutins.mjs +1 -9
  91. package/lib/scripts/parse_textes_lois.js +15 -44
  92. package/lib/scripts/parse_textes_lois.mjs +18 -19
  93. package/lib/scripts/raw_types_from_amendements.js +3 -95
  94. package/lib/scripts/raw_types_from_amendements.mjs +1 -16
  95. package/lib/scripts/reorganize_data.js +74 -294
  96. package/lib/scripts/reorganize_data.mjs +22 -133
  97. package/lib/scripts/retrieve_deputes_photos.js +6 -119
  98. package/lib/scripts/retrieve_deputes_photos.mjs +7 -33
  99. package/lib/scripts/retrieve_documents.js +4 -192
  100. package/lib/scripts/retrieve_documents.mjs +2 -50
  101. package/lib/scripts/retrieve_open_data.js +44 -116
  102. package/lib/scripts/retrieve_open_data.mjs +14 -19
  103. package/lib/scripts/retrieve_pending_amendments.js +4 -98
  104. package/lib/scripts/retrieve_pending_amendments.mjs +1 -14
  105. package/lib/scripts/retrieve_senateurs_photos.js +18 -114
  106. package/lib/scripts/retrieve_senateurs_photos.mjs +20 -48
  107. package/lib/scripts/retrieve_textes_lois.js +3 -122
  108. package/lib/scripts/retrieve_textes_lois.mjs +3 -21
  109. package/lib/scripts/test_load.js +2 -10
  110. package/lib/scripts/test_load.mjs +2 -1
  111. package/lib/scripts/test_load_big_files.js +2 -10
  112. package/lib/scripts/test_load_big_files.mjs +2 -1
  113. package/lib/scripts/validate_json.js +4 -119
  114. package/lib/scripts/validate_json.mjs +2 -36
  115. package/lib/shared_types/codes_actes.js +1 -24
  116. package/lib/shared_types/codes_actes.mjs +3 -10
  117. package/lib/strings.js +1 -5
  118. package/lib/strings.mjs +1 -1
  119. package/lib/types/acteurs_et_organes.js +9 -84
  120. package/lib/types/acteurs_et_organes.mjs +10 -63
  121. package/lib/types/agendas.js +8 -90
  122. package/lib/types/agendas.mjs +11 -66
  123. package/lib/types/amendements.d.ts +2 -0
  124. package/lib/types/amendements.js +12 -92
  125. package/lib/types/amendements.mjs +15 -70
  126. package/lib/types/dossiers_legislatifs.js +8 -96
  127. package/lib/types/dossiers_legislatifs.mjs +10 -72
  128. package/lib/types/legislatures.js +1 -3
  129. package/lib/types/legislatures.mjs +1 -2
  130. package/lib/types/scrutins.js +8 -82
  131. package/lib/types/scrutins.mjs +11 -58
  132. package/lib/urls.js +3 -27
  133. package/lib/urls.mjs +3 -21
  134. package/package.json +1 -1
@@ -1,93 +1,58 @@
1
1
  "use strict";
2
2
 
3
3
  require("core-js/modules/es.array.slice.js");
4
-
5
4
  require("core-js/modules/es.function.name.js");
6
-
7
5
  require("core-js/modules/es.array.from.js");
8
-
9
6
  require("core-js/modules/es.string.iterator.js");
10
-
11
7
  require("core-js/modules/es.regexp.exec.js");
12
-
13
8
  require("core-js/modules/es.symbol.js");
14
-
15
9
  require("core-js/modules/es.symbol.description.js");
16
-
17
10
  require("core-js/modules/es.symbol.iterator.js");
18
-
19
11
  require("core-js/modules/es.array.iterator.js");
20
-
21
12
  require("core-js/modules/web.dom-collections.iterator.js");
22
-
23
13
  require("core-js/modules/es.object.define-property.js");
24
-
25
14
  Object.defineProperty(exports, "__esModule", {
26
15
  value: true
27
16
  });
28
17
  exports.cleanScrutin = cleanScrutin;
29
-
30
18
  require("core-js/modules/es.array.is-array.js");
31
-
32
19
  require("core-js/modules/es.array.filter.js");
33
-
34
20
  require("core-js/modules/es.object.to-string.js");
35
-
36
21
  require("core-js/modules/es.object.values.js");
37
-
38
22
  var _assert = _interopRequireDefault(require("assert"));
39
-
40
23
  var _xml = require("./xml");
41
-
42
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
43
-
44
25
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
45
-
46
26
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
47
-
48
27
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
49
-
50
28
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
51
-
52
29
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
53
-
54
30
  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); }
55
-
56
31
  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; }
57
-
58
32
  function cleanDecompteNominatif(decompteNominatif) {
59
33
  (0, _xml.cleanXmlArtefacts)(decompteNominatif);
60
34
  var nonVotants = decompteNominatif.nonVotants;
61
-
62
35
  if (nonVotants !== undefined) {
63
36
  if (typeof nonVotants === "string") {
64
37
  _assert["default"].strictEqual(nonVotants, "0");
65
-
66
38
  nonVotants = [];
67
39
  } else if (!Array.isArray(nonVotants)) {
68
40
  (0, _assert["default"])(nonVotants);
69
41
  nonVotants = [nonVotants];
70
42
  }
71
-
72
43
  var nonVotantsArray = nonVotants;
73
44
  nonVotants = [];
74
-
75
45
  var _iterator = _createForOfIteratorHelper(nonVotantsArray),
76
- _step;
77
-
46
+ _step;
78
47
  try {
79
48
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
80
49
  var nonVotant = _step.value;
81
-
82
50
  if (nonVotant === null) {
83
51
  continue;
84
52
  }
85
-
86
53
  nonVotant = nonVotant.votant;
87
-
88
54
  if (Array.isArray(nonVotant)) {
89
55
  var _nonVotants;
90
-
91
56
  (_nonVotants = nonVotants).push.apply(_nonVotants, _toConsumableArray(nonVotant));
92
57
  } else {
93
58
  (0, _assert["default"])(nonVotant);
@@ -99,15 +64,12 @@ function cleanDecompteNominatif(decompteNominatif) {
99
64
  } finally {
100
65
  _iterator.f();
101
66
  }
102
-
103
67
  if (nonVotants.length === 0) {
104
68
  delete decompteNominatif.nonVotants;
105
69
  } else {
106
70
  decompteNominatif.nonVotants = nonVotants;
107
-
108
71
  var _iterator2 = _createForOfIteratorHelper(nonVotants),
109
- _step2;
110
-
72
+ _step2;
111
73
  try {
112
74
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
113
75
  var votant = _step2.value;
@@ -120,31 +82,24 @@ function cleanDecompteNominatif(decompteNominatif) {
120
82
  }
121
83
  }
122
84
  }
123
-
124
85
  var pour = decompteNominatif.pour;
125
-
126
86
  if (pour === undefined) {
127
87
  pour = decompteNominatif.pours;
128
88
  } else {
129
89
  _assert["default"].strictEqual(decompteNominatif.pours, undefined);
130
90
  }
131
-
132
91
  if (pour !== undefined) {
133
92
  pour = pour.votant;
134
-
135
93
  if (!Array.isArray(pour)) {
136
94
  (0, _assert["default"])(pour);
137
95
  pour = [pour];
138
96
  }
139
-
140
97
  if (pour.length === 0) {
141
98
  delete decompteNominatif.pour;
142
99
  } else {
143
100
  decompteNominatif.pour = pour;
144
-
145
101
  var _iterator3 = _createForOfIteratorHelper(pour),
146
- _step3;
147
-
102
+ _step3;
148
103
  try {
149
104
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
150
105
  var _votant = _step3.value;
@@ -156,34 +111,26 @@ function cleanDecompteNominatif(decompteNominatif) {
156
111
  _iterator3.f();
157
112
  }
158
113
  }
159
-
160
114
  delete decompteNominatif.pours;
161
115
  }
162
-
163
116
  var contre = decompteNominatif.contre;
164
-
165
117
  if (contre === undefined) {
166
118
  contre = decompteNominatif.contres;
167
119
  } else {
168
120
  _assert["default"].strictEqual(decompteNominatif.contres, undefined);
169
121
  }
170
-
171
122
  if (contre !== undefined) {
172
123
  contre = contre.votant;
173
-
174
124
  if (!Array.isArray(contre)) {
175
125
  (0, _assert["default"])(contre);
176
126
  contre = [contre];
177
127
  }
178
-
179
128
  if (contre.length === 0) {
180
129
  delete decompteNominatif.contre;
181
130
  } else {
182
131
  decompteNominatif.contre = contre;
183
-
184
132
  var _iterator4 = _createForOfIteratorHelper(contre),
185
- _step4;
186
-
133
+ _step4;
187
134
  try {
188
135
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
189
136
  var _votant2 = _step4.value;
@@ -195,36 +142,26 @@ function cleanDecompteNominatif(decompteNominatif) {
195
142
  _iterator4.f();
196
143
  }
197
144
  }
198
-
199
145
  delete decompteNominatif.contres;
200
146
  }
201
-
202
147
  var abstentions = decompteNominatif.abstentions;
203
-
204
148
  if (abstentions !== undefined) {
205
149
  if (!Array.isArray(abstentions)) {
206
150
  abstentions = [abstentions];
207
151
  }
208
-
209
152
  var abstentionsArray = abstentions;
210
153
  abstentions = [];
211
-
212
154
  var _iterator5 = _createForOfIteratorHelper(abstentionsArray),
213
- _step5;
214
-
155
+ _step5;
215
156
  try {
216
157
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
217
158
  var absentionsItem = _step5.value;
218
-
219
159
  if (absentionsItem === null) {
220
160
  continue;
221
161
  }
222
-
223
162
  absentionsItem = absentionsItem.votant;
224
-
225
163
  if (Array.isArray(absentionsItem)) {
226
164
  var _abstentions;
227
-
228
165
  (_abstentions = abstentions).push.apply(_abstentions, _toConsumableArray(absentionsItem));
229
166
  } else {
230
167
  (0, _assert["default"])(absentionsItem);
@@ -236,15 +173,12 @@ function cleanDecompteNominatif(decompteNominatif) {
236
173
  } finally {
237
174
  _iterator5.f();
238
175
  }
239
-
240
176
  if (abstentions.length === 0) {
241
177
  delete decompteNominatif.abstentions;
242
178
  } else {
243
179
  decompteNominatif.abstentions = abstentions;
244
-
245
180
  var _iterator6 = _createForOfIteratorHelper(abstentions),
246
- _step6;
247
-
181
+ _step6;
248
182
  try {
249
183
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
250
184
  var _votant3 = _step6.value;
@@ -257,33 +191,24 @@ function cleanDecompteNominatif(decompteNominatif) {
257
191
  }
258
192
  }
259
193
  }
260
-
261
194
  var nonVotantsVolontaires = decompteNominatif.nonVotantsVolontaires;
262
-
263
195
  if (nonVotantsVolontaires !== undefined) {
264
196
  if (!Array.isArray(nonVotantsVolontaires)) {
265
197
  nonVotantsVolontaires = [nonVotantsVolontaires];
266
198
  }
267
-
268
199
  var nonVotantsVolontairesArray = nonVotantsVolontaires;
269
200
  nonVotantsVolontaires = [];
270
-
271
201
  var _iterator7 = _createForOfIteratorHelper(nonVotantsVolontairesArray),
272
- _step7;
273
-
202
+ _step7;
274
203
  try {
275
204
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
276
205
  var _absentionsItem = _step7.value;
277
-
278
206
  if (_absentionsItem === null) {
279
207
  continue;
280
208
  }
281
-
282
209
  _absentionsItem = _absentionsItem.votant;
283
-
284
210
  if (Array.isArray(_absentionsItem)) {
285
211
  var _nonVotantsVolontaire;
286
-
287
212
  (_nonVotantsVolontaire = nonVotantsVolontaires).push.apply(_nonVotantsVolontaire, _toConsumableArray(_absentionsItem));
288
213
  } else {
289
214
  (0, _assert["default"])(_absentionsItem);
@@ -295,15 +220,12 @@ function cleanDecompteNominatif(decompteNominatif) {
295
220
  } finally {
296
221
  _iterator7.f();
297
222
  }
298
-
299
223
  if (nonVotantsVolontaires.length === 0) {
300
224
  delete decompteNominatif.nonVotantsVolontaires;
301
225
  } else {
302
226
  decompteNominatif.nonVotantsVolontaires = nonVotantsVolontaires;
303
-
304
227
  var _iterator8 = _createForOfIteratorHelper(nonVotantsVolontaires),
305
- _step8;
306
-
228
+ _step8;
307
229
  try {
308
230
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
309
231
  var _votant4 = _step8.value;
@@ -317,21 +239,18 @@ function cleanDecompteNominatif(decompteNominatif) {
317
239
  }
318
240
  }
319
241
  }
320
-
321
242
  function cleanScrutin(scrutin) {
322
243
  (0, _xml.cleanXmlArtefacts)(scrutin);
323
244
  var demandeur = scrutin.demandeur;
324
245
  (0, _assert["default"])(demandeur);
325
246
  {
326
247
  (0, _xml.cleanXmlArtefacts)(demandeur);
327
-
328
248
  _assert["default"].strictEqual(demandeur.referenceLegislative, undefined);
329
249
  }
330
250
  var objet = scrutin.objet;
331
251
  (0, _assert["default"])(objet);
332
252
  {
333
253
  (0, _xml.cleanXmlArtefacts)(objet);
334
-
335
254
  _assert["default"].strictEqual(objet.referenceLegislative, undefined);
336
255
  }
337
256
  var ventilationVotes = scrutin.ventilationVotes;
@@ -344,10 +263,8 @@ function cleanScrutin(scrutin) {
344
263
  {
345
264
  groupes = groupes.groupe;
346
265
  (0, _assert["default"])(Array.isArray(groupes));
347
-
348
266
  var _iterator9 = _createForOfIteratorHelper(groupes),
349
- _step9;
350
-
267
+ _step9;
351
268
  try {
352
269
  for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
353
270
  var groupe = _step9.value;
@@ -359,14 +276,11 @@ function cleanScrutin(scrutin) {
359
276
  {
360
277
  if (decompteVoix.abstention !== undefined) {
361
278
  _assert["default"].strictEqual(decompteVoix.abstentions, undefined);
362
-
363
279
  decompteVoix.abstentions = decompteVoix.abstention;
364
280
  delete decompteVoix.abstention;
365
281
  }
366
-
367
282
  if (decompteVoix.nonVotant !== undefined) {
368
283
  _assert["default"].strictEqual(decompteVoix.nonVotants, undefined);
369
-
370
284
  decompteVoix.nonVotants = decompteVoix.nonVotant;
371
285
  delete decompteVoix.nonVotant;
372
286
  }
@@ -381,27 +295,22 @@ function cleanScrutin(scrutin) {
381
295
  } finally {
382
296
  _iterator9.f();
383
297
  }
384
-
385
298
  ventilationVotes.groupes = groupes;
386
299
  }
387
300
  scrutin.ventilationVotes = ventilationVotes;
388
301
  }
389
302
  var miseAuPoint = scrutin.miseAuPoint;
390
-
391
303
  if (miseAuPoint !== undefined) {
392
304
  cleanDecompteNominatif(miseAuPoint);
393
305
  var dysfonctionnement = miseAuPoint.dysfonctionnement;
394
-
395
306
  if (dysfonctionnement !== undefined) {
396
307
  cleanDecompteNominatif(dysfonctionnement);
397
-
398
308
  if (Object.values(dysfonctionnement).filter(function (value) {
399
309
  return value !== undefined;
400
310
  }).length === 0) {
401
311
  delete miseAuPoint.dysfonctionnement;
402
312
  }
403
313
  }
404
-
405
314
  if (Object.values(miseAuPoint).filter(function (value) {
406
315
  return value !== undefined;
407
316
  }).length === 0) {
@@ -409,8 +318,7 @@ function cleanScrutin(scrutin) {
409
318
  }
410
319
  }
411
320
  }
412
-
413
321
  function cleanVotant(votant) {
414
322
  (0, _xml.cleanBooleanAttribute)(votant, "parDelegation");
415
323
  }
416
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjbGVhbkRlY29tcHRlTm9taW5hdGlmIiwiZGVjb21wdGVOb21pbmF0aWYiLCJjbGVhblhtbEFydGVmYWN0cyIsIm5vblZvdGFudHMiLCJ1bmRlZmluZWQiLCJhc3NlcnQiLCJzdHJpY3RFcXVhbCIsIkFycmF5IiwiaXNBcnJheSIsIm5vblZvdGFudHNBcnJheSIsIm5vblZvdGFudCIsInZvdGFudCIsInB1c2giLCJsZW5ndGgiLCJjbGVhblZvdGFudCIsInBvdXIiLCJwb3VycyIsImNvbnRyZSIsImNvbnRyZXMiLCJhYnN0ZW50aW9ucyIsImFic3RlbnRpb25zQXJyYXkiLCJhYnNlbnRpb25zSXRlbSIsIm5vblZvdGFudHNWb2xvbnRhaXJlcyIsIm5vblZvdGFudHNWb2xvbnRhaXJlc0FycmF5IiwiY2xlYW5TY3J1dGluIiwic2NydXRpbiIsImRlbWFuZGV1ciIsInJlZmVyZW5jZUxlZ2lzbGF0aXZlIiwib2JqZXQiLCJ2ZW50aWxhdGlvblZvdGVzIiwib3JnYW5lIiwiZ3JvdXBlcyIsImdyb3VwZSIsInZvdGUiLCJkZWNvbXB0ZVZvaXgiLCJhYnN0ZW50aW9uIiwibWlzZUF1UG9pbnQiLCJkeXNmb25jdGlvbm5lbWVudCIsIk9iamVjdCIsInZhbHVlcyIsImZpbHRlciIsInZhbHVlIiwiY2xlYW5Cb29sZWFuQXR0cmlidXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsZWFuZXJzL3NjcnV0aW5zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5cbmltcG9ydCB7IGNsZWFuQm9vbGVhbkF0dHJpYnV0ZSwgY2xlYW5YbWxBcnRlZmFjdHMgfSBmcm9tIFwiLi94bWxcIlxuXG5mdW5jdGlvbiBjbGVhbkRlY29tcHRlTm9taW5hdGlmKGRlY29tcHRlTm9taW5hdGlmOiBhbnkpIHtcbiAgY2xlYW5YbWxBcnRlZmFjdHMoZGVjb21wdGVOb21pbmF0aWYpXG5cbiAgbGV0IG5vblZvdGFudHMgPSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzXG4gIGlmIChub25Wb3RhbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAodHlwZW9mIG5vblZvdGFudHMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChub25Wb3RhbnRzLCBcIjBcIilcbiAgICAgIG5vblZvdGFudHMgPSBbXVxuICAgIH0gZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkobm9uVm90YW50cykpIHtcbiAgICAgIGFzc2VydChub25Wb3RhbnRzKVxuICAgICAgbm9uVm90YW50cyA9IFtub25Wb3RhbnRzXVxuICAgIH1cbiAgICBjb25zdCBub25Wb3RhbnRzQXJyYXkgPSBub25Wb3RhbnRzXG4gICAgbm9uVm90YW50cyA9IFtdXG4gICAgZm9yIChsZXQgbm9uVm90YW50IG9mIG5vblZvdGFudHNBcnJheSkge1xuICAgICAgaWYgKG5vblZvdGFudCA9PT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgbm9uVm90YW50ID0gbm9uVm90YW50LnZvdGFudFxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9uVm90YW50KSkge1xuICAgICAgICBub25Wb3RhbnRzLnB1c2goLi4ubm9uVm90YW50KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXNzZXJ0KG5vblZvdGFudClcbiAgICAgICAgbm9uVm90YW50cy5wdXNoKG5vblZvdGFudClcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vblZvdGFudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzID0gbm9uVm90YW50c1xuICAgICAgZm9yIChjb25zdCB2b3RhbnQgb2Ygbm9uVm90YW50cykge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IHBvdXIgPSBkZWNvbXB0ZU5vbWluYXRpZi5wb3VyXG4gIGlmIChwb3VyID09PSB1bmRlZmluZWQpIHtcbiAgICBwb3VyID0gZGVjb21wdGVOb21pbmF0aWYucG91cnNcbiAgfSBlbHNlIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb21wdGVOb21pbmF0aWYucG91cnMsIHVuZGVmaW5lZClcbiAgfVxuICBpZiAocG91ciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcG91ciA9IHBvdXIudm90YW50XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBvdXIpKSB7XG4gICAgICBhc3NlcnQocG91cilcbiAgICAgIHBvdXIgPSBbcG91cl1cbiAgICB9XG4gICAgaWYgKHBvdXIubGVuZ3RoID09PSAwKSB7XG4gICAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYucG91clxuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5wb3VyID0gcG91clxuICAgICAgZm9yIChjb25zdCB2b3RhbnQgb2YgcG91cikge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5wb3Vyc1xuICB9XG5cbiAgbGV0IGNvbnRyZSA9IGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZVxuICBpZiAoY29udHJlID09PSB1bmRlZmluZWQpIHtcbiAgICBjb250cmUgPSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVzXG4gIH0gZWxzZSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZXMsIHVuZGVmaW5lZClcbiAgfVxuICBpZiAoY29udHJlICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb250cmUgPSBjb250cmUudm90YW50XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbnRyZSkpIHtcbiAgICAgIGFzc2VydChjb250cmUpXG4gICAgICBjb250cmUgPSBbY29udHJlXVxuICAgIH1cbiAgICBpZiAoY29udHJlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZVxuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmUgPSBjb250cmVcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIGNvbnRyZSkge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVzXG4gIH1cblxuICBsZXQgYWJzdGVudGlvbnMgPSBkZWNvbXB0ZU5vbWluYXRpZi5hYnN0ZW50aW9uc1xuICBpZiAoYWJzdGVudGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShhYnN0ZW50aW9ucykpIHtcbiAgICAgIGFic3RlbnRpb25zID0gW2Fic3RlbnRpb25zXVxuICAgIH1cbiAgICBjb25zdCBhYnN0ZW50aW9uc0FycmF5ID0gYWJzdGVudGlvbnNcbiAgICBhYnN0ZW50aW9ucyA9IFtdXG4gICAgZm9yIChsZXQgYWJzZW50aW9uc0l0ZW0gb2YgYWJzdGVudGlvbnNBcnJheSkge1xuICAgICAgaWYgKGFic2VudGlvbnNJdGVtID09PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBhYnNlbnRpb25zSXRlbSA9IGFic2VudGlvbnNJdGVtLnZvdGFudFxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWJzZW50aW9uc0l0ZW0pKSB7XG4gICAgICAgIGFic3RlbnRpb25zLnB1c2goLi4uYWJzZW50aW9uc0l0ZW0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhc3NlcnQoYWJzZW50aW9uc0l0ZW0pXG4gICAgICAgIGFic3RlbnRpb25zLnB1c2goYWJzZW50aW9uc0l0ZW0pXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChhYnN0ZW50aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5hYnN0ZW50aW9uc1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5hYnN0ZW50aW9ucyA9IGFic3RlbnRpb25zXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBhYnN0ZW50aW9ucykge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IG5vblZvdGFudHNWb2xvbnRhaXJlcyA9IGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudHNWb2xvbnRhaXJlc1xuICBpZiAobm9uVm90YW50c1ZvbG9udGFpcmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobm9uVm90YW50c1ZvbG9udGFpcmVzKSkge1xuICAgICAgbm9uVm90YW50c1ZvbG9udGFpcmVzID0gW25vblZvdGFudHNWb2xvbnRhaXJlc11cbiAgICB9XG4gICAgY29uc3Qgbm9uVm90YW50c1ZvbG9udGFpcmVzQXJyYXkgPSBub25Wb3RhbnRzVm9sb250YWlyZXNcbiAgICBub25Wb3RhbnRzVm9sb250YWlyZXMgPSBbXVxuICAgIGZvciAobGV0IGFic2VudGlvbnNJdGVtIG9mIG5vblZvdGFudHNWb2xvbnRhaXJlc0FycmF5KSB7XG4gICAgICBpZiAoYWJzZW50aW9uc0l0ZW0gPT09IG51bGwpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGFic2VudGlvbnNJdGVtID0gYWJzZW50aW9uc0l0ZW0udm90YW50XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShhYnNlbnRpb25zSXRlbSkpIHtcbiAgICAgICAgbm9uVm90YW50c1ZvbG9udGFpcmVzLnB1c2goLi4uYWJzZW50aW9uc0l0ZW0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhc3NlcnQoYWJzZW50aW9uc0l0ZW0pXG4gICAgICAgIG5vblZvdGFudHNWb2xvbnRhaXJlcy5wdXNoKGFic2VudGlvbnNJdGVtKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9uVm90YW50c1ZvbG9udGFpcmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudHNWb2xvbnRhaXJlc1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzVm9sb250YWlyZXMgPSBub25Wb3RhbnRzVm9sb250YWlyZXNcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIG5vblZvdGFudHNWb2xvbnRhaXJlcykge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhblNjcnV0aW4oc2NydXRpbjogYW55KTogdm9pZCB7XG4gIGNsZWFuWG1sQXJ0ZWZhY3RzKHNjcnV0aW4pXG5cbiAgY29uc3QgZGVtYW5kZXVyID0gc2NydXRpbi5kZW1hbmRldXJcbiAgYXNzZXJ0KGRlbWFuZGV1cilcbiAge1xuICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKGRlbWFuZGV1cilcblxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZW1hbmRldXIucmVmZXJlbmNlTGVnaXNsYXRpdmUsIHVuZGVmaW5lZClcbiAgfVxuXG4gIGNvbnN0IG9iamV0ID0gc2NydXRpbi5vYmpldFxuICBhc3NlcnQob2JqZXQpXG4gIHtcbiAgICBjbGVhblhtbEFydGVmYWN0cyhvYmpldClcblxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChvYmpldC5yZWZlcmVuY2VMZWdpc2xhdGl2ZSwgdW5kZWZpbmVkKVxuICB9XG5cbiAgbGV0IHZlbnRpbGF0aW9uVm90ZXMgPSBzY3J1dGluLnZlbnRpbGF0aW9uVm90ZXNcbiAgYXNzZXJ0KHZlbnRpbGF0aW9uVm90ZXMpXG4gIHtcbiAgICB2ZW50aWxhdGlvblZvdGVzID0gdmVudGlsYXRpb25Wb3Rlcy5vcmdhbmVcbiAgICBhc3NlcnQodmVudGlsYXRpb25Wb3RlcylcblxuICAgIGxldCBncm91cGVzID0gdmVudGlsYXRpb25Wb3Rlcy5ncm91cGVzXG4gICAgYXNzZXJ0KGdyb3VwZXMpXG4gICAge1xuICAgICAgZ3JvdXBlcyA9IGdyb3VwZXMuZ3JvdXBlXG4gICAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShncm91cGVzKSlcbiAgICAgIGZvciAoY29uc3QgZ3JvdXBlIG9mIGdyb3VwZXMpIHtcbiAgICAgICAgY29uc3Qgdm90ZSA9IGdyb3VwZS52b3RlXG4gICAgICAgIGFzc2VydCh2b3RlKVxuICAgICAgICB7XG4gICAgICAgICAgY29uc3QgZGVjb21wdGVWb2l4ID0gdm90ZS5kZWNvbXB0ZVZvaXhcbiAgICAgICAgICBhc3NlcnQoZGVjb21wdGVWb2l4KVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmIChkZWNvbXB0ZVZvaXguYWJzdGVudGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZVZvaXguYWJzdGVudGlvbnMsIHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgZGVjb21wdGVWb2l4LmFic3RlbnRpb25zID0gZGVjb21wdGVWb2l4LmFic3RlbnRpb25cbiAgICAgICAgICAgICAgZGVsZXRlIGRlY29tcHRlVm9peC5hYnN0ZW50aW9uXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChkZWNvbXB0ZVZvaXgubm9uVm90YW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlY29tcHRlVm9peC5ub25Wb3RhbnRzLCB1bmRlZmluZWQpXG4gICAgICAgICAgICAgIGRlY29tcHRlVm9peC5ub25Wb3RhbnRzID0gZGVjb21wdGVWb2l4Lm5vblZvdGFudFxuICAgICAgICAgICAgICBkZWxldGUgZGVjb21wdGVWb2l4Lm5vblZvdGFudFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGRlY29tcHRlTm9taW5hdGlmID0gdm90ZS5kZWNvbXB0ZU5vbWluYXRpZlxuICAgICAgICAgIGFzc2VydChkZWNvbXB0ZU5vbWluYXRpZilcbiAgICAgICAgICBjbGVhbkRlY29tcHRlTm9taW5hdGlmKGRlY29tcHRlTm9taW5hdGlmKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2ZW50aWxhdGlvblZvdGVzLmdyb3VwZXMgPSBncm91cGVzXG4gICAgfVxuXG4gICAgc2NydXRpbi52ZW50aWxhdGlvblZvdGVzID0gdmVudGlsYXRpb25Wb3Rlc1xuICB9XG5cbiAgY29uc3QgbWlzZUF1UG9pbnQgPSBzY3J1dGluLm1pc2VBdVBvaW50XG4gIGlmIChtaXNlQXVQb2ludCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY2xlYW5EZWNvbXB0ZU5vbWluYXRpZihtaXNlQXVQb2ludClcblxuICAgIGxldCBkeXNmb25jdGlvbm5lbWVudCA9IG1pc2VBdVBvaW50LmR5c2ZvbmN0aW9ubmVtZW50XG4gICAgaWYgKGR5c2ZvbmN0aW9ubmVtZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNsZWFuRGVjb21wdGVOb21pbmF0aWYoZHlzZm9uY3Rpb25uZW1lbnQpXG4gICAgICBpZiAoXG4gICAgICAgIE9iamVjdC52YWx1ZXMoZHlzZm9uY3Rpb25uZW1lbnQpLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgLmxlbmd0aCA9PT0gMFxuICAgICAgKSB7XG4gICAgICAgIGRlbGV0ZSBtaXNlQXVQb2ludC5keXNmb25jdGlvbm5lbWVudFxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChcbiAgICAgIE9iamVjdC52YWx1ZXMobWlzZUF1UG9pbnQpLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgIC5sZW5ndGggPT09IDBcbiAgICApIHtcbiAgICAgIGRlbGV0ZSBzY3J1dGluLm1pc2VBdVBvaW50XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNsZWFuVm90YW50KHZvdGFudDogYW55KSB7XG4gIGNsZWFuQm9vbGVhbkF0dHJpYnV0ZSh2b3RhbnQsIFwicGFyRGVsZWdhdGlvblwiKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLFNBQVNBLHNCQUFULENBQWdDQyxpQkFBaEMsRUFBd0Q7RUFDdEQsSUFBQUMsc0JBQUEsRUFBa0JELGlCQUFsQjtFQUVBLElBQUlFLFVBQVUsR0FBR0YsaUJBQWlCLENBQUNFLFVBQW5DOztFQUNBLElBQUlBLFVBQVUsS0FBS0MsU0FBbkIsRUFBOEI7SUFDNUIsSUFBSSxPQUFPRCxVQUFQLEtBQXNCLFFBQTFCLEVBQW9DO01BQ2xDRSxrQkFBQSxDQUFPQyxXQUFQLENBQW1CSCxVQUFuQixFQUErQixHQUEvQjs7TUFDQUEsVUFBVSxHQUFHLEVBQWI7SUFDRCxDQUhELE1BR08sSUFBSSxDQUFDSSxLQUFLLENBQUNDLE9BQU4sQ0FBY0wsVUFBZCxDQUFMLEVBQWdDO01BQ3JDLElBQUFFLGtCQUFBLEVBQU9GLFVBQVA7TUFDQUEsVUFBVSxHQUFHLENBQUNBLFVBQUQsQ0FBYjtJQUNEOztJQUNELElBQU1NLGVBQWUsR0FBR04sVUFBeEI7SUFDQUEsVUFBVSxHQUFHLEVBQWI7O0lBVDRCLDJDQVVOTSxlQVZNO0lBQUE7O0lBQUE7TUFVNUIsb0RBQXVDO1FBQUEsSUFBOUJDLFNBQThCOztRQUNyQyxJQUFJQSxTQUFTLEtBQUssSUFBbEIsRUFBd0I7VUFDdEI7UUFDRDs7UUFDREEsU0FBUyxHQUFHQSxTQUFTLENBQUNDLE1BQXRCOztRQUNBLElBQUlKLEtBQUssQ0FBQ0MsT0FBTixDQUFjRSxTQUFkLENBQUosRUFBOEI7VUFBQTs7VUFDNUIsZUFBQVAsVUFBVSxFQUFDUyxJQUFYLHVDQUFtQkYsU0FBbkI7UUFDRCxDQUZELE1BRU87VUFDTCxJQUFBTCxrQkFBQSxFQUFPSyxTQUFQO1VBQ0FQLFVBQVUsQ0FBQ1MsSUFBWCxDQUFnQkYsU0FBaEI7UUFDRDtNQUNGO0lBckIyQjtNQUFBO0lBQUE7TUFBQTtJQUFBOztJQXNCNUIsSUFBSVAsVUFBVSxDQUFDVSxNQUFYLEtBQXNCLENBQTFCLEVBQTZCO01BQzNCLE9BQU9aLGlCQUFpQixDQUFDRSxVQUF6QjtJQUNELENBRkQsTUFFTztNQUNMRixpQkFBaUIsQ0FBQ0UsVUFBbEIsR0FBK0JBLFVBQS9COztNQURLLDRDQUVnQkEsVUFGaEI7TUFBQTs7TUFBQTtRQUVMLHVEQUFpQztVQUFBLElBQXRCUSxNQUFzQjtVQUMvQkcsV0FBVyxDQUFDSCxNQUFELENBQVg7UUFDRDtNQUpJO1FBQUE7TUFBQTtRQUFBO01BQUE7SUFLTjtFQUNGOztFQUVELElBQUlJLElBQUksR0FBR2QsaUJBQWlCLENBQUNjLElBQTdCOztFQUNBLElBQUlBLElBQUksS0FBS1gsU0FBYixFQUF3QjtJQUN0QlcsSUFBSSxHQUFHZCxpQkFBaUIsQ0FBQ2UsS0FBekI7RUFDRCxDQUZELE1BRU87SUFDTFgsa0JBQUEsQ0FBT0MsV0FBUCxDQUFtQkwsaUJBQWlCLENBQUNlLEtBQXJDLEVBQTRDWixTQUE1QztFQUNEOztFQUNELElBQUlXLElBQUksS0FBS1gsU0FBYixFQUF3QjtJQUN0QlcsSUFBSSxHQUFHQSxJQUFJLENBQUNKLE1BQVo7O0lBQ0EsSUFBSSxDQUFDSixLQUFLLENBQUNDLE9BQU4sQ0FBY08sSUFBZCxDQUFMLEVBQTBCO01BQ3hCLElBQUFWLGtCQUFBLEVBQU9VLElBQVA7TUFDQUEsSUFBSSxHQUFHLENBQUNBLElBQUQsQ0FBUDtJQUNEOztJQUNELElBQUlBLElBQUksQ0FBQ0YsTUFBTCxLQUFnQixDQUFwQixFQUF1QjtNQUNyQixPQUFPWixpQkFBaUIsQ0FBQ2MsSUFBekI7SUFDRCxDQUZELE1BRU87TUFDTGQsaUJBQWlCLENBQUNjLElBQWxCLEdBQXlCQSxJQUF6Qjs7TUFESyw0Q0FFZ0JBLElBRmhCO01BQUE7O01BQUE7UUFFTCx1REFBMkI7VUFBQSxJQUFoQkosT0FBZ0I7VUFDekJHLFdBQVcsQ0FBQ0gsT0FBRCxDQUFYO1FBQ0Q7TUFKSTtRQUFBO01BQUE7UUFBQTtNQUFBO0lBS047O0lBQ0QsT0FBT1YsaUJBQWlCLENBQUNlLEtBQXpCO0VBQ0Q7O0VBRUQsSUFBSUMsTUFBTSxHQUFHaEIsaUJBQWlCLENBQUNnQixNQUEvQjs7RUFDQSxJQUFJQSxNQUFNLEtBQUtiLFNBQWYsRUFBMEI7SUFDeEJhLE1BQU0sR0FBR2hCLGlCQUFpQixDQUFDaUIsT0FBM0I7RUFDRCxDQUZELE1BRU87SUFDTGIsa0JBQUEsQ0FBT0MsV0FBUCxDQUFtQkwsaUJBQWlCLENBQUNpQixPQUFyQyxFQUE4Q2QsU0FBOUM7RUFDRDs7RUFDRCxJQUFJYSxNQUFNLEtBQUtiLFNBQWYsRUFBMEI7SUFDeEJhLE1BQU0sR0FBR0EsTUFBTSxDQUFDTixNQUFoQjs7SUFDQSxJQUFJLENBQUNKLEtBQUssQ0FBQ0MsT0FBTixDQUFjUyxNQUFkLENBQUwsRUFBNEI7TUFDMUIsSUFBQVosa0JBQUEsRUFBT1ksTUFBUDtNQUNBQSxNQUFNLEdBQUcsQ0FBQ0EsTUFBRCxDQUFUO0lBQ0Q7O0lBQ0QsSUFBSUEsTUFBTSxDQUFDSixNQUFQLEtBQWtCLENBQXRCLEVBQXlCO01BQ3ZCLE9BQU9aLGlCQUFpQixDQUFDZ0IsTUFBekI7SUFDRCxDQUZELE1BRU87TUFDTGhCLGlCQUFpQixDQUFDZ0IsTUFBbEIsR0FBMkJBLE1BQTNCOztNQURLLDRDQUVnQkEsTUFGaEI7TUFBQTs7TUFBQTtRQUVMLHVEQUE2QjtVQUFBLElBQWxCTixRQUFrQjtVQUMzQkcsV0FBVyxDQUFDSCxRQUFELENBQVg7UUFDRDtNQUpJO1FBQUE7TUFBQTtRQUFBO01BQUE7SUFLTjs7SUFDRCxPQUFPVixpQkFBaUIsQ0FBQ2lCLE9BQXpCO0VBQ0Q7O0VBRUQsSUFBSUMsV0FBVyxHQUFHbEIsaUJBQWlCLENBQUNrQixXQUFwQzs7RUFDQSxJQUFJQSxXQUFXLEtBQUtmLFNBQXBCLEVBQStCO0lBQzdCLElBQUksQ0FBQ0csS0FBSyxDQUFDQyxPQUFOLENBQWNXLFdBQWQsQ0FBTCxFQUFpQztNQUMvQkEsV0FBVyxHQUFHLENBQUNBLFdBQUQsQ0FBZDtJQUNEOztJQUNELElBQU1DLGdCQUFnQixHQUFHRCxXQUF6QjtJQUNBQSxXQUFXLEdBQUcsRUFBZDs7SUFMNkIsNENBTUZDLGdCQU5FO0lBQUE7O0lBQUE7TUFNN0IsdURBQTZDO1FBQUEsSUFBcENDLGNBQW9DOztRQUMzQyxJQUFJQSxjQUFjLEtBQUssSUFBdkIsRUFBNkI7VUFDM0I7UUFDRDs7UUFDREEsY0FBYyxHQUFHQSxjQUFjLENBQUNWLE1BQWhDOztRQUNBLElBQUlKLEtBQUssQ0FBQ0MsT0FBTixDQUFjYSxjQUFkLENBQUosRUFBbUM7VUFBQTs7VUFDakMsZ0JBQUFGLFdBQVcsRUFBQ1AsSUFBWix3Q0FBb0JTLGNBQXBCO1FBQ0QsQ0FGRCxNQUVPO1VBQ0wsSUFBQWhCLGtCQUFBLEVBQU9nQixjQUFQO1VBQ0FGLFdBQVcsQ0FBQ1AsSUFBWixDQUFpQlMsY0FBakI7UUFDRDtNQUNGO0lBakI0QjtNQUFBO0lBQUE7TUFBQTtJQUFBOztJQWtCN0IsSUFBSUYsV0FBVyxDQUFDTixNQUFaLEtBQXVCLENBQTNCLEVBQThCO01BQzVCLE9BQU9aLGlCQUFpQixDQUFDa0IsV0FBekI7SUFDRCxDQUZELE1BRU87TUFDTGxCLGlCQUFpQixDQUFDa0IsV0FBbEIsR0FBZ0NBLFdBQWhDOztNQURLLDRDQUVnQkEsV0FGaEI7TUFBQTs7TUFBQTtRQUVMLHVEQUFrQztVQUFBLElBQXZCUixRQUF1QjtVQUNoQ0csV0FBVyxDQUFDSCxRQUFELENBQVg7UUFDRDtNQUpJO1FBQUE7TUFBQTtRQUFBO01BQUE7SUFLTjtFQUNGOztFQUVELElBQUlXLHFCQUFxQixHQUFHckIsaUJBQWlCLENBQUNxQixxQkFBOUM7O0VBQ0EsSUFBSUEscUJBQXFCLEtBQUtsQixTQUE5QixFQUF5QztJQUN2QyxJQUFJLENBQUNHLEtBQUssQ0FBQ0MsT0FBTixDQUFjYyxxQkFBZCxDQUFMLEVBQTJDO01BQ3pDQSxxQkFBcUIsR0FBRyxDQUFDQSxxQkFBRCxDQUF4QjtJQUNEOztJQUNELElBQU1DLDBCQUEwQixHQUFHRCxxQkFBbkM7SUFDQUEscUJBQXFCLEdBQUcsRUFBeEI7O0lBTHVDLDRDQU1aQywwQkFOWTtJQUFBOztJQUFBO01BTXZDLHVEQUF1RDtRQUFBLElBQTlDRixlQUE4Qzs7UUFDckQsSUFBSUEsZUFBYyxLQUFLLElBQXZCLEVBQTZCO1VBQzNCO1FBQ0Q7O1FBQ0RBLGVBQWMsR0FBR0EsZUFBYyxDQUFDVixNQUFoQzs7UUFDQSxJQUFJSixLQUFLLENBQUNDLE9BQU4sQ0FBY2EsZUFBZCxDQUFKLEVBQW1DO1VBQUE7O1VBQ2pDLHlCQUFBQyxxQkFBcUIsRUFBQ1YsSUFBdEIsaURBQThCUyxlQUE5QjtRQUNELENBRkQsTUFFTztVQUNMLElBQUFoQixrQkFBQSxFQUFPZ0IsZUFBUDtVQUNBQyxxQkFBcUIsQ0FBQ1YsSUFBdEIsQ0FBMkJTLGVBQTNCO1FBQ0Q7TUFDRjtJQWpCc0M7TUFBQTtJQUFBO01BQUE7SUFBQTs7SUFrQnZDLElBQUlDLHFCQUFxQixDQUFDVCxNQUF0QixLQUFpQyxDQUFyQyxFQUF3QztNQUN0QyxPQUFPWixpQkFBaUIsQ0FBQ3FCLHFCQUF6QjtJQUNELENBRkQsTUFFTztNQUNMckIsaUJBQWlCLENBQUNxQixxQkFBbEIsR0FBMENBLHFCQUExQzs7TUFESyw0Q0FFZ0JBLHFCQUZoQjtNQUFBOztNQUFBO1FBRUwsdURBQTRDO1VBQUEsSUFBakNYLFFBQWlDO1VBQzFDRyxXQUFXLENBQUNILFFBQUQsQ0FBWDtRQUNEO01BSkk7UUFBQTtNQUFBO1FBQUE7TUFBQTtJQUtOO0VBQ0Y7QUFDRjs7QUFFTSxTQUFTYSxZQUFULENBQXNCQyxPQUF0QixFQUEwQztFQUMvQyxJQUFBdkIsc0JBQUEsRUFBa0J1QixPQUFsQjtFQUVBLElBQU1DLFNBQVMsR0FBR0QsT0FBTyxDQUFDQyxTQUExQjtFQUNBLElBQUFyQixrQkFBQSxFQUFPcUIsU0FBUDtFQUNBO0lBQ0UsSUFBQXhCLHNCQUFBLEVBQWtCd0IsU0FBbEI7O0lBRUFyQixrQkFBQSxDQUFPQyxXQUFQLENBQW1Cb0IsU0FBUyxDQUFDQyxvQkFBN0IsRUFBbUR2QixTQUFuRDtFQUNEO0VBRUQsSUFBTXdCLEtBQUssR0FBR0gsT0FBTyxDQUFDRyxLQUF0QjtFQUNBLElBQUF2QixrQkFBQSxFQUFPdUIsS0FBUDtFQUNBO0lBQ0UsSUFBQTFCLHNCQUFBLEVBQWtCMEIsS0FBbEI7O0lBRUF2QixrQkFBQSxDQUFPQyxXQUFQLENBQW1Cc0IsS0FBSyxDQUFDRCxvQkFBekIsRUFBK0N2QixTQUEvQztFQUNEO0VBRUQsSUFBSXlCLGdCQUFnQixHQUFHSixPQUFPLENBQUNJLGdCQUEvQjtFQUNBLElBQUF4QixrQkFBQSxFQUFPd0IsZ0JBQVA7RUFDQTtJQUNFQSxnQkFBZ0IsR0FBR0EsZ0JBQWdCLENBQUNDLE1BQXBDO0lBQ0EsSUFBQXpCLGtCQUFBLEVBQU93QixnQkFBUDtJQUVBLElBQUlFLE9BQU8sR0FBR0YsZ0JBQWdCLENBQUNFLE9BQS9CO0lBQ0EsSUFBQTFCLGtCQUFBLEVBQU8wQixPQUFQO0lBQ0E7TUFDRUEsT0FBTyxHQUFHQSxPQUFPLENBQUNDLE1BQWxCO01BQ0EsSUFBQTNCLGtCQUFBLEVBQU9FLEtBQUssQ0FBQ0MsT0FBTixDQUFjdUIsT0FBZCxDQUFQOztNQUZGLDRDQUd1QkEsT0FIdkI7TUFBQTs7TUFBQTtRQUdFLHVEQUE4QjtVQUFBLElBQW5CQyxNQUFtQjtVQUM1QixJQUFNQyxJQUFJLEdBQUdELE1BQU0sQ0FBQ0MsSUFBcEI7VUFDQSxJQUFBNUIsa0JBQUEsRUFBTzRCLElBQVA7VUFDQTtZQUNFLElBQU1DLFlBQVksR0FBR0QsSUFBSSxDQUFDQyxZQUExQjtZQUNBLElBQUE3QixrQkFBQSxFQUFPNkIsWUFBUDtZQUNBO2NBQ0UsSUFBSUEsWUFBWSxDQUFDQyxVQUFiLEtBQTRCL0IsU0FBaEMsRUFBMkM7Z0JBQ3pDQyxrQkFBQSxDQUFPQyxXQUFQLENBQW1CNEIsWUFBWSxDQUFDZixXQUFoQyxFQUE2Q2YsU0FBN0M7O2dCQUNBOEIsWUFBWSxDQUFDZixXQUFiLEdBQTJCZSxZQUFZLENBQUNDLFVBQXhDO2dCQUNBLE9BQU9ELFlBQVksQ0FBQ0MsVUFBcEI7Y0FDRDs7Y0FFRCxJQUFJRCxZQUFZLENBQUN4QixTQUFiLEtBQTJCTixTQUEvQixFQUEwQztnQkFDeENDLGtCQUFBLENBQU9DLFdBQVAsQ0FBbUI0QixZQUFZLENBQUMvQixVQUFoQyxFQUE0Q0MsU0FBNUM7O2dCQUNBOEIsWUFBWSxDQUFDL0IsVUFBYixHQUEwQitCLFlBQVksQ0FBQ3hCLFNBQXZDO2dCQUNBLE9BQU93QixZQUFZLENBQUN4QixTQUFwQjtjQUNEO1lBQ0Y7WUFFRCxJQUFNVCxpQkFBaUIsR0FBR2dDLElBQUksQ0FBQ2hDLGlCQUEvQjtZQUNBLElBQUFJLGtCQUFBLEVBQU9KLGlCQUFQO1lBQ0FELHNCQUFzQixDQUFDQyxpQkFBRCxDQUF0QjtVQUNEO1FBQ0Y7TUEzQkg7UUFBQTtNQUFBO1FBQUE7TUFBQTs7TUE0QkU0QixnQkFBZ0IsQ0FBQ0UsT0FBakIsR0FBMkJBLE9BQTNCO0lBQ0Q7SUFFRE4sT0FBTyxDQUFDSSxnQkFBUixHQUEyQkEsZ0JBQTNCO0VBQ0Q7RUFFRCxJQUFNTyxXQUFXLEdBQUdYLE9BQU8sQ0FBQ1csV0FBNUI7O0VBQ0EsSUFBSUEsV0FBVyxLQUFLaEMsU0FBcEIsRUFBK0I7SUFDN0JKLHNCQUFzQixDQUFDb0MsV0FBRCxDQUF0QjtJQUVBLElBQUlDLGlCQUFpQixHQUFHRCxXQUFXLENBQUNDLGlCQUFwQzs7SUFDQSxJQUFJQSxpQkFBaUIsS0FBS2pDLFNBQTFCLEVBQXFDO01BQ25DSixzQkFBc0IsQ0FBQ3FDLGlCQUFELENBQXRCOztNQUNBLElBQ0VDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjRixpQkFBZCxFQUFpQ0csTUFBakMsQ0FBd0MsVUFBQ0MsS0FBRDtRQUFBLE9BQVdBLEtBQUssS0FBS3JDLFNBQXJCO01BQUEsQ0FBeEMsRUFDR1MsTUFESCxLQUNjLENBRmhCLEVBR0U7UUFDQSxPQUFPdUIsV0FBVyxDQUFDQyxpQkFBbkI7TUFDRDtJQUNGOztJQUVELElBQ0VDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjSCxXQUFkLEVBQTJCSSxNQUEzQixDQUFrQyxVQUFDQyxLQUFEO01BQUEsT0FBV0EsS0FBSyxLQUFLckMsU0FBckI7SUFBQSxDQUFsQyxFQUNHUyxNQURILEtBQ2MsQ0FGaEIsRUFHRTtNQUNBLE9BQU9ZLE9BQU8sQ0FBQ1csV0FBZjtJQUNEO0VBQ0Y7QUFDRjs7QUFFRCxTQUFTdEIsV0FBVCxDQUFxQkgsTUFBckIsRUFBa0M7RUFDaEMsSUFBQStCLDBCQUFBLEVBQXNCL0IsTUFBdEIsRUFBOEIsZUFBOUI7QUFDRCJ9
324
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjbGVhbkRlY29tcHRlTm9taW5hdGlmIiwiZGVjb21wdGVOb21pbmF0aWYiLCJjbGVhblhtbEFydGVmYWN0cyIsIm5vblZvdGFudHMiLCJ1bmRlZmluZWQiLCJhc3NlcnQiLCJzdHJpY3RFcXVhbCIsIkFycmF5IiwiaXNBcnJheSIsIm5vblZvdGFudHNBcnJheSIsIm5vblZvdGFudCIsInZvdGFudCIsInB1c2giLCJsZW5ndGgiLCJjbGVhblZvdGFudCIsInBvdXIiLCJwb3VycyIsImNvbnRyZSIsImNvbnRyZXMiLCJhYnN0ZW50aW9ucyIsImFic3RlbnRpb25zQXJyYXkiLCJhYnNlbnRpb25zSXRlbSIsIm5vblZvdGFudHNWb2xvbnRhaXJlcyIsIm5vblZvdGFudHNWb2xvbnRhaXJlc0FycmF5IiwiY2xlYW5TY3J1dGluIiwic2NydXRpbiIsImRlbWFuZGV1ciIsInJlZmVyZW5jZUxlZ2lzbGF0aXZlIiwib2JqZXQiLCJ2ZW50aWxhdGlvblZvdGVzIiwib3JnYW5lIiwiZ3JvdXBlcyIsImdyb3VwZSIsInZvdGUiLCJkZWNvbXB0ZVZvaXgiLCJhYnN0ZW50aW9uIiwibWlzZUF1UG9pbnQiLCJkeXNmb25jdGlvbm5lbWVudCIsIk9iamVjdCIsInZhbHVlcyIsImZpbHRlciIsInZhbHVlIiwiY2xlYW5Cb29sZWFuQXR0cmlidXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsZWFuZXJzL3NjcnV0aW5zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5cbmltcG9ydCB7IGNsZWFuQm9vbGVhbkF0dHJpYnV0ZSwgY2xlYW5YbWxBcnRlZmFjdHMgfSBmcm9tIFwiLi94bWxcIlxuXG5mdW5jdGlvbiBjbGVhbkRlY29tcHRlTm9taW5hdGlmKGRlY29tcHRlTm9taW5hdGlmOiBhbnkpIHtcbiAgY2xlYW5YbWxBcnRlZmFjdHMoZGVjb21wdGVOb21pbmF0aWYpXG5cbiAgbGV0IG5vblZvdGFudHMgPSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzXG4gIGlmIChub25Wb3RhbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAodHlwZW9mIG5vblZvdGFudHMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChub25Wb3RhbnRzLCBcIjBcIilcbiAgICAgIG5vblZvdGFudHMgPSBbXVxuICAgIH0gZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkobm9uVm90YW50cykpIHtcbiAgICAgIGFzc2VydChub25Wb3RhbnRzKVxuICAgICAgbm9uVm90YW50cyA9IFtub25Wb3RhbnRzXVxuICAgIH1cbiAgICBjb25zdCBub25Wb3RhbnRzQXJyYXkgPSBub25Wb3RhbnRzXG4gICAgbm9uVm90YW50cyA9IFtdXG4gICAgZm9yIChsZXQgbm9uVm90YW50IG9mIG5vblZvdGFudHNBcnJheSkge1xuICAgICAgaWYgKG5vblZvdGFudCA9PT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgbm9uVm90YW50ID0gbm9uVm90YW50LnZvdGFudFxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9uVm90YW50KSkge1xuICAgICAgICBub25Wb3RhbnRzLnB1c2goLi4ubm9uVm90YW50KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXNzZXJ0KG5vblZvdGFudClcbiAgICAgICAgbm9uVm90YW50cy5wdXNoKG5vblZvdGFudClcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vblZvdGFudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzID0gbm9uVm90YW50c1xuICAgICAgZm9yIChjb25zdCB2b3RhbnQgb2Ygbm9uVm90YW50cykge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IHBvdXIgPSBkZWNvbXB0ZU5vbWluYXRpZi5wb3VyXG4gIGlmIChwb3VyID09PSB1bmRlZmluZWQpIHtcbiAgICBwb3VyID0gZGVjb21wdGVOb21pbmF0aWYucG91cnNcbiAgfSBlbHNlIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb21wdGVOb21pbmF0aWYucG91cnMsIHVuZGVmaW5lZClcbiAgfVxuICBpZiAocG91ciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcG91ciA9IHBvdXIudm90YW50XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBvdXIpKSB7XG4gICAgICBhc3NlcnQocG91cilcbiAgICAgIHBvdXIgPSBbcG91cl1cbiAgICB9XG4gICAgaWYgKHBvdXIubGVuZ3RoID09PSAwKSB7XG4gICAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYucG91clxuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5wb3VyID0gcG91clxuICAgICAgZm9yIChjb25zdCB2b3RhbnQgb2YgcG91cikge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5wb3Vyc1xuICB9XG5cbiAgbGV0IGNvbnRyZSA9IGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZVxuICBpZiAoY29udHJlID09PSB1bmRlZmluZWQpIHtcbiAgICBjb250cmUgPSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVzXG4gIH0gZWxzZSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZXMsIHVuZGVmaW5lZClcbiAgfVxuICBpZiAoY29udHJlICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb250cmUgPSBjb250cmUudm90YW50XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbnRyZSkpIHtcbiAgICAgIGFzc2VydChjb250cmUpXG4gICAgICBjb250cmUgPSBbY29udHJlXVxuICAgIH1cbiAgICBpZiAoY29udHJlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZVxuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmUgPSBjb250cmVcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIGNvbnRyZSkge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVzXG4gIH1cblxuICBsZXQgYWJzdGVudGlvbnMgPSBkZWNvbXB0ZU5vbWluYXRpZi5hYnN0ZW50aW9uc1xuICBpZiAoYWJzdGVudGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShhYnN0ZW50aW9ucykpIHtcbiAgICAgIGFic3RlbnRpb25zID0gW2Fic3RlbnRpb25zXVxuICAgIH1cbiAgICBjb25zdCBhYnN0ZW50aW9uc0FycmF5ID0gYWJzdGVudGlvbnNcbiAgICBhYnN0ZW50aW9ucyA9IFtdXG4gICAgZm9yIChsZXQgYWJzZW50aW9uc0l0ZW0gb2YgYWJzdGVudGlvbnNBcnJheSkge1xuICAgICAgaWYgKGFic2VudGlvbnNJdGVtID09PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBhYnNlbnRpb25zSXRlbSA9IGFic2VudGlvbnNJdGVtLnZvdGFudFxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWJzZW50aW9uc0l0ZW0pKSB7XG4gICAgICAgIGFic3RlbnRpb25zLnB1c2goLi4uYWJzZW50aW9uc0l0ZW0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhc3NlcnQoYWJzZW50aW9uc0l0ZW0pXG4gICAgICAgIGFic3RlbnRpb25zLnB1c2goYWJzZW50aW9uc0l0ZW0pXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChhYnN0ZW50aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5hYnN0ZW50aW9uc1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5hYnN0ZW50aW9ucyA9IGFic3RlbnRpb25zXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBhYnN0ZW50aW9ucykge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IG5vblZvdGFudHNWb2xvbnRhaXJlcyA9IGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudHNWb2xvbnRhaXJlc1xuICBpZiAobm9uVm90YW50c1ZvbG9udGFpcmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobm9uVm90YW50c1ZvbG9udGFpcmVzKSkge1xuICAgICAgbm9uVm90YW50c1ZvbG9udGFpcmVzID0gW25vblZvdGFudHNWb2xvbnRhaXJlc11cbiAgICB9XG4gICAgY29uc3Qgbm9uVm90YW50c1ZvbG9udGFpcmVzQXJyYXkgPSBub25Wb3RhbnRzVm9sb250YWlyZXNcbiAgICBub25Wb3RhbnRzVm9sb250YWlyZXMgPSBbXVxuICAgIGZvciAobGV0IGFic2VudGlvbnNJdGVtIG9mIG5vblZvdGFudHNWb2xvbnRhaXJlc0FycmF5KSB7XG4gICAgICBpZiAoYWJzZW50aW9uc0l0ZW0gPT09IG51bGwpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGFic2VudGlvbnNJdGVtID0gYWJzZW50aW9uc0l0ZW0udm90YW50XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShhYnNlbnRpb25zSXRlbSkpIHtcbiAgICAgICAgbm9uVm90YW50c1ZvbG9udGFpcmVzLnB1c2goLi4uYWJzZW50aW9uc0l0ZW0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhc3NlcnQoYWJzZW50aW9uc0l0ZW0pXG4gICAgICAgIG5vblZvdGFudHNWb2xvbnRhaXJlcy5wdXNoKGFic2VudGlvbnNJdGVtKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9uVm90YW50c1ZvbG9udGFpcmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudHNWb2xvbnRhaXJlc1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzVm9sb250YWlyZXMgPSBub25Wb3RhbnRzVm9sb250YWlyZXNcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIG5vblZvdGFudHNWb2xvbnRhaXJlcykge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhblNjcnV0aW4oc2NydXRpbjogYW55KTogdm9pZCB7XG4gIGNsZWFuWG1sQXJ0ZWZhY3RzKHNjcnV0aW4pXG5cbiAgY29uc3QgZGVtYW5kZXVyID0gc2NydXRpbi5kZW1hbmRldXJcbiAgYXNzZXJ0KGRlbWFuZGV1cilcbiAge1xuICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKGRlbWFuZGV1cilcblxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZW1hbmRldXIucmVmZXJlbmNlTGVnaXNsYXRpdmUsIHVuZGVmaW5lZClcbiAgfVxuXG4gIGNvbnN0IG9iamV0ID0gc2NydXRpbi5vYmpldFxuICBhc3NlcnQob2JqZXQpXG4gIHtcbiAgICBjbGVhblhtbEFydGVmYWN0cyhvYmpldClcblxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChvYmpldC5yZWZlcmVuY2VMZWdpc2xhdGl2ZSwgdW5kZWZpbmVkKVxuICB9XG5cbiAgbGV0IHZlbnRpbGF0aW9uVm90ZXMgPSBzY3J1dGluLnZlbnRpbGF0aW9uVm90ZXNcbiAgYXNzZXJ0KHZlbnRpbGF0aW9uVm90ZXMpXG4gIHtcbiAgICB2ZW50aWxhdGlvblZvdGVzID0gdmVudGlsYXRpb25Wb3Rlcy5vcmdhbmVcbiAgICBhc3NlcnQodmVudGlsYXRpb25Wb3RlcylcblxuICAgIGxldCBncm91cGVzID0gdmVudGlsYXRpb25Wb3Rlcy5ncm91cGVzXG4gICAgYXNzZXJ0KGdyb3VwZXMpXG4gICAge1xuICAgICAgZ3JvdXBlcyA9IGdyb3VwZXMuZ3JvdXBlXG4gICAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShncm91cGVzKSlcbiAgICAgIGZvciAoY29uc3QgZ3JvdXBlIG9mIGdyb3VwZXMpIHtcbiAgICAgICAgY29uc3Qgdm90ZSA9IGdyb3VwZS52b3RlXG4gICAgICAgIGFzc2VydCh2b3RlKVxuICAgICAgICB7XG4gICAgICAgICAgY29uc3QgZGVjb21wdGVWb2l4ID0gdm90ZS5kZWNvbXB0ZVZvaXhcbiAgICAgICAgICBhc3NlcnQoZGVjb21wdGVWb2l4KVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmIChkZWNvbXB0ZVZvaXguYWJzdGVudGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZVZvaXguYWJzdGVudGlvbnMsIHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgZGVjb21wdGVWb2l4LmFic3RlbnRpb25zID0gZGVjb21wdGVWb2l4LmFic3RlbnRpb25cbiAgICAgICAgICAgICAgZGVsZXRlIGRlY29tcHRlVm9peC5hYnN0ZW50aW9uXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChkZWNvbXB0ZVZvaXgubm9uVm90YW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlY29tcHRlVm9peC5ub25Wb3RhbnRzLCB1bmRlZmluZWQpXG4gICAgICAgICAgICAgIGRlY29tcHRlVm9peC5ub25Wb3RhbnRzID0gZGVjb21wdGVWb2l4Lm5vblZvdGFudFxuICAgICAgICAgICAgICBkZWxldGUgZGVjb21wdGVWb2l4Lm5vblZvdGFudFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGRlY29tcHRlTm9taW5hdGlmID0gdm90ZS5kZWNvbXB0ZU5vbWluYXRpZlxuICAgICAgICAgIGFzc2VydChkZWNvbXB0ZU5vbWluYXRpZilcbiAgICAgICAgICBjbGVhbkRlY29tcHRlTm9taW5hdGlmKGRlY29tcHRlTm9taW5hdGlmKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2ZW50aWxhdGlvblZvdGVzLmdyb3VwZXMgPSBncm91cGVzXG4gICAgfVxuXG4gICAgc2NydXRpbi52ZW50aWxhdGlvblZvdGVzID0gdmVudGlsYXRpb25Wb3Rlc1xuICB9XG5cbiAgY29uc3QgbWlzZUF1UG9pbnQgPSBzY3J1dGluLm1pc2VBdVBvaW50XG4gIGlmIChtaXNlQXVQb2ludCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY2xlYW5EZWNvbXB0ZU5vbWluYXRpZihtaXNlQXVQb2ludClcblxuICAgIGxldCBkeXNmb25jdGlvbm5lbWVudCA9IG1pc2VBdVBvaW50LmR5c2ZvbmN0aW9ubmVtZW50XG4gICAgaWYgKGR5c2ZvbmN0aW9ubmVtZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNsZWFuRGVjb21wdGVOb21pbmF0aWYoZHlzZm9uY3Rpb25uZW1lbnQpXG4gICAgICBpZiAoXG4gICAgICAgIE9iamVjdC52YWx1ZXMoZHlzZm9uY3Rpb25uZW1lbnQpLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgLmxlbmd0aCA9PT0gMFxuICAgICAgKSB7XG4gICAgICAgIGRlbGV0ZSBtaXNlQXVQb2ludC5keXNmb25jdGlvbm5lbWVudFxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChcbiAgICAgIE9iamVjdC52YWx1ZXMobWlzZUF1UG9pbnQpLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgIC5sZW5ndGggPT09IDBcbiAgICApIHtcbiAgICAgIGRlbGV0ZSBzY3J1dGluLm1pc2VBdVBvaW50XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNsZWFuVm90YW50KHZvdGFudDogYW55KSB7XG4gIGNsZWFuQm9vbGVhbkF0dHJpYnV0ZSh2b3RhbnQs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