occam-verify-cli 1.0.448 → 1.0.457

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 (161) hide show
  1. package/lib/constants.js +1 -5
  2. package/lib/context/file.js +50 -78
  3. package/lib/context/fragment.js +77 -0
  4. package/lib/context/release.js +3 -3
  5. package/lib/context/scoped.js +314 -0
  6. package/lib/context/transient.js +371 -0
  7. package/lib/element/assumption.js +71 -84
  8. package/lib/element/combinator/bracketed.js +1 -10
  9. package/lib/element/conclusion.js +11 -8
  10. package/lib/element/constructor/bracketed.js +1 -10
  11. package/lib/element/declaration/combinator.js +1 -2
  12. package/lib/element/declaration/metavariable.js +3 -3
  13. package/lib/element/declaration/variable.js +3 -3
  14. package/lib/element/deduction.js +18 -13
  15. package/lib/element/frame.js +40 -46
  16. package/lib/element/judgement.js +35 -56
  17. package/lib/element/metaType.js +5 -4
  18. package/lib/element/metavariable.js +6 -6
  19. package/lib/element/proof.js +4 -4
  20. package/lib/element/proofAssertion/premise.js +308 -0
  21. package/lib/element/proofAssertion/step.js +305 -0
  22. package/lib/element/proofAssertion/supposition.js +322 -0
  23. package/lib/element/proofAssertion.js +5 -9
  24. package/lib/element/reference.js +24 -23
  25. package/lib/element/rule.js +4 -4
  26. package/lib/element/section.js +4 -4
  27. package/lib/element/statement.js +2 -7
  28. package/lib/element/subproof.js +4 -4
  29. package/lib/element/substitution/frame.js +7 -7
  30. package/lib/element/substitution/statement.js +15 -39
  31. package/lib/element/substitution.js +5 -5
  32. package/lib/element/term.js +12 -10
  33. package/lib/element/topLevelAssertion/axiom.js +329 -0
  34. package/lib/element/{conjecture.js → topLevelAssertion/conjecture.js} +7 -7
  35. package/lib/element/{lemma.js → topLevelAssertion/lemma.js} +6 -6
  36. package/lib/element/{theorem.js → topLevelAssertion/theorem.js} +7 -7
  37. package/lib/element/topLevelAssertion.js +427 -0
  38. package/lib/element/{metaLemma.js → topLevelMetaAssertion/metaLemma.js} +7 -7
  39. package/lib/element/{metatheorem.js → topLevelMetaAssertion/metatheorem.js} +7 -7
  40. package/lib/element/topLevelMetaAssertion.js +289 -0
  41. package/lib/element/type.js +4 -4
  42. package/lib/element/variable.js +20 -20
  43. package/lib/metaTypes.js +18 -15
  44. package/lib/node/proofAssertion/premise.js +116 -0
  45. package/lib/node/proofAssertion/step.js +152 -0
  46. package/lib/node/proofAssertion/supposition.js +116 -0
  47. package/lib/node/{premise.js → proofAssertion.js} +11 -18
  48. package/lib/node/statement.js +2 -2
  49. package/lib/node/substitution/statement.js +2 -2
  50. package/lib/node/{axiom.js → topLevelAssertion/axiom.js} +7 -7
  51. package/lib/node/{conjecture.js → topLevelAssertion/conjecture.js} +7 -7
  52. package/lib/node/{lemma.js → topLevelAssertion/lemma.js} +7 -7
  53. package/lib/node/{theorem.js → topLevelAssertion/theorem.js} +7 -7
  54. package/lib/node/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +9 -9
  55. package/lib/node/{metaLemma.js → topLevelMetaAssertion/metaLemma.js} +7 -7
  56. package/lib/node/{metatheorem.js → topLevelMetaAssertion/metatheorem.js} +7 -7
  57. package/lib/node/{metaLemmaMetaTheorem.js → topLevelMetaAssertion.js} +9 -9
  58. package/lib/nonTerminalNodeMap.js +13 -13
  59. package/lib/preamble.js +10 -10
  60. package/lib/process/instantiate.js +6 -9
  61. package/lib/process/unify.js +7 -6
  62. package/lib/types.js +3 -3
  63. package/lib/utilities/bnf.js +5 -5
  64. package/lib/utilities/context.js +28 -0
  65. package/lib/utilities/element.js +101 -99
  66. package/lib/utilities/fragment.js +23 -0
  67. package/lib/utilities/instance.js +12 -34
  68. package/lib/utilities/json.js +3 -2
  69. package/lib/utilities/string.js +42 -21
  70. package/lib/utilities/unification.js +17 -17
  71. package/lib/utilities/validation.js +22 -25
  72. package/package.json +2 -2
  73. package/src/constants.js +0 -1
  74. package/src/context/file.js +48 -55
  75. package/src/context/fragment.js +38 -0
  76. package/src/context/release.js +4 -2
  77. package/src/context/{local.js → scoped.js} +8 -100
  78. package/src/context/{temporary.js → transient.js} +9 -131
  79. package/src/element/assumption.js +69 -85
  80. package/src/element/combinator/bracketed.js +0 -7
  81. package/src/element/conclusion.js +14 -10
  82. package/src/element/constructor/bracketed.js +0 -7
  83. package/src/element/declaration/combinator.js +0 -1
  84. package/src/element/declaration/metavariable.js +2 -2
  85. package/src/element/declaration/variable.js +5 -5
  86. package/src/element/deduction.js +22 -15
  87. package/src/element/frame.js +36 -48
  88. package/src/element/judgement.js +33 -58
  89. package/src/element/metaType.js +4 -4
  90. package/src/element/metavariable.js +8 -6
  91. package/src/element/proof.js +3 -3
  92. package/src/element/{premise.js → proofAssertion/premise.js} +23 -23
  93. package/src/element/{step.js → proofAssertion/step.js} +32 -40
  94. package/src/element/{supposition.js → proofAssertion/supposition.js} +24 -24
  95. package/src/element/proofAssertion.js +6 -13
  96. package/src/element/reference.js +23 -21
  97. package/src/element/rule.js +3 -3
  98. package/src/element/section.js +4 -4
  99. package/src/element/statement.js +2 -9
  100. package/src/element/subproof.js +3 -3
  101. package/src/element/substitution/frame.js +10 -13
  102. package/src/element/substitution/statement.js +20 -52
  103. package/src/element/substitution.js +3 -3
  104. package/src/element/term.js +10 -9
  105. package/src/element/{axiom.js → topLevelAssertion/axiom.js} +15 -15
  106. package/src/element/{conjecture.js → topLevelAssertion/conjecture.js} +4 -4
  107. package/src/element/{lemma.js → topLevelAssertion/lemma.js} +3 -3
  108. package/src/element/{theorem.js → topLevelAssertion/theorem.js} +4 -4
  109. package/src/element/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +9 -9
  110. package/src/element/{metaLemma.js → topLevelMetaAssertion/metaLemma.js} +4 -4
  111. package/src/element/{metatheorem.js → topLevelMetaAssertion/metatheorem.js} +4 -4
  112. package/src/element/{metaLemmaMetatheorem.js → topLevelMetaAssertion.js} +7 -7
  113. package/src/element/type.js +2 -4
  114. package/src/element/variable.js +17 -17
  115. package/src/metaTypes.js +25 -9
  116. package/src/node/proofAssertion/premise.js +16 -0
  117. package/src/node/{step.js → proofAssertion/step.js} +4 -18
  118. package/src/node/proofAssertion/supposition.js +16 -0
  119. package/src/node/proofAssertion.js +23 -0
  120. package/src/node/statement.js +1 -1
  121. package/src/node/substitution/statement.js +1 -1
  122. package/src/node/topLevelAssertion/axiom.js +13 -0
  123. package/src/node/topLevelAssertion/conjecture.js +13 -0
  124. package/src/node/topLevelAssertion/lemma.js +13 -0
  125. package/src/node/topLevelAssertion/theorem.js +13 -0
  126. package/src/node/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +1 -1
  127. package/src/node/topLevelMetaAssertion/metaLemma.js +13 -0
  128. package/src/node/topLevelMetaAssertion/metatheorem.js +13 -0
  129. package/src/node/{metaLemmaMetaTheorem.js → topLevelMetaAssertion.js} +1 -1
  130. package/src/nonTerminalNodeMap.js +12 -12
  131. package/src/preamble.js +9 -9
  132. package/src/process/instantiate.js +31 -32
  133. package/src/process/unify.js +6 -5
  134. package/src/types.js +4 -2
  135. package/src/utilities/bnf.js +3 -2
  136. package/src/utilities/context.js +20 -0
  137. package/src/utilities/element.js +169 -162
  138. package/src/utilities/fragment.js +11 -0
  139. package/src/utilities/instance.js +19 -42
  140. package/src/utilities/json.js +3 -1
  141. package/src/utilities/string.js +53 -28
  142. package/src/utilities/unification.js +16 -16
  143. package/src/utilities/validation.js +26 -35
  144. package/lib/context/local.js +0 -605
  145. package/lib/context/temporary.js +0 -752
  146. package/lib/element/axiom.js +0 -329
  147. package/lib/element/axiomLemmaTheoremConjecture.js +0 -427
  148. package/lib/element/metaLemmaMetatheorem.js +0 -289
  149. package/lib/element/premise.js +0 -307
  150. package/lib/element/step.js +0 -311
  151. package/lib/element/supposition.js +0 -320
  152. package/lib/node/step.js +0 -166
  153. package/lib/node/supposition.js +0 -130
  154. package/src/node/axiom.js +0 -13
  155. package/src/node/conjecture.js +0 -13
  156. package/src/node/lemma.js +0 -13
  157. package/src/node/metaLemma.js +0 -13
  158. package/src/node/metatheorem.js +0 -13
  159. package/src/node/premise.js +0 -30
  160. package/src/node/supposition.js +0 -30
  161. package/src/node/theorem.js +0 -13
@@ -0,0 +1,289 @@
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 TopLevelMetaAssertion;
9
+ }
10
+ });
11
+ var _element = /*#__PURE__*/ _interop_require_default(require("../element"));
12
+ var _scoped = /*#__PURE__*/ _interop_require_default(require("../context/scoped"));
13
+ var _json = require("../utilities/json");
14
+ function _assert_this_initialized(self) {
15
+ if (self === void 0) {
16
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
17
+ }
18
+ return self;
19
+ }
20
+ function _call_super(_this, derived, args) {
21
+ derived = _get_prototype_of(derived);
22
+ return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
23
+ }
24
+ function _class_call_check(instance, Constructor) {
25
+ if (!(instance instanceof Constructor)) {
26
+ throw new TypeError("Cannot call a class as a function");
27
+ }
28
+ }
29
+ function _construct(Parent, args, Class) {
30
+ if (_is_native_reflect_construct()) {
31
+ _construct = Reflect.construct;
32
+ } else {
33
+ _construct = function construct(Parent, args, Class) {
34
+ var a = [
35
+ null
36
+ ];
37
+ a.push.apply(a, args);
38
+ var Constructor = Function.bind.apply(Parent, a);
39
+ var instance = new Constructor();
40
+ if (Class) _set_prototype_of(instance, Class.prototype);
41
+ return instance;
42
+ };
43
+ }
44
+ return _construct.apply(null, arguments);
45
+ }
46
+ function _defineProperties(target, props) {
47
+ for(var i = 0; i < props.length; i++){
48
+ var descriptor = props[i];
49
+ descriptor.enumerable = descriptor.enumerable || false;
50
+ descriptor.configurable = true;
51
+ if ("value" in descriptor) descriptor.writable = true;
52
+ Object.defineProperty(target, descriptor.key, descriptor);
53
+ }
54
+ }
55
+ function _create_class(Constructor, protoProps, staticProps) {
56
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
57
+ if (staticProps) _defineProperties(Constructor, staticProps);
58
+ return Constructor;
59
+ }
60
+ function _get_prototype_of(o) {
61
+ _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
62
+ return o.__proto__ || Object.getPrototypeOf(o);
63
+ };
64
+ return _get_prototype_of(o);
65
+ }
66
+ function _inherits(subClass, superClass) {
67
+ if (typeof superClass !== "function" && superClass !== null) {
68
+ throw new TypeError("Super expression must either be null or a function");
69
+ }
70
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
71
+ constructor: {
72
+ value: subClass,
73
+ writable: true,
74
+ configurable: true
75
+ }
76
+ });
77
+ if (superClass) _set_prototype_of(subClass, superClass);
78
+ }
79
+ function _interop_require_default(obj) {
80
+ return obj && obj.__esModule ? obj : {
81
+ default: obj
82
+ };
83
+ }
84
+ function _is_native_function(fn) {
85
+ return Function.toString.call(fn).indexOf("[native code]") !== -1;
86
+ }
87
+ function _possible_constructor_return(self, call) {
88
+ if (call && (_type_of(call) === "object" || typeof call === "function")) {
89
+ return call;
90
+ }
91
+ return _assert_this_initialized(self);
92
+ }
93
+ function _set_prototype_of(o, p) {
94
+ _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
95
+ o.__proto__ = p;
96
+ return o;
97
+ };
98
+ return _set_prototype_of(o, p);
99
+ }
100
+ function _type_of(obj) {
101
+ "@swc/helpers - typeof";
102
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
103
+ }
104
+ function _wrap_native_super(Class) {
105
+ var _cache = typeof Map === "function" ? new Map() : undefined;
106
+ _wrap_native_super = function wrapNativeSuper(Class) {
107
+ if (Class === null || !_is_native_function(Class)) return Class;
108
+ if (typeof Class !== "function") {
109
+ throw new TypeError("Super expression must either be null or a function");
110
+ }
111
+ if (typeof _cache !== "undefined") {
112
+ if (_cache.has(Class)) return _cache.get(Class);
113
+ _cache.set(Class, Wrapper);
114
+ }
115
+ function Wrapper() {
116
+ return _construct(Class, arguments, _get_prototype_of(this).constructor);
117
+ }
118
+ Wrapper.prototype = Object.create(Class.prototype, {
119
+ constructor: {
120
+ value: Wrapper,
121
+ enumerable: false,
122
+ writable: true,
123
+ configurable: true
124
+ }
125
+ });
126
+ return _set_prototype_of(Wrapper, Class);
127
+ };
128
+ return _wrap_native_super(Class);
129
+ }
130
+ function _is_native_reflect_construct() {
131
+ try {
132
+ var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
133
+ } catch (_) {}
134
+ return (_is_native_reflect_construct = function() {
135
+ return !!result;
136
+ })();
137
+ }
138
+ var TopLevelMetaAssertion = /*#__PURE__*/ function(Element) {
139
+ _inherits(TopLevelMetaAssertion, Element);
140
+ function TopLevelMetaAssertion(context, string, node, label, suppositions, deduction, proof, substitutions) {
141
+ _class_call_check(this, TopLevelMetaAssertion);
142
+ var _this;
143
+ _this = _call_super(this, TopLevelMetaAssertion, [
144
+ context,
145
+ string,
146
+ node
147
+ ]);
148
+ _this.label = label;
149
+ _this.suppositions = suppositions;
150
+ _this.deduction = deduction;
151
+ _this.proof = proof;
152
+ _this.substitutions = substitutions;
153
+ return _this;
154
+ }
155
+ _create_class(TopLevelMetaAssertion, [
156
+ {
157
+ key: "getLabel",
158
+ value: function getLabel() {
159
+ return this.label;
160
+ }
161
+ },
162
+ {
163
+ key: "getSuppositions",
164
+ value: function getSuppositions() {
165
+ return this.suppositions;
166
+ }
167
+ },
168
+ {
169
+ key: "getDeduction",
170
+ value: function getDeduction() {
171
+ return this.deduction;
172
+ }
173
+ },
174
+ {
175
+ key: "getProof",
176
+ value: function getProof() {
177
+ return this.proof;
178
+ }
179
+ },
180
+ {
181
+ key: "getSubstitutions",
182
+ value: function getSubstitutions() {
183
+ return this.substitutions;
184
+ }
185
+ },
186
+ {
187
+ key: "getStatement",
188
+ value: function getStatement() {
189
+ return this.deduction.getStatement();
190
+ }
191
+ },
192
+ {
193
+ key: "compareReference",
194
+ value: function compareReference(reference) {
195
+ var label = this.getLabel(), labelComparesToRefference = label.compareReference(reference), comparesToReference = labelComparesToRefference; ///
196
+ return comparesToReference;
197
+ }
198
+ },
199
+ {
200
+ key: "verify",
201
+ value: function verify() {
202
+ var verifies = false;
203
+ var labelVerifies = this.verifyLabel();
204
+ if (labelVerifies) {
205
+ var scopedContext = _scoped.default.fromNothing(this.context), context = scopedContext, suppositionsVerify = this.verifySuppositions(context);
206
+ if (suppositionsVerify) {
207
+ var deductionVerifies = this.verifyDeduction(context);
208
+ if (deductionVerifies) {
209
+ var proofVerifies = this.verifyProof(context);
210
+ if (proofVerifies) {
211
+ verifies = true;
212
+ }
213
+ }
214
+ }
215
+ }
216
+ return verifies;
217
+ }
218
+ },
219
+ {
220
+ key: "verifyLabel",
221
+ value: function verifyLabel() {
222
+ var nameOnly = false, labelVerifies = this.label.verify(nameOnly);
223
+ return labelVerifies;
224
+ }
225
+ },
226
+ {
227
+ key: "verifySuppositions",
228
+ value: function verifySuppositions(context) {
229
+ var _this = this;
230
+ var suppositionsVerify = this.suppositions.every(function(supposition) {
231
+ var suppositionVerifies = _this.verifySupposition(supposition, context);
232
+ if (suppositionVerifies) {
233
+ return true;
234
+ }
235
+ });
236
+ return suppositionsVerify;
237
+ }
238
+ },
239
+ {
240
+ key: "verifySupposition",
241
+ value: function verifySupposition(supposition, context) {
242
+ var suppositionVerifies = supposition.verify(context);
243
+ return suppositionVerifies;
244
+ }
245
+ },
246
+ {
247
+ key: "verifyDeduction",
248
+ value: function verifyDeduction(context) {
249
+ var deductionVerifies = this.deduction.verify(context);
250
+ return deductionVerifies;
251
+ }
252
+ },
253
+ {
254
+ key: "verifyProof",
255
+ value: function verifyProof(context) {
256
+ var proofVerifies;
257
+ if (this.proof === null) {
258
+ proofVerifies = true;
259
+ } else {
260
+ proofVerifies = this.proof.verify(this.substitutions, this.deduction, context);
261
+ }
262
+ return proofVerifies;
263
+ }
264
+ },
265
+ {
266
+ key: "toJSON",
267
+ value: function toJSON() {
268
+ var labelJSON = (0, _json.labelToLabelJSON)(this.label), deductionJSON = (0, _json.deductionToDeductionJSON)(this.deduction), suppositionsJSON = (0, _json.suppositionsToSuppositionsJSON)(this.suppositions), substitutionsJSON = (0, _json.substitutionsToSubstitutionsJSON)(this.substitutions), label = labelJSON, deduction = deductionJSON, suppositions = suppositionsJSON, substitutions = substitutionsJSON, json = {
269
+ label: label,
270
+ deduction: deduction,
271
+ suppositions: suppositions,
272
+ substitutions: substitutions
273
+ };
274
+ return json;
275
+ }
276
+ }
277
+ ], [
278
+ {
279
+ key: "fromJSON",
280
+ value: function fromJSON(Class, json, context) {
281
+ var label = (0, _json.labelFromJSON)(json, context), deduction = (0, _json.deductionFromJSON)(json, context), suppositions = (0, _json.suppositionsFromJSON)(json, context), substitutions = (0, _json.substitutionsFromJSON)(json, context), node = null, proof = null, string = topLevelMetaAssertionStringFromLabelASuppositionsAndDeduction(label, suppositions, deduction), topLevelMetaAssertion = new Class(context, string, node, label, suppositions, deduction, proof, substitutions);
282
+ return topLevelMetaAssertion;
283
+ }
284
+ }
285
+ ]);
286
+ return TopLevelMetaAssertion;
287
+ }(_wrap_native_super(_element.default));
288
+
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3RvcExldmVsTWV0YUFzc2VydGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEVsZW1lbnQgZnJvbSBcIi4uL2VsZW1lbnRcIjtcbmltcG9ydCBTY29wZWRDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3Njb3BlZFwiO1xuXG5pbXBvcnQgeyBsYWJlbEZyb21KU09OLFxuICAgICAgICAgbGFiZWxUb0xhYmVsSlNPTixcbiAgICAgICAgIGRlZHVjdGlvbkZyb21KU09OLFxuICAgICAgICAgc3VwcG9zaXRpb25zRnJvbUpTT04sXG4gICAgICAgICBzdWJzdGl0dXRpb25zRnJvbUpTT04sXG4gICAgICAgICBkZWR1Y3Rpb25Ub0RlZHVjdGlvbkpTT04sXG4gICAgICAgICBzdXBwb3NpdGlvbnNUb1N1cHBvc2l0aW9uc0pTT04sXG4gICAgICAgICBzdWJzdGl0dXRpb25zVG9TdWJzdGl0dXRpb25zSlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUb3BMZXZlbE1ldGFBc3NlcnRpb24gZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBsYWJlbCwgc3VwcG9zaXRpb25zLCBkZWR1Y3Rpb24sIHByb29mLCBzdWJzdGl0dXRpb25zKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlKTtcblxuICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcbiAgICB0aGlzLnN1cHBvc2l0aW9ucyA9IHN1cHBvc2l0aW9ucztcbiAgICB0aGlzLmRlZHVjdGlvbiA9IGRlZHVjdGlvbjtcbiAgICB0aGlzLnByb29mID0gcHJvb2Y7XG4gICAgdGhpcy5zdWJzdGl0dXRpb25zID0gc3Vic3RpdHV0aW9ucztcbiAgfVxuXG4gIGdldExhYmVsKCkge1xuICAgIHJldHVybiB0aGlzLmxhYmVsO1xuICB9XG5cbiAgZ2V0U3VwcG9zaXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnN1cHBvc2l0aW9ucztcbiAgfVxuXG4gIGdldERlZHVjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5kZWR1Y3Rpb247XG4gIH1cblxuICBnZXRQcm9vZigpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9vZjtcbiAgfVxuXG4gIGdldFN1YnN0aXR1dGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3Vic3RpdHV0aW9ucztcbiAgfVxuXG4gIGdldFN0YXRlbWVudCgpIHsgcmV0dXJuIHRoaXMuZGVkdWN0aW9uLmdldFN0YXRlbWVudCgpOyB9XG5cbiAgY29tcGFyZVJlZmVyZW5jZShyZWZlcmVuY2UpIHtcbiAgICBjb25zdCBsYWJlbCA9IHRoaXMuZ2V0TGFiZWwoKSxcbiAgICAgICAgICBsYWJlbENvbXBhcmVzVG9SZWZmZXJlbmNlID0gbGFiZWwuY29tcGFyZVJlZmVyZW5jZShyZWZlcmVuY2UpLFxuICAgICAgICAgIGNvbXBhcmVzVG9SZWZlcmVuY2UgPSBsYWJlbENvbXBhcmVzVG9SZWZmZXJlbmNlOyAgLy8vXG5cbiAgICByZXR1cm4gY29tcGFyZXNUb1JlZmVyZW5jZTtcbiAgfVxuXG4gIHZlcmlmeSgpIHtcbiAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGxhYmVsVmVyaWZpZXMgPSB0aGlzLnZlcmlmeUxhYmVsKCk7XG5cbiAgICBpZiAobGFiZWxWZXJpZmllcykge1xuICAgICAgY29uc3Qgc2NvcGVkQ29udGV4dCA9IFNjb3BlZENvbnRleHQuZnJvbU5vdGhpbmcodGhpcy5jb250ZXh0KSxcbiAgICAgICAgICAgIGNvbnRleHQgPSBzY29wZWRDb250ZXh0LCAvLy9cbiAgICAgICAgICAgIHN1cHBvc2l0aW9uc1ZlcmlmeSA9IHRoaXMudmVyaWZ5U3VwcG9zaXRpb25zKGNvbnRleHQpO1xuXG4gICAgICBpZiAoc3VwcG9zaXRpb25zVmVyaWZ5KSB7XG4gICAgICAgIGNvbnN0IGRlZHVjdGlvblZlcmlmaWVzID0gdGhpcy52ZXJpZnlEZWR1Y3Rpb24oY29udGV4dCk7XG5cbiAgICAgICAgaWYgKGRlZHVjdGlvblZlcmlmaWVzKSB7XG4gICAgICAgICAgY29uc3QgcHJvb2ZWZXJpZmllcyA9IHRoaXMudmVyaWZ5UHJvb2YoY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAocHJvb2ZWZXJpZmllcykge1xuICAgICAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllcztcbiAgfVxuXG4gIHZlcmlmeUxhYmVsKCkge1xuICAgIGNvbnN0IG5hbWVPbmx5ID0gZmFsc2UsXG4gICAgICAgICAgbGFiZWxWZXJpZmllcyA9IHRoaXMubGFiZWwudmVyaWZ5KG5hbWVPbmx5KTtcblxuICAgIHJldHVybiBsYWJlbFZlcmlmaWVzO1xuICB9XG5cbiAgdmVyaWZ5U3VwcG9zaXRpb25zKGNvbnRleHQpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvbnNWZXJpZnkgPSB0aGlzLnN1cHBvc2l0aW9ucy5ldmVyeSgoc3VwcG9zaXRpb24pID0+IHtcbiAgICAgIGNvbnN0IHN1cHBvc2l0aW9uVmVyaWZpZXMgPSB0aGlzLnZlcmlmeVN1cHBvc2l0aW9uKHN1cHBvc2l0aW9uLCBjb250ZXh0KTtcblxuICAgICAgaWYgKHN1cHBvc2l0aW9uVmVyaWZpZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3VwcG9zaXRpb25zVmVyaWZ5O1xuICB9XG5cbiAgdmVyaWZ5U3VwcG9zaXRpb24oc3VwcG9zaXRpb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvblZlcmlmaWVzID0gc3VwcG9zaXRpb24udmVyaWZ5KGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHN1cHBvc2l0aW9uVmVyaWZpZXM7XG4gIH1cblxuICB2ZXJpZnlEZWR1Y3Rpb24oY29udGV4dCkge1xuICAgIGNvbnN0IGRlZHVjdGlvblZlcmlmaWVzID0gdGhpcy5kZWR1Y3Rpb24udmVyaWZ5KGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGRlZHVjdGlvblZlcmlmaWVzO1xuICB9XG5cbiAgdmVyaWZ5UHJvb2YoY29udGV4dCkge1xuICAgIGxldCBwcm9vZlZlcmlmaWVzO1xuXG4gICAgaWYgKHRoaXMucHJvb2YgPT09IG51bGwpIHtcbiAgICAgIHByb29mVmVyaWZpZXMgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcm9vZlZlcmlmaWVzID0gdGhpcy5wcm9vZi52ZXJpZnkodGhpcy5zdWJzdGl0dXRpb25zLCB0aGlzLmRlZHVjdGlvbiwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb29mVmVyaWZpZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgbGFiZWxKU09OID0gbGFiZWxUb0xhYmVsSlNPTih0aGlzLmxhYmVsKSxcbiAgICAgICAgICBkZWR1Y3Rpb25KU09OID0gZGVkdWN0aW9uVG9EZWR1Y3Rpb25KU09OKHRoaXMuZGVkdWN0aW9uKSxcbiAgICAgICAgICBzdXBwb3NpdGlvbnNKU09OID0gc3VwcG9zaXRpb25zVG9TdXBwb3NpdGlvbnNKU09OKHRoaXMuc3VwcG9zaXRpb25zKSxcbiAgICAgICAgICBzdWJzdGl0dXRpb25zSlNPTiA9IHN1YnN0aXR1dGlvbnNUb1N1YnN0aXR1dGlvbnNKU09OKHRoaXMuc3Vic3RpdHV0aW9ucyksXG4gICAgICAgICAgbGFiZWwgPSBsYWJlbEpTT04sICAvLy9cbiAgICAgICAgICBkZWR1Y3Rpb24gPSBkZWR1Y3Rpb25KU09OLCAgLy8vXG4gICAgICAgICAgc3VwcG9zaXRpb25zID0gc3VwcG9zaXRpb25zSlNPTiwgIC8vL1xuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBzdWJzdGl0dXRpb25zSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIGRlZHVjdGlvbixcbiAgICAgICAgICAgIHN1cHBvc2l0aW9ucyxcbiAgICAgICAgICAgIHN1YnN0aXR1dGlvbnNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oQ2xhc3MsIGpzb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCBsYWJlbCA9IGxhYmVsRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgZGVkdWN0aW9uID0gZGVkdWN0aW9uRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgc3VwcG9zaXRpb25zID0gc3VwcG9zaXRpb25zRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IHN1YnN0aXR1dGlvbnNGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICBwcm9vZiA9IG51bGwsXG4gICAgICAgICAgc3RyaW5nID0gdG9wTGV2ZWxNZXRhQXNzZXJ0aW9uU3RyaW5nRnJvbUxhYmVsQVN1cHBvc2l0aW9uc0FuZERlZHVjdGlvbihsYWJlbCwgc3VwcG9zaXRpb25zLCBkZWR1Y3Rpb24pLFxuICAgICAgICAgIHRvcExldmVsTWV0YUFzc2VydGlvbiA9IG5ldyBDbGFzcyhjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGxhYmVsLCBzdXBwb3NpdGlvbnMsIGRlZHVjdGlvbiwgcHJvb2YsIHN1YnN0aXR1dGlvbnMpO1xuXG4gICAgcmV0dXJuIHRvcExldmVsTWV0YUFzc2VydGlvbjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlRvcExldmVsTWV0YUFzc2VydGlvbiIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwibGFiZWwiLCJzdXBwb3NpdGlvbnMiLCJkZWR1Y3Rpb24iLCJwcm9vZiIsInN1YnN0aXR1dGlvbnMiLCJnZXRMYWJlbCIsImdldFN1cHBvc2l0aW9ucyIsImdldERlZHVjdGlvbiIsImdldFByb29mIiwiZ2V0U3Vic3RpdHV0aW9ucyIsImdldFN0YXRlbWVudCIsImNvbXBhcmVSZWZlcmVuY2UiLCJyZWZlcmVuY2UiLCJsYWJlbENvbXBhcmVzVG9SZWZmZXJlbmNlIiwiY29tcGFyZXNUb1JlZmVyZW5jZSIsInZlcmlmeSIsInZlcmlmaWVzIiwibGFiZWxWZXJpZmllcyIsInZlcmlmeUxhYmVsIiwic2NvcGVkQ29udGV4dCIsIlNjb3BlZENvbnRleHQiLCJmcm9tTm90aGluZyIsInN1cHBvc2l0aW9uc1ZlcmlmeSIsInZlcmlmeVN1cHBvc2l0aW9ucyIsImRlZHVjdGlvblZlcmlmaWVzIiwidmVyaWZ5RGVkdWN0aW9uIiwicHJvb2ZWZXJpZmllcyIsInZlcmlmeVByb29mIiwibmFtZU9ubHkiLCJldmVyeSIsInN1cHBvc2l0aW9uIiwic3VwcG9zaXRpb25WZXJpZmllcyIsInZlcmlmeVN1cHBvc2l0aW9uIiwidG9KU09OIiwibGFiZWxKU09OIiwibGFiZWxUb0xhYmVsSlNPTiIsImRlZHVjdGlvbkpTT04iLCJkZWR1Y3Rpb25Ub0RlZHVjdGlvbkpTT04iLCJzdXBwb3NpdGlvbnNKU09OIiwic3VwcG9zaXRpb25zVG9TdXBwb3NpdGlvbnNKU09OIiwic3Vic3RpdHV0aW9uc0pTT04iLCJzdWJzdGl0dXRpb25zVG9TdWJzdGl0dXRpb25zSlNPTiIsImpzb24iLCJmcm9tSlNPTiIsIkNsYXNzIiwibGFiZWxGcm9tSlNPTiIsImRlZHVjdGlvbkZyb21KU09OIiwic3VwcG9zaXRpb25zRnJvbUpTT04iLCJzdWJzdGl0dXRpb25zRnJvbUpTT04iLCJ0b3BMZXZlbE1ldGFBc3NlcnRpb25TdHJpbmdGcm9tTGFiZWxBU3VwcG9zaXRpb25zQW5kRGVkdWN0aW9uIiwidG9wTGV2ZWxNZXRhQXNzZXJ0aW9uIiwiRWxlbWVudCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFjcUJBOzs7OERBWkQ7NkRBQ007b0JBU3VCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -444,9 +444,9 @@ var _default = (0, _elements.define)((_Type = /*#__PURE__*/ function(Element) {
444
444
  }
445
445
  },
446
446
  {
447
- key: "fromName",
448
- value: function fromName(name) {
449
- var context = null, string = name, node = null, prefixName = null, superTypes = [], properties = [], provisional = false, type = new Type(context, string, node, name, prefixName, superTypes, properties, provisional);
447
+ key: "fromNameAndProvisional",
448
+ value: function fromNameAndProvisional(name, provisional, context) {
449
+ var string = name, node = null, prefixName = null, superTypes = [], properties = [], type = new Type(context, string, node, name, prefixName, superTypes, properties, provisional);
450
450
  return type;
451
451
  }
452
452
  }
@@ -454,4 +454,4 @@ var _default = (0, _elements.define)((_Type = /*#__PURE__*/ function(Element) {
454
454
  return Type;
455
455
  }(_wrap_native_super(_element.default)), _define_property(_Type, "name", "Type"), _Type));
456
456
 
457
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgRWxlbWVudCBmcm9tIFwiLi4vZWxlbWVudFwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGJhc2VUeXBlRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHR5cGVTdHJpbmdGcm9tVHlwZU5hbWVUeXBlUHJlZml4TmFtZUFuZFN1cGVyVHlwZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgc3VwZXJUeXBlc0Zyb21KU09OLCBwcm9wZXJ0aWVzRnJvbUpTT04sIHN1cGVyVHlwZXNUb1N1cGVyVHlwZXNKU09OLCBwcm9wZXJ0aWVzVG9Qcm9wZXJ0aWVzSlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuXG5jb25zdCB7IHB1c2gsIGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFR5cGUgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBuYW1lLCBwcmVmaXhOYW1lLCBzdXBlclR5cGVzLCBwcm9wZXJ0aWVzLCBwcm92aXNpb25hbCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnByZWZpeE5hbWUgPSBwcmVmaXhOYW1lO1xuICAgIHRoaXMuc3VwZXJUeXBlcyA9IHN1cGVyVHlwZXM7XG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICB0aGlzLnByb3Zpc2lvbmFsID0gcHJvdmlzaW9uYWw7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRQcmVmaXhOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnByZWZpeE5hbWU7XG4gIH1cblxuICBnZXRTdXBlclR5cGVzKCkge1xuICAgIHJldHVybiB0aGlzLnN1cGVyVHlwZXM7XG4gIH1cblxuICBnZXRQcm9wZXJ0aWVzKGluY2x1ZGVTdXBlclR5cGVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSBbXTtcblxuICAgIHB1c2gocHJvcGVydGllcywgdGhpcy5wcm9wZXJ0aWVzKTtcblxuICAgIGlmIChpbmNsdWRlU3VwZXJUeXBlcykge1xuICAgICAgdGhpcy5zdXBlclR5cGVzLmZvckVhY2goKHN1cGVyVHlwZSkgPT4ge1xuICAgICAgICBjb25zdCBzdXBlclR5cGVQcm9wZXJ0aWVzID0gc3VwZXJUeXBlLmdldFByb3BlcnRpZXMoKTtcblxuICAgICAgICBwdXNoKHByb3BlcnRpZXMsIHN1cGVyVHlwZVByb3BlcnRpZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BlcnRpZXM7XG4gIH1cblxuICBpc1Byb3Zpc2lvbmFsKGluY2x1ZGVTdXBlclR5cGVzID0gdHJ1ZSkge1xuICAgIGxldCBwcm92aXNpb25hbCA9IHRoaXMucHJvdmlzaW9uYWw7XG5cbiAgICBpZiAoaW5jbHVkZVN1cGVyVHlwZXMpIHtcbiAgICAgIGlmICghcHJvdmlzaW9uYWwpIHtcbiAgICAgICAgcHJvdmlzaW9uYWwgPSB0aGlzLnN1cGVyVHlwZXMuc29tZSgoc3VwZXJUeXBlKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3VwZXJUeXBlUHJvdmlzaW9uYWwgPSBzdXBlclR5cGUuaXNQcm92aXNpb25hbCgpO1xuXG4gICAgICAgICAgaWYgKHN1cGVyVHlwZVByb3Zpc2lvbmFsKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwcm92aXNpb25hbDtcbiAgfVxuXG4gIHNldE5hbWUobmFtZSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cblxuICBzZXRQcmVmaXhOYW1lKHByZWZpeE5hbWUpIHtcbiAgICB0aGlzLnByZWZpeE5hbWUgPSBwcmVmaXhOYW1lO1xuICB9XG5cbiAgc2V0U3VwZXJUeXBlcyhzdXBlclR5cGVzKSB7XG4gICAgdGhpcy5zdXBlclR5cGVzID0gc3VwZXJUeXBlcztcbiAgfVxuXG4gIHNldFByb3BlcnRpZXMocHJvcGVydGllcykge1xuICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gIH1cblxuICBzZXRQcm92aXNpb25hbChwcm92aXNpb25hbCkge1xuICAgIHRoaXMucHJvdmlzaW9uYWwgPSBwcm92aXNpb25hbDtcbiAgfVxuXG4gIHJlcGxhY2VTdXBlclR5cGUob2xkU3VwZXJUeXBlLCBuZXdTdXBlclR5cGUpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc3VwZXJUeXBlcy5pbmRleE9mKG9sZFN1cGVyVHlwZSksXG4gICAgICAgICAgc3RhcnQgPSBpbmRleCxcbiAgICAgICAgICBkZWxldGVDb3VudCA9IDE7XG5cbiAgICB0aGlzLnN1cGVyVHlwZXMuc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCwgbmV3U3VwZXJUeXBlKTtcbiAgfVxuXG4gIGlzUHJlZml4ZWQoKSB7XG4gICAgY29uc3QgcHJlZml4ZWQgPSAodGhpcy5wcmVmaXhOYW1lICE9PSBudWxsKTtcblxuICAgIHJldHVybiBwcmVmaXhlZDtcbiAgfVxuXG4gIGdldFByZWZpeGVkTmFtZSgpIHtcbiAgICBsZXQgcHJlZml4ZWROYW1lID0gbnVsbDtcblxuICAgIGNvbnN0IHByZWZpeGVkID0gdGhpcy5pc1ByZWZpeGVkKCk7XG5cbiAgICBpZiAocHJlZml4ZWQpIHtcbiAgICAgIHByZWZpeGVkTmFtZSA9IGAke3RoaXMucHJlZml4TmFtZX0ke3RoaXMubmFtZX1gO1xuICAgIH1cblxuICAgIHJldHVybiBwcmVmaXhlZE5hbWU7XG4gIH1cblxuICBnZXROb21pbmFsVHlwZU5hbWUoKSB7XG4gICAgY29uc3QgcHJlZml4ZWQgPSB0aGlzLmlzUHJlZml4ZWQoKSxcbiAgICAgICAgICBub21pbmFsVHlwZU5hbWUgPSBwcmVmaXhlZCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke3RoaXMucHJlZml4TmFtZX0ke3RoaXMubmFtZX1gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lO1xuXG4gICAgcmV0dXJuIG5vbWluYWxUeXBlTmFtZTtcbiAgfVxuXG4gIGlzQmFzaWMoKSB7XG4gICAgbGV0IGJhc2ljID0gZmFsc2U7XG5cbiAgICBjb25zdCBzdXBlclR5cGVzTGVuZ3RoID0gdGhpcy5zdXBlclR5cGVzLmxlbmd0aDtcblxuICAgIGlmIChzdXBlclR5cGVzTGVuZ3RoID09PSAxKSB7XG4gICAgICBjb25zdCBmaXJzdFN1cGVyVHlwZSA9IGZpcnN0KHRoaXMuc3VwZXJUeXBlcyksXG4gICAgICAgICAgICBzdXBlclR5cGUgPSBmaXJzdFN1cGVyVHlwZSwgLy8vXG4gICAgICAgICAgICBiYXNlVHlwZSA9IGJhc2VUeXBlRnJvbU5vdGhpbmcoKTtcblxuICAgICAgaWYgKHN1cGVyVHlwZSA9PT0gYmFzZVR5cGUpIHtcbiAgICAgICAgYmFzaWMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBiYXNpYztcbiAgfVxuXG4gIGlzUmVmaW5lZCgpIHtcbiAgICBsZXQgcmVmaW5lZCA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc3VwZXJUeXBlc0xlbmd0aCA9IHRoaXMuc3VwZXJUeXBlcy5sZW5ndGg7XG5cbiAgICBpZiAoc3VwZXJUeXBlc0xlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZmlyc3RTdXBlclR5cGUgPSBmaXJzdCh0aGlzLnN1cGVyVHlwZXMpLFxuICAgICAgICAgICAgc3VwZXJUeXBlID0gZmlyc3RTdXBlclR5cGUsIC8vL1xuICAgICAgICAgICAgc3VwZXJUeXBlTmFtZSA9IHN1cGVyVHlwZS5nZXROYW1lKCk7XG5cbiAgICAgIGlmIChzdXBlclR5cGVOYW1lID09PSB0aGlzLm5hbWUpIHtcbiAgICAgICAgcmVmaW5lZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlZmluZWQ7XG4gIH1cblxuICBpc0VxdWFsVG8odHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG8gPSAodGhpcyA9PT0gdHlwZSk7XG5cbiAgICByZXR1cm4gZXF1YWxUbztcbiAgfVxuXG4gIGlzU3ViVHlwZU9mKHR5cGUpIHtcbiAgICBsZXQgc3ViVHlwZU9mO1xuXG4gICAgY29uc3QgYmFzZVR5cGUgPSBiYXNlVHlwZUZyb21Ob3RoaW5nKCk7XG5cbiAgICBpZiAodGhpcyA9PT0gYmFzZVR5cGUpIHtcbiAgICAgIHN1YlR5cGVPZiA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdWJUeXBlT2YgPSB0aGlzLnN1cGVyVHlwZXMuc29tZSgoc3VwZXJUeXBlKSA9PiB7IC8vL1xuICAgICAgICBpZiAoc3VwZXJUeXBlID09PSB0eXBlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdXBlclR5cGVTdWJUeXBlT2ZUeXBlID0gc3VwZXJUeXBlLmlzU3ViVHlwZU9mKHR5cGUpO1xuXG4gICAgICAgIGlmIChzdXBlclR5cGVTdWJUeXBlT2ZUeXBlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YlR5cGVPZjtcbiAgfVxuXG4gIGlzU3VwZXJUeXBlT2YodHlwZSkge1xuICAgIGNvbnN0IHN1YlR5cGVPZiA9IHR5cGUuaXNTdWJUeXBlT2YodGhpcyksXG4gICAgICAgICAgc3VwZXJUeXBlT2YgPSBzdWJUeXBlT2Y7ICAvLy9cblxuICAgIHJldHVybiBzdXBlclR5cGVPZjtcbiAgfVxuXG4gIGlzQ29tcGFyYWJsZVRvKHR5cGUpIHtcbiAgICBjb25zdCBlcXVhbFRvID0gdGhpcy5pc0VxdWFsVG8odHlwZSksXG4gICAgICAgICAgc3ViVHlwZU9mID0gdGhpcy5pc1N1YlR5cGVPZih0eXBlKSxcbiAgICAgICAgICBzdXBlclR5cGVPZiA9IHRoaXMuaXNTdXBlclR5cGVPZih0eXBlKSxcbiAgICAgICAgICBjb21wYXJhYmxlVG8gPSAoZXF1YWxUbyB8fCBzdWJUeXBlT2YgfHwgc3VwZXJUeXBlT2YpO1xuXG4gICAgcmV0dXJuIGNvbXBhcmFibGVUbztcbiAgfVxuXG4gIGlzRXF1YWxUb09yU3ViVHlwZU9mKHR5cGUpIHtcbiAgICBjb25zdCBlcXVhbFRvID0gdGhpcy5pc0VxdWFsVG8odHlwZSksXG4gICAgICAgICAgc3ViVHlwZU9mID0gdGhpcy5pc1N1YlR5cGVPZih0eXBlKSxcbiAgICAgICAgICBlcXVhbFRvT3JTdWJUeXBlT2YgPSAoZXF1YWxUbyB8fCBzdWJUeXBlT2YpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG9PclN1YlR5cGVPZjtcbiAgfVxuXG4gIGlzRXF1YWxUb09yU3VwZXJUeXBlT2YodHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG8gPSB0aGlzLmlzRXF1YWxUbyh0eXBlKSxcbiAgICAgICAgICBzdXBlclR5cGVPZiA9IHRoaXMuaXNTdXBlclR5cGVPZih0eXBlKSxcbiAgICAgICAgICBlcXVhbFRvT3JTdXBlclR5cGVPZiA9IChlcXVhbFRvIHx8IHN1cGVyVHlwZU9mKTtcblxuICAgIHJldHVybiBlcXVhbFRvT3JTdXBlclR5cGVPZjtcbiAgfVxuXG4gIGNvbXBhcmVUeXBlTmFtZSh0eXBlTmFtZSkge1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldE5hbWUoKSxcbiAgICAgICAgICBuYW1lVHlwZU5hbWUgPSAobmFtZSA9PT0gdHlwZU5hbWUpLFxuICAgICAgICAgIGNvbXBhcmVzVG9UeXBlTmFtZSA9IG5hbWVUeXBlTmFtZTsgIC8vL1xuXG4gICAgcmV0dXJuIGNvbXBhcmVzVG9UeXBlTmFtZTtcbiAgfVxuXG4gIGNvbXBhcmVQcm92aXNpb25hbChwcm92aXNpb25hbCkge1xuICAgIGxldCBjb21wYXJlc1RvUHJvdmlzaW9uYWw7XG5cbiAgICBjb25zdCBwcm92aXNpb25hbEEgPSBwcm92aXNpb25hbDsgLy8vXG5cbiAgICBwcm92aXNpb25hbCA9IHRoaXMuaXNQcm92aXNpb25hbCgpO1xuXG4gICAgY29uc3QgcHJvdmlzaW9uYWxCID0gcHJvdmlzaW9uYWw7IC8vL1xuXG4gICAgY29tcGFyZXNUb1Byb3Zpc2lvbmFsID0gKHByb3Zpc2lvbmFsQSA9PT0gcHJvdmlzaW9uYWxCKTtcblxuICAgIHJldHVybiBjb21wYXJlc1RvUHJvdmlzaW9uYWw7XG4gIH1cblxuICBjb21wYXJlUHJlZml4ZWRUeXBlTmFtZShwcmVmaXhlZFR5cGVOYW1lKSB7XG4gICAgbGV0IGNvbXBhcmVzVG9QcmVmaXhlZFR5cGVOYW1lID0gZmFsc2U7XG5cbiAgICBjb25zdCBwcmVmaXhlZCA9IHRoaXMuaXNQcmVmaXhlZCgpO1xuXG4gICAgaWYgKHByZWZpeGVkKSB7XG4gICAgICBjb25zdCBwcmVmaXhlZE5hbWUgPSB0aGlzLmdldFByZWZpeGVkTmFtZSgpLFxuICAgICAgICAgICAgcHJlZml4ZWRUeXBlTmFtZVByZWZpeGVkTmFtZSA9IChwcmVmaXhlZFR5cGVOYW1lID09PSBwcmVmaXhlZE5hbWUpO1xuXG4gICAgICBpZiAocHJlZml4ZWRUeXBlTmFtZVByZWZpeGVkTmFtZSkge1xuICAgICAgICBjb21wYXJlc1RvUHJlZml4ZWRUeXBlTmFtZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBhcmVzVG9QcmVmaXhlZFR5cGVOYW1lO1xuICB9XG5cbiAgY29tcGFyZU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpIHtcbiAgICBsZXQgY29tcGFyZXNUb05vbWluYWxUeXBlTmFtZSA9IGZhbHNlO1xuXG4gICAgaWYgKCFjb21wYXJlc1RvTm9taW5hbFR5cGVOYW1lKSB7XG4gICAgICBjb25zdCBuYW1lID0gdGhpcy5nZXROYW1lKCksXG4gICAgICAgICAgICBub21pbmFsVHlwZU5hbWVOYW1lID0gKG5vbWluYWxUeXBlTmFtZSA9PT0gbmFtZSk7XG5cbiAgICAgIGlmIChub21pbmFsVHlwZU5hbWVOYW1lKSB7XG4gICAgICAgIGNvbXBhcmVzVG9Ob21pbmFsVHlwZU5hbWUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghY29tcGFyZXNUb05vbWluYWxUeXBlTmFtZSkge1xuICAgICAgY29uc3QgcHJlZml4ZWQgPSB0aGlzLmlzUHJlZml4ZWQoKTtcblxuICAgICAgaWYgKHByZWZpeGVkKSB7XG4gICAgICAgIGNvbnN0IHByZWZpeGVkTmFtZSA9IHRoaXMuZ2V0UHJlZml4ZWROYW1lKCksXG4gICAgICAgICAgICAgIG5vbWluYWxUeXBlTmFtZVByZWZpeGVkTmFtZSA9IChub21pbmFsVHlwZU5hbWUgPT09IHByZWZpeGVkTmFtZSk7XG5cbiAgICAgICAgaWYgKG5vbWluYWxUeXBlTmFtZVByZWZpeGVkTmFtZSkge1xuICAgICAgICAgIGNvbXBhcmVzVG9Ob21pbmFsVHlwZU5hbWUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBhcmVzVG9Ob21pbmFsVHlwZU5hbWU7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgcHJvcGVydGllc0pTT04gPSBwcm9wZXJ0aWVzVG9Qcm9wZXJ0aWVzSlNPTih0aGlzLnByb3BlcnRpZXMpLFxuICAgICAgICAgIHN1cGVyVHlwZXNKU09OID0gc3VwZXJUeXBlc1RvU3VwZXJUeXBlc0pTT04odGhpcy5zdXBlclR5cGVzKSxcbiAgICAgICAgICBwcm92aXNpb25hbCA9IHRoaXMucHJvdmlzaW9uYWwsXG4gICAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXNKU09OLCAgLy8vXG4gICAgICAgICAgc3VwZXJUeXBlcyA9IHN1cGVyVHlwZXNKU09OLCAgLy8vXG4gICAgICAgICAgbmFtZSA9IHRoaXMubmFtZSxcbiAgICAgICAgICBwcmVmaXhOYW1lID0gdGhpcy5wcmVmaXhOYW1lLFxuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgcHJlZml4TmFtZSxcbiAgICAgICAgICAgIHN1cGVyVHlwZXMsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgICAgcHJvdmlzaW9uYWxcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVHlwZVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyBuYW1lLCBwcmVmaXhOYW1lLCBwcm92aXNpb25hbCB9ID0ganNvbixcbiAgICAgICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGllc0Zyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIHN1cGVyVHlwZXMgPSBzdXBlclR5cGVzRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgdHlwZU5hbWUgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgdHlwZVByZWZpeE5hbWUgPSBudWxsLFxuICAgICAgICAgIHN0cmluZyA9IHR5cGVTdHJpbmdGcm9tVHlwZU5hbWVUeXBlUHJlZml4TmFtZUFuZFN1cGVyVHlwZXModHlwZU5hbWUsIHR5cGVQcmVmaXhOYW1lLCBzdXBlclR5cGVzKSxcbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICB0eXBlID0gbmV3IFR5cGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBuYW1lLCBwcmVmaXhOYW1lLCBzdXBlclR5cGVzLCBwcm9wZXJ0aWVzLCBwcm92aXNpb25hbCk7XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTmFtZShuYW1lKSB7XG4gICAgY29uc3QgY29udGV4dCA9IG51bGwsXG4gICAgICAgICAgc3RyaW5nID0gbmFtZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIHByZWZpeE5hbWUgPSBudWxsLFxuICAgICAgICAgIHN1cGVyVHlwZXMgPSBbXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzID0gW10sXG4gICAgICAgICAgcHJvdmlzaW9uYWwgPSBmYWxzZSxcbiAgICAgICAgICB0eXBlID0gbmV3IFR5cGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBuYW1lLCBwcmVmaXhOYW1lLCBzdXBlclR5cGVzLCBwcm9wZXJ0aWVzLCBwcm92aXNpb25hbCk7XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsicHVzaCIsImFycmF5VXRpbGl0aWVzIiwiZmlyc3QiLCJkZWZpbmUiLCJUeXBlIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJuYW1lIiwicHJlZml4TmFtZSIsInN1cGVyVHlwZXMiLCJwcm9wZXJ0aWVzIiwicHJvdmlzaW9uYWwiLCJnZXROYW1lIiwiZ2V0UHJlZml4TmFtZSIsImdldFN1cGVyVHlwZXMiLCJnZXRQcm9wZXJ0aWVzIiwiaW5jbHVkZVN1cGVyVHlwZXMiLCJmb3JFYWNoIiwic3VwZXJUeXBlIiwic3VwZXJUeXBlUHJvcGVydGllcyIsImlzUHJvdmlzaW9uYWwiLCJzb21lIiwic3VwZXJUeXBlUHJvdmlzaW9uYWwiLCJzZXROYW1lIiwic2V0UHJlZml4TmFtZSIsInNldFN1cGVyVHlwZXMiLCJzZXRQcm9wZXJ0aWVzIiwic2V0UHJvdmlzaW9uYWwiLCJyZXBsYWNlU3VwZXJUeXBlIiwib2xkU3VwZXJUeXBlIiwibmV3U3VwZXJUeXBlIiwiaW5kZXgiLCJpbmRleE9mIiwic3RhcnQiLCJkZWxldGVDb3VudCIsInNwbGljZSIsImlzUHJlZml4ZWQiLCJwcmVmaXhlZCIsImdldFByZWZpeGVkTmFtZSIsInByZWZpeGVkTmFtZSIsImdldE5vbWluYWxUeXBlTmFtZSIsIm5vbWluYWxUeXBlTmFtZSIsImlzQmFzaWMiLCJiYXNpYyIsInN1cGVyVHlwZXNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdFN1cGVyVHlwZSIsImJhc2VUeXBlIiwiYmFzZVR5cGVGcm9tTm90aGluZyIsImlzUmVmaW5lZCIsInJlZmluZWQiLCJzdXBlclR5cGVOYW1lIiwiaXNFcXVhbFRvIiwidHlwZSIsImVxdWFsVG8iLCJpc1N1YlR5cGVPZiIsInN1YlR5cGVPZiIsInN1cGVyVHlwZVN1YlR5cGVPZlR5cGUiLCJpc1N1cGVyVHlwZU9mIiwic3VwZXJUeXBlT2YiLCJpc0NvbXBhcmFibGVUbyIsImNvbXBhcmFibGVUbyIsImlzRXF1YWxUb09yU3ViVHlwZU9mIiwiZXF1YWxUb09yU3ViVHlwZU9mIiwiaXNFcXVhbFRvT3JTdXBlclR5cGVPZiIsImVxdWFsVG9PclN1cGVyVHlwZU9mIiwiY29tcGFyZVR5cGVOYW1lIiwidHlwZU5hbWUiLCJuYW1lVHlwZU5hbWUiLCJjb21wYXJlc1RvVHlwZU5hbWUiLCJjb21wYXJlUHJvdmlzaW9uYWwiLCJjb21wYXJlc1RvUHJvdmlzaW9uYWwiLCJwcm92aXNpb25hbEEiLCJwcm92aXNpb25hbEIiLCJjb21wYXJlUHJlZml4ZWRUeXBlTmFtZSIsInByZWZpeGVkVHlwZU5hbWUiLCJjb21wYXJlc1RvUHJlZml4ZWRUeXBlTmFtZSIsInByZWZpeGVkVHlwZU5hbWVQcmVmaXhlZE5hbWUiLCJjb21wYXJlTm9taW5hbFR5cGVOYW1lIiwiY29tcGFyZXNUb05vbWluYWxUeXBlTmFtZSIsIm5vbWluYWxUeXBlTmFtZU5hbWUiLCJub21pbmFsVHlwZU5hbWVQcmVmaXhlZE5hbWUiLCJ0b0pTT04iLCJwcm9wZXJ0aWVzSlNPTiIsInByb3BlcnRpZXNUb1Byb3BlcnRpZXNKU09OIiwic3VwZXJUeXBlc0pTT04iLCJzdXBlclR5cGVzVG9TdXBlclR5cGVzSlNPTiIsImpzb24iLCJmcm9tSlNPTiIsInByb3BlcnRpZXNGcm9tSlNPTiIsInN1cGVyVHlwZXNGcm9tSlNPTiIsInR5cGVQcmVmaXhOYW1lIiwidHlwZVN0cmluZ0Zyb21UeXBlTmFtZVR5cGVQcmVmaXhOYW1lQW5kU3VwZXJU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
457
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgRWxlbWVudCBmcm9tIFwiLi4vZWxlbWVudFwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGJhc2VUeXBlRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHR5cGVTdHJpbmdGcm9tVHlwZU5hbWVUeXBlUHJlZml4TmFtZUFuZFN1cGVyVHlwZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgc3VwZXJUeXBlc0Zyb21KU09OLCBwcm9wZXJ0aWVzRnJvbUpTT04sIHN1cGVyVHlwZXNUb1N1cGVyVHlwZXNKU09OLCBwcm9wZXJ0aWVzVG9Qcm9wZXJ0aWVzSlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuXG5jb25zdCB7IHB1c2gsIGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFR5cGUgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBuYW1lLCBwcmVmaXhOYW1lLCBzdXBlclR5cGVzLCBwcm9wZXJ0aWVzLCBwcm92aXNpb25hbCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnByZWZpeE5hbWUgPSBwcmVmaXhOYW1lO1xuICAgIHRoaXMuc3VwZXJUeXBlcyA9IHN1cGVyVHlwZXM7XG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICB0aGlzLnByb3Zpc2lvbmFsID0gcHJvdmlzaW9uYWw7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRQcmVmaXhOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnByZWZpeE5hbWU7XG4gIH1cblxuICBnZXRTdXBlclR5cGVzKCkge1xuICAgIHJldHVybiB0aGlzLnN1cGVyVHlwZXM7XG4gIH1cblxuICBnZXRQcm9wZXJ0aWVzKGluY2x1ZGVTdXBlclR5cGVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSBbXTtcblxuICAgIHB1c2gocHJvcGVydGllcywgdGhpcy5wcm9wZXJ0aWVzKTtcblxuICAgIGlmIChpbmNsdWRlU3VwZXJUeXBlcykge1xuICAgICAgdGhpcy5zdXBlclR5cGVzLmZvckVhY2goKHN1cGVyVHlwZSkgPT4ge1xuICAgICAgICBjb25zdCBzdXBlclR5cGVQcm9wZXJ0aWVzID0gc3VwZXJUeXBlLmdldFByb3BlcnRpZXMoKTtcblxuICAgICAgICBwdXNoKHByb3BlcnRpZXMsIHN1cGVyVHlwZVByb3BlcnRpZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BlcnRpZXM7XG4gIH1cblxuICBpc1Byb3Zpc2lvbmFsKGluY2x1ZGVTdXBlclR5cGVzID0gdHJ1ZSkge1xuICAgIGxldCBwcm92aXNpb25hbCA9IHRoaXMucHJvdmlzaW9uYWw7XG5cbiAgICBpZiAoaW5jbHVkZVN1cGVyVHlwZXMpIHtcbiAgICAgIGlmICghcHJvdmlzaW9uYWwpIHtcbiAgICAgICAgcHJvdmlzaW9uYWwgPSB0aGlzLnN1cGVyVHlwZXMuc29tZSgoc3VwZXJUeXBlKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3VwZXJUeXBlUHJvdmlzaW9uYWwgPSBzdXBlclR5cGUuaXNQcm92aXNpb25hbCgpO1xuXG4gICAgICAgICAgaWYgKHN1cGVyVHlwZVByb3Zpc2lvbmFsKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwcm92aXNpb25hbDtcbiAgfVxuXG4gIHNldE5hbWUobmFtZSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cblxuICBzZXRQcmVmaXhOYW1lKHByZWZpeE5hbWUpIHtcbiAgICB0aGlzLnByZWZpeE5hbWUgPSBwcmVmaXhOYW1lO1xuICB9XG5cbiAgc2V0U3VwZXJUeXBlcyhzdXBlclR5cGVzKSB7XG4gICAgdGhpcy5zdXBlclR5cGVzID0gc3VwZXJUeXBlcztcbiAgfVxuXG4gIHNldFByb3BlcnRpZXMocHJvcGVydGllcykge1xuICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gIH1cblxuICBzZXRQcm92aXNpb25hbChwcm92aXNpb25hbCkge1xuICAgIHRoaXMucHJvdmlzaW9uYWwgPSBwcm92aXNpb25hbDtcbiAgfVxuXG4gIHJlcGxhY2VTdXBlclR5cGUob2xkU3VwZXJUeXBlLCBuZXdTdXBlclR5cGUpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc3VwZXJUeXBlcy5pbmRleE9mKG9sZFN1cGVyVHlwZSksXG4gICAgICAgICAgc3RhcnQgPSBpbmRleCxcbiAgICAgICAgICBkZWxldGVDb3VudCA9IDE7XG5cbiAgICB0aGlzLnN1cGVyVHlwZXMuc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCwgbmV3U3VwZXJUeXBlKTtcbiAgfVxuXG4gIGlzUHJlZml4ZWQoKSB7XG4gICAgY29uc3QgcHJlZml4ZWQgPSAodGhpcy5wcmVmaXhOYW1lICE9PSBudWxsKTtcblxuICAgIHJldHVybiBwcmVmaXhlZDtcbiAgfVxuXG4gIGdldFByZWZpeGVkTmFtZSgpIHtcbiAgICBsZXQgcHJlZml4ZWROYW1lID0gbnVsbDtcblxuICAgIGNvbnN0IHByZWZpeGVkID0gdGhpcy5pc1ByZWZpeGVkKCk7XG5cbiAgICBpZiAocHJlZml4ZWQpIHtcbiAgICAgIHByZWZpeGVkTmFtZSA9IGAke3RoaXMucHJlZml4TmFtZX0ke3RoaXMubmFtZX1gO1xuICAgIH1cblxuICAgIHJldHVybiBwcmVmaXhlZE5hbWU7XG4gIH1cblxuICBnZXROb21pbmFsVHlwZU5hbWUoKSB7XG4gICAgY29uc3QgcHJlZml4ZWQgPSB0aGlzLmlzUHJlZml4ZWQoKSxcbiAgICAgICAgICBub21pbmFsVHlwZU5hbWUgPSBwcmVmaXhlZCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke3RoaXMucHJlZml4TmFtZX0ke3RoaXMubmFtZX1gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lO1xuXG4gICAgcmV0dXJuIG5vbWluYWxUeXBlTmFtZTtcbiAgfVxuXG4gIGlzQmFzaWMoKSB7XG4gICAgbGV0IGJhc2ljID0gZmFsc2U7XG5cbiAgICBjb25zdCBzdXBlclR5cGVzTGVuZ3RoID0gdGhpcy5zdXBlclR5cGVzLmxlbmd0aDtcblxuICAgIGlmIChzdXBlclR5cGVzTGVuZ3RoID09PSAxKSB7XG4gICAgICBjb25zdCBmaXJzdFN1cGVyVHlwZSA9IGZpcnN0KHRoaXMuc3VwZXJUeXBlcyksXG4gICAgICAgICAgICBzdXBlclR5cGUgPSBmaXJzdFN1cGVyVHlwZSwgLy8vXG4gICAgICAgICAgICBiYXNlVHlwZSA9IGJhc2VUeXBlRnJvbU5vdGhpbmcoKTtcblxuICAgICAgaWYgKHN1cGVyVHlwZSA9PT0gYmFzZVR5cGUpIHtcbiAgICAgICAgYmFzaWMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBiYXNpYztcbiAgfVxuXG4gIGlzUmVmaW5lZCgpIHtcbiAgICBsZXQgcmVmaW5lZCA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc3VwZXJUeXBlc0xlbmd0aCA9IHRoaXMuc3VwZXJUeXBlcy5sZW5ndGg7XG5cbiAgICBpZiAoc3VwZXJUeXBlc0xlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZmlyc3RTdXBlclR5cGUgPSBmaXJzdCh0aGlzLnN1cGVyVHlwZXMpLFxuICAgICAgICAgICAgc3VwZXJUeXBlID0gZmlyc3RTdXBlclR5cGUsIC8vL1xuICAgICAgICAgICAgc3VwZXJUeXBlTmFtZSA9IHN1cGVyVHlwZS5nZXROYW1lKCk7XG5cbiAgICAgIGlmIChzdXBlclR5cGVOYW1lID09PSB0aGlzLm5hbWUpIHtcbiAgICAgICAgcmVmaW5lZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlZmluZWQ7XG4gIH1cblxuICBpc0VxdWFsVG8odHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG8gPSAodGhpcyA9PT0gdHlwZSk7XG5cbiAgICByZXR1cm4gZXF1YWxUbztcbiAgfVxuXG4gIGlzU3ViVHlwZU9mKHR5cGUpIHtcbiAgICBsZXQgc3ViVHlwZU9mO1xuXG4gICAgY29uc3QgYmFzZVR5cGUgPSBiYXNlVHlwZUZyb21Ob3RoaW5nKCk7XG5cbiAgICBpZiAodGhpcyA9PT0gYmFzZVR5cGUpIHtcbiAgICAgIHN1YlR5cGVPZiA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdWJUeXBlT2YgPSB0aGlzLnN1cGVyVHlwZXMuc29tZSgoc3VwZXJUeXBlKSA9PiB7IC8vL1xuICAgICAgICBpZiAoc3VwZXJUeXBlID09PSB0eXBlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdXBlclR5cGVTdWJUeXBlT2ZUeXBlID0gc3VwZXJUeXBlLmlzU3ViVHlwZU9mKHR5cGUpO1xuXG4gICAgICAgIGlmIChzdXBlclR5cGVTdWJUeXBlT2ZUeXBlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YlR5cGVPZjtcbiAgfVxuXG4gIGlzU3VwZXJUeXBlT2YodHlwZSkge1xuICAgIGNvbnN0IHN1YlR5cGVPZiA9IHR5cGUuaXNTdWJUeXBlT2YodGhpcyksXG4gICAgICAgICAgc3VwZXJUeXBlT2YgPSBzdWJUeXBlT2Y7ICAvLy9cblxuICAgIHJldHVybiBzdXBlclR5cGVPZjtcbiAgfVxuXG4gIGlzQ29tcGFyYWJsZVRvKHR5cGUpIHtcbiAgICBjb25zdCBlcXVhbFRvID0gdGhpcy5pc0VxdWFsVG8odHlwZSksXG4gICAgICAgICAgc3ViVHlwZU9mID0gdGhpcy5pc1N1YlR5cGVPZih0eXBlKSxcbiAgICAgICAgICBzdXBlclR5cGVPZiA9IHRoaXMuaXNTdXBlclR5cGVPZih0eXBlKSxcbiAgICAgICAgICBjb21wYXJhYmxlVG8gPSAoZXF1YWxUbyB8fCBzdWJUeXBlT2YgfHwgc3VwZXJUeXBlT2YpO1xuXG4gICAgcmV0dXJuIGNvbXBhcmFibGVUbztcbiAgfVxuXG4gIGlzRXF1YWxUb09yU3ViVHlwZU9mKHR5cGUpIHtcbiAgICBjb25zdCBlcXVhbFRvID0gdGhpcy5pc0VxdWFsVG8odHlwZSksXG4gICAgICAgICAgc3ViVHlwZU9mID0gdGhpcy5pc1N1YlR5cGVPZih0eXBlKSxcbiAgICAgICAgICBlcXVhbFRvT3JTdWJUeXBlT2YgPSAoZXF1YWxUbyB8fCBzdWJUeXBlT2YpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG9PclN1YlR5cGVPZjtcbiAgfVxuXG4gIGlzRXF1YWxUb09yU3VwZXJUeXBlT2YodHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG8gPSB0aGlzLmlzRXF1YWxUbyh0eXBlKSxcbiAgICAgICAgICBzdXBlclR5cGVPZiA9IHRoaXMuaXNTdXBlclR5cGVPZih0eXBlKSxcbiAgICAgICAgICBlcXVhbFRvT3JTdXBlclR5cGVPZiA9IChlcXVhbFRvIHx8IHN1cGVyVHlwZU9mKTtcblxuICAgIHJldHVybiBlcXVhbFRvT3JTdXBlclR5cGVPZjtcbiAgfVxuXG4gIGNvbXBhcmVUeXBlTmFtZSh0eXBlTmFtZSkge1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldE5hbWUoKSxcbiAgICAgICAgICBuYW1lVHlwZU5hbWUgPSAobmFtZSA9PT0gdHlwZU5hbWUpLFxuICAgICAgICAgIGNvbXBhcmVzVG9UeXBlTmFtZSA9IG5hbWVUeXBlTmFtZTsgIC8vL1xuXG4gICAgcmV0dXJuIGNvbXBhcmVzVG9UeXBlTmFtZTtcbiAgfVxuXG4gIGNvbXBhcmVQcm92aXNpb25hbChwcm92aXNpb25hbCkge1xuICAgIGxldCBjb21wYXJlc1RvUHJvdmlzaW9uYWw7XG5cbiAgICBjb25zdCBwcm92aXNpb25hbEEgPSBwcm92aXNpb25hbDsgLy8vXG5cbiAgICBwcm92aXNpb25hbCA9IHRoaXMuaXNQcm92aXNpb25hbCgpO1xuXG4gICAgY29uc3QgcHJvdmlzaW9uYWxCID0gcHJvdmlzaW9uYWw7IC8vL1xuXG4gICAgY29tcGFyZXNUb1Byb3Zpc2lvbmFsID0gKHByb3Zpc2lvbmFsQSA9PT0gcHJvdmlzaW9uYWxCKTtcblxuICAgIHJldHVybiBjb21wYXJlc1RvUHJvdmlzaW9uYWw7XG4gIH1cblxuICBjb21wYXJlUHJlZml4ZWRUeXBlTmFtZShwcmVmaXhlZFR5cGVOYW1lKSB7XG4gICAgbGV0IGNvbXBhcmVzVG9QcmVmaXhlZFR5cGVOYW1lID0gZmFsc2U7XG5cbiAgICBjb25zdCBwcmVmaXhlZCA9IHRoaXMuaXNQcmVmaXhlZCgpO1xuXG4gICAgaWYgKHByZWZpeGVkKSB7XG4gICAgICBjb25zdCBwcmVmaXhlZE5hbWUgPSB0aGlzLmdldFByZWZpeGVkTmFtZSgpLFxuICAgICAgICAgICAgcHJlZml4ZWRUeXBlTmFtZVByZWZpeGVkTmFtZSA9IChwcmVmaXhlZFR5cGVOYW1lID09PSBwcmVmaXhlZE5hbWUpO1xuXG4gICAgICBpZiAocHJlZml4ZWRUeXBlTmFtZVByZWZpeGVkTmFtZSkge1xuICAgICAgICBjb21wYXJlc1RvUHJlZml4ZWRUeXBlTmFtZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBhcmVzVG9QcmVmaXhlZFR5cGVOYW1lO1xuICB9XG5cbiAgY29tcGFyZU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpIHtcbiAgICBsZXQgY29tcGFyZXNUb05vbWluYWxUeXBlTmFtZSA9IGZhbHNlO1xuXG4gICAgaWYgKCFjb21wYXJlc1RvTm9taW5hbFR5cGVOYW1lKSB7XG4gICAgICBjb25zdCBuYW1lID0gdGhpcy5nZXROYW1lKCksXG4gICAgICAgICAgICBub21pbmFsVHlwZU5hbWVOYW1lID0gKG5vbWluYWxUeXBlTmFtZSA9PT0gbmFtZSk7XG5cbiAgICAgIGlmIChub21pbmFsVHlwZU5hbWVOYW1lKSB7XG4gICAgICAgIGNvbXBhcmVzVG9Ob21pbmFsVHlwZU5hbWUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghY29tcGFyZXNUb05vbWluYWxUeXBlTmFtZSkge1xuICAgICAgY29uc3QgcHJlZml4ZWQgPSB0aGlzLmlzUHJlZml4ZWQoKTtcblxuICAgICAgaWYgKHByZWZpeGVkKSB7XG4gICAgICAgIGNvbnN0IHByZWZpeGVkTmFtZSA9IHRoaXMuZ2V0UHJlZml4ZWROYW1lKCksXG4gICAgICAgICAgICAgIG5vbWluYWxUeXBlTmFtZVByZWZpeGVkTmFtZSA9IChub21pbmFsVHlwZU5hbWUgPT09IHByZWZpeGVkTmFtZSk7XG5cbiAgICAgICAgaWYgKG5vbWluYWxUeXBlTmFtZVByZWZpeGVkTmFtZSkge1xuICAgICAgICAgIGNvbXBhcmVzVG9Ob21pbmFsVHlwZU5hbWUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBhcmVzVG9Ob21pbmFsVHlwZU5hbWU7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgcHJvcGVydGllc0pTT04gPSBwcm9wZXJ0aWVzVG9Qcm9wZXJ0aWVzSlNPTih0aGlzLnByb3BlcnRpZXMpLFxuICAgICAgICAgIHN1cGVyVHlwZXNKU09OID0gc3VwZXJUeXBlc1RvU3VwZXJUeXBlc0pTT04odGhpcy5zdXBlclR5cGVzKSxcbiAgICAgICAgICBwcm92aXNpb25hbCA9IHRoaXMucHJvdmlzaW9uYWwsXG4gICAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXNKU09OLCAgLy8vXG4gICAgICAgICAgc3VwZXJUeXBlcyA9IHN1cGVyVHlwZXNKU09OLCAgLy8vXG4gICAgICAgICAgbmFtZSA9IHRoaXMubmFtZSxcbiAgICAgICAgICBwcmVmaXhOYW1lID0gdGhpcy5wcmVmaXhOYW1lLFxuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgcHJlZml4TmFtZSxcbiAgICAgICAgICAgIHN1cGVyVHlwZXMsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgICAgcHJvdmlzaW9uYWxcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVHlwZVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyBuYW1lLCBwcmVmaXhOYW1lLCBwcm92aXNpb25hbCB9ID0ganNvbixcbiAgICAgICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGllc0Zyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIHN1cGVyVHlwZXMgPSBzdXBlclR5cGVzRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgdHlwZU5hbWUgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgdHlwZVByZWZpeE5hbWUgPSBudWxsLFxuICAgICAgICAgIHN0cmluZyA9IHR5cGVTdHJpbmdGcm9tVHlwZU5hbWVUeXBlUHJlZml4TmFtZUFuZFN1cGVyVHlwZXModHlwZU5hbWUsIHR5cGVQcmVmaXhOYW1lLCBzdXBlclR5cGVzKSxcbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICB0eXBlID0gbmV3IFR5cGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBuYW1lLCBwcmVmaXhOYW1lLCBzdXBlclR5cGVzLCBwcm9wZXJ0aWVzLCBwcm92aXNpb25hbCk7XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTmFtZUFuZFByb3Zpc2lvbmFsKG5hbWUsIHByb3Zpc2lvbmFsLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RyaW5nID0gbmFtZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIHByZWZpeE5hbWUgPSBudWxsLFxuICAgICAgICAgIHN1cGVyVHlwZXMgPSBbXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzID0gW10sXG4gICAgICAgICAgdHlwZSA9IG5ldyBUeXBlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgbmFtZSwgcHJlZml4TmFtZSwgc3VwZXJUeXBlcywgcHJvcGVydGllcywgcHJvdmlzaW9uYWwpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbInB1c2giLCJhcnJheVV0aWxpdGllcyIsImZpcnN0IiwiZGVmaW5lIiwiVHlwZSIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwibmFtZSIsInByZWZpeE5hbWUiLCJzdXBlclR5cGVzIiwicHJvcGVydGllcyIsInByb3Zpc2lvbmFsIiwiZ2V0TmFtZSIsImdldFByZWZpeE5hbWUiLCJnZXRTdXBlclR5cGVzIiwiZ2V0UHJvcGVydGllcyIsImluY2x1ZGVTdXBlclR5cGVzIiwiZm9yRWFjaCIsInN1cGVyVHlwZSIsInN1cGVyVHlwZVByb3BlcnRpZXMiLCJpc1Byb3Zpc2lvbmFsIiwic29tZSIsInN1cGVyVHlwZVByb3Zpc2lvbmFsIiwic2V0TmFtZSIsInNldFByZWZpeE5hbWUiLCJzZXRTdXBlclR5cGVzIiwic2V0UHJvcGVydGllcyIsInNldFByb3Zpc2lvbmFsIiwicmVwbGFjZVN1cGVyVHlwZSIsIm9sZFN1cGVyVHlwZSIsIm5ld1N1cGVyVHlwZSIsImluZGV4IiwiaW5kZXhPZiIsInN0YXJ0IiwiZGVsZXRlQ291bnQiLCJzcGxpY2UiLCJpc1ByZWZpeGVkIiwicHJlZml4ZWQiLCJnZXRQcmVmaXhlZE5hbWUiLCJwcmVmaXhlZE5hbWUiLCJnZXROb21pbmFsVHlwZU5hbWUiLCJub21pbmFsVHlwZU5hbWUiLCJpc0Jhc2ljIiwiYmFzaWMiLCJzdXBlclR5cGVzTGVuZ3RoIiwibGVuZ3RoIiwiZmlyc3RTdXBlclR5cGUiLCJiYXNlVHlwZSIsImJhc2VUeXBlRnJvbU5vdGhpbmciLCJpc1JlZmluZWQiLCJyZWZpbmVkIiwic3VwZXJUeXBlTmFtZSIsImlzRXF1YWxUbyIsInR5cGUiLCJlcXVhbFRvIiwiaXNTdWJUeXBlT2YiLCJzdWJUeXBlT2YiLCJzdXBlclR5cGVTdWJUeXBlT2ZUeXBlIiwiaXNTdXBlclR5cGVPZiIsInN1cGVyVHlwZU9mIiwiaXNDb21wYXJhYmxlVG8iLCJjb21wYXJhYmxlVG8iLCJpc0VxdWFsVG9PclN1YlR5cGVPZiIsImVxdWFsVG9PclN1YlR5cGVPZiIsImlzRXF1YWxUb09yU3VwZXJUeXBlT2YiLCJlcXVhbFRvT3JTdXBlclR5cGVPZiIsImNvbXBhcmVUeXBlTmFtZSIsInR5cGVOYW1lIiwibmFtZVR5cGVOYW1lIiwiY29tcGFyZXNUb1R5cGVOYW1lIiwiY29tcGFyZVByb3Zpc2lvbmFsIiwiY29tcGFyZXNUb1Byb3Zpc2lvbmFsIiwicHJvdmlzaW9uYWxBIiwicHJvdmlzaW9uYWxCIiwiY29tcGFyZVByZWZpeGVkVHlwZU5hbWUiLCJwcmVmaXhlZFR5cGVOYW1lIiwiY29tcGFyZXNUb1ByZWZpeGVkVHlwZU5hbWUiLCJwcmVmaXhlZFR5cGVOYW1lUHJlZml4ZWROYW1lIiwiY29tcGFyZU5vbWluYWxUeXBlTmFtZSIsImNvbXBhcmVzVG9Ob21pbmFsVHlwZU5hbWUiLCJub21pbmFsVHlwZU5hbWVOYW1lIiwibm9taW5hbFR5cGVOYW1lUHJlZml4ZWROYW1lIiwidG9KU09OIiwicHJvcGVydGllc0pTT04iLCJwcm9wZXJ0aWVzVG9Qcm9wZXJ0aWVzSlNPTiIsInN1cGVyVHlwZXNKU09OIiwic3VwZXJUeXBlc1RvU3VwZXJUeXBlc0pTT04iLCJqc29uIiwiZnJvbUpTT04iLCJwcm9wZXJ0aWVzRnJvbUpTT04iLCJzdXBlclR5cGVzRnJvbUpTT04iLCJ0eXBlUHJlZml4TmFtZSIsInR5cGVTdHJpbmdGcm9tVHlwZU5hbWVUeXBlUHJlZml4TmFtZUFuZFN1cGVyVHlwZXMiLCJmcm9tTmFtZUFuZFByb3Zp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
@@ -252,49 +252,49 @@ var _default = (0, _elements.define)((_Variable = /*#__PURE__*/ function(Element
252
252
  }
253
253
  },
254
254
  {
255
- key: "verify",
256
- value: function verify(context) {
257
- var verifies;
258
- var variableString = this.string; ///
259
- context.trace("Verifying the '".concat(variableString, "' variable..."));
255
+ key: "validate",
256
+ value: function validate(context) {
257
+ var validates;
258
+ var variableString = this.getString(); ///
259
+ context.trace("Validating the '".concat(variableString, "' variable..."));
260
260
  var variableIdentifier = this.identifier, variable = context.findVariableByVariableIdentifier(variableIdentifier);
261
261
  if (variable !== null) {
262
262
  var type = variable.getType();
263
263
  this.type = type;
264
- verifies = true;
264
+ validates = true;
265
265
  } else {
266
266
  context.debug("The '".concat(variableString, "' variable is not present."));
267
267
  }
268
- if (verifies) {
269
- context.debug("...verified the '".concat(variableString, "' variable."));
268
+ if (validates) {
269
+ context.debug("...validated the '".concat(variableString, "' variable."));
270
270
  }
271
- return verifies;
271
+ return validates;
272
272
  }
273
273
  },
274
274
  {
275
- key: "verifyType",
276
- value: function verifyType(context) {
277
- var typeVerifies = false;
275
+ key: "validateType",
276
+ value: function validateType(context) {
277
+ var typeValidates = false;
278
278
  var typeString = this.type.getString();
279
- context.trace("Verifying the '".concat(typeString, "' type..."));
279
+ context.trace("Validating the '".concat(typeString, "' type..."));
280
280
  var prefixedTypeName = this.type.getPrefixedName(), type = context.findTypeByPrefixedTypeName(prefixedTypeName);
281
281
  if (type === null) {
282
282
  context.debug("The '".concat(typeString, "' type is not present."));
283
283
  } else {
284
284
  this.type = type; ///
285
- typeVerifies = true;
285
+ typeValidates = true;
286
286
  }
287
- if (typeVerifies) {
288
- context.debug("...verified the '".concat(typeString, "' type."));
287
+ if (typeValidates) {
288
+ context.debug("...validated the '".concat(typeString, "' type."));
289
289
  }
290
- return typeVerifies;
290
+ return typeValidates;
291
291
  }
292
292
  },
293
293
  {
294
294
  key: "unifyTerm",
295
295
  value: function unifyTerm(term, substitutions, generalContext, specificContext) {
296
296
  var termUnifies = false;
297
- var termString = term.getString(), variableString = this.string; ///
297
+ var termString = term.getString(), variableString = this.getString(); ///
298
298
  specificContext.trace("Unifying the '".concat(termString, "' term with the '").concat(variableString, "' variable..."));
299
299
  var context, variable;
300
300
  variable = this; ///
@@ -328,7 +328,7 @@ var _default = (0, _elements.define)((_Variable = /*#__PURE__*/ function(Element
328
328
  {
329
329
  key: "toJSON",
330
330
  value: function toJSON() {
331
- var typeJSON = (0, _json.typeToTypeJSON)(this.type), string = this.string, type = typeJSON, json = {
331
+ var typeJSON = (0, _json.typeToTypeJSON)(this.type), string = this.getString(), type = typeJSON, json = {
332
332
  type: type,
333
333
  string: string
334
334
  };
@@ -347,4 +347,4 @@ var _default = (0, _elements.define)((_Variable = /*#__PURE__*/ function(Element
347
347
  return Variable;
348
348
  }(_wrap_native_super(_element.default)), _define_property(_Variable, "name", "Variable"), _Variable));
349
349
 
350
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3ZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRWxlbWVudCBmcm9tIFwiLi4vZWxlbWVudFwiO1xuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlVmFyaWFibGUgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgdHlwZUZyb21KU09OLCB0eXBlVG9UeXBlSlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVmFyaWFibGUgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCB0eXBlLCBpZGVudGlmaWVyLCBwcm9wZXJ0eVJlbGF0aW9ucykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuaWRlbnRpZmllciA9IGlkZW50aWZpZXI7XG4gICAgdGhpcy5wcm9wZXJ0eVJlbGF0aW9ucyA9IHByb3BlcnR5UmVsYXRpb25zO1xuICB9XG5cbiAgZ2V0SWRlbnRpZmllcigpIHtcbiAgICByZXR1cm4gdGhpcy5pZGVudGlmaWVyO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0UHJvcGVydHlSZWxhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHlSZWxhdGlvbnM7XG4gIH1cblxuICBzZXRUeXBlKHR5cGUpIHtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cbiAgZ2V0VHlwZVN0cmluZygpIHsgcmV0dXJuIHRoaXMudHlwZS5nZXRTdHJpbmcoKTsgfVxuXG4gIGNvbXBhcmVQYXJhbWV0ZXIocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgcGFyYW1ldGVyTmFtZSA9IHBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgaWRlbnRpZmllclBhcmFtdGVyTmFtZSA9ICh0aGlzLmlkZW50aWZpZXIgPT09IHBhcmFtZXRlck5hbWUpLFxuICAgICAgICAgIGNvbXBhcmVzVG9QYXJhbXRlciA9IGlkZW50aWZpZXJQYXJhbXRlck5hbWU7ICAvLy9cblxuICAgIHJldHVybiBjb21wYXJlc1RvUGFyYW10ZXI7XG4gIH1cblxuICBjb21wYXJlVmFyaWFibGVJZGVudGlmaWVyKHZhcmlhYmxlSWRlbnRpZmllcikge1xuICAgIGNvbnN0IGNvbXBhcmVzVG9WYXJpYWJsYmVJZGVudGlmaWVyID0gKHRoaXMuaWRlbnRpZmllciA9PT0gdmFyaWFibGVJZGVudGlmaWVyKTtcblxuICAgIHJldHVybiBjb21wYXJlc1RvVmFyaWFibGJlSWRlbnRpZmllcjtcbiAgfVxuXG4gIHZlcmlmeShjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzO1xuXG4gICAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuLi5gKTtcblxuICAgIGNvbnN0IHZhcmlhYmxlSWRlbnRpZmllciA9IHRoaXMuaWRlbnRpZmllcixcbiAgICAgICAgICB2YXJpYWJsZSA9IGNvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKTtcblxuICAgIGlmICh2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdHlwZSA9IHZhcmlhYmxlLmdldFR5cGUoKTtcblxuICAgICAgdGhpcy50eXBlID0gdHlwZTtcblxuICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBub3QgcHJlc2VudC5gKTtcbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllcztcbiAgfVxuXG4gIHZlcmlmeVR5cGUoY29udGV4dCkge1xuICAgIGxldCB0eXBlVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVTdHJpbmd9JyB0eXBlLi4uYCk7XG5cbiAgICBjb25zdCBwcmVmaXhlZFR5cGVOYW1lID0gdGhpcy50eXBlLmdldFByZWZpeGVkTmFtZSgpLFxuICAgICAgICAgIHR5cGUgPSBjb250ZXh0LmZpbmRUeXBlQnlQcmVmaXhlZFR5cGVOYW1lKHByZWZpeGVkVHlwZU5hbWUpO1xuXG4gICAgaWYgKHR5cGUgPT09IG51bGwpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBub3QgcHJlc2VudC5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50eXBlID0gdHlwZTsgLy8vXG5cbiAgICAgIHR5cGVWZXJpZmllcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVWZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVTdHJpbmd9JyB0eXBlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlVmVyaWZpZXM7XG4gIH1cblxuICB1bmlmeVRlcm0odGVybSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICAgIGxldCB0ZXJtVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBzcGVjaWZpY0NvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBsZXQgY29udGV4dCxcbiAgICAgICAgdmFyaWFibGU7XG5cbiAgICB2YXJpYWJsZSA9IHRoaXM7IC8vL1xuXG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9ucy5maW5kU3Vic3RpdHV0aW9uQnlWYXJpYWJsZSh2YXJpYWJsZSk7XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvblRlcm1FcXVhbFRvVGVybSA9IHN1YnN0aXR1dGlvbi5pc1Rlcm1FcXVhbFRvVGVybSh0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvblRlcm1FcXVhbFRvVGVybSkge1xuICAgICAgICB0ZXJtVW5pZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dDsgIC8vL1xuXG4gICAgICBjb25zdCB2YXJpYWJsZUlkZW50aWZpZXIgPSB2YXJpYWJsZS5nZXRJZGVudGlmaWVyKCk7XG5cbiAgICAgIHZhcmlhYmxlID0gY29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlSWRlbnRpZmllcih2YXJpYWJsZUlkZW50aWZpZXIpO1xuXG4gICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgIGNvbnN0IHRlcm1Ob2RlID0gdGVybS5nZXROb2RlKCk7XG5cbiAgICAgIHRlcm0gPSBjb250ZXh0LmZpbmRUZXJtQnlUZXJtTm9kZSh0ZXJtTm9kZSk7XG5cbiAgICAgIGNvbnN0IHRlcm1UeXBlID0gdGVybS5nZXRUeXBlKCksXG4gICAgICAgICAgICB2YXJpYWJsZVR5cGUgPSB2YXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgICAgICB0ZXJtVHlwZUVxdWFsVG9PclN1YlR5cGVPZlZhcmlhYmxlVHlwZSA9IHRlcm1UeXBlLmlzRXF1YWxUb09yU3ViVHlwZU9mKHZhcmlhYmxlVHlwZSk7XG5cbiAgICAgIGlmICh0ZXJtVHlwZUVxdWFsVG9PclN1YlR5cGVPZlZhcmlhYmxlVHlwZSkge1xuICAgICAgICBjb25zdCB7IFRlcm1TdWJzdGl0dXRpb24gfSA9IGVsZW1lbnRzLFxuICAgICAgICAgICAgICB0ZXJtU3Vic3RpdHV0aW9uID0gVGVybVN1YnN0aXR1dGlvbi5mcm9tVGVybkFuZFZhcmlhYmxlKHRlcm0sIHZhcmlhYmxlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gdGVybVN1YnN0aXR1dGlvbjsgIC8vL1xuXG4gICAgICAgIHN1YnN0aXR1dGlvbnMuYWRkU3Vic3RpdHV0aW9uKHN1YnN0aXR1dGlvbiwgY29udGV4dCk7XG5cbiAgICAgICAgdGVybVVuaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0ZXJtVW5pZmllcykge1xuICAgICAgc3BlY2lmaWNDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtVW5pZmllcztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCB0eXBlSlNPTiA9IHR5cGVUb1R5cGVKU09OKHRoaXMudHlwZSksXG4gICAgICAgICAgc3RyaW5nID0gdGhpcy5zdHJpbmcsIC8vL1xuICAgICAgICAgIHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgc3RyaW5nXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlZhcmlhYmxlXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBpbnN0YW50aWF0ZVZhcmlhYmxlKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgdmFyaWFibGVJZGVudGlmaWVyID0gdmFyaWFibGVOb2RlLmdldFZhcmlhYmxlSWRlbnRpZmllcigpLFxuICAgICAgICAgIG5vZGUgPSB2YXJpYWJsZU5vZGUsXG4gICAgICAgICAgaWRlbnRpZmllciA9IHZhcmlhYmxlSWRlbnRpZmllciwgIC8vL1xuICAgICAgICAgIHR5cGUgPSB0eXBlRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgcHJvcGVydHlSZWxhdGlvbnMgPSBbXSxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIHR5cGUsIGlkZW50aWZpZXIsIHByb3BlcnR5UmVsYXRpb25zKTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiVmFyaWFibGUiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsInR5cGUiLCJpZGVudGlmaWVyIiwicHJvcGVydHlSZWxhdGlvbnMiLCJnZXRJZGVudGlmaWVyIiwiZ2V0VHlwZSIsImdldFByb3BlcnR5UmVsYXRpb25zIiwic2V0VHlwZSIsImdldFR5cGVTdHJpbmciLCJnZXRTdHJpbmciLCJjb21wYXJlUGFyYW1ldGVyIiwicGFyYW1ldGVyIiwicGFyYW1ldGVyTmFtZSIsImdldE5hbWUiLCJpZGVudGlmaWVyUGFyYW10ZXJOYW1lIiwiY29tcGFyZXNUb1BhcmFtdGVyIiwiY29tcGFyZVZhcmlhYmxlSWRlbnRpZmllciIsInZhcmlhYmxlSWRlbnRpZmllciIsImNvbXBhcmVzVG9WYXJpYWJsYmVJZGVudGlmaWVyIiwidmVyaWZ5IiwidmVyaWZpZXMiLCJ2YXJpYWJsZVN0cmluZyIsInRyYWNlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlSWRlbnRpZmllciIsImRlYnVnIiwidmVyaWZ5VHlwZSIsInR5cGVWZXJpZmllcyIsInR5cGVTdHJpbmciLCJwcmVmaXhlZFR5cGVOYW1lIiwiZ2V0UHJlZml4ZWROYW1lIiwiZmluZFR5cGVCeVByZWZpeGVkVHlwZU5hbWUiLCJ1bmlmeVRlcm0iLCJ0ZXJtIiwic3Vic3RpdHV0aW9ucyIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaWNDb250ZXh0IiwidGVybVVuaWZpZXMiLCJ0ZXJtU3RyaW5nIiwic3Vic3RpdHV0aW9uIiwiZmluZFN1YnN0aXR1dGlvbkJ5VmFyaWFibGUiLCJzdWJzdGl0dXRpb25UZXJtRXF1YWxUb1Rlcm0iLCJpc1Rlcm1FcXVhbFRvVGVybSIsInRlcm1Ob2RlIiwiZ2V0Tm9kZSIsImZpbmRUZXJtQnlUZXJtTm9kZSIsInRlcm1UeXBlIiwidmFyaWFibGVUeXBlIiwidGVybVR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZWYXJpYWJsZVR5cGUiLCJpc0VxdWFsVG9PclN1YlR5cGVPZiIsIlRlcm1TdWJzdGl0dXRpb24iLCJlbGVtZW50cyIsInRlcm1TdWJzdGl0dXRpb24iLCJmcm9tVGVybkFuZFZhcmlhYmxlIiwiYWRkU3Vic3RpdHV0aW9uIiwidG9KU09OIiwidHlwZUpTT04iLCJ0eXBlVG9UeXBlSlNPTiIsImpzb24iLCJmcm9tSlNPTiIsInZhcmlhYmxlTm9kZSIsImluc3RhbnRpYXRlVmFyaWFibGUiLCJnZXRWYXJpYWJsZUlkZW50aWZpZXIiLCJ0eXBlRnJvbUpTT04iLCJFbGVtZW50IiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFBOzs7OERBUG9CO2dF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
350
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3ZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRWxlbWVudCBmcm9tIFwiLi4vZWxlbWVudFwiO1xuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlVmFyaWFibGUgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgdHlwZUZyb21KU09OLCB0eXBlVG9UeXBlSlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVmFyaWFibGUgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCB0eXBlLCBpZGVudGlmaWVyLCBwcm9wZXJ0eVJlbGF0aW9ucykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuaWRlbnRpZmllciA9IGlkZW50aWZpZXI7XG4gICAgdGhpcy5wcm9wZXJ0eVJlbGF0aW9ucyA9IHByb3BlcnR5UmVsYXRpb25zO1xuICB9XG5cbiAgZ2V0SWRlbnRpZmllcigpIHtcbiAgICByZXR1cm4gdGhpcy5pZGVudGlmaWVyO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0UHJvcGVydHlSZWxhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHlSZWxhdGlvbnM7XG4gIH1cblxuICBzZXRUeXBlKHR5cGUpIHtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cbiAgZ2V0VHlwZVN0cmluZygpIHsgcmV0dXJuIHRoaXMudHlwZS5nZXRTdHJpbmcoKTsgfVxuXG4gIGNvbXBhcmVQYXJhbWV0ZXIocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgcGFyYW1ldGVyTmFtZSA9IHBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgaWRlbnRpZmllclBhcmFtdGVyTmFtZSA9ICh0aGlzLmlkZW50aWZpZXIgPT09IHBhcmFtZXRlck5hbWUpLFxuICAgICAgICAgIGNvbXBhcmVzVG9QYXJhbXRlciA9IGlkZW50aWZpZXJQYXJhbXRlck5hbWU7ICAvLy9cblxuICAgIHJldHVybiBjb21wYXJlc1RvUGFyYW10ZXI7XG4gIH1cblxuICBjb21wYXJlVmFyaWFibGVJZGVudGlmaWVyKHZhcmlhYmxlSWRlbnRpZmllcikge1xuICAgIGNvbnN0IGNvbXBhcmVzVG9WYXJpYWJsYmVJZGVudGlmaWVyID0gKHRoaXMuaWRlbnRpZmllciA9PT0gdmFyaWFibGVJZGVudGlmaWVyKTtcblxuICAgIHJldHVybiBjb21wYXJlc1RvVmFyaWFibGJlSWRlbnRpZmllcjtcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuLi5gKTtcblxuICAgIGNvbnN0IHZhcmlhYmxlSWRlbnRpZmllciA9IHRoaXMuaWRlbnRpZmllcixcbiAgICAgICAgICB2YXJpYWJsZSA9IGNvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKTtcblxuICAgIGlmICh2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdHlwZSA9IHZhcmlhYmxlLmdldFR5cGUoKTtcblxuICAgICAgdGhpcy50eXBlID0gdHlwZTtcblxuICAgICAgdmFsaWRhdGVzID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgaXMgbm90IHByZXNlbnQuYCk7XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0ZXM7XG4gIH1cblxuICB2YWxpZGF0ZVR5cGUoY29udGV4dCkge1xuICAgIGxldCB0eXBlVmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7dHlwZVN0cmluZ30nIHR5cGUuLi5gKTtcblxuICAgIGNvbnN0IHByZWZpeGVkVHlwZU5hbWUgPSB0aGlzLnR5cGUuZ2V0UHJlZml4ZWROYW1lKCksXG4gICAgICAgICAgdHlwZSA9IGNvbnRleHQuZmluZFR5cGVCeVByZWZpeGVkVHlwZU5hbWUocHJlZml4ZWRUeXBlTmFtZSk7XG5cbiAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBwcmVzZW50LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnR5cGUgPSB0eXBlOyAvLy9cblxuICAgICAgdHlwZVZhbGlkYXRlcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVWYWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVWYWxpZGF0ZXM7XG4gIH1cblxuICB1bmlmeVRlcm0odGVybSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICAgIGxldCB0ZXJtVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIHNwZWNpZmljQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdpdGggdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuLi5gKTtcblxuICAgIGxldCBjb250ZXh0LFxuICAgICAgICB2YXJpYWJsZTtcblxuICAgIHZhcmlhYmxlID0gdGhpczsgLy8vXG5cbiAgICBjb25zdCBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb25zLmZpbmRTdWJzdGl0dXRpb25CeVZhcmlhYmxlKHZhcmlhYmxlKTtcblxuICAgIGlmIChzdWJzdGl0dXRpb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uVGVybUVxdWFsVG9UZXJtID0gc3Vic3RpdHV0aW9uLmlzVGVybUVxdWFsVG9UZXJtKHRlcm0sIGNvbnRleHQpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uVGVybUVxdWFsVG9UZXJtKSB7XG4gICAgICAgIHRlcm1VbmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAgLy8vXG5cbiAgICAgIGNvbnN0IHZhcmlhYmxlSWRlbnRpZmllciA9IHZhcmlhYmxlLmdldElkZW50aWZpZXIoKTtcblxuICAgICAgdmFyaWFibGUgPSBjb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVJZGVudGlmaWVyKHZhcmlhYmxlSWRlbnRpZmllcik7XG5cbiAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgY29uc3QgdGVybU5vZGUgPSB0ZXJtLmdldE5vZGUoKTtcblxuICAgICAgdGVybSA9IGNvbnRleHQuZmluZFRlcm1CeVRlcm1Ob2RlKHRlcm1Ob2RlKTtcblxuICAgICAgY29uc3QgdGVybVR5cGUgPSB0ZXJtLmdldFR5cGUoKSxcbiAgICAgICAgICAgIHZhcmlhYmxlVHlwZSA9IHZhcmlhYmxlLmdldFR5cGUoKSxcbiAgICAgICAgICAgIHRlcm1UeXBlRXF1YWxUb09yU3ViVHlwZU9mVmFyaWFibGVUeXBlID0gdGVybVR5cGUuaXNFcXVhbFRvT3JTdWJUeXBlT2YodmFyaWFibGVUeXBlKTtcblxuICAgICAgaWYgKHRlcm1UeXBlRXF1YWxUb09yU3ViVHlwZU9mVmFyaWFibGVUeXBlKSB7XG4gICAgICAgIGNvbnN0IHsgVGVybVN1YnN0aXR1dGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgICAgIHRlcm1TdWJzdGl0dXRpb24gPSBUZXJtU3Vic3RpdHV0aW9uLmZyb21UZXJuQW5kVmFyaWFibGUodGVybSwgdmFyaWFibGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBzdWJzdGl0dXRpb24gPSB0ZXJtU3Vic3RpdHV0aW9uOyAgLy8vXG5cbiAgICAgICAgc3Vic3RpdHV0aW9ucy5hZGRTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCBjb250ZXh0KTtcblxuICAgICAgICB0ZXJtVW5pZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRlcm1VbmlmaWVzKSB7XG4gICAgICBzcGVjaWZpY0NvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdpdGggdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm1VbmlmaWVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHR5cGVKU09OID0gdHlwZVRvVHlwZUpTT04odGhpcy50eXBlKSxcbiAgICAgICAgICBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAvLy9cbiAgICAgICAgICB0eXBlID0gdHlwZUpTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIHN0cmluZ1xuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJWYXJpYWJsZVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gaW5zdGFudGlhdGVWYXJpYWJsZShzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlSWRlbnRpZmllciA9IHZhcmlhYmxlTm9kZS5nZXRWYXJpYWJsZUlkZW50aWZpZXIoKSxcbiAgICAgICAgICBub2RlID0gdmFyaWFibGVOb2RlLFxuICAgICAgICAgIGlkZW50aWZpZXIgPSB2YXJpYWJsZUlkZW50aWZpZXIsICAvLy9cbiAgICAgICAgICB0eXBlID0gdHlwZUZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIHByb3BlcnR5UmVsYXRpb25zID0gW10sXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCB0eXBlLCBpZGVudGlmaWVyLCBwcm9wZXJ0eVJlbGF0aW9ucyk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlZhcmlhYmxlIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJ0eXBlIiwiaWRlbnRpZmllciIsInByb3BlcnR5UmVsYXRpb25zIiwiZ2V0SWRlbnRpZmllciIsImdldFR5cGUiLCJnZXRQcm9wZXJ0eVJlbGF0aW9ucyIsInNldFR5cGUiLCJnZXRUeXBlU3RyaW5nIiwiZ2V0U3RyaW5nIiwiY29tcGFyZVBhcmFtZXRlciIsInBhcmFtZXRlciIsInBhcmFtZXRlck5hbWUiLCJnZXROYW1lIiwiaWRlbnRpZmllclBhcmFtdGVyTmFtZSIsImNvbXBhcmVzVG9QYXJhbXRlciIsImNvbXBhcmVWYXJpYWJsZUlkZW50aWZpZXIiLCJ2YXJpYWJsZUlkZW50aWZpZXIiLCJjb21wYXJlc1RvVmFyaWFibGJlSWRlbnRpZmllciIsInZhbGlkYXRlIiwidmFsaWRhdGVzIiwidmFyaWFibGVTdHJpbmciLCJ0cmFjZSIsInZhcmlhYmxlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIiLCJkZWJ1ZyIsInZhbGlkYXRlVHlwZSIsInR5cGVWYWxpZGF0ZXMiLCJ0eXBlU3RyaW5nIiwicHJlZml4ZWRUeXBlTmFtZSIsImdldFByZWZpeGVkTmFtZSIsImZpbmRUeXBlQnlQcmVmaXhlZFR5cGVOYW1lIiwidW5pZnlUZXJtIiwidGVybSIsInN1YnN0aXR1dGlvbnMiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInRlcm1VbmlmaWVzIiwidGVybVN0cmluZyIsInN1YnN0aXR1dGlvbiIsImZpbmRTdWJzdGl0dXRpb25CeVZhcmlhYmxlIiwic3Vic3RpdHV0aW9uVGVybUVxdWFsVG9UZXJtIiwiaXNUZXJtRXF1YWxUb1Rlcm0iLCJ0ZXJtTm9kZSIsImdldE5vZGUiLCJmaW5kVGVybUJ5VGVybU5vZGUiLCJ0ZXJtVHlwZSIsInZhcmlhYmxlVHlwZSIsInRlcm1UeXBlRXF1YWxUb09yU3ViVHlwZU9mVmFyaWFibGVUeXBlIiwiaXNFcXVhbFRvT3JTdWJUeXBlT2YiLCJUZXJtU3Vic3RpdHV0aW9uIiwiZWxlbWVudHMiLCJ0ZXJtU3Vic3RpdHV0aW9uIiwiZnJvbVRlcm5BbmRWYXJpYWJsZSIsImFkZFN1YnN0aXR1dGlvbiIsInRvSlNPTiIsInR5cGVKU09OIiwidHlwZVRvVHlwZUpTT04iLCJqc29uIiwiZnJvbUpTT04iLCJ2YXJpYWJsZU5vZGUiLCJpbnN0YW50aWF0ZVZhcmlhYmxlIiwiZ2V0VmFyaWFibGVJZGVudGlmaWVyIiwidHlwZUZyb21KU09OIiwiRWxlbWVudCIsIm5hbWUiXSwibWFwcGlu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
package/lib/metaTypes.js CHANGED
@@ -9,17 +9,11 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- get frameMetaTypeFromNothing () {
13
- return frameMetaTypeFromNothing;
12
+ get findMetaTypeByMetaTypeName () {
13
+ return findMetaTypeByMetaTypeName;
14
14
  },
15
15
  get getMetaTypes () {
16
16
  return getMetaTypes;
17
- },
18
- get referenceMetaTypeFromNothing () {
19
- return referenceMetaTypeFromNothing;
20
- },
21
- get statementMetaTypeFromNothing () {
22
- return statementMetaTypeFromNothing;
23
17
  }
24
18
  });
25
19
  var _elements = /*#__PURE__*/ _interop_require_default(require("./elements"));
@@ -38,26 +32,35 @@ function getMetaTypes() {
38
32
  ];
39
33
  return metaTypes;
40
34
  }
35
+ function findMetaTypeByMetaTypeName(metaTypeName) {
36
+ var metaTypes = getMetaTypes(), metaType = metaTypes.find(function(metaType) {
37
+ var metaTypeComparesToMetaTypeName = metaType.compareMetaTypeName(metaTypeName);
38
+ if (metaTypeComparesToMetaTypeName) {
39
+ return true;
40
+ }
41
+ }) || null;
42
+ return metaType;
43
+ }
41
44
  function frameMetaTypeFromNothing() {
42
45
  if (frameMetaType === null) {
43
- var MetaType = _elements.default.MetaType, name = _metaTypeNames.FRAME_META_TYPE_NAME; ///
44
- frameMetaType = MetaType.fromName(name);
46
+ var MetaType = _elements.default.MetaType, name = _metaTypeNames.FRAME_META_TYPE_NAME, context = null;
47
+ frameMetaType = MetaType.fromName(name, context);
45
48
  }
46
49
  return frameMetaType;
47
50
  }
48
51
  function statementMetaTypeFromNothing() {
49
52
  if (statementMetaType === null) {
50
- var MetaType = _elements.default.MetaType, name = _metaTypeNames.STATEMENT_META_TYPE_NAME; ///
51
- statementMetaType = MetaType.fromName(name);
53
+ var MetaType = _elements.default.MetaType, name = _metaTypeNames.STATEMENT_META_TYPE_NAME, context = null;
54
+ statementMetaType = MetaType.fromName(name, context);
52
55
  }
53
56
  return statementMetaType;
54
57
  }
55
58
  function referenceMetaTypeFromNothing() {
56
59
  if (referenceMetaType === null) {
57
- var MetaType = _elements.default.MetaType, name = _metaTypeNames.REFERENCE_META_TYPE_NAME; ///
58
- referenceMetaType = MetaType.fromName(name);
60
+ var MetaType = _elements.default.MetaType, name = _metaTypeNames.REFERENCE_META_TYPE_NAME, context = null;
61
+ referenceMetaType = MetaType.fromName(name, context);
59
62
  }
60
63
  return referenceMetaType;
61
64
  }
62
65
 
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhVHlwZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBGUkFNRV9NRVRBX1RZUEVfTkFNRSwgUkVGRVJFTkNFX01FVEFfVFlQRV9OQU1FLCBTVEFURU1FTlRfTUVUQV9UWVBFX05BTUUgfSBmcm9tIFwiLi9tZXRhVHlwZU5hbWVzXCI7XG5cbmxldCBmcmFtZU1ldGFUeXBlID0gbnVsbCxcbiAgICByZWZlcmVuY2VNZXRhVHlwZSA9IG51bGwsXG4gICAgc3RhdGVtZW50TWV0YVR5cGUgPSBudWxsO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWV0YVR5cGVzKCkge1xuICBjb25zdCBmcmFtZU1ldGFUeXBlID0gZnJhbWVNZXRhVHlwZUZyb21Ob3RoaW5nKCksXG4gICAgICAgIHJlZmVyZW5jZU1ldGFUeXBlID0gcmVmZXJlbmNlTWV0YVR5cGVGcm9tTm90aGluZygpLFxuICAgICAgICBzdGF0ZW1lbnRNZXRhVHlwZSA9IHN0YXRlbWVudE1ldGFUeXBlRnJvbU5vdGhpbmcoKSxcbiAgICAgICAgbWV0YVR5cGVzID0gW1xuICAgICAgICAgIGZyYW1lTWV0YVR5cGUsXG4gICAgICAgICAgcmVmZXJlbmNlTWV0YVR5cGUsXG4gICAgICAgICAgc3RhdGVtZW50TWV0YVR5cGVcbiAgICAgICAgXTtcblxuICByZXR1cm4gbWV0YVR5cGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJhbWVNZXRhVHlwZUZyb21Ob3RoaW5nKCkge1xuICBpZiAoZnJhbWVNZXRhVHlwZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHsgTWV0YVR5cGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgIG5hbWUgPSBGUkFNRV9NRVRBX1RZUEVfTkFNRTsgIC8vL1xuXG4gICAgZnJhbWVNZXRhVHlwZSA9IE1ldGFUeXBlLmZyb21OYW1lKG5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIGZyYW1lTWV0YVR5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnRNZXRhVHlwZUZyb21Ob3RoaW5nKCkge1xuICBpZiAoc3RhdGVtZW50TWV0YVR5cGUgPT09IG51bGwpIHtcbiAgICBjb25zdCB7IE1ldGFUeXBlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICBuYW1lID0gU1RBVEVNRU5UX01FVEFfVFlQRV9OQU1FOyAgLy8vXG5cbiAgICBzdGF0ZW1lbnRNZXRhVHlwZSA9IE1ldGFUeXBlLmZyb21OYW1lKG5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudE1ldGFUeXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVmZXJlbmNlTWV0YVR5cGVGcm9tTm90aGluZygpIHtcbiAgaWYgKHJlZmVyZW5jZU1ldGFUeXBlID09PSBudWxsKSB7XG4gICAgY29uc3QgeyBNZXRhVHlwZSB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgbmFtZSA9IFJFRkVSRU5DRV9NRVRBX1RZUEVfTkFNRTsgIC8vL1xuXG4gICAgcmVmZXJlbmNlTWV0YVR5cGUgPSBNZXRhVHlwZS5mcm9tTmFtZShuYW1lKTtcbiAgfVxuXG4gIHJldHVybiByZWZlcmVuY2VNZXRhVHlwZTtcbn1cbiJdLCJuYW1lcyI6WyJmcmFtZU1ldGFUeXBlRnJvbU5vdGhpbmciLCJnZXRNZXRhVHlwZXMiLCJyZWZlcmVuY2VNZXRhVHlwZUZyb21Ob3RoaW5nIiwic3RhdGVtZW50TWV0YVR5cGVGcm9tTm90aGluZyIsImZyYW1lTWV0YVR5cGUiLCJyZWZlcmVuY2VNZXRhVHlwZSIsInN0YXRlbWVudE1ldGFUeXBlIiwibWV0YVR5cGVzIiwiTWV0YVR5cGUiLCJlbGVtZW50cyIsIm5hbWUiLCJGUkFNRV9NRVRBX1RZUEVfTkFNRSIsImZyb21OYW1lIiwiU1RBVEVNRU5UX01FVEFfVFlQRV9OQU1FIiwiUkVGRVJFTkNFX01FVEFfVFlQRV9OQU1FIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUF1QmdCQTtlQUFBQTs7UUFiQUM7ZUFBQUE7O1FBbUNBQztlQUFBQTs7UUFYQUM7ZUFBQUE7OzsrREFoQ0s7NkJBRW9FOzs7Ozs7QUFFekYsSUFBSUMsZ0JBQWdCLE1BQ2hCQyxvQkFBb0IsTUFDcEJDLG9CQUFvQjtBQUVqQixTQUFTTDtJQUNkLElBQU1HLGdCQUFnQkosNEJBQ2hCSyxvQkFBb0JILGdDQUNwQkksb0JBQW9CSCxnQ0FDcEJJLFlBQVk7UUFDVkg7UUFDQUM7UUFDQUM7S0FDRDtJQUVQLE9BQU9DO0FBQ1Q7QUFFTyxTQUFTUDtJQUNkLElBQUlJLGtCQUFrQixNQUFNO1FBQzFCLElBQU0sQUFBRUksV0FBYUMsaUJBQVEsQ0FBckJELFVBQ0ZFLE9BQU9DLG1DQUFvQixFQUFHLEdBQUc7UUFFdkNQLGdCQUFnQkksU0FBU0ksUUFBUSxDQUFDRjtJQUNwQztJQUVBLE9BQU9OO0FBQ1Q7QUFFTyxTQUFTRDtJQUNkLElBQUlHLHNCQUFzQixNQUFNO1FBQzlCLElBQU0sQUFBRUUsV0FBYUMsaUJBQVEsQ0FBckJELFVBQ0ZFLE9BQU9HLHVDQUF3QixFQUFHLEdBQUc7UUFFM0NQLG9CQUFvQkUsU0FBU0ksUUFBUSxDQUFDRjtJQUN4QztJQUVBLE9BQU9KO0FBQ1Q7QUFFTyxTQUFTSjtJQUNkLElBQUlHLHNCQUFzQixNQUFNO1FBQzlCLElBQU0sQUFBRUcsV0FBYUMsaUJBQVEsQ0FBckJELFVBQ0ZFLE9BQU9JLHVDQUF3QixFQUFHLEdBQUc7UUFFM0NULG9CQUFvQkcsU0FBU0ksUUFBUSxDQUFDRjtJQUN4QztJQUVBLE9BQU9MO0FBQ1QifQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhVHlwZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBGUkFNRV9NRVRBX1RZUEVfTkFNRSwgUkVGRVJFTkNFX01FVEFfVFlQRV9OQU1FLCBTVEFURU1FTlRfTUVUQV9UWVBFX05BTUUgfSBmcm9tIFwiLi9tZXRhVHlwZU5hbWVzXCI7XG5cbmxldCBmcmFtZU1ldGFUeXBlID0gbnVsbCxcbiAgICByZWZlcmVuY2VNZXRhVHlwZSA9IG51bGwsXG4gICAgc3RhdGVtZW50TWV0YVR5cGUgPSBudWxsO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWV0YVR5cGVzKCkge1xuICBjb25zdCBmcmFtZU1ldGFUeXBlID0gZnJhbWVNZXRhVHlwZUZyb21Ob3RoaW5nKCksXG4gICAgICAgIHJlZmVyZW5jZU1ldGFUeXBlID0gcmVmZXJlbmNlTWV0YVR5cGVGcm9tTm90aGluZygpLFxuICAgICAgICBzdGF0ZW1lbnRNZXRhVHlwZSA9IHN0YXRlbWVudE1ldGFUeXBlRnJvbU5vdGhpbmcoKSxcbiAgICAgICAgbWV0YVR5cGVzID0gW1xuICAgICAgICAgIGZyYW1lTWV0YVR5cGUsXG4gICAgICAgICAgcmVmZXJlbmNlTWV0YVR5cGUsXG4gICAgICAgICAgc3RhdGVtZW50TWV0YVR5cGVcbiAgICAgICAgXTtcblxuICByZXR1cm4gbWV0YVR5cGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUobWV0YVR5cGVOYW1lKSB7XG4gIGNvbnN0IG1ldGFUeXBlcyA9IGdldE1ldGFUeXBlcygpLFxuICAgICAgICBtZXRhVHlwZSA9IG1ldGFUeXBlcy5maW5kKChtZXRhVHlwZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1ldGFUeXBlQ29tcGFyZXNUb01ldGFUeXBlTmFtZSA9IG1ldGFUeXBlLmNvbXBhcmVNZXRhVHlwZU5hbWUobWV0YVR5cGVOYW1lKTtcblxuICAgICAgICAgIGlmIChtZXRhVHlwZUNvbXBhcmVzVG9NZXRhVHlwZU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkgfHwgbnVsbDtcblxuICByZXR1cm4gbWV0YVR5cGU7XG59XG5cbmZ1bmN0aW9uIGZyYW1lTWV0YVR5cGVGcm9tTm90aGluZygpIHtcbiAgaWYgKGZyYW1lTWV0YVR5cGUgPT09IG51bGwpIHtcbiAgICBjb25zdCB7IE1ldGFUeXBlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICBuYW1lID0gRlJBTUVfTUVUQV9UWVBFX05BTUUsICAvLy9cbiAgICAgICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgIGZyYW1lTWV0YVR5cGUgPSBNZXRhVHlwZS5mcm9tTmFtZShuYW1lLCBjb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiBmcmFtZU1ldGFUeXBlO1xufVxuXG5mdW5jdGlvbiBzdGF0ZW1lbnRNZXRhVHlwZUZyb21Ob3RoaW5nKCkge1xuICBpZiAoc3RhdGVtZW50TWV0YVR5cGUgPT09IG51bGwpIHtcbiAgICBjb25zdCB7IE1ldGFUeXBlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICBuYW1lID0gU1RBVEVNRU5UX01FVEFfVFlQRV9OQU1FLCAgLy8vXG4gICAgICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBzdGF0ZW1lbnRNZXRhVHlwZSA9IE1ldGFUeXBlLmZyb21OYW1lKG5hbWUsIGNvbnRleHQpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudE1ldGFUeXBlO1xufVxuXG5mdW5jdGlvbiByZWZlcmVuY2VNZXRhVHlwZUZyb21Ob3RoaW5nKCkge1xuICBpZiAocmVmZXJlbmNlTWV0YVR5cGUgPT09IG51bGwpIHtcbiAgICBjb25zdCB7IE1ldGFUeXBlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICBuYW1lID0gUkVGRVJFTkNFX01FVEFfVFlQRV9OQU1FLCAgLy8vXG4gICAgICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICByZWZlcmVuY2VNZXRhVHlwZSA9IE1ldGFUeXBlLmZyb21OYW1lKG5hbWUsIGNvbnRleHQpO1xuICB9XG5cbiAgcmV0dXJuIHJlZmVyZW5jZU1ldGFUeXBlO1xufVxuIl0sIm5hbWVzIjpbImZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVOYW1lIiwiZ2V0TWV0YVR5cGVzIiwiZnJhbWVNZXRhVHlwZSIsInJlZmVyZW5jZU1ldGFUeXBlIiwic3RhdGVtZW50TWV0YVR5cGUiLCJmcmFtZU1ldGFUeXBlRnJvbU5vdGhpbmciLCJyZWZlcmVuY2VNZXRhVHlwZUZyb21Ob3RoaW5nIiwic3RhdGVtZW50TWV0YVR5cGVGcm9tTm90aGluZyIsIm1ldGFUeXBlcyIsIm1ldGFUeXBlTmFtZSIsIm1ldGFUeXBlIiwiZmluZCIsIm1ldGFUeXBlQ29tcGFyZXNUb01ldGFUeXBlTmFtZSIsImNvbXBhcmVNZXRhVHlwZU5hbWUiLCJNZXRhVHlwZSIsImVsZW1lbnRzIiwibmFtZSIsIkZSQU1FX01FVEFfVFlQRV9OQU1FIiwiY29udGV4dCIsImZyb21OYW1lIiwiU1RBVEVNRU5UX01FVEFfVFlQRV9OQU1FIiwiUkVGRVJFTkNFX01FVEFfVFlQRV9OQU1FIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUF1QmdCQTtlQUFBQTs7UUFiQUM7ZUFBQUE7OzsrREFSSzs2QkFFb0U7Ozs7OztBQUV6RixJQUFJQyxnQkFBZ0IsTUFDaEJDLG9CQUFvQixNQUNwQkMsb0JBQW9CO0FBRWpCLFNBQVNIO0lBQ2QsSUFBTUMsZ0JBQWdCRyw0QkFDaEJGLG9CQUFvQkcsZ0NBQ3BCRixvQkFBb0JHLGdDQUNwQkMsWUFBWTtRQUNWTjtRQUNBQztRQUNBQztLQUNEO0lBRVAsT0FBT0k7QUFDVDtBQUVPLFNBQVNSLDJCQUEyQlMsWUFBWTtJQUNyRCxJQUFNRCxZQUFZUCxnQkFDWlMsV0FBV0YsVUFBVUcsSUFBSSxDQUFDLFNBQUNEO1FBQ3pCLElBQU1FLGlDQUFpQ0YsU0FBU0csbUJBQW1CLENBQUNKO1FBRXBFLElBQUlHLGdDQUFnQztZQUNsQyxPQUFPO1FBQ1Q7SUFDRixNQUFNO0lBRVosT0FBT0Y7QUFDVDtBQUVBLFNBQVNMO0lBQ1AsSUFBSUgsa0JBQWtCLE1BQU07UUFDMUIsSUFBTSxBQUFFWSxXQUFhQyxpQkFBUSxDQUFyQkQsVUFDRkUsT0FBT0MsbUNBQW9CLEVBQzNCQyxVQUFVO1FBRWhCaEIsZ0JBQWdCWSxTQUFTSyxRQUFRLENBQUNILE1BQU1FO0lBQzFDO0lBRUEsT0FBT2hCO0FBQ1Q7QUFFQSxTQUFTSztJQUNQLElBQUlILHNCQUFzQixNQUFNO1FBQzlCLElBQU0sQUFBRVUsV0FBYUMsaUJBQVEsQ0FBckJELFVBQ0ZFLE9BQU9JLHVDQUF3QixFQUMvQkYsVUFBVTtRQUVoQmQsb0JBQW9CVSxTQUFTSyxRQUFRLENBQUNILE1BQU1FO0lBQzlDO0lBRUEsT0FBT2Q7QUFDVDtBQUVBLFNBQVNFO0lBQ1AsSUFBSUgsc0JBQXNCLE1BQU07UUFDOUIsSUFBTSxBQUFFVyxXQUFhQyxpQkFBUSxDQUFyQkQsVUFDRkUsT0FBT0ssdUNBQXdCLEVBQy9CSCxVQUFVO1FBRWhCZixvQkFBb0JXLFNBQVNLLFFBQVEsQ0FBQ0gsTUFBTUU7SUFDOUM7SUFFQSxPQUFPZjtBQUNUIn0=