@tricoteuses/assemblee 1.6.0 → 1.7.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.
@@ -34,6 +34,12 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
34
34
  function cleanDecompteNominatif(decompteNominatif) {
35
35
  (0, _xml.cleanXmlArtefacts)(decompteNominatif);
36
36
  var nonVotants = decompteNominatif.nonVotants;
37
+ if (nonVotants === undefined) {
38
+ nonVotants = decompteNominatif.nonVotant;
39
+ delete decompteNominatif.nonVotant;
40
+ } else {
41
+ _assert["default"].strictEqual(decompteNominatif.nonVotant, undefined);
42
+ }
37
43
  if (nonVotants !== undefined) {
38
44
  if (typeof nonVotants === "string") {
39
45
  _assert["default"].strictEqual(nonVotants, "0");
@@ -87,6 +93,7 @@ function cleanDecompteNominatif(decompteNominatif) {
87
93
  var pour = decompteNominatif.pour;
88
94
  if (pour === undefined) {
89
95
  pour = decompteNominatif.pours;
96
+ delete decompteNominatif.pours;
90
97
  } else {
91
98
  _assert["default"].strictEqual(decompteNominatif.pours, undefined);
92
99
  }
@@ -113,11 +120,11 @@ function cleanDecompteNominatif(decompteNominatif) {
113
120
  _iterator3.f();
114
121
  }
115
122
  }
116
- delete decompteNominatif.pours;
117
123
  }
118
124
  var contre = decompteNominatif.contre;
119
125
  if (contre === undefined) {
120
126
  contre = decompteNominatif.contres;
127
+ delete decompteNominatif.contres;
121
128
  } else {
122
129
  _assert["default"].strictEqual(decompteNominatif.contres, undefined);
123
130
  }
@@ -144,11 +151,17 @@ function cleanDecompteNominatif(decompteNominatif) {
144
151
  _iterator4.f();
145
152
  }
146
153
  }
147
- delete decompteNominatif.contres;
148
154
  }
149
155
  var abstentions = decompteNominatif.abstentions;
156
+ if (abstentions === undefined) {
157
+ abstentions = decompteNominatif.abstention;
158
+ delete decompteNominatif.abstention;
159
+ } else {
160
+ _assert["default"].strictEqual(decompteNominatif.abstention, undefined);
161
+ }
150
162
  if (abstentions !== undefined) {
151
163
  if (!Array.isArray(abstentions)) {
164
+ (0, _assert["default"])(abstentions);
152
165
  abstentions = [abstentions];
153
166
  }
154
167
  var abstentionsArray = abstentions;
@@ -323,4 +336,4 @@ function cleanScrutin(scrutin) {
323
336
  function cleanVotant(votant) {
324
337
  (0, _xml.cleanBooleanAttribute)(votant, "parDelegation");
325
338
  }
326
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfeG1sIiwib2JqIiwiX19lc01vZHVsZSIsIl90b0NvbnN1bWFibGVBcnJheSIsImFyciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJUeXBlRXJyb3IiLCJpdGVyIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImZyb20iLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIm8iLCJhbGxvd0FycmF5TGlrZSIsIml0IiwibGVuZ3RoIiwiaSIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImUiLCJfZSIsImYiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwiZXJyIiwiY2FsbCIsInN0ZXAiLCJuZXh0IiwiX2UyIiwibWluTGVuIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsInRlc3QiLCJsZW4iLCJhcnIyIiwiY2xlYW5EZWNvbXB0ZU5vbWluYXRpZiIsImRlY29tcHRlTm9taW5hdGlmIiwiY2xlYW5YbWxBcnRlZmFjdHMiLCJub25Wb3RhbnRzIiwidW5kZWZpbmVkIiwiYXNzZXJ0Iiwic3RyaWN0RXF1YWwiLCJub25Wb3RhbnRzQXJyYXkiLCJfaXRlcmF0b3IiLCJfc3RlcCIsIm5vblZvdGFudCIsInZvdGFudCIsIl9ub25Wb3RhbnRzIiwicHVzaCIsImFwcGx5IiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsImNsZWFuVm90YW50IiwicG91ciIsInBvdXJzIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsImNvbnRyZSIsImNvbnRyZXMiLCJfaXRlcmF0b3I0IiwiX3N0ZXA0IiwiYWJzdGVudGlvbnMiLCJhYnN0ZW50aW9uc0FycmF5IiwiX2l0ZXJhdG9yNSIsIl9zdGVwNSIsImFic2VudGlvbnNJdGVtIiwiX2Fic3RlbnRpb25zIiwiX2l0ZXJhdG9yNiIsIl9zdGVwNiIsIm5vblZvdGFudHNWb2xvbnRhaXJlcyIsIm5vblZvdGFudHNWb2xvbnRhaXJlc0FycmF5IiwiX2l0ZXJhdG9yNyIsIl9zdGVwNyIsIl9ub25Wb3RhbnRzVm9sb250YWlyZSIsIl9pdGVyYXRvcjgiLCJfc3RlcDgiLCJjbGVhblNjcnV0aW4iLCJzY3J1dGluIiwiZGVtYW5kZXVyIiwicmVmZXJlbmNlTGVnaXNsYXRpdmUiLCJvYmpldCIsInZlbnRpbGF0aW9uVm90ZXMiLCJvcmdhbmUiLCJncm91cGVzIiwiZ3JvdXBlIiwiX2l0ZXJhdG9yOSIsIl9zdGVwOSIsInZvdGUiLCJkZWNvbXB0ZVZvaXgiLCJhYnN0ZW50aW9uIiwibWlzZUF1UG9pbnQiLCJkeXNmb25jdGlvbm5lbWVudCIsInZhbHVlcyIsImZpbHRlciIsImNsZWFuQm9vbGVhbkF0dHJpYnV0ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGVhbmVycy9zY3J1dGlucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIlxuXG5pbXBvcnQgeyBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUsIGNsZWFuWG1sQXJ0ZWZhY3RzIH0gZnJvbSBcIi4veG1sXCJcblxuZnVuY3Rpb24gY2xlYW5EZWNvbXB0ZU5vbWluYXRpZihkZWNvbXB0ZU5vbWluYXRpZjogYW55KSB7XG4gIGNsZWFuWG1sQXJ0ZWZhY3RzKGRlY29tcHRlTm9taW5hdGlmKVxuXG4gIGxldCBub25Wb3RhbnRzID0gZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1xuICBpZiAobm9uVm90YW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHR5cGVvZiBub25Wb3RhbnRzID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobm9uVm90YW50cywgXCIwXCIpXG4gICAgICBub25Wb3RhbnRzID0gW11cbiAgICB9IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KG5vblZvdGFudHMpKSB7XG4gICAgICBhc3NlcnQobm9uVm90YW50cylcbiAgICAgIG5vblZvdGFudHMgPSBbbm9uVm90YW50c11cbiAgICB9XG4gICAgY29uc3Qgbm9uVm90YW50c0FycmF5ID0gbm9uVm90YW50c1xuICAgIG5vblZvdGFudHMgPSBbXVxuICAgIGZvciAobGV0IG5vblZvdGFudCBvZiBub25Wb3RhbnRzQXJyYXkpIHtcbiAgICAgIGlmIChub25Wb3RhbnQgPT09IG51bGwpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIG5vblZvdGFudCA9IG5vblZvdGFudC52b3RhbnRcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG5vblZvdGFudCkpIHtcbiAgICAgICAgbm9uVm90YW50cy5wdXNoKC4uLm5vblZvdGFudClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFzc2VydChub25Wb3RhbnQpXG4gICAgICAgIG5vblZvdGFudHMucHVzaChub25Wb3RhbnQpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChub25Wb3RhbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudHNcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50cyA9IG5vblZvdGFudHNcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIG5vblZvdGFudHMpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCBwb3VyID0gZGVjb21wdGVOb21pbmF0aWYucG91clxuICBpZiAocG91ciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcG91ciA9IGRlY29tcHRlTm9taW5hdGlmLnBvdXJzXG4gIH0gZWxzZSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlY29tcHRlTm9taW5hdGlmLnBvdXJzLCB1bmRlZmluZWQpXG4gIH1cbiAgaWYgKHBvdXIgIT09IHVuZGVmaW5lZCkge1xuICAgIHBvdXIgPSBwb3VyLnZvdGFudFxuICAgIGlmICghQXJyYXkuaXNBcnJheShwb3VyKSkge1xuICAgICAgYXNzZXJ0KHBvdXIpXG4gICAgICBwb3VyID0gW3BvdXJdXG4gICAgfVxuICAgIGlmIChwb3VyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLnBvdXJcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYucG91ciA9IHBvdXJcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIHBvdXIpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYucG91cnNcbiAgfVxuXG4gIGxldCBjb250cmUgPSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVcbiAgaWYgKGNvbnRyZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29udHJlID0gZGVjb21wdGVOb21pbmF0aWYuY29udHJlc1xuICB9IGVsc2Uge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVzLCB1bmRlZmluZWQpXG4gIH1cbiAgaWYgKGNvbnRyZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29udHJlID0gY29udHJlLnZvdGFudFxuICAgIGlmICghQXJyYXkuaXNBcnJheShjb250cmUpKSB7XG4gICAgICBhc3NlcnQoY29udHJlKVxuICAgICAgY29udHJlID0gW2NvbnRyZV1cbiAgICB9XG4gICAgaWYgKGNvbnRyZS5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYuY29udHJlID0gY29udHJlXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBjb250cmUpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYuY29udHJlc1xuICB9XG5cbiAgbGV0IGFic3RlbnRpb25zID0gZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvbnNcbiAgaWYgKGFic3RlbnRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWJzdGVudGlvbnMpKSB7XG4gICAgICBhYnN0ZW50aW9ucyA9IFthYnN0ZW50aW9uc11cbiAgICB9XG4gICAgY29uc3QgYWJzdGVudGlvbnNBcnJheSA9IGFic3RlbnRpb25zXG4gICAgYWJzdGVudGlvbnMgPSBbXVxuICAgIGZvciAobGV0IGFic2VudGlvbnNJdGVtIG9mIGFic3RlbnRpb25zQXJyYXkpIHtcbiAgICAgIGlmIChhYnNlbnRpb25zSXRlbSA9PT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgYWJzZW50aW9uc0l0ZW0gPSBhYnNlbnRpb25zSXRlbS52b3RhbnRcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGFic2VudGlvbnNJdGVtKSkge1xuICAgICAgICBhYnN0ZW50aW9ucy5wdXNoKC4uLmFic2VudGlvbnNJdGVtKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXNzZXJ0KGFic2VudGlvbnNJdGVtKVxuICAgICAgICBhYnN0ZW50aW9ucy5wdXNoKGFic2VudGlvbnNJdGVtKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWJzdGVudGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvbnNcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvbnMgPSBhYnN0ZW50aW9uc1xuICAgICAgZm9yIChjb25zdCB2b3RhbnQgb2YgYWJzdGVudGlvbnMpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCBub25Wb3RhbnRzVm9sb250YWlyZXMgPSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzVm9sb250YWlyZXNcbiAgaWYgKG5vblZvdGFudHNWb2xvbnRhaXJlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG5vblZvdGFudHNWb2xvbnRhaXJlcykpIHtcbiAgICAgIG5vblZvdGFudHNWb2xvbnRhaXJlcyA9IFtub25Wb3RhbnRzVm9sb250YWlyZXNdXG4gICAgfVxuICAgIGNvbnN0IG5vblZvdGFudHNWb2xvbnRhaXJlc0FycmF5ID0gbm9uVm90YW50c1ZvbG9udGFpcmVzXG4gICAgbm9uVm90YW50c1ZvbG9udGFpcmVzID0gW11cbiAgICBmb3IgKGxldCBhYnNlbnRpb25zSXRlbSBvZiBub25Wb3RhbnRzVm9sb250YWlyZXNBcnJheSkge1xuICAgICAgaWYgKGFic2VudGlvbnNJdGVtID09PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBhYnNlbnRpb25zSXRlbSA9IGFic2VudGlvbnNJdGVtLnZvdGFudFxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWJzZW50aW9uc0l0ZW0pKSB7XG4gICAgICAgIG5vblZvdGFudHNWb2xvbnRhaXJlcy5wdXNoKC4uLmFic2VudGlvbnNJdGVtKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXNzZXJ0KGFic2VudGlvbnNJdGVtKVxuICAgICAgICBub25Wb3RhbnRzVm9sb250YWlyZXMucHVzaChhYnNlbnRpb25zSXRlbSlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vblZvdGFudHNWb2xvbnRhaXJlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzVm9sb250YWlyZXNcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1ZvbG9udGFpcmVzID0gbm9uVm90YW50c1ZvbG9udGFpcmVzXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBub25Wb3RhbnRzVm9sb250YWlyZXMpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5TY3J1dGluKHNjcnV0aW46IGFueSk6IHZvaWQge1xuICBjbGVhblhtbEFydGVmYWN0cyhzY3J1dGluKVxuXG4gIGNvbnN0IGRlbWFuZGV1ciA9IHNjcnV0aW4uZGVtYW5kZXVyXG4gIGFzc2VydChkZW1hbmRldXIpXG4gIHtcbiAgICBjbGVhblhtbEFydGVmYWN0cyhkZW1hbmRldXIpXG5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVtYW5kZXVyLnJlZmVyZW5jZUxlZ2lzbGF0aXZlLCB1bmRlZmluZWQpXG4gIH1cblxuICBjb25zdCBvYmpldCA9IHNjcnV0aW4ub2JqZXRcbiAgYXNzZXJ0KG9iamV0KVxuICB7XG4gICAgY2xlYW5YbWxBcnRlZmFjdHMob2JqZXQpXG5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2JqZXQucmVmZXJlbmNlTGVnaXNsYXRpdmUsIHVuZGVmaW5lZClcbiAgfVxuXG4gIGxldCB2ZW50aWxhdGlvblZvdGVzID0gc2NydXRpbi52ZW50aWxhdGlvblZvdGVzXG4gIGFzc2VydCh2ZW50aWxhdGlvblZvdGVzKVxuICB7XG4gICAgdmVudGlsYXRpb25Wb3RlcyA9IHZlbnRpbGF0aW9uVm90ZXMub3JnYW5lXG4gICAgYXNzZXJ0KHZlbnRpbGF0aW9uVm90ZXMpXG5cbiAgICBsZXQgZ3JvdXBlcyA9IHZlbnRpbGF0aW9uVm90ZXMuZ3JvdXBlc1xuICAgIGFzc2VydChncm91cGVzKVxuICAgIHtcbiAgICAgIGdyb3VwZXMgPSBncm91cGVzLmdyb3VwZVxuICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoZ3JvdXBlcykpXG4gICAgICBmb3IgKGNvbnN0IGdyb3VwZSBvZiBncm91cGVzKSB7XG4gICAgICAgIGNvbnN0IHZvdGUgPSBncm91cGUudm90ZVxuICAgICAgICBhc3NlcnQodm90ZSlcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IGRlY29tcHRlVm9peCA9IHZvdGUuZGVjb21wdGVWb2l4XG4gICAgICAgICAgYXNzZXJ0KGRlY29tcHRlVm9peClcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZiAoZGVjb21wdGVWb2l4LmFic3RlbnRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb21wdGVWb2l4LmFic3RlbnRpb25zLCB1bmRlZmluZWQpXG4gICAgICAgICAgICAgIGRlY29tcHRlVm9peC5hYnN0ZW50aW9ucyA9IGRlY29tcHRlVm9peC5hYnN0ZW50aW9uXG4gICAgICAgICAgICAgIGRlbGV0ZSBkZWNvbXB0ZVZvaXguYWJzdGVudGlvblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZGVjb21wdGVWb2l4Lm5vblZvdGFudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZVZvaXgubm9uVm90YW50cywgdW5kZWZpbmVkKVxuICAgICAgICAgICAgICBkZWNvbXB0ZVZvaXgubm9uVm90YW50cyA9IGRlY29tcHRlVm9peC5ub25Wb3RhbnRcbiAgICAgICAgICAgICAgZGVsZXRlIGRlY29tcHRlVm9peC5ub25Wb3RhbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBkZWNvbXB0ZU5vbWluYXRpZiA9IHZvdGUuZGVjb21wdGVOb21pbmF0aWZcbiAgICAgICAgICBhc3NlcnQoZGVjb21wdGVOb21pbmF0aWYpXG4gICAgICAgICAgY2xlYW5EZWNvbXB0ZU5vbWluYXRpZihkZWNvbXB0ZU5vbWluYXRpZilcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmVudGlsYXRpb25Wb3Rlcy5ncm91cGVzID0gZ3JvdXBlc1xuICAgIH1cblxuICAgIHNjcnV0aW4udmVudGlsYXRpb25Wb3RlcyA9IHZlbnRpbGF0aW9uVm90ZXNcbiAgfVxuXG4gIGNvbnN0IG1pc2VBdVBvaW50ID0gc2NydXRpbi5taXNlQXVQb2ludFxuICBpZiAobWlzZUF1UG9pbnQgIT09IHVuZGVmaW5lZCkge1xuICAgIGNsZWFuRGVjb21wdGVOb21pbmF0aWYobWlzZUF1UG9pbnQpXG5cbiAgICBsZXQgZHlzZm9uY3Rpb25uZW1lbnQgPSBtaXNlQXVQb2ludC5keXNmb25jdGlvbm5lbWVudFxuICAgIGlmIChkeXNmb25jdGlvbm5lbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjbGVhbkRlY29tcHRlTm9taW5hdGlmKGR5c2ZvbmN0aW9ubmVtZW50KVxuICAgICAgaWYgKFxuICAgICAgICBPYmplY3QudmFsdWVzKGR5c2ZvbmN0aW9ubmVtZW50KS5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIC5sZW5ndGggPT09IDBcbiAgICAgICkge1xuICAgICAgICBkZWxldGUgbWlzZUF1UG9pbnQuZHlzZm9uY3Rpb25uZW1lbnRcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBPYmplY3QudmFsdWVzKG1pc2VBdVBvaW50KS5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAubGVuZ3RoID09PSAwXG4gICAgKSB7XG4gICAgICBkZWxldGUgc2NydXRpbi5taXNlQXVQb2ludFxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjbGVhblZvdGFudCh2b3RhbnQ6IGFueSkge1xuICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUodm90YW50LCBcInBhckRlbGVnYXRpb25cIilcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxJQUFBLEdBQUFELE9BQUE7QUFBZ0UsU0FBQUQsdUJBQUFHLEdBQUEsV0FB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
339
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfeG1sIiwib2JqIiwiX19lc01vZHVsZSIsIl90b0NvbnN1bWFibGVBcnJheSIsImFyciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJUeXBlRXJyb3IiLCJpdGVyIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImZyb20iLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIm8iLCJhbGxvd0FycmF5TGlrZSIsIml0IiwibGVuZ3RoIiwiaSIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImUiLCJfZSIsImYiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwiZXJyIiwiY2FsbCIsInN0ZXAiLCJuZXh0IiwiX2UyIiwibWluTGVuIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsInRlc3QiLCJsZW4iLCJhcnIyIiwiY2xlYW5EZWNvbXB0ZU5vbWluYXRpZiIsImRlY29tcHRlTm9taW5hdGlmIiwiY2xlYW5YbWxBcnRlZmFjdHMiLCJub25Wb3RhbnRzIiwidW5kZWZpbmVkIiwibm9uVm90YW50IiwiYXNzZXJ0Iiwic3RyaWN0RXF1YWwiLCJub25Wb3RhbnRzQXJyYXkiLCJfaXRlcmF0b3IiLCJfc3RlcCIsInZvdGFudCIsIl9ub25Wb3RhbnRzIiwicHVzaCIsImFwcGx5IiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsImNsZWFuVm90YW50IiwicG91ciIsInBvdXJzIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsImNvbnRyZSIsImNvbnRyZXMiLCJfaXRlcmF0b3I0IiwiX3N0ZXA0IiwiYWJzdGVudGlvbnMiLCJhYnN0ZW50aW9uIiwiYWJzdGVudGlvbnNBcnJheSIsIl9pdGVyYXRvcjUiLCJfc3RlcDUiLCJhYnNlbnRpb25zSXRlbSIsIl9hYnN0ZW50aW9ucyIsIl9pdGVyYXRvcjYiLCJfc3RlcDYiLCJub25Wb3RhbnRzVm9sb250YWlyZXMiLCJub25Wb3RhbnRzVm9sb250YWlyZXNBcnJheSIsIl9pdGVyYXRvcjciLCJfc3RlcDciLCJfbm9uVm90YW50c1ZvbG9udGFpcmUiLCJfaXRlcmF0b3I4IiwiX3N0ZXA4IiwiY2xlYW5TY3J1dGluIiwic2NydXRpbiIsImRlbWFuZGV1ciIsInJlZmVyZW5jZUxlZ2lzbGF0aXZlIiwib2JqZXQiLCJ2ZW50aWxhdGlvblZvdGVzIiwib3JnYW5lIiwiZ3JvdXBlcyIsImdyb3VwZSIsIl9pdGVyYXRvcjkiLCJfc3RlcDkiLCJ2b3RlIiwiZGVjb21wdGVWb2l4IiwibWlzZUF1UG9pbnQiLCJkeXNmb25jdGlvbm5lbWVudCIsInZhbHVlcyIsImZpbHRlciIsImNsZWFuQm9vbGVhbkF0dHJpYnV0ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGVhbmVycy9zY3J1dGlucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIlxuXG5pbXBvcnQgeyBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUsIGNsZWFuWG1sQXJ0ZWZhY3RzIH0gZnJvbSBcIi4veG1sXCJcblxuZnVuY3Rpb24gY2xlYW5EZWNvbXB0ZU5vbWluYXRpZihkZWNvbXB0ZU5vbWluYXRpZjogYW55KSB7XG4gIGNsZWFuWG1sQXJ0ZWZhY3RzKGRlY29tcHRlTm9taW5hdGlmKVxuXG4gIGxldCBub25Wb3RhbnRzID0gZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1xuICBpZiAobm9uVm90YW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgbm9uVm90YW50cyA9IGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudFxuICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRcbiAgfSBlbHNlIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50LCB1bmRlZmluZWQpXG4gIH1cbiAgaWYgKG5vblZvdGFudHMgIT09IHVuZGVmaW5lZCkge1xuICAgIGlmICh0eXBlb2Ygbm9uVm90YW50cyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5vblZvdGFudHMsIFwiMFwiKVxuICAgICAgbm9uVm90YW50cyA9IFtdXG4gICAgfSBlbHNlIGlmICghQXJyYXkuaXNBcnJheShub25Wb3RhbnRzKSkge1xuICAgICAgYXNzZXJ0KG5vblZvdGFudHMpXG4gICAgICBub25Wb3RhbnRzID0gW25vblZvdGFudHNdXG4gICAgfVxuICAgIGNvbnN0IG5vblZvdGFudHNBcnJheSA9IG5vblZvdGFudHNcbiAgICBub25Wb3RhbnRzID0gW11cbiAgICBmb3IgKGxldCBub25Wb3RhbnQgb2Ygbm9uVm90YW50c0FycmF5KSB7XG4gICAgICBpZiAobm9uVm90YW50ID09PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBub25Wb3RhbnQgPSBub25Wb3RhbnQudm90YW50XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShub25Wb3RhbnQpKSB7XG4gICAgICAgIG5vblZvdGFudHMucHVzaCguLi5ub25Wb3RhbnQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhc3NlcnQobm9uVm90YW50KVxuICAgICAgICBub25Wb3RhbnRzLnB1c2gobm9uVm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9uVm90YW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzXG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudHMgPSBub25Wb3RhbnRzXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBub25Wb3RhbnRzKSB7XG4gICAgICAgIGNsZWFuVm90YW50KHZvdGFudClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgcG91ciA9IGRlY29tcHRlTm9taW5hdGlmLnBvdXJcbiAgaWYgKHBvdXIgPT09IHVuZGVmaW5lZCkge1xuICAgIHBvdXIgPSBkZWNvbXB0ZU5vbWluYXRpZi5wb3Vyc1xuICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5wb3Vyc1xuICB9IGVsc2Uge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZU5vbWluYXRpZi5wb3VycywgdW5kZWZpbmVkKVxuICB9XG4gIGlmIChwb3VyICE9PSB1bmRlZmluZWQpIHtcbiAgICBwb3VyID0gcG91ci52b3RhbnRcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocG91cikpIHtcbiAgICAgIGFzc2VydChwb3VyKVxuICAgICAgcG91ciA9IFtwb3VyXVxuICAgIH1cbiAgICBpZiAocG91ci5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5wb3VyXG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY29tcHRlTm9taW5hdGlmLnBvdXIgPSBwb3VyXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBwb3VyKSB7XG4gICAgICAgIGNsZWFuVm90YW50KHZvdGFudClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgY29udHJlID0gZGVjb21wdGVOb21pbmF0aWYuY29udHJlXG4gIGlmIChjb250cmUgPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnRyZSA9IGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZXNcbiAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYuY29udHJlc1xuICB9IGVsc2Uge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVzLCB1bmRlZmluZWQpXG4gIH1cbiAgaWYgKGNvbnRyZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29udHJlID0gY29udHJlLnZvdGFudFxuICAgIGlmICghQXJyYXkuaXNBcnJheShjb250cmUpKSB7XG4gICAgICBhc3NlcnQoY29udHJlKVxuICAgICAgY29udHJlID0gW2NvbnRyZV1cbiAgICB9XG4gICAgaWYgKGNvbnRyZS5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYuY29udHJlID0gY29udHJlXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBjb250cmUpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCBhYnN0ZW50aW9ucyA9IGRlY29tcHRlTm9taW5hdGlmLmFic3RlbnRpb25zXG4gIGlmIChhYnN0ZW50aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgYWJzdGVudGlvbnMgPSBkZWNvbXB0ZU5vbWluYXRpZi5hYnN0ZW50aW9uXG4gICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLmFic3RlbnRpb25cbiAgfSBlbHNlIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvbiwgdW5kZWZpbmVkKVxuICB9XG4gIGlmIChhYnN0ZW50aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFic3RlbnRpb25zKSkge1xuICAgICAgYXNzZXJ0KGFic3RlbnRpb25zKVxuICAgICAgYWJzdGVudGlvbnMgPSBbYWJzdGVudGlvbnNdXG4gICAgfVxuICAgIGNvbnN0IGFic3RlbnRpb25zQXJyYXkgPSBhYnN0ZW50aW9uc1xuICAgIGFic3RlbnRpb25zID0gW11cbiAgICBmb3IgKGxldCBhYnNlbnRpb25zSXRlbSBvZiBhYnN0ZW50aW9uc0FycmF5KSB7XG4gICAgICBpZiAoYWJzZW50aW9uc0l0ZW0gPT09IG51bGwpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGFic2VudGlvbnNJdGVtID0gYWJzZW50aW9uc0l0ZW0udm90YW50XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShhYnNlbnRpb25zSXRlbSkpIHtcbiAgICAgICAgYWJzdGVudGlvbnMucHVzaCguLi5hYnNlbnRpb25zSXRlbSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFzc2VydChhYnNlbnRpb25zSXRlbSlcbiAgICAgICAgYWJzdGVudGlvbnMucHVzaChhYnNlbnRpb25zSXRlbSlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGFic3RlbnRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLmFic3RlbnRpb25zXG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY29tcHRlTm9taW5hdGlmLmFic3RlbnRpb25zID0gYWJzdGVudGlvbnNcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIGFic3RlbnRpb25zKSB7XG4gICAgICAgIGNsZWFuVm90YW50KHZvdGFudClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgbm9uVm90YW50c1ZvbG9udGFpcmVzID0gZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1ZvbG9udGFpcmVzXG4gIGlmIChub25Wb3RhbnRzVm9sb250YWlyZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShub25Wb3RhbnRzVm9sb250YWlyZXMpKSB7XG4gICAgICBub25Wb3RhbnRzVm9sb250YWlyZXMgPSBbbm9uVm90YW50c1ZvbG9udGFpcmVzXVxuICAgIH1cbiAgICBjb25zdCBub25Wb3RhbnRzVm9sb250YWlyZXNBcnJheSA9IG5vblZvdGFudHNWb2xvbnRhaXJlc1xuICAgIG5vblZvdGFudHNWb2xvbnRhaXJlcyA9IFtdXG4gICAgZm9yIChsZXQgYWJzZW50aW9uc0l0ZW0gb2Ygbm9uVm90YW50c1ZvbG9udGFpcmVzQXJyYXkpIHtcbiAgICAgIGlmIChhYnNlbnRpb25zSXRlbSA9PT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgYWJzZW50aW9uc0l0ZW0gPSBhYnNlbnRpb25zSXRlbS52b3RhbnRcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGFic2VudGlvbnNJdGVtKSkge1xuICAgICAgICBub25Wb3RhbnRzVm9sb250YWlyZXMucHVzaCguLi5hYnNlbnRpb25zSXRlbSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFzc2VydChhYnNlbnRpb25zSXRlbSlcbiAgICAgICAgbm9uVm90YW50c1ZvbG9udGFpcmVzLnB1c2goYWJzZW50aW9uc0l0ZW0pXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChub25Wb3RhbnRzVm9sb250YWlyZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1ZvbG9udGFpcmVzXG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudHNWb2xvbnRhaXJlcyA9IG5vblZvdGFudHNWb2xvbnRhaXJlc1xuICAgICAgZm9yIChjb25zdCB2b3RhbnQgb2Ygbm9uVm90YW50c1ZvbG9udGFpcmVzKSB7XG4gICAgICAgIGNsZWFuVm90YW50KHZvdGFudClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuU2NydXRpbihzY3J1dGluOiBhbnkpOiB2b2lkIHtcbiAgY2xlYW5YbWxBcnRlZmFjdHMoc2NydXRpbilcblxuICBjb25zdCBkZW1hbmRldXIgPSBzY3J1dGluLmRlbWFuZGV1clxuICBhc3NlcnQoZGVtYW5kZXVyKVxuICB7XG4gICAgY2xlYW5YbWxBcnRlZmFjdHMoZGVtYW5kZXVyKVxuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlbWFuZGV1ci5yZWZlcmVuY2VMZWdpc2xhdGl2ZSwgdW5kZWZpbmVkKVxuICB9XG5cbiAgY29uc3Qgb2JqZXQgPSBzY3J1dGluLm9iamV0XG4gIGFzc2VydChvYmpldClcbiAge1xuICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKG9iamV0KVxuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9iamV0LnJlZmVyZW5jZUxlZ2lzbGF0aXZlLCB1bmRlZmluZWQpXG4gIH1cblxuICBsZXQgdmVudGlsYXRpb25Wb3RlcyA9IHNjcnV0aW4udmVudGlsYXRpb25Wb3Rlc1xuICBhc3NlcnQodmVudGlsYXRpb25Wb3RlcylcbiAge1xuICAgIHZlbnRpbGF0aW9uVm90ZXMgPSB2ZW50aWxhdGlvblZvdGVzLm9yZ2FuZVxuICAgIGFzc2VydCh2ZW50aWxhdGlvblZvdGVzKVxuXG4gICAgbGV0IGdyb3VwZXMgPSB2ZW50aWxhdGlvblZvdGVzLmdyb3VwZXNcbiAgICBhc3NlcnQoZ3JvdXBlcylcbiAgICB7XG4gICAgICBncm91cGVzID0gZ3JvdXBlcy5ncm91cGVcbiAgICAgIGFzc2VydChBcnJheS5pc0FycmF5KGdyb3VwZXMpKVxuICAgICAgZm9yIChjb25zdCBncm91cGUgb2YgZ3JvdXBlcykge1xuICAgICAgICBjb25zdCB2b3RlID0gZ3JvdXBlLnZvdGVcbiAgICAgICAgYXNzZXJ0KHZvdGUpXG4gICAgICAgIHtcbiAgICAgICAgICBjb25zdCBkZWNvbXB0ZVZvaXggPSB2b3RlLmRlY29tcHRlVm9peFxuICAgICAgICAgIGFzc2VydChkZWNvbXB0ZVZvaXgpXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKGRlY29tcHRlVm9peC5hYnN0ZW50aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlY29tcHRlVm9peC5hYnN0ZW50aW9ucywgdW5kZWZpbmVkKVxuICAgICAgICAgICAgICBkZWNvbXB0ZVZvaXguYWJzdGVudGlvbnMgPSBkZWNvbXB0ZVZvaXguYWJzdGVudGlvblxuICAgICAgICAgICAgICBkZWxldGUgZGVjb21wdGVWb2l4LmFic3RlbnRpb25cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGRlY29tcHRlVm9peC5ub25Wb3RhbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb21wdGVWb2l4Lm5vblZvdGFudHMsIHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgZGVjb21wdGVWb2l4Lm5vblZvdGFudHMgPSBkZWNvbXB0ZVZvaXgubm9uVm90YW50XG4gICAgICAgICAgICAgIGRlbGV0ZSBkZWNvbXB0ZVZvaXgubm9uVm90YW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZGVjb21wdGVOb21pbmF0aWYgPSB2b3RlLmRlY29tcHRlTm9taW5hdGlmXG4gICAgICAgICAgYXNzZXJ0KGRlY29tcHRlTm9taW5hdGlmKVxuICAgICAgICAgIGNsZWFuRGVjb21wdGVOb21pbmF0aWYoZGVjb21wdGVOb21pbmF0aWYpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZlbnRpbGF0aW9uVm90ZXMuZ3JvdXBlcyA9IGdyb3VwZXNcbiAgICB9XG5cbiAgICBzY3J1dGluLnZlbnRpbGF0aW9uVm90ZXMgPSB2ZW50aWxhdGlvblZvdGVzXG4gIH1cblxuICBjb25zdCBtaXNlQXVQb2ludCA9IHNjcnV0aW4ubWlzZUF1UG9pbnRcbiAgaWYgKG1pc2VBdVBvaW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbGVhbkRlY29tcHRlTm9taW5hdGlmKG1pc2VBdVBvaW50KVxuXG4gICAgbGV0IGR5c2ZvbmN0aW9ubmVtZW50ID0gbWlzZUF1UG9pbnQuZHlzZm9uY3Rpb25uZW1lbnRcbiAgICBpZiAoZHlzZm9uY3Rpb25uZW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2xlYW5EZWNvbXB0ZU5vbWluYXRpZihkeXNmb25jdGlvbm5lbWVudClcbiAgICAgIGlmIChcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhkeXNmb25jdGlvbm5lbWVudCkuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAubGVuZ3RoID09PSAwXG4gICAgICApIHtcbiAgICAgICAgZGVsZXRlIG1pc2VBdVBvaW50LmR5c2ZvbmN0aW9ubmVtZW50XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgT2JqZWN0LnZhbHVlcyhtaXNlQXVQb2ludCkuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgLmxlbmd0aCA9PT0gMFxuICAgICkge1xuICAgICAgZGVsZXRlIHNjcnV0aW4ubWlzZUF1UG9pbnRcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY2xlYW5Wb3RhbnQodm90YW50OiBhbnkpIHtcbiAgY2xlYW5Cb29sZWFuQXR0cmlidXRlKHZvdGFudCwgXCJwYXJEZWxlZ2F0aW9uXCIpXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsSUFBQSxHQUFBRCxPQUFBO0FBQWdFLFNBQUFELHVCQUFBRyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFBQSxTQUFBRSxtQkFBQUMsR0FBQSxXQUFBQyxrQkFBQSxDQUFBRCxHQUFBLEtBQUFFLGdCQUFBLENBQUFGLEdBQUEsS0FBQUcsMkJBQUEsQ0FBQUgsR0FBQSxLQUFBSSxrQkFBQTtBQUFBLFNBQUFBLG1CQUFBLGNBQUFDLFNBQUE7QUFBQSxTQUFBSCxpQkFBQUksSUFBQSxlQUFBQyxNQUFBLG9CQUFBRCxJQUFBLENBQUFDLE1BQUEsQ0FBQUMsUUFBQSxhQUFBRixJQUFBLCtCQUFBRyxLQUFBLENBQUFDLElBQUEsQ0FBQUosSUFBQTtBQUFBLFNBQUFMLG1CQUFBRCxHQUFBLFFBQUFTLEtBQUEsQ0FBQUUsT0FBQSxDQUFBWCxHQUFBLFVBQUFZLGlCQUFBLENBQUFaLEdBQUE7QUFBQSxTQUFBYSwyQkFBQUMsQ0FBQSxFQUFBQyxjQUFBLFFBQUFDLEVBQUEsVUFBQVQsTUFBQSxvQkFBQU8sQ0FBQSxDQUFBUCxNQUFBLENBQUFDLFFBQUEsS0FBQU0sQ0FBQSxxQkFBQUUsRUFBQSxRQUFBUCxLQUFBLENBQUFFLE9BQUEsQ0FBQUcsQ0FBQSxNQUFBRSxFQUFBLEdBQUFiLDJCQUFBLENBQUFXLENBQUEsTUFBQUMsY0FBQSxJQUFBRCxDQUFBLFdBQUFBLENBQUEsQ0FBQUcsTUFBQSxxQkFBQUQsRUFBQSxFQUFBRixDQUFBLEdBQUFFLEVBQUEsTUFBQUUsQ0FBQSxVQUFBQyxDQUFBLFlBQUFBLEVBQUEsZUFBQUMsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUEsRUFBQSxRQUFBSCxDQUFBLElBQUFKLENBQUEsQ0FBQUcsTUFBQSxXQUFBSyxJQUFBLG1CQUFBQSxJQUFBLFNBQUFDLEtBQUEsRUFBQVQsQ0FBQSxDQUFBSSxDQUFBLFVBQUFNLENBQUEsV0FBQUEsRUFBQUMsRUFBQSxVQUFBQSxFQUFBLEtBQUFDLENBQUEsRUFBQVAsQ0FBQSxnQkFBQWQsU0FBQSxpSkFBQXNCLGdCQUFBLFNBQUFDLE1BQUEsVUFBQUMsR0FBQSxXQUFBVCxDQUFBLFdBQUFBLEVBQUEsSUFBQUosRUFBQSxHQUFBQSxFQUFBLENBQUFjLElBQUEsQ0FBQWhCLENBQUEsTUFBQU8sQ0FBQSxXQUFBQSxFQUFBLFFBQUFVLElBQUEsR0FBQWYsRUFBQSxDQUFBZ0IsSUFBQSxJQUFBTCxnQkFBQSxHQUFBSSxJQUFBLENBQUFULElBQUEsU0FBQVMsSUFBQSxLQUFBUCxDQUFBLFdBQUFBLEVBQUFTLEdBQUEsSUFBQUwsTUFBQSxTQUFBQyxHQUFBLEdBQUFJLEdBQUEsS0FBQVAsQ0FBQSxXQUFBQSxFQUFBLGVBQUFDLGdCQUFBLElBQUFYLEVBQUEsb0JBQUFBLEVBQUEsOEJBQUFZLE1BQUEsUUFBQUMsR0FBQTtBQUFBLFNBQUExQiw0QkFBQVcsQ0FBQSxFQUFBb0IsTUFBQSxTQUFBcEIsQ0FBQSxxQkFBQUEsQ0FBQSxzQkFBQUYsaUJBQUEsQ0FBQUUsQ0FBQSxFQUFBb0IsTUFBQSxPQUFBYixDQUFBLEdBQUFjLE1BQUEsQ0FBQUMsU0FBQSxDQUFBQyxRQUFBLENBQUFQLElBQUEsQ0FBQWhCLENBQUEsRUFBQXdCLEtBQUEsYUFBQWpCLENBQUEsaUJBQUFQLENBQUEsQ0FBQXlCLFdBQUEsRUFBQWxCLENBQUEsR0FBQVAsQ0FBQSxDQUFBeUIsV0FBQSxDQUFBQyxJQUFBLE1BQUFuQixDQUFBLGNBQUFBLENBQUEsbUJBQUFaLEtBQUEsQ0FBQUMsSUFBQSxDQUFBSSxDQUFBLE9BQUFPLENBQUEsK0RBQUFvQixJQUFBLENBQUFwQixDQUFBLFVBQUFULGlCQUFBLENBQUFFLENBQUEsRUFBQW9CLE1BQUE7QUFBQSxTQUFBdEIsa0JBQUFaLEdBQUEsRUFBQTBDLEdBQUEsUUFBQUEsR0FBQSxZQUFBQSxHQUFBLEdBQUExQyxHQUFBLENBQUFpQixNQUFBLEVBQUF5QixHQUFBLEdBQUExQyxHQUFBLENBQUFpQixNQUFBLFdBQUFDLENBQUEsTUFBQXlCLElBQUEsT0FBQWxDLEtBQUEsQ0FBQWlDLEdBQUEsR0FBQXhCLENBQUEsR0FBQXdCLEdBQUEsRUFBQXhCLENBQUEsSUFBQXlCLElBQUEsQ0FBQXpCLENBQUEsSUFBQWxCLEdBQUEsQ0FBQWtCLENBQUEsVUFBQXlCLElBQUE7QUFFaEUsU0FBU0Msc0JBQXNCQSxDQUFDQyxpQkFBc0IsRUFBRTtFQUN0RCxJQUFBQyxzQkFBaUIsRUFBQ0QsaUJBQWlCLENBQUM7RUFFcEMsSUFBSUUsVUFBVSxHQUFHRixpQkFBaUIsQ0FBQ0UsVUFBVTtFQUM3QyxJQUFJQSxVQUFVLEtBQUtDLFNBQVMsRUFBRTtJQUM1QkQsVUFBVSxHQUFHRixpQkFBaUIsQ0FBQ0ksU0FBUztJQUN4QyxPQUFPSixpQkFBaUIsQ0FBQ0ksU0FBUztFQUNwQyxDQUFDLE1BQU07SUFDTEMsa0JBQU0sQ0FBQ0MsV0FBVyxDQUFDTixpQkFBaUIsQ0FBQ0ksU0FBUyxFQUFFRCxTQUFTLENBQUM7RUFDNUQ7RUFDQSxJQUFJRCxVQUFVLEtBQUtDLFNBQVMsRUFBRTtJQUM1QixJQUFJLE9BQU9ELFVBQVUsS0FBSyxRQUFRLEVBQUU7TUFDbENHLGtCQUFNLENBQUNDLFdBQVcsQ0FBQ0osVUFBVSxFQUFFLEdBQUcsQ0FBQztNQUNuQ0EsVUFBVSxHQUFHLEVBQUU7SUFDakIsQ0FBQyxNQUFNLElBQUksQ0FBQ3RDLEtBQUssQ0FBQ0UsT0FBTyxDQUFDb0MsVUFBVSxDQUFDLEVBQUU7TUFDckMsSUFBQUcsa0JBQU0sRUFBQ0gsVUFBVSxDQUFDO01BQ2xCQSxVQUFVLEdBQUcsQ0FBQ0EsVUFBVSxDQUFDO0lBQzNCO0lBQ0EsSUFBTUssZUFBZSxHQUFHTCxVQUFVO0lBQ2xDQSxVQUFVLEdBQUcsRUFBRTtJQUFBLElBQUFNLFNBQUEsR0FBQXhDLDBCQUFBLENBQ091QyxlQUFlO01BQUFFLEtBQUE7SUFBQTtNQUFyQyxLQUFBRCxTQUFBLENBQUFqQyxDQUFBLE1BQUFrQyxLQUFBLEdBQUFELFNBQUEsQ0FBQWhDLENBQUEsSUFBQUMsSUFBQSxHQUF1QztRQUFBLElBQTlCMkIsU0FBUyxHQUFBSyxLQUFBLENBQUEvQixLQUFBO1FBQ2hCLElBQUkwQixTQUFTLEtBQUssSUFBSSxFQUFFO1VBQ3RCO1FBQ0Y7UUFDQUEsU0FBUyxHQUFHQSxTQUFTLENBQUNNLE1BQU07UUFDNUIsSUFBSTlDLEtBQUssQ0FBQ0UsT0FBTyxDQUFDc0MsU0FBUyxDQUFDLEVBQUU7VUFBQSxJQUFBTyxXQUFBO1VBQzVCLENBQUFBLFdBQUEsR0FBQVQsVUFBVSxFQUFDVSxJQUFJLENBQUFDLEtBQUEsQ0FBQUYsV0FBQSxFQUFBekQsa0JBQUEsQ0FBSWtELFNBQVMsRUFBQztRQUMvQixDQUFDLE1BQU07VUFDTCxJQUFBQyxrQkFBTSxFQUFDRCxTQUFTLENBQUM7VUFDakJGLFVBQVUsQ0FBQ1UsSUFBSSxDQUFDUixTQUFTLENBQUM7UUFDNUI7TUFDRjtJQUFDLFNBQUFwQixHQUFBO01BQUF3QixTQUFBLENBQUE3QixDQUFBLENBQUFLLEdBQUE7SUFBQTtNQUFBd0IsU0FBQSxDQUFBM0IsQ0FBQTtJQUFBO0lBQ0QsSUFBSXFCLFVBQVUsQ0FBQzlCLE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDM0IsT0FBTzRCLGlCQUFpQixDQUFDRSxVQUFVO0lBQ3JDLENBQUMsTUFBTTtNQUNMRixpQkFBaUIsQ0FBQ0UsVUFBVSxHQUFHQSxVQUFVO01BQUEsSUFBQVksVUFBQSxHQUFBOUMsMEJBQUEsQ0FDcEJrQyxVQUFVO1FBQUFhLE1BQUE7TUFBQTtRQUEvQixLQUFBRCxVQUFBLENBQUF2QyxDQUFBLE1BQUF3QyxNQUFBLEdBQUFELFVBQUEsQ0FBQXRDLENBQUEsSUFBQUMsSUFBQSxHQUFpQztVQUFBLElBQXRCaUMsTUFBTSxHQUFBSyxNQUFBLENBQUFyQyxLQUFBO1VBQ2ZzQyxXQUFXLENBQUNOLE1BQU0sQ0FBQztRQUNyQjtNQUFDLFNBQUExQixHQUFBO1FBQUE4QixVQUFBLENBQUFuQyxDQUFBLENBQUFLLEdBQUE7TUFBQTtRQUFBOEIsVUFBQSxDQUFBakMsQ0FBQTtNQUFBO0lBQ0g7RUFDRjtFQUVBLElBQUlvQyxJQUFJLEdBQUdqQixpQkFBaUIsQ0FBQ2lCLElBQUk7RUFDakMsSUFBSUEsSUFBSSxLQUFLZCxTQUFTLEVBQUU7SUFDdEJjLElBQUksR0FBR2pCLGlCQUFpQixDQUFDa0IsS0FBSztJQUM5QixPQUFPbEIsaUJBQWlCLENBQUNrQixLQUFLO0VBQ2hDLENBQUMsTUFBTTtJQUNMYixrQkFBTSxDQUFDQyxXQUFXLENBQUNOLGlCQUFpQixDQUFDa0IsS0FBSyxFQUFFZixTQUFTLENBQUM7RUFDeEQ7RUFDQSxJQUFJYyxJQUFJLEtBQUtkLFNBQVMsRUFBRTtJQUN0QmMsSUFBSSxHQUFHQSxJQUFJLENBQUNQLE1BQU07SUFDbEIsSUFBSSxDQUFDOUMsS0FBSyxDQUFDRSxPQUFPLENBQUNtRCxJQUFJLENBQUMsRUFBRTtNQUN4QixJQUFBWixrQkFBTSxFQUFDWSxJQUFJLENBQUM7TUFDWkEsSUFBSSxHQUFHLENBQUNBLElBQUksQ0FBQztJQUNmO0lBQ0EsSUFBSUEsSUFBSSxDQUFDN0MsTUFBTSxLQUFLLENBQUMsRUFBRTtNQUNyQixPQUFPNEIsaUJBQWlCLENBQUNpQixJQUFJO0lBQy9CLENBQUMsTUFBTTtNQUNMakIsaUJBQWlCLENBQUNpQixJQUFJLEdBQUdBLElBQUk7TUFBQSxJQUFBRSxVQUFBLEdBQUFuRCwwQkFBQSxDQUNSaUQsSUFBSTtRQUFBRyxNQUFBO01BQUE7UUFBekIsS0FBQUQsVUFBQSxDQUFBNUMsQ0FBQSxNQUFBNkMsTUFBQSxHQUFBRCxVQUFBLENBQUEzQyxDQUFBLElBQUFDLElBQUEsR0FBMkI7VUFBQSxJQUFoQmlDLE9BQU0sR0FBQVUsTUFBQSxDQUFBMUMsS0FBQTtVQUNmc0MsV0FBVyxDQUFDTixPQUFNLENBQUM7UUFDckI7TUFBQyxTQUFBMUIsR0FBQTtRQUFBbUMsVUFBQSxDQUFBeEMsQ0FBQSxDQUFBSyxHQUFBO01BQUE7UUFBQW1DLFVBQUEsQ0FBQXRDLENBQUE7TUFBQTtJQUNIO0VBQ0Y7RUFFQSxJQUFJd0MsTUFBTSxHQUFHckIsaUJBQWlCLENBQUNxQixNQUFNO0VBQ3JDLElBQUlBLE1BQU0sS0FBS2xCLFNBQVMsRUFBRTtJQUN4QmtCLE1BQU0sR0FBR3JCLGlCQUFpQixDQUFDc0IsT0FBTztJQUNsQyxPQUFPdEIsaUJBQWlCLENBQUNzQixPQUFPO0VBQ2xDLENBQUMsTUFBTTtJQUNMakIsa0JBQU0sQ0FBQ0MsV0FBVyxDQUFDTixpQkFBaUIsQ0FBQ3NCLE9BQU8sRUFBRW5CLFNBQVMsQ0FBQztFQUMxRDtFQUNBLElBQUlrQixNQUFNLEtBQUtsQixTQUFTLEVBQUU7SUFDeEJrQixNQUFNLEdBQUdBLE1BQU0sQ0FBQ1gsTUFBTTtJQUN0QixJQUFJLENBQUM5QyxLQUFLLENBQUNFLE9BQU8sQ0FBQ3VELE1BQU0sQ0FBQyxFQUFFO01BQzFCLElBQUFoQixrQkFBTSxFQUFDZ0IsTUFBTSxDQUFDO01BQ2RBLE1BQU0sR0FBRyxDQUFDQSxNQUFNLENBQUM7SUFDbkI7SUFDQSxJQUFJQSxNQUFNLENBQUNqRCxNQUFNLEtBQUssQ0FBQyxFQUFFO01BQ3ZCLE9BQU80QixpQkFBaUIsQ0FBQ3FCLE1BQU07SUFDakMsQ0FBQyxNQUFNO01BQ0xyQixpQkFBaUIsQ0FBQ3FCLE1BQU0sR0FBR0EsTUFBTTtNQUFBLElBQUFFLFVBQUEsR0FBQXZELDBCQUFBLENBQ1pxRCxNQUFNO1FBQUFHLE1BQUE7TUFBQTtRQUEzQixLQUFBRCxVQUFBLENBQUFoRCxDQUFBLE1BQUFpRCxNQUFBLEdBQUFELFVBQUEsQ0FBQS9DLENBQUEsSUFBQUMsSUFBQSxHQUE2QjtVQUFBLElBQWxCaUMsUUFBTSxHQUFBYyxNQUFBLENBQUE5QyxLQUFBO1VBQ2ZzQyxXQUFXLENBQUNOLFFBQU0sQ0FBQztRQUNyQjtNQUFDLFNBQUExQixHQUFBO1FBQUF1QyxVQUFBLENBQUE1QyxDQUFBLENBQUFLLEdBQUE7TUFBQTtRQUFBdUMsVUFBQSxDQUFBMUMsQ0FBQTtNQUFBO0lBQ0g7RUFDRjtFQUVBLElBQUk0QyxXQUFXLEdBQUd6QixpQkFBaUIsQ0FBQ3lCLFdBQVc7RUFDL0MsSUFBSUEsV0FBVyxLQUFLdEIsU0FBUyxFQUFFO0lBQzdCc0IsV0FBVyxHQUFHekIsaUJBQWlCLENBQUMwQixVQUFVO0lBQzFDLE9BQU8xQixpQkFBaUIsQ0FBQzBCLFVBQVU7RUFDckMsQ0FBQyxNQUFNO0lBQ0xyQixrQkFBTSxDQUFDQyxXQUFXLENBQUNOLGlCQUFpQixDQUFDMEIsVUFBVSxFQUFFdkIsU0FBUyxDQUFDO0VBQzdEO0VBQ0EsSUFBSXNCLFdBQVcsS0FBS3RCLFNBQVMsRUFBRTtJQUM3QixJQUFJLENBQUN2QyxLQUFLLENBQUNFLE9BQU8sQ0FBQzJELFdBQVcsQ0FBQyxFQUFFO01BQy9CLElBQUFwQixrQkFBTSxFQUFDb0IsV0FBVyxDQUFDO01BQ25CQSxXQUFXLEdBQUcsQ0FBQ0EsV0FBVyxDQUFDO0lBQzdCO0lBQ0EsSUFBTUUsZ0JBQWdCLEdBQUdGLFdBQVc7SUFDcENBLFdBQVcsR0FBRyxFQUFFO0lBQUEsSUFBQUcsVUFBQSxHQUFBNUQsMEJBQUEsQ0FDVzJELGdCQUFnQjtNQUFBRSxNQUFBO0lBQUE7TUFBM0MsS0FBQUQsVUFBQSxDQUFBckQsQ0FBQSxNQUFBc0QsTUFBQSxHQUFBRCxVQUFBLENBQUFwRCxDQUFBLElBQUFDLElBQUEsR0FBNkM7UUFBQSxJQUFwQ3FELGNBQWMsR0FBQUQsTUFBQSxDQUFBbkQsS0FBQTtRQUNyQixJQUFJb0QsY0FBYyxLQUFLLElBQUksRUFBRTtVQUMzQjtRQUNGO1FBQ0FBLGNBQWMsR0FBR0EsY0FBYyxDQUFDcEIsTUFBTTtRQUN0QyxJQUFJOUMsS0FBSyxDQUFDRSxPQUFPLENBQUNnRSxjQUFjLENBQUMsRUFBRTtVQUFBLElBQUFDLFlBQUE7VUFDakMsQ0FBQUEsWUFBQSxHQUFBTixXQUFXLEVBQUNiLElBQUksQ0FBQUMsS0FBQSxDQUFBa0IsWUFBQSxFQUFBN0Usa0JBQUEsQ0FBSTRFLGNBQWMsRUFBQztRQUNyQyxDQUFDLE1BQU07VUFDTCxJQUFBekIsa0JBQU0sRUFBQ3lCLGNBQWMsQ0FBQztVQUN0QkwsV0FBVyxDQUFDYixJQUFJLENBQUNrQixjQUFjLENBQUM7UUFDbEM7TUFDRjtJQUFDLFNBQUE5QyxHQUFBO01BQUE0QyxVQUFBLENBQUFqRCxDQUFBLENBQUFLLEdBQUE7SUFBQTtNQUFBNEMsVUFBQSxDQUFBL0MsQ0FBQTtJQUFBO0lBQ0QsSUFBSTRDLFdBQVcsQ0FBQ3JELE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDNUIsT0FBTzRCLGlCQUFpQixDQUFDeUIsV0FBVztJQUN0QyxDQUFDLE1BQU07TUFDTHpCLGlCQUFpQixDQUFDeUIsV0FBVyxHQUFHQSxXQUFXO01BQUEsSUFBQU8sVUFBQSxHQUFBaEUsMEJBQUEsQ0FDdEJ5RCxXQUFXO1FBQUFRLE1BQUE7TUFBQTtRQUFoQyxLQUFBRCxVQUFBLENBQUF6RCxDQUFBLE1BQUEwRCxNQUFBLEdBQUFELFVBQUEsQ0FBQXhELENBQUEsSUFBQUMsSUFBQSxHQUFrQztVQUFBLElBQXZCaUMsUUFBTSxHQUFBdUIsTUFBQSxDQUFBdkQsS0FBQTtVQUNmc0MsV0FBVyxDQUFDTixRQUFNLENBQUM7UUFDckI7TUFBQyxTQUFBMUIsR0FBQTtRQUFBZ0QsVUFBQSxDQUFBckQsQ0FBQSxDQUFBSyxHQUFBO01BQUE7UUFBQWdELFVBQUEsQ0FBQW5ELENBQUE7TUFBQTtJQUNIO0VBQ0Y7RUFFQSxJQUFJcUQscUJBQXFCLEdBQUdsQyxpQkFBaUIsQ0FBQ2tDLHFCQUFxQjtFQUNuRSxJQUFJQSxxQkFBcUIsS0FBSy9CLFNBQVMsRUFBRTtJQUN2QyxJQUFJLENBQUN2QyxLQUFLLENBQUNFLE9BQU8sQ0FBQ29FLHFCQUFxQixDQUFDLEVBQUU7TUFDekNBLHFCQUFxQixHQUFHLENBQUNBLHFCQUFxQixDQUFDO0lBQ2pEO0lBQ0EsSUFBTUMsMEJBQTBCLEdBQUdELHFCQUFxQjtJQUN4REEscUJBQXFCLEdBQUcsRUFBRTtJQUFBLElBQUFFLFVBQUEsR0FBQXBFLDBCQUFBLENBQ0NtRSwwQkFBMEI7TUFBQUUsTUFBQTtJQUFBO01BQXJELEtBQUFELFVBQUEsQ0FBQTdELENBQUEsTUFBQThELE1BQUEsR0FBQUQsVUFBQSxDQUFBNUQsQ0FBQSxJQUFBQyxJQUFBLEdBQXVEO1FBQUEsSUFBOUNxRCxlQUFjLEdBQUFPLE1BQUEsQ0FBQTNELEtBQUE7UUFDckIsSUFBSW9ELGVBQWMsS0FBSyxJQUFJLEVBQUU7VUFDM0I7UUFDRjtRQUNBQSxlQUFjLEdBQUdBLGVBQWMsQ0FBQ3BCLE1BQU07UUFDdEMsSUFBSTlDLEtBQUssQ0FBQ0UsT0FBTyxDQUFDZ0UsZUFBYyxDQUFDLEVBQUU7VUFBQSxJQUFBUSxxQkFBQTtVQUNqQyxDQUFBQSxxQkFBQSxHQUFBSixxQkFBcUIsRUFBQ3RCLElBQUksQ0FBQUMsS0FBQSxDQUFBeUIscUJBQUEsRUFBQXBGLGtCQUFBLENBQUk0RSxlQUFjLEVBQUM7UUFDL0MsQ0FBQyxNQUFNO1VBQ0wsSUFBQXpCLGtCQUFNLEVBQUN5QixlQUFjLENBQUM7VUFDdEJJLHFCQUFxQixDQUFDdEIsSUFBSSxDQUFDa0IsZUFBYyxDQUFDO1FBQzVDO01BQ0Y7SUFBQyxTQUFBOUMsR0FBQTtNQUFBb0QsVUFBQSxDQUFBekQsQ0FBQSxDQUFBSyxHQUFBO0lBQUE7TUFBQW9ELFVBQUEsQ0FBQXZELENBQUE7SUFBQTtJQUNELElBQUlxRCxxQkFBcUIsQ0FBQzlELE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDdEMsT0FBTzRCLGlCQUFpQixDQUFDa0MscUJBQXFCO0lBQ2hELENBQUMsTUFBTTtNQUNMbEMsaUJBQWlCLENBQUNrQyxxQkFBcUIsR0FBR0EscUJBQXFCO01BQUEsSUFBQUssVUFBQSxHQUFBdkUsMEJBQUEsQ0FDMUNrRSxxQkFBcUI7UUFBQU0sTUFBQTtNQUFBO1FBQTFDLEtBQUFELFVBQUEsQ0FBQWhFLENBQUEsTUFBQWlFLE1BQUEsR0FBQUQsVUFBQSxDQUFBL0QsQ0FBQSxJQUFBQyxJQUFBLEdBQTRDO1VBQUEsSUFBakNpQyxRQUFNLEdBQUE4QixNQUFBLENBQUE5RCxLQUFBO1VBQ2ZzQyxXQUFXLENBQUNOLFFBQU0sQ0FBQztRQUNyQjtNQUFDLFNBQUExQixHQUFBO1FBQUF1RCxVQUFBLENBQUE1RCxDQUFBLENBQUFLLEdBQUE7TUFBQTtRQUFBdUQsVUFBQSxDQUFBMUQsQ0FBQTtNQUFBO0lBQ0g7RUFDRjtBQUNGO0FBRU8sU0FBUzRELFlBQVlBLENBQUNDLE9BQVksRUFBUTtFQUMvQyxJQUFBekMsc0JBQWlCLEVBQUN5QyxPQUFPLENBQUM7RUFFMUIsSUFBTUMsU0FBUyxHQUFHRCxPQUFPLENBQUNDLFNBQVM7RUFDbkMsSUFBQXRDLGtCQUFNLEVBQUNzQyxTQUFTLENBQUM7RUFDakI7SUFDRSxJQUFBMUMsc0JBQWlCLEVBQUMwQyxTQUFTLENBQUM7SUFFNUJ0QyxrQkFBTSxDQUFDQyxXQUFXLENBQUNxQyxTQUFTLENBQUNDLG9CQUFvQixFQUFFekMsU0FBUyxDQUFDO0VBQy9EO0VBRUEsSUFBTTBDLEtBQUssR0FBR0gsT0FBTyxDQUFDRyxLQUFLO0VBQzNCLElBQUF4QyxrQkFBTSxFQUFDd0MsS0FBSyxDQUFDO0VBQ2I7SUFDRSxJQUFBNUMsc0JBQWlCLEVBQUM0QyxLQUFLLENBQUM7SUFFeEJ4QyxrQkFBTSxDQUFDQyxXQUFXLENBQUN1QyxLQUFLLENBQUNELG9CQUFvQixFQUFFekMsU0FBUyxDQUFDO0VBQzNEO0VBRUEsSUFBSTJDLGdCQUFnQixHQUFHSixPQUFPLENBQUNJLGdCQUFnQjtFQUMvQyxJQUFBekMsa0JBQU0sRUFBQ3lDLGdCQUFnQixDQUFDO0VBQ3hCO0lBQ0VBLGdCQUFnQixHQUFHQSxnQkFBZ0IsQ0FBQ0MsTUFBTTtJQUMxQyxJQUFBMUMsa0JBQU0sRUFBQ3lDLGdCQUFnQixDQUFDO0lBRXhCLElBQUlFLE9BQU8sR0FBR0YsZ0JBQWdCLENBQUNFLE9BQU87SUFDdEMsSUFBQTNDLGtCQUFNLEVBQUMyQyxPQUFPLENBQUM7SUFDZjtNQUNFQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ0MsTUFBTTtNQUN4QixJQUFBNUMsa0JBQU0sRUFBQ3pDLEtBQUssQ0FBQ0UsT0FBTyxDQUFDa0YsT0FBTyxDQUFDLENBQUM7TUFBQSxJQUFBRSxVQUFBLEdBQUFsRiwwQkFBQSxDQUNUZ0YsT0FBTztRQUFBRyxNQUFBO01BQUE7UUFBNUIsS0FBQUQsVUFBQSxDQUFBM0UsQ0FBQSxNQUFBNEUsTUFBQSxHQUFBRCxVQUFBLENBQUExRSxDQUFBLElBQUFDLElBQUEsR0FBOEI7VUFBQSxJQUFuQndFLE1BQU0sR0FBQUUsTUFBQSxDQUFBekUsS0FBQTtVQUNmLElBQU0wRSxJQUFJLEdBQUdILE1BQU0sQ0FBQ0csSUFBSTtVQUN4QixJQUFBL0Msa0JBQU0sRUFBQytDLElBQUksQ0FBQztVQUNaO1lBQ0UsSUFBTUMsWUFBWSxHQUFHRCxJQUFJLENBQUNDLFlBQVk7WUFDdEMsSUFBQWhELGtCQUFNLEVBQUNnRCxZQUFZLENBQUM7WUFDcEI7Y0FDRSxJQUFJQSxZQUFZLENBQUMzQixVQUFVLEtBQUt2QixTQUFTLEVBQUU7Z0JBQ3pDRSxrQkFBTSxDQUFDQyxXQUFXLENBQUMrQyxZQUFZLENBQUM1QixXQUFXLEVBQUV0QixTQUFTLENBQUM7Z0JBQ3ZEa0QsWUFBWSxDQUFDNUIsV0FBVyxHQUFHNEIsWUFBWSxDQUFDM0IsVUFBVTtnQkFDbEQsT0FBTzJCLFlBQVksQ0FBQzNCLFVBQVU7Y0FDaEM7Y0FFQSxJQUFJMkIsWUFBWSxDQUFDakQsU0FBUyxLQUFLRCxTQUFTLEVBQUU7Z0JBQ3hDRSxrQkFBTSxDQUFDQyxXQUFXLENBQUMrQyxZQUFZLENBQUNuRCxVQUFVLEVBQUVDLFNBQVMsQ0FBQztnQkFDdERrRCxZQUFZLENBQUNuRCxVQUFVLEdBQUdtRCxZQUFZLENBQUNqRCxTQUFTO2dCQUNoRCxPQUFPaUQsWUFBWSxDQUFDakQsU0FBUztjQUMvQjtZQUNGO1lBRUEsSUFBTUosaUJBQWlCLEdBQUdvRCxJQUFJLENBQUNwRCxpQkFBaUI7WUFDaEQsSUFBQUssa0JBQU0sRUFBQ0wsaUJBQWlCLENBQUM7WUFDekJELHNCQUFzQixDQUFDQyxpQkFBaUIsQ0FBQztVQUMzQztRQUNGO01BQUMsU0FBQWhCLEdBQUE7UUFBQWtFLFVBQUEsQ0FBQXZFLENBQUEsQ0FBQUssR0FBQTtNQUFBO1FBQUFrRSxVQUFBLENBQUFyRSxDQUFBO01BQUE7TUFDRGlFLGdCQUFnQixDQUFDRSxPQUFPLEdBQUdBLE9BQU87SUFDcEM7SUFFQU4sT0FBTyxDQUFDSSxnQkFBZ0IsR0FBR0EsZ0JBQWdCO0VBQzdDO0VBRUEsSUFBTVEsV0FBVyxHQUFHWixPQUFPLENBQUNZLFdBQVc7RUFDdkMsSUFBSUEsV0FBVyxLQUFLbkQsU0FBUyxFQUFFO0lBQzdCSixzQkFBc0IsQ0FBQ3VELFdBQVcsQ0FBQztJQUVuQyxJQUFJQyxpQkFBaUIsR0FBR0QsV0FBVyxDQUFDQyxpQkFBaUI7SUFDckQsSUFBSUEsaUJBQWlCLEtBQUtwRCxTQUFTLEVBQUU7TUFDbkNKLHNCQUFzQixDQUFDd0QsaUJBQWlCLENBQUM7TUFDekMsSUFDRWpFLE1BQU0sQ0FBQ2tFLE1BQU0sQ0FBQ0QsaUJBQWlCLENBQUMsQ0FBQ0UsTUFBTSxDQUFDLFVBQUMvRSxLQUFLO1FBQUEsT0FBS0EsS0FBSyxLQUFLeUIsU0FBUztNQUFBLEVBQUMsQ0FDcEUvQixNQUFNLEtBQUssQ0FBQyxFQUNmO1FBQ0EsT0FBT2tGLFdBQVcsQ0FBQ0MsaUJBQWlCO01BQ3RDO0lBQ0Y7SUFFQSxJQUNFakUsTUFBTSxDQUFDa0UsTUFBTSxDQUFDRixXQUFXLENBQUMsQ0FBQ0csTUFBTSxDQUFDLFVBQUMvRSxLQUFLO01BQUEsT0FBS0EsS0FBSyxLQUFLeUIsU0FBUztJQUFBLEVBQUMsQ0FDOUQvQixNQUFNLEtBQUssQ0FBQyxFQUNmO01BQ0EsT0FBT3NFLE9BQU8sQ0FBQ1ksV0FBVztJQUM1QjtFQUNGO0FBQ0Y7QUFFQSxTQUFTdEMsV0FBV0EsQ0FBQ04sTUFBVyxFQUFFO0VBQ2hDLElBQUFnRCwwQkFBcUIsRUFBQ2hELE1BQU0sRUFBRSxlQUFlLENBQUM7QUFDaEQiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -3,6 +3,12 @@ import { cleanBooleanAttribute, cleanXmlArtefacts } from "./xml.mjs";
3
3
  function cleanDecompteNominatif(decompteNominatif) {
4
4
  cleanXmlArtefacts(decompteNominatif);
5
5
  let nonVotants = decompteNominatif.nonVotants;
6
+ if (nonVotants === undefined) {
7
+ nonVotants = decompteNominatif.nonVotant;
8
+ delete decompteNominatif.nonVotant;
9
+ } else {
10
+ assert.strictEqual(decompteNominatif.nonVotant, undefined);
11
+ }
6
12
  if (nonVotants !== undefined) {
7
13
  if (typeof nonVotants === "string") {
8
14
  assert.strictEqual(nonVotants, "0");
@@ -37,6 +43,7 @@ function cleanDecompteNominatif(decompteNominatif) {
37
43
  let pour = decompteNominatif.pour;
38
44
  if (pour === undefined) {
39
45
  pour = decompteNominatif.pours;
46
+ delete decompteNominatif.pours;
40
47
  } else {
41
48
  assert.strictEqual(decompteNominatif.pours, undefined);
42
49
  }
@@ -54,11 +61,11 @@ function cleanDecompteNominatif(decompteNominatif) {
54
61
  cleanVotant(votant);
55
62
  }
56
63
  }
57
- delete decompteNominatif.pours;
58
64
  }
59
65
  let contre = decompteNominatif.contre;
60
66
  if (contre === undefined) {
61
67
  contre = decompteNominatif.contres;
68
+ delete decompteNominatif.contres;
62
69
  } else {
63
70
  assert.strictEqual(decompteNominatif.contres, undefined);
64
71
  }
@@ -76,11 +83,17 @@ function cleanDecompteNominatif(decompteNominatif) {
76
83
  cleanVotant(votant);
77
84
  }
78
85
  }
79
- delete decompteNominatif.contres;
80
86
  }
81
87
  let abstentions = decompteNominatif.abstentions;
88
+ if (abstentions === undefined) {
89
+ abstentions = decompteNominatif.abstention;
90
+ delete decompteNominatif.abstention;
91
+ } else {
92
+ assert.strictEqual(decompteNominatif.abstention, undefined);
93
+ }
82
94
  if (abstentions !== undefined) {
83
95
  if (!Array.isArray(abstentions)) {
96
+ assert(abstentions);
84
97
  abstentions = [abstentions];
85
98
  }
86
99
  const abstentionsArray = abstentions;
@@ -204,4 +217,4 @@ export function cleanScrutin(scrutin) {
204
217
  function cleanVotant(votant) {
205
218
  cleanBooleanAttribute(votant, "parDelegation");
206
219
  }
207
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjbGVhbkJvb2xlYW5BdHRyaWJ1dGUiLCJjbGVhblhtbEFydGVmYWN0cyIsImNsZWFuRGVjb21wdGVOb21pbmF0aWYiLCJkZWNvbXB0ZU5vbWluYXRpZiIsIm5vblZvdGFudHMiLCJ1bmRlZmluZWQiLCJzdHJpY3RFcXVhbCIsIkFycmF5IiwiaXNBcnJheSIsIm5vblZvdGFudHNBcnJheSIsIm5vblZvdGFudCIsInZvdGFudCIsInB1c2giLCJsZW5ndGgiLCJjbGVhblZvdGFudCIsInBvdXIiLCJwb3VycyIsImNvbnRyZSIsImNvbnRyZXMiLCJhYnN0ZW50aW9ucyIsImFic3RlbnRpb25zQXJyYXkiLCJhYnNlbnRpb25zSXRlbSIsIm5vblZvdGFudHNWb2xvbnRhaXJlcyIsIm5vblZvdGFudHNWb2xvbnRhaXJlc0FycmF5IiwiY2xlYW5TY3J1dGluIiwic2NydXRpbiIsImRlbWFuZGV1ciIsInJlZmVyZW5jZUxlZ2lzbGF0aXZlIiwib2JqZXQiLCJ2ZW50aWxhdGlvblZvdGVzIiwib3JnYW5lIiwiZ3JvdXBlcyIsImdyb3VwZSIsInZvdGUiLCJkZWNvbXB0ZVZvaXgiLCJhYnN0ZW50aW9uIiwibWlzZUF1UG9pbnQiLCJkeXNmb25jdGlvbm5lbWVudCIsIk9iamVjdCIsInZhbHVlcyIsImZpbHRlciIsInZhbHVlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsZWFuZXJzL3NjcnV0aW5zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5cbmltcG9ydCB7IGNsZWFuQm9vbGVhbkF0dHJpYnV0ZSwgY2xlYW5YbWxBcnRlZmFjdHMgfSBmcm9tIFwiLi94bWxcIlxuXG5mdW5jdGlvbiBjbGVhbkRlY29tcHRlTm9taW5hdGlmKGRlY29tcHRlTm9taW5hdGlmOiBhbnkpIHtcbiAgY2xlYW5YbWxBcnRlZmFjdHMoZGVjb21wdGVOb21pbmF0aWYpXG5cbiAgbGV0IG5vblZvdGFudHMgPSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzXG4gIGlmIChub25Wb3RhbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAodHlwZW9mIG5vblZvdGFudHMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChub25Wb3RhbnRzLCBcIjBcIilcbiAgICAgIG5vblZvdGFudHMgPSBbXVxuICAgIH0gZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkobm9uVm90YW50cykpIHtcbiAgICAgIGFzc2VydChub25Wb3RhbnRzKVxuICAgICAgbm9uVm90YW50cyA9IFtub25Wb3RhbnRzXVxuICAgIH1cbiAgICBjb25zdCBub25Wb3RhbnRzQXJyYXkgPSBub25Wb3RhbnRzXG4gICAgbm9uVm90YW50cyA9IFtdXG4gICAgZm9yIChsZXQgbm9uVm90YW50IG9mIG5vblZvdGFudHNBcnJheSkge1xuICAgICAgaWYgKG5vblZvdGFudCA9PT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgbm9uVm90YW50ID0gbm9uVm90YW50LnZvdGFudFxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9uVm90YW50KSkge1xuICAgICAgICBub25Wb3RhbnRzLnB1c2goLi4ubm9uVm90YW50KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXNzZXJ0KG5vblZvdGFudClcbiAgICAgICAgbm9uVm90YW50cy5wdXNoKG5vblZvdGFudClcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vblZvdGFudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzID0gbm9uVm90YW50c1xuICAgICAgZm9yIChjb25zdCB2b3RhbnQgb2Ygbm9uVm90YW50cykge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IHBvdXIgPSBkZWNvbXB0ZU5vbWluYXRpZi5wb3VyXG4gIGlmIChwb3VyID09PSB1bmRlZmluZWQpIHtcbiAgICBwb3VyID0gZGVjb21wdGVOb21pbmF0aWYucG91cnNcbiAgfSBlbHNlIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb21wdGVOb21pbmF0aWYucG91cnMsIHVuZGVmaW5lZClcbiAgfVxuICBpZiAocG91ciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcG91ciA9IHBvdXIudm90YW50XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBvdXIpKSB7XG4gICAgICBhc3NlcnQocG91cilcbiAgICAgIHBvdXIgPSBbcG91cl1cbiAgICB9XG4gICAgaWYgKHBvdXIubGVuZ3RoID09PSAwKSB7XG4gICAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYucG91clxuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5wb3VyID0gcG91clxuICAgICAgZm9yIChjb25zdCB2b3RhbnQgb2YgcG91cikge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5wb3Vyc1xuICB9XG5cbiAgbGV0IGNvbnRyZSA9IGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZVxuICBpZiAoY29udHJlID09PSB1bmRlZmluZWQpIHtcbiAgICBjb250cmUgPSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVzXG4gIH0gZWxzZSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZXMsIHVuZGVmaW5lZClcbiAgfVxuICBpZiAoY29udHJlICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb250cmUgPSBjb250cmUudm90YW50XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbnRyZSkpIHtcbiAgICAgIGFzc2VydChjb250cmUpXG4gICAgICBjb250cmUgPSBbY29udHJlXVxuICAgIH1cbiAgICBpZiAoY29udHJlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZVxuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmUgPSBjb250cmVcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIGNvbnRyZSkge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVzXG4gIH1cblxuICBsZXQgYWJzdGVudGlvbnMgPSBkZWNvbXB0ZU5vbWluYXRpZi5hYnN0ZW50aW9uc1xuICBpZiAoYWJzdGVudGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShhYnN0ZW50aW9ucykpIHtcbiAgICAgIGFic3RlbnRpb25zID0gW2Fic3RlbnRpb25zXVxuICAgIH1cbiAgICBjb25zdCBhYnN0ZW50aW9uc0FycmF5ID0gYWJzdGVudGlvbnNcbiAgICBhYnN0ZW50aW9ucyA9IFtdXG4gICAgZm9yIChsZXQgYWJzZW50aW9uc0l0ZW0gb2YgYWJzdGVudGlvbnNBcnJheSkge1xuICAgICAgaWYgKGFic2VudGlvbnNJdGVtID09PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBhYnNlbnRpb25zSXRlbSA9IGFic2VudGlvbnNJdGVtLnZvdGFudFxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWJzZW50aW9uc0l0ZW0pKSB7XG4gICAgICAgIGFic3RlbnRpb25zLnB1c2goLi4uYWJzZW50aW9uc0l0ZW0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhc3NlcnQoYWJzZW50aW9uc0l0ZW0pXG4gICAgICAgIGFic3RlbnRpb25zLnB1c2goYWJzZW50aW9uc0l0ZW0pXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChhYnN0ZW50aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5hYnN0ZW50aW9uc1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5hYnN0ZW50aW9ucyA9IGFic3RlbnRpb25zXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBhYnN0ZW50aW9ucykge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IG5vblZvdGFudHNWb2xvbnRhaXJlcyA9IGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudHNWb2xvbnRhaXJlc1xuICBpZiAobm9uVm90YW50c1ZvbG9udGFpcmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobm9uVm90YW50c1ZvbG9udGFpcmVzKSkge1xuICAgICAgbm9uVm90YW50c1ZvbG9udGFpcmVzID0gW25vblZvdGFudHNWb2xvbnRhaXJlc11cbiAgICB9XG4gICAgY29uc3Qgbm9uVm90YW50c1ZvbG9udGFpcmVzQXJyYXkgPSBub25Wb3RhbnRzVm9sb250YWlyZXNcbiAgICBub25Wb3RhbnRzVm9sb250YWlyZXMgPSBbXVxuICAgIGZvciAobGV0IGFic2VudGlvbnNJdGVtIG9mIG5vblZvdGFudHNWb2xvbnRhaXJlc0FycmF5KSB7XG4gICAgICBpZiAoYWJzZW50aW9uc0l0ZW0gPT09IG51bGwpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGFic2VudGlvbnNJdGVtID0gYWJzZW50aW9uc0l0ZW0udm90YW50XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShhYnNlbnRpb25zSXRlbSkpIHtcbiAgICAgICAgbm9uVm90YW50c1ZvbG9udGFpcmVzLnB1c2goLi4uYWJzZW50aW9uc0l0ZW0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhc3NlcnQoYWJzZW50aW9uc0l0ZW0pXG4gICAgICAgIG5vblZvdGFudHNWb2xvbnRhaXJlcy5wdXNoKGFic2VudGlvbnNJdGVtKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9uVm90YW50c1ZvbG9udGFpcmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudHNWb2xvbnRhaXJlc1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzVm9sb250YWlyZXMgPSBub25Wb3RhbnRzVm9sb250YWlyZXNcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIG5vblZvdGFudHNWb2xvbnRhaXJlcykge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhblNjcnV0aW4oc2NydXRpbjogYW55KTogdm9pZCB7XG4gIGNsZWFuWG1sQXJ0ZWZhY3RzKHNjcnV0aW4pXG5cbiAgY29uc3QgZGVtYW5kZXVyID0gc2NydXRpbi5kZW1hbmRldXJcbiAgYXNzZXJ0KGRlbWFuZGV1cilcbiAge1xuICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKGRlbWFuZGV1cilcblxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZW1hbmRldXIucmVmZXJlbmNlTGVnaXNsYXRpdmUsIHVuZGVmaW5lZClcbiAgfVxuXG4gIGNvbnN0IG9iamV0ID0gc2NydXRpbi5vYmpldFxuICBhc3NlcnQob2JqZXQpXG4gIHtcbiAgICBjbGVhblhtbEFydGVmYWN0cyhvYmpldClcblxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChvYmpldC5yZWZlcmVuY2VMZWdpc2xhdGl2ZSwgdW5kZWZpbmVkKVxuICB9XG5cbiAgbGV0IHZlbnRpbGF0aW9uVm90ZXMgPSBzY3J1dGluLnZlbnRpbGF0aW9uVm90ZXNcbiAgYXNzZXJ0KHZlbnRpbGF0aW9uVm90ZXMpXG4gIHtcbiAgICB2ZW50aWxhdGlvblZvdGVzID0gdmVudGlsYXRpb25Wb3Rlcy5vcmdhbmVcbiAgICBhc3NlcnQodmVudGlsYXRpb25Wb3RlcylcblxuICAgIGxldCBncm91cGVzID0gdmVudGlsYXRpb25Wb3Rlcy5ncm91cGVzXG4gICAgYXNzZXJ0KGdyb3VwZXMpXG4gICAge1xuICAgICAgZ3JvdXBlcyA9IGdyb3VwZXMuZ3JvdXBlXG4gICAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShncm91cGVzKSlcbiAgICAgIGZvciAoY29uc3QgZ3JvdXBlIG9mIGdyb3VwZXMpIHtcbiAgICAgICAgY29uc3Qgdm90ZSA9IGdyb3VwZS52b3RlXG4gICAgICAgIGFzc2VydCh2b3RlKVxuICAgICAgICB7XG4gICAgICAgICAgY29uc3QgZGVjb21wdGVWb2l4ID0gdm90ZS5kZWNvbXB0ZVZvaXhcbiAgICAgICAgICBhc3NlcnQoZGVjb21wdGVWb2l4KVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmIChkZWNvbXB0ZVZvaXguYWJzdGVudGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZVZvaXguYWJzdGVudGlvbnMsIHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgZGVjb21wdGVWb2l4LmFic3RlbnRpb25zID0gZGVjb21wdGVWb2l4LmFic3RlbnRpb25cbiAgICAgICAgICAgICAgZGVsZXRlIGRlY29tcHRlVm9peC5hYnN0ZW50aW9uXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChkZWNvbXB0ZVZvaXgubm9uVm90YW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlY29tcHRlVm9peC5ub25Wb3RhbnRzLCB1bmRlZmluZWQpXG4gICAgICAgICAgICAgIGRlY29tcHRlVm9peC5ub25Wb3RhbnRzID0gZGVjb21wdGVWb2l4Lm5vblZvdGFudFxuICAgICAgICAgICAgICBkZWxldGUgZGVjb21wdGVWb2l4Lm5vblZvdGFudFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGRlY29tcHRlTm9taW5hdGlmID0gdm90ZS5kZWNvbXB0ZU5vbWluYXRpZlxuICAgICAgICAgIGFzc2VydChkZWNvbXB0ZU5vbWluYXRpZilcbiAgICAgICAgICBjbGVhbkRlY29tcHRlTm9taW5hdGlmKGRlY29tcHRlTm9taW5hdGlmKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2ZW50aWxhdGlvblZvdGVzLmdyb3VwZXMgPSBncm91cGVzXG4gICAgfVxuXG4gICAgc2NydXRpbi52ZW50aWxhdGlvblZvdGVzID0gdmVudGlsYXRpb25Wb3Rlc1xuICB9XG5cbiAgY29uc3QgbWlzZUF1UG9pbnQgPSBzY3J1dGluLm1pc2VBdVBvaW50XG4gIGlmIChtaXNlQXVQb2ludCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY2xlYW5EZWNvbXB0ZU5vbWluYXRpZihtaXNlQXVQb2ludClcblxuICAgIGxldCBkeXNmb25jdGlvbm5lbWVudCA9IG1pc2VBdVBvaW50LmR5c2ZvbmN0aW9ubmVtZW50XG4gICAgaWYgKGR5c2ZvbmN0aW9ubmVtZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNsZWFuRGVjb21wdGVOb21pbmF0aWYoZHlzZm9uY3Rpb25uZW1lbnQpXG4gICAgICBpZiAoXG4gICAgICAgIE9iamVjdC52YWx1ZXMoZHlzZm9uY3Rpb25uZW1lbnQpLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgLmxlbmd0aCA9PT0gMFxuICAgICAgKSB7XG4gICAgICAgIGRlbGV0ZSBtaXNlQXVQb2ludC5keXNmb25jdGlvbm5lbWVudFxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChcbiAgICAgIE9iamVjdC52YWx1ZXMobWlzZUF1UG9pbnQpLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgIC5sZW5ndGggPT09IDBcbiAgICApIHtcbiAgICAgIGRlbGV0ZSBzY3J1dGluLm1pc2VBdVBvaW50XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNsZWFuVm90YW50KHZvdGFudDogYW55KSB7XG4gIGNsZWFuQm9vbGVhbkF0dHJpYnV0ZSh2b3RhbnQs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
220
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjbGVhbkJvb2xlYW5BdHRyaWJ1dGUiLCJjbGVhblhtbEFydGVmYWN0cyIsImNsZWFuRGVjb21wdGVOb21pbmF0aWYiLCJkZWNvbXB0ZU5vbWluYXRpZiIsIm5vblZvdGFudHMiLCJ1bmRlZmluZWQiLCJub25Wb3RhbnQiLCJzdHJpY3RFcXVhbCIsIkFycmF5IiwiaXNBcnJheSIsIm5vblZvdGFudHNBcnJheSIsInZvdGFudCIsInB1c2giLCJsZW5ndGgiLCJjbGVhblZvdGFudCIsInBvdXIiLCJwb3VycyIsImNvbnRyZSIsImNvbnRyZXMiLCJhYnN0ZW50aW9ucyIsImFic3RlbnRpb24iLCJhYnN0ZW50aW9uc0FycmF5IiwiYWJzZW50aW9uc0l0ZW0iLCJub25Wb3RhbnRzVm9sb250YWlyZXMiLCJub25Wb3RhbnRzVm9sb250YWlyZXNBcnJheSIsImNsZWFuU2NydXRpbiIsInNjcnV0aW4iLCJkZW1hbmRldXIiLCJyZWZlcmVuY2VMZWdpc2xhdGl2ZSIsIm9iamV0IiwidmVudGlsYXRpb25Wb3RlcyIsIm9yZ2FuZSIsImdyb3VwZXMiLCJncm91cGUiLCJ2b3RlIiwiZGVjb21wdGVWb2l4IiwibWlzZUF1UG9pbnQiLCJkeXNmb25jdGlvbm5lbWVudCIsIk9iamVjdCIsInZhbHVlcyIsImZpbHRlciIsInZhbHVlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsZWFuZXJzL3NjcnV0aW5zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5cbmltcG9ydCB7IGNsZWFuQm9vbGVhbkF0dHJpYnV0ZSwgY2xlYW5YbWxBcnRlZmFjdHMgfSBmcm9tIFwiLi94bWxcIlxuXG5mdW5jdGlvbiBjbGVhbkRlY29tcHRlTm9taW5hdGlmKGRlY29tcHRlTm9taW5hdGlmOiBhbnkpIHtcbiAgY2xlYW5YbWxBcnRlZmFjdHMoZGVjb21wdGVOb21pbmF0aWYpXG5cbiAgbGV0IG5vblZvdGFudHMgPSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzXG4gIGlmIChub25Wb3RhbnRzID09PSB1bmRlZmluZWQpIHtcbiAgICBub25Wb3RhbnRzID0gZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50XG4gICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudFxuICB9IGVsc2Uge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnQsIHVuZGVmaW5lZClcbiAgfVxuICBpZiAobm9uVm90YW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHR5cGVvZiBub25Wb3RhbnRzID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobm9uVm90YW50cywgXCIwXCIpXG4gICAgICBub25Wb3RhbnRzID0gW11cbiAgICB9IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KG5vblZvdGFudHMpKSB7XG4gICAgICBhc3NlcnQobm9uVm90YW50cylcbiAgICAgIG5vblZvdGFudHMgPSBbbm9uVm90YW50c11cbiAgICB9XG4gICAgY29uc3Qgbm9uVm90YW50c0FycmF5ID0gbm9uVm90YW50c1xuICAgIG5vblZvdGFudHMgPSBbXVxuICAgIGZvciAobGV0IG5vblZvdGFudCBvZiBub25Wb3RhbnRzQXJyYXkpIHtcbiAgICAgIGlmIChub25Wb3RhbnQgPT09IG51bGwpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIG5vblZvdGFudCA9IG5vblZvdGFudC52b3RhbnRcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG5vblZvdGFudCkpIHtcbiAgICAgICAgbm9uVm90YW50cy5wdXNoKC4uLm5vblZvdGFudClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFzc2VydChub25Wb3RhbnQpXG4gICAgICAgIG5vblZvdGFudHMucHVzaChub25Wb3RhbnQpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChub25Wb3RhbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudHNcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50cyA9IG5vblZvdGFudHNcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIG5vblZvdGFudHMpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCBwb3VyID0gZGVjb21wdGVOb21pbmF0aWYucG91clxuICBpZiAocG91ciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcG91ciA9IGRlY29tcHRlTm9taW5hdGlmLnBvdXJzXG4gICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLnBvdXJzXG4gIH0gZWxzZSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlY29tcHRlTm9taW5hdGlmLnBvdXJzLCB1bmRlZmluZWQpXG4gIH1cbiAgaWYgKHBvdXIgIT09IHVuZGVmaW5lZCkge1xuICAgIHBvdXIgPSBwb3VyLnZvdGFudFxuICAgIGlmICghQXJyYXkuaXNBcnJheShwb3VyKSkge1xuICAgICAgYXNzZXJ0KHBvdXIpXG4gICAgICBwb3VyID0gW3BvdXJdXG4gICAgfVxuICAgIGlmIChwb3VyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLnBvdXJcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYucG91ciA9IHBvdXJcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIHBvdXIpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCBjb250cmUgPSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVcbiAgaWYgKGNvbnRyZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29udHJlID0gZGVjb21wdGVOb21pbmF0aWYuY29udHJlc1xuICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVzXG4gIH0gZWxzZSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZXMsIHVuZGVmaW5lZClcbiAgfVxuICBpZiAoY29udHJlICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb250cmUgPSBjb250cmUudm90YW50XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbnRyZSkpIHtcbiAgICAgIGFzc2VydChjb250cmUpXG4gICAgICBjb250cmUgPSBbY29udHJlXVxuICAgIH1cbiAgICBpZiAoY29udHJlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZVxuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmUgPSBjb250cmVcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIGNvbnRyZSkge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IGFic3RlbnRpb25zID0gZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvbnNcbiAgaWYgKGFic3RlbnRpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICBhYnN0ZW50aW9ucyA9IGRlY29tcHRlTm9taW5hdGlmLmFic3RlbnRpb25cbiAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvblxuICB9IGVsc2Uge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZU5vbWluYXRpZi5hYnN0ZW50aW9uLCB1bmRlZmluZWQpXG4gIH1cbiAgaWYgKGFic3RlbnRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWJzdGVudGlvbnMpKSB7XG4gICAgICBhc3NlcnQoYWJzdGVudGlvbnMpXG4gICAgICBhYnN0ZW50aW9ucyA9IFthYnN0ZW50aW9uc11cbiAgICB9XG4gICAgY29uc3QgYWJzdGVudGlvbnNBcnJheSA9IGFic3RlbnRpb25zXG4gICAgYWJzdGVudGlvbnMgPSBbXVxuICAgIGZvciAobGV0IGFic2VudGlvbnNJdGVtIG9mIGFic3RlbnRpb25zQXJyYXkpIHtcbiAgICAgIGlmIChhYnNlbnRpb25zSXRlbSA9PT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgYWJzZW50aW9uc0l0ZW0gPSBhYnNlbnRpb25zSXRlbS52b3RhbnRcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGFic2VudGlvbnNJdGVtKSkge1xuICAgICAgICBhYnN0ZW50aW9ucy5wdXNoKC4uLmFic2VudGlvbnNJdGVtKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXNzZXJ0KGFic2VudGlvbnNJdGVtKVxuICAgICAgICBhYnN0ZW50aW9ucy5wdXNoKGFic2VudGlvbnNJdGVtKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWJzdGVudGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvbnNcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvbnMgPSBhYnN0ZW50aW9uc1xuICAgICAgZm9yIChjb25zdCB2b3RhbnQgb2YgYWJzdGVudGlvbnMpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCBub25Wb3RhbnRzVm9sb250YWlyZXMgPSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzVm9sb250YWlyZXNcbiAgaWYgKG5vblZvdGFudHNWb2xvbnRhaXJlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG5vblZvdGFudHNWb2xvbnRhaXJlcykpIHtcbiAgICAgIG5vblZvdGFudHNWb2xvbnRhaXJlcyA9IFtub25Wb3RhbnRzVm9sb250YWlyZXNdXG4gICAgfVxuICAgIGNvbnN0IG5vblZvdGFudHNWb2xvbnRhaXJlc0FycmF5ID0gbm9uVm90YW50c1ZvbG9udGFpcmVzXG4gICAgbm9uVm90YW50c1ZvbG9udGFpcmVzID0gW11cbiAgICBmb3IgKGxldCBhYnNlbnRpb25zSXRlbSBvZiBub25Wb3RhbnRzVm9sb250YWlyZXNBcnJheSkge1xuICAgICAgaWYgKGFic2VudGlvbnNJdGVtID09PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBhYnNlbnRpb25zSXRlbSA9IGFic2VudGlvbnNJdGVtLnZvdGFudFxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWJzZW50aW9uc0l0ZW0pKSB7XG4gICAgICAgIG5vblZvdGFudHNWb2xvbnRhaXJlcy5wdXNoKC4uLmFic2VudGlvbnNJdGVtKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXNzZXJ0KGFic2VudGlvbnNJdGVtKVxuICAgICAgICBub25Wb3RhbnRzVm9sb250YWlyZXMucHVzaChhYnNlbnRpb25zSXRlbSlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vblZvdGFudHNWb2xvbnRhaXJlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzVm9sb250YWlyZXNcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1ZvbG9udGFpcmVzID0gbm9uVm90YW50c1ZvbG9udGFpcmVzXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBub25Wb3RhbnRzVm9sb250YWlyZXMpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5TY3J1dGluKHNjcnV0aW46IGFueSk6IHZvaWQge1xuICBjbGVhblhtbEFydGVmYWN0cyhzY3J1dGluKVxuXG4gIGNvbnN0IGRlbWFuZGV1ciA9IHNjcnV0aW4uZGVtYW5kZXVyXG4gIGFzc2VydChkZW1hbmRldXIpXG4gIHtcbiAgICBjbGVhblhtbEFydGVmYWN0cyhkZW1hbmRldXIpXG5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVtYW5kZXVyLnJlZmVyZW5jZUxlZ2lzbGF0aXZlLCB1bmRlZmluZWQpXG4gIH1cblxuICBjb25zdCBvYmpldCA9IHNjcnV0aW4ub2JqZXRcbiAgYXNzZXJ0KG9iamV0KVxuICB7XG4gICAgY2xlYW5YbWxBcnRlZmFjdHMob2JqZXQpXG5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2JqZXQucmVmZXJlbmNlTGVnaXNsYXRpdmUsIHVuZGVmaW5lZClcbiAgfVxuXG4gIGxldCB2ZW50aWxhdGlvblZvdGVzID0gc2NydXRpbi52ZW50aWxhdGlvblZvdGVzXG4gIGFzc2VydCh2ZW50aWxhdGlvblZvdGVzKVxuICB7XG4gICAgdmVudGlsYXRpb25Wb3RlcyA9IHZlbnRpbGF0aW9uVm90ZXMub3JnYW5lXG4gICAgYXNzZXJ0KHZlbnRpbGF0aW9uVm90ZXMpXG5cbiAgICBsZXQgZ3JvdXBlcyA9IHZlbnRpbGF0aW9uVm90ZXMuZ3JvdXBlc1xuICAgIGFzc2VydChncm91cGVzKVxuICAgIHtcbiAgICAgIGdyb3VwZXMgPSBncm91cGVzLmdyb3VwZVxuICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoZ3JvdXBlcykpXG4gICAgICBmb3IgKGNvbnN0IGdyb3VwZSBvZiBncm91cGVzKSB7XG4gICAgICAgIGNvbnN0IHZvdGUgPSBncm91cGUudm90ZVxuICAgICAgICBhc3NlcnQodm90ZSlcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IGRlY29tcHRlVm9peCA9IHZvdGUuZGVjb21wdGVWb2l4XG4gICAgICAgICAgYXNzZXJ0KGRlY29tcHRlVm9peClcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZiAoZGVjb21wdGVWb2l4LmFic3RlbnRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb21wdGVWb2l4LmFic3RlbnRpb25zLCB1bmRlZmluZWQpXG4gICAgICAgICAgICAgIGRlY29tcHRlVm9peC5hYnN0ZW50aW9ucyA9IGRlY29tcHRlVm9peC5hYnN0ZW50aW9uXG4gICAgICAgICAgICAgIGRlbGV0ZSBkZWNvbXB0ZVZvaXguYWJzdGVudGlvblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZGVjb21wdGVWb2l4Lm5vblZvdGFudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZVZvaXgubm9uVm90YW50cywgdW5kZWZpbmVkKVxuICAgICAgICAgICAgICBkZWNvbXB0ZVZvaXgubm9uVm90YW50cyA9IGRlY29tcHRlVm9peC5ub25Wb3RhbnRcbiAgICAgICAgICAgICAgZGVsZXRlIGRlY29tcHRlVm9peC5ub25Wb3RhbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBkZWNvbXB0ZU5vbWluYXRpZiA9IHZvdGUuZGVjb21wdGVOb21pbmF0aWZcbiAgICAgICAgICBhc3NlcnQoZGVjb21wdGVOb21pbmF0aWYpXG4gICAgICAgICAgY2xlYW5EZWNvbXB0ZU5vbWluYXRpZihkZWNvbXB0ZU5vbWluYXRpZilcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmVudGlsYXRpb25Wb3Rlcy5ncm91cGVzID0gZ3JvdXBlc1xuICAgIH1cblxuICAgIHNjcnV0aW4udmVudGlsYXRpb25Wb3RlcyA9IHZlbnRpbGF0aW9uVm90ZXNcbiAgfVxuXG4gIGNvbnN0IG1pc2VBdVBvaW50ID0gc2NydXRpbi5taXNlQXVQb2ludFxuICBpZiAobWlzZUF1UG9pbnQgIT09IHVuZGVmaW5lZCkge1xuICAgIGNsZWFuRGVjb21wdGVOb21pbmF0aWYobWlzZUF1UG9pbnQpXG5cbiAgICBsZXQgZHlzZm9uY3Rpb25uZW1lbnQgPSBtaXNlQXVQb2ludC5keXNmb25jdGlvbm5lbWVudFxuICAgIGlmIChkeXNmb25jdGlvbm5lbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjbGVhbkRlY29tcHRlTm9taW5hdGlmKGR5c2ZvbmN0aW9ubmVtZW50KVxuICAgICAgaWYgKFxuICAgICAgICBPYmplY3QudmFsdWVzKGR5c2ZvbmN0aW9ubmVtZW50KS5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIC5sZW5ndGggPT09IDBcbiAgICAgICkge1xuICAgICAgICBkZWxldGUgbWlzZUF1UG9pbnQuZHlzZm9uY3Rpb25uZW1lbnRcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBPYmplY3QudmFsdWVzKG1pc2VBdVBvaW50KS5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAubGVuZ3RoID09PSAwXG4gICAgKSB7XG4gICAgICBkZWxldGUgc2NydXRpbi5taXNlQXVQb2ludFxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjbGVhblZvdGFudCh2b3RhbnQ6IGFueSkge1xuICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUodm90YW50LCBcInBhckRlbGVnYXRpb25cIilcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLFFBQVE7QUFBQSxTQUVsQkMscUJBQXFCLEVBQUVDLGlCQUFpQjtBQUVqRCxTQUFTQyxzQkFBc0JBLENBQUNDLGlCQUFzQixFQUFFO0VBQ3RERixpQkFBaUIsQ0FBQ0UsaUJBQWlCLENBQUM7RUFFcEMsSUFBSUMsVUFBVSxHQUFHRCxpQkFBaUIsQ0FBQ0MsVUFBVTtFQUM3QyxJQUFJQSxVQUFVLEtBQUtDLFNBQVMsRUFBRTtJQUM1QkQsVUFBVSxHQUFHRCxpQkFBaUIsQ0FBQ0csU0FBUztJQUN4QyxPQUFPSCxpQkFBaUIsQ0FBQ0csU0FBUztFQUNwQyxDQUFDLE1BQU07SUFDTFAsTUFBTSxDQUFDUSxXQUFXLENBQUNKLGlCQUFpQixDQUFDRyxTQUFTLEVBQUVELFNBQVMsQ0FBQztFQUM1RDtFQUNBLElBQUlELFVBQVUsS0FBS0MsU0FBUyxFQUFFO0lBQzVCLElBQUksT0FBT0QsVUFBVSxLQUFLLFFBQVEsRUFBRTtNQUNsQ0wsTUFBTSxDQUFDUSxXQUFXLENBQUNILFVBQVUsRUFBRSxHQUFHLENBQUM7TUFDbkNBLFVBQVUsR0FBRyxFQUFFO0lBQ2pCLENBQUMsTUFBTSxJQUFJLENBQUNJLEtBQUssQ0FBQ0MsT0FBTyxDQUFDTCxVQUFVLENBQUMsRUFBRTtNQUNyQ0wsTUFBTSxDQUFDSyxVQUFVLENBQUM7TUFDbEJBLFVBQVUsR0FBRyxDQUFDQSxVQUFVLENBQUM7SUFDM0I7SUFDQSxNQUFNTSxlQUFlLEdBQUdOLFVBQVU7SUFDbENBLFVBQVUsR0FBRyxFQUFFO0lBQ2YsS0FBSyxJQUFJRSxTQUFTLElBQUlJLGVBQWUsRUFBRTtNQUNyQyxJQUFJSixTQUFTLEtBQUssSUFBSSxFQUFFO1FBQ3RCO01BQ0Y7TUFDQUEsU0FBUyxHQUFHQSxTQUFTLENBQUNLLE1BQU07TUFDNUIsSUFBSUgsS0FBSyxDQUFDQyxPQUFPLENBQUNILFNBQVMsQ0FBQyxFQUFFO1FBQzVCRixVQUFVLENBQUNRLElBQUksQ0FBQyxHQUFHTixTQUFTLENBQUM7TUFDL0IsQ0FBQyxNQUFNO1FBQ0xQLE1BQU0sQ0FBQ08sU0FBUyxDQUFDO1FBQ2pCRixVQUFVLENBQUNRLElBQUksQ0FBQ04sU0FBUyxDQUFDO01BQzVCO0lBQ0Y7SUFDQSxJQUFJRixVQUFVLENBQUNTLE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDM0IsT0FBT1YsaUJBQWlCLENBQUNDLFVBQVU7SUFDckMsQ0FBQyxNQUFNO01BQ0xELGlCQUFpQixDQUFDQyxVQUFVLEdBQUdBLFVBQVU7TUFDekMsS0FBSyxNQUFNTyxNQUFNLElBQUlQLFVBQVUsRUFBRTtRQUMvQlUsV0FBVyxDQUFDSCxNQUFNLENBQUM7TUFDckI7SUFDRjtFQUNGO0VBRUEsSUFBSUksSUFBSSxHQUFHWixpQkFBaUIsQ0FBQ1ksSUFBSTtFQUNqQyxJQUFJQSxJQUFJLEtBQUtWLFNBQVMsRUFBRTtJQUN0QlUsSUFBSSxHQUFHWixpQkFBaUIsQ0FBQ2EsS0FBSztJQUM5QixPQUFPYixpQkFBaUIsQ0FBQ2EsS0FBSztFQUNoQyxDQUFDLE1BQU07SUFDTGpCLE1BQU0sQ0FBQ1EsV0FBVyxDQUFDSixpQkFBaUIsQ0FBQ2EsS0FBSyxFQUFFWCxTQUFTLENBQUM7RUFDeEQ7RUFDQSxJQUFJVSxJQUFJLEtBQUtWLFNBQVMsRUFBRTtJQUN0QlUsSUFBSSxHQUFHQSxJQUFJLENBQUNKLE1BQU07SUFDbEIsSUFBSSxDQUFDSCxLQUFLLENBQUNDLE9BQU8sQ0FBQ00sSUFBSSxDQUFDLEVBQUU7TUFDeEJoQixNQUFNLENBQUNnQixJQUFJLENBQUM7TUFDWkEsSUFBSSxHQUFHLENBQUNBLElBQUksQ0FBQztJQUNmO0lBQ0EsSUFBSUEsSUFBSSxDQUFDRixNQUFNLEtBQUssQ0FBQyxFQUFFO01BQ3JCLE9BQU9WLGlCQUFpQixDQUFDWSxJQUFJO0lBQy9CLENBQUMsTUFBTTtNQUNMWixpQkFBaUIsQ0FBQ1ksSUFBSSxHQUFHQSxJQUFJO01BQzdCLEtBQUssTUFBTUosTUFBTSxJQUFJSSxJQUFJLEVBQUU7UUFDekJELFdBQVcsQ0FBQ0gsTUFBTSxDQUFDO01BQ3JCO0lBQ0Y7RUFDRjtFQUVBLElBQUlNLE1BQU0sR0FBR2QsaUJBQWlCLENBQUNjLE1BQU07RUFDckMsSUFBSUEsTUFBTSxLQUFLWixTQUFTLEVBQUU7SUFDeEJZLE1BQU0sR0FBR2QsaUJBQWlCLENBQUNlLE9BQU87SUFDbEMsT0FBT2YsaUJBQWlCLENBQUNlLE9BQU87RUFDbEMsQ0FBQyxNQUFNO0lBQ0xuQixNQUFNLENBQUNRLFdBQVcsQ0FBQ0osaUJBQWlCLENBQUNlLE9BQU8sRUFBRWIsU0FBUyxDQUFDO0VBQzFEO0VBQ0EsSUFBSVksTUFBTSxLQUFLWixTQUFTLEVBQUU7SUFDeEJZLE1BQU0sR0FBR0EsTUFBTSxDQUFDTixNQUFNO0lBQ3RCLElBQUksQ0FBQ0gsS0FBSyxDQUFDQyxPQUFPLENBQUNRLE1BQU0sQ0FBQyxFQUFFO01BQzFCbEIsTUFBTSxDQUFDa0IsTUFBTSxDQUFDO01BQ2RBLE1BQU0sR0FBRyxDQUFDQSxNQUFNLENBQUM7SUFDbkI7SUFDQSxJQUFJQSxNQUFNLENBQUNKLE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDdkIsT0FBT1YsaUJBQWlCLENBQUNjLE1BQU07SUFDakMsQ0FBQyxNQUFNO01BQ0xkLGlCQUFpQixDQUFDYyxNQUFNLEdBQUdBLE1BQU07TUFDakMsS0FBSyxNQUFNTixNQUFNLElBQUlNLE1BQU0sRUFBRTtRQUMzQkgsV0FBVyxDQUFDSCxNQUFNLENBQUM7TUFDckI7SUFDRjtFQUNGO0VBRUEsSUFBSVEsV0FBVyxHQUFHaEIsaUJBQWlCLENBQUNnQixXQUFXO0VBQy9DLElBQUlBLFdBQVcsS0FBS2QsU0FBUyxFQUFFO0lBQzdCYyxXQUFXLEdBQUdoQixpQkFBaUIsQ0FBQ2lCLFVBQVU7SUFDMUMsT0FBT2pCLGlCQUFpQixDQUFDaUIsVUFBVTtFQUNyQyxDQUFDLE1BQU07SUFDTHJCLE1BQU0sQ0FBQ1EsV0FBVyxDQUFDSixpQkFBaUIsQ0FBQ2lCLFVBQVUsRUFBRWYsU0FBUyxDQUFDO0VBQzdEO0VBQ0EsSUFBSWMsV0FBVyxLQUFLZCxTQUFTLEVBQUU7SUFDN0IsSUFBSSxDQUFDRyxLQUFLLENBQUNDLE9BQU8sQ0FBQ1UsV0FBVyxDQUFDLEVBQUU7TUFDL0JwQixNQUFNLENBQUNvQixXQUFXLENBQUM7TUFDbkJBLFdBQVcsR0FBRyxDQUFDQSxXQUFXLENBQUM7SUFDN0I7SUFDQSxNQUFNRSxnQkFBZ0IsR0FBR0YsV0FBVztJQUNwQ0EsV0FBVyxHQUFHLEVBQUU7SUFDaEIsS0FBSyxJQUFJRyxjQUFjLElBQUlELGdCQUFnQixFQUFFO01BQzNDLElBQUlDLGNBQWMsS0FBSyxJQUFJLEVBQUU7UUFDM0I7TUFDRjtNQUNBQSxjQUFjLEdBQUdBLGNBQWMsQ0FBQ1gsTUFBTTtNQUN0QyxJQUFJSCxLQUFLLENBQUNDLE9BQU8sQ0FBQ2EsY0FBYyxDQUFDLEVBQUU7UUFDakNILFdBQVcsQ0FBQ1AsSUFBSSxDQUFDLEdBQUdVLGNBQWMsQ0FBQztNQUNyQyxDQUFDLE1BQU07UUFDTHZCLE1BQU0sQ0FBQ3VCLGNBQWMsQ0FBQztRQUN0QkgsV0FBVyxDQUFDUCxJQUFJLENBQUNVLGNBQWMsQ0FBQztNQUNsQztJQUNGO0lBQ0EsSUFBSUgsV0FBVyxDQUFDTixNQUFNLEtBQUssQ0FBQyxFQUFFO01BQzVCLE9BQU9WLGlCQUFpQixDQUFDZ0IsV0FBVztJQUN0QyxDQUFDLE1BQU07TUFDTGhCLGlCQUFpQixDQUFDZ0IsV0FBVyxHQUFHQSxXQUFXO01BQzNDLEtBQUssTUFBTVIsTUFBTSxJQUFJUSxXQUFXLEVBQUU7UUFDaENMLFdBQVcsQ0FBQ0gsTUFBTSxDQUFDO01BQ3JCO0lBQ0Y7RUFDRjtFQUVBLElBQUlZLHFCQUFxQixHQUFHcEIsaUJBQWlCLENBQUNvQixxQkFBcUI7RUFDbkUsSUFBSUEscUJBQXFCLEtBQUtsQixTQUFTLEVBQUU7SUFDdkMsSUFBSSxDQUFDRyxLQUFLLENBQUNDLE9BQU8sQ0FBQ2MscUJBQXFCLENBQUMsRUFBRTtNQUN6Q0EscUJBQXFCLEdBQUcsQ0FBQ0EscUJBQXFCLENBQUM7SUFDakQ7SUFDQSxNQUFNQywwQkFBMEIsR0FBR0QscUJBQXFCO0lBQ3hEQSxxQkFBcUIsR0FBRyxFQUFFO0lBQzFCLEtBQUssSUFBSUQsY0FBYyxJQUFJRSwwQkFBMEIsRUFBRTtNQUNyRCxJQUFJRixjQUFjLEtBQUssSUFBSSxFQUFFO1FBQzNCO01BQ0Y7TUFDQUEsY0FBYyxHQUFHQSxjQUFjLENBQUNYLE1BQU07TUFDdEMsSUFBSUgsS0FBSyxDQUFDQyxPQUFPLENBQUNhLGNBQWMsQ0FBQyxFQUFFO1FBQ2pDQyxxQkFBcUIsQ0FBQ1gsSUFBSSxDQUFDLEdBQUdVLGNBQWMsQ0FBQztNQUMvQyxDQUFDLE1BQU07UUFDTHZCLE1BQU0sQ0FBQ3VCLGNBQWMsQ0FBQztRQUN0QkMscUJBQXFCLENBQUNYLElBQUksQ0FBQ1UsY0FBYyxDQUFDO01BQzVDO0lBQ0Y7SUFDQSxJQUFJQyxxQkFBcUIsQ0FBQ1YsTUFBTSxLQUFLLENBQUMsRUFBRTtNQUN0QyxPQUFPVixpQkFBaUIsQ0FBQ29CLHFCQUFxQjtJQUNoRCxDQUFDLE1BQU07TUFDTHBCLGlCQUFpQixDQUFDb0IscUJBQXFCLEdBQUdBLHFCQUFxQjtNQUMvRCxLQUFLLE1BQU1aLE1BQU0sSUFBSVkscUJBQXFCLEVBQUU7UUFDMUNULFdBQVcsQ0FBQ0gsTUFBTSxDQUFDO01BQ3JCO0lBQ0Y7RUFDRjtBQUNGO0FBRUEsT0FBTyxTQUFTYyxZQUFZQSxDQUFDQyxPQUFZLEVBQVE7RUFDL0N6QixpQkFBaUIsQ0FBQ3lCLE9BQU8sQ0FBQztFQUUxQixNQUFNQyxTQUFTLEdBQUdELE9BQU8sQ0FBQ0MsU0FBUztFQUNuQzVCLE1BQU0sQ0FBQzRCLFNBQVMsQ0FBQztFQUNqQjtJQUNFMUIsaUJBQWlCLENBQUMwQixTQUFTLENBQUM7SUFFNUI1QixNQUFNLENBQUNRLFdBQVcsQ0FBQ29CLFNBQVMsQ0FBQ0Msb0JBQW9CLEVBQUV2QixTQUFTLENBQUM7RUFDL0Q7RUFFQSxNQUFNd0IsS0FBSyxHQUFHSCxPQUFPLENBQUNHLEtBQUs7RUFDM0I5QixNQUFNLENBQUM4QixLQUFLLENBQUM7RUFDYjtJQUNFNUIsaUJBQWlCLENBQUM0QixLQUFLLENBQUM7SUFFeEI5QixNQUFNLENBQUNRLFdBQVcsQ0FBQ3NCLEtBQUssQ0FBQ0Qsb0JBQW9CLEVBQUV2QixTQUFTLENBQUM7RUFDM0Q7RUFFQSxJQUFJeUIsZ0JBQWdCLEdBQUdKLE9BQU8sQ0FBQ0ksZ0JBQWdCO0VBQy9DL0IsTUFBTSxDQUFDK0IsZ0JBQWdCLENBQUM7RUFDeEI7SUFDRUEsZ0JBQWdCLEdBQUdBLGdCQUFnQixDQUFDQyxNQUFNO0lBQzFDaEMsTUFBTSxDQUFDK0IsZ0JBQWdCLENBQUM7SUFFeEIsSUFBSUUsT0FBTyxHQUFHRixnQkFBZ0IsQ0FBQ0UsT0FBTztJQUN0Q2pDLE1BQU0sQ0FBQ2lDLE9BQU8sQ0FBQztJQUNmO01BQ0VBLE9BQU8sR0FBR0EsT0FBTyxDQUFDQyxNQUFNO01BQ3hCbEMsTUFBTSxDQUFDUyxLQUFLLENBQUNDLE9BQU8sQ0FBQ3VCLE9BQU8sQ0FBQyxDQUFDO01BQzlCLEtBQUssTUFBTUMsTUFBTSxJQUFJRCxPQUFPLEVBQUU7UUFDNUIsTUFBTUUsSUFBSSxHQUFHRCxNQUFNLENBQUNDLElBQUk7UUFDeEJuQyxNQUFNLENBQUNtQyxJQUFJLENBQUM7UUFDWjtVQUNFLE1BQU1DLFlBQVksR0FBR0QsSUFBSSxDQUFDQyxZQUFZO1VBQ3RDcEMsTUFBTSxDQUFDb0MsWUFBWSxDQUFDO1VBQ3BCO1lBQ0UsSUFBSUEsWUFBWSxDQUFDZixVQUFVLEtBQUtmLFNBQVMsRUFBRTtjQUN6Q04sTUFBTSxDQUFDUSxXQUFXLENBQUM0QixZQUFZLENBQUNoQixXQUFXLEVBQUVkLFNBQVMsQ0FBQztjQUN2RDhCLFlBQVksQ0FBQ2hCLFdBQVcsR0FBR2dCLFlBQVksQ0FBQ2YsVUFBVTtjQUNsRCxPQUFPZSxZQUFZLENBQUNmLFVBQVU7WUFDaEM7WUFFQSxJQUFJZSxZQUFZLENBQUM3QixTQUFTLEtBQUtELFNBQVMsRUFBRTtjQUN4Q04sTUFBTSxDQUFDUSxXQUFXLENBQUM0QixZQUFZLENBQUMvQixVQUFVLEVBQUVDLFNBQVMsQ0FBQztjQUN0RDhCLFlBQVksQ0FBQy9CLFVBQVUsR0FBRytCLFlBQVksQ0FBQzdCLFNBQVM7Y0FDaEQsT0FBTzZCLFlBQVksQ0FBQzdCLFNBQVM7WUFDL0I7VUFDRjtVQUVBLE1BQU1ILGlCQUFpQixHQUFHK0IsSUFBSSxDQUFDL0IsaUJBQWlCO1VBQ2hESixNQUFNLENBQUNJLGlCQUFpQixDQUFDO1VBQ3pCRCxzQkFBc0IsQ0FBQ0MsaUJBQWlCLENBQUM7UUFDM0M7TUFDRjtNQUNBMkIsZ0JBQWdCLENBQUNFLE9BQU8sR0FBR0EsT0FBTztJQUNwQztJQUVBTixPQUFPLENBQUNJLGdCQUFnQixHQUFHQSxnQkFBZ0I7RUFDN0M7RUFFQSxNQUFNTSxXQUFXLEdBQUdWLE9BQU8sQ0FBQ1UsV0FBVztFQUN2QyxJQUFJQSxXQUFXLEtBQUsvQixTQUFTLEVBQUU7SUFDN0JILHNCQUFzQixDQUFDa0MsV0FBVyxDQUFDO0lBRW5DLElBQUlDLGlCQUFpQixHQUFHRCxXQUFXLENBQUNDLGlCQUFpQjtJQUNyRCxJQUFJQSxpQkFBaUIsS0FBS2hDLFNBQVMsRUFBRTtNQUNuQ0gsc0JBQXNCLENBQUNtQyxpQkFBaUIsQ0FBQztNQUN6QyxJQUNFQyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0YsaUJBQWlCLENBQUMsQ0FBQ0csTUFBTSxDQUFFQyxLQUFLLElBQUtBLEtBQUssS0FBS3BDLFNBQVMsQ0FBQyxDQUNwRVEsTUFBTSxLQUFLLENBQUMsRUFDZjtRQUNBLE9BQU91QixXQUFXLENBQUNDLGlCQUFpQjtNQUN0QztJQUNGO0lBRUEsSUFDRUMsTUFBTSxDQUFDQyxNQUFNLENBQUNILFdBQVcsQ0FBQyxDQUFDSSxNQUFNLENBQUVDLEtBQUssSUFBS0EsS0FBSyxLQUFLcEMsU0FBUyxDQUFDLENBQzlEUSxNQUFNLEtBQUssQ0FBQyxFQUNmO01BQ0EsT0FBT2EsT0FBTyxDQUFDVSxXQUFXO0lBQzVCO0VBQ0Y7QUFDRjtBQUVBLFNBQVN0QixXQUFXQSxDQUFDSCxNQUFXLEVBQUU7RUFDaENYLHFCQUFxQixDQUFDVyxNQUFNLEVBQUUsZUFBZSxDQUFDO0FBQ2hEIiwiaWdub3JlTGlzdCI6W119