highmark-markdown 0.0.379 → 0.0.382

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/example.js +4764 -3417
  2. package/lib/attributeNames.js +5 -1
  3. package/lib/constants.js +1 -5
  4. package/lib/defaultMarkdownStyle.js +2 -2
  5. package/lib/example/constants.js +15 -7
  6. package/lib/example/customEventTypes.js +5 -1
  7. package/lib/example/view/button/page.js +168 -0
  8. package/lib/example/view/div/html.js +2 -2
  9. package/lib/example/view/div/pageButtons.js +270 -0
  10. package/lib/example/view/div/preview.js +105 -13
  11. package/lib/example/view/textarea/css.js +2 -2
  12. package/lib/example/view/xmp.js +2 -4
  13. package/lib/example/view.js +88 -34
  14. package/lib/example.js +2 -2
  15. package/lib/index.js +15 -11
  16. package/lib/markdown/bnf.js +2 -2
  17. package/lib/mixins/node.js +10 -3
  18. package/lib/node/markdown/anchor.js +5 -2
  19. package/lib/node/markdown/blockLine.js +3 -2
  20. package/lib/node/markdown/contentsLink.js +4 -4
  21. package/lib/node/markdown/directive/contents.js +6 -6
  22. package/lib/node/markdown/directive/embee.js +12 -12
  23. package/lib/node/markdown/directive/footnotes.js +6 -6
  24. package/lib/node/markdown/directive/ignore.js +6 -6
  25. package/lib/node/markdown/directive/include.js +6 -6
  26. package/lib/node/markdown/directive/pageNumber.js +74 -9
  27. package/lib/node/markdown/directive.js +128 -0
  28. package/lib/node/markdown/directives.js +33 -2
  29. package/lib/node/markdown/division.js +128 -28
  30. package/lib/node/markdown/emailLink.js +8 -1
  31. package/lib/node/markdown/endOfLine.js +8 -1
  32. package/lib/node/markdown/footnoteItem.js +3 -3
  33. package/lib/node/markdown/footnotesList.js +95 -27
  34. package/lib/node/markdown/heading/primary.js +2 -1
  35. package/lib/node/markdown/heading/quaternary.js +2 -1
  36. package/lib/node/markdown/heading/secondary.js +2 -1
  37. package/lib/node/markdown/heading/tertiary.js +2 -1
  38. package/lib/node/markdown/heading.js +8 -1
  39. package/lib/node/markdown/line.js +8 -1
  40. package/lib/node/markdown/subDivision.js +17 -10
  41. package/lib/node/markdown.js +15 -1
  42. package/lib/replacement.js +185 -0
  43. package/lib/utilities/childNodes.js +7 -5
  44. package/lib/utilities/content.js +7 -7
  45. package/lib/utilities/markdown.js +87 -0
  46. package/lib/utilities/node.js +163 -0
  47. package/lib/utilities/query.js +25 -9
  48. package/package.json +1 -1
  49. package/src/attributeNames.js +1 -0
  50. package/src/constants.js +0 -1
  51. package/src/defaultMarkdownStyle.js +5 -1
  52. package/src/example/constants.js +4 -2
  53. package/src/example/customEventTypes.js +1 -0
  54. package/src/example/view/button/page.js +48 -0
  55. package/src/example/view/div/html.js +0 -1
  56. package/src/example/view/div/pageButtons.js +98 -0
  57. package/src/example/view/div/preview.js +51 -11
  58. package/src/example/view/textarea/css.js +1 -1
  59. package/src/example/view/xmp.js +1 -5
  60. package/src/example/view.js +117 -51
  61. package/src/example.js +2 -2
  62. package/src/index.js +9 -6
  63. package/src/markdown/bnf.js +21 -23
  64. package/src/mixins/node.js +20 -2
  65. package/src/node/markdown/anchor.js +7 -2
  66. package/src/node/markdown/blockLine.js +3 -3
  67. package/src/node/markdown/contentsLink.js +3 -3
  68. package/src/node/markdown/directive/contents.js +3 -3
  69. package/src/node/markdown/directive/embee.js +8 -8
  70. package/src/node/markdown/directive/footnotes.js +3 -3
  71. package/src/node/markdown/directive/ignore.js +3 -3
  72. package/src/node/markdown/directive/include.js +3 -3
  73. package/src/node/markdown/directive/pageNumber.js +53 -5
  74. package/src/node/markdown/directive.js +13 -0
  75. package/src/node/markdown/directives.js +10 -1
  76. package/src/node/markdown/division.js +144 -26
  77. package/src/node/markdown/emailLink.js +6 -0
  78. package/src/node/markdown/endOfLine.js +6 -0
  79. package/src/node/markdown/footnoteItem.js +1 -1
  80. package/src/node/markdown/footnotesList.js +87 -31
  81. package/src/node/markdown/heading/primary.js +2 -0
  82. package/src/node/markdown/heading/quaternary.js +2 -0
  83. package/src/node/markdown/heading/secondary.js +2 -0
  84. package/src/node/markdown/heading/tertiary.js +2 -0
  85. package/src/node/markdown/heading.js +6 -0
  86. package/src/node/markdown/line.js +12 -1
  87. package/src/node/markdown/subDivision.js +18 -12
  88. package/src/node/markdown.js +19 -0
  89. package/src/replacement.js +158 -0
  90. package/src/utilities/childNodes.js +6 -4
  91. package/src/utilities/content.js +12 -20
  92. package/src/utilities/markdown.js +103 -0
  93. package/src/utilities/node.js +158 -0
  94. package/src/utilities/query.js +22 -6
  95. package/lib/replacementNodeAndTokens.js +0 -149
  96. package/lib/utilities/footnotes.js +0 -20
  97. package/lib/utilities/replace.js +0 -66
  98. package/src/replacementNodeAndTokens.js +0 -152
  99. package/src/utilities/footnotes.js +0 -16
  100. package/src/utilities/replace.js +0 -31
@@ -9,13 +9,22 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _necessary = require("necessary");
12
+ var _replacement = /*#__PURE__*/ _interop_require_default(require("../../replacement"));
12
13
  var _markdown = /*#__PURE__*/ _interop_require_default(require("../../node/markdown"));
13
14
  var _contentsList = /*#__PURE__*/ _interop_require_default(require("../../node/markdown/contentsList"));
14
15
  var _footnotesList = /*#__PURE__*/ _interop_require_default(require("../../node/markdown/footnotesList"));
15
16
  var _constants = require("../../constants");
16
- var _footnotes = require("../../utilities/footnotes");
17
- var _replace = require("../../utilities/replace");
17
+ var _ruleNames = require("../../ruleNames");
18
+ var _node = require("../../utilities/node");
18
19
  var _query = require("../../utilities/query");
20
+ function _array_like_to_array(arr, len) {
21
+ if (len == null || len > arr.length) len = arr.length;
22
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
23
+ return arr2;
24
+ }
25
+ function _array_without_holes(arr) {
26
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
27
+ }
19
28
  function _assert_this_initialized(self) {
20
29
  if (self === void 0) {
21
30
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -81,6 +90,12 @@ function _interop_require_default(obj) {
81
90
  default: obj
82
91
  };
83
92
  }
93
+ function _iterable_to_array(iter) {
94
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
95
+ }
96
+ function _non_iterable_spread() {
97
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
98
+ }
84
99
  function _possible_constructor_return(self, call) {
85
100
  if (call && (_type_of(call) === "object" || typeof call === "function")) {
86
101
  return call;
@@ -101,10 +116,21 @@ function _super_prop_base(object, property) {
101
116
  }
102
117
  return object;
103
118
  }
119
+ function _to_consumable_array(arr) {
120
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
121
+ }
104
122
  function _type_of(obj) {
105
123
  "@swc/helpers - typeof";
106
124
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
107
125
  }
126
+ function _unsupported_iterable_to_array(o, minLen) {
127
+ if (!o) return;
128
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
129
+ var n = Object.prototype.toString.call(o).slice(8, -1);
130
+ if (n === "Object" && o.constructor) n = o.constructor.name;
131
+ if (n === "Map" || n === "Set") return Array.from(n);
132
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
133
+ }
108
134
  function _is_native_reflect_construct() {
109
135
  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
110
136
  if (Reflect.construct.sham) return false;
@@ -129,7 +155,7 @@ function _create_super(Derived) {
129
155
  return _possible_constructor_return(this, result);
130
156
  };
131
157
  }
132
- var filter = _necessary.arrayUtilities.filter;
158
+ var clear = _necessary.arrayUtilities.clear, filter = _necessary.arrayUtilities.filter;
133
159
  var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
134
160
  _inherits(DivisionMarkdownNode, MarkdownNode);
135
161
  var _super = _create_super(DivisionMarkdownNode);
@@ -191,6 +217,39 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
191
217
  return parentNode;
192
218
  }
193
219
  },
220
+ {
221
+ key: "paginate",
222
+ value: function paginate(context) {
223
+ var _this = this;
224
+ var linesPerPage = context.linesPerPage, childNodes = this.getChildNodes(), paginatedChildNodes = [], divisionMarkdownNodes = [], subDivisionReplacements = this.removeSubdivisionMarkdownNodes(_query.pageNumberDirectiveMarkdownNodeFromNode, context);
225
+ var totalLines = 0;
226
+ childNodes.forEach(function(childNode) {
227
+ var lines = childNode.lines(context), paginatedChildNode = childNode; ///
228
+ totalLines += lines;
229
+ paginatedChildNodes.push(paginatedChildNode);
230
+ if (totalLines > linesPerPage) {
231
+ var divisionMarkdownNode = DivisionMarkdownNode.fromSubdivisionReplacementsPaginatedChildNodesAndDivisionClassName(subDivisionReplacements, paginatedChildNodes, _this.divisionClassName, context);
232
+ divisionMarkdownNodes.push(divisionMarkdownNode);
233
+ clear(paginatedChildNodes);
234
+ totalLines = 0;
235
+ }
236
+ });
237
+ if (totalLines > 0) {
238
+ var divisionMarkdownNode = DivisionMarkdownNode.fromSubdivisionReplacementsPaginatedChildNodesAndDivisionClassName(subDivisionReplacements, paginatedChildNodes, this.divisionClassName, context);
239
+ divisionMarkdownNodes.push(divisionMarkdownNode);
240
+ }
241
+ return divisionMarkdownNodes;
242
+ }
243
+ },
244
+ {
245
+ key: "setPageNumber",
246
+ value: function setPageNumber(pageNumber) {
247
+ var node = this, pageNumberDirective = (0, _query.pageNumberDirectiveMarkdownNodeFromNode)(node);
248
+ if (pageNumberDirective !== null) {
249
+ pageNumberDirective.setPageNumber(pageNumber);
250
+ }
251
+ }
252
+ },
194
253
  {
195
254
  key: "createContents",
196
255
  value: function createContents(context) {
@@ -202,8 +261,8 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
202
261
  return;
203
262
  }
204
263
  var tokens = context.tokens, contentsListMarkdownNode = _contentsList.default.fromHeadingMarkdownNodes(headingMarkdownNodes, context), contentsListMarkdownNodeTokens = contentsListMarkdownNode.getTokens(), childNode = contentsDirectiveMarkdownNode, parentNode = this.findParentNode(childNode), replacedNode = contentsDirectiveMarkdownNode, replacementNode = contentsListMarkdownNode, replacementTokens = contentsListMarkdownNodeTokens; ///
205
- (0, _replace.replaceNode)(replacementNode, replacedNode, parentNode);
206
- (0, _replace.replaceTokens)(replacementTokens, replacedNode, tokens);
264
+ (0, _node.replaceNode)(replacementNode, replacedNode, parentNode);
265
+ (0, _node.replaceTokens)(replacementTokens, replacedNode, tokens);
207
266
  contentsCreated = true;
208
267
  }
209
268
  return contentsCreated;
@@ -211,16 +270,30 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
211
270
  },
212
271
  {
213
272
  key: "createFootnotes",
214
- value: function createFootnotes(context) {
215
- var node = this, footnotesDirectiveMarkdownNode = (0, _query.footnotesDirectiveMarkdownNodeFromNode)(node);
216
- if (footnotesDirectiveMarkdownNode !== null) {
217
- var divisionMarkdownNode = this, footnotesListMarkdownNode = _footnotesList.default.fromDivisionMarkdownNode(divisionMarkdownNode, context);
218
- if (footnotesListMarkdownNode !== null) {
219
- var childNode = footnotesListMarkdownNode; ///
220
- divisionMarkdownNode.appendChildNode(childNode);
221
- (0, _footnotes.renumberLinkMarkdownNodes)(divisionMarkdownNode, footnotesListMarkdownNode, context);
222
- }
273
+ value: function createFootnotes(footnoteReplacements, context) {
274
+ if (footnoteReplacements === null) {
275
+ return;
276
+ }
277
+ var divisionMarkdownNode = this, footnotesListMarkdownNode = _footnotesList.default.fromFootnoteReplacementsAndDivisionMarkdownNode(footnoteReplacements, divisionMarkdownNode, context);
278
+ if (footnotesListMarkdownNode === null) {
279
+ return;
223
280
  }
281
+ var node = footnotesListMarkdownNode, replacement = _replacement.default.fromNode(node, context);
282
+ replacement.appendTo(divisionMarkdownNode, context);
283
+ }
284
+ },
285
+ {
286
+ key: "prepareFootnotes",
287
+ value: function prepareFootnotes(context) {
288
+ var subdivisionReplacements;
289
+ subdivisionReplacements = this.removeSubdivisionMarkdownNodes(_query.footnoteMarkdownNodsFromNode, context);
290
+ var footnoteReplacements = footnoteReplacementsFromSubdivisionReplacements(subdivisionReplacements);
291
+ subdivisionReplacements = this.removeSubdivisionMarkdownNodes(_query.footnotesDirectiveMarkdownNodeFromNode, context);
292
+ var subdivisionReplacementsLength = subdivisionReplacements.length;
293
+ if (subdivisionReplacementsLength === 0) {
294
+ footnoteReplacements = null;
295
+ }
296
+ return footnoteReplacements;
224
297
  }
225
298
  },
226
299
  {
@@ -229,19 +302,35 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
229
302
  var _this = this;
230
303
  var node = this, embedDirectiveMarkdownNodes = (0, _query.embedDirectiveMarkdownNodesFromNode)(node);
231
304
  embedDirectiveMarkdownNodes.map(function(embedDirectiveMarkdownNode) {
232
- var replacementNodeAndTokens = embedDirectiveMarkdownNode.replacementNodeAndTokens(context);
233
- if (replacementNodeAndTokens !== null) {
305
+ var replacement = embedDirectiveMarkdownNode.replacement(context);
306
+ if (replacement !== null) {
234
307
  var tokens;
235
- tokens = replacementNodeAndTokens.getTokens();
236
- var childNodes = replacementNodeAndTokens.getChildNodes(), replacementNodes = childNodes, replacementTokens = tokens; ///
308
+ tokens = replacement.getTokens();
309
+ var childNodes = replacement.getChildNodes(), replacementNodes = childNodes, replacementTokens = tokens; ///
237
310
  tokens = context.tokens;
238
311
  var childNode = embedDirectiveMarkdownNode, parentNode = _this.findParentNode(childNode), replacedNode = embedDirectiveMarkdownNode; ///
239
- (0, _replace.replaceNodes)(replacementNodes, replacedNode, parentNode);
240
- (0, _replace.replaceTokens)(replacementTokens, replacedNode, tokens);
312
+ (0, _node.replaceNodes)(replacementNodes, replacedNode, parentNode);
313
+ (0, _node.replaceTokens)(replacementTokens, replacedNode, tokens);
241
314
  }
242
315
  });
243
316
  }
244
317
  },
318
+ {
319
+ key: "removeSubdivisionMarkdownNodes",
320
+ value: function removeSubdivisionMarkdownNodes(markdownNodeFromNode, context) {
321
+ var tokens = context.tokens, node = this, parentNode = this, subDivisionMarkdownNodes = (0, _query.subDivisionMarkdownNodesFromNode)(node), subDivisionReplacements = subDivisionMarkdownNodes.reduce(function(subDivisionReplacements, subDivisionMarkdownNode) {
322
+ var node = subDivisionMarkdownNode, markdownNode = markdownNodeFromNode(node);
323
+ if (markdownNode !== null) {
324
+ var removedNode = subDivisionMarkdownNode, subDivisionReplacement = _replacement.default.fromNode(subDivisionMarkdownNode, context);
325
+ subDivisionReplacements.push(subDivisionReplacement);
326
+ (0, _node.removeTokens)(removedNode, tokens);
327
+ (0, _node.removeNode)(removedNode, parentNode);
328
+ }
329
+ return subDivisionReplacements;
330
+ }, []);
331
+ return subDivisionReplacements;
332
+ }
333
+ },
245
334
  {
246
335
  key: "createFootnotesListMarkdownNode",
247
336
  value: function createFootnotesListMarkdownNode(context) {
@@ -249,13 +338,6 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
249
338
  return footnotesListMarkdownNode;
250
339
  }
251
340
  },
252
- {
253
- key: "removeFootnotesListMarkdownNode",
254
- value: function removeFootnotesListMarkdownNode(footnotesListMarkdownNode) {
255
- var childNode = footnotesListMarkdownNode; ///
256
- this.removeChildNode(childNode);
257
- }
258
- },
259
341
  {
260
342
  key: "asHTML",
261
343
  value: function asHTML(context) {
@@ -281,10 +363,28 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
281
363
  var divisionClassName = null, divisionMarkdownNode = _markdown.default.fromRuleNameChildNodesAndOpacity(DivisionMarkdownNode, ruleName, childNodes, opacity, divisionClassName);
282
364
  return divisionMarkdownNode;
283
365
  }
366
+ },
367
+ {
368
+ key: "fromSubdivisionReplacementsPaginatedChildNodesAndDivisionClassName",
369
+ value: function fromSubdivisionReplacementsPaginatedChildNodesAndDivisionClassName(subDivisionReplacements, paginatedChildNodes, divisionClassName, context) {
370
+ var ruleName = _ruleNames.DIVISION_RULE_NAME, childNodes = _to_consumable_array(paginatedChildNodes), opacity = null, divisionMarkdownNode = _markdown.default.fromRuleNameChildNodesAndOpacity(DivisionMarkdownNode, ruleName, childNodes, opacity, divisionClassName);
371
+ subDivisionReplacements.some(function(subDivisionReplacement) {
372
+ subDivisionReplacement.appendTo(divisionMarkdownNode, context);
373
+ return true; ///
374
+ });
375
+ return divisionMarkdownNode;
376
+ }
284
377
  }
285
378
  ]);
286
379
  return DivisionMarkdownNode;
287
380
  }(_markdown.default);
381
+ function footnoteReplacementsFromSubdivisionReplacements(subdivisionReplacements) {
382
+ var footnoteReplacements = subdivisionReplacements.map(function(subdivisionReplacement) {
383
+ var node = subdivisionReplacement.getNode(), footnoteMarkdownNode = (0, _query.footnoteMarkdownNodsFromNode)(node), descendentNode = footnoteMarkdownNode, footnoteReplacement = subdivisionReplacement.contract(descendentNode);
384
+ return footnoteReplacement;
385
+ });
386
+ return footnoteReplacements;
387
+ }
288
388
  function headingMarkdownNodesFromDivisionMarkdownNodeAndContentsDirectiveMarkdownNode(divisionMarkdownNode, contentsDirectiveMarkdownNode, context) {
289
389
  var contentsDepth = context.contentsDepth, headingMarkdownNodes = [];
290
390
  var divisionMarkdownNodes = context.divisionMarkdownNodes;
@@ -303,4 +403,4 @@ function headingMarkdownNodesFromDivisionMarkdownNodeAndContentsDirectiveMarkdow
303
403
  return headingMarkdownNodes;
304
404
  }
305
405
 
306
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2RpdmlzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93blwiO1xuaW1wb3J0IENvbnRlbnRzTGlzdE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93bi9jb250ZW50c0xpc3RcIjtcbmltcG9ydCBGb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlIGZyb20gXCIuLi8uLi9ub2RlL21hcmtkb3duL2Zvb3Rub3Rlc0xpc3RcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgcmVudW1iZXJMaW5rTWFya2Rvd25Ob2RlcyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvZm9vdG5vdGVzXCI7XG5pbXBvcnQgeyByZXBsYWNlTm9kZSwgcmVwbGFjZU5vZGVzLCByZXBsYWNlVG9rZW5zIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9yZXBsYWNlXCI7XG5pbXBvcnQgeyBoZWFkaW5nTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlLFxuICAgICAgICAgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzRnJvbU5vZGUsXG4gICAgICAgICBpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSxcbiAgICAgICAgIGNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUsXG4gICAgICAgICBmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgeyBmaWx0ZXIgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEaXZpc2lvbk1hcmtkb3duTm9kZSBleHRlbmRzIE1hcmtkb3duTm9kZSB7XG4gIGNvbnN0cnVjdG9yKHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBwcmVjZWRlbmNlLCBvcGFjaXR5LCBkb21FbGVtZW50LCBkaXZpc2lvbkNsYXNzTmFtZSkge1xuICAgIHN1cGVyKHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBwcmVjZWRlbmNlLCBvcGFjaXR5LCBkb21FbGVtZW50KTtcblxuICAgIHRoaXMuZGl2aXNpb25DbGFzc05hbWUgPSBkaXZpc2lvbkNsYXNzTmFtZTtcbiAgfVxuXG4gIGdldERpdmlzaW9uQ2xhc3NOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmRpdmlzaW9uQ2xhc3NOYW1lO1xuICB9XG5cbiAgc2V0RGl2aXNpb25DbGFzc05hbWUoZGl2aXNpb25DbGFzc05hbWUpIHtcbiAgICB0aGlzLmRpdmlzaW9uQ2xhc3NOYW1lID0gZGl2aXNpb25DbGFzc05hbWU7XG4gIH1cblxuICBjbGFzc05hbWUoY29udGV4dCkge1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IHRoaXMuZGl2aXNpb25DbGFzc05hbWU7IC8vL1xuXG4gICAgcmV0dXJuIGNsYXNzTmFtZTtcbiAgfVxuXG4gIGlzSWdub3JlZCgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcyxcbiAgICAgICAgICBpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGUgPSBpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKSxcbiAgICAgICAgICBpZ25vcmVkID0gKGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZSAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gaWdub3JlZDtcbiAgfVxuXG4gIGZpbmRQYXJlbnROb2RlKGNoaWxkTm9kZSwgbm9kZSA9IHRoaXMpIHtcbiAgICBsZXQgcGFyZW50Tm9kZSA9IG51bGw7XG5cbiAgICBjb25zdCBub2RlTm9uVGVybWluYWxOb2RlID0gbm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKG5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGUsIC8vL1xuICAgICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICBpbmRleCA9IGNoaWxkTm9kZXMuaW5kZXhPZihjaGlsZE5vZGUpO1xuXG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIHBhcmVudE5vZGUgPSBub2RlOyAgLy8vXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBub2RlcyA9IGNoaWxkTm9kZXM7IC8vL1xuXG4gICAgICAgIG5vZGVzLnNvbWUoKG5vZGUpID0+IHtcbiAgICAgICAgICBwYXJlbnROb2RlID0gdGhpcy5maW5kUGFyZW50Tm9kZShjaGlsZE5vZGUsIG5vZGUpO1xuXG4gICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmVudE5vZGU7XG4gIH1cblxuICBjcmVhdGVDb250ZW50cyhjb250ZXh0KSB7XG4gICAgbGV0IGNvbnRlbnRzQ3JlYXRlZCA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICBjb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZSA9IGNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSk7XG5cbiAgICBpZiAoY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgICAgaGVhZGluZ01hcmtkb3duTm9kZXMgPSBoZWFkaW5nTWFya2Rvd25Ob2Rlc0Zyb21EaXZpc2lvbk1hcmtkb3duTm9kZUFuZENvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICBoZWFkaW5nTWFya2Rvd25Ob2Rlc0xlbmd0aCA9IGhlYWRpbmdNYXJrZG93bk5vZGVzLmxlbmd0aDtcblxuICAgICAgaWYgKGhlYWRpbmdNYXJrZG93bk5vZGVzTGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyB0b2tlbnMgfSA9IGNvbnRleHQsXG4gICAgICAgICAgICBjb250ZW50c0xpc3RNYXJrZG93bk5vZGUgPSBDb250ZW50c0xpc3RNYXJrZG93bk5vZGUuZnJvbUhlYWRpbmdNYXJrZG93bk5vZGVzKGhlYWRpbmdNYXJrZG93bk5vZGVzLCBjb250ZXh0KSxcbiAgICAgICAgICAgIGNvbnRlbnRzTGlzdE1hcmtkb3duTm9kZVRva2VucyA9IGNvbnRlbnRzTGlzdE1hcmtkb3duTm9kZS5nZXRUb2tlbnMoKSxcbiAgICAgICAgICAgIGNoaWxkTm9kZSA9IGNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlLCAgLy8vXG4gICAgICAgICAgICBwYXJlbnROb2RlID0gdGhpcy5maW5kUGFyZW50Tm9kZShjaGlsZE5vZGUpLFxuICAgICAgICAgICAgcmVwbGFjZWROb2RlID0gY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGUsIC8vL1xuICAgICAgICAgICAgcmVwbGFjZW1lbnROb2RlID0gY29udGVudHNMaXN0TWFya2Rvd25Ob2RlLCAgLy8vXG4gICAgICAgICAgICByZXBsYWNlbWVudFRva2VucyA9IGNvbnRlbnRzTGlzdE1hcmtkb3duTm9kZVRva2VuczsgLy8vXG5cbiAgICAgIHJlcGxhY2VOb2RlKHJlcGxhY2VtZW50Tm9kZSwgcmVwbGFjZWROb2RlLCBwYXJlbnROb2RlKTtcblxuICAgICAgcmVwbGFjZVRva2VucyhyZXBsYWNlbWVudFRva2VucywgcmVwbGFjZWROb2RlLCB0b2tlbnMpO1xuXG4gICAgICBjb250ZW50c0NyZWF0ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBjb250ZW50c0NyZWF0ZWQ7XG4gIH1cblxuICBjcmVhdGVGb290bm90ZXMoY29udGV4dCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgZm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2RlID0gZm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSk7XG5cbiAgICBpZiAoZm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICAgIGZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUgPSBGb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlLmZyb21EaXZpc2lvbk1hcmtkb3duTm9kZShkaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGV4dCk7XG5cbiAgICAgIGlmIChmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkTm9kZSA9IGZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGU7ICAvLy9cblxuICAgICAgICBkaXZpc2lvbk1hcmtkb3duTm9kZS5hcHBlbmRDaGlsZE5vZGUoY2hpbGROb2RlKTtcblxuICAgICAgICByZW51bWJlckxpbmtNYXJrZG93bk5vZGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlLCBjb250ZXh0KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlc29sdmVFbWJlZGRpbmdzKGNvbnRleHQpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlcyA9IGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUpO1xuXG4gICAgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzLm1hcCgoZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHJlcGxhY2VtZW50Tm9kZUFuZFRva2VucyA9IGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlLnJlcGxhY2VtZW50Tm9kZUFuZFRva2Vucyhjb250ZXh0KTtcblxuICAgICAgaWYgKHJlcGxhY2VtZW50Tm9kZUFuZFRva2VucyAhPT0gbnVsbCkge1xuICAgICAgICBsZXQgdG9rZW5zO1xuXG4gICAgICAgIHRva2VucyA9IHJlcGxhY2VtZW50Tm9kZUFuZFRva2Vucy5nZXRUb2tlbnMoKTtcblxuICAgICAgICBjb25zdCBjaGlsZE5vZGVzID0gcmVwbGFjZW1lbnROb2RlQW5kVG9rZW5zLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgcmVwbGFjZW1lbnROb2RlcyA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgICByZXBsYWNlbWVudFRva2VucyA9IHRva2VuczsgLy8vXG5cbiAgICAgICAgKHsgdG9rZW5zIH0gPSBjb250ZXh0KTtcblxuICAgICAgICBjb25zdCBjaGlsZE5vZGUgPSBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBwYXJlbnROb2RlID0gdGhpcy5maW5kUGFyZW50Tm9kZShjaGlsZE5vZGUpLFxuICAgICAgICAgICAgICByZXBsYWNlZE5vZGUgPSBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZTsgLy8vXG5cbiAgICAgICAgcmVwbGFjZU5vZGVzKHJlcGxhY2VtZW50Tm9kZXMsIHJlcGxhY2VkTm9kZSwgcGFyZW50Tm9kZSk7XG5cbiAgICAgICAgcmVwbGFjZVRva2VucyhyZXBsYWNlbWVudFRva2VucywgcmVwbGFjZWROb2RlLCB0b2tlbnMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlRm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZShjb250ZXh0KSB7XG4gICAgY29uc3QgZGl2aXNpb25NYXJrZG93bk5vZGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgZm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZSA9IEZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUuZnJvbURpdmlzaW9uTWFya2Rvd25Ob2RlKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlO1xuICB9XG5cbiAgcmVtb3ZlRm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZShmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlKSB7XG4gICAgY29uc3QgY2hpbGROb2RlID0gZm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZTsgIC8vL1xuXG4gICAgdGhpcy5yZW1vdmVDaGlsZE5vZGUoY2hpbGROb2RlKTtcbiAgfVxuXG4gIGFzSFRNTChjb250ZXh0KSB7XG4gICAgbGV0IGh0bWwgPSBudWxsO1xuXG4gICAgY29uc3QgaW5kZW50ID0gRU1QVFlfU1RSSU5HLFxuICAgICAgICAgIGNoaWxkTm9kZXNIVE1MID0gdGhpcy5jaGlsZE5vZGVzQXNIVE1MKGluZGVudCwgY29udGV4dCk7XG5cbiAgICBpZiAoY2hpbGROb2Rlc0hUTUwgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0YXJ0aW5nVGFnID0gdGhpcy5zdGFydGluZ1RhZyhjb250ZXh0KSxcbiAgICAgICAgICAgIGNsb3NpbmdUYWcgPSB0aGlzLmNsb3NpbmdUYWcoY29udGV4dCk7XG5cbiAgICAgIGh0bWwgPSBgJHtpbmRlbnR9JHtzdGFydGluZ1RhZ31cbiR7Y2hpbGROb2Rlc0hUTUx9JHtpbmRlbnR9JHtjbG9zaW5nVGFnfVxuYDtcbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbDtcbiAgfVxuXG4gIGNsb25lKCkgeyByZXR1cm4gc3VwZXIuY2xvbmUodGhpcy5kaXZpc2lvbkNsYXNzTmFtZSk7IH1cblxuICBzdGF0aWMgZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkocnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHkpIHtcbiAgICBjb25zdCBkaXZpc2lvbkNsYXNzTmFtZSA9IG51bGwsXG4gICAgICAgICAgZGl2aXNpb25NYXJrZG93bk5vZGUgPSBNYXJrZG93bk5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkoRGl2aXNpb25NYXJrZG93bk5vZGUsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBkaXZpc2lvbkNsYXNzTmFtZSk7XG5cbiAgICByZXR1cm4gZGl2aXNpb25NYXJrZG93bk5vZGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGVhZGluZ01hcmtkb3duTm9kZXNGcm9tRGl2aXNpb25NYXJrZG93bk5vZGVBbmRDb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZShkaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBjb250ZW50c0RlcHRoIH0gPSBjb250ZXh0LFxuICAgICAgICBoZWFkaW5nTWFya2Rvd25Ob2RlcyA9IFtdO1xuXG4gIGxldCB7IGRpdmlzaW9uTWFya2Rvd25Ob2RlcyB9ID0gY29udGV4dDtcblxuICBjb25zdCBpbmRleCA9IGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5pbmRleE9mKGRpdmlzaW9uTWFya2Rvd25Ob2RlKSxcbiAgICAgICAgc3RhcnQgPSBpbmRleCArIDE7XG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzID0gZGl2aXNpb25NYXJrZG93bk5vZGVzLnNsaWNlKHN0YXJ0KTsgLy8vXG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzLmZvckVhY2goKGRpdmlzaW9uTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IGRpdmlzaW9uTWFya2Rvd25Ob2RlOyAgLy8vXG5cbiAgICBoZWFkaW5nTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUsIGhlYWRpbmdNYXJrZG93bk5vZGVzKTtcbiAgfSk7XG5cbiAgZmlsdGVyKGhlYWRpbmdNYXJrZG93bk5vZGVzLCAoaGVhZGluZ01hcmtkb3duTm9kZSkgPT4ge1xuICAgIGNvbnN0IGRlcHRoID0gaGVhZGluZ01hcmtkb3duTm9kZS5nZXREZXB0aCgpO1xuXG4gICAgaWYgKGRlcHRoIDw9IGNvbnRlbnRzRGVwdGgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGhlYWRpbmdNYXJrZG93bk5vZGVzO1xufSJdLCJuYW1lcyI6WyJEaXZpc2lvbk1hcmtkb3duTm9kZSIsImZpbHRlciIsImFycmF5VXRpbGl0aWVzIiwicnVsZU5hbWUiLCJjaGlsZE5vZGVzIiwicHJlY2VkZW5jZSIsIm9wYWNpdHkiLCJkb21FbGVtZW50IiwiZGl2aXNpb25DbGFzc05hbWUiLCJnZXREaXZpc2lvbkNsYXNzTmFtZSIsInNldERpdmlzaW9uQ2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiY29udGV4dCIsImlzSWdub3JlZCIsIm5vZGUiLCJpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGUiLCJpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSIsImlnbm9yZWQiLCJmaW5kUGFyZW50Tm9kZSIsImNoaWxkTm9kZSIsInBhcmVudE5vZGUiLCJub2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJnZXRDaGlsZE5vZGVzIiwiaW5kZXgiLCJpbmRleE9mIiwibm9kZXMiLCJzb21lIiwiY3JlYXRlQ29udGVudHMiLCJjb250ZW50c0NyZWF0ZWQiLCJjb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZSIsImNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUiLCJkaXZpc2lvbk1hcmtkb3duTm9kZSIsImhlYWRpbmdNYXJrZG93bk5vZGVzIiwiaGVhZGluZ01hcmtkb3duTm9kZXNGcm9tRGl2aXNpb25NYXJrZG93bk5vZGVBbmRDb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZSIsImhlYWRpbmdNYXJrZG93bk5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwidG9rZW5zIiwiY29udGVudHNMaXN0TWFya2Rvd25Ob2RlIiwiQ29udGVudHNMaXN0TWFya2Rvd25Ob2RlIiwiZnJvbUhlYWRpbmdNYXJrZG93bk5vZGVzIiwiY29udGVudHNMaXN0TWFya2Rvd25Ob2RlVG9rZW5zIiwiZ2V0VG9rZW5zIiwicmVwbGFjZWROb2RlIiwicmVwbGFjZW1lbnROb2RlIiwicmVwbGFjZW1lbnRUb2tlbnMiLCJyZXBsYWNlTm9kZSIsInJlcGxhY2VUb2tlbnMiLCJjcmVhdGVGb290bm90ZXMiLCJmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGUiLCJmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSIsImZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUiLCJGb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlIiwiZnJvbURpdmlzaW9uTWFya2Rvd25Ob2RlIiwiYXBwZW5kQ2hpbGROb2RlIiwicmVudW1iZXJMaW5rTWFya2Rvd25Ob2RlcyIsInJlc29sdmVFbWJlZGRpbmdzIiwiZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzIiwiZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJtYXAiLCJlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZSIsInJlcGxhY2VtZW50Tm9kZUFuZFRva2VucyIsInJlcGxhY2VtZW50Tm9kZXMiLCJyZXBsYWNlTm9kZXMiLCJjcmVhdGVGb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlIiwicmVtb3ZlRm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZSIsInJlbW92ZUNoaWxkTm9kZSIsImFzSFRNTCIsImh0bWwiLCJpbmRlbnQiLCJFTVBUWV9TVFJJTkciLCJjaGlsZE5vZGVzSFRNTCIsImNoaWxkTm9kZXNBc0hUTUwiLCJzdGFydGluZ1RhZyIsImNsb3NpbmdUYWciLCJjbG9uZSIsImZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5IiwiTWFya2Rvd25Ob2RlIiwiY29udGVudHNEZXB0aCIsImRpdmlzaW9uTWFya2Rvd25Ob2RlcyIsInN0YXJ0Iiwic2xpY2UiLCJmb3JFYWNoIiwiaGVhZGluZ01hcmtkb3duTm9kZXNGcm9tTm9kZSIsImhlYWRpbmdNYXJrZG93bk5vZGUiLCJkZXB0aCIsImdldERlcHRoIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFtQnFCQTs7O3lCQWpCVTsrREFFTjttRUFDWTtvRUFDQzt5QkFFVDt5QkFDYTt1QkFDZTtxQkFLRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXZELElBQU0sQUFBRUMsU0FBV0MseUJBQWMsQ0FBekJEO0FBRU8sSUFBQSxBQUFNRCxxQ0FBRCxBQUFMO2NBQU1BOytCQUFBQTthQUFBQSxxQkFDUEcsUUFBUSxFQUFFQyxVQUFVLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLGlCQUFpQjtnQ0FEakVSOztrQ0FFWEcsVUFBVUMsWUFBWUMsWUFBWUMsU0FBU0M7UUFFakQsTUFBS0MsaUJBQWlCLEdBQUdBOzs7a0JBSlJSOztZQU9uQlMsS0FBQUE7bUJB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
406
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2RpdmlzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IFJlcGxhY2VtZW50IGZyb20gXCIuLi8uLi9yZXBsYWNlbWVudFwiO1xuaW1wb3J0IE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93blwiO1xuaW1wb3J0IENvbnRlbnRzTGlzdE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93bi9jb250ZW50c0xpc3RcIjtcbmltcG9ydCBGb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlIGZyb20gXCIuLi8uLi9ub2RlL21hcmtkb3duL2Zvb3Rub3Rlc0xpc3RcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgRElWSVNJT05fUlVMRV9OQU1FIH0gZnJvbSBcIi4uLy4uL3J1bGVOYW1lc1wiO1xuaW1wb3J0IHsgcmVtb3ZlTm9kZSwgcmVtb3ZlVG9rZW5zLCByZXBsYWNlTm9kZSwgcmVwbGFjZU5vZGVzLCByZXBsYWNlVG9rZW5zIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9ub2RlXCI7XG5pbXBvcnQgeyBmb290bm90ZU1hcmtkb3duTm9kc0Zyb21Ob2RlLFxuICAgICAgICAgaGVhZGluZ01hcmtkb3duTm9kZXNGcm9tTm9kZSxcbiAgICAgICAgIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlLFxuICAgICAgICAgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzRnJvbU5vZGUsXG4gICAgICAgICBpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSxcbiAgICAgICAgIGNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUsXG4gICAgICAgICBmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSxcbiAgICAgICAgIHBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgeyBjbGVhciwgZmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGl2aXNpb25NYXJrZG93bk5vZGUgZXh0ZW5kcyBNYXJrZG93bk5vZGUge1xuICBjb25zdHJ1Y3RvcihydWxlTmFtZSwgY2hpbGROb2RlcywgcHJlY2VkZW5jZSwgb3BhY2l0eSwgZG9tRWxlbWVudCwgZGl2aXNpb25DbGFzc05hbWUpIHtcbiAgICBzdXBlcihydWxlTmFtZSwgY2hpbGROb2RlcywgcHJlY2VkZW5jZSwgb3BhY2l0eSwgZG9tRWxlbWVudCk7XG5cbiAgICB0aGlzLmRpdmlzaW9uQ2xhc3NOYW1lID0gZGl2aXNpb25DbGFzc05hbWU7XG4gIH1cblxuICBnZXREaXZpc2lvbkNsYXNzTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kaXZpc2lvbkNsYXNzTmFtZTtcbiAgfVxuXG4gIHNldERpdmlzaW9uQ2xhc3NOYW1lKGRpdmlzaW9uQ2xhc3NOYW1lKSB7XG4gICAgdGhpcy5kaXZpc2lvbkNsYXNzTmFtZSA9IGRpdmlzaW9uQ2xhc3NOYW1lO1xuICB9XG5cbiAgY2xhc3NOYW1lKGNvbnRleHQpIHtcbiAgICBjb25zdCBjbGFzc05hbWUgPSB0aGlzLmRpdmlzaW9uQ2xhc3NOYW1lOyAvLy9cblxuICAgIHJldHVybiBjbGFzc05hbWU7XG4gIH1cblxuICBpc0lnbm9yZWQoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMsXG4gICAgICAgICAgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlID0gaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSksXG4gICAgICAgICAgaWdub3JlZCA9IChpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGUgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIGlnbm9yZWQ7XG4gIH1cblxuICBmaW5kUGFyZW50Tm9kZShjaGlsZE5vZGUsIG5vZGUgPSB0aGlzKSB7XG4gICAgbGV0IHBhcmVudE5vZGUgPSBudWxsO1xuXG4gICAgY29uc3Qgbm9kZU5vblRlcm1pbmFsTm9kZSA9IG5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChub2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgaW5kZXggPSBjaGlsZE5vZGVzLmluZGV4T2YoY2hpbGROb2RlKTtcblxuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBwYXJlbnROb2RlID0gbm9kZTsgIC8vL1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgbm9kZXMgPSBjaGlsZE5vZGVzOyAvLy9cblxuICAgICAgICBub2Rlcy5zb21lKChub2RlKSA9PiB7XG4gICAgICAgICAgcGFyZW50Tm9kZSA9IHRoaXMuZmluZFBhcmVudE5vZGUoY2hpbGROb2RlLCBub2RlKTtcblxuICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYXJlbnROb2RlO1xuICB9XG5cbiAgcGFnaW5hdGUoY29udGV4dCkge1xuICAgIGNvbnN0IHsgbGluZXNQZXJQYWdlIH0gPSBjb250ZXh0LFxuICAgICAgICAgIGNoaWxkTm9kZXMgPSB0aGlzLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBwYWdpbmF0ZWRDaGlsZE5vZGVzID0gW10sXG4gICAgICAgICAgZGl2aXNpb25NYXJrZG93bk5vZGVzID0gW10sXG4gICAgICAgICAgc3ViRGl2aXNpb25SZXBsYWNlbWVudHMgPSB0aGlzLnJlbW92ZVN1YmRpdmlzaW9uTWFya2Rvd25Ob2RlcyhwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUsIGNvbnRleHQpO1xuXG4gICAgbGV0IHRvdGFsTGluZXMgPSAwO1xuXG4gICAgY2hpbGROb2Rlcy5mb3JFYWNoKChjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IGxpbmVzID0gY2hpbGROb2RlLmxpbmVzKGNvbnRleHQpLFxuICAgICAgICAgICAgcGFnaW5hdGVkQ2hpbGROb2RlID0gY2hpbGROb2RlOyAgLy8vXG5cbiAgICAgIHRvdGFsTGluZXMgKz0gbGluZXM7XG5cbiAgICAgIHBhZ2luYXRlZENoaWxkTm9kZXMucHVzaChwYWdpbmF0ZWRDaGlsZE5vZGUpO1xuXG4gICAgICBpZiAodG90YWxMaW5lcyA+IGxpbmVzUGVyUGFnZSkge1xuICAgICAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IERpdmlzaW9uTWFya2Rvd25Ob2RlLmZyb21TdWJkaXZpc2lvblJlcGxhY2VtZW50c1BhZ2luYXRlZENoaWxkTm9kZXNBbmREaXZpc2lvbkNsYXNzTmFtZShzdWJEaXZpc2lvblJlcGxhY2VtZW50cywgcGFnaW5hdGVkQ2hpbGROb2RlcywgdGhpcy5kaXZpc2lvbkNsYXNzTmFtZSwgY29udGV4dCk7XG5cbiAgICAgICAgZGl2aXNpb25NYXJrZG93bk5vZGVzLnB1c2goZGl2aXNpb25NYXJrZG93bk5vZGUpO1xuXG4gICAgICAgIGNsZWFyKHBhZ2luYXRlZENoaWxkTm9kZXMpO1xuXG4gICAgICAgIHRvdGFsTGluZXMgPSAwO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRvdGFsTGluZXMgPiAwKSB7XG4gICAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IERpdmlzaW9uTWFya2Rvd25Ob2RlLmZyb21TdWJkaXZpc2lvblJlcGxhY2VtZW50c1BhZ2luYXRlZENoaWxkTm9kZXNBbmREaXZpc2lvbkNsYXNzTmFtZShzdWJEaXZpc2lvblJlcGxhY2VtZW50cywgcGFnaW5hdGVkQ2hpbGROb2RlcywgdGhpcy5kaXZpc2lvbkNsYXNzTmFtZSwgY29udGV4dCk7XG5cbiAgICAgIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5wdXNoKGRpdmlzaW9uTWFya2Rvd25Ob2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGl2aXNpb25NYXJrZG93bk5vZGVzO1xuICB9XG5cbiAgc2V0UGFnZU51bWJlcihwYWdlTnVtYmVyKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMsXG4gICAgICAgICAgcGFnZU51bWJlckRpcmVjdGl2ZSA9IHBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKTtcblxuICAgIGlmIChwYWdlTnVtYmVyRGlyZWN0aXZlICE9PSBudWxsKSB7XG4gICAgICBwYWdlTnVtYmVyRGlyZWN0aXZlLnNldFBhZ2VOdW1iZXIocGFnZU51bWJlcik7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlQ29udGVudHMoY29udGV4dCkge1xuICAgIGxldCBjb250ZW50c0NyZWF0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGUgPSBjb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlKG5vZGUpO1xuXG4gICAgaWYgKGNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICAgIGhlYWRpbmdNYXJrZG93bk5vZGVzID0gaGVhZGluZ01hcmtkb3duTm9kZXNGcm9tRGl2aXNpb25NYXJrZG93bk5vZGVBbmRDb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZShkaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgaGVhZGluZ01hcmtkb3duTm9kZXNMZW5ndGggPSBoZWFkaW5nTWFya2Rvd25Ob2Rlcy5sZW5ndGg7XG5cbiAgICAgIGlmIChoZWFkaW5nTWFya2Rvd25Ob2Rlc0xlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgdG9rZW5zIH0gPSBjb250ZXh0LFxuICAgICAgICAgICAgY29udGVudHNMaXN0TWFya2Rvd25Ob2RlID0gQ29udGVudHNMaXN0TWFya2Rvd25Ob2RlLmZyb21IZWFkaW5nTWFya2Rvd25Ob2RlcyhoZWFkaW5nTWFya2Rvd25Ob2RlcywgY29udGV4dCksXG4gICAgICAgICAgICBjb250ZW50c0xpc3RNYXJrZG93bk5vZGVUb2tlbnMgPSBjb250ZW50c0xpc3RNYXJrZG93bk5vZGUuZ2V0VG9rZW5zKCksXG4gICAgICAgICAgICBjaGlsZE5vZGUgPSBjb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZSwgIC8vL1xuICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHRoaXMuZmluZFBhcmVudE5vZGUoY2hpbGROb2RlKSxcbiAgICAgICAgICAgIHJlcGxhY2VkTm9kZSA9IGNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlLCAvLy9cbiAgICAgICAgICAgIHJlcGxhY2VtZW50Tm9kZSA9IGNvbnRlbnRzTGlzdE1hcmtkb3duTm9kZSwgIC8vL1xuICAgICAgICAgICAgcmVwbGFjZW1lbnRUb2tlbnMgPSBjb250ZW50c0xpc3RNYXJrZG93bk5vZGVUb2tlbnM7IC8vL1xuXG4gICAgICByZXBsYWNlTm9kZShyZXBsYWNlbWVudE5vZGUsIHJlcGxhY2VkTm9kZSwgcGFyZW50Tm9kZSk7XG5cbiAgICAgIHJlcGxhY2VUb2tlbnMocmVwbGFjZW1lbnRUb2tlbnMsIHJlcGxhY2VkTm9kZSwgdG9rZW5zKTtcblxuICAgICAgY29udGVudHNDcmVhdGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGVudHNDcmVhdGVkO1xuICB9XG5cbiAgY3JlYXRlRm9vdG5vdGVzKGZvb3Rub3RlUmVwbGFjZW1lbnRzLCBjb250ZXh0KSB7XG4gICAgaWYgKGZvb3Rub3RlUmVwbGFjZW1lbnRzID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGl2aXNpb25NYXJrZG93bk5vZGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgZm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZSA9IEZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUuZnJvbUZvb3Rub3RlUmVwbGFjZW1lbnRzQW5kRGl2aXNpb25NYXJrZG93bk5vZGUoZm9vdG5vdGVSZXBsYWNlbWVudHMsIGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcblxuICAgIGlmIChmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZSA9IGZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUsIC8vL1xuICAgICAgICAgIHJlcGxhY2VtZW50ID0gUmVwbGFjZW1lbnQuZnJvbU5vZGUobm9kZSwgY29udGV4dCk7XG5cbiAgICByZXBsYWNlbWVudC5hcHBlbmRUbyhkaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGV4dCk7XG4gIH1cblxuICBwcmVwYXJlRm9vdG5vdGVzKGNvbnRleHQpIHtcbiAgICBsZXQgc3ViZGl2aXNpb25SZXBsYWNlbWVudHM7XG5cbiAgICBzdWJkaXZpc2lvblJlcGxhY2VtZW50cyA9IHRoaXMucmVtb3ZlU3ViZGl2aXNpb25NYXJrZG93bk5vZGVzKGZvb3Rub3RlTWFya2Rvd25Ob2RzRnJvbU5vZGUsIGNvbnRleHQpO1xuXG4gICAgbGV0IGZvb3Rub3RlUmVwbGFjZW1lbnRzID0gZm9vdG5vdGVSZXBsYWNlbWVudHNGcm9tU3ViZGl2aXNpb25SZXBsYWNlbWVudHMoc3ViZGl2aXNpb25SZXBsYWNlbWVudHMpO1xuXG4gICAgc3ViZGl2aXNpb25SZXBsYWNlbWVudHMgPSB0aGlzLnJlbW92ZVN1YmRpdmlzaW9uTWFya2Rvd25Ob2Rlcyhmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSwgY29udGV4dCk7XG5cbiAgICBjb25zdCBzdWJkaXZpc2lvblJlcGxhY2VtZW50c0xlbmd0aCA9IHN1YmRpdmlzaW9uUmVwbGFjZW1lbnRzLmxlbmd0aDtcblxuICAgIGlmIChzdWJkaXZpc2lvblJlcGxhY2VtZW50c0xlbmd0aCA9PT0gMCkge1xuICAgICAgZm9vdG5vdGVSZXBsYWNlbWVudHMgPSBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBmb290bm90ZVJlcGxhY2VtZW50cztcbiAgfVxuXG4gIHJlc29sdmVFbWJlZGRpbmdzKGNvbnRleHQpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlcyA9IGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUpO1xuXG4gICAgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzLm1hcCgoZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGUucmVwbGFjZW1lbnQoY29udGV4dCk7XG5cbiAgICAgIGlmIChyZXBsYWNlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICBsZXQgdG9rZW5zO1xuXG4gICAgICAgIHRva2VucyA9IHJlcGxhY2VtZW50LmdldFRva2VucygpO1xuXG4gICAgICAgIGNvbnN0IGNoaWxkTm9kZXMgPSByZXBsYWNlbWVudC5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgIHJlcGxhY2VtZW50Tm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgcmVwbGFjZW1lbnRUb2tlbnMgPSB0b2tlbnM7IC8vL1xuXG4gICAgICAgICh7IHRva2VucyB9ID0gY29udGV4dCk7XG5cbiAgICAgICAgY29uc3QgY2hpbGROb2RlID0gZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGUsICAvLy9cbiAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHRoaXMuZmluZFBhcmVudE5vZGUoY2hpbGROb2RlKSxcbiAgICAgICAgICAgICAgcmVwbGFjZWROb2RlID0gZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGU7IC8vL1xuXG4gICAgICAgIHJlcGxhY2VOb2RlcyhyZXBsYWNlbWVudE5vZGVzLCByZXBsYWNlZE5vZGUsIHBhcmVudE5vZGUpO1xuXG4gICAgICAgIHJlcGxhY2VUb2tlbnMocmVwbGFjZW1lbnRUb2tlbnMsIHJlcGxhY2VkTm9kZSwgdG9rZW5zKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZVN1YmRpdmlzaW9uTWFya2Rvd25Ob2RlcyhtYXJrZG93bk5vZGVGcm9tTm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHsgdG9rZW5zIH0gPSBjb250ZXh0LFxuICAgICAgICAgIG5vZGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgcGFyZW50Tm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMgPSBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlKSxcbiAgICAgICAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50cyA9IHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5yZWR1Y2UoKHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzLCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlLCAvLy9cbiAgICAgICAgICAgICAgICAgIG1hcmtkb3duTm9kZSA9IG1hcmtkb3duTm9kZUZyb21Ob2RlKG5vZGUpO1xuXG4gICAgICAgICAgICBpZiAobWFya2Rvd25Ob2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlbW92ZWROb2RlID0gc3ViRGl2aXNpb25NYXJrZG93bk5vZGUsICAvLy9cbiAgICAgICAgICAgICAgICAgICAgc3ViRGl2aXNpb25SZXBsYWNlbWVudCA9IFJlcGxhY2VtZW50LmZyb21Ob2RlKHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICAgICAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50cy5wdXNoKHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQpO1xuXG4gICAgICAgICAgICAgIHJlbW92ZVRva2VucyhyZW1vdmVkTm9kZSwgdG9rZW5zKTtcblxuICAgICAgICAgICAgICByZW1vdmVOb2RlKHJlbW92ZWROb2RlLCBwYXJlbnROb2RlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzO1xuICAgICAgICAgIH0sIFtdKTtcblxuICAgIHJldHVybiBzdWJEaXZpc2lvblJlcGxhY2VtZW50cztcbiAgfVxuXG4gIGNyZWF0ZUZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUoY29udGV4dCkge1xuICAgIGNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIGZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUgPSBGb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlLmZyb21EaXZpc2lvbk1hcmtkb3duTm9kZShkaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZTtcbiAgfVxuXG4gIGFzSFRNTChjb250ZXh0KSB7XG4gICAgbGV0IGh0bWwgPSBudWxsO1xuXG4gICAgY29uc3QgaW5kZW50ID0gRU1QVFlfU1RSSU5HLFxuICAgICAgICAgIGNoaWxkTm9kZXNIVE1MID0gdGhpcy5jaGlsZE5vZGVzQXNIVE1MKGluZGVudCwgY29udGV4dCk7XG5cbiAgICBpZiAoY2hpbGROb2Rlc0hUTUwgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0YXJ0aW5nVGFnID0gdGhpcy5zdGFydGluZ1RhZyhjb250ZXh0KSxcbiAgICAgICAgICAgIGNsb3NpbmdUYWcgPSB0aGlzLmNsb3NpbmdUYWcoY29udGV4dCk7XG5cbiAgICAgIGh0bWwgPSBgJHtpbmRlbnR9JHtzdGFydGluZ1RhZ31cbiR7Y2hpbGROb2Rlc0hUTUx9JHtpbmRlbnR9JHtjbG9zaW5nVGFnfVxuYDtcbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbDtcbiAgfVxuXG4gIGNsb25lKCkgeyByZXR1cm4gc3VwZXIuY2xvbmUodGhpcy5kaXZpc2lvbkNsYXNzTmFtZSk7IH1cblxuICBzdGF0aWMgZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkocnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHkpIHtcbiAgICBjb25zdCBkaXZpc2lvbkNsYXNzTmFtZSA9IG51bGwsXG4gICAgICAgICAgZGl2aXNpb25NYXJrZG93bk5vZGUgPSBNYXJrZG93bk5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkoRGl2aXNpb25NYXJrZG93bk5vZGUsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBkaXZpc2lvbkNsYXNzTmFtZSk7XG5cbiAgICByZXR1cm4gZGl2aXNpb25NYXJrZG93bk5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVN1YmRpdmlzaW9uUmVwbGFjZW1lbnRzUGFnaW5hdGVkQ2hpbGROb2Rlc0FuZERpdmlzaW9uQ2xhc3NOYW1lKHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzLCBwYWdpbmF0ZWRDaGlsZE5vZGVzLCBkaXZpc2lvbkNsYXNzTmFtZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gRElWSVNJT05fUlVMRV9OQU1FLFxuICAgICAgICAgIGNoaWxkTm9kZXMgPSBbXG4gICAgICAgICAgICAuLi5wYWdpbmF0ZWRDaGlsZE5vZGVzXG4gICAgICAgICAgXSxcbiAgICAgICAgICBvcGFjaXR5ID0gbnVsbCxcbiAgICAgICAgICBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IE1hcmtkb3duTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eShEaXZpc2lvbk1hcmtkb3duTm9kZSwgcnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHksIGRpdmlzaW9uQ2xhc3NOYW1lKTtcblxuICAgIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzLnNvbWUoKHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQpID0+IHtcbiAgICAgIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQuYXBwZW5kVG8oZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gdHJ1ZTsgIC8vL1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRpdmlzaW9uTWFya2Rvd25Ob2RlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZvb3Rub3RlUmVwbGFjZW1lbnRzRnJvbVN1YmRpdmlzaW9uUmVwbGFjZW1lbnRzKHN1YmRpdmlzaW9uUmVwbGFjZW1lbnRzKSB7XG4gIGNvbnN0IGZvb3Rub3RlUmVwbGFjZW1lbnRzID0gc3ViZGl2aXNpb25SZXBsYWNlbWVudHMubWFwKChzdWJkaXZpc2lvblJlcGxhY2VtZW50KSA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IHN1YmRpdmlzaW9uUmVwbGFjZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGZvb3Rub3RlTWFya2Rvd25Ob2RlID0gZm9vdG5vdGVNYXJrZG93bk5vZHNGcm9tTm9kZShub2RlKSxcbiAgICAgICAgICBkZXNjZW5kZW50Tm9kZSA9IGZvb3Rub3RlTWFya2Rvd25Ob2RlLCAgLy8vXG4gICAgICAgICAgZm9vdG5vdGVSZXBsYWNlbWVudCA9IHN1YmRpdmlzaW9uUmVwbGFjZW1lbnQuY29udHJhY3QoZGVzY2VuZGVudE5vZGUpO1xuXG4gICAgcmV0dXJuIGZvb3Rub3RlUmVwbGFjZW1lbnQ7XG4gIH0pO1xuXG4gIHJldHVybiBmb290bm90ZVJlcGxhY2VtZW50cztcbn1cblxuZnVuY3Rpb24gaGVhZGluZ01hcmtkb3duTm9kZXNGcm9tRGl2aXNpb25NYXJrZG93bk5vZGVBbmRDb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZShkaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBjb250ZW50c0RlcHRoIH0gPSBjb250ZXh0LFxuICAgICAgICBoZWFkaW5nTWFya2Rvd25Ob2RlcyA9IFtdO1xuXG4gIGxldCB7IGRpdmlzaW9uTWFya2Rvd25Ob2RlcyB9ID0gY29udGV4dDtcblxuICBjb25zdCBpbmRleCA9IGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5pbmRleE9mKGRpdmlzaW9uTWFya2Rvd25Ob2RlKSxcbiAgICAgICAgc3RhcnQgPSBpbmRleCArIDE7XG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzID0gZGl2aXNpb25NYXJrZG93bk5vZGVzLnNsaWNlKHN0YXJ0KTsgLy8vXG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzLmZvckVhY2goKGRpdmlzaW9uTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IGRpdmlzaW9uTWFya2Rvd25Ob2RlOyAgLy8vXG5cbiAgICBoZWFkaW5nTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUsIGhlYWRpbmdNYXJrZG93bk5vZGVzKTtcbiAgfSk7XG5cbiAgZmlsdGVyKGhlYWRpbmdNYXJrZG93bk5vZGVzLCAoaGVhZGluZ01hcmtkb3duTm9kZSkgPT4ge1xuICAgIGNvbnN0IGRlcHRoID0gaGVhZGluZ01hcmtkb3duTm9kZS5nZXREZXB0aCgpO1xuXG4gICAgaWYgKGRlcHRoIDw9IGNvbnRlbnRzRGVwdGgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGhlYWRpbmdNYXJrZG93bk5vZGVzO1xufSJdLCJuYW1lcyI6WyJEaXZpc2lvbk1hcmtkb3duTm9kZSIsImNsZWFyIiwiYXJyYXlVdGlsaXRpZXMiLCJmaWx0ZXIiLCJydWxlTmFtZSIsImNoaWxkTm9kZXMiLCJwcmVjZWRlbmNlIiwib3BhY2l0eSIsImRvbUVsZW1lbnQiLCJkaXZpc2lvbkNsYXNzTmFtZSIsImdldERpdmlzaW9uQ2xhc3NOYW1lIiwic2V0RGl2aXNpb25DbGFzc05hbWUiLCJjbGFzc05hbWUiLCJjb250ZXh0IiwiaXNJZ25vcmVkIiwibm9kZSIsImlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZSIsImlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwiaWdub3JlZCIsImZpbmRQYXJlbnROb2RlIiwiY2hpbGROb2RlIiwicGFyZW50Tm9kZSIsIm5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsImdldENoaWxkTm9kZXMiLCJpbmRleCIsImluZGV4T2YiLCJub2RlcyIsInNvbWUiLCJwYWdpbmF0ZSIsImxpbmVzUGVyUGFnZSIsInBhZ2luYXRlZENoaWxkTm9kZXMiLCJkaXZpc2lvbk1hcmtkb3duTm9kZXMiLCJzdWJEaXZpc2lvblJlcGxhY2VtZW50cyIsInJlbW92ZVN1YmRpdmlzaW9uTWFya2Rvd25Ob2RlcyIsInBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSIsInRvdGFsTGluZXMiLCJmb3JFYWNoIiwibGluZXMiLCJwYWdpbmF0ZWRDaGlsZE5vZGUiLCJwdXNoIiwiZGl2aXNpb25NYXJrZG93bk5vZGUiLCJmcm9tU3ViZGl2aXNpb25SZXBsYWNlbWVudHNQYWdpbmF0ZWRDaGlsZE5vZGVzQW5kRGl2aXNpb25DbGFzc05hbWUiLCJzZXRQYWdlTnVtYmVyIiwicGFnZU51bWJlciIsInBhZ2VOdW1iZXJEaXJlY3RpdmUiLCJjcmVhdGVDb250ZW50cyIsImNvbnRlbnRzQ3JlYXRlZCIsImNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwiY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSIsImhlYWRpbmdNYXJrZG93bk5vZGVzIiwiaGVhZGluZ01hcmtkb3duTm9kZXNGcm9tRGl2aXNpb25NYXJrZG93bk5vZGVBbmRDb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZSIsImhlYWRpbmdNYXJrZG93bk5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwidG9rZW5zIiwiY29udGVudHNMaXN0TWFya2Rvd25Ob2RlIiwiQ29udGVudHNMaXN0TWFya2Rvd25Ob2RlIiwiZnJvbUhlYWRpbmdNYXJrZG93bk5vZGVzIiwiY29udGVudHNMaXN0TWFya2Rvd25Ob2RlVG9rZW5zIiwiZ2V0VG9rZW5zIiwicmVwbGFjZWROb2RlIiwicmVwbGFjZW1lbnROb2RlIiwicmVwbGFjZW1lbnRUb2tlbnMiLCJyZXBsYWNlTm9kZSIsInJlcGxhY2VUb2tlbnMiLCJjcmVhdGVGb290bm90ZXMiLCJmb290bm90ZVJlcGxhY2VtZW50cyIsImZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUiLCJGb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlIiwiZnJvbUZvb3Rub3RlUmVwbGFjZW1lbnRzQW5kRGl2aXNpb25NYXJrZG93bk5vZGUiLCJyZXBsYWNlbWVudCIsIlJlcGxhY2VtZW50IiwiZnJvbU5vZGUiLCJhcHBlbmRUbyIsInByZXBhcmVGb290bm90ZXMiLCJzdWJkaXZpc2lvblJlcGxhY2VtZW50cyIsImZvb3Rub3RlTWFya2Rvd25Ob2RzRnJvbU5vZGUiLCJmb290bm90ZVJlcGxhY2VtZW50c0Zyb21TdWJkaXZpc2lvblJlcGxhY2VtZW50cyIsImZvb3Rub3Rlc0RpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwic3ViZGl2aXNpb25SZXBsYWNlbWVudHNMZW5ndGgiLCJyZXNvbHZlRW1iZWRkaW5ncyIsImVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlcyIsImVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlIiwibWFwIiwiZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGUiLCJyZXBsYWNlbWVudE5vZGVzIiwicmVwbGFjZU5vZGVzIiwibWFya2Rvd25Ob2RlRnJvbU5vZGUiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTm9kZSIsInJlZHVjZSIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlIiwibWFya2Rvd25Ob2RlIiwicmVtb3ZlZE5vZGUiLCJzdWJEaXZpc2lvblJlcGxhY2VtZW50IiwicmVtb3ZlVG9rZW5zIiwicmVtb3ZlTm9kZSIsImNyZWF0ZUZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUiLCJmcm9tRGl2aXNpb25NYXJrZG93bk5vZGUiLCJhc0hUTUwiLCJodG1sIiwiaW5kZW50IiwiRU1QVFlfU1RSSU5HIiwiY2hpbGROb2Rlc0hUTUwiLCJjaGlsZE5vZGVzQXNIVE1MIiwic3RhcnRpbmdUYWciLCJjbG9zaW5nVGFnIiwiY2xvbmUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eSIsIk1hcmtkb3duTm9kZSIsIkRJVklTSU9OX1JVTEVfTkFNRSIsInN1YmRpdmlzaW9uUmVwbGFjZW1lbnQiLCJnZXROb2RlIiwiZm9vdG5vdGVNYXJrZG93bk5vZGUiLCJkZXNjZW5kZW50Tm9kZSIsImZvb3Rub3RlUmVwbGFjZW1lbnQiLCJjb250cmFjdCIsImNvbnRlbnRzRGVwdGgiLCJzdGFydCIsInNsaWNlIiwiaGVhZGluZ01hcmtkb3duTm9kZXNGcm9tTm9kZSIsImhlYWRpbmdNYXJrZG93bk5vZGUiLCJkZXB0aCIsImdldERlcHRoIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -111,6 +111,13 @@ var EmailLinkMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
111
111
  return _super.apply(this, arguments);
112
112
  }
113
113
  _create_class(EmailLinkMarkdownNode, [
114
+ {
115
+ key: "lines",
116
+ value: function lines(context) {
117
+ var lines = 0;
118
+ return lines;
119
+ }
120
+ },
114
121
  {
115
122
  key: "inlineText",
116
123
  value: function inlineText(context) {
@@ -194,4 +201,4 @@ var EmailLinkMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
194
201
  Object.assign(EmailLinkMarkdownNode.prototype, _content.default);
195
202
  var _default = EmailLinkMarkdownNode;
196
203
 
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2VtYWlsTGluay5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBNYXJrZG93bk5vZGUgZnJvbSBcIi4uLy4uL25vZGUvbWFya2Rvd25cIjtcbmltcG9ydCBjb250ZW50TWl4aW5zIGZyb20gXCIuLi8uLi9taXhpbnMvY29udGVudFwiO1xuXG5pbXBvcnQgeyBIUkVGX0FUVFJJQlVURV9OQU1FIH0gZnJvbSBcIi4uLy4uL2F0dHJpYnV0ZU5hbWVzXCI7XG5cbmNvbnN0IHsgZmlyc3QsIHNlY29uZCwgc2Vjb25kTGFzdCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmNsYXNzIEVtYWlsTGlua01hcmtkb3duTm9kZSBleHRlbmRzIE1hcmtkb3duTm9kZSB7XG4gIGlubGluZVRleHQoY29udGV4dCkge1xuICAgIGxldCBpbmxpbmVUZXh0ID0gbnVsbDtcblxuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSB0aGlzLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBjaGlsZE5vZGVzTGVuZ3RoID0gY2hpbGROb2Rlcy5sZW5ndGg7XG5cbiAgICBpZiAoY2hpbGROb2Rlc0xlbmd0aCAhPT0gMSkge1xuICAgICAgY29uc3QgaW5kZW50ID0gbnVsbCxcbiAgICAgICAgICAgIHNlY29uZENoaWxkTm9kZSA9IHNlY29uZChjaGlsZE5vZGVzKSxcbiAgICAgICAgICAgIGlubGluZVRleHRNYXJrZG93bk5vZGUgPSBzZWNvbmRDaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgaW5saW5lVGV4dE1hcmtkb3duTm9kZUhUTUwgPSBpbmxpbmVUZXh0TWFya2Rvd25Ob2RlLmFzSFRNTChpbmRlbnQsIGNvbnRleHQpO1xuXG4gICAgICBpbmxpbmVUZXh0ID0gaW5saW5lVGV4dE1hcmtkb3duTm9kZUhUTUw7ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gaW5saW5lVGV4dDtcbiAgfVxuXG4gIGVtYWlsQWRkcmVzcyhjb250ZXh0KSB7XG4gICAgY29uc3QgY2hpbGROb2RlcyA9IHRoaXMuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIGNoaWxkTm9kZXNMZW5ndGggPSBjaGlsZE5vZGVzLmxlbmd0aDtcblxuICAgIGxldCBlbWFpbEFkZHJlc3NUZXJtaW5hbE5vZGU7XG5cbiAgICBpZiAoY2hpbGROb2Rlc0xlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZmlyc3RDaGlsZE5vZGUgPSBmaXJzdChjaGlsZE5vZGVzKTtcblxuICAgICAgZW1haWxBZGRyZXNzVGVybWluYWxOb2RlID0gZmlyc3RDaGlsZE5vZGU7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc2Vjb25kTGFzdENoaWxkTm9kZSA9IHNlY29uZExhc3QoY2hpbGROb2Rlcyk7XG5cbiAgICAgIGVtYWlsQWRkcmVzc1Rlcm1pbmFsTm9kZSA9IHNlY29uZExhc3RDaGlsZE5vZGU7ICAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBlbWFpbEFkZHJlc3NUZXJtaW5hbE5vZGVDb250ZW50ID0gZW1haWxBZGRyZXNzVGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICBlbWFpbEFkZHJlc3MgPSBlbWFpbEFkZHJlc3NUZXJtaW5hbE5vZGVDb250ZW50OyAvLy9cblxuICAgIHJldHVybiBlbWFpbEFkZHJlc3M7XG4gIH1cblxuICBhdHRyaWJ1dGVOYW1lKGNvbnRleHQpIHtcbiAgICBjb25zdCBhdHRyaWJ1dGVOYW1lID0gSFJFRl9BVFRSSUJVVEVfTkFNRTtcblxuICAgIHJldHVybiBhdHRyaWJ1dGVOYW1lO1xuICB9XG5cbiAgYXR0cmlidXRlVmFsdWUoY29udGV4dCkge1xuICAgIGNvbnN0IGVtYWlsQWRkcmVzcyA9IHRoaXMuZW1haWxBZGRyZXNzKGNvbnRleHQpLFxuICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gYG1haWx0bzoke2VtYWlsQWRkcmVzc31gO1xuXG4gICAgcmV0dXJuIGF0dHJpYnV0ZVZhbHVlO1xuICB9XG5cbiAgY2hpbGROb2Rlc0FzSFRNTChpbmRlbnQsIGNvbnRleHQpIHtcbiAgICBsZXQgY2hpbGROb2Rlc0hUTUw7XG5cbiAgICBjb25zdCBpbmxpbmVUZXh0ID0gdGhpcy5pbmxpbmVUZXh0KGNvbnRleHQpO1xuXG4gICAgaWYgKGlubGluZVRleHQgIT09IG51bGwpIHtcbiAgICAgIGNoaWxkTm9kZXNIVE1MID0gaW5saW5lVGV4dDsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5jb250ZW50KGNvbnRleHQpO1xuXG4gICAgICBjaGlsZE5vZGVzSFRNTCA9IGNvbnRlbnQ7IC8vL1xuICAgIH1cblxuICAgIHJldHVybiBjaGlsZE5vZGVzSFRNTDtcbiAgfVxuXG4gIGNyZWF0ZUNoaWxkTm9kZURPTUVsZW1lbnRzKGNvbnRleHQpIHtcbiAgICBjb25zdCBpbmxpbmVUZXh0ID0gdGhpcy5pbmxpbmVUZXh0KGNvbnRleHQpO1xuXG4gICAgbGV0IGNvbnRlbnQ7XG5cbiAgICBpZiAoaW5saW5lVGV4dCAhPT0gbnVsbCkge1xuICAgICAgY29udGVudCA9IGlubGluZVRleHQ7IC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZW50ID0gdGhpcy5jb250ZW50KGNvbnRleHQpO1xuICAgIH1cblxuICAgIGNvbnN0IHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY29udGVudCksXG4gICAgICAgICAgZG9tRWxlbWVudCA9IHRleHROb2RlOyAvLy9cblxuICAgIHRoaXMuYWRkRE9NRWxlbWVudChkb21FbGVtZW50KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eShydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSkgeyByZXR1cm4gTWFya2Rvd25Ob2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KEVtYWlsTGlua01hcmtkb3duTm9kZSwgcnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHkpOyB9XG59XG5cbk9iamVjdC5hc3NpZ24oRW1haWxMaW5rTWFya2Rvd25Ob2RlLnByb3RvdHlwZSwgY29udGVudE1peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IEVtYWlsTGlua01hcmtkb3duTm9kZTtcbiJdLCJuYW1lcyI6WyJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwic2Vjb25kIiwic2Vjb25kTGFzdCIsIkVtYWlsTGlua01hcmtkb3duTm9kZSIsImlubGluZVRleHQiLCJjb250ZXh0IiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJjaGlsZE5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwiaW5kZW50Iiwic2Vjb25kQ2hpbGROb2RlIiwiaW5saW5lVGV4dE1hcmtkb3duTm9kZSIsImlubGluZVRleHRNYXJrZG93bk5vZGVIVE1MIiwiYXNIVE1MIiwiZW1haWxBZGRyZXNzIiwiZW1haWxBZGRyZXNzVGVybWluYWxOb2RlIiwiZmlyc3RDaGlsZE5vZGUiLCJzZWNvbmRMYXN0Q2hpbGROb2RlIiwiZW1haWxBZGRyZXNzVGVybWluYWxOb2RlQ29udGVudCIsImdldENvbnRlbnQiLCJhdHRyaWJ1dGVOYW1lIiwiSFJFRl9BVFRSSUJVVEVfTkFNRSIsImF0dHJpYnV0ZVZhbHVlIiwiY2hpbGROb2Rlc0FzSFRNTCIsImNoaWxkTm9kZXNIVE1MIiwiY29udGVudCIsImNyZWF0ZUNoaWxkTm9kZURPTUVsZW1lbnRzIiwidGV4dE5vZGUiLCJkb2N1bWVudCIsImNyZWF0ZVRleHROb2RlIiwiZG9tRWxlbWVudCIsImFkZERPTUVsZW1lbnQiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eSIsInJ1bGVOYW1lIiwib3BhY2l0eSIsIk1hcmtkb3duTm9kZSIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSIsImNvbnRlbnRNaXhpbnMiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7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
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2VtYWlsTGluay5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBNYXJrZG93bk5vZGUgZnJvbSBcIi4uLy4uL25vZGUvbWFya2Rvd25cIjtcbmltcG9ydCBjb250ZW50TWl4aW5zIGZyb20gXCIuLi8uLi9taXhpbnMvY29udGVudFwiO1xuXG5pbXBvcnQgeyBIUkVGX0FUVFJJQlVURV9OQU1FIH0gZnJvbSBcIi4uLy4uL2F0dHJpYnV0ZU5hbWVzXCI7XG5cbmNvbnN0IHsgZmlyc3QsIHNlY29uZCwgc2Vjb25kTGFzdCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmNsYXNzIEVtYWlsTGlua01hcmtkb3duTm9kZSBleHRlbmRzIE1hcmtkb3duTm9kZSB7XG4gIGxpbmVzKGNvbnRleHQpIHtcbiAgICBjb25zdCBsaW5lcyA9IDA7XG5cbiAgICByZXR1cm4gbGluZXM7XG4gIH1cblxuICBpbmxpbmVUZXh0KGNvbnRleHQpIHtcbiAgICBsZXQgaW5saW5lVGV4dCA9IG51bGw7XG5cbiAgICBjb25zdCBjaGlsZE5vZGVzID0gdGhpcy5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgY2hpbGROb2Rlc0xlbmd0aCA9IGNoaWxkTm9kZXMubGVuZ3RoO1xuXG4gICAgaWYgKGNoaWxkTm9kZXNMZW5ndGggIT09IDEpIHtcbiAgICAgIGNvbnN0IGluZGVudCA9IG51bGwsXG4gICAgICAgICAgICBzZWNvbmRDaGlsZE5vZGUgPSBzZWNvbmQoY2hpbGROb2RlcyksXG4gICAgICAgICAgICBpbmxpbmVUZXh0TWFya2Rvd25Ob2RlID0gc2Vjb25kQ2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgIGlubGluZVRleHRNYXJrZG93bk5vZGVIVE1MID0gaW5saW5lVGV4dE1hcmtkb3duTm9kZS5hc0hUTUwoaW5kZW50LCBjb250ZXh0KTtcblxuICAgICAgaW5saW5lVGV4dCA9IGlubGluZVRleHRNYXJrZG93bk5vZGVIVE1MOyAgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIGlubGluZVRleHQ7XG4gIH1cblxuICBlbWFpbEFkZHJlc3MoY29udGV4dCkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSB0aGlzLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBjaGlsZE5vZGVzTGVuZ3RoID0gY2hpbGROb2Rlcy5sZW5ndGg7XG5cbiAgICBsZXQgZW1haWxBZGRyZXNzVGVybWluYWxOb2RlO1xuXG4gICAgaWYgKGNoaWxkTm9kZXNMZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGZpcnN0Q2hpbGROb2RlID0gZmlyc3QoY2hpbGROb2Rlcyk7XG5cbiAgICAgIGVtYWlsQWRkcmVzc1Rlcm1pbmFsTm9kZSA9IGZpcnN0Q2hpbGROb2RlOyAgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNlY29uZExhc3RDaGlsZE5vZGUgPSBzZWNvbmRMYXN0KGNoaWxkTm9kZXMpO1xuXG4gICAgICBlbWFpbEFkZHJlc3NUZXJtaW5hbE5vZGUgPSBzZWNvbmRMYXN0Q2hpbGROb2RlOyAgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgZW1haWxBZGRyZXNzVGVybWluYWxOb2RlQ29udGVudCA9IGVtYWlsQWRkcmVzc1Rlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgZW1haWxBZGRyZXNzID0gZW1haWxBZGRyZXNzVGVybWluYWxOb2RlQ29udGVudDsgLy8vXG5cbiAgICByZXR1cm4gZW1haWxBZGRyZXNzO1xuICB9XG5cbiAgYXR0cmlidXRlTmFtZShjb250ZXh0KSB7XG4gICAgY29uc3QgYXR0cmlidXRlTmFtZSA9IEhSRUZfQVRUUklCVVRFX05BTUU7XG5cbiAgICByZXR1cm4gYXR0cmlidXRlTmFtZTtcbiAgfVxuXG4gIGF0dHJpYnV0ZVZhbHVlKGNvbnRleHQpIHtcbiAgICBjb25zdCBlbWFpbEFkZHJlc3MgPSB0aGlzLmVtYWlsQWRkcmVzcyhjb250ZXh0KSxcbiAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9IGBtYWlsdG86JHtlbWFpbEFkZHJlc3N9YDtcblxuICAgIHJldHVybiBhdHRyaWJ1dGVWYWx1ZTtcbiAgfVxuXG4gIGNoaWxkTm9kZXNBc0hUTUwoaW5kZW50LCBjb250ZXh0KSB7XG4gICAgbGV0IGNoaWxkTm9kZXNIVE1MO1xuXG4gICAgY29uc3QgaW5saW5lVGV4dCA9IHRoaXMuaW5saW5lVGV4dChjb250ZXh0KTtcblxuICAgIGlmIChpbmxpbmVUZXh0ICE9PSBudWxsKSB7XG4gICAgICBjaGlsZE5vZGVzSFRNTCA9IGlubGluZVRleHQ7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29udGVudCA9IHRoaXMuY29udGVudChjb250ZXh0KTtcblxuICAgICAgY2hpbGROb2Rlc0hUTUwgPSBjb250ZW50OyAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gY2hpbGROb2Rlc0hUTUw7XG4gIH1cblxuICBjcmVhdGVDaGlsZE5vZGVET01FbGVtZW50cyhjb250ZXh0KSB7XG4gICAgY29uc3QgaW5saW5lVGV4dCA9IHRoaXMuaW5saW5lVGV4dChjb250ZXh0KTtcblxuICAgIGxldCBjb250ZW50O1xuXG4gICAgaWYgKGlubGluZVRleHQgIT09IG51bGwpIHtcbiAgICAgIGNvbnRlbnQgPSBpbmxpbmVUZXh0OyAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29udGVudCA9IHRoaXMuY29udGVudChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNvbnRlbnQpLFxuICAgICAgICAgIGRvbUVsZW1lbnQgPSB0ZXh0Tm9kZTsgLy8vXG5cbiAgICB0aGlzLmFkZERPTUVsZW1lbnQoZG9tRWxlbWVudCk7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkocnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHkpIHsgcmV0dXJuIE1hcmtkb3duTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eShFbWFpbExpbmtNYXJrZG93bk5vZGUsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KTsgfVxufVxuXG5PYmplY3QuYXNzaWduKEVtYWlsTGlua01hcmtkb3duTm9kZS5wcm90b3R5cGUsIGNvbnRlbnRNaXhpbnMpO1xuXG5leHBvcnQgZGVmYXVsdCBFbWFpbExpbmtNYXJrZG93bk5vZGU7XG4iXSwibmFtZXMiOlsiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsInNlY29uZCIsInNlY29uZExhc3QiLCJFbWFpbExpbmtNYXJrZG93bk5vZGUiLCJsaW5lcyIsImNvbnRleHQiLCJpbmxpbmVUZXh0IiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJjaGlsZE5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwiaW5kZW50Iiwic2Vjb25kQ2hpbGROb2RlIiwiaW5saW5lVGV4dE1hcmtkb3duTm9kZSIsImlubGluZVRleHRNYXJrZG93bk5vZGVIVE1MIiwiYXNIVE1MIiwiZW1haWxBZGRyZXNzIiwiZW1haWxBZGRyZXNzVGVybWluYWxOb2RlIiwiZmlyc3RDaGlsZE5vZGUiLCJzZWNvbmRMYXN0Q2hpbGROb2RlIiwiZW1haWxBZGRyZXNzVGVybWluYWxOb2RlQ29udGVudCIsImdldENvbnRlbnQiLCJhdHRyaWJ1dGVOYW1lIiwiSFJFRl9BVFRSSUJVVEVfTkFNRSIsImF0dHJpYnV0ZVZhbHVlIiwiY2hpbGROb2Rlc0FzSFRNTCIsImNoaWxkTm9kZXNIVE1MIiwiY29udGVudCIsImNyZWF0ZUNoaWxkTm9kZURPTUVsZW1lbnRzIiwidGV4dE5vZGUiLCJkb2N1bWVudCIsImNyZWF0ZVRleHROb2RlIiwiZG9tRWxlbWVudCIsImFkZERPTUVsZW1lbnQiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eSIsInJ1bGVOYW1lIiwib3BhY2l0eSIsIk1hcmtkb3duTm9kZSIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSIsImNvbnRlbnRNaXhpbnMiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE2R0E7OztlQUFBOzs7eUJBM0crQjsrREFFTjs4REFDQzs4QkFFVTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVwQyxJQUFRQSxRQUE4QkMseUJBQWMsQ0FBNUNELE9BQU9FLFNBQXVCRCx5QkFBYyxDQUFyQ0MsUUFBUUMsYUFBZUYseUJBQWMsQ0FBN0JFO0FBRXZCLElBQUEsQUFBTUMsc0NBQUQsQUFBTDtjQUFNQTsrQkFBQUE7YUFBQUE7Z0NBQUFBOzs7a0JBQUFBOztZQUNKQyxLQUFBQTttQkFBQUEsU0FBQUEsTUFBTUMsT0FBTztnQkFDWCxJQUFNRCxRQUFRO2dCQUVkLE9BQU9BO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsV0FBV0QsT0FBTztnQkFDaEIsSUFBSUMsYUFBYTtnQkFFakIsSUFBTUMsYUFBYSxJQUFJLENBQUNDLGFBQWEsSUFDL0JDLG1CQUFtQkYsV0FBV0csTUFBTTtnQkFFMUMsSUFBSUQscUJBQXFCLEdBQUc7b0JBQzFCLElBQU1FLFNBQVMsTUFDVEMsa0JBQWtCWCxPQUFPTSxhQUN6Qk0seUJBQXlCRCxpQkFDekJFLDZCQUE2QkQsdUJBQXVCRSxNQUFNLENBQUNKLFFBQVFOO29CQUV6RUMsYUFBYVEsNEJBQTZCLEdBQUc7Z0JBQy9DO2dCQUVBLE9BQU9SO1lBQ1Q7OztZQUVBVSxLQUFBQTttQkFBQUEsU0FBQUEsYUFBYVgsT0FBTztnQkFDbEIsSUFBTUUsYUFBYSxJQUFJLENBQUNDLGFBQWEsSUFDL0JDLG1CQUFtQkYsV0FBV0csTUFBTTtnQkFFMUMsSUFBSU87Z0JBRUosSUFBSVIscUJBQXFCLEdBQUc7b0JBQzFCLElBQU1TLGlCQUFpQm5CLE1BQU1RO29CQUU3QlUsMkJBQTJCQyxnQkFBaUIsR0FBRztnQkFDakQsT0FBTztvQkFDTCxJQUFNQyxzQkFBc0JqQixXQUFXSztvQkFFdkNVLDJCQUEyQkUscUJBQXNCLEdBQUc7Z0JBQ3REO2dCQUVBLElBQU1DLGtDQUFrQ0gseUJBQXlCSSxVQUFVLElBQ3JFTCxlQUFlSSxpQ0FBaUMsR0FBRztnQkFFekQsT0FBT0o7WUFDVDs7O1lBRUFNLEtBQUFBO21CQUFBQSxTQUFBQSxjQUFjakIsT0FBTztnQkFDbkIsSUFBTWlCLGdCQUFnQkMsbUNBQW1CO2dCQUV6QyxPQUFPRDtZQUNUOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBLGVBQWVuQixPQUFPO2dCQUNwQixJQUFNVyxlQUFlLElBQUksQ0FBQ0EsWUFBWSxDQUFDWCxVQUNqQ21CLGlCQUFpQixBQUFDLFVBQXNCLE9BQWJSO2dCQUVqQyxPQUFPUTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLGlCQUFpQmQsTUFBTSxFQUFFTixPQUFPO2dCQUM5QixJQUFJcUI7Z0JBRUosSUFBTXBCLGFBQWEsSUFBSSxDQUFDQSxVQUFVLENBQUNEO2dCQUVuQyxJQUFJQyxlQUFlLE1BQU07b0JBQ3ZCb0IsaUJBQWlCcEIsWUFBYSxHQUFHO2dCQUNuQyxPQUFPO29CQUNMLElBQU1xQixVQUFVLElBQUksQ0FBQ0EsT0FBTyxDQUFDdEI7b0JBRTdCcUIsaUJBQWlCQyxTQUFTLEdBQUc7Z0JBQy9CO2dCQUVBLE9BQU9EO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsMkJBQTJCdkIsT0FBTztnQkFDaEMsSUFBTUMsYUFBYSxJQUFJLENBQUNBLFVBQVUsQ0FBQ0Q7Z0JBRW5DLElBQUlzQjtnQkFFSixJQUFJckIsZUFBZSxNQUFNO29CQUN2QnFCLFVBQVVyQixZQUFZLEdBQUc7Z0JBQzNCLE9BQU87b0JBQ0xxQixVQUFVLElBQUksQ0FBQ0EsT0FBTyxDQUFDdEI7Z0JBQ3pCO2dCQUVBLElBQU13QixXQUFXQyxTQUFTQyxjQUFjLENBQUNKLFVBQ25DSyxhQUFhSCxVQUFVLEdBQUc7Z0JBRWhDLElBQUksQ0FBQ0ksYUFBYSxDQUFDRDtZQUNyQjs7OztZQUVPRSxLQUFBQTttQkFBUCxTQUFPQSxpQ0FBaUNDLFFBQVEsRUFBRTVCLFVBQVUsRUFBRTZCLE9BQU87Z0JBQUksT0FBT0MsaUJBQVksQ0FBQ0gsZ0NBQWdDLENBN0Z6SC9CLHVCQTZGaUpnQyxVQUFVNUIsWUFBWTZCO1lBQVU7OztXQTdGakxqQztFQUE4QmtDLGlCQUFZO0FBZ0doREMsT0FBT0MsTUFBTSxDQUFDcEMsc0JBQXNCcUMsU0FBUyxFQUFFQyxnQkFBYTtJQUU1RCxXQUFldEMifQ==
@@ -108,6 +108,13 @@ var EndOfLineMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
108
108
  return _super.apply(this, arguments);
109
109
  }
110
110
  _create_class(EndOfLineMarkdownNode, [
111
+ {
112
+ key: "lines",
113
+ value: function lines(context) {
114
+ var lines = 0;
115
+ return lines;
116
+ }
117
+ },
111
118
  {
112
119
  key: "content",
113
120
  value: function content(context) {
@@ -141,4 +148,4 @@ var EndOfLineMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
141
148
  return EndOfLineMarkdownNode;
142
149
  }(_markdown.default);
143
150
 
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2VuZE9mTGluZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93blwiO1xuXG5pbXBvcnQgeyBDQVJSSUFHRV9SRVRVUk4gfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVuZE9mTGluZU1hcmtkb3duTm9kZSBleHRlbmRzIE1hcmtkb3duTm9kZSB7XG4gIGNvbnRlbnQoY29udGV4dCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBDQVJSSUFHRV9SRVRVUk47XG5cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGFzSFRNTChpbmRlbnQsIGNvbnRleHQpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5jb250ZW50KGNvbnRleHQpLFxuICAgICAgICAgIGh0bWwgPSBjb250ZW50OyAgLy8vXG5cbiAgICByZXR1cm4gaHRtbDtcbiAgfVxuXG4gIGNyZWF0ZURPTUVsZW1lbnQoY29udGV4dCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNvbnRlbnQoY29udGV4dCksXG4gICAgICAgICAgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb250ZW50KSxcbiAgICAgICAgICBkb21FbGVtZW50ID0gdGV4dE5vZGU7ICAvLy9cblxuICAgIHRoaXMuc2V0RE9NRWxlbWVudChkb21FbGVtZW50KTtcblxuICAgIHJldHVybiBkb21FbGVtZW50O1xuICB9XG5cbiAgc3RhdGljIGZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KSB7IHJldHVybiBNYXJrZG93bk5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkoRW5kT2ZMaW5lTWFya2Rvd25Ob2RlLCBydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSk7IH1cbn1cbiJdLCJuYW1lcyI6WyJFbmRPZkxpbmVNYXJrZG93bk5vZGUiLCJjb250ZW50IiwiY29udGV4dCIsIkNBUlJJQUdFX1JFVFVSTiIsImFzSFRNTCIsImluZGVudCIsImh0bWwiLCJjcmVhdGVET01FbGVtZW50IiwidGV4dE5vZGUiLCJkb2N1bWVudCIsImNyZWF0ZVRleHROb2RlIiwiZG9tRWxlbWVudCIsInNldERPTUVsZW1lbnQiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eSIsInJ1bGVOYW1lIiwiY2hpbGROb2RlcyIsIm9wYWNpdHkiLCJNYXJrZG93bk5vZGUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQU1xQkE7OzsrREFKSTt5QkFFTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVqQixJQUFBLEFBQU1BLHNDQUFELEFBQUw7Y0FBTUE7K0JBQUFBO2FBQUFBO2dDQUFBQTs7O2tCQUFBQTs7WUFDbkJDLEtBQUFBO21CQUFBQSxTQUFBQSxRQUFRQyxPQUFPO2dCQUNiLElBQU1ELFVBQVVFLDBCQUFlO2dCQUUvQixPQUFPRjtZQUNUOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLE9BQU9DLE1BQU0sRUFBRUgsT0FBTztnQkFDcEIsSUFBTUQsVUFBVSxJQUFJLENBQUNBLE9BQU8sQ0FBQ0MsVUFDdkJJLE9BQU9MLFNBQVUsR0FBRztnQkFFMUIsT0FBT0s7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxpQkFBaUJMLE9BQU87Z0JBQ3RCLElBQU1ELFVBQVUsSUFBSSxDQUFDQSxPQUFPLENBQUNDLFVBQ3ZCTSxXQUFXQyxTQUFTQyxjQUFjLENBQUNULFVBQ25DVSxhQUFhSCxVQUFXLEdBQUc7Z0JBRWpDLElBQUksQ0FBQ0ksYUFBYSxDQUFDRDtnQkFFbkIsT0FBT0E7WUFDVDs7OztZQUVPRSxLQUFBQTttQkFBUCxTQUFPQSxpQ0FBaUNDLFFBQVEsRUFBRUMsVUFBVSxFQUFFQyxPQUFPO2dCQUFJLE9BQU9DLGlCQUFZLENBQUNKLGdDQUFnQyxDQXhCMUdiLHVCQXdCa0ljLFVBQVVDLFlBQVlDO1lBQVU7OztXQXhCbEtoQjtFQUE4QmlCLGlCQUFZIn0=
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2VuZE9mTGluZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93blwiO1xuXG5pbXBvcnQgeyBDQVJSSUFHRV9SRVRVUk4gfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVuZE9mTGluZU1hcmtkb3duTm9kZSBleHRlbmRzIE1hcmtkb3duTm9kZSB7XG4gIGxpbmVzKGNvbnRleHQpIHtcbiAgICBjb25zdCBsaW5lcyA9IDA7XG5cbiAgICByZXR1cm4gbGluZXM7XG4gIH1cblxuICBjb250ZW50KGNvbnRleHQpIHtcbiAgICBjb25zdCBjb250ZW50ID0gQ0FSUklBR0VfUkVUVVJOO1xuXG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cblxuICBhc0hUTUwoaW5kZW50LCBjb250ZXh0KSB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuY29udGVudChjb250ZXh0KSxcbiAgICAgICAgICBodG1sID0gY29udGVudDsgIC8vL1xuXG4gICAgcmV0dXJuIGh0bWw7XG4gIH1cblxuICBjcmVhdGVET01FbGVtZW50KGNvbnRleHQpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5jb250ZW50KGNvbnRleHQpLFxuICAgICAgICAgIHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY29udGVudCksXG4gICAgICAgICAgZG9tRWxlbWVudCA9IHRleHROb2RlOyAgLy8vXG5cbiAgICB0aGlzLnNldERPTUVsZW1lbnQoZG9tRWxlbWVudCk7XG5cbiAgICByZXR1cm4gZG9tRWxlbWVudDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eShydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSkgeyByZXR1cm4gTWFya2Rvd25Ob2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KEVuZE9mTGluZU1hcmtkb3duTm9kZSwgcnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHkpOyB9XG59XG4iXSwibmFtZXMiOlsiRW5kT2ZMaW5lTWFya2Rvd25Ob2RlIiwibGluZXMiLCJjb250ZXh0IiwiY29udGVudCIsIkNBUlJJQUdFX1JFVFVSTiIsImFzSFRNTCIsImluZGVudCIsImh0bWwiLCJjcmVhdGVET01FbGVtZW50IiwidGV4dE5vZGUiLCJkb2N1bWVudCIsImNyZWF0ZVRleHROb2RlIiwiZG9tRWxlbWVudCIsInNldERPTUVsZW1lbnQiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eSIsInJ1bGVOYW1lIiwiY2hpbGROb2RlcyIsIm9wYWNpdHkiLCJNYXJrZG93bk5vZGUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFNcUJBOzs7K0RBSkk7eUJBRU87Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFakIsSUFBQSxBQUFNQSxzQ0FBRCxBQUFMO2NBQU1BOytCQUFBQTthQUFBQTtnQ0FBQUE7OztrQkFBQUE7O1lBQ25CQyxLQUFBQTttQkFBQUEsU0FBQUEsTUFBTUMsT0FBTztnQkFDWCxJQUFNRCxRQUFRO2dCQUVkLE9BQU9BO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsUUFBUUQsT0FBTztnQkFDYixJQUFNQyxVQUFVQywwQkFBZTtnQkFFL0IsT0FBT0Q7WUFDVDs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSxPQUFPQyxNQUFNLEVBQUVKLE9BQU87Z0JBQ3BCLElBQU1DLFVBQVUsSUFBSSxDQUFDQSxPQUFPLENBQUNELFVBQ3ZCSyxPQUFPSixTQUFVLEdBQUc7Z0JBRTFCLE9BQU9JO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsaUJBQWlCTixPQUFPO2dCQUN0QixJQUFNQyxVQUFVLElBQUksQ0FBQ0EsT0FBTyxDQUFDRCxVQUN2Qk8sV0FBV0MsU0FBU0MsY0FBYyxDQUFDUixVQUNuQ1MsYUFBYUgsVUFBVyxHQUFHO2dCQUVqQyxJQUFJLENBQUNJLGFBQWEsQ0FBQ0Q7Z0JBRW5CLE9BQU9BO1lBQ1Q7Ozs7WUFFT0UsS0FBQUE7bUJBQVAsU0FBT0EsaUNBQWlDQyxRQUFRLEVBQUVDLFVBQVUsRUFBRUMsT0FBTztnQkFBSSxPQUFPQyxpQkFBWSxDQUFDSixnQ0FBZ0MsQ0E5QjFHZCx1QkE4QmtJZSxVQUFVQyxZQUFZQztZQUFVOzs7V0E5QmxLakI7RUFBOEJrQixpQkFBWSJ9
@@ -120,8 +120,8 @@ var FootnoteItemMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
120
120
  }
121
121
  ], [
122
122
  {
123
- key: "fromFootnoteMarkdownNodeAndIdentifier",
124
- value: function fromFootnoteMarkdownNodeAndIdentifier(footnoteMarkdownNode, identifier) {
123
+ key: "fromFootnotesMarkdownNodeAndIdentifier",
124
+ value: function fromFootnotesMarkdownNodeAndIdentifier(footnoteMarkdownNode, identifier) {
125
125
  var anchorMarkdownNode = _anchor.default.fromIdentifier(identifier), footnoteMarkdownNodeChildNodes = footnoteMarkdownNode.getChildNodes(), secondFootnoteMarkdownNodeChildNode = second(footnoteMarkdownNodeChildNodes), paragraphMarkdownNode = secondFootnoteMarkdownNodeChildNode, ruleName = _ruleNames.FOOTNOTE_ITEM_RULE_NAME, childNodes = [
126
126
  anchorMarkdownNode,
127
127
  paragraphMarkdownNode
@@ -133,4 +133,4 @@ var FootnoteItemMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
133
133
  return FootnoteItemMarkdownNode;
134
134
  }(_markdown.default);
135
135
 
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2Zvb3Rub3RlSXRlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBNYXJrZG93bk5vZGUgZnJvbSBcIi4uLy4uL25vZGUvbWFya2Rvd25cIjtcbmltcG9ydCBBbmNob3JNYXJrZG93bk5vZGUgZnJvbSBcIi4uLy4uL25vZGUvbWFya2Rvd24vYW5jaG9yXCI7XG5cbmltcG9ydCB7IEZPT1ROT1RFX0lURU1fUlVMRV9OQU1FIH0gZnJvbSBcIi4uLy4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCB7IGZpcnN0LCBzZWNvbmQgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGb290bm90ZUl0ZW1NYXJrZG93bk5vZGUgZXh0ZW5kcyBNYXJrZG93bk5vZGUge1xuICBpZGVudGlmaWVyKGNvbnRleHQpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gdGhpcy5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgZmlyc3RDaGlsZE5vZGUgPSBmaXJzdChjaGlsZE5vZGVzKSxcbiAgICAgICAgICBhbmNob3JNYXJrZG93bk5vZGUgPSBmaXJzdENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgIGlkZW50aWZpZXIgPSBhbmNob3JNYXJrZG93bk5vZGUuZ2V0SWRlbnRpZmllcigpO1xuXG4gICAgcmV0dXJuIGlkZW50aWZpZXI7XG4gIH1cblxuICBzdGF0aWMgZnJvbUZvb3Rub3RlTWFya2Rvd25Ob2RlQW5kSWRlbnRpZmllcihmb290bm90ZU1hcmtkb3duTm9kZSwgaWRlbnRpZmllcikge1xuICAgIGNvbnN0IGFuY2hvck1hcmtkb3duTm9kZSA9IEFuY2hvck1hcmtkb3duTm9kZS5mcm9tSWRlbnRpZmllcihpZGVudGlmaWVyKSxcbiAgICAgICAgICBmb290bm90ZU1hcmtkb3duTm9kZUNoaWxkTm9kZXMgPSBmb290bm90ZU1hcmtkb3duTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgc2Vjb25kRm9vdG5vdGVNYXJrZG93bk5vZGVDaGlsZE5vZGUgPSBzZWNvbmQoZm9vdG5vdGVNYXJrZG93bk5vZGVDaGlsZE5vZGVzKSxcbiAgICAgICAgICBwYXJhZ3JhcGhNYXJrZG93bk5vZGUgPSBzZWNvbmRGb290bm90ZU1hcmtkb3duTm9kZUNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgIHJ1bGVOYW1lID0gRk9PVE5PVEVfSVRFTV9SVUxFX05BTUUsXG4gICAgICAgICAgY2hpbGROb2RlcyA9IFtcbiAgICAgICAgICAgIGFuY2hvck1hcmtkb3duTm9kZSxcbiAgICAgICAgICAgIHBhcmFncmFwaE1hcmtkb3duTm9kZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgb3BhY2l0eSA9IG51bGwsXG4gICAgICAgICAgZm9vdG5vdGVJdGVtTWFya2Rvd25Ob2RlID0gTWFya2Rvd25Ob2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KEZvb3Rub3RlSXRlbU1hcmtkb3duTm9kZSwgcnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHkpO1xuXG4gICAgcmV0dXJuIGZvb3Rub3RlSXRlbU1hcmtkb3duTm9kZTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkZvb3Rub3RlSXRlbU1hcmtkb3duTm9kZSIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJzZWNvbmQiLCJpZGVudGlmaWVyIiwiY29udGV4dCIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiZmlyc3RDaGlsZE5vZGUiLCJhbmNob3JNYXJrZG93bk5vZGUiLCJnZXRJZGVudGlmaWVyIiwiZnJvbUZvb3Rub3RlTWFya2Rvd25Ob2RlQW5kSWRlbnRpZmllciIsImZvb3Rub3RlTWFya2Rvd25Ob2RlIiwiQW5jaG9yTWFya2Rvd25Ob2RlIiwiZnJvbUlkZW50aWZpZXIiLCJmb290bm90ZU1hcmtkb3duTm9kZUNoaWxkTm9kZXMiLCJzZWNvbmRGb290bm90ZU1hcmtkb3duTm9kZUNoaWxkTm9kZSIsInBhcmFncmFwaE1hcmtkb3duTm9kZSIsInJ1bGVOYW1lIiwiRk9PVE5PVEVfSVRFTV9SVUxFX05BTUUiLCJvcGFjaXR5IiwiZm9vdG5vdGVJdGVtTWFya2Rvd25Ob2RlIiwiTWFya2Rvd25Ob2RlIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFXcUJBOzs7eUJBVFU7K0RBRU47NkRBQ007eUJBRVM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFeEMsSUFBUUMsUUFBa0JDLHlCQUFjLENBQWhDRCxPQUFPRSxTQUFXRCx5QkFBYyxDQUF6QkM7QUFFQSxJQUFBLEFBQU1ILHlDQUFELEFBQUw7Y0FBTUE7K0JBQUFBO2FBQUFBO2dDQUFBQTs7O2tCQUFBQTs7WUFDbkJJLEtBQUFBO21CQUFBQSxTQUFBQSxXQUFXQyxPQUFPO2dCQUNoQixJQUFNQyxhQUFhLElBQUksQ0FBQ0MsYUFBYSxJQUMvQkMsaUJBQWlCUCxNQUFNSyxhQUN2QkcscUJBQXFCRCxnQkFDckJKLGFBQWFLLG1CQUFtQkMsYUFBYTtnQkFFbkQsT0FBT047WUFDVDs7OztZQUVPTyxLQUFBQTttQkFBUCxTQUFPQSxzQ0FBc0NDLG9CQUFvQixFQUFFUixVQUFVO2dCQUMzRSxJQUFNSyxxQkFBcUJJLGVBQWtCLENBQUNDLGNBQWMsQ0FBQ1YsYUFDdkRXLGlDQUFpQ0gscUJBQXFCTCxhQUFhLElBQ25FUyxzQ0FBc0NiLE9BQU9ZLGlDQUM3Q0Usd0JBQXdCRCxxQ0FDeEJFLFdBQVdDLGtDQUF1QixFQUNsQ2IsYUFBYTtvQkFDWEc7b0JBQ0FRO2lCQUNELEVBQ0RHLFVBQVUsTUFDVkMsMkJBQTJCQyxpQkFBWSxDQUFDQyxnQ0FBZ0MsQ0FyQjdEdkIsMEJBcUJ3RmtCLFVBQVVaLFlBQVljO2dCQUUvSCxPQUFPQztZQUNUOzs7V0F4Qm1CckI7RUFBaUNzQixpQkFBWSJ9
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2Zvb3Rub3RlSXRlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBNYXJrZG93bk5vZGUgZnJvbSBcIi4uLy4uL25vZGUvbWFya2Rvd25cIjtcbmltcG9ydCBBbmNob3JNYXJrZG93bk5vZGUgZnJvbSBcIi4uLy4uL25vZGUvbWFya2Rvd24vYW5jaG9yXCI7XG5cbmltcG9ydCB7IEZPT1ROT1RFX0lURU1fUlVMRV9OQU1FIH0gZnJvbSBcIi4uLy4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCB7IGZpcnN0LCBzZWNvbmQgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGb290bm90ZUl0ZW1NYXJrZG93bk5vZGUgZXh0ZW5kcyBNYXJrZG93bk5vZGUge1xuICBpZGVudGlmaWVyKGNvbnRleHQpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gdGhpcy5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgZmlyc3RDaGlsZE5vZGUgPSBmaXJzdChjaGlsZE5vZGVzKSxcbiAgICAgICAgICBhbmNob3JNYXJrZG93bk5vZGUgPSBmaXJzdENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgIGlkZW50aWZpZXIgPSBhbmNob3JNYXJrZG93bk5vZGUuZ2V0SWRlbnRpZmllcigpO1xuXG4gICAgcmV0dXJuIGlkZW50aWZpZXI7XG4gIH1cblxuICBzdGF0aWMgZnJvbUZvb3Rub3Rlc01hcmtkb3duTm9kZUFuZElkZW50aWZpZXIoZm9vdG5vdGVNYXJrZG93bk5vZGUsIGlkZW50aWZpZXIpIHtcbiAgICBjb25zdCBhbmNob3JNYXJrZG93bk5vZGUgPSBBbmNob3JNYXJrZG93bk5vZGUuZnJvbUlkZW50aWZpZXIoaWRlbnRpZmllciksXG4gICAgICAgICAgZm9vdG5vdGVNYXJrZG93bk5vZGVDaGlsZE5vZGVzID0gZm9vdG5vdGVNYXJrZG93bk5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIHNlY29uZEZvb3Rub3RlTWFya2Rvd25Ob2RlQ2hpbGROb2RlID0gc2Vjb25kKGZvb3Rub3RlTWFya2Rvd25Ob2RlQ2hpbGROb2RlcyksXG4gICAgICAgICAgcGFyYWdyYXBoTWFya2Rvd25Ob2RlID0gc2Vjb25kRm9vdG5vdGVNYXJrZG93bk5vZGVDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICBydWxlTmFtZSA9IEZPT1ROT1RFX0lURU1fUlVMRV9OQU1FLFxuICAgICAgICAgIGNoaWxkTm9kZXMgPSBbXG4gICAgICAgICAgICBhbmNob3JNYXJrZG93bk5vZGUsXG4gICAgICAgICAgICBwYXJhZ3JhcGhNYXJrZG93bk5vZGVcbiAgICAgICAgICBdLFxuICAgICAgICAgIG9wYWNpdHkgPSBudWxsLFxuICAgICAgICAgIGZvb3Rub3RlSXRlbU1hcmtkb3duTm9kZSA9IE1hcmtkb3duTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eShGb290bm90ZUl0ZW1NYXJrZG93bk5vZGUsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KTtcblxuICAgIHJldHVybiBmb290bm90ZUl0ZW1NYXJrZG93bk5vZGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJGb290bm90ZUl0ZW1NYXJrZG93bk5vZGUiLCJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwic2Vjb25kIiwiaWRlbnRpZmllciIsImNvbnRleHQiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsImZpcnN0Q2hpbGROb2RlIiwiYW5jaG9yTWFya2Rvd25Ob2RlIiwiZ2V0SWRlbnRpZmllciIsImZyb21Gb290bm90ZXNNYXJrZG93bk5vZGVBbmRJZGVudGlmaWVyIiwiZm9vdG5vdGVNYXJrZG93bk5vZGUiLCJBbmNob3JNYXJrZG93bk5vZGUiLCJmcm9tSWRlbnRpZmllciIsImZvb3Rub3RlTWFya2Rvd25Ob2RlQ2hpbGROb2RlcyIsInNlY29uZEZvb3Rub3RlTWFya2Rvd25Ob2RlQ2hpbGROb2RlIiwicGFyYWdyYXBoTWFya2Rvd25Ob2RlIiwicnVsZU5hbWUiLCJGT09UTk9URV9JVEVNX1JVTEVfTkFNRSIsIm9wYWNpdHkiLCJmb290bm90ZUl0ZW1NYXJrZG93bk5vZGUiLCJNYXJrZG93bk5vZGUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eSJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVdxQkE7Ozt5QkFUVTsrREFFTjs2REFDTTt5QkFFUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV4QyxJQUFRQyxRQUFrQkMseUJBQWMsQ0FBaENELE9BQU9FLFNBQVdELHlCQUFjLENBQXpCQztBQUVBLElBQUEsQUFBTUgseUNBQUQsQUFBTDtjQUFNQTsrQkFBQUE7YUFBQUE7Z0NBQUFBOzs7a0JBQUFBOztZQUNuQkksS0FBQUE7bUJBQUFBLFNBQUFBLFdBQVdDLE9BQU87Z0JBQ2hCLElBQU1DLGFBQWEsSUFBSSxDQUFDQyxhQUFhLElBQy9CQyxpQkFBaUJQLE1BQU1LLGFBQ3ZCRyxxQkFBcUJELGdCQUNyQkosYUFBYUssbUJBQW1CQyxhQUFhO2dCQUVuRCxPQUFPTjtZQUNUOzs7O1lBRU9PLEtBQUFBO21CQUFQLFNBQU9BLHVDQUF1Q0Msb0JBQW9CLEVBQUVSLFVBQVU7Z0JBQzVFLElBQU1LLHFCQUFxQkksZUFBa0IsQ0FBQ0MsY0FBYyxDQUFDVixhQUN2RFcsaUNBQWlDSCxxQkFBcUJMLGFBQWEsSUFDbkVTLHNDQUFzQ2IsT0FBT1ksaUNBQzdDRSx3QkFBd0JELHFDQUN4QkUsV0FBV0Msa0NBQXVCLEVBQ2xDYixhQUFhO29CQUNYRztvQkFDQVE7aUJBQ0QsRUFDREcsVUFBVSxNQUNWQywyQkFBMkJDLGlCQUFZLENBQUNDLGdDQUFnQyxDQXJCN0R2QiwwQkFxQndGa0IsVUFBVVosWUFBWWM7Z0JBRS9ILE9BQU9DO1lBQ1Q7OztXQXhCbUJyQjtFQUFpQ3NCLGlCQUFZIn0=