highmark-markdown 1.1.99 → 1.1.100

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 (230) hide show
  1. package/package.json +1 -1
  2. package/lib/attributeNames.js +0 -38
  3. package/lib/constants.js +0 -90
  4. package/lib/defaultMarkdownStyle.js +0 -14
  5. package/lib/example/constants.js +0 -38
  6. package/lib/example/customEventTypes.js +0 -46
  7. package/lib/example/importer.js +0 -56
  8. package/lib/example/indexOptions.js +0 -45
  9. package/lib/example/view/button/page.js +0 -155
  10. package/lib/example/view/button/tab/css.js +0 -133
  11. package/lib/example/view/button/tab/html.js +0 -133
  12. package/lib/example/view/button/tab/markdown.js +0 -133
  13. package/lib/example/view/button/tab/markdownStyle.js +0 -133
  14. package/lib/example/view/button/tab/plainText.js +0 -133
  15. package/lib/example/view/button/tab/preview.js +0 -133
  16. package/lib/example/view/button/tab.js +0 -156
  17. package/lib/example/view/div/container/css.js +0 -173
  18. package/lib/example/view/div/container/html.js +0 -175
  19. package/lib/example/view/div/container/markdown.js +0 -208
  20. package/lib/example/view/div/container/markdownStyle.js +0 -209
  21. package/lib/example/view/div/container/plainText.js +0 -173
  22. package/lib/example/view/div/container/preview.js +0 -193
  23. package/lib/example/view/div/container.js +0 -175
  24. package/lib/example/view/div/html.js +0 -192
  25. package/lib/example/view/div/pageButtons.js +0 -259
  26. package/lib/example/view/div/preview.js +0 -293
  27. package/lib/example/view/div/sizeable/left.js +0 -122
  28. package/lib/example/view/div/tabButtons/left.js +0 -180
  29. package/lib/example/view/div/tabButtons/right.js +0 -218
  30. package/lib/example/view/div/tabButtons.js +0 -191
  31. package/lib/example/view/textarea/css.js +0 -165
  32. package/lib/example/view/textarea/markdown.js +0 -163
  33. package/lib/example/view/textarea/markdownStyle.js +0 -163
  34. package/lib/example/view/textarea/parseTree/css.js +0 -150
  35. package/lib/example/view/textarea/parseTree/html.js +0 -150
  36. package/lib/example/view/textarea/parseTree/markdown.js +0 -148
  37. package/lib/example/view/textarea/parseTree/markdownStyle.js +0 -148
  38. package/lib/example/view/textarea/parseTree.js +0 -155
  39. package/lib/example/view/textarea/plainText.js +0 -171
  40. package/lib/example/view/textarea.js +0 -39
  41. package/lib/example/view/xmp.js +0 -207
  42. package/lib/example/view.js +0 -551
  43. package/lib/example.js +0 -27
  44. package/lib/index/item.js +0 -102
  45. package/lib/index/list.js +0 -88
  46. package/lib/index/match.js +0 -76
  47. package/lib/index.js +0 -139
  48. package/lib/letters.js +0 -41
  49. package/lib/map/className.js +0 -19
  50. package/lib/map/node/css.js +0 -67
  51. package/lib/map/node/html.js +0 -98
  52. package/lib/map/nonTerminalNode/markdown.js +0 -55
  53. package/lib/map/nonTerminalNode/markdownStyle.js +0 -54
  54. package/lib/map/tagName.js +0 -19
  55. package/lib/markdown/bnf.js +0 -14
  56. package/lib/markdown/entries.js +0 -75
  57. package/lib/markdown/lexer.js +0 -144
  58. package/lib/markdown/parser.js +0 -139
  59. package/lib/markdownStyle/bnf.js +0 -14
  60. package/lib/markdownStyle/entries.js +0 -50
  61. package/lib/markdownStyle/lexer.js +0 -144
  62. package/lib/markdownStyle/parser.js +0 -139
  63. package/lib/mixins/node.js +0 -145
  64. package/lib/node/css/amount.js +0 -128
  65. package/lib/node/css/argument.js +0 -113
  66. package/lib/node/css/arguments.js +0 -146
  67. package/lib/node/css/class.js +0 -146
  68. package/lib/node/css/colour.js +0 -128
  69. package/lib/node/css/declaration.js +0 -127
  70. package/lib/node/css/identifier.js +0 -128
  71. package/lib/node/css/name.js +0 -146
  72. package/lib/node/css/pseudoClass.js +0 -146
  73. package/lib/node/css/ruleName.js +0 -159
  74. package/lib/node/css/ruleSet.js +0 -159
  75. package/lib/node/css/selector.js +0 -113
  76. package/lib/node/css/selectors.js +0 -125
  77. package/lib/node/css/selectorsList.js +0 -133
  78. package/lib/node/css/string.js +0 -128
  79. package/lib/node/css/topmost.js +0 -158
  80. package/lib/node/css/value.js +0 -145
  81. package/lib/node/css/values.js +0 -125
  82. package/lib/node/css.js +0 -282
  83. package/lib/node/html/anchor.js +0 -183
  84. package/lib/node/html/directive/contents.js +0 -113
  85. package/lib/node/html/directive/footnotes.js +0 -113
  86. package/lib/node/html/directive/index.js +0 -113
  87. package/lib/node/html/directive/pageNumber.js +0 -113
  88. package/lib/node/html/directive.js +0 -141
  89. package/lib/node/html/division.js +0 -294
  90. package/lib/node/html/error.js +0 -197
  91. package/lib/node/html/footnote.js +0 -167
  92. package/lib/node/html/heading/index.js +0 -192
  93. package/lib/node/html/heading/primary.js +0 -130
  94. package/lib/node/html/heading/quaternary.js +0 -130
  95. package/lib/node/html/heading/secondary.js +0 -130
  96. package/lib/node/html/heading/tertiary.js +0 -130
  97. package/lib/node/html/heading.js +0 -165
  98. package/lib/node/html/image.js +0 -219
  99. package/lib/node/html/item/contents.js +0 -142
  100. package/lib/node/html/item/footnote.js +0 -144
  101. package/lib/node/html/item/index.js +0 -152
  102. package/lib/node/html/item/ordered.js +0 -151
  103. package/lib/node/html/item/unordered.js +0 -128
  104. package/lib/node/html/line/block.js +0 -144
  105. package/lib/node/html/line.js +0 -243
  106. package/lib/node/html/link/contents.js +0 -171
  107. package/lib/node/html/link/email.js +0 -258
  108. package/lib/node/html/link/footnote.js +0 -265
  109. package/lib/node/html/link/hyper.js +0 -258
  110. package/lib/node/html/link/index.js +0 -236
  111. package/lib/node/html/list/contents.js +0 -142
  112. package/lib/node/html/list/footnotes.js +0 -178
  113. package/lib/node/html/list/index.js +0 -142
  114. package/lib/node/html/list/ordered.js +0 -128
  115. package/lib/node/html/list/unordered.js +0 -128
  116. package/lib/node/html/listing/block.js +0 -195
  117. package/lib/node/html/listing/inline.js +0 -197
  118. package/lib/node/html/pageNumber.js +0 -226
  119. package/lib/node/html/paragraph.js +0 -128
  120. package/lib/node/html/reference.js +0 -128
  121. package/lib/node/html/table.js +0 -128
  122. package/lib/node/html/tableBody.js +0 -128
  123. package/lib/node/html/tableBodyCell.js +0 -128
  124. package/lib/node/html/tableBodyRow.js +0 -128
  125. package/lib/node/html/tableHead.js +0 -128
  126. package/lib/node/html/tableHeadCell.js +0 -128
  127. package/lib/node/html/tableHeadRow.js +0 -128
  128. package/lib/node/html/text/block.js +0 -128
  129. package/lib/node/html/text/comma.js +0 -146
  130. package/lib/node/html/text/emphasised.js +0 -128
  131. package/lib/node/html/text/index.js +0 -161
  132. package/lib/node/html/text/inline.js +0 -197
  133. package/lib/node/html/text/plain.js +0 -128
  134. package/lib/node/html/text/strong.js +0 -128
  135. package/lib/node/html/text/stronglyEmphasised.js +0 -222
  136. package/lib/node/html/text.js +0 -180
  137. package/lib/node/html/topmost.js +0 -250
  138. package/lib/node/html.js +0 -574
  139. package/lib/node/markdown/blockEnd.js +0 -107
  140. package/lib/node/markdown/blockStart.js +0 -131
  141. package/lib/node/markdown/className.js +0 -118
  142. package/lib/node/markdown/directive/embed.js +0 -158
  143. package/lib/node/markdown/directive/include.js +0 -158
  144. package/lib/node/markdown/division.js +0 -237
  145. package/lib/node/markdown/error.js +0 -118
  146. package/lib/node/markdown/footnote.js +0 -118
  147. package/lib/node/markdown/hyperlink.js +0 -155
  148. package/lib/node/markdown/image.js +0 -118
  149. package/lib/node/markdown/item/ordered.js +0 -124
  150. package/lib/node/markdown/link/email.js +0 -155
  151. package/lib/node/markdown/link/footnote.js +0 -120
  152. package/lib/node/markdown/listng/block.js +0 -118
  153. package/lib/node/markdown/listng/inline.js +0 -124
  154. package/lib/node/markdown/path.js +0 -118
  155. package/lib/node/markdown/reference.js +0 -124
  156. package/lib/node/markdown/subDivision.js +0 -144
  157. package/lib/node/markdown/text/block.js +0 -107
  158. package/lib/node/markdown/text/plain.js +0 -107
  159. package/lib/node/markdown/text.js +0 -142
  160. package/lib/node/markdown/topmost.js +0 -165
  161. package/lib/node/markdown.js +0 -188
  162. package/lib/node/markdownStyle/amount.js +0 -119
  163. package/lib/node/markdownStyle/argument.js +0 -107
  164. package/lib/node/markdownStyle/arguments.js +0 -107
  165. package/lib/node/markdownStyle/colour.js +0 -118
  166. package/lib/node/markdownStyle/declaration.js +0 -107
  167. package/lib/node/markdownStyle/error.js +0 -107
  168. package/lib/node/markdownStyle/identifier.js +0 -119
  169. package/lib/node/markdownStyle/name.js +0 -107
  170. package/lib/node/markdownStyle/nonsense.js +0 -107
  171. package/lib/node/markdownStyle/pseudoClass.js +0 -107
  172. package/lib/node/markdownStyle/ruleName.js +0 -118
  173. package/lib/node/markdownStyle/ruleSet.js +0 -107
  174. package/lib/node/markdownStyle/selector.js +0 -107
  175. package/lib/node/markdownStyle/selectors.js +0 -107
  176. package/lib/node/markdownStyle/selectorsList.js +0 -107
  177. package/lib/node/markdownStyle/string.js +0 -118
  178. package/lib/node/markdownStyle/topmost.js +0 -107
  179. package/lib/node/markdownStyle/value.js +0 -107
  180. package/lib/node/markdownStyle/values.js +0 -107
  181. package/lib/node/markdownStyle.js +0 -153
  182. package/lib/prepends.js +0 -26
  183. package/lib/queries/markdown.js +0 -20
  184. package/lib/queries/markdownStyle.js +0 -20
  185. package/lib/ruleNames/markdown.js +0 -370
  186. package/lib/ruleNames/markdownStyle.js +0 -125
  187. package/lib/styleElement/markdown/default.js +0 -150
  188. package/lib/styleElement/markdown.js +0 -207
  189. package/lib/styleElement.js +0 -95
  190. package/lib/tokenTypes.js +0 -110
  191. package/lib/transform/css/ruleSet.js +0 -124
  192. package/lib/transform/css/selectors.js +0 -126
  193. package/lib/transform/css/selectorsList.js +0 -144
  194. package/lib/transform/css.js +0 -161
  195. package/lib/transform/html/division.js +0 -130
  196. package/lib/transform/html/footnote.js +0 -140
  197. package/lib/transform/html/heading/index.js +0 -109
  198. package/lib/transform/html/index.js +0 -159
  199. package/lib/transform/html/indexAnchor.js +0 -118
  200. package/lib/transform/html/item/contents.js +0 -130
  201. package/lib/transform/html/item/footnote.js +0 -117
  202. package/lib/transform/html/item/index.js +0 -117
  203. package/lib/transform/html/line.js +0 -116
  204. package/lib/transform/html/link/contents.js +0 -130
  205. package/lib/transform/html/link/footnote.js +0 -158
  206. package/lib/transform/html/list/contents.js +0 -180
  207. package/lib/transform/html/list/footnotes.js +0 -129
  208. package/lib/transform/html/list/index.js +0 -118
  209. package/lib/transform/html/pageNumber.js +0 -124
  210. package/lib/transform/html.js +0 -148
  211. package/lib/transform/markdown/directive/embed.js +0 -139
  212. package/lib/transform/markdown/directive/ignore.js +0 -108
  213. package/lib/transform/markdown/directive/include.js +0 -148
  214. package/lib/transform/markdown/subDivision.js +0 -108
  215. package/lib/transform/markdown.js +0 -148
  216. package/lib/utilities/contents.js +0 -172
  217. package/lib/utilities/css.js +0 -57
  218. package/lib/utilities/division.js +0 -121
  219. package/lib/utilities/dom.js +0 -58
  220. package/lib/utilities/element.js +0 -26
  221. package/lib/utilities/entities.js +0 -17
  222. package/lib/utilities/entries.js +0 -24
  223. package/lib/utilities/grammar.js +0 -131
  224. package/lib/utilities/html.js +0 -99
  225. package/lib/utilities/index.js +0 -265
  226. package/lib/utilities/markdown.js +0 -81
  227. package/lib/utilities/markdownStyle.js +0 -13
  228. package/lib/utilities/object.js +0 -65
  229. package/lib/utilities/query.js +0 -65
  230. package/lib/utilities/string.js +0 -45
@@ -1,131 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get CSSClassFromMarkdownStyleNode () {
13
- return CSSClassFromMarkdownStyleNode;
14
- },
15
- get HTMLClassFromMarkdownNode () {
16
- return HTMLClassFromMarkdownNode;
17
- },
18
- get cssFromMarkdownStyleAndSelectorsString () {
19
- return cssFromMarkdownStyleAndSelectorsString;
20
- },
21
- get default () {
22
- return _default;
23
- },
24
- get markdownNodeFromTokens () {
25
- return markdownNodeFromTokens;
26
- },
27
- get markdownStyleNodeFromTokens () {
28
- return markdownStyleNodeFromTokens;
29
- },
30
- get tokensFromMarkdown () {
31
- return tokensFromMarkdown;
32
- },
33
- get tokensFromMarkdownStyle () {
34
- return tokensFromMarkdownStyle;
35
- },
36
- get topmostCSSNodeFromMarkdownStyleNode () {
37
- return topmostCSSNodeFromMarkdownStyleNode;
38
- },
39
- get topmostHTMLNodeFromMarkdownNode () {
40
- return topmostHTMLNodeFromMarkdownNode;
41
- }
42
- });
43
- var _occamdom = require("occam-dom");
44
- var _css = /*#__PURE__*/ _interop_require_default(require("../node/css"));
45
- var _html = /*#__PURE__*/ _interop_require_default(require("../node/html"));
46
- var _css1 = /*#__PURE__*/ _interop_require_default(require("../map/node/css"));
47
- var _html1 = /*#__PURE__*/ _interop_require_default(require("../map/node/html"));
48
- var _lexer = /*#__PURE__*/ _interop_require_default(require("../markdown/lexer"));
49
- var _parser = /*#__PURE__*/ _interop_require_default(require("../markdown/parser"));
50
- var _topmost = /*#__PURE__*/ _interop_require_default(require("../node/css/topmost"));
51
- var _markdown = /*#__PURE__*/ _interop_require_default(require("../queries/markdown"));
52
- var _topmost1 = /*#__PURE__*/ _interop_require_default(require("../node/html/topmost"));
53
- var _lexer1 = /*#__PURE__*/ _interop_require_default(require("../markdownStyle/lexer"));
54
- var _parser1 = /*#__PURE__*/ _interop_require_default(require("../markdownStyle/parser"));
55
- var _markdownStyle = /*#__PURE__*/ _interop_require_default(require("../queries/markdownStyle"));
56
- var _query = require("../utilities/query");
57
- function _interop_require_default(obj) {
58
- return obj && obj.__esModule ? obj : {
59
- default: obj
60
- };
61
- }
62
- var topmostNodeFromOuterNodes = _occamdom.nodeUtilities.topmostNodeFromOuterNodes;
63
- var markdownLexer = _lexer.default.fromNothing(), markdownParser = _parser.default.fromNothing(), markdownStyleLexer = _lexer1.default.fromNothing(), markdownStyleParser = _parser1.default.fromNothing();
64
- function tokensFromMarkdown(markdown) {
65
- var lexer = markdownLexer, content = markdown, tokens = lexer.tokenise(content);
66
- return tokens;
67
- }
68
- function markdownNodeFromTokens(tokens) {
69
- var parser = markdownParser, startRule = parser.getStartRule(), node = parser.parse(tokens, startRule), markdownNode = node; ///
70
- return node;
71
- }
72
- function tokensFromMarkdownStyle(markdownStyle) {
73
- var lexer = markdownStyleLexer, content = markdownStyle, tokens = lexer.tokenise(content);
74
- return tokens;
75
- }
76
- function HTMLClassFromMarkdownNode(markdownNode) {
77
- var Class;
78
- if (markdownNode === null) {
79
- Class = _topmost1.default; ///
80
- } else {
81
- var nonTerminalNode = markdownNode, ruleName = nonTerminalNode.getRuleName();
82
- Class = _html1.default[ruleName] || _html.default;
83
- }
84
- return Class;
85
- }
86
- function markdownStyleNodeFromTokens(tokens) {
87
- var parser = markdownStyleParser, startRule = parser.getStartRule(), node = parser.parse(tokens, startRule), markdownStyleNode = node; ///
88
- return markdownStyleNode;
89
- }
90
- function CSSClassFromMarkdownStyleNode(markdownStyleNode) {
91
- var Class;
92
- if (markdownStyleNode === null) {
93
- Class = _topmost.default; ///
94
- } else {
95
- var nonTerminalNode = markdownStyleNode, ruleName = nonTerminalNode.getRuleName();
96
- Class = _css1.default[ruleName] || _css.default;
97
- }
98
- return Class;
99
- }
100
- function topmostHTMLNodeFromMarkdownNode(markdownNode) {
101
- var ClassFromOuterNode = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : HTMLClassFromMarkdownNode;
102
- var node = markdownNode, queries = _markdown.default, nodes = (0, _query.nodesFromNodeAndQueries)(node, queries), outerNodes = nodes, topmostNode = topmostNodeFromOuterNodes(ClassFromOuterNode, outerNodes), topmostHTMLNode = topmostNode; ///
103
- return topmostHTMLNode;
104
- }
105
- function topmostCSSNodeFromMarkdownStyleNode(markdownStyleNode) {
106
- var ClassFromOuterNode = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : CSSClassFromMarkdownStyleNode;
107
- var node = markdownStyleNode, queries = _markdownStyle.default, nodes = (0, _query.nodesFromNodeAndQueries)(node, queries), outerNodes = nodes, topmostNode = topmostNodeFromOuterNodes(ClassFromOuterNode, outerNodes), topmostCSSNode = topmostNode; ///
108
- return topmostCSSNode;
109
- }
110
- function cssFromMarkdownStyleAndSelectorsString(markdownStyle, selectorsString) {
111
- markdownStyle = "".concat(selectorsString, " {\n ").concat(markdownStyle, "\n}");
112
- var tokens = tokensFromMarkdownStyle(markdownStyle), markdownStyleNode = markdownStyleNodeFromTokens(tokens), topmostCSSNode = topmostCSSNodeFromMarkdownStyleNode(markdownStyleNode), context = {
113
- tokens: tokens
114
- };
115
- topmostCSSNode.resolve(context);
116
- var css = topmostCSSNode.asCSS(context);
117
- return css;
118
- }
119
- var _default = {
120
- tokensFromMarkdown: tokensFromMarkdown,
121
- markdownNodeFromTokens: markdownNodeFromTokens,
122
- tokensFromMarkdownStyle: tokensFromMarkdownStyle,
123
- HTMLClassFromMarkdownNode: HTMLClassFromMarkdownNode,
124
- markdownStyleNodeFromTokens: markdownStyleNodeFromTokens,
125
- CSSClassFromMarkdownStyleNode: CSSClassFromMarkdownStyleNode,
126
- topmostHTMLNodeFromMarkdownNode: topmostHTMLNodeFromMarkdownNode,
127
- topmostCSSNodeFromMarkdownStyleNode: topmostCSSNodeFromMarkdownStyleNode,
128
- cssFromMarkdownStyleAndSelectorsString: cssFromMarkdownStyleAndSelectorsString
129
- };
130
-
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZ3JhbW1hci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZVV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1kb21cIjtcblxuaW1wb3J0IENTU05vZGUgZnJvbSBcIi4uL25vZGUvY3NzXCI7XG5pbXBvcnQgSFRNTE5vZGUgZnJvbSBcIi4uL25vZGUvaHRtbFwiO1xuaW1wb3J0IGNzc05vZGVNYXAgZnJvbSBcIi4uL21hcC9ub2RlL2Nzc1wiO1xuaW1wb3J0IGh0bWxOb2RlTWFwIGZyb20gXCIuLi9tYXAvbm9kZS9odG1sXCI7XG5pbXBvcnQgTWFya2Rvd25MZXhlciBmcm9tIFwiLi4vbWFya2Rvd24vbGV4ZXJcIjtcbmltcG9ydCBNYXJrZG93blBhcnNlciBmcm9tIFwiLi4vbWFya2Rvd24vcGFyc2VyXCI7XG5pbXBvcnQgVG9wbW9zdENTU05vZGUgZnJvbSBcIi4uL25vZGUvY3NzL3RvcG1vc3RcIjtcbmltcG9ydCBtYXJrZG93blF1ZXJpZXMgZnJvbSBcIi4uL3F1ZXJpZXMvbWFya2Rvd25cIjtcbmltcG9ydCBUb3Btb3N0SFRNTE5vZGUgZnJvbSBcIi4uL25vZGUvaHRtbC90b3Btb3N0XCI7XG5pbXBvcnQgTWFya2Rvd25TdHlsZUxleGVyIGZyb20gXCIuLi9tYXJrZG93blN0eWxlL2xleGVyXCI7XG5pbXBvcnQgTWFya2Rvd25TdHlsZVBhcnNlciBmcm9tIFwiLi4vbWFya2Rvd25TdHlsZS9wYXJzZXJcIjtcbmltcG9ydCBtYXJrZG93blN0eWxlUXVlcmllcyBmcm9tIFwiLi4vcXVlcmllcy9tYXJrZG93blN0eWxlXCI7XG5cbmltcG9ydCB7IG5vZGVzRnJvbU5vZGVBbmRRdWVyaWVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB7IHRvcG1vc3ROb2RlRnJvbU91dGVyTm9kZXMgfSA9IG5vZGVVdGlsaXRpZXM7XG5cbmNvbnN0IG1hcmtkb3duTGV4ZXIgPSBNYXJrZG93bkxleGVyLmZyb21Ob3RoaW5nKCksXG4gICAgICBtYXJrZG93blBhcnNlciA9IE1hcmtkb3duUGFyc2VyLmZyb21Ob3RoaW5nKCksXG4gICAgICBtYXJrZG93blN0eWxlTGV4ZXIgPSBNYXJrZG93blN0eWxlTGV4ZXIuZnJvbU5vdGhpbmcoKSxcbiAgICAgIG1hcmtkb3duU3R5bGVQYXJzZXIgPSBNYXJrZG93blN0eWxlUGFyc2VyLmZyb21Ob3RoaW5nKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiB0b2tlbnNGcm9tTWFya2Rvd24obWFya2Rvd24pIHtcbiAgY29uc3QgbGV4ZXIgPSBtYXJrZG93bkxleGVyLCAvLy9cbiAgICAgICAgY29udGVudCA9IG1hcmtkb3duLCAgLy8vXG4gICAgICAgIHRva2VucyA9IGxleGVyLnRva2VuaXNlKGNvbnRlbnQpO1xuXG4gIHJldHVybiB0b2tlbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXJrZG93bk5vZGVGcm9tVG9rZW5zKHRva2Vucykge1xuICBjb25zdCBwYXJzZXIgPSBtYXJrZG93blBhcnNlciwgLy8vXG4gICAgICAgIHN0YXJ0UnVsZSA9IHBhcnNlci5nZXRTdGFydFJ1bGUoKSxcbiAgICAgICAgbm9kZSA9IHBhcnNlci5wYXJzZSh0b2tlbnMsIHN0YXJ0UnVsZSksXG4gICAgICAgIG1hcmtkb3duTm9kZSA9IG5vZGU7ICAvLy9cblxuICByZXR1cm4gbm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRva2Vuc0Zyb21NYXJrZG93blN0eWxlKG1hcmtkb3duU3R5bGUpIHtcbiAgY29uc3QgbGV4ZXIgPSBtYXJrZG93blN0eWxlTGV4ZXIsIC8vL1xuICAgICAgICBjb250ZW50ID0gbWFya2Rvd25TdHlsZSwgIC8vL1xuICAgICAgICB0b2tlbnMgPSBsZXhlci50b2tlbmlzZShjb250ZW50KTtcblxuICByZXR1cm4gdG9rZW5zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gSFRNTENsYXNzRnJvbU1hcmtkb3duTm9kZShtYXJrZG93bk5vZGUpIHtcbiAgbGV0IENsYXNzO1xuXG4gIGlmIChtYXJrZG93bk5vZGUgPT09IG51bGwpIHtcbiAgICBDbGFzcyA9IFRvcG1vc3RIVE1MTm9kZTsgIC8vL1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG1hcmtkb3duTm9kZSwgIC8vL1xuICAgICAgICAgIHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7XG5cbiAgICBDbGFzcyA9IGh0bWxOb2RlTWFwW3J1bGVOYW1lXSB8fCBIVE1MTm9kZTtcbiAgfVxuXG4gIHJldHVybiBDbGFzcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcmtkb3duU3R5bGVOb2RlRnJvbVRva2Vucyh0b2tlbnMpIHtcbiAgY29uc3QgcGFyc2VyID0gbWFya2Rvd25TdHlsZVBhcnNlciwgLy8vXG4gICAgICAgIHN0YXJ0UnVsZSA9IHBhcnNlci5nZXRTdGFydFJ1bGUoKSxcbiAgICAgICAgbm9kZSA9IHBhcnNlci5wYXJzZSh0b2tlbnMsIHN0YXJ0UnVsZSksXG4gICAgICAgIG1hcmtkb3duU3R5bGVOb2RlID0gbm9kZTsgLy8vXG5cbiAgcmV0dXJuIG1hcmtkb3duU3R5bGVOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ1NTQ2xhc3NGcm9tTWFya2Rvd25TdHlsZU5vZGUobWFya2Rvd25TdHlsZU5vZGUpIHtcbiAgbGV0IENsYXNzO1xuXG4gIGlmIChtYXJrZG93blN0eWxlTm9kZSA9PT0gbnVsbCkge1xuICAgIENsYXNzID0gVG9wbW9zdENTU05vZGU7ICAvLy9cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBtYXJrZG93blN0eWxlTm9kZSwgIC8vL1xuICAgICAgICAgIHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7XG5cbiAgICBDbGFzcyA9IGNzc05vZGVNYXBbcnVsZU5hbWVdIHx8IENTU05vZGU7XG4gIH1cblxuICByZXR1cm4gQ2xhc3M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b3Btb3N0SFRNTE5vZGVGcm9tTWFya2Rvd25Ob2RlKG1hcmtkb3duTm9kZSwgQ2xhc3NGcm9tT3V0ZXJOb2RlID0gSFRNTENsYXNzRnJvbU1hcmtkb3duTm9kZSkge1xuICBjb25zdCBub2RlID0gbWFya2Rvd25Ob2RlLCAgLy8vXG4gICAgICAgIHF1ZXJpZXMgPSBtYXJrZG93blF1ZXJpZXMsIC8vL1xuICAgICAgICBub2RlcyA9IG5vZGVzRnJvbU5vZGVBbmRRdWVyaWVzKG5vZGUsIHF1ZXJpZXMpLFxuICAgICAgICBvdXRlck5vZGVzID0gbm9kZXMsIC8vL1xuICAgICAgICB0b3Btb3N0Tm9kZSA9IHRvcG1vc3ROb2RlRnJvbU91dGVyTm9kZXMoQ2xhc3NGcm9tT3V0ZXJOb2RlLCBvdXRlck5vZGVzKSxcbiAgICAgICAgdG9wbW9zdEhUTUxOb2RlID0gdG9wbW9zdE5vZGU7ICAvLy9cblxuICByZXR1cm4gdG9wbW9zdEhUTUxOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9wbW9zdENTU05vZGVGcm9tTWFya2Rvd25TdHlsZU5vZGUobWFya2Rvd25TdHlsZU5vZGUsIENsYXNzRnJvbU91dGVyTm9kZSA9IENTU0NsYXNzRnJvbU1hcmtkb3duU3R5bGVOb2RlKSB7XG4gIGNvbnN0IG5vZGUgPSBtYXJrZG93blN0eWxlTm9kZSwgIC8vL1xuICAgICAgICBxdWVyaWVzID0gbWFya2Rvd25TdHlsZVF1ZXJpZXMsIC8vL1xuICAgICAgICBub2RlcyA9IG5vZGVzRnJvbU5vZGVBbmRRdWVyaWVzKG5vZGUsIHF1ZXJpZXMpLFxuICAgICAgICBvdXRlck5vZGVzID0gbm9kZXMsIC8vL1xuICAgICAgICB0b3Btb3N0Tm9kZSA9IHRvcG1vc3ROb2RlRnJvbU91dGVyTm9kZXMoQ2xhc3NGcm9tT3V0ZXJOb2RlLCBvdXRlck5vZGVzKSxcbiAgICAgICAgdG9wbW9zdENTU05vZGUgPSB0b3Btb3N0Tm9kZTsgIC8vL1xuXG4gIHJldHVybiB0b3Btb3N0Q1NTTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNzc0Zyb21NYXJrZG93blN0eWxlQW5kU2VsZWN0b3JzU3RyaW5nKG1hcmtkb3duU3R5bGUsIHNlbGVjdG9yc1N0cmluZykge1xuICBtYXJrZG93blN0eWxlID0gYCR7c2VsZWN0b3JzU3RyaW5nfSB7XG4gICR7bWFya2Rvd25TdHlsZX1cbn1gO1xuXG4gIGNvbnN0IHRva2VucyA9IHRva2Vuc0Zyb21NYXJrZG93blN0eWxlKG1hcmtkb3duU3R5bGUpLFxuICAgICAgICBtYXJrZG93blN0eWxlTm9kZSA9IG1hcmtkb3duU3R5bGVOb2RlRnJvbVRva2Vucyh0b2tlbnMpLFxuICAgICAgICB0b3Btb3N0Q1NTTm9kZSA9IHRvcG1vc3RDU1NOb2RlRnJvbU1hcmtkb3duU3R5bGVOb2RlKG1hcmtkb3duU3R5bGVOb2RlKSxcbiAgICAgICAgY29udGV4dCA9IHtcbiAgICAgICAgICB0b2tlbnNcbiAgICAgICAgfTtcblxuICB0b3Btb3N0Q1NTTm9kZS5yZXNvbHZlKGNvbnRleHQpO1xuXG4gIGNvbnN0IGNzcyA9IHRvcG1vc3RDU1NOb2RlLmFzQ1NTKGNvbnRleHQpO1xuXG4gIHJldHVybiBjc3M7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdG9rZW5zRnJvbU1hcmtkb3duLFxuICBtYXJrZG93bk5vZGVGcm9tVG9rZW5zLFxuICB0b2tlbnNGcm9tTWFya2Rvd25TdHlsZSxcbiAgSFRNTENsYXNzRnJvbU1hcmtkb3duTm9kZSxcbiAgbWFya2Rvd25TdHlsZU5vZGVGcm9tVG9rZW5zLFxuICBDU1NDbGFzc0Zyb21NYXJrZG93blN0eWxlTm9kZSxcbiAgdG9wbW9zdEhUTUxOb2RlRnJvbU1hcmtkb3duTm9kZSxcbiAgdG9wbW9zdENTU05vZGVGcm9tTWFya2Rvd25TdHlsZU5vZGUsXG4gIGNzc0Zyb21NYXJrZG93blN0eWxlQW5kU2VsZWN0b3JzU3RyaW5nXG59O1xuIl0sIm5hbWVzIjpbIkNTU0NsYXNzRnJvbU1hcmtkb3duU3R5bGVOb2RlIiwiSFRNTENsYXNzRnJvbU1hcmtkb3duTm9kZSIsImNzc0Zyb21NYXJrZG93blN0eWxlQW5kU2VsZWN0b3JzU3RyaW5nIiwibWFya2Rvd25Ob2RlRnJvbVRva2VucyIsIm1hcmtkb3duU3R5bGVOb2RlRnJvbVRva2VucyIsInRva2Vuc0Zyb21NYXJrZG93biIsInRva2Vuc0Zyb21NYXJrZG93blN0eWxlIiwidG9wbW9zdENTU05vZGVGcm9tTWFya2Rvd25TdHlsZU5vZGUiLCJ0b3Btb3N0SFRNTE5vZGVGcm9tTWFya2Rvd25Ob2RlIiwidG9wbW9zdE5vZGVGcm9tT3V0ZXJOb2RlcyIsIm5vZGVVdGlsaXRpZXMiLCJtYXJrZG93bkxleGVyIiwiTWFya2Rvd25MZXhlciIsImZyb21Ob3RoaW5nIiwibWFya2Rvd25QYXJzZXIiLCJNYXJrZG93blBhcnNlciIsIm1hcmtkb3duU3R5bGVMZXhlciIsIk1hcmtkb3duU3R5bGVMZXhlciIsIm1hcmtkb3duU3R5bGVQYXJzZXIiLCJNYXJrZG93blN0eWxlUGFyc2VyIiwibWFya2Rvd24iLCJsZXhlciIsImNvbnRlbnQiLCJ0b2tlbnMiLCJ0b2tlbmlzZSIsInBhcnNlciIsInN0YXJ0UnVsZSIsImdldFN0YXJ0UnVsZSIsIm5vZGUiLCJwYXJzZSIsIm1hcmtkb3duTm9kZSIsIm1hcmtkb3duU3R5bGUiLCJDbGFzcyIsIlRvcG1vc3RIVE1MTm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJodG1sTm9kZU1hcCIsIkhUTUxOb2RlIiwibWFya2Rvd25TdHlsZU5vZGUiLCJUb3Btb3N0Q1NTTm9kZSIsImNzc05vZGVNYXAiLCJDU1NOb2RlIiwiQ2xhc3NGcm9tT3V0ZXJOb2RlIiwicXVlcmllcyIsIm1hcmtkb3duUXVlcmllcyIsIm5vZGVzIiwibm9kZXNGcm9tTm9kZUFuZFF1ZXJpZXMiLCJvdXRlck5vZGVzIiwidG9wbW9zdE5vZGUiLCJ0b3Btb3N0SFRNTE5vZGUiLCJtYXJrZG93blN0eWxlUXVlcmllcyIsInRvcG1vc3RDU1NOb2RlIiwic2VsZWN0b3Jz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
@@ -1,99 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get contentsDirectiveHTMLNodeFromNode () {
13
- return contentsDirectiveHTMLNodeFromNode;
14
- },
15
- get default () {
16
- return _default;
17
- },
18
- get divisionHTMLNodesFromNode () {
19
- return divisionHTMLNodesFromNode;
20
- },
21
- get footnoteHTMLNodesFromNode () {
22
- return footnoteHTMLNodesFromNode;
23
- },
24
- get footnoteLinkHTMLNodesFromNode () {
25
- return footnoteLinkHTMLNodesFromNode;
26
- },
27
- get footnotesDirectiveHTMLNodeFromNode () {
28
- return footnotesDirectiveHTMLNodeFromNode;
29
- },
30
- get headingHTMLNodesFromNode () {
31
- return headingHTMLNodesFromNode;
32
- },
33
- get htmlNodesFromNode () {
34
- return htmlNodesFromNode;
35
- },
36
- get indexDirectiveHTMLNodeFromNode () {
37
- return indexDirectiveHTMLNodeFromNode;
38
- },
39
- get pageNumberDirectiveHTMLNodeFromNode () {
40
- return pageNumberDirectiveHTMLNodeFromNode;
41
- }
42
- });
43
- var _occamquery = require("occam-query");
44
- var _query = require("../utilities/query");
45
- var indexDirectiveHTMLNodeQuery = _occamquery.Query.fromExpressionString("//indexDirective"), contentsDirectiveHTMLNodeQuery = _occamquery.Query.fromExpressionString("//contentsDirective"), footnotesDirectiveHTMLNodeQuery = _occamquery.Query.fromExpressionString("//footnotesDirective"), pageNumberDirectiveHTMLNodeQuery = _occamquery.Query.fromExpressionString("//pageNumberDirective"), htmlNodesQuery = _occamquery.Query.fromExpressionString("/division/*"), headingHTMLNodesQuery = _occamquery.Query.fromExpressionString("//primaryHeading|secondaryHeading|tertiaryHeading|tertiaryHeading"), divisionHTMLNodesQuery = _occamquery.Query.fromExpressionString("/html/division"), footnoteHTMLNodesQuery = _occamquery.Query.fromExpressionString("//footnote"), footnoteLinkHTMLNodesQuery = _occamquery.Query.fromExpressionString("//footnoteLink");
46
- function indexDirectiveHTMLNodeFromNode(node) {
47
- var indexDirectiveHTMLNode = (0, _query.nodeFromNodeAndQuery)(node, indexDirectiveHTMLNodeQuery);
48
- return indexDirectiveHTMLNode;
49
- }
50
- function contentsDirectiveHTMLNodeFromNode(node) {
51
- var contentsDirectiveHTMLNode = (0, _query.nodeFromNodeAndQuery)(node, contentsDirectiveHTMLNodeQuery);
52
- return contentsDirectiveHTMLNode;
53
- }
54
- function footnotesDirectiveHTMLNodeFromNode(node) {
55
- var footnotesDirectiveHTMLNode = (0, _query.nodeFromNodeAndQuery)(node, footnotesDirectiveHTMLNodeQuery);
56
- return footnotesDirectiveHTMLNode;
57
- }
58
- function pageNumberDirectiveHTMLNodeFromNode(node) {
59
- var pageNumberDirectiveHTMLNode = (0, _query.nodeFromNodeAndQuery)(node, pageNumberDirectiveHTMLNodeQuery);
60
- return pageNumberDirectiveHTMLNode;
61
- }
62
- function htmlNodesFromNode(node) {
63
- var htmlNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
64
- (0, _query.nodesFromNodeAndQuery)(node, htmlNodesQuery, htmlNodes);
65
- return htmlNodes;
66
- }
67
- function headingHTMLNodesFromNode(node) {
68
- var headingHTMLNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
69
- (0, _query.nodesFromNodeAndQuery)(node, headingHTMLNodesQuery, headingHTMLNodes);
70
- return headingHTMLNodes;
71
- }
72
- function divisionHTMLNodesFromNode(node) {
73
- var divisionHTMLNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
74
- (0, _query.nodesFromNodeAndQuery)(node, divisionHTMLNodesQuery, divisionHTMLNodes);
75
- return divisionHTMLNodes;
76
- }
77
- function footnoteHTMLNodesFromNode(node) {
78
- var footnoteHTMLNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
79
- (0, _query.nodesFromNodeAndQuery)(node, footnoteHTMLNodesQuery, footnoteHTMLNodes);
80
- return footnoteHTMLNodes;
81
- }
82
- function footnoteLinkHTMLNodesFromNode(node) {
83
- var footnoteLinkHTMLNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
84
- (0, _query.nodesFromNodeAndQuery)(node, footnoteLinkHTMLNodesQuery, footnoteLinkHTMLNodes);
85
- return footnoteLinkHTMLNodes;
86
- }
87
- var _default = {
88
- indexDirectiveHTMLNodeFromNode: indexDirectiveHTMLNodeFromNode,
89
- contentsDirectiveHTMLNodeFromNode: contentsDirectiveHTMLNodeFromNode,
90
- footnotesDirectiveHTMLNodeFromNode: footnotesDirectiveHTMLNodeFromNode,
91
- pageNumberDirectiveHTMLNodeFromNode: pageNumberDirectiveHTMLNodeFromNode,
92
- htmlNodesFromNode: htmlNodesFromNode,
93
- headingHTMLNodesFromNode: headingHTMLNodesFromNode,
94
- divisionHTMLNodesFromNode: divisionHTMLNodesFromNode,
95
- footnoteHTMLNodesFromNode: footnoteHTMLNodesFromNode,
96
- footnoteLinkHTMLNodesFromNode: footnoteLinkHTMLNodesFromNode
97
- };
98
-
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaHRtbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgUXVlcnkgfSBmcm9tIFwib2NjYW0tcXVlcnlcIjtcblxuaW1wb3J0IHsgbm9kZUZyb21Ob2RlQW5kUXVlcnksIG5vZGVzRnJvbU5vZGVBbmRRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgaW5kZXhEaXJlY3RpdmVIVE1MTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoXCIvL2luZGV4RGlyZWN0aXZlXCIpLFxuICAgICAgY29udGVudHNEaXJlY3RpdmVIVE1MTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoXCIvL2NvbnRlbnRzRGlyZWN0aXZlXCIpLFxuICAgICAgZm9vdG5vdGVzRGlyZWN0aXZlSFRNTE5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiLy9mb290bm90ZXNEaXJlY3RpdmVcIiksXG4gICAgICBwYWdlTnVtYmVyRGlyZWN0aXZlSFRNTE5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiLy9wYWdlTnVtYmVyRGlyZWN0aXZlXCIpLFxuICAgICAgaHRtbE5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9kaXZpc2lvbi8qXCIpLFxuICAgICAgaGVhZGluZ0hUTUxOb2Rlc1F1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoXCIvL3ByaW1hcnlIZWFkaW5nfHNlY29uZGFyeUhlYWRpbmd8dGVydGlhcnlIZWFkaW5nfHRlcnRpYXJ5SGVhZGluZ1wiKSxcbiAgICAgIGRpdmlzaW9uSFRNTE5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9odG1sL2RpdmlzaW9uXCIpLFxuICAgICAgZm9vdG5vdGVIVE1MTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiLy9mb290bm90ZVwiKSxcbiAgICAgIGZvb3Rub3RlTGlua0hUTUxOb2Rlc1F1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoXCIvL2Zvb3Rub3RlTGlua1wiKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluZGV4RGlyZWN0aXZlSFRNTE5vZGVGcm9tTm9kZShub2RlKSB7XG4gIGNvbnN0IGluZGV4RGlyZWN0aXZlSFRNTE5vZGUgPSBub2RlRnJvbU5vZGVBbmRRdWVyeShub2RlLCBpbmRleERpcmVjdGl2ZUhUTUxOb2RlUXVlcnkpO1xuXG4gIHJldHVybiBpbmRleERpcmVjdGl2ZUhUTUxOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGVudHNEaXJlY3RpdmVIVE1MTm9kZUZyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgY29udGVudHNEaXJlY3RpdmVIVE1MTm9kZSA9IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGNvbnRlbnRzRGlyZWN0aXZlSFRNTE5vZGVRdWVyeSk7XG5cbiAgcmV0dXJuIGNvbnRlbnRzRGlyZWN0aXZlSFRNTE5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb290bm90ZXNEaXJlY3RpdmVIVE1MTm9kZUZyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgZm9vdG5vdGVzRGlyZWN0aXZlSFRNTE5vZGUgPSBub2RlRnJvbU5vZGVBbmRRdWVyeShub2RlLCBmb290bm90ZXNEaXJlY3RpdmVIVE1MTm9kZVF1ZXJ5KTtcblxuICByZXR1cm4gZm9vdG5vdGVzRGlyZWN0aXZlSFRNTE5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYWdlTnVtYmVyRGlyZWN0aXZlSFRNTE5vZGVGcm9tTm9kZShub2RlKSB7XG4gIGNvbnN0IHBhZ2VOdW1iZXJEaXJlY3RpdmVIVE1MTm9kZSA9IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIHBhZ2VOdW1iZXJEaXJlY3RpdmVIVE1MTm9kZVF1ZXJ5KTtcblxuICByZXR1cm4gcGFnZU51bWJlckRpcmVjdGl2ZUhUTUxOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaHRtbE5vZGVzRnJvbU5vZGUobm9kZSwgaHRtbE5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGh0bWxOb2Rlc1F1ZXJ5LCBodG1sTm9kZXMpO1xuXG4gIHJldHVybiBodG1sTm9kZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoZWFkaW5nSFRNTE5vZGVzRnJvbU5vZGUobm9kZSwgaGVhZGluZ0hUTUxOb2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBoZWFkaW5nSFRNTE5vZGVzUXVlcnksIGhlYWRpbmdIVE1MTm9kZXMpO1xuXG4gIHJldHVybiBoZWFkaW5nSFRNTE5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGl2aXNpb25IVE1MTm9kZXNGcm9tTm9kZShub2RlLCBkaXZpc2lvbkhUTUxOb2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBkaXZpc2lvbkhUTUxOb2Rlc1F1ZXJ5LCBkaXZpc2lvbkhUTUxOb2Rlcyk7XG5cbiAgcmV0dXJuIGRpdmlzaW9uSFRNTE5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9vdG5vdGVIVE1MTm9kZXNGcm9tTm9kZShub2RlLCBmb290bm90ZUhUTUxOb2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBmb290bm90ZUhUTUxOb2Rlc1F1ZXJ5LCBmb290bm90ZUhUTUxOb2Rlcyk7XG5cbiAgcmV0dXJuIGZvb3Rub3RlSFRNTE5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9vdG5vdGVMaW5rSFRNTE5vZGVzRnJvbU5vZGUobm9kZSwgZm9vdG5vdGVMaW5rSFRNTE5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGZvb3Rub3RlTGlua0hUTUxOb2Rlc1F1ZXJ5LCBmb290bm90ZUxpbmtIVE1MTm9kZXMpO1xuXG4gIHJldHVybiBmb290bm90ZUxpbmtIVE1MTm9kZXM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgaW5kZXhEaXJlY3RpdmVIVE1MTm9kZUZyb21Ob2RlLFxuICBjb250ZW50c0RpcmVjdGl2ZUhUTUxOb2RlRnJvbU5vZGUsXG4gIGZvb3Rub3Rlc0RpcmVjdGl2ZUhUTUxOb2RlRnJvbU5vZGUsXG4gIHBhZ2VOdW1iZXJEaXJlY3RpdmVIVE1MTm9kZUZyb21Ob2RlLFxuICBodG1sTm9kZXNGcm9tTm9kZSxcbiAgaGVhZGluZ0hUTUxOb2Rlc0Zyb21Ob2RlLFxuICBkaXZpc2lvbkhUTUxOb2Rlc0Zyb21Ob2RlLFxuICBmb290bm90ZUhUTUxOb2Rlc0Zyb21Ob2RlLFxuICBmb290bm90ZUxpbmtIVE1MTm9kZXNGcm9tTm9kZVxufTtcbiJdLCJuYW1lcyI6WyJjb250ZW50c0RpcmVjdGl2ZUhUTUxOb2RlRnJvbU5vZGUiLCJkaXZpc2lvbkhUTUxOb2Rlc0Zyb21Ob2RlIiwiZm9vdG5vdGVIVE1MTm9kZXNGcm9tTm9kZSIsImZvb3Rub3RlTGlua0hUTUxOb2Rlc0Zyb21Ob2RlIiwiZm9vdG5vdGVzRGlyZWN0aXZlSFRNTE5vZGVGcm9tTm9kZSIsImhlYWRpbmdIVE1MTm9kZXNGcm9tTm9kZSIsImh0bWxOb2Rlc0Zyb21Ob2RlIiwiaW5kZXhEaXJlY3RpdmVIVE1MTm9kZUZyb21Ob2RlIiwicGFnZU51bWJlckRpcmVjdGl2ZUhUTUxOb2RlRnJvbU5vZGUiLCJpbmRleERpcmVjdGl2ZUhUTUxOb2RlUXVlcnkiLCJRdWVyeSIsImZyb21FeHByZXNzaW9uU3RyaW5nIiwiY29udGVudHNEaXJlY3RpdmVIVE1MTm9kZVF1ZXJ5IiwiZm9vdG5vdGVzRGlyZWN0aXZlSFRNTE5vZGVRdWVyeSIsInBhZ2VOdW1iZXJEaXJlY3RpdmVIVE1MTm9kZVF1ZXJ5IiwiaHRtbE5vZGVzUXVlcnkiLCJoZWFkaW5nSFRNTE5vZGVzUXVlcnkiLCJkaXZpc2lvbkhUTUxOb2Rlc1F1ZXJ5IiwiZm9vdG5vdGVIVE1MTm9kZXNRdWVyeSIsImZvb3Rub3RlTGlua0hUTUxOb2Rlc1F1ZXJ5Iiwibm9kZSIsImluZGV4RGlyZWN0aXZlSFRNTE5vZGUiLCJub2RlRnJvbU5vZGVBbmRRdWVyeSIsImNvbnRlbnRzRGlyZWN0aXZlSFRNTE5vZGUiLCJmb290bm90ZXNEaXJlY3RpdmVIVE1MTm9kZSIsInBhZ2VOdW1iZXJEaXJlY3RpdmVIVE1MTm9kZSIsImh0bWxOb2RlcyIsIm5vZGVzRnJvbU5vZGVBbmRRdWVyeSIsImhlYWRpbmdIVE1MTm9kZXMiLCJkaXZpc2lvbkhUTUxOb2RlcyIsImZvb3Rub3RlSFRNTE5vZGVzIiwiZm9vdG5vdGVMaW5rSFRNTE5vZGVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFzQmdCQTtlQUFBQTs7UUFnRGhCO2VBQUE7O1FBbEJnQkM7ZUFBQUE7O1FBTUFDO2VBQUFBOztRQU1BQztlQUFBQTs7UUFwQ0FDO2VBQUFBOztRQWtCQUM7ZUFBQUE7O1FBTkFDO2VBQUFBOztRQXhCQUM7ZUFBQUE7O1FBa0JBQztlQUFBQTs7OzBCQWhDTTtxQkFFc0M7QUFFNUQsSUFBTUMsOEJBQThCQyxpQkFBSyxDQUFDQyxvQkFBb0IsQ0FBQyxxQkFDekRDLGlDQUFpQ0YsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUMsd0JBQzVERSxrQ0FBa0NILGlCQUFLLENBQUNDLG9CQUFvQixDQUFDLHlCQUM3REcsbUNBQW1DSixpQkFBSyxDQUFDQyxvQkFBb0IsQ0FBQywwQkFDOURJLGlCQUFpQkwsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUMsZ0JBQzVDSyx3QkFBd0JOLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDLHNFQUNuRE0seUJBQXlCUCxpQkFBSyxDQUFDQyxvQkFBb0IsQ0FBQyxtQkFDcERPLHlCQUF5QlIsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUMsZUFDcERRLDZCQUE2QlQsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUM7QUFFdkQsU0FBU0osK0JBQStCYSxJQUFJO0lBQ2pELElBQU1DLHlCQUF5QkMsSUFBQUEsMkJBQW9CLEVBQUNGLE1BQU1YO0lBRTFELE9BQU9ZO0FBQ1Q7QUFFTyxTQUFTckIsa0NBQWtDb0IsSUFBSTtJQUNwRCxJQUFNRyw0QkFBNEJELElBQUFBLDJCQUFvQixFQUFDRixNQUFNUjtJQUU3RCxPQUFPVztBQUNUO0FBRU8sU0FBU25CLG1DQUFtQ2dCLElBQUk7SUFDckQsSUFBTUksNkJBQTZCRixJQUFBQSwyQkFBb0IsRUFBQ0YsTUFBTVA7SUFFOUQsT0FBT1c7QUFDVDtBQUVPLFNBQVNoQixvQ0FBb0NZLElBQUk7SUFDdEQsSUFBTUssOEJBQThCSCxJQUFBQSwyQkFBb0IsRUFBQ0YsTUFBTU47SUFFL0QsT0FBT1c7QUFDVDtBQUVPLFNBQVNuQixrQkFBa0JjLElBQUk7UUFBRU0sWUFBQUEsaUVBQVksRUFBRTtJQUNwREMsSUFBQUEsNEJBQXFCLEVBQUNQLE1BQU1MLGdCQUFnQlc7SUFFNUMsT0FBT0E7QUFDVDtBQUVPLFNBQVNyQix5QkFBeUJlLElBQUk7UUFBRVEsbUJBQUFBLGlFQUFtQixFQUFFO0lBQ2xFRCxJQUFBQSw0QkFBcUIsRUFBQ1AsTUFBTUosdUJBQXVCWTtJQUVuRCxPQUFPQTtBQUNUO0FBRU8sU0FBUzNCLDBCQUEwQm1CLElBQUk7UUFBRVMsb0JBQUFBLGlFQUFvQixFQUFFO0lBQ3BFRixJQUFBQSw0QkFBcUIsRUFBQ1AsTUFBTUgsd0JBQXdCWTtJQUVwRCxPQUFPQTtBQUNUO0FBRU8sU0FBUzNCLDBCQUEwQmtCLElBQUk7UUFBRVUsb0JBQUFBLGlFQUFvQixFQUFFO0lBQ3BFSCxJQUFBQSw0QkFBcUIsRUFBQ1AsTUFBTUYsd0JBQXdCWTtJQUVwRCxPQUFPQTtBQUNUO0FBRU8sU0FBUzNCLDhCQUE4QmlCLElBQUk7UUFBRVcsd0JBQUFBLGlFQUF3QixFQUFFO0lBQzVFSixJQUFBQSw0QkFBcUIsRUFBQ1AsTUFBTUQsNEJBQTRCWTtJQUV4RCxPQUFPQTtBQUNUO0lBRUEsV0FBZTtJQUNieEIsZ0NBQUFBO0lBQ0FQLG1DQUFBQTtJQUNBSSxvQ0FBQUE7SUFDQUkscUNBQUFBO0lBQ0FGLG1CQUFBQTtJQUNBRCwwQkFBQUE7SUFDQUosMkJBQUFBO0lBQ0FDLDJCQUFBQTtJQUNBQywrQkFBQUE7QUFDRiJ9
@@ -1,265 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "indexMapFromIndexDirectiveHTMLNodeAndDivisionHTMLNodes", {
6
- enumerable: true,
7
- get: function() {
8
- return indexMapFromIndexDirectiveHTMLNodeAndDivisionHTMLNodes;
9
- }
10
- });
11
- var _occamdom = require("occam-dom");
12
- var _necessary = require("necessary");
13
- var _match = /*#__PURE__*/ _interop_require_default(require("../index/match"));
14
- var _object = require("../utilities/object");
15
- var _constants = require("../constants");
16
- function _array_like_to_array(arr, len) {
17
- if (len == null || len > arr.length) len = arr.length;
18
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
19
- return arr2;
20
- }
21
- function _array_without_holes(arr) {
22
- if (Array.isArray(arr)) return _array_like_to_array(arr);
23
- }
24
- function _interop_require_default(obj) {
25
- return obj && obj.__esModule ? obj : {
26
- default: obj
27
- };
28
- }
29
- function _iterable_to_array(iter) {
30
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
31
- }
32
- function _non_iterable_spread() {
33
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
34
- }
35
- function _to_consumable_array(arr) {
36
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
37
- }
38
- function _unsupported_iterable_to_array(o, minLen) {
39
- if (!o) return;
40
- if (typeof o === "string") return _array_like_to_array(o, minLen);
41
- var n = Object.prototype.toString.call(o).slice(8, -1);
42
- if (n === "Object" && o.constructor) n = o.constructor.name;
43
- if (n === "Map" || n === "Set") return Array.from(n);
44
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
45
- }
46
- var compress = _necessary.arrayUtilities.compress, isLessThan = _occamdom.nodeUtilities.isLessThan, isAncestorOf = _occamdom.nodeUtilities.isAncestorOf;
47
- function indexMapFromIndexDirectiveHTMLNodeAndDivisionHTMLNodes(indexDirectiveHTMLNode, divisionHTMLNodes, context) {
48
- var indexMap = createIndexMap(indexDirectiveHTMLNode, divisionHTMLNodes, context);
49
- removeIgnoredWords(indexMap, context);
50
- adjustMixedPlurals(indexMap, context);
51
- adjustPluralPlurals(indexMap, context);
52
- adjustSingularPlurals(indexMap, context);
53
- adjustProperNouns(indexMap, context);
54
- adjustAcronyms(indexMap, context);
55
- compressPageNumbers(indexMap);
56
- return indexMap;
57
- }
58
- function createIndexMap(indexDirectiveHTMLNode, divisionHTMLNodes, context) {
59
- var indexMap = {};
60
- var indexOptions = context.indexOptions, phrases = indexOptions.phrases, indexMatches = phrases.map(function(phrase) {
61
- var indexMatch = _match.default.fromPhrase(phrase);
62
- return indexMatch;
63
- });
64
- divisionHTMLNodes.forEach(function(divisionHTMLNode) {
65
- var divisionHTMLNodeLessThanIndexDirectiveHTMLNode = isLessThan(divisionHTMLNode, indexDirectiveHTMLNode);
66
- if (divisionHTMLNodeLessThanIndexDirectiveHTMLNode) {
67
- var divisionHTMLNodeAncestorOfIndexDirectiveHTMLNode = isAncestorOf(divisionHTMLNode, indexDirectiveHTMLNode);
68
- if (!divisionHTMLNodeAncestorOfIndexDirectiveHTMLNode) {
69
- var pageNumber = divisionHTMLNode.pageNumber();
70
- if (pageNumber !== null) {
71
- var plainText = divisionHTMLNode.asPlainText(context), wordsOrPhrases = wordsOrPhrasesFromPlainTextAndIndexMatches(plainText, indexMatches);
72
- wordsOrPhrases.forEach(function(wordOrPhrase) {
73
- var pageNumbers = indexMap.hasOwnProperty(wordOrPhrase) ? indexMap[wordOrPhrase] : [];
74
- indexMap[wordOrPhrase] = pageNumbers;
75
- pageNumbers.push(pageNumber);
76
- });
77
- }
78
- }
79
- }
80
- });
81
- return indexMap;
82
- }
83
- function wordsOrPhrasesFromPlainTextAndIndexMatches(plainText, indexMatches) {
84
- var wordsOrPhrases;
85
- plainText = preparePlainText(plainText); ///
86
- indexMatches.forEach(function(indexMatch) {
87
- plainText = indexMatch.replace(plainText);
88
- });
89
- wordsOrPhrases = plainText.split(_constants.SINGLE_SPACE);
90
- wordsOrPhrases = wordsOrPhrases.map(function(wordOrPhrase) {
91
- wordOrPhrase = _match.default.revert(wordOrPhrase); ///
92
- return wordOrPhrase;
93
- });
94
- return wordsOrPhrases;
95
- }
96
- function compressPageNumbers(indexMap) {
97
- (0, _object.mapValues)(indexMap, function(wordOrPhrase, pageNumbers) {
98
- compress(pageNumbers, function(pageNumberA, pageNumberB) {
99
- if (pageNumberA === pageNumberB) {
100
- return true;
101
- }
102
- });
103
- pageNumbers.sort(function(pageNumberB, pageNumberA) {
104
- pageNumberA = Number(pageNumberA); ///
105
- pageNumberB = Number(pageNumberB); ///
106
- var difference = pageNumberB - pageNumberA;
107
- return difference;
108
- });
109
- return pageNumbers;
110
- });
111
- }
112
- function removeIgnoredWords(indexMap, context) {
113
- var indexOptions = context.indexOptions, ignoredWords = indexOptions.ignoredWords;
114
- ignoredWords.forEach(function(ignoredWord) {
115
- delete indexMap[ignoredWord];
116
- });
117
- }
118
- function adjustProperNouns(indexMap, context) {
119
- var indexOptions = context.indexOptions, properNouns = indexOptions.properNouns;
120
- var lowerCaseProperNouns = properNouns.map(function(properNoun) {
121
- var lowerCaseProperNoun = properNoun.toLowerCase();
122
- return lowerCaseProperNoun;
123
- });
124
- (0, _object.mapKeys)(indexMap, function(wordOrPhrase) {
125
- var index = lowerCaseProperNouns.findIndex(function(lowerCaseProperName) {
126
- if (lowerCaseProperName === wordOrPhrase) {
127
- return true;
128
- }
129
- });
130
- if (index > -1) {
131
- var properNoun = properNouns[index];
132
- wordOrPhrase = properNoun; ///
133
- }
134
- return wordOrPhrase;
135
- });
136
- }
137
- function preparePlainText(plainText) {
138
- plainText = plainText.toLowerCase(); ///
139
- plainText = plainText.replace(/[^a-z0-9\- ]/g, _constants.SINGLE_SPACE);
140
- plainText = plainText.replace(/\s+/g, _constants.SINGLE_SPACE);
141
- plainText = plainText.replace(/^\s+|\s+$/g, _constants.EMPTY_STRING);
142
- return plainText;
143
- }
144
- function adjustAcronyms(indexMap, context) {
145
- var indexOptions = context.indexOptions, acronyms = indexOptions.acronyms;
146
- var lowerCaseAcronyms = acronyms.map(function(acronym) {
147
- var lowerCaseAcronym = acronym.toLowerCase();
148
- return lowerCaseAcronym;
149
- });
150
- (0, _object.mapKeys)(indexMap, function(wordOrPhrase) {
151
- var index = lowerCaseAcronyms.findIndex(function(lowerCaseProperName) {
152
- if (lowerCaseProperName === wordOrPhrase) {
153
- return true;
154
- }
155
- });
156
- if (index > -1) {
157
- var acronym = acronyms[index];
158
- wordOrPhrase = acronym; ///
159
- }
160
- return wordOrPhrase;
161
- });
162
- }
163
- function adjustMixedPlurals(indexMap, context) {
164
- var indexOptions = context.indexOptions, plurals = indexOptions.plurals, mixedPlurals = reducePlurals(plurals, isMixed), pluralPlurals = mapPlurals(mixedPlurals, mixedToPlural), singularPlurals = mapPlurals(mixedPlurals, mixedToSingular);
165
- (0, _object.forEach)(indexMap, function(wordOrPhrase, pageNumbers) {
166
- var singularPluralsIncludesWordOrPhrase = singularPlurals.includes(wordOrPhrase);
167
- if (singularPluralsIncludesWordOrPhrase) {
168
- var singularWordOrPhrase = wordOrPhrase, singularPageNumbers = pageNumbers, mixedWordOrPhrase = singularToMixed(singularWordOrPhrase), mixedPageNumbers = indexMap[mixedWordOrPhrase] || [];
169
- pageNumbers = _to_consumable_array(singularPageNumbers).concat(_to_consumable_array(mixedPageNumbers));
170
- delete indexMap[singularWordOrPhrase];
171
- indexMap[mixedWordOrPhrase] = pageNumbers;
172
- }
173
- var pluralPluralsIncludesWordOrPhrase = pluralPlurals.includes(wordOrPhrase);
174
- if (pluralPluralsIncludesWordOrPhrase) {
175
- var pluralWordOrPhrase = wordOrPhrase, pluralPageNumbers = pageNumbers, mixedWordOrPhrase1 = pluralToMixed(pluralWordOrPhrase), mixedPageNumbers1 = indexMap[mixedWordOrPhrase1] || [];
176
- pageNumbers = _to_consumable_array(pluralPageNumbers).concat(_to_consumable_array(mixedPageNumbers1));
177
- delete indexMap[pluralWordOrPhrase];
178
- indexMap[mixedWordOrPhrase1] = pageNumbers;
179
- }
180
- });
181
- }
182
- function adjustPluralPlurals(indexMap, context) {
183
- var indexOptions = context.indexOptions, plurals = indexOptions.plurals, pluralPlurals = reducePlurals(plurals, isPlural), singularPlurals = mapPlurals(pluralPlurals, pluralToSingular);
184
- (0, _object.forEach)(indexMap, function(wordOrPhrase, pageNumbers) {
185
- var singularPluralsIncludesWordOrPhrase = singularPlurals.includes(wordOrPhrase);
186
- if (singularPluralsIncludesWordOrPhrase) {
187
- var singularWordOrPhrase = wordOrPhrase, singularPageNumbers = pageNumbers, pluralWordOrPhrase = singularToPlural(wordOrPhrase), pluralPageNumbers = indexMap[pluralWordOrPhrase] || [];
188
- pageNumbers = _to_consumable_array(singularPageNumbers).concat(_to_consumable_array(pluralPageNumbers));
189
- delete indexMap[singularWordOrPhrase];
190
- indexMap[pluralWordOrPhrase] = pageNumbers;
191
- }
192
- });
193
- }
194
- function adjustSingularPlurals(indexMap, context) {
195
- var indexOptions = context.indexOptions, plurals = indexOptions.plurals, singularPlurals = reducePlurals(plurals, isSingular), pluralPlurals = mapPlurals(singularPlurals, singularToPlural);
196
- (0, _object.forEach)(indexMap, function(wordOrPhrase, pageNumbers) {
197
- var pluralPluralsIncludesWordOrPhrase = pluralPlurals.includes(wordOrPhrase);
198
- if (pluralPluralsIncludesWordOrPhrase) {
199
- var singularWordOrPhrase = pluralToSingular(wordOrPhrase), singularPageNumbers = indexMap[singularWordOrPhrase] || [], pluralWordOrPhrase = wordOrPhrase, pluralPageNumbers = pageNumbers; ///
200
- pageNumbers = _to_consumable_array(singularPageNumbers).concat(_to_consumable_array(pluralPageNumbers));
201
- delete indexMap[pluralWordOrPhrase];
202
- indexMap[singularWordOrPhrase] = pageNumbers;
203
- }
204
- });
205
- }
206
- function reducePlurals(plurals, callback) {
207
- plurals = plurals.reduce(function(plurals, plural) {
208
- var result = callback(plural);
209
- if (result) {
210
- plurals.push(plural);
211
- }
212
- return plurals;
213
- }, []);
214
- return plurals;
215
- }
216
- function mapPlurals(plurals, callback) {
217
- plurals = plurals.map(function(plural) {
218
- plural = callback(plural);
219
- return plural;
220
- });
221
- return plurals;
222
- }
223
- function isSingular(text) {
224
- var indexMatches = /[^s)]$/.test(text), singular = indexMatches; ///
225
- return singular;
226
- }
227
- function isPlural(text) {
228
- var indexMatches = /(ies|s)$/.test(text), plural = indexMatches; ///
229
- return plural;
230
- }
231
- function isMixed(text) {
232
- var indexMatches = /\(s\)$/.test(text), mixed = indexMatches; ///
233
- return mixed;
234
- }
235
- function mixedToPlural(text) {
236
- text = text ///
237
- .replace(/\(s\)$/, _constants.S_STRING);
238
- return text;
239
- }
240
- function pluralToMixed(text) {
241
- text = text ///
242
- .replace(/s$/, _constants.PARENTHESISED_S_STRING);
243
- return text;
244
- }
245
- function mixedToSingular(text) {
246
- text = text ///
247
- .replace(/\(s\)$/, _constants.EMPTY_STRING);
248
- return text;
249
- }
250
- function singularToMixed(text) {
251
- text = "".concat(text, "(s)");
252
- return text;
253
- }
254
- function singularToPlural(text) {
255
- text = "".concat(text, "s") ///
256
- .replace(/ys$/, _constants.IES_STRING);
257
- return text;
258
- }
259
- function pluralToSingular(text) {
260
- text = text ///
261
- .replace(/ies$/, _constants.Y_STRING).replace(/s$/, _constants.EMPTY_STRING);
262
- return text;
263
- }
264
-
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tZG9tXCJcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgSW5kZXhNYXRjaCBmcm9tIFwiLi4vaW5kZXgvbWF0Y2hcIjtcblxuaW1wb3J0IHsgZm9yRWFjaCwgbWFwS2V5cywgbWFwVmFsdWVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9vYmplY3RcIjtcbmltcG9ydCB7IFlfU1RSSU5HLCBTX1NUUklORywgSUVTX1NUUklORywgRU1QVFlfU1RSSU5HLCBTSU5HTEVfU1BBQ0UsIFBBUkVOVEhFU0lTRURfU19TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgY29tcHJlc3MgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyBpc0xlc3NUaGFuLCBpc0FuY2VzdG9yT2YgfSA9IG5vZGVVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmRleE1hcEZyb21JbmRleERpcmVjdGl2ZUhUTUxOb2RlQW5kRGl2aXNpb25IVE1MTm9kZXMoaW5kZXhEaXJlY3RpdmVIVE1MTm9kZSwgZGl2aXNpb25IVE1MTm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgaW5kZXhNYXAgPSBjcmVhdGVJbmRleE1hcChpbmRleERpcmVjdGl2ZUhUTUxOb2RlLCBkaXZpc2lvbkhUTUxOb2RlcywgY29udGV4dCk7XG5cbiAgcmVtb3ZlSWdub3JlZFdvcmRzKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBhZGp1c3RNaXhlZFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdFBsdXJhbFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdFNpbmd1bGFyUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCk7XG5cbiAgYWRqdXN0UHJvcGVyTm91bnMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdEFjcm9ueW1zKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBjb21wcmVzc1BhZ2VOdW1iZXJzKGluZGV4TWFwKTtcblxuICByZXR1cm4gaW5kZXhNYXA7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUluZGV4TWFwKGluZGV4RGlyZWN0aXZlSFRNTE5vZGUsIGRpdmlzaW9uSFRNTE5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IGluZGV4TWFwID0ge307XG5cbiAgY29uc3QgeyBpbmRleE9wdGlvbnMgfSA9IGNvbnRleHQsXG4gICAgICAgIHsgcGhyYXNlcyB9ID0gaW5kZXhPcHRpb25zLFxuICAgICAgICBpbmRleE1hdGNoZXMgPSBwaHJhc2VzLm1hcCgocGhyYXNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5kZXhNYXRjaCA9IEluZGV4TWF0Y2guZnJvbVBocmFzZShwaHJhc2UpO1xuXG4gICAgICAgICAgcmV0dXJuIGluZGV4TWF0Y2g7XG4gICAgICAgIH0pO1xuXG4gIGRpdmlzaW9uSFRNTE5vZGVzLmZvckVhY2goKGRpdmlzaW9uSFRNTE5vZGUpID0+IHtcbiAgICBjb25zdCBkaXZpc2lvbkhUTUxOb2RlTGVzc1RoYW5JbmRleERpcmVjdGl2ZUhUTUxOb2RlID0gaXNMZXNzVGhhbihkaXZpc2lvbkhUTUxOb2RlLCBpbmRleERpcmVjdGl2ZUhUTUxOb2RlKTtcblxuICAgIGlmIChkaXZpc2lvbkhUTUxOb2RlTGVzc1RoYW5JbmRleERpcmVjdGl2ZUhUTUxOb2RlKSB7XG4gICAgICBjb25zdCBkaXZpc2lvbkhUTUxOb2RlQW5jZXN0b3JPZkluZGV4RGlyZWN0aXZlSFRNTE5vZGUgPSBpc0FuY2VzdG9yT2YoZGl2aXNpb25IVE1MTm9kZSwgaW5kZXhEaXJlY3RpdmVIVE1MTm9kZSk7XG5cbiAgICAgIGlmICghZGl2aXNpb25IVE1MTm9kZUFuY2VzdG9yT2ZJbmRleERpcmVjdGl2ZUhUTUxOb2RlKSB7XG4gICAgICAgIGNvbnN0IHBhZ2VOdW1iZXIgPSBkaXZpc2lvbkhUTUxOb2RlLnBhZ2VOdW1iZXIoKTtcblxuICAgICAgICBpZiAocGFnZU51bWJlciAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHBsYWluVGV4dCA9IGRpdmlzaW9uSFRNTE5vZGUuYXNQbGFpblRleHQoY29udGV4dCksXG4gICAgICAgICAgICAgICAgd29yZHNPclBocmFzZXMgPSB3b3Jkc09yUGhyYXNlc0Zyb21QbGFpblRleHRBbmRJbmRleE1hdGNoZXMocGxhaW5UZXh0LCBpbmRleE1hdGNoZXMpO1xuXG4gICAgICAgICAgd29yZHNPclBocmFzZXMuZm9yRWFjaCgod29yZE9yUGhyYXNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYWdlTnVtYmVycyA9IGluZGV4TWFwLmhhc093blByb3BlcnR5KHdvcmRPclBocmFzZSkgP1xuICAgICAgICAgICAgICAgICAgICBpbmRleE1hcFt3b3JkT3JQaHJhc2VdIDpcbiAgICAgICAgICAgICAgICAgICAgICBbXTtcblxuICAgICAgICAgICAgaW5kZXhNYXBbd29yZE9yUGhyYXNlXSA9IHBhZ2VOdW1iZXJzO1xuXG4gICAgICAgICAgICBwYWdlTnVtYmVycy5wdXNoKHBhZ2VOdW1iZXIpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gaW5kZXhNYXA7XG59XG5cbmZ1bmN0aW9uIHdvcmRzT3JQaHJhc2VzRnJvbVBsYWluVGV4dEFuZEluZGV4TWF0Y2hlcyhwbGFpblRleHQsIGluZGV4TWF0Y2hlcykge1xuICBsZXQgd29yZHNPclBocmFzZXM7XG5cbiAgcGxhaW5UZXh0ID0gcHJlcGFyZVBsYWluVGV4dChwbGFpblRleHQpOyAgLy8vXG5cbiAgaW5kZXhNYXRjaGVzLmZvckVhY2goKGluZGV4TWF0Y2gpID0+IHtcbiAgICBwbGFpblRleHQgPSBpbmRleE1hdGNoLnJlcGxhY2UocGxhaW5UZXh0KTtcbiAgfSk7XG5cbiAgd29yZHNPclBocmFzZXMgPSBwbGFpblRleHQuc3BsaXQoU0lOR0xFX1NQQUNFKTtcblxuICB3b3Jkc09yUGhyYXNlcyA9IHdvcmRzT3JQaHJhc2VzLm1hcCgod29yZE9yUGhyYXNlKSA9PiB7XG4gICAgd29yZE9yUGhyYXNlID0gSW5kZXhNYXRjaC5yZXZlcnQod29yZE9yUGhyYXNlKTsgIC8vL1xuXG4gICAgcmV0dXJuIHdvcmRPclBocmFzZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHdvcmRzT3JQaHJhc2VzO1xufVxuXG5mdW5jdGlvbiBjb21wcmVzc1BhZ2VOdW1iZXJzKGluZGV4TWFwKSB7XG4gIG1hcFZhbHVlcyhpbmRleE1hcCwgKHdvcmRPclBocmFzZSwgcGFnZU51bWJlcnMpID0+IHtcbiAgICBjb21wcmVzcyhwYWdlTnVtYmVycywgKHBhZ2VOdW1iZXJBLCBwYWdlTnVtYmVyQikgPT4ge1xuICAgICAgaWYgKHBhZ2VOdW1iZXJBID09PSBwYWdlTnVtYmVyQikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHBhZ2VOdW1iZXJzLnNvcnQoKHBhZ2VOdW1iZXJCLCBwYWdlTnVtYmVyQSkgPT4ge1xuICAgICAgcGFnZU51bWJlckEgPSBOdW1iZXIocGFnZU51bWJlckEpOyAgLy8vXG5cbiAgICAgIHBhZ2VOdW1iZXJCID0gTnVtYmVyKHBhZ2VOdW1iZXJCKTsgIC8vL1xuXG4gICAgICBjb25zdCBkaWZmZXJlbmNlID0gcGFnZU51bWJlckIgLSBwYWdlTnVtYmVyQTtcblxuICAgICAgcmV0dXJuIGRpZmZlcmVuY2U7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGFnZU51bWJlcnM7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZW1vdmVJZ25vcmVkV29yZHMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBpbmRleE9wdGlvbnMgfSA9IGNvbnRleHQsXG4gICAgICAgIHsgaWdub3JlZFdvcmRzIH0gPSBpbmRleE9wdGlvbnM7XG5cbiAgaWdub3JlZFdvcmRzLmZvckVhY2goKGlnbm9yZWRXb3JkKSA9PiB7XG4gICAgZGVsZXRlIGluZGV4TWFwW2lnbm9yZWRXb3JkXTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFkanVzdFByb3Blck5vdW5zKGluZGV4TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IHByb3Blck5vdW5zIH0gPSBpbmRleE9wdGlvbnM7XG5cbiAgY29uc3QgbG93ZXJDYXNlUHJvcGVyTm91bnMgPSBwcm9wZXJOb3Vucy5tYXAoKHByb3Blck5vdW4pID0+IHtcbiAgICBjb25zdCBsb3dlckNhc2VQcm9wZXJOb3VuID0gcHJvcGVyTm91bi50b0xvd2VyQ2FzZSgpO1xuXG4gICAgcmV0dXJuIGxvd2VyQ2FzZVByb3Blck5vdW47XG4gIH0pO1xuXG4gIG1hcEtleXMoaW5kZXhNYXAsICh3b3JkT3JQaHJhc2UpID0+IHtcbiAgICBjb25zdCBpbmRleCA9IGxvd2VyQ2FzZVByb3Blck5vdW5zLmZpbmRJbmRleCgobG93ZXJDYXNlUHJvcGVyTmFtZSkgPT4ge1xuICAgICAgaWYgKGxvd2VyQ2FzZVByb3Blck5hbWUgPT09IHdvcmRPclBocmFzZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICBjb25zdCBwcm9wZXJOb3VuID0gcHJvcGVyTm91bnNbaW5kZXhdO1xuXG4gICAgICB3b3JkT3JQaHJhc2UgPSBwcm9wZXJOb3VuOyAgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIHdvcmRPclBocmFzZTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVQbGFpblRleHQocGxhaW5UZXh0KSB7XG4gIHBsYWluVGV4dCA9IHBsYWluVGV4dC50b0xvd2VyQ2FzZSgpOyAgLy8vXG5cbiAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnJlcGxhY2UoL1teYS16MC05XFwtIF0vZywgU0lOR0xFX1NQQUNFKTtcblxuICBwbGFpblRleHQgPSBwbGFpblRleHQucmVwbGFjZSgvXFxzKy9nLCBTSU5HTEVfU1BBQ0UpO1xuXG4gIHBsYWluVGV4dCA9IHBsYWluVGV4dC5yZXBsYWNlKC9eXFxzK3xcXHMrJC9nLCBFTVBUWV9TVFJJTkcpO1xuXG4gIHJldHVybiBwbGFpblRleHQ7XG59XG5cbmZ1bmN0aW9uIGFkanVzdEFjcm9ueW1zKGluZGV4TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IGFjcm9ueW1zIH0gPSBpbmRleE9wdGlvbnM7XG5cbiAgY29uc3QgbG93ZXJDYXNlQWNyb255bXMgPSBhY3Jvbnltcy5tYXAoKGFjcm9ueW0pID0+IHtcbiAgICBjb25zdCBsb3dlckNhc2VBY3JvbnltID0gYWNyb255bS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgcmV0dXJuIGxvd2VyQ2FzZUFjcm9ueW07XG4gIH0pO1xuXG4gIG1hcEtleXMoaW5kZXhNYXAsICh3b3JkT3JQaHJhc2UpID0+IHtcbiAgICBjb25zdCBpbmRleCA9IGxvd2VyQ2FzZUFjcm9ueW1zLmZpbmRJbmRleCgobG93ZXJDYXNlUHJvcGVyTmFtZSkgPT4ge1xuICAgICAgaWYgKGxvd2VyQ2FzZVByb3Blck5hbWUgPT09IHdvcmRPclBocmFzZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICBjb25zdCBhY3JvbnltID0gYWNyb255bXNbaW5kZXhdO1xuXG4gICAgICB3b3JkT3JQaHJhc2UgPSBhY3JvbnltOyAgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIHdvcmRPclBocmFzZTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFkanVzdE1peGVkUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IGluZGV4T3B0aW9ucyB9ID0gY29udGV4dCxcbiAgICAgICAgeyBwbHVyYWxzIH0gPSBpbmRleE9wdGlvbnMsXG4gICAgICAgIG1peGVkUGx1cmFscyA9IHJlZHVjZVBsdXJhbHMocGx1cmFscywgaXNNaXhlZCksXG4gICAgICAgIHBsdXJhbFBsdXJhbHMgPSBtYXBQbHVyYWxzKG1peGVkUGx1cmFscywgbWl4ZWRUb1BsdXJhbCksXG4gICAgICAgIHNpbmd1bGFyUGx1cmFscyA9IG1hcFBsdXJhbHMobWl4ZWRQbHVyYWxzLCBtaXhlZFRvU2luZ3VsYXIpO1xuXG4gIGZvckVhY2goaW5kZXhNYXAsICh3b3JkT3JQaHJhc2UsIHBhZ2VOdW1iZXJzKSA9PiB7XG4gICAgY29uc3Qgc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UgPSBzaW5ndWxhclBsdXJhbHMuaW5jbHVkZXMod29yZE9yUGhyYXNlKTtcblxuICAgIGlmIChzaW5ndWxhclBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSkge1xuICAgICAgY29uc3Qgc2luZ3VsYXJXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UsICAvLy9cbiAgICAgICAgICAgIHNpbmd1bGFyUGFnZU51bWJlcnMgPSBwYWdlTnVtYmVycywgIC8vL1xuICAgICAgICAgICAgbWl4ZWRXb3JkT3JQaHJhc2UgPSBzaW5ndWxhclRvTWl4ZWQoc2luZ3VsYXJXb3JkT3JQaHJhc2UpLFxuICAgICAgICAgICAgbWl4ZWRQYWdlTnVtYmVycyA9IGluZGV4TWFwW21peGVkV29yZE9yUGhyYXNlXSB8fCBbXTtcblxuICAgICAgcGFnZU51bWJlcnMgPSBbXG4gICAgICAgIC4uLnNpbmd1bGFyUGFnZU51bWJlcnMsXG4gICAgICAgIC4uLm1peGVkUGFnZU51bWJlcnNcbiAgICAgIF07XG5cbiAgICAgIGRlbGV0ZSBpbmRleE1hcFtzaW5ndWxhcldvcmRPclBocmFzZV07XG5cbiAgICAgIGluZGV4TWFwW21peGVkV29yZE9yUGhyYXNlXSA9IHBhZ2VOdW1iZXJzO1xuICAgIH1cblxuICAgIGNvbnN0IHBsdXJhbFBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSA9IHBsdXJhbFBsdXJhbHMuaW5jbHVkZXMod29yZE9yUGhyYXNlKTtcblxuICAgIGlmIChwbHVyYWxQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UpIHtcbiAgICAgIGNvbnN0IHBsdXJhbFdvcmRPclBocmFzZSA9IHdvcmRPclBocmFzZSwgIC8vL1xuICAgICAgICAgICAgcGx1cmFsUGFnZU51bWJlcnMgPSBwYWdlTnVtYmVycywgIC8vL1xuICAgICAgICAgICAgbWl4ZWRXb3JkT3JQaHJhc2UgPSBwbHVyYWxUb01peGVkKHBsdXJhbFdvcmRPclBocmFzZSksXG4gICAgICAgICAgICBtaXhlZFBhZ2VOdW1iZXJzID0gaW5kZXhNYXBbbWl4ZWRXb3JkT3JQaHJhc2VdIHx8IFtdO1xuXG4gICAgICBwYWdlTnVtYmVycyA9IFtcbiAgICAgICAgLi4ucGx1cmFsUGFnZU51bWJlcnMsXG4gICAgICAgIC4uLm1peGVkUGFnZU51bWJlcnNcbiAgICAgIF07XG5cbiAgICAgIGRlbGV0ZSBpbmRleE1hcFtwbHVyYWxXb3JkT3JQaHJhc2VdO1xuXG4gICAgICBpbmRleE1hcFttaXhlZFdvcmRPclBocmFzZV0gPSBwYWdlTnVtYmVycztcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGp1c3RQbHVyYWxQbHVyYWxzKGluZGV4TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IHBsdXJhbHMgfSA9IGluZGV4T3B0aW9ucyxcbiAgICAgICAgcGx1cmFsUGx1cmFscyA9IHJlZHVjZVBsdXJhbHMocGx1cmFscywgaXNQbHVyYWwpLFxuICAgICAgICBzaW5ndWxhclBsdXJhbHMgPSBtYXBQbHVyYWxzKHBsdXJhbFBsdXJhbHMsIHBsdXJhbFRvU2luZ3VsYXIpO1xuXG4gIGZvckVhY2goaW5kZXhNYXAsICh3b3JkT3JQaHJhc2UsIHBhZ2VOdW1iZXJzKSA9PiB7XG4gICAgY29uc3Qgc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UgPSBzaW5ndWxhclBsdXJhbHMuaW5jbHVkZXMod29yZE9yUGhyYXNlKTtcblxuICAgIGlmIChzaW5ndWxhclBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSkge1xuICAgICAgY29uc3Qgc2luZ3VsYXJXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UsICAvLy9cbiAgICAgICAgICAgIHNpbmd1bGFyUGFnZU51bWJlcnMgPSBwYWdlTnVtYmVycywgIC8vL1xuICAgICAgICAgICAgcGx1cmFsV29yZE9yUGhyYXNlID0gc2luZ3VsYXJUb1BsdXJhbCh3b3JkT3JQaHJhc2UpLFxuICAgICAgICAgICAgcGx1cmFsUGFnZU51bWJlcnMgPSBpbmRleE1hcFtwbHVyYWxXb3JkT3JQaHJhc2VdIHx8IFtdO1xuXG4gICAgICBwYWdlTnVtYmVycyA9IFtcbiAgICAgICAgLi4uc2luZ3VsYXJQYWdlTnVtYmVycyxcbiAgICAgICAgLi4ucGx1cmFsUGFnZU51bWJlcnNcbiAgICAgIF07XG5cbiAgICAgIGRlbGV0ZSBpbmRleE1hcFtzaW5ndWxhcldvcmRPclBocmFzZV07XG5cbiAgICAgIGluZGV4TWFwW3BsdXJhbFdvcmRPclBocmFzZV0gPSBwYWdlTnVtYmVycztcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGp1c3RTaW5ndWxhclBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBpbmRleE9wdGlvbnMgfSA9IGNvbnRleHQsXG4gICAgICAgIHsgcGx1cmFscyB9ID0gaW5kZXhPcHRpb25zLFxuICAgICAgICBzaW5ndWxhclBsdXJhbHMgPSByZWR1Y2VQbHVyYWxzKHBsdXJhbHMsIGlzU2luZ3VsYXIpLFxuICAgICAgICBwbHVyYWxQbHVyYWxzID0gbWFwUGx1cmFscyhzaW5ndWxhclBsdXJhbHMsIHNpbmd1bGFyVG9QbHVyYWwpO1xuXG4gIGZvckVhY2goaW5kZXhNYXAsICh3b3JkT3JQaHJhc2UsIHBhZ2VOdW1iZXJzKSA9PiB7XG4gICAgICBjb25zdCBwbHVyYWxQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UgPSBwbHVyYWxQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICAgIGlmIChwbHVyYWxQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UpIHtcbiAgICAgICAgY29uc3Qgc2luZ3VsYXJXb3JkT3JQaHJhc2UgPSBwbHVyYWxUb1Npbmd1bGFyKHdvcmRPclBocmFzZSksXG4gICAgICAgICAgICAgIHNpbmd1bGFyUGFnZU51bWJlcnMgPSBpbmRleE1hcFtzaW5ndWxhcldvcmRPclBocmFzZV0gfHwgW10sXG4gICAgICAgICAgICAgIHBsdXJhbFdvcmRPclBocmFzZSA9IHdvcmRPclBocmFzZSwgIC8vL1xuICAgICAgICAgICAgICBwbHVyYWxQYWdlTnVtYmVycyA9IHBhZ2VOdW1iZXJzOyAgLy8vXG5cbiAgICAgICAgcGFnZU51bWJlcnMgPSBbXG4gICAgICAgICAgLi4uc2luZ3VsYXJQYWdlTnVtYmVycyxcbiAgICAgICAgICAuLi5wbHVyYWxQYWdlTnVtYmVyc1xuICAgICAgICBdO1xuXG4gICAgICAgIGRlbGV0ZSBpbmRleE1hcFtwbHVyYWxXb3JkT3JQaHJhc2VdO1xuXG4gICAgICAgIGluZGV4TWFwW3Npbmd1bGFyV29yZE9yUGhyYXNlXSA9IHBhZ2VOdW1iZXJzO1xuICAgICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVkdWNlUGx1cmFscyhwbHVyYWxzLCBjYWxsYmFjaykge1xuICBwbHVyYWxzID0gcGx1cmFscy5yZWR1Y2UoKHBsdXJhbHMsIHBsdXJhbCkgPT4geyAvLy9cbiAgICBjb25zdCByZXN1bHQgPSBjYWxsYmFjayhwbHVyYWwpO1xuXG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgcGx1cmFscy5wdXNoKHBsdXJhbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBsdXJhbHM7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gcGx1cmFscztcbn1cblxuZnVuY3Rpb24gbWFwUGx1cmFscyhwbHVyYWxzLCBjYWxsYmFjaykge1xuICBwbHVyYWxzID0gcGx1cmFscy5tYXAoKHBsdXJhbCkgPT4geyAvLy9cbiAgICBwbHVyYWwgPSBjYWxsYmFjayhwbHVyYWwpO1xuXG4gICAgcmV0dXJuIHBsdXJhbDtcbiAgfSk7XG5cbiAgcmV0dXJuIHBsdXJhbHM7XG59XG5cbmZ1bmN0aW9uIGlzU2luZ3VsYXIodGV4dCkge1xuICBjb25zdCBpbmRleE1hdGNoZXMgPSAvW15zKV0kLy50ZXN0KHRleHQpLFxuICAgICAgICBzaW5ndWxhciA9IGluZGV4TWF0Y2hlczsgLy8vXG5cbiAgcmV0dXJuIHNpbmd1bGFyO1xufVxuXG5mdW5jdGlvbiBpc1BsdXJhbCh0ZXh0KSB7XG4gIGNvbnN0IGluZGV4TWF0Y2hlcyA9IC8oaWVzfHMpJC8udGVzdCh0ZXh0KSxcbiAgICAgICAgcGx1cmFsID0gaW5kZXhNYXRjaGVzOyAvLy9cblxuICByZXR1cm4gcGx1cmFsO1xufVxuXG5mdW5jdGlvbiBpc01peGVkKHRleHQpIHtcbiAgY29uc3QgaW5kZXhNYXRjaGVzID0gL1xcKHNcXCkkLy50ZXN0KHRleHQpLFxuICAgICAgICBtaXhlZCA9IGluZGV4TWF0Y2hlczsgLy8vXG5cbiAgcmV0dXJuIG1peGVkO1xufVxuXG5mdW5jdGlvbiBtaXhlZFRvUGx1cmFsKHRleHQpIHtcbiAgdGV4dCA9IHRleHQgLy8vXG4gICAgICAgICAgIC5yZXBsYWNlKC9cXChzXFwpJC8sIFNfU1RSSU5HKTtcblxuICByZXR1cm4gdGV4dDtcbn1cblxuZnVuY3Rpb24gcGx1cmFsVG9NaXhlZCh0ZXh0KSB7XG4gIHRleHQgPSB0ZXh0IC8vL1xuICAgICAgICAgICAucmVwbGFjZSgvcyQvLCBQQVJFTlRIRVNJU0VEX1NfU1RSSU5HKVxuXG4gIHJldHVybiB0ZXh0O1xufVxuXG5mdW5jdGlvbiBtaXhlZFRvU2luZ3VsYXIodGV4dCkge1xuICB0ZXh0ID0gdGV4dCAvLy9cbiAgICAgICAgICAucmVwbGFjZSgvXFwoc1xcKSQvLCBFTVBUWV9TVFJJTkcpO1xuXG4gIHJldHVybiB0ZXh0O1xufVxuXG5mdW5jdGlvbiBzaW5ndWxhclRvTWl4ZWQodGV4dCkge1xuICB0ZXh0ID0gYCR7dGV4dH0ocylgO1xuXG4gIHJldHVybiB0ZXh0O1xufVxuXG5mdW5jdGlvbiBzaW5ndWxhclRvUGx1cmFsKHRleHQpIHtcbiAgdGV4dCA9IGAke3RleHR9c2AgLy8vXG4gICAgICAgICAgIC5yZXBsYWNlKC95cyQvLCBJRVNfU1RSSU5HKTtcblxuICByZXR1cm4gdGV4dDtcbn1cblxuZnVuY3Rpb24gcGx1cmFsVG9TaW5ndWxhcih0ZXh0KSB7XG4gIHRleHQgPSB0ZXh0IC8vL1xuICAgICAgICAgICAucmVwbGFjZSgvaWVzJC8sIFlfU1RSSU5HKVxuICAgICAgICAgICAucmVwbGFjZSgvcyQvLCBFTVBUWV9TVFJJTkcpO1xuXG4gIHJldHVybiB0ZXh0O1xufVxuIl0sIm5hbWVzIjpbImluZGV4TWFwRnJvbUluZGV4RGlyZWN0aXZlSFRNTE5vZGVBbmREaXZpc2lvbkhUTUxOb2RlcyIsImNvbXByZXNzIiwiYXJyYXlVdGlsaXRpZXMiLCJpc0xlc3NUaGFuIiwibm9kZVV0aWxpdGllcyIsImlzQW5jZXN0b3JPZiIsImluZGV4RGlyZWN0aXZlSFRNTE5vZGUiLCJkaXZpc2lvbkhUTUxOb2RlcyIsImNvbnRleHQiLCJpbmRleE1hcCIsImNyZWF0ZUluZGV4TWFwIiwicmVtb3ZlSWdub3JlZFdvcmRzIiwiYWRqdXN0TWl4ZWRQbHVyYWxzIiwiYWRqdXN0UGx1cmFsUGx1cmFscyIsImFkanVzdFNpbmd1bGFyUGx1cmFscyIsImFkanVzdFByb3Blck5vdW5zIiwiYWRqdXN0QWNyb255bXMiLCJjb21wcmVzc1BhZ2VOdW1iZXJzIiwiaW5kZXhPcHRpb25zIiwicGhyYXNlcyIsImluZGV4TWF0Y2hlcyIsIm1hcCIsInBocmFzZSIsImluZGV4TWF0Y2giLCJJbmRleE1hdGNoIiwiZnJvbVBocmFzZSIsImZvckVhY2giLCJkaXZpc2lvbkhUTUxOb2RlIiwiZGl2aXNpb25IVE1MTm9kZUxlc3NUaGFuSW5kZXhEaXJlY3RpdmVIVE1MTm9kZSIsImRpdmlzaW9uSFRNTE5vZGVBbmNlc3Rvck9mSW5kZXhEaXJlY3RpdmVIVE1MTm9kZSIsInBhZ2VOdW1iZXIiLCJwbGFpblRleHQiLCJhc1BsYWluVGV4dCIsIndvcmRzT3JQaHJhc2VzIiwid29yZHNPclBocmFzZXNGcm9tUGxhaW5UZXh0QW5kSW5kZXhNYXRjaGVzIiwid29yZE9yUGhyYXNlIiwicGFnZU51bWJlcnMiLCJoYXNPd25Qcm9wZXJ0eSIsInB1c2giLCJwcmVwYXJlUGxhaW5UZXh0IiwicmVwbGFjZSIsInNwbGl0IiwiU0lOR0xFX1NQQUNFIiwicmV2ZXJ0IiwibWFwVmFsdWVzIiwicGFnZU51bWJlckEiLCJwYWdlTnVtYmVyQiIsInNvcnQiLCJOdW1iZXIiLCJkaWZmZXJlbmNlIiwiaWdub3JlZFdvcmRzIiwiaWdub3JlZFdvcmQiLCJwcm9wZXJOb3VucyIsImxvd2VyQ2FzZVByb3Blck5vdW5zIiwicHJvcGVyTm91biIsImxvd2VyQ2FzZVByb3Blck5vdW4iLCJ0b0xvd2VyQ2FzZSIsIm1hcEtleXMiLCJpbmRleCIsImZpbmRJbmRleCIsImxvd2VyQ2FzZVByb3Blck5hbWUiLCJFTVBUWV9TVFJJTkciLCJhY3JvbnltcyIsImxvd2VyQ2FzZUFjcm9ueW1zIiwiYWNyb255bSIsImxvd2VyQ2FzZUFjcm9ueW0iLCJwbHVyYWxzIiwibWl4ZWRQbHVyYWxzIiwicmVkdWNlUGx1cmFscyIsImlzTWl4ZWQiLCJwbHVyYWxQbHVyYWxzIiwibWFwUGx1cmFscyIsIm1peGVkVG9QbHVyYWwiLCJzaW5ndWxhclBsdXJhbHMiLCJtaXhlZFRvU2luZ3VsYXIiLCJzaW5ndWxhclBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSIsImluY2x1ZGVzIiwic2luZ3VsYXJXb3JkT3JQaHJhc2UiLCJzaW5ndWxhclBhZ2VOdW1iZXJzIiwibWl4ZWRXb3JkT3JQaHJhc2UiLCJzaW5ndWxhclRvTWl4ZWQiLCJtaXhlZFBhZ2VOdW1iZXJzIiwicGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlIiwicGx1cmFsV29yZE9yUGhyYXNlIiwicGx1cmFsUGFnZU51bWJlcnMiLCJwbHVyYWxUb01peGVkIiwiaXNQbHVyYWwiLCJwbHVyYWxUb1Npbmd1bGFyIiwic2luZ3VsYXJUb1BsdXJhbCIsImlzU2luZ3VsYXIiLCJjYWxsYmFjayIsInJlZHVjZSIsInBsdXJhbCIsInJlc3VsdCIsInRleHQiLCJ0ZXN0Iiwic2luZ3VsYXIiLCJtaXhlZCIsIlNfU1RSSU5HIiwiUEFSRU5USEVTSVNFRF9TX1NUUklORyIsIklFU19TVFJJTkciLCJZX1NUUklORyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYWdCQTs7O2VBQUFBOzs7d0JBWGM7eUJBQ0M7NERBRVI7c0JBRXFCO3lCQUN1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuRyxJQUFNLEFBQUVDLFdBQWFDLHlCQUFjLENBQTNCRCxVQUNBRSxhQUE2QkMsdUJBQWEsQ0FBMUNELFlBQVlFLGVBQWlCRCx1QkFBYSxDQUE5QkM7QUFFYixTQUFTTCx1REFBdURNLHNCQUFzQixFQUFFQyxpQkFBaUIsRUFBRUMsT0FBTztJQUN2SCxJQUFNQyxXQUFXQyxlQUFlSix3QkFBd0JDLG1CQUFtQkM7SUFFM0VHLG1CQUFtQkYsVUFBVUQ7SUFFN0JJLG1CQUFtQkgsVUFBVUQ7SUFFN0JLLG9CQUFvQkosVUFBVUQ7SUFFOUJNLHNCQUFzQkwsVUFBVUQ7SUFFaENPLGtCQUFrQk4sVUFBVUQ7SUFFNUJRLGVBQWVQLFVBQVVEO0lBRXpCUyxvQkFBb0JSO0lBRXBCLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTQyxlQUFlSixzQkFBc0IsRUFBRUMsaUJBQWlCLEVBQUVDLE9BQU87SUFDeEUsSUFBTUMsV0FBVyxDQUFDO0lBRWxCLElBQU0sQUFBRVMsZUFBaUJWLFFBQWpCVSxjQUNGLEFBQUVDLFVBQVlELGFBQVpDLFNBQ0ZDLGVBQWVELFFBQVFFLEdBQUcsQ0FBQyxTQUFDQztRQUMxQixJQUFNQyxhQUFhQyxjQUFVLENBQUNDLFVBQVUsQ0FBQ0g7UUFFekMsT0FBT0M7SUFDVDtJQUVOaEIsa0JBQWtCbUIsT0FBTyxDQUFDLFNBQUNDO1FBQ3pCLElBQU1DLGlEQUFpRHpCLFdBQVd3QixrQkFBa0JyQjtRQUVwRixJQUFJc0IsZ0RBQWdEO1lBQ2xELElBQU1DLG1EQUFtRHhCLGFBQWFzQixrQkFBa0JyQjtZQUV4RixJQUFJLENBQUN1QixrREFBa0Q7Z0JBQ3JELElBQU1DLGFBQWFILGlCQUFpQkcsVUFBVTtnQkFFOUMsSUFBSUEsZUFBZSxNQUFNO29CQUN2QixJQUFNQyxZQUFZSixpQkFBaUJLLFdBQVcsQ0FBQ3hCLFVBQ3pDeUIsaUJBQWlCQywyQ0FBMkNILFdBQVdYO29CQUU3RWEsZUFBZVAsT0FBTyxDQUFDLFNBQUNTO3dCQUN0QixJQUFNQyxjQUFjM0IsU0FBUzRCLGNBQWMsQ0FBQ0YsZ0JBQ3BDMUIsUUFBUSxDQUFDMEIsYUFBYSxHQUNwQixFQUFFO3dCQUVaMUIsUUFBUSxDQUFDMEIsYUFBYSxHQUFHQzt3QkFFekJBLFlBQVlFLElBQUksQ0FBQ1I7b0JBQ25CO2dCQUNGO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsT0FBT3JCO0FBQ1Q7QUFFQSxTQUFTeUIsMkNBQTJDSCxTQUFTLEVBQUVYLFlBQVk7SUFDekUsSUFBSWE7SUFFSkYsWUFBWVEsaUJBQWlCUixZQUFhLEdBQUc7SUFFN0NYLGFBQWFNLE9BQU8sQ0FBQyxTQUFDSDtRQUNwQlEsWUFBWVIsV0FBV2lCLE9BQU8sQ0FBQ1Q7SUFDakM7SUFFQUUsaUJBQWlCRixVQUFVVSxLQUFLLENBQUNDLHVCQUFZO0lBRTdDVCxpQkFBaUJBLGVBQWVaLEdBQUcsQ0FBQyxTQUFDYztRQUNuQ0EsZUFBZVgsY0FBVSxDQUFDbUIsTUFBTSxDQUFDUixlQUFnQixHQUFHO1FBRXBELE9BQU9BO0lBQ1Q7SUFFQSxPQUFPRjtBQUNUO0FBRUEsU0FBU2hCLG9CQUFvQlIsUUFBUTtJQUNuQ21DLElBQUFBLGlCQUFTLEVBQUNuQyxVQUFVLFNBQUMwQixjQUFjQztRQUNqQ25DLFNBQVNtQyxhQUFhLFNBQUNTLGFBQWFDO1lBQ2xDLElBQUlELGdCQUFnQkMsYUFBYTtnQkFDL0IsT0FBTztZQUNUO1FBQ0Y7UUFFQVYsWUFBWVcsSUFBSSxDQUFDLFNBQUNELGFBQWFEO1lBQzdCQSxjQUFjRyxPQUFPSCxjQUFlLEdBQUc7WUFFdkNDLGNBQWNFLE9BQU9GLGNBQWUsR0FBRztZQUV2QyxJQUFNRyxhQUFhSCxjQUFjRDtZQUVqQyxPQUFPSTtRQUNUO1FBRUEsT0FBT2I7SUFDVDtBQUNGO0FBRUEsU0FBU3pCLG1CQUFtQkYsUUFBUSxFQUFFRCxPQUFPO0lBQzNDLElBQU0sQUFBRVUsZUFBaUJWLFFBQWpCVSxjQUNGLEFBQUVnQyxlQUFpQmhDLGFBQWpCZ0M7SUFFUkEsYUFBYXhCLE9BQU8sQ0FBQyxTQUFDeUI7UUFDcEIsT0FBTzFDLFFBQVEsQ0FBQzBDLFlBQVk7SUFDOUI7QUFDRjtBQUVBLFNBQVNwQyxrQkFBa0JOLFFBQVEsRUFBRUQsT0FBTztJQUMxQyxJQUFNLEFBQUVVLGVBQWlCVixRQUFqQlUsY0FDRixBQUFFa0MsY0FBZ0JsQyxhQUFoQmtDO0lBRVIsSUFBTUMsdUJBQXVCRCxZQUFZL0IsR0FBRyxDQUFDLFNBQUNpQztRQUM1QyxJQUFNQyxzQkFBc0JELFdBQVdFLFdBQVc7UUFFbEQsT0FBT0Q7SUFDVDtJQUVBRSxJQUFBQSxlQUFPLEVBQUNoRCxVQUFVLFNBQUMwQjtRQUNqQixJQUFNdUIsUUFBUUwscUJBQXFCTSxTQUFTLENBQUMsU0FBQ0M7WUFDNUMsSUFBSUEsd0JBQXdCekIsY0FBYztnQkFDeEMsT0FBTztZQUNUO1FBQ0Y7UUFFQSxJQUFJdUIsUUFBUSxDQUFDLEdBQUc7WUFDZCxJQUFNSixhQUFhRixXQUFXLENBQUNNLE1BQU07WUFFckN2QixlQUFlbUIsWUFBYSxHQUFHO1FBQ2pDO1FBRUEsT0FBT25CO0lBQ1Q7QUFDRjtBQUVBLFNBQVNJLGlCQUFpQlIsU0FBUztJQUNqQ0EsWUFBWUEsVUFBVXlCLFdBQVcsSUFBSyxHQUFHO0lBRXpDekIsWUFBWUEsVUFBVVMsT0FBTyxDQUFDLGlCQUFpQkUsdUJBQVk7SUFFM0RYLFlBQVlBLFVBQVVTLE9BQU8sQ0FBQyxRQUFRRSx1QkFBWTtJQUVsRFgsWUFBWUEsVUFBVVMsT0FBTyxDQUFDLGNBQWNxQix1QkFBWTtJQUV4RCxPQUFPOUI7QUFDVDtBQUVBLFNBQVNmLGVBQWVQLFFBQVEsRUFBRUQsT0FBTztJQUN2QyxJQUFNLEFBQUVVLGVBQWlCVixRQUFqQlUsY0FDRixBQUFFNEMsV0FBYTVDLGFBQWI0QztJQUVSLElBQU1DLG9CQUFvQkQsU0FBU3pDLEdBQUcsQ0FBQyxTQUFDMkM7UUFDdEMsSUFBTUMsbUJBQW1CRCxRQUFRUixXQUFXO1FBRTVDLE9BQU9TO0lBQ1Q7SUFFQVIsSUFBQUEsZUFBTyxFQUFDaEQsVUFBVSxTQUFDMEI7UUFDakIsSUFBTXVCLFFBQVFLLGtCQUFrQkosU0FBUyxDQUFDLFNBQUNDO1lBQ3pDLElBQUlBLHdCQUF3QnpCLGNBQWM7Z0JBQ3hDLE9BQU87WUFDVDtRQUNGO1FBRUEsSUFBSXVCLFFBQVEsQ0FBQyxHQUFHO1lBQ2QsSUFBTU0sVUFBVUYsUUFBUSxDQUFDSixNQUFNO1lBRS9CdkIsZUFBZTZCLFNBQVUsR0FBRztRQUM5QjtRQUVBLE9BQU83QjtJQUNUO0FBQ0Y7QUFFQSxTQUFTdkIsbUJBQW1CSCxRQUFRLEVBQUVELE9BQU87SUFDM0MsSUFBTSxBQUFFVSxlQUFpQlYsUUFBakJVLGNBQ0YsQUFBRWdELFVBQVloRCxhQUFaZ0QsU0FDRkMsZUFBZUMsY0FBY0YsU0FBU0csVUFDdENDLGdCQUFnQkMsV0FBV0osY0FBY0ssZ0JBQ3pDQyxrQkFBa0JGLFdBQVdKLGNBQWNPO0lBRWpEaEQsSUFBQUEsZUFBTyxFQUFDakIsVUFBVSxTQUFDMEIsY0FBY0M7UUFDL0IsSUFBTXVDLHNDQUFzQ0YsZ0JBQWdCRyxRQUFRLENBQUN6QztRQUVyRSxJQUFJd0MscUNBQXFDO1lBQ3ZDLElBQU1FLHVCQUF1QjFDLGNBQ3ZCMkMsc0JBQXNCMUMsYUFDdEIyQyxvQkFBb0JDLGdCQUFnQkgsdUJBQ3BDSSxtQkFBbUJ4RSxRQUFRLENBQUNzRSxrQkFBa0IsSUFBSSxFQUFFO1lBRTFEM0MsY0FBYyxBQUNaLHFCQUFHMEMsNEJBQ0gscUJBQUdHO1lBR0wsT0FBT3hFLFFBQVEsQ0FBQ29FLHFCQUFxQjtZQUVyQ3BFLFFBQVEsQ0FBQ3NFLGtCQUFrQixHQUFHM0M7UUFDaEM7UUFFQSxJQUFNOEMsb0NBQW9DWixjQUFjTSxRQUFRLENBQUN6QztRQUVqRSxJQUFJK0MsbUNBQW1DO1lBQ3JDLElBQU1DLHFCQUFxQmhELGNBQ3JCaUQsb0JBQW9CaEQsYUFDcEIyQyxxQkFBb0JNLGNBQWNGLHFCQUNsQ0Ysb0JBQW1CeEUsUUFBUSxDQUFDc0UsbUJBQWtCLElBQUksRUFBRTtZQUUxRDNDLGNBQWMsQUFDWixxQkFBR2dELDBCQUNILHFCQUFHSDtZQUdMLE9BQU94RSxRQUFRLENBQUMwRSxtQkFBbUI7WUFFbkMxRSxRQUFRLENBQUNzRSxtQkFBa0IsR0FBRzNDO1FBQ2hDO0lBQ0Y7QUFDRjtBQUVBLFNBQVN2QixvQkFBb0JKLFFBQVEsRUFBRUQsT0FBTztJQUM1QyxJQUFNLEFBQUVVLGVBQWlCVixRQUFqQlUsY0FDRixBQUFFZ0QsVUFBWWhELGFBQVpnRCxTQUNGSSxnQkFBZ0JGLGNBQWNGLFNBQVNvQixXQUN2Q2Isa0JBQWtCRixXQUFXRCxlQUFlaUI7SUFFbEQ3RCxJQUFBQSxlQUFPLEVBQUNqQixVQUFVLFNBQUMwQixjQUFjQztRQUMvQixJQUFNdUMsc0NBQXNDRixnQkFBZ0JHLFFBQVEsQ0FBQ3pDO1FBRXJFLElBQUl3QyxxQ0FBcUM7WUFDdkMsSUFBTUUsdUJBQXVCMUMsY0FDdkIyQyxzQkFBc0IxQyxhQUN0QitDLHFCQUFxQkssaUJBQWlCckQsZUFDdENpRCxvQkFBb0IzRSxRQUFRLENBQUMwRSxtQkFBbUIsSUFBSSxFQUFFO1lBRTVEL0MsY0FBYyxBQUNaLHFCQUFHMEMsNEJBQ0gscUJBQUdNO1lBR0wsT0FBTzNFLFFBQVEsQ0FBQ29FLHFCQUFxQjtZQUVyQ3BFLFFBQVEsQ0FBQzBFLG1CQUFtQixHQUFHL0M7UUFDakM7SUFDRjtBQUNGO0FBRUEsU0FBU3RCLHNCQUFzQkwsUUFBUSxFQUFFRCxPQUFPO0lBQzlDLElBQU0sQUFBRVUsZUFBaUJWLFFBQWpCVSxjQUNGLEFBQUVnRCxVQUFZaEQsYUFBWmdELFNBQ0ZPLGtCQUFrQkwsY0FBY0YsU0FBU3VCLGFBQ3pDbkIsZ0JBQWdCQyxXQUFXRSxpQkFBaUJlO0lBRWxEOUQsSUFBQUEsZUFBTyxFQUFDakIsVUFBVSxTQUFDMEIsY0FBY0M7UUFDN0IsSUFBTThDLG9DQUFvQ1osY0FBY00sUUFBUSxDQUFDekM7UUFFakUsSUFBSStDLG1DQUFtQztZQUNyQyxJQUFNTCx1QkFBdUJVLGlCQUFpQnBELGVBQ3hDMkMsc0JBQXNCckUsUUFBUSxDQUFDb0UscUJBQXFCLElBQUksRUFBRSxFQUMxRE0scUJBQXFCaEQsY0FDckJpRCxvQkFBb0JoRCxhQUFjLEdBQUc7WUFFM0NBLGNBQWMsQUFDWixxQkFBRzBDLDRCQUNILHFCQUFHTTtZQUdMLE9BQU8zRSxRQUFRLENBQUMwRSxtQkFBbUI7WUFFbkMxRSxRQUFRLENBQUNvRSxxQkFBcUIsR0FBR3pDO1FBQ25DO0lBQ0o7QUFDRjtBQUVBLFNBQVNnQyxjQUFjRixPQUFPLEVBQUV3QixRQUFRO0lBQ3RDeEIsVUFBVUEsUUFBUXlCLE1BQU0sQ0FBQyxTQUFDekIsU0FBUzBCO1FBQ2pDLElBQU1DLFNBQVNILFNBQVNFO1FBRXhCLElBQUlDLFFBQVE7WUFDVjNCLFFBQVE1QixJQUFJLENBQUNzRDtRQUNmO1FBRUEsT0FBTzFCO0lBQ1QsR0FBRyxFQUFFO0lBRUwsT0FBT0E7QUFDVDtBQUVBLFNBQVNLLFdBQVdMLE9BQU8sRUFBRXdCLFFBQVE7SUFDbkN4QixVQUFVQSxRQUFRN0MsR0FBRyxDQUFDLFNBQUN1RTtRQUNyQkEsU0FBU0YsU0FBU0U7UUFFbEIsT0FBT0E7SUFDVDtJQUVBLE9BQU8xQjtBQUNUO0FBRUEsU0FBU3VCLFdBQVdLLElBQUk7SUFDdEIsSUFBTTFFLGVBQWUsU0FBUzJFLElBQUksQ0FBQ0QsT0FDN0JFLFdBQVc1RSxjQUFjLEdBQUc7SUFFbEMsT0FBTzRFO0FBQ1Q7QUFFQSxTQUFTVixTQUFTUSxJQUFJO0lBQ3BCLElBQU0xRSxlQUFlLFdBQVcyRSxJQUFJLENBQUNELE9BQy9CRixTQUFTeEUsY0FBYyxHQUFHO0lBRWhDLE9BQU93RTtBQUNUO0FBRUEsU0FBU3ZCLFFBQVF5QixJQUFJO0lBQ25CLElBQU0xRSxlQUFlLFNBQVMyRSxJQUFJLENBQUNELE9BQzdCRyxRQUFRN0UsY0FBYyxHQUFHO0lBRS9CLE9BQU82RTtBQUNUO0FBRUEsU0FBU3pCLGNBQWNzQixJQUFJO0lBQ3pCQSxPQUFPQSxLQUFLLEdBQUc7S0FDTHRELE9BQU8sQ0FBQyxVQUFVMEQsbUJBQVE7SUFFcEMsT0FBT0o7QUFDVDtBQUVBLFNBQVNULGNBQWNTLElBQUk7SUFDekJBLE9BQU9BLEtBQUssR0FBRztLQUNMdEQsT0FBTyxDQUFDLE1BQU0yRCxpQ0FBc0I7SUFFOUMsT0FBT0w7QUFDVDtBQUVBLFNBQVNwQixnQkFBZ0JvQixJQUFJO0lBQzNCQSxPQUFPQSxLQUFLLEdBQUc7S0FDTnRELE9BQU8sQ0FBQyxVQUFVcUIsdUJBQVk7SUFFdkMsT0FBT2lDO0FBQ1Q7QUFFQSxTQUFTZCxnQkFBZ0JjLElBQUk7SUFDM0JBLE9BQU8sQUFBQyxHQUFPLE9BQUxBLE1BQUs7SUFFZixPQUFPQTtBQUNUO0FBRUEsU0FBU04saUJBQWlCTSxJQUFJO0lBQzVCQSxPQUFPLEFBQUMsR0FBTyxPQUFMQSxNQUFLLEtBQUcsR0FBRztLQUNYdEQsT0FBTyxDQUFDLE9BQU80RCxxQkFBVTtJQUVuQyxPQUFPTjtBQUNUO0FBRUEsU0FBU1AsaUJBQWlCTyxJQUFJO0lBQzVCQSxPQUFPQSxLQUFLLEdBQUc7S0FDTHRELE9BQU8sQ0FBQyxRQUFRNkQsbUJBQVEsRUFDeEI3RCxPQUFPLENBQUMsTUFBTXFCLHVCQUFZO0lBRXBDLE9BQU9pQztBQUNUIn0=