occam-verify-cli 0.0.968 → 0.0.971

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 (145) hide show
  1. package/bin/action/verify.js +6 -8
  2. package/lib/constants.js +5 -1
  3. package/lib/context/file.js +48 -53
  4. package/lib/context/local.js +45 -39
  5. package/lib/context/release.js +3 -3
  6. package/lib/declaration.js +9 -7
  7. package/lib/equivalence.js +23 -21
  8. package/lib/judgement.js +3 -3
  9. package/lib/label.js +3 -3
  10. package/lib/log.js +3 -3
  11. package/lib/metaType.js +7 -7
  12. package/lib/metavariable.js +7 -7
  13. package/lib/node/term/bracketed.js +16 -0
  14. package/lib/proofStep.js +3 -29
  15. package/lib/releaseContext/initialise.js +11 -17
  16. package/lib/resolve/substitutions.js +99 -0
  17. package/lib/rule.js +10 -6
  18. package/lib/substitution/statementForMetavariable.js +93 -98
  19. package/lib/substitution/termForVariable.js +45 -54
  20. package/lib/substitution.js +51 -9
  21. package/lib/substitutions.js +165 -12
  22. package/lib/term.js +8 -1
  23. package/lib/topLevelAssertion.js +10 -6
  24. package/lib/type.js +5 -5
  25. package/lib/unifier/metaLevel.js +10 -3
  26. package/lib/unifier/statementWithCombinator.js +6 -6
  27. package/lib/unifier.js +2 -2
  28. package/lib/unify/metavariableWithStatement.js +13 -48
  29. package/lib/unify/metavariableWithStatementGivenSubstitution.js +39 -0
  30. package/lib/unify/premiseWithProofStep.js +3 -3
  31. package/lib/unify/statement/qualified.js +117 -0
  32. package/lib/unify/statement/unqualified.js +25 -0
  33. package/lib/unify/statementWithBracketedCombinator.js +3 -3
  34. package/lib/unify/statementWithCombinators.js +5 -5
  35. package/lib/unify/statementWithMetaType.js +3 -3
  36. package/lib/unify/statementWithSttaemetnGivenEquivalences.js +45 -0
  37. package/lib/unify/suppositionWithProffStep.js +3 -3
  38. package/lib/unify/variableWithTerm.js +11 -26
  39. package/lib/utilities/array.js +5 -14
  40. package/lib/utilities/assertion.js +24 -0
  41. package/lib/utilities/brackets.js +60 -0
  42. package/lib/utilities/message.js +52 -0
  43. package/lib/utilities/name.js +7 -7
  44. package/lib/utilities/node.js +10 -17
  45. package/lib/utilities/string.js +1 -7
  46. package/lib/utilities/subproof.js +19 -0
  47. package/lib/utilities/unify.js +30 -11
  48. package/lib/variable.js +8 -8
  49. package/lib/verifier/metaLevel.js +6 -6
  50. package/lib/verifier/statementAsCombinator.js +2 -2
  51. package/lib/verify/assertion/contained.js +66 -32
  52. package/lib/verify/assertion/defined.js +51 -46
  53. package/lib/verify/assertion/subproof.js +9 -9
  54. package/lib/verify/assertion/type.js +11 -11
  55. package/lib/verify/conclusion.js +6 -6
  56. package/lib/verify/consequent.js +6 -6
  57. package/lib/verify/declaration/metavariable.js +2 -2
  58. package/lib/verify/declaration.js +34 -20
  59. package/lib/verify/equality.js +13 -13
  60. package/lib/verify/frame.js +38 -24
  61. package/lib/verify/judgement.js +13 -13
  62. package/lib/verify/metavariable.js +2 -2
  63. package/lib/verify/premise.js +5 -5
  64. package/lib/verify/proofStep.js +15 -24
  65. package/lib/verify/statement/qualified.js +15 -124
  66. package/lib/verify/statement/unqualified.js +23 -24
  67. package/lib/verify/statement.js +24 -24
  68. package/lib/verify/statementGivenMetaType.js +3 -3
  69. package/lib/verify/supposition.js +5 -5
  70. package/package.json +2 -2
  71. package/src/constants.js +1 -0
  72. package/src/context/file.js +49 -55
  73. package/src/context/local.js +34 -31
  74. package/src/context/release.js +2 -2
  75. package/src/declaration.js +12 -10
  76. package/src/equivalence.js +27 -26
  77. package/src/judgement.js +2 -2
  78. package/src/label.js +2 -2
  79. package/src/log.js +1 -1
  80. package/src/metaType.js +7 -7
  81. package/src/metavariable.js +7 -7
  82. package/src/node/term/bracketed.js +9 -0
  83. package/src/proofStep.js +3 -48
  84. package/src/releaseContext/initialise.js +13 -24
  85. package/src/resolve/substitutions.js +134 -0
  86. package/src/rule.js +10 -5
  87. package/src/substitution/statementForMetavariable.js +99 -85
  88. package/src/substitution/termForVariable.js +50 -65
  89. package/src/substitution.js +46 -8
  90. package/src/substitutions.js +176 -10
  91. package/src/term.js +6 -0
  92. package/src/topLevelAssertion.js +10 -5
  93. package/src/type.js +4 -4
  94. package/src/unifier/metaLevel.js +11 -3
  95. package/src/unifier/statementWithCombinator.js +5 -5
  96. package/src/unifier.js +1 -1
  97. package/src/unify/metavariableWithStatement.js +17 -71
  98. package/src/unify/metavariableWithStatementGivenSubstitution.js +39 -0
  99. package/src/unify/premiseWithProofStep.js +1 -1
  100. package/src/unify/statement/qualified.js +183 -0
  101. package/src/unify/statement/unqualified.js +24 -0
  102. package/src/unify/statementWithBracketedCombinator.js +2 -2
  103. package/src/unify/statementWithCombinators.js +4 -4
  104. package/src/unify/statementWithMetaType.js +2 -2
  105. package/src/unify/statementWithSttaemetnGivenEquivalences.js +51 -0
  106. package/src/unify/suppositionWithProffStep.js +1 -1
  107. package/src/unify/variableWithTerm.js +14 -35
  108. package/src/utilities/array.js +1 -16
  109. package/src/utilities/assertion.js +19 -0
  110. package/src/utilities/brackets.js +56 -0
  111. package/src/utilities/name.js +8 -8
  112. package/src/utilities/node.js +14 -17
  113. package/src/utilities/string.js +2 -2
  114. package/src/utilities/subproof.js +18 -0
  115. package/src/utilities/unify.js +24 -12
  116. package/src/variable.js +11 -11
  117. package/src/verifier/metaLevel.js +5 -5
  118. package/src/verifier/statementAsCombinator.js +2 -2
  119. package/src/verify/assertion/contained.js +80 -38
  120. package/src/verify/assertion/defined.js +64 -55
  121. package/src/verify/assertion/subproof.js +8 -8
  122. package/src/verify/assertion/type.js +11 -11
  123. package/src/verify/conclusion.js +8 -8
  124. package/src/verify/consequent.js +8 -8
  125. package/src/verify/declaration/metavariable.js +4 -3
  126. package/src/verify/declaration.js +46 -23
  127. package/src/verify/equality.js +13 -13
  128. package/src/verify/frame.js +48 -28
  129. package/src/verify/judgement.js +13 -13
  130. package/src/verify/metavariable.js +3 -3
  131. package/src/verify/premise.js +6 -6
  132. package/src/verify/proofStep.js +14 -31
  133. package/src/verify/statement/qualified.js +18 -199
  134. package/src/verify/statement/unqualified.js +25 -31
  135. package/src/verify/statement.js +23 -23
  136. package/src/verify/statementGivenMetaType.js +2 -2
  137. package/src/verify/supposition.js +6 -6
  138. package/lib/unify/statementAtainstStatement.js +0 -49
  139. package/lib/utilities/lineIndex.js +0 -52
  140. package/lib/utilities/match.js +0 -59
  141. package/lib/utilities/verify.js +0 -19
  142. package/src/unify/statementAtainstStatement.js +0 -56
  143. package/src/utilities/match.js +0 -53
  144. package/src/utilities/verify.js +0 -14
  145. /package/src/utilities/{lineIndex.js → message.js} +0 -0
@@ -16,7 +16,7 @@ function verifyMetavariable(metavariableNode, localContext) {
16
16
  var metavariableVerified = false;
17
17
  var metavariableString = localContext.nodeAsString(metavariableNode);
18
18
  localContext.trace("Verifying the '".concat(metavariableString, "' metavariable..."), metavariableNode);
19
- var name = (0, _name.nameFromMetavariableNode)(metavariableNode), metavariable = localContext.findMetavariableByName(name);
19
+ var metavariableName = (0, _name.metavariableNameFromMetavariableNode)(metavariableNode), metavariable = localContext.findMetavariableByMetavariableName(metavariableName);
20
20
  if (metavariable === null) {
21
21
  localContext.debug("The metavariable '".concat(metavariableString, "' is not present."), metavariableNode);
22
22
  } else {
@@ -48,4 +48,4 @@ function verifyMetavariable(metavariableNode, localContext) {
48
48
  return metavariableVerified;
49
49
  }
50
50
 
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyB1bmlmeVRlcm1XaXRoVGVybVR5cGUgfSBmcm9tIFwiLi4vbWV0YXZhcmlhYmxlXCI7XG5pbXBvcnQgeyBuYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhdmFyaWFibGUvYXJndW1lbnQvdGVybVwiKSxcbiAgICAgIHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXZhcmlhYmxlL2FyZ3VtZW50L3R5cGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGVOb2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLi4uYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgY29uc3QgbmFtZSA9IG5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlID0gbG9jYWxDb250ZXh0LmZpbmRNZXRhdmFyaWFibGVCeU5hbWUobmFtZSk7XG5cbiAgaWYgKG1ldGF2YXJpYWJsZSA9PT0gbnVsbCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgVGhlIG1ldGF2YXJpYWJsZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBpcyBub3QgcHJlc2VudC5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICBpZiAodHlwZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHR5cGVOb2RlKTtcblxuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgd2FzIGZvdW5kIHdoZW4gYSB0ZXJtIHNob3VsZCBiZSBwcmVzZW50LmAsIHR5cGVOb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdGVybVR5cGUgPSBtZXRhdmFyaWFibGUuZ2V0VGVybVR5cGUoKSxcbiAgICAgICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgICAgaWYgKGZhbHNlKSB7XG4gICAgICAgIC8vL1xuICAgICAgfSBlbHNlIGlmICgodGVybVR5cGUgPT09IG51bGwpICYmICh0ZXJtTm9kZSA9PT0gbnVsbCkpIHtcbiAgICAgICAgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIGlmICgodGVybVR5cGUgPT09IG51bGwpICYmICh0ZXJtTm9kZSAhPT0gbnVsbCkpIHtcbiAgICAgICAgY29uc3QgdGVybVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gICAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdhcyBmb3VuZCB3aGVuIG5vbmUgaXMgZXhwZWN0ZWQuYCwgdGVybU5vZGUpO1xuICAgICAgfSBlbHNlIGlmICgodGVybVR5cGUgIT09IG51bGwpICYmICh0ZXJtTm9kZSA9PT0gbnVsbCkpIHtcbiAgICAgICAgY29uc3QgdGVybVR5cGVOYW1lID0gdGVybVR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgTm8gdGVybSB3YXMgZm91bmQgd2hlbiB0aGUgbWV0YXZhcmlhYmxlJ3MgdGVybSB0eXBlIGlzICcke3Rlcm1UeXBlTmFtZX0nLmAsIHRlcm1Ob2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHRlcm1VbmlmaWVkV2l0aFRlcm1UeXBlID0gdW5pZnlUZXJtV2l0aFRlcm1UeXBlKHRlcm1Ob2RlLCB0ZXJtVHlwZSwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICBtZXRhdmFyaWFibGVWZXJpZmllZCA9IHRlcm1VbmlmaWVkV2l0aFRlcm1UeXBlOyAvLy9cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUuYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5TWV0YXZhcmlhYmxlIiwidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVOb2RlUXVlcnkiLCJtZXRhdmFyaWFibGVOb2RlIiwibG9jYWxDb250ZXh0IiwibWV0YXZhcmlhYmxlVmVyaWZpZWQiLCJtZXRhdmFyaWFibGVTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsIm5hbWUiLCJuYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGUiLCJmaW5kTWV0YXZhcmlhYmxlQnlOYW1lIiwiZGVidWciLCJ0eXBlTm9kZSIsInR5cGVTdHJpbmciLCJ0ZXJtVHlwZSIsImdldFRlcm1UeXBlIiwidGVybU5vZGUiLCJ0ZXJtU3RyaW5nIiwidGVybVR5cGVOYW1lIiwiZ2V0TmFtZSIsInRlcm1VbmlmaWVkV2l0aFRlcm1UeXBlIiwidW5pZnlUZXJtV2l0aFRlcm1UeXBlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQXdCQTs7O3FCQVBFOzRCQUNZO29CQUNHO0FBRXpDLElBQU1DLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyxnQ0FDMUJDLGdCQUFnQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUVqQixTQUFTRixtQkFBbUJJLGdCQUFnQixFQUFFQyxZQUFZO0lBQ3ZFLElBQUlDLHVCQUF1QjtJQUUzQixJQUFNQyxxQkFBcUJGLGFBQWFHLFlBQVksQ0FBQ0o7SUFFckRDLGFBQWFJLEtBQUssQ0FBQyxBQUFDLGtCQUFvQyxPQUFuQkYsb0JBQW1CLHNCQUFvQkg7SUFFNUUsSUFBTU0sT0FBT0MsSUFBQUEsOEJBQXdCLEVBQUNQLG1CQUNoQ1EsZUFBZVAsYUFBYVEsc0JBQXNCLENBQUNIO0lBRXpELElBQUlFLGlCQUFpQixNQUFNO1FBQ3pCUCxhQUFhUyxLQUFLLENBQUMsQUFBQyxxQkFBdUMsT0FBbkJQLG9CQUFtQixzQkFBb0JIO0lBQ2pGLE9BQU87UUFDTCxJQUFNVyxXQUFXWixjQUFjQztRQUUvQixJQUFJVyxhQUFhLE1BQU07WUFDckIsSUFBTUMsYUFBYVgsYUFBYUcsWUFBWSxDQUFDTztZQUU3Q1YsYUFBYVMsS0FBSyxDQUFDLEFBQUMsUUFBa0IsT0FBWEUsWUFBVyxvREFBa0REO1FBQzFGLE9BQU87WUFDTCxJQUFNRSxXQUFXTCxhQUFhTSxXQUFXLElBQ25DQyxXQUFXbEIsY0FBY0c7WUFFL0IsSUFBSSxPQUFPO1lBQ1QsR0FBRztZQUNMLE9BQU8sSUFBSSxBQUFDYSxhQUFhLFFBQVVFLGFBQWEsTUFBTztnQkFDckRiLHVCQUF1QjtZQUN6QixPQUFPLElBQUksQUFBQ1csYUFBYSxRQUFVRSxhQUFhLE1BQU87Z0JBQ3JELElBQU1DLGFBQWFmLGFBQWFHLFlBQVksQ0FBQ1c7Z0JBRTdDZCxhQUFhUyxLQUFLLENBQUMsQUFBQyxRQUFrQixPQUFYTSxZQUFXLDRDQUEwQ0Q7WUFDbEYsT0FBTyxJQUFJLEFBQUNGLGFBQWEsUUFBVUUsYUFBYSxNQUFPO2dCQUNyRCxJQUFNRSxlQUFlSixTQUFTSyxPQUFPO2dCQUVyQ2pCLGFBQWFTLEtBQUssQ0FBQyxBQUFDLDJEQUF1RSxPQUFiTyxjQUFhLE9BQUtGO1lBQ2xHLE9BQU87Z0JBQ0wsSUFBTUksMEJBQTBCQyxJQUFBQSxtQ0FBcUIsRUFBQ0wsVUFBVUYsVUFBVVo7Z0JBRTFFQyx1QkFBdUJpQix5QkFBeUIsR0FBRztZQUNyRDtRQUNGO0lBQ0Y7SUFFQSxJQUFJakIsc0JBQXNCO1FBQ3hCRCxhQUFhUyxLQUFLLENBQUMsQUFBQyxvQkFBc0MsT0FBbkJQLG9CQUFtQixvQkFBa0JIO0lBQzlFO0lBRUEsT0FBT0U7QUFDVCJ9
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyB1bmlmeVRlcm1XaXRoVGVybVR5cGUgfSBmcm9tIFwiLi4vbWV0YXZhcmlhYmxlXCI7XG5pbXBvcnQgeyBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhdmFyaWFibGUvYXJndW1lbnQvdGVybVwiKSxcbiAgICAgIHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXZhcmlhYmxlL2FyZ3VtZW50L3R5cGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGVOb2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLi4uYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlID0gbG9jYWxDb250ZXh0LmZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSk7XG5cbiAgaWYgKG1ldGF2YXJpYWJsZSA9PT0gbnVsbCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgVGhlIG1ldGF2YXJpYWJsZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBpcyBub3QgcHJlc2VudC5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICBpZiAodHlwZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHR5cGVOb2RlKTtcblxuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgd2FzIGZvdW5kIHdoZW4gYSB0ZXJtIHNob3VsZCBiZSBwcmVzZW50LmAsIHR5cGVOb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdGVybVR5cGUgPSBtZXRhdmFyaWFibGUuZ2V0VGVybVR5cGUoKSxcbiAgICAgICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgICAgaWYgKGZhbHNlKSB7XG4gICAgICAgIC8vL1xuICAgICAgfSBlbHNlIGlmICgodGVybVR5cGUgPT09IG51bGwpICYmICh0ZXJtTm9kZSA9PT0gbnVsbCkpIHtcbiAgICAgICAgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIGlmICgodGVybVR5cGUgPT09IG51bGwpICYmICh0ZXJtTm9kZSAhPT0gbnVsbCkpIHtcbiAgICAgICAgY29uc3QgdGVybVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gICAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdhcyBmb3VuZCB3aGVuIG5vbmUgaXMgZXhwZWN0ZWQuYCwgdGVybU5vZGUpO1xuICAgICAgfSBlbHNlIGlmICgodGVybVR5cGUgIT09IG51bGwpICYmICh0ZXJtTm9kZSA9PT0gbnVsbCkpIHtcbiAgICAgICAgY29uc3QgdGVybVR5cGVOYW1lID0gdGVybVR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgTm8gdGVybSB3YXMgZm91bmQgd2hlbiB0aGUgbWV0YXZhcmlhYmxlJ3MgdGVybSB0eXBlIGlzICcke3Rlcm1UeXBlTmFtZX0nLmAsIHRlcm1Ob2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHRlcm1VbmlmaWVkV2l0aFRlcm1UeXBlID0gdW5pZnlUZXJtV2l0aFRlcm1UeXBlKHRlcm1Ob2RlLCB0ZXJtVHlwZSwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICBtZXRhdmFyaWFibGVWZXJpZmllZCA9IHRlcm1VbmlmaWVkV2l0aFRlcm1UeXBlOyAvLy9cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUuYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5TWV0YXZhcmlhYmxlIiwidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVOb2RlUXVlcnkiLCJtZXRhdmFyaWFibGVOb2RlIiwibG9jYWxDb250ZXh0IiwibWV0YXZhcmlhYmxlVmVyaWZpZWQiLCJtZXRhdmFyaWFibGVTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsIm1ldGF2YXJpYWJsZU5hbWUiLCJtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGUiLCJmaW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lIiwiZGVidWciLCJ0eXBlTm9kZSIsInR5cGVTdHJpbmciLCJ0ZXJtVHlwZSIsImdldFRlcm1UeXBlIiwidGVybU5vZGUiLCJ0ZXJtU3RyaW5nIiwidGVybVR5cGVOYW1lIiwiZ2V0TmFtZSIsInRlcm1VbmlmaWVkV2l0aFRlcm1UeXBlIiwidW5pZnlUZXJtV2l0aFRlcm1UeXBlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQXdCQTs7O3FCQVBFOzRCQUNZO29CQUNlO0FBRXJELElBQU1DLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyxnQ0FDMUJDLGdCQUFnQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUVqQixTQUFTRixtQkFBbUJJLGdCQUFnQixFQUFFQyxZQUFZO0lBQ3ZFLElBQUlDLHVCQUF1QjtJQUUzQixJQUFNQyxxQkFBcUJGLGFBQWFHLFlBQVksQ0FBQ0o7SUFFckRDLGFBQWFJLEtBQUssQ0FBQyxBQUFDLGtCQUFvQyxPQUFuQkYsb0JBQW1CLHNCQUFvQkg7SUFFNUUsSUFBTU0sbUJBQW1CQyxJQUFBQSwwQ0FBb0MsRUFBQ1AsbUJBQ3hEUSxlQUFlUCxhQUFhUSxrQ0FBa0MsQ0FBQ0g7SUFFckUsSUFBSUUsaUJBQWlCLE1BQU07UUFDekJQLGFBQWFTLEtBQUssQ0FBQyxBQUFDLHFCQUF1QyxPQUFuQlAsb0JBQW1CLHNCQUFvQkg7SUFDakYsT0FBTztRQUNMLElBQU1XLFdBQVdaLGNBQWNDO1FBRS9CLElBQUlXLGFBQWEsTUFBTTtZQUNyQixJQUFNQyxhQUFhWCxhQUFhRyxZQUFZLENBQUNPO1lBRTdDVixhQUFhUyxLQUFLLENBQUMsQUFBQyxRQUFrQixPQUFYRSxZQUFXLG9EQUFrREQ7UUFDMUYsT0FBTztZQUNMLElBQU1FLFdBQVdMLGFBQWFNLFdBQVcsSUFDbkNDLFdBQVdsQixjQUFjRztZQUUvQixJQUFJLE9BQU87WUFDVCxHQUFHO1lBQ0wsT0FBTyxJQUFJLEFBQUNhLGFBQWEsUUFBVUUsYUFBYSxNQUFPO2dCQUNyRGIsdUJBQXVCO1lBQ3pCLE9BQU8sSUFBSSxBQUFDVyxhQUFhLFFBQVVFLGFBQWEsTUFBTztnQkFDckQsSUFBTUMsYUFBYWYsYUFBYUcsWUFBWSxDQUFDVztnQkFFN0NkLGFBQWFTLEtBQUssQ0FBQyxBQUFDLFFBQWtCLE9BQVhNLFlBQVcsNENBQTBDRDtZQUNsRixPQUFPLElBQUksQUFBQ0YsYUFBYSxRQUFVRSxhQUFhLE1BQU87Z0JBQ3JELElBQU1FLGVBQWVKLFNBQVNLLE9BQU87Z0JBRXJDakIsYUFBYVMsS0FBSyxDQUFDLEFBQUMsMkRBQXVFLE9BQWJPLGNBQWEsT0FBS0Y7WUFDbEcsT0FBTztnQkFDTCxJQUFNSSwwQkFBMEJDLElBQUFBLG1DQUFxQixFQUFDTCxVQUFVRixVQUFVWjtnQkFFMUVDLHVCQUF1QmlCLHlCQUF5QixHQUFHO1lBQ3JEO1FBQ0Y7SUFDRjtJQUVBLElBQUlqQixzQkFBc0I7UUFDeEJELGFBQWFTLEtBQUssQ0FBQyxBQUFDLG9CQUFzQyxPQUFuQlAsb0JBQW1CLG9CQUFrQkg7SUFDOUU7SUFFQSxPQUFPRTtBQUNUIn0=
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _premise = /*#__PURE__*/ _interop_require_default(require("../premise"));
12
12
  var _proofStep = /*#__PURE__*/ _interop_require_default(require("../proofStep"));
13
- var _unqualified = /*#__PURE__*/ _interop_require_default(require("../verify/statement/unqualified"));
13
+ var _statement = /*#__PURE__*/ _interop_require_default(require("../verify/statement"));
14
14
  var _query = require("../utilities/query");
15
15
  var _assignments = require("../utilities/assignments");
16
16
  function _interop_require_default(obj) {
@@ -25,11 +25,11 @@ function verifyPremise(premiseNode, premises, localContext) {
25
25
  localContext.trace("Verifying the '".concat(premiseString, "' premise..."), premiseNode);
26
26
  var unqualifiedStatementNode = unqualifiedStatementNodeQuery(premiseNode);
27
27
  if (unqualifiedStatementNode !== null) {
28
- var derived = false, assignments = [], unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, assignments, derived, localContext);
29
- if (unqualifiedStatementVerified) {
28
+ var stated = true, assignments = [], statementNode = statementNodeQuery(unqualifiedStatementNode), statementVerified = (0, _statement.default)(statementNode, assignments, stated, localContext);
29
+ if (statementVerified) {
30
30
  var assignmentsAssigned = (0, _assignments.assignAssignments)(assignments, localContext);
31
31
  if (assignmentsAssigned) {
32
- var statementNode = statementNodeQuery(unqualifiedStatementNode), metaproofStep = _proofStep.default.fromStatementNode(statementNode), premise = _premise.default.fromStatementNode(statementNode);
32
+ var metaproofStep = _proofStep.default.fromStatementNode(statementNode), premise = _premise.default.fromStatementNode(statementNode);
33
33
  premises.push(premise);
34
34
  localContext.addProofStep(metaproofStep);
35
35
  premiseVerified = true;
@@ -42,4 +42,4 @@ function verifyPremise(premiseNode, premises, localContext) {
42
42
  return premiseVerified;
43
43
  }
44
44
 
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcHJlbWlzZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFByZW1pc2UgZnJvbSBcIi4uL3ByZW1pc2VcIjtcbmltcG9ydCBQcm9vZlN0ZXAgZnJvbSBcIi4uL3Byb29mU3RlcFwiO1xuaW1wb3J0IHZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuLi92ZXJpZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGFzc2lnbkFzc2lnbm1lbnRzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hc3NpZ25tZW50c1wiO1xuXG5jb25zdCBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdW5xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ByZW1pc2UvdW5xdWFsaWZpZWRTdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlQcmVtaXNlKHByZW1pc2VOb2RlLCBwcmVtaXNlcywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBwcmVtaXNlVmVyaWZpZWQ7XG5cbiAgY29uc3QgcHJlbWlzZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcocHJlbWlzZU5vZGUpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZS4uLmAsIHByZW1pc2VOb2RlKTtcblxuICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeShwcmVtaXNlTm9kZSk7XG5cbiAgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGRlcml2ZWQgPSBmYWxzZSxcbiAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGFzc2lnbm1lbnRzQXNzaWduZWQgPSBhc3NpZ25Bc3NpZ25tZW50cyhhc3NpZ25tZW50cywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKGFzc2lnbm1lbnRzQXNzaWduZWQpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgICBtZXRhcHJvb2ZTdGVwID0gUHJvb2ZTdGVwLmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgICBwcmVtaXNlID0gUHJlbWlzZS5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBwcmVtaXNlcy5wdXNoKHByZW1pc2UpO1xuXG4gICAgICAgIGxvY2FsQ29udGV4dC5hZGRQcm9vZlN0ZXAobWV0YXByb29mU3RlcCk7XG5cbiAgICAgICAgcHJlbWlzZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAocHJlbWlzZVZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cHJlbWlzZVN0cmluZ30nIHByZW1pc2UuYCwgcHJlbWlzZU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHByZW1pc2VWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlQcmVtaXNlIiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkiLCJwcmVtaXNlTm9kZSIsInByZW1pc2VzIiwibG9jYWxDb250ZXh0IiwicHJlbWlzZVZlcmlmaWVkIiwicHJlbWlzZVN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwiZGVyaXZlZCIsImFzc2lnbm1lbnRzIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50IiwiYXNzaWdubWVudHNBc3NpZ25lZCIsImFzc2lnbkFzc2lnbm1lbnRzIiwic3RhdGVtZW50Tm9kZSIsIm1ldGFwcm9vZlN0ZXAiLCJQcm9vZlN0ZXAiLCJmcm9tU3RhdGVtZW50Tm9kZSIsInByZW1pc2UiLCJQcmVtaXNlIiwicHVzaCIsImFkZFByb29mU3RlcCIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQXdCQTs7OzhEQVZKO2dFQUNFO2tFQUNpQjtxQkFFYjsyQkFDUTs7Ozs7O0FBRWxDLElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQyxxQ0FDL0JDLGdDQUFnQ0QsSUFBQUEsZ0JBQVMsRUFBQztBQUVqQyxTQUFTRixjQUFjSSxXQUFXLEVBQUVDLFFBQVEsRUFBRUMsWUFBWTtJQUN2RSxJQUFJQztJQUVKLElBQU1DLGdCQUFnQkYsYUFBYUcsWUFBWSxDQUFDTDtJQUVoREUsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQStCLE9BQWRGLGVBQWMsaUJBQWVKO0lBRWxFLElBQU1PLDJCQUEyQlIsOEJBQThCQztJQUUvRCxJQUFJTyw2QkFBNkIsTUFBTTtRQUNyQyxJQUFNQyxVQUFVLE9BQ1ZDLGNBQWMsRUFBRSxFQUNoQkMsK0JBQStCQyxJQUFBQSxvQkFBMEIsRUFBQ0osMEJBQTBCRSxhQUFhRCxTQUFTTjtRQUVoSCxJQUFJUSw4QkFBOEI7WUFDaEMsSUFBTUUsc0JBQXNCQyxJQUFBQSw4QkFBaUIsRUFBQ0osYUFBYVA7WUFFM0QsSUFBSVUscUJBQXFCO2dCQUN2QixJQUFNRSxnQkFBZ0JqQixtQkFBbUJVLDJCQUNuQ1EsZ0JBQWdCQyxrQkFBUyxDQUFDQyxpQkFBaUIsQ0FBQ0gsZ0JBQzVDSSxVQUFVQyxnQkFBTyxDQUFDRixpQkFBaUIsQ0FBQ0g7Z0JBRTFDYixTQUFTbUIsSUFBSSxDQUFDRjtnQkFFZGhCLGFBQWFtQixZQUFZLENBQUNOO2dCQUUxQlosa0JBQWtCO1lBQ3BCO1FBQ0Y7SUFDRjtJQUVBLElBQUlBLGlCQUFpQjtRQUNuQkQsYUFBYW9CLEtBQUssQ0FBQyxBQUFDLG9CQUFpQyxPQUFkbEIsZUFBYyxlQUFhSjtJQUNwRTtJQUVBLE9BQU9HO0FBQ1QifQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcHJlbWlzZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFByZW1pc2UgZnJvbSBcIi4uL3ByZW1pc2VcIjtcbmltcG9ydCBQcm9vZlN0ZXAgZnJvbSBcIi4uL3Byb29mU3RlcFwiO1xuaW1wb3J0IHZlcmlmeVN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBhc3NpZ25Bc3NpZ25tZW50cyB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXNzaWdubWVudHNcIjtcblxuY29uc3Qgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3VucXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudCFcIiksXG4gICAgICB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcmVtaXNlL3VucXVhbGlmaWVkU3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5UHJlbWlzZShwcmVtaXNlTm9kZSwgcHJlbWlzZXMsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgcHJlbWlzZVZlcmlmaWVkO1xuXG4gIGNvbnN0IHByZW1pc2VTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHByZW1pc2VOb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7cHJlbWlzZVN0cmluZ30nIHByZW1pc2UuLi5gLCBwcmVtaXNlTm9kZSk7XG5cbiAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkocHJlbWlzZU5vZGUpO1xuXG4gIGlmICh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZWQgPSB0cnVlLFxuICAgICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGFzc2lnbm1lbnRzQXNzaWduZWQgPSBhc3NpZ25Bc3NpZ25tZW50cyhhc3NpZ25tZW50cywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKGFzc2lnbm1lbnRzQXNzaWduZWQpIHtcbiAgICAgICAgY29uc3QgbWV0YXByb29mU3RlcCA9IFByb29mU3RlcC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgcHJlbWlzZSA9IFByZW1pc2UuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgICAgcHJlbWlzZXMucHVzaChwcmVtaXNlKTtcblxuICAgICAgICBsb2NhbENvbnRleHQuYWRkUHJvb2ZTdGVwKG1ldGFwcm9vZlN0ZXApO1xuXG4gICAgICAgIHByZW1pc2VWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHByZW1pc2VWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlLmAsIHByZW1pc2VOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBwcmVtaXNlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5UHJlbWlzZSIsInN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5IiwicHJlbWlzZU5vZGUiLCJwcmVtaXNlcyIsImxvY2FsQ29udGV4dCIsInByZW1pc2VWZXJpZmllZCIsInByZW1pc2VTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsInN0YXRlZCIsImFzc2lnbm1lbnRzIiwic3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZ5U3RhdGVtZW50IiwiYXNzaWdubWVudHNBc3NpZ25lZCIsImFzc2lnbkFzc2lnbm1lbnRzIiwibWV0YXByb29mU3RlcCIsIlByb29mU3RlcCIsImZyb21TdGF0ZW1lbnROb2RlIiwicHJlbWlzZSIsIlByZW1pc2UiLCJwdXNoIiwiYWRkUHJvb2ZTdGVwIiwiZGVidWciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVlBOzs7ZUFBd0JBOzs7OERBVko7Z0VBQ0U7Z0VBQ007cUJBRUY7MkJBQ1E7Ozs7OztBQUVsQyxJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUMscUNBQy9CQyxnQ0FBZ0NELElBQUFBLGdCQUFTLEVBQUM7QUFFakMsU0FBU0YsY0FBY0ksV0FBVyxFQUFFQyxRQUFRLEVBQUVDLFlBQVk7SUFDdkUsSUFBSUM7SUFFSixJQUFNQyxnQkFBZ0JGLGFBQWFHLFlBQVksQ0FBQ0w7SUFFaERFLGFBQWFJLEtBQUssQ0FBQyxBQUFDLGtCQUErQixPQUFkRixlQUFjLGlCQUFlSjtJQUVsRSxJQUFNTywyQkFBMkJSLDhCQUE4QkM7SUFFL0QsSUFBSU8sNkJBQTZCLE1BQU07UUFDckMsSUFBTUMsU0FBUyxNQUNUQyxjQUFjLEVBQUUsRUFDaEJDLGdCQUFnQmIsbUJBQW1CVSwyQkFDbkNJLG9CQUFvQkMsSUFBQUEsa0JBQWUsRUFBQ0YsZUFBZUQsYUFBYUQsUUFBUU47UUFFOUUsSUFBSVMsbUJBQW1CO1lBQ3JCLElBQU1FLHNCQUFzQkMsSUFBQUEsOEJBQWlCLEVBQUNMLGFBQWFQO1lBRTNELElBQUlXLHFCQUFxQjtnQkFDdkIsSUFBTUUsZ0JBQWdCQyxrQkFBUyxDQUFDQyxpQkFBaUIsQ0FBQ1AsZ0JBQzVDUSxVQUFVQyxnQkFBTyxDQUFDRixpQkFBaUIsQ0FBQ1A7Z0JBRTFDVCxTQUFTbUIsSUFBSSxDQUFDRjtnQkFFZGhCLGFBQWFtQixZQUFZLENBQUNOO2dCQUUxQlosa0JBQWtCO1lBQ3BCO1FBQ0Y7SUFDRjtJQUVBLElBQUlBLGlCQUFpQjtRQUNuQkQsYUFBYW9CLEtBQUssQ0FBQyxBQUFDLG9CQUFpQyxPQUFkbEIsZUFBYyxlQUFhSjtJQUNwRTtJQUVBLE9BQU9HO0FBQ1QifQ==
@@ -14,7 +14,6 @@ var _subproof = /*#__PURE__*/ _interop_require_default(require("../verify/subpro
14
14
  var _qualified = /*#__PURE__*/ _interop_require_default(require("../verify/statement/qualified"));
15
15
  var _unqualified = /*#__PURE__*/ _interop_require_default(require("../verify/statement/unqualified"));
16
16
  var _query = require("../utilities/query");
17
- var _assignments = require("../utilities/assignments");
18
17
  function _interop_require_default(obj) {
19
18
  return obj && obj.__esModule ? obj : {
20
19
  default: obj
@@ -25,32 +24,24 @@ function verifyProofStep(proofStepNode, substitutions, localContext) {
25
24
  var proofStepVerified = false;
26
25
  var subproofNode = subproofNodeQuery(proofStepNode), qualifiedStatementNode = qualifiedStatementNodeQuery(proofStepNode), unqualifiedStatementNode = unqualifiedStatementNodeQuery(proofStepNode);
27
26
  var proofStep = null;
28
- if (subproofNode !== null) {
29
- var subproofVerified;
30
- subproofVerified = (0, _subproof.default)(subproofNode, substitutions, localContext);
27
+ if (false) {
28
+ ///
29
+ } else if (subproofNode !== null) {
30
+ var subproofVerified = (0, _subproof.default)(subproofNode, substitutions, localContext);
31
31
  if (subproofVerified) {
32
32
  proofStep = _proofStep.default.fromSubproofNode(subproofNode);
33
33
  }
34
- } else {
35
- if (qualifiedStatementNode !== null) {
36
- var derived = false, assignments = [], qualifiedStatementVerified = (0, _qualified.default)(qualifiedStatementNode, substitutions, assignments, derived, localContext);
37
- if (qualifiedStatementVerified) {
38
- var assignmentsAssigned = (0, _assignments.assignAssignments)(assignments, localContext);
39
- if (assignmentsAssigned) {
40
- var statementNode = statementNodeQuery(qualifiedStatementNode);
41
- proofStep = _proofStep.default.fromStatementNode(statementNode);
42
- }
43
- }
34
+ } else if (qualifiedStatementNode !== null) {
35
+ var qualifiedStatementVerified = (0, _qualified.default)(qualifiedStatementNode, substitutions, localContext);
36
+ if (qualifiedStatementVerified) {
37
+ var statementNode = statementNodeQuery(qualifiedStatementNode);
38
+ proofStep = _proofStep.default.fromStatementNode(statementNode);
44
39
  }
45
- if (unqualifiedStatementNode !== null) {
46
- var derived1 = true, assignments1 = [], unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, assignments1, derived1, localContext);
47
- if (unqualifiedStatementVerified) {
48
- var assignmentsAssigned1 = (0, _assignments.assignAssignments)(assignments1, localContext);
49
- if (assignmentsAssigned1) {
50
- var statementNode1 = statementNodeQuery(unqualifiedStatementNode);
51
- proofStep = _proofStep.default.fromStatementNode(statementNode1);
52
- }
53
- }
40
+ } else if (unqualifiedStatementNode !== null) {
41
+ var unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, localContext);
42
+ if (unqualifiedStatementVerified) {
43
+ var statementNode1 = statementNodeQuery(unqualifiedStatementNode);
44
+ proofStep = _proofStep.default.fromStatementNode(statementNode1);
54
45
  }
55
46
  }
56
47
  if (proofStep !== null) {
@@ -63,4 +54,4 @@ Object.assign(_shim.default, {
63
54
  verifyProofStep: verifyProofStep
64
55
  });
65
56
 
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcHJvb2ZTdGVwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgc2hpbSBmcm9tIFwiLi4vc2hpbVwiO1xuaW1wb3J0IFByb29mU3RlcCBmcm9tIFwiLi4vcHJvb2ZTdGVwXCI7XG5pbXBvcnQgdmVyaWZ5U3VicHJvb2YgZnJvbSBcIi4uL3ZlcmlmeS9zdWJwcm9vZlwiO1xuaW1wb3J0IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudC9xdWFsaWZpZWRcIjtcbmltcG9ydCB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudC91bnF1YWxpZmllZFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBhc3NpZ25Bc3NpZ25tZW50cyB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXNzaWdubWVudHNcIjtcblxuY29uc3Qgc3VicHJvb2ZOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcHJvb2ZTdGVwfGxhc3RQcm9vZlN0ZXAvc3VicHJvb2YhXCIpLFxuICAgICAgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3F1YWxpZmllZFN0YXRlbWVudHx1bnF1YWxpZmllZFN0YXRlbWVudC9zdGF0ZW1lbnQhXCIpLFxuICAgICAgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb29mU3RlcHxsYXN0UHJvb2ZTdGVwL3F1YWxpZmllZFN0YXRlbWVudCFcIiksXG4gICAgICB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9vZlN0ZXB8bGFzdFByb29mU3RlcC91bnF1YWxpZmllZFN0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVByb29mU3RlcChwcm9vZlN0ZXBOb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHByb29mU3RlcFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3Qgc3VicHJvb2ZOb2RlID0gc3VicHJvb2ZOb2RlUXVlcnkocHJvb2ZTdGVwTm9kZSksXG4gICAgICAgIHF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkocHJvb2ZTdGVwTm9kZSksXG4gICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSA9IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5KHByb29mU3RlcE5vZGUpO1xuXG4gIGxldCBwcm9vZlN0ZXAgPSBudWxsO1xuXG4gIGlmIChzdWJwcm9vZk5vZGUgIT09IG51bGwpIHtcbiAgICBsZXQgc3VicHJvb2ZWZXJpZmllZDtcblxuICAgIHN1YnByb29mVmVyaWZpZWQgPSB2ZXJpZnlTdWJwcm9vZihzdWJwcm9vZk5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoc3VicHJvb2ZWZXJpZmllZCkge1xuICAgICAgcHJvb2ZTdGVwID0gUHJvb2ZTdGVwLmZyb21TdWJwcm9vZk5vZGUoc3VicHJvb2ZOb2RlKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGRlcml2ZWQgPSBmYWxzZSwgIC8vL1xuICAgICAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50KHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAocXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgYXNzaWdubWVudHNBc3NpZ25lZCA9IGFzc2lnbkFzc2lnbm1lbnRzKGFzc2lnbm1lbnRzLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgIGlmIChhc3NpZ25tZW50c0Fzc2lnbmVkKSB7XG4gICAgICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICAgIHByb29mU3RlcCA9IFByb29mU3RlcC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGRlcml2ZWQgPSB0cnVlLFxuICAgICAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBhc3NpZ25tZW50c0Fzc2lnbmVkID0gYXNzaWduQXNzaWdubWVudHMoYXNzaWdubWVudHMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKGFzc2lnbm1lbnRzQXNzaWduZWQpIHtcbiAgICAgICAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgICAgICBwcm9vZlN0ZXAgPSBQcm9vZlN0ZXAuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAocHJvb2ZTdGVwICE9PSBudWxsKSB7XG4gICAgbG9jYWxDb250ZXh0LmFkZFByb29mU3RlcChwcm9vZlN0ZXApO1xuXG4gICAgcHJvb2ZTdGVwVmVyaWZpZWQgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHByb29mU3RlcFZlcmlmaWVkO1xufVxuXG5PYmplY3QuYXNzaWduKHNoaW0sIHtcbiAgdmVyaWZ5UHJvb2ZTdGVwXG59KTtcbiJdLCJuYW1lcyI6WyJ2ZXJpZnlQcm9vZlN0ZXAiLCJzdWJwcm9vZk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInN0YXRlbWVudE5vZGVRdWVyeSIsInF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5IiwicHJvb2ZTdGVwTm9kZSIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbENvbnRleHQiLCJwcm9vZlN0ZXBWZXJpZmllZCIsInN1YnByb29mTm9kZSIsInF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJwcm9vZlN0ZXAiLCJzdWJwcm9vZlZlcmlmaWVkIiwidmVyaWZ5U3VicHJvb2YiLCJQcm9vZlN0ZXAiLCJmcm9tU3VicHJvb2ZOb2RlIiwiZGVyaXZlZCIsImFzc2lnbm1lbnRzIiwicXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQiLCJhc3NpZ25tZW50c0Fzc2lnbmVkIiwiYXNzaWduQXNzaWdubWVudHMiLCJzdGF0ZW1lbnROb2RlIiwiZnJvbVN0YXRlbWVudE5vZGUiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJhZGRQcm9vZlN0ZXAiLCJPYmplY3QiLCJhc3NpZ24iLCJzaGltIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFnQkE7OztlQUF3QkE7OzsyREFkUDtnRUFDSzsrREFDSztnRUFDVTtrRUFDRTtxQkFFYjsyQkFDUTs7Ozs7O0FBRWxDLElBQU1DLG9CQUFvQkMsSUFBQUEsZ0JBQVMsRUFBQyx1Q0FDOUJDLHFCQUFxQkQsSUFBQUEsZ0JBQVMsRUFBQyx3REFDL0JFLDhCQUE4QkYsSUFBQUEsZ0JBQVMsRUFBQyxpREFDeENHLGdDQUFnQ0gsSUFBQUEsZ0JBQVMsRUFBQztBQUVqQyxTQUFTRixnQkFBZ0JNLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxZQUFZO0lBQ2hGLElBQUlDLG9CQUFvQjtJQUV4QixJQUFNQyxlQUFlVCxrQkFBa0JLLGdCQUNqQ0sseUJBQXlCUCw0QkFBNEJFLGdCQUNyRE0sMkJBQTJCUCw4QkFBOEJDO0lBRS9ELElBQUlPLFlBQVk7SUFFaEIsSUFBSUgsaUJBQWlCLE1BQU07UUFDekIsSUFBSUk7UUFFSkEsbUJBQW1CQyxJQUFBQSxpQkFBYyxFQUFDTCxjQUFjSCxlQUFlQztRQUUvRCxJQUFJTSxrQkFBa0I7WUFDcEJELFlBQVlHLGtCQUFTLENBQUNDLGdCQUFnQixDQUFDUDtRQUN6QztJQUNGLE9BQU87UUFDTCxJQUFJQywyQkFBMkIsTUFBTTtZQUNuQyxJQUFNTyxVQUFVLE9BQ1ZDLGNBQWMsRUFBRSxFQUNoQkMsNkJBQTZCQyxJQUFBQSxrQkFBd0IsRUFBQ1Ysd0JBQXdCSixlQUFlWSxhQUFhRCxTQUFTVjtZQUV6SCxJQUFJWSw0QkFBNEI7Z0JBQzlCLElBQU1FLHNCQUFzQkMsSUFBQUEsOEJBQWlCLEVBQUNKLGFBQWFYO2dCQUUzRCxJQUFJYyxxQkFBcUI7b0JBQ3ZCLElBQU1FLGdCQUFnQnJCLG1CQUFtQlE7b0JBRXpDRSxZQUFZRyxrQkFBUyxDQUFDUyxpQkFBaUIsQ0FBQ0Q7Z0JBQzFDO1lBQ0Y7UUFDRjtRQUVBLElBQUlaLDZCQUE2QixNQUFNO1lBQ3JDLElBQU1NLFdBQVUsTUFDVkMsZUFBYyxFQUFFLEVBQ2hCTywrQkFBK0JDLElBQUFBLG9CQUEwQixFQUFDZiwwQkFBMEJPLGNBQWFELFVBQVNWO1lBRWhILElBQUlrQiw4QkFBOEI7Z0JBQ2hDLElBQU1KLHVCQUFzQkMsSUFBQUEsOEJBQWlCLEVBQUNKLGNBQWFYO2dCQUUzRCxJQUFJYyxzQkFBcUI7b0JBQ3ZCLElBQU1FLGlCQUFnQnJCLG1CQUFtQlM7b0JBRXpDQyxZQUFZRyxrQkFBUyxDQUFDUyxpQkFBaUIsQ0FBQ0Q7Z0JBQzFDO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsSUFBSVgsY0FBYyxNQUFNO1FBQ3RCTCxhQUFhb0IsWUFBWSxDQUFDZjtRQUUxQkosb0JBQW9CO0lBQ3RCO0lBRUEsT0FBT0E7QUFDVDtBQUVBb0IsT0FBT0MsTUFBTSxDQUFDQyxhQUFJLEVBQUU7SUFDbEIvQixpQkFBQUE7QUFDRiJ9
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcHJvb2ZTdGVwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgc2hpbSBmcm9tIFwiLi4vc2hpbVwiO1xuaW1wb3J0IFByb29mU3RlcCBmcm9tIFwiLi4vcHJvb2ZTdGVwXCI7XG5pbXBvcnQgdmVyaWZ5U3VicHJvb2YgZnJvbSBcIi4uL3ZlcmlmeS9zdWJwcm9vZlwiO1xuaW1wb3J0IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudC9xdWFsaWZpZWRcIjtcbmltcG9ydCB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudC91bnF1YWxpZmllZFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHN1YnByb29mTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb29mU3RlcHxsYXN0UHJvb2ZTdGVwL3N1YnByb29mIVwiKSxcbiAgICAgIHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnR8dW5xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIHF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9vZlN0ZXB8bGFzdFByb29mU3RlcC9xdWFsaWZpZWRTdGF0ZW1lbnQhXCIpLFxuICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcHJvb2ZTdGVwfGxhc3RQcm9vZlN0ZXAvdW5xdWFsaWZpZWRTdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlQcm9vZlN0ZXAocHJvb2ZTdGVwTm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBwcm9vZlN0ZXBWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHN1YnByb29mTm9kZSA9IHN1YnByb29mTm9kZVF1ZXJ5KHByb29mU3RlcE5vZGUpLFxuICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gcXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5KHByb29mU3RlcE5vZGUpLFxuICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeShwcm9vZlN0ZXBOb2RlKTtcblxuICBsZXQgcHJvb2ZTdGVwID0gbnVsbDtcblxuICBpZiAoZmFsc2UpIHtcbiAgICAvLy9cbiAgfSBlbHNlIGlmIChzdWJwcm9vZk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdWJwcm9vZlZlcmlmaWVkID0gdmVyaWZ5U3VicHJvb2Yoc3VicHJvb2ZOb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHN1YnByb29mVmVyaWZpZWQpIHtcbiAgICAgIHByb29mU3RlcCA9IFByb29mU3RlcC5mcm9tU3VicHJvb2ZOb2RlKHN1YnByb29mTm9kZSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHF1YWxpZmllZFN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgICBwcm9vZlN0ZXAgPSBQcm9vZlN0ZXAuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgICBwcm9vZlN0ZXAgPSBQcm9vZlN0ZXAuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHByb29mU3RlcCAhPT0gbnVsbCkge1xuICAgIGxvY2FsQ29udGV4dC5hZGRQcm9vZlN0ZXAocHJvb2ZTdGVwKTtcblxuICAgIHByb29mU3RlcFZlcmlmaWVkID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBwcm9vZlN0ZXBWZXJpZmllZDtcbn1cblxuT2JqZWN0LmFzc2lnbihzaGltLCB7XG4gIHZlcmlmeVByb29mU3RlcFxufSk7XG4iXSwibmFtZXMiOlsidmVyaWZ5UHJvb2ZTdGVwIiwic3VicHJvb2ZOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJxdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSIsInByb29mU3RlcE5vZGUiLCJzdWJzdGl0dXRpb25zIiwibG9jYWxDb250ZXh0IiwicHJvb2ZTdGVwVmVyaWZpZWQiLCJzdWJwcm9vZk5vZGUiLCJxdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwicHJvb2ZTdGVwIiwic3VicHJvb2ZWZXJpZmllZCIsInZlcmlmeVN1YnByb29mIiwiUHJvb2ZTdGVwIiwiZnJvbVN1YnByb29mTm9kZSIsInF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsImZyb21TdGF0ZW1lbnROb2RlIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50IiwiYWRkUHJvb2ZTdGVwIiwiT2JqZWN0IiwiYXNzaWduIiwic2hpbSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZUE7OztlQUF3QkE7OzsyREFiUDtnRUFDSzsrREFDSztnRUFDVTtrRUFDRTtxQkFFYjs7Ozs7O0FBRTFCLElBQU1DLG9CQUFvQkMsSUFBQUEsZ0JBQVMsRUFBQyx1Q0FDOUJDLHFCQUFxQkQsSUFBQUEsZ0JBQVMsRUFBQyx3REFDL0JFLDhCQUE4QkYsSUFBQUEsZ0JBQVMsRUFBQyxpREFDeENHLGdDQUFnQ0gsSUFBQUEsZ0JBQVMsRUFBQztBQUVqQyxTQUFTRixnQkFBZ0JNLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxZQUFZO0lBQ2hGLElBQUlDLG9CQUFvQjtJQUV4QixJQUFNQyxlQUFlVCxrQkFBa0JLLGdCQUNqQ0sseUJBQXlCUCw0QkFBNEJFLGdCQUNyRE0sMkJBQTJCUCw4QkFBOEJDO0lBRS9ELElBQUlPLFlBQVk7SUFFaEIsSUFBSSxPQUFPO0lBQ1QsR0FBRztJQUNMLE9BQU8sSUFBSUgsaUJBQWlCLE1BQU07UUFDaEMsSUFBTUksbUJBQW1CQyxJQUFBQSxpQkFBYyxFQUFDTCxjQUFjSCxlQUFlQztRQUVyRSxJQUFJTSxrQkFBa0I7WUFDcEJELFlBQVlHLGtCQUFTLENBQUNDLGdCQUFnQixDQUFDUDtRQUN6QztJQUNGLE9BQU8sSUFBSUMsMkJBQTJCLE1BQU07UUFDMUMsSUFBTU8sNkJBQTZCQyxJQUFBQSxrQkFBd0IsRUFBQ1Isd0JBQXdCSixlQUFlQztRQUVuRyxJQUFJVSw0QkFBNEI7WUFDOUIsSUFBTUUsZ0JBQWdCakIsbUJBQW1CUTtZQUV6Q0UsWUFBWUcsa0JBQVMsQ0FBQ0ssaUJBQWlCLENBQUNEO1FBQzFDO0lBQ0YsT0FBTyxJQUFJUiw2QkFBNkIsTUFBTTtRQUM1QyxJQUFNVSwrQkFBK0JDLElBQUFBLG9CQUEwQixFQUFDWCwwQkFBMEJKO1FBRTFGLElBQUljLDhCQUE4QjtZQUNoQyxJQUFNRixpQkFBZ0JqQixtQkFBbUJTO1lBRXpDQyxZQUFZRyxrQkFBUyxDQUFDSyxpQkFBaUIsQ0FBQ0Q7UUFDMUM7SUFDRjtJQUVBLElBQUlQLGNBQWMsTUFBTTtRQUN0QkwsYUFBYWdCLFlBQVksQ0FBQ1g7UUFFMUJKLG9CQUFvQjtJQUN0QjtJQUVBLE9BQU9BO0FBQ1Q7QUFFQWdCLE9BQU9DLE1BQU0sQ0FBQ0MsYUFBSSxFQUFFO0lBQ2xCM0IsaUJBQUFBO0FBQ0YifQ==
@@ -9,142 +9,33 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _statement = /*#__PURE__*/ _interop_require_default(require("../../verify/statement"));
12
+ var _qualified = /*#__PURE__*/ _interop_require_default(require("../../unify/statement/qualified"));
12
13
  var _query = require("../../utilities/query");
14
+ var _assignments = require("../../utilities/assignments");
13
15
  function _interop_require_default(obj) {
14
16
  return obj && obj.__esModule ? obj : {
15
17
  default: obj
16
18
  };
17
19
  }
18
- var statementNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/statement!"), metavariableNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/reference/metavariable!");
19
- var unifyDerivedQualifiedStatementFunctions = [
20
- unifyDerivedQualifiedStatementAWithRule,
21
- unifyDerivedQualifiedStatementAWithAxiom,
22
- unifyDerivedQualifiedStatementAWithLemma,
23
- unifyDerivedQualifiedStatementAWithTheorem,
24
- unifyDerivedQualifiedStatementAWithConjecture,
25
- unifyDerivedQualifiedStatementAWithReference
26
- ];
27
- function verifyQualifiedStatement(qualifiedStatementNode, substitutions, assignments, derived, localContext) {
28
- var qualifiedStatementVerified;
20
+ var statementNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/statement!");
21
+ function verifyQualifiedStatement(qualifiedStatementNode, substitutions, localContext) {
22
+ var qualifiedStatementVerified = false;
29
23
  var qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
30
24
  localContext.trace("Verifying the '".concat(qualifiedStatementString, "' qualified statement..."), qualifiedStatementNode);
31
- var statementNode = statementNodeQuery(qualifiedStatementNode), statementVerified = (0, _statement.default)(statementNode, assignments, derived, localContext);
32
- if (statementVerified) {
33
- var derivedQualifiedStatementUnified = unifyDerivedQualifiedStatement(qualifiedStatementNode, substitutions, localContext);
34
- qualifiedStatementVerified = derivedQualifiedStatementUnified; ///
25
+ if (!qualifiedStatementVerified) {
26
+ var stated = true, assignments = [], statementNode = statementNodeQuery(qualifiedStatementNode), statementVerified = (0, _statement.default)(statementNode, assignments, stated, localContext);
27
+ if (statementVerified) {
28
+ var qualifiedStatementUnified = (0, _qualified.default)(qualifiedStatementNode, substitutions, localContext);
29
+ if (qualifiedStatementUnified) {
30
+ var assignmentsAssigned = (0, _assignments.assignAssignments)(assignments, localContext);
31
+ qualifiedStatementVerified = assignmentsAssigned; ///
32
+ }
33
+ }
35
34
  }
36
35
  if (qualifiedStatementVerified) {
37
36
  localContext.debug("...verified the '".concat(qualifiedStatementString, "' qualified statement."), qualifiedStatementNode);
38
37
  }
39
38
  return qualifiedStatementVerified;
40
39
  }
41
- function unifyDerivedQualifiedStatement(qualifiedStatementNode, substitutions, localContext) {
42
- var derivedQualifiedStatementUnified;
43
- var qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
44
- localContext.trace("Unifying the '".concat(qualifiedStatementString, "' derived qualified statement..."), qualifiedStatementNode);
45
- derivedQualifiedStatementUnified = unifyDerivedQualifiedStatementFunctions.some(function(unifyDerivedQualifiedStatementFunction) {
46
- var derivedQualifiedStatementUnified = unifyDerivedQualifiedStatementFunction(qualifiedStatementNode, substitutions, localContext);
47
- return derivedQualifiedStatementUnified;
48
- });
49
- if (derivedQualifiedStatementUnified) {
50
- localContext.debug("...unified the '".concat(qualifiedStatementString, "' derived qualified statement."), qualifiedStatementNode);
51
- }
52
- return derivedQualifiedStatementUnified;
53
- }
54
- function unifyDerivedQualifiedStatementAWithRule(qualifiedStatementNode, substitutions, localContext) {
55
- var derivedQualifiedStatementUnifiedWithRule = false;
56
- var metavariableNode = metavariableNodeQuery(qualifiedStatementNode), rule = localContext.findRuleByMetavariableNode(metavariableNode);
57
- if (rule !== null) {
58
- var statementNode = statementNodeQuery(qualifiedStatementNode), metavariableString = localContext.nodeAsString(metavariableNode), qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
59
- localContext.trace("Unifying the '".concat(qualifiedStatementString, "' derived qualified statement with the '").concat(metavariableString, "' rule..."), qualifiedStatementNode);
60
- var statementUnified = rule.unifyStatement(statementNode, localContext);
61
- derivedQualifiedStatementUnifiedWithRule = statementUnified; ///
62
- if (derivedQualifiedStatementUnifiedWithRule) {
63
- localContext.debug("...unified the '".concat(qualifiedStatementString, "' derived qualified statement with the '").concat(metavariableString, "' rule."), qualifiedStatementNode);
64
- }
65
- }
66
- return derivedQualifiedStatementUnifiedWithRule;
67
- }
68
- function unifyDerivedQualifiedStatementAWithAxiom(qualifiedStatementNode, substitutions, localContext) {
69
- var derivedQualifiedStatementUnifiedWithAxiom = false;
70
- var metavariableNode = metavariableNodeQuery(qualifiedStatementNode), axiom = localContext.findAxiomByMetavariableNode(metavariableNode);
71
- if (axiom !== null) {
72
- var statementNode = statementNodeQuery(qualifiedStatementNode), metavariableString = localContext.nodeAsString(metavariableNode), qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
73
- localContext.trace("Unifying the '".concat(qualifiedStatementString, "' derived qualified statement with the '").concat(metavariableString, "' axiom..."), qualifiedStatementNode);
74
- var statementUnified = axiom.unifyStatement(statementNode, localContext);
75
- derivedQualifiedStatementUnifiedWithAxiom = statementUnified; ///
76
- if (derivedQualifiedStatementUnifiedWithAxiom) {
77
- localContext.debug("...unified the '".concat(qualifiedStatementString, "' derived qualified statement with the '").concat(metavariableString, "' axiom."), qualifiedStatementNode);
78
- }
79
- }
80
- return derivedQualifiedStatementUnifiedWithAxiom;
81
- }
82
- function unifyDerivedQualifiedStatementAWithLemma(qualifiedStatementNode, substitutions, localContext) {
83
- var derivedQualifiedStatementUnifiedWithLemma = false;
84
- var metavariableNode = metavariableNodeQuery(qualifiedStatementNode), lemma = localContext.findLemmaByMetavariableNode(metavariableNode);
85
- if (lemma !== null) {
86
- var statementNode = statementNodeQuery(qualifiedStatementNode), metavariableString = localContext.nodeAsString(metavariableNode), qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
87
- localContext.trace("Unifying the '".concat(qualifiedStatementString, "' derived qualified statement with the '").concat(metavariableString, "' lemma..."), qualifiedStatementNode);
88
- var statementUnified = lemma.unifyStatement(statementNode, localContext);
89
- derivedQualifiedStatementUnifiedWithLemma = statementUnified; ///
90
- if (derivedQualifiedStatementUnifiedWithLemma) {
91
- localContext.debug("...unified the '".concat(qualifiedStatementString, "' derived qualified statement with the '").concat(metavariableString, "' lemma."), qualifiedStatementNode);
92
- }
93
- }
94
- return derivedQualifiedStatementUnifiedWithLemma;
95
- }
96
- function unifyDerivedQualifiedStatementAWithTheorem(qualifiedStatementNode, substitutions, localContext) {
97
- var derivedQualifiedStatementUnifiedWithTheorem = false;
98
- var metavariableNode = metavariableNodeQuery(qualifiedStatementNode), theorem = localContext.findTheoremByMetavariableNode(metavariableNode);
99
- if (theorem !== null) {
100
- var statementNode = statementNodeQuery(qualifiedStatementNode), metavariableString = localContext.nodeAsString(metavariableNode), qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
101
- localContext.trace("Unifying the '".concat(qualifiedStatementString, "' derived qualified statement with the '").concat(metavariableString, "' theorem..."), qualifiedStatementNode);
102
- var statementUnified = theorem.unifyStatement(statementNode, localContext);
103
- derivedQualifiedStatementUnifiedWithTheorem = statementUnified; ///
104
- if (derivedQualifiedStatementUnifiedWithTheorem) {
105
- localContext.debug("...unified the '".concat(qualifiedStatementString, "' derived qualified statement with the '").concat(metavariableString, "' theorem."), qualifiedStatementNode);
106
- }
107
- }
108
- return derivedQualifiedStatementUnifiedWithTheorem;
109
- }
110
- function unifyDerivedQualifiedStatementAWithConjecture(qualifiedStatementNode, substitutions, localContext) {
111
- var derivedQualifiedStatementUnifiedWithConjecture = false;
112
- var metavariableNode = metavariableNodeQuery(qualifiedStatementNode), conjecture = localContext.findConjectureByMetavariableNode(metavariableNode);
113
- if (conjecture !== null) {
114
- var statementNode = statementNodeQuery(qualifiedStatementNode), metavariableString = localContext.nodeAsString(metavariableNode), qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
115
- localContext.trace("Unifying the '".concat(qualifiedStatementString, "' derived qualified statement with the '").concat(metavariableString, "' conjecture..."), qualifiedStatementNode);
116
- var statementUnified = conjecture.unifyStatement(statementNode, localContext);
117
- derivedQualifiedStatementUnifiedWithConjecture = statementUnified; ///
118
- if (derivedQualifiedStatementUnifiedWithConjecture) {
119
- localContext.debug("...unified the '".concat(qualifiedStatementString, "' derived qualified statement with the '").concat(metavariableString, "' conjecture."), qualifiedStatementNode);
120
- }
121
- }
122
- return derivedQualifiedStatementUnifiedWithConjecture;
123
- }
124
- function unifyDerivedQualifiedStatementAWithReference(qualifiedStatementNode, substitutions, localContext) {
125
- var derivedQualifiedStatementUnifiedWithReference = false;
126
- var metavariableNode = metavariableNodeQuery(qualifiedStatementNode), metavariableString = localContext.nodeAsString(metavariableNode), metavariablePresent = localContext.isMetavariablePresentByMetavariableNode(metavariableNode), qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
127
- localContext.trace("Unifying the '".concat(qualifiedStatementString, "' derived qualified statement with the '").concat(metavariableString, "' reference..."), qualifiedStatementNode);
128
- if (metavariablePresent) {
129
- debugger;
130
- // const statementNode = statementNodeQuery(qualifiedStatementNode),
131
- // localContextA = null,
132
- // localContextB = localContext, ///
133
- // statementNodeB = statementNode, ///
134
- // substitutionNodeA = null,
135
- // metavariableNodeA = metavariableNode, ///
136
- // metavariableUnifiedWithStatement = unifyMetavariableWithStatement(metavariableNodeA, statementNodeB, substitutionNodeA, substitutions, localContextA, localContextB, () => {
137
- // const verifiedAhead = true;
138
- //
139
- // return verifiedAhead;
140
- // });
141
- //
142
- // derivedQualifiedStatementUnifiedWithReference = metavariableUnifiedWithStatement; ///
143
- }
144
- if (derivedQualifiedStatementUnifiedWithReference) {
145
- localContext.debug("...unified the '".concat(qualifiedStatementString, "' derived qualified statement with the '").concat(metavariableString, "' reference."), qualifiedStatementNode);
146
- }
147
- return derivedQualifiedStatementUnifiedWithReference;
148
- }
149
40
 
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3F1YWxpZmllZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeVN0YXRlbWVudCBmcm9tIFwiLi4vLi4vdmVyaWZ5L3N0YXRlbWVudFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvcmVmZXJlbmNlL21ldGF2YXJpYWJsZSFcIik7XG5cbmNvbnN0IHVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEZ1bmN0aW9ucyA9IFtcbiAgdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhSdWxlLFxuICB1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aEF4aW9tLFxuICB1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aExlbW1hLFxuICB1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aFRoZW9yZW0sXG4gIHVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFXaXRoQ29uamVjdHVyZSxcbiAgdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhSZWZlcmVuY2Vcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDtcblxuICBjb25zdCBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50Li4uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgY29uc3QgZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQgPSB1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnQocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQ7IC8vL1xuICB9XG5cbiAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudC5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50KHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQ7XG5cbiAgY29uc3QgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQuLi5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZCA9IHVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEZ1bmN0aW9ucy5zb21lKCh1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRGdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkID0gdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb24ocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgIHJldHVybiBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZDtcbiAgfSk7XG5cbiAgaWYgKGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQuYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFXaXRoUnVsZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFJ1bGUgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICBydWxlID0gbG9jYWxDb250ZXh0LmZpbmRSdWxlQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmIChydWxlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgcnVsZS4uLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50VW5pZmllZCA9IHJ1bGUudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFJ1bGUgPSBzdGF0ZW1lbnRVbmlmaWVkOyAgLy8vXG5cbiAgICBpZiAoZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoUnVsZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgcnVsZS5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoUnVsZTtcbn1cblxuZnVuY3Rpb24gdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhBeGlvbShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aEF4aW9tID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgYXhpb20gPSBsb2NhbENvbnRleHQuZmluZEF4aW9tQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmIChheGlvbSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGF4aW9tLi4uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRVbmlmaWVkID0gYXhpb20udW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aEF4aW9tID0gc3RhdGVtZW50VW5pZmllZDsgLy8vXG5cbiAgICBpZiAoZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoQXhpb20pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGF4aW9tLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhBeGlvbTtcbn1cblxuZnVuY3Rpb24gdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhMZW1tYShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aExlbW1hID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgbGVtbWEgPSBsb2NhbENvbnRleHQuZmluZExlbW1hQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmIChsZW1tYSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGxlbW1hLi4uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRVbmlmaWVkID0gbGVtbWEudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aExlbW1hID0gc3RhdGVtZW50VW5pZmllZDsgLy8vXG5cbiAgICBpZiAoZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoTGVtbWEpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGxlbW1hLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhMZW1tYTtcbn1cblxuZnVuY3Rpb24gdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhUaGVvcmVtKHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoVGhlb3JlbSA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgIHRoZW9yZW0gPSBsb2NhbENvbnRleHQuZmluZFRoZW9yZW1CeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgaWYgKHRoZW9yZW0gIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIGRlcml2ZWQgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyB0aGVvcmVtLi4uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRVbmlmaWVkID0gdGhlb3JlbS51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoVGhlb3JlbSA9IHN0YXRlbWVudFVuaWZpZWQ7IC8vL1xuXG4gICAgaWYgKGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFRoZW9yZW0pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIHRoZW9yZW0uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFRoZW9yZW07XG59XG5cbmZ1bmN0aW9uIHVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFXaXRoQ29uamVjdHVyZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aENvbmplY3R1cmUgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICBjb25qZWN0dXJlID0gbG9jYWxDb250ZXh0LmZpbmRDb25qZWN0dXJlQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmIChjb25qZWN0dXJlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgY29uamVjdHVyZS4uLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50VW5pZmllZCA9IGNvbmplY3R1cmUudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aENvbmplY3R1cmUgPSBzdGF0ZW1lbnRVbmlmaWVkOyAvLy9cblxuICAgIGlmIChkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhDb25qZWN0dXJlKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIGRlcml2ZWQgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBjb25qZWN0dXJlLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhDb25qZWN0dXJlO1xufVxuXG5mdW5jdGlvbiB1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aFJlZmVyZW5jZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFJlZmVyZW5jZSA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZVByZXNlbnQgPSBsb2NhbENvbnRleHQuaXNNZXRhdmFyaWFibGVQcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIGRlcml2ZWQgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyByZWZlcmVuY2UuLi5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBpZiAobWV0YXZhcmlhYmxlUHJlc2VudCkge1xuXG4gICAgZGVidWdnZXJcblxuICAgIC8vIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgLy8gICAgICAgbG9jYWxDb250ZXh0QSA9IG51bGwsXG4gICAgLy8gICAgICAgbG9jYWxDb250ZXh0QiA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgLy8gICAgICAgc3RhdGVtZW50Tm9kZUIgPSBzdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAvLyAgICAgICBzdWJzdGl0dXRpb25Ob2RlQSA9IG51bGwsXG4gICAgLy8gICAgICAgbWV0YXZhcmlhYmxlTm9kZUEgPSBtZXRhdmFyaWFibGVOb2RlLCAvLy9cbiAgICAvLyAgICAgICBtZXRhdmFyaWFibGVVbmlmaWVkV2l0aFN0YXRlbWVudCA9IHVuaWZ5TWV0YXZhcmlhYmxlV2l0aFN0YXRlbWVudChtZXRhdmFyaWFibGVOb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbk5vZGVBLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCLCAoKSA9PiB7XG4gICAgLy8gICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcbiAgICAvL1xuICAgIC8vICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgLy8gICAgICAgfSk7XG4gICAgLy9cbiAgICAvLyBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhSZWZlcmVuY2UgPSBtZXRhdmFyaWFibGVVbmlmaWVkV2l0aFN0YXRlbWVudDsgLy8vXG4gIH1cblxuICBpZiAoZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoUmVmZXJlbmNlKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgcmVmZXJlbmNlLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFJlZmVyZW5jZTtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJtZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJ1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRGdW5jdGlvbnMiLCJ1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aFJ1bGUiLCJ1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aEF4aW9tIiwidW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhMZW1tYSIsInVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFXaXRoVGhlb3JlbSIsInVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFXaXRoQ29uamVjdHVyZSIsInVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFXaXRoUmVmZXJlbmNlIiwicXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsInN1YnN0aXR1dGlvbnMiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJsb2NhbENvbnRleHQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInF1YWxpZmllZFN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwic3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZ5U3RhdGVtZW50IiwiZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQiLCJ1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnQiLCJkZWJ1ZyIsInNvbWUiLCJ1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRGdW5jdGlvbiIsImRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFJ1bGUiLCJtZXRhdmFyaWFibGVOb2RlIiwicnVsZSIsImZpbmRSdWxlQnlNZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlU3RyaW5nIiwic3RhdGVtZW50VW5pZmllZCIsInVuaWZ5U3RhdGVtZW50IiwiZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoQXhpb20iLCJheGlvbSIsImZpbmRBeGlvbUJ5TWV0YXZhcmlhYmxlTm9kZSIsImRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aExlbW1hIiwibGVtbWEiLCJmaW5kTGVtbWFCeU1ldGF2YXJpYWJsZU5vZGUiLCJkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhUaGVvcmVtIiwidGhlb3JlbSIsImZpbmRUaGVvcmVtQnlNZXRhdmFyaWFibGVOb2RlIiwiZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoQ29uamVjdHVyZSIsImNvbmplY3R1cmUiLCJmaW5kQ29uamVjdHVyZUJ5TWV0YXZhcmlhYmxlTm9kZSIsImRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFJlZmVyZW5jZSIsIm1ldGF2YXJpYWJsZVByZXNlbnQiLCJpc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWtCQTs7O2VBQXdCQTs7O2dFQWhCSTtxQkFFRjs7Ozs7O0FBRTFCLElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQyxtQ0FDL0JDLHdCQUF3QkQsSUFBQUEsZ0JBQVMsRUFBQztBQUV4QyxJQUFNRSwwQ0FBMEM7SUFDOUNDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0NBQ0Q7QUFFYyxTQUFTVix5QkFBeUJXLHNCQUFzQixFQUFFQyxhQUFhLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQ3hILElBQUlDO0lBRUosSUFBTUMsMkJBQTJCRixhQUFhRyxZQUFZLENBQUNQO0lBRTNESSxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBMEMsT0FBekJGLDBCQUF5Qiw2QkFBMkJOO0lBRXpGLElBQU1TLGdCQUFnQm5CLG1CQUFtQlUseUJBQ25DVSxvQkFBb0JDLElBQUFBLGtCQUFlLEVBQUNGLGVBQWVQLGFBQWFDLFNBQVNDO0lBRS9FLElBQUlNLG1CQUFtQjtRQUNyQixJQUFNRSxtQ0FBbUNDLCtCQUErQmIsd0JBQXdCQyxlQUFlRztRQUUvR0MsNkJBQTZCTyxrQ0FBa0MsR0FBRztJQUNwRTtJQUVBLElBQUlQLDRCQUE0QjtRQUM5QkQsYUFBYVUsS0FBSyxDQUFDLEFBQUMsb0JBQTRDLE9BQXpCUiwwQkFBeUIsMkJBQXlCTjtJQUMzRjtJQUVBLE9BQU9LO0FBQ1Q7QUFFQSxTQUFTUSwrQkFBK0JiLHNCQUFzQixFQUFFQyxhQUFhLEVBQUVHLFlBQVk7SUFDekYsSUFBSVE7SUFFSixJQUFNTiwyQkFBMkJGLGFBQWFHLFlBQVksQ0FBQ1A7SUFFM0RJLGFBQWFJLEtBQUssQ0FBQyxBQUFDLGlCQUF5QyxPQUF6QkYsMEJBQXlCLHFDQUFtQ047SUFFaEdZLG1DQUFtQ25CLHdDQUF3Q3NCLElBQUksQ0FBQyxT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
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3F1YWxpZmllZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeVN0YXRlbWVudCBmcm9tIFwiLi4vLi4vdmVyaWZ5L3N0YXRlbWVudFwiO1xuaW1wb3J0IHVuaWZ5UXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuLi8uLi91bmlmeS9zdGF0ZW1lbnQvcXVhbGlmaWVkXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGFzc2lnbkFzc2lnbm1lbnRzIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hc3NpZ25tZW50c1wiO1xuXG5jb25zdCBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudC4uLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICghcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBjb25zdCBzdGF0ZWQgPSB0cnVlLFxuICAgICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBxdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkID0gdW5pZnlRdWFsaWZpZWRTdGF0ZW1lbnQocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQpIHtcbiAgICAgICAgY29uc3QgYXNzaWdubWVudHNBc3NpZ25lZCA9IGFzc2lnbkFzc2lnbm1lbnRzKGFzc2lnbm1lbnRzLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gYXNzaWdubWVudHNBc3NpZ25lZDsgLy8vXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudC5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJxdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwic3Vic3RpdHV0aW9ucyIsImxvY2FsQ29udGV4dCIsInF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwicXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJzdGF0ZWQiLCJhc3NpZ25tZW50cyIsInN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVN0YXRlbWVudCIsInF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQiLCJ1bmlmeVF1YWxpZmllZFN0YXRlbWVudCIsImFzc2lnbm1lbnRzQXNzaWduZWQiLCJhc3NpZ25Bc3NpZ25tZW50cyIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQXdCQTs7O2dFQVJJO2dFQUNRO3FCQUVWOzJCQUNROzs7Ozs7QUFFbEMsSUFBTUMscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDO0FBRXRCLFNBQVNGLHlCQUF5Qkcsc0JBQXNCLEVBQUVDLGFBQWEsRUFBRUMsWUFBWTtJQUNsRyxJQUFJQyw2QkFBNkI7SUFFakMsSUFBTUMsMkJBQTJCRixhQUFhRyxZQUFZLENBQUNMO0lBRTNERSxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBMEMsT0FBekJGLDBCQUF5Qiw2QkFBMkJKO0lBRXpGLElBQUksQ0FBQ0csNEJBQTRCO1FBQy9CLElBQU1JLFNBQVMsTUFDVEMsY0FBYyxFQUFFLEVBQ2hCQyxnQkFBZ0JYLG1CQUFtQkUseUJBQ25DVSxvQkFBb0JDLElBQUFBLGtCQUFlLEVBQUNGLGVBQWVELGFBQWFELFFBQVFMO1FBRTlFLElBQUlRLG1CQUFtQjtZQUNyQixJQUFNRSw0QkFBNEJDLElBQUFBLGtCQUF1QixFQUFDYix3QkFBd0JDLGVBQWVDO1lBRWpHLElBQUlVLDJCQUEyQjtnQkFDN0IsSUFBTUUsc0JBQXNCQyxJQUFBQSw4QkFBaUIsRUFBQ1AsYUFBYU47Z0JBRTNEQyw2QkFBNkJXLHFCQUFxQixHQUFHO1lBQ3ZEO1FBQ0Y7SUFDRjtJQUVBLElBQUlYLDRCQUE0QjtRQUM5QkQsYUFBYWMsS0FBSyxDQUFDLEFBQUMsb0JBQTRDLE9BQXpCWiwwQkFBeUIsMkJBQXlCSjtJQUMzRjtJQUVBLE9BQU9HO0FBQ1QifQ==
@@ -9,7 +9,14 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _statement = /*#__PURE__*/ _interop_require_wildcard(require("../../verify/statement"));
12
+ var _unqualified = /*#__PURE__*/ _interop_require_default(require("../../unify/statement/unqualified"));
12
13
  var _query = require("../../utilities/query");
14
+ var _assignments = require("../../utilities/assignments");
15
+ function _interop_require_default(obj) {
16
+ return obj && obj.__esModule ? obj : {
17
+ default: obj
18
+ };
19
+ }
13
20
  function _getRequireWildcardCache(nodeInterop) {
14
21
  if (typeof WeakMap !== "function") return null;
15
22
  var cacheBabelInterop = new WeakMap();
@@ -52,22 +59,25 @@ function _interop_require_wildcard(obj, nodeInterop) {
52
59
  return newObj;
53
60
  }
54
61
  var statementNodeQuery = (0, _query.nodeQuery)("/unqualifiedStatement/statement!");
55
- function verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext) {
56
- var unqualifiedStatementVerified;
62
+ function verifyUnqualifiedStatement(unqualifiedStatementNode, localContext) {
63
+ var unqualifiedStatementVerified = false;
57
64
  var unqualifiedStatementString = localContext.nodeAsString(unqualifiedStatementNode);
58
65
  localContext.trace("Verifying the '".concat(unqualifiedStatementString, "' unqualified statement..."), unqualifiedStatementNode);
59
- var statementNode = statementNodeQuery(unqualifiedStatementNode), statementVerified = (0, _statement.default)(statementNode, assignments, derived, localContext);
60
- if (statementVerified) {
61
- if (derived) {
62
- var statementVerifiedTrivially = (0, _statement.verifyStatementTrivially)(statementNode, localContext);
66
+ if (!unqualifiedStatementVerified) {
67
+ var stated = true, assignments = [], statementNode = statementNodeQuery(unqualifiedStatementNode), statementVerified = (0, _statement.default)(statementNode, assignments, stated, localContext);
68
+ if (statementVerified) {
69
+ var unqualifiedStatementUnified = (0, _unqualified.default)(unqualifiedStatementNode, localContext);
70
+ unqualifiedStatementVerified = unqualifiedStatementUnified; ///
71
+ }
72
+ }
73
+ if (!unqualifiedStatementVerified) {
74
+ var stated1 = false, assignments1 = [], statementNode1 = statementNodeQuery(unqualifiedStatementNode), statementVerified1 = (0, _statement.default)(statementNode1, assignments1, stated1, localContext);
75
+ if (statementVerified1) {
76
+ var statementVerifiedTrivially = (0, _statement.verifyStatementTrivially)(statementNode1, localContext);
63
77
  if (statementVerifiedTrivially) {
64
- unqualifiedStatementVerified = true;
65
- } else {
66
- var derivedUnqualifiedStatementUnified = unifyDerivedUnqualifiedStatement(unqualifiedStatementNode, localContext);
67
- unqualifiedStatementVerified = derivedUnqualifiedStatementUnified; ///
78
+ var assignmentsAssigned = (0, _assignments.assignAssignments)(assignments1, localContext);
79
+ unqualifiedStatementVerified = assignmentsAssigned; ///
68
80
  }
69
- } else {
70
- unqualifiedStatementVerified = true;
71
81
  }
72
82
  }
73
83
  if (unqualifiedStatementVerified) {
@@ -75,16 +85,5 @@ function verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, deriv
75
85
  }
76
86
  return unqualifiedStatementVerified;
77
87
  }
78
- function unifyDerivedUnqualifiedStatement(unqualifiedStatementNode, localContext) {
79
- var derivedUnqualifiedStatementUnified;
80
- var unqualifiedStatementString = localContext.nodeAsString(unqualifiedStatementNode);
81
- localContext.trace("Unifying the '".concat(unqualifiedStatementString, "' derived unqualified statement..."), unqualifiedStatementNode);
82
- var statementNode = statementNodeQuery(unqualifiedStatementNode), statementUnified = localContext.unifyStatement(statementNode, localContext);
83
- derivedUnqualifiedStatementUnified = statementUnified; ///
84
- if (derivedUnqualifiedStatementUnified) {
85
- localContext.debug("...unified the '".concat(unqualifiedStatementString, "' derived unqualified statement."), unqualifiedStatementNode);
86
- }
87
- return derivedUnqualifiedStatementUnified;
88
- }
89
88
 
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5U3RhdGVtZW50IGZyb20gXCIuLi8uLi92ZXJpZnkvc3RhdGVtZW50XCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IHZlcmlmeVN0YXRlbWVudFRyaXZpYWxseSB9IGZyb20gXCIuLi8uLi92ZXJpZnkvc3RhdGVtZW50XCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi91bnF1YWxpZmllZFN0YXRlbWVudC9zdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3VucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgdW5xdWFsaWZpZWQgc3RhdGVtZW50Li4uYCwgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGlmIChkZXJpdmVkKSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZFRyaXZpYWxseSA9IHZlcmlmeVN0YXRlbWVudFRyaXZpYWxseShzdGF0ZW1lbnROb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRUcml2aWFsbHkpIHtcbiAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBkZXJpdmVkVW5xdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkID0gdW5pZnlEZXJpdmVkVW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBkZXJpdmVkVW5xdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkOyAvLy9cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHVucXVhbGlmaWVkIHN0YXRlbWVudC5gLCB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5RGVyaXZlZFVucXVhbGlmaWVkU3RhdGVtZW50KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBkZXJpdmVkVW5xdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkO1xuXG4gIGNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3VucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCB1bnF1YWxpZmllZCBzdGF0ZW1lbnQuLi5gLCB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgc3RhdGVtZW50VW5pZmllZCA9IGxvY2FsQ29udGV4dC51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gIGRlcml2ZWRVbnF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQgPSBzdGF0ZW1lbnRVbmlmaWVkOyAgLy8vXG5cbiAgaWYgKGRlcml2ZWRVbnF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3VucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCB1bnF1YWxpZmllZCBzdGF0ZW1lbnQuYCwgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkVW5xdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwibG9jYWxDb250ZXh0IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJzdGF0ZW1lbnRWZXJpZmllZFRyaXZpYWxseSIsInZlcmlmeVN0YXRlbWVudFRyaXZpYWxseSIsImRlcml2ZWRVbnF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQiLCJ1bmlmeURlcml2ZWRVbnF1YWxpZmllZFN0YXRlbWVudCIsImRlYnVnIiwic3RhdGVtZW50VW5pZmllZCIsInVuaWZ5U3RhdGVtZW50Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQXdCQTs7O2lFQVBJO3FCQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHMUIsSUFBTUMscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDO0FBRXRCLFNBQVNGLDJCQUEyQkcsd0JBQXdCLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQzdHLElBQUlDO0lBRUosSUFBTUMsNkJBQTZCRixhQUFhRyxZQUFZLENBQUNOO0lBRTdERyxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBNEMsT0FBM0JGLDRCQUEyQiwrQkFBNkJMO0lBRTdGLElBQU1RLGdCQUFnQlYsbUJBQW1CRSwyQkFDbkNTLG9CQUFvQkMsSUFBQUEsa0JBQWUsRUFBQ0YsZUFBZVAsYUFBYUMsU0FBU0M7SUFFL0UsSUFBSU0sbUJBQW1CO1FBQ3JCLElBQUlQLFNBQVM7WUFDWCxJQUFNUyw2QkFBNkJDLElBQUFBLG1DQUF3QixFQUFDSixlQUFlTDtZQUUzRSxJQUFJUSw0QkFBNEI7Z0JBQzlCUCwrQkFBK0I7WUFDakMsT0FBTztnQkFDTCxJQUFNUyxxQ0FBcUNDLGlDQUFpQ2QsMEJBQTBCRztnQkFFdEdDLCtCQUErQlMsb0NBQW9DLEdBQUc7WUFDeEU7UUFDRixPQUFPO1lBQ0xULCtCQUErQjtRQUNqQztJQUNGO0lBRUEsSUFBSUEsOEJBQThCO1FBQ2hDRCxhQUFhWSxLQUFLLENBQUMsQUFBQyxvQkFBOEMsT0FBM0JWLDRCQUEyQiw2QkFBMkJMO0lBQy9GO0lBRUEsT0FBT0k7QUFDVDtBQUVBLFNBQVNVLGlDQUFpQ2Qsd0JBQXdCLEVBQUVHLFlBQVk7SUFDOUUsSUFBSVU7SUFFSixJQUFNUiw2QkFBNkJGLGFBQWFHLFlBQVksQ0FBQ047SUFFN0RHLGFBQWFJLEtBQUssQ0FBQyxBQUFDLGlCQUEyQyxPQUEzQkYsNEJBQTJCLHVDQUFxQ0w7SUFFcEcsSUFBTVEsZ0JBQWdCVixtQkFBbUJFLDJCQUNuQ2dCLG1CQUFtQmIsYUFBYWMsY0FBYyxDQUFDVCxlQUFlTDtJQUVwRVUscUNBQXFDRyxrQkFBbUIsR0FBRztJQUUzRCxJQUFJSCxvQ0FBb0M7UUFDdENWLGFBQWFZLEtBQUssQ0FBQyxBQUFDLG1CQUE2QyxPQUEzQlYsNEJBQTJCLHFDQUFtQ0w7SUFDdEc7SUFFQSxPQUFPYTtBQUNUIn0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5U3RhdGVtZW50IGZyb20gXCIuLi8uLi92ZXJpZnkvc3RhdGVtZW50XCI7XG5pbXBvcnQgdW5pZnlVbnF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vLi4vdW5pZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGFzc2lnbkFzc2lnbm1lbnRzIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hc3NpZ25tZW50c1wiO1xuaW1wb3J0IHsgdmVyaWZ5U3RhdGVtZW50VHJpdmlhbGx5IH0gZnJvbSBcIi4uLy4uL3ZlcmlmeS9zdGF0ZW1lbnRcIjtcblxuY29uc3Qgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3VucXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3VucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgdW5xdWFsaWZpZWQgc3RhdGVtZW50Li4uYCwgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoIXVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBjb25zdCBzdGF0ZWQgPSB0cnVlLFxuICAgICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZCA9IHVuaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkOyAvLy9cbiAgICB9XG4gIH1cblxuICBpZiAoIXVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBjb25zdCBzdGF0ZWQgPSBmYWxzZSxcbiAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZFRyaXZpYWxseSA9IHZlcmlmeVN0YXRlbWVudFRyaXZpYWxseShzdGF0ZW1lbnROb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRUcml2aWFsbHkpIHtcbiAgICAgICAgY29uc3QgYXNzaWdubWVudHNBc3NpZ25lZCA9IGFzc2lnbkFzc2lnbm1lbnRzKGFzc2lnbm1lbnRzLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBhc3NpZ25tZW50c0Fzc2lnbmVkOyAgLy8vXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHVucXVhbGlmaWVkIHN0YXRlbWVudC5gLCB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJsb2NhbENvbnRleHQiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInN0YXRlZCIsImFzc2lnbm1lbnRzIiwic3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZ5U3RhdGVtZW50IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkIiwidW5pZnlVbnF1YWxpZmllZFN0YXRlbWVudCIsInN0YXRlbWVudFZlcmlmaWVkVHJpdmlhbGx5IiwidmVyaWZ5U3RhdGVtZW50VHJpdmlhbGx5IiwiYXNzaWdubWVudHNBc3NpZ25lZCIsImFzc2lnbkFzc2lnbm1lbnRzIiwiZGVidWciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBd0JBOzs7aUVBVEk7a0VBQ1U7cUJBRVo7MkJBQ1E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR2xDLElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQztBQUV0QixTQUFTRiwyQkFBMkJHLHdCQUF3QixFQUFFQyxZQUFZO0lBQ3ZGLElBQUlDLCtCQUErQjtJQUVuQyxJQUFNQyw2QkFBNkJGLGFBQWFHLFlBQVksQ0FBQ0o7SUFFN0RDLGFBQWFJLEtBQUssQ0FBQyxBQUFDLGtCQUE0QyxPQUEzQkYsNEJBQTJCLCtCQUE2Qkg7SUFFN0YsSUFBSSxDQUFDRSw4QkFBOEI7UUFDakMsSUFBTUksU0FBUyxNQUNUQyxjQUFjLEVBQUUsRUFDaEJDLGdCQUFnQlYsbUJBQW1CRSwyQkFDbkNTLG9CQUFvQkMsSUFBQUEsa0JBQWUsRUFBQ0YsZUFBZUQsYUFBYUQsUUFBUUw7UUFFOUUsSUFBSVEsbUJBQW1CO1lBQ3JCLElBQU1FLDhCQUE4QkMsSUFBQUEsb0JBQXlCLEVBQUNaLDBCQUEwQkM7WUFFeEZDLCtCQUErQlMsNkJBQTZCLEdBQUc7UUFDakU7SUFDRjtJQUVBLElBQUksQ0FBQ1QsOEJBQThCO1FBQ2pDLElBQU1JLFVBQVMsT0FDVEMsZUFBYyxFQUFFLEVBQ2hCQyxpQkFBZ0JWLG1CQUFtQkUsMkJBQ25DUyxxQkFBb0JDLElBQUFBLGtCQUFlLEVBQUNGLGdCQUFlRCxjQUFhRCxTQUFRTDtRQUU5RSxJQUFJUSxvQkFBbUI7WUFDckIsSUFBTUksNkJBQTZCQyxJQUFBQSxtQ0FBd0IsRUFBQ04sZ0JBQWVQO1lBRTNFLElBQUlZLDRCQUE0QjtnQkFDOUIsSUFBTUUsc0JBQXNCQyxJQUFBQSw4QkFBaUIsRUFBQ1QsY0FBYU47Z0JBRTNEQywrQkFBK0JhLHFCQUFzQixHQUFHO1lBQzFEO1FBQ0Y7SUFDRjtJQUVBLElBQUliLDhCQUE4QjtRQUNoQ0QsYUFBYWdCLEtBQUssQ0FBQyxBQUFDLG9CQUE4QyxPQUEzQmQsNEJBQTJCLDZCQUEyQkg7SUFDL0Y7SUFFQSxPQUFPRTtBQUNUIn0=