highmark-markdown 0.0.202 → 0.0.206

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 (38) hide show
  1. package/example.js +243 -83
  2. package/index.html +0 -4
  3. package/lib/attributeNames.js +5 -1
  4. package/lib/elementMap.js +188 -0
  5. package/lib/index.js +5 -5
  6. package/lib/markdown/bnf.js +2 -2
  7. package/lib/node/markdown/blockText.js +2 -2
  8. package/lib/node/markdown/bullet.js +120 -0
  9. package/lib/node/markdown/emphasisedText.js +2 -2
  10. package/lib/node/markdown/footnote.js +2 -2
  11. package/lib/node/markdown/inlineText.js +2 -2
  12. package/lib/node/markdown/line.js +2 -2
  13. package/lib/node/markdown/marker.js +8 -16
  14. package/lib/node/markdown/orderedListItem.js +27 -2
  15. package/lib/node/markdown/strongText.js +2 -2
  16. package/lib/node/markdown/stronglyEmphasisedText.js +4 -4
  17. package/lib/node/markdown.js +4 -4
  18. package/lib/nodeMap.js +3 -2
  19. package/lib/ruleNames.js +6 -1
  20. package/package.json +1 -1
  21. package/src/attributeNames.js +1 -0
  22. package/src/{ruleNameMap.js → elementMap.js} +9 -4
  23. package/src/index.js +1 -1
  24. package/src/markdown/bnf.js +5 -2
  25. package/src/node/markdown/blockText.js +1 -1
  26. package/src/node/markdown/bullet.js +7 -0
  27. package/src/node/markdown/emphasisedText.js +1 -1
  28. package/src/node/markdown/footnote.js +1 -2
  29. package/src/node/markdown/inlineText.js +1 -1
  30. package/src/node/markdown/line.js +1 -2
  31. package/src/node/markdown/marker.js +11 -17
  32. package/src/node/markdown/orderedListItem.js +28 -0
  33. package/src/node/markdown/strongText.js +1 -1
  34. package/src/node/markdown/stronglyEmphasisedText.js +3 -3
  35. package/src/node/markdown.js +3 -3
  36. package/src/nodeMap.js +3 -0
  37. package/src/ruleNames.js +2 -0
  38. package/lib/ruleNameMap.js +0 -185
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import MarkdownNode from "../markdown";
3
+ import MarkdownNode from "../../node/markdown";
4
4
  import contentMixins from "../../mixins/content";
5
5
 
6
6
  class EmphasisedTextMarkdownNode extends MarkdownNode {
@@ -11,8 +11,7 @@ export default class FootnoteMarkdownNode extends MarkdownNode {
11
11
  const childNodes = this.getChildNodes(),
12
12
  firstChildNode = first(childNodes),
13
13
  referenceMarkdownNode = firstChildNode, ///
14
- referenceMarkdownNodeIdentifier = referenceMarkdownNode.identifier(context),
15
- identifier = referenceMarkdownNodeIdentifier; ///
14
+ identifier = referenceMarkdownNode.identifier(context);
16
15
 
17
16
  return identifier;
18
17
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import MarkdownNode from "../markdown";
3
+ import MarkdownNode from "../../node/markdown";
4
4
  import contentMixins from "../../mixins/content";
5
5
 
6
6
  class InlineTextMarkdownNode extends MarkdownNode {
@@ -12,8 +12,7 @@ export default class LineMarkdownNode extends MarkdownNode {
12
12
  childNodes = this.getChildNodes(),
13
13
  firstChildNode = first(childNodes),
14
14
  markedTextChildNode = firstChildNode, ///
15
- markedTextChildNodeChildNodesHTML = markedTextChildNode.childNodesAsHTML(indent, context, leftTrimmed),
16
- childNodesHTML = markedTextChildNodeChildNodesHTML; ///
15
+ childNodesHTML = markedTextChildNode.childNodesAsHTML(indent, context, leftTrimmed);
17
16
 
18
17
  return childNodesHTML;
19
18
  }
@@ -1,27 +1,21 @@
1
1
  "use strict";
2
2
 
3
- import MarkdownNode from "../../node/markdown";
4
- import contentMixins from "../../mixins/content";
3
+ import { arrayUtilities } from "necessary";
5
4
 
6
- class MarkerMarkdownNode extends MarkdownNode {
7
- childNodesAsHTML(indent, context) {
8
- const content = this.content(context),
9
- childNodesHTML = `${content}\n`;
5
+ import MarkdownNode from "../../node/markdown";
10
6
 
11
- return childNodesHTML;
12
- }
7
+ const { first } = arrayUtilities;
13
8
 
14
- createChildNodeDOMElements(context) {
15
- const content = this.content(context),
16
- textNode = document.createTextNode(content),
17
- domElement = textNode; ///
9
+ export default class MarkerMarkdownNode extends MarkdownNode {
10
+ value(context) {
11
+ const childNodes = this.getChildNodes(),
12
+ firstChildNode = first(childNodes),
13
+ numberTerminalNode = firstChildNode, ///
14
+ numberTerminalNodeContent = numberTerminalNode.getContent(),
15
+ value = numberTerminalNodeContent; ///
18
16
 
19
- this.addDOMElement(domElement);
17
+ return value;
20
18
  }
21
19
 
22
20
  static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(MarkerMarkdownNode, ruleName, childNodes, opacity); }
23
21
  }
24
-
25
- Object.assign(MarkerMarkdownNode.prototype, contentMixins);
26
-
27
- export default MarkerMarkdownNode;
@@ -1,7 +1,35 @@
1
1
  "use strict";
2
2
 
3
+ import { arrayUtilities } from "necessary";
4
+
3
5
  import MarkdownNode from "../../node/markdown";
4
6
 
7
+ import { VALUE_ATTRIBUTE_NAME } from "../../attributeNames";
8
+
9
+ const { first } = arrayUtilities;
10
+
5
11
  export default class OrderedListItemMarkdownNode extends MarkdownNode {
12
+ value(context) {
13
+ const childNodes = this.getChildNodes(),
14
+ firstChildNode = first(childNodes),
15
+ markerMarkdownNode = firstChildNode, ///
16
+ value = markerMarkdownNode.value(context);
17
+
18
+ return value;
19
+ }
20
+
21
+ attributeName(context) {
22
+ const attributeName = VALUE_ATTRIBUTE_NAME;
23
+
24
+ return attributeName;
25
+ }
26
+
27
+ attributeValue(context) {
28
+ const value = this.value(context),
29
+ attributeValue = value; ///
30
+
31
+ return attributeValue;
32
+ }
33
+
6
34
  static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(OrderedListItemMarkdownNode, ruleName, childNodes, opacity); }
7
35
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import MarkdownNode from "../markdown";
3
+ import MarkdownNode from "../../node/markdown";
4
4
  import contentMixins from "../../mixins/content";
5
5
 
6
6
  class StrongTextMarkdownNode extends MarkdownNode {
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
 
3
- import ruleNameMap from "../../ruleNameMap";
4
- import MarkdownNode from "../markdown";
3
+ import elementMap from "../../elementMap";
4
+ import MarkdownNode from "../../node/markdown";
5
5
  import contentMixins from "../../mixins/content";
6
6
 
7
7
  import { STRONG_TEXT_RULE_NAME } from "../../ruleNames";
8
8
 
9
- const { tagName } = ruleNameMap[STRONG_TEXT_RULE_NAME];
9
+ const { tagName } = elementMap[STRONG_TEXT_RULE_NAME];
10
10
 
11
11
  class StronglyEmphasisedTextMarkdownNode extends MarkdownNode {
12
12
  asHTML(indent, context) {
@@ -2,8 +2,8 @@
2
2
 
3
3
  import { NonTerminalNode } from "occam-parsers";
4
4
 
5
+ import elementMap from "../elementMap";
5
6
  import nodeMixins from "../mixins/node";
6
- import ruleNameMap from "../ruleNameMap";
7
7
  import elementMixins from "../mixins/element";
8
8
 
9
9
  import { EMPTY_STRING } from "../constants";
@@ -24,13 +24,13 @@ class MarkdownNode extends NonTerminalNode {
24
24
  }
25
25
 
26
26
  tagName(context) {
27
- const { tagName } = ruleNameMap[this.ruleName];
27
+ const { tagName } = elementMap[this.ruleName];
28
28
 
29
29
  return tagName;
30
30
  }
31
31
 
32
32
  className(context) {
33
- const { className } = ruleNameMap[this.ruleName];
33
+ const { className } = elementMap[this.ruleName];
34
34
 
35
35
  return className;
36
36
  }
package/src/nodeMap.js CHANGED
@@ -7,6 +7,7 @@ import TableMarkdownNode from "./node/markdown/table";
7
7
  import ErrorMarkdownNode from "./node/markdown/error";
8
8
  import AnchorMarkdownNode from "./node/markdown/anchor";
9
9
  import MarkerMarkdownNode from "./node/markdown/marker";
10
+ import BulletMarkdownNode from "./node/markdown/bullet";
10
11
  import ImportMarkdownNode from "./node/markdown/import";
11
12
  import ImportsMarkdownNode from "./node/markdown/imports";
12
13
  import ContentsMarkdownNode from "./node/markdown/contents";
@@ -58,6 +59,7 @@ import { LINK_RULE_NAME,
58
59
  ERROR_RULE_NAME,
59
60
  ANCHOR_RULE_NAME,
60
61
  MARKER_RULE_NAME,
62
+ BULLET_RULE_NAME,
61
63
  IMPORT_RULE_NAME,
62
64
  IMPORTS_RULE_NAME,
63
65
  CONTENTS_RULE_NAME,
@@ -110,6 +112,7 @@ const nodeMap = {
110
112
  [ERROR_RULE_NAME]: ErrorMarkdownNode,
111
113
  [ANCHOR_RULE_NAME]: AnchorMarkdownNode,
112
114
  [MARKER_RULE_NAME]: MarkerMarkdownNode,
115
+ [BULLET_RULE_NAME]: BulletMarkdownNode,
113
116
  [IMPORT_RULE_NAME]: ImportMarkdownNode,
114
117
  [IMPORTS_RULE_NAME]: ImportsMarkdownNode,
115
118
  [CONTENTS_RULE_NAME]: ContentsMarkdownNode,
package/src/ruleNames.js CHANGED
@@ -7,6 +7,7 @@ export const TABLE_RULE_NAME = "table";
7
7
  export const ERROR_RULE_NAME = "error";
8
8
  export const ANCHOR_RULE_NAME = "anchor";
9
9
  export const MARKER_RULE_NAME = "marker";
10
+ export const BULLET_RULE_NAME = "bullet";
10
11
  export const IMPORT_RULE_NAME = "import";
11
12
  export const IMPORTS_RULE_NAME = "imports";
12
13
  export const CONTENTS_RULE_NAME = "contents";
@@ -62,6 +63,7 @@ const ruleNames = {
62
63
  ERROR_RULE_NAME,
63
64
  ANCHOR_RULE_NAME,
64
65
  MARKER_RULE_NAME,
66
+ BULLET_RULE_NAME,
65
67
  IMPORT_RULE_NAME,
66
68
  IMPORTS_RULE_NAME,
67
69
  CONTENTS_RULE_NAME,
@@ -1,185 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- var _ruleNames = require("./ruleNames");
12
- function _define_property(obj, key, value) {
13
- if (key in obj) {
14
- Object.defineProperty(obj, key, {
15
- value: value,
16
- enumerable: true,
17
- configurable: true,
18
- writable: true
19
- });
20
- } else {
21
- obj[key] = value;
22
- }
23
- return obj;
24
- }
25
- var _obj;
26
- var ruleNameMap = (_obj = {}, _define_property(_obj, _ruleNames.LINK_RULE_NAME, {
27
- tagName: "a",
28
- className: "link"
29
- }), _define_property(_obj, _ruleNames.LINE_RULE_NAME, {
30
- tagName: "span",
31
- className: "line"
32
- }), _define_property(_obj, _ruleNames.IMAGE_RULE_NAME, {
33
- tagName: "img",
34
- className: null
35
- }), _define_property(_obj, _ruleNames.TABLE_RULE_NAME, {
36
- tagName: "table",
37
- className: null
38
- }), _define_property(_obj, _ruleNames.ERROR_RULE_NAME, {
39
- tagName: "span",
40
- className: "error"
41
- }), _define_property(_obj, _ruleNames.ANCHOR_RULE_NAME, {
42
- tagName: "a",
43
- className: "anchor"
44
- }), _define_property(_obj, _ruleNames.MARKER_RULE_NAME, {
45
- tagName: "span",
46
- className: "marker"
47
- }), _define_property(_obj, _ruleNames.IMPORT_RULE_NAME, {
48
- tagName: null,
49
- className: null
50
- }), _define_property(_obj, _ruleNames.IMPORTS_RULE_NAME, {
51
- tagName: null,
52
- className: null
53
- }), _define_property(_obj, _ruleNames.CONTENTS_RULE_NAME, {
54
- tagName: null,
55
- className: null
56
- }), _define_property(_obj, _ruleNames.FOOTNOTE_RULE_NAME, {
57
- tagName: null,
58
- className: null
59
- }), _define_property(_obj, _ruleNames.DIVISION_RULE_NAME, {
60
- tagName: "div",
61
- className: null
62
- }), _define_property(_obj, _ruleNames.REFERENCE_RULE_NAME, {
63
- tagName: null,
64
- className: null
65
- }), _define_property(_obj, _ruleNames.PARAGRAPH_RULE_NAME, {
66
- tagName: "p",
67
- className: null
68
- }), _define_property(_obj, _ruleNames.HYPERLINK_RULE_NAME, {
69
- tagName: "a",
70
- className: "hyperlink"
71
- }), _define_property(_obj, _ruleNames.LINE_BREAK_RULE_NAME, {
72
- tagName: "br",
73
- className: null
74
- }), _define_property(_obj, _ruleNames.TABLE_CELL_RULE_NAME, {
75
- tagName: null,
76
- className: null
77
- }), _define_property(_obj, _ruleNames.TABLE_HEAD_RULE_NAME, {
78
- tagName: "thead",
79
- className: null
80
- }), _define_property(_obj, _ruleNames.TABLE_BODY_RULE_NAME, {
81
- tagName: "tbody",
82
- className: null
83
- }), _define_property(_obj, _ruleNames.BLOCK_TEXT_RULE_NAME, {
84
- tagName: null,
85
- className: null
86
- }), _define_property(_obj, _ruleNames.CLASS_NAME_RULE_NAME, {
87
- tagName: null,
88
- className: null
89
- }), _define_property(_obj, _ruleNames.PLAIN_TEXT_RULE_NAME, {
90
- tagName: null,
91
- className: null
92
- }), _define_property(_obj, _ruleNames.EMAIL_LINK_RULE_NAME, {
93
- tagName: "a",
94
- className: "email-link"
95
- }), _define_property(_obj, _ruleNames.END_OF_LINE_RULE_NAME, {
96
- tagName: null,
97
- className: null
98
- }), _define_property(_obj, _ruleNames.MARKED_TEXT_RULE_NAME, {
99
- tagName: null,
100
- className: null
101
- }), _define_property(_obj, _ruleNames.INLINE_TEXT_RULE_NAME, {
102
- tagName: null,
103
- className: null
104
- }), _define_property(_obj, _ruleNames.STRONG_TEXT_RULE_NAME, {
105
- tagName: "strong",
106
- className: null
107
- }), _define_property(_obj, _ruleNames.SUB_DIVISION_RULE_NAME, {
108
- tagName: null,
109
- className: null
110
- }), _define_property(_obj, _ruleNames.ORDERED_LIST_RULE_NAME, {
111
- tagName: "ol",
112
- className: null
113
- }), _define_property(_obj, _ruleNames.BLOCK_LISTING_RULE_NAME, {
114
- tagName: "pre",
115
- className: "block"
116
- }), _define_property(_obj, _ruleNames.CONTENTS_LINK_RULE_NAME, {
117
- tagName: "a",
118
- className: "contents"
119
- }), _define_property(_obj, _ruleNames.CONTENTS_ITEM_RULE_NAME, {
120
- tagName: "li",
121
- className: "contents"
122
- }), _define_property(_obj, _ruleNames.CONTENTS_LIST_RULE_NAME, {
123
- tagName: "ul",
124
- className: "contents"
125
- }), _define_property(_obj, _ruleNames.FOOTNOTE_ITEM_RULE_NAME, {
126
- tagName: "li",
127
- className: "footnote"
128
- }), _define_property(_obj, _ruleNames.TABLE_HEAD_ROW_RULE_NAME, {
129
- tagName: "tr",
130
- className: null
131
- }), _define_property(_obj, _ruleNames.TABLE_BODY_ROW_RULE_NAME, {
132
- tagName: "tr",
133
- className: null
134
- }), _define_property(_obj, _ruleNames.INLINE_LISTING_RULE_NAME, {
135
- tagName: "pre",
136
- className: "inline"
137
- }), _define_property(_obj, _ruleNames.UNORDERED_LIST_RULE_NAME, {
138
- tagName: "ul",
139
- className: null
140
- }), _define_property(_obj, _ruleNames.FOOTNOTES_LIST_RULE_NAME, {
141
- tagName: "ol",
142
- className: "footnotes"
143
- }), _define_property(_obj, _ruleNames.TABLE_HEAD_CELL_RULE_NAME, {
144
- tagName: "th",
145
- className: null
146
- }), _define_property(_obj, _ruleNames.TABLE_BODY_CELL_RULE_NAME, {
147
- tagName: "td",
148
- className: null
149
- }), _define_property(_obj, _ruleNames.TABLE_SEPARATOR_RULE_NAME, {
150
- tagName: null,
151
- className: null
152
- }), _define_property(_obj, _ruleNames.EMPHASISED_TEXT_RULE_NAME, {
153
- tagName: "em",
154
- className: null
155
- }), _define_property(_obj, _ruleNames.PRIMARY_HEADING_RULE_NAME, {
156
- tagName: "h1",
157
- className: null
158
- }), _define_property(_obj, _ruleNames.TERTIARY_HEADING_RULE_NAME, {
159
- tagName: "h3",
160
- className: null
161
- }), _define_property(_obj, _ruleNames.ORDERED_LIST_ITEM_RULE_NAME, {
162
- tagName: "li",
163
- className: null
164
- }), _define_property(_obj, _ruleNames.BLOCK_LISTING_END_RULE_NAME, {
165
- tagName: null,
166
- className: null
167
- }), _define_property(_obj, _ruleNames.SECONDARY_HEADING_RULE_NAME, {
168
- tagName: "h2",
169
- className: null
170
- }), _define_property(_obj, _ruleNames.QUATERNARY_HEADING_RULE_NAME, {
171
- tagName: "h4",
172
- className: null
173
- }), _define_property(_obj, _ruleNames.BLOCK_LISTING_START_RULE_NAME, {
174
- tagName: null,
175
- className: null
176
- }), _define_property(_obj, _ruleNames.UNORDERED_LIST_ITEM_RULE_NAME, {
177
- tagName: "li",
178
- className: null
179
- }), _define_property(_obj, _ruleNames.STRONGLY_EMPHASISED_TEXT_RULE_NAME, {
180
- tagName: "em",
181
- className: null
182
- }), _obj);
183
- var _default = ruleNameMap;
184
-
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlTmFtZU1hcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgTElOS19SVUxFX05BTUUsXG4gICAgICAgICBMSU5FX1JVTEVfTkFNRSxcbiAgICAgICAgIElNQUdFX1JVTEVfTkFNRSxcbiAgICAgICAgIFRBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgIEVSUk9SX1JVTEVfTkFNRSxcbiAgICAgICAgIEFOQ0hPUl9SVUxFX05BTUUsXG4gICAgICAgICBNQVJLRVJfUlVMRV9OQU1FLFxuICAgICAgICAgSU1QT1JUX1JVTEVfTkFNRSxcbiAgICAgICAgIElNUE9SVFNfUlVMRV9OQU1FLFxuICAgICAgICAgQ09OVEVOVFNfUlVMRV9OQU1FLFxuICAgICAgICAgRk9PVE5PVEVfUlVMRV9OQU1FLFxuICAgICAgICAgRElWSVNJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUkVGRVJFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgIFBBUkFHUkFQSF9SVUxFX05BTUUsXG4gICAgICAgICBIWVBFUkxJTktfUlVMRV9OQU1FLFxuICAgICAgICAgTElORV9CUkVBS19SVUxFX05BTUUsXG4gICAgICAgICBUQUJMRV9DRUxMX1JVTEVfTkFNRSxcbiAgICAgICAgIFRBQkxFX0hFQURfUlVMRV9OQU1FLFxuICAgICAgICAgVEFCTEVfQk9EWV9SVUxFX05BTUUsXG4gICAgICAgICBCTE9DS19URVhUX1JVTEVfTkFNRSxcbiAgICAgICAgIENMQVNTX05BTUVfUlVMRV9OQU1FLFxuICAgICAgICAgUExBSU5fVEVYVF9SVUxFX05BTUUsXG4gICAgICAgICBFTUFJTF9MSU5LX1JVTEVfTkFNRSxcbiAgICAgICAgIEVORF9PRl9MSU5FX1JVTEVfTkFNRSxcbiAgICAgICAgIE1BUktFRF9URVhUX1JVTEVfTkFNRSxcbiAgICAgICAgIElOTElORV9URVhUX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUUk9OR19URVhUX1JVTEVfTkFNRSxcbiAgICAgICAgIFNVQl9ESVZJU0lPTl9SVUxFX05BTUUsXG4gICAgICAgICBPUkRFUkVEX0xJU1RfUlVMRV9OQU1FLFxuICAgICAgICAgQkxPQ0tfTElTVElOR19SVUxFX05BTUUsXG4gICAgICAgICBDT05URU5UU19MSU5LX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlRFTlRTX0lURU1fUlVMRV9OQU1FLFxuICAgICAgICAgQ09OVEVOVFNfTElTVF9SVUxFX05BTUUsXG4gICAgICAgICBGT09UTk9URV9JVEVNX1JVTEVfTkFNRSxcbiAgICAgICAgIFRBQkxFX0hFQURfUk9XX1JVTEVfTkFNRSxcbiAgICAgICAgIFRBQkxFX0JPRFlfUk9XX1JVTEVfTkFNRSxcbiAgICAgICAgIElOTElORV9MSVNUSU5HX1JVTEVfTkFNRSxcbiAgICAgICAgIFVOT1JERVJFRF9MSVNUX1JVTEVfTkFNRSxcbiAgICAgICAgIEZPT1ROT1RFU19MSVNUX1JVTEVfTkFNRSxcbiAgICAgICAgIFRBQkxFX0hFQURfQ0VMTF9SVUxFX05BTUUsXG4gICAgICAgICBUQUJMRV9CT0RZX0NFTExfUlVMRV9OQU1FLFxuICAgICAgICAgVEFCTEVfU0VQQVJBVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIEVNUEhBU0lTRURfVEVYVF9SVUxFX05BTUUsXG4gICAgICAgICBQUklNQVJZX0hFQURJTkdfUlVMRV9OQU1FLFxuICAgICAgICAgVEVSVElBUllfSEVBRElOR19SVUxFX05BTUUsXG4gICAgICAgICBPUkRFUkVEX0xJU1RfSVRFTV9SVUxFX05BTUUsXG4gICAgICAgICBCTE9DS19MSVNUSU5HX0VORF9SVUxFX05BTUUsXG4gICAgICAgICBTRUNPTkRBUllfSEVBRElOR19SVUxFX05BTUUsXG4gICAgICAgICBRVUFURVJOQVJZX0hFQURJTkdfUlVMRV9OQU1FLFxuICAgICAgICAgQkxPQ0tfTElTVElOR19TVEFSVF9SVUxFX05BTUUsXG4gICAgICAgICBVTk9SREVSRURfTElTVF9JVEVNX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUUk9OR0xZX0VNUEhBU0lTRURfVEVYVF9SVUxFX05BTUUgfSBmcm9tIFwiLi9ydWxlTmFtZXNcIjtcblxuY29uc3QgcnVsZU5hbWVNYXAgPSB7XG4gIFtMSU5LX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBcImFcIixcbiAgICBjbGFzc05hbWU6IFwibGlua1wiXG4gIH0sXG4gIFtMSU5FX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBcInNwYW5cIixcbiAgICBjbGFzc05hbWU6IFwibGluZVwiXG4gIH0sXG4gIFtJTUFHRV9SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogXCJpbWdcIixcbiAgICBjbGFzc05hbWU6IG51bGxcbiAgfSxcbiAgW1RBQkxFX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBcInRhYmxlXCIsXG4gICAgY2xhc3NOYW1lOiBudWxsXG4gIH0sXG4gIFtFUlJPUl9SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogXCJzcGFuXCIsXG4gICAgY2xhc3NOYW1lOiBcImVycm9yXCJcbiAgfSxcbiAgW0FOQ0hPUl9SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogXCJhXCIsXG4gICAgY2xhc3NOYW1lOiBcImFuY2hvclwiXG4gIH0sXG4gIFtNQVJLRVJfUlVMRV9OQU1FXToge1xuICAgIHRhZ05hbWU6IFwic3BhblwiLFxuICAgIGNsYXNzTmFtZTogXCJtYXJrZXJcIlxuICB9LFxuICBbSU1QT1JUX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBudWxsLFxuICAgIGNsYXNzTmFtZTogbnVsbFxuICB9LFxuICBbSU1QT1JUU19SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogbnVsbCxcbiAgICBjbGFzc05hbWU6IG51bGxcbiAgfSxcbiAgW0NPTlRFTlRTX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBudWxsLFxuICAgIGNsYXNzTmFtZTogbnVsbFxuICB9LFxuICBbRk9PVE5PVEVfUlVMRV9OQU1FXToge1xuICAgIHRhZ05hbWU6IG51bGwsXG4gICAgY2xhc3NOYW1lOiBudWxsXG4gIH0sXG4gIFtESVZJU0lPTl9SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogXCJkaXZcIixcbiAgICBjbGFzc05hbWU6IG51bGxcbiAgfSxcbiAgW1JFRkVSRU5DRV9SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogbnVsbCxcbiAgICBjbGFzc05hbWU6IG51bGxcbiAgfSxcbiAgW1BBUkFHUkFQSF9SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogXCJwXCIsXG4gICAgY2xhc3NOYW1lOiBudWxsXG4gIH0sXG4gIFtIWVBFUkxJTktfUlVMRV9OQU1FXToge1xuICAgIHRhZ05hbWU6IFwiYVwiLFxuICAgIGNsYXNzTmFtZTogXCJoeXBlcmxpbmtcIlxuICB9LFxuICBbTElORV9CUkVBS19SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogXCJiclwiLFxuICAgIGNsYXNzTmFtZTogbnVsbFxuICB9LFxuICBbVEFCTEVfQ0VMTF9SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogbnVsbCxcbiAgICBjbGFzc05hbWU6IG51bGxcbiAgfSxcbiAgW1RBQkxFX0hFQURfUlVMRV9OQU1FXToge1xuICAgIHRhZ05hbWU6IFwidGhlYWRcIixcbiAgICBjbGFzc05hbWU6IG51bGxcbiAgfSxcbiAgW1RBQkxFX0JPRFlfUlVMRV9OQU1FXToge1xuICAgIHRhZ05hbWU6IFwidGJvZHlcIixcbiAgICBjbGFzc05hbWU6IG51bGxcbiAgfSxcbiAgW0JMT0NLX1RFWFRfUlVMRV9OQU1FXToge1xuICAgIHRhZ05hbWU6IG51bGwsXG4gICAgY2xhc3NOYW1lOiBudWxsXG4gIH0sXG4gIFtDTEFTU19OQU1FX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBudWxsLFxuICAgIGNsYXNzTmFtZTogbnVsbFxuICB9LFxuICBbUExBSU5fVEVYVF9SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogbnVsbCxcbiAgICBjbGFzc05hbWU6IG51bGxcbiAgfSxcbiAgW0VNQUlMX0xJTktfUlVMRV9OQU1FXToge1xuICAgIHRhZ05hbWU6IFwiYVwiLFxuICAgIGNsYXNzTmFtZTogXCJlbWFpbC1saW5rXCJcbiAgfSxcbiAgW0VORF9PRl9MSU5FX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBudWxsLFxuICAgIGNsYXNzTmFtZTogbnVsbFxuICB9LFxuICBbTUFSS0VEX1RFWFRfUlVMRV9OQU1FXToge1xuICAgIHRhZ05hbWU6IG51bGwsXG4gICAgY2xhc3NOYW1lOiBudWxsXG4gIH0sXG4gIFtJTkxJTkVfVEVYVF9SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogbnVsbCxcbiAgICBjbGFzc05hbWU6IG51bGxcbiAgfSxcbiAgW1NUUk9OR19URVhUX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBcInN0cm9uZ1wiLFxuICAgIGNsYXNzTmFtZTogbnVsbFxuICB9LFxuICBbU1VCX0RJVklTSU9OX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBudWxsLFxuICAgIGNsYXNzTmFtZTogbnVsbFxuICB9LFxuICBbT1JERVJFRF9MSVNUX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBcIm9sXCIsXG4gICAgY2xhc3NOYW1lOiBudWxsXG4gIH0sXG4gIFtCTE9DS19MSVNUSU5HX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBcInByZVwiLFxuICAgIGNsYXNzTmFtZTogXCJibG9ja1wiXG4gIH0sXG4gIFtDT05URU5UU19MSU5LX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBcImFcIixcbiAgICBjbGFzc05hbWU6IFwiY29udGVudHNcIlxuICB9LFxuICBbQ09OVEVOVFNfSVRFTV9SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogXCJsaVwiLFxuICAgIGNsYXNzTmFtZTogXCJjb250ZW50c1wiXG4gIH0sXG4gIFtDT05URU5UU19MSVNUX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBcInVsXCIsXG4gICAgY2xhc3NOYW1lOiBcImNvbnRlbnRzXCJcbiAgfSxcbiAgW0ZPT1ROT1RFX0lURU1fUlVMRV9OQU1FXToge1xuICAgIHRhZ05hbWU6IFwibGlcIixcbiAgICBjbGFzc05hbWU6IFwiZm9vdG5vdGVcIlxuICB9LFxuICBbVEFCTEVfSEVBRF9ST1dfUlVMRV9OQU1FXToge1xuICAgIHRhZ05hbWU6IFwidHJcIixcbiAgICBjbGFzc05hbWU6IG51bGxcbiAgfSxcbiAgW1RBQkxFX0JPRFlfUk9XX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBcInRyXCIsXG4gICAgY2xhc3NOYW1lOiBudWxsXG4gIH0sXG4gIFtJTkxJTkVfTElTVElOR19SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogXCJwcmVcIixcbiAgICBjbGFzc05hbWU6IFwiaW5saW5lXCJcbiAgfSxcbiAgW1VOT1JERVJFRF9MSVNUX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBcInVsXCIsXG4gICAgY2xhc3NOYW1lOiBudWxsXG4gIH0sXG4gIFtGT09UTk9URVNfTElTVF9SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogXCJvbFwiLFxuICAgIGNsYXNzTmFtZTogXCJmb290bm90ZXNcIlxuICB9LFxuICBbVEFCTEVfSEVBRF9DRUxMX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBcInRoXCIsXG4gICAgY2xhc3NOYW1lOiBudWxsXG4gIH0sXG4gIFtUQUJMRV9CT0RZX0NFTExfUlVMRV9OQU1FXToge1xuICAgIHRhZ05hbWU6IFwidGRcIixcbiAgICBjbGFzc05hbWU6IG51bGxcbiAgfSxcbiAgW1RBQkxFX1NFUEFSQVRPUl9SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogbnVsbCxcbiAgICBjbGFzc05hbWU6IG51bGxcbiAgfSxcbiAgW0VNUEhBU0lTRURfVEVYVF9SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogXCJlbVwiLFxuICAgIGNsYXNzTmFtZTogbnVsbFxuICB9LFxuICBbUFJJTUFSWV9IRUFESU5HX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBcImgxXCIsXG4gICAgY2xhc3NOYW1lOiBudWxsXG4gIH0sXG4gIFtURVJUSUFSWV9IRUFESU5HX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBcImgzXCIsXG4gICAgY2xhc3NOYW1lOiBudWxsXG4gIH0sXG4gIFtPUkRFUkVEX0xJU1RfSVRFTV9SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogXCJsaVwiLFxuICAgIGNsYXNzTmFtZTogbnVsbFxuICB9LFxuICBbQkxPQ0tfTElTVElOR19FTkRfUlVMRV9OQU1FXToge1xuICAgIHRhZ05hbWU6IG51bGwsXG4gICAgY2xhc3NOYW1lOiBudWxsXG4gIH0sXG4gIFtTRUNPTkRBUllfSEVBRElOR19SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogXCJoMlwiLFxuICAgIGNsYXNzTmFtZTogbnVsbFxuICB9LFxuICBbUVVBVEVSTkFSWV9IRUFESU5HX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBcImg0XCIsXG4gICAgY2xhc3NOYW1lOiBudWxsXG4gIH0sXG4gIFtCTE9DS19MSVNUSU5HX1NUQVJUX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBudWxsLFxuICAgIGNsYXNzTmFtZTogbnVsbFxuICB9LFxuICBbVU5PUkRFUkVEX0xJU1RfSVRFTV9SVUxFX05BTUVdOiB7XG4gICAgdGFnTmFtZTogXCJsaVwiLFxuICAgIGNsYXNzTmFtZTogbnVsbFxuICB9LFxuICBbU1RST05HTFlfRU1QSEFTSVNFRF9URVhUX1JVTEVfTkFNRV06IHtcbiAgICB0YWdOYW1lOiBcImVtXCIsXG4gICAgY2xhc3NOYW1lOiBudWxsXG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IHJ1bGVOYW1lTWFwO1xuIl0sIm5hbWVzIjpbInJ1bGVOYW1lTWFwIiwiTElOS19SVUxFX05BTUUiLCJ0YWdOYW1lIiwiY2xhc3NOYW1lIiwiTElORV9SVUxFX05BTUUiLCJJTUFHRV9SVUxFX05BTUUiLCJUQUJMRV9SVUxFX05BTUUiLCJFUlJPUl9SVUxFX05BTUUiLCJBTkNIT1JfUlVMRV9OQU1FIiwiTUFSS0VSX1JVTEVfTkFNRSIsIklNUE9SVF9SVUxFX05BTUUiLCJJTVBPUlRTX1JVTEVfTkFNRSIsIkNPTlRFTlRTX1JVTEVfTkFNRSIsIkZPT1ROT1RFX1JVTEVfTkFNRSIsIkRJVklTSU9OX1JVTEVfTkFNRSIsIlJFRkVSRU5DRV9SVUxFX05BTUUiLCJQQVJBR1JBUEhfUlVMRV9OQU1FIiwiSFlQRVJMSU5LX1JVTEVfTkFNRSIsIkxJTkVfQlJFQUtfUlVMRV9OQU1FIiwiVEFCTEVfQ0VMTF9SVUxFX05BTUUiLCJUQUJMRV9IRUFEX1JVTEVfTkFNRSIsIlRBQkxFX0JPRFlfUlVMRV9OQU1FIiwiQkxPQ0tfVEVYVF9SVUxFX05BTUUiLCJDTEFTU19OQU1FX1JVTEVfTkFNRSIsIlBMQUlOX1RFWFRfUlVMRV9OQU1FIiwiRU1BSUxfTElOS19SVUxFX05BTUUiLCJFTkRfT0ZfTElORV9SVUxFX05BTUUiLCJNQVJLRURfVEVYVF9SVUxFX05BTUUiLCJJTkxJTkVfVEVYVF9SVUxFX05BTUUiLCJTVFJPTkdfVEVYVF9SVUxFX05BTUUiLCJTVUJfRElWSVNJT05fUlVMRV9OQU1FIiwiT1JERVJFRF9MSVNUX1JVTEVfTkFNRSIsIkJMT0NLX0xJU1RJTkdfUlVMRV9OQU1FIiwiQ09OVEVOVFNfTElOS19SVUxFX05BTUUiLCJDT05URU5UU19JVEVNX1JVTEVfTkFNRSIsIkNPTlRFTlRTX0xJU1RfUlVMRV9OQU1FIiwiRk9PVE5PVEVfSVRFTV9SVUxFX05BTUUiLCJUQUJMRV9IRUFEX1JPV19SVUxFX05BTUUiLCJUQUJMRV9CT0RZX1JPV19SVUxFX05BTUUiLCJJTkxJTkVfTElTVElOR19SVUxFX05BTUUiLCJVTk9SREVSRURfTElTVF9SVUxFX05BTUUiLCJGT09UTk9URVNfTElTVF9SVUxFX05BTUUiLCJUQUJMRV9IRUFEX0NFTExfUlVMRV9OQU1FIiwiVEFCTEVfQk9EWV9DRUxMX1JVTEVfTkFNRSIsIlRBQkxFX1NFUEFSQVRPUl9SVUxFX05BTUUiLCJFTVBIQVNJU0VEX1RFWFRfUlVMRV9OQU1FIiwiUFJJTUFSWV9IRUFESU5HX1JVTEVfTkFNRSIsIlRFUlRJQVJZX0hFQURJTkdfUlVMRV9OQU1FIiwiT1JERVJFRF9MSVNUX0lURU1fUlVMRV9OQU1FIiwiQkxPQ0tfTElTVElOR19FTkRfUlVMRV9OQU1FIiwiU0VDT05EQVJZX0hFQURJTkdfUlVMRV9OQU1FIiwiUVVBVEVSTkFSWV9IRUFESU5HX1JVTEVfTkFNRSIsIkJMT0NLX0xJU1RJTkdfU1RBUlRfUlVMRV9OQU1FIiwiVU5PUkRFUkVEX0xJU1RfSVRFTV9SVUxFX05BTUUiLCJTVFJPTkdMWV9FTVBIQVNJU0VEX1RFWFRfUlVMRV9OQU1FIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkEwUUE7OztlQUFBOzs7eUJBck5tRDs7Ozs7Ozs7Ozs7Ozs7SUFFL0I7QUFBcEIsSUFBTUEsZUFBYyxXQUNsQixpQkFEa0IsTUFDakJDLHlCQUFjLEVBQUc7SUFDaEJDLFNBQVM7SUFDVEMsV0FBVztBQUNiLElBQ0EsaUJBTGtCLE1BS2pCQyx5QkFBYyxFQUFHO0lBQ2hCRixTQUFTO0lBQ1RDLFdBQVc7QUFDYixJQUNBLGlCQVRrQixNQVNqQkUsMEJBQWUsRUFBRztJQUNqQkgsU0FBUztJQUNUQyxXQUFXO0FBQ2IsSUFDQSxpQkFia0IsTUFhakJHLDBCQUFlLEVBQUc7SUFDakJKLFNBQVM7SUFDVEMsV0FBVztBQUNiLElBQ0EsaUJBakJrQixNQWlCakJJLDBCQUFlLEVBQUc7SUFDakJMLFNBQVM7SUFDVEMsV0FBVztBQUNiLElBQ0EsaUJBckJrQixNQXFCakJLLDJCQUFnQixFQUFHO0lBQ2xCTixTQUFTO0lBQ1RDLFdBQVc7QUFD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