occam-verify-cli 0.0.470 → 0.0.472

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 (55) hide show
  1. package/lib/constants.js +4 -8
  2. package/lib/context/file.js +9 -9
  3. package/lib/context/metaproof.js +38 -32
  4. package/lib/context/proof.js +35 -29
  5. package/lib/equality.js +22 -0
  6. package/lib/metaSubstitution.js +12 -52
  7. package/lib/rule.js +15 -19
  8. package/lib/step/metaproof.js +114 -0
  9. package/lib/step/proof.js +68 -0
  10. package/lib/substitution.js +16 -56
  11. package/lib/utilities/array.js +2 -5
  12. package/lib/utilities/node.js +105 -0
  13. package/lib/verify/antecedent.js +4 -4
  14. package/lib/verify/derivation.js +16 -18
  15. package/lib/verify/equality.js +18 -5
  16. package/lib/verify/metaDerivation.js +16 -18
  17. package/lib/verify/metaproof.js +10 -51
  18. package/lib/verify/metastatement/qualified.js +1 -7
  19. package/lib/verify/metastatement/unqualified.js +2 -9
  20. package/lib/verify/premiseOrPremises.js +4 -4
  21. package/lib/verify/proof.js +11 -52
  22. package/lib/verify/statement/qualified.js +1 -7
  23. package/lib/verify/statement/unqualified.js +2 -9
  24. package/package.json +1 -1
  25. package/src/constants.js +1 -2
  26. package/src/context/file.js +6 -6
  27. package/src/context/metaproof.js +32 -31
  28. package/src/context/proof.js +30 -29
  29. package/src/equality.js +8 -0
  30. package/src/metaSubstitution.js +16 -87
  31. package/src/rule.js +19 -26
  32. package/src/step/metaproof.js +99 -0
  33. package/src/step/proof.js +30 -0
  34. package/src/substitution.js +19 -90
  35. package/src/utilities/array.js +1 -1
  36. package/src/utilities/node.js +149 -0
  37. package/src/verify/antecedent.js +3 -3
  38. package/src/verify/derivation.js +17 -18
  39. package/src/verify/equality.js +29 -11
  40. package/src/verify/metaDerivation.js +17 -18
  41. package/src/verify/metaproof.js +20 -91
  42. package/src/verify/metastatement/qualified.js +0 -9
  43. package/src/verify/metastatement/unqualified.js +1 -12
  44. package/src/verify/premiseOrPremises.js +3 -3
  45. package/src/verify/proof.js +21 -92
  46. package/src/verify/statement/qualified.js +0 -9
  47. package/src/verify/statement/unqualified.js +1 -13
  48. package/lib/assertion.js +0 -147
  49. package/lib/metaAssertion.js +0 -200
  50. package/lib/utilities/metastatement.js +0 -45
  51. package/lib/utilities/statement.js +0 -45
  52. package/src/assertion.js +0 -150
  53. package/src/metaAssertion.js +0 -245
  54. package/src/utilities/metastatement.js +0 -50
  55. package/src/utilities/statement.js +0 -50
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ matchNode: function() {
13
+ return matchNode;
14
+ },
15
+ matchNodes: function() {
16
+ return matchNodes;
17
+ },
18
+ matchBracketedNonTerminalNode: function() {
19
+ return matchBracketedNonTerminalNode;
20
+ },
21
+ bracketedChildNodeFromChildNodes: function() {
22
+ return bracketedChildNodeFromChildNodes;
23
+ }
24
+ });
25
+ var _array = require("./array");
26
+ var _ruleNames = require("../ruleNames");
27
+ var _constants = require("../constants");
28
+ function matchNode(nodeA, nodeB) {
29
+ var nodeMatches = false;
30
+ var nodeATerminalNode = nodeA.isTerminalNode(), nodeBTerminalNode = nodeB.isTerminalNode();
31
+ if (nodeATerminalNode === nodeBTerminalNode) {
32
+ if (nodeATerminalNode) {
33
+ var terminalNodeA = nodeA, terminalNodeB = nodeB, terminalNodeMatches = matchTerminalNode(terminalNodeA, terminalNodeB);
34
+ nodeMatches = terminalNodeMatches; ///
35
+ } else {
36
+ var nonTerminalNodeA = nodeA, nonTerminalNodeB = nodeB, nonTerminalNodeMatches = matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB);
37
+ nodeMatches = nonTerminalNodeMatches; ///
38
+ }
39
+ }
40
+ return nodeMatches;
41
+ }
42
+ function matchNodes(nodesA, nodesB) {
43
+ var nodesMatch = false;
44
+ var nodesALength = nodesA.length, nodesBLength = nodesB.length;
45
+ if (nodesALength === nodesBLength) {
46
+ nodesMatch = nodesA.every(function(nodeA, index) {
47
+ var nodeB = nodesB[index], nodeMatches = matchNode(nodeA, nodeB);
48
+ if (nodeMatches) {
49
+ return true;
50
+ }
51
+ });
52
+ }
53
+ return nodesMatch;
54
+ }
55
+ function matchBracketedNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB) {
56
+ var bracketedNodeMatches = false;
57
+ if (!bracketedNodeMatches) {
58
+ var nonTerminalNodeMatches = matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB);
59
+ bracketedNodeMatches = nonTerminalNodeMatches; ///
60
+ }
61
+ if (!bracketedNodeMatches) {
62
+ var nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(), childNodesA = nonTerminalNodeAChildNodes, bracketedChildNodeA = bracketedChildNodeFromChildNodes(childNodesA);
63
+ if (bracketedChildNodeA !== null) {
64
+ var nodeA = bracketedChildNodeA, nodeB = nonTerminalNodeB, nodeMatches = matchNode(nodeA, nodeB);
65
+ bracketedNodeMatches = nodeMatches; ///
66
+ }
67
+ }
68
+ if (!bracketedNodeMatches) {
69
+ var nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(), childNodesB = nonTerminalNodeBChildNodes, bracketedChildNodeB = bracketedChildNodeFromChildNodes(childNodesB);
70
+ if (bracketedChildNodeB !== null) {
71
+ var nodeB1 = bracketedChildNodeB, nodeA1 = nonTerminalNodeA, nodeMatches1 = matchNode(nodeA1, nodeB1);
72
+ bracketedNodeMatches = nodeMatches1; ///
73
+ }
74
+ }
75
+ return bracketedNodeMatches;
76
+ }
77
+ function bracketedChildNodeFromChildNodes(childNodes) {
78
+ var bracketedChildNode = null;
79
+ var childNodesLength = childNodes.length;
80
+ if (childNodesLength === _constants.BRACKETED_CHILD_NODES_LENGTH) {
81
+ var firstChildNode = (0, _array.first)(childNodes), thirdChildNode = (0, _array.third)(childNodes), secondChildNode = (0, _array.second)(childNodes), firstChildNodeTerminalNode = firstChildNode.isTerminalNode(), thirdChildNodeTerminalNode = thirdChildNode.isTerminalNode(), secondChildNodeNonTerminalNode = secondChildNode.isNonTerminalNode();
82
+ if (firstChildNodeTerminalNode && secondChildNodeNonTerminalNode && thirdChildNodeTerminalNode) {
83
+ var nonTerminalNode = secondChildNode, firstTerminalNode = firstChildNode, secondTerminalNode = thirdChildNode, nonTerminalNodeRuleName = nonTerminalNode.getRuleName(), firstTerminalNodeContent = firstTerminalNode.getContent(), secondTerminalNodeContent = secondTerminalNode.getContent(), firstTerminalNodeContentLeftBracket = firstTerminalNodeContent === _constants.LEFT_BRACKET, secondTerminalNodeContentRightBracket = secondTerminalNodeContent === _constants.RIGHT_BRACKET, nonTerminalNodeRuleNameMetastatementRuleName = nonTerminalNodeRuleName === _ruleNames.METASTATEMENT_RULE_NAME;
84
+ if (firstTerminalNodeContentLeftBracket && nonTerminalNodeRuleNameMetastatementRuleName && secondTerminalNodeContentRightBracket) {
85
+ bracketedChildNode = nonTerminalNode; ///
86
+ }
87
+ }
88
+ }
89
+ return bracketedChildNode;
90
+ }
91
+ function matchTerminalNode(terminalNodeA, terminalNodeB) {
92
+ var matches = terminalNodeA.match(terminalNodeB), terminalNodeMatches = matches; ///
93
+ return terminalNodeMatches;
94
+ }
95
+ function matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB) {
96
+ var nonTerminalNodeMatches = false;
97
+ var nonTerminalNodeARuleName = nonTerminalNodeA.getRuleName(), nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName(); ///
98
+ if (nonTerminalNodeARuleName === nonTerminalNodeBRuleName) {
99
+ var nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(), nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(), nodesA = nonTerminalNodeAChildNodes, nodesB = nonTerminalNodeBChildNodes, nodesMatch = matchNodes(nodesA, nodesB);
100
+ nonTerminalNodeMatches = nodesMatch; ///
101
+ }
102
+ return nonTerminalNodeMatches;
103
+ }
104
+
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZmlyc3QsIHNlY29uZCwgdGhpcmQgfSBmcm9tIFwiLi9hcnJheVwiO1xuaW1wb3J0IHsgTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5pbXBvcnQgeyBCUkFDS0VURURfQ0hJTERfTk9ERVNfTEVOR1RILCBMRUZUX0JSQUNLRVQsIFJJR0hUX0JSQUNLRVQgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaE5vZGUobm9kZUEsIG5vZGVCKSB7XG4gIGxldCBub2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVBVGVybWluYWxOb2RlID0gbm9kZUEuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgbm9kZUJUZXJtaW5hbE5vZGUgPSBub2RlQi5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gIGlmIChub2RlQVRlcm1pbmFsTm9kZSA9PT0gbm9kZUJUZXJtaW5hbE5vZGUpIHtcbiAgICBpZiAobm9kZUFUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZUEgPSBub2RlQSwgIC8vL1xuICAgICAgICAgICAgdGVybWluYWxOb2RlQiA9IG5vZGVCLCAgLy8vXG4gICAgICAgICAgICB0ZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hUZXJtaW5hbE5vZGUodGVybWluYWxOb2RlQSwgdGVybWluYWxOb2RlQik7XG5cbiAgICAgIG5vZGVNYXRjaGVzID0gdGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGVBID0gbm9kZUEsICAvLy9cbiAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZUIgPSBub2RlQiwgLy8vXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQik7XG5cbiAgICAgIG5vZGVNYXRjaGVzID0gbm9uVGVybWluYWxOb2RlTWF0Y2hlczsgLy8vXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5vZGVNYXRjaGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hOb2Rlcyhub2Rlc0EsIG5vZGVzQikge1xuICBsZXQgbm9kZXNNYXRjaCA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVzQUxlbmd0aCA9IG5vZGVzQS5sZW5ndGgsXG4gICAgICAgIG5vZGVzQkxlbmd0aCA9IG5vZGVzQi5sZW5ndGg7XG5cbiAgaWYgKG5vZGVzQUxlbmd0aCA9PT0gbm9kZXNCTGVuZ3RoKSB7XG4gICAgbm9kZXNNYXRjaCA9IG5vZGVzQS5ldmVyeSgobm9kZUEsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBub2RlQiA9IG5vZGVzQltpbmRleF0sXG4gICAgICAgICAgICBub2RlTWF0Y2hlcyA9IG1hdGNoTm9kZShub2RlQSwgbm9kZUIpO1xuXG4gICAgICBpZiAobm9kZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBub2Rlc01hdGNoO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hCcmFja2V0ZWROb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQikge1xuICBsZXQgYnJhY2tldGVkTm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBpZiAoIWJyYWNrZXRlZE5vZGVNYXRjaGVzKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoTm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIpO1xuXG4gICAgYnJhY2tldGVkTm9kZU1hdGNoZXMgPSBub25UZXJtaW5hbE5vZGVNYXRjaGVzOyAgLy8vXG4gIH1cblxuICBpZiAoIWJyYWNrZXRlZE5vZGVNYXRjaGVzKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlQUNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGVBLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBjaGlsZE5vZGVzQSA9IG5vblRlcm1pbmFsTm9kZUFDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICBicmFja2V0ZWRDaGlsZE5vZGVBID0gYnJhY2tldGVkQ2hpbGROb2RlRnJvbUNoaWxkTm9kZXMoY2hpbGROb2Rlc0EpO1xuXG4gICAgaWYgKGJyYWNrZXRlZENoaWxkTm9kZUEgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG5vZGVBID0gYnJhY2tldGVkQ2hpbGROb2RlQSwgIC8vL1xuICAgICAgICAgICAgbm9kZUIgPSBub25UZXJtaW5hbE5vZGVCLCAvLy9cbiAgICAgICAgICAgIG5vZGVNYXRjaGVzID0gbWF0Y2hOb2RlKG5vZGVBLCBub2RlQik7XG5cbiAgICAgIGJyYWNrZXRlZE5vZGVNYXRjaGVzID0gbm9kZU1hdGNoZXM7IC8vL1xuICAgIH1cbiAgfVxuXG4gIGlmICghYnJhY2tldGVkTm9kZU1hdGNoZXMpIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGVCQ2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZUIuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIGNoaWxkTm9kZXNCID0gbm9uVGVybWluYWxOb2RlQkNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIGJyYWNrZXRlZENoaWxkTm9kZUIgPSBicmFja2V0ZWRDaGlsZE5vZGVGcm9tQ2hpbGROb2RlcyhjaGlsZE5vZGVzQik7XG5cbiAgICBpZiAoYnJhY2tldGVkQ2hpbGROb2RlQiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9kZUIgPSBicmFja2V0ZWRDaGlsZE5vZGVCLCAgLy8vXG4gICAgICAgICAgICBub2RlQSA9IG5vblRlcm1pbmFsTm9kZUEsIC8vL1xuICAgICAgICAgICAgbm9kZU1hdGNoZXMgPSBtYXRjaE5vZGUobm9kZUEsIG5vZGVCKTtcblxuICAgICAgYnJhY2tldGVkTm9kZU1hdGNoZXMgPSBub2RlTWF0Y2hlczsgLy8vXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGJyYWNrZXRlZE5vZGVNYXRjaGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnJhY2tldGVkQ2hpbGROb2RlRnJvbUNoaWxkTm9kZXMoY2hpbGROb2Rlcykge1xuICBsZXQgYnJhY2tldGVkQ2hpbGROb2RlID0gbnVsbDtcblxuICBjb25zdCBjaGlsZE5vZGVzTGVuZ3RoID0gY2hpbGROb2Rlcy5sZW5ndGg7XG5cbiAgaWYgKGNoaWxkTm9kZXNMZW5ndGggPT09IEJSQUNLRVRFRF9DSElMRF9OT0RFU19MRU5HVEgpIHtcbiAgICBjb25zdCBmaXJzdENoaWxkTm9kZSA9IGZpcnN0KGNoaWxkTm9kZXMpLFxuICAgICAgICAgIHRoaXJkQ2hpbGROb2RlID0gdGhpcmQoY2hpbGROb2RlcyksXG4gICAgICAgICAgc2Vjb25kQ2hpbGROb2RlID0gc2Vjb25kKGNoaWxkTm9kZXMpLFxuICAgICAgICAgIGZpcnN0Q2hpbGROb2RlVGVybWluYWxOb2RlID0gZmlyc3RDaGlsZE5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICB0aGlyZENoaWxkTm9kZVRlcm1pbmFsTm9kZSA9IHRoaXJkQ2hpbGROb2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgc2Vjb25kQ2hpbGROb2RlTm9uVGVybWluYWxOb2RlID0gc2Vjb25kQ2hpbGROb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoZmlyc3RDaGlsZE5vZGVUZXJtaW5hbE5vZGUgJiYgc2Vjb25kQ2hpbGROb2RlTm9uVGVybWluYWxOb2RlICYmIHRoaXJkQ2hpbGROb2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBzZWNvbmRDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgIGZpcnN0VGVybWluYWxOb2RlID0gZmlyc3RDaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgc2Vjb25kVGVybWluYWxOb2RlID0gdGhpcmRDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksXG4gICAgICAgICAgICBmaXJzdFRlcm1pbmFsTm9kZUNvbnRlbnQgPSBmaXJzdFRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgICBzZWNvbmRUZXJtaW5hbE5vZGVDb250ZW50ID0gc2Vjb25kVGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICAgIGZpcnN0VGVybWluYWxOb2RlQ29udGVudExlZnRCcmFja2V0ID0gKGZpcnN0VGVybWluYWxOb2RlQ29udGVudCA9PT0gTEVGVF9CUkFDS0VUKSxcbiAgICAgICAgICAgIHNlY29uZFRlcm1pbmFsTm9kZUNvbnRlbnRSaWdodEJyYWNrZXQgPSAoc2Vjb25kVGVybWluYWxOb2RlQ29udGVudCA9PT0gUklHSFRfQlJBQ0tFVCksXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVSdWxlTmFtZU1ldGFzdGF0ZW1lbnRSdWxlTmFtZSA9IChub25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9PT0gTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUpO1xuXG4gICAgICBpZiAoZmlyc3RUZXJtaW5hbE5vZGVDb250ZW50TGVmdEJyYWNrZXQgJiYgbm9uVGVybWluYWxOb2RlUnVsZU5hbWVNZXRhc3RhdGVtZW50UnVsZU5hbWUgJiYgc2Vjb25kVGVybWluYWxOb2RlQ29udGVudFJpZ2h0QnJhY2tldCkge1xuICAgICAgICBicmFja2V0ZWRDaGlsZE5vZGUgPSBub25UZXJtaW5hbE5vZGU7ICAvLy9cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gYnJhY2tldGVkQ2hpbGROb2RlO1xufVxuXG5mdW5jdGlvbiBtYXRjaFRlcm1pbmFsTm9kZSh0ZXJtaW5hbE5vZGVBLCB0ZXJtaW5hbE5vZGVCKSB7XG4gIGNvbnN0IG1hdGNoZXMgPSB0ZXJtaW5hbE5vZGVBLm1hdGNoKHRlcm1pbmFsTm9kZUIpLFxuICAgICAgICB0ZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hlczsgIC8vL1xuXG4gIHJldHVybiB0ZXJtaW5hbE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaE5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCKSB7XG4gIGxldCBub25UZXJtaW5hbE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3Qgbm9uVGVybWluYWxOb2RlQVJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlQS5nZXRSdWxlTmFtZSgpLCAvLy9cbiAgICAgICAgbm9uVGVybWluYWxOb2RlQlJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlQi5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICBpZiAobm9uVGVybWluYWxOb2RlQVJ1bGVOYW1lID09PSBub25UZXJtaW5hbE5vZGVCUnVsZU5hbWUpIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGVBQ2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZUEuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZUJDaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlQi5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgbm9kZXNBID0gbm9uVGVybWluYWxOb2RlQUNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIG5vZGVzQiA9IG5vblRlcm1pbmFsTm9kZUJDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICBub2Rlc01hdGNoID0gbWF0Y2hOb2Rlcyhub2Rlc0EsIG5vZGVzQik7XG5cbiAgICBub25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbm9kZXNNYXRjaDsgLy8vXG4gIH1cblxuICByZXR1cm4gbm9uVGVybWluYWxOb2RlTWF0Y2hlcztcbn1cbiJdLCJuYW1lcyI6WyJtYXRjaE5vZGUiLCJtYXRjaE5vZGVzIiwibWF0Y2hCcmFja2V0ZWROb25UZXJtaW5hbE5vZGUiLCJicmFja2V0ZWRDaGlsZE5vZGVGcm9tQ2hpbGROb2RlcyIsIm5vZGVBIiwibm9kZUIiLCJub2RlTWF0Y2hlcyIsIm5vZGVBVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJub2RlQlRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZUEiLCJ0ZXJtaW5hbE5vZGVCIiwidGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJub25UZXJtaW5hbE5vZGVNYXRjaGVzIiwibWF0Y2hOb25UZXJtaW5hbE5vZGUiLCJub2Rlc0EiLCJub2Rlc0IiLCJub2Rlc01hdGNoIiwibm9kZXNBTGVuZ3RoIiwibGVuZ3RoIiwibm9kZXNCTGVuZ3RoIiwiZXZlcnkiLCJpbmRleCIsImJyYWNrZXRlZE5vZGVNYXRjaGVzIiwibm9uVGVybWluYWxOb2RlQUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiY2hpbGROb2Rlc0EiLCJicmFja2V0ZWRDaGlsZE5vZGVBIiwibm9uVGVybWluYWxOb2RlQkNoaWxkTm9kZXMiLCJjaGlsZE5vZGVzQiIsImJyYWNrZXRlZENoaWxkTm9kZUIiLCJjaGlsZE5vZGVzIiwiYnJhY2tldGVkQ2hpbGROb2RlIiwiY2hpbGROb2Rlc0xlbmd0aCIsIkJSQUNLRVRFRF9DSElMRF9OT0RFU19MRU5HVEgiLCJmaXJzdENoaWxkTm9kZSIsImZpcnN0IiwidGhpcmRDaGlsZE5vZGUiLCJ0aGlyZCIsInNlY29uZENoaWxkTm9kZSIsInNlY29uZCIsImZpcnN0Q2hpbGROb2RlVGVybWluYWxOb2RlIiwidGhpcmRDaGlsZE5vZGVUZXJtaW5hbE5vZGUiLCJzZWNvbmRDaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsImZpcnN0VGVybWluYWxOb2RlIiwic2Vjb25kVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlUnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsImZpcnN0VGVybWluYWxOb2RlQ29udGVudCIsImdldENvbnRlbnQiLCJzZWNvbmRUZXJtaW5hbE5vZGVDb250ZW50IiwiZmlyc3RUZXJtaW5hbE5vZGVDb250ZW50TGVmdEJyYWNrZXQiLCJMRUZUX0JSQUNLRVQiLCJzZWNvbmRUZXJtaW5hbE5vZGVDb250ZW50UmlnaHRCcmFja2V0IiwiUklHSFRfQlJBQ0tFVCIsIm5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lTWV0YXN0YXRlbWVudFJ1bGVOYW1lIiwiTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUiLCJtYXRjaGVzIiwibWF0Y2giLCJub25UZXJtaW5hbE5vZGVBUnVsZU5hbWUiLCJub25UZXJtaW5hbE5vZGVCUnVsZU5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQU1nQkEsU0FBUztlQUFUQTs7SUF5QkFDLFVBQVU7ZUFBVkE7O0lBb0JBQyw2QkFBNkI7ZUFBN0JBOztJQXdDQUMsZ0NBQWdDO2VBQWhDQTs7O3FCQXpGcUI7eUJBQ0c7eUJBQ2tDO0FBRW5FLFNBQVNILFVBQVVJLEtBQUssRUFBRUMsS0FBSyxFQUFFO0lBQ3RDLElBQUlDLGNBQWMsS0FBSztJQUV2QixJQUFNQyxvQkFBb0JILE1BQU1JLGNBQWMsSUFDeENDLG9CQUFvQkosTUFBTUcsY0FBYztJQUU5QyxJQUFJRCxzQkFBc0JFLG1CQUFtQjtRQUMzQyxJQUFJRixtQkFBbUI7WUFDckIsSUFBTUcsZ0JBQWdCTixPQUNoQk8sZ0JBQWdCTixPQUNoQk8sc0JBQXNCQyxrQkFBa0JILGVBQWVDO1lBRTdETCxjQUFjTSxxQkFBc0IsR0FBRztRQUN6QyxPQUFPO1lBQ0wsSUFBTUUsbUJBQW1CVixPQUNuQlcsbUJBQW1CVixPQUNuQlcseUJBQXlCQyxxQkFBcUJILGtCQUFrQkM7WUFFdEVULGNBQWNVLHdCQUF3QixHQUFHO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBT1Y7QUFDVDtBQUVPLFNB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
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return verifyAntecedent;
9
9
  }
10
10
  });
11
- var _assertion = /*#__PURE__*/ _interopRequireDefault(require("../assertion"));
11
+ var _proof = /*#__PURE__*/ _interopRequireDefault(require("../step/proof"));
12
12
  var _antecedent = /*#__PURE__*/ _interopRequireDefault(require("../antecedent"));
13
13
  var _unqualified = /*#__PURE__*/ _interopRequireDefault(require("../verify/statement/unqualified"));
14
14
  var _query = require("../utilities/query");
@@ -23,13 +23,13 @@ function verifyAntecedent(antecedentNode, antecedents, proofContext) {
23
23
  proofContext.begin(antecedentNode);
24
24
  var unqualifiedStatementNode = unqualifiedStatementNodeQuery(antecedentNode), unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, proofContext);
25
25
  if (unqualifiedStatementVerified) {
26
- var statementNode = statementNodeQuery(unqualifiedStatementNode), assertion = _assertion.default.fromUnqualifiedStatementNode(unqualifiedStatementNode), antecedent = _antecedent.default.fromStatementNode(statementNode);
26
+ var statementNode = statementNodeQuery(unqualifiedStatementNode), proofStep = _proof.default.fromStatementNode(statementNode), antecedent = _antecedent.default.fromStatementNode(statementNode);
27
27
  antecedents.push(antecedent);
28
- proofContext.addAssertion(assertion);
28
+ proofContext.addProofStep(proofStep);
29
29
  antecedentOrAntecedentsVerified = true;
30
30
  }
31
31
  antecedentOrAntecedentsVerified ? proofContext.complete(antecedentNode) : proofContext.halt(antecedentNode);
32
32
  return antecedentOrAntecedentsVerified;
33
33
  }
34
34
 
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvYW50ZWNlZGVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEFzc2VydGlvbiBmcm9tIFwiLi4vYXNzZXJ0aW9uXCI7XG5pbXBvcnQgQW50ZWNlZGVudCBmcm9tIFwiLi4vYW50ZWNlZGVudFwiO1xuaW1wb3J0IHZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuLi92ZXJpZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3Qgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3VucXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudFwiKSxcbiAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2FudGVjZWRlbnQvdW5xdWFsaWZpZWRTdGF0ZW1lbnRcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeUFudGVjZWRlbnQoYW50ZWNlZGVudE5vZGUsIGFudGVjZWRlbnRzLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IGFudGVjZWRlbnRPckFudGVjZWRlbnRzVmVyaWZpZWQ7XG5cbiAgcHJvb2ZDb250ZXh0LmJlZ2luKGFudGVjZWRlbnROb2RlKTtcblxuICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeShhbnRlY2VkZW50Tm9kZSksXG4gICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHByb29mQ29udGV4dCk7XG5cbiAgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgYXNzZXJ0aW9uID0gQXNzZXJ0aW9uLmZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBhbnRlY2VkZW50ID0gQW50ZWNlZGVudC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgIGFudGVjZWRlbnRzLnB1c2goYW50ZWNlZGVudCk7XG5cbiAgICBwcm9vZkNvbnRleHQuYWRkQXNzZXJ0aW9uKGFzc2VydGlvbik7XG5cbiAgICBhbnRlY2VkZW50T3JBbnRlY2VkZW50c1ZlcmlmaWVkID0gdHJ1ZTtcbiAgfVxuXG4gIGFudGVjZWRlbnRPckFudGVjZWRlbnRzVmVyaWZpZWQgP1xuICAgIHByb29mQ29udGV4dC5jb21wbGV0ZShhbnRlY2VkZW50Tm9kZSkgOlxuICAgICAgcHJvb2ZDb250ZXh0LmhhbHQoYW50ZWNlZGVudE5vZGUpO1xuXG4gIHJldHVybiBhbnRlY2VkZW50T3JBbnRlY2VkZW50c1ZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeUFudGVjZWRlbnQiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSIsImFudGVjZWRlbnROb2RlIiwiYW50ZWNlZGVudHMiLCJwcm9vZkNvbnRleHQiLCJhbnRlY2VkZW50T3JBbnRlY2VkZW50c1ZlcmlmaWVkIiwiYmVnaW4iLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiYXNzZXJ0aW9uIiwiQXNzZXJ0aW9uIiwiZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsImFudGVjZWRlbnQiLCJBbnRlY2VkZW50IiwiZnJvbVN0YXRlbWVudE5vZGUiLCJwdXNoIiwiYWRkQXNzZXJ0aW9uIiwiY29tcGxldGUiLCJoYWx0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQXdCQTs7OzhEQVRGOytEQUNDO2dFQUNnQjtxQkFFYjs7Ozs7O0FBRTFCLElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQyxvQ0FDL0JDLGdDQUFnQ0QsSUFBQUEsZ0JBQVMsRUFBQztBQUVqQyxTQUFTRixpQkFBaUJJLGNBQWMsRUFBRUMsV0FBVyxFQUFFQyxZQUFZLEVBQUU7SUFDbEYsSUFBSUM7SUFFSkQsYUFBYUUsS0FBSyxDQUFDSjtJQUVuQixJQUFNSywyQkFBMkJOLDhCQUE4QkMsaUJBQ3pETSwrQkFBK0JDLElBQUFBLG9CQUEwQixFQUFDRiwwQkFBMEJIO0lBRTFGLElBQUlJLDhCQUE4QjtRQUNoQyxJQUFNRSxnQkFBZ0JYLG1CQUFtQlEsMkJBQ25DSSxZQUFZQyxrQkFBUyxDQUFDQyw0QkFBNEIsQ0FBQ04sMkJBQ25ETyxhQUFhQyxtQkFBVSxDQUFDQyxpQkFBaUIsQ0FBQ047UUFFaERQLFlBQVljLElBQUksQ0FBQ0g7UUFFakJWLGFBQWFjLFlBQVksQ0FBQ1A7UUFFMUJOLGtDQUFrQyxJQUFJO0lBQ3hDLENBQUM7SUFFREEsa0NBQ0VELGFBQWFlLFFBQVEsQ0FBQ2pCLGtCQUNwQkUsYUFBYWdCLElBQUksQ0FBQ2xCLGVBQWU7SUFFckMsT0FBT0c7QUFDVCJ9
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvYW50ZWNlZGVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFByb29mU3RlcCBmcm9tIFwiLi4vc3RlcC9wcm9vZlwiO1xuaW1wb3J0IEFudGVjZWRlbnQgZnJvbSBcIi4uL2FudGVjZWRlbnRcIjtcbmltcG9ydCB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudC91bnF1YWxpZmllZFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi91bnF1YWxpZmllZFN0YXRlbWVudC9zdGF0ZW1lbnRcIiksXG4gICAgICB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hbnRlY2VkZW50L3VucXVhbGlmaWVkU3RhdGVtZW50XCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlBbnRlY2VkZW50KGFudGVjZWRlbnROb2RlLCBhbnRlY2VkZW50cywgcHJvb2ZDb250ZXh0KSB7XG4gIGxldCBhbnRlY2VkZW50T3JBbnRlY2VkZW50c1ZlcmlmaWVkO1xuXG4gIHByb29mQ29udGV4dC5iZWdpbihhbnRlY2VkZW50Tm9kZSk7XG5cbiAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkoYW50ZWNlZGVudE5vZGUpLFxuICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpO1xuXG4gIGlmICh1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHByb29mU3RlcCA9IFByb29mU3RlcC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBhbnRlY2VkZW50ID0gQW50ZWNlZGVudC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgIGFudGVjZWRlbnRzLnB1c2goYW50ZWNlZGVudCk7XG5cbiAgICBwcm9vZkNvbnRleHQuYWRkUHJvb2ZTdGVwKHByb29mU3RlcCk7XG5cbiAgICBhbnRlY2VkZW50T3JBbnRlY2VkZW50c1ZlcmlmaWVkID0gdHJ1ZTtcbiAgfVxuXG4gIGFudGVjZWRlbnRPckFudGVjZWRlbnRzVmVyaWZpZWQgP1xuICAgIHByb29mQ29udGV4dC5jb21wbGV0ZShhbnRlY2VkZW50Tm9kZSkgOlxuICAgICAgcHJvb2ZDb250ZXh0LmhhbHQoYW50ZWNlZGVudE5vZGUpO1xuXG4gIHJldHVybiBhbnRlY2VkZW50T3JBbnRlY2VkZW50c1ZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeUFudGVjZWRlbnQiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSIsImFudGVjZWRlbnROb2RlIiwiYW50ZWNlZGVudHMiLCJwcm9vZkNvbnRleHQiLCJhbnRlY2VkZW50T3JBbnRlY2VkZW50c1ZlcmlmaWVkIiwiYmVnaW4iLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwicHJvb2ZTdGVwIiwiUHJvb2ZTdGVwIiwiZnJvbVN0YXRlbWVudE5vZGUiLCJhbnRlY2VkZW50IiwiQW50ZWNlZGVudCIsInB1c2giLCJhZGRQcm9vZlN0ZXAiLCJjb21wbGV0ZSIsImhhbHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBd0JBOzs7MERBVEY7K0RBQ0M7Z0VBQ2dCO3FCQUViOzs7Ozs7QUFFMUIsSUFBTUMscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDLG9DQUMvQkMsZ0NBQWdDRCxJQUFBQSxnQkFBUyxFQUFDO0FBRWpDLFNBQVNGLGlCQUFpQkksY0FBYyxFQUFFQyxXQUFXLEVBQUVDLFlBQVksRUFBRTtJQUNsRixJQUFJQztJQUVKRCxhQUFhRSxLQUFLLENBQUNKO0lBRW5CLElBQU1LLDJCQUEyQk4sOEJBQThCQyxpQkFDekRNLCtCQUErQkMsSUFBQUEsb0JBQTBCLEVBQUNGLDBCQUEwQkg7SUFFMUYsSUFBSUksOEJBQThCO1FBQ2hDLElBQU1FLGdCQUFnQlgsbUJBQW1CUSwyQkFDbkNJLFlBQVlDLGNBQVMsQ0FBQ0MsaUJBQWlCLENBQUNILGdCQUN4Q0ksYUFBYUMsbUJBQVUsQ0FBQ0YsaUJBQWlCLENBQUNIO1FBRWhEUCxZQUFZYSxJQUFJLENBQUNGO1FBRWpCVixhQUFhYSxZQUFZLENBQUNOO1FBRTFCTixrQ0FBa0MsSUFBSTtJQUN4QyxDQUFDO0lBRURBLGtDQUNFRCxhQUFhYyxRQUFRLENBQUNoQixrQkFDcEJFLGFBQWFlLElBQUksQ0FBQ2pCLGVBQWU7SUFFckMsT0FBT0c7QUFDVCJ9
@@ -8,8 +8,8 @@ Object.defineProperty(exports, "default", {
8
8
  return verifyDerivation;
9
9
  }
10
10
  });
11
- var _assertion = /*#__PURE__*/ _interopRequireDefault(require("../assertion"));
12
- var _proof = /*#__PURE__*/ _interopRequireDefault(require("../context/proof"));
11
+ var _proof = /*#__PURE__*/ _interopRequireDefault(require("../step/proof"));
12
+ var _proof1 = /*#__PURE__*/ _interopRequireDefault(require("../context/proof"));
13
13
  var _qualified = /*#__PURE__*/ _interopRequireDefault(require("../verify/statement/qualified"));
14
14
  var _unqualified = /*#__PURE__*/ _interopRequireDefault(require("../verify/statement/unqualified"));
15
15
  var _query = require("../utilities/query");
@@ -19,12 +19,11 @@ function _interopRequireDefault(obj) {
19
19
  default: obj
20
20
  };
21
21
  }
22
- var derivationNodeQuery = (0, _query.nodeQuery)("/subproof/derivation|abridgedDerivation!"), derivationChildNodesQuery = (0, _query.nodesQuery)("/derivation|abridgedDerivation/*"), unqualifiedStatementNodesQuery = (0, _query.nodesQuery)("/subproof/unqualifiedStatement");
22
+ var statementNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement|unqualifiedStatement/statement!"), derivationNodeQuery = (0, _query.nodeQuery)("/subproof/derivation|abridgedDerivation!"), derivationChildNodesQuery = (0, _query.nodesQuery)("/derivation|abridgedDerivation/*"), unqualifiedStatementNodesQuery = (0, _query.nodesQuery)("/subproof/unqualifiedStatement");
23
23
  function verifyDerivation(derivationNode, proofContext) {
24
- var derivationVerified, derived;
24
+ var derivationVerified;
25
25
  proofContext.begin(derivationNode);
26
- derived = true;
27
- proofContext.setDerived(derived);
26
+ proofContext.setDerived();
28
27
  var derivationChildNodes = derivationChildNodesQuery(derivationNode);
29
28
  derivationVerified = derivationChildNodes.every(function(derivationChildNode) {
30
29
  var derivationChildVerified = verifyDerivationChild(derivationChildNode, proofContext);
@@ -32,8 +31,7 @@ function verifyDerivation(derivationNode, proofContext) {
32
31
  return true;
33
32
  }
34
33
  });
35
- derived = false;
36
- proofContext.setDerived(derived);
34
+ proofContext.setDerived();
37
35
  derivationVerified ? proofContext.complete(derivationNode) : proofContext.halt(derivationNode);
38
36
  return derivationVerified;
39
37
  }
@@ -45,8 +43,8 @@ function verifyDerivationChild(derivationChildNode, proofContext) {
45
43
  {
46
44
  var subproofNode = derivationChildNode, subproofVerified = verifySubproof(subproofNode, proofContext);
47
45
  if (subproofVerified) {
48
- var assertion = _assertion.default.fromSubproofNode(subproofNode);
49
- proofContext.addAssertion(assertion);
46
+ var proofStep = _proof.default.fromSubproofNode(subproofNode);
47
+ proofContext.addProofStep(proofStep);
50
48
  derivationChildVerified = true;
51
49
  }
52
50
  break;
@@ -55,8 +53,8 @@ function verifyDerivationChild(derivationChildNode, proofContext) {
55
53
  {
56
54
  var qualifiedStatementNode = derivationChildNode, qualifiedStatementVerified = (0, _qualified.default)(qualifiedStatementNode, proofContext);
57
55
  if (qualifiedStatementVerified) {
58
- var assertion1 = _assertion.default.fromQualifiedStatementNode(qualifiedStatementNode);
59
- proofContext.addAssertion(assertion1);
56
+ var statementNode = statementNodeQuery(qualifiedStatementNode), proofStep1 = _proof.default.fromStatementNode(statementNode);
57
+ proofContext.addProofStep(proofStep1);
60
58
  derivationChildVerified = qualifiedStatementVerified; ///
61
59
  }
62
60
  break;
@@ -65,8 +63,8 @@ function verifyDerivationChild(derivationChildNode, proofContext) {
65
63
  {
66
64
  var unqualifiedStatementNode = derivationChildNode, unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, proofContext);
67
65
  if (unqualifiedStatementVerified) {
68
- var assertion2 = _assertion.default.fromUnqualifiedStatementNode(unqualifiedStatementNode);
69
- proofContext.addAssertion(assertion2);
66
+ var statementNode1 = statementNodeQuery(unqualifiedStatementNode), proofStep2 = _proof.default.fromStatementNode(statementNode1);
67
+ proofContext.addProofStep(proofStep2);
70
68
  derivationChildVerified = true;
71
69
  }
72
70
  break;
@@ -76,7 +74,7 @@ function verifyDerivationChild(derivationChildNode, proofContext) {
76
74
  }
77
75
  function verifySubproof(subproofNode, proofContext) {
78
76
  var subproofVerified = false;
79
- proofContext = _proof.default.fromProofContext(proofContext); ///
77
+ proofContext = _proof1.default.fromProofContext(proofContext); ///
80
78
  var unqualifiedStatementNodes = unqualifiedStatementNodesQuery(subproofNode), unqualifiedStatementsVerified = unqualifiedStatementNodes.every(function(unqualifiedStatementNode) {
81
79
  var unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, proofContext);
82
80
  if (unqualifiedStatementVerified) {
@@ -85,8 +83,8 @@ function verifySubproof(subproofNode, proofContext) {
85
83
  });
86
84
  if (unqualifiedStatementsVerified) {
87
85
  unqualifiedStatementNodes.forEach(function(unqualifiedStatementNode) {
88
- var assertion = _assertion.default.fromUnqualifiedStatementNode(unqualifiedStatementNode);
89
- proofContext.addAssertion(assertion);
86
+ var statementNode = statementNodeQuery(unqualifiedStatementNode), proofStep = _proof.default.fromStatementNode(statementNode);
87
+ proofContext.addProofStep(proofStep);
90
88
  });
91
89
  var derivationNode = derivationNodeQuery(subproofNode), derivationVerified = verifyDerivation(derivationNode, proofContext);
92
90
  if (derivationVerified) {
@@ -96,4 +94,4 @@ function verifySubproof(subproofNode, proofContext) {
96
94
  return subproofVerified;
97
95
  }
98
96
 
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZGVyaXZhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEFzc2VydGlvbiBmcm9tIFwiLi4vYXNzZXJ0aW9uXCI7XG5pbXBvcnQgUHJvb2ZDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3Byb29mXCI7XG5pbXBvcnQgdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuLi92ZXJpZnkvc3RhdGVtZW50L3F1YWxpZmllZFwiO1xuaW1wb3J0IHZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuLi92ZXJpZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IFNVQlBST09GX1JVTEVfTkFNRSwgUVVBTElGSUVEX1NUQVRFTUVOVF9SVUxFX05BTUUsIFVOUVVBTElGSUVEX1NUQVRFTUVOVF9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IGRlcml2YXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3VicHJvb2YvZGVyaXZhdGlvbnxhYnJpZGdlZERlcml2YXRpb24hXCIpLCAgLy8vXG4gICAgICBkZXJpdmF0aW9uQ2hpbGROb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9kZXJpdmF0aW9ufGFicmlkZ2VkRGVyaXZhdGlvbi8qXCIpLFxuICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9zdWJwcm9vZi91bnF1YWxpZmllZFN0YXRlbWVudFwiKVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlEZXJpdmF0aW9uKGRlcml2YXRpb25Ob2RlLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IGRlcml2YXRpb25WZXJpZmllZCxcbiAgICAgIGRlcml2ZWQ7XG5cbiAgcHJvb2ZDb250ZXh0LmJlZ2luKGRlcml2YXRpb25Ob2RlKTtcblxuICBkZXJpdmVkID0gdHJ1ZTtcblxuICBwcm9vZkNvbnRleHQuc2V0RGVyaXZlZChkZXJpdmVkKTtcblxuICBjb25zdCBkZXJpdmF0aW9uQ2hpbGROb2RlcyA9IGRlcml2YXRpb25DaGlsZE5vZGVzUXVlcnkoZGVyaXZhdGlvbk5vZGUpO1xuXG4gIGRlcml2YXRpb25WZXJpZmllZCA9IGRlcml2YXRpb25DaGlsZE5vZGVzLmV2ZXJ5KChkZXJpdmF0aW9uQ2hpbGROb2RlKSA9PiB7ICAvLy9cbiAgICBjb25zdCBkZXJpdmF0aW9uQ2hpbGRWZXJpZmllZCA9IHZlcmlmeURlcml2YXRpb25DaGlsZChkZXJpdmF0aW9uQ2hpbGROb2RlLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgaWYgKGRlcml2YXRpb25DaGlsZFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGRlcml2ZWQgPSBmYWxzZTtcblxuICBwcm9vZkNvbnRleHQuc2V0RGVyaXZlZChkZXJpdmVkKTtcblxuICBkZXJpdmF0aW9uVmVyaWZpZWQgP1xuICAgIHByb29mQ29udGV4dC5jb21wbGV0ZShkZXJpdmF0aW9uTm9kZSkgOlxuICAgICAgcHJvb2ZDb250ZXh0LmhhbHQoZGVyaXZhdGlvbk5vZGUpO1xuXG4gIHJldHVybiBkZXJpdmF0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeURlcml2YXRpb25DaGlsZChkZXJpdmF0aW9uQ2hpbGROb2RlLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IGRlcml2YXRpb25DaGlsZFZlcmlmaWVkO1xuXG4gIGNvbnN0IHJ1bGVOYW1lID0gZGVyaXZhdGlvbkNoaWxkTm9kZS5nZXRSdWxlTmFtZSgpO1xuXG4gIHN3aXRjaCAocnVsZU5hbWUpIHtcbiAgICBjYXNlIFNVQlBST09GX1JVTEVfTkFNRToge1xuICAgICAgY29uc3Qgc3VicHJvb2ZOb2RlID0gZGVyaXZhdGlvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgc3VicHJvb2ZWZXJpZmllZCA9IHZlcmlmeVN1YnByb29mKHN1YnByb29mTm9kZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgaWYgKHN1YnByb29mVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgYXNzZXJ0aW9uID0gQXNzZXJ0aW9uLmZyb21TdWJwcm9vZk5vZGUoc3VicHJvb2ZOb2RlKTtcblxuICAgICAgICBwcm9vZkNvbnRleHQuYWRkQXNzZXJ0aW9uKGFzc2VydGlvbik7XG5cbiAgICAgICAgZGVyaXZhdGlvbkNoaWxkVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjYXNlIFFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FOiB7XG4gICAgICBjb25zdCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gZGVyaXZhdGlvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IGFzc2VydGlvbiA9IEFzc2VydGlvbi5mcm9tUXVhbGlmaWVkU3RhdGVtZW50Tm9kZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBwcm9vZkNvbnRleHQuYWRkQXNzZXJ0aW9uKGFzc2VydGlvbik7XG5cbiAgICAgICAgZGVyaXZhdGlvbkNoaWxkVmVyaWZpZWQgPSBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNhc2UgVU5RVUFMSUZJRURfU1RBVEVNRU5UX1JVTEVfTkFNRToge1xuICAgICAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gZGVyaXZhdGlvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgYXNzZXJ0aW9uID0gQXNzZXJ0aW9uLmZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBwcm9vZkNvbnRleHQuYWRkQXNzZXJ0aW9uKGFzc2VydGlvbik7XG5cbiAgICAgICAgZGVyaXZhdGlvbkNoaWxkVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZhdGlvbkNoaWxkVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN1YnByb29mKHN1YnByb29mTm9kZSwgcHJvb2ZDb250ZXh0KSB7XG4gIGxldCBzdWJwcm9vZlZlcmlmaWVkID0gZmFsc2U7XG5cbiAgcHJvb2ZDb250ZXh0ID0gUHJvb2ZDb250ZXh0LmZyb21Qcm9vZkNvbnRleHQocHJvb2ZDb250ZXh0KTsgLy8vXG5cbiAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlcyA9IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZXNRdWVyeShzdWJwcm9vZk5vZGUpLFxuICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudHNWZXJpZmllZCA9IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZXMuZXZlcnkoKHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHByb29mQ29udGV4dCk7XG5cbiAgICAgICAgICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnRzVmVyaWZpZWQpIHtcbiAgICB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVzLmZvckVhY2goKHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSkgPT4ge1xuICAgICAgY29uc3QgYXNzZXJ0aW9uID0gQXNzZXJ0aW9uLmZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgICAgcHJvb2ZDb250ZXh0LmFkZEFzc2VydGlvbihhc3NlcnRpb24pO1xuICAgIH0pO1xuXG4gICAgY29uc3QgZGVyaXZhdGlvbk5vZGUgPSBkZXJpdmF0aW9uTm9kZVF1ZXJ5KHN1YnByb29mTm9kZSksXG4gICAgICAgICAgZGVyaXZhdGlvblZlcmlmaWVkID0gdmVyaWZ5RGVyaXZhdGlvbihkZXJpdmF0aW9uTm9kZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgIGlmIChkZXJpdmF0aW9uVmVyaWZpZWQpIHtcbiAgICAgIHN1YnByb29mVmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdWJwcm9vZlZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeURlcml2YXRpb24iLCJkZXJpdmF0aW9uTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiZGVyaXZhdGlvbkNoaWxkTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVzUXVlcnkiLCJkZXJpdmF0aW9uTm9kZSIsInByb29mQ29udGV4dCIsImRlcml2YXRpb25WZXJpZmllZCIsImRlcml2ZWQiLCJiZWdpbiIsInNldERlcml2ZWQiLCJkZXJpdmF0aW9uQ2hpbGROb2RlcyIsImV2ZXJ5IiwiZGVyaXZhdGlvbkNoaWxkTm9kZSIsImRlcml2YXRpb25DaGlsZFZlcmlmaWVkIiwidmVyaWZ5RGVyaXZhdGlvbkNoaWxkIiwiY29tcGxldGUiLCJoYWx0IiwicnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsIlNVQlBST09GX1JVTEVfTkFNRSIsInN1YnByb29mTm9kZSIsInN1YnByb29mVmVyaWZpZWQiLCJ2ZXJpZnlTdWJwcm9vZiIsImFzc2VydGlvbiIsIkFzc2VydGlvbiIsImZyb21TdWJwcm9vZk5vZGUiLCJhZGRBc3NlcnRpb24iLCJRVUFMSUZJRURfU1RBVEVNRU5UX1JVTEVfTkFNRSIsInF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCIsImZyb21RdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwiVU5RVUFMSUZJRURfU1RBVEVNRU5UX1JVTEVfTkFNRSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsInVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCIsImZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJQcm9vZkNvbnRleHQiLCJmcm9tUHJvb2ZDb250ZXh0IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlcyIsInVucXVhbGlmaWVkU3RhdGVtZW50c1ZlcmlmaWVkIiwiZm9yRWFjaCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUF3QkE7Ozs4REFaRjswREFDRzs4REFDWTtnRUFDRTtxQkFFRDt5QkFDNkQ7Ozs7OztBQUVuRyxJQUFNQyxzQkFBc0JDLElBQUFBLGdCQUFTLEVBQUMsNkNBQ2hDQyw0QkFBNEJDLElBQUFBLGlCQUFVLEVBQUMscUNBQ3ZDQyxpQ0FBaUNELElBQUFBLGlCQUFVLEVBQUM7QUFFbkMsU0FBU0osaUJBQWlCTSxjQUFjLEVBQUVDLFlBQVksRUFBRTtJQUNyRSxJQUFJQyxvQkFDQUM7SUFFSkYsYUFBYUcsS0FBSyxDQUFDSjtJQUVuQkcsVUFBVSxJ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
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZGVyaXZhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFByb29mU3RlcCBmcm9tIFwiLi4vc3RlcC9wcm9vZlwiO1xuaW1wb3J0IFByb29mQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9wcm9vZlwiO1xuaW1wb3J0IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudC9xdWFsaWZpZWRcIjtcbmltcG9ydCB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudC91bnF1YWxpZmllZFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBTVUJQUk9PRl9SVUxFX05BTUUsIFFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FLCBVTlFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcXVhbGlmaWVkU3RhdGVtZW50fHVucXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudCFcIiksXG4gICAgICBkZXJpdmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N1YnByb29mL2Rlcml2YXRpb258YWJyaWRnZWREZXJpdmF0aW9uIVwiKSwgIC8vL1xuICAgICAgZGVyaXZhdGlvbkNoaWxkTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvZGVyaXZhdGlvbnxhYnJpZGdlZERlcml2YXRpb24vKlwiKSxcbiAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvc3VicHJvb2YvdW5xdWFsaWZpZWRTdGF0ZW1lbnRcIilcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5RGVyaXZhdGlvbihkZXJpdmF0aW9uTm9kZSwgcHJvb2ZDb250ZXh0KSB7XG4gIGxldCBkZXJpdmF0aW9uVmVyaWZpZWQ7XG5cbiAgcHJvb2ZDb250ZXh0LmJlZ2luKGRlcml2YXRpb25Ob2RlKTtcblxuICBwcm9vZkNvbnRleHQuc2V0RGVyaXZlZCgpO1xuXG4gIGNvbnN0IGRlcml2YXRpb25DaGlsZE5vZGVzID0gZGVyaXZhdGlvbkNoaWxkTm9kZXNRdWVyeShkZXJpdmF0aW9uTm9kZSk7XG5cbiAgZGVyaXZhdGlvblZlcmlmaWVkID0gZGVyaXZhdGlvbkNoaWxkTm9kZXMuZXZlcnkoKGRlcml2YXRpb25DaGlsZE5vZGUpID0+IHsgIC8vL1xuICAgIGNvbnN0IGRlcml2YXRpb25DaGlsZFZlcmlmaWVkID0gdmVyaWZ5RGVyaXZhdGlvbkNoaWxkKGRlcml2YXRpb25DaGlsZE5vZGUsIHByb29mQ29udGV4dCk7XG5cbiAgICBpZiAoZGVyaXZhdGlvbkNoaWxkVmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJvb2ZDb250ZXh0LnNldERlcml2ZWQoKTtcblxuICBkZXJpdmF0aW9uVmVyaWZpZWQgP1xuICAgIHByb29mQ29udGV4dC5jb21wbGV0ZShkZXJpdmF0aW9uTm9kZSkgOlxuICAgICAgcHJvb2ZDb250ZXh0LmhhbHQoZGVyaXZhdGlvbk5vZGUpO1xuXG4gIHJldHVybiBkZXJpdmF0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeURlcml2YXRpb25DaGlsZChkZXJpdmF0aW9uQ2hpbGROb2RlLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IGRlcml2YXRpb25DaGlsZFZlcmlmaWVkO1xuXG4gIGNvbnN0IHJ1bGVOYW1lID0gZGVyaXZhdGlvbkNoaWxkTm9kZS5nZXRSdWxlTmFtZSgpO1xuXG4gIHN3aXRjaCAocnVsZU5hbWUpIHtcbiAgICBjYXNlIFNVQlBST09GX1JVTEVfTkFNRToge1xuICAgICAgY29uc3Qgc3VicHJvb2ZOb2RlID0gZGVyaXZhdGlvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgc3VicHJvb2ZWZXJpZmllZCA9IHZlcmlmeVN1YnByb29mKHN1YnByb29mTm9kZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgaWYgKHN1YnByb29mVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgcHJvb2ZTdGVwID0gUHJvb2ZTdGVwLmZyb21TdWJwcm9vZk5vZGUoc3VicHJvb2ZOb2RlKTtcblxuICAgICAgICBwcm9vZkNvbnRleHQuYWRkUHJvb2ZTdGVwKHByb29mU3RlcCk7XG5cbiAgICAgICAgZGVyaXZhdGlvbkNoaWxkVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjYXNlIFFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FOiB7XG4gICAgICBjb25zdCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gZGVyaXZhdGlvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICAgIHByb29mU3RlcCA9IFByb29mU3RlcC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBwcm9vZkNvbnRleHQuYWRkUHJvb2ZTdGVwKHByb29mU3RlcCk7XG5cbiAgICAgICAgZGVyaXZhdGlvbkNoaWxkVmVyaWZpZWQgPSBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNhc2UgVU5RVUFMSUZJRURfU1RBVEVNRU5UX1JVTEVfTkFNRToge1xuICAgICAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gZGVyaXZhdGlvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgICBwcm9vZlN0ZXAgPSBQcm9vZlN0ZXAuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgICAgcHJvb2ZDb250ZXh0LmFkZFByb29mU3RlcChwcm9vZlN0ZXApO1xuXG4gICAgICAgIGRlcml2YXRpb25DaGlsZFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRlcml2YXRpb25DaGlsZFZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdWJwcm9vZihzdWJwcm9vZk5vZGUsIHByb29mQ29udGV4dCkge1xuICBsZXQgc3VicHJvb2ZWZXJpZmllZCA9IGZhbHNlO1xuXG4gIHByb29mQ29udGV4dCA9IFByb29mQ29udGV4dC5mcm9tUHJvb2ZDb250ZXh0KHByb29mQ29udGV4dCk7IC8vL1xuXG4gIGNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZXMgPSB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVzUXVlcnkoc3VicHJvb2ZOb2RlKSxcbiAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRzVmVyaWZpZWQgPSB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVzLmV2ZXJ5KCh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpID0+IHtcbiAgICAgICAgICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50c1ZlcmlmaWVkKSB7XG4gICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2Rlcy5mb3JFYWNoKCh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgIHByb29mU3RlcCA9IFByb29mU3RlcC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgcHJvb2ZDb250ZXh0LmFkZFByb29mU3RlcChwcm9vZlN0ZXApO1xuICAgIH0pO1xuXG4gICAgY29uc3QgZGVyaXZhdGlvbk5vZGUgPSBkZXJpdmF0aW9uTm9kZVF1ZXJ5KHN1YnByb29mTm9kZSksXG4gICAgICAgICAgZGVyaXZhdGlvblZlcmlmaWVkID0gdmVyaWZ5RGVyaXZhdGlvbihkZXJpdmF0aW9uTm9kZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgIGlmIChkZXJpdmF0aW9uVmVyaWZpZWQpIHtcbiAgICAgIHN1YnByb29mVmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdWJwcm9vZlZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeURlcml2YXRpb24iLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJkZXJpdmF0aW9uTm9kZVF1ZXJ5IiwiZGVyaXZhdGlvbkNoaWxkTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVzUXVlcnkiLCJkZXJpdmF0aW9uTm9kZSIsInByb29mQ29udGV4dCIsImRlcml2YXRpb25WZXJpZmllZCIsImJlZ2luIiwic2V0RGVyaXZlZCIsImRlcml2YXRpb25DaGlsZE5vZGVzIiwiZXZlcnkiLCJkZXJpdmF0aW9uQ2hpbGROb2RlIiwiZGVyaXZhdGlvbkNoaWxkVmVyaWZpZWQiLCJ2ZXJpZnlEZXJpdmF0aW9uQ2hpbGQiLCJjb21wbGV0ZSIsImhhbHQiLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiU1VCUFJPT0ZfUlVMRV9OQU1FIiwic3VicHJvb2ZOb2RlIiwic3VicHJvb2ZWZXJpZmllZCIsInZlcmlmeVN1YnByb29mIiwicHJvb2ZTdGVwIiwiUHJvb2ZTdGVwIiwiZnJvbVN1YnByb29mTm9kZSIsImFkZFByb29mU3RlcCIsIlFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FIiwicXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsInF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsImZyb21TdGF0ZW1lbnROb2RlIiwiVU5RVUFMSUZJRURfU1RBVEVNRU5UX1JVTEVfTkFNRSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsInVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCIsIlByb29mQ29udGV4dCIsImZyb21Qcm9vZkNvbnRleHQiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVzIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRzVmVyaWZpZWQiLCJmb3JFYWNoIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFlQTs7O2VBQXdCQTs7OzBEQWJGOzJEQUNHOzhEQUNZO2dFQUNFO3FCQUVEO3lCQUM2RDs7Ozs7O0FBRW5HLElBQU1DLHFCQUFxQkMsSUFB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
@@ -23,10 +23,12 @@ function verifyEquality(equalityNode, proofContext) {
23
23
  proofContext.begin(equalityNode);
24
24
  var equalityString = (0, _string.nodeAsString)(equalityNode);
25
25
  proofContext.debug("Verifying the '".concat(equalityString, "' equality..."));
26
- var types = [], context = proofContext, firstTermNode = firstTermNodeQuery(equalityNode), secondTermNode = secondTermNodeQuery(equalityNode), firstTermVerified = (0, _term.default)(firstTermNode, types, context), secondTermVerified = (0, _term.default)(secondTermNode, types, context);
27
- if (firstTermVerified && secondTermVerified) {
28
- var firstType = (0, _array.first)(types), secondType = (0, _array.second)(types), firstTypeEqualToSubTypeOfOrSuperTypeOfSecondType = firstType.isEqualToSubTypeOfOrSuperTypeOf(secondType);
29
- if (firstTypeEqualToSubTypeOfOrSuperTypeOfSecondType) {
26
+ var equalityTypesVerified = verifyEqualityTypes(equalityNode, proofContext);
27
+ if (equalityTypesVerified) {
28
+ var derived = proofContext.isDerived();
29
+ if (derived) {
30
+ debugger;
31
+ } else {
30
32
  equalityVerified = true;
31
33
  }
32
34
  }
@@ -36,5 +38,16 @@ function verifyEquality(equalityNode, proofContext) {
36
38
  equalityVerified ? proofContext.complete(equalityNode) : proofContext.halt(equalityNode);
37
39
  return equalityVerified;
38
40
  }
41
+ function verifyEqualityTypes(equalityNode, proofContext) {
42
+ var equalityTypesVerified = false;
43
+ var types = [], context = proofContext, firstTermNode = firstTermNodeQuery(equalityNode), secondTermNode = secondTermNodeQuery(equalityNode), firstTermVerified = (0, _term.default)(firstTermNode, types, context), secondTermVerified = (0, _term.default)(secondTermNode, types, context);
44
+ if (firstTermVerified && secondTermVerified) {
45
+ var firstType = (0, _array.first)(types), secondType = (0, _array.second)(types), firstTypeEqualToSubTypeOfOrSuperTypeOfSecondType = firstType.isEqualToSubTypeOfOrSuperTypeOf(secondType);
46
+ if (firstTypeEqualToSubTypeOfOrSuperTypeOfSecondType) {
47
+ equalityTypesVerified = true;
48
+ }
49
+ }
50
+ return equalityTypesVerified;
51
+ }
39
52
 
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZXF1YWxpdHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlUZXJtIGZyb20gXCIuLi92ZXJpZnkvdGVybVwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgZmlyc3QsIHNlY29uZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcblxuY29uc3QgZmlyc3RUZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2VxdWFsaXR5L3Rlcm1bMF1cIiksXG4gICAgICBzZWNvbmRUZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2VxdWFsaXR5L3Rlcm1bMV1cIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeUVxdWFsaXR5KGVxdWFsaXR5Tm9kZSwgcHJvb2ZDb250ZXh0KSB7XG4gIGxldCBlcXVhbGl0eVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgcHJvb2ZDb250ZXh0LmJlZ2luKGVxdWFsaXR5Tm9kZSk7XG5cbiAgY29uc3QgZXF1YWxpdHlTdHJpbmcgPSBub2RlQXNTdHJpbmcoZXF1YWxpdHlOb2RlKTtcblxuICBwcm9vZkNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBlcXVhbGl0eS4uLmApO1xuXG4gIGNvbnN0IHR5cGVzID0gW10sXG4gICAgICAgIGNvbnRleHQgPSBwcm9vZkNvbnRleHQsXG4gICAgICAgIGZpcnN0VGVybU5vZGUgPSBmaXJzdFRlcm1Ob2RlUXVlcnkoZXF1YWxpdHlOb2RlKSxcbiAgICAgICAgc2Vjb25kVGVybU5vZGUgPSBzZWNvbmRUZXJtTm9kZVF1ZXJ5KGVxdWFsaXR5Tm9kZSksXG4gICAgICAgIGZpcnN0VGVybVZlcmlmaWVkID0gdmVyaWZ5VGVybShmaXJzdFRlcm1Ob2RlLCB0eXBlcywgY29udGV4dCksXG4gICAgICAgIHNlY29uZFRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm0oc2Vjb25kVGVybU5vZGUsIHR5cGVzLCBjb250ZXh0KTtcblxuICBpZiAoZmlyc3RUZXJtVmVyaWZpZWQgJiYgc2Vjb25kVGVybVZlcmlmaWVkKSB7XG4gICAgY29uc3QgZmlyc3RUeXBlID0gZmlyc3QodHlwZXMpLFxuICAgICAgICAgIHNlY29uZFR5cGUgPSBzZWNvbmQodHlwZXMpLFxuICAgICAgICAgIGZpcnN0VHlwZUVxdWFsVG9TdWJUeXBlT2ZPclN1cGVyVHlwZU9mU2Vjb25kVHlwZSA9IGZpcnN0VHlwZS5pc0VxdWFsVG9TdWJUeXBlT2ZPclN1cGVyVHlwZU9mKHNlY29uZFR5cGUpO1xuXG4gICAgaWYgKGZpcnN0VHlwZUVxdWFsVG9TdWJUeXBlT2ZPclN1cGVyVHlwZU9mU2Vjb25kVHlwZSkge1xuICAgICAgZXF1YWxpdHlWZXJpZmllZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKGVxdWFsaXR5VmVyaWZpZWQpIHtcbiAgICBwcm9vZkNvbnRleHQuaW5mbyhgVmVyaWZpZWQgdGhlICcke2VxdWFsaXR5U3RyaW5nfScgZXF1YWxpdHkuYCk7XG4gIH1cblxuICBlcXVhbGl0eVZlcmlmaWVkID9cbiAgICBwcm9vZkNvbnRleHQuY29tcGxldGUoZXF1YWxpdHlOb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuaGFsdChlcXVhbGl0eU5vZGUpO1xuXG4gIHJldHVybiBlcXVhbGl0eVZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeUVxdWFsaXR5IiwiZmlyc3RUZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwic2Vjb25kVGVybU5vZGVRdWVyeSIsImVxdWFsaXR5Tm9kZSIsInByb29mQ29udGV4dCIsImVxdWFsaXR5VmVyaWZpZWQiLCJiZWdpbiIsImVxdWFsaXR5U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiZGVidWciLCJ0eXBlcyIsImNvbnRleHQiLCJmaXJzdFRlcm1Ob2RlIiwic2Vjb25kVGVybU5vZGUiLCJmaXJzdFRlcm1WZXJpZmllZCIsInZlcmlmeVRlcm0iLCJzZWNvbmRUZXJtVmVyaWZpZWQiLCJmaXJzdFR5cGUiLCJmaXJzdCIsInNlY29uZFR5cGUiLCJzZWNvbmQiLCJmaXJzdFR5cGVFcXVhbFRvU3ViVHlwZU9mT3JTdXBlclR5cGVPZlNlY29uZFR5cGUiLCJpc0VxdWFsVG9TdWJUeXBlT2ZPclN1cGVyVHlwZU9mIiwiaW5mbyIsImNvbXBsZXRlIiwiaGFsdCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUF3QkE7Ozt5REFURDtxQkFFRztzQkFDRztxQkFDQzs7Ozs7O0FBRTlCLElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQyxzQkFDL0JDLHNCQUFzQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUV2QixTQUFTRixlQUFlSSxZQUFZLEVBQUVDLFlBQVksRUFBRTtJQUNqRSxJQUFJQyxtQkFBbUIsS0FBSztJQUU1QkQsYUFBYUUsS0FBSyxDQUFDSDtJQUVuQixJQUFNSSxpQkFBaUJDLElBQUFBLG9CQUFZLEVBQUNMO0lBRXBDQyxhQUFhSyxLQUFLLENBQUMsQUFBQyxrQkFBZ0MsT0FBZkYsZ0JBQWU7SUFFcEQsSUFBTUcsUUFBUSxFQUFFLEVBQ1ZDLFVBQVVQLGNBQ1ZRLGdCQUFnQlosbUJBQW1CRyxlQUNuQ1UsaUJBQWlCWCxvQkFBb0JDLGVBQ3JDVyxvQkFBb0JDLElBQUFBLGFBQVUsRUFBQ0gsZUFBZUYsT0FBT0MsVUFDckRLLHFCQUFxQkQsSUFBQUEsYUFBVSxFQUFDRixnQkFBZ0JILE9BQU9DO0lBRTdELElBQUlHLHFCQUFxQkUsb0JBQW9CO1FBQzNDLElBQU1DLFlBQVlDLElBQUFBLFlBQUssRUFBQ1IsUUFDbEJTLGFBQWFDLElBQUFBLGFBQU0sRUFBQ1YsUUFDcEJXLG1EQUFtREosVUFBVUssK0JBQStCLENBQUNIO1FBRW5HLElBQUlFLGtEQUFrRDtZQUNwRGhCLG1CQUFtQixJQUFJO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSUEsa0JBQWtCO1FBQ3BCRCxhQUFhbUIsSUFBSSxDQUFDLEFBQUMsaUJBQStCLE9BQWZoQixnQkFBZTtJQUNwRCxDQUFDO0lBRURGLG1CQUNFRCxhQUFhb0IsUUFBUSxDQUFDckIsZ0JBQ3BCQyxhQUFhcUIsSUFBSSxDQUFDdEIsYUFBYTtJQUVuQyxPQUFPRTtBQUNUIn0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZXF1YWxpdHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlUZXJtIGZyb20gXCIuLi92ZXJpZnkvdGVybVwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgZmlyc3QsIHNlY29uZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcblxuY29uc3QgZmlyc3RUZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2VxdWFsaXR5L3Rlcm1bMF1cIiksXG4gICAgICBzZWNvbmRUZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2VxdWFsaXR5L3Rlcm1bMV1cIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeUVxdWFsaXR5KGVxdWFsaXR5Tm9kZSwgcHJvb2ZDb250ZXh0KSB7XG4gIGxldCBlcXVhbGl0eVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgcHJvb2ZDb250ZXh0LmJlZ2luKGVxdWFsaXR5Tm9kZSk7XG5cbiAgY29uc3QgZXF1YWxpdHlTdHJpbmcgPSBub2RlQXNTdHJpbmcoZXF1YWxpdHlOb2RlKTtcblxuICBwcm9vZkNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBlcXVhbGl0eS4uLmApO1xuXG4gIGNvbnN0IGVxdWFsaXR5VHlwZXNWZXJpZmllZCA9IHZlcmlmeUVxdWFsaXR5VHlwZXMoZXF1YWxpdHlOb2RlLCBwcm9vZkNvbnRleHQpO1xuXG4gIGlmIChlcXVhbGl0eVR5cGVzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBkZXJpdmVkID0gcHJvb2ZDb250ZXh0LmlzRGVyaXZlZCgpO1xuXG4gICAgaWYgKGRlcml2ZWQpIHtcbiAgICAgIGRlYnVnZ2VyXG4gICAgfSBlbHNlIHtcbiAgICAgIGVxdWFsaXR5VmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChlcXVhbGl0eVZlcmlmaWVkKSB7XG4gICAgcHJvb2ZDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHtlcXVhbGl0eVN0cmluZ30nIGVxdWFsaXR5LmApO1xuICB9XG5cbiAgZXF1YWxpdHlWZXJpZmllZCA/XG4gICAgcHJvb2ZDb250ZXh0LmNvbXBsZXRlKGVxdWFsaXR5Tm9kZSkgOlxuICAgICAgcHJvb2ZDb250ZXh0LmhhbHQoZXF1YWxpdHlOb2RlKTtcblxuICByZXR1cm4gZXF1YWxpdHlWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5RXF1YWxpdHlUeXBlcyhlcXVhbGl0eU5vZGUsIHByb29mQ29udGV4dCkge1xuICBsZXQgZXF1YWxpdHlUeXBlc1ZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgdHlwZXMgPSBbXSxcbiAgICAgICAgY29udGV4dCA9IHByb29mQ29udGV4dCwgIC8vL1xuICAgICAgICBmaXJzdFRlcm1Ob2RlID0gZmlyc3RUZXJtTm9kZVF1ZXJ5KGVxdWFsaXR5Tm9kZSksXG4gICAgICAgIHNlY29uZFRlcm1Ob2RlID0gc2Vjb25kVGVybU5vZGVRdWVyeShlcXVhbGl0eU5vZGUpLFxuICAgICAgICBmaXJzdFRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm0oZmlyc3RUZXJtTm9kZSwgdHlwZXMsIGNvbnRleHQpLFxuICAgICAgICBzZWNvbmRUZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHNlY29uZFRlcm1Ob2RlLCB0eXBlcywgY29udGV4dCk7XG5cbiAgaWYgKGZpcnN0VGVybVZlcmlmaWVkICYmIHNlY29uZFRlcm1WZXJpZmllZCkge1xuICAgIGNvbnN0IGZpcnN0VHlwZSA9IGZpcnN0KHR5cGVzKSxcbiAgICAgICAgICBzZWNvbmRUeXBlID0gc2Vjb25kKHR5cGVzKSxcbiAgICAgICAgICBmaXJzdFR5cGVFcXVhbFRvU3ViVHlwZU9mT3JTdXBlclR5cGVPZlNlY29uZFR5cGUgPSBmaXJzdFR5cGUuaXNFcXVhbFRvU3ViVHlwZU9mT3JTdXBlclR5cGVPZihzZWNvbmRUeXBlKTtcblxuICAgIGlmIChmaXJzdFR5cGVFcXVhbFRvU3ViVHlwZU9mT3JTdXBlclR5cGVPZlNlY29uZFR5cGUpIHtcbiAgICAgIGVxdWFsaXR5VHlwZXNWZXJpZmllZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVxdWFsaXR5VHlwZXNWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlFcXVhbGl0eSIsImZpcnN0VGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInNlY29uZFRlcm1Ob2RlUXVlcnkiLCJlcXVhbGl0eU5vZGUiLCJwcm9vZkNvbnRleHQiLCJlcXVhbGl0eVZlcmlmaWVkIiwiYmVnaW4iLCJlcXVhbGl0eVN0cmluZyIsIm5vZGVBc1N0cmluZyIsImRlYnVnIiwiZXF1YWxpdHlUeXBlc1ZlcmlmaWVkIiwidmVyaWZ5RXF1YWxpdHlUeXBlcyIsImRlcml2ZWQiLCJpc0Rlcml2ZWQiLCJpbmZvIiwiY29tcGxldGUiLCJoYWx0IiwidHlwZXMiLCJjb250ZXh0IiwiZmlyc3RUZXJtTm9kZSIsInNlY29uZFRlcm1Ob2RlIiwiZmlyc3RUZXJtVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtIiwic2Vjb25kVGVybVZlcmlmaWVkIiwiZmlyc3RUeXBlIiwiZmlyc3QiLCJzZWNvbmRUeXBlIiwic2Vjb25kIiwiZmlyc3RUeXBlRXF1YWxUb1N1YlR5cGVPZk9yU3VwZXJUeXBlT2ZTZWNvbmRUeXBlIiwiaXNFcXVhbFRvU3ViVHlwZU9mT3JTdXBlclR5cGVPZiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUF3QkE7Ozt5REFURDtxQkFFRztzQkFDRztxQkFDQzs7Ozs7O0FBRTlCLElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQyxzQkFDL0JDLHNCQUFzQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUV2QixTQUFTRixlQUFlSSxZQUFZLEVBQUVDLFlBQVksRUFBRTtJQUNqRSxJQUFJQyxtQkFBbUIsS0FBSztJQUU1QkQsYUFBYUUsS0FBSyxDQUFDSDtJQUVuQixJQUFNSSxpQkFBaUJDLElBQUFBLG9CQUFZLEVBQUNMO0lBRXBDQyxhQUFhSyxLQUFLLENBQUMsQUFBQyxrQkFBZ0MsT0FBZkYsZ0JBQWU7SUFFcEQsSUFBTUcsd0JBQXdCQyxvQkFBb0JSLGNBQWNDO0lBRWhFLElBQUlNLHVCQUF1QjtRQUN6QixJQUFNRSxVQUFVUixhQUFhUyxTQUFTO1FBRXRDLElBQUlELFNBQVM7WUFDWCxRQUFRO1FBQ1YsT0FBTztZQUNMUCxtQkFBbUIsSUFBSTtRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUlBLGtCQUFrQjtRQUNwQkQsYUFBYVUsSUFBSSxDQUFDLEFBQUMsaUJBQStCLE9BQWZQLGdCQUFlO0lBQ3BELENBQUM7SUFFREYsbUJBQ0VELGFBQWFXLFFBQVEsQ0FBQ1osZ0JBQ3BCQyxhQUFhWSxJQUFJLENBQUNiLGFBQWE7SUFFbkMsT0FBT0U7QUFDVDtBQUVBLFNBQVNNLG9CQUFvQlIsWUFBWSxFQUFFQyxZQUFZLEVBQUU7SUFDdkQsSUFBSU0sd0JBQXdCLEtBQUs7SUFFakMsSUFBTU8sUUFBUSxFQUFFLEVBQ1ZDLFVBQVVkLGNBQ1ZlLGdCQUFnQm5CLG1CQUFtQkcsZUFDbkNpQixpQkFBaUJsQixvQkFBb0JDLGVBQ3JDa0Isb0JBQW9CQyxJQUFBQSxhQUFVLEVBQUNILGVBQWVGLE9BQU9DLFVBQ3JESyxxQkFBcUJELElBQUFBLGFBQVUsRUFBQ0YsZ0JBQWdCSCxPQUFPQztJQUU3RCxJQUFJRyxxQkFBcUJFLG9CQUFvQjtRQUMzQyxJQUFNQyxZQUFZQyxJQUFBQSxZQUFLLEVBQUNSLFFBQ2xCUyxhQUFhQyxJQUFBQSxhQUFNLEVBQUNWLFFBQ3BCVyxtREFBbURKLFVBQVVLLCtCQUErQixDQUFDSDtRQUVuRyxJQUFJRSxrREFBa0Q7WUFDcERsQix3QkFBd0IsSUFBSTtRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU9BO0FBQ1QifQ==
@@ -8,8 +8,8 @@ Object.defineProperty(exports, "default", {
8
8
  return verifyMetaDerivation;
9
9
  }
10
10
  });
11
- var _metaAssertion = /*#__PURE__*/ _interopRequireDefault(require("../metaAssertion"));
12
- var _metaproof = /*#__PURE__*/ _interopRequireDefault(require("../context/metaproof"));
11
+ var _metaproof = /*#__PURE__*/ _interopRequireDefault(require("../step/metaproof"));
12
+ var _metaproof1 = /*#__PURE__*/ _interopRequireDefault(require("../context/metaproof"));
13
13
  var _qualified = /*#__PURE__*/ _interopRequireDefault(require("../verify/metastatement/qualified"));
14
14
  var _unqualified = /*#__PURE__*/ _interopRequireDefault(require("../verify/metastatement/unqualified"));
15
15
  var _query = require("../utilities/query");
@@ -19,12 +19,11 @@ function _interopRequireDefault(obj) {
19
19
  default: obj
20
20
  };
21
21
  }
22
- var metaDerivationNodeQuery = (0, _query.nodeQuery)("/metaSubproof/metaDerivation|abridgedMetaDerivation!"), metaDerivationChildNodesQuery = (0, _query.nodesQuery)("/metaDerivation|abridgedMetaDerivation/*"), unqualifiedMetastatementNodesQuery = (0, _query.nodesQuery)("/metaSubproof/unqualifiedMetastatement");
22
+ var metastatementNodeQuery = (0, _query.nodeQuery)("/qualifiedMetastatement|unqualifiedMetastatement/metastatement!"), metaDerivationNodeQuery = (0, _query.nodeQuery)("/metaSubproof/metaDerivation|abridgedMetaDerivation!"), metaDerivationChildNodesQuery = (0, _query.nodesQuery)("/metaDerivation|abridgedMetaDerivation/*"), unqualifiedMetastatementNodesQuery = (0, _query.nodesQuery)("/metaSubproof/unqualifiedMetastatement");
23
23
  function verifyMetaDerivation(metaDerivationNode, metaproofContext) {
24
- var metaDerivationVerified, derived;
24
+ var metaDerivationVerified;
25
25
  metaproofContext.begin(metaDerivationNode);
26
- derived = true;
27
- metaproofContext.setDerived(derived);
26
+ metaproofContext.setDerived();
28
27
  var metaDerivationChildNodes = metaDerivationChildNodesQuery(metaDerivationNode);
29
28
  metaDerivationVerified = metaDerivationChildNodes.every(function(metaDerivationChildNode) {
30
29
  var metaDerivationChildVerified = verifyMetaDerivationChild(metaDerivationChildNode, metaproofContext);
@@ -32,8 +31,7 @@ function verifyMetaDerivation(metaDerivationNode, metaproofContext) {
32
31
  return true;
33
32
  }
34
33
  });
35
- derived = false;
36
- metaproofContext.setDerived(derived);
34
+ metaproofContext.resetDerived();
37
35
  metaDerivationVerified ? metaproofContext.complete(metaDerivationNode) : metaproofContext.halt(metaDerivationNode);
38
36
  return metaDerivationVerified;
39
37
  }
@@ -45,8 +43,8 @@ function verifyMetaDerivationChild(metaDerivationChildNode, metaproofContext) {
45
43
  {
46
44
  var metaSubproofNode = metaDerivationChildNode, metaSubproofVerified = verifyMetaSubproof(metaSubproofNode, metaproofContext);
47
45
  if (metaSubproofVerified) {
48
- var metaAssertion = _metaAssertion.default.fromMetaSubproofNode(metaSubproofNode);
49
- metaproofContext.addMetaAssertion(metaAssertion);
46
+ var metaproofStep = _metaproof.default.fromMetaSubproofNode(metaSubproofNode);
47
+ metaproofContext.addMetaproofStep(metaproofStep);
50
48
  metaDerivationChildVerified = true;
51
49
  }
52
50
  break;
@@ -55,8 +53,8 @@ function verifyMetaDerivationChild(metaDerivationChildNode, metaproofContext) {
55
53
  {
56
54
  var qualifiedMetastatementNode = metaDerivationChildNode, qualifiedMetastatementVerified = (0, _qualified.default)(qualifiedMetastatementNode, metaproofContext);
57
55
  if (qualifiedMetastatementVerified) {
58
- var metaAssertion1 = _metaAssertion.default.fromQualifiedMetastatementNode(qualifiedMetastatementNode);
59
- metaproofContext.addMetaAssertion(metaAssertion1);
56
+ var metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode), metaproofStep1 = _metaproof.default.fromMetastatementNode(metastatementNode);
57
+ metaproofContext.addMetaproofStep(metaproofStep1);
60
58
  metaDerivationChildVerified = qualifiedMetastatementVerified; ///
61
59
  }
62
60
  break;
@@ -65,8 +63,8 @@ function verifyMetaDerivationChild(metaDerivationChildNode, metaproofContext) {
65
63
  {
66
64
  var unqualifiedMetastatementNode = metaDerivationChildNode, unqualifiedMetastatementVerified = (0, _unqualified.default)(unqualifiedMetastatementNode, metaproofContext);
67
65
  if (unqualifiedMetastatementVerified) {
68
- var metaAssertion2 = _metaAssertion.default.fromUnqualifiedMetastatementNode(unqualifiedMetastatementNode);
69
- metaproofContext.addMetaAssertion(metaAssertion2);
66
+ var metastatementNode1 = metastatementNodeQuery(unqualifiedMetastatementNode), metaproofStep2 = _metaproof.default.fromMetastatementNode(metastatementNode1);
67
+ metaproofContext.addMetaproofStep(metaproofStep2);
70
68
  metaDerivationChildVerified = true;
71
69
  }
72
70
  break;
@@ -76,7 +74,7 @@ function verifyMetaDerivationChild(metaDerivationChildNode, metaproofContext) {
76
74
  }
77
75
  function verifyMetaSubproof(metaSubproofNode, metaproofContext) {
78
76
  var metaSubproofVerified = false;
79
- metaproofContext = _metaproof.default.fromMetaproofContext(metaproofContext); ///
77
+ metaproofContext = _metaproof1.default.fromMetaproofContext(metaproofContext); ///
80
78
  var unqualifiedMetastatementNodes = unqualifiedMetastatementNodesQuery(metaSubproofNode), unqualifiedMetastatementsVerified = unqualifiedMetastatementNodes.every(function(unqualifiedMetastatementNode) {
81
79
  var unqualifiedMetastatementVerified = (0, _unqualified.default)(unqualifiedMetastatementNode, metaproofContext);
82
80
  if (unqualifiedMetastatementVerified) {
@@ -85,8 +83,8 @@ function verifyMetaSubproof(metaSubproofNode, metaproofContext) {
85
83
  });
86
84
  if (unqualifiedMetastatementsVerified) {
87
85
  unqualifiedMetastatementNodes.forEach(function(unqualifiedMetastatementNode) {
88
- var metaAssertion = _metaAssertion.default.fromUnqualifiedMetastatementNode(unqualifiedMetastatementNode);
89
- metaproofContext.addMetaAssertion(metaAssertion);
86
+ var metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode), metaproofStep = _metaproof.default.fromMetastatementNode(metastatementNode);
87
+ metaproofContext.addMetaproofStep(metaproofStep);
90
88
  });
91
89
  var metaDerivationNode = metaDerivationNodeQuery(metaSubproofNode), metaDerivationVerified = verifyMetaDerivation(metaDerivationNode, metaproofContext);
92
90
  if (metaDerivationVerified) {
@@ -96,4 +94,4 @@ function verifyMetaSubproof(metaSubproofNode, metaproofContext) {
96
94
  return metaSubproofVerified;
97
95
  }
98
96
 
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YURlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBNZXRhQXNzZXJ0aW9uIGZyb20gXCIuLi9tZXRhQXNzZXJ0aW9uXCI7XG5pbXBvcnQgTWV0YXByb29mQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9tZXRhcHJvb2ZcIjtcbmltcG9ydCB2ZXJpZnlRdWFsaWZpZWRNZXRhc3RhdGVtZW50IGZyb20gXCIuLi92ZXJpZnkvbWV0YXN0YXRlbWVudC9xdWFsaWZpZWRcIjtcbmltcG9ydCB2ZXJpZnlVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgZnJvbSBcIi4uL3ZlcmlmeS9tZXRhc3RhdGVtZW50L3VucXVhbGlmaWVkXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IE1FVEFfU1VCUFJPT0ZfUlVMRV9OQU1FLCBRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUsIFVOUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBtZXRhRGVyaXZhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhU3VicHJvb2YvbWV0YURlcml2YXRpb258YWJyaWRnZWRNZXRhRGVyaXZhdGlvbiFcIiksICAvLy9cbiAgICAgIG1ldGFEZXJpdmF0aW9uQ2hpbGROb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9tZXRhRGVyaXZhdGlvbnxhYnJpZGdlZE1ldGFEZXJpdmF0aW9uLypcIiksXG4gICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9tZXRhU3VicHJvb2YvdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50XCIpXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeU1ldGFEZXJpdmF0aW9uKG1ldGFEZXJpdmF0aW9uTm9kZSwgbWV0YXByb29mQ29udGV4dCkge1xuICBsZXQgbWV0YURlcml2YXRpb25WZXJpZmllZCxcbiAgICAgIGRlcml2ZWQ7XG5cbiAgbWV0YXByb29mQ29udGV4dC5iZWdpbihtZXRhRGVyaXZhdGlvbk5vZGUpO1xuXG4gIGRlcml2ZWQgPSB0cnVlO1xuXG4gIG1ldGFwcm9vZkNvbnRleHQuc2V0RGVyaXZlZChkZXJpdmVkKTtcblxuICBjb25zdCBtZXRhRGVyaXZhdGlvbkNoaWxkTm9kZXMgPSBtZXRhRGVyaXZhdGlvbkNoaWxkTm9kZXNRdWVyeShtZXRhRGVyaXZhdGlvbk5vZGUpO1xuXG4gIG1ldGFEZXJpdmF0aW9uVmVyaWZpZWQgPSBtZXRhRGVyaXZhdGlvbkNoaWxkTm9kZXMuZXZlcnkoKG1ldGFEZXJpdmF0aW9uQ2hpbGROb2RlKSA9PiB7ICAvLy9cbiAgICBjb25zdCBtZXRhRGVyaXZhdGlvbkNoaWxkVmVyaWZpZWQgPSB2ZXJpZnlNZXRhRGVyaXZhdGlvbkNoaWxkKG1ldGFEZXJpdmF0aW9uQ2hpbGROb2RlLCBtZXRhcHJvb2ZDb250ZXh0KTtcblxuICAgIGlmIChtZXRhRGVyaXZhdGlvbkNoaWxkVmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgZGVyaXZlZCA9IGZhbHNlO1xuXG4gIG1ldGFwcm9vZkNvbnRleHQuc2V0RGVyaXZlZChkZXJpdmVkKTtcblxuICBtZXRhRGVyaXZhdGlvblZlcmlmaWVkID9cbiAgICBtZXRhcHJvb2ZDb250ZXh0LmNvbXBsZXRlKG1ldGFEZXJpdmF0aW9uTm9kZSkgOlxuICAgICAgbWV0YXByb29mQ29udGV4dC5oYWx0KG1ldGFEZXJpdmF0aW9uTm9kZSk7XG5cbiAgcmV0dXJuIG1ldGFEZXJpdmF0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeU1ldGFEZXJpdmF0aW9uQ2hpbGQobWV0YURlcml2YXRpb25DaGlsZE5vZGUsIG1ldGFwcm9vZkNvbnRleHQpIHtcbiAgbGV0IG1ldGFEZXJpdmF0aW9uQ2hpbGRWZXJpZmllZDtcblxuICBjb25zdCBydWxlTmFtZSA9IG1ldGFEZXJpdmF0aW9uQ2hpbGROb2RlLmdldFJ1bGVOYW1lKCk7XG5cbiAgc3dpdGNoIChydWxlTmFtZSkge1xuICAgIGNhc2UgTUVUQV9TVUJQUk9PRl9SVUxFX05BTUU6IHtcbiAgICAgIGNvbnN0IG1ldGFTdWJwcm9vZk5vZGUgPSBtZXRhRGVyaXZhdGlvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgbWV0YVN1YnByb29mVmVyaWZpZWQgPSB2ZXJpZnlNZXRhU3VicHJvb2YobWV0YVN1YnByb29mTm9kZSwgbWV0YXByb29mQ29udGV4dCk7XG5cbiAgICAgIGlmIChtZXRhU3VicHJvb2ZWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBtZXRhQXNzZXJ0aW9uID0gTWV0YUFzc2VydGlvbi5mcm9tTWV0YVN1YnByb29mTm9kZShtZXRhU3VicHJvb2ZOb2RlKTtcblxuICAgICAgICBtZXRhcHJvb2ZDb250ZXh0LmFkZE1ldGFBc3NlcnRpb24obWV0YUFzc2VydGlvbik7XG5cbiAgICAgICAgbWV0YURlcml2YXRpb25DaGlsZFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2FzZSBRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgIGNvbnN0IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YURlcml2YXRpb25DaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgIHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVF1YWxpZmllZE1ldGFzdGF0ZW1lbnQocXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUsIG1ldGFwcm9vZkNvbnRleHQpO1xuXG4gICAgICBpZiAocXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IG1ldGFBc3NlcnRpb24gPSBNZXRhQXNzZXJ0aW9uLmZyb21RdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZShxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgICAgbWV0YXByb29mQ29udGV4dC5hZGRNZXRhQXNzZXJ0aW9uKG1ldGFBc3NlcnRpb24pO1xuXG4gICAgICAgIG1ldGFEZXJpdmF0aW9uQ2hpbGRWZXJpZmllZCA9IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNhc2UgVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgIGNvbnN0IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhRGVyaXZhdGlvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXByb29mQ29udGV4dCk7XG5cbiAgICAgIGlmICh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBtZXRhQXNzZXJ0aW9uID0gTWV0YUFzc2VydGlvbi5mcm9tVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBtZXRhcHJvb2ZDb250ZXh0LmFkZE1ldGFBc3NlcnRpb24obWV0YUFzc2VydGlvbik7XG5cbiAgICAgICAgbWV0YURlcml2YXRpb25DaGlsZFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1ldGFEZXJpdmF0aW9uQ2hpbGRWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5TWV0YVN1YnByb29mKG1ldGFTdWJwcm9vZk5vZGUsIG1ldGFwcm9vZkNvbnRleHQpIHtcbiAgbGV0IG1ldGFTdWJwcm9vZlZlcmlmaWVkID0gZmFsc2U7XG5cbiAgbWV0YXByb29mQ29udGV4dCA9IE1ldGFwcm9vZkNvbnRleHQuZnJvbU1ldGFwcm9vZkNvbnRleHQobWV0YXByb29mQ29udGV4dCk7IC8vL1xuXG4gIGNvbnN0IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGVzID0gdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZXNRdWVyeShtZXRhU3VicHJvb2ZOb2RlKSxcbiAgICAgICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50c1ZlcmlmaWVkID0gdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZXMuZXZlcnkoKHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUpID0+IHtcbiAgICAgICAgICBjb25zdCB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhcHJvb2ZDb250ZXh0KTtcblxuICAgICAgICAgIGlmICh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICBpZiAodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50c1ZlcmlmaWVkKSB7XG4gICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZXMuZm9yRWFjaCgodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSkgPT4ge1xuICAgICAgY29uc3QgbWV0YUFzc2VydGlvbiA9IE1ldGFBc3NlcnRpb24uZnJvbVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIG1ldGFwcm9vZkNvbnRleHQuYWRkTWV0YUFzc2VydGlvbihtZXRhQXNzZXJ0aW9uKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IG1ldGFEZXJpdmF0aW9uTm9kZSA9IG1ldGFEZXJpdmF0aW9uTm9kZVF1ZXJ5KG1ldGFTdWJwcm9vZk5vZGUpLFxuICAgICAgICAgIG1ldGFEZXJpdmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlNZXRhRGVyaXZhdGlvbihtZXRhRGVyaXZhdGlvbk5vZGUsIG1ldGFwcm9vZkNvbnRleHQpO1xuXG4gICAgaWYgKG1ldGFEZXJpdmF0aW9uVmVyaWZpZWQpIHtcbiAgICAgIG1ldGFTdWJwcm9vZlZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWV0YVN1YnByb29mVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5TWV0YURlcml2YXRpb24iLCJtZXRhRGVyaXZhdGlvbk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIm1ldGFEZXJpdmF0aW9uQ2hpbGROb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGVzUXVlcnkiLCJtZXRhRGVyaXZhdGlvbk5vZGUiLCJtZXRhcHJvb2ZDb250ZXh0IiwibWV0YURlcml2YXRpb25WZXJpZmllZCIsImRlcml2ZWQiLCJiZWdpbiIsInNldERlcml2ZWQiLCJtZXRhRGVyaXZhdGlvbkNoaWxkTm9kZXMiLCJldmVyeSIsIm1ldGFEZXJpdmF0aW9uQ2hpbGROb2RlIiwibWV0YURlcml2YXRpb25DaGlsZFZlcmlmaWVkIiwidmVyaWZ5TWV0YURlcml2YXRpb25DaGlsZCIsImNvbXBsZXRlIiwiaGFsdCIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJNRVRBX1NVQlBST09GX1JVTEVfTkFNRSIsIm1ldGFTdWJwcm9vZk5vZGUiLCJtZXRhU3VicHJvb2ZWZXJpZmllZCIsInZlcmlmeU1ldGFTdWJwcm9vZiIsIm1ldGFBc3NlcnRpb24iLCJNZXRhQXNzZXJ0aW9uIiwiZnJvbU1ldGFTdWJwcm9vZk5vZGUiLCJhZGRNZXRhQXNzZXJ0aW9uIiwiUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwicXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUiLCJxdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlRdWFsaWZpZWRNZXRhc3RhdGVtZW50IiwiZnJvbVF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlIiwiVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUiLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQiLCJmcm9tVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSIsIk1ldGFwcm9vZkNvbnRleHQiLCJmcm9tTWV0YXByb29mQ29udGV4dCIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGVzIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50c1ZlcmlmaWVkIiwiZm9yRWFjaCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUF3QkE7OztrRUFaRTs4REFDRzs4REFDWTtnRUFDRTtxQkFFTDt5QkFDMEU7Ozs7OztBQUVoSCxJQUFNQywwQkFBMEJDLElBQUFBLGdCQUFTLEVBQUMseURBQ3BDQyxnQ0FBZ0NDLElBQUFBLGlCQUFVLEVBQUMsNkNBQzNDQyxxQ0FBcUNELElBQUFBLGlCQUFVLEVBQUM7QUFFdkMsU0FBU0oscUJBQXFCTSxrQkFBa0IsRUFBRUMsZ0JBQWdCLEVBQUU7SUFDakYsSUFBSUMsd0JBQ0FDO0lBRUpGLGlCQUFpQkcsS0FBSyxDQUFDSjtJQUV2QkcsVUFBVSxJQUFJO0lBRWRGLGlCQUFpQkksVUFBVSxDQUFDRjtJQUU1QixJQUFNRywyQkFBMkJULDhCQUE4Qkc7SUFFL0RFLHlCQUF5QkkseUJBQXlCQyxLQUFLLENBQUMsU0FBQ0MseUJBQTRCO1FBQ25GLElBQU1DLDhCQUE4QkMsMEJBQTBCRix5QkFBeUJQO1FBRXZGLElBQUlRLDZCQUE2QjtZQUMvQixPQUFPLElBQUk7UUFDYixDQUFDO0lBQ0g7SUFFQU4s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
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YURlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBNZXRhcHJvb2ZTdGVwIGZyb20gXCIuLi9zdGVwL21ldGFwcm9vZlwiO1xuaW1wb3J0IE1ldGFwcm9vZkNvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbWV0YXByb29mXCI7XG5pbXBvcnQgdmVyaWZ5UXVhbGlmaWVkTWV0YXN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L21ldGFzdGF0ZW1lbnQvcXVhbGlmaWVkXCI7XG5pbXBvcnQgdmVyaWZ5VW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50IGZyb20gXCIuLi92ZXJpZnkvbWV0YXN0YXRlbWVudC91bnF1YWxpZmllZFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBNRVRBX1NVQlBST09GX1JVTEVfTkFNRSwgUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FLCBVTlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuLi9ydWxlTmFtZXNcIjtcblxuY29uc3QgbWV0YXN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRNZXRhc3RhdGVtZW50fHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudC9tZXRhc3RhdGVtZW50IVwiKSxcbiAgICAgIG1ldGFEZXJpdmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGFTdWJwcm9vZi9tZXRhRGVyaXZhdGlvbnxhYnJpZGdlZE1ldGFEZXJpdmF0aW9uIVwiKSwgIC8vL1xuICAgICAgbWV0YURlcml2YXRpb25DaGlsZE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL21ldGFEZXJpdmF0aW9ufGFicmlkZ2VkTWV0YURlcml2YXRpb24vKlwiKSxcbiAgICAgIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL21ldGFTdWJwcm9vZi91bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRcIilcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5TWV0YURlcml2YXRpb24obWV0YURlcml2YXRpb25Ob2RlLCBtZXRhcHJvb2ZDb250ZXh0KSB7XG4gIGxldCBtZXRhRGVyaXZhdGlvblZlcmlmaWVkO1xuXG4gIG1ldGFwcm9vZkNvbnRleHQuYmVnaW4obWV0YURlcml2YXRpb25Ob2RlKTtcblxuICBtZXRhcHJvb2ZDb250ZXh0LnNldERlcml2ZWQoKTtcblxuICBjb25zdCBtZXRhRGVyaXZhdGlvbkNoaWxkTm9kZXMgPSBtZXRhRGVyaXZhdGlvbkNoaWxkTm9kZXNRdWVyeShtZXRhRGVyaXZhdGlvbk5vZGUpO1xuXG4gIG1ldGFEZXJpdmF0aW9uVmVyaWZpZWQgPSBtZXRhRGVyaXZhdGlvbkNoaWxkTm9kZXMuZXZlcnkoKG1ldGFEZXJpdmF0aW9uQ2hpbGROb2RlKSA9PiB7ICAvLy9cbiAgICBjb25zdCBtZXRhRGVyaXZhdGlvbkNoaWxkVmVyaWZpZWQgPSB2ZXJpZnlNZXRhRGVyaXZhdGlvbkNoaWxkKG1ldGFEZXJpdmF0aW9uQ2hpbGROb2RlLCBtZXRhcHJvb2ZDb250ZXh0KTtcblxuICAgIGlmIChtZXRhRGVyaXZhdGlvbkNoaWxkVmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgbWV0YXByb29mQ29udGV4dC5yZXNldERlcml2ZWQoKTtcblxuICBtZXRhRGVyaXZhdGlvblZlcmlmaWVkID9cbiAgICBtZXRhcHJvb2ZDb250ZXh0LmNvbXBsZXRlKG1ldGFEZXJpdmF0aW9uTm9kZSkgOlxuICAgICAgbWV0YXByb29mQ29udGV4dC5oYWx0KG1ldGFEZXJpdmF0aW9uTm9kZSk7XG5cbiAgcmV0dXJuIG1ldGFEZXJpdmF0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeU1ldGFEZXJpdmF0aW9uQ2hpbGQobWV0YURlcml2YXRpb25DaGlsZE5vZGUsIG1ldGFwcm9vZkNvbnRleHQpIHtcbiAgbGV0IG1ldGFEZXJpdmF0aW9uQ2hpbGRWZXJpZmllZDtcblxuICBjb25zdCBydWxlTmFtZSA9IG1ldGFEZXJpdmF0aW9uQ2hpbGROb2RlLmdldFJ1bGVOYW1lKCk7XG5cbiAgc3dpdGNoIChydWxlTmFtZSkge1xuICAgIGNhc2UgTUVUQV9TVUJQUk9PRl9SVUxFX05BTUU6IHtcbiAgICAgIGNvbnN0IG1ldGFTdWJwcm9vZk5vZGUgPSBtZXRhRGVyaXZhdGlvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgbWV0YVN1YnByb29mVmVyaWZpZWQgPSB2ZXJpZnlNZXRhU3VicHJvb2YobWV0YVN1YnByb29mTm9kZSwgbWV0YXByb29mQ29udGV4dCk7XG5cbiAgICAgIGlmIChtZXRhU3VicHJvb2ZWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBtZXRhcHJvb2ZTdGVwID0gTWV0YXByb29mU3RlcC5mcm9tTWV0YVN1YnByb29mTm9kZShtZXRhU3VicHJvb2ZOb2RlKTtcblxuICAgICAgICBtZXRhcHJvb2ZDb250ZXh0LmFkZE1ldGFwcm9vZlN0ZXAobWV0YXByb29mU3RlcCk7XG5cbiAgICAgICAgbWV0YURlcml2YXRpb25DaGlsZFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2FzZSBRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgIGNvbnN0IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YURlcml2YXRpb25DaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgIHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVF1YWxpZmllZE1ldGFzdGF0ZW1lbnQocXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUsIG1ldGFwcm9vZkNvbnRleHQpO1xuXG4gICAgICBpZiAocXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICAgIG1ldGFwcm9vZlN0ZXAgPSBNZXRhcHJvb2ZTdGVwLmZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgICAgbWV0YXByb29mQ29udGV4dC5hZGRNZXRhcHJvb2ZTdGVwKG1ldGFwcm9vZlN0ZXApO1xuXG4gICAgICAgIG1ldGFEZXJpdmF0aW9uQ2hpbGRWZXJpZmllZCA9IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNhc2UgVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgIGNvbnN0IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhRGVyaXZhdGlvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXByb29mQ29udGV4dCk7XG5cbiAgICAgIGlmICh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICAgIG1ldGFwcm9vZlN0ZXAgPSBNZXRhcHJvb2ZTdGVwLmZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgICAgbWV0YXByb29mQ29udGV4dC5hZGRNZXRhcHJvb2ZTdGVwKG1ldGFwcm9vZlN0ZXApO1xuXG4gICAgICAgIG1ldGFEZXJpdmF0aW9uQ2hpbGRWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXRhRGVyaXZhdGlvbkNoaWxkVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeU1ldGFTdWJwcm9vZihtZXRhU3VicHJvb2ZOb2RlLCBtZXRhcHJvb2ZDb250ZXh0KSB7XG4gIGxldCBtZXRhU3VicHJvb2ZWZXJpZmllZCA9IGZhbHNlO1xuXG4gIG1ldGFwcm9vZkNvbnRleHQgPSBNZXRhcHJvb2ZDb250ZXh0LmZyb21NZXRhcHJvb2ZDb250ZXh0KG1ldGFwcm9vZkNvbnRleHQpOyAvLy9cblxuICBjb25zdCB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlcyA9IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGVzUXVlcnkobWV0YVN1YnByb29mTm9kZSksXG4gICAgICAgIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudHNWZXJpZmllZCA9IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGVzLmV2ZXJ5KCh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKSA9PiB7XG4gICAgICAgICAgY29uc3QgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXByb29mQ29udGV4dCk7XG5cbiAgICAgICAgICBpZiAodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgaWYgKHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudHNWZXJpZmllZCkge1xuICAgIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGVzLmZvckVhY2goKHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgIG1ldGFwcm9vZlN0ZXAgPSBNZXRhcHJvb2ZTdGVwLmZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIG1ldGFwcm9vZkNvbnRleHQuYWRkTWV0YXByb29mU3RlcChtZXRhcHJvb2ZTdGVwKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IG1ldGFEZXJpdmF0aW9uTm9kZSA9IG1ldGFEZXJpdmF0aW9uTm9kZVF1ZXJ5KG1ldGFTdWJwcm9vZk5vZGUpLFxuICAgICAgICAgIG1ldGFEZXJpdmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlNZXRhRGVyaXZhdGlvbihtZXRhRGVyaXZhdGlvbk5vZGUsIG1ldGFwcm9vZkNvbnRleHQpO1xuXG4gICAgaWYgKG1ldGFEZXJpdmF0aW9uVmVyaWZpZWQpIHtcbiAgICAgIG1ldGFTdWJwcm9vZlZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWV0YVN1YnByb29mVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5TWV0YURlcml2YXRpb24iLCJtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YURlcml2YXRpb25Ob2RlUXVlcnkiLCJtZXRhRGVyaXZhdGlvbkNoaWxkTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5IiwibWV0YURlcml2YXRpb25Ob2RlIiwibWV0YXByb29mQ29udGV4dCIsIm1ldGFEZXJpdmF0aW9uVmVyaWZpZWQiLCJiZWdpbiIsInNldERlcml2ZWQiLCJtZXRhRGVyaXZhdGlvbkNoaWxkTm9kZXMiLCJldmVyeSIsIm1ldGFEZXJpdmF0aW9uQ2hpbGROb2RlIiwibWV0YURlcml2YXRpb25DaGlsZFZlcmlmaWVkIiwidmVyaWZ5TWV0YURlcml2YXRpb25DaGlsZCIsInJlc2V0RGVyaXZlZCIsImNvbXBsZXRlIiwiaGFsdCIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJNRVRBX1NVQlBST09GX1JVTEVfTkFNRSIsIm1ldGFTdWJwcm9vZk5vZGUiLCJtZXRhU3VicHJvb2ZWZXJpZmllZCIsInZlcmlmeU1ldGFTdWJwcm9vZiIsIm1ldGFwcm9vZlN0ZXAiLCJNZXRhcHJvb2ZTdGVwIiwiZnJvbU1ldGFTdWJwcm9vZk5vZGUiLCJhZGRNZXRhcHJvb2ZTdGVwIiwiUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwicXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUiLCJxdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlRdWFsaWZpZWRNZXRhc3RhdGVtZW50IiwibWV0YXN0YXRlbWVudE5vZGUiLCJmcm9tTWV0YXN0YXRlbWVudE5vZGUiLCJVTlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUiLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCIsIk1ldGFwcm9vZkNvbnRleHQiLCJmcm9tTWV0YXByb29mQ29udGV4dCIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGVzIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50c1ZlcmlmaWVkIiwiZm9yRWFjaCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZUE7OztlQUF3QkE7Ozs4REFiRTsrREFDRzs4REFDWTtnRUFDRTtxQkFFTDt5QkFDMEU7Ozs7OztBQUVoSCxJQUFNQyx5QkFBeUJDLElBQUFBLGdCQUFTLEVBQUMsb0VBQ25DQywwQkFBMEJELElBQUFBLGdCQUFTLEVBQUMseURBQ3BDRSxnQ0FBZ0NDLElBQUFBLGlCQUFVLEVBQUMsNkNBQzNDQyxxQ0FBcUNELElBQUFBLGlCQUFVLEVBQUM7QUFFdkMsU0FBU0wscUJB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