occam-verify-cli 0.0.1075 → 0.0.1077

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 (39) hide show
  1. package/lib/assertion/contained.js +6 -4
  2. package/lib/assertion/defined.js +2 -2
  3. package/lib/assertion/subproof.js +46 -30
  4. package/lib/declaration.js +5 -8
  5. package/lib/metavariable.js +6 -5
  6. package/lib/mixins/statement/unify.js +2 -2
  7. package/lib/mixins/statement/verify.js +16 -46
  8. package/lib/premise.js +23 -19
  9. package/lib/proofStep.js +61 -23
  10. package/lib/rule.js +8 -10
  11. package/lib/statement/qualified.js +3 -3
  12. package/lib/substitution/statementForMetavariable.js +23 -13
  13. package/lib/substitutions.js +23 -3
  14. package/lib/supposition.js +29 -21
  15. package/lib/topLevelAssertion.js +11 -5
  16. package/lib/variable.js +2 -2
  17. package/lib/verifier/statementAsCombinator.js +4 -11
  18. package/lib/verifier/termAsConstructor.js +3 -3
  19. package/package.json +1 -1
  20. package/src/assertion/contained.js +7 -5
  21. package/src/assertion/defined.js +2 -2
  22. package/src/assertion/subproof.js +61 -42
  23. package/src/declaration.js +5 -8
  24. package/src/metavariable.js +5 -8
  25. package/src/mixins/statement/unify.js +2 -2
  26. package/src/mixins/statement/verify.js +23 -77
  27. package/src/premise.js +39 -31
  28. package/src/proofStep.js +89 -28
  29. package/src/rule.js +8 -13
  30. package/src/statement/qualified.js +2 -4
  31. package/src/substitution/statementForMetavariable.js +33 -18
  32. package/src/substitutions.js +34 -12
  33. package/src/supposition.js +48 -33
  34. package/src/topLevelAssertion.js +14 -6
  35. package/src/variable.js +1 -1
  36. package/src/verifier/statementAsCombinator.js +3 -17
  37. package/src/verifier/termAsConstructor.js +2 -2
  38. package/lib/verifier/metaLevel.js +0 -147
  39. package/src/verifier/metaLevel.js +0 -54
@@ -28,8 +28,8 @@ function unifyWithBracketedCombinator(statement, assignments, stated, localConte
28
28
  function unifyWithCombinators(statement, assignments, stated, localContext) {
29
29
  var unifiedWithCombinators;
30
30
  var combinators = localContext.getCombinators();
31
- assignments = null; ///
32
31
  stated = true; ///
32
+ assignments = null; ///
33
33
  unifiedWithCombinators = combinators.some(function(combinator) {
34
34
  var unifiedWithCombinator = unifyStatementWithCombinator(statement, combinator, assignments, stated, localContext);
35
35
  if (unifiedWithCombinator) {
@@ -54,4 +54,4 @@ function unifyStatementWithCombinator(statement, combinator, assignments, stated
54
54
  return unifiedWithCombinator;
55
55
  }
56
56
 
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9taXhpbnMvc3RhdGVtZW50L3VuaWZ5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgQnJhY2tldGVkQ29tYmluYXRvciBmcm9tIFwiLi4vLi4vY29tYmluYXRvci9icmFja2V0ZWRcIjtcbmltcG9ydCBzdGF0ZW1lbnRXaXRoQ29tYmluYXRvclVuaWZpZXIgZnJvbSBcIi4uLy4uL3VuaWZpZXIvc3RhdGVtZW50V2l0aENvbWJpbmF0b3JcIjtcblxuZnVuY3Rpb24gdW5pZnlXaXRoQnJhY2tldGVkQ29tYmluYXRvcihzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgdW5pZmllZFdpdGhCcmFja2V0ZWRDb21iaW5hdG9yO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgIGJyYWNrZXRlZENvbWJpbmF0b3IgPSBCcmFja2V0ZWRDb21iaW5hdG9yLmZyb21Ob3RoaW5nKCksXG4gICAgICAgIGJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnROb2RlID0gYnJhY2tldGVkQ29tYmluYXRvci5nZXRTdGF0ZW1lbnROb2RlKCksXG4gICAgICAgIGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlID0gYnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudE5vZGU7IC8vL1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSBicmFja2V0ZWQgY29tYmluYXRvci4uLmApO1xuXG4gIHVuaWZpZWRXaXRoQnJhY2tldGVkQ29tYmluYXRvciA9IHN0YXRlbWVudFdpdGhDb21iaW5hdG9yVW5pZmllci51bmlmeShjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSwgc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICBpZiAodW5pZmllZFdpdGhCcmFja2V0ZWRDb21iaW5hdG9yKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgYnJhY2tldGVkIGNvbWJpbmF0b3IuYCk7XG4gIH1cblxuICByZXR1cm4gdW5pZmllZFdpdGhCcmFja2V0ZWRDb21iaW5hdG9yO1xufVxuXG5mdW5jdGlvbiB1bmlmeVdpdGhDb21iaW5hdG9ycyhzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgdW5pZmllZFdpdGhDb21iaW5hdG9ycztcblxuICBjb25zdCBjb21iaW5hdG9ycyA9IGxvY2FsQ29udGV4dC5nZXRDb21iaW5hdG9ycygpO1xuXG4gIGFzc2lnbm1lbnRzID0gbnVsbDsgLy8vXG5cbiAgc3RhdGVkID0gdHJ1ZTsgIC8vL1xuXG4gIHVuaWZpZWRXaXRoQ29tYmluYXRvcnMgPSBjb21iaW5hdG9ycy5zb21lKChjb21iaW5hdG9yKSA9PiB7XG4gICAgY29uc3QgdW5pZmllZFdpdGhDb21iaW5hdG9yID0gdW5pZnlTdGF0ZW1lbnRXaXRoQ29tYmluYXRvcihzdGF0ZW1lbnQsIGNvbWJpbmF0b3IsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAodW5pZmllZFdpdGhDb21iaW5hdG9yKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB1bmlmaWVkV2l0aENvbWJpbmF0b3JzO1xufVxuXG5cbmNvbnN0IHVuaWZ5TWl4aW5zID0gW1xuICB1bmlmeVdpdGhCcmFja2V0ZWRDb21iaW5hdG9yLFxuICB1bmlmeVdpdGhDb21iaW5hdG9yc1xuXTtcblxuZXhwb3J0IGRlZmF1bHQgdW5pZnlNaXhpbnM7XG5cbmZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3Ioc3RhdGVtZW50LCBjb21iaW5hdG9yLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHVuaWZpZWRXaXRoQ29tYmluYXRvcjtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICBjb21iaW5hdG9yU3RyaW5nID0gY29tYmluYXRvci5nZXRTdHJpbmcoKSxcbiAgICAgICAgY29tYmluYXRvclN0YXRlbWVudE5vZGUgPSBjb21iaW5hdG9yLmdldFN0YXRlbWVudE5vZGUoKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuLi5gKTtcblxuICB1bmlmaWVkV2l0aENvbWJpbmF0b3IgPSBzdGF0ZW1lbnRXaXRoQ29tYmluYXRvclVuaWZpZXIudW5pZnkoY29tYmluYXRvclN0YXRlbWVudE5vZGUsIHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgaWYgKHVuaWZpZWRXaXRoQ29tYmluYXRvcikge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke2NvbWJpbmF0b3JTdHJpbmd9JyBjb21iaW5hdG9yLmApO1xuICB9XG5cbiAgcmV0dXJuIHVuaWZpZWRXaXRoQ29tYmluYXRvcjtcbn1cbiJdLCJuYW1lcyI6WyJ1bmlmeVdpdGhCcmFja2V0ZWRDb21iaW5hdG9yIiwic3RhdGVtZW50IiwiYXNzaWdubWVudHMiLCJzdGF0ZWQiLCJsb2NhbENvbnRleHQiLCJ1bmlmaWVkV2l0aEJyYWNrZXRlZENvbWJpbmF0b3IiLCJzdGF0ZW1lbnROb2RlIiwiZ2V0Tm9kZSIsInN0YXRlbWVudFN0cmluZyIsImdldFN0cmluZyIsImJyYWNrZXRlZENvbWJpbmF0b3IiLCJCcmFja2V0ZWRDb21iaW5hdG9yIiwiZnJvbU5vdGhpbmciLCJicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSIsInRyYWNlIiwic3RhdGVtZW50V2l0aENvbWJpbmF0b3JVbmlmaWVyIiwidW5pZnkiLCJkZWJ1ZyIsInVuaWZ5V2l0aENvbWJpbmF0b3JzIiwidW5pZmllZFdpdGhDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZ2V0Q29tYmluYXRvcnMiLCJzb21lIiwiY29tYmluYXRvciIsInVuaWZpZWRXaXRoQ29tYmluYXRvciIsInVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3IiLCJ1bmlmeU1peGlucyIsImNvbWJpbmF0b3JTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQW1EQTs7O2VBQUE7OztnRUFqRGdDOzhFQUNXOzs7Ozs7QUFFM0MsU0FBU0EsNkJBQTZCQyxTQUFTLEVBQUVDLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxZQUFZO0lBQ2hGLElBQUlDO0lBRUosSUFBTUMsZ0JBQWdCTCxVQUFVTSxPQUFPLElBQ2pDQyxrQkFBa0JQLFVBQVVRLFNBQVMsSUFDckNDLHNCQUFzQkMsa0JBQW1CLENBQUNDLFdBQVcsSUFDckRDLG1DQUFtQ0gsb0JBQW9CSSxnQkFBZ0IsSUFDdkVDLDBCQUEwQkYsa0NBQWtDLEdBQUc7SUFFckVULGFBQWFZLEtBQUssQ0FBQyxBQUFDLGlCQUFnQyxPQUFoQlIsaUJBQWdCO0lBRXBESCxpQ0FBaUNZLGdDQUE4QixDQUFDQyxLQUFLLENBQUNILHlCQUF5QlQsZUFBZUosYUFBYUMsUUFBUUM7SUFFbkksSUFBSUMsZ0NBQWdDO1FBQ2xDRCxhQUFhZSxLQUFLLENBQUMsQUFBQyxtQkFBa0MsT0FBaEJYLGlCQUFnQjtJQUN4RDtJQUVBLE9BQU9IO0FBQ1Q7QUFFQSxTQUFTZSxxQkFBcUJuQixTQUFTLEVBQUVDLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxZQUFZO0lBQ3hFLElBQUlpQjtJQUVKLElBQU1DLGNBQWNsQixhQUFhbUIsY0FBYztJQUUvQ3JCLGNBQWMsTUFBTSxHQUFHO0lBRXZCQyxTQUFTLE1BQU8sR0FBRztJQUVuQmtCLHlCQUF5QkMsWUFBWUUsSUFBSSxDQUFDLFNBQUNDO1FBQ3pDLElBQU1DLHdCQUF3QkMsNkJBQTZCMUIsV0FBV3dCLFlBQVl2QixhQUFhQyxRQUFRQztRQUV2RyxJQUFJc0IsdUJBQXVCO1lBQ3pCLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBT0w7QUFDVDtBQUdBLElBQU1PLGNBQWM7SUFDbEI1QjtJQUNBb0I7Q0FDRDtJQUVELFdBQWVRO0FBRWYsU0FBU0QsNkJBQTZCMUIsU0FBUyxFQUFFd0IsVUFBVSxFQUFFdkIsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLFlBQVk7SUFDNUYsSUFBSXNCO0lBRUosSUFBTXBCLGdCQUFnQkwsVUFBVU0sT0FBTyxJQUNqQ0Msa0JBQWtCUCxVQUFVUSxTQUFTLElBQ3JDb0IsbUJBQW1CSixXQUFXaEIsU0FBUyxJQUN2Q00sMEJBQTBCVSxXQUFXWCxnQkFBZ0I7SUFFM0RWLGFBQWFZLEtBQUssQ0FBQyxBQUFDLGlCQUF3RGEsT0FBeENyQixpQkFBZ0IsMEJBQXlDLE9BQWpCcUIsa0JBQWlCO0lBRTdGSCx3QkFBd0JULGdDQUE4QixDQUFDQyxLQUFLLENBQUNILHlCQUF5QlQsZUFBZUosYUFBYUMsUUFBUUM7SUFFMUgsSUFBSXNCLHVCQUF1QjtRQUN6QnRCLGFBQWFlLEtBQUssQ0FBQyxBQUFDLG1CQUEwRFUsT0FBeENyQixpQkFBZ0IsMEJBQXlDLE9BQWpCcUIsa0JBQWlCO0lBQ2pHO0lBRUEsT0FBT0g7QUFDVCJ9
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9taXhpbnMvc3RhdGVtZW50L3VuaWZ5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgQnJhY2tldGVkQ29tYmluYXRvciBmcm9tIFwiLi4vLi4vY29tYmluYXRvci9icmFja2V0ZWRcIjtcbmltcG9ydCBzdGF0ZW1lbnRXaXRoQ29tYmluYXRvclVuaWZpZXIgZnJvbSBcIi4uLy4uL3VuaWZpZXIvc3RhdGVtZW50V2l0aENvbWJpbmF0b3JcIjtcblxuZnVuY3Rpb24gdW5pZnlXaXRoQnJhY2tldGVkQ29tYmluYXRvcihzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgdW5pZmllZFdpdGhCcmFja2V0ZWRDb21iaW5hdG9yO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgIGJyYWNrZXRlZENvbWJpbmF0b3IgPSBCcmFja2V0ZWRDb21iaW5hdG9yLmZyb21Ob3RoaW5nKCksXG4gICAgICAgIGJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnROb2RlID0gYnJhY2tldGVkQ29tYmluYXRvci5nZXRTdGF0ZW1lbnROb2RlKCksXG4gICAgICAgIGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlID0gYnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudE5vZGU7IC8vL1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSBicmFja2V0ZWQgY29tYmluYXRvci4uLmApO1xuXG4gIHVuaWZpZWRXaXRoQnJhY2tldGVkQ29tYmluYXRvciA9IHN0YXRlbWVudFdpdGhDb21iaW5hdG9yVW5pZmllci51bmlmeShjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSwgc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICBpZiAodW5pZmllZFdpdGhCcmFja2V0ZWRDb21iaW5hdG9yKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgYnJhY2tldGVkIGNvbWJpbmF0b3IuYCk7XG4gIH1cblxuICByZXR1cm4gdW5pZmllZFdpdGhCcmFja2V0ZWRDb21iaW5hdG9yO1xufVxuXG5mdW5jdGlvbiB1bmlmeVdpdGhDb21iaW5hdG9ycyhzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgdW5pZmllZFdpdGhDb21iaW5hdG9ycztcblxuICBjb25zdCBjb21iaW5hdG9ycyA9IGxvY2FsQ29udGV4dC5nZXRDb21iaW5hdG9ycygpO1xuXG4gIHN0YXRlZCA9IHRydWU7ICAvLy9cblxuICBhc3NpZ25tZW50cyA9IG51bGw7IC8vL1xuXG4gIHVuaWZpZWRXaXRoQ29tYmluYXRvcnMgPSBjb21iaW5hdG9ycy5zb21lKChjb21iaW5hdG9yKSA9PiB7XG4gICAgY29uc3QgdW5pZmllZFdpdGhDb21iaW5hdG9yID0gdW5pZnlTdGF0ZW1lbnRXaXRoQ29tYmluYXRvcihzdGF0ZW1lbnQsIGNvbWJpbmF0b3IsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAodW5pZmllZFdpdGhDb21iaW5hdG9yKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB1bmlmaWVkV2l0aENvbWJpbmF0b3JzO1xufVxuXG5cbmNvbnN0IHVuaWZ5TWl4aW5zID0gW1xuICB1bmlmeVdpdGhCcmFja2V0ZWRDb21iaW5hdG9yLFxuICB1bmlmeVdpdGhDb21iaW5hdG9yc1xuXTtcblxuZXhwb3J0IGRlZmF1bHQgdW5pZnlNaXhpbnM7XG5cbmZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3Ioc3RhdGVtZW50LCBjb21iaW5hdG9yLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHVuaWZpZWRXaXRoQ29tYmluYXRvcjtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICBjb21iaW5hdG9yU3RyaW5nID0gY29tYmluYXRvci5nZXRTdHJpbmcoKSxcbiAgICAgICAgY29tYmluYXRvclN0YXRlbWVudE5vZGUgPSBjb21iaW5hdG9yLmdldFN0YXRlbWVudE5vZGUoKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuLi5gKTtcblxuICB1bmlmaWVkV2l0aENvbWJpbmF0b3IgPSBzdGF0ZW1lbnRXaXRoQ29tYmluYXRvclVuaWZpZXIudW5pZnkoY29tYmluYXRvclN0YXRlbWVudE5vZGUsIHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgaWYgKHVuaWZpZWRXaXRoQ29tYmluYXRvcikge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke2NvbWJpbmF0b3JTdHJpbmd9JyBjb21iaW5hdG9yLmApO1xuICB9XG5cbiAgcmV0dXJuIHVuaWZpZWRXaXRoQ29tYmluYXRvcjtcbn1cbiJdLCJuYW1lcyI6WyJ1bmlmeVdpdGhCcmFja2V0ZWRDb21iaW5hdG9yIiwic3RhdGVtZW50IiwiYXNzaWdubWVudHMiLCJzdGF0ZWQiLCJsb2NhbENvbnRleHQiLCJ1bmlmaWVkV2l0aEJyYWNrZXRlZENvbWJpbmF0b3IiLCJzdGF0ZW1lbnROb2RlIiwiZ2V0Tm9kZSIsInN0YXRlbWVudFN0cmluZyIsImdldFN0cmluZyIsImJyYWNrZXRlZENvbWJpbmF0b3IiLCJCcmFja2V0ZWRDb21iaW5hdG9yIiwiZnJvbU5vdGhpbmciLCJicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSIsInRyYWNlIiwic3RhdGVtZW50V2l0aENvbWJpbmF0b3JVbmlmaWVyIiwidW5pZnkiLCJkZWJ1ZyIsInVuaWZ5V2l0aENvbWJpbmF0b3JzIiwidW5pZmllZFdpdGhDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZ2V0Q29tYmluYXRvcnMiLCJzb21lIiwiY29tYmluYXRvciIsInVuaWZpZWRXaXRoQ29tYmluYXRvciIsInVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3IiLCJ1bmlmeU1peGlucyIsImNvbWJpbmF0b3JTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQW1EQTs7O2VBQUE7OztnRUFqRGdDOzhFQUNXOzs7Ozs7QUFFM0MsU0FBU0EsNkJBQTZCQyxTQUFTLEVBQUVDLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxZQUFZO0lBQ2hGLElBQUlDO0lBRUosSUFBTUMsZ0JBQWdCTCxVQUFVTSxPQUFPLElBQ2pDQyxrQkFBa0JQLFVBQVVRLFNBQVMsSUFDckNDLHNCQUFzQkMsa0JBQW1CLENBQUNDLFdBQVcsSUFDckRDLG1DQUFtQ0gsb0JBQW9CSSxnQkFBZ0IsSUFDdkVDLDBCQUEwQkYsa0NBQWtDLEdBQUc7SUFFckVULGFBQWFZLEtBQUssQ0FBQyxBQUFDLGlCQUFnQyxPQUFoQlIsaUJBQWdCO0lBRXBESCxpQ0FBaUNZLGdDQUE4QixDQUFDQyxLQUFLLENBQUNILHlCQUF5QlQsZUFBZUosYUFBYUMsUUFBUUM7SUFFbkksSUFBSUMsZ0NBQWdDO1FBQ2xDRCxhQUFhZSxLQUFLLENBQUMsQUFBQyxtQkFBa0MsT0FBaEJYLGlCQUFnQjtJQUN4RDtJQUVBLE9BQU9IO0FBQ1Q7QUFFQSxTQUFTZSxxQkFBcUJuQixTQUFTLEVBQUVDLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxZQUFZO0lBQ3hFLElBQUlpQjtJQUVKLElBQU1DLGNBQWNsQixhQUFhbUIsY0FBYztJQUUvQ3BCLFNBQVMsTUFBTyxHQUFHO0lBRW5CRCxjQUFjLE1BQU0sR0FBRztJQUV2Qm1CLHlCQUF5QkMsWUFBWUUsSUFBSSxDQUFDLFNBQUNDO1FBQ3pDLElBQU1DLHdCQUF3QkMsNkJBQTZCMUIsV0FBV3dCLFlBQVl2QixhQUFhQyxRQUFRQztRQUV2RyxJQUFJc0IsdUJBQXVCO1lBQ3pCLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBT0w7QUFDVDtBQUdBLElBQU1PLGNBQWM7SUFDbEI1QjtJQUNBb0I7Q0FDRDtJQUVELFdBQWVRO0FBRWYsU0FBU0QsNkJBQTZCMUIsU0FBUyxFQUFFd0IsVUFBVSxFQUFFdkIsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLFlBQVk7SUFDNUYsSUFBSXNCO0lBRUosSUFBTXBCLGdCQUFnQkwsVUFBVU0sT0FBTyxJQUNqQ0Msa0JBQWtCUCxVQUFVUSxTQUFTLElBQ3JDb0IsbUJBQW1CSixXQUFXaEIsU0FBUyxJQUN2Q00sMEJBQTBCVSxXQUFXWCxnQkFBZ0I7SUFFM0RWLGFBQWFZLEtBQUssQ0FBQyxBQUFDLGlCQUF3RGEsT0FBeENyQixpQkFBZ0IsMEJBQXlDLE9BQWpCcUIsa0JBQWlCO0lBRTdGSCx3QkFBd0JULGdDQUE4QixDQUFDQyxLQUFLLENBQUNILHlCQUF5QlQsZUFBZUosYUFBYUMsUUFBUUM7SUFFMUgsSUFBSXNCLHVCQUF1QjtRQUN6QnRCLGFBQWFlLEtBQUssQ0FBQyxBQUFDLG1CQUEwRFUsT0FBeENyQixpQkFBZ0IsMEJBQXlDLE9BQWpCcUIsa0JBQWlCO0lBQ2pHO0lBRUEsT0FBT0g7QUFDVCJ9
@@ -19,7 +19,7 @@ function _interop_require_default(obj) {
19
19
  default: obj
20
20
  };
21
21
  }
22
- var frameNodeQuery = (0, _query.nodeQuery)("/statement/frame"), equalityNodeQuery = (0, _query.nodeQuery)("/statement/equality"), judgementNodeQuery = (0, _query.nodeQuery)("/statement/judgement"), declarationNodeQuery = (0, _query.nodeQuery)("/statement/declaration"), metavariableNodeQuery = (0, _query.nodeQuery)("/statement/metavariable!"), typeAssertionNodeQuery = (0, _query.nodeQuery)("/statement/typeAssertion"), definedAssertionNodeQuery = (0, _query.nodeQuery)("/statement/definedAssertion"), subproofAssertionNodeQuery = (0, _query.nodeQuery)("/statement/subproofAssertion"), containedAssertionNodeQuery = (0, _query.nodeQuery)("/statement/containedAssertion");
22
+ var equalityNodeQuery = (0, _query.nodeQuery)("/statement/equality"), judgementNodeQuery = (0, _query.nodeQuery)("/statement/judgement"), metavariableNodeQuery = (0, _query.nodeQuery)("/statement/metavariable!"), typeAssertionNodeQuery = (0, _query.nodeQuery)("/statement/typeAssertion"), definedAssertionNodeQuery = (0, _query.nodeQuery)("/statement/definedAssertion"), subproofAssertionNodeQuery = (0, _query.nodeQuery)("/statement/subproofAssertion"), containedAssertionNodeQuery = (0, _query.nodeQuery)("/statement/containedAssertion");
23
23
  function verifyAsMetavariable(statement, assignments, stated, localContext) {
24
24
  var verifiedAsMetavariable = false;
25
25
  var Metavariable = _shim.default.Metavariable, statementNode = statement.getNode(), metavariableNode = metavariableNodeQuery(statementNode), metavariable = Metavariable.fromMetavariableNode(metavariableNode, localContext);
@@ -48,20 +48,6 @@ function verifyAsEquality(statement, assignments, stated, localContext) {
48
48
  }
49
49
  return verifiedAsEquality;
50
50
  }
51
- function verifyAsFrame(statement, assignments, stated, localContext) {
52
- var verifiedAsFrame = false;
53
- var Frame = _shim.default.Frame, statementNode = statement.getNode(), frameNode = frameNodeQuery(statementNode), frame = Frame.fromFrameNode(frameNode, localContext);
54
- if (frame !== null) {
55
- var statementString = statement.getString();
56
- localContext.trace("Verifying the '".concat(statementString, "' statement as a frame..."));
57
- var frameVerified = frame.verify(assignments, stated, localContext);
58
- verifiedAsFrame = frameVerified; ///
59
- if (verifiedAsFrame) {
60
- localContext.debug("...verified the '".concat(statementString, "' statement as a frame."));
61
- }
62
- }
63
- return verifiedAsFrame;
64
- }
65
51
  function verifyAsJudgement(statement, assignments, stated, localContext) {
66
52
  var verifiedAsJudgement = false;
67
53
  var Judgement = _shim.default.Judgement, statementNode = statement.getNode(), judgementNode = judgementNodeQuery(statementNode), judgement = Judgement.fromJudgementNode(judgementNode, localContext);
@@ -76,20 +62,6 @@ function verifyAsJudgement(statement, assignments, stated, localContext) {
76
62
  }
77
63
  return verifiedAsJudgement;
78
64
  }
79
- function verifyAsDeclaration(statement, assignments, stated, localContext) {
80
- var verifiedAsDeclaration = false;
81
- var Declaration = _shim.default.Declaration, statementNode = statement.getNode(), declarationNode = declarationNodeQuery(statementNode), declaration = Declaration.fromDeclarationNode(declarationNode, localContext);
82
- if (declaration !== null) {
83
- var statementString = statement.getString();
84
- localContext.trace("Verifying the '".concat(statementString, "' statement as a declaration..."));
85
- var declarationVerified = declaration.verify(assignments, stated, localContext);
86
- verifiedAsDeclaration = declarationVerified; ///
87
- if (verifiedAsDeclaration) {
88
- localContext.debug("...verified the '".concat(statementString, "' statement as a declaration."));
89
- }
90
- }
91
- return verifiedAsDeclaration;
92
- }
93
65
  function verifyAsTypeAssertion(statement, assignments, stated, localContext) {
94
66
  var verifiedAsTypeAssertion = false;
95
67
  var statementNode = statement.getNode(), typeAssertionNode = typeAssertionNodeQuery(statementNode), typeAssertion = _type.default.fromTypeAssertionNode(typeAssertionNode, localContext);
@@ -118,20 +90,6 @@ function verifyAsDefinedAssertion(statement, assignments, stated, localContext)
118
90
  }
119
91
  return verifiedAsDefinedAssertion;
120
92
  }
121
- function verifyAsSubproofAssertion(statement, assignments, stated, localContext) {
122
- var verifiedAsSubproofAssertion = false;
123
- var statementNode = statement.getNode(), subproofAssertionNode = subproofAssertionNodeQuery(statementNode), subproofAssertion = _subproof.default.fromSubproofAssertionNode(subproofAssertionNode, localContext);
124
- if (subproofAssertionNode !== null) {
125
- var statementString = statement.getString();
126
- localContext.trace("Verifying the '".concat(statementString, "' statement as a subproof assertion..."));
127
- var subproofAssertionVerified = subproofAssertion.verify(assignments, stated, localContext);
128
- verifiedAsSubproofAssertion = subproofAssertionVerified; ///
129
- if (verifiedAsSubproofAssertion) {
130
- localContext.debug("...verified the '".concat(statementString, "' statement as a subproof assertion."));
131
- }
132
- }
133
- return verifiedAsSubproofAssertion;
134
- }
135
93
  function verifyAsContainedAssertion(statement, assignments, stated, localContext) {
136
94
  var verifiedAsContainedAssertion = false;
137
95
  var statementNode = statement.getNode(), containedAssertionNode = containedAssertionNodeQuery(statementNode), containedAssertion = _contained.default.fromContainedAssertionNode(containedAssertionNode, localContext);
@@ -146,12 +104,24 @@ function verifyAsContainedAssertion(statement, assignments, stated, localContext
146
104
  }
147
105
  return verifiedAsContainedAssertion;
148
106
  }
107
+ function verifyAsSubproofAssertion(statement, assignments, stated, localContext) {
108
+ var verifiedAsSubproofAssertion = false;
109
+ var statementNode = statement.getNode(), subproofAssertionNode = subproofAssertionNodeQuery(statementNode), subproofAssertion = _subproof.default.fromSubproofAssertionNode(subproofAssertionNode, localContext);
110
+ if (subproofAssertionNode !== null) {
111
+ var statementString = statement.getString();
112
+ localContext.trace("Verifying the '".concat(statementString, "' statement as a subproof assertion..."));
113
+ var subproofAssertionVerified = subproofAssertion.verify(assignments, stated, localContext);
114
+ verifiedAsSubproofAssertion = subproofAssertionVerified; ///
115
+ if (verifiedAsSubproofAssertion) {
116
+ localContext.debug("...verified the '".concat(statementString, "' statement as a subproof assertion."));
117
+ }
118
+ }
119
+ return verifiedAsSubproofAssertion;
120
+ }
149
121
  var verifyMixins = [
150
122
  verifyAsMetavariable,
151
123
  verifyAsEquality,
152
- verifyAsFrame,
153
124
  verifyAsJudgement,
154
- verifyAsDeclaration,
155
125
  verifyAsTypeAssertion,
156
126
  verifyAsDefinedAssertion,
157
127
  verifyAsSubproofAssertion,
@@ -159,4 +129,4 @@ var verifyMixins = [
159
129
  ];
160
130
  var _default = verifyMixins;
161
131
 
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9taXhpbnMvc3RhdGVtZW50L3ZlcmlmeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uLy4uL3NoaW1cIjtcbmltcG9ydCBUeXBlQXNzZXJ0aW9uIGZyb20gXCIuLi8uLi9hc3NlcnRpb24vdHlwZVwiO1xuaW1wb3J0IERlZmluZWRBc3NlcnRpb24gZnJvbSBcIi4uLy4uL2Fzc2VydGlvbi9kZWZpbmVkXCI7XG5pbXBvcnQgU3VicHJvb2ZBc3NlcnRpb24gZnJvbSBcIi4uLy4uL2Fzc2VydGlvbi9zdWJwcm9vZlwiO1xuaW1wb3J0IENvbnRhaW5lZEFzc2VydGlvbiBmcm9tIFwiLi4vLi4vYXNzZXJ0aW9uL2NvbnRhaW5lZFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGZyYW1lTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9mcmFtZVwiKSxcbiAgICAgIGVxdWFsaXR5Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9lcXVhbGl0eVwiKSxcbiAgICAgIGp1ZGdlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvanVkZ2VtZW50XCIpLFxuICAgICAgZGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L2RlY2xhcmF0aW9uXCIpLFxuICAgICAgbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9tZXRhdmFyaWFibGUhXCIpLFxuICAgICAgdHlwZUFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvdHlwZUFzc2VydGlvblwiKSxcbiAgICAgIGRlZmluZWRBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L2RlZmluZWRBc3NlcnRpb25cIiksXG4gICAgICBzdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvc3VicHJvb2ZBc3NlcnRpb25cIiksXG4gICAgICBjb250YWluZWRBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L2NvbnRhaW5lZEFzc2VydGlvblwiKTtcblxuZnVuY3Rpb24gdmVyaWZ5QXNNZXRhdmFyaWFibGUoc3RhdGVtZW50LCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHZlcmlmaWVkQXNNZXRhdmFyaWFibGUgPSBmYWxzZTtcblxuICBjb25zdCB7IE1ldGF2YXJpYWJsZSB9ID0gc2hpbSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gIGlmIChtZXRhdmFyaWFibGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgbWV0YXZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVWZXJpZmllZCA9IG1ldGF2YXJpYWJsZS52ZXJpZnkobG9jYWxDb250ZXh0KTtcblxuICAgIHZlcmlmaWVkQXNNZXRhdmFyaWFibGUgPSBtZXRhdmFyaWFibGVWZXJpZmllZDsgLy8vXG5cbiAgICBpZiAodmVyaWZpZWRBc01ldGF2YXJpYWJsZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgbWV0YXZhcmlhYmxlLmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJpZmllZEFzTWV0YXZhcmlhYmxlO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBc0VxdWFsaXR5KHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllZEFzRXF1YWxpdHkgPSBmYWxzZTtcblxuICBjb25zdCB7IEVxdWFsaXR5IH0gPSBzaGltLFxuICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZXF1YWxpdHlOb2RlID0gZXF1YWxpdHlOb2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGVxdWFsaXR5ID0gRXF1YWxpdHkuZnJvbUVxdWFsaXR5Tm9kZShlcXVhbGl0eU5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgaWYgKGVxdWFsaXR5ICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhbiBlcXVhbGl0eS4uLmApO1xuXG4gICAgY29uc3QgZXF1YWxpdHlWZXJpZmllZCA9IGVxdWFsaXR5LnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgdmVyaWZpZWRBc0VxdWFsaXR5ID0gZXF1YWxpdHlWZXJpZmllZDsgLy8vXG5cbiAgICBpZiAodmVyaWZpZWRBc0VxdWFsaXR5KSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVkQXNFcXVhbGl0eTtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5QXNGcmFtZShzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgdmVyaWZpZWRBc0ZyYW1lID0gZmFsc2U7XG5cbiAgY29uc3QgeyBGcmFtZSB9ID0gc2hpbSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGZyYW1lTm9kZSA9IGZyYW1lTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBmcmFtZSA9IEZyYW1lLmZyb21GcmFtZU5vZGUoZnJhbWVOb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gIGlmIChmcmFtZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBmcmFtZS4uLmApO1xuXG4gICAgY29uc3QgZnJhbWVWZXJpZmllZCA9IGZyYW1lLnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgdmVyaWZpZWRBc0ZyYW1lID0gZnJhbWVWZXJpZmllZDsgLy8vXG5cbiAgICBpZiAodmVyaWZpZWRBc0ZyYW1lKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBmcmFtZS5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmVyaWZpZWRBc0ZyYW1lO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBc0p1ZGdlbWVudChzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgdmVyaWZpZWRBc0p1ZGdlbWVudCA9IGZhbHNlO1xuXG4gIGNvbnN0IHsgSnVkZ2VtZW50IH0gPSBzaGltLFxuICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAganVkZ2VtZW50Tm9kZSA9IGp1ZGdlbWVudE5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAganVkZ2VtZW50ID0gSnVkZ2VtZW50LmZyb21KdWRnZW1lbnROb2RlKGp1ZGdlbWVudE5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgaWYgKGp1ZGdlbWVudCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBqdWRnZW1lbnQuLi5gKTtcblxuICAgIGNvbnN0IGp1ZGdlbWVudFZlcmlmaWVkID0ganVkZ2VtZW50LnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgdmVyaWZpZWRBc0p1ZGdlbWVudCA9IGp1ZGdlbWVudFZlcmlmaWVkOyAgLy8vXG5cbiAgICBpZiAodmVyaWZpZWRBc0p1ZGdlbWVudCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEganVkZ2VtZW50LmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJpZmllZEFzSnVkZ2VtZW50O1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBc0RlY2xhcmF0aW9uKHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllZEFzRGVjbGFyYXRpb24gPSBmYWxzZTtcblxuICBjb25zdCB7IERlY2xhcmF0aW9uIH0gPSBzaGltLFxuICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZGVjbGFyYXRpb25Ob2RlID0gZGVjbGFyYXRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGRlY2xhcmF0aW9uID0gRGVjbGFyYXRpb24uZnJvbURlY2xhcmF0aW9uTm9kZShkZWNsYXJhdGlvbk5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgaWYgKGRlY2xhcmF0aW9uICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlY2xhcmF0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBkZWNsYXJhdGlvblZlcmlmaWVkID0gZGVjbGFyYXRpb24udmVyaWZ5KGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICB2ZXJpZmllZEFzRGVjbGFyYXRpb24gPSBkZWNsYXJhdGlvblZlcmlmaWVkOyAvLy9cblxuICAgIGlmICh2ZXJpZmllZEFzRGVjbGFyYXRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlY2xhcmF0aW9uLmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJpZmllZEFzRGVjbGFyYXRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUFzVHlwZUFzc2VydGlvbihzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgdmVyaWZpZWRBc1R5cGVBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgdHlwZUFzc2VydGlvbk5vZGUgPSB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICB0eXBlQXNzZXJ0aW9uID0gVHlwZUFzc2VydGlvbi5mcm9tVHlwZUFzc2VydGlvbk5vZGUodHlwZUFzc2VydGlvbk5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgaWYgKHR5cGVBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgdHlwZSBhc3NlcnRpb24uLi5gKTtcblxuICAgIGNvbnN0IHR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHR5cGVBc3NlcnRpb24udmVyaWZ5KGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICB2ZXJpZmllZEFzVHlwZUFzc2VydGlvbiA9IHR5cGVBc3NlcnRpb25WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAodmVyaWZpZWRBc1R5cGVBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJpZmllZEFzVHlwZUFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5QXNEZWZpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBkZWZpbmVkQXNzZXJ0aW9uTm9kZSA9IGRlZmluZWRBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGRlZmluZWRBc3NlcnRpb24gPSBEZWZpbmVkQXNzZXJ0aW9uLmZyb21EZWZpbmVkQXNzZXJ0aW9uTm9kZShkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICBpZiAoZGVmaW5lZEFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi4uLmApO1xuXG4gICAgY29uc3QgZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkID0gZGVmaW5lZEFzc2VydGlvbi52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIHZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uID0gZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkOyAvLy9cblxuICAgIGlmICh2ZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBc1N1YnByb29mQXNzZXJ0aW9uKHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllZEFzU3VicHJvb2ZBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgc3VicHJvb2ZBc3NlcnRpb25Ob2RlID0gc3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIHN1YnByb29mQXNzZXJ0aW9uID0gU3VicHJvb2ZBc3NlcnRpb24uZnJvbVN1YnByb29mQXNzZXJ0aW9uTm9kZShzdWJwcm9vZkFzc2VydGlvbk5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgaWYgKHN1YnByb29mQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBzdWJwcm9vZiBhc3NlcnRpb24uLi5gKTtcblxuICAgIGNvbnN0IHN1YnByb29mQXNzZXJ0aW9uVmVyaWZpZWQgPSBzdWJwcm9vZkFzc2VydGlvbi52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIHZlcmlmaWVkQXNTdWJwcm9vZkFzc2VydGlvbiA9IHN1YnByb29mQXNzZXJ0aW9uVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHZlcmlmaWVkQXNTdWJwcm9vZkFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgc3VicHJvb2YgYXNzZXJ0aW9uLmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJpZmllZEFzU3VicHJvb2ZBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUFzQ29udGFpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUgPSBjb250YWluZWRBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGNvbnRhaW5lZEFzc2VydGlvbiA9IENvbnRhaW5lZEFzc2VydGlvbi5mcm9tQ29udGFpbmVkQXNzZXJ0aW9uTm9kZShjb250YWluZWRBc3NlcnRpb25Ob2RlLCBsb2NhbENvbnRleHQpO1xuXG4gIGlmIChjb250YWluZWRBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi4uLmApO1xuXG4gICAgY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSBjb250YWluZWRBc3NlcnRpb24udmVyaWZ5KGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICB2ZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uID0gY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGNvbnRhaW5lZCBhc3NlcnRpb24uYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb247XG59XG5cbmNvbnN0IHZlcmlmeU1peGlucyA9IFtcbiAgdmVyaWZ5QXNNZXRhdmFyaWFibGUsXG4gIHZlcmlmeUFzRXF1YWxpdHksXG4gIHZlcmlmeUFzRnJhbWUsXG4gIHZlcmlmeUFzSnVkZ2VtZW50LFxuICB2ZXJpZnlBc0RlY2xhcmF0aW9uLFxuICB2ZXJpZnlBc1R5cGVBc3NlcnRpb24sXG4gIHZlcmlmeUFzRGVmaW5lZEFzc2VydGlvbixcbiAgdmVyaWZ5QXNTdWJwcm9vZkFzc2VydGlvbixcbiAgdmVyaWZ5QXNDb250YWluZWRBc3NlcnRpb25cbl07XG5cbmV4cG9ydCBkZWZhdWx0IHZlcmlmeU1peGlucztcbiJdLCJuYW1lcyI6WyJmcmFtZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImVxdWFsaXR5Tm9kZVF1ZXJ5IiwianVkZ2VtZW50Tm9kZVF1ZXJ5IiwiZGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJtZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJ0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwiZGVmaW5lZEFzc2VydGlvbk5vZGVRdWVyeSIsInN1YnByb29mQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwiY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwidmVyaWZ5QXNNZXRhdmFyaWFibGUiLCJzdGF0ZW1lbnQiLCJhc3NpZ25tZW50cyIsInN0YXRlZCIsImxvY2FsQ29udGV4dCIsInZlcmlmaWVkQXNNZXRhdmFyaWFibGUiLCJNZXRhdmFyaWFibGUiLCJzaGltIiwic3RhdGVtZW50Tm9kZSIsImdldE5vZGUiLCJtZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlIiwiZnJvbU1ldGF2YXJpYWJsZU5vZGUiLCJzdGF0ZW1lbnRTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsIm1ldGF2YXJpYWJsZVZlcmlmaWVkIiwidmVyaWZ5IiwiZGVidWciLCJ2ZXJpZnlBc0VxdWFsaXR5IiwidmVyaWZpZWRBc0VxdWFsaXR5IiwiRXF1YWxpdHkiLCJlcXVhbGl0eU5vZGUiLCJlcXVhbGl0eSIsImZyb21FcXVhbGl0eU5vZGUiLCJlcXVhbGl0eVZlcmlmaWVkIiwidmVyaWZ5QXNGcmFtZSIsInZlcmlmaWVkQXNGcmFtZSIsIkZyYW1lIiwiZnJhbWVOb2RlIiwiZnJhbWUiLCJmcm9tRnJhbWVOb2RlIiwiZnJhbWVWZXJpZmllZCIsInZlcmlmeUFzSnVkZ2VtZW50IiwidmVyaWZpZWRBc0p1ZGdlbWVudCIsIkp1ZGdlbWVudCIsImp1ZGdlbWVudE5vZGUiLCJqdWRnZW1lbnQiLCJmcm9tSnVkZ2VtZW50Tm9kZSIsImp1ZGdlbWVudFZlcmlmaWVkIiwidmVyaWZ5QXNEZWNsYXJhdGlvbiIsInZlcmlmaWVkQXNEZWNsYXJhdGlvbiIsIkRlY2xhcmF0aW9uIiwiZGVjbGFyYXRpb25Ob2RlIiwiZGVjbGFyYXRpb24iLCJmcm9tRGVjbGFyYXRpb25Ob2RlIiwiZGVjbGFyYXRpb25WZXJpZmllZCIsInZlcmlmeUFzVHlwZUFzc2VydGlvbiIsInZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uIiwidHlwZUFzc2VydGlvbk5vZGUiLCJ0eXBlQXNzZXJ0aW9uIiwiVHlwZUFzc2VydGlvbiIsImZyb21UeXBlQXNzZXJ0aW9uTm9kZSIsInR5cGVBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeUFzRGVmaW5lZEFzc2VydGlvbiIsInZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uIiwiZGVmaW5lZEFzc2VydGlvbk5vZGUiLCJkZWZpbmVkQXNzZXJ0aW9uIiwiRGVmaW5lZEFzc2VydGlvbiIsImZyb21EZWZpbmVkQXNzZXJ0aW9uTm9kZSIsImRlZmluZWRBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeUFzU3VicHJvb2ZBc3NlcnRpb24iLCJ2ZXJpZmllZEFzU3VicHJvb2ZBc3NlcnRpb24iLCJzdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJzdWJwcm9vZkFzc2VydGlvbiIsIlN1YnByb29mQXNzZXJ0aW9uIiwiZnJvbVN1YnByb29mQXNzZXJ0aW9uTm9kZSIsInN1YnByb29mQXNzZXJ0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlBc0NvbnRhaW5lZEFzc2VydGlvbiIsInZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24iLCJjb250YWluZWRBc3NlcnRpb25Ob2RlIiwiY29udGFpbmVkQXNzZXJ0aW9uIiwiQ29udGFpbmVkQXNzZXJ0aW9uIiwiZnJvbUNvbnRhaW5lZEFzc2VydGlvbk5vZGUiLCJjb250YWluZWRBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeU1peGlucyJdLCJtYXBwaW5ncyI6IkFB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
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9taXhpbnMvc3RhdGVtZW50L3ZlcmlmeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uLy4uL3NoaW1cIjtcbmltcG9ydCBUeXBlQXNzZXJ0aW9uIGZyb20gXCIuLi8uLi9hc3NlcnRpb24vdHlwZVwiO1xuaW1wb3J0IERlZmluZWRBc3NlcnRpb24gZnJvbSBcIi4uLy4uL2Fzc2VydGlvbi9kZWZpbmVkXCI7XG5pbXBvcnQgU3VicHJvb2ZBc3NlcnRpb24gZnJvbSBcIi4uLy4uL2Fzc2VydGlvbi9zdWJwcm9vZlwiO1xuaW1wb3J0IENvbnRhaW5lZEFzc2VydGlvbiBmcm9tIFwiLi4vLi4vYXNzZXJ0aW9uL2NvbnRhaW5lZFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGVxdWFsaXR5Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9lcXVhbGl0eVwiKSxcbiAgICAgIGp1ZGdlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvanVkZ2VtZW50XCIpLFxuICAgICAgbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9tZXRhdmFyaWFibGUhXCIpLFxuICAgICAgdHlwZUFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvdHlwZUFzc2VydGlvblwiKSxcbiAgICAgIGRlZmluZWRBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L2RlZmluZWRBc3NlcnRpb25cIiksXG4gICAgICBzdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvc3VicHJvb2ZBc3NlcnRpb25cIiksXG4gICAgICBjb250YWluZWRBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L2NvbnRhaW5lZEFzc2VydGlvblwiKTtcblxuZnVuY3Rpb24gdmVyaWZ5QXNNZXRhdmFyaWFibGUoc3RhdGVtZW50LCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHZlcmlmaWVkQXNNZXRhdmFyaWFibGUgPSBmYWxzZTtcblxuICBjb25zdCB7IE1ldGF2YXJpYWJsZSB9ID0gc2hpbSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gIGlmIChtZXRhdmFyaWFibGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgbWV0YXZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVWZXJpZmllZCA9IG1ldGF2YXJpYWJsZS52ZXJpZnkobG9jYWxDb250ZXh0KTtcblxuICAgIHZlcmlmaWVkQXNNZXRhdmFyaWFibGUgPSBtZXRhdmFyaWFibGVWZXJpZmllZDsgLy8vXG5cbiAgICBpZiAodmVyaWZpZWRBc01ldGF2YXJpYWJsZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgbWV0YXZhcmlhYmxlLmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJpZmllZEFzTWV0YXZhcmlhYmxlO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBc0VxdWFsaXR5KHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllZEFzRXF1YWxpdHkgPSBmYWxzZTtcblxuICBjb25zdCB7IEVxdWFsaXR5IH0gPSBzaGltLFxuICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZXF1YWxpdHlOb2RlID0gZXF1YWxpdHlOb2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGVxdWFsaXR5ID0gRXF1YWxpdHkuZnJvbUVxdWFsaXR5Tm9kZShlcXVhbGl0eU5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgaWYgKGVxdWFsaXR5ICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhbiBlcXVhbGl0eS4uLmApO1xuXG4gICAgY29uc3QgZXF1YWxpdHlWZXJpZmllZCA9IGVxdWFsaXR5LnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgdmVyaWZpZWRBc0VxdWFsaXR5ID0gZXF1YWxpdHlWZXJpZmllZDsgLy8vXG5cbiAgICBpZiAodmVyaWZpZWRBc0VxdWFsaXR5KSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVkQXNFcXVhbGl0eTtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5QXNKdWRnZW1lbnQoc3RhdGVtZW50LCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHZlcmlmaWVkQXNKdWRnZW1lbnQgPSBmYWxzZTtcblxuICBjb25zdCB7IEp1ZGdlbWVudCB9ID0gc2hpbSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGp1ZGdlbWVudE5vZGUgPSBqdWRnZW1lbnROb2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGp1ZGdlbWVudCA9IEp1ZGdlbWVudC5mcm9tSnVkZ2VtZW50Tm9kZShqdWRnZW1lbnROb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gIGlmIChqdWRnZW1lbnQgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEganVkZ2VtZW50Li4uYCk7XG5cbiAgICBjb25zdCBqdWRnZW1lbnRWZXJpZmllZCA9IGp1ZGdlbWVudC52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIHZlcmlmaWVkQXNKdWRnZW1lbnQgPSBqdWRnZW1lbnRWZXJpZmllZDsgIC8vL1xuXG4gICAgaWYgKHZlcmlmaWVkQXNKdWRnZW1lbnQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGp1ZGdlbWVudC5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmVyaWZpZWRBc0p1ZGdlbWVudDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5QXNUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllZEFzVHlwZUFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICB0eXBlQXNzZXJ0aW9uTm9kZSA9IHR5cGVBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIHR5cGVBc3NlcnRpb24gPSBUeXBlQXNzZXJ0aW9uLmZyb21UeXBlQXNzZXJ0aW9uTm9kZSh0eXBlQXNzZXJ0aW9uTm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICBpZiAodHlwZUFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSB0eXBlIGFzc2VydGlvbi4uLmApO1xuXG4gICAgY29uc3QgdHlwZUFzc2VydGlvblZlcmlmaWVkID0gdHlwZUFzc2VydGlvbi52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIHZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uID0gdHlwZUFzc2VydGlvblZlcmlmaWVkOyAvLy9cblxuICAgIGlmICh2ZXJpZmllZEFzVHlwZUFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgdHlwZSBhc3NlcnRpb24uYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBc0RlZmluZWRBc3NlcnRpb24oc3RhdGVtZW50LCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGRlZmluZWRBc3NlcnRpb25Ob2RlID0gZGVmaW5lZEFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgZGVmaW5lZEFzc2VydGlvbiA9IERlZmluZWRBc3NlcnRpb24uZnJvbURlZmluZWRBc3NlcnRpb25Ob2RlKGRlZmluZWRBc3NlcnRpb25Ob2RlLCBsb2NhbENvbnRleHQpO1xuXG4gIGlmIChkZWZpbmVkQXNzZXJ0aW9uICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBkZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSBkZWZpbmVkQXNzZXJ0aW9uLnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgdmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBkZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUFzQ29udGFpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUgPSBjb250YWluZWRBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGNvbnRhaW5lZEFzc2VydGlvbiA9IENvbnRhaW5lZEFzc2VydGlvbi5mcm9tQ29udGFpbmVkQXNzZXJ0aW9uTm9kZShjb250YWluZWRBc3NlcnRpb25Ob2RlLCBsb2NhbENvbnRleHQpO1xuXG4gIGlmIChjb250YWluZWRBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi4uLmApO1xuXG4gICAgY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSBjb250YWluZWRBc3NlcnRpb24udmVyaWZ5KGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICB2ZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uID0gY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGNvbnRhaW5lZCBhc3NlcnRpb24uYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUFzU3VicHJvb2ZBc3NlcnRpb24oc3RhdGVtZW50LCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHZlcmlmaWVkQXNTdWJwcm9vZkFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBzdWJwcm9vZkFzc2VydGlvbk5vZGUgPSBzdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgc3VicHJvb2ZBc3NlcnRpb24gPSBTdWJwcm9vZkFzc2VydGlvbi5mcm9tU3VicHJvb2ZBc3NlcnRpb25Ob2RlKHN1YnByb29mQXNzZXJ0aW9uTm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICBpZiAoc3VicHJvb2ZBc3NlcnRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHN1YnByb29mIGFzc2VydGlvbi4uLmApO1xuXG4gICAgY29uc3Qgc3VicHJvb2ZBc3NlcnRpb25WZXJpZmllZCA9IHN1YnByb29mQXNzZXJ0aW9uLnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgdmVyaWZpZWRBc1N1YnByb29mQXNzZXJ0aW9uID0gc3VicHJvb2ZBc3NlcnRpb25WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAodmVyaWZpZWRBc1N1YnByb29mQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBzdWJwcm9vZiBhc3NlcnRpb24uYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVkQXNTdWJwcm9vZkFzc2VydGlvbjtcbn1cblxuY29uc3QgdmVyaWZ5TWl4aW5zID0gW1xuICB2ZXJpZnlBc01ldGF2YXJpYWJsZSxcbiAgdmVyaWZ5QXNFcXVhbGl0eSxcbiAgdmVyaWZ5QXNKdWRnZW1lbnQsXG4gIHZlcmlmeUFzVHlwZUFzc2VydGlvbixcbiAgdmVyaWZ5QXNEZWZpbmVkQXNzZXJ0aW9uLFxuICB2ZXJpZnlBc1N1YnByb29mQXNzZXJ0aW9uLFxuICB2ZXJpZnlBc0NvbnRhaW5lZEFzc2VydGlvblxuXTtcblxuZXhwb3J0IGRlZmF1bHQgdmVyaWZ5TWl4aW5zO1xuIl0sIm5hbWVzIjpbImVxdWFsaXR5Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwianVkZ2VtZW50Tm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlTm9kZVF1ZXJ5IiwidHlwZUFzc2VydGlvbk5vZGVRdWVyeSIsImRlZmluZWRBc3NlcnRpb25Ob2RlUXVlcnkiLCJzdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSIsImNvbnRhaW5lZEFzc2VydGlvbk5vZGVRdWVyeSIsInZlcmlmeUFzTWV0YXZhcmlhYmxlIiwic3RhdGVtZW50IiwiYXNzaWdubWVudHMiLCJzdGF0ZWQiLCJsb2NhbENvbnRleHQiLCJ2ZXJpZmllZEFzTWV0YXZhcmlhYmxlIiwiTWV0YXZhcmlhYmxlIiwic2hpbSIsInN0YXRlbWVudE5vZGUiLCJnZXROb2RlIiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZSIsImZyb21NZXRhdmFyaWFibGVOb2RlIiwic3RhdGVtZW50U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJtZXRhdmFyaWFibGVWZXJpZmllZCIsInZlcmlmeSIsImRlYnVnIiwidmVyaWZ5QXNFcXVhbGl0eSIsInZlcmlmaWVkQXNFcXVhbGl0eSIsIkVxdWFsaXR5IiwiZXF1YWxpdHlOb2RlIiwiZXF1YWxpdHkiLCJmcm9tRXF1YWxpdHlOb2RlIiwiZXF1YWxpdHlWZXJpZmllZCIsInZlcmlmeUFzSnVkZ2VtZW50IiwidmVyaWZpZWRBc0p1ZGdlbWVudCIsIkp1ZGdlbWVudCIsImp1ZGdlbWVudE5vZGUiLCJqdWRnZW1lbnQiLCJmcm9tSnVkZ2VtZW50Tm9kZSIsImp1ZGdlbWVudFZlcmlmaWVkIiwidmVyaWZ5QXNUeXBlQXNzZXJ0aW9uIiwidmVyaWZpZWRBc1R5cGVBc3NlcnRpb24iLCJ0eXBlQXNzZXJ0aW9uTm9kZSIsInR5cGVBc3NlcnRpb24iLCJUeXBlQXNzZXJ0aW9uIiwiZnJvbVR5cGVBc3NlcnRpb25Ob2RlIiwidHlwZUFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5QXNEZWZpbmVkQXNzZXJ0aW9uIiwidmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24iLCJkZWZpbmVkQXNzZXJ0aW9uTm9kZSIsImRlZmluZWRBc3NlcnRpb24iLCJEZWZpbmVkQXNzZXJ0aW9uIiwiZnJvbURlZmluZWRBc3NlcnRpb25Ob2RlIiwiZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5QXNDb250YWluZWRBc3NlcnRpb24iLCJ2ZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uIiwiY29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsImNvbnRhaW5lZEFzc2VydGlvbiIsIkNvbnRhaW5lZEFzc2VydGlvbiIsImZyb21Db250YWluZWRBc3NlcnRpb25Ob2RlIiwiY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlBc1N1YnByb29mQXNzZXJ0aW9uIiwidmVyaWZpZWRBc1N1YnByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZBc3NlcnRpb25Ob2RlIiwic3VicHJvb2ZBc3NlcnRpb24iLCJTdWJwcm9vZkFzc2VydGlvbiIsImZyb21TdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJzdWJwcm9vZkFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5TWl4aW5zIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkF1TUE7OztlQUFBOzs7MkRBck1pQjsyREFDUzs4REFDRzsrREFDQztnRUFDQztxQkFFTDs7Ozs7O0FBRTFCLElBQU1BLG9CQUFvQkMsSUFBQUEsZ0JBQVMsRUFBQyx3QkFDOUJDLHFCQUFxQkQsSUFBQUEsZ0JBQVMsRUFBQyx5QkFDL0JFLHdCQUF3QkYsSUFBQUEsZ0JBQVMsRUFBQyw2QkFDbENHLHlCQUF5QkgsSUFBQUEsZ0JBQVMsRUFBQyw2QkFDbkNJLDRCQUE0QkosSUFBQUEsZ0JBQVMsRUFBQyxnQ0FDdENLLDZC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
package/lib/premise.js CHANGED
@@ -70,24 +70,6 @@ var Premise = /*#__PURE__*/ function() {
70
70
  return this.unqualifiedStatement.getStatement();
71
71
  }
72
72
  },
73
- {
74
- key: "unifySubproof",
75
- value: function unifySubproof(subproof, substitutions, localContext) {
76
- var subproofUnified = false;
77
- var premise = this, subproofString = subproof.getString(), premiseStatement = premise.getStatement(), premiseStatementString = premiseStatement.getString();
78
- localContext.trace("Unifying the '".concat(subproofString, "' subproof with the premise's '").concat(premiseStatementString, "' statement..."));
79
- var statement = this.unqualifiedStatement.getStatement(), statementNode = statement.getNode(), statementTokens = statement.getTokens(), context = this.fileContext, tokens = statementTokens; ///
80
- localContext = _local.default.fromContextAndTokens(context, tokens); ///
81
- var subproofAssertion = _subproof.default.fromStatementNode(statementNode, localContext);
82
- if (subproofAssertion !== null) {
83
- subproofUnified = subproofAssertion.unifySubproof(subproof, substitutions, this.fileContext, localContext);
84
- }
85
- if (subproofUnified) {
86
- localContext.debug("...unified the '".concat(subproofString, "' subproof with the premise's '").concat(premiseStatementString, "' statement."));
87
- }
88
- return subproofUnified;
89
- }
90
- },
91
73
  {
92
74
  key: "unifyProofStep",
93
75
  value: function unifyProofStep(proofStep, substitutions, localContext) {
@@ -103,6 +85,10 @@ var Premise = /*#__PURE__*/ function() {
103
85
  statementUnified = this.unifyStatement(statement, substitutions, localContext);
104
86
  }
105
87
  if (subproofUnified || statementUnified) {
88
+ var localContextB = localContext; ///
89
+ localContext = _local.default.fromFileContext(this.fileContext);
90
+ var localContextA = localContext; ///
91
+ substitutions.resolve(localContextA, localContextB);
106
92
  proofStepUnified = true;
107
93
  }
108
94
  proofStepUnified ? substitutions.continue() : substitutions.rollback(localContext);
@@ -125,6 +111,24 @@ var Premise = /*#__PURE__*/ function() {
125
111
  return statementUnified;
126
112
  }
127
113
  },
114
+ {
115
+ key: "unifySubproof",
116
+ value: function unifySubproof(subproof, substitutions, localContext) {
117
+ var subproofUnified = false;
118
+ var premise = this, subproofString = subproof.getString(), premiseStatement = premise.getStatement(), premiseStatementString = premiseStatement.getString();
119
+ localContext.trace("Unifying the '".concat(subproofString, "' subproof with the premise's '").concat(premiseStatementString, "' statement..."));
120
+ var statement = this.unqualifiedStatement.getStatement(), statementNode = statement.getNode(), statementTokens = statement.getTokens(), context = this.fileContext, tokens = statementTokens; ///
121
+ localContext = _local.default.fromContextAndTokens(context, tokens); ///
122
+ var subproofAssertion = _subproof.default.fromStatementNode(statementNode, localContext);
123
+ if (subproofAssertion !== null) {
124
+ subproofUnified = subproofAssertion.unifySubproof(subproof, substitutions, this.fileContext, localContext);
125
+ }
126
+ if (subproofUnified) {
127
+ localContext.debug("...unified the '".concat(subproofString, "' subproof with the premise's '").concat(premiseStatementString, "' statement."));
128
+ }
129
+ return subproofUnified;
130
+ }
131
+ },
128
132
  {
129
133
  key: "verify",
130
134
  value: function verify(localContext) {
@@ -178,4 +182,4 @@ Object.assign(_shim.default, {
178
182
  });
179
183
  var _default = Premise;
180
184
 
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmVtaXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgc2hpbSBmcm9tIFwiLi9zaGltXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuL2NvbnRleHQvbG9jYWxcIjtcbmltcG9ydCBTdWJwcm9vZkFzc2VydGlvbiBmcm9tIFwiLi9hc3NlcnRpb24vc3VicHJvb2ZcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBhc3NpZ25Bc3NpZ25tZW50cyB9IGZyb20gXCIuL3V0aWxpdGllcy9hc3NpZ25tZW50c1wiO1xuaW1wb3J0IHsgdW5xdWFsaWZpZWRTdGF0ZW1lbnRGcm9tSlNPTiwgdW5xdWFsaWZpZWRTdGF0ZW1lbnRUb1VucXVhbGlmaWVkU3RhdGVtZW50SlNPTiB9IGZyb20gXCIuL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ByZW1pc2UvdW5xdWFsaWZpZWRTdGF0ZW1lbnRcIik7XG5cbmNsYXNzIFByZW1pc2Uge1xuICBjb25zdHJ1Y3RvcihmaWxlQ29udGV4dCwgdW5xdWFsaWZpZWRTdGF0ZW1lbnQpIHtcbiAgICB0aGlzLmZpbGVDb250ZXh0ID0gZmlsZUNvbnRleHQ7XG4gICAgdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudCA9IHVucXVhbGlmaWVkU3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0RmlsZUNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZUNvbnRleHQ7XG4gIH1cblxuICBnZXRVbnF1YWxpZmllZFN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN0cmluZygpIHsgcmV0dXJuIHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7IH1cblxuICBnZXRTdGF0ZW1lbnQoKSB7IHJldHVybiB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LmdldFN0YXRlbWVudCgpOyB9XG5cbiAgdW5pZnlTdWJwcm9vZihzdWJwcm9vZiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHN1YnByb29mVW5pZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgcHJlbWlzZSA9IHRoaXMsIC8vL1xuICAgICAgICAgIHN1YnByb29mU3RyaW5nID0gc3VicHJvb2YuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgcHJlbWlzZVN0YXRlbWVudCA9IHByZW1pc2UuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgcHJlbWlzZVN0YXRlbWVudFN0cmluZyA9IHByZW1pc2VTdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdWJwcm9vZlN0cmluZ30nIHN1YnByb29mIHdpdGggdGhlIHByZW1pc2UncyAnJHtwcmVtaXNlU3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50Li4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnQgPSB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHN0YXRlbWVudFRva2VucyA9IHN0YXRlbWVudC5nZXRUb2tlbnMoKSxcbiAgICAgICAgICBjb250ZXh0ID0gdGhpcy5maWxlQ29udGV4dCwgLy8vXG4gICAgICAgICAgdG9rZW5zID0gc3RhdGVtZW50VG9rZW5zOyAvLy9cblxuICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tQ29udGV4dEFuZFRva2Vucyhjb250ZXh0LCB0b2tlbnMpOyAgLy8vXG5cbiAgICBjb25zdCBzdWJwcm9vZkFzc2VydGlvbiA9IFN1YnByb29mQXNzZXJ0aW9uLmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoc3VicHJvb2ZBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgIHN1YnByb29mVW5pZmllZCA9IHN1YnByb29mQXNzZXJ0aW9uLnVuaWZ5U3VicHJvb2Yoc3VicHJvb2YsIHN1YnN0aXR1dGlvbnMsIHRoaXMuZmlsZUNvbnRleHQsIGxvY2FsQ29udGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKHN1YnByb29mVW5pZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdWJwcm9vZlN0cmluZ30nIHN1YnByb29mIHdpdGggdGhlIHByZW1pc2UncyAnJHtwcmVtaXNlU3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50LmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJwcm9vZlVuaWZpZWQ7XG4gIH1cblxuICB1bmlmeVByb29mU3RlcChwcm9vZlN0ZXAsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCkge1xuICAgIGxldCBwcm9vZlN0ZXBVbmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBzdWJwcm9vZiA9IHByb29mU3RlcC5nZXRTdWJwcm9vZigpLFxuICAgICAgICAgIHN0YXRlbWVudCA9IHByb29mU3RlcC5nZXRTdGF0ZW1lbnQoKTtcblxuICAgIHN1YnN0aXR1dGlvbnMuc25hcHNob3QoKTtcblxuICAgIGxldCBzdWJwcm9vZlVuaWZpZWQgPSBmYWxzZSxcbiAgICAgICAgc3RhdGVtZW50VW5pZmllZCA9IGZhbHNlO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHN1YnByb29mICE9PSBudWxsKSB7XG4gICAgICBzdWJwcm9vZlVuaWZpZWQgPSB0aGlzLnVuaWZ5U3VicHJvb2Yoc3VicHJvb2YsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCk7XG4gICAgfSBlbHNlIGlmIChzdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIHN0YXRlbWVudFVuaWZpZWQgPSB0aGlzLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAoc3VicHJvb2ZVbmlmaWVkIHx8IHN0YXRlbWVudFVuaWZpZWQpIHtcbiAgICAgIHByb29mU3RlcFVuaWZpZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHByb29mU3RlcFVuaWZpZWQgP1xuICAgICAgc3Vic3RpdHV0aW9ucy5jb250aW51ZSgpIDpcbiAgICAgICAgc3Vic3RpdHV0aW9ucy5yb2xsYmFjayhsb2NhbENvbnRleHQpO1xuXG4gICAgcmV0dXJuIHByb29mU3RlcFVuaWZpZWQ7XG4gIH1cblxuICB1bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCkge1xuICAgIGxldCBzdGF0ZW1lbnRVbmlmaWVkO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICAgIHByZW1pc2VTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgY29uc3QgbG9jYWxDb250ZXh0QiA9IGxvY2FsQ29udGV4dDsgLy8vXG5cbiAgICBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KHRoaXMuZmlsZUNvbnRleHQpO1xuXG4gICAgY29uc3QgbG9jYWxDb250ZXh0QSA9IGxvY2FsQ29udGV4dDsgLy8vXG5cbiAgICBsb2NhbENvbnRleHRCLnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlLi4uYCk7XG5cbiAgICBzdGF0ZW1lbnRVbmlmaWVkID0gdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudC51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgaWYgKHN0YXRlbWVudFVuaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dEIuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVtZW50VW5pZmllZDtcbiAgfVxuXG4gIHZlcmlmeShsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHByZW1pc2VTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZS4uLmApO1xuXG4gICAgY29uc3Qgc3RhdGVkID0gdHJ1ZSxcbiAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGFzc2lnbm1lbnRzQXNzaWduZWQgPSBhc3NpZ25Bc3NpZ25tZW50cyhhc3NpZ25tZW50cywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKGFzc2lnbm1lbnRzQXNzaWduZWQpIHtcbiAgICAgICAgY29uc3QgeyBQcm9vZlN0ZXAgfSA9IHNoaW0sXG4gICAgICAgICAgICAgIHByb29mU3RlcCA9IFByb29mU3RlcC5mcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnQodGhpcy51bnF1YWxpZmllZFN0YXRlbWVudCk7XG5cbiAgICAgICAgbG9jYWxDb250ZXh0LmFkZFByb29mU3RlcChwcm9vZlN0ZXApO1xuXG4gICAgICAgIHZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZDtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudEpTT04gPSB1bnF1YWxpZmllZFN0YXRlbWVudFRvVW5xdWFsaWZpZWRTdGF0ZW1lbnRKU09OKHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQpLFxuICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50ID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnRKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50XG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgPSB1bnF1YWxpZmllZFN0YXRlbWVudEZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBwcmVtaXNlID0gbmV3IFByZW1pc2UoZmlsZUNvbnRleHQsIHVucXVhbGlmaWVkU3RhdGVtZW50KTtcblxuICAgIHJldHVybiBwcmVtaXNlO1xuICB9XG5cbiAgc3RhdGljIGZyb21QcmVtaXNlTm9kZShzdXBwb3NpdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBVbnF1YWxpZmllZFN0YXRlbWVudCB9ID0gc2hpbSxcbiAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeShzdXBwb3NpdGlvbk5vZGUpLFxuICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50ID0gVW5xdWFsaWZpZWRTdGF0ZW1lbnQuZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBwcmVtaXNlID0gbmV3IFByZW1pc2UoZmlsZUNvbnRleHQsIHVucXVhbGlmaWVkU3RhdGVtZW50KTtcblxuICAgIHJldHVybiBwcmVtaXNlXG4gIH1cbn1cblxuT2JqZWN0LmFzc2lnbihzaGltLCB7XG4gIFByZW1pc2Vcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBQcmVtaXNlO1xuIl0sIm5hbWVzIjpbInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiUHJlbWlzZSIsImZpbGVDb250ZXh0IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJnZXRGaWxlQ29udGV4dCIsImdldFVucXVhbGlmaWVkU3RhdGVtZW50IiwiZ2V0U3RyaW5nIiwiZ2V0U3RhdGVtZW50IiwidW5pZnlTdWJwcm9vZiIsInN1YnByb29mIiwic3Vic3RpdHV0aW9ucyIsImxvY2FsQ29udGV4dCIsInN1YnByb29mVW5pZmllZCIsInByZW1pc2UiLCJzdWJwcm9vZlN0cmluZyIsInByZW1pc2VTdGF0ZW1lbnQiLCJwcmVtaXNlU3RhdGVtZW50U3RyaW5nIiwidHJhY2UiLCJzdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiZ2V0Tm9kZSIsInN0YXRlbWVudFRva2VucyIsImdldFRva2VucyIsImNvbnRleHQiLCJ0b2tlbnMiLCJMb2NhbENvbnRleHQiLCJmcm9tQ29udGV4dEFuZFRva2VucyIsInN1YnByb29mQXNzZXJ0aW9uIiwiU3VicHJvb2ZBc3NlcnRpb24iLCJmcm9tU3RhdGVtZW50Tm9kZSIsImRlYnVnIiwidW5pZnlQcm9vZlN0ZXAiLCJwcm9vZlN0ZXAiLCJwcm9vZlN0ZXBVbmlmaWVkIiwiZ2V0U3VicHJvb2YiLCJzbmFwc2hvdCIsInN0YXRlbWVudFVuaWZpZWQiLCJ1bmlmeVN0YXRlbWVudCIsImNvbnRpbnVlIiwicm9sbGJhY2siLCJzdGF0ZW1lbnRTdHJpbmciLCJwcmVtaXNlU3RyaW5nIiwibG9jYWxDb250ZXh0QiIsImZyb21GaWxlQ29udGV4dCIsImxvY2FsQ29udGV4dEEiLCJ2ZXJpZnkiLCJ2ZXJpZmllZCIsInN0YXRlZCIsImFzc2lnbm1lbnRzIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsImFzc2lnbm1lbnRzQXNzaWduZWQiLCJhc3NpZ25Bc3NpZ25tZW50cyIsIlByb29mU3RlcCIsInNoaW0iLCJmcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJhZGRQcm9vZlN0ZXAiLCJ0b0pTT04iLCJ1bnF1YWxpZmllZFN0YXRlbWVudEpTT04iLCJ1bnF1YWxpZmllZFN0YXRlbWVudFRvVW5xdWFsaWZpZWRTdGF0ZW1lbnRKU09OIiwianNvbiIsImZyb21KU09OIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRGcm9tSlNPTiIsImZyb21QcmVtaXNlTm9kZSIsInN1cHBvc2l0aW9uTm9kZSIsIlVucXVhbGlmaWVkU3RhdGVtZW50IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwiZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsIk9iamVjdCIsImFzc2lnbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZ0xBOzs7ZUFBQTs7OzJEQTlLaUI7NERBQ1E7K0RBQ0s7cUJBRUo7MkJBQ1E7b0JBQzJEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTdGLElBQU1BLGdDQUFnQ0MsSUFBQUEsZ0JBQVMsRUFBQztBQUVoRCxJQUFBLEFBQU1DLHdCQUFOO2FBQU1BLFFBQ1FDLFdBQVcsRUFBRUMsb0JBQW9CO2dDQUR6Q0Y7UUFFRixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxvQkFBb0IsR0FBR0E7O2tCQUgxQkY7O1lBTUpHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsV0FBVztZQUN6Qjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUks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
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmVtaXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgc2hpbSBmcm9tIFwiLi9zaGltXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuL2NvbnRleHQvbG9jYWxcIjtcbmltcG9ydCBTdWJwcm9vZkFzc2VydGlvbiBmcm9tIFwiLi9hc3NlcnRpb24vc3VicHJvb2ZcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBhc3NpZ25Bc3NpZ25tZW50cyB9IGZyb20gXCIuL3V0aWxpdGllcy9hc3NpZ25tZW50c1wiO1xuaW1wb3J0IHsgdW5xdWFsaWZpZWRTdGF0ZW1lbnRGcm9tSlNPTiwgdW5xdWFsaWZpZWRTdGF0ZW1lbnRUb1VucXVhbGlmaWVkU3RhdGVtZW50SlNPTiB9IGZyb20gXCIuL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ByZW1pc2UvdW5xdWFsaWZpZWRTdGF0ZW1lbnRcIik7XG5cbmNsYXNzIFByZW1pc2Uge1xuICBjb25zdHJ1Y3RvcihmaWxlQ29udGV4dCwgdW5xdWFsaWZpZWRTdGF0ZW1lbnQpIHtcbiAgICB0aGlzLmZpbGVDb250ZXh0ID0gZmlsZUNvbnRleHQ7XG4gICAgdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudCA9IHVucXVhbGlmaWVkU3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0RmlsZUNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZUNvbnRleHQ7XG4gIH1cblxuICBnZXRVbnF1YWxpZmllZFN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN0cmluZygpIHsgcmV0dXJuIHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7IH1cblxuICBnZXRTdGF0ZW1lbnQoKSB7IHJldHVybiB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LmdldFN0YXRlbWVudCgpOyB9XG5cbiAgdW5pZnlQcm9vZlN0ZXAocHJvb2ZTdGVwLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgcHJvb2ZTdGVwVW5pZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc3VicHJvb2YgPSBwcm9vZlN0ZXAuZ2V0U3VicHJvb2YoKSxcbiAgICAgICAgICBzdGF0ZW1lbnQgPSBwcm9vZlN0ZXAuZ2V0U3RhdGVtZW50KCk7XG5cbiAgICBzdWJzdGl0dXRpb25zLnNuYXBzaG90KCk7XG5cbiAgICBsZXQgc3VicHJvb2ZVbmlmaWVkID0gZmFsc2UsXG4gICAgICAgIHN0YXRlbWVudFVuaWZpZWQgPSBmYWxzZTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmIChzdWJwcm9vZiAhPT0gbnVsbCkge1xuICAgICAgc3VicHJvb2ZVbmlmaWVkID0gdGhpcy51bmlmeVN1YnByb29mKHN1YnByb29mLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAoc3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gdGhpcy51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKHN1YnByb29mVW5pZmllZCB8fCBzdGF0ZW1lbnRVbmlmaWVkKSB7XG4gICAgICBjb25zdCBsb2NhbENvbnRleHRCID0gbG9jYWxDb250ZXh0OyAvLy9cblxuICAgICAgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dCh0aGlzLmZpbGVDb250ZXh0KTtcblxuICAgICAgY29uc3QgbG9jYWxDb250ZXh0QSA9IGxvY2FsQ29udGV4dDsgLy8vXG5cbiAgICAgIHN1YnN0aXR1dGlvbnMucmVzb2x2ZShsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgcHJvb2ZTdGVwVW5pZmllZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJvb2ZTdGVwVW5pZmllZCA/XG4gICAgICBzdWJzdGl0dXRpb25zLmNvbnRpbnVlKCkgOlxuICAgICAgICBzdWJzdGl0dXRpb25zLnJvbGxiYWNrKGxvY2FsQ29udGV4dCk7XG5cbiAgICByZXR1cm4gcHJvb2ZTdGVwVW5pZmllZDtcbiAgfVxuXG4gIHVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudFVuaWZpZWQ7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgcHJlbWlzZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb25zdCBsb2NhbENvbnRleHRCID0gbG9jYWxDb250ZXh0OyAvLy9cblxuICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQodGhpcy5maWxlQ29udGV4dCk7XG5cbiAgICBjb25zdCBsb2NhbENvbnRleHRBID0gbG9jYWxDb250ZXh0OyAvLy9cblxuICAgIGxvY2FsQ29udGV4dEIudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7cHJlbWlzZVN0cmluZ30nIHByZW1pc2UuLi5gKTtcblxuICAgIHN0YXRlbWVudFVuaWZpZWQgPSB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICBpZiAoc3RhdGVtZW50VW5pZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0Qi5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVkO1xuICB9XG5cbiAgdW5pZnlTdWJwcm9vZihzdWJwcm9vZiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHN1YnByb29mVW5pZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgcHJlbWlzZSA9IHRoaXMsIC8vL1xuICAgICAgICAgIHN1YnByb29mU3RyaW5nID0gc3VicHJvb2YuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgcHJlbWlzZVN0YXRlbWVudCA9IHByZW1pc2UuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgcHJlbWlzZVN0YXRlbWVudFN0cmluZyA9IHByZW1pc2VTdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdWJwcm9vZlN0cmluZ30nIHN1YnByb29mIHdpdGggdGhlIHByZW1pc2UncyAnJHtwcmVtaXNlU3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50Li4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnQgPSB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHN0YXRlbWVudFRva2VucyA9IHN0YXRlbWVudC5nZXRUb2tlbnMoKSxcbiAgICAgICAgICBjb250ZXh0ID0gdGhpcy5maWxlQ29udGV4dCwgLy8vXG4gICAgICAgICAgdG9rZW5zID0gc3RhdGVtZW50VG9rZW5zOyAvLy9cblxuICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tQ29udGV4dEFuZFRva2Vucyhjb250ZXh0LCB0b2tlbnMpOyAgLy8vXG5cbiAgICBjb25zdCBzdWJwcm9vZkFzc2VydGlvbiA9IFN1YnByb29mQXNzZXJ0aW9uLmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoc3VicHJvb2ZBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgIHN1YnByb29mVW5pZmllZCA9IHN1YnByb29mQXNzZXJ0aW9uLnVuaWZ5U3VicHJvb2Yoc3VicHJvb2YsIHN1YnN0aXR1dGlvbnMsIHRoaXMuZmlsZUNvbnRleHQsIGxvY2FsQ29udGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKHN1YnByb29mVW5pZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdWJwcm9vZlN0cmluZ30nIHN1YnByb29mIHdpdGggdGhlIHByZW1pc2UncyAnJHtwcmVtaXNlU3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50LmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJwcm9vZlVuaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnkobG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBwcmVtaXNlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7cHJlbWlzZVN0cmluZ30nIHByZW1pc2UuLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlZCA9IHRydWUsXG4gICAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudC52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmICh1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBhc3NpZ25tZW50c0Fzc2lnbmVkID0gYXNzaWduQXNzaWdubWVudHMoYXNzaWdubWVudHMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmIChhc3NpZ25tZW50c0Fzc2lnbmVkKSB7XG4gICAgICAgIGNvbnN0IHsgUHJvb2ZTdGVwIH0gPSBzaGltLFxuICAgICAgICAgICAgICBwcm9vZlN0ZXAgPSBQcm9vZlN0ZXAuZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50KHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQpO1xuXG4gICAgICAgIGxvY2FsQ29udGV4dC5hZGRQcm9vZlN0ZXAocHJvb2ZTdGVwKTtcblxuICAgICAgICB2ZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWQ7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnRKU09OID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnRUb1VucXVhbGlmaWVkU3RhdGVtZW50SlNPTih0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50KSxcbiAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudCA9IHVucXVhbGlmaWVkU3RhdGVtZW50SlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50ID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnRGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgcHJlbWlzZSA9IG5ldyBQcmVtaXNlKGZpbGVDb250ZXh0LCB1bnF1YWxpZmllZFN0YXRlbWVudCk7XG5cbiAgICByZXR1cm4gcHJlbWlzZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUHJlbWlzZU5vZGUoc3VwcG9zaXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHsgVW5xdWFsaWZpZWRTdGF0ZW1lbnQgfSA9IHNoaW0sXG4gICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkoc3VwcG9zaXRpb25Ob2RlKSxcbiAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudCA9IFVucXVhbGlmaWVkU3RhdGVtZW50LmZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgcHJlbWlzZSA9IG5ldyBQcmVtaXNlKGZpbGVDb250ZXh0LCB1bnF1YWxpZmllZFN0YXRlbWVudCk7XG5cbiAgICByZXR1cm4gcHJlbWlzZVxuICB9XG59XG5cbk9iamVjdC5hc3NpZ24oc2hpbSwge1xuICBQcmVtaXNlXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgUHJlbWlzZTtcbiJdLCJuYW1lcyI6WyJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIlByZW1pc2UiLCJmaWxlQ29udGV4dCIsInVucXVhbGlmaWVkU3RhdGVtZW50IiwiZ2V0RmlsZUNvbnRleHQiLCJnZXRVbnF1YWxpZmllZFN0YXRlbWVudCIsImdldFN0cmluZyIsImdldFN0YXRlbWVudCIsInVuaWZ5UHJvb2ZTdGVwIiwicHJvb2ZTdGVwIiwic3Vic3RpdHV0aW9ucyIsImxvY2FsQ29udGV4dCIsInByb29mU3RlcFVuaWZpZWQiLCJzdWJwcm9vZiIsImdldFN1YnByb29mIiwic3RhdGVtZW50Iiwic25hcHNob3QiLCJzdWJwcm9vZlVuaWZpZWQiLCJzdGF0ZW1lbnRVbmlmaWVkIiwidW5pZnlTdWJwcm9vZiIsInVuaWZ5U3RhdGVtZW50IiwibG9jYWxDb250ZXh0QiIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsImxvY2FsQ29udGV4dEEiLCJyZXNvbHZlIiwiY29udGludWUiLCJyb2xsYmFjayIsInN0YXRlbWVudFN0cmluZyIsInByZW1pc2VTdHJpbmciLCJ0cmFjZSIsImRlYnVnIiwicHJlbWlzZSIsInN1YnByb29mU3RyaW5nIiwicHJlbWlzZVN0YXRlbWVudCIsInByZW1pc2VTdGF0ZW1lbnRTdHJpbmciLCJzdGF0ZW1lbnROb2RlIiwiZ2V0Tm9kZSIsInN0YXRlbWVudFRva2VucyIsImdldFRva2VucyIsImNvbnRleHQiLCJ0b2tlbnMiLCJmcm9tQ29udGV4dEFuZFRva2VucyIsInN1YnByb29mQXNzZXJ0aW9uIiwiU3VicHJvb2ZBc3NlcnRpb24iLCJmcm9tU3RhdGVtZW50Tm9kZSIsInZlcmlmeSIsInZlcmlmaWVkIiwic3RhdGVkIiwiYXNzaWdubWVudHMiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwiYXNzaWdubWVudHNBc3NpZ25lZCIsImFzc2lnbkFzc2lnbm1lbnRzIiwiUHJvb2ZTdGVwIiwic2hpbSIsImZyb21VbnF1YWxpZmllZFN0YXRlbWVudCIsImFkZFByb29mU3RlcCIsInRvSlNPTiIsInVucXVhbGlmaWVkU3RhdGVtZW50SlNPTiIsInVucXVhbGlmaWVkU3RhdGVtZW50VG9VbnF1YWxpZmllZFN0YXRlbWVudEpTT04iLCJqc29uIiwiZnJvbUpTT04iLCJ1bnF1YWxpZmllZFN0YXRlbWVudEZyb21KU09OIiwiZnJvbVByZW1pc2VOb2RlIiwic3VwcG9zaXRpb25Ob2RlIiwiVW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJmcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkF3TEE7OztlQUFBOzs7MkRBdExpQjs0REFDUTsrREFDSztxQkFFSjsyQkFDUTtvQkFDMkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFN0YsSUFBTUEsZ0NBQWdDQyxJQUFB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
package/lib/proofStep.js CHANGED
@@ -8,7 +8,9 @@ Object.defineProperty(exports, "default", {
8
8
  return _default;
9
9
  }
10
10
  });
11
+ var _necessary = require("necessary");
11
12
  var _shim = /*#__PURE__*/ _interop_require_default(require("./shim"));
13
+ var _metaLevel = /*#__PURE__*/ _interop_require_default(require("./unifier/metaLevel"));
12
14
  var _query = require("./utilities/query");
13
15
  var _assignments = require("./utilities/assignments");
14
16
  function _class_call_check(instance, Constructor) {
@@ -35,6 +37,7 @@ function _interop_require_default(obj) {
35
37
  default: obj
36
38
  };
37
39
  }
40
+ var match = _necessary.arrayUtilities.match;
38
41
  var subproofNodeQuery = (0, _query.nodeQuery)("/proofStep|lastProofStep/subproof"), qualifiedStatementNodeQuery = (0, _query.nodeQuery)("/proofStep|lastProofStep/qualifiedStatement"), unqualifiedStatementNodeQuery = (0, _query.nodeQuery)("/proofStep|lastProofStep/unqualifiedStatement");
39
42
  var ProofStep = /*#__PURE__*/ function() {
40
43
  function ProofStep(subproof, qualifiedStatement, unqualifiedStatement) {
@@ -79,41 +82,76 @@ var ProofStep = /*#__PURE__*/ function() {
79
82
  key: "unifyStatement",
80
83
  value: function unifyStatement(statement, localContext) {
81
84
  var statementUnified = false;
82
- var Substitutions = _shim.default.Substitutions, substitutions = Substitutions.fromNothing();
83
- if (this.qualifiedStatement !== null) {
84
- var localContextA = localContext, localContextB = localContext; ///
85
- statementUnified = this.qualifiedStatement.unifyStatement(statement, substitutions, localContextA, localContextB);
86
- }
87
- if (this.unqualifiedStatement !== null) {
88
- var localContextA1 = localContext, localContextB1 = localContext; ///
89
- statementUnified = this.unqualifiedStatement.unifyStatement(statement, substitutions, localContextA1, localContextB1);
90
- }
91
- var substitutionsLength = substitutions.getLength();
92
- if (substitutionsLength > 0) {
93
- statementUnified = false;
85
+ if (this.qualifiedStatement !== null || this.unqualifiedStatement !== null !== null) {
86
+ var statementString = statement.getString();
87
+ localContext.trace("Unifying the '".concat(statementString, "' statement..."));
88
+ var Substitutions = _shim.default.Substitutions, localContextA = localContext, localContextB = localContext, substitutions = Substitutions.fromNothing();
89
+ if (this.qualifiedStatement !== null) {
90
+ statementUnified = this.qualifiedStatement.unifyStatement(statement, substitutions, localContextA, localContextB);
91
+ }
92
+ if (this.unqualifiedStatement !== null) {
93
+ statementUnified = this.unqualifiedStatement.unifyStatement(statement, substitutions, localContextA, localContextB);
94
+ }
95
+ var substitutionsLength = substitutions.getLength();
96
+ if (substitutionsLength > 0) {
97
+ statementUnified = false;
98
+ }
99
+ if (statementUnified) {
100
+ localContext.debug("...unified the '".concat(statementString, "' statement."));
101
+ }
94
102
  }
95
103
  return statementUnified;
96
104
  }
97
105
  },
106
+ {
107
+ key: "unifySubproofAssertion",
108
+ value: function unifySubproofAssertion(subproofAssertion, localContext) {
109
+ var subproofAssertionUnified = false;
110
+ if (this.subproof !== null) {
111
+ var subproofString = this.subproof.getString(), subproofAssertionString = subproofAssertion.getString();
112
+ localContext.trace("Unifying the '".concat(subproofAssertionString, "' subproof assertion with the '").concat(subproofString, "' subproof..."));
113
+ var Substitutions = _shim.default.Substitutions, substitutions = Substitutions.fromNothing(), subproofStatements = this.subproof.getStatements(), subproofAssertionStatements = subproofAssertion.getStatements();
114
+ subproofAssertionUnified = match(subproofAssertionStatements, subproofStatements, function(subproofAssertionStatement, subproofStatement) {
115
+ var subproofAssertionStatementNode = subproofAssertionStatement.getNode(), subproofStatementNode = subproofStatement.getNode(), nodeA = subproofAssertionStatementNode, nodeB = subproofStatementNode, localContextA = localContext, localContextB = localContext, unifiedAtMetaLevel = _metaLevel.default.unify(nodeA, nodeB, substitutions, localContextA, localContextB);
116
+ if (unifiedAtMetaLevel) {
117
+ return true;
118
+ }
119
+ });
120
+ if (subproofAssertionUnified) {
121
+ var substitutionsLength = substitutions.getLength();
122
+ if (substitutionsLength > 0) {
123
+ subproofAssertionUnified = false;
124
+ }
125
+ }
126
+ if (subproofAssertionUnified) {
127
+ localContext.trace("...unified the '".concat(subproofAssertionString, "' subproof assertion with the '").concat(subproofString, "' subproof."));
128
+ }
129
+ }
130
+ return subproofAssertionUnified;
131
+ }
132
+ },
98
133
  {
99
134
  key: "verify",
100
135
  value: function verify(substitutions, localContext) {
101
136
  var verified = false;
137
+ var stated = false;
138
+ var assignments = [];
139
+ var subproofVerified = false, qualifiedStatementVerified = false, unqualifiedStatementVerified = false;
102
140
  if (false) {
103
141
  ///
104
142
  } else if (this.subproof !== null) {
105
- var subproofVerified = this.subproof.verify(substitutions, localContext);
106
- verified = subproofVerified; ///
143
+ subproofVerified = this.subproof.verify(substitutions, localContext);
107
144
  } else if (this.qualifiedStatement !== null) {
108
- var qualifiedStatementVerified = this.qualifiedStatement.verify(substitutions, localContext);
109
- verified = qualifiedStatementVerified; ///
145
+ stated = true;
146
+ qualifiedStatementVerified = this.qualifiedStatement.verify(substitutions, assignments, stated, localContext);
110
147
  } else if (this.unqualifiedStatement !== null) {
111
- var stated = false, assignments = [], unqualifiedStatementVerified = this.unqualifiedStatement.verify(assignments, stated, localContext);
112
- if (unqualifiedStatementVerified) {
113
- var assignmentsAssigned = (0, _assignments.assignAssignments)(assignments, localContext);
114
- if (assignmentsAssigned) {
115
- verified = true;
116
- }
148
+ stated = false;
149
+ unqualifiedStatementVerified = this.unqualifiedStatement.verify(assignments, stated, localContext);
150
+ }
151
+ if (subproofVerified || qualifiedStatementVerified || unqualifiedStatementVerified) {
152
+ var assignmentsAssigned = (0, _assignments.assignAssignments)(assignments, localContext);
153
+ if (assignmentsAssigned) {
154
+ verified = true;
117
155
  }
118
156
  }
119
157
  if (verified) {
@@ -146,4 +184,4 @@ Object.assign(_shim.default, {
146
184
  });
147
185
  var _default = ProofStep;
148
186
 
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9vZlN0ZXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBzaGltIGZyb20gXCIuL3NoaW1cIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBhc3NpZ25Bc3NpZ25tZW50cyB9IGZyb20gXCIuL3V0aWxpdGllcy9hc3NpZ25tZW50c1wiO1xuXG5jb25zdCBzdWJwcm9vZk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9vZlN0ZXB8bGFzdFByb29mU3RlcC9zdWJwcm9vZlwiKSxcbiAgICAgIHF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9vZlN0ZXB8bGFzdFByb29mU3RlcC9xdWFsaWZpZWRTdGF0ZW1lbnRcIiksXG4gICAgICB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9vZlN0ZXB8bGFzdFByb29mU3RlcC91bnF1YWxpZmllZFN0YXRlbWVudFwiKTtcblxuY2xhc3MgUHJvb2ZTdGVwIHtcbiAgY29uc3RydWN0b3Ioc3VicHJvb2YsIHF1YWxpZmllZFN0YXRlbWVudCwgdW5xdWFsaWZpZWRTdGF0ZW1lbnQpIHtcbiAgICB0aGlzLnN1YnByb29mID0gc3VicHJvb2Y7XG4gICAgdGhpcy5xdWFsaWZpZWRTdGF0ZW1lbnQgPSBxdWFsaWZpZWRTdGF0ZW1lbnQ7XG4gICAgdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudCA9IHVucXVhbGlmaWVkU3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3VicHJvb2YoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VicHJvb2Y7XG4gIH1cblxuICBnZXRRdWFsaWZpZWRTdGF0ZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMucXVhbGlmaWVkU3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0VW5xdWFsaWZpZWRTdGF0ZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRTdGF0ZW1lbnQoKSB7XG4gICAgbGV0IHN0YXRlbWVudCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5xdWFsaWZpZWRTdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIHN0YXRlbWVudCA9IHRoaXMucXVhbGlmaWVkU3RhdGVtZW50LmdldFN0YXRlbWVudCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBzdGF0ZW1lbnQgPSB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LmdldFN0YXRlbWVudCgpO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnQ7XG4gIH1cblxuICB1bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGxvY2FsQ29udGV4dCkge1xuICAgIGxldCBzdGF0ZW1lbnRVbmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCB7IFN1YnN0aXR1dGlvbnMgfSA9IHNoaW0sXG4gICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IFN1YnN0aXR1dGlvbnMuZnJvbU5vdGhpbmcoKTtcblxuICAgIGlmICh0aGlzLnF1YWxpZmllZFN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgbG9jYWxDb250ZXh0QSA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgICBsb2NhbENvbnRleHRCID0gbG9jYWxDb250ZXh0OyAvLy9cblxuICAgICAgc3RhdGVtZW50VW5pZmllZCA9IHRoaXMucXVhbGlmaWVkU3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGxvY2FsQ29udGV4dEEgPSBsb2NhbENvbnRleHQsIC8vL1xuICAgICAgICAgICAgbG9jYWxDb250ZXh0QiA9IGxvY2FsQ29udGV4dDsgLy8vXG5cbiAgICAgIHN0YXRlbWVudFVuaWZpZWQgPSB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG4gICAgfVxuXG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uc0xlbmd0aCA9IHN1YnN0aXR1dGlvbnMuZ2V0TGVuZ3RoKCk7XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uc0xlbmd0aCA+IDApIHtcbiAgICAgIHN0YXRlbWVudFVuaWZpZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVtZW50VW5pZmllZDtcbiAgfVxuXG4gIHZlcmlmeShzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnN1YnByb29mICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdWJwcm9vZlZlcmlmaWVkID0gdGhpcy5zdWJwcm9vZi52ZXJpZnkoc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgdmVyaWZpZWQgPSBzdWJwcm9vZlZlcmlmaWVkOyAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnF1YWxpZmllZFN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB0aGlzLnF1YWxpZmllZFN0YXRlbWVudC52ZXJpZnkoc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgdmVyaWZpZWQgPSBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDsgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy51bnF1YWxpZmllZFN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVkID0gZmFsc2UsXG4gICAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQudmVyaWZ5KGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmICh1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IGFzc2lnbm1lbnRzQXNzaWduZWQgPSBhc3NpZ25Bc3NpZ25tZW50cyhhc3NpZ25tZW50cywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICBpZiAoYXNzaWdubWVudHNBc3NpZ25lZCkge1xuICAgICAgICAgIHZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgY29uc3QgcHJvb2ZTdGVwID0gdGhpczsgLy8vXG5cbiAgICAgIGxvY2FsQ29udGV4dC5hZGRQcm9vZlN0ZXAocHJvb2ZTdGVwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbVByb29mU3RlcE5vZGUocHJvb2ZTdGVwTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IFN1YnByb29mLCBRdWFsaWZpZWRTdGF0ZW1lbnQsIFVucXVhbGlmaWVkU3RhdGVtZW50IH0gPSBzaGltLFxuICAgICAgICAgIHN1YnByb29mTm9kZSA9IHN1YnByb29mTm9kZVF1ZXJ5KHByb29mU3RlcE5vZGUpLFxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkocHJvb2ZTdGVwTm9kZSksXG4gICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkocHJvb2ZTdGVwTm9kZSksXG4gICAgICAgICAgc3VicHJvb2YgPSBTdWJwcm9vZi5mcm9tU3VicHJvb2ZOb2RlKHN1YnByb29mTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudCA9IFF1YWxpZmllZFN0YXRlbWVudC5mcm9tUXVhbGlmaWVkU3RhdGVtZW50Tm9kZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgPSBVbnF1YWxpZmllZFN0YXRlbWVudC5mcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHByb29mU3RlcCA9IG5ldyBQcm9vZlN0ZXAoc3VicHJvb2YsIHF1YWxpZmllZFN0YXRlbWVudCwgdW5xdWFsaWZpZWRTdGF0ZW1lbnQpO1xuXG4gICAgcmV0dXJuIHByb29mU3RlcDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnQpIHtcbiAgICBjb25zdCBzdWJwcm9vZiA9IG51bGwsXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50ID0gbnVsbCxcbiAgICAgICAgICBwcm9vZlN0ZXAgPSBuZXcgUHJvb2ZTdGVwKHN1YnByb29mLCBxdWFsaWZpZWRTdGF0ZW1lbnQsIHVucXVhbGlmaWVkU3RhdGVtZW50KTtcblxuICAgIHJldHVybiBwcm9vZlN0ZXA7XG4gIH1cbn1cblxuT2JqZWN0LmFzc2lnbihzaGltLCB7XG4gIFByb29mU3RlcFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFByb29mU3RlcDsiXSwibmFtZXMiOlsic3VicHJvb2ZOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJxdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSIsIlByb29mU3RlcCIsInN1YnByb29mIiwicXVhbGlmaWVkU3RhdGVtZW50IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJnZXRTdWJwcm9vZiIsImdldFF1YWxpZmllZFN0YXRlbWVudCIsImdldFVucXVhbGlmaWVkU3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50Iiwic3RhdGVtZW50IiwidW5pZnlTdGF0ZW1lbnQiLCJsb2NhbENvbnRleHQiLCJzdGF0ZW1lbnRVbmlmaWVkIiwiU3Vic3RpdHV0aW9ucyIsInNoaW0iLCJzdWJzdGl0dXRpb25zIiwiZnJvbU5vdGhpbmciLCJsb2NhbENvbnRleHRBIiwibG9jYWxDb250ZXh0QiIsInN1YnN0aXR1dGlvbnNMZW5ndGgiLCJnZXRMZW5ndGgiLCJ2ZXJpZnkiLCJ2ZXJpZmllZCIsInN1YnByb29mVmVyaWZpZWQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInN0YXRlZCIsImFzc2lnbm1lbnRzIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsImFzc2lnbm1lbnRzQXNzaWduZWQiLCJhc3NpZ25Bc3NpZ25tZW50cyIsInByb29mU3RlcCIsImFkZFByb29mU3RlcCIsImZyb21Qcm9vZlN0ZXBOb2RlIiwicHJvb2ZTdGVwTm9kZSIsImZpbGVDb250ZXh0IiwiU3VicHJvb2YiLCJRdWFsaWZpZWRTdGF0ZW1lbnQiLCJVbnF1YWxpZmllZFN0YXRlbWVudCIsInN1YnByb29mTm9kZSIsInF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJmcm9tU3VicHJvb2ZOb2RlIiwiZnJvbVF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJmcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwiZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50IiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkF1SUE7OztlQUFBOzs7MkRBcklpQjtxQkFFUzsyQkFDUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsQyxJQUFNQSxvQkFBb0JDLElBQUFBLGdCQUFTLEVBQUMsc0NBQzlCQyw4QkFBOEJELElBQUFBLGdCQUFT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
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9vZlN0ZXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgc2hpbSBmcm9tIFwiLi9zaGltXCI7XG5pbXBvcnQgbWV0YUxldmVsVW5pZmllciBmcm9tIFwiLi91bmlmaWVyL21ldGFMZXZlbFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGFzc2lnbkFzc2lnbm1lbnRzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2Fzc2lnbm1lbnRzXCI7XG5cbmNvbnN0IHsgbWF0Y2ggfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5jb25zdCBzdWJwcm9vZk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9vZlN0ZXB8bGFzdFByb29mU3RlcC9zdWJwcm9vZlwiKSxcbiAgICAgIHF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9vZlN0ZXB8bGFzdFByb29mU3RlcC9xdWFsaWZpZWRTdGF0ZW1lbnRcIiksXG4gICAgICB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9vZlN0ZXB8bGFzdFByb29mU3RlcC91bnF1YWxpZmllZFN0YXRlbWVudFwiKTtcblxuY2xhc3MgUHJvb2ZTdGVwIHtcbiAgY29uc3RydWN0b3Ioc3VicHJvb2YsIHF1YWxpZmllZFN0YXRlbWVudCwgdW5xdWFsaWZpZWRTdGF0ZW1lbnQpIHtcbiAgICB0aGlzLnN1YnByb29mID0gc3VicHJvb2Y7XG4gICAgdGhpcy5xdWFsaWZpZWRTdGF0ZW1lbnQgPSBxdWFsaWZpZWRTdGF0ZW1lbnQ7XG4gICAgdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudCA9IHVucXVhbGlmaWVkU3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3VicHJvb2YoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VicHJvb2Y7XG4gIH1cblxuICBnZXRRdWFsaWZpZWRTdGF0ZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMucXVhbGlmaWVkU3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0VW5xdWFsaWZpZWRTdGF0ZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRTdGF0ZW1lbnQoKSB7XG4gICAgbGV0IHN0YXRlbWVudCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5xdWFsaWZpZWRTdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIHN0YXRlbWVudCA9IHRoaXMucXVhbGlmaWVkU3RhdGVtZW50LmdldFN0YXRlbWVudCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBzdGF0ZW1lbnQgPSB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LmdldFN0YXRlbWVudCgpO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnQ7XG4gIH1cblxuICB1bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGxvY2FsQ29udGV4dCkge1xuICAgIGxldCBzdGF0ZW1lbnRVbmlmaWVkID0gZmFsc2U7XG5cbiAgICBpZiAoKHRoaXMucXVhbGlmaWVkU3RhdGVtZW50ICE9PSBudWxsKSB8fCAodGhpcy51bnF1YWxpZmllZFN0YXRlbWVudCAhPT0gbnVsbCAhPT0gbnVsbCkpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgICAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50Li4uYCk7XG5cbiAgICAgIGNvbnN0IHsgU3Vic3RpdHV0aW9ucyB9ID0gc2hpbSxcbiAgICAgICAgICAgIGxvY2FsQ29udGV4dEEgPSBsb2NhbENvbnRleHQsIC8vL1xuICAgICAgICAgICAgbG9jYWxDb250ZXh0QiA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgICBzdWJzdGl0dXRpb25zID0gU3Vic3RpdHV0aW9ucy5mcm9tTm90aGluZygpO1xuXG4gICAgICBpZiAodGhpcy5xdWFsaWZpZWRTdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgc3RhdGVtZW50VW5pZmllZCA9IHRoaXMucXVhbGlmaWVkU3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIHN0YXRlbWVudFVuaWZpZWQgPSB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbnNMZW5ndGggPSBzdWJzdGl0dXRpb25zLmdldExlbmd0aCgpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uc0xlbmd0aCA+IDApIHtcbiAgICAgICAgc3RhdGVtZW50VW5pZmllZCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGVtZW50VW5pZmllZCkge1xuICAgICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVtZW50VW5pZmllZDtcbiAgfVxuXG4gIHVuaWZ5U3VicHJvb2ZBc3NlcnRpb24oc3VicHJvb2ZBc3NlcnRpb24sIGxvY2FsQ29udGV4dCkge1xuICAgIGxldCBzdWJwcm9vZkFzc2VydGlvblVuaWZpZWQgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLnN1YnByb29mICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdWJwcm9vZlN0cmluZyA9IHRoaXMuc3VicHJvb2YuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBzdWJwcm9vZkFzc2VydGlvblN0cmluZyA9IHN1YnByb29mQXNzZXJ0aW9uLmdldFN0cmluZygpO1xuXG4gICAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdWJwcm9vZkFzc2VydGlvblN0cmluZ30nIHN1YnByb29mIGFzc2VydGlvbiB3aXRoIHRoZSAnJHtzdWJwcm9vZlN0cmluZ30nIHN1YnByb29mLi4uYCk7XG5cbiAgICAgIGNvbnN0IHsgU3Vic3RpdHV0aW9ucyB9ID0gc2hpbSxcbiAgICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgICBzdWJwcm9vZlN0YXRlbWVudHMgPSB0aGlzLnN1YnByb29mLmdldFN0YXRlbWVudHMoKSxcbiAgICAgICAgICAgIHN1YnByb29mQXNzZXJ0aW9uU3RhdGVtZW50cyA9IHN1YnByb29mQXNzZXJ0aW9uLmdldFN0YXRlbWVudHMoKTtcblxuICAgICAgc3VicHJvb2ZBc3NlcnRpb25VbmlmaWVkID0gbWF0Y2goc3VicHJvb2ZBc3NlcnRpb25TdGF0ZW1lbnRzLCBzdWJwcm9vZlN0YXRlbWVudHMsIChzdWJwcm9vZkFzc2VydGlvblN0YXRlbWVudCwgc3VicHJvb2ZTdGF0ZW1lbnQpID0+IHtcbiAgICAgICAgY29uc3Qgc3VicHJvb2ZBc3NlcnRpb25TdGF0ZW1lbnROb2RlID0gc3VicHJvb2ZBc3NlcnRpb25TdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgICAgICBzdWJwcm9vZlN0YXRlbWVudE5vZGUgPSBzdWJwcm9vZlN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAgICAgIG5vZGVBID0gc3VicHJvb2ZBc3NlcnRpb25TdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgICAgIG5vZGVCID0gc3VicHJvb2ZTdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgICAgIGxvY2FsQ29udGV4dEEgPSBsb2NhbENvbnRleHQsIC8vL1xuICAgICAgICAgICAgICBsb2NhbENvbnRleHRCID0gbG9jYWxDb250ZXh0LCAvLy9cbiAgICAgICAgICAgICAgdW5pZmllZEF0TWV0YUxldmVsID0gbWV0YUxldmVsVW5pZmllci51bmlmeShub2RlQSwgbm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgICAgIGlmICh1bmlmaWVkQXRNZXRhTGV2ZWwpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmIChzdWJwcm9vZkFzc2VydGlvblVuaWZpZWQpIHtcbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uc0xlbmd0aCA9IHN1YnN0aXR1dGlvbnMuZ2V0TGVuZ3RoKCk7XG5cbiAgICAgICAgaWYgKHN1YnN0aXR1dGlvbnNMZW5ndGggPiAwKSB7XG4gICAgICAgICAgc3VicHJvb2ZBc3NlcnRpb25VbmlmaWVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHN1YnByb29mQXNzZXJ0aW9uVW5pZmllZCkge1xuICAgICAgICBsb2NhbENvbnRleHQudHJhY2UoYC4uLnVuaWZpZWQgdGhlICcke3N1YnByb29mQXNzZXJ0aW9uU3RyaW5nfScgc3VicHJvb2YgYXNzZXJ0aW9uIHdpdGggdGhlICcke3N1YnByb29mU3RyaW5nfScgc3VicHJvb2YuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnByb29mQXNzZXJ0aW9uVW5pZmllZDtcbiAgfVxuXG4gIHZlcmlmeShzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGxldCBzdGF0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGFzc2lnbm1lbnRzID0gW107XG5cbiAgICBsZXQgc3VicHJvb2ZWZXJpZmllZCA9IGZhbHNlLFxuICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IGZhbHNlLFxuICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdWJwcm9vZiAhPT0gbnVsbCkge1xuICAgICAgc3VicHJvb2ZWZXJpZmllZCA9IHRoaXMuc3VicHJvb2YudmVyaWZ5KHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnF1YWxpZmllZFN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgc3RhdGVkID0gdHJ1ZTtcblxuICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB0aGlzLnF1YWxpZmllZFN0YXRlbWVudC52ZXJpZnkoc3Vic3RpdHV0aW9ucywgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIHN0YXRlZCA9IGZhbHNlO1xuXG4gICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudC52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAoc3VicHJvb2ZWZXJpZmllZCB8fCBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCB8fCB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBhc3NpZ25tZW50c0Fzc2lnbmVkID0gYXNzaWduQXNzaWdubWVudHMoYXNzaWdubWVudHMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmIChhc3NpZ25tZW50c0Fzc2lnbmVkKSB7XG4gICAgICAgIHZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IHByb29mU3RlcCA9IHRoaXM7IC8vL1xuXG4gICAgICBsb2NhbENvbnRleHQuYWRkUHJvb2ZTdGVwKHByb29mU3RlcCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgc3RhdGljIGZyb21Qcm9vZlN0ZXBOb2RlKHByb29mU3RlcE5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBTdWJwcm9vZiwgUXVhbGlmaWVkU3RhdGVtZW50LCBVbnF1YWxpZmllZFN0YXRlbWVudCB9ID0gc2hpbSxcbiAgICAgICAgICBzdWJwcm9vZk5vZGUgPSBzdWJwcm9vZk5vZGVRdWVyeShwcm9vZlN0ZXBOb2RlKSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gcXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5KHByb29mU3RlcE5vZGUpLFxuICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSA9IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5KHByb29mU3RlcE5vZGUpLFxuICAgICAgICAgIHN1YnByb29mID0gU3VicHJvb2YuZnJvbVN1YnByb29mTm9kZShzdWJwcm9vZk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnQgPSBRdWFsaWZpZWRTdGF0ZW1lbnQuZnJvbVF1YWxpZmllZFN0YXRlbWVudE5vZGUocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50ID0gVW5xdWFsaWZpZWRTdGF0ZW1lbnQuZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBwcm9vZlN0ZXAgPSBuZXcgUHJvb2ZTdGVwKHN1YnByb29mLCBxdWFsaWZpZWRTdGF0ZW1lbnQsIHVucXVhbGlmaWVkU3RhdGVtZW50KTtcblxuICAgIHJldHVybiBwcm9vZlN0ZXA7XG4gIH1cblxuICBzdGF0aWMgZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50KHVucXVhbGlmaWVkU3RhdGVtZW50KSB7XG4gICAgY29uc3Qgc3VicHJvb2YgPSBudWxsLFxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudCA9IG51bGwsXG4gICAgICAgICAgcHJvb2ZTdGVwID0gbmV3IFByb29mU3RlcChzdWJwcm9vZiwgcXVhbGlmaWVkU3RhdGVtZW50LCB1bnF1YWxpZmllZFN0YXRlbWVudCk7XG5cbiAgICByZXR1cm4gcHJvb2ZTdGVwO1xuICB9XG59XG5cbk9iamVjdC5hc3NpZ24oc2hpbSwge1xuICBQcm9vZlN0ZXBcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBQcm9vZlN0ZXA7Il0sIm5hbWVzIjpbIm1hdGNoIiwiYXJyYXlVdGlsaXRpZXMiLCJzdWJwcm9vZk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5IiwiUHJvb2ZTdGVwIiwic3VicHJvb2YiLCJxdWFsaWZpZWRTdGF0ZW1lbnQiLCJ1bnF1YWxpZmllZFN0YXRlbWVudCIsImdldFN1YnByb29mIiwiZ2V0UXVhbGlmaWVkU3RhdGVtZW50IiwiZ2V0VW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnQiLCJzdGF0ZW1lbnQiLCJ1bmlmeVN0YXRlbWVudCIsImxvY2FsQ29udGV4dCIsInN0YXRlbWVudFVuaWZpZWQiLCJzdGF0ZW1lbnRTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsIlN1YnN0aXR1dGlvbnMiLCJzaGltIiwibG9jYWxDb250ZXh0QSIsImxvY2FsQ29udGV4dEIiLCJzdWJzdGl0dXRpb25zIiwiZnJvbU5vdGhpbmciLCJzdWJzdGl0dXRpb25zTGVuZ3RoIiwiZ2V0TGVuZ3RoIiwiZGVidWciLCJ1bmlmeVN1YnByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZBc3NlcnRpb24iLCJzdWJwcm9vZkFzc2VydGlvblVuaWZpZWQiLCJzdWJwcm9vZlN0cmluZyIsInN1YnByb29mQXNzZXJ0aW9uU3RyaW5nIiwic3VicHJvb2ZTdGF0ZW1lbnRzIiwiZ2V0U3RhdGVtZW50cyIsInN1YnByb29mQXNzZXJ0aW9uU3RhdGVtZW50cyIsInN1YnByb29mQXNzZXJ0aW9uU3RhdGVtZW50Iiwic3VicHJvb2ZTdGF0ZW1lbnQiLCJzdWJwcm9vZkFzc2VydGlvblN0YXRlbWVudE5vZGUiLCJnZXROb2RlIiwic3VicHJvb2ZTdGF0ZW1lbnROb2RlIiwibm9kZUEiLCJub2RlQiIsInVuaWZpZWRBdE1ldGFMZXZlbCIsIm1ldGFMZXZlbFVuaWZpZXIiLCJ1bmlmeSIsInZlcmlmeSIsInZlcmlmaWVkIiwic3RhdGVkIiwiYXNzaWdubWVudHMiLCJzdWJwcm9vZlZlcmlmaWVkIiwicXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwiYXNzaWdubWVudHNBc3NpZ25lZCIsImFzc2lnbkFzc2lnbm1lbnRzIiwicHJvb2ZTdGVwIiwiYWRkUHJvb2ZTdGVwIiwiZnJvbVByb29mU3RlcE5vZGUiLCJwcm9vZlN0ZXBOb2RlIiwiZmlsZUNvbnRleHQiLCJTdWJwcm9vZiIsIlF1YWxpZmllZFN0YXRlbWVudCIsIlVucXVhbGlmaWVkU3RhdGVtZW50Iiwic3VicHJvb2ZOb2RlIiwicXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsImZyb21TdWJwcm9vZk5vZGUiLCJmcm9tUXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsImZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJmcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJPYmplY3QiLCJhc3NpZ24iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQW9NQTs7O2VBQUE7Ozt5QkFsTStCOzJEQUVkO2dFQUNZO3FCQUVIOzJCQUNROzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxDLElBQU0sQUFBRUEsUUFBVUMseUJBQWMsQ0FBeEJEO0FBRVIsSUFBTUUsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDLHNDQUM5QkMsOEJBQThCRCxJQUFBQSxnQkFBUyxFQUFDLGdEQUN4Q0UsZ0NBQWdDRixJQUFBQSxnQkFBUyxFQUFDO0FBRWhELElBQUEsQUFBTUcsMEJBQU47YUFBTUEsVUFDUUMsUUFBUSxFQUFFQyxrQkFBa0IsRUFBRUMsb0JBQW9CO2dDQUQxREg7UUFFRixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxrQkFBa0IsR0FBR0E7UUFDMUIsSUFBSSxDQUFDQyxvQkFBb0IsR0FBR0E7O2tCQUoxQkg7O1lBT0pJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsUUFBUTtZQUN0Qjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsa0JBQWtCO1lBQ2hDOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxvQkFBb0I7WUFDbEM7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSUMsWUFBWTtnQkFFaEIsSUFBSSxJQUFJLENBQUNOLGtCQUFrQixLQUFLLE1BQU07b0JBQ3BDTSxZQUFZLElBQUksQ0FBQ04sa0JBQWtCLENBQUNLLFlBQVk7Z0JBQ2xEO2dCQUVBLElBQUksSUFBSSxDQUFDSixvQkFBb0IsS0FBSyxNQUFNO29CQUN0Q0ssWUFBWSxJQUFJLENBQUNMLG9CQUFvQixDQUFDSSxZQUFZO2dCQUNwRDtnQkFFQSxPQUFPQztZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLGVBQWVELFNBQVMsRUFBRUUsWUFBWTtnQkFDcEMsSUFBSUMsbUJBQW1CO2dCQUV2QixJQUFJLEFBQUMsSUFBSSxDQUFDVCxrQkFBa0IsS0FBSyxRQUFVLElBQUksQ0FBQ0Msb0JBQW9CLEtBQUssU0FBUyxNQUFPO29CQUN2RixJQUFNUyxrQkFBa0JKLFVBQVVLLFNBQVM7b0JBRTNDSCxhQUFhSSxLQUFLLENBQUMsQUFBQyxpQkFBZ0MsT0FBaEJGLGlCQUFnQjtvQkFFcEQsSUFBTSxBQUFFRyxnQkFBa0JDLGFBQUksQ0FBdEJELGVBQ0ZFLGdCQUFnQlAsY0FDaEJRLGdCQUFnQlIsY0FDaEJTLGdCQUFnQkosY0FBY0ssV0FBVztvQkFFL0MsSUFBSSxJQUFJLENBQUNsQixrQkFBa0IsS0FBSyxNQUFNO3dCQUNwQ1MsbUJBQW1CLElBQUksQ0FBQ1Qsa0JBQWtCLENBQUNPLGNBQWMsQ0FBQ0QsV0FBV1csZUFBZUYsZUFBZUM7b0JBQ3JHO29CQUVBLElBQUksSUFBSSxDQUFDZixvQkFBb0IsS0FBSyxNQUFNO3dCQUN0Q1EsbUJBQW1CLElBQUksQ0FBQ1Isb0JBQW9CLENBQUNNLGNBQWMsQ0FBQ0QsV0FBV1csZUFBZUYsZUFBZUM7b0JBQ3ZHO29CQUVBLElBQU1HLHNCQUFzQkYsY0FBY0csU0FBUztvQkFFbkQsSUFBSUQsc0JBQXNCLEdBQUc7d0JBQzNCVixtQkFBbUI7b0JBQ3JCO29CQUVBLElBQUlBLGtCQUFrQjt3QkFDcEJELGFBQWFhLEtBQUssQ0FBQyxBQUFDLG1CQUFrQyxPQUFoQlgsaUJBQWdCO29CQUN4RDtnQkFDRjtnQkFFQSxPQUFPRDtZQUNUOzs7WUFFQWEsS0FBQUE7bUJBQUFBLFNBQUFBLHVCQUF1QkMsaUJBQWlCLEVBQUVmLFlBQVk7Z0JBQ3BELElBQUlnQiwyQkFBMkI7Z0JBRS9CLElBQUksSUFBSSxDQUFDekIsUUFBUSxLQUFLLE1BQU07b0JBQzFCLElBQU0wQixpQkFBaUIsSUFBSSxDQUFDMUIsUUFBUSxDQUFDWSxTQUFTLElBQ3hDZSwwQkFBMEJILGtCQUFrQlosU0FBUztvQkFFM0RILGFBQWFJLEtBQUssQ0FBQyxBQUFDLGlCQUF5RWEsT0FBekRDLHlCQUF3QixtQ0FBZ0QsT0FBZkQsZ0JBQWU7b0JBRTVHLElBQU0sQUFBRVosZ0JBQWtCQyxhQUFJLENBQXRCRCxlQUNGSSxnQkFBZ0JKLGNBQWNLLFdBQVcsSUFDekNTLHFCQUFxQixJQUFJLENBQUM1QixRQUFRLENBQUM2QixhQUFhLElBQ2hEQyw4QkFBOEJOLGtCQUFrQkssYUFBYTtvQkFFbkVKLDJCQUEyQmhDLE1BQU1xQyw2QkFBNkJGLG9CQUFvQixTQUFDRyw0QkFBNEJDO3dCQUM3RyxJQUFNQyxpQ0FBaUNGLDJCQUEyQkcsT0FBTyxJQUNuRUMsd0JBQXdCSCxrQkFBa0JFLE9BQU8sSUFDakRFLFFBQVFILGdDQUNSSSxRQUFRRix1QkFDUm5CLGdCQUFnQlAsY0FDaEJRLGdCQUFnQlIsY0FDaEI2QixxQkFBcUJDLGtCQUFnQixDQUFDQyxLQUFLLENBQUNKLE9BQU9DLE9BQU9uQixlQUFlRixlQUFlQzt3QkFFOUYsSUFBSXFCLG9CQUFvQjs0QkFDdEIsT0FBTzt3QkFDVDtvQkFDRjtvQkFFQSxJQUFJYiwwQkFBMEI7d0JBQzVCLElBQU1MLHNCQUFzQkYsY0FBY0csU0FBUzt3QkFFbkQsSUFBSUQsc0JBQXNCLEdBQUc7NEJBQzNCSywyQkFBMkI7d0JBQzdCO29CQUNGO29CQUVBLElBQUlBLDBCQUEwQjt3QkFDNUJoQixhQUFhSSxLQUFLLENBQUMsQUFBQyxtQkFBMkVhLE9BQXpEQyx5QkFBd0IsbUNBQWdELE9BQWZELGdCQUFlO29CQUNoSDtnQkFDRjtnQkFFQSxPQUFPRDtZQUNUOzs7WUFFQWdCLEtBQUFBO21CQUFBQSxTQUFBQSxPQUFPdkIsYUFBYSxFQUFFVCxZQUFZO2dCQUNoQyxJQUFJaUMsV0FBVztnQkFFZixJQUFJQyxTQUFTO2dCQUViLElBQU1DLGNBQWMsRUFBRTtnQkFFdEIsSUFBSUMsbUJBQW1CLE9BQ25CQyw2QkFBNkIsT0FDN0JDLCtCQUErQjtnQkFFbkMsSUFBSSxPQUFPO2dCQUNULEdBQUc7Z0JBQ0wsT0FBTyxJQUFJLElBQUksQ0FBQy9DLFFBQVEsS0FBSyxNQUFNO29CQUNqQzZDLG1CQUFtQixJQUFJLENBQUM3QyxRQUFRLENBQUN5QyxNQUFNLENBQUN2QixlQUFlVDtnQkFDekQsT0FBTyxJQUFJLElBQUksQ0FBQ1Isa0JBQWtCLEtBQUssTUFBTTtvQkFDM0MwQyxTQUFTO29CQUVURyw2QkFBNkIsSUFBSSxDQUFDN0Msa0JBQWtCLENBQUN3QyxNQUFNLENBQUN2QixlQUFlMEIsYUFBYUQsUUFBUWxDO2dCQUNsRyxPQUFPLElBQUksSUFBSSxDQUFDUCxvQkFBb0IsS0FBSyxNQUFNO29CQUM3Q3lDLFNBQVM7b0JBRVRJLCtCQUErQixJQUFJLENBQUM3QyxvQkFBb0IsQ0FBQ3VDLE1BQU0sQ0FBQ0csYUFBYUQsUUFBUWxDO2dCQUN2RjtnQkFFQSxJQUFJb0Msb0JBQW9CQyw4QkFBOEJDLDhCQUE4QjtvQkFDbEYsSUFBTUMsc0JBQXNCQyxJQUFBQSw4QkFBaUIsRUFBQ0wsYUFBYW5DO29CQUUzRCxJQUFJdUMscUJBQXFCO3dCQUN2Qk4sV0FBVztvQkFDYjtnQkFDRjtnQkFFQSxJQUFJQSxVQUFVO29CQUNaLElBQU1RLFlBQVksSUFBSSxFQUFFLEdBQUc7b0JBRTNCekMsYUFBYTBDLFlBQVksQ0FBQ0Q7Z0JBQzVCO2dCQUVBLE9BQU9SO1lBQ1Q7Ozs7WUFFT1UsS0FBQUE7bUJBQVAsU0FBT0Esa0JBQWtCQyxhQUFhLEVBQUVDLFdBQVc7Z0JBQ2pELElBQVFDLFdBQXVEeEMsYUFBSSxDQUEzRHdDLFVBQVVDLHFCQUE2Q3pDLGFBQUksQ0FBakR5QyxvQkFBb0JDLHVCQUF5QjFDLGFBQUksQ0FBN0IwQyxzQkFDaENDLGVBQWUvRCxrQkFBa0IwRCxnQkFDakNNLHlCQUF5QjlELDRCQUE0QndELGdCQUNyRE8sMkJBQTJCOUQsOEJBQThCdUQsZ0JBQ3pEckQsV0FBV3VELFNBQVNNLGdCQUFnQixDQUFDSCxjQUFjSixjQUNuRHJELHFCQUFxQnVELG1CQUFtQk0sMEJBQTBCLENBQUNILHdCQUF3QkwsY0FDM0ZwRCx1QkFBdUJ1RCxxQkFBcUJNLDRCQUE0QixDQUFDSCwwQkFBMEJOLGNBQ25HSixZQUFZLElBbEtoQm5ELFVBa0s4QkMsVUFBVUMsb0JBQW9CQztnQkFFOUQsT0FBT2dEO1lBQ1Q7OztZQUVPYyxLQUFBQTttQkFBUCxTQUFPQSx5QkFBeUI5RCxvQkFBb0I7Z0JBQ2xELElBQU1GLFdBQVcsTUFDWEMscUJBQXFCLE1BQ3JCaUQsWUFBWSxJQTFLaEJuRCxVQTBLOEJDLFVBQVVDLG9CQUFvQkM7Z0JBRTlELE9BQU9nRDtZQUNUOzs7V0E3S0luRDs7QUFnTE5rRSxPQUFPQyxNQUFNLENBQUNuRCxhQUFJLEVBQUU7SUFDbEJoQixXQUFBQTtBQUNGO0lBRUEsV0FBZUEifQ==