occam-verify-cli 1.0.437 → 1.0.444

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 (217) hide show
  1. package/lib/context/file.js +38 -35
  2. package/lib/context/local.js +10 -10
  3. package/lib/context/release.js +6 -6
  4. package/lib/context/temporary.js +14 -14
  5. package/lib/element/assertion/contained.js +45 -45
  6. package/lib/element/assertion/defined.js +13 -13
  7. package/lib/element/assertion/property.js +23 -22
  8. package/lib/element/assertion/satisfies.js +7 -6
  9. package/lib/element/assertion/subproof.js +20 -17
  10. package/lib/element/assertion/type.js +3 -2
  11. package/lib/element/assertion.js +1 -23
  12. package/lib/element/assumption.js +24 -22
  13. package/lib/element/axiom.js +9 -12
  14. package/lib/element/axiomLemmaTheoremConjecture.js +32 -32
  15. package/lib/element/{statement/combinator → combinator}/bracketed.js +16 -16
  16. package/lib/element/combinator.js +229 -0
  17. package/lib/element/conclusion.js +11 -9
  18. package/lib/element/{term/constructor → constructor}/bracketed.js +5 -5
  19. package/lib/element/constructor.js +232 -0
  20. package/lib/element/declaration/combinator.js +2 -16
  21. package/lib/element/declaration/complexType.js +12 -12
  22. package/lib/element/declaration/constructor.js +13 -11
  23. package/lib/element/declaration/simpleType.js +4 -4
  24. package/lib/element/declaration/typePrefix.js +2 -2
  25. package/lib/element/declaration/variable.js +3 -3
  26. package/lib/element/deduction.js +11 -9
  27. package/lib/element/derivation.js +5 -8
  28. package/lib/element/equivalence.js +10 -10
  29. package/lib/element/equivalences.js +5 -5
  30. package/lib/element/frame.js +32 -38
  31. package/lib/element/hypothesis.js +3 -3
  32. package/lib/element/judgement.js +6 -4
  33. package/lib/element/label.js +16 -18
  34. package/lib/element/metaLemmaMetatheorem.js +5 -5
  35. package/lib/element/metaType.js +17 -80
  36. package/lib/element/metavariable.js +34 -34
  37. package/lib/element/parameter.js +3 -3
  38. package/lib/element/premise.js +43 -52
  39. package/lib/element/property.js +9 -9
  40. package/lib/element/propertyRelation.js +13 -13
  41. package/lib/element/reference.js +14 -17
  42. package/lib/element/rule.js +26 -50
  43. package/lib/element/signature.js +11 -11
  44. package/lib/element/statement.js +54 -56
  45. package/lib/element/step.js +79 -51
  46. package/lib/element/subDerivation.js +7 -10
  47. package/lib/element/subproof.js +6 -14
  48. package/lib/element/substitution/frame.js +1 -7
  49. package/lib/element/substitution/reference.js +2 -3
  50. package/lib/element/substitution/statement.js +44 -15
  51. package/lib/element/substitution/term.js +10 -57
  52. package/lib/element/substitution.js +5 -11
  53. package/lib/element/substitutions.js +29 -29
  54. package/lib/element/supposition.js +63 -55
  55. package/lib/element/term.js +21 -34
  56. package/lib/element/type.js +47 -60
  57. package/lib/element/typePrefix.js +5 -5
  58. package/lib/element/variable.js +9 -9
  59. package/lib/element.js +27 -3
  60. package/lib/metaTypes.js +52 -0
  61. package/lib/node/axiomLemmaTheoremConjecture.js +9 -9
  62. package/lib/node/body/axiom.js +2 -25
  63. package/lib/node/body/conjecture.js +2 -25
  64. package/lib/node/body/lemma.js +2 -25
  65. package/lib/node/body/metaLemma.js +2 -25
  66. package/lib/node/body/metatheorem.js +2 -25
  67. package/lib/node/body/rule.js +15 -1
  68. package/lib/node/body/theorem.js +2 -25
  69. package/lib/node/body.js +25 -2
  70. package/lib/node/combinator.js +11 -2
  71. package/lib/node/constructor.js +11 -2
  72. package/lib/node/declaration/combinator.js +5 -5
  73. package/lib/node/declaration/constructor.js +8 -8
  74. package/lib/node/declaration/property.js +15 -15
  75. package/lib/node/declaration/simpleType.js +31 -31
  76. package/lib/node/declaration/variable.js +8 -8
  77. package/lib/node/equality.js +8 -8
  78. package/lib/node/frame.js +20 -20
  79. package/lib/node/header.js +22 -22
  80. package/lib/node/metaLemmaMetaTheorem.js +16 -16
  81. package/lib/node/metavariable.js +15 -15
  82. package/lib/node/property.js +8 -8
  83. package/lib/node/propertyRelation.js +8 -8
  84. package/lib/node/rule.js +16 -16
  85. package/lib/node/statement.js +12 -12
  86. package/lib/node/step.js +22 -22
  87. package/lib/node/subproof.js +8 -8
  88. package/lib/node/substitution/frame.js +19 -19
  89. package/lib/node/substitution/statement.js +19 -19
  90. package/lib/node/substitution/term.js +19 -19
  91. package/lib/node/term.js +35 -35
  92. package/lib/preamble.js +5 -5
  93. package/lib/process/instantiate.js +20 -2
  94. package/lib/process/unify.js +39 -42
  95. package/lib/process/validate.js +431 -0
  96. package/lib/process/verify.js +44 -135
  97. package/lib/types.js +27 -0
  98. package/lib/utilities/brackets.js +4 -4
  99. package/lib/utilities/element.js +100 -61
  100. package/lib/utilities/instance.js +18 -18
  101. package/lib/utilities/statement.js +11 -16
  102. package/lib/utilities/string.js +21 -10
  103. package/lib/utilities/unification.js +237 -0
  104. package/lib/utilities/validation.js +251 -0
  105. package/package.json +6 -6
  106. package/src/context/file.js +37 -31
  107. package/src/context/local.js +8 -8
  108. package/src/context/release.js +9 -6
  109. package/src/context/temporary.js +11 -11
  110. package/src/element/assertion/contained.js +19 -20
  111. package/src/element/assertion/defined.js +11 -12
  112. package/src/element/assertion/property.js +20 -20
  113. package/src/element/assertion/satisfies.js +6 -6
  114. package/src/element/assertion/subproof.js +17 -15
  115. package/src/element/assertion/type.js +2 -2
  116. package/src/element/assertion.js +0 -2
  117. package/src/element/assumption.js +22 -19
  118. package/src/element/axiom.js +7 -11
  119. package/src/element/axiomLemmaTheoremConjecture.js +36 -36
  120. package/src/element/{statement/combinator → combinator}/bracketed.js +7 -7
  121. package/src/element/combinator.js +90 -0
  122. package/src/element/conclusion.js +12 -10
  123. package/src/element/{term/constructor → constructor}/bracketed.js +5 -5
  124. package/src/element/{term/constructor.js → constructor.js} +17 -25
  125. package/src/element/declaration/combinator.js +1 -22
  126. package/src/element/declaration/complexType.js +11 -11
  127. package/src/element/declaration/constructor.js +13 -10
  128. package/src/element/declaration/simpleType.js +3 -3
  129. package/src/element/declaration/typePrefix.js +1 -1
  130. package/src/element/declaration/variable.js +2 -2
  131. package/src/element/deduction.js +12 -9
  132. package/src/element/derivation.js +4 -8
  133. package/src/element/equivalence.js +8 -8
  134. package/src/element/equivalences.js +4 -4
  135. package/src/element/frame.js +28 -30
  136. package/src/element/hypothesis.js +2 -2
  137. package/src/element/judgement.js +6 -3
  138. package/src/element/label.js +14 -21
  139. package/src/element/metaLemmaMetatheorem.js +4 -3
  140. package/src/element/metaType.js +9 -45
  141. package/src/element/metavariable.js +29 -31
  142. package/src/element/parameter.js +2 -2
  143. package/src/element/premise.js +56 -62
  144. package/src/element/property.js +6 -6
  145. package/src/element/propertyRelation.js +11 -11
  146. package/src/element/reference.js +12 -21
  147. package/src/element/rule.js +28 -72
  148. package/src/element/signature.js +10 -9
  149. package/src/element/statement.js +69 -56
  150. package/src/element/step.js +89 -51
  151. package/src/element/subDerivation.js +6 -10
  152. package/src/element/subproof.js +4 -12
  153. package/src/element/substitution/frame.js +0 -2
  154. package/src/element/substitution/reference.js +1 -5
  155. package/src/element/substitution/statement.js +44 -14
  156. package/src/element/substitution/term.js +10 -13
  157. package/src/element/substitution.js +3 -5
  158. package/src/element/substitutions.js +48 -30
  159. package/src/element/supposition.js +88 -70
  160. package/src/element/term.js +18 -28
  161. package/src/element/type.js +42 -36
  162. package/src/element/typePrefix.js +3 -3
  163. package/src/element/variable.js +7 -7
  164. package/src/element.js +15 -1
  165. package/src/metaTypes.js +42 -0
  166. package/src/node/axiomLemmaTheoremConjecture.js +6 -6
  167. package/src/node/body/axiom.js +0 -21
  168. package/src/node/body/conjecture.js +0 -23
  169. package/src/node/body/lemma.js +0 -23
  170. package/src/node/body/metaLemma.js +0 -23
  171. package/src/node/body/metatheorem.js +0 -23
  172. package/src/node/body/rule.js +12 -0
  173. package/src/node/body/theorem.js +0 -23
  174. package/src/node/body.js +23 -0
  175. package/src/node/combinator.js +9 -0
  176. package/src/node/constructor.js +9 -0
  177. package/src/node/declaration/combinator.js +5 -5
  178. package/src/node/declaration/constructor.js +8 -8
  179. package/src/node/declaration/property.js +14 -14
  180. package/src/node/declaration/simpleType.js +31 -31
  181. package/src/node/declaration/variable.js +7 -7
  182. package/src/node/equality.js +7 -7
  183. package/src/node/frame.js +21 -21
  184. package/src/node/header.js +22 -22
  185. package/src/node/metaLemmaMetaTheorem.js +14 -14
  186. package/src/node/metavariable.js +14 -14
  187. package/src/node/property.js +7 -7
  188. package/src/node/propertyRelation.js +7 -7
  189. package/src/node/rule.js +15 -15
  190. package/src/node/statement.js +12 -12
  191. package/src/node/step.js +21 -21
  192. package/src/node/subproof.js +7 -7
  193. package/src/node/substitution/frame.js +18 -18
  194. package/src/node/substitution/statement.js +18 -18
  195. package/src/node/substitution/term.js +18 -18
  196. package/src/node/term.js +34 -34
  197. package/src/preamble.js +4 -4
  198. package/src/process/instantiate.js +12 -0
  199. package/src/process/unify.js +53 -57
  200. package/src/process/validate.js +316 -0
  201. package/src/process/verify.js +50 -138
  202. package/src/types.js +18 -0
  203. package/src/utilities/brackets.js +10 -6
  204. package/src/utilities/element.js +138 -91
  205. package/src/utilities/instance.js +18 -18
  206. package/src/utilities/statement.js +27 -28
  207. package/src/utilities/string.js +34 -20
  208. package/src/{mixins/step/unify.js → utilities/unification.js} +82 -68
  209. package/src/utilities/validation.js +369 -0
  210. package/lib/element/statement/combinator.js +0 -105
  211. package/lib/element/term/constructor.js +0 -172
  212. package/lib/mixins/statement/verify.js +0 -198
  213. package/lib/mixins/step/unify.js +0 -228
  214. package/lib/mixins/term/verify.js +0 -65
  215. package/src/element/statement/combinator.js +0 -59
  216. package/src/mixins/statement/verify.js +0 -295
  217. package/src/mixins/term/verify.js +0 -81
@@ -1,105 +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 _elements = require("../../elements");
12
- var _unify = require("../../process/unify");
13
- var _json = require("../../utilities/json");
14
- function _class_call_check(instance, Constructor) {
15
- if (!(instance instanceof Constructor)) {
16
- throw new TypeError("Cannot call a class as a function");
17
- }
18
- }
19
- function _defineProperties(target, props) {
20
- for(var i = 0; i < props.length; i++){
21
- var descriptor = props[i];
22
- descriptor.enumerable = descriptor.enumerable || false;
23
- descriptor.configurable = true;
24
- if ("value" in descriptor) descriptor.writable = true;
25
- Object.defineProperty(target, descriptor.key, descriptor);
26
- }
27
- }
28
- function _create_class(Constructor, protoProps, staticProps) {
29
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
30
- if (staticProps) _defineProperties(Constructor, staticProps);
31
- return Constructor;
32
- }
33
- function _define_property(obj, key, value) {
34
- if (key in obj) {
35
- Object.defineProperty(obj, key, {
36
- value: value,
37
- enumerable: true,
38
- configurable: true,
39
- writable: true
40
- });
41
- } else {
42
- obj[key] = value;
43
- }
44
- return obj;
45
- }
46
- var _CombinatorStatement;
47
- var _default = (0, _elements.define)((_CombinatorStatement = /*#__PURE__*/ function() {
48
- function CombinatorStatement(statement) {
49
- _class_call_check(this, CombinatorStatement);
50
- this.statement = statement;
51
- }
52
- _create_class(CombinatorStatement, [
53
- {
54
- key: "getStatement",
55
- value: function getStatement() {
56
- return this.statement;
57
- }
58
- },
59
- {
60
- key: "getString",
61
- value: function getString() {
62
- return this.statement.getString();
63
- }
64
- },
65
- {
66
- key: "getStatementNode",
67
- value: function getStatementNode() {
68
- var statementNode = this.statement.getNode();
69
- return statementNode;
70
- }
71
- },
72
- {
73
- key: "unifyStatement",
74
- value: function unifyStatement(statement, assignments, stated, context) {
75
- var statementUnifies;
76
- var statementString = statement.getString(), combinatorStatementString = this.getString();
77
- context.trace("Unifying the '".concat(statementString, "' statement with the '").concat(combinatorStatementString, "' combinator's statement..."));
78
- var combinatorStatement = this, statementUnifiesWithCombinator = (0, _unify.unifyStatementWithCombinatorStatement)(statement, combinatorStatement, assignments, stated, context);
79
- statementUnifies = statementUnifiesWithCombinator; ///
80
- if (statementUnifies) {
81
- context.debug("...unified the '".concat(statementString, "' statement with the '").concat(combinatorStatementString, "' combinator's statement."));
82
- }
83
- return statementUnifies;
84
- }
85
- },
86
- {
87
- key: "toJSON",
88
- value: function toJSON() {
89
- var statementJSON = (0, _json.statementToStatementJSON)(this.statement), json = statementJSON;
90
- return json;
91
- }
92
- }
93
- ], [
94
- {
95
- key: "fromJSON",
96
- value: function fromJSON(json, context) {
97
- var statement = (0, _json.statementFromJSON)(json, context), combinator = new CombinatorStatement(statement);
98
- return combinator;
99
- }
100
- }
101
- ]);
102
- return CombinatorStatement;
103
- }(), _define_property(_CombinatorStatement, "name", "CombinatorStatement"), _CombinatorStatement));
104
-
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3N0YXRlbWVudC9jb21iaW5hdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3JTdGF0ZW1lbnQgfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy91bmlmeVwiO1xuaW1wb3J0IHsgc3RhdGVtZW50RnJvbUpTT04sIHN0YXRlbWVudFRvU3RhdGVtZW50SlNPTiB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvanNvblwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgQ29tYmluYXRvclN0YXRlbWVudCB7XG4gIGNvbnN0cnVjdG9yKHN0YXRlbWVudCkge1xuICAgIHRoaXMuc3RhdGVtZW50ID0gc3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN0cmluZygpIHsgcmV0dXJuIHRoaXMuc3RhdGVtZW50LmdldFN0cmluZygpOyB9XG5cbiAgZ2V0U3RhdGVtZW50Tm9kZSgpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gdGhpcy5zdGF0ZW1lbnQuZ2V0Tm9kZSgpO1xuXG4gICAgcmV0dXJuIHN0YXRlbWVudE5vZGU7XG4gIH1cblxuICB1bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpIHtcbiAgICBsZXQgc3RhdGVtZW50VW5pZmllcztcblxuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBjb21iaW5hdG9yU3RhdGVtZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7Y29tYmluYXRvclN0YXRlbWVudFN0cmluZ30nIGNvbWJpbmF0b3IncyBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIGNvbnN0IGNvbWJpbmF0b3JTdGF0ZW1lbnQgPSB0aGlzLCAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVzV2l0aENvbWJpbmF0b3IgPSB1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9yU3RhdGVtZW50KHN0YXRlbWVudCwgY29tYmluYXRvclN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRVbmlmaWVzID0gc3RhdGVtZW50VW5pZmllc1dpdGhDb21iaW5hdG9yOyAvLy9cblxuICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7Y29tYmluYXRvclN0YXRlbWVudFN0cmluZ30nIGNvbWJpbmF0b3IncyBzdGF0ZW1lbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50SlNPTiA9IHN0YXRlbWVudFRvU3RhdGVtZW50SlNPTih0aGlzLnN0YXRlbWVudCksXG4gICAgICAgICAganNvbiA9IHN0YXRlbWVudEpTT047XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJDb21iaW5hdG9yU3RhdGVtZW50XCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICBjb21iaW5hdG9yID0gbmV3IENvbWJpbmF0b3JTdGF0ZW1lbnQoc3RhdGVtZW50KTtcblxuICAgIHJldHVybiBjb21iaW5hdG9yO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJDb21iaW5hdG9yU3RhdGVtZW50Iiwic3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50IiwiZ2V0U3RyaW5nIiwiZ2V0U3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudE5vZGUiLCJnZXROb2RlIiwidW5pZnlTdGF0ZW1lbnQiLCJhc3NpZ25tZW50cyIsInN0YXRlZCIsImNvbnRleHQiLCJzdGF0ZW1lbnRVbmlmaWVzIiwic3RhdGVtZW50U3RyaW5nIiwiY29tYmluYXRvclN0YXRlbWVudFN0cmluZyIsInRyYWNlIiwiY29tYmluYXRvclN0YXRlbWVudCIsInN0YXRlbWVudFVuaWZpZXNXaXRoQ29tYmluYXRvciIsInVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3JTdGF0ZW1lbnQiLCJkZWJ1ZyIsInRvSlNPTiIsInN0YXRlbWVudEpTT04iLCJzdGF0ZW1lbnRUb1N0YXRlbWVudEpTT04iLCJqc29uIiwiZnJvbUpTT04iLCJzdGF0ZW1lbnRGcm9tSlNPTiIsImNvbWJpbmF0b3IiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQUE7Ozt3QkFKdUI7cUJBQytCO29CQUNNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBRTVELFdBQWVBLElBQUFBLGdCQUFNLHdDQUFDO2FBQU1DLG9CQUNkQyxTQUFTO2dDQURLRDtRQUV4QixJQUFJLENBQUNDLFNBQVMsR0FBR0E7Ozs7WUFHbkJDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0QsU0FBUztZQUN2Qjs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFBYyxPQUFPLElBQUksQ0FBQ0YsU0FBUyxDQUFDRSxTQUFTO1lBQUk7OztZQUVqREMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLGdCQUFnQixJQUFJLENBQUNKLFNBQVMsQ0FBQ0ssT0FBTztnQkFFNUMsT0FBT0Q7WUFDVDs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSxlQUFlTixTQUFTLEVBQUVPLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxPQUFPO2dCQUNwRCxJQUFJQztnQkFFSixJQUFNQyxrQkFBa0JYLFVBQVVFLFNBQVMsSUFDckNVLDRCQUE0QixJQUFJLENBQUNWLFNBQVM7Z0JBRWhETyxRQUFRSSxLQUFLLENBQUMsQUFBQyxpQkFBd0RELE9BQXhDRCxpQkFBZ0IsMEJBQWtELE9BQTFCQywyQkFBMEI7Z0JBRWpHLElBQU1FLHNCQUFzQixJQUFJLEVBQzFCQyxpQ0FBaUNDLElBQUFBLDRDQUFxQyxFQUFDaEIsV0FBV2MscUJBQXFCUCxhQUFhQyxRQUFRQztnQkFFbElDLG1CQUFtQkssZ0NBQWdDLEdBQUc7Z0JBRXRELElBQUlMLGtCQUFrQjtvQkFDcEJELFFBQVFRLEtBQUssQ0FBQyxBQUFDLG1CQUEwREwsT0FBeENELGlCQUFnQiwwQkFBa0QsT0FBMUJDLDJCQUEwQjtnQkFDckc7Z0JBRUEsT0FBT0Y7WUFDVDs7O1lBRUFRLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxnQkFBZ0JDLElBQUFBLDhCQUF3QixFQUFDLElBQUksQ0FBQ3BCLFNBQVMsR0FDdkRxQixPQUFPRjtnQkFFYixPQUFPRTtZQUNUOzs7O1lBSU9DLEtBQUFBO21CQUFQLFNBQU9BLFNBQVNELElBQUksRUFBRVosT0FBTztnQkFDM0IsSUFBTVQsWUFBWXVCLElBQUFBLHVCQUFpQixFQUFDRixNQUFNWixVQUNwQ2UsYUFBYSxJQUFJekIsb0JBQW9CQztnQkFFM0MsT0FBT3dCO1lBQ1Q7Ozs7S0FQQSx1Q0FBT0MsUUFBTyJ9
@@ -1,172 +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 _elements = /*#__PURE__*/ _interop_require_wildcard(require("../../elements"));
12
- var _unify = require("../../process/unify");
13
- var _json = require("../../utilities/json");
14
- function _class_call_check(instance, Constructor) {
15
- if (!(instance instanceof Constructor)) {
16
- throw new TypeError("Cannot call a class as a function");
17
- }
18
- }
19
- function _defineProperties(target, props) {
20
- for(var i = 0; i < props.length; i++){
21
- var descriptor = props[i];
22
- descriptor.enumerable = descriptor.enumerable || false;
23
- descriptor.configurable = true;
24
- if ("value" in descriptor) descriptor.writable = true;
25
- Object.defineProperty(target, descriptor.key, descriptor);
26
- }
27
- }
28
- function _create_class(Constructor, protoProps, staticProps) {
29
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
30
- if (staticProps) _defineProperties(Constructor, staticProps);
31
- return Constructor;
32
- }
33
- function _define_property(obj, key, value) {
34
- if (key in obj) {
35
- Object.defineProperty(obj, key, {
36
- value: value,
37
- enumerable: true,
38
- configurable: true,
39
- writable: true
40
- });
41
- } else {
42
- obj[key] = value;
43
- }
44
- return obj;
45
- }
46
- function _getRequireWildcardCache(nodeInterop) {
47
- if (typeof WeakMap !== "function") return null;
48
- var cacheBabelInterop = new WeakMap();
49
- var cacheNodeInterop = new WeakMap();
50
- return (_getRequireWildcardCache = function(nodeInterop) {
51
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
52
- })(nodeInterop);
53
- }
54
- function _interop_require_wildcard(obj, nodeInterop) {
55
- if (!nodeInterop && obj && obj.__esModule) {
56
- return obj;
57
- }
58
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
59
- return {
60
- default: obj
61
- };
62
- }
63
- var cache = _getRequireWildcardCache(nodeInterop);
64
- if (cache && cache.has(obj)) {
65
- return cache.get(obj);
66
- }
67
- var newObj = {
68
- __proto__: null
69
- };
70
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
71
- for(var key in obj){
72
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
73
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
74
- if (desc && (desc.get || desc.set)) {
75
- Object.defineProperty(newObj, key, desc);
76
- } else {
77
- newObj[key] = obj[key];
78
- }
79
- }
80
- }
81
- newObj.default = obj;
82
- if (cache) {
83
- cache.set(obj, newObj);
84
- }
85
- return newObj;
86
- }
87
- var _ConstructorTerm;
88
- var _default = (0, _elements.define)((_ConstructorTerm = /*#__PURE__*/ function() {
89
- function ConstructorTerm(term) {
90
- _class_call_check(this, ConstructorTerm);
91
- this.term = term;
92
- }
93
- _create_class(ConstructorTerm, [
94
- {
95
- key: "getTerm",
96
- value: function getTerm() {
97
- return this.term;
98
- }
99
- },
100
- {
101
- key: "getType",
102
- value: function getType() {
103
- return this.term.getType();
104
- }
105
- },
106
- {
107
- key: "getString",
108
- value: function getString() {
109
- return this.term.getString();
110
- }
111
- },
112
- {
113
- key: "isProvisional",
114
- value: function isProvisional() {
115
- return this.term.isProvisional();
116
- }
117
- },
118
- {
119
- key: "setType",
120
- value: function setType(type) {
121
- this.term.setType(type);
122
- }
123
- },
124
- {
125
- key: "unifyTerm",
126
- value: function unifyTerm(term, context, verifyAhead) {
127
- var termUnifies = false;
128
- var termString = term.getString(), constructorTermString = this.getString();
129
- context.trace("Unifying the '".concat(termString, "' term with the '").concat(constructorTermString, "' constructor's term..."));
130
- var constructorTerm = this, termUnifiesWithConstructor = (0, _unify.unifyTermWithConstructorTerm)(term, constructorTerm, context);
131
- if (termUnifiesWithConstructor) {
132
- var verifiesAhead;
133
- var type = this.getType();
134
- term.setType(type);
135
- verifiesAhead = verifyAhead();
136
- termUnifies = verifiesAhead; ///
137
- }
138
- if (termUnifies) {
139
- context.debug("...unified the '".concat(termString, "' term with the '").concat(constructorTermString, "' constructor's term."));
140
- }
141
- return termUnifies;
142
- }
143
- },
144
- {
145
- key: "toJSON",
146
- value: function toJSON() {
147
- var termJSON = (0, _json.termToTermJSON)(this.term), term = termJSON, json = {
148
- term: term
149
- };
150
- return json;
151
- }
152
- }
153
- ], [
154
- {
155
- key: "fromJSON",
156
- value: function fromJSON(json, context) {
157
- var term = (0, _json.termFromJSON)(json, context), constructor = new ConstructorTerm(term);
158
- return constructor;
159
- }
160
- },
161
- {
162
- key: "fromConstructorDeclarationNode",
163
- value: function fromConstructorDeclarationNode(constructorDeclarationNode, context) {
164
- var Term = _elements.default.Term, term = Term.fromConstructorDeclarationNode(constructorDeclarationNode, context), constructor = new ConstructorTerm(term);
165
- return constructor;
166
- }
167
- }
168
- ]);
169
- return ConstructorTerm;
170
- }(), _define_property(_ConstructorTerm, "name", "ConstructorTerm"), _ConstructorTerm));
171
-
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Rlcm0vY29uc3RydWN0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyB1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3JUZXJtIH0gZnJvbSBcIi4uLy4uL3Byb2Nlc3MvdW5pZnlcIjtcbmltcG9ydCB7IHRlcm1Gcm9tSlNPTiwgdGVybVRvVGVybUpTT04gfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIENvbnN0cnVjdG9yVGVybSB7XG4gIGNvbnN0cnVjdG9yKHRlcm0pIHtcbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICB9XG5cbiAgZ2V0VGVybSgpIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHsgcmV0dXJuIHRoaXMudGVybS5nZXRUeXBlKCk7IH1cblxuICBnZXRTdHJpbmcoKSB7IHJldHVybiB0aGlzLnRlcm0uZ2V0U3RyaW5nKCk7IH1cblxuICBpc1Byb3Zpc2lvbmFsKCkgeyByZXR1cm4gdGhpcy50ZXJtLmlzUHJvdmlzaW9uYWwoKTsgfVxuXG4gIHNldFR5cGUodHlwZSkgeyB0aGlzLnRlcm0uc2V0VHlwZSh0eXBlKTsgfVxuXG4gIHVuaWZ5VGVybSh0ZXJtLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICAgIGxldCB0ZXJtVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgY29uc3RydWN0b3JUZXJtU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHtjb25zdHJ1Y3RvclRlcm1TdHJpbmd9JyBjb25zdHJ1Y3RvcidzIHRlcm0uLi5gKTtcblxuICAgIGNvbnN0IGNvbnN0cnVjdG9yVGVybSA9IHRoaXMsIC8vL1xuICAgICAgICAgIHRlcm1VbmlmaWVzV2l0aENvbnN0cnVjdG9yID0gdW5pZnlUZXJtV2l0aENvbnN0cnVjdG9yVGVybSh0ZXJtLCBjb25zdHJ1Y3RvclRlcm0sIGNvbnRleHQpO1xuXG4gICAgaWYgKHRlcm1VbmlmaWVzV2l0aENvbnN0cnVjdG9yKSB7XG4gICAgICBsZXQgdmVyaWZpZXNBaGVhZDtcblxuICAgICAgY29uc3QgdHlwZSA9IHRoaXMuZ2V0VHlwZSgpO1xuXG4gICAgICB0ZXJtLnNldFR5cGUodHlwZSk7XG5cbiAgICAgIHZlcmlmaWVzQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgICB0ZXJtVW5pZmllcyA9IHZlcmlmaWVzQWhlYWQ7ICAvLy9cbiAgICB9XG5cbiAgICBpZiAodGVybVVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdpdGggdGhlICcke2NvbnN0cnVjdG9yVGVybVN0cmluZ30nIGNvbnN0cnVjdG9yJ3MgdGVybS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybVVuaWZpZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdGVybUpTT04gPSB0ZXJtVG9UZXJtSlNPTih0aGlzLnRlcm0pLFxuICAgICAgICAgIHRlcm0gPSB0ZXJtSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB0ZXJtXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkNvbnN0cnVjdG9yVGVybVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdGVybSA9IHRlcm1Gcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICBjb25zdHJ1Y3RvciA9IG5ldyBDb25zdHJ1Y3RvclRlcm0odGVybSk7XG5cbiAgICByZXR1cm4gY29uc3RydWN0b3I7XG4gIH1cblxuICBzdGF0aWMgZnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyBUZXJtIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICB0ZXJtID0gVGVybS5mcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUoY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgIGNvbnN0cnVjdG9yID0gbmV3IENvbnN0cnVjdG9yVGVybSh0ZXJtKTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcjtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiQ29uc3RydWN0b3JUZXJtIiwidGVybSIsImdldFRlcm0iLCJnZXRUeXBlIiwiZ2V0U3RyaW5nIiwiaXNQcm92aXNpb25hbCIsInNldFR5cGUiLCJ0eXBlIiwidW5pZnlUZXJtIiwiY29udGV4dCIsInZlcmlmeUFoZWFkIiwidGVybVVuaWZpZXMiLCJ0ZXJtU3RyaW5nIiwiY29uc3RydWN0b3JUZXJtU3RyaW5nIiwidHJhY2UiLCJjb25zdHJ1Y3RvclRlcm0iLCJ0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3RvciIsInVuaWZ5VGVybVdpdGhDb25zdHJ1Y3RvclRlcm0iLCJ2ZXJpZmllc0FoZWFkIiwiZGVidWciLCJ0b0pTT04iLCJ0ZXJtSlNPTiIsInRlcm1Ub1Rlcm1KU09OIiwianNvbiIsImZyb21KU09OIiwidGVybUZyb21KU09OIiwiY29uc3RydWN0b3IiLCJmcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsIlRlcm0iLCJlbGVtZW50cyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFB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
@@ -1,198 +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 _elements = /*#__PURE__*/ _interop_require_default(require("../../elements"));
12
- var _statement = require("../../utilities/statement");
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
18
- function verifyAsMetavariableAndSubstitution(statement, assignments, stated, context) {
19
- var verifiesAsMetavariableAndSubstitution = false;
20
- var metavariable = (0, _statement.metavariableFromStatement)(statement, context);
21
- if (metavariable !== null) {
22
- var statementString = statement.getString();
23
- context.trace("Verifying the '".concat(statementString, "' statement as a metavariable and substitution..."));
24
- var metavariableVerifies = metavariable.verify(context);
25
- if (metavariableVerifies) {
26
- var TermSubstitution = _elements.default.TermSubstitution, FrameSubstitution = _elements.default.FrameSubstitution, frameSubstitution = FrameSubstitution.fromStatement(statement, context), termSubstitution = TermSubstitution.fromStatement(statement, context), substitution = termSubstitution || frameSubstitution;
27
- if (substitution !== null) {
28
- var substitutionVerifies = substitution.verify(context);
29
- if (substitutionVerifies) {
30
- verifiesAsMetavariableAndSubstitution = true;
31
- }
32
- } else {
33
- verifiesAsMetavariableAndSubstitution = true;
34
- }
35
- }
36
- if (verifiesAsMetavariableAndSubstitution) {
37
- context.debug("...verified the '".concat(statementString, "' statement as a metavariable and substitution."));
38
- }
39
- }
40
- return verifiesAsMetavariableAndSubstitution;
41
- }
42
- function unifyWithBracketedCombinator(statement, assignments, stated, context) {
43
- stated = true; ///
44
- assignments = null; ///
45
- var BracketedCombinator = _elements.default.BracketedCombinator, bracketedCombinator = BracketedCombinator.fromNothing(), unifiesWithBracketedCombinator = bracketedCombinator.unifyStatement(statement, assignments, stated, context);
46
- return unifiesWithBracketedCombinator;
47
- }
48
- function unifyWithCombinators(statement, assignments, stated, context) {
49
- stated = true; ///
50
- assignments = null; ///
51
- var combinators = context.getCombinators(), unifiesWithCombinators = combinators.some(function(combinator) {
52
- var unifiesWithCombinator = combinator.unifyStatement(statement, assignments, stated, context);
53
- if (unifiesWithCombinator) {
54
- return true;
55
- }
56
- });
57
- return unifiesWithCombinators;
58
- }
59
- function verifyAsEquality(statement, assignments, stated, context) {
60
- var verifiesAsEquality = false;
61
- var equality = (0, _statement.equalityFromStatement)(statement, context);
62
- if (equality !== null) {
63
- var statementString = statement.getString();
64
- context.trace("Verifying the '".concat(statementString, "' statement as an equality..."));
65
- var equalityVerifies = equality.verify(assignments, stated, context);
66
- verifiesAsEquality = equalityVerifies; ///
67
- if (verifiesAsEquality) {
68
- context.debug("...verified the '".concat(statementString, "' statement as an equality."));
69
- }
70
- }
71
- return verifiesAsEquality;
72
- }
73
- function verifyAsJudgement(statement, assignments, stated, context) {
74
- var verifiesAsJudgement = false;
75
- var judgement = (0, _statement.judgementFromStatement)(statement, context);
76
- if (judgement !== null) {
77
- var statementString = statement.getString();
78
- context.trace("Verifying the '".concat(statementString, "' statement as a judgement..."));
79
- var judgementVerifies = judgement.verify(assignments, stated, context);
80
- verifiesAsJudgement = judgementVerifies; ///
81
- if (verifiesAsJudgement) {
82
- context.debug("...verified the '".concat(statementString, "' statement as a judgement."));
83
- }
84
- }
85
- return verifiesAsJudgement;
86
- }
87
- function verifyAsTypeAssertion(statement, assignments, stated, context) {
88
- var verifiesAsTypeAssertion = false;
89
- var typeAssertion = (0, _statement.typeAssertionFromStatement)(statement, context);
90
- if (typeAssertion !== null) {
91
- var statementString = statement.getString();
92
- context.trace("Verifying the '".concat(statementString, "' statement as a type assertion..."));
93
- var typeAssertionVerifies = typeAssertion.verify(assignments, stated, context);
94
- verifiesAsTypeAssertion = typeAssertionVerifies; ///
95
- if (verifiesAsTypeAssertion) {
96
- var assertion = typeAssertion; ///
97
- context.addAssertion(assertion);
98
- context.debug("...verified the '".concat(statementString, "' statement as a type assertion."));
99
- }
100
- }
101
- return verifiesAsTypeAssertion;
102
- }
103
- function verifyAsDefinedAssertion(statement, assignments, stated, context) {
104
- var verifiesAsDefinedAssertion = false;
105
- var definedAssertion = (0, _statement.definedAssertionFromStatement)(statement, context);
106
- if (definedAssertion !== null) {
107
- var statementString = statement.getString();
108
- context.trace("Verifying the '".concat(statementString, "' statement as a defined assertion..."));
109
- var definedAssertionVerifies = definedAssertion.verify(assignments, stated, context);
110
- verifiesAsDefinedAssertion = definedAssertionVerifies; ///
111
- if (verifiesAsDefinedAssertion) {
112
- var assertion = definedAssertion; ///
113
- context.addAssertion(assertion);
114
- context.debug("...verified the '".concat(statementString, "' statement as a defined assertion."));
115
- }
116
- }
117
- return verifiesAsDefinedAssertion;
118
- }
119
- function verifyAsPropertyAssertion(statement, assignments, stated, context) {
120
- var verifiesAsPropertyAssertion = false;
121
- var propertyAssertion = (0, _statement.propertyAssertionFromStatement)(statement, context);
122
- if (propertyAssertion !== null) {
123
- var statementString = statement.getString();
124
- context.trace("Verifying the '".concat(statementString, "' statement as a property assertion..."));
125
- var propertyAssertionVerifies = propertyAssertion.verify(assignments, stated, context);
126
- verifiesAsPropertyAssertion = propertyAssertionVerifies; ///
127
- if (verifiesAsPropertyAssertion) {
128
- var assertion = propertyAssertion; ///
129
- context.addAssertion(assertion);
130
- context.debug("...verified the '".concat(statementString, "' statement as a property assertion."));
131
- }
132
- }
133
- return verifiesAsPropertyAssertion;
134
- }
135
- function verifyAsSubproofAssertion(statement, assignments, stated, context) {
136
- var verifiesAsSubproofAssertion = false;
137
- var subproofAssertion = (0, _statement.subproofAssertionFromStatement)(statement, context);
138
- if (subproofAssertion !== null) {
139
- var statementString = statement.getString();
140
- context.trace("Verifying the '".concat(statementString, "' statement as a subproof assertion..."));
141
- var subproofAssertionVerifies = subproofAssertion.verify(assignments, stated, context);
142
- verifiesAsSubproofAssertion = subproofAssertionVerifies; ///
143
- if (verifiesAsSubproofAssertion) {
144
- var assertion = subproofAssertion; ///
145
- context.addAssertion(assertion);
146
- context.debug("...verified the '".concat(statementString, "' statement as a subproof assertion."));
147
- }
148
- }
149
- return verifiesAsSubproofAssertion;
150
- }
151
- function verifyAsContainedAssertion(statement, assignments, stated, context) {
152
- var verifiesAsContainedAssertion = false;
153
- var containedAssertion = (0, _statement.containedAssertionFromStatement)(statement, context);
154
- if (containedAssertion !== null) {
155
- var statementString = statement.getString();
156
- context.trace("Verifying the '".concat(statementString, "' statement as a contained assertion..."));
157
- var containedAssertionVerifies = containedAssertion.verify(assignments, stated, context);
158
- verifiesAsContainedAssertion = containedAssertionVerifies; ///
159
- if (verifiesAsContainedAssertion) {
160
- var assertion = containedAssertion; ///
161
- context.addAssertion(assertion);
162
- context.debug("...verified the '".concat(statementString, "' statement as a contained assertion."));
163
- }
164
- }
165
- return verifiesAsContainedAssertion;
166
- }
167
- function verifyAsSatisfiesAssertion(statement, assignments, stated, context) {
168
- var verifiesAsSatisfiesAssertion = false;
169
- var satisfiesAssertion = (0, _statement.satisfiesAssertionFromStatement)(statement, context);
170
- if (satisfiesAssertion !== null) {
171
- var statementString = statement.getString();
172
- context.trace("Verifying the '".concat(statementString, "' statement as a satisfies assertion..."));
173
- var satisfiesAssertionVerifies = satisfiesAssertion.verify(assignments, stated, context);
174
- verifiesAsSatisfiesAssertion = satisfiesAssertionVerifies; ///
175
- if (verifiesAsSatisfiesAssertion) {
176
- var assertion = satisfiesAssertion; ///
177
- context.addAssertion(assertion);
178
- context.debug("...verified the '".concat(statementString, "' statement as a satisfies assertion."));
179
- }
180
- }
181
- return verifiesAsSatisfiesAssertion;
182
- }
183
- var verifyMixins = [
184
- verifyAsMetavariableAndSubstitution,
185
- unifyWithBracketedCombinator,
186
- unifyWithCombinators,
187
- verifyAsEquality,
188
- verifyAsJudgement,
189
- verifyAsTypeAssertion,
190
- verifyAsDefinedAssertion,
191
- verifyAsPropertyAssertion,
192
- verifyAsSubproofAssertion,
193
- verifyAsContainedAssertion,
194
- verifyAsSatisfiesAssertion
195
- ];
196
- var _default = verifyMixins;
197
-
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9taXhpbnMvc3RhdGVtZW50L3ZlcmlmeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBlcXVhbGl0eUZyb21TdGF0ZW1lbnQsXG4gICAgICAgICBqdWRnZW1lbnRGcm9tU3RhdGVtZW50LFxuICAgICAgICAgbWV0YXZhcmlhYmxlRnJvbVN0YXRlbWVudCxcbiAgICAgICAgIHR5cGVBc3NlcnRpb25Gcm9tU3RhdGVtZW50LFxuICAgICAgICAgZGVmaW5lZEFzc2VydGlvbkZyb21TdGF0ZW1lbnQsXG4gICAgICAgICBwcm9wZXJ0eUFzc2VydGlvbkZyb21TdGF0ZW1lbnQsXG4gICAgICAgICBzdWJwcm9vZkFzc2VydGlvbkZyb21TdGF0ZW1lbnQsXG4gICAgICAgICBjb250YWluZWRBc3NlcnRpb25Gcm9tU3RhdGVtZW50LFxuICAgICAgICAgc2F0aXNmaWVzQXNzZXJ0aW9uRnJvbVN0YXRlbWVudCB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvc3RhdGVtZW50XCI7XG5cbmZ1bmN0aW9uIHZlcmlmeUFzTWV0YXZhcmlhYmxlQW5kU3Vic3RpdHV0aW9uKHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCkge1xuICBsZXQgdmVyaWZpZXNBc01ldGF2YXJpYWJsZUFuZFN1YnN0aXR1dGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZUZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICBpZiAobWV0YXZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBtZXRhdmFyaWFibGUgYW5kIHN1YnN0aXR1dGlvbi4uLmApO1xuXG4gICAgY29uc3QgbWV0YXZhcmlhYmxlVmVyaWZpZXMgPSBtZXRhdmFyaWFibGUudmVyaWZ5KGNvbnRleHQpO1xuXG4gICAgaWYgKG1ldGF2YXJpYWJsZVZlcmlmaWVzKSB7XG4gICAgICBjb25zdCB7IFRlcm1TdWJzdGl0dXRpb24sIEZyYW1lU3Vic3RpdHV0aW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICAgIGZyYW1lU3Vic3RpdHV0aW9uID0gRnJhbWVTdWJzdGl0dXRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpLFxuICAgICAgICAgICAgdGVybVN1YnN0aXR1dGlvbiA9IFRlcm1TdWJzdGl0dXRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpLFxuICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gKHRlcm1TdWJzdGl0dXRpb24gfHwgZnJhbWVTdWJzdGl0dXRpb24pO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvblZlcmlmaWVzID0gc3Vic3RpdHV0aW9uLnZlcmlmeShjb250ZXh0KTtcblxuICAgICAgICBpZiAoc3Vic3RpdHV0aW9uVmVyaWZpZXMpIHtcbiAgICAgICAgICB2ZXJpZmllc0FzTWV0YXZhcmlhYmxlQW5kU3Vic3RpdHV0aW9uID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmVyaWZpZXNBc01ldGF2YXJpYWJsZUFuZFN1YnN0aXR1dGlvbiA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzQXNNZXRhdmFyaWFibGVBbmRTdWJzdGl0dXRpb24pIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBtZXRhdmFyaWFibGUgYW5kIHN1YnN0aXR1dGlvbi5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmVyaWZpZXNBc01ldGF2YXJpYWJsZUFuZFN1YnN0aXR1dGlvbjtcbn1cblxuZnVuY3Rpb24gdW5pZnlXaXRoQnJhY2tldGVkQ29tYmluYXRvcihzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpIHtcbiAgc3RhdGVkID0gdHJ1ZTsgIC8vL1xuXG4gIGFzc2lnbm1lbnRzID0gbnVsbDsgLy8vXG5cbiAgY29uc3QgeyBCcmFja2V0ZWRDb21iaW5hdG9yIH0gPSBlbGVtZW50cyxcbiAgICAgICAgYnJhY2tldGVkQ29tYmluYXRvciA9IEJyYWNrZXRlZENvbWJpbmF0b3IuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgdW5pZmllc1dpdGhCcmFja2V0ZWRDb21iaW5hdG9yID0gYnJhY2tldGVkQ29tYmluYXRvci51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gIHJldHVybiB1bmlmaWVzV2l0aEJyYWNrZXRlZENvbWJpbmF0b3I7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5V2l0aENvbWJpbmF0b3JzKHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCkge1xuICBzdGF0ZWQgPSB0cnVlOyAgLy8vXG5cbiAgYXNzaWdubWVudHMgPSBudWxsOyAvLy9cblxuICBjb25zdCBjb21iaW5hdG9ycyA9IGNvbnRleHQuZ2V0Q29tYmluYXRvcnMoKSxcbiAgICAgICAgdW5pZmllc1dpdGhDb21iaW5hdG9ycyA9IGNvbWJpbmF0b3JzLnNvbWUoKGNvbWJpbmF0b3IpID0+IHtcbiAgICAgICAgICBjb25zdCB1bmlmaWVzV2l0aENvbWJpbmF0b3IgPSBjb21iaW5hdG9yLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAodW5pZmllc1dpdGhDb21iaW5hdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gIHJldHVybiB1bmlmaWVzV2l0aENvbWJpbmF0b3JzO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBc0VxdWFsaXR5KHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCkge1xuICBsZXQgdmVyaWZpZXNBc0VxdWFsaXR5ID0gZmFsc2U7XG5cbiAgY29uc3QgZXF1YWxpdHkgPSBlcXVhbGl0eUZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICBpZiAoZXF1YWxpdHkgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhbiBlcXVhbGl0eS4uLmApO1xuXG4gICAgY29uc3QgZXF1YWxpdHlWZXJpZmllcyA9IGVxdWFsaXR5LnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KTtcblxuICAgIHZlcmlmaWVzQXNFcXVhbGl0eSA9IGVxdWFsaXR5VmVyaWZpZXM7IC8vL1xuXG4gICAgaWYgKHZlcmlmaWVzQXNFcXVhbGl0eSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhbiBlcXVhbGl0eS5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmVyaWZpZXNBc0VxdWFsaXR5O1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBc0p1ZGdlbWVudChzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpIHtcbiAgbGV0IHZlcmlmaWVzQXNKdWRnZW1lbnQgPSBmYWxzZTtcblxuICBjb25zdCBqdWRnZW1lbnQgPSBqdWRnZW1lbnRGcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgaWYgKGp1ZGdlbWVudCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEganVkZ2VtZW50Li4uYCk7XG5cbiAgICBjb25zdCBqdWRnZW1lbnRWZXJpZmllcyA9IGp1ZGdlbWVudC52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICB2ZXJpZmllc0FzSnVkZ2VtZW50ID0ganVkZ2VtZW50VmVyaWZpZXM7ICAvLy9cblxuICAgIGlmICh2ZXJpZmllc0FzSnVkZ2VtZW50KSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEganVkZ2VtZW50LmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJpZmllc0FzSnVkZ2VtZW50O1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBc1R5cGVBc3NlcnRpb24oc3RhdGVtZW50LCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllc0FzVHlwZUFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IHR5cGVBc3NlcnRpb24gPSB0eXBlQXNzZXJ0aW9uRnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmICh0eXBlQXNzZXJ0aW9uICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSB0eXBlIGFzc2VydGlvbi4uLmApO1xuXG4gICAgY29uc3QgdHlwZUFzc2VydGlvblZlcmlmaWVzID0gdHlwZUFzc2VydGlvbi52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICB2ZXJpZmllc0FzVHlwZUFzc2VydGlvbiA9IHR5cGVBc3NlcnRpb25WZXJpZmllczsgLy8vXG5cbiAgICBpZiAodmVyaWZpZXNBc1R5cGVBc3NlcnRpb24pIHtcbiAgICAgIGNvbnN0IGFzc2VydGlvbiA9IHR5cGVBc3NlcnRpb247ICAvLy9cblxuICAgICAgY29udGV4dC5hZGRBc3NlcnRpb24oYXNzZXJ0aW9uKTtcblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJpZmllc0FzVHlwZUFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5QXNEZWZpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCkge1xuICBsZXQgdmVyaWZpZXNBc0RlZmluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBkZWZpbmVkQXNzZXJ0aW9uID0gZGVmaW5lZEFzc2VydGlvbkZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICBpZiAoZGVmaW5lZEFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uLi5gKTtcblxuICAgIGNvbnN0IGRlZmluZWRBc3NlcnRpb25WZXJpZmllcyA9IGRlZmluZWRBc3NlcnRpb24udmVyaWZ5KGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgdmVyaWZpZXNBc0RlZmluZWRBc3NlcnRpb24gPSBkZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZXM7IC8vL1xuXG4gICAgaWYgKHZlcmlmaWVzQXNEZWZpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBjb25zdCBhc3NlcnRpb24gPSBkZWZpbmVkQXNzZXJ0aW9uOyAgLy8vXG5cbiAgICAgIGNvbnRleHQuYWRkQXNzZXJ0aW9uKGFzc2VydGlvbik7XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmVyaWZpZXNBc0RlZmluZWRBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUFzUHJvcGVydHlBc3NlcnRpb24oc3RhdGVtZW50LCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllc0FzUHJvcGVydHlBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBwcm9wZXJ0eUFzc2VydGlvbiA9IHByb3BlcnR5QXNzZXJ0aW9uRnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChwcm9wZXJ0eUFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgcHJvcGVydHkgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBwcm9wZXJ0eUFzc2VydGlvblZlcmlmaWVzID0gcHJvcGVydHlBc3NlcnRpb24udmVyaWZ5KGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgdmVyaWZpZXNBc1Byb3BlcnR5QXNzZXJ0aW9uID0gcHJvcGVydHlBc3NlcnRpb25WZXJpZmllczsgLy8vXG5cbiAgICBpZiAodmVyaWZpZXNBc1Byb3BlcnR5QXNzZXJ0aW9uKSB7XG4gICAgICBjb25zdCBhc3NlcnRpb24gPSBwcm9wZXJ0eUFzc2VydGlvbjsgLy8vXG5cbiAgICAgIGNvbnRleHQuYWRkQXNzZXJ0aW9uKGFzc2VydGlvbik7XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBwcm9wZXJ0eSBhc3NlcnRpb24uYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVzQXNQcm9wZXJ0eUFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5QXNTdWJwcm9vZkFzc2VydGlvbihzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpIHtcbiAgbGV0IHZlcmlmaWVzQXNTdWJwcm9vZkFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IHN1YnByb29mQXNzZXJ0aW9uID0gc3VicHJvb2ZBc3NlcnRpb25Gcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgaWYgKHN1YnByb29mQXNzZXJ0aW9uICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBzdWJwcm9vZiBhc3NlcnRpb24uLi5gKTtcblxuICAgIGNvbnN0IHN1YnByb29mQXNzZXJ0aW9uVmVyaWZpZXMgPSBzdWJwcm9vZkFzc2VydGlvbi52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICB2ZXJpZmllc0FzU3VicHJvb2ZBc3NlcnRpb24gPSBzdWJwcm9vZkFzc2VydGlvblZlcmlmaWVzOyAvLy9cblxuICAgIGlmICh2ZXJpZmllc0FzU3VicHJvb2ZBc3NlcnRpb24pIHtcbiAgICAgIGNvbnN0IGFzc2VydGlvbiA9IHN1YnByb29mQXNzZXJ0aW9uOyAvLy9cblxuICAgICAgY29udGV4dC5hZGRBc3NlcnRpb24oYXNzZXJ0aW9uKTtcblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHN1YnByb29mIGFzc2VydGlvbi5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmVyaWZpZXNBc1N1YnByb29mQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBc0NvbnRhaW5lZEFzc2VydGlvbihzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpIHtcbiAgbGV0IHZlcmlmaWVzQXNDb250YWluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBjb250YWluZWRBc3NlcnRpb24gPSBjb250YWluZWRBc3NlcnRpb25Gcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgaWYgKGNvbnRhaW5lZEFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi4uLmApO1xuXG4gICAgY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZXMgPSBjb250YWluZWRBc3NlcnRpb24udmVyaWZ5KGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgdmVyaWZpZXNBc0NvbnRhaW5lZEFzc2VydGlvbiA9IGNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVzOyAvLy9cblxuICAgIGlmICh2ZXJpZmllc0FzQ29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBjb25zdCBhc3NlcnRpb24gPSBjb250YWluZWRBc3NlcnRpb247IC8vL1xuXG4gICAgICBjb250ZXh0LmFkZEFzc2VydGlvbihhc3NlcnRpb24pO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmVyaWZpZXNBc0NvbnRhaW5lZEFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5QXNTYXRpc2ZpZXNBc3NlcnRpb24oc3RhdGVtZW50LCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllc0FzU2F0aXNmaWVzQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3Qgc2F0aXNmaWVzQXNzZXJ0aW9uID0gc2F0aXNmaWVzQXNzZXJ0aW9uRnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChzYXRpc2ZpZXNBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHNhdGlzZmllcyBhc3NlcnRpb24uLi5gKTtcblxuICAgIGNvbnN0IHNhdGlzZmllc0Fzc2VydGlvblZlcmlmaWVzID0gc2F0aXNmaWVzQXNzZXJ0aW9uLnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KTtcblxuICAgIHZlcmlmaWVzQXNTYXRpc2ZpZXNBc3NlcnRpb24gPSBzYXRpc2ZpZXNBc3NlcnRpb25WZXJpZmllczsgLy8vXG5cbiAgICBpZiAodmVyaWZpZXNBc1NhdGlzZmllc0Fzc2VydGlvbikge1xuICAgICAgY29uc3QgYXNzZXJ0aW9uID0gc2F0aXNmaWVzQXNzZXJ0aW9uOyAvLy9cblxuICAgICAgY29udGV4dC5hZGRBc3NlcnRpb24oYXNzZXJ0aW9uKTtcblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHNhdGlzZmllcyBhc3NlcnRpb24uYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVzQXNTYXRpc2ZpZXNBc3NlcnRpb247XG59XG5cbmNvbnN0IHZlcmlmeU1peGlucyA9IFtcbiAgdmVyaWZ5QXNNZXRhdmFyaWFibGVBbmRTdWJzdGl0dXRpb24sXG4gIHVuaWZ5V2l0aEJyYWNrZXRlZENvbWJpbmF0b3IsXG4gIHVuaWZ5V2l0aENvbWJpbmF0b3JzLFxuICB2ZXJpZnlBc0VxdWFsaXR5LFxuICB2ZXJpZnlBc0p1ZGdlbWVudCxcbiAgdmVyaWZ5QXNUeXBlQXNzZXJ0aW9uLFxuICB2ZXJpZnlBc0RlZmluZWRBc3NlcnRpb24sXG4gIHZlcmlmeUFzUHJvcGVydHlBc3NlcnRpb24sXG4gIHZlcmlmeUFzU3VicHJvb2ZBc3NlcnRpb24sXG4gIHZlcmlmeUFzQ29udGFpbmVkQXNzZXJ0aW9uLFxuICB2ZXJpZnlBc1NhdGlzZmllc0Fzc2VydGlvblxuXTtcblxuZXhwb3J0IGRlZmF1bHQgdmVyaWZ5TWl4aW5zO1xuIl0sIm5hbWVzIjpbInZlcmlmeUFzTWV0YXZhcmlhYmxlQW5kU3Vic3RpdHV0aW9uIiwic3RhdGVtZW50IiwiYXNzaWdubWVudHMiLCJzdGF0ZWQiLCJjb250ZXh0IiwidmVyaWZpZXNBc01ldGF2YXJpYWJsZUFuZFN1YnN0aXR1dGlvbiIsIm1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZUZyb21TdGF0ZW1lbnQiLCJzdGF0ZW1lbnRTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsIm1ldGF2YXJpYWJsZVZlcmlmaWVzIiwidmVyaWZ5IiwiVGVybVN1YnN0aXR1dGlvbiIsImVsZW1lbnRzIiwiRnJhbWVTdWJzdGl0dXRpb24iLCJmcmFtZVN1YnN0aXR1dGlvbiIsImZyb21TdGF0ZW1lbnQiLCJ0ZXJtU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uVmVyaWZpZXMiLCJkZWJ1ZyIsInVuaWZ5V2l0aEJyYWNrZXRlZENvbWJpbmF0b3IiLCJCcmFja2V0ZWRDb21iaW5hdG9yIiwiYnJhY2tldGVkQ29tYmluYXRvciIsImZyb21Ob3RoaW5nIiwidW5pZmllc1dpdGhCcmFja2V0ZWRDb21iaW5hdG9yIiwidW5pZnlTdGF0ZW1lbnQiLCJ1bmlmeVdpdGhDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZ2V0Q29tYmluYXRvcnMiLCJ1bmlmaWVzV2l0aENvbWJpbmF0b3JzIiwic29tZSIsImNvbWJpbmF0b3IiLCJ1bmlmaWVzV2l0aENvbWJpbmF0b3IiLCJ2ZXJpZnlBc0VxdWFsaXR5IiwidmVyaWZpZXNBc0VxdWFsaXR5IiwiZXF1YWxpdHkiLCJlcXVhbGl0eUZyb21TdGF0ZW1lbnQiLCJlcXVhbGl0eVZlcmlmaWVzIiwidmVyaWZ5QXNKdWRnZW1lbnQiLCJ2ZXJpZmllc0FzSnVkZ2VtZW50IiwianVkZ2VtZW50IiwianVkZ2VtZW50RnJvbVN0YXRlbWVudCIsImp1ZGdlbWVudFZlcmlmaWVzIiwidmVyaWZ5QXNUeXBlQXNzZXJ0aW9uIiwidmVyaWZpZXNBc1R5cGVBc3NlcnRpb24iLCJ0eXBlQXNzZXJ0aW9uIiwidHlwZUFzc2VydGlvbkZyb21TdGF0ZW1lbnQiLCJ0eXBlQXNzZXJ0aW9uVmVyaWZpZXMiLCJhc3NlcnRpb24iLCJhZGRBc3NlcnRpb24iLCJ2ZXJpZnlBc0RlZmluZWRBc3NlcnRpb24iLCJ2ZXJpZmllc0FzRGVmaW5lZEFzc2VydGlvbiIsImRlZmluZWRBc3NlcnRpb24iLCJkZWZpbmVkQXNzZXJ0aW9uRnJvbVN0YXRlbWVudCIsImRlZmluZWRBc3NlcnRpb25WZXJpZmllcyIsInZlcmlmeUFzUHJvcGVydHlBc3NlcnRpb24iLCJ2ZXJpZmllc0FzUHJvcGVydHlBc3NlcnRpb24iLCJwcm9wZXJ0eUFzc2VydGlvbiIsInByb3BlcnR5QXNzZXJ0aW9uRnJvbVN0YXRlbWVudCIsInByb3BlcnR5QXNzZXJ0aW9uVmVyaWZpZXMiLCJ2ZXJpZnlBc1N1YnByb29mQXNzZXJ0aW9uIiwidmVyaWZpZXNBc1N1YnByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZBc3NlcnRpb24iLCJzdWJwcm9vZkFzc2VydGlvbkZyb21TdGF0ZW1lbnQiLCJzdWJwcm9vZkFzc2VydGlvblZlcmlmaWVzIiwidmVyaWZ5QXNDb250YWluZWRBc3NlcnRpb24iLCJ2ZXJpZmllc0FzQ29udGFpbmVkQXNzZXJ0aW9uIiwiY29udGFpbmVkQXNzZXJ0aW9uIiwiY29udGFpbmVkQXNzZXJ0aW9uRnJvbVN0YXRlbWVudCIsImNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVzIiwidmVyaWZ5QXNTYXRpc2ZpZXNBc3NlcnRpb24iLCJ2ZXJpZmllc0FzU2F0aXNmaWVzQXNzZXJ0aW9uIiwic2F0aXNmaWVzQXNzZXJ0aW9uIiwic2F0aXNmaWVzQXNzZXJ0aW9uRnJvbVN0YXRlbWVudCIsInNhdGlzZmllc0Fzc2VydGlvblZlcmlmaWVzIiwidmVyaWZ5TWl4aW5zIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFzU0E7OztlQUFBOzs7K0RBcFNxQjt5QkFVMkI7Ozs7OztBQUVoRCxTQUFTQSxvQ0FBb0NDLFNBQVMsRUFBRUMsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLE9BQU87SUFDbEYsSUFBSUMsd0NBQXdDO0lBRTVDLElBQU1DLGVBQWVDLElBQUFBLG9DQUF5QixFQUFDTixXQUFXRztJQUUxRCxJQUFJRSxpQkFBaUIsTUFBTTtRQUN6QixJQUFNRSxrQkFBa0JQLFVBQVVRLFNBQVM7UUFFM0NMLFFBQVFNLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkYsaUJBQWdCO1FBRWhELElBQU1HLHVCQUF1QkwsYUFBYU0sTUFBTSxDQUFDUjtRQUVqRCxJQUFJTyxzQkFBc0I7WUFDeEIsSUFBUUUsbUJBQXdDQyxpQkFBUSxDQUFoREQsa0JBQWtCRSxvQkFBc0JELGlCQUFRLENBQTlCQyxtQkFDcEJDLG9CQUFvQkQsa0JBQWtCRSxhQUFhLENBQUNoQixXQUFXRyxVQUMvRGMsbUJBQW1CTCxpQkFBaUJJLGFBQWEsQ0FBQ2hCLFdBQVdHLFVBQzdEZSxlQUFnQkQsb0JBQW9CRjtZQUUxQyxJQUFJRyxpQkFBaUIsTUFBTTtnQkFDekIsSUFBTUMsdUJBQXVCRCxhQUFhUCxNQUFNLENBQUNSO2dCQUVqRCxJQUFJZ0Isc0JBQXNCO29CQUN4QmYsd0NBQXdDO2dCQUMxQztZQUNGLE9BQU87Z0JBQ0xBLHdDQUF3QztZQUMxQztRQUNGO1FBRUEsSUFBSUEsdUNBQXVDO1lBQ3pDRCxRQUFRaUIsS0FBSyxDQUFDLEFBQUMsb0JBQW1DLE9BQWhCYixpQkFBZ0I7UUFDcEQ7SUFDRjtJQUVBLE9BQU9IO0FBQ1Q7QUFFQSxTQUFTaUIsNkJBQTZCckIsU0FBUyxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsT0FBTztJQUMzRUQsU0FBUyxNQUFPLEdBQUc7SUFFbkJELGNBQWMsTUFBTSxHQUFHO0lBRXZCLElBQU0sQUFBRXFCLHNCQUF3QlQsaUJBQVEsQ0FBaENTLHFCQUNGQyxzQkFBc0JELG9CQUFvQkUsV0FBVyxJQUNyREMsaUNBQWlDRixvQkFBb0JHLGNBQWMsQ0FBQzFCLFdBQVdDLGFBQWFDLFFBQVFDO0lBRTFHLE9BQU9zQjtBQUNUO0FBRUEsU0FBU0UscUJBQXFCM0IsU0FBUyxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsT0FBTztJQUNuRUQsU0FBUyxNQUFPLEdBQUc7SUFFbkJELGNBQWMsTUFBTSxHQUFHO0lBRXZCLElBQU0yQixjQUFjekIsUUFBUTBCLGNBQWMsSUFDcENDLHlCQUF5QkYsWUFBWUcsSUFBSSxDQUFDLFNBQUNDO1FBQ3pDLElBQU1DLHdCQUF3QkQsV0FBV04sY0FBYyxDQUFDMUIsV0FBV0MsYUFBYUMsUUFBUUM7UUFFeEYsSUFBSThCLHVCQUF1QjtZQUN6QixPQUFPO1FBQ1Q7SUFDRjtJQUVOLE9BQU9IO0FBQ1Q7QUFFQSxTQUFTSSxpQkFBaUJsQyxTQUFTLEVBQUVDLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxPQUFPO0lBQy9ELElBQUlnQyxxQkFBcUI7SUFFekIsSUFBTUMsV0FBV0MsSUFBQUEsZ0NBQXFCLEVBQUNyQyxXQUFXRztJQUVsRCxJQUFJaUMsYUFBYSxNQUFNO1FBQ3JCLElBQU03QixrQkFBa0JQLFVBQVVRLFNBQVM7UUFFM0NMLFFBQVFNLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkYsaUJBQWdCO1FBRWhELElBQU0rQixtQkFBbUJGLFNBQVN6QixNQUFNLENBQUNWLGFBQWFDLFFBQVFDO1FBRTlEZ0MscUJBQXFCRyxrQkFBa0IsR0FBRztRQUUxQyxJQUFJSCxvQkFBb0I7WUFDdEJoQyxRQUFRaUIsS0FBSyxDQUFDLEFBQUMsb0JBQW1DLE9BQWhCYixpQkFBZ0I7UUFDcEQ7SUFDRjtJQUVBLE9BQU80QjtBQUNUO0FBRUEsU0FBU0ksa0JBQWtCdkMsU0FBUyxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsT0FBTztJQUNoRSxJQUFJcUMsc0JBQXNCO0lBRTFCLElBQU1DLFlBQVlDLElBQUFBLGlDQUFzQixFQUFDMUMsV0FBV0c7SUFFcEQsSUFBSXNDLGNBQWMsTUFBTTtRQUN0QixJQUFNbEMsa0JBQWtCUCxVQUFVUSxTQUFTO1FBRTNDTCxRQUFRTSxLQUFLLENBQUMsQUFBQyxrQkFBaUMsT0FBaEJGLGlCQUFnQjtRQUVoRCxJQUFNb0Msb0JBQW9CRixVQUFVOUIsTUFBTSxDQUFDVixhQUFhQyxRQUFRQztRQUVoRXFDLHNCQUFzQkcsbUJBQW9CLEdBQUc7UUFFN0MsSUFBSUgscUJBQXFCO1lBQ3ZCckMsUUFBUWlCLEtBQUssQ0FBQyxBQUFDLG9CQUFtQyxPQUFoQmIsaUJBQWdCO1FBQ3BEO0lBQ0Y7SUFFQSxPQUFPaUM7QUFDVDtBQUVBLFNBQVNJLHNCQUFzQjVDLFNBQVMsRUFBRUMsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLE9BQU87SUFDcEUsSUFBSTBDLDBCQUEwQjtJQUU5QixJQUFNQyxnQkFBZ0JDLElBQUFBLHFDQUEwQixFQUFDL0MsV0FBV0c7SUFFNUQsSUFBSTJDLGtCQUFrQixNQUFNO1FBQzFCLElBQU12QyxrQkFBa0JQLFVBQVVRLFNBQVM7UUFFM0NMLFFBQVFNLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkYsaUJBQWdCO1FBRWhELElBQU15Qyx3QkFBd0JGLGNBQWNuQyxNQUFNLENBQUNWLGFBQWFDLFFBQVFDO1FBRXhFMEMsMEJBQTBCRyx1QkFBdUIsR0FBRztRQUVwRCxJQUFJSCx5QkFBeUI7WUFDM0IsSUFBTUksWUFBWUgsZUFBZ0IsR0FBRztZQUVyQzNDLFFBQVErQyxZQUFZLENBQUNEO1lBRXJCOUMsUUFBUWlCLEtBQUssQ0FBQyxBQUFDLG9CQUFtQyxPQUFoQmIsaUJBQWdCO1FBQ3BEO0lBQ0Y7SUFFQSxPQUFPc0M7QUFDVDtBQUVBLFNBQVNNLHlCQUF5Qm5ELFNBQVMsRUFBRUMsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLE9BQU87SUFDdkUsSUFBSWlELDZCQUE2QjtJQUVqQyxJQUFNQyxtQkFBbUJDLElBQUFBLHdDQUE2QixFQUFDdEQsV0FBV0c7SUFFbEUsSUFBSWtELHFCQUFxQixNQUFNO1FBQzdCLElBQU05QyxrQkFBa0JQLFVBQVVRLFNBQVM7UUFFM0NMLFFBQVFNLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkYsaUJBQWdCO1FBRWhELElBQU1nRCwyQkFBMkJGLGlCQUFpQjFDLE1BQU0sQ0FBQ1YsYUFBYUMsUUFBUUM7UUFFOUVpRCw2QkFBNkJHLDBCQUEwQixHQUFHO1FBRTFELElBQUlILDRCQUE0QjtZQUM5QixJQUFNSCxZQUFZSSxrQkFBbUIsR0FBRztZQUV4Q2xELFFBQVErQyxZQUFZLENBQUNEO1lBRXJCOUMsUUFBUWlCLEtBQUssQ0FBQyxBQUFDLG9CQUFtQyxPQUFoQmIsaUJBQWdCO1FBQ3BEO0lBQ0Y7SUFFQSxPQUFPNkM7QUFDVDtBQUVBLFNBQVNJLDBCQUEwQnhELFNBQVMsRUFBRUMsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLE9BQU87SUFDeEUsSUFBSXNELDhCQUE4QjtJQUVsQyxJQUFNQyxvQkFBb0JDLElBQUFBLHlDQUE4QixFQUFDM0QsV0FBV0c7SUFFcEUsSUFBSXVELHNCQUFzQixNQUFNO1FBQzlCLElBQU1uRCxrQkFBa0JQLFVBQVVRLFNBQVM7UUFFM0NMLFFBQVFNLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkYsaUJBQWdCO1FBRWhELElBQU1xRCw0QkFBNEJGLGtCQUFrQi9DLE1BQU0sQ0FBQ1YsYUFBYUMsUUFBUUM7UUFFaEZzRCw4QkFBOEJHLDJCQUEyQixHQUFHO1FBRTVELElBQUlILDZCQUE2QjtZQUMvQixJQUFNUixZQUFZUyxtQkFBbUIsR0FBRztZQUV4Q3ZELFFBQVErQyxZQUFZLENBQUNEO1lBRXJCOUMsUUFBUWlCLEtBQUssQ0FBQyxBQUFDLG9CQUFtQyxPQUFoQmIsaUJBQWdCO1FBQ3BEO0lBQ0Y7SUFFQSxPQUFPa0Q7QUFDVDtBQUVBLFNBQVNJLDBCQUEwQjdELFNBQVMsRUFBRUMsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLE9BQU87SUFDeEUsSUFBSTJELDhCQUE4QjtJQUVsQyxJQUFNQyxvQkFBb0JDLElBQUFBLHlDQUE4QixFQUFDaEUsV0FBV0c7SUFFcEUsSUFBSTRELHNCQUFzQixNQUFNO1FBQzlCLElBQU14RCxrQkFBa0JQLFVBQVVRLFNBQVM7UUFFM0NMLFFBQVFNLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkYsaUJBQWdCO1FBRWhELElBQU0wRCw0QkFBNEJGLGtCQUFrQnBELE1BQU0sQ0FBQ1YsYUFBYUMsUUFBUUM7UUFFaEYyRCw4QkFBOEJHLDJCQUEyQixHQUFHO1FBRTVELElBQUlILDZCQUE2QjtZQUMvQixJQUFNYixZQUFZYyxtQkFBbUIsR0FBRztZQUV4QzVELFFBQVErQyxZQUFZLENBQUNEO1lBRXJCOUMsUUFBUWlCLEtBQUssQ0FBQyxBQUFDLG9CQUFtQyxPQUFoQmIsaUJBQWdCO1FBQ3BEO0lBQ0Y7SUFFQSxPQUFPdUQ7QUFDVDtBQUVBLFNBQVNJLDJCQUEyQmxFLFNBQVMsRUFBRUMsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLE9BQU87SUFDekUsSUFBSWdFLCtCQUErQjtJQUVuQyxJQUFNQyxxQkFBcUJDLElBQUFBLDBDQUErQixFQUFDckUsV0FBV0c7SUFFdEUsSUFBSWlFLHVCQUF1QixNQUFNO1FBQy9CLElBQU03RCxrQkFBa0JQLFVBQVVRLFNBQVM7UUFFM0NMLFFBQVFNLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkYsaUJBQWdCO1FBRWhELElBQU0rRCw2QkFBNkJGLG1CQUFtQnpELE1BQU0sQ0FBQ1YsYUFBYUMsUUFBUUM7UUFFbEZnRSwrQkFBK0JHLDRCQUE0QixHQUFHO1FBRTlELElBQUlILDhCQUE4QjtZQUNoQyxJQUFNbEIsWUFBWW1CLG9CQUFvQixHQUFHO1lBRXpDakUsUUFBUStDLFlBQVksQ0FBQ0Q7WUFFckI5QyxRQUFRaUIsS0FBSyxDQUFDLEFBQUMsb0JBQW1DLE9BQWhCYixpQkFBZ0I7UUFDcEQ7SUFDRjtJQUVBLE9BQU80RDtBQUNUO0FBRUEsU0FBU0ksMkJBQTJCdkUsU0FBUyxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsT0FBTztJQUN6RSxJQUFJcUUsK0JBQStCO0lBRW5DLElBQU1DLHFCQUFxQkMsSUFBQUEsMENBQStCLEVBQUMxRSxXQUFXRztJQUV0RSxJQUFJc0UsdUJBQXVCLE1BQU07UUFDL0IsSUFBTWxFLGtCQUFrQlAsVUFBVVEsU0FBUztRQUUzQ0wsUUFBUU0sS0FBSyxDQUFDLEFBQUMsa0JBQWlDLE9BQWhCRixpQkFBZ0I7UUFFaEQsSUFBTW9FLDZCQUE2QkYsbUJBQW1COUQsTUFBTSxDQUFDVixhQUFhQyxRQUFRQztRQUVsRnFFLCtCQUErQkcsNEJBQTRCLEdBQUc7UUFFOUQsSUFBSUgsOEJBQThCO1lBQ2hDLElBQU12QixZQUFZd0Isb0JBQW9CLEdBQUc7WUFFekN0RSxRQUFRK0MsWUFBWSxDQUFDRDtZQUVyQjlDLFFBQVFpQixLQUFLLENBQUMsQUFBQyxvQkFBbUMsT0FBaEJiLGlCQUFnQjtRQUNwRDtJQUNGO0lBRUEsT0FBT2lFO0FBQ1Q7QUFFQSxJQUFNSSxlQUFlO0lBQ25CN0U7SUFDQXNCO0lBQ0FNO0lBQ0FPO0lBQ0FLO0lBQ0FLO0lBQ0FPO0lBQ0FLO0lBQ0FLO0lBQ0FLO0lBQ0FLO0NBQ0Q7SUFFRCxXQUFlSyJ9