highmark-markdown 0.0.447 → 0.0.449

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.
@@ -186,6 +186,13 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
186
186
  this.divisionClassName = divisionClassName;
187
187
  }
188
188
  },
189
+ {
190
+ key: "isDivisionMarkdownNode",
191
+ value: function isDivisionMarkdownNode() {
192
+ var divisionMarkdownNode = true;
193
+ return divisionMarkdownNode;
194
+ }
195
+ },
189
196
  {
190
197
  key: "className",
191
198
  value: function className(context) {
@@ -200,41 +207,17 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
200
207
  return ignored;
201
208
  }
202
209
  },
203
- {
204
- key: "isDivisionMarkdownNode",
205
- value: function isDivisionMarkdownNode() {
206
- var divisionMarkdownNode = true;
207
- return divisionMarkdownNode;
208
- }
209
- },
210
210
  {
211
211
  key: "getPageNumber",
212
212
  value: function getPageNumber() {
213
213
  var pageNumber = null;
214
- var subDivisionMarkdownNodes = this.findSubDivisionMarkdownNodes();
215
- subDivisionMarkdownNodes.some(function(subDivisionMarkdownNode) {
216
- var node = subDivisionMarkdownNode, pageNumberDirective = (0, _query.pageNumberDirectiveMarkdownNodeFromNode)(node);
217
- if (pageNumberDirective !== null) {
218
- pageNumber = pageNumberDirective.getPageNumber();
219
- return true;
220
- }
221
- });
214
+ var pageNumberDirectiveMarkdownNode = this.findPageNumberDirectiveMarkdownNode();
215
+ if (pageNumberDirectiveMarkdownNode !== null) {
216
+ pageNumber = pageNumberDirectiveMarkdownNode.getPageNumber();
217
+ }
222
218
  return pageNumber;
223
219
  }
224
220
  },
225
- {
226
- key: "setPageNumber",
227
- value: function setPageNumber(pageNumber) {
228
- var subDivisionMarkdownNodes = this.findSubDivisionMarkdownNodes();
229
- subDivisionMarkdownNodes.some(function(subDivisionMarkdownNode) {
230
- var node = subDivisionMarkdownNode, pageNumberDirective = (0, _query.pageNumberDirectiveMarkdownNodeFromNode)(node);
231
- if (pageNumberDirective !== null) {
232
- pageNumberDirective.setPageNumber(pageNumber);
233
- return true;
234
- }
235
- });
236
- }
237
- },
238
221
  {
239
222
  key: "paginate",
240
223
  value: function paginate(markdownNodes, context) {
@@ -249,20 +232,19 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
249
232
  }
250
233
  });
251
234
  var linesPerPage = context.linesPerPage, paginatedChildNodes = [], childNodes = this.getChildNodes();
252
- var totalLines = 0, pageNumber = 1;
235
+ var totalLines = 0;
253
236
  childNodes.forEach(function(childNode) {
254
237
  var lines = childNode.lines(context), paginatedChildNode = childNode; ///
255
238
  paginatedChildNodes.push(paginatedChildNode);
256
239
  totalLines += lines;
257
240
  if (totalLines > linesPerPage) {
258
- paginateDivisionMarkdownNode(paginatedChildNodes, subDivisionReplacements, _this.divisionClassName, markdownNodes, pageNumber, context);
241
+ paginateDivisionMarkdownNode(paginatedChildNodes, subDivisionReplacements, _this.divisionClassName, markdownNodes, context);
259
242
  clear(paginatedChildNodes);
260
243
  totalLines = 0;
261
- pageNumber++;
262
244
  }
263
245
  });
264
246
  if (totalLines > 0) {
265
- paginateDivisionMarkdownNode(paginatedChildNodes, subDivisionReplacements, this.divisionClassName, markdownNodes, pageNumber, context);
247
+ paginateDivisionMarkdownNode(paginatedChildNodes, subDivisionReplacements, this.divisionClassName, markdownNodes, context);
266
248
  }
267
249
  }
268
250
  },
@@ -374,6 +356,21 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
374
356
  return subDivisionMarkdownNodes;
375
357
  }
376
358
  },
359
+ {
360
+ key: "findPageNumberDirectiveMarkdownNode",
361
+ value: function findPageNumberDirectiveMarkdownNode() {
362
+ var pageNumberDirectiveMarkdownNode = null;
363
+ var subDivisionMarkdownNodes = this.findSubDivisionMarkdownNodes();
364
+ subDivisionMarkdownNodes.some(function(subDivisionMarkdownNode) {
365
+ var node = subDivisionMarkdownNode; ///
366
+ pageNumberDirectiveMarkdownNode = (0, _query.pageNumberDirectiveMarkdownNodeFromNode)(node);
367
+ if (pageNumberDirectiveMarkdownNode !== null) {
368
+ return true;
369
+ }
370
+ });
371
+ return pageNumberDirectiveMarkdownNode;
372
+ }
373
+ },
377
374
  {
378
375
  key: "removeSubDivisionMarkdownNode",
379
376
  value: function removeSubDivisionMarkdownNode(SubDivisionReplacement, context) {
@@ -433,9 +430,10 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
433
430
  }
434
431
  },
435
432
  {
436
- key: "fromPaginatedChildNodesAndSubDivisionReplacements",
437
- value: function fromPaginatedChildNodesAndSubDivisionReplacements(paginatedChildNodes, subDivisionReplacements, context) {
433
+ key: "fromPaginatedChildNodesSubDivisionReplacementsAndDivisionClassName",
434
+ value: function fromPaginatedChildNodesSubDivisionReplacementsAndDivisionClassName(paginatedChildNodes, subDivisionReplacements, divisionClassName, context) {
438
435
  var ruleName = _ruleNames.DIVISION_RULE_NAME, childNodes = _to_consumable_array(paginatedChildNodes), opacity = null, divisionMarkdownNode = DivisionMarkdownNode.fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity);
436
+ divisionMarkdownNode.setDivisionClassName(divisionClassName);
439
437
  subDivisionReplacements.forEach(function(subDivisionReplacement) {
440
438
  subDivisionReplacement = subDivisionReplacement.clone(); ///
441
439
  subDivisionReplacement.appendToDivisionMarkdownNode(divisionMarkdownNode, context);
@@ -446,16 +444,22 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
446
444
  ]);
447
445
  return DivisionMarkdownNode;
448
446
  }(_markdown.default);
449
- function paginateDivisionMarkdownNode(paginatedChildNodes, subDivisionReplacements, divisionClassName, markdownNodes, pageNumber, context) {
447
+ function paginateDivisionMarkdownNode(paginatedChildNodes, subDivisionReplacements, divisionClassName, markdownNodes, context) {
450
448
  var markdownNode;
451
- var indexAnchorReplacement = _indexAnchor.default.fromPageNumber(pageNumber, context), anchorMarkdownNode = indexAnchorReplacement.getAnchorMarkdownNode();
452
- markdownNode = anchorMarkdownNode; ///
453
- markdownNodes.push(markdownNode);
454
- var divisionMarkdownNode = DivisionMarkdownNode.fromPaginatedChildNodesAndSubDivisionReplacements(paginatedChildNodes, subDivisionReplacements, context);
455
- divisionMarkdownNode.setDivisionClassName(divisionClassName);
456
- divisionMarkdownNode.setPageNumber(pageNumber);
449
+ var divisionMarkdownNode = DivisionMarkdownNode.fromPaginatedChildNodesSubDivisionReplacementsAndDivisionClassName(paginatedChildNodes, subDivisionReplacements, divisionClassName, context), pageNumberDirectiveMarkdownNode = divisionMarkdownNode.findPageNumberDirectiveMarkdownNode();
450
+ if (pageNumberDirectiveMarkdownNode !== null) {
451
+ var pageNumber = context.pageNumber;
452
+ pageNumberDirectiveMarkdownNode.setPageNumber(pageNumber);
453
+ var indexAnchorReplacement = _indexAnchor.default.fromPageNumber(pageNumber, context), anchorMarkdownNode = indexAnchorReplacement.getAnchorMarkdownNode();
454
+ markdownNode = anchorMarkdownNode; ///
455
+ markdownNodes.push(markdownNode);
456
+ pageNumber++;
457
+ Object.assign(context, {
458
+ pageNumber: pageNumber
459
+ });
460
+ }
457
461
  markdownNode = divisionMarkdownNode; ///
458
462
  markdownNodes.push(markdownNode);
459
463
  }
460
464
 
461
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2RpdmlzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93blwiO1xuaW1wb3J0IEluZGV4UmVwbGFjZW1lbnQgZnJvbSBcIi4uLy4uL3JlcGxhY2VtZW50L2luZGV4XCI7XG5pbXBvcnQgRm9vdG5vdGVSZXBsYWNlbWVudCBmcm9tIFwiLi4vLi4vcmVwbGFjZW1lbnQvZm9vdG5vdGVcIjtcbmltcG9ydCBJbmRleEFuY2hvclJlcGxhY2VtZW50IGZyb20gXCIuLi8uLi9yZXBsYWNlbWVudC9pbmRleEFuY2hvclwiO1xuaW1wb3J0IENvbnRlbnRzTGlzdFJlcGxhY2VtZW50IGZyb20gXCIuLi8uLi9yZXBsYWNlbWVudC9jb250ZW50c0xpc3RcIjtcbmltcG9ydCBGb290bm90ZXNMaXN0UmVwbGFjZW1lbnQgZnJvbSBcIi4uLy4uL3JlcGxhY2VtZW50L2Zvb3Rub3Rlc0xpc3RcIjtcbmltcG9ydCBGb290bm90ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgZnJvbSBcIi4uLy4uL3JlcGxhY2VtZW50L3N1YkRpdmlzaW9uL2Zvb3Rub3RlXCI7XG5pbXBvcnQgSW5kZXhEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50IGZyb20gXCIuLi8uLi9yZXBsYWNlbWVudC9zdWJEaXZpc2lvbi9pbmRleERpcmVjdGl2ZVwiO1xuaW1wb3J0IENvbnRlbnRzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCBmcm9tIFwiLi4vLi4vcmVwbGFjZW1lbnQvc3ViRGl2aXNpb24vY29udGVudHNEaXJlY3RpdmVcIjtcbmltcG9ydCBGb290bm90ZXNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50IGZyb20gXCIuLi8uLi9yZXBsYWNlbWVudC9zdWJEaXZpc2lvbi9mb290bm90ZXNEaXJlY3RpdmVcIjtcbmltcG9ydCBQYWdlTnVtYmVyRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCBmcm9tIFwiLi4vLi4vcmVwbGFjZW1lbnQvc3ViRGl2aXNpb24vcGFnZU51bWJlckRpcmVjdGl2ZVwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyByZW51bWJlckZvb3Rub3RlTGlua01hcmtkb3duTm9kZXMgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2Zvb3Rub3Rlc1wiO1xuaW1wb3J0IHsgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU5vZGUsIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlLCBwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQge0RJVklTSU9OX1JVTEVfTkFNRX0gZnJvbSBcIi4uLy4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCB7IGNsZWFyLCBmaWx0ZXIgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEaXZpc2lvbk1hcmtkb3duTm9kZSBleHRlbmRzIE1hcmtkb3duTm9kZSB7XG4gIGNvbnN0cnVjdG9yKHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBwcmVjZWRlbmNlLCBvcGFjaXR5LCBkb21FbGVtZW50LCBkaXZpc2lvbkNsYXNzTmFtZSkge1xuICAgIHN1cGVyKHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBwcmVjZWRlbmNlLCBvcGFjaXR5LCBkb21FbGVtZW50KTtcblxuICAgIHRoaXMuZGl2aXNpb25DbGFzc05hbWUgPSBkaXZpc2lvbkNsYXNzTmFtZTtcbiAgfVxuXG4gIGdldERpdmlzaW9uQ2xhc3NOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmRpdmlzaW9uQ2xhc3NOYW1lO1xuICB9XG5cbiAgc2V0RGl2aXNpb25DbGFzc05hbWUoZGl2aXNpb25DbGFzc05hbWUpIHtcbiAgICB0aGlzLmRpdmlzaW9uQ2xhc3NOYW1lID0gZGl2aXNpb25DbGFzc05hbWU7XG4gIH1cblxuICBjbGFzc05hbWUoY29udGV4dCkge1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IHRoaXMuZGl2aXNpb25DbGFzc05hbWU7IC8vL1xuXG4gICAgcmV0dXJuIGNsYXNzTmFtZTtcbiAgfVxuXG4gIGlzSWdub3JlZCgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZSA9IGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlKG5vZGUpLFxuICAgICAgICAgIGlnbm9yZWQgPSAoaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlICE9PSBudWxsKTtcblxuICAgIHJldHVybiBpZ25vcmVkO1xuICB9XG5cbiAgaXNEaXZpc2lvbk1hcmtkb3duTm9kZSgpIHtcbiAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IHRydWU7XG5cbiAgICByZXR1cm4gZGl2aXNpb25NYXJrZG93bk5vZGU7XG4gIH1cblxuICBnZXRQYWdlTnVtYmVyKCkge1xuICAgIGxldCBwYWdlTnVtYmVyID0gbnVsbDtcblxuICAgIGNvbnN0IHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IHRoaXMuZmluZFN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcygpO1xuXG4gICAgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzLnNvbWUoKHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gc3ViRGl2aXNpb25NYXJrZG93bk5vZGUsIC8vL1xuICAgICAgICAgICAgcGFnZU51bWJlckRpcmVjdGl2ZSA9IHBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKTtcblxuICAgICAgaWYgKHBhZ2VOdW1iZXJEaXJlY3RpdmUgIT09IG51bGwpIHtcbiAgICAgICAgcGFnZU51bWJlciA9IHBhZ2VOdW1iZXJEaXJlY3RpdmUuZ2V0UGFnZU51bWJlcigpO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBhZ2VOdW1iZXI7XG4gIH1cblxuICBzZXRQYWdlTnVtYmVyKHBhZ2VOdW1iZXIpIHtcbiAgICBjb25zdCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMgPSB0aGlzLmZpbmRTdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMoKTtcblxuICAgIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5zb21lKChzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlLCAvLy9cbiAgICAgICAgICAgIHBhZ2VOdW1iZXJEaXJlY3RpdmUgPSBwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSk7XG5cbiAgICAgIGlmIChwYWdlTnVtYmVyRGlyZWN0aXZlICE9PSBudWxsKSB7XG4gICAgICAgIHBhZ2VOdW1iZXJEaXJlY3RpdmUuc2V0UGFnZU51bWJlcihwYWdlTnVtYmVyKTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHBhZ2luYXRlKG1hcmtkb3duTm9kZXMsIGNvbnRleHQpIHtcbiAgICBjb25zdCBmb290bm90ZXNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50ID0gdGhpcy5yZW1vdmVTdWJEaXZpc2lvbk1hcmtkb3duTm9kZShGb290bm90ZXNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50LCBjb250ZXh0KSxcbiAgICAgICAgICBwYWdlTnVtYmVyRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCA9IHRoaXMucmVtb3ZlU3ViRGl2aXNpb25NYXJrZG93bk5vZGUoUGFnZU51bWJlckRpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQsIGNvbnRleHQpLFxuICAgICAgICAgIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzID0gW1xuICAgICAgICAgICAgZm9vdG5vdGVzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCxcbiAgICAgICAgICAgIHBhZ2VOdW1iZXJEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50XG4gICAgICAgICAgXTtcblxuICAgIGZpbHRlcihzdWJEaXZpc2lvblJlcGxhY2VtZW50cywgKHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQpID0+IHtcbiAgICAgIGlmIChzdWJEaXZpc2lvblJlcGxhY2VtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgeyBsaW5lc1BlclBhZ2UgfSA9IGNvbnRleHQsXG4gICAgICAgICAgcGFnaW5hdGVkQ2hpbGROb2RlcyA9IFtdLFxuICAgICAgICAgIGNoaWxkTm9kZXMgPSB0aGlzLmdldENoaWxkTm9kZXMoKTtcblxuICAgIGxldCB0b3RhbExpbmVzID0gMCxcbiAgICAgICAgcGFnZU51bWJlciA9IDE7XG5cbiAgICBjaGlsZE5vZGVzLmZvckVhY2goKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgY29uc3QgbGluZXMgPSBjaGlsZE5vZGUubGluZXMoY29udGV4dCksXG4gICAgICAgICAgICBwYWdpbmF0ZWRDaGlsZE5vZGUgPSBjaGlsZE5vZGU7ICAvLy9cblxuICAgICAgcGFnaW5hdGVkQ2hpbGROb2Rlcy5wdXNoKHBhZ2luYXRlZENoaWxkTm9kZSk7XG5cbiAgICAgIHRvdGFsTGluZXMgKz0gbGluZXM7XG5cbiAgICAgIGlmICh0b3RhbExpbmVzID4gbGluZXNQZXJQYWdlKSB7XG4gICAgICAgIHBhZ2luYXRlRGl2aXNpb25NYXJrZG93bk5vZGUocGFnaW5hdGVkQ2hpbGROb2Rlcywgc3ViRGl2aXNpb25SZXBsYWNlbWVudHMsIHRoaXMuZGl2aXNpb25DbGFzc05hbWUsIG1hcmtkb3duTm9kZXMsIHBhZ2VOdW1iZXIsIGNvbnRleHQpXG5cbiAgICAgICAgY2xlYXIocGFnaW5hdGVkQ2hpbGROb2Rlcyk7XG5cbiAgICAgICAgdG90YWxMaW5lcyA9IDA7XG5cbiAgICAgICAgcGFnZU51bWJlcisrO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRvdGFsTGluZXMgPiAwKSB7XG4gICAgICBwYWdpbmF0ZURpdmlzaW9uTWFya2Rvd25Ob2RlKHBhZ2luYXRlZENoaWxkTm9kZXMsIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzLCB0aGlzLmRpdmlzaW9uQ2xhc3NOYW1lLCBtYXJrZG93bk5vZGVzLCBwYWdlTnVtYmVyLCBjb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICBjcmVhdGVJbmRleChkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpIHtcbiAgICBsZXQgaW5kZXhDcmVhdGVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBpbmRleERpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgPSB0aGlzLmZpbmRTdWJEaXZpc2lvblJlcGxhY2VtZW50KEluZGV4RGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgY29udGV4dCk7XG5cbiAgICBpZiAoaW5kZXhEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50ICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICAgIGluZGV4UmVwbGFjZW1lbnQgPSBJbmRleFJlcGxhY2VtZW50LmZyb21EaXZpc2lvbk1hcmtkb3duTm9kZXNBbmREaXZpc2lvbk1hcmtkb3duTm9kZShkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgaWYgKGluZGV4UmVwbGFjZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgaW5kZXhSZXBsYWNlbWVudC5yZXBsYWNlSW5kZXhEaXJlY3RpdmVTdWJkaXZpc2lvblJlcGxhY2VtZW50KGluZGV4RGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGluZGV4Q3JlYXRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGluZGV4Q3JlYXRlZDtcbiAgfVxuXG4gIGNyZWF0ZUNvbnRlbnRzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICAgIGxldCBjb250ZW50c0NyZWF0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNvbnRlbnRzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCA9IHRoaXMuZmluZFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQoQ29udGVudHNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50LCBjb250ZXh0KTtcblxuICAgIGlmIChjb250ZW50c0RpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgICAgY29udGVudHNMaXN0UmVwbGFjZW1lbnQgPSBDb250ZW50c0xpc3RSZXBsYWNlbWVudC5mcm9tRGl2aXNpb25NYXJrZG93bk5vZGVzQW5kRGl2aXNpb25NYXJrZG93bk5vZGUoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBkaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGV4dCk7XG5cbiAgICAgIGlmIChjb250ZW50c0xpc3RSZXBsYWNlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICBjb250ZW50c0xpc3RSZXBsYWNlbWVudC5yZXBsYWNlQ29udGVudHNEaXJlY3RpdmVTdWJkaXZpc2lvblJlcGxhY2VtZW50KGNvbnRlbnRzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnRlbnRzQ3JlYXRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRlbnRzQ3JlYXRlZDtcbiAgfVxuXG4gIGNyZWF0ZUZvb3Rub3Rlcyhmb290bm90ZVJlcGxhY2VtZW50TWFwLCBjb250ZXh0KSB7XG4gICAgY29uc3QgZm9vdG5vdGVzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCA9IHRoaXMuZmluZFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQoRm9vdG5vdGVzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgY29udGV4dCk7XG5cbiAgICBpZiAoZm9vdG5vdGVzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZGl2aXNpb25NYXJrZG93bk5vZGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgICBmb290bm90ZXNMaXN0U3ViRGl2aXNpb25SZXBsYWNlbWVudCA9IEZvb3Rub3Rlc0xpc3RSZXBsYWNlbWVudC5mcm9tRGl2aXNpb25NYXJrZG93bk5vZGVBbmRGb290bm90ZVJlcGxhY2VtZW50TWFwKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBmb290bm90ZVJlcGxhY2VtZW50TWFwLCBjb250ZXh0KTtcblxuICAgICAgaWYgKGZvb3Rub3Rlc0xpc3RTdWJEaXZpc2lvblJlcGxhY2VtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIGZvb3Rub3Rlc0xpc3RTdWJEaXZpc2lvblJlcGxhY2VtZW50LnJlcGxhY2VGb290bm90ZXNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50KGZvb3Rub3Rlc0RpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQsIGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcbiAgICAgIH1cblxuICAgICAgcmVudW1iZXJGb290bm90ZUxpbmtNYXJrZG93bk5vZGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBmb290bm90ZVJlcGxhY2VtZW50TWFwLCBjYWxsYmFjaywgY29udGV4dCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2FsbGJhY2soZm9vdG5vdGVMaW5rTWFya2Rvd25Ob2RlKSB7XG4gICAgICAvLy9cbiAgICB9XG4gIH1cblxuICBwcmVwYXJlRm9vdG5vdGVzKGZvb3Rub3RlUmVwbGFjZW1lbnRNYXAsIGNvbnRleHQpIHtcbiAgICBjb25zdCBmb290bm90ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzID0gdGhpcy5yZW1vdmVTdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMoRm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50LCBjb250ZXh0KTtcblxuICAgIGZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudHMuZm9yRWFjaCgoZm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50KSA9PiB7XG4gICAgICBjb25zdCBmb290bm90ZVJlcGxhY2VtZW50ID0gRm9vdG5vdGVSZXBsYWNlbWVudC5mcm9tRm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50KGZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudCksXG4gICAgICAgICAgICBpZGVudGlmaWVyID0gZm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50LmlkZW50aWZpZXIoY29udGV4dCk7XG5cbiAgICAgIGZvb3Rub3RlUmVwbGFjZW1lbnRNYXBbaWRlbnRpZmllcl0gPSBmb290bm90ZVJlcGxhY2VtZW50O1xuICAgIH0pO1xuICB9XG5cbiAgcmVzb2x2ZUluY2x1ZGVzKGNvbnRleHQpIHtcbiAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMgPSB0aGlzLmZpbmRTdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMoKTtcblxuICAgIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgICAgc3ViRGl2aXNpb25NYXJrZG93bk5vZGUucmVzb2x2ZUluY2x1ZGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlc29sdmVFbWJlZGRpbmdzKGNvbnRleHQpIHtcbiAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMgPSB0aGlzLmZpbmRTdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMoKTtcblxuICAgIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgICAgc3ViRGl2aXNpb25NYXJrZG93bk5vZGUucmVzb2x2ZUVtYmVkZGluZ3MoZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpO1xuICAgIH0pO1xuICB9XG5cbiAgZmluZFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQoU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgY29udGV4dCkge1xuICAgIGxldCBzdWJEaXZpc2lvblJlcGxhY2VtZW50ID0gbnVsbDtcblxuICAgIGNvbnN0IHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IHRoaXMuZmluZFN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcygpO1xuXG4gICAgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzLnNvbWUoKHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50ID0gU3ViRGl2aXNpb25SZXBsYWNlbWVudC5mcm9tU3ViRGl2aXNpb25NYXJrZG93bk5vZGUoc3ViRGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICBpZiAoc3ViRGl2aXNpb25SZXBsYWNlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzdWJEaXZpc2lvblJlcGxhY2VtZW50O1xuICB9XG5cbiAgZmluZFN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzKFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQsIGNvbnRleHQpIHtcbiAgICBjb25zdCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMgPSB0aGlzLmZpbmRTdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMoKSxcbiAgICAgICAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50cyA9IHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5yZWR1Y2UoKHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzLCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3ViRGl2aXNpb25SZXBsYWNlbWVudCA9IFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQuZnJvbVN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlKHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgc3ViRGl2aXNpb25SZXBsYWNlbWVudHMucHVzaChzdWJEaXZpc2lvblJlcGxhY2VtZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzO1xuICAgICAgICAgIH0sIFtdKTtcblxuICAgIHJldHVybiBzdWJEaXZpc2lvblJlcGxhY2VtZW50cztcbiAgfVxuXG4gIGZpbmRTdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMgPSBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlKTtcblxuICAgIHJldHVybiBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXM7XG4gIH1cblxuICByZW1vdmVTdWJEaXZpc2lvbk1hcmtkb3duTm9kZShTdWJEaXZpc2lvblJlcGxhY2VtZW50LCBjb250ZXh0KSB7XG4gICAgY29uc3QgZGl2aXNpb25NYXJrZG93bk5vZGUgPSB0aGlzLCAgLy9cbiAgICAgICAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50ID0gdGhpcy5maW5kU3ViRGl2aXNpb25SZXBsYWNlbWVudChTdWJEaXZpc2lvblJlcGxhY2VtZW50LCBjb250ZXh0KTtcblxuICAgIGlmIChzdWJEaXZpc2lvblJlcGxhY2VtZW50ICE9PSBudWxsKSB7XG4gICAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50LnJlbW92ZUZyb21EaXZpc2lvbk1hcmtkb3duTm9kZShkaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQ7XG4gIH1cblxuICByZW1vdmVTdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMoU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgY29udGV4dCkge1xuICAgIGNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlID0gdGhpcywgIC8vXG4gICAgICAgICAgc3ViRGl2aXNpb25SZXBsYWNlbWVudHMgPSB0aGlzLmZpbmRTdWJEaXZpc2lvblJlcGxhY2VtZW50cyhTdWJEaXZpc2lvblJlcGxhY2VtZW50LCBjb250ZXh0KTtcblxuICAgIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzLmZvckVhY2goKHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQpID0+IHtcbiAgICAgIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQucmVtb3ZlRnJvbURpdmlzaW9uTWFya2Rvd25Ob2RlKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBzdWJEaXZpc2lvblJlcGxhY2VtZW50cztcbiAgfVxuXG4gIGNyZWF0ZUZvb3Rub3Rlc0xpc3RSZXBsYWNlbWVudChmb290bm90ZVJlcGxhY2VtZW50TWFwLCBjb250ZXh0KSB7XG4gICAgY29uc3QgZm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50cyA9IHRoaXMuZmluZFN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzKEZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgY29udGV4dCk7XG5cbiAgICBmb290bm90ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzLmZvckVhY2goKGZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudCkgPT4ge1xuICAgICAgY29uc3QgZm9vdG5vdGVSZXBsYWNlbWVudCA9IEZvb3Rub3RlUmVwbGFjZW1lbnQuZnJvbUZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudChmb290bm90ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQpLFxuICAgICAgICAgICAgaWRlbnRpZmllciA9IGZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudC5pZGVudGlmaWVyKGNvbnRleHQpO1xuXG4gICAgICBmb290bm90ZVJlcGxhY2VtZW50TWFwW2lkZW50aWZpZXJdID0gZm9vdG5vdGVSZXBsYWNlbWVudDtcbiAgICB9KTtcblxuICAgIGNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIGZvb3Rub3Rlc0xpc3RTdWJEaXZpc2lvblJlcGxhY2VtZW50ID0gRm9vdG5vdGVzTGlzdFJlcGxhY2VtZW50LmZyb21EaXZpc2lvbk1hcmtkb3duTm9kZUFuZEZvb3Rub3RlUmVwbGFjZW1lbnRNYXAoZGl2aXNpb25NYXJrZG93bk5vZGUsIGZvb3Rub3RlUmVwbGFjZW1lbnRNYXAsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGZvb3Rub3Rlc0xpc3RTdWJEaXZpc2lvblJlcGxhY2VtZW50O1xuICB9XG5cbiAgYXNIVE1MKGNvbnRleHQpIHtcbiAgICBsZXQgaHRtbCA9IG51bGw7XG5cbiAgICBjb25zdCBpbmRlbnQgPSBFTVBUWV9TVFJJTkcsXG4gICAgICAgICAgY2hpbGROb2Rlc0hUTUwgPSB0aGlzLmNoaWxkTm9kZXNBc0hUTUwoaW5kZW50LCBjb250ZXh0KTtcblxuICAgIGlmIChjaGlsZE5vZGVzSFRNTCAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhcnRpbmdUYWcgPSB0aGlzLnN0YXJ0aW5nVGFnKGNvbnRleHQpLFxuICAgICAgICAgICAgY2xvc2luZ1RhZyA9IHRoaXMuY2xvc2luZ1RhZyhjb250ZXh0KTtcblxuICAgICAgaHRtbCA9IGAke2luZGVudH0ke3N0YXJ0aW5nVGFnfVxuJHtjaGlsZE5vZGVzSFRNTH0ke2luZGVudH0ke2Nsb3NpbmdUYWd9XG5gO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sO1xuICB9XG5cbiAgY2xvbmUoKSB7IHJldHVybiBzdXBlci5jbG9uZSh0aGlzLmRpdmlzaW9uQ2xhc3NOYW1lKTsgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eShydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSkge1xuICAgIGNvbnN0IGRpdmlzaW9uQ2xhc3NOYW1lID0gbnVsbCxcbiAgICAgICAgICBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IE1hcmtkb3duTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eShEaXZpc2lvbk1hcmtkb3duTm9kZSwgcnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHksIGRpdmlzaW9uQ2xhc3NOYW1lKTtcblxuICAgIHJldHVybiBkaXZpc2lvbk1hcmtkb3duTm9kZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFnaW5hdGVkQ2hpbGROb2Rlc0FuZFN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzKHBhZ2luYXRlZENoaWxkTm9kZXMsIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzLCBjb250ZXh0KSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBESVZJU0lPTl9SVUxFX05BTUUsXG4gICAgICAgICAgY2hpbGROb2RlcyA9IFtcbiAgICAgICAgICAgIC4uLnBhZ2luYXRlZENoaWxkTm9kZXNcbiAgICAgICAgICBdLFxuICAgICAgICAgIG9wYWNpdHkgPSBudWxsLFxuICAgICAgICAgIGRpdmlzaW9uTWFya2Rvd25Ob2RlID0gRGl2aXNpb25NYXJrZG93bk5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkocnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHkpO1xuXG4gICAgc3ViRGl2aXNpb25SZXBsYWNlbWVudHMuZm9yRWFjaCgoc3ViRGl2aXNpb25SZXBsYWNlbWVudCkgPT4ge1xuICAgICAgc3ViRGl2aXNpb25SZXBsYWNlbWVudCA9IHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQuY2xvbmUoKTsgIC8vL1xuXG4gICAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50LmFwcGVuZFRvRGl2aXNpb25NYXJrZG93bk5vZGUoZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRpdmlzaW9uTWFya2Rvd25Ob2RlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhZ2luYXRlRGl2aXNpb25NYXJrZG93bk5vZGUocGFnaW5hdGVkQ2hpbGROb2Rlcywgc3ViRGl2aXNpb25SZXBsYWNlbWVudHMsIGRpdmlzaW9uQ2xhc3NOYW1lLCBtYXJrZG93bk5vZGVzLCBwYWdlTnVtYmVyLCBjb250ZXh0KSB7XG4gIGxldCBtYXJrZG93bk5vZGU7XG5cbiAgY29uc3QgaW5kZXhBbmNob3JSZXBsYWNlbWVudCA9IEluZGV4QW5jaG9yUmVwbGFjZW1lbnQuZnJvbVBhZ2VOdW1iZXIocGFnZU51bWJlciwgY29udGV4dCksXG4gICAgICAgIGFuY2hvck1hcmtkb3duTm9kZSA9IGluZGV4QW5jaG9yUmVwbGFjZW1lbnQuZ2V0QW5jaG9yTWFya2Rvd25Ob2RlKCk7XG5cbiAgbWFya2Rvd25Ob2RlID0gYW5jaG9yTWFya2Rvd25Ob2RlOyAgLy8vXG5cbiAgbWFya2Rvd25Ob2Rlcy5wdXNoKG1hcmtkb3duTm9kZSk7XG5cbiAgY29uc3QgZGl2aXNpb25NYXJrZG93bk5vZGUgPSBEaXZpc2lvbk1hcmtkb3duTm9kZS5mcm9tUGFnaW5hdGVkQ2hpbGROb2Rlc0FuZFN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzKHBhZ2luYXRlZENoaWxkTm9kZXMsIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzLCBjb250ZXh0KTtcblxuICBkaXZpc2lvbk1hcmtkb3duTm9kZS5zZXREaXZpc2lvbkNsYXNzTmFtZShkaXZpc2lvbkNsYXNzTmFtZSk7XG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGUuc2V0UGFnZU51bWJlcihwYWdlTnVtYmVyKTtcblxuICBtYXJrZG93bk5vZGUgPSBkaXZpc2lvbk1hcmtkb3duTm9kZTsgLy8vXG5cbiAgbWFya2Rvd25Ob2Rlcy5wdXNoKG1hcmtkb3duTm9kZSk7XG59Il0sIm5hbWVzIjpbIkRpdmlzaW9uTWFya2Rvd25Ob2RlIiwiY2xlYXIiLCJhcnJheVV0aWxpdGllcyIsImZpbHRlciIsInJ1bGVOYW1lIiwiY2hpbGROb2RlcyIsInByZWNlZGVuY2UiLCJvcGFjaXR5IiwiZG9tRWxlbWVudCIsImRpdmlzaW9uQ2xhc3NOYW1lIiwiZ2V0RGl2aXNpb25DbGFzc05hbWUiLCJzZXREaXZpc2lvbkNsYXNzTmFtZSIsImNsYXNzTmFtZSIsImNvbnRleHQiLCJpc0lnbm9yZWQiLCJub2RlIiwiaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwiaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUiLCJpZ25vcmVkIiwiaXNEaXZpc2lvbk1hcmtkb3duTm9kZSIsImRpdmlzaW9uTWFya2Rvd25Ob2RlIiwiZ2V0UGFnZU51bWJlciIsInBhZ2VOdW1iZXIiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMiLCJmaW5kU3ViRGl2aXNpb25NYXJrZG93bk5vZGVzIiwic29tZSIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlIiwicGFnZU51bWJlckRpcmVjdGl2ZSIsInBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSIsInNldFBhZ2VOdW1iZXIiLCJwYWdpbmF0ZSIsIm1hcmtkb3duTm9kZXMiLCJmb290bm90ZXNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50IiwicmVtb3ZlU3ViRGl2aXNpb25NYXJrZG93bk5vZGUiLCJGb290bm90ZXNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50IiwicGFnZU51bWJlckRpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQiLCJQYWdlTnVtYmVyRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsInN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzIiwic3ViRGl2aXNpb25SZXBsYWNlbWVudCIsImxpbmVzUGVyUGFnZSIsInBhZ2luYXRlZENoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwidG90YWxMaW5lcyIsImZvckVhY2giLCJjaGlsZE5vZGUiLCJsaW5lcyIsInBhZ2luYXRlZENoaWxkTm9kZSIsInB1c2giLCJwYWdpbmF0ZURpdmlzaW9uTWFya2Rvd25Ob2RlIiwiY3JlYXRlSW5kZXgiLCJkaXZpc2lvbk1hcmtkb3duTm9kZXMiLCJpbmRleENyZWF0ZWQiLCJpbmRleERpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQiLCJmaW5kU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsIkluZGV4RGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsImluZGV4UmVwbGFjZW1lbnQiLCJJbmRleFJlcGxhY2VtZW50IiwiZnJvbURpdmlzaW9uTWFya2Rvd25Ob2Rlc0FuZERpdmlzaW9uTWFya2Rvd25Ob2RlIiwicmVwbGFjZUluZGV4RGlyZWN0aXZlU3ViZGl2aXNpb25SZXBsYWNlbWVudCIsImNyZWF0ZUNvbnRlbnRzIiwiY29udGVudHNDcmVhdGVkIiwiY29udGVudHNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50IiwiQ29udGVudHNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50IiwiY29udGVudHNMaXN0UmVwbGFjZW1lbnQiLCJDb250ZW50c0xpc3RSZXBsYWNlbWVudCIsInJlcGxhY2VDb250ZW50c0RpcmVjdGl2ZVN1YmRpdmlzaW9uUmVwbGFjZW1lbnQiLCJjcmVhdGVGb290bm90ZXMiLCJmb290bm90ZVJlcGxhY2VtZW50TWFwIiwiZm9vdG5vdGVzTGlzdFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQiLCJGb290bm90ZXNMaXN0UmVwbGFjZW1lbnQiLCJmcm9tRGl2aXNpb25NYXJrZG93bk5vZGVBbmRGb290bm90ZVJlcGxhY2VtZW50TWFwIiwicmVwbGFjZUZvb3Rub3Rlc0RpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQiLCJyZW51bWJlckZvb3Rub3RlTGlua01hcmtkb3duTm9kZXMiLCJjYWxsYmFjayIsImZvb3Rub3RlTGlua01hcmtkb3duTm9kZSIsInByZXBhcmVGb290bm90ZXMiLCJmb290bm90ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzIiwicmVtb3ZlU3ViRGl2aXNpb25NYXJrZG93bk5vZGVzIiwiRm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50IiwiZm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50IiwiZm9vdG5vdGVSZXBsYWNlbWVudCIsIkZvb3Rub3RlUmVwbGFjZW1lbnQiLCJmcm9tRm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50IiwiaWRlbnRpZmllciIsInJlc29sdmVJbmNsdWRlcyIsInJlc29sdmVFbWJlZGRpbmdzIiwiU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsImZyb21TdWJEaXZpc2lvbk1hcmtkb3duTm9kZSIsImZpbmRTdWJEaXZpc2lvblJlcGxhY2VtZW50cyIsInJlZHVjZSIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlIiwicmVtb3ZlRnJvbURpdmlzaW9uTWFya2Rvd25Ob2RlIiwiY3JlYXRlRm9vdG5vdGVzTGlzdFJlcGxhY2VtZW50IiwiYXNIVE1MIiwiaHRtbCIsImluZGVudCIsIkVNUFRZX1NUUklORyIsImNoaWxkTm9kZXNIVE1MIiwiY2hpbGROb2Rlc0FzSFRNTCIsInN0YXJ0aW5nVGFnIiwiY2xvc2luZ1RhZyIsImNsb25lIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkiLCJNYXJrZG93bk5vZGUiLCJmcm9tUGFnaW5hdGVkQ2hpbGROb2Rlc0FuZFN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzIiwiRElWSVNJT05fUlVMRV9OQU1FIiwiYXBwZW5kVG9EaXZpc2lvbk1hcmtkb3duTm9kZSIsIm1hcmtkb3duTm9kZSIsImluZGV4QW5jaG9yUmVwbGFjZW1lbnQiLCJJbmRleEFuY2hvclJlcGxhY2VtZW50IiwiZnJvbVBhZ2VOdW1iZXIiLCJhbmNob3JNYXJrZG93bk5vZGUiLCJnZXRBbmNob3JNYXJrZG93bk5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBdUJxQkE7Ozt5QkFyQlU7K0RBRU47NERBQ0k7K0RBQ0c7a0VBQ0c7bUVBQ0M7b0VBQ0M7Z0VBQ007cUVBQ007d0VBQ0c7eUVBQ0M7MEVBQ0M7eUJBRXpCO3lCQUNxQjtxQkFDNkU7eUJBQzlGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWpDLElBQVFDLFFBQWtCQyx5QkFBYyxDQUFoQ0QsT0FBT0UsU0FBV0QseUJBQWMsQ0FBekJDO0FBRUEsSUFBQSxBQUFNSCxxQ0FBRCxBQUFMO2NBQU1BOytCQUFBQTthQUFBQSxxQkFDUEksUUFBUSxFQUFFQyxVQUFVLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLGlCQUFpQjtnQ0FEakVUOztrQ0FFWEksVUFBVUMsWUFBWUMsWUFBWUMsU0FBU0M7UUFFakQsTUFBS0MsaUJBQWlCLEdBQUdBOzs7a0JBSlJUOztZQU9uQlUsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRCxpQkFBaUI7WUFDL0I7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEscUJBQXFCRixpQkFBaUI7Z0JBQ3BDLElBQUksQ0FBQ0EsaUJBQWlCLEdBQUdBO1lBQzNCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVVDLE9BQU87Z0JBQ2YsSUFBTUQsWUFBWSxJQUFJLENBQUNI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
465
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2RpdmlzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93blwiO1xuaW1wb3J0IEluZGV4UmVwbGFjZW1lbnQgZnJvbSBcIi4uLy4uL3JlcGxhY2VtZW50L2luZGV4XCI7XG5pbXBvcnQgRm9vdG5vdGVSZXBsYWNlbWVudCBmcm9tIFwiLi4vLi4vcmVwbGFjZW1lbnQvZm9vdG5vdGVcIjtcbmltcG9ydCBJbmRleEFuY2hvclJlcGxhY2VtZW50IGZyb20gXCIuLi8uLi9yZXBsYWNlbWVudC9pbmRleEFuY2hvclwiO1xuaW1wb3J0IENvbnRlbnRzTGlzdFJlcGxhY2VtZW50IGZyb20gXCIuLi8uLi9yZXBsYWNlbWVudC9jb250ZW50c0xpc3RcIjtcbmltcG9ydCBGb290bm90ZXNMaXN0UmVwbGFjZW1lbnQgZnJvbSBcIi4uLy4uL3JlcGxhY2VtZW50L2Zvb3Rub3Rlc0xpc3RcIjtcbmltcG9ydCBGb290bm90ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgZnJvbSBcIi4uLy4uL3JlcGxhY2VtZW50L3N1YkRpdmlzaW9uL2Zvb3Rub3RlXCI7XG5pbXBvcnQgSW5kZXhEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50IGZyb20gXCIuLi8uLi9yZXBsYWNlbWVudC9zdWJEaXZpc2lvbi9pbmRleERpcmVjdGl2ZVwiO1xuaW1wb3J0IENvbnRlbnRzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCBmcm9tIFwiLi4vLi4vcmVwbGFjZW1lbnQvc3ViRGl2aXNpb24vY29udGVudHNEaXJlY3RpdmVcIjtcbmltcG9ydCBGb290bm90ZXNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50IGZyb20gXCIuLi8uLi9yZXBsYWNlbWVudC9zdWJEaXZpc2lvbi9mb290bm90ZXNEaXJlY3RpdmVcIjtcbmltcG9ydCBQYWdlTnVtYmVyRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCBmcm9tIFwiLi4vLi4vcmVwbGFjZW1lbnQvc3ViRGl2aXNpb24vcGFnZU51bWJlckRpcmVjdGl2ZVwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyByZW51bWJlckZvb3Rub3RlTGlua01hcmtkb3duTm9kZXMgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2Zvb3Rub3Rlc1wiO1xuaW1wb3J0IHsgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU5vZGUsIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlLCBwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQge0RJVklTSU9OX1JVTEVfTkFNRX0gZnJvbSBcIi4uLy4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCB7IGNsZWFyLCBmaWx0ZXIgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEaXZpc2lvbk1hcmtkb3duTm9kZSBleHRlbmRzIE1hcmtkb3duTm9kZSB7XG4gIGNvbnN0cnVjdG9yKHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBwcmVjZWRlbmNlLCBvcGFjaXR5LCBkb21FbGVtZW50LCBkaXZpc2lvbkNsYXNzTmFtZSkge1xuICAgIHN1cGVyKHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBwcmVjZWRlbmNlLCBvcGFjaXR5LCBkb21FbGVtZW50KTtcblxuICAgIHRoaXMuZGl2aXNpb25DbGFzc05hbWUgPSBkaXZpc2lvbkNsYXNzTmFtZTtcbiAgfVxuXG4gIGdldERpdmlzaW9uQ2xhc3NOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmRpdmlzaW9uQ2xhc3NOYW1lO1xuICB9XG5cbiAgc2V0RGl2aXNpb25DbGFzc05hbWUoZGl2aXNpb25DbGFzc05hbWUpIHtcbiAgICB0aGlzLmRpdmlzaW9uQ2xhc3NOYW1lID0gZGl2aXNpb25DbGFzc05hbWU7XG4gIH1cblxuICBpc0RpdmlzaW9uTWFya2Rvd25Ob2RlKCkge1xuICAgIGNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlID0gdHJ1ZTtcblxuICAgIHJldHVybiBkaXZpc2lvbk1hcmtkb3duTm9kZTtcbiAgfVxuXG4gIGNsYXNzTmFtZShjb250ZXh0KSB7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gdGhpcy5kaXZpc2lvbkNsYXNzTmFtZTsgLy8vXG5cbiAgICByZXR1cm4gY2xhc3NOYW1lO1xuICB9XG5cbiAgaXNJZ25vcmVkKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlID0gaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSksXG4gICAgICAgICAgaWdub3JlZCA9IChpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGUgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIGlnbm9yZWQ7XG4gIH1cblxuICBnZXRQYWdlTnVtYmVyKCkge1xuICAgIGxldCBwYWdlTnVtYmVyID0gbnVsbDtcblxuICAgIGNvbnN0IHBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGUgPSB0aGlzLmZpbmRQYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlKCk7XG5cbiAgICBpZiAocGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZSAhPT0gbnVsbCkge1xuICAgICAgcGFnZU51bWJlciA9IHBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGUuZ2V0UGFnZU51bWJlcigpO1xuICAgIH1cblxuICAgIHJldHVybiBwYWdlTnVtYmVyO1xuICB9XG5cbiAgcGFnaW5hdGUobWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICAgIGNvbnN0IGZvb3Rub3Rlc0RpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgPSB0aGlzLnJlbW92ZVN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlKEZvb3Rub3Rlc0RpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQsIGNvbnRleHQpLFxuICAgICAgICAgIHBhZ2VOdW1iZXJEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50ID0gdGhpcy5yZW1vdmVTdWJEaXZpc2lvbk1hcmtkb3duTm9kZShQYWdlTnVtYmVyRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgY29udGV4dCksXG4gICAgICAgICAgc3ViRGl2aXNpb25SZXBsYWNlbWVudHMgPSBbXG4gICAgICAgICAgICBmb290bm90ZXNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50LFxuICAgICAgICAgICAgcGFnZU51bWJlckRpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnRcbiAgICAgICAgICBdO1xuXG4gICAgZmlsdGVyKHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzLCAoc3ViRGl2aXNpb25SZXBsYWNlbWVudCkgPT4ge1xuICAgICAgaWYgKHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCB7IGxpbmVzUGVyUGFnZSB9ID0gY29udGV4dCxcbiAgICAgICAgICBwYWdpbmF0ZWRDaGlsZE5vZGVzID0gW10sXG4gICAgICAgICAgY2hpbGROb2RlcyA9IHRoaXMuZ2V0Q2hpbGROb2RlcygpO1xuXG4gICAgbGV0IHRvdGFsTGluZXMgPSAwO1xuXG4gICAgY2hpbGROb2Rlcy5mb3JFYWNoKChjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IGxpbmVzID0gY2hpbGROb2RlLmxpbmVzKGNvbnRleHQpLFxuICAgICAgICAgICAgcGFnaW5hdGVkQ2hpbGROb2RlID0gY2hpbGROb2RlOyAgLy8vXG5cbiAgICAgIHBhZ2luYXRlZENoaWxkTm9kZXMucHVzaChwYWdpbmF0ZWRDaGlsZE5vZGUpO1xuXG4gICAgICB0b3RhbExpbmVzICs9IGxpbmVzO1xuXG4gICAgICBpZiAodG90YWxMaW5lcyA+IGxpbmVzUGVyUGFnZSkge1xuICAgICAgICBwYWdpbmF0ZURpdmlzaW9uTWFya2Rvd25Ob2RlKHBhZ2luYXRlZENoaWxkTm9kZXMsIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzLCB0aGlzLmRpdmlzaW9uQ2xhc3NOYW1lLCBtYXJrZG93bk5vZGVzLCBjb250ZXh0KVxuXG4gICAgICAgIGNsZWFyKHBhZ2luYXRlZENoaWxkTm9kZXMpO1xuXG4gICAgICAgIHRvdGFsTGluZXMgPSAwO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRvdGFsTGluZXMgPiAwKSB7XG4gICAgICBwYWdpbmF0ZURpdmlzaW9uTWFya2Rvd25Ob2RlKHBhZ2luYXRlZENoaWxkTm9kZXMsIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzLCB0aGlzLmRpdmlzaW9uQ2xhc3NOYW1lLCBtYXJrZG93bk5vZGVzLCBjb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICBjcmVhdGVJbmRleChkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpIHtcbiAgICBsZXQgaW5kZXhDcmVhdGVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBpbmRleERpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgPSB0aGlzLmZpbmRTdWJEaXZpc2lvblJlcGxhY2VtZW50KEluZGV4RGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgY29udGV4dCk7XG5cbiAgICBpZiAoaW5kZXhEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50ICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICAgIGluZGV4UmVwbGFjZW1lbnQgPSBJbmRleFJlcGxhY2VtZW50LmZyb21EaXZpc2lvbk1hcmtkb3duTm9kZXNBbmREaXZpc2lvbk1hcmtkb3duTm9kZShkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgaWYgKGluZGV4UmVwbGFjZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgaW5kZXhSZXBsYWNlbWVudC5yZXBsYWNlSW5kZXhEaXJlY3RpdmVTdWJkaXZpc2lvblJlcGxhY2VtZW50KGluZGV4RGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGluZGV4Q3JlYXRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGluZGV4Q3JlYXRlZDtcbiAgfVxuXG4gIGNyZWF0ZUNvbnRlbnRzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICAgIGxldCBjb250ZW50c0NyZWF0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNvbnRlbnRzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCA9IHRoaXMuZmluZFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQoQ29udGVudHNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50LCBjb250ZXh0KTtcblxuICAgIGlmIChjb250ZW50c0RpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgICAgY29udGVudHNMaXN0UmVwbGFjZW1lbnQgPSBDb250ZW50c0xpc3RSZXBsYWNlbWVudC5mcm9tRGl2aXNpb25NYXJrZG93bk5vZGVzQW5kRGl2aXNpb25NYXJrZG93bk5vZGUoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBkaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGV4dCk7XG5cbiAgICAgIGlmIChjb250ZW50c0xpc3RSZXBsYWNlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICBjb250ZW50c0xpc3RSZXBsYWNlbWVudC5yZXBsYWNlQ29udGVudHNEaXJlY3RpdmVTdWJkaXZpc2lvblJlcGxhY2VtZW50KGNvbnRlbnRzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnRlbnRzQ3JlYXRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRlbnRzQ3JlYXRlZDtcbiAgfVxuXG4gIGNyZWF0ZUZvb3Rub3Rlcyhmb290bm90ZVJlcGxhY2VtZW50TWFwLCBjb250ZXh0KSB7XG4gICAgY29uc3QgZm9vdG5vdGVzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCA9IHRoaXMuZmluZFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQoRm9vdG5vdGVzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgY29udGV4dCk7XG5cbiAgICBpZiAoZm9vdG5vdGVzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZGl2aXNpb25NYXJrZG93bk5vZGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgICBmb290bm90ZXNMaXN0U3ViRGl2aXNpb25SZXBsYWNlbWVudCA9IEZvb3Rub3Rlc0xpc3RSZXBsYWNlbWVudC5mcm9tRGl2aXNpb25NYXJrZG93bk5vZGVBbmRGb290bm90ZVJlcGxhY2VtZW50TWFwKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBmb290bm90ZVJlcGxhY2VtZW50TWFwLCBjb250ZXh0KTtcblxuICAgICAgaWYgKGZvb3Rub3Rlc0xpc3RTdWJEaXZpc2lvblJlcGxhY2VtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIGZvb3Rub3Rlc0xpc3RTdWJEaXZpc2lvblJlcGxhY2VtZW50LnJlcGxhY2VGb290bm90ZXNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50KGZvb3Rub3Rlc0RpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQsIGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcbiAgICAgIH1cblxuICAgICAgcmVudW1iZXJGb290bm90ZUxpbmtNYXJrZG93bk5vZGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBmb290bm90ZVJlcGxhY2VtZW50TWFwLCBjYWxsYmFjaywgY29udGV4dCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2FsbGJhY2soZm9vdG5vdGVMaW5rTWFya2Rvd25Ob2RlKSB7XG4gICAgICAvLy9cbiAgICB9XG4gIH1cblxuICBwcmVwYXJlRm9vdG5vdGVzKGZvb3Rub3RlUmVwbGFjZW1lbnRNYXAsIGNvbnRleHQpIHtcbiAgICBjb25zdCBmb290bm90ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzID0gdGhpcy5yZW1vdmVTdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMoRm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50LCBjb250ZXh0KTtcblxuICAgIGZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudHMuZm9yRWFjaCgoZm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50KSA9PiB7XG4gICAgICBjb25zdCBmb290bm90ZVJlcGxhY2VtZW50ID0gRm9vdG5vdGVSZXBsYWNlbWVudC5mcm9tRm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50KGZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudCksXG4gICAgICAgICAgICBpZGVudGlmaWVyID0gZm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50LmlkZW50aWZpZXIoY29udGV4dCk7XG5cbiAgICAgIGZvb3Rub3RlUmVwbGFjZW1lbnRNYXBbaWRlbnRpZmllcl0gPSBmb290bm90ZVJlcGxhY2VtZW50O1xuICAgIH0pO1xuICB9XG5cbiAgcmVzb2x2ZUluY2x1ZGVzKGNvbnRleHQpIHtcbiAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMgPSB0aGlzLmZpbmRTdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMoKTtcblxuICAgIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgICAgc3ViRGl2aXNpb25NYXJrZG93bk5vZGUucmVzb2x2ZUluY2x1ZGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlc29sdmVFbWJlZGRpbmdzKGNvbnRleHQpIHtcbiAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMgPSB0aGlzLmZpbmRTdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMoKTtcblxuICAgIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgICAgc3ViRGl2aXNpb25NYXJrZG93bk5vZGUucmVzb2x2ZUVtYmVkZGluZ3MoZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpO1xuICAgIH0pO1xuICB9XG5cbiAgZmluZFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQoU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgY29udGV4dCkge1xuICAgIGxldCBzdWJEaXZpc2lvblJlcGxhY2VtZW50ID0gbnVsbDtcblxuICAgIGNvbnN0IHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IHRoaXMuZmluZFN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcygpO1xuXG4gICAgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzLnNvbWUoKHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50ID0gU3ViRGl2aXNpb25SZXBsYWNlbWVudC5mcm9tU3ViRGl2aXNpb25NYXJrZG93bk5vZGUoc3ViRGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICBpZiAoc3ViRGl2aXNpb25SZXBsYWNlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzdWJEaXZpc2lvblJlcGxhY2VtZW50O1xuICB9XG5cbiAgZmluZFN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzKFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQsIGNvbnRleHQpIHtcbiAgICBjb25zdCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMgPSB0aGlzLmZpbmRTdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMoKSxcbiAgICAgICAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50cyA9IHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5yZWR1Y2UoKHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzLCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3ViRGl2aXNpb25SZXBsYWNlbWVudCA9IFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQuZnJvbVN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlKHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgc3ViRGl2aXNpb25SZXBsYWNlbWVudHMucHVzaChzdWJEaXZpc2lvblJlcGxhY2VtZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzO1xuICAgICAgICAgIH0sIFtdKTtcblxuICAgIHJldHVybiBzdWJEaXZpc2lvblJlcGxhY2VtZW50cztcbiAgfVxuXG4gIGZpbmRTdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMgPSBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlKTtcblxuICAgIHJldHVybiBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXM7XG4gIH1cblxuICBmaW5kUGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZSgpIHtcbiAgICBsZXQgcGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZSA9IG51bGw7XG5cbiAgICBjb25zdCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMgPSB0aGlzLmZpbmRTdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMoKTtcblxuICAgIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5zb21lKChzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlOyAvLy9cblxuICAgICAgcGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZSA9IHBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKTtcblxuICAgICAgaWYgKHBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZTtcbiAgfVxuXG4gIHJlbW92ZVN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlKFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQsIGNvbnRleHQpIHtcbiAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IHRoaXMsICAvL1xuICAgICAgICAgIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgPSB0aGlzLmZpbmRTdWJEaXZpc2lvblJlcGxhY2VtZW50KFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQsIGNvbnRleHQpO1xuXG4gICAgaWYgKHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQucmVtb3ZlRnJvbURpdmlzaW9uTWFya2Rvd25Ob2RlKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3ViRGl2aXNpb25SZXBsYWNlbWVudDtcbiAgfVxuXG4gIHJlbW92ZVN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcyhTdWJEaXZpc2lvblJlcGxhY2VtZW50LCBjb250ZXh0KSB7XG4gICAgY29uc3QgZGl2aXNpb25NYXJrZG93bk5vZGUgPSB0aGlzLCAgLy9cbiAgICAgICAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50cyA9IHRoaXMuZmluZFN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzKFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQsIGNvbnRleHQpO1xuXG4gICAgc3ViRGl2aXNpb25SZXBsYWNlbWVudHMuZm9yRWFjaCgoc3ViRGl2aXNpb25SZXBsYWNlbWVudCkgPT4ge1xuICAgICAgc3ViRGl2aXNpb25SZXBsYWNlbWVudC5yZW1vdmVGcm9tRGl2aXNpb25NYXJrZG93bk5vZGUoZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzO1xuICB9XG5cbiAgY3JlYXRlRm9vdG5vdGVzTGlzdFJlcGxhY2VtZW50KGZvb3Rub3RlUmVwbGFjZW1lbnRNYXAsIGNvbnRleHQpIHtcbiAgICBjb25zdCBmb290bm90ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzID0gdGhpcy5maW5kU3ViRGl2aXNpb25SZXBsYWNlbWVudHMoRm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50LCBjb250ZXh0KTtcblxuICAgIGZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudHMuZm9yRWFjaCgoZm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50KSA9PiB7XG4gICAgICBjb25zdCBmb290bm90ZVJlcGxhY2VtZW50ID0gRm9vdG5vdGVSZXBsYWNlbWVudC5mcm9tRm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50KGZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudCksXG4gICAgICAgICAgICBpZGVudGlmaWVyID0gZm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50LmlkZW50aWZpZXIoY29udGV4dCk7XG5cbiAgICAgIGZvb3Rub3RlUmVwbGFjZW1lbnRNYXBbaWRlbnRpZmllcl0gPSBmb290bm90ZVJlcGxhY2VtZW50O1xuICAgIH0pO1xuXG4gICAgY29uc3QgZGl2aXNpb25NYXJrZG93bk5vZGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgZm9vdG5vdGVzTGlzdFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgPSBGb290bm90ZXNMaXN0UmVwbGFjZW1lbnQuZnJvbURpdmlzaW9uTWFya2Rvd25Ob2RlQW5kRm9vdG5vdGVSZXBsYWNlbWVudE1hcChkaXZpc2lvbk1hcmtkb3duTm9kZSwgZm9vdG5vdGVSZXBsYWNlbWVudE1hcCwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZm9vdG5vdGVzTGlzdFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQ7XG4gIH1cblxuICBhc0hUTUwoY29udGV4dCkge1xuICAgIGxldCBodG1sID0gbnVsbDtcblxuICAgIGNvbnN0IGluZGVudCA9IEVNUFRZX1NUUklORyxcbiAgICAgICAgICBjaGlsZE5vZGVzSFRNTCA9IHRoaXMuY2hpbGROb2Rlc0FzSFRNTChpbmRlbnQsIGNvbnRleHQpO1xuXG4gICAgaWYgKGNoaWxkTm9kZXNIVE1MICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdGFydGluZ1RhZyA9IHRoaXMuc3RhcnRpbmdUYWcoY29udGV4dCksXG4gICAgICAgICAgICBjbG9zaW5nVGFnID0gdGhpcy5jbG9zaW5nVGFnKGNvbnRleHQpO1xuXG4gICAgICBodG1sID0gYCR7aW5kZW50fSR7c3RhcnRpbmdUYWd9XG4ke2NoaWxkTm9kZXNIVE1MfSR7aW5kZW50fSR7Y2xvc2luZ1RhZ31cbmA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWw7XG4gIH1cblxuICBjbG9uZSgpIHsgcmV0dXJuIHN1cGVyLmNsb25lKHRoaXMuZGl2aXNpb25DbGFzc05hbWUpOyB9XG5cbiAgc3RhdGljIGZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KSB7XG4gICAgY29uc3QgZGl2aXNpb25DbGFzc05hbWUgPSBudWxsLFxuICAgICAgICAgIGRpdmlzaW9uTWFya2Rvd25Ob2RlID0gTWFya2Rvd25Ob2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KERpdmlzaW9uTWFya2Rvd25Ob2RlLCBydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgZGl2aXNpb25DbGFzc05hbWUpO1xuXG4gICAgcmV0dXJuIGRpdmlzaW9uTWFya2Rvd25Ob2RlO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYWdpbmF0ZWRDaGlsZE5vZGVzU3ViRGl2aXNpb25SZXBsYWNlbWVudHNBbmREaXZpc2lvbkNsYXNzTmFtZShwYWdpbmF0ZWRDaGlsZE5vZGVzLCBzdWJEaXZpc2lvblJlcGxhY2VtZW50cywgZGl2aXNpb25DbGFzc05hbWUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IERJVklTSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgICBjaGlsZE5vZGVzID0gW1xuICAgICAgICAgICAgLi4ucGFnaW5hdGVkQ2hpbGROb2Rlc1xuICAgICAgICAgIF0sXG4gICAgICAgICAgb3BhY2l0eSA9IG51bGwsXG4gICAgICAgICAgZGl2aXNpb25NYXJrZG93bk5vZGUgPSBEaXZpc2lvbk1hcmtkb3duTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eShydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSk7XG5cbiAgICBkaXZpc2lvbk1hcmtkb3duTm9kZS5zZXREaXZpc2lvbkNsYXNzTmFtZShkaXZpc2lvbkNsYXNzTmFtZSk7XG5cbiAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50cy5mb3JFYWNoKChzdWJEaXZpc2lvblJlcGxhY2VtZW50KSA9PiB7XG4gICAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50ID0gc3ViRGl2aXNpb25SZXBsYWNlbWVudC5jbG9uZSgpOyAgLy8vXG5cbiAgICAgIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQuYXBwZW5kVG9EaXZpc2lvbk1hcmtkb3duTm9kZShkaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGV4dCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGl2aXNpb25NYXJrZG93bk5vZGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFnaW5hdGVEaXZpc2lvbk1hcmtkb3duTm9kZShwYWdpbmF0ZWRDaGlsZE5vZGVzLCBzdWJEaXZpc2lvblJlcGxhY2VtZW50cywgZGl2aXNpb25DbGFzc05hbWUsIG1hcmtkb3duTm9kZXMsIGNvbnRleHQpIHtcbiAgbGV0IG1hcmtkb3duTm9kZTtcblxuICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IERpdmlzaW9uTWFya2Rvd25Ob2RlLmZyb21QYWdpbmF0ZWRDaGlsZE5vZGVzU3ViRGl2aXNpb25SZXBsYWNlbWVudHNBbmREaXZpc2lvbkNsYXNzTmFtZShwYWdpbmF0ZWRDaGlsZE5vZGVzLCBzdWJEaXZpc2lvblJlcGxhY2VtZW50cywgZGl2aXNpb25DbGFzc05hbWUsIGNvbnRleHQpLFxuICAgICAgICBwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlID0gZGl2aXNpb25NYXJrZG93bk5vZGUuZmluZFBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGUoKTtcblxuICBpZiAocGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZSAhPT0gbnVsbCkge1xuICAgIGxldCB7IHBhZ2VOdW1iZXIgfSA9IGNvbnRleHQ7XG5cbiAgICBwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlLnNldFBhZ2VOdW1iZXIocGFnZU51bWJlcik7XG5cbiAgICBjb25zdCBpbmRleEFuY2hvclJlcGxhY2VtZW50ID0gSW5kZXhBbmNob3JSZXBsYWNlbWVudC5mcm9tUGFnZU51bWJlcihwYWdlTnVtYmVyLCBjb250ZXh0KSxcbiAgICAgICAgICBhbmNob3JNYXJrZG93bk5vZGUgPSBpbmRleEFuY2hvclJlcGxhY2VtZW50LmdldEFuY2hvck1hcmtkb3duTm9kZSgpO1xuXG4gICAgbWFya2Rvd25Ob2RlID0gYW5jaG9yTWFya2Rvd25Ob2RlOyAgLy8vXG5cbiAgICBtYXJrZG93bk5vZGVzLnB1c2gobWFya2Rvd25Ob2RlKTtcblxuICAgIHBhZ2VOdW1iZXIrKztcblxuICAgIE9iamVjdC5hc3NpZ24oY29udGV4dCwge1xuICAgICAgcGFnZU51bWJlclxuICAgIH0pO1xuICB9XG5cbiAgbWFya2Rvd25Ob2RlID0gZGl2aXNpb25NYXJrZG93bk5vZGU7IC8vL1xuXG4gIG1hcmtkb3duTm9kZXMucHVzaChtYXJrZG93bk5vZGUpO1xufSJdLCJuYW1lcyI6WyJEaXZpc2lvbk1hcmtkb3duTm9kZSIsImNsZWFyIiwiYXJyYXlVdGlsaXRpZXMiLCJmaWx0ZXIiLCJydWxlTmFtZSIsImNoaWxkTm9kZXMiLCJwcmVjZWRlbmNlIiwib3BhY2l0eSIsImRvbUVsZW1lbnQiLCJkaXZpc2lvbkNsYXNzTmFtZSIsImdldERpdmlzaW9uQ2xhc3NOYW1lIiwic2V0RGl2aXNpb25DbGFzc05hbWUiLCJpc0RpdmlzaW9uTWFya2Rvd25Ob2RlIiwiZGl2aXNpb25NYXJrZG93bk5vZGUiLCJjbGFzc05hbWUiLCJjb250ZXh0IiwiaXNJZ25vcmVkIiwibm9kZSIsImlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZSIsImlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwiaWdub3JlZCIsImdldFBhZ2VOdW1iZXIiLCJwYWdlTnVtYmVyIiwicGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZSIsImZpbmRQYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwicGFnaW5hdGUiLCJtYXJrZG93bk5vZGVzIiwiZm9vdG5vdGVzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsInJlbW92ZVN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlIiwiRm9vdG5vdGVzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsInBhZ2VOdW1iZXJEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50IiwiUGFnZU51bWJlckRpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQiLCJzdWJEaXZpc2lvblJlcGxhY2VtZW50cyIsInN1YkRpdmlzaW9uUmVwbGFjZW1lbnQiLCJsaW5lc1BlclBhZ2UiLCJwYWdpbmF0ZWRDaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsInRvdGFsTGluZXMiLCJmb3JFYWNoIiwiY2hpbGROb2RlIiwibGluZXMiLCJwYWdpbmF0ZWRDaGlsZE5vZGUiLCJwdXNoIiwicGFnaW5hdGVEaXZpc2lvbk1hcmtkb3duTm9kZSIsImNyZWF0ZUluZGV4IiwiZGl2aXNpb25NYXJrZG93bk5vZGVzIiwiaW5kZXhDcmVhdGVkIiwiaW5kZXhEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50IiwiZmluZFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQiLCJJbmRleERpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQiLCJpbmRleFJlcGxhY2VtZW50IiwiSW5kZXhSZXBsYWNlbWVudCIsImZyb21EaXZpc2lvbk1hcmtkb3duTm9kZXNBbmREaXZpc2lvbk1hcmtkb3duTm9kZSIsInJlcGxhY2VJbmRleERpcmVjdGl2ZVN1YmRpdmlzaW9uUmVwbGFjZW1lbnQiLCJjcmVhdGVDb250ZW50cyIsImNvbnRlbnRzQ3JlYXRlZCIsImNvbnRlbnRzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsIkNvbnRlbnRzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsImNvbnRlbnRzTGlzdFJlcGxhY2VtZW50IiwiQ29udGVudHNMaXN0UmVwbGFjZW1lbnQiLCJyZXBsYWNlQ29udGVudHNEaXJlY3RpdmVTdWJkaXZpc2lvblJlcGxhY2VtZW50IiwiY3JlYXRlRm9vdG5vdGVzIiwiZm9vdG5vdGVSZXBsYWNlbWVudE1hcCIsImZvb3Rub3Rlc0xpc3RTdWJEaXZpc2lvblJlcGxhY2VtZW50IiwiRm9vdG5vdGVzTGlzdFJlcGxhY2VtZW50IiwiZnJvbURpdmlzaW9uTWFya2Rvd25Ob2RlQW5kRm9vdG5vdGVSZXBsYWNlbWVudE1hcCIsInJlcGxhY2VGb290bm90ZXNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50IiwicmVudW1iZXJGb290bm90ZUxpbmtNYXJrZG93bk5vZGVzIiwiY2FsbGJhY2siLCJmb290bm90ZUxpbmtNYXJrZG93bk5vZGUiLCJwcmVwYXJlRm9vdG5vdGVzIiwiZm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50cyIsInJlbW92ZVN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcyIsIkZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsImZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsImZvb3Rub3RlUmVwbGFjZW1lbnQiLCJGb290bm90ZVJlcGxhY2VtZW50IiwiZnJvbUZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsImlkZW50aWZpZXIiLCJyZXNvbHZlSW5jbHVkZXMiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMiLCJmaW5kU3ViRGl2aXNpb25NYXJrZG93bk5vZGVzIiwic3ViRGl2aXNpb25NYXJrZG93bk5vZGUiLCJyZXNvbHZlRW1iZWRkaW5ncyIsIlN1YkRpdmlzaW9uUmVwbGFjZW1lbnQiLCJzb21lIiwiZnJvbVN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlIiwiZmluZFN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzIiwicmVkdWNlIiwic3ViRGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUiLCJyZW1vdmVGcm9tRGl2aXNpb25NYXJrZG93bk5vZGUiLCJjcmVhdGVGb290bm90ZXNMaXN0UmVwbGFjZW1lbnQiLCJhc0hUTUwiLCJodG1sIiwiaW5kZW50IiwiRU1QVFlfU1RSSU5HIiwiY2hpbGROb2Rlc0hUTUwiLCJjaGlsZE5vZGVzQXNIVE1MIiwic3RhcnRpbmdUYWciLCJjbG9zaW5nVGFnIiwiY2xvbmUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eSIsIk1hcmtkb3duTm9kZSIsImZyb21QYWdpbmF0ZWRDaGlsZE5vZGVzU3ViRGl2aXNpb25SZXBsYWNlbWVudHNBbmREaXZpc2lvbkNsYXNzTmFtZSIsIkRJVklTSU9OX1JVTEVfTkFNRSIsImFwcGVuZFRvRGl2aXNpb25NYXJrZG93bk5vZGUiLCJtYXJrZG93bk5vZGUiLCJzZXRQYWdlTnVtYmVyIiwiaW5kZXhBbmNob3JSZXBsYWNlbWVudCIsIkluZGV4QW5jaG9yUmVwbGFjZW1lbnQiLCJmcm9tUGFnZU51bWJlciIsImFuY2hvck1hcmtkb3duTm9kZSIsImdldEFuY2hvck1hcmtkb3duTm9kZSIsIk9iamVjdCIsImFzc2lnbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUF1QnFCQTs7O3lCQXJCVTsrREFFTjs0REFDSTsrREFDRztrRUFDRzttRUFDQztvRUFDQztnRUFDTTtxRUFDTTt3RUFDRzt5RUFDQzswRUFDQzt5QkFFekI7eUJBQ3FCO3FCQUM2RTt5QkFDOUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFakMsSUFBUUMsUUFBa0JDLHlCQUFjLENBQWhDRCxPQUFPRSxTQUFXRCx5QkFBYyxDQUF6QkM7QUFFQSxJQUFBLEFBQU1ILHFDQUFELEFBQUw7Y0FBTUE7K0JBQUFBO2FBQUFBLHFCQUNQSSxRQUFRLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxFQUFFQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsaUJBQWlCO2dDQURqRVQ7O2tDQUVYSSxVQUFVQyxZQUFZQyxZQUFZQyxTQUFT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
@@ -31,10 +31,14 @@ function postprocess(divisionMarkdownNode, context) {
31
31
  return markdownNodes;
32
32
  }
33
33
  function paginate(divisionMarkdownNodes, context) {
34
- var markdownNOdes = [];
34
+ var pageNumber = 1, markdownNOdes = [];
35
+ Object.assign(context, {
36
+ pageNumber: pageNumber
37
+ });
35
38
  divisionMarkdownNodes.forEach(function(divisionMarkdownNode) {
36
39
  divisionMarkdownNode.paginate(markdownNOdes, context);
37
40
  });
41
+ delete context.pageNumber;
38
42
  return markdownNOdes;
39
43
  }
40
44
  function createIndex(divisionMarkdownNodes, context) {
@@ -99,4 +103,4 @@ var _default = {
99
103
  divisionMarkdownNodesFromMarkdownNodes: divisionMarkdownNodesFromMarkdownNodes
100
104
  };
101
105
 
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcHJvY2Vzc2luZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBvc3Rwcm9jZXNzKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KSB7XG4gIGxldCBkaXZpc2lvbk1hcmtkb3duTm9kZXM7XG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzID0gcmVzb2x2ZUluY2x1ZGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcblxuICByZXNvbHZlRW1iZWRkaW5ncyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gIGNvbnN0IGZvb3Rub3RlUmVwbGFjZW1lbnRNYXAgPSBwcmVwYXJlRm9vdG5vdGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCksXG4gICAgICAgIG1hcmtkb3duTm9kZXMgPSBwYWdpbmF0ZShkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gIGRpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IGRpdmlzaW9uTWFya2Rvd25Ob2Rlc0Zyb21NYXJrZG93bk5vZGVzKG1hcmtkb3duTm9kZXMpOyAgLy8vXG5cbiAgY3JlYXRlRm9vdG5vdGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgZm9vdG5vdGVSZXBsYWNlbWVudE1hcCwgY29udGV4dCk7XG5cbiAgY3JlYXRlQ29udGVudHMoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KTtcblxuICBjcmVhdGVJbmRleChkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gIHJldHVybiBtYXJrZG93bk5vZGVzO1xufVxuXG5mdW5jdGlvbiBwYWdpbmF0ZShkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgbWFya2Rvd25OT2RlcyA9IFtdO1xuXG4gIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChkaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgIGRpdmlzaW9uTWFya2Rvd25Ob2RlLnBhZ2luYXRlKG1hcmtkb3duTk9kZXMsIGNvbnRleHQpO1xuICB9KTtcblxuICByZXR1cm4gbWFya2Rvd25OT2Rlcztcbn1cblxuZnVuY3Rpb24gY3JlYXRlSW5kZXgoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KSB7XG4gIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5zb21lKChkaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgIGNvbnN0IGluZGV4Q3JlYXRlZCA9IGRpdmlzaW9uTWFya2Rvd25Ob2RlLmNyZWF0ZUluZGV4KGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCk7XG5cbiAgICBpZiAoaW5kZXhDcmVhdGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDb250ZW50cyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpIHtcbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzLnNvbWUoKGRpdmlzaW9uTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgY29uc3QgY29udGVudHNDcmVhdGVkID0gZGl2aXNpb25NYXJrZG93bk5vZGUuY3JlYXRlQ29udGVudHMoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KTtcblxuICAgIGlmIChjb250ZW50c0NyZWF0ZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZvb3Rub3RlcyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGZvb3Rub3RlUmVwbGFjZW1lbnRNYXAsIGNvbnRleHQpIHtcbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzLmZvckVhY2goKGRpdmlzaW9uTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgZGl2aXNpb25NYXJrZG93bk5vZGUuY3JlYXRlRm9vdG5vdGVzKGZvb3Rub3RlUmVwbGFjZW1lbnRNYXAsIGNvbnRleHQpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUluY2x1ZGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IFtdO1xuXG4gIE9iamVjdC5hc3NpZ24oY29udGV4dCwge1xuICAgIGRpdmlzaW9uTWFya2Rvd25Ob2Rlc1xuICB9KTtcblxuICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZUlnbm9yZWQgPSBkaXZpc2lvbk1hcmtkb3duTm9kZS5pc0lnbm9yZWQoKTtcblxuICBpZiAoIWRpdmlzaW9uTWFya2Rvd25Ob2RlSWdub3JlZCkge1xuICAgIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5wdXNoKGRpdmlzaW9uTWFya2Rvd25Ob2RlKTtcbiAgfVxuXG4gIGRpdmlzaW9uTWFya2Rvd25Ob2RlLnJlc29sdmVJbmNsdWRlcyhjb250ZXh0KTtcblxuICBkZWxldGUgY29udGV4dC5kaXZpc2lvbk1hcmtkb3duTm9kZXM7XG5cbiAgcmV0dXJuIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcztcbn1cblxuZnVuY3Rpb24gcHJlcGFyZUZvb3Rub3RlcyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgZm9vdG5vdGVSZXBsYWNlbWVudE1hcCA9IHt9O1xuXG4gIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChkaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgIGRpdmlzaW9uTWFya2Rvd25Ob2RlLnByZXBhcmVGb290bm90ZXMoZm9vdG5vdGVSZXBsYWNlbWVudE1hcCwgY29udGV4dCk7XG4gIH0pO1xuXG4gIHJldHVybiBmb290bm90ZVJlcGxhY2VtZW50TWFwO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlRW1iZWRkaW5ncyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpIHtcbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzLmZvckVhY2goKGRpdmlzaW9uTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgZGl2aXNpb25NYXJrZG93bk5vZGUucmVzb2x2ZUVtYmVkZGluZ3MoY29udGV4dCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU1hcmtkb3duTm9kZXMobWFya2Rvd25Ob2Rlcykge1xuICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZXMgPSBtYXJrZG93bk5vZGVzLnJlZHVjZSgoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBtYXJrZG93bk5vZGUpID0+IHtcbiAgICBjb25zdCBtYXJrZG93bk5vZGVEaXZpc2lvbk1hcmtkb3duTm9kZSA9IG1hcmtkb3duTm9kZS5pc0RpdmlzaW9uTWFya2Rvd25Ob2RlKCk7XG5cbiAgICBpZiAobWFya2Rvd25Ob2RlRGl2aXNpb25NYXJrZG93bk5vZGUpIHtcbiAgICAgIGNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlID0gbWFya2Rvd25Ob2RlOyAgLy8vXG5cbiAgICAgIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5wdXNoKGRpdmlzaW9uTWFya2Rvd25Ob2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGl2aXNpb25NYXJrZG93bk5vZGVzO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcztcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBwb3N0cHJvY2VzcyxcbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU1hcmtkb3duTm9kZXNcbn0iXSwibmFtZXMiOlsiZGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU1hcmtkb3duTm9kZXMiLCJwb3N0cHJvY2VzcyIsImRpdmlzaW9uTWFya2Rvd25Ob2RlIiwiY29udGV4dCIsImRpdmlzaW9uTWFya2Rvd25Ob2RlcyIsInJlc29sdmVJbmNsdWRlcyIsInJlc29sdmVFbWJlZGRpbmdzIiwiZm9vdG5vdGVSZXBsYWNlbWVudE1hcCIsInByZXBhcmVGb290bm90ZXMiLCJtYXJrZG93bk5vZGVzIiwicGFnaW5hdGUiLCJjcmVhdGVGb290bm90ZXMiLCJjcmVhdGVDb250ZW50cyIsImNyZWF0ZUluZGV4IiwibWFya2Rvd25OT2RlcyIsImZvckVhY2giLCJzb21lIiwiaW5kZXhDcmVhdGVkIiwiY29udGVudHNDcmVhdGVkIiwiT2JqZWN0IiwiYXNzaWduIiwiZGl2aXNpb25NYXJrZG93bk5vZGVJZ25vcmVkIiwiaXNJZ25vcmVkIiwicHVzaCIsInJlZHVjZSIsIm1hcmtkb3duTm9kZSIsIm1hcmtkb3duTm9kZURpdmlzaW9uTWFya2Rvd25Ob2RlIiwiaXNEaXZpc2lvbk1hcmtkb3duTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBK0dBLE9BR0M7ZUFIRDs7SUFoQmdCQSxzQ0FBc0M7ZUFBdENBOztJQTdGQUMsV0FBVztlQUFYQTs7O0FBQVQsU0FBU0EsWUFBWUMsb0JBQW9CLEVBQUVDLE9BQU87SUFDdkQsSUFBSUM7SUFFSkEsd0JBQXdCQyxnQkFBZ0JILHNCQUFzQkM7SUFFOURHLGtCQUFrQkYsdUJBQXVCRDtJQUV6QyxJQUFNSSx5QkFBeUJDLGlCQUFpQkosdUJBQXVCRCxVQUNqRU0sZ0JBQWdCQyxTQUFTTix1QkFBdUJEO0lBRXREQyx3QkFBd0JKLHVDQUF1Q1MsZ0JBQWlCLEdBQUc7SUFFbkZFLGdCQUFnQlAsdUJBQXVCRyx3QkFBd0JKO0lBRS9EUyxlQUFlUix1QkFBdUJEO0lBRXRDVSxZQUFZVCx1QkFBdUJEO0lBRW5DLE9BQU9NO0FBQ1Q7QUFFQSxTQUFTQyxTQUFTTixxQkFBcUIsRUFBRUQsT0FBTztJQUM5QyxJQUFNVyxnQkFBZ0IsRUFBRTtJQUV4QlYsc0JBQXNCVyxPQUFPLENBQUMsU0FBQ2I7UUFDN0JBLHFCQUFxQlEsUUFBUSxDQUFDSSxlQUFlWDtJQUMvQztJQUVBLE9BQU9XO0FBQ1Q7QUFFQSxTQUFTRCxZQUFZVCxxQkFBcUIsRUFBRUQsT0FBTztJQUNqREMsc0JBQXNCWSxJQUFJLENBQUMsU0FBQ2Q7UUFDMUIsSUFBTWUsZUFBZWYscUJBQXFCVyxXQUFXLENBQUNULHVCQUF1QkQ7UUFFN0UsSUFBSWMsY0FBYztZQUNoQixPQUFPO1FBQ1Q7SUFDRjtBQUNGO0FBRUEsU0FBU0wsZUFBZVIscUJBQXFCLEVBQUVELE9BQU87SUFDcERDLHNCQUFzQlksSUFBSSxDQUFDLFNBQUNkO1FBQzFCLElBQU1nQixrQkFBa0JoQixxQkFBcUJVLGNBQWMsQ0FBQ1IsdUJBQXVCRDtRQUVuRixJQUFJZSxpQkFBaUI7WUFDbkIsT0FBTztRQUNUO0lBQ0Y7QUFDRjtBQUVBLFNBQVNQLGdCQUFnQlAscUJBQXFCLEVBQUVHLHNCQUFzQixFQUFFSixPQUFPO0lBQzdFQyxzQkFBc0JXLE9BQU8sQ0FBQyxTQUFDYjtRQUM3QkEscUJBQXFCUyxlQUFlLENBQUNKLHdCQUF3Qko7SUFDL0Q7QUFDRjtBQUVBLFNBQVNFLGdCQUFnQkgsb0JBQW9CLEVBQUVDLE9BQU87SUFDcEQsSUFBTUMsd0JBQXdCLEVBQUU7SUFFaENlLE9BQU9DLE1BQU0sQ0FBQ2pCLFNBQVM7UUFDckJDLHVCQUFBQTtJQUNGO0lBRUEsSUFBTWlCLDhCQUE4Qm5CLHFCQUFxQm9CLFNBQVM7SUFFbEUsSUFBSSxDQUFDRCw2QkFBNkI7UUFDaENqQixzQkFBc0JtQixJQUFJLENBQUNyQjtJQUM3QjtJQUVBQSxxQkFBcUJHLGVBQWUsQ0FBQ0Y7SUFFckMsT0FBT0EsUUFBUUMscUJBQXFCO0lBRXBDLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTSSxpQkFBaUJKLHFCQUFxQixFQUFFRCxPQUFPO0lBQ3RELElBQU1JLHlCQUF5QixDQUFDO0lBRWhDSCxzQkFBc0JXLE9BQU8sQ0FBQyxTQUFDYjtRQUM3QkEscUJBQXFCTSxnQkFBZ0IsQ0FBQ0Qsd0JBQXdCSjtJQUNoRTtJQUVBLE9BQU9JO0FBQ1Q7QUFFQSxTQUFTRCxrQkFBa0JGLHFCQUFxQixFQUFFRCxPQUFPO0lBQ3ZEQyxzQkFBc0JXLE9BQU8sQ0FBQyxTQUFDYjtRQUM3QkEscUJBQXFCSSxpQkFBaUIsQ0FBQ0g7SUFDekM7QUFDRjtBQUVPLFNBQVNILHVDQUF1Q1MsYUFBYTtJQUNsRSxJQUFNTCx3QkFBd0JLLGNBQWNlLE1BQU0sQ0FBQyxTQUFDcEIsdUJBQXVCcUI7UUFDekUsSUFBTUMsbUNBQW1DRCxhQUFhRSxzQkFBc0I7UUFFNUUsSUFBSUQsa0NBQWtDO1lBQ3BDLElBQU14Qix1QkFBdUJ1QixjQUFlLEdBQUc7WUFFL0NyQixzQkFBc0JtQixJQUFJLENBQUNyQjtRQUM3QjtRQUVBLE9BQU9FO0lBQ1QsR0FBRyxFQUFFO0lBRUwsT0FBT0E7QUFDVDtJQUVBLFdBQWU7SUFDYkgsYUFBQUE7SUFDQUQsd0NBQUFBO0FBQ0YifQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcHJvY2Vzc2luZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBvc3Rwcm9jZXNzKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KSB7XG4gIGxldCBkaXZpc2lvbk1hcmtkb3duTm9kZXM7XG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzID0gcmVzb2x2ZUluY2x1ZGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcblxuICByZXNvbHZlRW1iZWRkaW5ncyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gIGNvbnN0IGZvb3Rub3RlUmVwbGFjZW1lbnRNYXAgPSBwcmVwYXJlRm9vdG5vdGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCksXG4gICAgICAgIG1hcmtkb3duTm9kZXMgPSBwYWdpbmF0ZShkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gIGRpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IGRpdmlzaW9uTWFya2Rvd25Ob2Rlc0Zyb21NYXJrZG93bk5vZGVzKG1hcmtkb3duTm9kZXMpOyAgLy8vXG5cbiAgY3JlYXRlRm9vdG5vdGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgZm9vdG5vdGVSZXBsYWNlbWVudE1hcCwgY29udGV4dCk7XG5cbiAgY3JlYXRlQ29udGVudHMoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KTtcblxuICBjcmVhdGVJbmRleChkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gIHJldHVybiBtYXJrZG93bk5vZGVzO1xufVxuXG5mdW5jdGlvbiBwYWdpbmF0ZShkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgcGFnZU51bWJlciA9IDEsXG4gICAgICAgIG1hcmtkb3duTk9kZXMgPSBbXTtcblxuICBPYmplY3QuYXNzaWduKGNvbnRleHQsIHtcbiAgICBwYWdlTnVtYmVyXG4gIH0pO1xuXG4gIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChkaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgIGRpdmlzaW9uTWFya2Rvd25Ob2RlLnBhZ2luYXRlKG1hcmtkb3duTk9kZXMsIGNvbnRleHQpO1xuICB9KTtcblxuICBkZWxldGUgY29udGV4dC5wYWdlTnVtYmVyO1xuXG4gIHJldHVybiBtYXJrZG93bk5PZGVzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVJbmRleChkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpIHtcbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzLnNvbWUoKGRpdmlzaW9uTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgY29uc3QgaW5kZXhDcmVhdGVkID0gZGl2aXNpb25NYXJrZG93bk5vZGUuY3JlYXRlSW5kZXgoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KTtcblxuICAgIGlmIChpbmRleENyZWF0ZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnRlbnRzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuc29tZSgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICBjb25zdCBjb250ZW50c0NyZWF0ZWQgPSBkaXZpc2lvbk1hcmtkb3duTm9kZS5jcmVhdGVDb250ZW50cyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gICAgaWYgKGNvbnRlbnRzQ3JlYXRlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRm9vdG5vdGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgZm9vdG5vdGVSZXBsYWNlbWVudE1hcCwgY29udGV4dCkge1xuICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICBkaXZpc2lvbk1hcmtkb3duTm9kZS5jcmVhdGVGb290bm90ZXMoZm9vdG5vdGVSZXBsYWNlbWVudE1hcCwgY29udGV4dCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlSW5jbHVkZXMoZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgZGl2aXNpb25NYXJrZG93bk5vZGVzID0gW107XG5cbiAgT2JqZWN0LmFzc2lnbihjb250ZXh0LCB7XG4gICAgZGl2aXNpb25NYXJrZG93bk5vZGVzXG4gIH0pO1xuXG4gIGNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlSWdub3JlZCA9IGRpdmlzaW9uTWFya2Rvd25Ob2RlLmlzSWdub3JlZCgpO1xuXG4gIGlmICghZGl2aXNpb25NYXJrZG93bk5vZGVJZ25vcmVkKSB7XG4gICAgZGl2aXNpb25NYXJrZG93bk5vZGVzLnB1c2goZGl2aXNpb25NYXJrZG93bk5vZGUpO1xuICB9XG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGUucmVzb2x2ZUluY2x1ZGVzKGNvbnRleHQpO1xuXG4gIGRlbGV0ZSBjb250ZXh0LmRpdmlzaW9uTWFya2Rvd25Ob2RlcztcblxuICByZXR1cm4gZGl2aXNpb25NYXJrZG93bk5vZGVzO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlRm9vdG5vdGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBjb25zdCBmb290bm90ZVJlcGxhY2VtZW50TWFwID0ge307XG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzLmZvckVhY2goKGRpdmlzaW9uTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgZGl2aXNpb25NYXJrZG93bk5vZGUucHJlcGFyZUZvb3Rub3Rlcyhmb290bm90ZVJlcGxhY2VtZW50TWFwLCBjb250ZXh0KTtcbiAgfSk7XG5cbiAgcmV0dXJuIGZvb3Rub3RlUmVwbGFjZW1lbnRNYXA7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVFbWJlZGRpbmdzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICBkaXZpc2lvbk1hcmtkb3duTm9kZS5yZXNvbHZlRW1iZWRkaW5ncyhjb250ZXh0KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTWFya2Rvd25Ob2RlcyhtYXJrZG93bk5vZGVzKSB7XG4gIGNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IG1hcmtkb3duTm9kZXMucmVkdWNlKChkaXZpc2lvbk1hcmtkb3duTm9kZXMsIG1hcmtkb3duTm9kZSkgPT4ge1xuICAgIGNvbnN0IG1hcmtkb3duTm9kZURpdmlzaW9uTWFya2Rvd25Ob2RlID0gbWFya2Rvd25Ob2RlLmlzRGl2aXNpb25NYXJrZG93bk5vZGUoKTtcblxuICAgIGlmIChtYXJrZG93bk5vZGVEaXZpc2lvbk1hcmtkb3duTm9kZSkge1xuICAgICAgY29uc3QgZGl2aXNpb25NYXJrZG93bk5vZGUgPSBtYXJrZG93bk5vZGU7ICAvLy9cblxuICAgICAgZGl2aXNpb25NYXJrZG93bk5vZGVzLnB1c2goZGl2aXNpb25NYXJrZG93bk5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiBkaXZpc2lvbk1hcmtkb3duTm9kZXM7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gZGl2aXNpb25NYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHBvc3Rwcm9jZXNzLFxuICBkaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTWFya2Rvd25Ob2Rlc1xufSJdLCJuYW1lcyI6WyJkaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTWFya2Rvd25Ob2RlcyIsInBvc3Rwcm9jZXNzIiwiZGl2aXNpb25NYXJrZG93bk5vZGUiLCJjb250ZXh0IiwiZGl2aXNpb25NYXJrZG93bk5vZGVzIiwicmVzb2x2ZUluY2x1ZGVzIiwicmVzb2x2ZUVtYmVkZGluZ3MiLCJmb290bm90ZVJlcGxhY2VtZW50TWFwIiwicHJlcGFyZUZvb3Rub3RlcyIsIm1hcmtkb3duTm9kZXMiLCJwYWdpbmF0ZSIsImNyZWF0ZUZvb3Rub3RlcyIsImNyZWF0ZUNvbnRlbnRzIiwiY3JlYXRlSW5kZXgiLCJwYWdlTnVtYmVyIiwibWFya2Rvd25OT2RlcyIsIk9iamVjdCIsImFzc2lnbiIsImZvckVhY2giLCJzb21lIiwiaW5kZXhDcmVhdGVkIiwiY29udGVudHNDcmVhdGVkIiwiZGl2aXNpb25NYXJrZG93bk5vZGVJZ25vcmVkIiwiaXNJZ25vcmVkIiwicHVzaCIsInJlZHVjZSIsIm1hcmtkb3duTm9kZSIsIm1hcmtkb3duTm9kZURpdmlzaW9uTWFya2Rvd25Ob2RlIiwiaXNEaXZpc2lvbk1hcmtkb3duTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBc0hBLE9BR0M7ZUFIRDs7SUFoQmdCQSxzQ0FBc0M7ZUFBdENBOztJQXBHQUMsV0FBVztlQUFYQTs7O0FBQVQsU0FBU0EsWUFBWUMsb0JBQW9CLEVBQUVDLE9BQU87SUFDdkQsSUFBSUM7SUFFSkEsd0JBQXdCQyxnQkFBZ0JILHNCQUFzQkM7SUFFOURHLGtCQUFrQkYsdUJBQXVCRDtJQUV6QyxJQUFNSSx5QkFBeUJDLGlCQUFpQkosdUJBQXVCRCxVQUNqRU0sZ0JBQWdCQyxTQUFTTix1QkFBdUJEO0lBRXREQyx3QkFBd0JKLHVDQUF1Q1MsZ0JBQWlCLEdBQUc7SUFFbkZFLGdCQUFnQlAsdUJBQXVCRyx3QkFBd0JKO0lBRS9EUyxlQUFlUix1QkFBdUJEO0lBRXRDVSxZQUFZVCx1QkFBdUJEO0lBRW5DLE9BQU9NO0FBQ1Q7QUFFQSxTQUFTQyxTQUFTTixxQkFBcUIsRUFBRUQsT0FBTztJQUM5QyxJQUFNVyxhQUFhLEdBQ2JDLGdCQUFnQixFQUFFO0lBRXhCQyxPQUFPQyxNQUFNLENBQUNkLFNBQVM7UUFDckJXLFlBQUFBO0lBQ0Y7SUFFQVYsc0JBQXNCYyxPQUFPLENBQUMsU0FBQ2hCO1FBQzdCQSxxQkFBcUJRLFFBQVEsQ0FBQ0ssZUFBZVo7SUFDL0M7SUFFQSxPQUFPQSxRQUFRVyxVQUFVO0lBRXpCLE9BQU9DO0FBQ1Q7QUFFQSxTQUFTRixZQUFZVCxxQkFBcUIsRUFBRUQsT0FBTztJQUNqREMsc0JBQXNCZSxJQUFJLENBQUMsU0FBQ2pCO1FBQzFCLElBQU1rQixlQUFlbEIscUJBQXFCVyxXQUFXLENBQUNULHVCQUF1QkQ7UUFFN0UsSUFBSWlCLGNBQWM7WUFDaEIsT0FBTztRQUNUO0lBQ0Y7QUFDRjtBQUVBLFNBQVNSLGVBQWVSLHFCQUFxQixFQUFFRCxPQUFPO0lBQ3BEQyxzQkFBc0JlLElBQUksQ0FBQyxTQUFDakI7UUFDMUIsSUFBTW1CLGtCQUFrQm5CLHFCQUFxQlUsY0FBYyxDQUFDUix1QkFBdUJEO1FBRW5GLElBQUlrQixpQkFBaUI7WUFDbkIsT0FBTztRQUNUO0lBQ0Y7QUFDRjtBQUVBLFNBQVNWLGdCQUFnQlAscUJBQXFCLEVBQUVHLHNCQUFzQixFQUFFSixPQUFPO0lBQzdFQyxzQkFBc0JjLE9BQU8sQ0FBQyxTQUFDaEI7UUFDN0JBLHFCQUFxQlMsZUFBZSxDQUFDSix3QkFBd0JKO0lBQy9EO0FBQ0Y7QUFFQSxTQUFTRSxnQkFBZ0JILG9CQUFvQixFQUFFQyxPQUFPO0lBQ3BELElBQU1DLHdCQUF3QixFQUFFO0lBRWhDWSxPQUFPQyxNQUFNLENBQUNkLFNBQVM7UUFDckJDLHVCQUFBQTtJQUNGO0lBRUEsSUFBTWtCLDhCQUE4QnBCLHFCQUFxQnFCLFNBQVM7SUFFbEUsSUFBSSxDQUFDRCw2QkFBNkI7UUFDaENsQixzQkFBc0JvQixJQUFJLENBQUN0QjtJQUM3QjtJQUVBQSxxQkFBcUJHLGVBQWUsQ0FBQ0Y7SUFFckMsT0FBT0EsUUFBUUMscUJBQXFCO0lBRXBDLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTSSxpQkFBaUJKLHFCQUFxQixFQUFFRCxPQUFPO0lBQ3RELElBQU1JLHlCQUF5QixDQUFDO0lBRWhDSCxzQkFBc0JjLE9BQU8sQ0FBQyxTQUFDaEI7UUFDN0JBLHFCQUFxQk0sZ0JBQWdCLENBQUNELHdCQUF3Qko7SUFDaEU7SUFFQSxPQUFPSTtBQUNUO0FBRUEsU0FBU0Qsa0JBQWtCRixxQkFBcUIsRUFBRUQsT0FBTztJQUN2REMsc0JBQXNCYyxPQUFPLENBQUMsU0FBQ2hCO1FBQzdCQSxxQkFBcUJJLGlCQUFpQixDQUFDSDtJQUN6QztBQUNGO0FBRU8sU0FBU0gsdUNBQXVDUyxhQUFhO0lBQ2xFLElBQU1MLHdCQUF3QkssY0FBY2dCLE1BQU0sQ0FBQyxTQUFDckIsdUJBQXVCc0I7UUFDekUsSUFBTUMsbUNBQW1DRCxhQUFhRSxzQkFBc0I7UUFFNUUsSUFBSUQsa0NBQWtDO1lBQ3BDLElBQU16Qix1QkFBdUJ3QixjQUFlLEdBQUc7WUFFL0N0QixzQkFBc0JvQixJQUFJLENBQUN0QjtRQUM3QjtRQUVBLE9BQU9FO0lBQ1QsR0FBRyxFQUFFO0lBRUwsT0FBT0E7QUFDVDtJQUVBLFdBQWU7SUFDYkgsYUFBQUE7SUFDQUQsd0NBQUFBO0FBQ0YifQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "highmark-markdown",
3
3
  "author": "James Smith",
4
- "version": "0.0.447",
4
+ "version": "0.0.449",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/highmark-markdown",
7
7
  "description": "Highmark's Markdown and Markdown Style languages.",
@@ -36,6 +36,12 @@ export default class DivisionMarkdownNode extends MarkdownNode {
36
36
  this.divisionClassName = divisionClassName;
37
37
  }
38
38
 
39
+ isDivisionMarkdownNode() {
40
+ const divisionMarkdownNode = true;
41
+
42
+ return divisionMarkdownNode;
43
+ }
44
+
39
45
  className(context) {
40
46
  const className = this.divisionClassName; ///
41
47
 
@@ -50,46 +56,18 @@ export default class DivisionMarkdownNode extends MarkdownNode {
50
56
  return ignored;
51
57
  }
52
58
 
53
- isDivisionMarkdownNode() {
54
- const divisionMarkdownNode = true;
55
-
56
- return divisionMarkdownNode;
57
- }
58
-
59
59
  getPageNumber() {
60
60
  let pageNumber = null;
61
61
 
62
- const subDivisionMarkdownNodes = this.findSubDivisionMarkdownNodes();
62
+ const pageNumberDirectiveMarkdownNode = this.findPageNumberDirectiveMarkdownNode();
63
63
 
64
- subDivisionMarkdownNodes.some((subDivisionMarkdownNode) => {
65
- const node = subDivisionMarkdownNode, ///
66
- pageNumberDirective = pageNumberDirectiveMarkdownNodeFromNode(node);
67
-
68
- if (pageNumberDirective !== null) {
69
- pageNumber = pageNumberDirective.getPageNumber();
70
-
71
- return true;
72
- }
73
- });
64
+ if (pageNumberDirectiveMarkdownNode !== null) {
65
+ pageNumber = pageNumberDirectiveMarkdownNode.getPageNumber();
66
+ }
74
67
 
75
68
  return pageNumber;
76
69
  }
77
70
 
78
- setPageNumber(pageNumber) {
79
- const subDivisionMarkdownNodes = this.findSubDivisionMarkdownNodes();
80
-
81
- subDivisionMarkdownNodes.some((subDivisionMarkdownNode) => {
82
- const node = subDivisionMarkdownNode, ///
83
- pageNumberDirective = pageNumberDirectiveMarkdownNodeFromNode(node);
84
-
85
- if (pageNumberDirective !== null) {
86
- pageNumberDirective.setPageNumber(pageNumber);
87
-
88
- return true;
89
- }
90
- });
91
- }
92
-
93
71
  paginate(markdownNodes, context) {
94
72
  const footnotesDirectiveSubDivisionReplacement = this.removeSubDivisionMarkdownNode(FootnotesDirectiveSubDivisionReplacement, context),
95
73
  pageNumberDirectiveSubDivisionReplacement = this.removeSubDivisionMarkdownNode(PageNumberDirectiveSubDivisionReplacement, context),
@@ -108,8 +86,7 @@ export default class DivisionMarkdownNode extends MarkdownNode {
108
86
  paginatedChildNodes = [],
109
87
  childNodes = this.getChildNodes();
110
88
 
111
- let totalLines = 0,
112
- pageNumber = 1;
89
+ let totalLines = 0;
113
90
 
114
91
  childNodes.forEach((childNode) => {
115
92
  const lines = childNode.lines(context),
@@ -120,18 +97,16 @@ export default class DivisionMarkdownNode extends MarkdownNode {
120
97
  totalLines += lines;
121
98
 
122
99
  if (totalLines > linesPerPage) {
123
- paginateDivisionMarkdownNode(paginatedChildNodes, subDivisionReplacements, this.divisionClassName, markdownNodes, pageNumber, context)
100
+ paginateDivisionMarkdownNode(paginatedChildNodes, subDivisionReplacements, this.divisionClassName, markdownNodes, context)
124
101
 
125
102
  clear(paginatedChildNodes);
126
103
 
127
104
  totalLines = 0;
128
-
129
- pageNumber++;
130
105
  }
131
106
  });
132
107
 
133
108
  if (totalLines > 0) {
134
- paginateDivisionMarkdownNode(paginatedChildNodes, subDivisionReplacements, this.divisionClassName, markdownNodes, pageNumber, context);
109
+ paginateDivisionMarkdownNode(paginatedChildNodes, subDivisionReplacements, this.divisionClassName, markdownNodes, context);
135
110
  }
136
111
  }
137
112
 
@@ -259,6 +234,24 @@ export default class DivisionMarkdownNode extends MarkdownNode {
259
234
  return subDivisionMarkdownNodes;
260
235
  }
261
236
 
237
+ findPageNumberDirectiveMarkdownNode() {
238
+ let pageNumberDirectiveMarkdownNode = null;
239
+
240
+ const subDivisionMarkdownNodes = this.findSubDivisionMarkdownNodes();
241
+
242
+ subDivisionMarkdownNodes.some((subDivisionMarkdownNode) => {
243
+ const node = subDivisionMarkdownNode; ///
244
+
245
+ pageNumberDirectiveMarkdownNode = pageNumberDirectiveMarkdownNodeFromNode(node);
246
+
247
+ if (pageNumberDirectiveMarkdownNode !== null) {
248
+ return true;
249
+ }
250
+ });
251
+
252
+ return pageNumberDirectiveMarkdownNode;
253
+ }
254
+
262
255
  removeSubDivisionMarkdownNode(SubDivisionReplacement, context) {
263
256
  const divisionMarkdownNode = this, //
264
257
  subDivisionReplacement = this.findSubDivisionReplacement(SubDivisionReplacement, context);
@@ -324,7 +317,7 @@ ${childNodesHTML}${indent}${closingTag}
324
317
  return divisionMarkdownNode;
325
318
  }
326
319
 
327
- static fromPaginatedChildNodesAndSubDivisionReplacements(paginatedChildNodes, subDivisionReplacements, context) {
320
+ static fromPaginatedChildNodesSubDivisionReplacementsAndDivisionClassName(paginatedChildNodes, subDivisionReplacements, divisionClassName, context) {
328
321
  const ruleName = DIVISION_RULE_NAME,
329
322
  childNodes = [
330
323
  ...paginatedChildNodes
@@ -332,6 +325,8 @@ ${childNodesHTML}${indent}${closingTag}
332
325
  opacity = null,
333
326
  divisionMarkdownNode = DivisionMarkdownNode.fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity);
334
327
 
328
+ divisionMarkdownNode.setDivisionClassName(divisionClassName);
329
+
335
330
  subDivisionReplacements.forEach((subDivisionReplacement) => {
336
331
  subDivisionReplacement = subDivisionReplacement.clone(); ///
337
332
 
@@ -342,21 +337,30 @@ ${childNodesHTML}${indent}${closingTag}
342
337
  }
343
338
  }
344
339
 
345
- function paginateDivisionMarkdownNode(paginatedChildNodes, subDivisionReplacements, divisionClassName, markdownNodes, pageNumber, context) {
340
+ function paginateDivisionMarkdownNode(paginatedChildNodes, subDivisionReplacements, divisionClassName, markdownNodes, context) {
346
341
  let markdownNode;
347
342
 
348
- const indexAnchorReplacement = IndexAnchorReplacement.fromPageNumber(pageNumber, context),
349
- anchorMarkdownNode = indexAnchorReplacement.getAnchorMarkdownNode();
343
+ const divisionMarkdownNode = DivisionMarkdownNode.fromPaginatedChildNodesSubDivisionReplacementsAndDivisionClassName(paginatedChildNodes, subDivisionReplacements, divisionClassName, context),
344
+ pageNumberDirectiveMarkdownNode = divisionMarkdownNode.findPageNumberDirectiveMarkdownNode();
350
345
 
351
- markdownNode = anchorMarkdownNode; ///
346
+ if (pageNumberDirectiveMarkdownNode !== null) {
347
+ let { pageNumber } = context;
352
348
 
353
- markdownNodes.push(markdownNode);
349
+ pageNumberDirectiveMarkdownNode.setPageNumber(pageNumber);
350
+
351
+ const indexAnchorReplacement = IndexAnchorReplacement.fromPageNumber(pageNumber, context),
352
+ anchorMarkdownNode = indexAnchorReplacement.getAnchorMarkdownNode();
354
353
 
355
- const divisionMarkdownNode = DivisionMarkdownNode.fromPaginatedChildNodesAndSubDivisionReplacements(paginatedChildNodes, subDivisionReplacements, context);
354
+ markdownNode = anchorMarkdownNode; ///
356
355
 
357
- divisionMarkdownNode.setDivisionClassName(divisionClassName);
356
+ markdownNodes.push(markdownNode);
358
357
 
359
- divisionMarkdownNode.setPageNumber(pageNumber);
358
+ pageNumber++;
359
+
360
+ Object.assign(context, {
361
+ pageNumber
362
+ });
363
+ }
360
364
 
361
365
  markdownNode = divisionMarkdownNode; ///
362
366
 
@@ -22,12 +22,19 @@ export function postprocess(divisionMarkdownNode, context) {
22
22
  }
23
23
 
24
24
  function paginate(divisionMarkdownNodes, context) {
25
- const markdownNOdes = [];
25
+ const pageNumber = 1,
26
+ markdownNOdes = [];
27
+
28
+ Object.assign(context, {
29
+ pageNumber
30
+ });
26
31
 
27
32
  divisionMarkdownNodes.forEach((divisionMarkdownNode) => {
28
33
  divisionMarkdownNode.paginate(markdownNOdes, context);
29
34
  });
30
35
 
36
+ delete context.pageNumber;
37
+
31
38
  return markdownNOdes;
32
39
  }
33
40