occam-verify-cli 0.0.913 → 0.0.915

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 (110) hide show
  1. package/lib/assignment/frameAssertion.js +4 -4
  2. package/lib/axiomLemmaTheoremConjecture.js +4 -3
  3. package/lib/conclusion.js +5 -5
  4. package/lib/context/file.js +3 -3
  5. package/lib/context/local/intrinsicLevel.js +326 -0
  6. package/lib/context/local/metaLevel.js +290 -0
  7. package/lib/metaConsequent.js +4 -4
  8. package/lib/metaLemmaMetatheorem.js +11 -11
  9. package/lib/metaSupposition.js +7 -7
  10. package/lib/metavariable.js +5 -5
  11. package/lib/premise.js +12 -12
  12. package/lib/rule.js +12 -12
  13. package/lib/verifier/node/metaLevel.js +214 -0
  14. package/lib/verifier/node/statementAsCombinator.js +9 -9
  15. package/lib/verifier/node/termAsConstructor.js +7 -7
  16. package/lib/verify/axiom.js +3 -3
  17. package/lib/verify/conclusion.js +7 -7
  18. package/lib/verify/conjecture.js +3 -3
  19. package/lib/verify/containedAssertion.js +23 -4
  20. package/lib/verify/declaration.js +15 -15
  21. package/lib/verify/definedAssertion.js +18 -4
  22. package/lib/verify/derivation.js +3 -3
  23. package/lib/verify/frame.js +16 -16
  24. package/lib/verify/frameAssertion.js +33 -33
  25. package/lib/verify/lemma.js +3 -3
  26. package/lib/verify/metaConsequent.js +7 -7
  27. package/lib/verify/metaDerivation.js +3 -3
  28. package/lib/verify/metaLemma.js +6 -6
  29. package/lib/verify/metaSubDerivation.js +3 -3
  30. package/lib/verify/metaSubproof.js +7 -6
  31. package/lib/verify/metaSupposition.js +9 -9
  32. package/lib/verify/metaSuppositions.js +3 -3
  33. package/lib/verify/metaproof.js +7 -6
  34. package/lib/verify/metaproofStep.js +23 -23
  35. package/lib/verify/metastatement/qualified.js +22 -22
  36. package/lib/verify/metastatement/unqualified.js +7 -7
  37. package/lib/verify/metastatement.js +26 -26
  38. package/lib/verify/metatheorem.js +6 -6
  39. package/lib/verify/metavariable.js +6 -6
  40. package/lib/verify/premise.js +9 -9
  41. package/lib/verify/premises.js +3 -3
  42. package/lib/verify/proof.js +4 -3
  43. package/lib/verify/rule.js +6 -6
  44. package/lib/verify/ruleDerivation.js +3 -3
  45. package/lib/verify/ruleProof.js +7 -6
  46. package/lib/verify/ruleProofStep.js +26 -25
  47. package/lib/verify/ruleSubDerivation.js +3 -3
  48. package/lib/verify/ruleSubproof.js +7 -6
  49. package/lib/verify/statement.js +4 -17
  50. package/lib/verify/subDerivation.js +3 -3
  51. package/lib/verify/subproof.js +4 -3
  52. package/lib/verify/termAsConstructor.js +3 -3
  53. package/lib/verify/theorem.js +4 -4
  54. package/package.json +2 -2
  55. package/src/assignment/frameAssertion.js +5 -5
  56. package/src/axiomLemmaTheoremConjecture.js +4 -2
  57. package/src/conclusion.js +7 -7
  58. package/src/context/file.js +2 -2
  59. package/src/context/{local.js → local/intrinsicLevel.js} +25 -20
  60. package/src/context/{localMeta.js → local/metaLevel.js} +21 -16
  61. package/src/metaConsequent.js +7 -7
  62. package/src/metaLemmaMetatheorem.js +11 -11
  63. package/src/metaSupposition.js +13 -13
  64. package/src/metavariable.js +6 -7
  65. package/src/premise.js +26 -26
  66. package/src/rule.js +12 -12
  67. package/src/verifier/node/{metastatement.js → metaLevel.js} +19 -21
  68. package/src/verifier/node/statementAsCombinator.js +8 -8
  69. package/src/verifier/node/termAsConstructor.js +6 -6
  70. package/src/verify/axiom.js +4 -3
  71. package/src/verify/conclusion.js +5 -6
  72. package/src/verify/conjecture.js +4 -3
  73. package/src/verify/containedAssertion.js +24 -3
  74. package/src/verify/declaration.js +15 -15
  75. package/src/verify/definedAssertion.js +23 -3
  76. package/src/verify/derivation.js +2 -2
  77. package/src/verify/frame.js +15 -15
  78. package/src/verify/frameAssertion.js +33 -33
  79. package/src/verify/lemma.js +4 -3
  80. package/src/verify/metaConsequent.js +5 -6
  81. package/src/verify/metaDerivation.js +2 -2
  82. package/src/verify/metaLemma.js +8 -7
  83. package/src/verify/metaSubDerivation.js +2 -2
  84. package/src/verify/metaSubproof.js +7 -5
  85. package/src/verify/metaSupposition.js +7 -8
  86. package/src/verify/metaSuppositions.js +2 -2
  87. package/src/verify/metaproof.js +7 -5
  88. package/src/verify/metaproofStep.js +21 -25
  89. package/src/verify/metastatement/qualified.js +24 -24
  90. package/src/verify/metastatement/unqualified.js +6 -6
  91. package/src/verify/metastatement.js +25 -25
  92. package/src/verify/metatheorem.js +8 -7
  93. package/src/verify/metavariable.js +5 -5
  94. package/src/verify/premise.js +7 -8
  95. package/src/verify/premises.js +2 -2
  96. package/src/verify/proof.js +4 -2
  97. package/src/verify/rule.js +8 -7
  98. package/src/verify/ruleDerivation.js +2 -2
  99. package/src/verify/ruleProof.js +7 -5
  100. package/src/verify/ruleProofStep.js +22 -25
  101. package/src/verify/ruleSubDerivation.js +2 -2
  102. package/src/verify/ruleSubproof.js +7 -5
  103. package/src/verify/statement.js +2 -22
  104. package/src/verify/subDerivation.js +2 -2
  105. package/src/verify/subproof.js +4 -2
  106. package/src/verify/termAsConstructor.js +4 -3
  107. package/src/verify/theorem.js +5 -4
  108. package/lib/context/local.js +0 -320
  109. package/lib/context/localMeta.js +0 -284
  110. package/lib/verifier/node/metastatement.js +0 -214
@@ -10,11 +10,11 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _query = require("../utilities/query");
12
12
  var ruleProofStepNodesQuery = (0, _query.nodesQuery)("/ruleSubDerivation/ruleProofStep|lastRuleProofStep");
13
- function verifyRuleSubDerivation(ruleSubDerivationNode, localMetaContext) {
13
+ function verifyRuleSubDerivation(ruleSubDerivationNode, localContext) {
14
14
  var ruleSubDerivationVerified;
15
15
  var ruleProofStepNodes = ruleProofStepNodesQuery(ruleSubDerivationNode);
16
16
  ruleSubDerivationVerified = ruleProofStepNodes.every(function(ruleProofStepNode) {
17
- var verifyRuleProofStep = verifyRuleSubDerivation.verifyRuleProofStep, ruleProofStepVerified = verifyRuleProofStep(ruleProofStepNode, localMetaContext);
17
+ var verifyRuleProofStep = verifyRuleSubDerivation.verifyRuleProofStep, ruleProofStepVerified = verifyRuleProofStep(ruleProofStepNode, localContext);
18
18
  if (ruleProofStepVerified) {
19
19
  return true;
20
20
  }
@@ -22,4 +22,4 @@ function verifyRuleSubDerivation(ruleSubDerivationNode, localMetaContext) {
22
22
  return ruleSubDerivationVerified;
23
23
  }
24
24
 
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZVN1YkRlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHJ1bGVQcm9vZlN0ZXBOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9ydWxlU3ViRGVyaXZhdGlvbi9ydWxlUHJvb2ZTdGVwfGxhc3RSdWxlUHJvb2ZTdGVwXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbihydWxlU3ViRGVyaXZhdGlvbk5vZGUsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQ7XG5cbiAgY29uc3QgcnVsZVByb29mU3RlcE5vZGVzID0gcnVsZVByb29mU3RlcE5vZGVzUXVlcnkocnVsZVN1YkRlcml2YXRpb25Ob2RlKTtcblxuICBydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkID0gcnVsZVByb29mU3RlcE5vZGVzLmV2ZXJ5KChydWxlUHJvb2ZTdGVwTm9kZSkgPT4ge1xuICAgIGNvbnN0IHsgdmVyaWZ5UnVsZVByb29mU3RlcCB9ID0gdmVyaWZ5UnVsZVN1YkRlcml2YXRpb24sXG4gICAgICAgICAgcnVsZVByb29mU3RlcFZlcmlmaWVkID0gdmVyaWZ5UnVsZVByb29mU3RlcChydWxlUHJvb2ZTdGVwTm9kZSwgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICBpZiAocnVsZVByb29mU3RlcFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVJ1bGVTdWJEZXJpdmF0aW9uIiwicnVsZVByb29mU3RlcE5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwicnVsZVN1YkRlcml2YXRpb25Ob2RlIiwibG9jYWxNZXRhQ29udGV4dCIsInJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQiLCJydWxlUHJvb2ZTdGVwTm9kZXMiLCJldmVyeSIsInJ1bGVQcm9vZlN0ZXBOb2RlIiwidmVyaWZ5UnVsZVByb29mU3RlcCIsInJ1bGVQcm9vZlN0ZXBWZXJpZmllZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUF3QkE7OztxQkFKRztBQUUzQixJQUFNQywwQkFBMEJDLElBQUFBLGlCQUFVLEVBQUM7QUFFNUIsU0FBU0Ysd0JBQXdCRyxxQkFBcUIsRUFBRUMsZ0JBQWdCO0lBQ3JGLElBQUlDO0lBRUosSUFBTUMscUJBQXFCTCx3QkFBd0JFO0lBRW5ERSw0QkFBNEJDLG1CQUFtQkMsS0FBSyxDQUFDLFNBQUNDO1FBQ3BELElBQU0sQUFBRUMsc0JBQXdCVCx3QkFBeEJTLHFCQUNGQyx3QkFBd0JELG9CQUFvQkQsbUJBQW1CSjtRQUVyRSxJQUFJTSx1QkFBdUI7WUFDekIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPTDtBQUNUIn0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZVN1YkRlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHJ1bGVQcm9vZlN0ZXBOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9ydWxlU3ViRGVyaXZhdGlvbi9ydWxlUHJvb2ZTdGVwfGxhc3RSdWxlUHJvb2ZTdGVwXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbihydWxlU3ViRGVyaXZhdGlvbk5vZGUsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgcnVsZVN1YkRlcml2YXRpb25WZXJpZmllZDtcblxuICBjb25zdCBydWxlUHJvb2ZTdGVwTm9kZXMgPSBydWxlUHJvb2ZTdGVwTm9kZXNRdWVyeShydWxlU3ViRGVyaXZhdGlvbk5vZGUpO1xuXG4gIHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQgPSBydWxlUHJvb2ZTdGVwTm9kZXMuZXZlcnkoKHJ1bGVQcm9vZlN0ZXBOb2RlKSA9PiB7XG4gICAgY29uc3QgeyB2ZXJpZnlSdWxlUHJvb2ZTdGVwIH0gPSB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbixcbiAgICAgICAgICBydWxlUHJvb2ZTdGVwVmVyaWZpZWQgPSB2ZXJpZnlSdWxlUHJvb2ZTdGVwKHJ1bGVQcm9vZlN0ZXBOb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHJ1bGVQcm9vZlN0ZXBWZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcnVsZVN1YkRlcml2YXRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbiIsInJ1bGVQcm9vZlN0ZXBOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInJ1bGVTdWJEZXJpdmF0aW9uTm9kZSIsImxvY2FsQ29udGV4dCIsInJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQiLCJydWxlUHJvb2ZTdGVwTm9kZXMiLCJldmVyeSIsInJ1bGVQcm9vZlN0ZXBOb2RlIiwidmVyaWZ5UnVsZVByb29mU3RlcCIsInJ1bGVQcm9vZlN0ZXBWZXJpZmllZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUF3QkE7OztxQkFKRztBQUUzQixJQUFNQywwQkFBMEJDLElBQUFBLGlCQUFVLEVBQUM7QUFFNUIsU0FBU0Ysd0JBQXdCRyxxQkFBcUIsRUFBRUMsWUFBWTtJQUNqRixJQUFJQztJQUVKLElBQU1DLHFCQUFxQkwsd0JBQXdCRTtJQUVuREUsNEJBQTRCQyxtQkFBbUJDLEtBQUssQ0FBQyxTQUFDQztRQUNwRCxJQUFNLEFBQUVDLHNCQUF3QlQsd0JBQXhCUyxxQkFDRkMsd0JBQXdCRCxvQkFBb0JELG1CQUFtQko7UUFFckUsSUFBSU0sdUJBQXVCO1lBQ3pCLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBT0w7QUFDVCJ9
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _premises = /*#__PURE__*/ _interop_require_default(require("../verify/premises"));
12
- var _localMeta = /*#__PURE__*/ _interop_require_default(require("../context/localMeta"));
12
+ var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../context/local/metaLevel"));
13
13
  var _ruleSubDerivation = /*#__PURE__*/ _interop_require_default(require("../verify/ruleSubDerivation"));
14
14
  var _query = require("../utilities/query");
15
15
  function _interop_require_default(obj) {
@@ -18,12 +18,13 @@ function _interop_require_default(obj) {
18
18
  };
19
19
  }
20
20
  var premiseNodesQuery = (0, _query.nodesQuery)("/ruleSubproof/premise"), ruleSubDerivationNodeQuery = (0, _query.nodeQuery)("/ruleSubproof/ruleSubDerivation");
21
- function verifyRuleSubproof(ruleSubproofNode, localMetaContext) {
21
+ function verifyRuleSubproof(ruleSubproofNode, localContext) {
22
22
  var ruleSubproofVerified = false;
23
- localMetaContext = _localMeta.default.fromLocalMetaContext(localMetaContext); ///
24
- var premises = [], premiseNodes = premiseNodesQuery(ruleSubproofNode), premisesVerified = (0, _premises.default)(premiseNodes, premises, localMetaContext);
23
+ var metaLevelLocalContext = _metaLevel.default.fromLocalContext(localContext);
24
+ localContext = metaLevelLocalContext; ///
25
+ var premises = [], premiseNodes = premiseNodesQuery(ruleSubproofNode), premisesVerified = (0, _premises.default)(premiseNodes, premises, localContext);
25
26
  if (premisesVerified) {
26
- var ruleSubDerivationNode = ruleSubDerivationNodeQuery(ruleSubproofNode), ruleSubDerivationVerified = (0, _ruleSubDerivation.default)(ruleSubDerivationNode, localMetaContext);
27
+ var ruleSubDerivationNode = ruleSubDerivationNodeQuery(ruleSubproofNode), ruleSubDerivationVerified = (0, _ruleSubDerivation.default)(ruleSubDerivationNode, localContext);
27
28
  if (ruleSubDerivationVerified) {
28
29
  ruleSubproofVerified = true;
29
30
  }
@@ -31,4 +32,4 @@ function verifyRuleSubproof(ruleSubproofNode, localMetaContext) {
31
32
  return ruleSubproofVerified;
32
33
  }
33
34
 
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZVN1YnByb29mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5UHJlbWlzZXMgZnJvbSBcIi4uL3ZlcmlmeS9wcmVtaXNlc1wiO1xuaW1wb3J0IExvY2FsTWV0YUNvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbG9jYWxNZXRhXCI7XG5pbXBvcnQgdmVyaWZ5UnVsZVN1YkRlcml2YXRpb24gZnJvbSBcIi4uL3ZlcmlmeS9ydWxlU3ViRGVyaXZhdGlvblwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHByZW1pc2VOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9ydWxlU3VicHJvb2YvcHJlbWlzZVwiKSxcbiAgICAgIHJ1bGVTdWJEZXJpdmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3J1bGVTdWJwcm9vZi9ydWxlU3ViRGVyaXZhdGlvblwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5UnVsZVN1YnByb29mKHJ1bGVTdWJwcm9vZk5vZGUsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IHJ1bGVTdWJwcm9vZlZlcmlmaWVkID0gZmFsc2U7XG5cbiAgbG9jYWxNZXRhQ29udGV4dCA9IExvY2FsTWV0YUNvbnRleHQuZnJvbUxvY2FsTWV0YUNvbnRleHQobG9jYWxNZXRhQ29udGV4dCk7IC8vL1xuXG4gIGNvbnN0IHByZW1pc2VzID0gW10sXG4gICAgICAgIHByZW1pc2VOb2RlcyA9IHByZW1pc2VOb2Rlc1F1ZXJ5KHJ1bGVTdWJwcm9vZk5vZGUpLFxuICAgICAgICBwcmVtaXNlc1ZlcmlmaWVkID0gdmVyaWZ5UHJlbWlzZXMocHJlbWlzZU5vZGVzLCBwcmVtaXNlcywgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgaWYgKHByZW1pc2VzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBydWxlU3ViRGVyaXZhdGlvbk5vZGUgPSBydWxlU3ViRGVyaXZhdGlvbk5vZGVRdWVyeShydWxlU3VicHJvb2ZOb2RlKSxcbiAgICAgICAgICBydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkID0gdmVyaWZ5UnVsZVN1YkRlcml2YXRpb24ocnVsZVN1YkRlcml2YXRpb25Ob2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgIGlmIChydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkKSB7XG4gICAgICBydWxlU3VicHJvb2ZWZXJpZmllZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJ1bGVTdWJwcm9vZlZlcmlmaWVkO1xufVxuXG4iXSwibmFtZXMiOlsidmVyaWZ5UnVsZVN1YnByb29mIiwicHJlbWlzZU5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwicnVsZVN1YkRlcml2YXRpb25Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJydWxlU3VicHJvb2ZOb2RlIiwibG9jYWxNZXRhQ29udGV4dCIsInJ1bGVTdWJwcm9vZlZlcmlmaWVkIiwiTG9jYWxNZXRhQ29udGV4dCIsImZyb21Mb2NhbE1ldGFDb250ZXh0IiwicHJlbWlzZXMiLCJwcmVtaXNlTm9kZXMiLCJwcmVtaXNlc1ZlcmlmaWVkIiwidmVyaWZ5UHJlbWlzZXMiLCJydWxlU3ViRGVyaXZhdGlvbk5vZGUiLCJydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkIiwidmVyaWZ5UnVsZVN1YkRlcml2YXRpb24iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBd0JBOzs7K0RBVEc7Z0VBQ0U7d0VBQ087cUJBRUU7Ozs7OztBQUV0QyxJQUFNQyxvQkFBb0JDLElBQUFBLGlCQUFVLEVBQUMsMEJBQy9CQyw2QkFBNkJDLElBQUFBLGdCQUFTLEVBQUM7QUFFOUIsU0FBU0osbUJBQW1CSyxnQkFBZ0IsRUFBRUMsZ0JBQWdCO0lBQzNFLElBQUlDLHVCQUF1QjtJQUUzQkQsbUJBQW1CRSxrQkFBZ0IsQ0FBQ0Msb0JBQW9CLENBQUNILG1CQUFtQixHQUFHO0lBRS9FLElBQU1JLFdBQVcsRUFBRSxFQUNiQyxlQUFlVixrQkFBa0JJLG1CQUNqQ08sbUJBQW1CQyxJQUFBQSxpQkFBYyxFQUFDRixjQUFjRCxVQUFVSjtJQUVoRSxJQUFJTSxrQkFBa0I7UUFDcEIsSUFBTUUsd0JBQXdCWCwyQkFBMkJFLG1CQUNuRFUsNEJBQTRCQyxJQUFBQSwwQkFBdUIsRUFBQ0YsdUJBQXVCUjtRQUVqRixJQUFJUywyQkFBMkI7WUFDN0JSLHVCQUF1QjtRQUN6QjtJQUNGO0lBRUEsT0FBT0E7QUFDVCJ9
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZVN1YnByb29mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5UHJlbWlzZXMgZnJvbSBcIi4uL3ZlcmlmeS9wcmVtaXNlc1wiO1xuaW1wb3J0IE1ldGFMZXZlbExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbC9tZXRhTGV2ZWxcIjtcbmltcG9ydCB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbiBmcm9tIFwiLi4vdmVyaWZ5L3J1bGVTdWJEZXJpdmF0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgcHJlbWlzZU5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3J1bGVTdWJwcm9vZi9wcmVtaXNlXCIpLFxuICAgICAgcnVsZVN1YkRlcml2YXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZVN1YnByb29mL3J1bGVTdWJEZXJpdmF0aW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlU3VicHJvb2YocnVsZVN1YnByb29mTm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBydWxlU3VicHJvb2ZWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGFMZXZlbExvY2FsQ29udGV4dCA9IE1ldGFMZXZlbExvY2FsQ29udGV4dC5mcm9tTG9jYWxDb250ZXh0KGxvY2FsQ29udGV4dCk7XG5cbiAgbG9jYWxDb250ZXh0ID0gbWV0YUxldmVsTG9jYWxDb250ZXh0OyAvLy9cblxuICBjb25zdCBwcmVtaXNlcyA9IFtdLFxuICAgICAgICBwcmVtaXNlTm9kZXMgPSBwcmVtaXNlTm9kZXNRdWVyeShydWxlU3VicHJvb2ZOb2RlKSxcbiAgICAgICAgcHJlbWlzZXNWZXJpZmllZCA9IHZlcmlmeVByZW1pc2VzKHByZW1pc2VOb2RlcywgcHJlbWlzZXMsIGxvY2FsQ29udGV4dCk7XG5cbiAgaWYgKHByZW1pc2VzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBydWxlU3ViRGVyaXZhdGlvbk5vZGUgPSBydWxlU3ViRGVyaXZhdGlvbk5vZGVRdWVyeShydWxlU3VicHJvb2ZOb2RlKSxcbiAgICAgICAgICBydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkID0gdmVyaWZ5UnVsZVN1YkRlcml2YXRpb24ocnVsZVN1YkRlcml2YXRpb25Ob2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQpIHtcbiAgICAgIHJ1bGVTdWJwcm9vZlZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcnVsZVN1YnByb29mVmVyaWZpZWQ7XG59XG5cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlSdWxlU3VicHJvb2YiLCJwcmVtaXNlTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJydWxlU3ViRGVyaXZhdGlvbk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInJ1bGVTdWJwcm9vZk5vZGUiLCJsb2NhbENvbnRleHQiLCJydWxlU3VicHJvb2ZWZXJpZmllZCIsIm1ldGFMZXZlbExvY2FsQ29udGV4dCIsIk1ldGFMZXZlbExvY2FsQ29udGV4dCIsImZyb21Mb2NhbENvbnRleHQiLCJwcmVtaXNlcyIsInByZW1pc2VOb2RlcyIsInByZW1pc2VzVmVyaWZpZWQiLCJ2ZXJpZnlQcmVtaXNlcyIsInJ1bGVTdWJEZXJpdmF0aW9uTm9kZSIsInJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUF3QkE7OzsrREFURztnRUFDTzt3RUFDRTtxQkFFRTs7Ozs7O0FBRXRDLElBQU1DLG9CQUFvQkMsSUFBQUEsaUJBQVUsRUFBQywwQkFDL0JDLDZCQUE2QkMsSUFBQUEsZ0JBQVMsRUFBQztBQUU5QixTQUFTSixtQkFBbUJLLGdCQUFnQixFQUFFQyxZQUFZO0lBQ3ZFLElBQUlDLHVCQUF1QjtJQUUzQixJQUFNQyx3QkFBd0JDLGtCQUFxQixDQUFDQyxnQkFBZ0IsQ0FBQ0o7SUFFckVBLGVBQWVFLHVCQUF1QixHQUFHO0lBRXpDLElBQU1HLFdBQVcsRUFBRSxFQUNiQyxlQUFlWCxrQkFBa0JJLG1CQUNqQ1EsbUJBQW1CQyxJQUFBQSxpQkFBYyxFQUFDRixjQUFjRCxVQUFVTDtJQUVoRSxJQUFJTyxrQkFBa0I7UUFDcEIsSUFBTUUsd0JBQXdCWiwyQkFBMkJFLG1CQUNuRFcsNEJBQTRCQyxJQUFBQSwwQkFBdUIsRUFBQ0YsdUJBQXVCVDtRQUVqRixJQUFJVSwyQkFBMkI7WUFDN0JULHVCQUF1QjtRQUN6QjtJQUNGO0lBRUEsT0FBT0E7QUFDVCJ9
@@ -59,7 +59,7 @@ function _unsupported_iterable_to_array(o, minLen) {
59
59
  if (n === "Map" || n === "Set") return Array.from(n);
60
60
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
61
61
  }
62
- var equalityNodeQuery = (0, _query.nodeQuery)("/statement/equality!"), statementNodeQuery = (0, _query.nodeQuery)("/containedAssertion/statement!"), typeAssertionNodeQuery = (0, _query.nodeQuery)("/statement/typeAssertion!"), definedAssertionNodeQuery = (0, _query.nodeQuery)("/statement/definedAssertion!"), containedAssertionNodeQuery = (0, _query.nodeQuery)("/statement/containedAssertion!");
62
+ var equalityNodeQuery = (0, _query.nodeQuery)("/statement/equality!"), typeAssertionNodeQuery = (0, _query.nodeQuery)("/statement/typeAssertion!"), definedAssertionNodeQuery = (0, _query.nodeQuery)("/statement/definedAssertion!"), containedAssertionNodeQuery = (0, _query.nodeQuery)("/statement/containedAssertion!");
63
63
  function verifyStatement(statementNode, assignments, derived, localContext) {
64
64
  var statementVerified;
65
65
  var statementString = localContext.nodeAsString(statementNode);
@@ -154,21 +154,8 @@ function verifyStatementAsContainedAssertion(statementNode, assignments, derived
154
154
  if (containedAssertionNode !== null) {
155
155
  var statementString = localContext.nodeAsString(statementNode);
156
156
  localContext.trace("Verifying the '".concat(statementString, "' statement as a contained assertion..."), containedAssertionNode);
157
- var containedVerified = (0, _containedAssertion.default)(containedAssertionNode, assignments, derived, localContext);
158
- if (containedVerified) {
159
- statementNode = statementNodeQuery(containedAssertionNode); ///
160
- var verifyStatementFunctions = [
161
- verifyStatementAsEquality,
162
- verifyStatementAgainstCombinators
163
- ];
164
- var statementVerified = verifyStatementFunctions.some(function(verifyStatementFunction) {
165
- var _$derived = false, _$assignments = [], statementVerified = verifyStatementFunction(statementNode, _$assignments, _$derived, localContext);
166
- if (statementVerified) {
167
- return true;
168
- }
169
- });
170
- statementVerifiedAsContainedAssertion = statementVerified; ///
171
- }
157
+ var containedAssertionVerified = (0, _containedAssertion.default)(containedAssertionNode, assignments, derived, localContext);
158
+ statementVerifiedAsContainedAssertion = containedAssertionVerified; ///
172
159
  if (statementVerifiedAsContainedAssertion) {
173
160
  localContext.debug("...verified the '".concat(statementString, "' statement as a contained assertion."), containedAssertionNode);
174
161
  }
@@ -207,4 +194,4 @@ function verifyStatementAgainstCombinator(statementNode, combinator, localContex
207
194
  return statementVerifiedAgainstCombinator;
208
195
  }
209
196
 
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5RXF1YWxpdHkgZnJvbSBcIi4uL3ZlcmlmeS9lcXVhbGl0eVwiO1xuaW1wb3J0IGJyYWNrZXRlZENvbWJpbmF0b3IgZnJvbSBcIi4uL29jbWJpbmF0b3IvYnJhY2tldGVkXCI7XG5pbXBvcnQgdmVyaWZ5VHlwZUFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L3R5cGVBc3NlcnRpb25cIjtcbmltcG9ydCB2ZXJpZnlEZWZpbmVkQXNzZXJ0aW9uIGZyb20gXCIuLi92ZXJpZnkvZGVmaW5lZEFzc2VydGlvblwiO1xuaW1wb3J0IHZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L2NvbnRhaW5lZEFzc2VydGlvblwiO1xuaW1wb3J0IHN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yTm9kZXNWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZXMvc3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBlcXVhbGl0eU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvZXF1YWxpdHkhXCIpLFxuICAgICAgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbnRhaW5lZEFzc2VydGlvbi9zdGF0ZW1lbnQhXCIpLFxuICAgICAgdHlwZUFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvdHlwZUFzc2VydGlvbiFcIiksXG4gICAgICBkZWZpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9kZWZpbmVkQXNzZXJ0aW9uIVwiKSxcbiAgICAgIGNvbnRhaW5lZEFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvY29udGFpbmVkQXNzZXJ0aW9uIVwiKTtcblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkO1xuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucyA9IFtcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5LFxuICAgIHZlcmlmeVN0YXRlbWVudEFzVHlwZUFzc2VydGlvbixcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24sXG4gICAgdmVyaWZ5U3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24sXG4gICAgdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzXG4gIF07XG5cbiAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbnMuc29tZSgodmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24pID0+IHtcbiAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVN0YW5kYWxvbmVTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgc3RhbmRhbG9uZVN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhbmRhbG9uZSBzdGF0ZW1lbnQuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkKTtcblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgIHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmaWVkQWhlYWQ7IC8vL1xuICB9XG5cbiAgaWYgKHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YW5kYWxvbmUgc3RhdGVtZW50LmAsIHN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuT2JqZWN0LmFzc2lnbihzdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvck5vZGVzVmVyaWZpZXIsIHtcbiAgdmVyaWZ5U3RhdGVtZW50XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgdmVyaWZ5U3RhdGVtZW50O1xuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eShzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkgPSBmYWxzZTtcblxuICBjb25zdCBlcXVhbGl0eU5vZGUgPSBlcXVhbGl0eU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoZXF1YWxpdHlOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuLi5gLCBlcXVhbGl0eU5vZGUpO1xuXG4gICAgY29uc3QgZXF1YWxpdHlWZXJpZmllZCA9IHZlcmlmeUVxdWFsaXR5KGVxdWFsaXR5Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgIH0pO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5ID0gZXF1YWxpdHlWZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5KSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuYCwgZXF1YWxpdHlOb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3QgdHlwZUFzc2VydGlvbk5vZGUgPSB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICh0eXBlQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgdHlwZSBhc3NlcnRpb24uLi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlUeXBlQXNzZXJ0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgfSk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiA9IHR5cGVBc3NlcnRpb25WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IGRlZmluZWRBc3NlcnRpb25Ob2RlID0gZGVmaW5lZEFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoZGVmaW5lZEFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLi4uYCwgZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29uc3QgZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5RGVmaW5lZEFzc2VydGlvbihkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiA9IGRlZmluZWRBc3NlcnRpb25WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLmAsIGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBjb250YWluZWRBc3NlcnRpb25Ob2RlID0gY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChjb250YWluZWRBc3NlcnRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBjb250YWluZWQgYXNzZXJ0aW9uLi4uYCwgY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCBjb250YWluZWRWZXJpZmllZCA9IHZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbihjb250YWluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChjb250YWluZWRWZXJpZmllZCkge1xuICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShjb250YWluZWRBc3NlcnRpb25Ob2RlKTsgLy8vXG5cbiAgICAgIGNvbnN0IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucyA9IFtcbiAgICAgICAgdmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eSxcbiAgICAgICAgdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucy5zb21lKCh2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24oc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uID0gc3RhdGVtZW50VmVyaWZpZWQ7IC8vL1xuICAgIH1cblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBjb250YWluZWQgYXNzZXJ0aW9uLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcnMoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMgPSBmYWxzZTtcblxuICBjb25zdCBlcXVhbGl0eU5vZGUgPSBlcXVhbGl0eU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgdHlwZUFzc2VydGlvbk5vZGUgPSB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBkZWZpbmVkQXNzZXJ0aW9uTm9kZSA9IGRlZmluZWRBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUgPSBjb250YWluZWRBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKChlcXVhbGl0eU5vZGUgPT09IG51bGwpICYmICh0eXBlQXNzZXJ0aW9uTm9kZSA9PT0gbnVsbCkgJiYgKGRlZmluZWRBc3NlcnRpb25Ob2RlID09PSBudWxsKSAmJiAoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSA9PT0gbnVsbCkpIHtcbiAgICBsZXQgY29tYmluYXRvcnMgPSBsb2NhbENvbnRleHQuZ2V0Q29tYmluYXRvcnMoKTtcblxuICAgIGNvbWJpbmF0b3JzID0gWyAvLy9cbiAgICAgIGJyYWNrZXRlZENvbWJpbmF0b3IsXG4gICAgICAuLi5jb21iaW5hdG9yc1xuICAgIF07XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycyA9IGNvbWJpbmF0b3JzLnNvbWUoKGNvbWJpbmF0b3IpID0+IHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IgPSB2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcihzdGF0ZW1lbnROb2RlLCBjb21iaW5hdG9yLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycztcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgY29tYmluYXRvciwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yO1xuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGNvbWJpbmF0b3JTdHJpbmcgPSBjb21iaW5hdG9yLmdldFN0cmluZygpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYWdhaW5zdCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSA9IGNvbWJpbmF0b3IuZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAgICAgICBub25UZXJtaW5hbE5vZGVBID0gc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZUIgPSBjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gc3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JOb2Rlc1ZlcmlmaWVyLnZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICB9KTtcblxuICBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yID0gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7ICAvLy9cblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcikge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhZ2FpbnN0IHRoZSAnJHtjb21iaW5hdG9yU3RyaW5nfScgY29tYmluYXRvci5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVN0YW5kYWxvbmVTdGF0ZW1lbnQiLCJ2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5IiwidmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uIiwiZXF1YWxpdHlOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJ0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwiZGVmaW5lZEFzc2VydGlvbk5vZGVRdWVyeSIsImNvbnRhaW5lZEFzc2VydGlvbk5vZGVRdWVyeSIsInZlcmlmeVN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJsb2NhbENvbnRleHQiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwidmVyaWZ5U3RhdGVtZW50RnVuY3Rpb25zIiwidmVyaWZ5U3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24iLCJ2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcnMiLCJzb21lIiwidmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24iLCJkZWJ1ZyIsInZlcmlmeUFoZWFkIiwic3RhbmRhbG9uZVN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZpZWRBaGVhZCIsIk9iamVjdCIsImFzc2lnbiIsInN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yTm9kZXNWZXJpZmllciIsInN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSIsImVxdWFsaXR5Tm9kZSIsImVxdWFsaXR5VmVyaWZpZWQiLCJ2ZXJpZnlFcXVhbGl0eSIsInN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uIiwidHlwZUFzc2VydGlvbk5vZGUiLCJ0eXBlQXNzZXJ0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlUeXBlQXNzZXJ0aW9uIiwic3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24iLCJkZWZpbmVkQXNzZXJ0aW9uTm9kZSIsImRlZmluZWRBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeURlZmluZWRBc3NlcnRpb24iLCJzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uIiwiY29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsImNvbnRhaW5lZFZlcmlmaWVkIiwidmVyaWZ5Q29udGFpbmVkQXNzZXJ0aW9uIiwic3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMiLCJjb21iaW5hdG9ycyIsImdldENvbWJpbmF0b3JzIiwiYnJhY2tldGVkQ29tYmluYXRvciIsImNvbWJpbmF0b3IiLCJzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yIiwidmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3IiLCJjb21iaW5hdG9yU3RyaW5nIiwiZ2V0U3RyaW5nIiwiY29tYmluYXRvclN0YXRlbWVudE5vZGUiLCJnZXRTdGF0ZW1lbnROb2RlIiwibm9uVGVybWluYWxOb2RlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJub25UZXJtaW5hbE5vZGVWZXJpZmllZCIsInZlcmlmeU5vblRlcm1pbmFsTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBMkVBLE9BQStCO2VBQS9COztJQTVCZ0JBLHlCQUF5QjtlQUF6QkE7O0lBOEJBQyx5QkFBeUI7ZUFBekJBOztJQTBCQUMsOEJBQThCO2VBQTlCQTs7OytEQXJHVztnRUFDSztvRUFDQTt1RUFDRzt5RUFDRTtpRkFDZTtxQkFFMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUIsSUFBTUMsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDLHlCQUM5QkMscUJBQXFCRCxJQUFB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
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5RXF1YWxpdHkgZnJvbSBcIi4uL3ZlcmlmeS9lcXVhbGl0eVwiO1xuaW1wb3J0IGJyYWNrZXRlZENvbWJpbmF0b3IgZnJvbSBcIi4uL29jbWJpbmF0b3IvYnJhY2tldGVkXCI7XG5pbXBvcnQgdmVyaWZ5VHlwZUFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L3R5cGVBc3NlcnRpb25cIjtcbmltcG9ydCB2ZXJpZnlEZWZpbmVkQXNzZXJ0aW9uIGZyb20gXCIuLi92ZXJpZnkvZGVmaW5lZEFzc2VydGlvblwiO1xuaW1wb3J0IHZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L2NvbnRhaW5lZEFzc2VydGlvblwiO1xuaW1wb3J0IHN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yTm9kZXNWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZXMvc3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBlcXVhbGl0eU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvZXF1YWxpdHkhXCIpLFxuICAgICAgdHlwZUFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvdHlwZUFzc2VydGlvbiFcIiksXG4gICAgICBkZWZpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9kZWZpbmVkQXNzZXJ0aW9uIVwiKSxcbiAgICAgIGNvbnRhaW5lZEFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvY29udGFpbmVkQXNzZXJ0aW9uIVwiKTtcblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkO1xuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucyA9IFtcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5LFxuICAgIHZlcmlmeVN0YXRlbWVudEFzVHlwZUFzc2VydGlvbixcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24sXG4gICAgdmVyaWZ5U3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24sXG4gICAgdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzXG4gIF07XG5cbiAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbnMuc29tZSgodmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24pID0+IHtcbiAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVN0YW5kYWxvbmVTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgc3RhbmRhbG9uZVN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhbmRhbG9uZSBzdGF0ZW1lbnQuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkKTtcblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgIHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmaWVkQWhlYWQ7IC8vL1xuICB9XG5cbiAgaWYgKHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YW5kYWxvbmUgc3RhdGVtZW50LmAsIHN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuT2JqZWN0LmFzc2lnbihzdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvck5vZGVzVmVyaWZpZXIsIHtcbiAgdmVyaWZ5U3RhdGVtZW50XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgdmVyaWZ5U3RhdGVtZW50O1xuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eShzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkgPSBmYWxzZTtcblxuICBjb25zdCBlcXVhbGl0eU5vZGUgPSBlcXVhbGl0eU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoZXF1YWxpdHlOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuLi5gLCBlcXVhbGl0eU5vZGUpO1xuXG4gICAgY29uc3QgZXF1YWxpdHlWZXJpZmllZCA9IHZlcmlmeUVxdWFsaXR5KGVxdWFsaXR5Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgIH0pO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5ID0gZXF1YWxpdHlWZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5KSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuYCwgZXF1YWxpdHlOb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3QgdHlwZUFzc2VydGlvbk5vZGUgPSB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICh0eXBlQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgdHlwZSBhc3NlcnRpb24uLi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlUeXBlQXNzZXJ0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgfSk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiA9IHR5cGVBc3NlcnRpb25WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IGRlZmluZWRBc3NlcnRpb25Ob2RlID0gZGVmaW5lZEFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoZGVmaW5lZEFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLi4uYCwgZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29uc3QgZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5RGVmaW5lZEFzc2VydGlvbihkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiA9IGRlZmluZWRBc3NlcnRpb25WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLmAsIGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBjb250YWluZWRBc3NlcnRpb25Ob2RlID0gY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChjb250YWluZWRBc3NlcnRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBjb250YWluZWQgYXNzZXJ0aW9uLi4uYCwgY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCBjb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbihjb250YWluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIHN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24gPSBjb250YWluZWRBc3NlcnRpb25WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi5gLCBjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzID0gZmFsc2U7XG5cbiAgY29uc3QgZXF1YWxpdHlOb2RlID0gZXF1YWxpdHlOb2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIHR5cGVBc3NlcnRpb25Ob2RlID0gdHlwZUFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgZGVmaW5lZEFzc2VydGlvbk5vZGUgPSBkZWZpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBjb250YWluZWRBc3NlcnRpb25Ob2RlID0gY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICgoZXF1YWxpdHlOb2RlID09PSBudWxsKSAmJiAodHlwZUFzc2VydGlvbk5vZGUgPT09IG51bGwpICYmIChkZWZpbmVkQXNzZXJ0aW9uTm9kZSA9PT0gbnVsbCkgJiYgKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUgPT09IG51bGwpKSB7XG4gICAgbGV0IGNvbWJpbmF0b3JzID0gbG9jYWxDb250ZXh0LmdldENvbWJpbmF0b3JzKCk7XG5cbiAgICBjb21iaW5hdG9ycyA9IFsgLy8vXG4gICAgICBicmFja2V0ZWRDb21iaW5hdG9yLFxuICAgICAgLi4uY29tYmluYXRvcnNcbiAgICBdO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMgPSBjb21iaW5hdG9ycy5zb21lKChjb21iaW5hdG9yKSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yID0gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgY29tYmluYXRvciwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnM7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3IsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcjtcblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBjb21iaW5hdG9yU3RyaW5nID0gY29tYmluYXRvci5nZXRTdHJpbmcoKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke2NvbWJpbmF0b3JTdHJpbmd9JyBjb21iaW5hdG9yLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgY29tYmluYXRvclN0YXRlbWVudE5vZGUgPSBjb21iaW5hdG9yLmdldFN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgbm9uVGVybWluYWxOb2RlQSA9IHN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gY29tYmluYXRvclN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yTm9kZXNWZXJpZmllci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgfSk7XG5cbiAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciA9IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkOyAgLy8vXG5cbiAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYWdhaW5zdCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuYCwgc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcjtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlTdGFuZGFsb25lU3RhdGVtZW50IiwidmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eSIsInZlcmlmeVN0YXRlbWVudEFzVHlwZUFzc2VydGlvbiIsImVxdWFsaXR5Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidHlwZUFzc2VydGlvbk5vZGVRdWVyeSIsImRlZmluZWRBc3NlcnRpb25Ob2RlUXVlcnkiLCJjb250YWluZWRBc3NlcnRpb25Ob2RlUXVlcnkiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwibG9jYWxDb250ZXh0Iiwic3RhdGVtZW50VmVyaWZpZWQiLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucyIsInZlcmlmeVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiIsInZlcmlmeVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzIiwic29tZSIsInZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uIiwiZGVidWciLCJ2ZXJpZnlBaGVhZCIsInN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmaWVkQWhlYWQiLCJPYmplY3QiLCJhc3NpZ24iLCJzdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvck5vZGVzVmVyaWZpZXIiLCJzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkiLCJlcXVhbGl0eU5vZGUiLCJlcXVhbGl0eVZlcmlmaWVkIiwidmVyaWZ5RXF1YWxpdHkiLCJzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiIsInR5cGVBc3NlcnRpb25Ob2RlIiwidHlwZUFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5VHlwZUFzc2VydGlvbiIsInN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uIiwiZGVmaW5lZEFzc2VydGlvbk5vZGUiLCJkZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlEZWZpbmVkQXNzZXJ0aW9uIiwic3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbiIsImNvbnRhaW5lZEFzc2VydGlvbk5vZGUiLCJjb250YWluZWRBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbiIsInN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzIiwiY29tYmluYXRvcnMiLCJnZXRDb21iaW5hdG9ycyIsImJyYWNrZXRlZENvbWJpbmF0b3IiLCJjb21iaW5hdG9yIiwic3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciIsInZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yIiwiY29tYmluYXRvclN0cmluZyIsImdldFN0cmluZyIsImNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsIm5vblRlcm1pbmFsTm9kZUEiLCJub25UZXJtaW5hbE5vZGVCIiwibm9uVGVybWluYWxOb2RlVmVyaWZpZWQiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiXSwibWFwcGluZ3MiOiJB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
@@ -10,11 +10,11 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _query = require("../utilities/query");
12
12
  var proofStepNodesQuery = (0, _query.nodesQuery)("/subDerivation/proofStep|lastProofStep");
13
- function verifySubDerivation(subDerivationNode, localMetaContext) {
13
+ function verifySubDerivation(subDerivationNode, localContext) {
14
14
  var subDerivationVerified;
15
15
  var proofStepNodes = proofStepNodesQuery(subDerivationNode);
16
16
  subDerivationVerified = proofStepNodes.every(function(proofStepNode) {
17
- var verifyProofStep = verifySubDerivation.verifyProofStep, proofStepVerified = verifyProofStep(proofStepNode, localMetaContext);
17
+ var verifyProofStep = verifySubDerivation.verifyProofStep, proofStepVerified = verifyProofStep(proofStepNode, localContext);
18
18
  if (proofStepVerified) {
19
19
  return true;
20
20
  }
@@ -22,4 +22,4 @@ function verifySubDerivation(subDerivationNode, localMetaContext) {
22
22
  return subDerivationVerified;
23
23
  }
24
24
 
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3ViRGVyaXZhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgcHJvb2ZTdGVwTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvc3ViRGVyaXZhdGlvbi9wcm9vZlN0ZXB8bGFzdFByb29mU3RlcFwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5U3ViRGVyaXZhdGlvbihzdWJEZXJpdmF0aW9uTm9kZSwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBsZXQgc3ViRGVyaXZhdGlvblZlcmlmaWVkO1xuXG4gIGNvbnN0IHByb29mU3RlcE5vZGVzID0gcHJvb2ZTdGVwTm9kZXNRdWVyeShzdWJEZXJpdmF0aW9uTm9kZSk7XG5cbiAgc3ViRGVyaXZhdGlvblZlcmlmaWVkID0gcHJvb2ZTdGVwTm9kZXMuZXZlcnkoKHByb29mU3RlcE5vZGUpID0+IHtcbiAgICBjb25zdCB7IHZlcmlmeVByb29mU3RlcCB9ID0gdmVyaWZ5U3ViRGVyaXZhdGlvbixcbiAgICAgICAgICBwcm9vZlN0ZXBWZXJpZmllZCA9IHZlcmlmeVByb29mU3RlcChwcm9vZlN0ZXBOb2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgIGlmIChwcm9vZlN0ZXBWZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gc3ViRGVyaXZhdGlvblZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVN1YkRlcml2YXRpb24iLCJwcm9vZlN0ZXBOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInN1YkRlcml2YXRpb25Ob2RlIiwibG9jYWxNZXRhQ29udGV4dCIsInN1YkRlcml2YXRpb25WZXJpZmllZCIsInByb29mU3RlcE5vZGVzIiwiZXZlcnkiLCJwcm9vZlN0ZXBOb2RlIiwidmVyaWZ5UHJvb2ZTdGVwIiwicHJvb2ZTdGVwVmVyaWZpZWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBd0JBOzs7cUJBSkc7QUFFM0IsSUFBTUMsc0JBQXNCQyxJQUFBQSxpQkFBVSxFQUFDO0FBRXhCLFNBQVNGLG9CQUFvQkcsaUJBQWlCLEVBQUVDLGdCQUFnQjtJQUM3RSxJQUFJQztJQUVKLElBQU1DLGlCQUFpQkwsb0JBQW9CRTtJQUUzQ0Usd0JBQXdCQyxlQUFlQyxLQUFLLENBQUMsU0FBQ0M7UUFDNUMsSUFBTSxBQUFFQyxrQkFBb0JULG9CQUFwQlMsaUJBQ0ZDLG9CQUFvQkQsZ0JBQWdCRCxlQUFlSjtRQUV6RCxJQUFJTSxtQkFBbUI7WUFDckIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPTDtBQUNUIn0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3ViRGVyaXZhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgcHJvb2ZTdGVwTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvc3ViRGVyaXZhdGlvbi9wcm9vZlN0ZXB8bGFzdFByb29mU3RlcFwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5U3ViRGVyaXZhdGlvbihzdWJEZXJpdmF0aW9uTm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdWJEZXJpdmF0aW9uVmVyaWZpZWQ7XG5cbiAgY29uc3QgcHJvb2ZTdGVwTm9kZXMgPSBwcm9vZlN0ZXBOb2Rlc1F1ZXJ5KHN1YkRlcml2YXRpb25Ob2RlKTtcblxuICBzdWJEZXJpdmF0aW9uVmVyaWZpZWQgPSBwcm9vZlN0ZXBOb2Rlcy5ldmVyeSgocHJvb2ZTdGVwTm9kZSkgPT4ge1xuICAgIGNvbnN0IHsgdmVyaWZ5UHJvb2ZTdGVwIH0gPSB2ZXJpZnlTdWJEZXJpdmF0aW9uLFxuICAgICAgICAgIHByb29mU3RlcFZlcmlmaWVkID0gdmVyaWZ5UHJvb2ZTdGVwKHByb29mU3RlcE5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAocHJvb2ZTdGVwVmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHN1YkRlcml2YXRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlTdWJEZXJpdmF0aW9uIiwicHJvb2ZTdGVwTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJzdWJEZXJpdmF0aW9uTm9kZSIsImxvY2FsQ29udGV4dCIsInN1YkRlcml2YXRpb25WZXJpZmllZCIsInByb29mU3RlcE5vZGVzIiwiZXZlcnkiLCJwcm9vZlN0ZXBOb2RlIiwidmVyaWZ5UHJvb2ZTdGVwIiwicHJvb2ZTdGVwVmVyaWZpZWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBd0JBOzs7cUJBSkc7QUFFM0IsSUFBTUMsc0JBQXNCQyxJQUFBQSxpQkFBVSxFQUFDO0FBRXhCLFNBQVNGLG9CQUFvQkcsaUJBQWlCLEVBQUVDLFlBQVk7SUFDekUsSUFBSUM7SUFFSixJQUFNQyxpQkFBaUJMLG9CQUFvQkU7SUFFM0NFLHdCQUF3QkMsZUFBZUMsS0FBSyxDQUFDLFNBQUNDO1FBQzVDLElBQU0sQUFBRUMsa0JBQW9CVCxvQkFBcEJTLGlCQUNGQyxvQkFBb0JELGdCQUFnQkQsZUFBZUo7UUFFekQsSUFBSU0sbUJBQW1CO1lBQ3JCLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBT0w7QUFDVCJ9
@@ -8,9 +8,9 @@ Object.defineProperty(exports, "default", {
8
8
  return verifySubproof;
9
9
  }
10
10
  });
11
- var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
12
11
  var _suppositions = /*#__PURE__*/ _interop_require_default(require("../verify/suppositions"));
13
12
  var _subDerivation = /*#__PURE__*/ _interop_require_default(require("../verify/subDerivation"));
13
+ var _intrinsicLevel = /*#__PURE__*/ _interop_require_default(require("../context/local/intrinsicLevel"));
14
14
  var _query = require("../utilities/query");
15
15
  function _interop_require_default(obj) {
16
16
  return obj && obj.__esModule ? obj : {
@@ -20,7 +20,8 @@ function _interop_require_default(obj) {
20
20
  var suppositionNodesQuery = (0, _query.nodesQuery)("/subproof/supposition"), subDerivationNodeQuery = (0, _query.nodeQuery)("/subproof/subDerivation");
21
21
  function verifySubproof(subproofNode, localContext) {
22
22
  var subproofVerified = false;
23
- localContext = _local.default.fromLocalContext(localContext); ///
23
+ var intrinsicLevelLocalContext = _intrinsicLevel.default.fromLocalContext(localContext); ///
24
+ localContext = intrinsicLevelLocalContext; ///
24
25
  var suppositions = [], suppositionNodes = suppositionNodesQuery(subproofNode), suppositionsVerified = (0, _suppositions.default)(suppositionNodes, suppositions, localContext);
25
26
  if (suppositionsVerified) {
26
27
  var subDerivationNode = subDerivationNodeQuery(subproofNode), subDerivationVerified = (0, _subDerivation.default)(subDerivationNode, localContext);
@@ -31,4 +32,4 @@ function verifySubproof(subproofNode, localContext) {
31
32
  return subproofVerified;
32
33
  }
33
34
 
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3VicHJvb2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBMb2NhbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbG9jYWxcIjtcbmltcG9ydCB2ZXJpZnlTdXBwb3NpdGlvbnMgZnJvbSBcIi4uL3ZlcmlmeS9zdXBwb3NpdGlvbnNcIjtcbmltcG9ydCB2ZXJpZnlTdWJEZXJpdmF0aW9uIGZyb20gXCIuLi92ZXJpZnkvc3ViRGVyaXZhdGlvblwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHN1cHBvc2l0aW9uTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvc3VicHJvb2Yvc3VwcG9zaXRpb25cIiksXG4gICAgICBzdWJEZXJpdmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N1YnByb29mL3N1YkRlcml2YXRpb25cIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVN1YnByb29mKHN1YnByb29mTm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdWJwcm9vZlZlcmlmaWVkID0gZmFsc2U7XG5cbiAgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21Mb2NhbENvbnRleHQobG9jYWxDb250ZXh0KTsgLy8vXG5cbiAgY29uc3Qgc3VwcG9zaXRpb25zID0gW10sXG4gICAgICAgIHN1cHBvc2l0aW9uTm9kZXMgPSBzdXBwb3NpdGlvbk5vZGVzUXVlcnkoc3VicHJvb2ZOb2RlKSxcbiAgICAgICAgc3VwcG9zaXRpb25zVmVyaWZpZWQgPSB2ZXJpZnlTdXBwb3NpdGlvbnMoc3VwcG9zaXRpb25Ob2Rlcywgc3VwcG9zaXRpb25zLCBsb2NhbENvbnRleHQpO1xuXG4gIGlmIChzdXBwb3NpdGlvbnNWZXJpZmllZCkge1xuICAgIGNvbnN0IHN1YkRlcml2YXRpb25Ob2RlID0gc3ViRGVyaXZhdGlvbk5vZGVRdWVyeShzdWJwcm9vZk5vZGUpLFxuICAgICAgICAgIHN1YkRlcml2YXRpb25WZXJpZmllZCA9IHZlcmlmeVN1YkRlcml2YXRpb24oc3ViRGVyaXZhdGlvbk5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoc3ViRGVyaXZhdGlvblZlcmlmaWVkKSB7XG4gICAgICBzdWJwcm9vZlZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3VicHJvb2ZWZXJpZmllZDtcbn1cblxuIl0sIm5hbWVzIjpbInZlcmlmeVN1YnByb29mIiwic3VwcG9zaXRpb25Ob2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInN1YkRlcml2YXRpb25Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJzdWJwcm9vZk5vZGUiLCJsb2NhbENvbnRleHQiLCJzdWJwcm9vZlZlcmlmaWVkIiwiTG9jYWxDb250ZXh0IiwiZnJvbUxvY2FsQ29udGV4dCIsInN1cHBvc2l0aW9ucyIsInN1cHBvc2l0aW9uTm9kZXMiLCJzdXBwb3NpdGlvbnNWZXJpZmllZCIsInZlcmlmeVN1cHBvc2l0aW9ucyIsInN1YkRlcml2YXRpb25Ob2RlIiwic3ViRGVyaXZhdGlvblZlcmlmaWVkIiwidmVyaWZ5U3ViRGVyaXZhdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUF3QkE7Ozs0REFUQzttRUFDTTtvRUFDQztxQkFFTTs7Ozs7O0FBRXRDLElBQU1DLHdCQUF3QkMsSUFBQUEsaUJBQVUsRUFBQywwQkFDbkNDLHlCQUF5QkMsSUFBQUEsZ0JBQVMsRUFBQztBQUUxQixTQUFTSixlQUFlSyxZQUFZLEVBQUVDLFlBQVk7SUFDL0QsSUFBSUMsbUJBQW1CO0lBRXZCRCxlQUFlRSxjQUFZLENBQUNDLGdCQUFnQixDQUFDSCxlQUFlLEdBQUc7SUFFL0QsSUFBTUksZUFBZSxFQUFFLEVBQ2pCQyxtQkFBbUJWLHNCQUFzQkksZUFDekNPLHVCQUF1QkMsSUFBQUEscUJBQWtCLEVBQUNGLGtCQUFrQkQsY0FBY0o7SUFFaEYsSUFBSU0sc0JBQXNCO1FBQ3hCLElBQU1FLG9CQUFvQlgsdUJBQXVCRSxlQUMzQ1Usd0JBQXdCQyxJQUFBQSxzQkFBbUIsRUFBQ0YsbUJBQW1CUjtRQUVyRSxJQUFJUyx1QkFBdUI7WUFDekJSLG1CQUFtQjtRQUNyQjtJQUNGO0lBRUEsT0FBT0E7QUFDVCJ9
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3VicHJvb2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlTdXBwb3NpdGlvbnMgZnJvbSBcIi4uL3ZlcmlmeS9zdXBwb3NpdGlvbnNcIjtcbmltcG9ydCB2ZXJpZnlTdWJEZXJpdmF0aW9uIGZyb20gXCIuLi92ZXJpZnkvc3ViRGVyaXZhdGlvblwiO1xuaW1wb3J0IEludHJpbnNpY0xldmVsTG9jYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsL2ludHJpbnNpY0xldmVsXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3Qgc3VwcG9zaXRpb25Ob2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9zdWJwcm9vZi9zdXBwb3NpdGlvblwiKSxcbiAgICAgIHN1YkRlcml2YXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3VicHJvb2Yvc3ViRGVyaXZhdGlvblwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5U3VicHJvb2Yoc3VicHJvb2ZOb2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN1YnByb29mVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBpbnRyaW5zaWNMZXZlbExvY2FsQ29udGV4dCA9IEludHJpbnNpY0xldmVsTG9jYWxDb250ZXh0LmZyb21Mb2NhbENvbnRleHQobG9jYWxDb250ZXh0KTsgLy8vXG5cbiAgbG9jYWxDb250ZXh0ID0gaW50cmluc2ljTGV2ZWxMb2NhbENvbnRleHQ7ICAvLy9cblxuICBjb25zdCBzdXBwb3NpdGlvbnMgPSBbXSxcbiAgICAgICAgc3VwcG9zaXRpb25Ob2RlcyA9IHN1cHBvc2l0aW9uTm9kZXNRdWVyeShzdWJwcm9vZk5vZGUpLFxuICAgICAgICBzdXBwb3NpdGlvbnNWZXJpZmllZCA9IHZlcmlmeVN1cHBvc2l0aW9ucyhzdXBwb3NpdGlvbk5vZGVzLCBzdXBwb3NpdGlvbnMsIGxvY2FsQ29udGV4dCk7XG5cbiAgaWYgKHN1cHBvc2l0aW9uc1ZlcmlmaWVkKSB7XG4gICAgY29uc3Qgc3ViRGVyaXZhdGlvbk5vZGUgPSBzdWJEZXJpdmF0aW9uTm9kZVF1ZXJ5KHN1YnByb29mTm9kZSksXG4gICAgICAgICAgc3ViRGVyaXZhdGlvblZlcmlmaWVkID0gdmVyaWZ5U3ViRGVyaXZhdGlvbihzdWJEZXJpdmF0aW9uTm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChzdWJEZXJpdmF0aW9uVmVyaWZpZWQpIHtcbiAgICAgIHN1YnByb29mVmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdWJwcm9vZlZlcmlmaWVkO1xufVxuXG4iXSwibmFtZXMiOlsidmVyaWZ5U3VicHJvb2YiLCJzdXBwb3NpdGlvbk5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5Iiwic3ViRGVyaXZhdGlvbk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInN1YnByb29mTm9kZSIsImxvY2FsQ29udGV4dCIsInN1YnByb29mVmVyaWZpZWQiLCJpbnRyaW5zaWNMZXZlbExvY2FsQ29udGV4dCIsIkludHJpbnNpY0xldmVsTG9jYWxDb250ZXh0IiwiZnJvbUxvY2FsQ29udGV4dCIsInN1cHBvc2l0aW9ucyIsInN1cHBvc2l0aW9uTm9kZXMiLCJzdXBwb3NpdGlvbnNWZXJpZmllZCIsInZlcmlmeVN1cHBvc2l0aW9ucyIsInN1YkRlcml2YXRpb25Ob2RlIiwic3ViRGVyaXZhdGlvblZlcmlmaWVkIiwidmVyaWZ5U3ViRGVyaXZhdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUF3QkE7OzttRUFUTztvRUFDQztxRUFDTztxQkFFRDs7Ozs7O0FBRXRDLElBQU1DLHdCQUF3QkMsSUFBQUEsaUJBQVUsRUFBQywwQkFDbkNDLHlCQUF5QkMsSUFBQUEsZ0JBQVMsRUFBQztBQUUxQixTQUFTSixlQUFlSyxZQUFZLEVBQUVDLFlBQVk7SUFDL0QsSUFBSUMsbUJBQW1CO0lBRXZCLElBQU1DLDZCQUE2QkMsdUJBQTBCLENBQUNDLGdCQUFnQixDQUFDSixlQUFlLEdBQUc7SUFFakdBLGVBQWVFLDRCQUE2QixHQUFHO0lBRS9DLElBQU1HLGVBQWUsRUFBRSxFQUNqQkMsbUJBQW1CWCxzQkFBc0JJLGVBQ3pDUSx1QkFBdUJDLElBQUFBLHFCQUFrQixFQUFDRixrQkFBa0JELGNBQWNMO0lBRWhGLElBQUlPLHNCQUFzQjtRQUN4QixJQUFNRSxvQkFBb0JaLHVCQUF1QkUsZUFDM0NXLHdCQUF3QkMsSUFBQUEsc0JBQW1CLEVBQUNGLG1CQUFtQlQ7UUFFckUsSUFBSVUsdUJBQXVCO1lBQ3pCVCxtQkFBbUI7UUFDckI7SUFDRjtJQUVBLE9BQU9BO0FBQ1QifQ==
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _constructor = /*#__PURE__*/ _interop_require_default(require("../constructor"));
12
- var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
12
+ var _intrinsicLevel = /*#__PURE__*/ _interop_require_default(require("../context/local/intrinsicLevel"));
13
13
  var _termAsConstructor = /*#__PURE__*/ _interop_require_default(require("../verifier/node/termAsConstructor"));
14
14
  function _interop_require_default(obj) {
15
15
  return obj && obj.__esModule ? obj : {
@@ -20,7 +20,7 @@ function verifyTermAsConstructor(termNode, typeNode, fileContext) {
20
20
  var termVerifiedAsConstructor = false;
21
21
  var termString = fileContext.nodeAsString(termNode);
22
22
  fileContext.debug("Verifying the '".concat(termString, "' term as a constructor..."), termNode);
23
- var nonTerminalNode = termNode, childNodes = nonTerminalNode.getChildNodes(), localContext = _local.default.fromFileContext(fileContext), childNodesVerified = _termAsConstructor.default.verifyChildNodes(childNodes, localContext, function() {
23
+ var intrinsicLevelLocalContext = _intrinsicLevel.default.fromFileContext(fileContext), nonTerminalNode = termNode, childNodes = nonTerminalNode.getChildNodes(), localContext = intrinsicLevelLocalContext, childNodesVerified = _termAsConstructor.default.verifyChildNodes(childNodes, localContext, function() {
24
24
  var verifiedAhead = true;
25
25
  return verifiedAhead;
26
26
  });
@@ -48,4 +48,4 @@ function verifyTermAsConstructor(termNode, typeNode, fileContext) {
48
48
  return termVerifiedAsConstructor;
49
49
  }
50
50
 
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGVybUFzQ29uc3RydWN0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBDb25zdHJ1Y3RvciBmcm9tIFwiLi4vY29uc3RydWN0b3JcIjtcbmltcG9ydCBMb2NhbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbG9jYWxcIjtcbmltcG9ydCB0ZXJtQXNDb25zdHJ1Y3Rvck5vZGVWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZS90ZXJtQXNDb25zdHJ1Y3RvclwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlUZXJtQXNDb25zdHJ1Y3Rvcih0ZXJtTm9kZSwgdHlwZU5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCB0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yID0gZmFsc2U7XG5cbiAgY29uc3QgdGVybVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh0ZXJtTm9kZSk7XG5cbiAgZmlsZUNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYXMgYSBjb25zdHJ1Y3Rvci4uLmAsIHRlcm1Ob2RlKTtcblxuICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSB0ZXJtTm9kZSwgLy8vXG4gICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSxcbiAgICAgICAgY2hpbGROb2Rlc1ZlcmlmaWVkID0gdGVybUFzQ29uc3RydWN0b3JOb2RlVmVyaWZpZXIudmVyaWZ5Q2hpbGROb2RlcyhjaGlsZE5vZGVzLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICB9KTtcblxuICBpZiAoY2hpbGROb2Rlc1ZlcmlmaWVkKSB7XG4gICAgbGV0IHR5cGUgPSBudWxsO1xuXG4gICAgaWYgKHR5cGVOb2RlID09PSBudWxsKSB7XG4gICAgICB0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTm9kZSh0eXBlTm9kZSk7XG5cbiAgICAgIGlmICh0eXBlICE9PSBudWxsKSB7XG4gICAgICAgIHRlcm1WZXJpZmllZEFzQ29uc3RydWN0b3IgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdHlwZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlTm9kZSk7XG5cbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHt0ZXJtU3RyaW5nfScgY29uc3RydWN0b3IncyAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBub3QgcHJlc2VudC5gLCB0ZXJtTm9kZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRlcm1WZXJpZmllZEFzQ29uc3RydWN0b3IpIHtcbiAgICAgIGNvbnN0IHRva2VucyA9IGZpbGVDb250ZXh0LmdldFRva2VucygpLFxuICAgICAgICAgICAgY29uc3RydWN0b3IgPSBDb25zdHJ1Y3Rvci5mcm9tVGVybU5vZGVUeXBlQW5kVG9rZW5zKHRlcm1Ob2RlLCB0eXBlLCB0b2tlbnMpO1xuXG4gICAgICBmaWxlQ29udGV4dC5hZGRDb25zdHJ1Y3Rvcihjb25zdHJ1Y3Rvcik7XG4gICAgfVxuICB9XG5cbiAgaWYgKHRlcm1WZXJpZmllZEFzQ29uc3RydWN0b3IpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFzIGEgY29uc3RydWN0b3IuYCwgdGVybU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHRlcm1WZXJpZmllZEFzQ29uc3RydWN0b3I7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5VGVybUFzQ29uc3RydWN0b3IiLCJ0ZXJtTm9kZSIsInR5cGVOb2RlIiwiZmlsZUNvbnRleHQiLCJ0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yIiwidGVybVN0cmluZyIsIm5vZGVBc1N0cmluZyIsImRlYnVnIiwibm9uVGVybWluYWxOb2RlIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJsb2NhbENvbnRleHQiLCJMb2NhbENvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJjaGlsZE5vZGVzVmVyaWZpZWQiLCJ0ZXJtQXNDb25zdHJ1Y3Rvck5vZGVWZXJpZmllciIsInZlcmlmeUNoaWxkTm9kZXMiLCJ2ZXJpZmllZEFoZWFkIiwidHlwZSIsImZpbmRUeXBlQnlUeXBlTm9kZSIsInR5cGVTdHJpbmciLCJ0b2tlbnMiLCJnZXRUb2tlbnMiLCJjb25zdHJ1Y3RvciIsIkNvbnN0cnVjdG9yIiwiZnJvbVRlcm1Ob2RlVHlwZUFuZFRva2VucyIsImFkZENvbnN0cnVjdG9yIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXdCQTs7O2tFQUpBOzREQUNDO3dFQUNpQjs7Ozs7O0FBRTNCLFNBQVNBLHdCQUF3QkMsUUFBUSxFQUFFQyxRQUFRLEVBQUVDLFdBQVc7SUFDN0UsSUFBSUMsNEJBQTRCO0lBRWhDLElBQU1DLGFBQWFGLFlBQVlHLFlBQVksQ0FBQ0w7SUFFNUNFLFlBQVlJLEtBQUssQ0FBQyxBQUFDLGtCQUE0QixPQUFYRixZQUFXLCtCQUE2Qko7SUFFNUUsSUFBTU8sa0JBQWtCUCxVQUNsQlEsYUFBYUQsZ0JBQWdCRSxhQUFhLElBQzFDQyxlQUFlQyxjQUFZLENBQUNDLGVBQWUsQ0FBQ1YsY0FDNUNXLHFCQUFxQkMsMEJBQTZCLENBQUNDLGdCQUFnQixDQUFDUCxZQUFZRSxjQUFjO1FBQzVGLElBQU1NLGdCQUFnQjtRQUV0QixPQUFPQTtJQUNUO0lBRU4sSUFBSUgsb0JBQW9CO1FBQ3RCLElBQUlJLE9BQU87UUFFWCxJQUFJaEIsYUFBYSxNQUFNO1lBQ3JCRSw0QkFBNEI7UUFDOUIsT0FBTztZQUNMYyxPQUFPZixZQUFZZ0Isa0JBQWtCLENBQUNqQjtZQUV0QyxJQUFJZ0IsU0FBUyxNQUFNO2dCQUNqQmQsNEJBQTRCO1lBQzlCLE9BQU87Z0JBQ0wsSUFBTWdCLGFBQWFqQixZQUFZRyxZQUFZLENBQUNKO2dCQUU1Q0MsWUFBWUksS0FBSyxDQUFDLEFBQUMsUUFBcUNhLE9BQTlCZixZQUFXLHFCQUE4QixPQUFYZSxZQUFXLDJCQUF5Qm5CO1lBQzlGO1FBQ0Y7UUFFQSxJQUFJRywyQkFBMkI7WUFDN0IsSUFBTWlCLFNBQVNsQixZQUFZbUIsU0FBUyxJQUM5QkMsY0FBY0Msb0JBQVcsQ0FBQ0MseUJBQXlCLENBQUN4QixVQUFVaUIsTUFBTUc7WUFFMUVsQixZQUFZdUIsY0FBYyxDQUFDSDtRQUM3QjtJQUNGO0lBRUEsSUFBSW5CLDJCQUEyQjtRQUM3QkQsWUFBWUksS0FBSyxDQUFDLEFBQUMsb0JBQThCLE9BQVhGLFlBQVcsNkJBQTJCSjtJQUM5RTtJQUVBLE9BQU9HO0FBQ1QifQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGVybUFzQ29uc3RydWN0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBDb25zdHJ1Y3RvciBmcm9tIFwiLi4vY29uc3RydWN0b3JcIjtcbmltcG9ydCBJbnRyaW5zaWNMZXZlbExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbC9pbnRyaW5zaWNMZXZlbFwiO1xuaW1wb3J0IHRlcm1Bc0NvbnN0cnVjdG9yTm9kZVZlcmlmaWVyIGZyb20gXCIuLi92ZXJpZmllci9ub2RlL3Rlcm1Bc0NvbnN0cnVjdG9yXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVRlcm1Bc0NvbnN0cnVjdG9yKHRlcm1Ob2RlLCB0eXBlTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHRlcm1WZXJpZmllZEFzQ29uc3RydWN0b3IgPSBmYWxzZTtcblxuICBjb25zdCB0ZXJtU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKTtcblxuICBmaWxlQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhcyBhIGNvbnN0cnVjdG9yLi4uYCwgdGVybU5vZGUpO1xuXG4gIGNvbnN0IGludHJpbnNpY0xldmVsTG9jYWxDb250ZXh0ID0gSW50cmluc2ljTGV2ZWxMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSxcbiAgICAgICAgbm9uVGVybWluYWxOb2RlID0gdGVybU5vZGUsIC8vL1xuICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgbG9jYWxDb250ZXh0ID0gaW50cmluc2ljTGV2ZWxMb2NhbENvbnRleHQsICAvLy9cbiAgICAgICAgY2hpbGROb2Rlc1ZlcmlmaWVkID0gdGVybUFzQ29uc3RydWN0b3JOb2RlVmVyaWZpZXIudmVyaWZ5Q2hpbGROb2RlcyhjaGlsZE5vZGVzLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICB9KTtcblxuICBpZiAoY2hpbGROb2Rlc1ZlcmlmaWVkKSB7XG4gICAgbGV0IHR5cGUgPSBudWxsO1xuXG4gICAgaWYgKHR5cGVOb2RlID09PSBudWxsKSB7XG4gICAgICB0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTm9kZSh0eXBlTm9kZSk7XG5cbiAgICAgIGlmICh0eXBlICE9PSBudWxsKSB7XG4gICAgICAgIHRlcm1WZXJpZmllZEFzQ29uc3RydWN0b3IgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdHlwZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlTm9kZSk7XG5cbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHt0ZXJtU3RyaW5nfScgY29uc3RydWN0b3IncyAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBub3QgcHJlc2VudC5gLCB0ZXJtTm9kZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRlcm1WZXJpZmllZEFzQ29uc3RydWN0b3IpIHtcbiAgICAgIGNvbnN0IHRva2VucyA9IGZpbGVDb250ZXh0LmdldFRva2VucygpLFxuICAgICAgICAgICAgY29uc3RydWN0b3IgPSBDb25zdHJ1Y3Rvci5mcm9tVGVybU5vZGVUeXBlQW5kVG9rZW5zKHRlcm1Ob2RlLCB0eXBlLCB0b2tlbnMpO1xuXG4gICAgICBmaWxlQ29udGV4dC5hZGRDb25zdHJ1Y3Rvcihjb25zdHJ1Y3Rvcik7XG4gICAgfVxuICB9XG5cbiAgaWYgKHRlcm1WZXJpZmllZEFzQ29uc3RydWN0b3IpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFzIGEgY29uc3RydWN0b3IuYCwgdGVybU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHRlcm1WZXJpZmllZEFzQ29uc3RydWN0b3I7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5VGVybUFzQ29uc3RydWN0b3IiLCJ0ZXJtTm9kZSIsInR5cGVOb2RlIiwiZmlsZUNvbnRleHQiLCJ0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yIiwidGVybVN0cmluZyIsIm5vZGVBc1N0cmluZyIsImRlYnVnIiwiaW50cmluc2ljTGV2ZWxMb2NhbENvbnRleHQiLCJJbnRyaW5zaWNMZXZlbExvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsIm5vblRlcm1pbmFsTm9kZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwibG9jYWxDb250ZXh0IiwiY2hpbGROb2Rlc1ZlcmlmaWVkIiwidGVybUFzQ29uc3RydWN0b3JOb2RlVmVyaWZpZXIiLCJ2ZXJpZnlDaGlsZE5vZGVzIiwidmVyaWZpZWRBaGVhZCIsInR5cGUiLCJmaW5kVHlwZUJ5VHlwZU5vZGUiLCJ0eXBlU3RyaW5nIiwidG9rZW5zIiwiZ2V0VG9rZW5zIiwiY29uc3RydWN0b3IiLCJDb25zdHJ1Y3RvciIsImZyb21UZXJtTm9kZVR5cGVBbmRUb2tlbnMiLCJhZGRDb25zdHJ1Y3RvciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUF3QkE7OztrRUFKQTtxRUFDZTt3RUFDRzs7Ozs7O0FBRTNCLFNBQVNBLHdCQUF3QkMsUUFBUSxFQUFFQyxRQUFRLEVBQUVDLFdBQVc7SUFDN0UsSUFBSUMsNEJBQTRCO0lBRWhDLElBQU1DLGFBQWFGLFlBQVlHLFlBQVksQ0FBQ0w7SUFFNUNFLFlBQVlJLEtBQUssQ0FBQyxBQUFDLGtCQUE0QixPQUFYRixZQUFXLCtCQUE2Qko7SUFFNUUsSUFBTU8sNkJBQTZCQyx1QkFBMEIsQ0FBQ0MsZUFBZSxDQUFDUCxjQUN4RVEsa0JBQWtCVixVQUNsQlcsYUFBYUQsZ0JBQWdCRSxhQUFhLElBQzFDQyxlQUFlTiw0QkFDZk8scUJBQXFCQywwQkFBNkIsQ0FBQ0MsZ0JBQWdCLENBQUNMLFlBQVlFLGNBQWM7UUFDNUYsSUFBTUksZ0JBQWdCO1FBRXRCLE9BQU9BO0lBQ1Q7SUFFTixJQUFJSCxvQkFBb0I7UUFDdEIsSUFBSUksT0FBTztRQUVYLElBQUlqQixhQUFhLE1BQU07WUFDckJFLDRCQUE0QjtRQUM5QixPQUFPO1lBQ0xlLE9BQU9oQixZQUFZaUIsa0JBQWtCLENBQUNsQjtZQUV0QyxJQUFJaUIsU0FBUyxNQUFNO2dCQUNqQmYsNEJBQTRCO1lBQzlCLE9BQU87Z0JBQ0wsSUFBTWlCLGFBQWFsQixZQUFZRyxZQUFZLENBQUNKO2dCQUU1Q0MsWUFBWUksS0FBSyxDQUFDLEFBQUMsUUFBcUNjLE9BQTlCaEIsWUFBVyxxQkFBOEIsT0FBWGdCLFlBQVcsMkJBQXlCcEI7WUFDOUY7UUFDRjtRQUVBLElBQUlHLDJCQUEyQjtZQUM3QixJQUFNa0IsU0FBU25CLFlBQVlvQixTQUFTLElBQzlCQyxjQUFjQyxvQkFBVyxDQUFDQyx5QkFBeUIsQ0FBQ3pCLFVBQVVrQixNQUFNRztZQUUxRW5CLFlBQVl3QixjQUFjLENBQUNIO1FBQzdCO0lBQ0Y7SUFFQSxJQUFJcEIsMkJBQTJCO1FBQzdCRCxZQUFZSSxLQUFLLENBQUMsQUFBQyxvQkFBOEIsT0FBWEYsWUFBVyw2QkFBMkJKO0lBQzlFO0lBRUEsT0FBT0c7QUFDVCJ9
@@ -10,10 +10,10 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _theorem = /*#__PURE__*/ _interop_require_default(require("../theorem"));
12
12
  var _proof = /*#__PURE__*/ _interop_require_default(require("../verify/proof"));
13
- var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
14
13
  var _labels = /*#__PURE__*/ _interop_require_default(require("../verify/labels"));
15
14
  var _consequent = /*#__PURE__*/ _interop_require_default(require("../verify/consequent"));
16
15
  var _suppositions = /*#__PURE__*/ _interop_require_default(require("../verify/suppositions"));
16
+ var _intrinsicLevel = /*#__PURE__*/ _interop_require_default(require("../context/local/intrinsicLevel"));
17
17
  var _array = require("../utilities/array");
18
18
  var _query = require("../utilities/query");
19
19
  function _interop_require_default(obj) {
@@ -24,11 +24,11 @@ function _interop_require_default(obj) {
24
24
  var proofNodeQuery = (0, _query.nodeQuery)("/theorem/proof!"), labelNodesQuery = (0, _query.nodesQuery)("/theorem/label"), consequentNodeQuery = (0, _query.nodeQuery)("/theorem/consequent!"), suppositionsNodeQuery = (0, _query.nodesQuery)("/theorem/supposition");
25
25
  function verifyTheorem(theoremNode, fileContext) {
26
26
  var theoremVerified = false;
27
- var labelNodes = labelNodesQuery(theoremNode), labelsString = fileContext.nodesAsString(labelNodes), localContext = _local.default.fromFileContext(fileContext);
27
+ var labelNodes = labelNodesQuery(theoremNode), labelsString = fileContext.nodesAsString(labelNodes);
28
28
  fileContext.trace("Verifying the '".concat(labelsString, "' theorem..."), theoremNode);
29
29
  var labels = [], labelsVerified = (0, _labels.default)(labelNodes, labels, fileContext);
30
30
  if (labelsVerified) {
31
- var suppositions = [], suppositionNodes = suppositionsNodeQuery(theoremNode), suppositionsVerified = (0, _suppositions.default)(suppositionNodes, suppositions, localContext);
31
+ var intrinsicLevelLocalContext = _intrinsicLevel.default.fromFileContext(fileContext), suppositionNodes = suppositionsNodeQuery(theoremNode), suppositions = [], localContext = intrinsicLevelLocalContext, suppositionsVerified = (0, _suppositions.default)(suppositionNodes, suppositions, localContext);
32
32
  if (suppositionsVerified) {
33
33
  var consequents = [], consequentNode = consequentNodeQuery(theoremNode), consequentVerified = (0, _consequent.default)(consequentNode, consequents, localContext);
34
34
  if (consequentVerified) {
@@ -47,4 +47,4 @@ function verifyTheorem(theoremNode, fileContext) {
47
47
  return theoremVerified;
48
48
  }
49
49
 
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGhlb3JlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFRoZW9yZW0gZnJvbSBcIi4uL3RoZW9yZW1cIjtcbmltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgdmVyaWZ5TGFiZWxzIGZyb20gXCIuLi92ZXJpZnkvbGFiZWxzXCI7XG5pbXBvcnQgdmVyaWZ5Q29uc2VxdWVudCBmcm9tIFwiLi4vdmVyaWZ5L2NvbnNlcXVlbnRcIjtcbmltcG9ydCB2ZXJpZnlTdXBwb3NpdGlvbnMgZnJvbSBcIi4uL3ZlcmlmeS9zdXBwb3NpdGlvbnNcIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHByb29mTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3RoZW9yZW0vcHJvb2YhXCIpLFxuICAgICAgbGFiZWxOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi90aGVvcmVtL2xhYmVsXCIpLFxuICAgICAgY29uc2VxdWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90aGVvcmVtL2NvbnNlcXVlbnQhXCIpLFxuICAgICAgc3VwcG9zaXRpb25zTm9kZVF1ZXJ5ID0gbm9kZXNRdWVyeShcIi90aGVvcmVtL3N1cHBvc2l0aW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlUaGVvcmVtKHRoZW9yZW1Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgdGhlb3JlbVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbGFiZWxOb2RlcyA9IGxhYmVsTm9kZXNRdWVyeSh0aGVvcmVtTm9kZSksXG4gICAgICAgIGxhYmVsc1N0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVzQXNTdHJpbmcobGFiZWxOb2RlcyksXG4gICAgICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2xhYmVsc1N0cmluZ30nIHRoZW9yZW0uLi5gLCB0aGVvcmVtTm9kZSk7XG5cbiAgY29uc3QgbGFiZWxzID0gW10sXG4gICAgICAgIGxhYmVsc1ZlcmlmaWVkID0gdmVyaWZ5TGFiZWxzKGxhYmVsTm9kZXMsIGxhYmVscywgZmlsZUNvbnRleHQpO1xuXG4gIGlmIChsYWJlbHNWZXJpZmllZCkge1xuICAgIGNvbnN0IHN1cHBvc2l0aW9ucyA9IFtdLFxuICAgICAgICAgIHN1cHBvc2l0aW9uTm9kZXMgPSBzdXBwb3NpdGlvbnNOb2RlUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uc1ZlcmlmaWVkID0gdmVyaWZ5U3VwcG9zaXRpb25zKHN1cHBvc2l0aW9uTm9kZXMsIHN1cHBvc2l0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChzdXBwb3NpdGlvbnNWZXJpZmllZCkge1xuICAgICAgY29uc3QgY29uc2VxdWVudHMgPSBbXSxcbiAgICAgICAgICAgIGNvbnNlcXVlbnROb2RlID0gY29uc2VxdWVudE5vZGVRdWVyeSh0aGVvcmVtTm9kZSksXG4gICAgICAgICAgICBjb25zZXF1ZW50VmVyaWZpZWQgPSB2ZXJpZnlDb25zZXF1ZW50KGNvbnNlcXVlbnROb2RlLCBjb25zZXF1ZW50cywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKGNvbnNlcXVlbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBwcm9vZk5vZGUgPSBwcm9vZk5vZGVRdWVyeSh0aGVvcmVtTm9kZSksXG4gICAgICAgICAgICAgIGZpcnN0Q29uc2VxdWVudCA9IGZpcnN0KGNvbnNlcXVlbnRzKSxcbiAgICAgICAgICAgICAgY29uc2VxdWVudCA9IGZpcnN0Q29uc2VxdWVudCwgLy8vXG4gICAgICAgICAgICAgIHByb29mVmVyaWZpZWQgPSB2ZXJpZnlQcm9vZihwcm9vZk5vZGUsIGNvbnNlcXVlbnQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHByb29mVmVyaWZpZWQpIHtcbiAgICAgICAgICBjb25zdCB0aGVvcmVtID0gVGhlb3JlbS5mcm9tTGFiZWxzU3VwcG9zaXRpb25zQ29uc2VxdWVudEFuZExvY2FsQ29udGV4dChsYWJlbHMsIHN1cHBvc2l0aW9ucywgY29uc2VxdWVudCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICAgIGZpbGVDb250ZXh0LmFkZFRoZW9yZW0odGhlb3JlbSk7XG5cbiAgICAgICAgICB0aGVvcmVtVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHRoZW9yZW1WZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bGFiZWxzU3RyaW5nfScgdGhlb3JlbS5gLCB0aGVvcmVtTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdGhlb3JlbVZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVRoZW9yZW0iLCJwcm9vZk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImxhYmVsTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJjb25zZXF1ZW50Tm9kZVF1ZXJ5Iiwic3VwcG9zaXRpb25zTm9kZVF1ZXJ5IiwidGhlb3JlbU5vZGUiLCJmaWxlQ29udGV4dCIsInRoZW9yZW1WZXJpZmllZCIsImxhYmVsTm9kZXMiLCJsYWJlbHNTdHJpbmciLCJub2Rlc0FzU3RyaW5nIiwibG9jYWxDb250ZXh0IiwiTG9jYWxDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwidHJhY2UiLCJsYWJlbHMiLCJsYWJlbHNWZXJpZmllZCIsInZlcmlmeUxhYmVscyIsInN1cHBvc2l0aW9ucyIsInN1cHBvc2l0aW9uTm9kZXMiLCJzdXBwb3NpdGlvbnNWZXJpZmllZCIsInZlcmlmeVN1cHBvc2l0aW9ucyIsImNvbnNlcXVlbnRzIiwiY29uc2VxdWVudE5vZGUiLCJjb25zZXF1ZW50VmVyaWZpZWQiLCJ2ZXJpZnlDb25zZXF1ZW50IiwicHJvb2ZOb2RlIiwiZmlyc3RDb25zZXF1ZW50IiwiZmlyc3QiLCJjb25zZXF1ZW50IiwicHJvb2ZWZXJpZmllZCIsInZlcmlmeVByb29mIiwidGhlb3JlbSIsIlRoZW9yZW0iLCJmcm9tTGFiZWxzU3VwcG9zaXRpb25zQ29uc2VxdWVudEFuZExvY2FsQ29udGV4dCIsImFkZFRoZW9yZW0iLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBd0JBOzs7OERBZko7NERBQ0k7NERBQ0M7NkRBQ0E7aUVBQ0k7bUVBQ0U7cUJBRVQ7cUJBQ2dCOzs7Ozs7QUFFdEMsSUFBTUMsaUJBQWlCQyxJQUFBQSxnQkFBUyxFQUFDLG9CQUMzQkMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLG1CQUM3QkMsc0JBQXNCSCxJQUFBQSxnQkFBUyxFQUFDLHlCQUNoQ0ksd0JBQXdCRixJQUFBQSxpQkFBVSxFQUFDO0FBRTFCLFNBQVNKLGNBQWNPLFdBQVcsRUFBRUMsV0FBVztJQUM1RCxJQUFJQyxrQkFBa0I7SUFFdEIsSUFBTUMsYUFBYVAsZ0JBQWdCSSxjQUM3QkksZUFBZUgsWUFBWUksYUFBYSxDQUFDRixhQUN6Q0csZUFBZUMsY0FBWSxDQUFDQyxlQUFlLENBQUNQO0lBRWxEQSxZQUFZUSxLQUFLLENBQUMsQUFBQyxrQkFBOEIsT0FBYkwsY0FBYSxpQkFBZUo7SUFFaEUsSUFBTVUsU0FBUyxFQUFFLEVBQ1hDLGlCQUFpQkMsSUFBQUEsZUFBWSxFQUFDVCxZQUFZTyxRQUFRVDtJQUV4RCxJQUFJVSxnQkFBZ0I7UUFDbEIsSUFBTUUsZUFBZSxFQUFFLEVBQ2pCQyxtQkFBbUJmLHNCQUFzQkMsY0FDekNlLHVCQUF1QkMsSUFBQUEscUJBQWtCLEVBQUNGLGtCQUFrQkQsY0FBY1A7UUFFaEYsSUFBSVMsc0JBQXNCO1lBQ3hCLElBQU1FLGNBQWMsRUFBRSxFQUNoQkMsaUJBQWlCcEIsb0JBQW9CRSxjQUNyQ21CLHFCQUFxQkMsSUFBQUEsbUJBQWdCLEVBQUNGLGdCQUFnQkQsYUFBYVg7WUFFekUsSUFBSWEsb0JBQW9CO2dCQUN0QixJQUFNRSxZQUFZM0IsZUFBZU0sY0FDM0JzQixrQkFBa0JDLElBQUFBLFlBQUssRUFBQ04sY0FDeEJPLGFBQWFGLGlCQUNiRyxnQkFBZ0JDLElBQUFBLGNBQVcsRUFBQ0wsV0FBV0csWUFBWWxCO2dCQUV6RCxJQUFJbUIsZUFBZTtvQkFDakIsSUFBTUUsVUFBVUMsZ0JBQU8sQ0FBQ0MsK0NBQStDLENBQUNuQixRQUFRRyxjQUFjVyxZQUFZbEI7b0JBRTFHTCxZQUFZNkIsVUFBVSxDQUFDSDtvQkFFdkJ6QixrQkFBa0I7Z0JBQ3BCO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsSUFBSUEsaUJBQWlCO1FBQ25CRCxZQUFZOEIsS0FBSyxDQUFDLEFBQUMsb0JBQWdDLE9BQWIzQixjQUFhLGVBQWFKO0lBQ2xFO0lBRUEsT0FBT0U7QUFDVCJ9
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGhlb3JlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFRoZW9yZW0gZnJvbSBcIi4uL3RoZW9yZW1cIjtcbmltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgdmVyaWZ5TGFiZWxzIGZyb20gXCIuLi92ZXJpZnkvbGFiZWxzXCI7XG5pbXBvcnQgdmVyaWZ5Q29uc2VxdWVudCBmcm9tIFwiLi4vdmVyaWZ5L2NvbnNlcXVlbnRcIjtcbmltcG9ydCB2ZXJpZnlTdXBwb3NpdGlvbnMgZnJvbSBcIi4uL3ZlcmlmeS9zdXBwb3NpdGlvbnNcIjtcbmltcG9ydCBJbnRyaW5zaWNMZXZlbExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbC9pbnRyaW5zaWNMZXZlbFwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgcHJvb2ZOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGhlb3JlbS9wcm9vZiFcIiksXG4gICAgICBsYWJlbE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3RoZW9yZW0vbGFiZWxcIiksXG4gICAgICBjb25zZXF1ZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3RoZW9yZW0vY29uc2VxdWVudCFcIiksXG4gICAgICBzdXBwb3NpdGlvbnNOb2RlUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3RoZW9yZW0vc3VwcG9zaXRpb25cIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVRoZW9yZW0odGhlb3JlbU5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCB0aGVvcmVtVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBsYWJlbE5vZGVzID0gbGFiZWxOb2Rlc1F1ZXJ5KHRoZW9yZW1Ob2RlKSxcbiAgICAgICAgbGFiZWxzU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZXNBc1N0cmluZyhsYWJlbE5vZGVzKTtcblxuICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyB0aGVvcmVtLi4uYCwgdGhlb3JlbU5vZGUpO1xuXG4gIGNvbnN0IGxhYmVscyA9IFtdLFxuICAgICAgICBsYWJlbHNWZXJpZmllZCA9IHZlcmlmeUxhYmVscyhsYWJlbE5vZGVzLCBsYWJlbHMsIGZpbGVDb250ZXh0KTtcblxuICBpZiAobGFiZWxzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBpbnRyaW5zaWNMZXZlbExvY2FsQ29udGV4dCA9IEludHJpbnNpY0xldmVsTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3VwcG9zaXRpb25Ob2RlcyA9IHN1cHBvc2l0aW9uc05vZGVRdWVyeSh0aGVvcmVtTm9kZSksXG4gICAgICAgICAgc3VwcG9zaXRpb25zID0gW10sXG4gICAgICAgICAgbG9jYWxDb250ZXh0ID0gaW50cmluc2ljTGV2ZWxMb2NhbENvbnRleHQsXG4gICAgICAgICAgc3VwcG9zaXRpb25zVmVyaWZpZWQgPSB2ZXJpZnlTdXBwb3NpdGlvbnMoc3VwcG9zaXRpb25Ob2Rlcywgc3VwcG9zaXRpb25zLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHN1cHBvc2l0aW9uc1ZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBjb25zZXF1ZW50cyA9IFtdLFxuICAgICAgICAgICAgY29uc2VxdWVudE5vZGUgPSBjb25zZXF1ZW50Tm9kZVF1ZXJ5KHRoZW9yZW1Ob2RlKSxcbiAgICAgICAgICAgIGNvbnNlcXVlbnRWZXJpZmllZCA9IHZlcmlmeUNvbnNlcXVlbnQoY29uc2VxdWVudE5vZGUsIGNvbnNlcXVlbnRzLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoY29uc2VxdWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IHByb29mTm9kZSA9IHByb29mTm9kZVF1ZXJ5KHRoZW9yZW1Ob2RlKSxcbiAgICAgICAgICAgICAgZmlyc3RDb25zZXF1ZW50ID0gZmlyc3QoY29uc2VxdWVudHMpLFxuICAgICAgICAgICAgICBjb25zZXF1ZW50ID0gZmlyc3RDb25zZXF1ZW50LCAvLy9cbiAgICAgICAgICAgICAgcHJvb2ZWZXJpZmllZCA9IHZlcmlmeVByb29mKHByb29mTm9kZSwgY29uc2VxdWVudCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICBpZiAocHJvb2ZWZXJpZmllZCkge1xuICAgICAgICAgIGNvbnN0IHRoZW9yZW0gPSBUaGVvcmVtLmZyb21MYWJlbHNTdXBwb3NpdGlvbnNDb25zZXF1ZW50QW5kTG9jYWxDb250ZXh0KGxhYmVscywgc3VwcG9zaXRpb25zLCBjb25zZXF1ZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgICAgZmlsZUNvbnRleHQuYWRkVGhlb3JlbSh0aGVvcmVtKTtcblxuICAgICAgICAgIHRoZW9yZW1WZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAodGhlb3JlbVZlcmlmaWVkKSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyB0aGVvcmVtLmAsIHRoZW9yZW1Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiB0aGVvcmVtVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5VGhlb3JlbSIsInByb29mTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibGFiZWxOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsImNvbnNlcXVlbnROb2RlUXVlcnkiLCJzdXBwb3NpdGlvbnNOb2RlUXVlcnkiLCJ0aGVvcmVtTm9kZSIsImZpbGVDb250ZXh0IiwidGhlb3JlbVZlcmlmaWVkIiwibGFiZWxOb2RlcyIsImxhYmVsc1N0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJ0cmFjZSIsImxhYmVscyIsImxhYmVsc1ZlcmlmaWVkIiwidmVyaWZ5TGFiZWxzIiwiaW50cmluc2ljTGV2ZWxMb2NhbENvbnRleHQiLCJJbnRyaW5zaWNMZXZlbExvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsInN1cHBvc2l0aW9uTm9kZXMiLCJzdXBwb3NpdGlvbnMiLCJsb2NhbENvbnRleHQiLCJzdXBwb3NpdGlvbnNWZXJpZmllZCIsInZlcmlmeVN1cHBvc2l0aW9ucyIsImNvbnNlcXVlbnRzIiwiY29uc2VxdWVudE5vZGUiLCJjb25zZXF1ZW50VmVyaWZpZWQiLCJ2ZXJpZnlDb25zZXF1ZW50IiwicHJvb2ZOb2RlIiwiZmlyc3RDb25zZXF1ZW50IiwiZmlyc3QiLCJjb25zZXF1ZW50IiwicHJvb2ZWZXJpZmllZCIsInZlcmlmeVByb29mIiwidGhlb3JlbSIsIlRoZW9yZW0iLCJmcm9tTGFiZWxzU3VwcG9zaXRpb25zQ29uc2VxdWVudEFuZExvY2FsQ29udGV4dCIsImFkZFRoZW9yZW0iLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBd0JBOzs7OERBZko7NERBQ0k7NkRBQ0M7aUVBQ0k7bUVBQ0U7cUVBQ1E7cUJBRWpCO3FCQUNnQjs7Ozs7O0FBRXRDLElBQU1DLGlCQUFpQkMsSUFBQUEsZ0JBQVMsRUFBQyxvQkFDM0JDLGtCQUFrQkMsSUFBQUEsaUJBQVUsRUFBQyxtQkFDN0JDLHNCQUFzQkgsSUFBQUEsZ0JBQVMsRUFBQyx5QkFDaENJLHdCQUF3QkYsSUFBQUEsaUJBQVUsRUFBQztBQUUxQixTQUFTSixjQUFjTyxXQUFXLEVBQUVDLFdBQVc7SUFDNUQsSUFBSUMsa0JBQWtCO0lBRXRCLElBQU1DLGFBQWFQLGdCQUFnQkksY0FDN0JJLGVBQWVILFlBQVlJLGFBQWEsQ0FBQ0Y7SUFFL0NGLFlBQVlLLEtBQUssQ0FBQyxBQUFDLGtCQUE4QixPQUFiRixjQUFhLGlCQUFlSjtJQUVoRSxJQUFNTyxTQUFTLEVBQUUsRUFDWEMsaUJBQWlCQyxJQUFBQSxlQUFZLEVBQUNOLFlBQVlJLFFBQVFOO0lBRXhELElBQUlPLGdCQUFnQjtRQUNsQixJQUFNRSw2QkFBNkJDLHVCQUEwQixDQUFDQyxlQUFlLENBQUNYLGNBQ3hFWSxtQkFBbUJkLHNCQUFzQkMsY0FDekNjLGVBQWUsRUFBRSxFQUNqQkMsZUFBZUwsNEJBQ2ZNLHVCQUF1QkMsSUFBQUEscUJBQWtCLEVBQUNKLGtCQUFrQkMsY0FBY0M7UUFFaEYsSUFBSUMsc0JBQXNCO1lBQ3hCLElBQU1FLGNBQWMsRUFBRSxFQUNoQkMsaUJBQWlCckIsb0JBQW9CRSxjQUNyQ29CLHFCQUFxQkMsSUFBQUEsbUJBQWdCLEVBQUNGLGdCQUFnQkQsYUFBYUg7WUFFekUsSUFBSUssb0JBQW9CO2dCQUN0QixJQUFNRSxZQUFZNUIsZUFBZU0sY0FDM0J1QixrQkFBa0JDLElBQUFBLFlBQUssRUFBQ04sY0FDeEJPLGFBQWFGLGlCQUNiRyxnQkFBZ0JDLElBQUFBLGNBQVcsRUFBQ0wsV0FBV0csWUFBWVY7Z0JBRXpELElBQUlXLGVBQWU7b0JBQ2pCLElBQU1FLFVBQVVDLGdCQUFPLENBQUNDLCtDQUErQyxDQUFDdkIsUUFBUU8sY0FBY1csWUFBWVY7b0JBRTFHZCxZQUFZOEIsVUFBVSxDQUFDSDtvQkFFdkIxQixrQkFBa0I7Z0JBQ3BCO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsSUFBSUEsaUJBQWlCO1FBQ25CRCxZQUFZK0IsS0FBSyxDQUFDLEFBQUMsb0JBQWdDLE9BQWI1QixjQUFhLGVBQWFKO0lBQ2xFO0lBRUEsT0FBT0U7QUFDVCJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-verify-cli",
3
3
  "author": "James Smith",
4
- "version": "0.0.913",
4
+ "version": "0.0.915",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
@@ -12,7 +12,7 @@
12
12
  "dependencies": {
13
13
  "argumentative": "^2.0.28",
14
14
  "necessary": "^14.0.1",
15
- "occam-custom-grammars": "^5.0.814",
15
+ "occam-custom-grammars": "^5.0.816",
16
16
  "occam-entities": "^1.0.147",
17
17
  "occam-file-system": "^6.0.188",
18
18
  "occam-grammar-utilities": "^8.0.207",
@@ -9,15 +9,15 @@ export default class FrameAssertionAssignment {
9
9
  return this.frameAssertion;
10
10
  }
11
11
 
12
- assign(localMetaContext) {
13
- const frameAssertionAdded = localMetaContext.addFrameAssertion(this.frameAssertion),
12
+ assign(localContext) {
13
+ const frameAssertionAdded = localContext.addFrameAssertion(this.frameAssertion),
14
14
  frameAssertionNode = this.frameAssertion.getNode(),
15
- frameAssertionString = localMetaContext.nodeAsString(frameAssertionNode),
15
+ frameAssertionString = localContext.nodeAsString(frameAssertionNode),
16
16
  frameAssertionAssigned = frameAssertionAdded; ///
17
17
 
18
18
  frameAssertionAssigned ?
19
- localMetaContext.trace(`Assigned the '${frameAssertionString}' frame assertion.`, frameAssertionNode) :
20
- localMetaContext.debug(`Unable to assign the '${frameAssertionString}' frame assertion.`, frameAssertionNode);
19
+ localContext.trace(`Assigned the '${frameAssertionString}' frame assertion.`, frameAssertionNode) :
20
+ localContext.debug(`Unable to assign the '${frameAssertionString}' frame assertion.`, frameAssertionNode);
21
21
 
22
22
  return frameAssertionAssigned;
23
23
  }
@@ -3,7 +3,7 @@
3
3
  import Label from "./label";
4
4
  import Consequent from "./consequent";
5
5
  import Supposition from "./supposition";
6
- import LocalContext from "./context/local";
6
+ import IntrinsicLevelLocalContext from "./context/local/intrinsicLevel";
7
7
 
8
8
  import { reverse, correlate } from "./utilities/array";
9
9
 
@@ -119,7 +119,9 @@ export default class AxiomLemmaTheoremConjecture {
119
119
 
120
120
  json = localContextJSON; ///
121
121
 
122
- localContext = LocalContext.fromJSONAndFileContext(json, fileContext);
122
+ const intrinsicLevelLocalContext = IntrinsicLevelLocalContext.fromJSONAndFileContext(json, fileContext);
123
+
124
+ localContext = intrinsicLevelLocalContext; ///
123
125
 
124
126
  return new Class(labels, suppositions, consequent, localContext); ///
125
127
  }
package/src/conclusion.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import LocalMetaContext from "./context/localMeta";
3
+ import MetaLevelLocalContext from "./context/local/metaLevel";
4
4
  import metaLevelNodesVerifier from "./verifier/nodes/metaLevel";
5
5
  import intrinsicLevelAgainstMetaLevelNodesVerifier from "./verifier/nodes/intrinsicLevelAgainstMetaLevel";
6
6
 
@@ -41,16 +41,16 @@ export default class Conclusion {
41
41
  return matchesStatementNose;
42
42
  }
43
43
 
44
- matchMetastatementNode(metastatementNode, substitutions, fileContext, localMetaContext) {
44
+ matchMetastatementNode(metastatementNode, substitutions, fileContext, localContext) {
45
45
  let matchesMetastatementNode = false;
46
46
 
47
47
  if (this.metastatementNode !== null) {
48
- const nonTerminalNodeA = this.metastatementNode, ///
48
+ const metaLevelLocalContext = MetaLevelLocalContext.fromFileContext(fileContext),
49
+ nonTerminalNodeA = this.metastatementNode, ///
49
50
  nonTerminalNodeB = metastatementNode, ///
50
- fileContextA = fileContext, ///
51
- localMetaContextA = LocalMetaContext.fromFileContext(fileContextA),
52
- localMetaContextB = localMetaContext, ///
53
- nonTerminalNodeVerified = metaLevelNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, () => {
51
+ localContextA = metaLevelLocalContext, ///
52
+ localContextB = localContext, ///
53
+ nonTerminalNodeVerified = metaLevelNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
54
54
  const verifiedAhead = true;
55
55
 
56
56
  return verifiedAhead;
@@ -513,8 +513,8 @@ export default class FileContext {
513
513
  return labelPresent;
514
514
  }
515
515
 
516
- isMetavariablePresentByMetavariableNode(metavariableNode, localMetaContext) {
517
- const metavariable = this.findMetavariableByMetavariableNode(metavariableNode, localMetaContext),
516
+ isMetavariablePresentByMetavariableNode(metavariableNode, localContext) {
517
+ const metavariable = this.findMetavariableByMetavariableNode(metavariableNode, localContext),
518
518
  metavariablePresent = (metavariable !== null);
519
519
 
520
520
  return metavariablePresent;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- import Variable from "../variable";
4
- import Equivalence from "../equivalence";
5
- import contextMixins from "../mixins/context";
3
+ import Variable from "../../variable";
4
+ import Equivalence from "../../equivalence";
5
+ import contextMixins from "../../mixins/context";
6
6
 
7
- import { last, reverse } from "../utilities/array";
8
- import { mergeEquivalences, findEquivalenceByTerm, groundedTermsAndDefinedVariablesFromFromEquivalences } from "../utilities/equivalences";
7
+ import { last, reverse } from "../../utilities/array";
8
+ import { mergeEquivalences, findEquivalenceByTerm, groundedTermsAndDefinedVariablesFromFromEquivalences } from "../../utilities/equivalences";
9
9
 
10
- class LocalContext {
10
+ class IntrinsicLevelLocalContext {
11
11
  constructor(context, variables, proofSteps, equivalences) {
12
12
  this.context = context;
13
13
  this.variables = variables;
@@ -46,13 +46,19 @@ class LocalContext {
46
46
 
47
47
  const equivalencesA = this.equivalences, ///
48
48
  equivalencesB = equivalences,
49
- localContext = this; ///
49
+ intrinsicLevelLocalContext = this; ///
50
50
 
51
- equivalences = mergeEquivalences(equivalencesA, equivalencesB, localContext); ///
51
+ equivalences = mergeEquivalences(equivalencesA, equivalencesB, intrinsicLevelLocalContext); ///
52
52
 
53
53
  return equivalences;
54
54
  }
55
55
 
56
+ isIntrinsicLevel() {
57
+ const intrinsicLevel = true;
58
+
59
+ return intrinsicLevel;
60
+ }
61
+
56
62
  getLastProofStep() {
57
63
  let lastProofStep = null;
58
64
 
@@ -72,8 +78,8 @@ class LocalContext {
72
78
  equivalence = findEquivalenceByTerm(equivalences, term);
73
79
 
74
80
  if (equivalence !== null) {
75
- const localContext = this, ///
76
- equivalenceType = equivalence.getType(localContext);
81
+ const intrinsicLevelLocalContext = this, ///
82
+ equivalenceType = equivalence.getType(intrinsicLevelLocalContext);
77
83
 
78
84
  termType = equivalenceType; ///
79
85
  } else {
@@ -274,20 +280,19 @@ class LocalContext {
274
280
  variables = [],
275
281
  proofSteps = [],
276
282
  equivalences = [],
277
- localContext = new LocalContext(context, variables, proofSteps, equivalences);
283
+ intrinsicLevelLocalContext = new IntrinsicLevelLocalContext(context, variables, proofSteps, equivalences);
278
284
 
279
- return localContext;
285
+ return intrinsicLevelLocalContext;
280
286
  }
281
287
 
282
288
  static fromLocalContext(localContext) {
283
289
  const context = localContext, ///
284
290
  variables = [],
285
291
  proofSteps = [],
286
- equivalences = [];
287
-
288
- localContext = new LocalContext(context, variables, proofSteps, equivalences);
292
+ equivalences = [],
293
+ intrinsicLevelLocalContext = new IntrinsicLevelLocalContext(context, variables, proofSteps, equivalences);
289
294
 
290
- return localContext;
295
+ return intrinsicLevelLocalContext;
291
296
  }
292
297
 
293
298
  static fromJSONAndFileContext(json, fileContext) {
@@ -305,12 +310,12 @@ class LocalContext {
305
310
  const context = fileContext, ///
306
311
  proofSteps = [],
307
312
  equivalences = [],
308
- localContext = new LocalContext(context, variables, proofSteps, equivalences);
313
+ intrinsicLevelLocalContext = new IntrinsicLevelLocalContext(context, variables, proofSteps, equivalences);
309
314
 
310
- return localContext;
315
+ return intrinsicLevelLocalContext;
311
316
  }
312
317
  }
313
318
 
314
- Object.assign(LocalContext.prototype, contextMixins);
319
+ Object.assign(IntrinsicLevelLocalContext.prototype, contextMixins);
315
320
 
316
- export default LocalContext;
321
+ export default IntrinsicLevelLocalContext;