highmark-markdown 1.0.176 → 1.0.178

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/example.js +2834 -6275
  2. package/lib/example/importer.js +2 -2
  3. package/lib/example/view/div/preview.js +19 -19
  4. package/lib/example/view/textarea/plainText.js +3 -3
  5. package/lib/example/view/xmp.js +3 -3
  6. package/lib/example/view.js +7 -7
  7. package/lib/index.js +5 -1
  8. package/lib/map/className.js +4 -45
  9. package/lib/map/node/html.js +16 -9
  10. package/lib/map/node/markdown.js +13 -12
  11. package/lib/map/tagName.js +4 -45
  12. package/lib/markdown/bnf.js +2 -2
  13. package/lib/mixins/node.js +1 -11
  14. package/lib/node/html/{indexList.js → list/index.js} +2 -2
  15. package/lib/node/html/listing/inline.js +7 -1
  16. package/lib/node/html/topmost.js +21 -39
  17. package/lib/node/html.js +15 -1
  18. package/lib/node/markdown/directive/embee.js +28 -21
  19. package/lib/node/markdown/directive/include.js +28 -23
  20. package/lib/node/markdown/division.js +82 -249
  21. package/lib/node/markdown/{footnotesItem.js → item/footnotes.js} +5 -5
  22. package/lib/node/markdown/{contentsLink.js → link/contents.js} +3 -3
  23. package/lib/node/markdown/{emailLink.js → link/email.js} +3 -3
  24. package/lib/node/markdown/{footnoteLink.js → link/footnote.js} +3 -3
  25. package/lib/node/markdown/{indexLink.js → link/index.js} +2 -2
  26. package/lib/node/markdown/{contentsList.js → list/contents.js} +3 -3
  27. package/lib/node/markdown/{footnotesList.js → list/footnotes.js} +3 -3
  28. package/lib/node/markdown/{indexList.js → list/index.js} +3 -3
  29. package/lib/node/markdown/{blockListing.js → listng/block.js} +2 -2
  30. package/lib/node/markdown/{inlineListing.js → listng/inline.js} +21 -23
  31. package/lib/node/markdown/subDivision.js +144 -0
  32. package/lib/node/markdown/topmost.js +32 -65
  33. package/lib/queries.js +4 -3
  34. package/lib/ruleNames.js +16 -6
  35. package/lib/transform/{subDivision/contentsDirective.js → contentsDirective.js} +5 -6
  36. package/lib/transform/contentsLink.js +3 -3
  37. package/lib/transform/contentsList.js +7 -8
  38. package/lib/transform/footnote.js +2 -3
  39. package/lib/transform/{subDivision/footnote.js → footnoteIdentifier.js} +6 -7
  40. package/lib/transform/{subDivision/footnotesDirective.js → footnotesDirective.js} +5 -6
  41. package/lib/transform/footnotesItem.js +3 -3
  42. package/lib/transform/footnotesList.js +4 -5
  43. package/lib/transform/{subDivision/indexDirective.js → indexDirective.js} +5 -6
  44. package/lib/transform/indexList.js +3 -3
  45. package/lib/transform/markdown/directive/embed.js +134 -0
  46. package/lib/transform/markdown/directive/ignore.js +134 -0
  47. package/lib/transform/{embedDirective.js → markdown/directive/include.js} +20 -22
  48. package/lib/transform/markdown/subDivision.js +140 -0
  49. package/lib/transform/{subDivision/pageNumberDirective.js → pageNumberDirective.js} +5 -6
  50. package/lib/utilities/dom.js +62 -0
  51. package/lib/utilities/footnotes.js +4 -5
  52. package/lib/utilities/html.js +135 -51
  53. package/lib/utilities/index.js +5 -5
  54. package/lib/utilities/markdown.js +66 -22
  55. package/lib/utilities/query.js +17 -99
  56. package/package.json +4 -4
  57. package/src/example/importer.js +0 -1
  58. package/src/example/view/div/preview.js +16 -16
  59. package/src/example/view/textarea/plainText.js +2 -2
  60. package/src/example/view/xmp.js +3 -2
  61. package/src/example/view.js +9 -8
  62. package/src/index.js +1 -0
  63. package/src/map/className.js +3 -6
  64. package/src/map/node/html.js +18 -6
  65. package/src/map/node/markdown.js +15 -12
  66. package/src/map/tagName.js +3 -6
  67. package/src/markdown/bnf.js +33 -32
  68. package/src/mixins/node.js +0 -11
  69. package/src/node/html/{indexList.js → list/index.js} +1 -1
  70. package/src/node/html/listing/inline.js +2 -0
  71. package/src/node/html/topmost.js +16 -47
  72. package/src/node/html.js +12 -0
  73. package/src/node/markdown/directive/embee.js +37 -25
  74. package/src/node/markdown/directive/include.js +36 -27
  75. package/src/node/markdown/division.js +153 -136
  76. package/src/node/markdown/{footnotesItem.js → item/footnotes.js} +4 -4
  77. package/src/node/markdown/{contentsLink.js → link/contents.js} +2 -2
  78. package/src/node/markdown/{emailLink.js → link/email.js} +2 -2
  79. package/src/node/markdown/{footnoteLink.js → link/footnote.js} +2 -2
  80. package/src/node/markdown/{indexLink.js → link/index.js} +1 -1
  81. package/src/node/markdown/{contentsList.js → list/contents.js} +2 -2
  82. package/src/node/markdown/{footnotesList.js → list/footnotes.js} +2 -2
  83. package/src/node/markdown/{indexList.js → list/index.js} +2 -2
  84. package/src/node/markdown/{blockListing.js → listng/block.js} +1 -1
  85. package/src/node/markdown/listng/inline.js +28 -0
  86. package/src/node/markdown/subDivision.js +58 -0
  87. package/src/node/markdown/topmost.js +34 -64
  88. package/src/queries.js +5 -3
  89. package/src/ruleNames.js +6 -2
  90. package/src/transform/{subDivision/contentsDirective.js → contentsDirective.js} +1 -3
  91. package/src/transform/contentsLink.js +1 -1
  92. package/src/transform/contentsList.js +1 -2
  93. package/src/transform/footnote.js +0 -2
  94. package/src/transform/{subDivision/footnote.js → footnoteIdentifier.js} +1 -3
  95. package/src/transform/{subDivision/footnotesDirective.js → footnotesDirective.js} +1 -3
  96. package/src/transform/footnotesItem.js +1 -1
  97. package/src/transform/footnotesList.js +1 -3
  98. package/src/transform/{subDivision/indexDirective.js → indexDirective.js} +1 -3
  99. package/src/transform/indexList.js +1 -1
  100. package/src/transform/markdown/directive/embed.js +19 -0
  101. package/src/transform/markdown/directive/ignore.js +19 -0
  102. package/src/transform/markdown/directive/include.js +29 -0
  103. package/src/transform/markdown/subDivision.js +25 -0
  104. package/src/transform/{subDivision/pageNumberDirective.js → pageNumberDirective.js} +1 -3
  105. package/src/utilities/dom.js +58 -0
  106. package/src/utilities/footnotes.js +1 -3
  107. package/src/utilities/html.js +122 -52
  108. package/src/utilities/index.js +4 -4
  109. package/src/utilities/markdown.js +57 -17
  110. package/src/utilities/query.js +12 -94
  111. package/lib/transform/division.js +0 -193
  112. package/lib/transform/includeDirective.js +0 -158
  113. package/lib/transform/subDivision/embedDirectives.js +0 -147
  114. package/lib/transform/subDivision/includeDirectives.js +0 -142
  115. package/src/node/markdown/inlineListing.js +0 -28
  116. package/src/transform/division.js +0 -41
  117. package/src/transform/embedDirective.js +0 -34
  118. package/src/transform/includeDirective.js +0 -49
  119. package/src/transform/subDivision/embedDirectives.js +0 -52
  120. package/src/transform/subDivision/includeDirectives.js +0 -48
@@ -19,22 +19,21 @@ _export(exports, {
19
19
  return renumberFootnoteLinkMarkdownNodes;
20
20
  }
21
21
  });
22
- var _footnotesList = /*#__PURE__*/ _interop_require_default(require("../node/markdown/footnotesList"));
23
- var _query = require("../utilities/query");
22
+ var _footnotes = /*#__PURE__*/ _interop_require_default(require("../node/markdown/list/footnotes"));
24
23
  function _interop_require_default(obj) {
25
24
  return obj && obj.__esModule ? obj : {
26
25
  default: obj
27
26
  };
28
27
  }
29
28
  function renumberFootnoteLinkMarkdownNodes(divisionMarkdownNode, footnoteReplacementMap, context) {
30
- var node = divisionMarkdownNode, footnoteLinkMarkdownNodes = (0, _query.footnoteLinkMarkdownNodesFromNode)(node);
29
+ var node = divisionMarkdownNode, footnoteLinkMarkdownNodes = footnoteLinkMarkdownNodesFromNode(node);
31
30
  footnoteLinkMarkdownNodes.forEach(function(footnoteLinkMarkdownNode) {
32
31
  var identifier = footnoteLinkMarkdownNode.identifier(context), footnoteReplacement = footnoteReplacementMap[identifier] || null, number = footnoteReplacement !== null ? footnoteReplacement.getNumber() : null;
33
32
  footnoteLinkMarkdownNode.renumber(number);
34
33
  });
35
34
  }
36
35
  function footnotesListMarkdownNodeFromFootnotesListDOMElement(footnotesListDOMElement) {
37
- var domElement = footnotesListDOMElement, footnotesListMarkdownNode = _footnotesList.default.fromDOMElement(domElement);
36
+ var domElement = footnotesListDOMElement, footnotesListMarkdownNode = _footnotes.default.fromDOMElement(domElement);
38
37
  return footnotesListMarkdownNode;
39
38
  }
40
39
  var _default = {
@@ -42,4 +41,4 @@ var _default = {
42
41
  footnotesListMarkdownNodeFromFootnotesListDOMElement: footnotesListMarkdownNodeFromFootnotesListDOMElement
43
42
  };
44
43
 
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZm9vdG5vdGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vbm9kZS9tYXJrZG93bi9mb290bm90ZXNMaXN0XCI7XG5cbmltcG9ydCB7IGZvb3Rub3RlTGlua01hcmtkb3duTm9kZXNGcm9tTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlbnVtYmVyRm9vdG5vdGVMaW5rTWFya2Rvd25Ob2RlcyhkaXZpc2lvbk1hcmtkb3duTm9kZSwgZm9vdG5vdGVSZXBsYWNlbWVudE1hcCwgY29udGV4dCkge1xuICBjb25zdCBub2RlID0gZGl2aXNpb25NYXJrZG93bk5vZGUsICAvLy9cbiAgICAgICAgZm9vdG5vdGVMaW5rTWFya2Rvd25Ob2RlcyA9IGZvb3Rub3RlTGlua01hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlKTtcblxuICBmb290bm90ZUxpbmtNYXJrZG93bk5vZGVzLmZvckVhY2goKGZvb3Rub3RlTGlua01hcmtkb3duTm9kZSkgPT4ge1xuICAgIGNvbnN0IGlkZW50aWZpZXIgPSBmb290bm90ZUxpbmtNYXJrZG93bk5vZGUuaWRlbnRpZmllcihjb250ZXh0KSxcbiAgICAgICAgICBmb290bm90ZVJlcGxhY2VtZW50ID0gZm9vdG5vdGVSZXBsYWNlbWVudE1hcFtpZGVudGlmaWVyXSB8fCBudWxsLFxuICAgICAgICAgIG51bWJlciA9IChmb290bm90ZVJlcGxhY2VtZW50ICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICBmb290bm90ZVJlcGxhY2VtZW50LmdldE51bWJlcigpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bGw7XG5cbiAgICBmb290bm90ZUxpbmtNYXJrZG93bk5vZGUucmVudW1iZXIobnVtYmVyKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlRnJvbUZvb3Rub3Rlc0xpc3RET01FbGVtZW50KGZvb3Rub3Rlc0xpc3RET01FbGVtZW50KSB7XG4gIGNvbnN0IGRvbUVsZW1lbnQgPSBmb290bm90ZXNMaXN0RE9NRWxlbWVudCwgLy8vXG4gICAgICAgIGZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUgPSBGb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlLmZyb21ET01FbGVtZW50KGRvbUVsZW1lbnQpO1xuXG4gIHJldHVybiBmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHJlbnVtYmVyRm9vdG5vdGVMaW5rTWFya2Rvd25Ob2RlcyxcbiAgZm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZUZyb21Gb290bm90ZXNMaXN0RE9NRWxlbWVudFxufTtcbiJdLCJuYW1lcyI6WyJmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlRnJvbUZvb3Rub3Rlc0xpc3RET01FbGVtZW50IiwicmVudW1iZXJGb290bm90ZUxpbmtNYXJrZG93bk5vZGVzIiwiZGl2aXNpb25NYXJrZG93bk5vZGUiLCJmb290bm90ZVJlcGxhY2VtZW50TWFwIiwiY29udGV4dCIsIm5vZGUiLCJmb290bm90ZUxpbmtNYXJrZG93bk5vZGVzIiwiZm9vdG5vdGVMaW5rTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlIiwiZm9yRWFjaCIsImZvb3Rub3RlTGlua01hcmtkb3duTm9kZSIsImlkZW50aWZpZXIiLCJmb290bm90ZVJlcGxhY2VtZW50IiwibnVtYmVyIiwiZ2V0TnVtYmVyIiwicmVudW1iZXIiLCJmb290bm90ZXNMaXN0RE9NRWxlbWVudCIsImRvbUVsZW1lbnQiLCJmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlIiwiRm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZSIsImZyb21ET01FbGVtZW50Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUE0QkEsT0FHRTtlQUhGOztJQVBnQkEsb0RBQW9EO2VBQXBEQTs7SUFmQUMsaUNBQWlDO2VBQWpDQTs7O29FQUpzQjtxQkFFWTs7Ozs7O0FBRTNDLFNBQVNBLGtDQUFrQ0Msb0JBQW9CLEVBQUVDLHNCQUFzQixFQUFFQyxPQUFPO0lBQ3JHLElBQU1DLE9BQU9ILHNCQUNQSSw0QkFBNEJDLElBQUFBLHdDQUFpQyxFQUFDRjtJQUVwRUMsMEJBQTBCRSxPQUFPLENBQUMsU0FBQ0M7UUFDakMsSUFBTUMsYUFBYUQseUJBQXlCQyxVQUFVLENBQUNOLFVBQ2pETyxzQkFBc0JSLHNCQUFzQixDQUFDTyxXQUFXLElBQUksTUFDNURFLFNBQVMsQUFBQ0Qsd0JBQXdCLE9BQ3ZCQSxvQkFBb0JFLFNBQVMsS0FDMUI7UUFFcEJKLHlCQUF5QkssUUFBUSxDQUFDRjtJQUNwQztBQUNGO0FBRU8sU0FBU1oscURBQXFEZSx1QkFBdUI7SUFDMUYsSUFBTUMsYUFBYUQseUJBQ2JFLDRCQUE0QkMsc0JBQXlCLENBQUNDLGNBQWMsQ0FBQ0g7SUFFM0UsT0FBT0M7QUFDVDtJQUVBLFdBQWU7SUFDYmhCLG1DQUFBQTtJQUNBRCxzREFBQUE7QUFDRiJ9
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZm9vdG5vdGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vbm9kZS9tYXJrZG93bi9saXN0L2Zvb3Rub3Rlc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVudW1iZXJGb290bm90ZUxpbmtNYXJrZG93bk5vZGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBmb290bm90ZVJlcGxhY2VtZW50TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IG5vZGUgPSBkaXZpc2lvbk1hcmtkb3duTm9kZSwgIC8vL1xuICAgICAgICBmb290bm90ZUxpbmtNYXJrZG93bk5vZGVzID0gZm9vdG5vdGVMaW5rTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUpO1xuXG4gIGZvb3Rub3RlTGlua01hcmtkb3duTm9kZXMuZm9yRWFjaCgoZm9vdG5vdGVMaW5rTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgY29uc3QgaWRlbnRpZmllciA9IGZvb3Rub3RlTGlua01hcmtkb3duTm9kZS5pZGVudGlmaWVyKGNvbnRleHQpLFxuICAgICAgICAgIGZvb3Rub3RlUmVwbGFjZW1lbnQgPSBmb290bm90ZVJlcGxhY2VtZW50TWFwW2lkZW50aWZpZXJdIHx8IG51bGwsXG4gICAgICAgICAgbnVtYmVyID0gKGZvb3Rub3RlUmVwbGFjZW1lbnQgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgIGZvb3Rub3RlUmVwbGFjZW1lbnQuZ2V0TnVtYmVyKCkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcblxuICAgIGZvb3Rub3RlTGlua01hcmtkb3duTm9kZS5yZW51bWJlcihudW1iZXIpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGVGcm9tRm9vdG5vdGVzTGlzdERPTUVsZW1lbnQoZm9vdG5vdGVzTGlzdERPTUVsZW1lbnQpIHtcbiAgY29uc3QgZG9tRWxlbWVudCA9IGZvb3Rub3Rlc0xpc3RET01FbGVtZW50LCAvLy9cbiAgICAgICAgZm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZSA9IEZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUuZnJvbURPTUVsZW1lbnQoZG9tRWxlbWVudCk7XG5cbiAgcmV0dXJuIGZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcmVudW1iZXJGb290bm90ZUxpbmtNYXJrZG93bk5vZGVzLFxuICBmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlRnJvbUZvb3Rub3Rlc0xpc3RET01FbGVtZW50XG59O1xuIl0sIm5hbWVzIjpbImZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGVGcm9tRm9vdG5vdGVzTGlzdERPTUVsZW1lbnQiLCJyZW51bWJlckZvb3Rub3RlTGlua01hcmtkb3duTm9kZXMiLCJkaXZpc2lvbk1hcmtkb3duTm9kZSIsImZvb3Rub3RlUmVwbGFjZW1lbnRNYXAiLCJjb250ZXh0Iiwibm9kZSIsImZvb3Rub3RlTGlua01hcmtkb3duTm9kZXMiLCJmb290bm90ZUxpbmtNYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJmb3JFYWNoIiwiZm9vdG5vdGVMaW5rTWFya2Rvd25Ob2RlIiwiaWRlbnRpZmllciIsImZvb3Rub3RlUmVwbGFjZW1lbnQiLCJudW1iZXIiLCJnZXROdW1iZXIiLCJyZW51bWJlciIsImZvb3Rub3Rlc0xpc3RET01FbGVtZW50IiwiZG9tRWxlbWVudCIsImZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUiLCJGb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlIiwiZnJvbURPTUVsZW1lbnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQTBCQSxPQUdFO2VBSEY7O0lBUGdCQSxvREFBb0Q7ZUFBcERBOztJQWZBQyxpQ0FBaUM7ZUFBakNBOzs7Z0VBRnNCOzs7Ozs7QUFFL0IsU0FBU0Esa0NBQWtDQyxvQkFBb0IsRUFBRUMsc0JBQXNCLEVBQUVDLE9BQU87SUFDckcsSUFBTUMsT0FBT0gsc0JBQ1BJLDRCQUE0QkMsa0NBQWtDRjtJQUVwRUMsMEJBQTBCRSxPQUFPLENBQUMsU0FBQ0M7UUFDakMsSUFBTUMsYUFBYUQseUJBQXlCQyxVQUFVLENBQUNOLFVBQ2pETyxzQkFBc0JSLHNCQUFzQixDQUFDTyxXQUFXLElBQUksTUFDNURFLFNBQVMsQUFBQ0Qsd0JBQXdCLE9BQ3ZCQSxvQkFBb0JFLFNBQVMsS0FDMUI7UUFFcEJKLHlCQUF5QkssUUFBUSxDQUFDRjtJQUNwQztBQUNGO0FBRU8sU0FBU1oscURBQXFEZSx1QkFBdUI7SUFDMUYsSUFBTUMsYUFBYUQseUJBQ2JFLDRCQUE0QkMsa0JBQXlCLENBQUNDLGNBQWMsQ0FBQ0g7SUFFM0UsT0FBT0M7QUFDVDtJQUVBLFdBQWU7SUFDYmhCLG1DQUFBQTtJQUNBRCxzREFBQUE7QUFDRiJ9
@@ -9,67 +9,151 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
+ contentsDirectiveHTMLNodeFromNode: function() {
13
+ return contentsDirectiveHTMLNodeFromNode;
14
+ },
12
15
  default: function() {
13
- return _default;
16
+ return _default // export function postProcess(divisionHTMLNodes, context) {
17
+ // const footnoteReplacementMap = prepareFootnotes(divisionHTMLNodes, context),
18
+ // markdownNodes = paginate(divisionHTMLNodes, context);
19
+ //
20
+ // divisionHTMLNodes = divisionHTMLNodesFromHTMLNodes(markdownNodes); ///
21
+ //
22
+ // createFootnotes(divisionHTMLNodes, footnoteReplacementMap, context);
23
+ //
24
+ // createContents(divisionHTMLNodes, context);
25
+ //
26
+ // createIndex(divisionHTMLNodes, context);
27
+ // }
28
+ //
29
+ // function paginate(divisionHTMLNodes, context) {
30
+ // const pageNumber = 1,
31
+ // markdownNOdes = [];
32
+ //
33
+ // Object.assign(context, {
34
+ // pageNumber
35
+ // });
36
+ //
37
+ // divisionHTMLNodes.forEach((divisionHTMLNode) => {
38
+ // divisionHTMLNode.paginate(markdownNOdes, context);
39
+ // });
40
+ //
41
+ // delete context.pageNumber;
42
+ //
43
+ // return markdownNOdes;
44
+ // }
45
+ //
46
+ // function createIndex(divisionHTMLNodes, context) {
47
+ // divisionHTMLNodes.some((divisionHTMLNode) => {
48
+ // const indexCreated = divisionHTMLNode.createIndex(divisionHTMLNodes, context);
49
+ //
50
+ // if (indexCreated) {
51
+ // return true;
52
+ // }
53
+ // });
54
+ // }
55
+ //
56
+ // function createContents(divisionHTMLNodes, context) {
57
+ // divisionHTMLNodes.some((divisionHTMLNode) => {
58
+ // const contentsCreated = divisionHTMLNode.createContents(divisionHTMLNodes, context);
59
+ //
60
+ // if (contentsCreated) {
61
+ // return true;
62
+ // }
63
+ // });
64
+ // }
65
+ //
66
+ // function createFootnotes(divisionHTMLNodes, footnoteReplacementMap, context) {
67
+ // divisionHTMLNodes.forEach((divisionHTMLNode) => {
68
+ // divisionHTMLNode.createFootnotes(footnoteReplacementMap, context);
69
+ // });
70
+ // }
71
+ //
72
+ // function prepareFootnotes(divisionHTMLNodes, context) {
73
+ // const footnoteReplacementMap = {};
74
+ //
75
+ // divisionHTMLNodes.forEach((divisionHTMLNode) => {
76
+ // divisionHTMLNode.prepareFootnotes(footnoteReplacementMap, context);
77
+ // });
78
+ //
79
+ // return footnoteReplacementMap;
80
+ // }
81
+ //
82
+ // export default {
83
+ // postProcess
84
+ // }
85
+ ;
86
+ },
87
+ divisionHTMLNodesFromNode: function() {
88
+ return divisionHTMLNodesFromNode;
89
+ },
90
+ footnoteHTMLNodeFromNode: function() {
91
+ return footnoteHTMLNodeFromNode;
92
+ },
93
+ footnoteLinkHTMLNodesFromNode: function() {
94
+ return footnoteLinkHTMLNodesFromNode;
14
95
  },
15
- postProcess: function() {
16
- return postProcess;
96
+ footnotesDirectiveHTMLNodeFromNode: function() {
97
+ return footnotesDirectiveHTMLNodeFromNode;
98
+ },
99
+ footnotesHTMLNodesFromNode: function() {
100
+ return footnotesHTMLNodesFromNode;
101
+ },
102
+ headingHTMLNodesFromNode: function() {
103
+ return headingHTMLNodesFromNode;
104
+ },
105
+ pageNumberDirectiveHTMLNodeFromNode: function() {
106
+ return pageNumberDirectiveHTMLNodeFromNode;
17
107
  }
18
108
  });
19
- function postProcess(divisionMarkdownNodes, context) {
20
- debugger;
21
- // const footnoteReplacementMap = prepareFootnotes(divisionMarkdownNodes, context),
22
- // markdownNodes = paginate(divisionMarkdownNodes, context);
23
- //
24
- // divisionMarkdownNodes = divisionMarkdownNodesFromMarkdownNodes(markdownNodes); ///
25
- //
26
- // createFootnotes(divisionMarkdownNodes, footnoteReplacementMap, context);
27
- //
28
- // createContents(divisionMarkdownNodes, context);
29
- //
30
- // createIndex(divisionMarkdownNodes, context);
109
+ var _occamquery = require("occam-query");
110
+ var _query = require("../utilities/query");
111
+ var footnoteHTMLNodeQuery = _occamquery.Query.fromExpressionString("/division/footnote"), ignoreDirectiveHTMLNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/ignoreDirective"), contentsDirectiveHTMLNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/contentsDirective"), footnotesDirectiveHTMLNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/footnotesDirective"), pageNumberDirectiveHTMLNodeQuery = _occamquery.Query.fromExpressionString("//directives/pageNumber"), headingHTMLNodesQuery = _occamquery.Query.fromExpressionString("/division/primaryHeading|secondaryHeading|tertiaryHeading|quaternaryHeading"), divisionHTMLNodesQuery = _occamquery.Query.fromExpressionString("/html/division"), footnotesHTMLNodesQuery = _occamquery.Query.fromExpressionString("//footnote|footnoteLink|footnotesDirective"), footnoteLinkHTMLNodesQuery = _occamquery.Query.fromExpressionString("//footnoteLink");
112
+ function footnoteHTMLNodeFromNode(node) {
113
+ var footnoteHTMLNode = (0, _query.nodeFromNodeAndQuery)(node, footnoteHTMLNodeQuery);
114
+ return footnoteHTMLNode;
31
115
  }
32
- function paginate(divisionMarkdownNodes, context) {
33
- var pageNumber = 1, markdownNOdes = [];
34
- Object.assign(context, {
35
- pageNumber: pageNumber
36
- });
37
- divisionMarkdownNodes.forEach(function(divisionMarkdownNode) {
38
- divisionMarkdownNode.paginate(markdownNOdes, context);
39
- });
40
- delete context.pageNumber;
41
- return markdownNOdes;
116
+ function contentsDirectiveHTMLNodeFromNode(node) {
117
+ var contentsDirectiveHTMLNode = (0, _query.nodeFromNodeAndQuery)(node, contentsDirectiveHTMLNodeQuery);
118
+ return contentsDirectiveHTMLNode;
42
119
  }
43
- function createIndex(divisionMarkdownNodes, context) {
44
- divisionMarkdownNodes.some(function(divisionMarkdownNode) {
45
- var indexCreated = divisionMarkdownNode.createIndex(divisionMarkdownNodes, context);
46
- if (indexCreated) {
47
- return true;
48
- }
49
- });
120
+ function footnotesDirectiveHTMLNodeFromNode(node) {
121
+ var footnotesDirectiveHTMLNode = (0, _query.nodeFromNodeAndQuery)(node, footnotesDirectiveHTMLNodeQuery);
122
+ return footnotesDirectiveHTMLNode;
50
123
  }
51
- function createContents(divisionMarkdownNodes, context) {
52
- divisionMarkdownNodes.some(function(divisionMarkdownNode) {
53
- var contentsCreated = divisionMarkdownNode.createContents(divisionMarkdownNodes, context);
54
- if (contentsCreated) {
55
- return true;
56
- }
57
- });
124
+ function pageNumberDirectiveHTMLNodeFromNode(node) {
125
+ var pageNumberDirectiveHTMLNode = (0, _query.nodeFromNodeAndQuery)(node, pageNumberDirectiveHTMLNodeQuery);
126
+ return pageNumberDirectiveHTMLNode;
58
127
  }
59
- function createFootnotes(divisionMarkdownNodes, footnoteReplacementMap, context) {
60
- divisionMarkdownNodes.forEach(function(divisionMarkdownNode) {
61
- divisionMarkdownNode.createFootnotes(footnoteReplacementMap, context);
62
- });
128
+ function headingHTMLNodesFromNode(node) {
129
+ var headingHTMLNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
130
+ (0, _query.nodesFromNodeAndQuery)(node, headingHTMLNodesQuery, headingHTMLNodes);
131
+ return headingHTMLNodes;
63
132
  }
64
- function prepareFootnotes(divisionMarkdownNodes, context) {
65
- var footnoteReplacementMap = {};
66
- divisionMarkdownNodes.forEach(function(divisionMarkdownNode) {
67
- divisionMarkdownNode.prepareFootnotes(footnoteReplacementMap, context);
68
- });
69
- return footnoteReplacementMap;
133
+ function divisionHTMLNodesFromNode(node) {
134
+ var divisionHTMLNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
135
+ (0, _query.nodesFromNodeAndQuery)(node, divisionHTMLNodesQuery, divisionHTMLNodes);
136
+ return divisionHTMLNodes;
137
+ }
138
+ function footnotesHTMLNodesFromNode(node) {
139
+ var footnotesHTMLNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
140
+ (0, _query.nodesFromNodeAndQuery)(node, footnotesHTMLNodesQuery, footnotesHTMLNodes);
141
+ return footnotesHTMLNodes;
142
+ }
143
+ function footnoteLinkHTMLNodesFromNode(node) {
144
+ var linkHTMLNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
145
+ (0, _query.nodesFromNodeAndQuery)(node, footnoteLinkHTMLNodesQuery, linkHTMLNodes);
146
+ return linkHTMLNodes;
70
147
  }
71
148
  var _default = {
72
- postProcess: postProcess
149
+ footnoteHTMLNodeFromNode: footnoteHTMLNodeFromNode,
150
+ contentsDirectiveHTMLNodeFromNode: contentsDirectiveHTMLNodeFromNode,
151
+ footnotesDirectiveHTMLNodeFromNode: footnotesDirectiveHTMLNodeFromNode,
152
+ pageNumberDirectiveHTMLNodeFromNode: pageNumberDirectiveHTMLNodeFromNode,
153
+ headingHTMLNodesFromNode: headingHTMLNodesFromNode,
154
+ divisionHTMLNodesFromNode: divisionHTMLNodesFromNode,
155
+ footnotesHTMLNodesFromNode: footnotesHTMLNodesFromNode,
156
+ footnoteLinkHTMLNodesFromNode: footnoteLinkHTMLNodesFromNode
73
157
  };
74
158
 
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaHRtbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBvc3RQcm9jZXNzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBkZWJ1Z2dlclxuXG5cbiAgLy8gY29uc3QgZm9vdG5vdGVSZXBsYWNlbWVudE1hcCA9IHByZXBhcmVGb290bm90ZXMoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KSxcbiAgLy8gICAgICAgbWFya2Rvd25Ob2RlcyA9IHBhZ2luYXRlKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCk7XG4gIC8vXG4gIC8vIGRpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IGRpdmlzaW9uTWFya2Rvd25Ob2Rlc0Zyb21NYXJrZG93bk5vZGVzKG1hcmtkb3duTm9kZXMpOyAgLy8vXG4gIC8vXG4gIC8vIGNyZWF0ZUZvb3Rub3RlcyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGZvb3Rub3RlUmVwbGFjZW1lbnRNYXAsIGNvbnRleHQpO1xuICAvL1xuICAvLyBjcmVhdGVDb250ZW50cyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuICAvL1xuICAvLyBjcmVhdGVJbmRleChkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xufVxuXG5mdW5jdGlvbiBwYWdpbmF0ZShkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgcGFnZU51bWJlciA9IDEsXG4gICAgICAgIG1hcmtkb3duTk9kZXMgPSBbXTtcblxuICBPYmplY3QuYXNzaWduKGNvbnRleHQsIHtcbiAgICBwYWdlTnVtYmVyXG4gIH0pO1xuXG4gIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChkaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgIGRpdmlzaW9uTWFya2Rvd25Ob2RlLnBhZ2luYXRlKG1hcmtkb3duTk9kZXMsIGNvbnRleHQpO1xuICB9KTtcblxuICBkZWxldGUgY29udGV4dC5wYWdlTnVtYmVyO1xuXG4gIHJldHVybiBtYXJrZG93bk5PZGVzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVJbmRleChkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpIHtcbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzLnNvbWUoKGRpdmlzaW9uTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgY29uc3QgaW5kZXhDcmVhdGVkID0gZGl2aXNpb25NYXJrZG93bk5vZGUuY3JlYXRlSW5kZXgoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KTtcblxuICAgIGlmIChpbmRleENyZWF0ZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnRlbnRzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuc29tZSgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICBjb25zdCBjb250ZW50c0NyZWF0ZWQgPSBkaXZpc2lvbk1hcmtkb3duTm9kZS5jcmVhdGVDb250ZW50cyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gICAgaWYgKGNvbnRlbnRzQ3JlYXRlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRm9vdG5vdGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgZm9vdG5vdGVSZXBsYWNlbWVudE1hcCwgY29udGV4dCkge1xuICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICBkaXZpc2lvbk1hcmtkb3duTm9kZS5jcmVhdGVGb290bm90ZXMoZm9vdG5vdGVSZXBsYWNlbWVudE1hcCwgY29udGV4dCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlRm9vdG5vdGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBjb25zdCBmb290bm90ZVJlcGxhY2VtZW50TWFwID0ge307XG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzLmZvckVhY2goKGRpdmlzaW9uTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgZGl2aXNpb25NYXJrZG93bk5vZGUucHJlcGFyZUZvb3Rub3Rlcyhmb290bm90ZVJlcGxhY2VtZW50TWFwLCBjb250ZXh0KTtcbiAgfSk7XG5cbiAgcmV0dXJuIGZvb3Rub3RlUmVwbGFjZW1lbnRNYXA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcG9zdFByb2Nlc3Ncbn0iXSwibmFtZXMiOlsicG9zdFByb2Nlc3MiLCJkaXZpc2lvbk1hcmtkb3duTm9kZXMiLCJjb250ZXh0IiwicGFnaW5hdGUiLCJwYWdlTnVtYmVyIiwibWFya2Rvd25OT2RlcyIsIk9iamVjdCIsImFzc2lnbiIsImZvckVhY2giLCJkaXZpc2lvbk1hcmtkb3duTm9kZSIsImNyZWF0ZUluZGV4Iiwic29tZSIsImluZGV4Q3JlYXRlZCIsImNyZWF0ZUNvbnRlbnRzIiwiY29udGVudHNDcmVhdGVkIiwiY3JlYXRlRm9vdG5vdGVzIiwiZm9vdG5vdGVSZXBsYWNlbWVudE1hcCIsInByZXBhcmVGb290bm90ZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXVFQSxPQUVDO2VBRkQ7O0lBckVnQkEsV0FBVztlQUFYQTs7O0FBQVQsU0FBU0EsWUFBWUMscUJBQXFCLEVBQUVDLE9BQU87SUFDeEQsUUFBUTtBQUdSLG1GQUFtRjtBQUNuRixrRUFBa0U7QUFDbEUsRUFBRTtBQUNGLHNGQUFzRjtBQUN0RixFQUFFO0FBQ0YsMkVBQTJFO0FBQzNFLEVBQUU7QUFDRixrREFBa0Q7QUFDbEQsRUFBRTtBQUNGLCtDQUErQztBQUNqRDtBQUVBLFNBQVNDLFNBQVNGLHFCQUFxQixFQUFFQyxPQUFPO0lBQzlDLElBQU1FLGFBQWEsR0FDYkMsZ0JBQWdCLEVBQUU7SUFFeEJDLE9BQU9DLE1BQU0sQ0FBQ0wsU0FBUztRQUNyQkUsWUFBQUE7SUFDRjtJQUVBSCxzQkFBc0JPLE9BQU8sQ0FBQyxTQUFDQztRQUM3QkEscUJBQXFCTixRQUFRLENBQUNFLGVBQWVIO0lBQy9DO0lBRUEsT0FBT0EsUUFBUUUsVUFBVTtJQUV6QixPQUFPQztBQUNUO0FBRUEsU0FBU0ssWUFBWVQscUJBQXFCLEVBQUVDLE9BQU87SUFDakRELHNCQUFzQlUsSUFBSSxDQUFDLFNBQUNGO1FBQzFCLElBQU1HLGVBQWVILHFCQUFxQkMsV0FBVyxDQUFDVCx1QkFBdUJDO1FBRTdFLElBQUlVLGNBQWM7WUFDaEIsT0FBTztRQUNUO0lBQ0Y7QUFDRjtBQUVBLFNBQVNDLGVBQWVaLHFCQUFxQixFQUFFQyxPQUFPO0lBQ3BERCxzQkFBc0JVLElBQUksQ0FBQyxTQUFDRjtRQUMxQixJQUFNSyxrQkFBa0JMLHFCQUFxQkksY0FBYyxDQUFDWix1QkFBdUJDO1FBRW5GLElBQUlZLGlCQUFpQjtZQUNuQixPQUFPO1FBQ1Q7SUFDRjtBQUNGO0FBRUEsU0FBU0MsZ0JBQWdCZCxxQkFBcUIsRUFBRWUsc0JBQXNCLEVBQUVkLE9BQU87SUFDN0VELHNCQUFzQk8sT0FBTyxDQUFDLFNBQUNDO1FBQzdCQSxxQkFBcUJNLGVBQWUsQ0FBQ0Msd0JBQXdCZDtJQUMvRDtBQUNGO0FBRUEsU0FBU2UsaUJBQWlCaEIscUJBQXFCLEVBQUVDLE9BQU87SUFDdEQsSUFBTWMseUJBQXlCLENBQUM7SUFFaENmLHNCQUFzQk8sT0FBTyxDQUFDLFNBQUNDO1FBQzdCQSxxQkFBcUJRLGdCQUFnQixDQUFDRCx3QkFBd0JkO0lBQ2hFO0lBRUEsT0FBT2M7QUFDVDtJQUVBLFdBQWU7SUFDYmhCLGFBQUFBO0FBQ0YifQ==
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaHRtbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgUXVlcnkgfSBmcm9tIFwib2NjYW0tcXVlcnlcIjtcblxuaW1wb3J0IHsgbm9kZUZyb21Ob2RlQW5kUXVlcnksIG5vZGVzRnJvbU5vZGVBbmRRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgZm9vdG5vdGVIVE1MTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoXCIvZGl2aXNpb24vZm9vdG5vdGVcIiksXG4gICAgICBpZ25vcmVEaXJlY3RpdmVIVE1MTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoXCIvZGl2aXNpb24vc3ViRGl2aXNpb24vZGlyZWN0aXZlcy9pZ25vcmVEaXJlY3RpdmVcIiksXG4gICAgICBjb250ZW50c0RpcmVjdGl2ZUhUTUxOb2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9kaXZpc2lvbi9zdWJEaXZpc2lvbi9kaXJlY3RpdmVzL2NvbnRlbnRzRGlyZWN0aXZlXCIpLFxuICAgICAgZm9vdG5vdGVzRGlyZWN0aXZlSFRNTE5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2RpdmlzaW9uL3N1YkRpdmlzaW9uL2RpcmVjdGl2ZXMvZm9vdG5vdGVzRGlyZWN0aXZlXCIpLFxuICAgICAgcGFnZU51bWJlckRpcmVjdGl2ZUhUTUxOb2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi8vZGlyZWN0aXZlcy9wYWdlTnVtYmVyXCIpLCAgLy8vXG4gICAgICBoZWFkaW5nSFRNTE5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9kaXZpc2lvbi9wcmltYXJ5SGVhZGluZ3xzZWNvbmRhcnlIZWFkaW5nfHRlcnRpYXJ5SGVhZGluZ3xxdWF0ZXJuYXJ5SGVhZGluZ1wiKSwgIC8vL1xuICAgICAgZGl2aXNpb25IVE1MTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2h0bWwvZGl2aXNpb25cIiksICAvLy9cbiAgICAgIGZvb3Rub3Rlc0hUTUxOb2Rlc1F1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoXCIvL2Zvb3Rub3RlfGZvb3Rub3RlTGlua3xmb290bm90ZXNEaXJlY3RpdmVcIiksIC8vL1xuICAgICAgZm9vdG5vdGVMaW5rSFRNTE5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi8vZm9vdG5vdGVMaW5rXCIpO1xuXG5leHBvcnQgZnVuY3Rpb24gZm9vdG5vdGVIVE1MTm9kZUZyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgZm9vdG5vdGVIVE1MTm9kZSA9IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGZvb3Rub3RlSFRNTE5vZGVRdWVyeSk7XG5cbiAgcmV0dXJuIGZvb3Rub3RlSFRNTE5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250ZW50c0RpcmVjdGl2ZUhUTUxOb2RlRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBjb250ZW50c0RpcmVjdGl2ZUhUTUxOb2RlID0gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgY29udGVudHNEaXJlY3RpdmVIVE1MTm9kZVF1ZXJ5KTtcblxuICByZXR1cm4gY29udGVudHNEaXJlY3RpdmVIVE1MTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvb3Rub3Rlc0RpcmVjdGl2ZUhUTUxOb2RlRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBmb290bm90ZXNEaXJlY3RpdmVIVE1MTm9kZSA9IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGZvb3Rub3Rlc0RpcmVjdGl2ZUhUTUxOb2RlUXVlcnkpO1xuXG4gIHJldHVybiBmb290bm90ZXNEaXJlY3RpdmVIVE1MTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhZ2VOdW1iZXJEaXJlY3RpdmVIVE1MTm9kZUZyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgcGFnZU51bWJlckRpcmVjdGl2ZUhUTUxOb2RlID0gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgcGFnZU51bWJlckRpcmVjdGl2ZUhUTUxOb2RlUXVlcnkpO1xuXG4gIHJldHVybiBwYWdlTnVtYmVyRGlyZWN0aXZlSFRNTE5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoZWFkaW5nSFRNTE5vZGVzRnJvbU5vZGUobm9kZSwgaGVhZGluZ0hUTUxOb2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBoZWFkaW5nSFRNTE5vZGVzUXVlcnksIGhlYWRpbmdIVE1MTm9kZXMpO1xuXG4gIHJldHVybiBoZWFkaW5nSFRNTE5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGl2aXNpb25IVE1MTm9kZXNGcm9tTm9kZShub2RlLCBkaXZpc2lvbkhUTUxOb2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBkaXZpc2lvbkhUTUxOb2Rlc1F1ZXJ5LCBkaXZpc2lvbkhUTUxOb2Rlcyk7XG5cbiAgcmV0dXJuIGRpdmlzaW9uSFRNTE5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9vdG5vdGVzSFRNTE5vZGVzRnJvbU5vZGUobm9kZSwgZm9vdG5vdGVzSFRNTE5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGZvb3Rub3Rlc0hUTUxOb2Rlc1F1ZXJ5LCBmb290bm90ZXNIVE1MTm9kZXMpO1xuXG4gIHJldHVybiBmb290bm90ZXNIVE1MTm9kZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb290bm90ZUxpbmtIVE1MTm9kZXNGcm9tTm9kZShub2RlLCBsaW5rSFRNTE5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGZvb3Rub3RlTGlua0hUTUxOb2Rlc1F1ZXJ5LCBsaW5rSFRNTE5vZGVzKTtcblxuICByZXR1cm4gbGlua0hUTUxOb2Rlcztcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBmb290bm90ZUhUTUxOb2RlRnJvbU5vZGUsXG4gIGNvbnRlbnRzRGlyZWN0aXZlSFRNTE5vZGVGcm9tTm9kZSxcbiAgZm9vdG5vdGVzRGlyZWN0aXZlSFRNTE5vZGVGcm9tTm9kZSxcbiAgcGFnZU51bWJlckRpcmVjdGl2ZUhUTUxOb2RlRnJvbU5vZGUsXG4gIGhlYWRpbmdIVE1MTm9kZXNGcm9tTm9kZSxcbiAgZGl2aXNpb25IVE1MTm9kZXNGcm9tTm9kZSxcbiAgZm9vdG5vdGVzSFRNTE5vZGVzRnJvbU5vZGUsXG4gIGZvb3Rub3RlTGlua0hUTUxOb2Rlc0Zyb21Ob2RlXG59O1xuXG4vLyBleHBvcnQgZnVuY3Rpb24gcG9zdFByb2Nlc3MoZGl2aXNpb25IVE1MTm9kZXMsIGNvbnRleHQpIHtcbi8vICAgY29uc3QgZm9vdG5vdGVSZXBsYWNlbWVudE1hcCA9IHByZXBhcmVGb290bm90ZXMoZGl2aXNpb25IVE1MTm9kZXMsIGNvbnRleHQpLFxuLy8gICAgICAgICBtYXJrZG93bk5vZGVzID0gcGFnaW5hdGUoZGl2aXNpb25IVE1MTm9kZXMsIGNvbnRleHQpO1xuLy9cbi8vICAgZGl2aXNpb25IVE1MTm9kZXMgPSBkaXZpc2lvbkhUTUxOb2Rlc0Zyb21IVE1MTm9kZXMobWFya2Rvd25Ob2Rlcyk7ICAvLy9cbi8vXG4vLyAgIGNyZWF0ZUZvb3Rub3RlcyhkaXZpc2lvbkhUTUxOb2RlcywgZm9vdG5vdGVSZXBsYWNlbWVudE1hcCwgY29udGV4dCk7XG4vL1xuLy8gICBjcmVhdGVDb250ZW50cyhkaXZpc2lvbkhUTUxOb2RlcywgY29udGV4dCk7XG4vL1xuLy8gICBjcmVhdGVJbmRleChkaXZpc2lvbkhUTUxOb2RlcywgY29udGV4dCk7XG4vLyB9XG4vL1xuLy8gZnVuY3Rpb24gcGFnaW5hdGUoZGl2aXNpb25IVE1MTm9kZXMsIGNvbnRleHQpIHtcbi8vICAgY29uc3QgcGFnZU51bWJlciA9IDEsXG4vLyAgICAgICAgIG1hcmtkb3duTk9kZXMgPSBbXTtcbi8vXG4vLyAgIE9iamVjdC5hc3NpZ24oY29udGV4dCwge1xuLy8gICAgIHBhZ2VOdW1iZXJcbi8vICAgfSk7XG4vL1xuLy8gICBkaXZpc2lvbkhUTUxOb2Rlcy5mb3JFYWNoKChkaXZpc2lvbkhUTUxOb2RlKSA9PiB7XG4vLyAgICAgZGl2aXNpb25IVE1MTm9kZS5wYWdpbmF0ZShtYXJrZG93bk5PZGVzLCBjb250ZXh0KTtcbi8vICAgfSk7XG4vL1xuLy8gICBkZWxldGUgY29udGV4dC5wYWdlTnVtYmVyO1xuLy9cbi8vICAgcmV0dXJuIG1hcmtkb3duTk9kZXM7XG4vLyB9XG4vL1xuLy8gZnVuY3Rpb24gY3JlYXRlSW5kZXgoZGl2aXNpb25IVE1MTm9kZXMsIGNvbnRleHQpIHtcbi8vICAgZGl2aXNpb25IVE1MTm9kZXMuc29tZSgoZGl2aXNpb25IVE1MTm9kZSkgPT4ge1xuLy8gICAgIGNvbnN0IGluZGV4Q3JlYXRlZCA9IGRpdmlzaW9uSFRNTE5vZGUuY3JlYXRlSW5kZXgoZGl2aXNpb25IVE1MTm9kZXMsIGNvbnRleHQpO1xuLy9cbi8vICAgICBpZiAoaW5kZXhDcmVhdGVkKSB7XG4vLyAgICAgICByZXR1cm4gdHJ1ZTtcbi8vICAgICB9XG4vLyAgIH0pO1xuLy8gfVxuLy9cbi8vIGZ1bmN0aW9uIGNyZWF0ZUNvbnRlbnRzKGRpdmlzaW9uSFRNTE5vZGVzLCBjb250ZXh0KSB7XG4vLyAgIGRpdmlzaW9uSFRNTE5vZGVzLnNvbWUoKGRpdmlzaW9uSFRNTE5vZGUpID0+IHtcbi8vICAgICBjb25zdCBjb250ZW50c0NyZWF0ZWQgPSBkaXZpc2lvbkhUTUxOb2RlLmNyZWF0ZUNvbnRlbnRzKGRpdmlzaW9uSFRNTE5vZGVzLCBjb250ZXh0KTtcbi8vXG4vLyAgICAgaWYgKGNvbnRlbnRzQ3JlYXRlZCkge1xuLy8gICAgICAgcmV0dXJuIHRydWU7XG4vLyAgICAgfVxuLy8gICB9KTtcbi8vIH1cbi8vXG4vLyBmdW5jdGlvbiBjcmVhdGVGb290bm90ZXMoZGl2aXNpb25IVE1MTm9kZXMsIGZvb3Rub3RlUmVwbGFjZW1lbnRNYXAsIGNvbnRleHQpIHtcbi8vICAgZGl2aXNpb25IVE1MTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25IVE1MTm9kZSkgPT4ge1xuLy8gICAgIGRpdmlzaW9uSFRNTE5vZGUuY3JlYXRlRm9vdG5vdGVzKGZvb3Rub3RlUmVwbGFjZW1lbnRNYXAsIGNvbnRleHQpO1xuLy8gICB9KTtcbi8vIH1cbi8vXG4vLyBmdW5jdGlvbiBwcmVwYXJlRm9vdG5vdGVzKGRpdmlzaW9uSFRNTE5vZGVzLCBjb250ZXh0KSB7XG4vLyAgIGNvbnN0IGZvb3Rub3RlUmVwbGFjZW1lbnRNYXAgPSB7fTtcbi8vXG4vLyAgIGRpdmlzaW9uSFRNTE5vZGVzLmZvckVhY2goKGRpdmlzaW9uSFRNTE5vZGUpID0+IHtcbi8vICAgICBkaXZpc2lvbkhUTUxOb2RlLnByZXBhcmVGb290bm90ZXMoZm9vdG5vdGVSZXBsYWNlbWVudE1hcCwgY29udGV4dCk7XG4vLyAgIH0pO1xuLy9cbi8vICAgcmV0dXJuIGZvb3Rub3RlUmVwbGFjZW1lbnRNYXA7XG4vLyB9XG4vL1xuLy8gZXhwb3J0IGRlZmF1bHQge1xuLy8gICBwb3N0UHJvY2Vzc1xuLy8gfSJdLCJuYW1lcyI6WyJjb250ZW50c0RpcmVjdGl2ZUhUTUxOb2RlRnJvbU5vZGUiLCJkaXZpc2lvbkhUTUxOb2Rlc0Zyb21Ob2RlIiwiZm9vdG5vdGVIVE1MTm9kZUZyb21Ob2RlIiwiZm9vdG5vdGVMaW5rSFRNTE5vZGVzRnJvbU5vZGUiLCJmb290bm90ZXNEaXJlY3RpdmVIVE1MTm9kZUZyb21Ob2RlIiwiZm9vdG5vdGVzSFRNTE5vZGVzRnJvbU5vZGUiLCJoZWFkaW5nSFRNTE5vZGVzRnJvbU5vZGUiLCJwYWdlTnVtYmVyRGlyZWN0aXZlSFRNTE5vZGVGcm9tTm9kZSIsImZvb3Rub3RlSFRNTE5vZGVRdWVyeSIsIlF1ZXJ5IiwiZnJvbUV4cHJlc3Npb25TdHJpbmciLCJpZ25vcmVEaXJlY3RpdmVIVE1MTm9kZVF1ZXJ5IiwiY29udGVudHNEaXJlY3RpdmVIVE1MTm9kZVF1ZXJ5IiwiZm9vdG5vdGVzRGlyZWN0aXZlSFRNTE5vZGVRdWVyeSIsInBhZ2VOdW1iZXJEaXJlY3RpdmVIVE1MTm9kZVF1ZXJ5IiwiaGVhZGluZ0hUTUxOb2Rlc1F1ZXJ5IiwiZGl2aXNpb25IVE1MTm9kZXNRdWVyeSIsImZvb3Rub3Rlc0hUTUxOb2Rlc1F1ZXJ5IiwiZm9vdG5vdGVMaW5rSFRNTE5vZGVzUXVlcnkiLCJub2RlIiwiZm9vdG5vdGVIVE1MTm9kZSIsIm5vZGVGcm9tTm9kZUFuZFF1ZXJ5IiwiY29udGVudHNEaXJlY3RpdmVIVE1MTm9kZSIsImZvb3Rub3Rlc0RpcmVjdGl2ZUhUTUxOb2RlIiwicGFnZU51bWJlckRpcmVjdGl2ZUhUTUxOb2RlIiwiaGVhZGluZ0hUTUxOb2RlcyIsIm5vZGVzRnJvbU5vZGVBbmRRdWVyeSIsImRpdmlzaW9uSFRNTE5vZGVzIiwiZm9vdG5vdGVzSFRNTE5vZGVzIiwibGlua0hUTUxOb2RlcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBc0JnQkEsaUNBQWlDO2VBQWpDQTs7SUEwQ2hCLE9BU0U7ZUFURixTQVdBLDREQUE0RDtTQUM1RCxpRkFBaUY7U0FDakYsZ0VBQWdFO1NBQ2hFLEVBQUU7U0FDRiw0RUFBNEU7U0FDNUUsRUFBRTtTQUNGLHlFQUF5RTtTQUN6RSxFQUFFO1NBQ0YsZ0RBQWdEO1NBQ2hELEVBQUU7U0FDRiw2Q0FBNkM7U0FDN0MsSUFBSTtTQUNKLEVBQUU7U0FDRixrREFBa0Q7U0FDbEQsMEJBQTBCO1NBQzFCLDhCQUE4QjtTQUM5QixFQUFFO1NBQ0YsNkJBQTZCO1NBQzdCLGlCQUFpQjtTQUNqQixRQUFRO1NBQ1IsRUFBRTtTQUNGLHNEQUFzRDtTQUN0RCx5REFBeUQ7U0FDekQsUUFBUTtTQUNSLEVBQUU7U0FDRiwrQkFBK0I7U0FDL0IsRUFBRTtTQUNGLDBCQUEwQjtTQUMxQixJQUFJO1NBQ0osRUFBRTtTQUNGLHFEQUFxRDtTQUNyRCxtREFBbUQ7U0FDbkQscUZBQXFGO1NBQ3JGLEVBQUU7U0FDRiwwQkFBMEI7U0FDMUIscUJBQXFCO1NBQ3JCLFFBQVE7U0FDUixRQUFRO1NBQ1IsSUFBSTtTQUNKLEVBQUU7U0FDRix3REFBd0Q7U0FDeEQsbURBQW1EO1NBQ25ELDJGQUEyRjtTQUMzRixFQUFFO1NBQ0YsNkJBQTZCO1NBQzdCLHFCQUFxQjtTQUNyQixRQUFRO1NBQ1IsUUFBUTtTQUNSLElBQUk7U0FDSixFQUFFO1NBQ0YsaUZBQWlGO1NBQ2pGLHNEQUFzRDtTQUN0RCx5RUFBeUU7U0FDekUsUUFBUTtTQUNSLElBQUk7U0FDSixFQUFFO1NBQ0YsMERBQTBEO1NBQzFELHVDQUF1QztTQUN2QyxFQUFFO1NBQ0Ysc0RBQXNEO1NBQ3RELDBFQUEwRTtTQUMxRSxRQUFRO1NBQ1IsRUFBRTtTQUNGLG1DQUFtQztTQUNuQyxJQUFJO1NBQ0osRUFBRTtTQUNGLG1CQUFtQjtTQUNuQixnQkFBZ0I7U0FDaEIsSUFBSTs7O0lBakdZQyx5QkFBeUI7ZUFBekJBOztJQTlCQUMsd0JBQXdCO2VBQXhCQTs7SUEwQ0FDLDZCQUE2QjtlQUE3QkE7O0lBOUJBQyxrQ0FBa0M7ZUFBbENBOztJQXdCQUMsMEJBQTBCO2VBQTFCQTs7SUFaQUMsd0JBQXdCO2VBQXhCQTs7SUFOQUMsbUNBQW1DO2VBQW5DQTs7OzBCQWhDTTtxQkFFc0M7QUFFNUQsSUFBTUMsd0JBQXdCQyxpQkFBSyxDQUFDQyxvQkFBb0IsQ0FBQyx1QkFDbkRDLCtCQUErQkYsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUMscURBQzFERSxpQ0FBaUNILGlCQUFLLENBQUNDLG9CQUFvQixDQUFDLHVEQUM1REcsa0NBQWtDSixpQkFBSyxDQUFDQyxvQkFBb0IsQ0FBQyx3REFDN0RJLG1DQUFtQ0wsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUMsNEJBQzlESyx3QkFBd0JOLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDLGdGQUNuRE0seUJBQXlCUCxpQkFBSyxDQUFDQyxvQkFBb0IsQ0FBQyxtQkFDcERPLDBCQUEwQlIsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUMsK0NBQ3JEUSw2QkFBNkJULGlCQUFLLENBQUNDLG9CQUFvQixDQUFDO0FBRXZELFNBQVNSLHlCQUF5QmlCLElBQUk7SUFDM0MsSUFBTUMsbUJBQW1CQyxJQUFBQSwyQkFBb0IsRUFBQ0YsTUFBTVg7SUFFcEQsT0FBT1k7QUFDVDtBQUVPLFNBQVNwQixrQ0FBa0NtQixJQUFJO0lBQ3BELElBQU1HLDRCQUE0QkQsSUFBQUEsMkJBQW9CLEVBQUNGLE1BQU1QO0lBRTdELE9BQU9VO0FBQ1Q7QUFFTyxTQUFTbEIsbUNBQW1DZSxJQUFJO0lBQ3JELElBQU1JLDZCQUE2QkYsSUFBQUEsMkJBQW9CLEVBQUNGLE1BQU1OO0lBRTlELE9BQU9VO0FBQ1Q7QUFFTyxTQUFTaEIsb0NBQW9DWSxJQUFJO0lBQ3RELElBQU1LLDhCQUE4QkgsSUFBQUEsMkJBQW9CLEVBQUNGLE1BQU1MO0lBRS9ELE9BQU9VO0FBQ1Q7QUFFTyxTQUFTbEIseUJBQXlCYSxJQUFJO1FBQUVNLG1CQUFBQSxpRUFBbUIsRUFBRTtJQUNsRUMsSUFBQUEsNEJBQXFCLEVBQUNQLE1BQU1KLHVCQUF1QlU7SUFFbkQsT0FBT0E7QUFDVDtBQUVPLFNBQVN4QiwwQkFBMEJrQixJQUFJO1FBQUVRLG9CQUFBQSxpRUFBb0IsRUFBRTtJQUNwRUQsSUFBQUEsNEJBQXFCLEVBQUNQLE1BQU1ILHdCQUF3Qlc7SUFFcEQsT0FBT0E7QUFDVDtBQUVPLFNBQVN0QiwyQkFBMkJjLElBQUk7UUFBRVMscUJBQUFBLGlFQUFxQixFQUFFO0lBQ3RFRixJQUFBQSw0QkFBcUIsRUFBQ1AsTUFBTUYseUJBQXlCVztJQUVyRCxPQUFPQTtBQUNUO0FBRU8sU0FBU3pCLDhCQUE4QmdCLElBQUk7UUFBRVUsZ0JBQUFBLGlFQUFnQixFQUFFO0lBQ3BFSCxJQUFBQSw0QkFBcUIsRUFBQ1AsTUFBTUQsNEJBQTRCVztJQUV4RCxPQUFPQTtBQUNUO0lBRUEsV0FBZTtJQUNiM0IsMEJBQUFBO0lBQ0FGLG1DQUFBQTtJQUNBSSxvQ0FBQUE7SUFDQUcscUNBQUFBO0lBQ0FELDBCQUFBQTtJQUNBTCwyQkFBQUE7SUFDQUksNEJBQUFBO0lBQ0FGLCtCQUFBQTtBQUNGIn0=
@@ -115,8 +115,8 @@ function adjustProperNouns(indexMap, context) {
115
115
  return lowerCaseProperNoun;
116
116
  });
117
117
  (0, _object.mapKeys)(indexMap, function(wordOrPhrase) {
118
- var index = lowerCaseProperNouns.findIndex(function(lowerCaseProperNmae) {
119
- if (lowerCaseProperNmae === wordOrPhrase) {
118
+ var index = lowerCaseProperNouns.findIndex(function(lowerCaseProperName) {
119
+ if (lowerCaseProperName === wordOrPhrase) {
120
120
  return true;
121
121
  }
122
122
  });
@@ -141,8 +141,8 @@ function adjustAcronyms(indexMap, context) {
141
141
  return lowerCaseAcronym;
142
142
  });
143
143
  (0, _object.mapKeys)(indexMap, function(wordOrPhrase) {
144
- var index = lowerCaseAcronyms.findIndex(function(lowerCaseProperNmae) {
145
- if (lowerCaseProperNmae === wordOrPhrase) {
144
+ var index = lowerCaseAcronyms.findIndex(function(lowerCaseProperName) {
145
+ if (lowerCaseProperName === wordOrPhrase) {
146
146
  return true;
147
147
  }
148
148
  });
@@ -255,4 +255,4 @@ function pluralToSingular(text) {
255
255
  return text;
256
256
  }
257
257
 
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgSW5kZXhNYXRjaCBmcm9tIFwiLi4vaW5kZXgvbWF0Y2hcIjtcblxuaW1wb3J0IHsgZm9yRWFjaCwgbWFwS2V5cywgbWFwVmFsdWVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9vYmplY3RcIjtcbmltcG9ydCB7IFlfU1RSSU5HLCBTX1NUUklORywgSUVTX1NUUklORywgRU1QVFlfU1RSSU5HLCBTSU5HTEVfU1BBQ0UsIFBBUkVOVEhFU0lTRURfU19TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgY29tcHJlc3MgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5kZXhNYXBGcm9tRGl2aXNpb25NYXJrZG93bk5vZGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBjb25zdCBpbmRleE1hcCA9IGNyZWF0ZUluZGV4TWFwKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCk7XG5cbiAgcmVtb3ZlSWdub3JlZFdvcmRzKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBhZGp1c3RNaXhlZFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdFBsdXJhbFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdFNpbmd1bGFyUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCk7XG5cbiAgYWRqdXN0UHJvcGVyTm91bnMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdEFjcm9ueW1zKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBjb21wcmVzc1BhZ2VOdW1iZXJzKGluZGV4TWFwKTtcblxuICByZXR1cm4gaW5kZXhNYXA7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUluZGV4TWFwKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBjb25zdCBpbmRleE1hcCA9IHt9O1xuXG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IHBocmFzZXMgfSA9IGluZGV4T3B0aW9ucyxcbiAgICAgICAgaW5kZXhNYXRjaGVzID0gcGhyYXNlcy5tYXAoKHBocmFzZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGluZGV4TWF0Y2ggPSBJbmRleE1hdGNoLmZyb21QaHJhc2UocGhyYXNlKTtcblxuICAgICAgICAgIHJldHVybiBpbmRleE1hdGNoO1xuICAgICAgICB9KTtcblxuICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICBjb25zdCBwYWdlTnVtYmVyID0gZGl2aXNpb25NYXJrZG93bk5vZGUuZ2V0UGFnZU51bWJlcigpO1xuXG4gICAgaWYgKHBhZ2VOdW1iZXIgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHBsYWluVGV4dCA9IGRpdmlzaW9uTWFya2Rvd25Ob2RlLmFzUGxhaW5UZXh0KGNvbnRleHQpLFxuICAgICAgICAgICAgd29yZHNPclBocmFzZXMgPSB3b3Jkc09yUGhyYXNlc0Zyb21QbGFpblRleHRBbmRJbmRleE1hdGNoZXMocGxhaW5UZXh0LCBpbmRleE1hdGNoZXMpO1xuXG4gICAgICB3b3Jkc09yUGhyYXNlcy5mb3JFYWNoKCh3b3JkT3JQaHJhc2UpID0+IHtcbiAgICAgICAgY29uc3QgcGFnZU51bWJlcnMgPSBpbmRleE1hcC5oYXNPd25Qcm9wZXJ0eSh3b3JkT3JQaHJhc2UpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4TWFwW3dvcmRPclBocmFzZV0gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXTtcblxuICAgICAgICBpbmRleE1hcFt3b3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG5cbiAgICAgICAgcGFnZU51bWJlcnMucHVzaChwYWdlTnVtYmVyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGluZGV4TWFwO1xufVxuXG5mdW5jdGlvbiB3b3Jkc09yUGhyYXNlc0Zyb21QbGFpblRleHRBbmRJbmRleE1hdGNoZXMocGxhaW5UZXh0LCBpbmRleE1hdGNoZXMpIHtcbiAgbGV0IHdvcmRzT3JQaHJhc2VzO1xuXG4gIHBsYWluVGV4dCA9IHByZXBhcmVQbGFpblRleHQocGxhaW5UZXh0KTsgIC8vL1xuXG4gIGluZGV4TWF0Y2hlcy5mb3JFYWNoKChpbmRleE1hdGNoKSA9PiB7XG4gICAgcGxhaW5UZXh0ID0gaW5kZXhNYXRjaC5yZXBsYWNlKHBsYWluVGV4dCk7XG4gIH0pO1xuXG4gIHdvcmRzT3JQaHJhc2VzID0gcGxhaW5UZXh0LnNwbGl0KFNJTkdMRV9TUEFDRSk7XG5cbiAgd29yZHNPclBocmFzZXMgPSB3b3Jkc09yUGhyYXNlcy5tYXAoKHdvcmRPclBocmFzZSkgPT4ge1xuICAgIHdvcmRPclBocmFzZSA9IEluZGV4TWF0Y2gucmV2ZXJ0KHdvcmRPclBocmFzZSk7ICAvLy9cblxuICAgIHJldHVybiB3b3JkT3JQaHJhc2U7XG4gIH0pO1xuXG4gIHJldHVybiB3b3Jkc09yUGhyYXNlcztcbn1cblxuZnVuY3Rpb24gY29tcHJlc3NQYWdlTnVtYmVycyhpbmRleE1hcCkge1xuICBtYXBWYWx1ZXMoaW5kZXhNYXAsICh3b3JkT3JQaHJhc2UsIHBhZ2VOdW1iZXJzKSA9PiB7XG4gICAgY29tcHJlc3MocGFnZU51bWJlcnMsIChwYWdlTnVtYmVyQSwgcGFnZU51bWJlckIpID0+IHtcbiAgICAgIGlmIChwYWdlTnVtYmVyQSA9PT0gcGFnZU51bWJlckIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBwYWdlTnVtYmVycy5zb3J0KChwYWdlTnVtYmVyQiwgcGFnZU51bWJlckEpID0+IHtcbiAgICAgIHBhZ2VOdW1iZXJBID0gTnVtYmVyKHBhZ2VOdW1iZXJBKTsgIC8vL1xuXG4gICAgICBwYWdlTnVtYmVyQiA9IE51bWJlcihwYWdlTnVtYmVyQik7ICAvLy9cblxuICAgICAgY29uc3QgZGlmZmVyZW5jZSA9IHBhZ2VOdW1iZXJCIC0gcGFnZU51bWJlckE7XG5cbiAgICAgIHJldHVybiBkaWZmZXJlbmNlO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBhZ2VOdW1iZXJzO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlSWdub3JlZFdvcmRzKGluZGV4TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IGlnbm9yZWRXb3JkcyB9ID0gaW5kZXhPcHRpb25zO1xuXG4gIGlnbm9yZWRXb3Jkcy5mb3JFYWNoKChpZ25vcmVkV29yZCkgPT4ge1xuICAgIGRlbGV0ZSBpbmRleE1hcFtpZ25vcmVkV29yZF07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGp1c3RQcm9wZXJOb3VucyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IGluZGV4T3B0aW9ucyB9ID0gY29udGV4dCxcbiAgICAgICAgeyBwcm9wZXJOb3VucyB9ID0gaW5kZXhPcHRpb25zO1xuXG4gIGNvbnN0IGxvd2VyQ2FzZVByb3Blck5vdW5zID0gcHJvcGVyTm91bnMubWFwKChwcm9wZXJOb3VuKSA9PiB7XG4gICAgY29uc3QgbG93ZXJDYXNlUHJvcGVyTm91biA9IHByb3Blck5vdW4udG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiBsb3dlckNhc2VQcm9wZXJOb3VuO1xuICB9KTtcblxuICBtYXBLZXlzKGluZGV4TWFwLCAod29yZE9yUGhyYXNlKSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSBsb3dlckNhc2VQcm9wZXJOb3Vucy5maW5kSW5kZXgoKGxvd2VyQ2FzZVByb3Blck5tYWUpID0+IHtcbiAgICAgIGlmIChsb3dlckNhc2VQcm9wZXJObWFlID09PSB3b3JkT3JQaHJhc2UpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgY29uc3QgcHJvcGVyTm91biA9IHByb3Blck5vdW5zW2luZGV4XTtcblxuICAgICAgd29yZE9yUGhyYXNlID0gcHJvcGVyTm91bjsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiB3b3JkT3JQaHJhc2U7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlUGxhaW5UZXh0KHBsYWluVGV4dCkge1xuICBwbGFpblRleHQgPSBwbGFpblRleHQudG9Mb3dlckNhc2UoKTsgIC8vL1xuXG4gIHBsYWluVGV4dCA9IHBsYWluVGV4dC5yZXBsYWNlKC9bXmEtejAtOVxcLSBdL2csIFNJTkdMRV9TUEFDRSk7XG5cbiAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnJlcGxhY2UoL1xccysvZywgU0lOR0xFX1NQQUNFKTtcblxuICBwbGFpblRleHQgPSBwbGFpblRleHQucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gcGxhaW5UZXh0O1xufVxuXG5mdW5jdGlvbiBhZGp1c3RBY3JvbnltcyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IGluZGV4T3B0aW9ucyB9ID0gY29udGV4dCxcbiAgICAgICAgeyBhY3JvbnltcyB9ID0gaW5kZXhPcHRpb25zO1xuXG4gIGNvbnN0IGxvd2VyQ2FzZUFjcm9ueW1zID0gYWNyb255bXMubWFwKChhY3JvbnltKSA9PiB7XG4gICAgY29uc3QgbG93ZXJDYXNlQWNyb255bSA9IGFjcm9ueW0udG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiBsb3dlckNhc2VBY3JvbnltO1xuICB9KTtcblxuICBtYXBLZXlzKGluZGV4TWFwLCAod29yZE9yUGhyYXNlKSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSBsb3dlckNhc2VBY3Jvbnltcy5maW5kSW5kZXgoKGxvd2VyQ2FzZVByb3Blck5tYWUpID0+IHtcbiAgICAgIGlmIChsb3dlckNhc2VQcm9wZXJObWFlID09PSB3b3JkT3JQaHJhc2UpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgY29uc3QgYWNyb255bSA9IGFjcm9ueW1zW2luZGV4XTtcblxuICAgICAgd29yZE9yUGhyYXNlID0gYWNyb255bTsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiB3b3JkT3JQaHJhc2U7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGp1c3RNaXhlZFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBpbmRleE9wdGlvbnMgfSA9IGNvbnRleHQsXG4gICAgICAgIHsgcGx1cmFscyB9ID0gaW5kZXhPcHRpb25zLFxuICAgICAgICBtaXhlZFBsdXJhbHMgPSByZWR1Y2VQbHVyYWxzKHBsdXJhbHMsIGlzTWl4ZWQpLFxuICAgICAgICBwbHVyYWxQbHVyYWxzID0gbWFwUGx1cmFscyhtaXhlZFBsdXJhbHMsIG1peGVkVG9QbHVyYWwpLFxuICAgICAgICBzaW5ndWxhclBsdXJhbHMgPSBtYXBQbHVyYWxzKG1peGVkUGx1cmFscywgbWl4ZWRUb1Npbmd1bGFyKTtcblxuICBmb3JFYWNoKGluZGV4TWFwLCAod29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycykgPT4ge1xuICAgIGNvbnN0IHNpbmd1bGFyUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlID0gc2luZ3VsYXJQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAoc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UpIHtcbiAgICAgIGNvbnN0IHNpbmd1bGFyV29yZE9yUGhyYXNlID0gd29yZE9yUGhyYXNlLCAgLy8vXG4gICAgICAgICAgICBzaW5ndWxhclBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIG1peGVkV29yZE9yUGhyYXNlID0gc2luZ3VsYXJUb01peGVkKHNpbmd1bGFyV29yZE9yUGhyYXNlKSxcbiAgICAgICAgICAgIG1peGVkUGFnZU51bWJlcnMgPSBpbmRleE1hcFttaXhlZFdvcmRPclBocmFzZV0gfHwgW107XG5cbiAgICAgIHBhZ2VOdW1iZXJzID0gW1xuICAgICAgICAuLi5zaW5ndWxhclBhZ2VOdW1iZXJzLFxuICAgICAgICAuLi5taXhlZFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdO1xuXG4gICAgICBpbmRleE1hcFttaXhlZFdvcmRPclBocmFzZV0gPSBwYWdlTnVtYmVycztcbiAgICB9XG5cbiAgICBjb25zdCBwbHVyYWxQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UgPSBwbHVyYWxQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAocGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlKSB7XG4gICAgICBjb25zdCBwbHVyYWxXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UsICAvLy9cbiAgICAgICAgICAgIHBsdXJhbFBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIG1peGVkV29yZE9yUGhyYXNlID0gcGx1cmFsVG9NaXhlZChwbHVyYWxXb3JkT3JQaHJhc2UpLFxuICAgICAgICAgICAgbWl4ZWRQYWdlTnVtYmVycyA9IGluZGV4TWFwW21peGVkV29yZE9yUGhyYXNlXSB8fCBbXTtcblxuICAgICAgcGFnZU51bWJlcnMgPSBbXG4gICAgICAgIC4uLnBsdXJhbFBhZ2VOdW1iZXJzLFxuICAgICAgICAuLi5taXhlZFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbcGx1cmFsV29yZE9yUGhyYXNlXTtcblxuICAgICAgaW5kZXhNYXBbbWl4ZWRXb3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0UGx1cmFsUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IGluZGV4T3B0aW9ucyB9ID0gY29udGV4dCxcbiAgICAgICAgeyBwbHVyYWxzIH0gPSBpbmRleE9wdGlvbnMsXG4gICAgICAgIHBsdXJhbFBsdXJhbHMgPSByZWR1Y2VQbHVyYWxzKHBsdXJhbHMsIGlzUGx1cmFsKSxcbiAgICAgICAgc2luZ3VsYXJQbHVyYWxzID0gbWFwUGx1cmFscyhwbHVyYWxQbHVyYWxzLCBwbHVyYWxUb1Npbmd1bGFyKTtcblxuICBmb3JFYWNoKGluZGV4TWFwLCAod29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycykgPT4ge1xuICAgIGNvbnN0IHNpbmd1bGFyUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlID0gc2luZ3VsYXJQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAoc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UpIHtcbiAgICAgIGNvbnN0IHNpbmd1bGFyV29yZE9yUGhyYXNlID0gd29yZE9yUGhyYXNlLCAgLy8vXG4gICAgICAgICAgICBzaW5ndWxhclBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIHBsdXJhbFdvcmRPclBocmFzZSA9IHNpbmd1bGFyVG9QbHVyYWwod29yZE9yUGhyYXNlKSxcbiAgICAgICAgICAgIHBsdXJhbFBhZ2VOdW1iZXJzID0gaW5kZXhNYXBbcGx1cmFsV29yZE9yUGhyYXNlXSB8fCBbXTtcblxuICAgICAgcGFnZU51bWJlcnMgPSBbXG4gICAgICAgIC4uLnNpbmd1bGFyUGFnZU51bWJlcnMsXG4gICAgICAgIC4uLnBsdXJhbFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdO1xuXG4gICAgICBpbmRleE1hcFtwbHVyYWxXb3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0U2luZ3VsYXJQbHVyYWxzKGluZGV4TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IHBsdXJhbHMgfSA9IGluZGV4T3B0aW9ucyxcbiAgICAgICAgc2luZ3VsYXJQbHVyYWxzID0gcmVkdWNlUGx1cmFscyhwbHVyYWxzLCBpc1Npbmd1bGFyKSxcbiAgICAgICAgcGx1cmFsUGx1cmFscyA9IG1hcFBsdXJhbHMoc2luZ3VsYXJQbHVyYWxzLCBzaW5ndWxhclRvUGx1cmFsKTtcblxuICBmb3JFYWNoKGluZGV4TWFwLCAod29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycykgPT4ge1xuICAgICAgY29uc3QgcGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlID0gcGx1cmFsUGx1cmFscy5pbmNsdWRlcyh3b3JkT3JQaHJhc2UpO1xuXG4gICAgICBpZiAocGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlKSB7XG4gICAgICAgIGNvbnN0IHNpbmd1bGFyV29yZE9yUGhyYXNlID0gcGx1cmFsVG9TaW5ndWxhcih3b3JkT3JQaHJhc2UpLFxuICAgICAgICAgICAgICBzaW5ndWxhclBhZ2VOdW1iZXJzID0gaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdIHx8IFtdLFxuICAgICAgICAgICAgICBwbHVyYWxXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UsICAvLy9cbiAgICAgICAgICAgICAgcGx1cmFsUGFnZU51bWJlcnMgPSBwYWdlTnVtYmVyczsgIC8vL1xuXG4gICAgICAgIHBhZ2VOdW1iZXJzID0gW1xuICAgICAgICAgIC4uLnNpbmd1bGFyUGFnZU51bWJlcnMsXG4gICAgICAgICAgLi4ucGx1cmFsUGFnZU51bWJlcnNcbiAgICAgICAgXTtcblxuICAgICAgICBkZWxldGUgaW5kZXhNYXBbcGx1cmFsV29yZE9yUGhyYXNlXTtcblxuICAgICAgICBpbmRleE1hcFtzaW5ndWxhcldvcmRPclBocmFzZV0gPSBwYWdlTnVtYmVycztcbiAgICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlZHVjZVBsdXJhbHMocGx1cmFscywgY2FsbGJhY2spIHtcbiAgcGx1cmFscyA9IHBsdXJhbHMucmVkdWNlKChwbHVyYWxzLCBwbHVyYWwpID0+IHsgLy8vXG4gICAgY29uc3QgcmVzdWx0ID0gY2FsbGJhY2socGx1cmFsKTtcblxuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIHBsdXJhbHMucHVzaChwbHVyYWwpO1xuICAgIH1cblxuICAgIHJldHVybiBwbHVyYWxzO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIHBsdXJhbHM7XG59XG5cbmZ1bmN0aW9uIG1hcFBsdXJhbHMocGx1cmFscywgY2FsbGJhY2spIHtcbiAgcGx1cmFscyA9IHBsdXJhbHMubWFwKChwbHVyYWwpID0+IHsgLy8vXG4gICAgcGx1cmFsID0gY2FsbGJhY2socGx1cmFsKTtcblxuICAgIHJldHVybiBwbHVyYWw7XG4gIH0pO1xuXG4gIHJldHVybiBwbHVyYWxzO1xufVxuXG5mdW5jdGlvbiBpc1Npbmd1bGFyKHRleHQpIHtcbiAgY29uc3QgaW5kZXhNYXRjaGVzID0gL1tecyldJC8udGVzdCh0ZXh0KSxcbiAgICAgICAgc2luZ3VsYXIgPSBpbmRleE1hdGNoZXM7IC8vL1xuXG4gIHJldHVybiBzaW5ndWxhcjtcbn1cblxuZnVuY3Rpb24gaXNQbHVyYWwodGV4dCkge1xuICBjb25zdCBpbmRleE1hdGNoZXMgPSAvKGllc3xzKSQvLnRlc3QodGV4dCksXG4gICAgICAgIHBsdXJhbCA9IGluZGV4TWF0Y2hlczsgLy8vXG5cbiAgcmV0dXJuIHBsdXJhbDtcbn1cblxuZnVuY3Rpb24gaXNNaXhlZCh0ZXh0KSB7XG4gIGNvbnN0IGluZGV4TWF0Y2hlcyA9IC9cXChzXFwpJC8udGVzdCh0ZXh0KSxcbiAgICAgICAgbWl4ZWQgPSBpbmRleE1hdGNoZXM7IC8vL1xuXG4gIHJldHVybiBtaXhlZDtcbn1cblxuZnVuY3Rpb24gbWl4ZWRUb1BsdXJhbCh0ZXh0KSB7XG4gIHRleHQgPSB0ZXh0IC8vL1xuICAgICAgICAgICAucmVwbGFjZSgvXFwoc1xcKSQvLCBTX1NUUklORyk7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIHBsdXJhbFRvTWl4ZWQodGV4dCkge1xuICB0ZXh0ID0gdGV4dCAvLy9cbiAgICAgICAgICAgLnJlcGxhY2UoL3MkLywgUEFSRU5USEVTSVNFRF9TX1NUUklORylcblxuICByZXR1cm4gdGV4dDtcbn1cblxuZnVuY3Rpb24gbWl4ZWRUb1Npbmd1bGFyKHRleHQpIHtcbiAgdGV4dCA9IHRleHQgLy8vXG4gICAgICAgICAgLnJlcGxhY2UoL1xcKHNcXCkkLywgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gdGV4dDtcbn1cblxuZnVuY3Rpb24gc2luZ3VsYXJUb01peGVkKHRleHQpIHtcbiAgdGV4dCA9IGAke3RleHR9KHMpYDtcblxuICByZXR1cm4gdGV4dDtcbn1cblxuZnVuY3Rpb24gc2luZ3VsYXJUb1BsdXJhbCh0ZXh0KSB7XG4gIHRleHQgPSBgJHt0ZXh0fXNgIC8vL1xuICAgICAgICAgICAucmVwbGFjZSgveXMkLywgSUVTX1NUUklORyk7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIHBsdXJhbFRvU2luZ3VsYXIodGV4dCkge1xuICB0ZXh0ID0gdGV4dCAvLy9cbiAgICAgICAgICAgLnJlcGxhY2UoL2llcyQvLCBZX1NUUklORylcbiAgICAgICAgICAgLnJlcGxhY2UoL3MkLywgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gdGV4dDtcbn1cbiJdLCJuYW1lcyI6WyJpbmRleE1hcEZyb21EaXZpc2lvbk1hcmtkb3duTm9kZXMiLCJjb21wcmVzcyIsImFycmF5VXRpbGl0aWVzIiwiZGl2aXNpb25NYXJrZG93bk5vZGVzIiwiY29udGV4dCIsImluZGV4TWFwIiwiY3JlYXRlSW5kZXhNYXAiLCJyZW1vdmVJZ25vcmVkV29yZHMiLCJhZGp1c3RNaXhlZFBsdXJhbHMiLCJhZGp1c3RQbHVyYWxQbHVyYWxzIiwiYWRqdXN0U2luZ3VsYXJQbHVyYWxzIiwiYWRqdXN0UHJvcGVyTm91bnMiLCJhZGp1c3RBY3JvbnltcyIsImNvbXByZXNzUGFnZU51bWJlcnMiLCJpbmRleE9wdGlvbnMiLCJwaHJhc2VzIiwiaW5kZXhNYXRjaGVzIiwibWFwIiwicGhyYXNlIiwiaW5kZXhNYXRjaCIsIkluZGV4TWF0Y2giLCJmcm9tUGhyYXNlIiwiZm9yRWFjaCIsImRpdmlzaW9uTWFya2Rvd25Ob2RlIiwicGFnZU51bWJlciIsImdldFBhZ2VOdW1iZXIiLCJwbGFpblRleHQiLCJhc1BsYWluVGV4dCIsIndvcmRzT3JQaHJhc2VzIiwid29yZHNPclBocmFzZXNGcm9tUGxhaW5UZXh0QW5kSW5kZXhNYXRjaGVzIiwid29yZE9yUGhyYXNlIiwicGFnZU51bWJlcnMiLCJoYXNPd25Qcm9wZXJ0eSIsInB1c2giLCJwcmVwYXJlUGxhaW5UZXh0IiwicmVwbGFjZSIsInNwbGl0IiwiU0lOR0xFX1NQQUNFIiwicmV2ZXJ0IiwibWFwVmFsdWVzIiwicGFnZU51bWJlckEiLCJwYWdlTnVtYmVyQiIsInNvcnQiLCJOdW1iZXIiLCJkaWZmZXJlbmNlIiwiaWdub3JlZFdvcmRzIiwiaWdub3JlZFdvcmQiLCJwcm9wZXJOb3VucyIsImxvd2VyQ2FzZVByb3Blck5vdW5zIiwicHJvcGVyTm91biIsImxvd2VyQ2FzZVByb3Blck5vdW4iLCJ0b0xvd2VyQ2FzZSIsIm1hcEtleXMiLCJpbmRleCIsImZpbmRJbmRleCIsImxvd2VyQ2FzZVByb3Blck5tYWUiLCJFTVBUWV9TVFJJTkciLCJhY3JvbnltcyIsImxvd2VyQ2FzZUFjcm9ueW1zIiwiYWNyb255bSIsImxvd2VyQ2FzZUFjcm9ueW0iLCJwbHVyYWxzIiwibWl4ZWRQbHVyYWxzIiwicmVkdWNlUGx1cmFscyIsImlzTWl4ZWQiLCJwbHVyYWxQbHVyYWxzIiwibWFwUGx1cmFscyIsIm1peGVkVG9QbHVyYWwiLCJzaW5ndWxhclBsdXJhbHMiLCJtaXhlZFRvU2luZ3VsYXIiLCJzaW5ndWxhclBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSIsImluY2x1ZGVzIiwic2luZ3VsYXJXb3JkT3JQaHJhc2UiLCJzaW5ndWxhclBhZ2VOdW1iZXJzIiwibWl4ZWRXb3JkT3JQaHJhc2UiLCJzaW5ndWxhclRvTWl4ZWQiLCJtaXhlZFBhZ2VOdW1iZXJzIiwicGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlIiwicGx1cmFsV29yZE9yUGhyYXNlIiwicGx1cmFsUGFnZU51bWJlcnMiLCJwbHVyYWxUb01peGVkIiwiaXNQbHVyYWwiLCJwbHVyYWxUb1Npbmd1bGFyIiwic2luZ3VsYXJUb1BsdXJhbCIsImlzU2luZ3VsYXIiLCJjYWxsYmFjayIsInJlZHVjZSIsInBsdXJhbCIsInJlc3VsdCIsInRleHQiLCJ0ZXN0Iiwic2luZ3VsYXIiLCJtaXhlZCIsIlNfU1RSSU5HIiwiUEFSRU5USEVTSVNFRF9TX1NUUklORyIsIklFU19TVFJJTkciLCJZX1NUUklORyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV2dCQTs7O2VBQUFBOzs7eUJBVGU7NERBRVI7c0JBRXFCO3lCQUN1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuRyxJQUFNLEFBQUVDLFdBQWFDLHlCQUFjLENBQTNCRDtBQUVELFNBQVNELGtDQUFrQ0cscUJBQXFCLEVBQUVDLE9BQU87SUFDOUUsSUFBTUMsV0FBV0MsZUFBZUgsdUJBQXVCQztJQUV2REcsbUJBQW1CRixVQUFVRDtJQUU3QkksbUJBQW1CSCxVQUFVRDtJQUU3Qkssb0JBQW9CSixVQUFVRDtJQUU5Qk0sc0JBQXNCTCxVQUFVRDtJQUVoQ08sa0JBQWtCTixVQUFVRDtJQUU1QlEsZUFBZVAsVUFBVUQ7SUFFekJTLG9CQUFvQlI7SUFFcEIsT0FBT0E7QUFDVDtBQUVBLFNBQVNDLGVBQWVILHFCQUFxQixFQUFFQyxPQUFPO0lBQ3BELElBQU1DLFdBQVcsQ0FBQztJQUVsQixJQUFNLEFBQUVTLGVBQWlCVixRQUFqQlUsY0FDRixBQUFFQyxVQUFZRCxhQUFaQyxTQUNGQyxlQUFlRCxRQUFR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
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgSW5kZXhNYXRjaCBmcm9tIFwiLi4vaW5kZXgvbWF0Y2hcIjtcblxuaW1wb3J0IHsgZm9yRWFjaCwgbWFwS2V5cywgbWFwVmFsdWVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9vYmplY3RcIjtcbmltcG9ydCB7IFlfU1RSSU5HLCBTX1NUUklORywgSUVTX1NUUklORywgRU1QVFlfU1RSSU5HLCBTSU5HTEVfU1BBQ0UsIFBBUkVOVEhFU0lTRURfU19TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgY29tcHJlc3MgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5kZXhNYXBGcm9tRGl2aXNpb25NYXJrZG93bk5vZGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBjb25zdCBpbmRleE1hcCA9IGNyZWF0ZUluZGV4TWFwKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCk7XG5cbiAgcmVtb3ZlSWdub3JlZFdvcmRzKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBhZGp1c3RNaXhlZFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdFBsdXJhbFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdFNpbmd1bGFyUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCk7XG5cbiAgYWRqdXN0UHJvcGVyTm91bnMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdEFjcm9ueW1zKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBjb21wcmVzc1BhZ2VOdW1iZXJzKGluZGV4TWFwKTtcblxuICByZXR1cm4gaW5kZXhNYXA7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUluZGV4TWFwKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBjb25zdCBpbmRleE1hcCA9IHt9O1xuXG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IHBocmFzZXMgfSA9IGluZGV4T3B0aW9ucyxcbiAgICAgICAgaW5kZXhNYXRjaGVzID0gcGhyYXNlcy5tYXAoKHBocmFzZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGluZGV4TWF0Y2ggPSBJbmRleE1hdGNoLmZyb21QaHJhc2UocGhyYXNlKTtcblxuICAgICAgICAgIHJldHVybiBpbmRleE1hdGNoO1xuICAgICAgICB9KTtcblxuICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICBjb25zdCBwYWdlTnVtYmVyID0gZGl2aXNpb25NYXJrZG93bk5vZGUuZ2V0UGFnZU51bWJlcigpO1xuXG4gICAgaWYgKHBhZ2VOdW1iZXIgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHBsYWluVGV4dCA9IGRpdmlzaW9uTWFya2Rvd25Ob2RlLmFzUGxhaW5UZXh0KGNvbnRleHQpLFxuICAgICAgICAgICAgd29yZHNPclBocmFzZXMgPSB3b3Jkc09yUGhyYXNlc0Zyb21QbGFpblRleHRBbmRJbmRleE1hdGNoZXMocGxhaW5UZXh0LCBpbmRleE1hdGNoZXMpO1xuXG4gICAgICB3b3Jkc09yUGhyYXNlcy5mb3JFYWNoKCh3b3JkT3JQaHJhc2UpID0+IHtcbiAgICAgICAgY29uc3QgcGFnZU51bWJlcnMgPSBpbmRleE1hcC5oYXNPd25Qcm9wZXJ0eSh3b3JkT3JQaHJhc2UpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4TWFwW3dvcmRPclBocmFzZV0gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXTtcblxuICAgICAgICBpbmRleE1hcFt3b3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG5cbiAgICAgICAgcGFnZU51bWJlcnMucHVzaChwYWdlTnVtYmVyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGluZGV4TWFwO1xufVxuXG5mdW5jdGlvbiB3b3Jkc09yUGhyYXNlc0Zyb21QbGFpblRleHRBbmRJbmRleE1hdGNoZXMocGxhaW5UZXh0LCBpbmRleE1hdGNoZXMpIHtcbiAgbGV0IHdvcmRzT3JQaHJhc2VzO1xuXG4gIHBsYWluVGV4dCA9IHByZXBhcmVQbGFpblRleHQocGxhaW5UZXh0KTsgIC8vL1xuXG4gIGluZGV4TWF0Y2hlcy5mb3JFYWNoKChpbmRleE1hdGNoKSA9PiB7XG4gICAgcGxhaW5UZXh0ID0gaW5kZXhNYXRjaC5yZXBsYWNlKHBsYWluVGV4dCk7XG4gIH0pO1xuXG4gIHdvcmRzT3JQaHJhc2VzID0gcGxhaW5UZXh0LnNwbGl0KFNJTkdMRV9TUEFDRSk7XG5cbiAgd29yZHNPclBocmFzZXMgPSB3b3Jkc09yUGhyYXNlcy5tYXAoKHdvcmRPclBocmFzZSkgPT4ge1xuICAgIHdvcmRPclBocmFzZSA9IEluZGV4TWF0Y2gucmV2ZXJ0KHdvcmRPclBocmFzZSk7ICAvLy9cblxuICAgIHJldHVybiB3b3JkT3JQaHJhc2U7XG4gIH0pO1xuXG4gIHJldHVybiB3b3Jkc09yUGhyYXNlcztcbn1cblxuZnVuY3Rpb24gY29tcHJlc3NQYWdlTnVtYmVycyhpbmRleE1hcCkge1xuICBtYXBWYWx1ZXMoaW5kZXhNYXAsICh3b3JkT3JQaHJhc2UsIHBhZ2VOdW1iZXJzKSA9PiB7XG4gICAgY29tcHJlc3MocGFnZU51bWJlcnMsIChwYWdlTnVtYmVyQSwgcGFnZU51bWJlckIpID0+IHtcbiAgICAgIGlmIChwYWdlTnVtYmVyQSA9PT0gcGFnZU51bWJlckIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBwYWdlTnVtYmVycy5zb3J0KChwYWdlTnVtYmVyQiwgcGFnZU51bWJlckEpID0+IHtcbiAgICAgIHBhZ2VOdW1iZXJBID0gTnVtYmVyKHBhZ2VOdW1iZXJBKTsgIC8vL1xuXG4gICAgICBwYWdlTnVtYmVyQiA9IE51bWJlcihwYWdlTnVtYmVyQik7ICAvLy9cblxuICAgICAgY29uc3QgZGlmZmVyZW5jZSA9IHBhZ2VOdW1iZXJCIC0gcGFnZU51bWJlckE7XG5cbiAgICAgIHJldHVybiBkaWZmZXJlbmNlO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBhZ2VOdW1iZXJzO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlSWdub3JlZFdvcmRzKGluZGV4TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IGlnbm9yZWRXb3JkcyB9ID0gaW5kZXhPcHRpb25zO1xuXG4gIGlnbm9yZWRXb3Jkcy5mb3JFYWNoKChpZ25vcmVkV29yZCkgPT4ge1xuICAgIGRlbGV0ZSBpbmRleE1hcFtpZ25vcmVkV29yZF07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGp1c3RQcm9wZXJOb3VucyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IGluZGV4T3B0aW9ucyB9ID0gY29udGV4dCxcbiAgICAgICAgeyBwcm9wZXJOb3VucyB9ID0gaW5kZXhPcHRpb25zO1xuXG4gIGNvbnN0IGxvd2VyQ2FzZVByb3Blck5vdW5zID0gcHJvcGVyTm91bnMubWFwKChwcm9wZXJOb3VuKSA9PiB7XG4gICAgY29uc3QgbG93ZXJDYXNlUHJvcGVyTm91biA9IHByb3Blck5vdW4udG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiBsb3dlckNhc2VQcm9wZXJOb3VuO1xuICB9KTtcblxuICBtYXBLZXlzKGluZGV4TWFwLCAod29yZE9yUGhyYXNlKSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSBsb3dlckNhc2VQcm9wZXJOb3Vucy5maW5kSW5kZXgoKGxvd2VyQ2FzZVByb3Blck5hbWUpID0+IHtcbiAgICAgIGlmIChsb3dlckNhc2VQcm9wZXJOYW1lID09PSB3b3JkT3JQaHJhc2UpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgY29uc3QgcHJvcGVyTm91biA9IHByb3Blck5vdW5zW2luZGV4XTtcblxuICAgICAgd29yZE9yUGhyYXNlID0gcHJvcGVyTm91bjsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiB3b3JkT3JQaHJhc2U7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlUGxhaW5UZXh0KHBsYWluVGV4dCkge1xuICBwbGFpblRleHQgPSBwbGFpblRleHQudG9Mb3dlckNhc2UoKTsgIC8vL1xuXG4gIHBsYWluVGV4dCA9IHBsYWluVGV4dC5yZXBsYWNlKC9bXmEtejAtOVxcLSBdL2csIFNJTkdMRV9TUEFDRSk7XG5cbiAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnJlcGxhY2UoL1xccysvZywgU0lOR0xFX1NQQUNFKTtcblxuICBwbGFpblRleHQgPSBwbGFpblRleHQucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gcGxhaW5UZXh0O1xufVxuXG5mdW5jdGlvbiBhZGp1c3RBY3JvbnltcyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IGluZGV4T3B0aW9ucyB9ID0gY29udGV4dCxcbiAgICAgICAgeyBhY3JvbnltcyB9ID0gaW5kZXhPcHRpb25zO1xuXG4gIGNvbnN0IGxvd2VyQ2FzZUFjcm9ueW1zID0gYWNyb255bXMubWFwKChhY3JvbnltKSA9PiB7XG4gICAgY29uc3QgbG93ZXJDYXNlQWNyb255bSA9IGFjcm9ueW0udG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiBsb3dlckNhc2VBY3JvbnltO1xuICB9KTtcblxuICBtYXBLZXlzKGluZGV4TWFwLCAod29yZE9yUGhyYXNlKSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSBsb3dlckNhc2VBY3Jvbnltcy5maW5kSW5kZXgoKGxvd2VyQ2FzZVByb3Blck5hbWUpID0+IHtcbiAgICAgIGlmIChsb3dlckNhc2VQcm9wZXJOYW1lID09PSB3b3JkT3JQaHJhc2UpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgY29uc3QgYWNyb255bSA9IGFjcm9ueW1zW2luZGV4XTtcblxuICAgICAgd29yZE9yUGhyYXNlID0gYWNyb255bTsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiB3b3JkT3JQaHJhc2U7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGp1c3RNaXhlZFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBpbmRleE9wdGlvbnMgfSA9IGNvbnRleHQsXG4gICAgICAgIHsgcGx1cmFscyB9ID0gaW5kZXhPcHRpb25zLFxuICAgICAgICBtaXhlZFBsdXJhbHMgPSByZWR1Y2VQbHVyYWxzKHBsdXJhbHMsIGlzTWl4ZWQpLFxuICAgICAgICBwbHVyYWxQbHVyYWxzID0gbWFwUGx1cmFscyhtaXhlZFBsdXJhbHMsIG1peGVkVG9QbHVyYWwpLFxuICAgICAgICBzaW5ndWxhclBsdXJhbHMgPSBtYXBQbHVyYWxzKG1peGVkUGx1cmFscywgbWl4ZWRUb1Npbmd1bGFyKTtcblxuICBmb3JFYWNoKGluZGV4TWFwLCAod29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycykgPT4ge1xuICAgIGNvbnN0IHNpbmd1bGFyUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlID0gc2luZ3VsYXJQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAoc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UpIHtcbiAgICAgIGNvbnN0IHNpbmd1bGFyV29yZE9yUGhyYXNlID0gd29yZE9yUGhyYXNlLCAgLy8vXG4gICAgICAgICAgICBzaW5ndWxhclBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIG1peGVkV29yZE9yUGhyYXNlID0gc2luZ3VsYXJUb01peGVkKHNpbmd1bGFyV29yZE9yUGhyYXNlKSxcbiAgICAgICAgICAgIG1peGVkUGFnZU51bWJlcnMgPSBpbmRleE1hcFttaXhlZFdvcmRPclBocmFzZV0gfHwgW107XG5cbiAgICAgIHBhZ2VOdW1iZXJzID0gW1xuICAgICAgICAuLi5zaW5ndWxhclBhZ2VOdW1iZXJzLFxuICAgICAgICAuLi5taXhlZFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdO1xuXG4gICAgICBpbmRleE1hcFttaXhlZFdvcmRPclBocmFzZV0gPSBwYWdlTnVtYmVycztcbiAgICB9XG5cbiAgICBjb25zdCBwbHVyYWxQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UgPSBwbHVyYWxQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAocGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlKSB7XG4gICAgICBjb25zdCBwbHVyYWxXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UsICAvLy9cbiAgICAgICAgICAgIHBsdXJhbFBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIG1peGVkV29yZE9yUGhyYXNlID0gcGx1cmFsVG9NaXhlZChwbHVyYWxXb3JkT3JQaHJhc2UpLFxuICAgICAgICAgICAgbWl4ZWRQYWdlTnVtYmVycyA9IGluZGV4TWFwW21peGVkV29yZE9yUGhyYXNlXSB8fCBbXTtcblxuICAgICAgcGFnZU51bWJlcnMgPSBbXG4gICAgICAgIC4uLnBsdXJhbFBhZ2VOdW1iZXJzLFxuICAgICAgICAuLi5taXhlZFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbcGx1cmFsV29yZE9yUGhyYXNlXTtcblxuICAgICAgaW5kZXhNYXBbbWl4ZWRXb3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0UGx1cmFsUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IGluZGV4T3B0aW9ucyB9ID0gY29udGV4dCxcbiAgICAgICAgeyBwbHVyYWxzIH0gPSBpbmRleE9wdGlvbnMsXG4gICAgICAgIHBsdXJhbFBsdXJhbHMgPSByZWR1Y2VQbHVyYWxzKHBsdXJhbHMsIGlzUGx1cmFsKSxcbiAgICAgICAgc2luZ3VsYXJQbHVyYWxzID0gbWFwUGx1cmFscyhwbHVyYWxQbHVyYWxzLCBwbHVyYWxUb1Npbmd1bGFyKTtcblxuICBmb3JFYWNoKGluZGV4TWFwLCAod29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycykgPT4ge1xuICAgIGNvbnN0IHNpbmd1bGFyUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlID0gc2luZ3VsYXJQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAoc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UpIHtcbiAgICAgIGNvbnN0IHNpbmd1bGFyV29yZE9yUGhyYXNlID0gd29yZE9yUGhyYXNlLCAgLy8vXG4gICAgICAgICAgICBzaW5ndWxhclBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIHBsdXJhbFdvcmRPclBocmFzZSA9IHNpbmd1bGFyVG9QbHVyYWwod29yZE9yUGhyYXNlKSxcbiAgICAgICAgICAgIHBsdXJhbFBhZ2VOdW1iZXJzID0gaW5kZXhNYXBbcGx1cmFsV29yZE9yUGhyYXNlXSB8fCBbXTtcblxuICAgICAgcGFnZU51bWJlcnMgPSBbXG4gICAgICAgIC4uLnNpbmd1bGFyUGFnZU51bWJlcnMsXG4gICAgICAgIC4uLnBsdXJhbFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdO1xuXG4gICAgICBpbmRleE1hcFtwbHVyYWxXb3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0U2luZ3VsYXJQbHVyYWxzKGluZGV4TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IHBsdXJhbHMgfSA9IGluZGV4T3B0aW9ucyxcbiAgICAgICAgc2luZ3VsYXJQbHVyYWxzID0gcmVkdWNlUGx1cmFscyhwbHVyYWxzLCBpc1Npbmd1bGFyKSxcbiAgICAgICAgcGx1cmFsUGx1cmFscyA9IG1hcFBsdXJhbHMoc2luZ3VsYXJQbHVyYWxzLCBzaW5ndWxhclRvUGx1cmFsKTtcblxuICBmb3JFYWNoKGluZGV4TWFwLCAod29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycykgPT4ge1xuICAgICAgY29uc3QgcGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlID0gcGx1cmFsUGx1cmFscy5pbmNsdWRlcyh3b3JkT3JQaHJhc2UpO1xuXG4gICAgICBpZiAocGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlKSB7XG4gICAgICAgIGNvbnN0IHNpbmd1bGFyV29yZE9yUGhyYXNlID0gcGx1cmFsVG9TaW5ndWxhcih3b3JkT3JQaHJhc2UpLFxuICAgICAgICAgICAgICBzaW5ndWxhclBhZ2VOdW1iZXJzID0gaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdIHx8IFtdLFxuICAgICAgICAgICAgICBwbHVyYWxXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UsICAvLy9cbiAgICAgICAgICAgICAgcGx1cmFsUGFnZU51bWJlcnMgPSBwYWdlTnVtYmVyczsgIC8vL1xuXG4gICAgICAgIHBhZ2VOdW1iZXJzID0gW1xuICAgICAgICAgIC4uLnNpbmd1bGFyUGFnZU51bWJlcnMsXG4gICAgICAgICAgLi4ucGx1cmFsUGFnZU51bWJlcnNcbiAgICAgICAgXTtcblxuICAgICAgICBkZWxldGUgaW5kZXhNYXBbcGx1cmFsV29yZE9yUGhyYXNlXTtcblxuICAgICAgICBpbmRleE1hcFtzaW5ndWxhcldvcmRPclBocmFzZV0gPSBwYWdlTnVtYmVycztcbiAgICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlZHVjZVBsdXJhbHMocGx1cmFscywgY2FsbGJhY2spIHtcbiAgcGx1cmFscyA9IHBsdXJhbHMucmVkdWNlKChwbHVyYWxzLCBwbHVyYWwpID0+IHsgLy8vXG4gICAgY29uc3QgcmVzdWx0ID0gY2FsbGJhY2socGx1cmFsKTtcblxuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIHBsdXJhbHMucHVzaChwbHVyYWwpO1xuICAgIH1cblxuICAgIHJldHVybiBwbHVyYWxzO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIHBsdXJhbHM7XG59XG5cbmZ1bmN0aW9uIG1hcFBsdXJhbHMocGx1cmFscywgY2FsbGJhY2spIHtcbiAgcGx1cmFscyA9IHBsdXJhbHMubWFwKChwbHVyYWwpID0+IHsgLy8vXG4gICAgcGx1cmFsID0gY2FsbGJhY2socGx1cmFsKTtcblxuICAgIHJldHVybiBwbHVyYWw7XG4gIH0pO1xuXG4gIHJldHVybiBwbHVyYWxzO1xufVxuXG5mdW5jdGlvbiBpc1Npbmd1bGFyKHRleHQpIHtcbiAgY29uc3QgaW5kZXhNYXRjaGVzID0gL1tecyldJC8udGVzdCh0ZXh0KSxcbiAgICAgICAgc2luZ3VsYXIgPSBpbmRleE1hdGNoZXM7IC8vL1xuXG4gIHJldHVybiBzaW5ndWxhcjtcbn1cblxuZnVuY3Rpb24gaXNQbHVyYWwodGV4dCkge1xuICBjb25zdCBpbmRleE1hdGNoZXMgPSAvKGllc3xzKSQvLnRlc3QodGV4dCksXG4gICAgICAgIHBsdXJhbCA9IGluZGV4TWF0Y2hlczsgLy8vXG5cbiAgcmV0dXJuIHBsdXJhbDtcbn1cblxuZnVuY3Rpb24gaXNNaXhlZCh0ZXh0KSB7XG4gIGNvbnN0IGluZGV4TWF0Y2hlcyA9IC9cXChzXFwpJC8udGVzdCh0ZXh0KSxcbiAgICAgICAgbWl4ZWQgPSBpbmRleE1hdGNoZXM7IC8vL1xuXG4gIHJldHVybiBtaXhlZDtcbn1cblxuZnVuY3Rpb24gbWl4ZWRUb1BsdXJhbCh0ZXh0KSB7XG4gIHRleHQgPSB0ZXh0IC8vL1xuICAgICAgICAgICAucmVwbGFjZSgvXFwoc1xcKSQvLCBTX1NUUklORyk7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIHBsdXJhbFRvTWl4ZWQodGV4dCkge1xuICB0ZXh0ID0gdGV4dCAvLy9cbiAgICAgICAgICAgLnJlcGxhY2UoL3MkLywgUEFSRU5USEVTSVNFRF9TX1NUUklORylcblxuICByZXR1cm4gdGV4dDtcbn1cblxuZnVuY3Rpb24gbWl4ZWRUb1Npbmd1bGFyKHRleHQpIHtcbiAgdGV4dCA9IHRleHQgLy8vXG4gICAgICAgICAgLnJlcGxhY2UoL1xcKHNcXCkkLywgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gdGV4dDtcbn1cblxuZnVuY3Rpb24gc2luZ3VsYXJUb01peGVkKHRleHQpIHtcbiAgdGV4dCA9IGAke3RleHR9KHMpYDtcblxuICByZXR1cm4gdGV4dDtcbn1cblxuZnVuY3Rpb24gc2luZ3VsYXJUb1BsdXJhbCh0ZXh0KSB7XG4gIHRleHQgPSBgJHt0ZXh0fXNgIC8vL1xuICAgICAgICAgICAucmVwbGFjZSgveXMkLywgSUVTX1NUUklORyk7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIHBsdXJhbFRvU2luZ3VsYXIodGV4dCkge1xuICB0ZXh0ID0gdGV4dCAvLy9cbiAgICAgICAgICAgLnJlcGxhY2UoL2llcyQvLCBZX1NUUklORylcbiAgICAgICAgICAgLnJlcGxhY2UoL3MkLywgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gdGV4dDtcbn1cbiJdLCJuYW1lcyI6WyJpbmRleE1hcEZyb21EaXZpc2lvbk1hcmtkb3duTm9kZXMiLCJjb21wcmVzcyIsImFycmF5VXRpbGl0aWVzIiwiZGl2aXNpb25NYXJrZG93bk5vZGVzIiwiY29udGV4dCIsImluZGV4TWFwIiwiY3JlYXRlSW5kZXhNYXAiLCJyZW1vdmVJZ25vcmVkV29yZHMiLCJhZGp1c3RNaXhlZFBsdXJhbHMiLCJhZGp1c3RQbHVyYWxQbHVyYWxzIiwiYWRqdXN0U2luZ3VsYXJQbHVyYWxzIiwiYWRqdXN0UHJvcGVyTm91bnMiLCJhZGp1c3RBY3JvbnltcyIsImNvbXByZXNzUGFnZU51bWJlcnMiLCJpbmRleE9wdGlvbnMiLCJwaHJhc2VzIiwiaW5kZXhNYXRjaGVzIiwibWFwIiwicGhyYXNlIiwiaW5kZXhNYXRjaCIsIkluZGV4TWF0Y2giLCJmcm9tUGhyYXNlIiwiZm9yRWFjaCIsImRpdmlzaW9uTWFya2Rvd25Ob2RlIiwicGFnZU51bWJlciIsImdldFBhZ2VOdW1iZXIiLCJwbGFpblRleHQiLCJhc1BsYWluVGV4dCIsIndvcmRzT3JQaHJhc2VzIiwid29yZHNPclBocmFzZXNGcm9tUGxhaW5UZXh0QW5kSW5kZXhNYXRjaGVzIiwid29yZE9yUGhyYXNlIiwicGFnZU51bWJlcnMiLCJoYXNPd25Qcm9wZXJ0eSIsInB1c2giLCJwcmVwYXJlUGxhaW5UZXh0IiwicmVwbGFjZSIsInNwbGl0IiwiU0lOR0xFX1NQQUNFIiwicmV2ZXJ0IiwibWFwVmFsdWVzIiwicGFnZU51bWJlckEiLCJwYWdlTnVtYmVyQiIsInNvcnQiLCJOdW1iZXIiLCJkaWZmZXJlbmNlIiwiaWdub3JlZFdvcmRzIiwiaWdub3JlZFdvcmQiLCJwcm9wZXJOb3VucyIsImxvd2VyQ2FzZVByb3Blck5vdW5zIiwicHJvcGVyTm91biIsImxvd2VyQ2FzZVByb3Blck5vdW4iLCJ0b0xvd2VyQ2FzZSIsIm1hcEtleXMiLCJpbmRleCIsImZpbmRJbmRleCIsImxvd2VyQ2FzZVByb3Blck5hbWUiLCJFTVBUWV9TVFJJTkciLCJhY3JvbnltcyIsImxvd2VyQ2FzZUFjcm9ueW1zIiwiYWNyb255bSIsImxvd2VyQ2FzZUFjcm9ueW0iLCJwbHVyYWxzIiwibWl4ZWRQbHVyYWxzIiwicmVkdWNlUGx1cmFscyIsImlzTWl4ZWQiLCJwbHVyYWxQbHVyYWxzIiwibWFwUGx1cmFscyIsIm1peGVkVG9QbHVyYWwiLCJzaW5ndWxhclBsdXJhbHMiLCJtaXhlZFRvU2luZ3VsYXIiLCJzaW5ndWxhclBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSIsImluY2x1ZGVzIiwic2luZ3VsYXJXb3JkT3JQaHJhc2UiLCJzaW5ndWxhclBhZ2VOdW1iZXJzIiwibWl4ZWRXb3JkT3JQaHJhc2UiLCJzaW5ndWxhclRvTWl4ZWQiLCJtaXhlZFBhZ2VOdW1iZXJzIiwicGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlIiwicGx1cmFsV29yZE9yUGhyYXNlIiwicGx1cmFsUGFnZU51bWJlcnMiLCJwbHVyYWxUb01peGVkIiwiaXNQbHVyYWwiLCJwbHVyYWxUb1Npbmd1bGFyIiwic2luZ3VsYXJUb1BsdXJhbCIsImlzU2luZ3VsYXIiLCJjYWxsYmFjayIsInJlZHVjZSIsInBsdXJhbCIsInJlc3VsdCIsInRleHQiLCJ0ZXN0Iiwic2luZ3VsYXIiLCJtaXhlZCIsIlNfU1RSSU5HIiwiUEFSRU5USEVTSVNFRF9TX1NUUklORyIsIklFU19TVFJJTkciLCJZX1NUUklORyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV2dCQTs7O2VBQUFBOzs7eUJBVGU7NERBRVI7c0JBRXFCO3lCQUN1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuRyxJQUFNLEFBQUVDLFdBQWFDLHlCQUFjLENBQTNCRDtBQUVELFNBQVNELGtDQUFrQ0cscUJBQXFCLEVBQUVDLE9BQU87SUFDOUUsSUFBTUMsV0FBV0MsZUFBZUgsdUJBQXVCQztJQUV2REcsbUJBQW1CRixVQUFVRDtJQUU3QkksbUJBQW1CSCxVQUFVRDtJQUU3Qkssb0JBQW9CSixVQUFVRDtJQUU5Qk0sc0JBQXNCTCxVQUFVRDtJQUVoQ08sa0JBQWtCTixVQUFVRDtJQUU1QlEsZUFBZVAsVUFBVUQ7SUFFekJTLG9CQUFvQlI7SUFFcEIsT0FBT0E7QUFDVDtBQUVBLFNBQVNDLGVBQWVILHFCQUFxQixFQUFFQyxPQUFPO0lBQ3BELElBQU1DLFdBQVcsQ0FBQztJQUVsQixJQUFNLEFBQUVTLGVBQWlCVixRQUFqQlUsY0FDRixBQUFFQyxVQUFZRCxhQUFaQyxTQUNGQyxlQUFlRCxRQUFR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
@@ -12,34 +12,78 @@ _export(exports, {
12
12
  default: function() {
13
13
  return _default;
14
14
  },
15
- resolveEmbeddings: function() {
16
- return resolveEmbeddings;
15
+ divisionMarkdownNodeFromNode: function() {
16
+ return divisionMarkdownNodeFromNode;
17
17
  },
18
- resolveIncludes: function() {
19
- return resolveIncludes;
18
+ divisionMarkdownNodesFromNode: function() {
19
+ return divisionMarkdownNodesFromNode;
20
+ },
21
+ embedDirectiveMarkdownNodesFromNode: function() {
22
+ return embedDirectiveMarkdownNodesFromNode;
23
+ },
24
+ ignoreDirectiveMarkdownNodeFromNode: function() {
25
+ return ignoreDirectiveMarkdownNodeFromNode;
26
+ },
27
+ includeDirectiveMarkdownNodesFromNode: function() {
28
+ return includeDirectiveMarkdownNodesFromNode;
29
+ },
30
+ indexDirectiveMarkdownNodeFromNode: function() {
31
+ return indexDirectiveMarkdownNodeFromNode;
32
+ },
33
+ subDivisionMarkdownNodeFromNode: function() {
34
+ return subDivisionMarkdownNodeFromNode;
35
+ },
36
+ subDivisionMarkdownNodesFromNode: function() {
37
+ return subDivisionMarkdownNodesFromNode;
20
38
  }
21
39
  });
22
- function resolveIncludes(divisionMarkdownNode, context) {
23
- var divisionMarkdownNodes = [];
24
- Object.assign(context, {
25
- divisionMarkdownNodes: divisionMarkdownNodes
26
- });
27
- var divisionMarkdownNodeIgnored = divisionMarkdownNode.isIgnored();
28
- if (!divisionMarkdownNodeIgnored) {
29
- divisionMarkdownNodes.push(divisionMarkdownNode);
30
- }
31
- divisionMarkdownNode.resolveIncludes(context);
32
- delete context.divisionMarkdownNodes;
40
+ var _occamquery = require("occam-query");
41
+ var _query = require("../utilities/query");
42
+ var divisionMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/markdown/division"), subDivisionMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision"), indexDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/indexDirective"), ignoreDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/ignoreDirective"), divisionMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/markdown/division"), subDivisionMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/division/subDivision"), embedDirectiveMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/subDivision/directives/embedDirective"), includeDirectiveMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/includeDirective");
43
+ function divisionMarkdownNodeFromNode(node) {
44
+ var divisionMarkdownNode = (0, _query.nodeFromNodeAndQuery)(node, divisionMarkdownNodeQuery);
45
+ return divisionMarkdownNode;
46
+ }
47
+ function subDivisionMarkdownNodeFromNode(node) {
48
+ var subDivisionMarkdownNode = (0, _query.nodeFromNodeAndQuery)(node, subDivisionMarkdownNodeQuery);
49
+ return subDivisionMarkdownNode;
50
+ }
51
+ function indexDirectiveMarkdownNodeFromNode(node) {
52
+ var indexDirectiveMarkdownNode = (0, _query.nodeFromNodeAndQuery)(node, indexDirectiveMarkdownNodeQuery);
53
+ return indexDirectiveMarkdownNode;
54
+ }
55
+ function ignoreDirectiveMarkdownNodeFromNode(node) {
56
+ var ignoreDirectiveMarkdownNode = (0, _query.nodeFromNodeAndQuery)(node, ignoreDirectiveMarkdownNodeQuery);
57
+ return ignoreDirectiveMarkdownNode;
58
+ }
59
+ function divisionMarkdownNodesFromNode(node) {
60
+ var divisionMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
61
+ (0, _query.nodesFromNodeAndQuery)(node, divisionMarkdownNodesQuery, divisionMarkdownNodes);
33
62
  return divisionMarkdownNodes;
34
63
  }
35
- function resolveEmbeddings(divisionMarkdownNodes, context) {
36
- divisionMarkdownNodes.forEach(function(divisionMarkdownNode) {
37
- divisionMarkdownNode.resolveEmbeddings(context);
38
- });
64
+ function subDivisionMarkdownNodesFromNode(node) {
65
+ var subDivisionMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
66
+ (0, _query.nodesFromNodeAndQuery)(node, subDivisionMarkdownNodesQuery, subDivisionMarkdownNodes);
67
+ return subDivisionMarkdownNodes;
68
+ }
69
+ function embedDirectiveMarkdownNodesFromNode(node) {
70
+ var embedDirectiveMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
71
+ (0, _query.nodesFromNodeAndQuery)(node, embedDirectiveMarkdownNodesQuery, embedDirectiveMarkdownNodes);
72
+ return embedDirectiveMarkdownNodes;
73
+ }
74
+ function includeDirectiveMarkdownNodesFromNode(node) {
75
+ var includeDirectiveMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
76
+ (0, _query.nodesFromNodeAndQuery)(node, includeDirectiveMarkdownNodesQuery, includeDirectiveMarkdownNodes);
77
+ return includeDirectiveMarkdownNodes;
39
78
  }
40
79
  var _default = {
41
- resolveIncludes: resolveIncludes,
42
- resolveEmbeddings: resolveEmbeddings
80
+ divisionMarkdownNodeFromNode: divisionMarkdownNodeFromNode,
81
+ subDivisionMarkdownNodeFromNode: subDivisionMarkdownNodeFromNode,
82
+ indexDirectiveMarkdownNodeFromNode: indexDirectiveMarkdownNodeFromNode,
83
+ ignoreDirectiveMarkdownNodeFromNode: ignoreDirectiveMarkdownNodeFromNode,
84
+ divisionMarkdownNodesFromNode: divisionMarkdownNodesFromNode,
85
+ embedDirectiveMarkdownNodesFromNode: embedDirectiveMarkdownNodesFromNode,
86
+ includeDirectiveMarkdownNodesFromNode: includeDirectiveMarkdownNodesFromNode
43
87
  };
44
88
 
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWFya2Rvd24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSW5jbHVkZXMoZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgZGl2aXNpb25NYXJrZG93bk5vZGVzID0gW107XG5cbiAgT2JqZWN0LmFzc2lnbihjb250ZXh0LCB7XG4gICAgZGl2aXNpb25NYXJrZG93bk5vZGVzXG4gIH0pO1xuXG4gIGNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlSWdub3JlZCA9IGRpdmlzaW9uTWFya2Rvd25Ob2RlLmlzSWdub3JlZCgpO1xuXG4gIGlmICghZGl2aXNpb25NYXJrZG93bk5vZGVJZ25vcmVkKSB7XG4gICAgZGl2aXNpb25NYXJrZG93bk5vZGVzLnB1c2goZGl2aXNpb25NYXJrZG93bk5vZGUpO1xuICB9XG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGUucmVzb2x2ZUluY2x1ZGVzKGNvbnRleHQpO1xuXG4gIGRlbGV0ZSBjb250ZXh0LmRpdmlzaW9uTWFya2Rvd25Ob2RlcztcblxuICByZXR1cm4gZGl2aXNpb25NYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUVtYmVkZGluZ3MoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KSB7XG4gIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChkaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgIGRpdmlzaW9uTWFya2Rvd25Ob2RlLnJlc29sdmVFbWJlZGRpbmdzKGNvbnRleHQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICByZXNvbHZlSW5jbHVkZXMsXG4gIHJlc29sdmVFbWJlZGRpbmdzXG59O1xuIl0sIm5hbWVzIjpbInJlc29sdmVFbWJlZGRpbmdzIiwicmVzb2x2ZUluY2x1ZGVzIiwiZGl2aXNpb25NYXJrZG93bk5vZGUiLCJjb250ZXh0IiwiZGl2aXNpb25NYXJrZG93bk5vZGVzIiwiT2JqZWN0IiwiYXNzaWduIiwiZGl2aXNpb25NYXJrZG93bk5vZGVJZ25vcmVkIiwiaXNJZ25vcmVkIiwicHVzaCIsImZvckVhY2giXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQTRCQSxPQUdFO2VBSEY7O0lBTmdCQSxpQkFBaUI7ZUFBakJBOztJQXBCQUMsZUFBZTtlQUFmQTs7O0FBQVQsU0FBU0EsZ0JBQWdCQyxvQkFBb0IsRUFBRUMsT0FBTztJQUMzRCxJQUFNQyx3QkFBd0IsRUFBRTtJQUVoQ0MsT0FBT0MsTUFBTSxDQUFDSCxTQUFTO1FBQ3JCQyx1QkFBQUE7SUFDRjtJQUVBLElBQU1HLDhCQUE4QkwscUJBQXFCTSxTQUFTO0lBRWxFLElBQUksQ0FBQ0QsNkJBQTZCO1FBQ2hDSCxzQkFBc0JLLElBQUksQ0FBQ1A7SUFDN0I7SUFFQUEscUJBQXFCRCxlQUFlLENBQUNFO0lBRXJDLE9BQU9BLFFBQVFDLHFCQUFxQjtJQUVwQyxPQUFPQTtBQUNUO0FBRU8sU0FBU0osa0JBQWtCSSxxQkFBcUIsRUFBRUQsT0FBTztJQUM5REMsc0JBQXNCTSxPQUFPLENBQUMsU0FBQ1I7UUFDN0JBLHFCQUFxQkYsaUJBQWlCLENBQUNHO0lBQ3pDO0FBQ0Y7SUFFQSxXQUFlO0lBQ2JGLGlCQUFBQTtJQUNBRCxtQkFBQUE7QUFDRiJ9
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWFya2Rvd24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5cbmltcG9ydCB7IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5LCBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9tYXJrZG93bi9kaXZpc2lvblwiKSxcbiAgICAgIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9kaXZpc2lvbi9zdWJEaXZpc2lvblwiKSxcbiAgICAgIGluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9kaXZpc2lvbi9zdWJEaXZpc2lvbi9kaXJlY3RpdmVzL2luZGV4RGlyZWN0aXZlXCIpLFxuICAgICAgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9kaXZpc2lvbi9zdWJEaXZpc2lvbi9kaXJlY3RpdmVzL2lnbm9yZURpcmVjdGl2ZVwiKSxcbiAgICAgIGRpdmlzaW9uTWFya2Rvd25Ob2Rlc1F1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoXCIvbWFya2Rvd24vZGl2aXNpb25cIiksXG4gICAgICBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2RpdmlzaW9uL3N1YkRpdmlzaW9uXCIpLFxuICAgICAgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9zdWJEaXZpc2lvbi9kaXJlY3RpdmVzL2VtYmVkRGlyZWN0aXZlXCIpLFxuICAgICAgaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2RpdmlzaW9uL3N1YkRpdmlzaW9uL2RpcmVjdGl2ZXMvaW5jbHVkZURpcmVjdGl2ZVwiKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRpdmlzaW9uTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGRpdmlzaW9uTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBkaXZpc2lvbk1hcmtkb3duTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSA9IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBpbmRleERpcmVjdGl2ZU1hcmtkb3duTm9kZSA9IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBpbmRleERpcmVjdGl2ZU1hcmtkb3duTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlID0gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBkaXZpc2lvbk1hcmtkb3duTm9kZXMgPSBbXSkge1xuICBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkobm9kZSwgZGl2aXNpb25NYXJrZG93bk5vZGVzUXVlcnksIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUsIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNRdWVyeSwgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzKTtcblxuICByZXR1cm4gc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSwgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXMpO1xuXG4gIHJldHVybiBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUsIGluY2x1ZGVEaXJlY3RpdmVNYXJrZG93bk5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGluY2x1ZGVEaXJlY3RpdmVNYXJrZG93bk5vZGVzUXVlcnksIGluY2x1ZGVEaXJlY3RpdmVNYXJrZG93bk5vZGVzKTtcblxuICByZXR1cm4gaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZGl2aXNpb25NYXJrZG93bk5vZGVGcm9tTm9kZSxcbiAgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVGcm9tTm9kZSxcbiAgaW5kZXhEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSxcbiAgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUsXG4gIGRpdmlzaW9uTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlLFxuICBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSxcbiAgaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZVxufTtcbiJdLCJuYW1lcyI6WyJkaXZpc2lvbk1hcmtkb3duTm9kZUZyb21Ob2RlIiwiZGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSIsImlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwiaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSIsImluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZUZyb21Ob2RlIiwic3ViRGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJkaXZpc2lvbk1hcmtkb3duTm9kZVF1ZXJ5IiwiUXVlcnkiLCJmcm9tRXhwcmVzc2lvblN0cmluZyIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlUXVlcnkiLCJpbmRleERpcmVjdGl2ZU1hcmtkb3duTm9kZVF1ZXJ5IiwiaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkiLCJkaXZpc2lvbk1hcmtkb3duTm9kZXNRdWVyeSIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwiZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzUXVlcnkiLCJpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5Iiwibm9kZSIsImRpdmlzaW9uTWFya2Rvd25Ob2RlIiwibm9kZUZyb21Ob2RlQW5kUXVlcnkiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSIsImluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwiaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwiZGl2aXNpb25NYXJrZG93bk5vZGVzIiwibm9kZXNGcm9tTm9kZUFuZFF1ZXJ5Iiwic3ViRGl2aXNpb25NYXJrZG93bk5vZGVzIiwiZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzIiwiaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQStEQSxPQVFFO2VBUkY7O0lBaERnQkEsNEJBQTRCO2VBQTVCQTs7SUF3QkFDLDZCQUE2QjtlQUE3QkE7O0lBWUFDLG1DQUFtQztlQUFuQ0E7O0lBbEJBQyxtQ0FBbUM7ZUFBbkNBOztJQXdCQUMscUNBQXFDO2VBQXJDQTs7SUE5QkFDLGtDQUFrQztlQUFsQ0E7O0lBTkFDLCtCQUErQjtlQUEvQkE7O0lBd0JBQyxnQ0FBZ0M7ZUFBaENBOzs7MEJBM0NNO3FCQUVzQztBQUU1RCxJQUFNQyw0QkFBNEJDLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDLHVCQUN2REMsK0JBQStCRixpQkFBSyxDQUFDQyxvQkFBb0IsQ0FBQywwQkFDMURFLGtDQUFrQ0gsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUMsb0RBQzdERyxtQ0FBbUNKLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDLHFEQUM5REksNkJBQTZCTCxpQkFBSyxDQUFDQyxvQkFBb0IsQ0FBQyx1QkFDeERLLGdDQUFnQ04saUJBQUssQ0FBQ0Msb0JBQW9CLENBQUMsMEJBQzNETSxtQ0FBbUNQLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDLDJDQUM5RE8scUNBQXFDUixpQkFBSyxDQUFDQyxvQkFBb0IsQ0FBQztBQUUvRCxTQUFTViw2QkFBNkJrQixJQUFJO0lBQy9DLElBQU1DLHVCQUF1QkMsSUFBQUEsMkJBQW9CLEVBQUNGLE1BQU1WO0lBRXhELE9BQU9XO0FBQ1Q7QUFFTyxTQUFTYixnQ0FBZ0NZLElBQUk7SUFDbEQsSUFBTUcsMEJBQTBCRCxJQUFBQSwyQkFBb0IsRUFBQ0YsTUFBTVA7SUFFM0QsT0FBT1U7QUFDVDtBQUVPLFNBQVNoQixtQ0FBbUNhLElBQUk7SUFDckQsSUFBTUksNkJBQTZCRixJQUFBQSwyQkFBb0IsRUFBQ0YsTUFBTU47SUFFOUQsT0FBT1U7QUFDVDtBQUVPLFNBQVNuQixvQ0FBb0NlLElBQUk7SUFDdEQsSUFBTUssOEJBQThCSCxJQUFBQSwyQkFBb0IsRUFBQ0YsTUFBTUw7SUFFL0QsT0FBT1U7QUFDVDtBQUVPLFNBQVN0Qiw4QkFBOEJpQixJQUFJO1FBQUVNLHdCQUFBQSxpRUFBd0IsRUFBRTtJQUM1RUMsSUFBQUEsNEJBQXFCLEVBQUNQLE1BQU1KLDRCQUE0QlU7SUFFeEQsT0FBT0E7QUFDVDtBQUVPLFNBQVNqQixpQ0FBaUNXLElBQUk7UUFBRVEsMkJBQUFBLGlFQUEyQixFQUFFO0lBQ2xGRCxJQUFBQSw0QkFBcUIsRUFBQ1AsTUFBTUgsK0JBQStCVztJQUUzRCxPQUFPQTtBQUNUO0FBRU8sU0FBU3hCLG9DQUFvQ2dCLElBQUk7UUFBRVMsOEJBQUFBLGlFQUE4QixFQUFFO0lBQ3hGRixJQUFBQSw0QkFBcUIsRUFBQ1AsTUFBTUYsa0NBQWtDVztJQUU5RCxPQUFPQTtBQUNUO0FBRU8sU0FBU3ZCLHNDQUFzQ2MsSUFBSTtRQUFFVSxnQ0FBQUEsaUVBQWdDLEVBQUU7SUFDNUZILElBQUFBLDRCQUFxQixFQUFDUCxNQUFNRCxvQ0FBb0NXO0lBRWhFLE9BQU9BO0FBQ1Q7SUFFQSxXQUFlO0lBQ2I1Qiw4QkFBQUE7SUFDQU0saUNBQUFBO0lBQ0FELG9DQUFBQTtJQUNBRixxQ0FBQUE7SUFDQUYsK0JBQUFBO0lBQ0FDLHFDQUFBQTtJQUNBRSx1Q0FBQUE7QUFDRiJ9