occam-verify-cli 1.0.383 → 1.0.386

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 (223) hide show
  1. package/lib/action/verify.js +2 -1
  2. package/lib/context/file.js +2 -2
  3. package/lib/context/release.js +2 -2
  4. package/lib/mixins/statement/verify.js +3 -3
  5. package/lib/mixins/step/unify.js +4 -4
  6. package/lib/mixins/term/verify.js +4 -4
  7. package/lib/ontology/assertion/contained.js +316 -0
  8. package/lib/ontology/assertion/defined.js +290 -0
  9. package/lib/ontology/assertion/property.js +271 -0
  10. package/lib/ontology/assertion/satisfies.js +254 -0
  11. package/lib/ontology/assertion/subproof.js +186 -0
  12. package/lib/ontology/assertion/type.js +252 -0
  13. package/lib/{dom → ontology}/axiom.js +3 -3
  14. package/lib/{dom → ontology}/combinator/bracketed.js +4 -4
  15. package/lib/ontology/combinator.js +141 -0
  16. package/lib/ontology/conclusion.js +172 -0
  17. package/lib/{dom → ontology}/conjecture.js +3 -3
  18. package/lib/{dom → ontology}/constructor/bracketed.js +5 -5
  19. package/lib/ontology/constructor.js +171 -0
  20. package/lib/ontology/declaration/combinator.js +168 -0
  21. package/lib/ontology/declaration/complexType.js +346 -0
  22. package/lib/ontology/declaration/constructor.js +199 -0
  23. package/lib/ontology/declaration/metavariable.js +209 -0
  24. package/lib/ontology/declaration/simpleType.js +243 -0
  25. package/lib/ontology/declaration/typePrefix.js +181 -0
  26. package/lib/ontology/declaration/variable.js +197 -0
  27. package/lib/ontology/declaration.js +360 -0
  28. package/lib/ontology/deduction.js +186 -0
  29. package/lib/ontology/derivation.js +155 -0
  30. package/lib/ontology/equality.js +288 -0
  31. package/lib/{dom → ontology}/error.js +3 -3
  32. package/lib/ontology/frame.js +362 -0
  33. package/lib/ontology/hypothesis.js +190 -0
  34. package/lib/ontology/judgement.js +241 -0
  35. package/lib/ontology/label.js +199 -0
  36. package/lib/{dom → ontology}/lemma.js +3 -3
  37. package/lib/{dom → ontology}/metaLemma.js +3 -3
  38. package/lib/{dom → ontology}/metaType.js +3 -3
  39. package/lib/{dom → ontology}/metatheorem.js +3 -3
  40. package/lib/ontology/metavariable.js +504 -0
  41. package/lib/{dom → ontology}/parameter.js +3 -3
  42. package/lib/ontology/premise.js +271 -0
  43. package/lib/ontology/procedureCall.js +243 -0
  44. package/lib/{dom → ontology}/procedureReference.js +3 -3
  45. package/lib/{dom → ontology}/proof.js +4 -4
  46. package/lib/ontology/property.js +166 -0
  47. package/lib/ontology/propertyRelation.js +202 -0
  48. package/lib/ontology/reference.js +293 -0
  49. package/lib/ontology/rule.js +375 -0
  50. package/lib/ontology/section.js +255 -0
  51. package/lib/ontology/signature.js +220 -0
  52. package/lib/{dom → ontology}/statement.js +3 -3
  53. package/lib/ontology/step.js +283 -0
  54. package/lib/ontology/subDerivation.js +147 -0
  55. package/lib/ontology/subproof.js +266 -0
  56. package/lib/ontology/substitution/frame.js +216 -0
  57. package/lib/{dom → ontology}/substitution/reference.js +3 -3
  58. package/lib/{dom → ontology}/substitution/statement.js +3 -3
  59. package/lib/ontology/substitution/term.js +230 -0
  60. package/lib/ontology/substitution.js +207 -0
  61. package/lib/ontology/supposition.js +283 -0
  62. package/lib/ontology/term.js +339 -0
  63. package/lib/{dom → ontology}/theorem.js +3 -3
  64. package/lib/ontology/topLevelAssertion.js +432 -0
  65. package/lib/ontology/topLevelMetaAssertion.js +235 -0
  66. package/lib/ontology/type.js +556 -0
  67. package/lib/ontology/typePrefix.js +99 -0
  68. package/lib/ontology/variable.js +331 -0
  69. package/lib/ontology.js +27 -0
  70. package/lib/preamble.js +60 -60
  71. package/lib/unifier/intrinsicLevel.js +3 -3
  72. package/lib/unifier/metaLevel.js +7 -7
  73. package/lib/unifier/metavariable.js +3 -3
  74. package/lib/unifier/statementWithCombinator.js +5 -5
  75. package/lib/unifier/termWithConstructor.js +3 -3
  76. package/lib/utilities/brackets.js +5 -5
  77. package/lib/utilities/context.js +12 -12
  78. package/lib/utilities/fileSystem.js +2 -2
  79. package/lib/utilities/json.js +30 -30
  80. package/lib/utilities/node.js +7 -7
  81. package/lib/utilities/release.js +12 -4
  82. package/lib/utilities/releaseContext.js +1 -1
  83. package/lib/utilities/substitutions.js +6 -6
  84. package/lib/utilities/type.js +2 -2
  85. package/lib/verifier/combinator.js +4 -4
  86. package/lib/verifier/constructor.js +3 -3
  87. package/lib/verifier/topLevel.js +18 -18
  88. package/package.json +1 -1
  89. package/src/action/verify.js +2 -0
  90. package/src/context/file.js +1 -1
  91. package/src/context/release.js +1 -1
  92. package/src/mixins/statement/verify.js +2 -2
  93. package/src/mixins/step/unify.js +3 -3
  94. package/src/mixins/term/verify.js +3 -3
  95. package/src/{dom → ontology}/assertion/contained.js +4 -4
  96. package/src/{dom → ontology}/assertion/defined.js +6 -6
  97. package/src/{dom → ontology}/assertion/property.js +5 -5
  98. package/src/{dom → ontology}/assertion/satisfies.js +5 -5
  99. package/src/{dom → ontology}/assertion/subproof.js +4 -4
  100. package/src/{dom → ontology}/assertion/type.js +5 -5
  101. package/src/{dom → ontology}/axiom.js +2 -2
  102. package/src/{dom → ontology}/combinator/bracketed.js +4 -4
  103. package/src/{dom → ontology}/combinator.js +4 -4
  104. package/src/{dom → ontology}/conclusion.js +4 -4
  105. package/src/{dom → ontology}/conjecture.js +2 -2
  106. package/src/{dom → ontology}/constructor/bracketed.js +5 -5
  107. package/src/{dom → ontology}/constructor.js +5 -5
  108. package/src/{dom → ontology}/declaration/combinator.js +4 -4
  109. package/src/{dom → ontology}/declaration/complexType.js +4 -4
  110. package/src/{dom → ontology}/declaration/constructor.js +4 -4
  111. package/src/{dom → ontology}/declaration/metavariable.js +5 -5
  112. package/src/{dom → ontology}/declaration/simpleType.js +4 -4
  113. package/src/{dom → ontology}/declaration/typePrefix.js +4 -4
  114. package/src/{dom → ontology}/declaration/variable.js +4 -4
  115. package/src/{dom → ontology}/declaration.js +5 -5
  116. package/src/{dom → ontology}/deduction.js +4 -4
  117. package/src/{dom → ontology}/derivation.js +4 -4
  118. package/src/{dom → ontology}/equality.js +6 -6
  119. package/src/{dom → ontology}/error.js +2 -2
  120. package/src/{dom → ontology}/frame.js +6 -6
  121. package/src/{dom → ontology}/hypothesis.js +5 -6
  122. package/src/{dom → ontology}/judgement.js +5 -5
  123. package/src/{dom → ontology}/label.js +4 -4
  124. package/src/{dom → ontology}/lemma.js +2 -2
  125. package/src/{dom → ontology}/metaLemma.js +2 -2
  126. package/src/{dom → ontology}/metaType.js +2 -2
  127. package/src/{dom → ontology}/metatheorem.js +2 -2
  128. package/src/{dom → ontology}/metavariable.js +8 -8
  129. package/src/{dom → ontology}/parameter.js +2 -2
  130. package/src/{dom → ontology}/premise.js +5 -5
  131. package/src/{dom → ontology}/procedureCall.js +5 -5
  132. package/src/{dom → ontology}/procedureReference.js +2 -2
  133. package/src/{dom → ontology}/proof.js +4 -4
  134. package/src/{dom → ontology}/property.js +4 -4
  135. package/src/{dom → ontology}/propertyRelation.js +4 -4
  136. package/src/{dom → ontology}/reference.js +6 -6
  137. package/src/{dom → ontology}/rule.js +7 -7
  138. package/src/{dom → ontology}/section.js +8 -8
  139. package/src/{dom → ontology}/signature.js +4 -4
  140. package/src/{dom → ontology}/statement.js +2 -2
  141. package/src/{dom → ontology}/step.js +4 -4
  142. package/src/{dom → ontology}/subDerivation.js +4 -4
  143. package/src/{dom → ontology}/subproof.js +5 -5
  144. package/src/{dom → ontology}/substitution/frame.js +4 -4
  145. package/src/{dom → ontology}/substitution/reference.js +2 -2
  146. package/src/{dom → ontology}/substitution/statement.js +2 -2
  147. package/src/{dom → ontology}/substitution/term.js +5 -5
  148. package/src/{dom → ontology}/supposition.js +5 -5
  149. package/src/{dom → ontology}/term.js +6 -6
  150. package/src/{dom → ontology}/theorem.js +2 -2
  151. package/src/{dom → ontology}/topLevelAssertion.js +6 -6
  152. package/src/{dom → ontology}/topLevelMetaAssertion.js +2 -2
  153. package/src/{dom → ontology}/type.js +4 -4
  154. package/src/{dom → ontology}/typePrefix.js +3 -5
  155. package/src/{dom → ontology}/variable.js +6 -6
  156. package/src/ontology.js +13 -0
  157. package/src/preamble.js +59 -59
  158. package/src/unifier/intrinsicLevel.js +2 -2
  159. package/src/unifier/metaLevel.js +6 -6
  160. package/src/unifier/metavariable.js +2 -2
  161. package/src/unifier/statementWithCombinator.js +4 -4
  162. package/src/unifier/termWithConstructor.js +2 -2
  163. package/src/utilities/brackets.js +4 -4
  164. package/src/utilities/context.js +11 -11
  165. package/src/utilities/fileSystem.js +1 -1
  166. package/src/utilities/json.js +29 -29
  167. package/src/utilities/node.js +6 -6
  168. package/src/utilities/release.js +1 -1
  169. package/src/utilities/releaseContext.js +3 -3
  170. package/src/utilities/substitutions.js +5 -5
  171. package/src/utilities/type.js +1 -1
  172. package/src/verifier/combinator.js +3 -3
  173. package/src/verifier/constructor.js +2 -2
  174. package/src/verifier/topLevel.js +17 -17
  175. package/lib/dom/assertion/contained.js +0 -316
  176. package/lib/dom/assertion/defined.js +0 -290
  177. package/lib/dom/assertion/property.js +0 -271
  178. package/lib/dom/assertion/satisfies.js +0 -254
  179. package/lib/dom/assertion/subproof.js +0 -186
  180. package/lib/dom/assertion/type.js +0 -252
  181. package/lib/dom/combinator.js +0 -141
  182. package/lib/dom/conclusion.js +0 -172
  183. package/lib/dom/constructor.js +0 -171
  184. package/lib/dom/declaration/combinator.js +0 -168
  185. package/lib/dom/declaration/complexType.js +0 -346
  186. package/lib/dom/declaration/constructor.js +0 -199
  187. package/lib/dom/declaration/metavariable.js +0 -209
  188. package/lib/dom/declaration/simpleType.js +0 -243
  189. package/lib/dom/declaration/typePrefix.js +0 -181
  190. package/lib/dom/declaration/variable.js +0 -197
  191. package/lib/dom/declaration.js +0 -360
  192. package/lib/dom/deduction.js +0 -186
  193. package/lib/dom/derivation.js +0 -155
  194. package/lib/dom/equality.js +0 -288
  195. package/lib/dom/frame.js +0 -362
  196. package/lib/dom/hypothesis.js +0 -191
  197. package/lib/dom/judgement.js +0 -241
  198. package/lib/dom/label.js +0 -199
  199. package/lib/dom/metavariable.js +0 -504
  200. package/lib/dom/premise.js +0 -271
  201. package/lib/dom/procedureCall.js +0 -243
  202. package/lib/dom/property.js +0 -166
  203. package/lib/dom/propertyRelation.js +0 -202
  204. package/lib/dom/reference.js +0 -293
  205. package/lib/dom/rule.js +0 -375
  206. package/lib/dom/section.js +0 -255
  207. package/lib/dom/signature.js +0 -220
  208. package/lib/dom/step.js +0 -283
  209. package/lib/dom/subDerivation.js +0 -147
  210. package/lib/dom/subproof.js +0 -266
  211. package/lib/dom/substitution/frame.js +0 -216
  212. package/lib/dom/substitution/term.js +0 -230
  213. package/lib/dom/substitution.js +0 -207
  214. package/lib/dom/supposition.js +0 -283
  215. package/lib/dom/term.js +0 -339
  216. package/lib/dom/topLevelAssertion.js +0 -432
  217. package/lib/dom/topLevelMetaAssertion.js +0 -235
  218. package/lib/dom/type.js +0 -556
  219. package/lib/dom/typePrefix.js +0 -100
  220. package/lib/dom/variable.js +0 -331
  221. package/lib/dom.js +0 -27
  222. package/src/dom.js +0 -13
  223. /package/src/{dom → ontology}/substitution.js +0 -0
package/lib/dom/frame.js DELETED
@@ -1,362 +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 _necessary = require("necessary");
12
- var _dom = /*#__PURE__*/ _interop_require_wildcard(require("../dom"));
13
- var _constants = require("../constants");
14
- var _metaTypeNames = require("../metaTypeNames");
15
- function _class_call_check(instance, Constructor) {
16
- if (!(instance instanceof Constructor)) {
17
- throw new TypeError("Cannot call a class as a function");
18
- }
19
- }
20
- function _defineProperties(target, props) {
21
- for(var i = 0; i < props.length; i++){
22
- var descriptor = props[i];
23
- descriptor.enumerable = descriptor.enumerable || false;
24
- descriptor.configurable = true;
25
- if ("value" in descriptor) descriptor.writable = true;
26
- Object.defineProperty(target, descriptor.key, descriptor);
27
- }
28
- }
29
- function _create_class(Constructor, protoProps, staticProps) {
30
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
31
- if (staticProps) _defineProperties(Constructor, staticProps);
32
- return Constructor;
33
- }
34
- function _define_property(obj, key, value) {
35
- if (key in obj) {
36
- Object.defineProperty(obj, key, {
37
- value: value,
38
- enumerable: true,
39
- configurable: true,
40
- writable: true
41
- });
42
- } else {
43
- obj[key] = value;
44
- }
45
- return obj;
46
- }
47
- function _getRequireWildcardCache(nodeInterop) {
48
- if (typeof WeakMap !== "function") return null;
49
- var cacheBabelInterop = new WeakMap();
50
- var cacheNodeInterop = new WeakMap();
51
- return (_getRequireWildcardCache = function(nodeInterop) {
52
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
53
- })(nodeInterop);
54
- }
55
- function _interop_require_wildcard(obj, nodeInterop) {
56
- if (!nodeInterop && obj && obj.__esModule) {
57
- return obj;
58
- }
59
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
60
- return {
61
- default: obj
62
- };
63
- }
64
- var cache = _getRequireWildcardCache(nodeInterop);
65
- if (cache && cache.has(obj)) {
66
- return cache.get(obj);
67
- }
68
- var newObj = {
69
- __proto__: null
70
- };
71
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
72
- for(var key in obj){
73
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
74
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
75
- if (desc && (desc.get || desc.set)) {
76
- Object.defineProperty(newObj, key, desc);
77
- } else {
78
- newObj[key] = obj[key];
79
- }
80
- }
81
- }
82
- newObj.default = obj;
83
- if (cache) {
84
- cache.set(obj, newObj);
85
- }
86
- return newObj;
87
- }
88
- var _Frame;
89
- var first = _necessary.arrayUtilities.first;
90
- var _default = (0, _dom.domAssigned)((_Frame = /*#__PURE__*/ function() {
91
- function Frame(string, node, tokens, declarations) {
92
- _class_call_check(this, Frame);
93
- this.string = string;
94
- this.node = node;
95
- this.tokens = tokens;
96
- this.declarations = declarations;
97
- }
98
- _create_class(Frame, [
99
- {
100
- key: "getString",
101
- value: function getString() {
102
- return this.string;
103
- }
104
- },
105
- {
106
- key: "getNode",
107
- value: function getNode() {
108
- return this.node;
109
- }
110
- },
111
- {
112
- key: "getTokens",
113
- value: function getTokens() {
114
- return this.tokens;
115
- }
116
- },
117
- {
118
- key: "getDeclarations",
119
- value: function getDeclarations() {
120
- return this.declarations;
121
- }
122
- },
123
- {
124
- key: "getLength",
125
- value: function getLength() {
126
- return this.declarations.length;
127
- }
128
- },
129
- {
130
- key: "getMetavariable",
131
- value: function getMetavariable() {
132
- var metavariable = null;
133
- var simple = this.isSimple();
134
- if (simple) {
135
- var firstDeclaration = first(this.declarations), declaration = firstDeclaration; ///
136
- metavariable = declaration.getMetavariable();
137
- }
138
- return metavariable;
139
- }
140
- },
141
- {
142
- key: "isSimple",
143
- value: function isSimple() {
144
- var simple = false;
145
- var length = this.getLength();
146
- if (length === 1) {
147
- var firstDeclaration = first(this.declarations), declaration = firstDeclaration; ///
148
- simple = declaration.isSimple();
149
- }
150
- return simple;
151
- }
152
- },
153
- {
154
- key: "isEqualTo",
155
- value: function isEqualTo(frame) {
156
- var frameString = frame.getString(), equalTo = frameString === this.string;
157
- return equalTo;
158
- }
159
- },
160
- {
161
- key: "matchSubstitution",
162
- value: function matchSubstitution(substitution, context) {
163
- var substitutionMatches = false;
164
- var frameString = this.string, substitutionString = substitution.getString();
165
- context.trace("Matching the '".concat(substitutionString, "' substitution against the '").concat(frameString, "' frame..."));
166
- if (!substitutionMatches) {
167
- substitutionMatches = this.declarations.some(function(declaration) {
168
- var substitutionMatchesDeclaration = declaration.matchSubstitution(substitution, context);
169
- if (substitutionMatchesDeclaration) {
170
- return true;
171
- }
172
- });
173
- }
174
- if (substitutionMatches) {
175
- context.debug("...matched the '".concat(substitutionString, "' substitutions against the '").concat(frameString, "' frame."));
176
- }
177
- return substitutionMatches;
178
- }
179
- },
180
- {
181
- key: "matchSubstitutions",
182
- value: function matchSubstitutions(substitutions, context) {
183
- var _this = this;
184
- var substitutionsMatch;
185
- var frameString = this.string, substitutionsString = substitutions.asString();
186
- context.trace("Matching the '".concat(substitutionsString, "' substitutions against the '").concat(frameString, "' frame..."));
187
- substitutionsMatch = substitutions.everySubstitution(function(substitution) {
188
- var substitutionMatches = _this.matchSubstitution(substitution, context);
189
- if (substitutionMatches) {
190
- return true;
191
- }
192
- });
193
- if (substitutionsMatch) {
194
- context.debug("...matched the '".concat(substitutionsString, "' substitutions against the '").concat(frameString, "' frame."));
195
- }
196
- return substitutionsMatch;
197
- }
198
- },
199
- {
200
- key: "verify",
201
- value: function verify(assignments, stated, context) {
202
- var verifies = false;
203
- var frameString = this.string; ///
204
- context.trace("Verifying the '".concat(frameString, "' frame..."));
205
- var declarationsVerify = this.verifyDeclarations(assignments, stated, context);
206
- if (declarationsVerify) {
207
- var verifiesWhenStated = false, verifiesWhenDerived = false;
208
- if (stated) {
209
- verifiesWhenStated = this.verifyWhenStated(assignments, context);
210
- } else {
211
- verifiesWhenDerived = this.verifyWhenDerived(context);
212
- }
213
- if (verifiesWhenStated || verifiesWhenDerived) {
214
- verifies = true;
215
- }
216
- }
217
- if (verifies) {
218
- context.debug("...verified the '".concat(frameString, "' frame."));
219
- }
220
- return verifies;
221
- }
222
- },
223
- {
224
- key: "verifyWhenStated",
225
- value: function verifyWhenStated(assignments, context) {
226
- var verifiesWhenStated = false;
227
- var frameString = this.string; ///
228
- context.trace("Verifying the '".concat(frameString, "' stated frame..."));
229
- var simple = this.isSimple();
230
- if (!simple) {
231
- context.trace("The '".concat(frameString, "' stated frame must be simple."));
232
- } else {
233
- verifiesWhenStated = true;
234
- }
235
- if (verifiesWhenStated) {
236
- context.debug("...verified the '".concat(frameString, "' stated frame."));
237
- }
238
- return verifiesWhenStated;
239
- }
240
- },
241
- {
242
- key: "verifyWhenDerived",
243
- value: function verifyWhenDerived(context) {
244
- var verifiesWhenDerived;
245
- var frameString = this.string; ///
246
- context.trace("Verifying the '".concat(frameString, "' derived frame..."));
247
- verifiesWhenDerived = true;
248
- if (verifiesWhenDerived) {
249
- context.debug("...verified the '".concat(frameString, "' derived frame."));
250
- }
251
- return verifiesWhenDerived;
252
- }
253
- },
254
- {
255
- key: "verifyDeclarations",
256
- value: function verifyDeclarations(assignments, stated, context) {
257
- var declarationsVerify = true; ///
258
- var length = this.getLength();
259
- if (length > 0) {
260
- var sOrNothing = length > 1 ? _constants.S : _constants.NOTHING, declarationsString = declarationsStringFromDeclarations(this.declarations);
261
- context.trace("Verifying the '".concat(declarationsString, "' declaration").concat(sOrNothing, "..."));
262
- stated = true; ///
263
- assignments = null; ///
264
- declarationsVerify = this.declarations.every(function(declaration) {
265
- var declarationVerifies = declaration.verify(assignments, stated, context);
266
- return declarationVerifies;
267
- });
268
- if (declarationsVerify) {
269
- context.debug("...verified the '".concat(declarationsString, "' declaration").concat(sOrNothing, "."));
270
- }
271
- }
272
- return declarationsVerify;
273
- }
274
- },
275
- {
276
- key: "verifyGivenMetaType",
277
- value: function verifyGivenMetaType(metaType, assignments, stated, context) {
278
- var verifiesGivenMetaType = false;
279
- var frameString = this.string, metaTypeString = metaType.getString();
280
- context.trace("Verifying the '".concat(frameString, "' frame given the '").concat(metaTypeString, "' meta-type..."));
281
- var metaTypeName = metaType.getName();
282
- if (metaTypeName === _metaTypeNames.FRAME_META_TYPE_NAME) {
283
- var verifies = this.verify(assignments, stated, context);
284
- verifiesGivenMetaType = verifies; ///
285
- }
286
- if (verifiesGivenMetaType) {
287
- context.debug("...verified the '".concat(frameString, "' frame given the '").concat(metaTypeString, "' meta-type."));
288
- }
289
- return verifiesGivenMetaType;
290
- }
291
- }
292
- ], [
293
- {
294
- key: "fromFrameNode",
295
- value: function fromFrameNode(frameNode, context) {
296
- var frame = null;
297
- if (frameNode !== null) {
298
- frame = frameFromFrameNode(frameNode, context);
299
- }
300
- return frame;
301
- }
302
- },
303
- {
304
- key: "fromJudgementNode",
305
- value: function fromJudgementNode(judgementNode, context) {
306
- var frameNode = judgementNode.getFrameNode(), frame = frameFromFrameNode(frameNode, context);
307
- return frame;
308
- }
309
- },
310
- {
311
- key: "fromDefinedAssertionNode",
312
- value: function fromDefinedAssertionNode(definedAssertionNode, context) {
313
- var frame = null;
314
- var frameNode = definedAssertionNode.getFrameNode();
315
- if (frameNode !== null) {
316
- frame = frameFromFrameNode(frameNode, context);
317
- }
318
- return frame;
319
- }
320
- },
321
- {
322
- key: "fromContainedAssertionNode",
323
- value: function fromContainedAssertionNode(containedAssertionNode, context) {
324
- var frame = null;
325
- var frameNode = containedAssertionNode.getFrameNode();
326
- if (frameNode !== null) {
327
- frame = frameFromFrameNode(frameNode, context);
328
- }
329
- return frame;
330
- }
331
- }
332
- ]);
333
- return Frame;
334
- }(), _define_property(_Frame, "name", "Frame"), _Frame));
335
- function frameFromFrameNode(frameNode, context) {
336
- var Frame = _dom.default.Frame, node = frameNode, string = context.nodeAsString(node), tokens = context.nodeAsTokens(node), declarations = declarationsFromFrameNode(frameNode, context), metavariables = metavariablesFromFrameNode(frameNode, context), frame = new Frame(string, node, tokens, declarations, metavariables);
337
- return frame;
338
- }
339
- function declarationsFromFrameNode(frameNode, context) {
340
- var Declaration = _dom.default.Declaration, declarationNodes = frameNode.getDeclarationNodes(), declarations = declarationNodes.map(function(declarationNode) {
341
- var declaration = Declaration.fromDeclarationNode(declarationNode, context);
342
- return declaration;
343
- });
344
- return declarations;
345
- }
346
- function metavariablesFromFrameNode(frameNode, context) {
347
- var Metavariable = _dom.default.Metavariable, metavariableNodes = frameNode.getMetavariableNodes(), metavariables = metavariableNodes.map(function(metavariableNode) {
348
- var metavariable = Metavariable.fromMetavariableNode(metavariableNode, context);
349
- return metavariable;
350
- });
351
- return metavariables;
352
- }
353
- function declarationsStringFromDeclarations(declarations) {
354
- var declarationsString = declarations.reduce(function(declarationsString, declaration) {
355
- var declarationString = declaration.getString();
356
- declarationsString = declarationsString === null ? declarationString : "".concat(declarationsString, ", ").concat(declarationString);
357
- return declarationsString;
358
- }, null);
359
- return declarationsString;
360
- }
361
-
362
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vZnJhbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgZG9tIGZyb20gXCIuLi9kb21cIjtcblxuaW1wb3J0IHsgUywgTk9USElORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IHsgRlJBTUVfTUVUQV9UWVBFX05BTUUgfSBmcm9tIFwiLi4vbWV0YVR5cGVOYW1lc1wiO1xuXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoY2xhc3MgRnJhbWUge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIG5vZGUsIHRva2VucywgZGVjbGFyYXRpb25zKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLnRva2VucyA9IHRva2VucztcbiAgICB0aGlzLmRlY2xhcmF0aW9ucyA9IGRlY2xhcmF0aW9ucztcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBnZXRUb2tlbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICB9XG5cbiAgZ2V0RGVjbGFyYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmRlY2xhcmF0aW9ucztcbiAgfVxuXG4gIGdldExlbmd0aCgpIHsgcmV0dXJuIHRoaXMuZGVjbGFyYXRpb25zLmxlbmd0aDsgfVxuXG4gIGdldE1ldGF2YXJpYWJsZSgpIHtcbiAgICBsZXQgbWV0YXZhcmlhYmxlID0gbnVsbDtcblxuICAgIGNvbnN0IHNpbXBsZSA9IHRoaXMuaXNTaW1wbGUoKTtcblxuICAgIGlmIChzaW1wbGUpIHtcbiAgICAgIGNvbnN0IGZpcnN0RGVjbGFyYXRpb24gPSBmaXJzdCh0aGlzLmRlY2xhcmF0aW9ucyksXG4gICAgICAgICAgICBkZWNsYXJhdGlvbiA9IGZpcnN0RGVjbGFyYXRpb247IC8vL1xuXG4gICAgICBtZXRhdmFyaWFibGUgPSBkZWNsYXJhdGlvbi5nZXRNZXRhdmFyaWFibGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlO1xuICB9XG5cbiAgaXNTaW1wbGUoKSB7XG4gICAgbGV0IHNpbXBsZSA9IGZhbHNlO1xuXG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5nZXRMZW5ndGgoKTtcblxuICAgIGlmIChsZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGZpcnN0RGVjbGFyYXRpb24gPSBmaXJzdCh0aGlzLmRlY2xhcmF0aW9ucyksXG4gICAgICAgICAgICBkZWNsYXJhdGlvbiA9IGZpcnN0RGVjbGFyYXRpb247IC8vL1xuXG4gICAgICBzaW1wbGUgPSBkZWNsYXJhdGlvbi5pc1NpbXBsZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBzaW1wbGU7XG4gIH1cblxuICBpc0VxdWFsVG8oZnJhbWUpIHtcbiAgICBjb25zdCBmcmFtZVN0cmluZyA9IGZyYW1lLmdldFN0cmluZygpLFxuICAgICAgICAgIGVxdWFsVG8gPSAoZnJhbWVTdHJpbmcgPT09IHRoaXMuc3RyaW5nKTtcblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgbWF0Y2hTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCBjb250ZXh0KSB7XG4gICAgbGV0IHN1YnN0aXR1dGlvbk1hdGNoZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGZyYW1lU3RyaW5nID0gdGhpcy5zdHJpbmcsICAvLy9cbiAgICAgICAgICBzdWJzdGl0dXRpb25TdHJpbmcgPSBzdWJzdGl0dXRpb24uZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBNYXRjaGluZyB0aGUgJyR7c3Vic3RpdHV0aW9uU3RyaW5nfScgc3Vic3RpdHV0aW9uIGFnYWluc3QgdGhlICcke2ZyYW1lU3RyaW5nfScgZnJhbWUuLi5gKTtcblxuICAgIGlmICghc3Vic3RpdHV0aW9uTWF0Y2hlcykge1xuICAgICAgc3Vic3RpdHV0aW9uTWF0Y2hlcyA9IHRoaXMuZGVjbGFyYXRpb25zLnNvbWUoKGRlY2xhcmF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbk1hdGNoZXNEZWNsYXJhdGlvbiA9IGRlY2xhcmF0aW9uLm1hdGNoU3Vic3RpdHV0aW9uKHN1YnN0aXR1dGlvbiwgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKHN1YnN0aXR1dGlvbk1hdGNoZXNEZWNsYXJhdGlvbikge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uTWF0Y2hlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4ubWF0Y2hlZCB0aGUgJyR7c3Vic3RpdHV0aW9uU3RyaW5nfScgc3Vic3RpdHV0aW9ucyBhZ2FpbnN0IHRoZSAnJHtmcmFtZVN0cmluZ30nIGZyYW1lLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJzdGl0dXRpb25NYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hTdWJzdGl0dXRpb25zKHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpIHtcbiAgICBsZXQgc3Vic3RpdHV0aW9uc01hdGNoO1xuXG4gICAgY29uc3QgZnJhbWVTdHJpbmcgPSB0aGlzLnN0cmluZywgIC8vL1xuICAgICAgICAgIHN1YnN0aXR1dGlvbnNTdHJpbmcgPSBzdWJzdGl0dXRpb25zLmFzU3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBNYXRjaGluZyB0aGUgJyR7c3Vic3RpdHV0aW9uc1N0cmluZ30nIHN1YnN0aXR1dGlvbnMgYWdhaW5zdCB0aGUgJyR7ZnJhbWVTdHJpbmd9JyBmcmFtZS4uLmApO1xuXG4gICAgc3Vic3RpdHV0aW9uc01hdGNoID0gc3Vic3RpdHV0aW9ucy5ldmVyeVN1YnN0aXR1dGlvbigoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25NYXRjaGVzID0gdGhpcy5tYXRjaFN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIGNvbnRleHQpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChzdWJzdGl0dXRpb25zTWF0Y2gpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLm1hdGNoZWQgdGhlICcke3N1YnN0aXR1dGlvbnNTdHJpbmd9JyBzdWJzdGl0dXRpb25zIGFnYWluc3QgdGhlICcke2ZyYW1lU3RyaW5nfScgZnJhbWUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbnNNYXRjaDtcbiAgfVxuXG4gIHZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBmcmFtZVN0cmluZyA9IHRoaXMuc3RyaW5nOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2ZyYW1lU3RyaW5nfScgZnJhbWUuLi5gKTtcblxuICAgIGNvbnN0IGRlY2xhcmF0aW9uc1ZlcmlmeSA9IHRoaXMudmVyaWZ5RGVjbGFyYXRpb25zKGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgaWYgKGRlY2xhcmF0aW9uc1ZlcmlmeSkge1xuICAgICAgbGV0IHZlcmlmaWVzV2hlblN0YXRlZCA9IGZhbHNlLFxuICAgICAgICAgIHZlcmlmaWVzV2hlbkRlcml2ZWQgPSBmYWxzZTtcblxuICAgICAgaWYgKHN0YXRlZCkge1xuICAgICAgICB2ZXJpZmllc1doZW5TdGF0ZWQgPSB0aGlzLnZlcmlmeVdoZW5TdGF0ZWQoYXNzaWdubWVudHMsIGNvbnRleHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmVyaWZpZXNXaGVuRGVyaXZlZCA9IHRoaXMudmVyaWZ5V2hlbkRlcml2ZWQoY29udGV4dCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh2ZXJpZmllc1doZW5TdGF0ZWQgfHwgdmVyaWZpZXNXaGVuRGVyaXZlZCkge1xuICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZnJhbWVTdHJpbmd9JyBmcmFtZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZXM7XG4gIH1cblxuICB2ZXJpZnlXaGVuU3RhdGVkKGFzc2lnbm1lbnRzLCBjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzV2hlblN0YXRlZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgZnJhbWVTdHJpbmcgPSB0aGlzLnN0cmluZzsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtmcmFtZVN0cmluZ30nIHN0YXRlZCBmcmFtZS4uLmApO1xuXG4gICAgY29uc3Qgc2ltcGxlID0gdGhpcy5pc1NpbXBsZSgpO1xuXG4gICAgaWYgKCFzaW1wbGUpIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYFRoZSAnJHtmcmFtZVN0cmluZ30nIHN0YXRlZCBmcmFtZSBtdXN0IGJlIHNpbXBsZS5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmVyaWZpZXNXaGVuU3RhdGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZXNXaGVuU3RhdGVkKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZnJhbWVTdHJpbmd9JyBzdGF0ZWQgZnJhbWUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzV2hlblN0YXRlZDtcbiAgfVxuXG4gIHZlcmlmeVdoZW5EZXJpdmVkKGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZXNXaGVuRGVyaXZlZDtcblxuICAgIGNvbnN0IGZyYW1lU3RyaW5nID0gdGhpcy5zdHJpbmc7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7ZnJhbWVTdHJpbmd9JyBkZXJpdmVkIGZyYW1lLi4uYCk7XG5cbiAgICB2ZXJpZmllc1doZW5EZXJpdmVkID0gdHJ1ZTtcblxuICAgIGlmICh2ZXJpZmllc1doZW5EZXJpdmVkKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZnJhbWVTdHJpbmd9JyBkZXJpdmVkIGZyYW1lLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllc1doZW5EZXJpdmVkO1xuICB9XG5cbiAgdmVyaWZ5RGVjbGFyYXRpb25zKGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpIHtcbiAgICBsZXQgZGVjbGFyYXRpb25zVmVyaWZ5ID0gdHJ1ZTsgIC8vL1xuXG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5nZXRMZW5ndGgoKTtcblxuICAgIGlmIChsZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzT3JOb3RoaW5nID0gKGxlbmd0aCA+IDEpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOT1RISU5HLFxuICAgICAgICAgICAgZGVjbGFyYXRpb25zU3RyaW5nID0gZGVjbGFyYXRpb25zU3RyaW5nRnJvbURlY2xhcmF0aW9ucyh0aGlzLmRlY2xhcmF0aW9ucyk7XG5cbiAgICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7ZGVjbGFyYXRpb25zU3RyaW5nfScgZGVjbGFyYXRpb24ke3NPck5vdGhpbmd9Li4uYCk7XG5cbiAgICAgIHN0YXRlZCA9IHRydWU7ICAvLy9cblxuICAgICAgYXNzaWdubWVudHMgPSBudWxsOyAvLy9cblxuICAgICAgZGVjbGFyYXRpb25zVmVyaWZ5ID0gdGhpcy5kZWNsYXJhdGlvbnMuZXZlcnkoKGRlY2xhcmF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGRlY2xhcmF0aW9uVmVyaWZpZXMgPSBkZWNsYXJhdGlvbi52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIGRlY2xhcmF0aW9uVmVyaWZpZXM7XG4gICAgICB9KTtcblxuICAgICAgaWYgKGRlY2xhcmF0aW9uc1ZlcmlmeSkge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZGVjbGFyYXRpb25zU3RyaW5nfScgZGVjbGFyYXRpb24ke3NPck5vdGhpbmd9LmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkZWNsYXJhdGlvbnNWZXJpZnk7XG4gIH1cblxuICB2ZXJpZnlHaXZlbk1ldGFUeXBlKG1ldGFUeXBlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzR2l2ZW5NZXRhVHlwZSA9IGZhbHNlO1xuXG4gICAgY29uc3QgZnJhbWVTdHJpbmcgPSB0aGlzLnN0cmluZywgIC8vL1xuICAgICAgICAgIG1ldGFUeXBlU3RyaW5nID0gbWV0YVR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2ZyYW1lU3RyaW5nfScgZnJhbWUgZ2l2ZW4gdGhlICcke21ldGFUeXBlU3RyaW5nfScgbWV0YS10eXBlLi4uYCk7XG5cbiAgICBjb25zdCBtZXRhVHlwZU5hbWUgPSBtZXRhVHlwZS5nZXROYW1lKCk7XG5cbiAgICBpZiAobWV0YVR5cGVOYW1lID09PSBGUkFNRV9NRVRBX1RZUEVfTkFNRSkge1xuICAgICAgY29uc3QgdmVyaWZpZXMgPSB0aGlzLnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KVxuXG4gICAgICB2ZXJpZmllc0dpdmVuTWV0YVR5cGUgPSB2ZXJpZmllczsgLy8vXG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzR2l2ZW5NZXRhVHlwZSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2ZyYW1lU3RyaW5nfScgZnJhbWUgZ2l2ZW4gdGhlICcke21ldGFUeXBlU3RyaW5nfScgbWV0YS10eXBlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllc0dpdmVuTWV0YVR5cGU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiRnJhbWVcIjtcblxuICBzdGF0aWMgZnJvbUZyYW1lTm9kZShmcmFtZU5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgZnJhbWUgPSBudWxsO1xuXG4gICAgaWYgKGZyYW1lTm9kZSAhPT0gbnVsbCkge1xuICAgICAgZnJhbWUgPSBmcmFtZUZyb21GcmFtZU5vZGUoZnJhbWVOb2RlLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZnJhbWU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUp1ZGdlbWVudE5vZGUoanVkZ2VtZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IGZyYW1lTm9kZSA9IGp1ZGdlbWVudE5vZGUuZ2V0RnJhbWVOb2RlKCksXG4gICAgICAgICAgZnJhbWUgPSBmcmFtZUZyb21GcmFtZU5vZGUoZnJhbWVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBmcmFtZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRGVmaW5lZEFzc2VydGlvbk5vZGUoZGVmaW5lZEFzc2VydGlvbk5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgZnJhbWUgPSBudWxsO1xuXG4gICAgY29uc3QgZnJhbWVOb2RlID0gZGVmaW5lZEFzc2VydGlvbk5vZGUuZ2V0RnJhbWVOb2RlKCk7XG5cbiAgICBpZiAoZnJhbWVOb2RlICE9PSBudWxsKSB7XG4gICAgICBmcmFtZSA9IGZyYW1lRnJvbUZyYW1lTm9kZShmcmFtZU5vZGUsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiBmcmFtZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ29udGFpbmVkQXNzZXJ0aW9uTm9kZShjb250YWluZWRBc3NlcnRpb25Ob2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IGZyYW1lID0gbnVsbDtcblxuICAgIGNvbnN0IGZyYW1lTm9kZSA9IGNvbnRhaW5lZEFzc2VydGlvbk5vZGUuZ2V0RnJhbWVOb2RlKCk7XG5cbiAgICBpZiAoZnJhbWVOb2RlICE9PSBudWxsKSB7XG4gICAgICBmcmFtZSA9IGZyYW1lRnJvbUZyYW1lTm9kZShmcmFtZU5vZGUsIGNvbnRleHQpXG4gICAgfVxuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9XG59KTtcblxuZnVuY3Rpb24gZnJhbWVGcm9tRnJhbWVOb2RlKGZyYW1lTm9kZSwgY29udGV4dCkge1xuICBjb25zdCB7IEZyYW1lIH0gPSBkb20sXG4gICAgICAgIG5vZGUgPSBmcmFtZU5vZGUsIC8vL1xuICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgdG9rZW5zID0gY29udGV4dC5ub2RlQXNUb2tlbnMobm9kZSksXG4gICAgICAgIGRlY2xhcmF0aW9ucyA9IGRlY2xhcmF0aW9uc0Zyb21GcmFtZU5vZGUoZnJhbWVOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgbWV0YXZhcmlhYmxlcyA9IG1ldGF2YXJpYWJsZXNGcm9tRnJhbWVOb2RlKGZyYW1lTm9kZSwgY29udGV4dCksXG4gICAgICAgIGZyYW1lID0gbmV3IEZyYW1lKHN0cmluZywgbm9kZSwgdG9rZW5zLCBkZWNsYXJhdGlvbnMsIG1ldGF2YXJpYWJsZXMpO1xuXG4gIHJldHVybiBmcmFtZTtcbn1cblxuZnVuY3Rpb24gZGVjbGFyYXRpb25zRnJvbUZyYW1lTm9kZShmcmFtZU5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBEZWNsYXJhdGlvbiB9ID0gZG9tLFxuICAgICAgICBkZWNsYXJhdGlvbk5vZGVzID0gZnJhbWVOb2RlLmdldERlY2xhcmF0aW9uTm9kZXMoKSxcbiAgICAgICAgZGVjbGFyYXRpb25zID0gZGVjbGFyYXRpb25Ob2Rlcy5tYXAoKGRlY2xhcmF0aW9uTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGRlY2xhcmF0aW9uID0gRGVjbGFyYXRpb24uZnJvbURlY2xhcmF0aW9uTm9kZShkZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgICAgcmV0dXJuIGRlY2xhcmF0aW9uO1xuICAgICAgICB9KTtcblxuICByZXR1cm4gZGVjbGFyYXRpb25zO1xufVxuXG5mdW5jdGlvbiBtZXRhdmFyaWFibGVzRnJvbUZyYW1lTm9kZShmcmFtZU5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBNZXRhdmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgbWV0YXZhcmlhYmxlTm9kZXMgPSBmcmFtZU5vZGUuZ2V0TWV0YXZhcmlhYmxlTm9kZXMoKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlcyA9IG1ldGF2YXJpYWJsZU5vZGVzLm1hcCgobWV0YXZhcmlhYmxlTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICAgIHJldHVybiBtZXRhdmFyaWFibGU7XG4gICAgICAgIH0pO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVzO1xufVxuXG5mdW5jdGlvbiBkZWNsYXJhdGlvbnNTdHJpbmdGcm9tRGVjbGFyYXRpb25zKGRlY2xhcmF0aW9ucykge1xuICBjb25zdCBkZWNsYXJhdGlvbnNTdHJpbmcgPSBkZWNsYXJhdGlvbnMucmVkdWNlKChkZWNsYXJhdGlvbnNTdHJpbmcsIGRlY2xhcmF0aW9uKSA9PiB7XG4gICAgY29uc3QgZGVjbGFyYXRpb25TdHJpbmcgPSBkZWNsYXJhdGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIGRlY2xhcmF0aW9uc1N0cmluZyA9IChkZWNsYXJhdGlvbnNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9uU3RyaW5nIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtkZWNsYXJhdGlvbnNTdHJpbmd9LCAke2RlY2xhcmF0aW9uU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gZGVjbGFyYXRpb25zU3RyaW5nO1xuICB9LCBudWxsKTtcblxuICByZXR1cm4gZGVjbGFyYXRpb25zU3RyaW5nO1xufVxuIl0sIm5hbWVzIjpbImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJkb21Bc3NpZ25lZCIsIkZyYW1lIiwic3RyaW5nIiwibm9kZSIsInRva2VucyIsImRlY2xhcmF0aW9ucyIsImdldFN0cmluZyIsImdldE5vZGUiLCJnZXRUb2tlbnMiLCJnZXREZWNsYXJhdGlvbnMiLCJnZXRMZW5ndGgiLCJsZW5ndGgiLCJnZXRNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGUiLCJzaW1wbGUiLCJpc1NpbXBsZSIsImZpcnN0RGVjbGFyYXRpb24iLCJkZWNsYXJhdGlvbiIsImlzRXF1YWxUbyIsImZyYW1lIiwiZnJhbWVTdHJpbmciLCJlcXVhbFRvIiwibWF0Y2hTdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb24iLCJjb250ZXh0Iiwic3Vic3RpdHV0aW9uTWF0Y2hlcyIsInN1YnN0aXR1dGlvblN0cmluZyIsInRyYWNlIiwic29tZSIsInN1YnN0aXR1dGlvbk1hdGNoZXNEZWNsYXJhdGlvbiIsImRlYnVnIiwibWF0Y2hTdWJzdGl0dXRpb25zIiwic3Vic3RpdHV0aW9ucyIsInN1YnN0aXR1dGlvbnNNYXRjaCIsInN1YnN0aXR1dGlvbnNTdHJpbmciLCJhc1N0cmluZyIsImV2ZXJ5U3Vic3RpdHV0aW9uIiwidmVyaWZ5IiwiYXNzaWdubWVudHMiLCJzdGF0ZWQiLCJ2ZXJpZmllcyIsImRlY2xhcmF0aW9uc1ZlcmlmeSIsInZlcmlmeURlY2xhcmF0aW9ucyIsInZlcmlmaWVzV2hlblN0YXRlZCIsInZlcmlmaWVzV2hlbkRlcml2ZWQiLCJ2ZXJpZnlXaGVuU3RhdGVkIiwidmVyaWZ5V2hlbkRlcml2ZWQiLCJzT3JOb3RoaW5nIiwiUyIsIk5PVEhJTkciLCJkZWNsYXJhdGlvbnNTdHJpbmciLCJkZWNsYXJhdGlvbnNTdHJpbmdGcm9tRGVjbGFyYXRpb25zIiwiZXZlcnkiLCJkZWNsYXJhdGlvblZlcmlmaWVzIiwidmVyaWZ5R2l2ZW5NZXRhVHlwZSIsIm1ldGFUeXBlIiwidmVyaWZpZXNHaXZlbk1ldGFUeXBlIiwibWV0YVR5cGVTdHJpbmciLCJtZXRhVHlwZU5hbWUiLCJnZXROYW1lIiwiRlJBTUVfTUVUQV9UWVBFX05BTUUiLCJmcm9tRnJhbWVOb2RlIiwiZnJhbWVOb2RlIiwiZnJhbWVGcm9tRnJhbWVOb2RlIiwiZnJvbUp1ZGdlbWVudE5vZGUiLCJqdWRnZW1lbnROb2RlIiwiZ2V0RnJhbWVOb2RlIiwiZnJvbURlZmluZWRBc3NlcnRpb25Ob2RlIiwiZGVmaW5lZEFzc2VydGlvbk5vZGUiLCJmcm9tQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsImNvbnRhaW5lZEFzc2VydGlvbk5vZGUiLCJuYW1lIiwiZG9tIiwibm9kZUFzU3RyaW5nIiwibm9kZUFzVG9rZW5zIiwiZGVjbGFyYXRpb25zRnJvbUZyYW1lTm9kZSIsIm1ldGF2YXJpYWJsZXMiLCJtZXRhdmFyaWFibGVzRnJvbUZyYW1lTm9kZSIsIkRlY2xhcmF0aW9uIiwiZGVjbGFyYXRpb25Ob2RlcyIsImdldERlY2xhcmF0aW9uTm9kZXMiLCJtYXAiLCJkZWNsYXJhdGlvbk5vZGUiLCJmcm9tRGVjbGFyYXRpb25Ob2RlIiwiTWV0YXZhcmlhYmxlIiwibWV0YXZhcmlhYmxlTm9kZXMiLCJnZXRNZXRhdmFyaWFibGVOb2RlcyIsIm1ldGF2YXJpYWJsZU5vZGUiLCJmcm9tTWV0YXZhcmlhYmxlTm9kZSIsInJlZHVjZSIsImRlY2xhcmF0aW9uU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQUE7Ozt5QkFWK0I7MkRBRWY7eUJBRVc7NkJBRVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVyQyxJQUFNLEFB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
@@ -1,191 +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 _dom = /*#__PURE__*/ _interop_require_wildcard(require("../dom"));
12
- var _assignments = require("../utilities/assignments");
13
- var _context = require("../utilities/context");
14
- var _json = require("../utilities/json");
15
- function _class_call_check(instance, Constructor) {
16
- if (!(instance instanceof Constructor)) {
17
- throw new TypeError("Cannot call a class as a function");
18
- }
19
- }
20
- function _defineProperties(target, props) {
21
- for(var i = 0; i < props.length; i++){
22
- var descriptor = props[i];
23
- descriptor.enumerable = descriptor.enumerable || false;
24
- descriptor.configurable = true;
25
- if ("value" in descriptor) descriptor.writable = true;
26
- Object.defineProperty(target, descriptor.key, descriptor);
27
- }
28
- }
29
- function _create_class(Constructor, protoProps, staticProps) {
30
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
31
- if (staticProps) _defineProperties(Constructor, staticProps);
32
- return Constructor;
33
- }
34
- function _define_property(obj, key, value) {
35
- if (key in obj) {
36
- Object.defineProperty(obj, key, {
37
- value: value,
38
- enumerable: true,
39
- configurable: true,
40
- writable: true
41
- });
42
- } else {
43
- obj[key] = value;
44
- }
45
- return obj;
46
- }
47
- function _getRequireWildcardCache(nodeInterop) {
48
- if (typeof WeakMap !== "function") return null;
49
- var cacheBabelInterop = new WeakMap();
50
- var cacheNodeInterop = new WeakMap();
51
- return (_getRequireWildcardCache = function(nodeInterop) {
52
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
53
- })(nodeInterop);
54
- }
55
- function _interop_require_wildcard(obj, nodeInterop) {
56
- if (!nodeInterop && obj && obj.__esModule) {
57
- return obj;
58
- }
59
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
60
- return {
61
- default: obj
62
- };
63
- }
64
- var cache = _getRequireWildcardCache(nodeInterop);
65
- if (cache && cache.has(obj)) {
66
- return cache.get(obj);
67
- }
68
- var newObj = {
69
- __proto__: null
70
- };
71
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
72
- for(var key in obj){
73
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
74
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
75
- if (desc && (desc.get || desc.set)) {
76
- Object.defineProperty(newObj, key, desc);
77
- } else {
78
- newObj[key] = obj[key];
79
- }
80
- }
81
- }
82
- newObj.default = obj;
83
- if (cache) {
84
- cache.set(obj, newObj);
85
- }
86
- return newObj;
87
- }
88
- var _Hypothesis;
89
- var _default = (0, _dom.domAssigned)((_Hypothesis = /*#__PURE__*/ function() {
90
- function Hypothesis(node, string, statement) {
91
- _class_call_check(this, Hypothesis);
92
- this.node = node;
93
- this.string = string;
94
- this.statement = statement;
95
- }
96
- _create_class(Hypothesis, [
97
- {
98
- key: "getNode",
99
- value: function getNode() {
100
- return this.node;
101
- }
102
- },
103
- {
104
- key: "getString",
105
- value: function getString() {
106
- return this.string;
107
- }
108
- },
109
- {
110
- key: "getStatement",
111
- value: function getStatement() {
112
- return this.statement;
113
- }
114
- },
115
- {
116
- key: "verify",
117
- value: function verify(context) {
118
- var verifies = false;
119
- var hypothesisString = this.string; ///
120
- context.trace("Verifying the '".concat(hypothesisString, "' hypothesis..."), this.node);
121
- if (false) {
122
- ///
123
- } else if (this.statement !== null) {
124
- var stated = true, assignments = [], statementVerifies = this.statement.verify(assignments, stated, context);
125
- if (statementVerifies) {
126
- var assignmentsAssigned = (0, _assignments.assignAssignments)(assignments, context);
127
- if (assignmentsAssigned) {
128
- var Step = _dom.default.Step, step = Step.fromStatement(this.statement, context), stepOrSubproof = step; ///
129
- context.addStepOrSubproof(stepOrSubproof);
130
- verifies = true;
131
- }
132
- }
133
- } else {
134
- context.debug("Unable to verify the '".concat(hypothesisString, "' hypothesis because it is nonsense."), this.node);
135
- }
136
- if (verifies) {
137
- context.debug("...verified the '".concat(hypothesisString, "' hypothesis."), this.node);
138
- }
139
- return verifies;
140
- }
141
- },
142
- {
143
- key: "isEqualToStep",
144
- value: function isEqualToStep(step, context) {
145
- var equalToStep = false;
146
- var stepString = step.getString(), hypothesisString = this.string; ///
147
- context.trace("Is the '".concat(hypothesisString, "' hypothesis equal to the '").concat(stepString, "' step..."), this.node);
148
- var stepStatement = step.getStatement(), statementEqualToStepStatement = this.statement.isEqualTo(stepStatement);
149
- if (statementEqualToStepStatement) {
150
- equalToStep = true;
151
- }
152
- if (equalToStep) {
153
- context.trace("...the '".concat(hypothesisString, "' hypothesis is equal to the '").concat(stepString, "' step."), this.node);
154
- }
155
- return equalToStep;
156
- }
157
- },
158
- {
159
- key: "toJSON",
160
- value: function toJSON() {
161
- var statementJSON = (0, _json.statementToStatementJSON)(this.statement), statement = statementJSON, json = {
162
- statement: statement
163
- };
164
- return json;
165
- }
166
- }
167
- ], [
168
- {
169
- key: "fromJSON",
170
- value: function fromJSON(json, context) {
171
- var statement = (0, _json.statementFromJSON)(json, context);
172
- var string;
173
- if (statement !== null) {
174
- string = statement.getString();
175
- }
176
- var node = null, hypothesis = new Hypothesis(node, string, statement);
177
- return hypothesis;
178
- }
179
- },
180
- {
181
- key: "fromHypothesisNode",
182
- value: function fromHypothesisNode(hypothesisNode, context) {
183
- var Statement = _dom.default.Statement, node = hypothesisNode, string = context.nodeAsString(node), statement = Statement.fromHypothesisNode(hypothesisNode, context), hypothesis = new Hypothesis(node, string, statement);
184
- return hypothesis;
185
- }
186
- }
187
- ]);
188
- return Hypothesis;
189
- }(), _define_property(_Hypothesis, "name", "Hypothesis"), _Hypothesis));
190
-
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vaHlwb3RoZXNpcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vZG9tXCI7XG5cbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IHsgYXNzaWduQXNzaWdubWVudHMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2Fzc2lnbm1lbnRzXCI7XG5pbXBvcnQgeyBzdWJwcm9vZkFzc2VydGlvbkZyb21TdGF0ZW1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IHN0YXRlbWVudEZyb21KU09OLCBzdGF0ZW1lbnRUb1N0YXRlbWVudEpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoY2xhc3MgSHlwb3RoZXNpcyB7XG4gIGNvbnN0cnVjdG9yKG5vZGUsIHN0cmluZywgc3RhdGVtZW50KSB7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnN0YXRlbWVudCA9IHN0YXRlbWVudDtcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRTdGF0ZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50O1xuICB9XG5cbiAgdmVyaWZ5KGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGh5cG90aGVzaXNTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2h5cG90aGVzaXNTdHJpbmd9JyBoeXBvdGhlc2lzLi4uYCwgdGhpcy5ub2RlKTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVkID0gdHJ1ZSxcbiAgICAgICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgICAgICBzdGF0ZW1lbnRWZXJpZmllcyA9IHRoaXMuc3RhdGVtZW50LnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KTtcblxuICAgICAgaWYgKHN0YXRlbWVudFZlcmlmaWVzKSB7XG4gICAgICAgIGNvbnN0IGFzc2lnbm1lbnRzQXNzaWduZWQgPSBhc3NpZ25Bc3NpZ25tZW50cyhhc3NpZ25tZW50cywgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKGFzc2lnbm1lbnRzQXNzaWduZWQpIHtcbiAgICAgICAgICBjb25zdCB7IFN0ZXAgfSA9IGRvbSxcbiAgICAgICAgICAgICAgICBzdGVwID0gU3RlcC5mcm9tU3RhdGVtZW50KHRoaXMuc3RhdGVtZW50LCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgICBzdGVwT3JTdWJwcm9vZiA9IHN0ZXA7ICAvLy9cblxuICAgICAgICAgIGNvbnRleHQuYWRkU3RlcE9yU3VicHJvb2Yoc3RlcE9yU3VicHJvb2YpO1xuXG4gICAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFVuYWJsZSB0byB2ZXJpZnkgdGhlICcke2h5cG90aGVzaXNTdHJpbmd9JyBoeXBvdGhlc2lzIGJlY2F1c2UgaXQgaXMgbm9uc2Vuc2UuYCwgdGhpcy5ub2RlKTtcbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtoeXBvdGhlc2lzU3RyaW5nfScgaHlwb3RoZXNpcy5gLCB0aGlzLm5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllcztcbiAgfVxuXG4gIGlzRXF1YWxUb1N0ZXAoc3RlcCwgY29udGV4dCkge1xuICAgIGxldCBlcXVhbFRvU3RlcCA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc3RlcFN0cmluZyA9IHN0ZXAuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgaHlwb3RoZXNpc1N0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYElzIHRoZSAnJHtoeXBvdGhlc2lzU3RyaW5nfScgaHlwb3RoZXNpcyBlcXVhbCB0byB0aGUgJyR7c3RlcFN0cmluZ30nIHN0ZXAuLi5gLCB0aGlzLm5vZGUpO1xuXG4gICAgY29uc3Qgc3RlcFN0YXRlbWVudCA9IHN0ZXAuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc3RhdGVtZW50RXF1YWxUb1N0ZXBTdGF0ZW1lbnQgPSB0aGlzLnN0YXRlbWVudC5pc0VxdWFsVG8oc3RlcFN0YXRlbWVudCk7XG5cbiAgICBpZiAoc3RhdGVtZW50RXF1YWxUb1N0ZXBTdGF0ZW1lbnQpIHtcbiAgICAgIGVxdWFsVG9TdGVwID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoZXF1YWxUb1N0ZXApIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYC4uLnRoZSAnJHtoeXBvdGhlc2lzU3RyaW5nfScgaHlwb3RoZXNpcyBpcyBlcXVhbCB0byB0aGUgJyR7c3RlcFN0cmluZ30nIHN0ZXAuYCwgdGhpcy5ub2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXF1YWxUb1N0ZXA7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50SlNPTiA9IHN0YXRlbWVudFRvU3RhdGVtZW50SlNPTih0aGlzLnN0YXRlbWVudCksXG4gICAgICAgICAgc3RhdGVtZW50ID0gc3RhdGVtZW50SlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBzdGF0ZW1lbnRcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiSHlwb3RoZXNpc1wiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICBsZXQgc3RyaW5nO1xuXG4gICAgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgc3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGUgPSBudWxsLFxuICAgICAgICAgIGh5cG90aGVzaXMgPSBuZXcgSHlwb3RoZXNpcyhub2RlLCBzdHJpbmcsIHN0YXRlbWVudCk7XG5cbiAgICByZXR1cm4gaHlwb3RoZXNpcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSHlwb3RoZXNpc05vZGUoaHlwb3RoZXNpc05vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB7IFN0YXRlbWVudCB9ID0gZG9tLFxuICAgICAgICAgIG5vZGUgPSBoeXBvdGhlc2lzTm9kZSwgLy8vXG4gICAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgc3RhdGVtZW50ID0gU3RhdGVtZW50LmZyb21IeXBvdGhlc2lzTm9kZShoeXBvdGhlc2lzTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgaHlwb3RoZXNpcyA9IG5ldyBIeXBvdGhlc2lzKG5vZGUsIHN0cmluZywgc3RhdGVtZW50KTtcblxuICAgIHJldHVybiBoeXBvdGhlc2lzXG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRvbUFzc2lnbmVkIiwiSHlwb3RoZXNpcyIsIm5vZGUiLCJzdHJpbmciLCJzdGF0ZW1lbnQiLCJnZXROb2RlIiwiZ2V0U3RyaW5nIiwiZ2V0U3RhdGVtZW50IiwidmVyaWZ5IiwiY29udGV4dCIsInZlcmlmaWVzIiwiaHlwb3RoZXNpc1N0cmluZyIsInRyYWNlIiwic3RhdGVkIiwiYXNzaWdubWVudHMiLCJzdGF0ZW1lbnRWZXJpZmllcyIsImFzc2lnbm1lbnRzQXNzaWduZWQiLCJhc3NpZ25Bc3NpZ25tZW50cyIsIlN0ZXAiLCJkb20iLCJzdGVwIiwiZnJvbVN0YXRlbWVudCIsInN0ZXBPclN1YnByb29mIiwiYWRkU3RlcE9yU3VicHJvb2YiLCJkZWJ1ZyIsImlzRXF1YWxUb1N0ZXAiLCJlcXVhbFRvU3RlcCIsInN0ZXBTdHJpbmciLCJzdGVwU3RhdGVtZW50Iiwic3RhdGVtZW50RXF1YWxUb1N0ZXBTdGF0ZW1lbnQiLCJpc0VxdWFsVG8iLCJ0b0pTT04iLCJzdGF0ZW1lbnRKU09OIiwic3RhdGVtZW50VG9TdGF0ZW1lbnRKU09OIiwianNvbiIsImZyb21KU09OIiwic3RhdGVtZW50RnJvbUpTT04iLCJoeXBvdGhlc2lzIiwiZnJvbUh5cG90aGVzaXNOb2RlIiwiaHlwb3RoZXNpc05vZGUiLCJTdGF0ZW1lbnQiLCJub2RlQXNTdHJpbmciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQUE7OzsyREFQZ0I7MkJBR2tCO3VCQUNhO29CQUNhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFNUQsV0FBZUEsSUFBQUEsZ0JBQVcsK0JBQUM7YUFBTUMsV0FDbkJDLElBQUksRUFBRUMsTUFBTSxFQUFFQyxTQUFTO2dDQURKSDtRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLFNBQVMsR0FBR0E7Ozs7WUFHbkJDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsSUFBSTtZQUNsQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsTUFBTTtZQUNwQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsU0FBUztZQUN2Qjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQSxPQUFPQyxPQUFPO2dC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