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
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return MetaSubstitution;
9
9
  }
10
10
  });
11
- var _metastatement = require("./utilities/metastatement");
11
+ var _node = require("./utilities/node");
12
12
  function _classCallCheck(instance, Constructor) {
13
13
  if (!(instance instanceof Constructor)) {
14
14
  throw new TypeError("Cannot call a class as a function");
@@ -51,14 +51,14 @@ var MetaSubstitution = /*#__PURE__*/ function() {
51
51
  key: "matchNodes",
52
52
  value: function matchNodes(nodes) {
53
53
  var matches;
54
- var metaSubstitutionNodes = this.nodes, metaSubstitutionNonTerminalNodeMatches = matchMetaSubstitutionNodes(metaSubstitutionNodes, nodes);
55
- matches = metaSubstitutionNonTerminalNodeMatches; ///
54
+ var nodesA = this.nodes, nodesB = nodes, metaSubstitutionNodesMatch = (0, _node.matchNodes)(nodesA, nodesB);
55
+ matches = metaSubstitutionNodesMatch; ///
56
56
  if (!matches) {
57
- var childNodes = nodes, bracketedMetastatementChildNodeMatches = (0, _metastatement.matchBracketedMetastatementChildNode)(childNodes, function(bracketedMetastatementChildNode) {
58
- var nonTerminalNode = bracketedMetastatementChildNode, childNodes = nonTerminalNode.getChildNodes(), _$nodes = childNodes, metaAssertionNonTerminalNodeMatches = matchMetaSubstitutionNodes(metaSubstitutionNodes, _$nodes), bracketedMetastatementChildNodeMatches = metaAssertionNonTerminalNodeMatches; ///
59
- return bracketedMetastatementChildNodeMatches;
60
- });
61
- matches = bracketedMetastatementChildNodeMatches; ///
57
+ var childNodes = nodes, bracketedChildNode = (0, _node.bracketedChildNodeFromChildNodes)(childNodes);
58
+ if (bracketedChildNode !== null) {
59
+ var nonTerminalNode = bracketedChildNode, childNodes1 = nonTerminalNode.getChildNodes(), nodesB1 = childNodes1, nodesMatch = (0, _node.matchNodes)(nodesA, nodesB1);
60
+ matches = nodesMatch; ///
61
+ }
62
62
  }
63
63
  return matches;
64
64
  }
@@ -67,9 +67,9 @@ var MetaSubstitution = /*#__PURE__*/ function() {
67
67
  {
68
68
  key: "fromMetavariableNameAndNodes",
69
69
  value: function fromMetavariableNameAndNodes(metavariableName, nodes) {
70
- var bracketedMetastatementChildNode = (0, _metastatement.bracketedMetastatementChildNodeFromChildNodes)(nodes);
71
- if (bracketedMetastatementChildNode !== null) {
72
- var nonTerminalNode = bracketedMetastatementChildNode, childNodes = nonTerminalNode.getChildNodes();
70
+ var bracketedChildNode = (0, _node.bracketedChildNodeFromChildNodes)(nodes);
71
+ if (bracketedChildNode !== null) {
72
+ var nonTerminalNode = bracketedChildNode, childNodes = nonTerminalNode.getChildNodes();
73
73
  nodes = childNodes; ///
74
74
  }
75
75
  var metaSubstitution = new MetaSubstitution(metavariableName, nodes);
@@ -79,45 +79,5 @@ var MetaSubstitution = /*#__PURE__*/ function() {
79
79
  ]);
80
80
  return MetaSubstitution;
81
81
  }();
82
- function matchMetaSubstitutionNode(metaSubstitutionNode, node) {
83
- var metaSubstitutionNodeMatches = false;
84
- var nodeTerminalNode = node.isTerminalNode(), ruleNodeTerminalNode = metaSubstitutionNode.isTerminalNode();
85
- if (nodeTerminalNode === ruleNodeTerminalNode) {
86
- if (nodeTerminalNode) {
87
- var terminalNode = node, metaSubstitutionTerminalNode = metaSubstitutionNode, metaSubstitutionTerminalNodeMatches = matchMetaSubstitutionTerminalNode(metaSubstitutionTerminalNode, terminalNode);
88
- metaSubstitutionNodeMatches = metaSubstitutionTerminalNodeMatches; ///
89
- } else {
90
- var nonTerminalNode = node, metaSubstitutionNonTerminalNode = metaSubstitutionNode, metaSubstitutionNonTerminalNodeMatches = matchMetaSubstitutionNonTerminalNode(metaSubstitutionNonTerminalNode, nonTerminalNode);
91
- metaSubstitutionNodeMatches = metaSubstitutionNonTerminalNodeMatches; ///
92
- }
93
- }
94
- return metaSubstitutionNodeMatches;
95
- }
96
- function matchMetaSubstitutionNodes(metaSubstitutionNodes, nodes) {
97
- var metaSubstitutionNodesMatches = false;
98
- var nodesLength = nodes.length, metaSubstitutionNodesLength = metaSubstitutionNodes.length;
99
- if (nodesLength === metaSubstitutionNodesLength) {
100
- metaSubstitutionNodesMatches = nodes.every(function(node, index) {
101
- var metaSubstitutionNode = metaSubstitutionNodes[index], metaSubstitutionNodeMatches = matchMetaSubstitutionNode(metaSubstitutionNode, node);
102
- if (metaSubstitutionNodeMatches) {
103
- return true;
104
- }
105
- });
106
- }
107
- return metaSubstitutionNodesMatches;
108
- }
109
- function matchMetaSubstitutionTerminalNode(metaSubstitutionTerminalNode, terminalNode) {
110
- var matches = metaSubstitutionTerminalNode.match(terminalNode), metaSubstitutionTerminalNodeMatches = matches; ///
111
- return metaSubstitutionTerminalNodeMatches;
112
- }
113
- function matchMetaSubstitutionNonTerminalNode(metaSubstitutionNonTerminalNode, nonTerminalNode) {
114
- var metaSubstitutionNonTerminalNodeMatches = false;
115
- var ruleName = nonTerminalNode.getRuleName(), metaSubstitutionRuleName = metaSubstitutionNonTerminalNode.getRuleName(); ///
116
- if (ruleName === metaSubstitutionRuleName) {
117
- var childNodes = nonTerminalNode.getChildNodes(), metaSubstitutionChildNodes = metaSubstitutionNonTerminalNode.getChildNodes(), nodes = childNodes, metaSubstitutionNodes = metaSubstitutionChildNodes, metaSubstitutionNodesMatches = matchMetaSubstitutionNodes(metaSubstitutionNodes, nodes);
118
- metaSubstitutionNonTerminalNodeMatches = metaSubstitutionNodesMatches; ///
119
- }
120
- return metaSubstitutionNonTerminalNodeMatches;
121
- }
122
82
 
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhU3Vic3RpdHV0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBtYXRjaEJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUsIGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVGcm9tQ2hpbGROb2RlcyB9IGZyb20gXCIuL3V0aWxpdGllcy9tZXRhc3RhdGVtZW50XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1ldGFTdWJzdGl0dXRpb24ge1xuICBjb25zdHJ1Y3RvcihtZXRhdmFyaWFibGVOYW1lLCBub2Rlcykge1xuICAgIHRoaXMubWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5hbWU7XG4gICAgdGhpcy5ub2RlcyA9IG5vZGVzO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGVOYW1lO1xuICB9XG5cbiAgZ2V0Tm9kZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZXM7XG4gIH1cblxuICBtYXRjaE5vZGVzKG5vZGVzKSB7XG4gICAgbGV0IG1hdGNoZXM7XG5cbiAgICBjb25zdCBtZXRhU3Vic3RpdHV0aW9uTm9kZXMgPSB0aGlzLm5vZGVzLCAgLy8vXG4gICAgICAgICAgbWV0YVN1YnN0aXR1dGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaE1ldGFTdWJzdGl0dXRpb25Ob2RlcyhtZXRhU3Vic3RpdHV0aW9uTm9kZXMsIG5vZGVzKTtcblxuICAgIG1hdGNoZXMgPSBtZXRhU3Vic3RpdHV0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuXG4gICAgaWYgKCFtYXRjaGVzKSB7XG4gICAgICBjb25zdCBjaGlsZE5vZGVzID0gbm9kZXMsIC8vL1xuICAgICAgICAgICAgYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZU1hdGNoZXMgPSBtYXRjaEJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUoY2hpbGROb2RlcywgKGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgICAgICAgbWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaE1ldGFTdWJzdGl0dXRpb25Ob2RlcyhtZXRhU3Vic3RpdHV0aW9uTm9kZXMsIG5vZGVzKSxcbiAgICAgICAgICAgICAgICAgICAgYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZU1hdGNoZXMgPSBtZXRhQXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlczsgLy8vXG5cbiAgICAgICAgICAgICAgcmV0dXJuIGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVNYXRjaGVzO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgIG1hdGNoZXMgPSBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlTWF0Y2hlczsgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIG1hdGNoZXM7XG4gIH1cblxuICBzdGF0aWMgZnJvbU1ldGF2YXJpYWJsZU5hbWVBbmROb2RlcyhtZXRhdmFyaWFibGVOYW1lLCBub2Rlcykge1xuICAgIGNvbnN0IGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUgPSBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlRnJvbUNoaWxkTm9kZXMobm9kZXMpO1xuXG4gICAgaWYgKGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpO1xuXG4gICAgICBub2RlcyA9IGNoaWxkTm9kZXM7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGFTdWJzdGl0dXRpb24gPSBuZXcgTWV0YVN1YnN0aXR1dGlvbihtZXRhdmFyaWFibGVOYW1lLCBub2Rlcyk7XG5cbiAgICByZXR1cm4gbWV0YVN1YnN0aXR1dGlvbjtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaE1ldGFTdWJzdGl0dXRpb25Ob2RlKG1ldGFTdWJzdGl0dXRpb25Ob2RlLCBub2RlKSB7XG4gIGxldCBtZXRhU3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICBydWxlTm9kZVRlcm1pbmFsTm9kZSA9IG1ldGFTdWJzdGl0dXRpb25Ob2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgaWYgKG5vZGVUZXJtaW5hbE5vZGUgPT09IHJ1bGVOb2RlVGVybWluYWxOb2RlKSB7XG4gICAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICAgIG1ldGFTdWJzdGl0dXRpb25UZXJtaW5hbE5vZGUgPSBtZXRhU3Vic3RpdHV0aW9uTm9kZSwgIC8vL1xuICAgICAgICAgICAgbWV0YVN1YnN0aXR1dGlvblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaE1ldGFTdWJzdGl0dXRpb25UZXJtaW5hbE5vZGUobWV0YVN1YnN0aXR1dGlvblRlcm1pbmFsTm9kZSwgdGVybWluYWxOb2RlKTtcblxuICAgICAgbWV0YVN1YnN0aXR1dGlvbk5vZGVNYXRjaGVzID0gbWV0YVN1YnN0aXR1dGlvblRlcm1pbmFsTm9kZU1hdGNoZXM7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZSwgLy8vXG4gICAgICAgICAgICBtZXRhU3Vic3RpdHV0aW9uTm9uVGVybWluYWxOb2RlID0gbWV0YVN1YnN0aXR1dGlvbk5vZGUsICAvLy9cbiAgICAgICAgICAgIG1ldGFTdWJzdGl0dXRpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hNZXRhU3Vic3RpdHV0aW9uTm9uVGVybWluYWxOb2RlKG1ldGFTdWJzdGl0dXRpb25Ob25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSk7XG5cbiAgICAgIG1ldGFTdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcyA9IG1ldGFTdWJzdGl0dXRpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWV0YVN1YnN0aXR1dGlvbk5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaE1ldGFTdWJzdGl0dXRpb25Ob2RlcyhtZXRhU3Vic3RpdHV0aW9uTm9kZXMsIG5vZGVzKSB7XG4gIGxldCBtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3Qgbm9kZXNMZW5ndGggPSBub2Rlcy5sZW5ndGgsXG4gICAgICAgIG1ldGFTdWJzdGl0dXRpb25Ob2Rlc0xlbmd0aCA9IG1ldGFTdWJzdGl0dXRpb25Ob2Rlcy5sZW5ndGg7XG5cbiAgaWYgKG5vZGVzTGVuZ3RoID09PSBtZXRhU3Vic3RpdHV0aW9uTm9kZXNMZW5ndGgpIHtcbiAgICBtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaGVzID0gbm9kZXMuZXZlcnkoKG5vZGUsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBtZXRhU3Vic3RpdHV0aW9uTm9kZSA9IG1ldGFTdWJzdGl0dXRpb25Ob2Rlc1tpbmRleF0sXG4gICAgICAgICAgICBtZXRhU3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMgPSBtYXRjaE1ldGFTdWJzdGl0dXRpb25Ob2RlKG1ldGFTdWJzdGl0dXRpb25Ob2RlLCBub2RlKTtcblxuICAgICAgaWYgKG1ldGFTdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIG1ldGFTdWJzdGl0dXRpb25Ob2Rlc01hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoTWV0YVN1YnN0aXR1dGlvblRlcm1pbmFsTm9kZShtZXRhU3Vic3RpdHV0aW9uVGVybWluYWxOb2RlLCB0ZXJtaW5hbE5vZGUpIHtcbiAgY29uc3QgbWF0Y2hlcyA9IG1ldGFTdWJzdGl0dXRpb25UZXJtaW5hbE5vZGUubWF0Y2godGVybWluYWxOb2RlKSxcbiAgICAgICAgbWV0YVN1YnN0aXR1dGlvblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaGVzOyAgLy8vXG5cbiAgcmV0dXJuIG1ldGFTdWJzdGl0dXRpb25UZXJtaW5hbE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaE1ldGFTdWJzdGl0dXRpb25Ob25UZXJtaW5hbE5vZGUobWV0YVN1YnN0aXR1dGlvbk5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlKSB7XG4gIGxldCBtZXRhU3Vic3RpdHV0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksXG4gICAgICAgIG1ldGFTdWJzdGl0dXRpb25SdWxlTmFtZSA9IG1ldGFTdWJzdGl0dXRpb25Ob25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKTsgLy8vXG5cbiAgaWYgKHJ1bGVOYW1lID09PSBtZXRhU3Vic3RpdHV0aW9uUnVsZU5hbWUpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBtZXRhU3Vic3RpdHV0aW9uQ2hpbGROb2RlcyA9IG1ldGFTdWJzdGl0dXRpb25Ob25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIG5vZGVzID0gY2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgbWV0YVN1YnN0aXR1dGlvbk5vZGVzID0gbWV0YVN1YnN0aXR1dGlvbkNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIG1ldGFTdWJzdGl0dXRpb25Ob2Rlc01hdGNoZXMgPSBtYXRjaE1ldGFTdWJzdGl0dXRpb25Ob2RlcyhtZXRhU3Vic3RpdHV0aW9uTm9kZXMsIG5vZGVzKTtcblxuICAgIG1ldGFTdWJzdGl0dXRpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWV0YVN1YnN0aXR1dGlvbk5vZGVzTWF0Y2hlczsgLy8vXG4gIH1cblxuICByZXR1cm4gbWV0YVN1YnN0aXR1dGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG4iXSwibmFtZXMiOlsiTWV0YVN1YnN0aXR1dGlvbiIsIm1ldGF2YXJpYWJsZU5hbWUiLCJub2RlcyIsImdldE1ldGF2YXJpYWJsZU5hbWUiLCJnZXROb2RlcyIsIm1hdGNoTm9kZXMiLCJtYXRjaGVzIiwibWV0YVN1YnN0aXR1dGlvbk5vZGVzIiwibWV0YVN1YnN0aXR1dGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMiLCJtYXRjaE1ldGFTdWJzdGl0dXRpb25Ob2RlcyIsImNoaWxkTm9kZXMiLCJicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlTWF0Y2hlcyIsIm1hdGNoQnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZSIsImJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJnZXRDaGlsZE5vZGVzIiwibWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMiLCJmcm9tTWV0YXZhcmlhYmxlTmFtZUFuZE5vZGVzIiwiYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZUZyb21DaGlsZE5vZGVzIiwibWV0YVN1YnN0aXR1dGlvbiIsIm1hdGNoTWV0YVN1YnN0aXR1dGlvbk5vZGUiLCJtZXRhU3Vic3RpdHV0aW9uTm9kZSIsIm5vZGUiLCJtZXRhU3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJydWxlTm9kZVRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsIm1ldGFTdWJzdGl0dXRpb25UZXJtaW5hbE5vZGUiLCJtZXRhU3Vic3RpdHV0aW9uVGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoTWV0YVN1YnN0aXR1dGlvblRlcm1pbmFsTm9kZSIsIm1ldGFTdWJzdGl0dXRpb25Ob25UZXJtaW5hbE5vZGUiLCJtYXRjaE1ldGFTdWJzdGl0dXRpb25Ob25UZXJtaW5hbE5vZGUiLCJtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaGVzIiwibm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJtZXRhU3Vic3RpdHV0aW9uTm9kZXNMZW5ndGgiLCJldmVyeSIsImluZGV4IiwibWF0Y2giLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwibWV0YVN1YnN0aXR1dGlvblJ1bGVOYW1lIiwibWV0YVN1YnN0aXR1dGlvbkNoaWxkTm9kZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBSXFCQTs7OzZCQUYrRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFckYsSUFBQSxBQUFNQSxpQ0F3RGxCLEFBeERZO2FBQU1BLGlCQUNQQyxnQkFBZ0IsRUFBRUMsS0FBSzs4QkFEaEJGO1FBRWpCLElBQUksQ0FBQ0MsZ0JBQWdCLEdBQUdBO1FBQ3hCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTs7aUJBSElGOztZQU1uQkcsS0FBQUE7bUJBQUFBLFNBQUFBLHNCQUFzQjtnQkFDcEIsT0FBTyxJQUFJLENBQUNGLGdCQUFnQjtZQUM5Qjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxXQUFXO2dCQUNULE9BQU8sSUFBSSxDQUFDRixLQUFLO1lBQ25COzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLFdBQVdILEtBQUssRUFBRTtnQkFDaEIsSUFBSUk7Z0JBRUos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
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhU3Vic3RpdHV0aW9uLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBtYXRjaE5vZGVzLCBicmFja2V0ZWRDaGlsZE5vZGVGcm9tQ2hpbGROb2RlcyB9IGZyb20gXCIuL3V0aWxpdGllcy9ub2RlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1ldGFTdWJzdGl0dXRpb24ge1xuICBjb25zdHJ1Y3RvcihtZXRhdmFyaWFibGVOYW1lLCBub2Rlcykge1xuICAgIHRoaXMubWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5hbWU7XG4gICAgdGhpcy5ub2RlcyA9IG5vZGVzO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGVOYW1lO1xuICB9XG5cbiAgZ2V0Tm9kZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZXM7XG4gIH1cblxuICBtYXRjaE5vZGVzKG5vZGVzKSB7XG4gICAgbGV0IG1hdGNoZXM7XG5cbiAgICBjb25zdCBub2Rlc0EgPSB0aGlzLm5vZGVzLCAgLy8vXG4gICAgICAgICAgbm9kZXNCID0gbm9kZXMsXG4gICAgICAgICAgbWV0YVN1YnN0aXR1dGlvbk5vZGVzTWF0Y2ggPSBtYXRjaE5vZGVzKG5vZGVzQSwgbm9kZXNCKTtcblxuICAgIG1hdGNoZXMgPSBtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaDsgIC8vL1xuXG4gICAgaWYgKCFtYXRjaGVzKSB7XG4gICAgICBjb25zdCBjaGlsZE5vZGVzID0gbm9kZXMsIC8vL1xuICAgICAgICAgICAgYnJhY2tldGVkQ2hpbGROb2RlID0gYnJhY2tldGVkQ2hpbGROb2RlRnJvbUNoaWxkTm9kZXMoY2hpbGROb2Rlcyk7XG5cbiAgICAgIGlmIChicmFja2V0ZWRDaGlsZE5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gYnJhY2tldGVkQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICBub2Rlc0IgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgbm9kZXNNYXRjaCA9IG1hdGNoTm9kZXMobm9kZXNBLCBub2Rlc0IpO1xuXG4gICAgICAgIG1hdGNoZXMgPSBub2Rlc01hdGNoOyAvLy9cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2hlcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTWV0YXZhcmlhYmxlTmFtZUFuZE5vZGVzKG1ldGF2YXJpYWJsZU5hbWUsIG5vZGVzKSB7XG4gICAgY29uc3QgYnJhY2tldGVkQ2hpbGROb2RlID0gYnJhY2tldGVkQ2hpbGROb2RlRnJvbUNoaWxkTm9kZXMobm9kZXMpO1xuXG4gICAgaWYgKGJyYWNrZXRlZENoaWxkTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gYnJhY2tldGVkQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKTtcblxuICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBtZXRhU3Vic3RpdHV0aW9uID0gbmV3IE1ldGFTdWJzdGl0dXRpb24obWV0YXZhcmlhYmxlTmFtZSwgbm9kZXMpO1xuXG4gICAgcmV0dXJuIG1ldGFTdWJzdGl0dXRpb247XG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiTWV0YVN1YnN0aXR1dGlvbiIsIm1ldGF2YXJpYWJsZU5hbWUiLCJub2RlcyIsImdldE1ldGF2YXJpYWJsZU5hbWUiLCJnZXROb2RlcyIsIm1hdGNoTm9kZXMiLCJtYXRjaGVzIiwibm9kZXNBIiwibm9kZXNCIiwibWV0YVN1YnN0aXR1dGlvbk5vZGVzTWF0Y2giLCJjaGlsZE5vZGVzIiwiYnJhY2tldGVkQ2hpbGROb2RlIiwiYnJhY2tldGVkQ2hpbGROb2RlRnJvbUNoaWxkTm9kZXMiLCJub25UZXJtaW5hbE5vZGUiLCJnZXRDaGlsZE5vZGVzIiwibm9kZXNNYXRjaCIsImZyb21NZXRhdmFyaWFibGVOYW1lQW5kTm9kZXMiLCJtZXRhU3Vic3RpdHV0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQUlxQkE7OztvQkFGd0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTlDLElBQUEsQUFBTUEsaUNBQU47YUFBTUEsaUJBQ1BDLGdCQUFnQixFQUFFQyxLQUFLOzhCQURoQkY7UUFFakIsSUFBSSxDQUFDQyxnQkFBZ0IsR0FBR0E7UUFDeEIsSUFBSSxDQUFDQyxLQUFLLEdBQUdBOztpQkFISUY7O1lBTW5CRyxLQUFBQTttQkFBQUEsU0FBQUEsc0JBQXNCO2dCQUNwQixPQUFPLElBQUksQ0FBQ0YsZ0JBQWdCO1lBQzlCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLFdBQVc7Z0JBQ1QsT0FBTyxJQUFJLENBQUNGLEtBQUs7WUFDbkI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsV0FBV0gsS0FBSyxFQUFFO2dCQUNoQixJQUFJSTtnQkFFSixJQUFNQyxTQUFTLElBQUksQ0FBQ0wsS0FBSyxFQUNuQk0sU0FBU04sT0FDVE8sNkJBQTZCSixJQUFBQSxnQkFBVSxFQUFDRSxRQUFRQztnQkFFdERGLFVBQVVHLDRCQUE2QixHQUFHO2dCQUUxQyxJQUFJLENBQUNILFNBQVM7b0JBQ1osSUFBTUksYUFBYVIsT0FDYlMscUJBQXFCQyxJQUFBQSxzQ0FBZ0MsRUFBQ0Y7b0JBRTVELElBQUlDLHVCQUF1QixJQUFJLEVBQUU7d0JBQy9CLElBQU1FLGtCQUFrQkYsb0JBQ2xCRCxjQUFhRyxnQkFBZ0JDLGFBQWEsSUFDMUNOLFVBQVNFLGFBQ1RLLGFBQWFWLElBQUFBLGdCQUFVLEVBQUNFLFFBQVFDO3dCQUV0Q0YsVUFBVVMsWUFBWSxHQUFHO29CQUMzQixDQUFDO2dCQUNILENBQUM7Z0JBRUQsT0FBT1Q7WUFDVDs7OztZQUVPVSxLQUFBQTttQkFBUCxTQUFPQSw2QkFBNkJmLGdCQUFnQixFQUFFQyxLQUFLLEVBQUU7Z0JBQzNELElBQU1TLHFCQUFxQkMsSUFBQUEsc0NBQWdDLEVBQUNWO2dCQUU1RCxJQUFJUyx1QkFBdUIsSUFBSSxFQUFFO29CQUMvQixJQUFNRSxrQkFBa0JGLG9CQUNsQkQsYUFBYUcsZ0JBQWdCQyxhQUFhO29CQUVoRFosUUFBUVEsWUFBWSxHQUFHO2dCQUN6QixDQUFDO2dCQUVELElBQU1PLG1CQUFtQixJQWxEUmpCLGlCQWtENkJDLGtCQUFrQkM7Z0JBRWhFLE9BQU9lO1lBQ1Q7OztXQXJEbUJqQiJ9
package/lib/rule.js CHANGED
@@ -85,9 +85,14 @@ var Rule = /*#__PURE__*/ function() {
85
85
  var metaSubstitutions = [], conclusionMatches = matchConclusion(this.conclusion, metastatementNode, metaSubstitutions);
86
86
  metastatementNatches = conclusionMatches; ///
87
87
  } else {
88
- var metaAssertions = metaproofContext.getMetaAssertions();
89
- metastatementNatches = (0, _array.someSubArray)(metaAssertions, premisesLength, function(metaAssertions) {
90
- var premisesMatchConclusion = matchPremisesAndConclusion(_this.premises, _this.conclusion, metaAssertions, metastatementNode);
88
+ var metaproofSteps = metaproofContext.getMetaproofSteps();
89
+ metastatementNatches = (0, _array.someSubArray)(metaproofSteps, premisesLength, function(metaproofSteps) {
90
+ var premisesMatchConclusion = false;
91
+ var metaSubstitutions = [], premisesMatches = matchPremises(_this.premises, metaproofSteps, metaSubstitutions);
92
+ if (premisesMatches) {
93
+ var conclusionMatches = matchConclusion(_this.conclusion, metastatementNode, metaSubstitutions);
94
+ premisesMatchConclusion = conclusionMatches; ///
95
+ }
91
96
  if (premisesMatchConclusion) {
92
97
  return true;
93
98
  }
@@ -149,9 +154,9 @@ var Rule = /*#__PURE__*/ function() {
149
154
  ]);
150
155
  return Rule;
151
156
  }();
152
- function matchPremise(premise, metaAssertions, metaSubstitutions) {
153
- var metaAssertion = (0, _array.prune)(metaAssertions, function(metaAssertion) {
154
- var metaSubproofNode = metaAssertion.getMetaSubproofNode(), metastatementNode = metaAssertion.getMetastatementNode();
157
+ function matchPremise(premise, metaproofSteps, metaSubstitutions) {
158
+ var metaproofStep = (0, _array.prune)(metaproofSteps, function(metaproofStep) {
159
+ var metaSubproofNode = metaproofStep.getMetaSubproofNode(), metastatementNode = metaproofStep.getMetastatementNode();
155
160
  if (metaSubproofNode !== null) {
156
161
  var metaSubProofMatches = premise.matchMetaSubproofNode(metaSubproofNode, metaSubstitutions);
157
162
  if (!metaSubProofMatches) {
@@ -165,12 +170,12 @@ function matchPremise(premise, metaAssertions, metaSubstitutions) {
165
170
  }
166
171
  }
167
172
  }) || null;
168
- var premiseMatches = metaAssertion !== null;
173
+ var premiseMatches = metaproofStep !== null;
169
174
  return premiseMatches;
170
175
  }
171
- function matchPremises(premise, metaAssertions, metaSubstitutions) {
176
+ function matchPremises(premise, metaproofSteps, metaSubstitutions) {
172
177
  var premisesMatches = premise.every(function(premise) {
173
- var premiseMatches = matchPremise(premise, metaAssertions, metaSubstitutions);
178
+ var premiseMatches = matchPremise(premise, metaproofSteps, metaSubstitutions);
174
179
  if (premiseMatches) {
175
180
  return true;
176
181
  }
@@ -181,14 +186,5 @@ function matchConclusion(conclusion, metastatementNode, metaSubstitutions) {
181
186
  var nonTerminalNodeMatches = conclusion.matchMetastatementNode(metastatementNode, metaSubstitutions), conclusionMatches = nonTerminalNodeMatches; ///
182
187
  return conclusionMatches;
183
188
  }
184
- function matchPremisesAndConclusion(premises, conclusion, metaAssertions, metastatementNode) {
185
- var premisesMatchConclusion = false;
186
- var metaSubstitutions = [], premisesMatches = matchPremises(premises, metaAssertions, metaSubstitutions);
187
- if (premisesMatches) {
188
- var conclusionMatches = matchConclusion(conclusion, metastatementNode, metaSubstitutions);
189
- premisesMatchConclusion = conclusionMatches; ///
190
- }
191
- return premisesMatchConclusion;
192
- }
193
189
 
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTGFiZWwgZnJvbSBcIi4vbGFiZWxcIjtcbmltcG9ydCBQcmVtaXNlIGZyb20gXCIuL3ByZW1pc2VcIjtcbmltcG9ydCBDb25jbHVzaW9uIGZyb20gXCIuL2NvbmNsdXNpb25cIjtcblxuaW1wb3J0IHsgcHJ1bmUgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IFJVTEVfS0lORCB9IGZyb20gXCIuL2tpbmRzXCI7XG5pbXBvcnQgeyBzb21lU3ViQXJyYXkgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUnVsZSB7XG4gIGNvbnN0cnVjdG9yKGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24pIHtcbiAgICB0aGlzLmxhYmVscyA9IGxhYmVscztcbiAgICB0aGlzLnByZW1pc2VzID0gcHJlbWlzZXM7XG4gICAgdGhpcy5jb25jbHVzaW9uID0gY29uY2x1c2lvbjtcbiAgfVxuXG4gIGdldExhYmVscygpIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbHM7XG4gIH1cblxuICBnZXRQcmVtaXNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVtaXNlcztcbiAgfVxuXG4gIGdldENvbmNsdXNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uY2x1c2lvbjtcbiAgfVxuXG4gIG1hdGNoTGFiZWxOYW1lKGxhYmVsTmFtZSkge1xuICAgIGNvbnN0IG1hdGNoZXNMYWJlbE5hbWUgPSB0aGlzLmxhYmVscy5zb21lKChsYWJlbCkgPT4ge1xuICAgICAgY29uc3QgbmFtZSA9IGxhYmVsTmFtZSwgLy8vXG4gICAgICAgICAgICBsYWJlbE1hdGNoZXNOYW1lID0gbGFiZWwubWF0Y2hOYW1lKG5hbWUpO1xuXG4gICAgICBpZiAobGFiZWxNYXRjaGVzTmFtZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBtYXRjaGVzTGFiZWxOYW1lO1xuICB9XG5cbiAgbWF0Y2hNZXRhc3RhdGVtZW50KG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhcHJvb2ZDb250ZXh0KSB7XG4gICAgbGV0IG1ldGFzdGF0ZW1lbnROYXRjaGVzO1xuXG4gICAgY29uc3QgcHJlbWlzZXNMZW5ndGggPSB0aGlzLnByZW1pc2VzLmxlbmd0aDtcblxuICAgIGlmIChwcmVtaXNlc0xlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgbWV0YVN1YnN0aXR1dGlvbnMgPSBbXSxcbiAgICAgICAgICAgIGNvbmNsdXNpb25NYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uKHRoaXMuY29uY2x1c2lvbiwgbWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgbWV0YXN0YXRlbWVudE5hdGNoZXMgPSBjb25jbHVzaW9uTWF0Y2hlczsgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1ldGFBc3NlcnRpb25zID0gbWV0YXByb29mQ29udGV4dC5nZXRNZXRhQXNzZXJ0aW9ucygpO1xuXG4gICAgICBtZXRhc3RhdGVtZW50TmF0Y2hlcyA9IHNvbWVTdWJBcnJheShtZXRhQXNzZXJ0aW9ucywgcHJlbWlzZXNMZW5ndGgsIChtZXRhQXNzZXJ0aW9ucykgPT4ge1xuICAgICAgICBjb25zdCBwcmVtaXNlc01hdGNoQ29uY2x1c2lvbiA9IG1hdGNoUHJlbWlzZXNBbmRDb25jbHVzaW9uKHRoaXMucHJlbWlzZXMsIHRoaXMuY29uY2x1c2lvbiwgbWV0YUFzc2VydGlvbnMsIG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBpZiAocHJlbWlzZXNNYXRjaENvbmNsdXNpb24pIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ldGFzdGF0ZW1lbnROYXRjaGVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGxhYmVsc0pTT04gPSB0aGlzLmxhYmVscy5tYXAoKGxhYmVsKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYWJlbEpTT04gPSBsYWJlbC50b0pTT04oKTtcblxuICAgICAgICAgICAgcmV0dXJuIGxhYmVsSlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBwcmVtaXNlc0pTT04gPSB0aGlzLnByZW1pc2VzLm1hcCgocHJlbWlzZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJlbWlzZUpTT04gPSBwcmVtaXNlLnRvSlNPTigpO1xuXG4gICAgICAgICAgICByZXR1cm4gcHJlbWlzZUpTT047XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY29uY2x1c2lvbkpTT04gPSB0aGlzLmNvbmNsdXNpb24udG9KU09OKCksXG4gICAgICAgICAga2luZCA9IFJVTEVfS0lORCxcbiAgICAgICAgICBsYWJlbHMgPSBsYWJlbHNKU09OLCAgLy8vXG4gICAgICAgICAgcHJlbWlzZXMgPSBwcmVtaXNlc0pTT04sICAvLy9cbiAgICAgICAgICBjb25jbHVzaW9uID0gY29uY2x1c2lvbkpTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAga2luZCxcbiAgICAgICAgICAgIGxhYmVscyxcbiAgICAgICAgICAgIHByZW1pc2VzLFxuICAgICAgICAgICAgY29uY2x1c2lvblxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCByZWxlYXNlQ29udGV4dCkge1xuICAgIGxldCBydWxlO1xuXG4gICAgbGV0IHsgbGFiZWxzIH0gPSBqc29uO1xuXG4gICAgY29uc3QgbGFiZWxzSlNPTiA9IGxhYmVsczsgIC8vL1xuXG4gICAgbGFiZWxzID0gbGFiZWxzSlNPTi5tYXAoKGxhYmVsSlNPTikgPT4ge1xuICAgICAgY29uc3QganNvbiA9IGxhYmVsSlNPTiwgLy8vXG4gICAgICAgICAgICBsYWJlbCA9IExhYmVsLmZyb21KU09OKGpzb24sIHJlbGVhc2VDb250ZXh0KTtcblxuICAgICAgcmV0dXJuIGxhYmVsO1xuICAgIH0pO1xuXG4gICAgbGV0IHsgcHJlbWlzZXMgfSA9IGpzb247XG5cbiAgICBjb25zdCBwcmVtaXNlc0pTT04gPSBwcmVtaXNlczsgIC8vL1xuXG4gICAgcHJlbWlzZXMgPSBwcmVtaXNlc0pTT04ubWFwKChwcmVtaXNlSlNPTikgPT4ge1xuICAgICAgY29uc3QganNvbiA9IHByZW1pc2VKU09OLCAvLy9cbiAgICAgICAgICAgIHByZW1pc2UgPSBQcmVtaXNlLmZyb21KU09OKGpzb24sIHJlbGVhc2VDb250ZXh0KTtcblxuICAgICAgcmV0dXJuIHByZW1pc2U7XG4gICAgfSk7XG5cbiAgICBsZXQgeyBjb25jbHVzaW9uIH0gPSBqc29uO1xuXG4gICAgY29uc3QgY29uY2x1c2lvbkpTT04gPSBjb25jbHVzaW9uOyAgLy8vXG5cbiAgICBqc29uID0gY29uY2x1c2lvbkpTT047ICAvLy9cblxuICAgIGNvbmNsdXNpb24gPSBDb25jbHVzaW9uLmZyb21KU09OKGpzb24sIHJlbGVhc2VDb250ZXh0KTtcblxuICAgIHJ1bGUgPSBuZXcgUnVsZShsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uKTtcblxuICAgIHJldHVybiBydWxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21MYWJlbHNQcmVtaXNlc0FuZENvbmNsdXNpb24obGFiZWxzLCBwcmVtaXNlcywgY29uY2x1c2lvbikge1xuICAgIGNvbnN0IHJ1bGUgPSBuZXcgUnVsZShsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uKTtcblxuICAgIHJldHVybiBydWxlO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJlbWlzZShwcmVtaXNlLCBtZXRhQXNzZXJ0aW9ucywgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgY29uc3QgbWV0YUFzc2VydGlvbiA9IHBydW5lKG1ldGFBc3NlcnRpb25zLCAobWV0YUFzc2VydGlvbikgPT4ge1xuICAgIGNvbnN0IG1ldGFTdWJwcm9vZk5vZGUgPSBtZXRhQXNzZXJ0aW9uLmdldE1ldGFTdWJwcm9vZk5vZGUoKSxcbiAgICAgICAgICBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFBc3NlcnRpb24uZ2V0TWV0YXN0YXRlbWVudE5vZGUoKVxuXG4gICAgaWYgKG1ldGFTdWJwcm9vZk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1ldGFTdWJQcm9vZk1hdGNoZXMgPSBwcmVtaXNlLm1hdGNoTWV0YVN1YnByb29mTm9kZShtZXRhU3VicHJvb2ZOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgIGlmICghbWV0YVN1YlByb29mTWF0Y2hlcykgeyAgLy8vXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtZXRhc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgbWV0YXN0YXRlbWVudE1hdGNoZXMgPSBwcmVtaXNlLm1hdGNoTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgaWYgKCFtZXRhc3RhdGVtZW50TWF0Y2hlcykgeyAgLy8vXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICB9KSB8fCBudWxsO1xuXG4gIGNvbnN0IHByZW1pc2VNYXRjaGVzID0gKG1ldGFBc3NlcnRpb24gIT09IG51bGwpO1xuXG4gIHJldHVybiBwcmVtaXNlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlcyhwcmVtaXNlLCBtZXRhQXNzZXJ0aW9ucywgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgY29uc3QgcHJlbWlzZXNNYXRjaGVzID0gcHJlbWlzZS5ldmVyeSgocHJlbWlzZSkgPT4ge1xuICAgIGNvbnN0IHByZW1pc2VNYXRjaGVzID0gbWF0Y2hQcmVtaXNlKHByZW1pc2UsIG1ldGFBc3NlcnRpb25zLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICBpZiAocHJlbWlzZU1hdGNoZXMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHByZW1pc2VzTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hDb25jbHVzaW9uKGNvbmNsdXNpb24sIG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBjb25zdCBub25UZXJtaW5hbE5vZGVNYXRjaGVzID0gY29uY2x1c2lvbi5tYXRjaE1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyksXG4gICAgICAgIGNvbmNsdXNpb25NYXRjaGVzID0gbm9uVGVybWluYWxOb2RlTWF0Y2hlczsgLy8vXG5cbiAgcmV0dXJuIGNvbmNsdXNpb25NYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByZW1pc2VzQW5kQ29uY2x1c2lvbihwcmVtaXNlcywgY29uY2x1c2lvbiwgbWV0YUFzc2VydGlvbnMsIG1ldGFzdGF0ZW1lbnROb2RlKSB7XG4gIGxldCBwcmVtaXNlc01hdGNoQ29uY2x1c2lvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGFTdWJzdGl0dXRpb25zID0gW10sXG4gICAgICAgIHByZW1pc2VzTWF0Y2hlcyA9IG1hdGNoUHJlbWlzZXMocHJlbWlzZXMsIG1ldGFBc3NlcnRpb25zLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgaWYgKHByZW1pc2VzTWF0Y2hlcykge1xuICAgIGNvbnN0IGNvbmNsdXNpb25NYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uKGNvbmNsdXNpb24sIG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICBwcmVtaXNlc01hdGNoQ29uY2x1c2lvbiA9IGNvbmNsdXNpb25NYXRjaGVzOyAgLy8vXG4gIH1cblxuICByZXR1cm4gcHJlbWlzZXNNYXRjaENvbmNsdXNpb247XG59XG4iXSwibmFtZXMiOlsiUnVsZSIsImxhYmVscyIsInByZW1pc2VzIiwiY29uY2x1c2lvbiIsImdldExhYmVscyIsImdldFByZW1pc2VzIiwiZ2V0Q29uY2x1c2lvbiIsIm1hdGNoTGFiZWxOYW1lIiwibGFiZWxOYW1lIiwibWF0Y2hlc0xhYmVsTmFtZSIsInNvbWUiLCJsYWJlbCIsIm5hbWUiLCJsYWJlbE1hdGNoZXNOYW1lIiwibWF0Y2hOYW1lIiwibWF0Y2hNZXRhc3RhdGVtZW50IiwibWV0YXN0YXRlbWVudE5vZGUiLCJtZXRhcHJvb2ZDb250ZXh0IiwibWV0YXN0YXRlbWVudE5hdGNoZXMiLCJwcmVtaXNlc0xlbmd0aCIsImxlbmd0aCIsIm1ldGFTdWJzdGl0dXRpb25zIiwiY29uY2x1c2lvbk1hdGNoZXMiLCJtYXRjaENvbmNsdXNpb24iLCJtZXRhQXNzZXJ0aW9ucyIsImdldE1ldGFBc3NlcnRpb25zIiwic29tZVN1YkFycmF5IiwicHJlbWlzZXNNYXRjaENvbmNsdXNpb24iLCJtYXRjaFByZW1pc2VzQW5kQ29uY2x1c2lvbiIsInRvSlNPTiIsImxhYmVsc0pTT04iLCJtYXAiLCJsYWJlbEpTT04iLCJwcmVtaXNlc0pTT04iLCJwcmVtaXNlIiwicHJlbWlzZUpTT04iLCJjb25jbHVzaW9uSlNPTiIsImtpbmQiLCJSVUxFX0tJTkQiLCJqc29uIiwiZnJvbUpTT04iLCJyZWxlYXNlQ29udGV4dCIsInJ1bGUiLCJMYWJlbCIsIlByZW1pc2UiLCJDb25jbHVzaW9uIiwiZnJvbUxhYmVsc1ByZW1pc2VzQW5kQ29uY2x1c2lvbiIsIm1hdGNoUHJlbWlzZSIsIm1ldGFBc3NlcnRpb24iLCJwcnVuZSIsIm1ldGFTdWJwcm9vZk5vZGUiLCJnZXRNZXRhU3VicHJvb2ZOb2RlIiwiZ2V0TWV0YXN0YXRlbWVudE5vZGUiLCJtZXRhU3ViUHJvb2ZNYXRjaGVzIiwibWF0Y2hNZXRhU3VicHJvb2ZOb2RlIiwibWV0YXN0YXRlbWVudE1hdGNoZXMiLCJtYXRjaE1ldGFzdGF0ZW1lbnROb2RlIiwicHJlbWlzZU1hdGNoZXMiLCJtYXRjaFByZW1pc2VzIiwicHJlbWlzZXNNYXRjaGVzIiwiZXZlcnki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
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTGFiZWwgZnJvbSBcIi4vbGFiZWxcIjtcbmltcG9ydCBQcmVtaXNlIGZyb20gXCIuL3ByZW1pc2VcIjtcbmltcG9ydCBDb25jbHVzaW9uIGZyb20gXCIuL2NvbmNsdXNpb25cIjtcblxuaW1wb3J0IHsgcHJ1bmUgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IFJVTEVfS0lORCB9IGZyb20gXCIuL2tpbmRzXCI7XG5pbXBvcnQgeyBzb21lU3ViQXJyYXkgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUnVsZSB7XG4gIGNvbnN0cnVjdG9yKGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24pIHtcbiAgICB0aGlzLmxhYmVscyA9IGxhYmVscztcbiAgICB0aGlzLnByZW1pc2VzID0gcHJlbWlzZXM7XG4gICAgdGhpcy5jb25jbHVzaW9uID0gY29uY2x1c2lvbjtcbiAgfVxuXG4gIGdldExhYmVscygpIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbHM7XG4gIH1cblxuICBnZXRQcmVtaXNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVtaXNlcztcbiAgfVxuXG4gIGdldENvbmNsdXNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uY2x1c2lvbjtcbiAgfVxuXG4gIG1hdGNoTGFiZWxOYW1lKGxhYmVsTmFtZSkge1xuICAgIGNvbnN0IG1hdGNoZXNMYWJlbE5hbWUgPSB0aGlzLmxhYmVscy5zb21lKChsYWJlbCkgPT4ge1xuICAgICAgY29uc3QgbmFtZSA9IGxhYmVsTmFtZSwgLy8vXG4gICAgICAgICAgICBsYWJlbE1hdGNoZXNOYW1lID0gbGFiZWwubWF0Y2hOYW1lKG5hbWUpO1xuXG4gICAgICBpZiAobGFiZWxNYXRjaGVzTmFtZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBtYXRjaGVzTGFiZWxOYW1lO1xuICB9XG5cbiAgbWF0Y2hNZXRhc3RhdGVtZW50KG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhcHJvb2ZDb250ZXh0KSB7XG4gICAgbGV0IG1ldGFzdGF0ZW1lbnROYXRjaGVzO1xuXG4gICAgY29uc3QgcHJlbWlzZXNMZW5ndGggPSB0aGlzLnByZW1pc2VzLmxlbmd0aDtcblxuICAgIGlmIChwcmVtaXNlc0xlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgbWV0YVN1YnN0aXR1dGlvbnMgPSBbXSxcbiAgICAgICAgICAgIGNvbmNsdXNpb25NYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uKHRoaXMuY29uY2x1c2lvbiwgbWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgbWV0YXN0YXRlbWVudE5hdGNoZXMgPSBjb25jbHVzaW9uTWF0Y2hlczsgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1ldGFwcm9vZlN0ZXBzID0gbWV0YXByb29mQ29udGV4dC5nZXRNZXRhcHJvb2ZTdGVwcygpO1xuXG4gICAgICBtZXRhc3RhdGVtZW50TmF0Y2hlcyA9IHNvbWVTdWJBcnJheShtZXRhcHJvb2ZTdGVwcywgcHJlbWlzZXNMZW5ndGgsIChtZXRhcHJvb2ZTdGVwcykgPT4ge1xuICAgICAgICBsZXQgcHJlbWlzZXNNYXRjaENvbmNsdXNpb24gPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBtZXRhU3Vic3RpdHV0aW9ucyA9IFtdLFxuICAgICAgICAgICAgICBwcmVtaXNlc01hdGNoZXMgPSBtYXRjaFByZW1pc2VzKHRoaXMucHJlbWlzZXMsIG1ldGFwcm9vZlN0ZXBzLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgaWYgKHByZW1pc2VzTWF0Y2hlcykge1xuICAgICAgICAgIGNvbnN0IGNvbmNsdXNpb25NYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uKHRoaXMuY29uY2x1c2lvbiwgbWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgICAgIHByZW1pc2VzTWF0Y2hDb25jbHVzaW9uID0gY29uY2x1c2lvbk1hdGNoZXM7ICAvLy9cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcmVtaXNlc01hdGNoQ29uY2x1c2lvbikge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXN0YXRlbWVudE5hdGNoZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgbGFiZWxzSlNPTiA9IHRoaXMubGFiZWxzLm1hcCgobGFiZWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsSlNPTiA9IGxhYmVsLnRvSlNPTigpO1xuXG4gICAgICAgICAgICByZXR1cm4gbGFiZWxKU09OO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHByZW1pc2VzSlNPTiA9IHRoaXMucHJlbWlzZXMubWFwKChwcmVtaXNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcmVtaXNlSlNPTiA9IHByZW1pc2UudG9KU09OKCk7XG5cbiAgICAgICAgICAgIHJldHVybiBwcmVtaXNlSlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjb25jbHVzaW9uSlNPTiA9IHRoaXMuY29uY2x1c2lvbi50b0pTT04oKSxcbiAgICAgICAgICBraW5kID0gUlVMRV9LSU5ELFxuICAgICAgICAgIGxhYmVscyA9IGxhYmVsc0pTT04sICAvLy9cbiAgICAgICAgICBwcmVtaXNlcyA9IHByZW1pc2VzSlNPTiwgIC8vL1xuICAgICAgICAgIGNvbmNsdXNpb24gPSBjb25jbHVzaW9uSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBraW5kLFxuICAgICAgICAgICAgbGFiZWxzLFxuICAgICAgICAgICAgcHJlbWlzZXMsXG4gICAgICAgICAgICBjb25jbHVzaW9uXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIHJlbGVhc2VDb250ZXh0KSB7XG4gICAgbGV0IHJ1bGU7XG5cbiAgICBsZXQgeyBsYWJlbHMgfSA9IGpzb247XG5cbiAgICBjb25zdCBsYWJlbHNKU09OID0gbGFiZWxzOyAgLy8vXG5cbiAgICBsYWJlbHMgPSBsYWJlbHNKU09OLm1hcCgobGFiZWxKU09OKSA9PiB7XG4gICAgICBjb25zdCBqc29uID0gbGFiZWxKU09OLCAvLy9cbiAgICAgICAgICAgIGxhYmVsID0gTGFiZWwuZnJvbUpTT04oanNvbiwgcmVsZWFzZUNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gbGFiZWw7XG4gICAgfSk7XG5cbiAgICBsZXQgeyBwcmVtaXNlcyB9ID0ganNvbjtcblxuICAgIGNvbnN0IHByZW1pc2VzSlNPTiA9IHByZW1pc2VzOyAgLy8vXG5cbiAgICBwcmVtaXNlcyA9IHByZW1pc2VzSlNPTi5tYXAoKHByZW1pc2VKU09OKSA9PiB7XG4gICAgICBjb25zdCBqc29uID0gcHJlbWlzZUpTT04sIC8vL1xuICAgICAgICAgICAgcHJlbWlzZSA9IFByZW1pc2UuZnJvbUpTT04oanNvbiwgcmVsZWFzZUNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gcHJlbWlzZTtcbiAgICB9KTtcblxuICAgIGxldCB7IGNvbmNsdXNpb24gfSA9IGpzb247XG5cbiAgICBjb25zdCBjb25jbHVzaW9uSlNPTiA9IGNvbmNsdXNpb247ICAvLy9cblxuICAgIGpzb24gPSBjb25jbHVzaW9uSlNPTjsgIC8vL1xuXG4gICAgY29uY2x1c2lvbiA9IENvbmNsdXNpb24uZnJvbUpTT04oanNvbiwgcmVsZWFzZUNvbnRleHQpO1xuXG4gICAgcnVsZSA9IG5ldyBSdWxlKGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24pO1xuXG4gICAgcmV0dXJuIHJ1bGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUxhYmVsc1ByZW1pc2VzQW5kQ29uY2x1c2lvbihsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uKSB7XG4gICAgY29uc3QgcnVsZSA9IG5ldyBSdWxlKGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24pO1xuXG4gICAgcmV0dXJuIHJ1bGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlKHByZW1pc2UsIG1ldGFwcm9vZlN0ZXBzLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBjb25zdCBtZXRhcHJvb2ZTdGVwID0gcHJ1bmUobWV0YXByb29mU3RlcHMsIChtZXRhcHJvb2ZTdGVwKSA9PiB7XG4gICAgY29uc3QgbWV0YVN1YnByb29mTm9kZSA9IG1ldGFwcm9vZlN0ZXAuZ2V0TWV0YVN1YnByb29mTm9kZSgpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXByb29mU3RlcC5nZXRNZXRhc3RhdGVtZW50Tm9kZSgpXG5cbiAgICBpZiAobWV0YVN1YnByb29mTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgbWV0YVN1YlByb29mTWF0Y2hlcyA9IHByZW1pc2UubWF0Y2hNZXRhU3VicHJvb2ZOb2RlKG1ldGFTdWJwcm9vZk5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgaWYgKCFtZXRhU3ViUHJvb2ZNYXRjaGVzKSB7ICAvLy9cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1ldGFzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBtZXRhc3RhdGVtZW50TWF0Y2hlcyA9IHByZW1pc2UubWF0Y2hNZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBpZiAoIW1ldGFzdGF0ZW1lbnRNYXRjaGVzKSB7ICAvLy9cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9KSB8fCBudWxsO1xuXG4gIGNvbnN0IHByZW1pc2VNYXRjaGVzID0gKG1ldGFwcm9vZlN0ZXAgIT09IG51bGwpO1xuXG4gIHJldHVybiBwcmVtaXNlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlcyhwcmVtaXNlLCBtZXRhcHJvb2ZTdGVwcywgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgY29uc3QgcHJlbWlzZXNNYXRjaGVzID0gcHJlbWlzZS5ldmVyeSgocHJlbWlzZSkgPT4ge1xuICAgIGNvbnN0IHByZW1pc2VNYXRjaGVzID0gbWF0Y2hQcmVtaXNlKHByZW1pc2UsIG1ldGFwcm9vZlN0ZXBzLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICBpZiAocHJlbWlzZU1hdGNoZXMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHByZW1pc2VzTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hDb25jbHVzaW9uKGNvbmNsdXNpb24sIG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBjb25zdCBub25UZXJtaW5hbE5vZGVNYXRjaGVzID0gY29uY2x1c2lvbi5tYXRjaE1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyksXG4gICAgICAgIGNvbmNsdXNpb25NYXRjaGVzID0gbm9uVGVybWluYWxOb2RlTWF0Y2hlczsgLy8vXG5cbiAgcmV0dXJuIGNvbmNsdXNpb25NYXRjaGVzO1xufVxuIl0sIm5hbWVzIjpbIlJ1bGUiLCJsYWJlbHMiLCJwcmVtaXNlcyIsImNvbmNsdXNpb24iLCJnZXRMYWJlbHMiLCJnZXRQcmVtaXNlcyIsImdldENvbmNsdXNpb24iLCJtYXRjaExhYmVsTmFtZSIsImxhYmVsTmFtZSIsIm1hdGNoZXNMYWJlbE5hbWUiLCJzb21lIiwibGFiZWwiLCJuYW1lIiwibGFiZWxNYXRjaGVzTmFtZSIsIm1hdGNoTmFtZSIsIm1hdGNoTWV0YXN0YXRlbWVudCIsIm1ldGFzdGF0ZW1lbnROb2RlIiwibWV0YXByb29mQ29udGV4dCIsIm1ldGFzdGF0ZW1lbnROYXRjaGVzIiwicHJlbWlzZXNMZW5ndGgiLCJsZW5ndGgiLCJtZXRhU3Vic3RpdHV0aW9ucyIsImNvbmNsdXNpb25NYXRjaGVzIiwibWF0Y2hDb25jbHVzaW9uIiwibWV0YXByb29mU3RlcHMiLCJnZXRNZXRhcHJvb2ZTdGVwcyIsInNvbWVTdWJBcnJheSIsInByZW1pc2VzTWF0Y2hDb25jbHVzaW9uIiwicHJlbWlzZXNNYXRjaGVzIiwibWF0Y2hQcmVtaXNlcyIsInRvSlNPTiIsImxhYmVsc0pTT04iLCJtYXAiLCJsYWJlbEpTT04iLCJwcmVtaXNlc0pTT04iLCJwcmVtaXNlIiwicHJlbWlzZUpTT04iLCJjb25jbHVzaW9uSlNPTiIsImtpbmQiLCJSVUxFX0tJTkQiLCJqc29uIiwiZnJvbUpTT04iLCJyZWxlYXNlQ29udGV4dCIsInJ1bGUiLCJMYWJlbCIsIlByZW1pc2UiLCJDb25jbHVzaW9uIiwiZnJvbUxhYmVsc1ByZW1pc2VzQW5kQ29uY2x1c2lvbiIsIm1hdGNoUHJlbWlzZSIsIm1ldGFwcm9vZlN0ZXAiLCJwcnVuZSIsIm1ldGFTdWJwcm9vZk5vZGUiLCJnZXRNZXRhU3VicHJvb2ZOb2RlIiwiZ2V0TWV0YXN0YXRlbWVudE5vZGUiLCJtZXRhU3ViUHJvb2ZNYXRjaGVzIiwibWF0Y2hNZXRhU3VicHJvb2ZOb2RlIiwibWV0YXN0YXRlbWVudE1hdGNoZXMiLCJtYXRjaE1ldGFzdGF0ZW1lbnROb2RlIiwicHJlbWlzZU1hdGNoZXMiLCJldmVyeSIsIm5vblRlcm1pbmFsTm9kZU1hdGNoZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBVXFCQTs7OzBEQVJIOzREQUNFOytEQUNHO3FCQUVEO3FCQUNJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR1gsSUFBQSxBQUFNQSxxQkF5SWxCLEFBeklZO2FBQU1BLEtBQ1BDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxVQUFVOzhCQURyQkg7UUFFakIsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElB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
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return MetaproofStep;
9
+ }
10
+ });
11
+ var _array = require("../utilities/array");
12
+ var _query = require("../utilities/query");
13
+ var _node = require("../utilities/node");
14
+ function _classCallCheck(instance, Constructor) {
15
+ if (!(instance instanceof Constructor)) {
16
+ throw new TypeError("Cannot call a class as a function");
17
+ }
18
+ }
19
+ function _defineProperties(target, props) {
20
+ for(var i = 0; i < props.length; i++){
21
+ var descriptor = props[i];
22
+ descriptor.enumerable = descriptor.enumerable || false;
23
+ descriptor.configurable = true;
24
+ if ("value" in descriptor) descriptor.writable = true;
25
+ Object.defineProperty(target, descriptor.key, descriptor);
26
+ }
27
+ }
28
+ function _createClass(Constructor, protoProps, staticProps) {
29
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
30
+ if (staticProps) _defineProperties(Constructor, staticProps);
31
+ return Constructor;
32
+ }
33
+ var metastatementNodesQuery = (0, _query.nodesQuery)("/metaSubproofAssertion/metastatement"), metaSubproofAssertionNodeQuery = (0, _query.nodeQuery)("/metastatement/metaSubproofAssertion"), qualifiedOrUnqualifiedMetastatementMetastatementNodesQuery = (0, _query.nodesQuery)("/metaSubproof/qualifiedMetastatement|unqualifiedMetastatement/metastatement!");
34
+ var MetaproofStep = /*#__PURE__*/ function() {
35
+ function MetaproofStep(metaSubproofNode, metastatementNode) {
36
+ _classCallCheck(this, MetaproofStep);
37
+ this.metaSubproofNode = metaSubproofNode;
38
+ this.metastatementNode = metastatementNode;
39
+ }
40
+ _createClass(MetaproofStep, [
41
+ {
42
+ key: "getMetaSubproofNode",
43
+ value: function getMetaSubproofNode() {
44
+ return this.metaSubproofNode;
45
+ }
46
+ },
47
+ {
48
+ key: "getMetastatementNode",
49
+ value: function getMetastatementNode() {
50
+ return this.metastatementNode;
51
+ }
52
+ },
53
+ {
54
+ key: "matchMetastatement",
55
+ value: function matchMetastatement(metastatementNode) {
56
+ var metastatementMatches;
57
+ var metaSubproofAssertionNode = metaSubproofAssertionNodeQuery(metastatementNode);
58
+ if (metaSubproofAssertionNode !== null) {
59
+ var metaSubproofAssertionMatches = this.matchMetaSubproofAssertion(metaSubproofAssertionNode);
60
+ metastatementMatches = metaSubproofAssertionMatches; ///
61
+ } else {
62
+ var metastatementsMatch = this.matchMetastatements(metastatementNode);
63
+ metastatementMatches = metastatementsMatch; //
64
+ }
65
+ return metastatementMatches;
66
+ }
67
+ },
68
+ {
69
+ key: "matchMetastatements",
70
+ value: function matchMetastatements(metastatementNode) {
71
+ var metastatementsMatch = false;
72
+ if (this.metastatementNode !== null) {
73
+ var nonTerminalNodeA = metastatementNode, nonTerminalNodeB = this.metastatementNode, bracketedNodeMatches = (0, _node.matchBracketedNonTerminalNode)(nonTerminalNodeA, nonTerminalNodeB), metastatementNodeMatches = bracketedNodeMatches; ///
74
+ return metastatementNodeMatches;
75
+ }
76
+ return metastatementsMatch;
77
+ }
78
+ },
79
+ {
80
+ key: "matchMetaSubproofAssertion",
81
+ value: function matchMetaSubproofAssertion(metaSubproofAssertionNode) {
82
+ var metaSubproofAssertionMatches = false;
83
+ if (this.metaSubproofNode !== null) {
84
+ var metaSubproofAssertionMetastatementNodes = metastatementNodesQuery(metaSubproofAssertionNode), firstMetaSubproofAssertionMetastatementNode = (0, _array.first)(metaSubproofAssertionMetastatementNodes), qualifiedOrUnqualifiedMetastatementMetastatementNodes = qualifiedOrUnqualifiedMetastatementMetastatementNodesQuery(this.metaSubproofNode), firstQualifiedOrUnqualifiedMetastatementMetastatementNode = (0, _array.first)(qualifiedOrUnqualifiedMetastatementMetastatementNodes);
85
+ var nonTerminalNodeA = firstMetaSubproofAssertionMetastatementNode, nonTerminalNodeB = firstQualifiedOrUnqualifiedMetastatementMetastatementNode, bracketedNodeMatches = (0, _node.matchBracketedNonTerminalNode)(nonTerminalNodeA, nonTerminalNodeB);
86
+ if (bracketedNodeMatches) {
87
+ var secondMetaSubproofAssertionMetastatementNode = (0, _array.second)(metaSubproofAssertionMetastatementNodes), secondQualifiedOrUnqualifiedMetastatementMetastatementNode = (0, _array.second)(qualifiedOrUnqualifiedMetastatementMetastatementNodes);
88
+ var nonTerminalNodeA1 = secondMetaSubproofAssertionMetastatementNode, nonTerminalNodeB1 = secondQualifiedOrUnqualifiedMetastatementMetastatementNode, bracketedNodeMatches1 = (0, _node.matchBracketedNonTerminalNode)(nonTerminalNodeA1, nonTerminalNodeB1);
89
+ metaSubproofAssertionMatches = bracketedNodeMatches1; ///
90
+ }
91
+ }
92
+ return metaSubproofAssertionMatches;
93
+ }
94
+ }
95
+ ], [
96
+ {
97
+ key: "fromMetaSubproofNode",
98
+ value: function fromMetaSubproofNode(metaSubproofNode) {
99
+ var metastatementNode = null, metaProofStep = new MetaproofStep(metaSubproofNode, metastatementNode);
100
+ return metaProofStep;
101
+ }
102
+ },
103
+ {
104
+ key: "fromMetastatementNode",
105
+ value: function fromMetastatementNode(metastatementNode) {
106
+ var metaSubproofNode = null, metaProofStep = new MetaproofStep(metaSubproofNode, metastatementNode);
107
+ return metaProofStep;
108
+ }
109
+ }
110
+ ]);
111
+ return MetaproofStep;
112
+ }();
113
+
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGVwL21ldGFwcm9vZi5qcyIsIjw8anN4LWNvbmZpZy1wcmFnbWEuanM+PiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZmlyc3QsIHNlY29uZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG1hdGNoQnJhY2tldGVkTm9uVGVybWluYWxOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ub2RlXCI7XG5cbmNvbnN0IG1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9tZXRhU3VicHJvb2ZBc3NlcnRpb24vbWV0YXN0YXRlbWVudFwiKSxcbiAgICAgIG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhc3RhdGVtZW50L21ldGFTdWJwcm9vZkFzc2VydGlvblwiKSxcbiAgICAgIHF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL21ldGFTdWJwcm9vZi9xdWFsaWZpZWRNZXRhc3RhdGVtZW50fHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudC9tZXRhc3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWV0YXByb29mU3RlcCB7XG4gIGNvbnN0cnVjdG9yKG1ldGFTdWJwcm9vZk5vZGUsIG1ldGFzdGF0ZW1lbnROb2RlKSB7XG4gICAgdGhpcy5tZXRhU3VicHJvb2ZOb2RlID0gbWV0YVN1YnByb29mTm9kZTtcbiAgICB0aGlzLm1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBnZXRNZXRhU3VicHJvb2ZOb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGFTdWJwcm9vZk5vZGU7XG4gIH1cblxuICBnZXRNZXRhc3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIG1hdGNoTWV0YXN0YXRlbWVudChtZXRhc3RhdGVtZW50Tm9kZSkge1xuICAgIGxldCBtZXRhc3RhdGVtZW50TWF0Y2hlcztcblxuICAgIGNvbnN0IG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGUgPSBtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgaWYgKG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1ldGFTdWJwcm9vZkFzc2VydGlvbk1hdGNoZXMgPSB0aGlzLm1hdGNoTWV0YVN1YnByb29mQXNzZXJ0aW9uKG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGUpO1xuXG4gICAgICBtZXRhc3RhdGVtZW50TWF0Y2hlcyA9IG1ldGFTdWJwcm9vZkFzc2VydGlvbk1hdGNoZXM7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWV0YXN0YXRlbWVudHNNYXRjaCA9IHRoaXMubWF0Y2hNZXRhc3RhdGVtZW50cyhtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIG1ldGFzdGF0ZW1lbnRNYXRjaGVzID0gbWV0YXN0YXRlbWVudHNNYXRjaDsgLy9cbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXN0YXRlbWVudE1hdGNoZXM7XG4gIH1cblxuICBtYXRjaE1ldGFzdGF0ZW1lbnRzKG1ldGFzdGF0ZW1lbnROb2RlKSB7XG4gICAgbGV0IG1ldGFzdGF0ZW1lbnRzTWF0Y2ggPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLm1ldGFzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGVBID0gbWV0YXN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlQiA9IHRoaXMubWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICAgIGJyYWNrZXRlZE5vZGVNYXRjaGVzID0gbWF0Y2hCcmFja2V0ZWROb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiksXG4gICAgICAgICAgICBtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBicmFja2V0ZWROb2RlTWF0Y2hlczsgIC8vL1xuXG4gICAgICByZXR1cm4gbWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhc3RhdGVtZW50c01hdGNoO1xuICB9XG5cbiAgbWF0Y2hNZXRhU3VicHJvb2ZBc3NlcnRpb24obWV0YVN1YnByb29mQXNzZXJ0aW9uTm9kZSkge1xuICAgIGxldCBtZXRhU3VicHJvb2ZBc3NlcnRpb25NYXRjaGVzID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5tZXRhU3VicHJvb2ZOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBtZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZXMgPSBtZXRhc3RhdGVtZW50Tm9kZXNRdWVyeShtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICAgIGZpcnN0TWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUgPSBmaXJzdChtZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZXMpLFxuICAgICAgICAgICAgcXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZXMgPSBxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5KHRoaXMubWV0YVN1YnByb29mTm9kZSksXG4gICAgICAgICAgICBmaXJzdFF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGUgPSBmaXJzdChxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2Rlcyk7XG5cbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUEgPSBmaXJzdE1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gZmlyc3RRdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICAgIGJyYWNrZXRlZE5vZGVNYXRjaGVzID0gbWF0Y2hCcmFja2V0ZWROb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQik7XG5cbiAgICAgIGlmIChicmFja2V0ZWROb2RlTWF0Y2hlcykge1xuICAgICAgICBjb25zdCBzZWNvbmRNZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSA9IHNlY29uZChtZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZXMpLFxuICAgICAgICAgICAgICBzZWNvbmRRdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlID0gc2Vjb25kKHF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzKTtcblxuICAgICAgICBjb25zdCBub25UZXJtaW5hbE5vZGVBID0gc2Vjb25kTWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gc2Vjb25kUXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICAgIGJyYWNrZXRlZE5vZGVNYXRjaGVzID0gbWF0Y2hCcmFja2V0ZWROb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQik7XG5cbiAgICAgICAgbWV0YVN1YnByb29mQXNzZXJ0aW9uTWF0Y2hlcyA9IGJyYWNrZXRlZE5vZGVNYXRjaGVzOyAvLy9cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YVN1YnByb29mQXNzZXJ0aW9uTWF0Y2hlcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTWV0YVN1YnByb29mTm9kZShtZXRhU3VicHJvb2ZOb2RlKSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIG1ldGFQcm9vZlN0ZXAgPSBuZXcgTWV0YXByb29mU3RlcChtZXRhU3VicHJvb2ZOb2RlLCBtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICByZXR1cm4gbWV0YVByb29mU3RlcDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICBjb25zdCBtZXRhU3VicHJvb2ZOb2RlID0gbnVsbCxcbiAgICAgICAgICBtZXRhUHJvb2ZTdGVwID0gbmV3IE1ldGFwcm9vZlN0ZXAobWV0YVN1YnByb29mTm9kZSwgbWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIG1ldGFQcm9vZlN0ZXA7XG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiTWV0YXByb29mU3RlcCIsIm1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsIm1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzUXVlcnkiLCJtZXRhU3VicHJvb2ZOb2RlIiwibWV0YXN0YXRlbWVudE5vZGUiLCJnZXRNZXRhU3VicHJvb2ZOb2RlIiwiZ2V0TWV0YXN0YXRlbWVudE5vZGUiLCJtYXRjaE1ldGFzdGF0ZW1lbnQiLCJtZXRhc3RhdGVtZW50TWF0Y2hlcyIsIm1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJtZXRhU3VicHJvb2ZBc3NlcnRpb25NYXRjaGVzIiwibWF0Y2hNZXRhU3VicHJvb2ZBc3NlcnRpb24iLCJtZXRhc3RhdGVtZW50c01hdGNoIiwibWF0Y2hNZXRhc3RhdGVtZW50cyIsIm5vblRlcm1pbmFsTm9kZUEiLCJub25UZXJtaW5hbE5vZGVCIiwiYnJhY2tldGVkTm9kZU1hdGNoZXMiLCJtYXRjaEJyYWNrZXRlZE5vblRlcm1pbmFsTm9kZSIsIm1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlcyIsImZpcnN0TWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUiLCJmaXJzdCIsInF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzIiwiZmlyc3RRdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlIiwic2Vjb25kTWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUiLCJzZWNvbmQiLCJzZWNvbmRRdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlIiwiZnJvbU1ldGFTdWJwcm9vZk5vZGUiLCJtZXRhUHJvb2ZTdGVwIiwiZnJvbU1ldGFzdGF0ZW1lbnROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVVxQkE7OztxQkFSUztxQkFDUTtvQkFDUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFOUMsSUFBTUMsMEJBQTBCQyxJQUFBQSxpQkFBVSxFQUFDLHlDQUNyQ0MsaUNBQWlDQyxJQUFBQSxnQkFBUyxFQUFDLHlDQUMzQ0MsNkRBQTZESCxJQUFBQSxpQkFBVSxFQUFDO0FBRS9ELElBQUEsQUFBTUYsOEJBQU47YUFBTUEsY0FDUE0sZ0JBQWdCLEVBQUVDLGlCQUFpQjs4QkFENUJQO1FBRWpCLElBQUksQ0FBQ00sZ0JBQWdCLEdBQUdBO1FBQ3hCLElBQUksQ0FBQ0MsaUJBQWlCLEdB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
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return ProofStep;
9
+ }
10
+ });
11
+ function _classCallCheck(instance, Constructor) {
12
+ if (!(instance instanceof Constructor)) {
13
+ throw new TypeError("Cannot call a class as a function");
14
+ }
15
+ }
16
+ function _defineProperties(target, props) {
17
+ for(var i = 0; i < props.length; i++){
18
+ var descriptor = props[i];
19
+ descriptor.enumerable = descriptor.enumerable || false;
20
+ descriptor.configurable = true;
21
+ if ("value" in descriptor) descriptor.writable = true;
22
+ Object.defineProperty(target, descriptor.key, descriptor);
23
+ }
24
+ }
25
+ function _createClass(Constructor, protoProps, staticProps) {
26
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
+ if (staticProps) _defineProperties(Constructor, staticProps);
28
+ return Constructor;
29
+ }
30
+ var ProofStep = /*#__PURE__*/ function() {
31
+ function ProofStep(subproofNode, statementNode) {
32
+ _classCallCheck(this, ProofStep);
33
+ this.subproofNode = subproofNode;
34
+ this.statementNode = statementNode;
35
+ }
36
+ _createClass(ProofStep, [
37
+ {
38
+ key: "getSubproofNode",
39
+ value: function getSubproofNode() {
40
+ return this.subproofNode;
41
+ }
42
+ },
43
+ {
44
+ key: "getStatementNode",
45
+ value: function getStatementNode() {
46
+ return this.statementNode;
47
+ }
48
+ }
49
+ ], [
50
+ {
51
+ key: "fromSubproofNode",
52
+ value: function fromSubproofNode(subproofNode) {
53
+ var statementNode = null, metaProofStep = new ProofStep(subproofNode, statementNode);
54
+ return metaProofStep;
55
+ }
56
+ },
57
+ {
58
+ key: "fromStatementNode",
59
+ value: function fromStatementNode(statementNode) {
60
+ var subproofNode = null, metaProofStep = new ProofStep(subproofNode, statementNode);
61
+ return metaProofStep;
62
+ }
63
+ }
64
+ ]);
65
+ return ProofStep;
66
+ }();
67
+
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGVwL3Byb29mLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcm9vZlN0ZXAge1xuICBjb25zdHJ1Y3RvcihzdWJwcm9vZk5vZGUsIHN0YXRlbWVudE5vZGUpIHtcbiAgICB0aGlzLnN1YnByb29mTm9kZSA9IHN1YnByb29mTm9kZTtcbiAgICB0aGlzLnN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgZ2V0U3VicHJvb2ZOb2RlKCkge1xuICAgIHJldHVybiB0aGlzLnN1YnByb29mTm9kZTtcbiAgfVxuXG4gIGdldFN0YXRlbWVudE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3VicHJvb2ZOb2RlKHN1YnByb29mTm9kZSkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIG1ldGFQcm9vZlN0ZXAgPSBuZXcgUHJvb2ZTdGVwKHN1YnByb29mTm9kZSwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICByZXR1cm4gbWV0YVByb29mU3RlcDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKSB7XG4gICAgY29uc3Qgc3VicHJvb2ZOb2RlID0gbnVsbCxcbiAgICAgICAgICBtZXRhUHJvb2ZTdGVwID0gbmV3IFByb29mU3RlcChzdWJwcm9vZk5vZGUsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIG1ldGFQcm9vZlN0ZXA7XG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiUHJvb2ZTdGVwIiwic3VicHJvb2ZOb2RlIiwic3RhdGVtZW50Tm9kZSIsImdldFN1YnByb29mTm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJmcm9tU3VicHJvb2ZOb2RlIiwibWV0YVByb29mU3RlcCIsImZyb21TdGF0ZW1lbnROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQUVxQkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTixJQUFBLEFBQU1BLDBCQUFOO2FBQU1BLFVBQ1BDLFlBQVksRUFBRUMsYUFBYTs4QkFEcEJGO1FBRWpCLElBQUksQ0FBQ0MsWUFBWSxHQUFHQTtRQUNwQixJQUFJLENBQUNDLGFBQWEsR0FBR0E7O2lCQUhKRjs7WUFNbkJHLEtBQUFBO21CQUFBQSxTQUFBQSxrQkFBa0I7Z0JBQ2hCLE9BQU8sSUFBSSxDQUFDRixZQUFZO1lBQzFCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLG1CQUFtQjtnQkFDakIsT0FBTyxJQUFJLENBQUNGLGFBQWE7WUFDM0I7Ozs7WUFFT0csS0FBQUE7bUJBQVAsU0FBT0EsaUJBQWlCSixZQUFZLEVBQUU7Z0JBQ3BDLElBQU1DLGdCQUFnQixJQUFJLEVBQ3BCSSxnQkFBZ0IsSUFoQkxOLFVBZ0JtQkMsY0FBY0M7Z0JBRWxELE9BQU9JO1lBQ1Q7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxrQkFBa0JMLGFBQWEsRUFBRTtnQkFDdEMsSUFBTUQsZUFBZSxJQUFJLEVBQ25CSyxnQkFBZ0IsSUF2QkxOLFVBdUJtQkMsY0FBY0M7Z0JBRWxELE9BQU9JO1lBQ1Q7OztXQTFCbUJOIn0=
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return Substitution;
9
9
  }
10
10
  });
11
- var _statement = require("./utilities/statement");
11
+ var _node = require("./utilities/node");
12
12
  function _classCallCheck(instance, Constructor) {
13
13
  if (!(instance instanceof Constructor)) {
14
14
  throw new TypeError("Cannot call a class as a function");
@@ -51,73 +51,33 @@ var Substitution = /*#__PURE__*/ function() {
51
51
  key: "matchNodes",
52
52
  value: function matchNodes(nodes) {
53
53
  var matches;
54
- var substitutionNodes = this.nodes, substitutionNonTerminalNodeMatches = matchSubstitutionNodes(substitutionNodes, nodes);
55
- matches = substitutionNonTerminalNodeMatches; ///
54
+ var nodesA = this.nodes, nodesB = nodes, metaSubstitutionNodesMatch = (0, _node.matchNodes)(nodesA, nodesB);
55
+ matches = metaSubstitutionNodesMatch; ///
56
56
  if (!matches) {
57
- var childNodes = nodes, bracketedStatementChildNodeMatches = (0, _statement.matchBracketedStatementChildNode)(childNodes, function(bracketedStatementChildNode) {
58
- var nonTerminalNode = bracketedStatementChildNode, childNodes = nonTerminalNode.getChildNodes(), _$nodes = childNodes, assertionNonTerminalNodeMatches = matchSubstitutionNodes(substitutionNodes, _$nodes), bracketedStatementChildNodeMatches = assertionNonTerminalNodeMatches; ///
59
- return bracketedStatementChildNodeMatches;
60
- });
61
- matches = bracketedStatementChildNodeMatches; ///
57
+ var childNodes = nodes, bracketedChildNode = (0, _node.bracketedChildNodeFromChildNodes)(childNodes);
58
+ if (bracketedChildNode !== null) {
59
+ var nonTerminalNode = bracketedChildNode, childNodes1 = nonTerminalNode.getChildNodes(), nodesB1 = childNodes1, nodesMatch = (0, _node.matchNodes)(nodesA, nodesB1);
60
+ matches = nodesMatch; ///
61
+ }
62
62
  }
63
63
  return matches;
64
64
  }
65
65
  }
66
66
  ], [
67
67
  {
68
- key: "fromVariableNameAndNodes",
69
- value: function fromVariableNameAndNodes(variableName, nodes) {
70
- var bracketedStatementChildNode = (0, _statement.bracketedStatementChildNodeFromChildNodes)(nodes);
71
- if (bracketedStatementChildNode !== null) {
72
- var nonTerminalNode = bracketedStatementChildNode, childNodes = nonTerminalNode.getChildNodes();
68
+ key: "fromMetavariableNameAndNodes",
69
+ value: function fromMetavariableNameAndNodes(variableName, nodes) {
70
+ var bracketedChildNode = (0, _node.bracketedChildNodeFromChildNodes)(nodes);
71
+ if (bracketedChildNode !== null) {
72
+ var nonTerminalNode = bracketedChildNode, childNodes = nonTerminalNode.getChildNodes();
73
73
  nodes = childNodes; ///
74
74
  }
75
- var substitution = new Substitution(variableName, nodes);
76
- return substitution;
75
+ var metaSubstitution = new Substitution(variableName, nodes);
76
+ return metaSubstitution;
77
77
  }
78
78
  }
79
79
  ]);
80
80
  return Substitution;
81
81
  }();
82
- function matchSubstitutionNode(substitutionNode, node) {
83
- var substitutionNodeMatches = false;
84
- var nodeTerminalNode = node.isTerminalNode(), ruleNodeTerminalNode = substitutionNode.isTerminalNode();
85
- if (nodeTerminalNode === ruleNodeTerminalNode) {
86
- if (nodeTerminalNode) {
87
- var terminalNode = node, substitutionTerminalNode = substitutionNode, substitutionTerminalNodeMatches = matchSubstitutionTerminalNode(substitutionTerminalNode, terminalNode);
88
- substitutionNodeMatches = substitutionTerminalNodeMatches; ///
89
- } else {
90
- var nonTerminalNode = node, substitutionNonTerminalNode = substitutionNode, substitutionNonTerminalNodeMatches = matchSubstitutionNonTerminalNode(substitutionNonTerminalNode, nonTerminalNode);
91
- substitutionNodeMatches = substitutionNonTerminalNodeMatches; ///
92
- }
93
- }
94
- return substitutionNodeMatches;
95
- }
96
- function matchSubstitutionNodes(substitutionNodes, nodes) {
97
- var substitutionNodesMatches = false;
98
- var nodesLength = nodes.length, substitutionNodesLength = substitutionNodes.length;
99
- if (nodesLength === substitutionNodesLength) {
100
- substitutionNodesMatches = nodes.every(function(node, index) {
101
- var substitutionNode = substitutionNodes[index], substitutionNodeMatches = matchSubstitutionNode(substitutionNode, node);
102
- if (substitutionNodeMatches) {
103
- return true;
104
- }
105
- });
106
- }
107
- return substitutionNodesMatches;
108
- }
109
- function matchSubstitutionTerminalNode(substitutionTerminalNode, terminalNode) {
110
- var matches = substitutionTerminalNode.match(terminalNode), substitutionTerminalNodeMatches = matches; ///
111
- return substitutionTerminalNodeMatches;
112
- }
113
- function matchSubstitutionNonTerminalNode(substitutionNonTerminalNode, nonTerminalNode) {
114
- var substitutionNonTerminalNodeMatches = false;
115
- var ruleName = nonTerminalNode.getRuleName(), substitutionRuleName = substitutionNonTerminalNode.getRuleName(); ///
116
- if (ruleName === substitutionRuleName) {
117
- var childNodes = nonTerminalNode.getChildNodes(), substitutionChildNodes = substitutionNonTerminalNode.getChildNodes(), nodes = childNodes, substitutionNodes = substitutionChildNodes, substitutionNodesMatches = matchSubstitutionNodes(substitutionNodes, nodes);
118
- substitutionNonTerminalNodeMatches = substitutionNodesMatches; ///
119
- }
120
- return substitutionNonTerminalNodeMatches;
121
- }
122
82
 
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdWJzdGl0dXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG1hdGNoQnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlLCBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVGcm9tQ2hpbGROb2RlcyB9IGZyb20gXCIuL3V0aWxpdGllcy9zdGF0ZW1lbnRcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3Vic3RpdHV0aW9uIHtcbiAgY29uc3RydWN0b3IodmFyaWFibGVOYW1lLCBub2Rlcykge1xuICAgIHRoaXMudmFyaWFibGVOYW1lID0gdmFyaWFibGVOYW1lO1xuICAgIHRoaXMubm9kZXMgPSBub2RlcztcbiAgfVxuXG4gIGdldFZhcmlhYmxlTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZU5hbWU7XG4gIH1cblxuICBnZXROb2RlcygpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlcztcbiAgfVxuXG4gIG1hdGNoTm9kZXMobm9kZXMpIHtcbiAgICBsZXQgbWF0Y2hlcztcblxuICAgIGNvbnN0IHN1YnN0aXR1dGlvbk5vZGVzID0gdGhpcy5ub2RlcywgIC8vL1xuICAgICAgICAgIHN1YnN0aXR1dGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaFN1YnN0aXR1dGlvbk5vZGVzKHN1YnN0aXR1dGlvbk5vZGVzLCBub2Rlcyk7XG5cbiAgICBtYXRjaGVzID0gc3Vic3RpdHV0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuXG4gICAgaWYgKCFtYXRjaGVzKSB7XG4gICAgICBjb25zdCBjaGlsZE5vZGVzID0gbm9kZXMsIC8vL1xuICAgICAgICAgICAgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlTWF0Y2hlcyA9IG1hdGNoQnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlKGNoaWxkTm9kZXMsIChicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICAgICAgICBub2RlcyA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgICAgICAgICBhc3NlcnRpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hTdWJzdGl0dXRpb25Ob2RlcyhzdWJzdGl0dXRpb25Ob2Rlcywgbm9kZXMpLFxuICAgICAgICAgICAgICAgICAgICBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVNYXRjaGVzID0gYXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlczsgLy8vXG5cbiAgICAgICAgICAgICAgcmV0dXJuIGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZU1hdGNoZXM7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgbWF0Y2hlcyA9IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZU1hdGNoZXM7IC8vL1xuICAgIH1cblxuICAgIHJldHVybiBtYXRjaGVzO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZU5hbWVBbmROb2Rlcyh2YXJpYWJsZU5hbWUsIG5vZGVzKSB7XG4gICAgY29uc3QgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbUNoaWxkTm9kZXMobm9kZXMpO1xuXG4gICAgaWYgKGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKTtcblxuICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBzdWJzdGl0dXRpb24gPSBuZXcgU3Vic3RpdHV0aW9uKHZhcmlhYmxlTmFtZSwgbm9kZXMpO1xuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbjtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaFN1YnN0aXR1dGlvbk5vZGUoc3Vic3RpdHV0aW9uTm9kZSwgbm9kZSkge1xuICBsZXQgc3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICBydWxlTm9kZVRlcm1pbmFsTm9kZSA9IHN1YnN0aXR1dGlvbk5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICBpZiAobm9kZVRlcm1pbmFsTm9kZSA9PT0gcnVsZU5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICBpZiAobm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgICAgc3Vic3RpdHV0aW9uVGVybWluYWxOb2RlID0gc3Vic3RpdHV0aW9uTm9kZSwgIC8vL1xuICAgICAgICAgICAgc3Vic3RpdHV0aW9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoU3Vic3RpdHV0aW9uVGVybWluYWxOb2RlKHN1YnN0aXR1dGlvblRlcm1pbmFsTm9kZSwgdGVybWluYWxOb2RlKTtcblxuICAgICAgc3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMgPSBzdWJzdGl0dXRpb25UZXJtaW5hbE5vZGVNYXRjaGVzOyAgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGUsIC8vL1xuICAgICAgICAgICAgc3Vic3RpdHV0aW9uTm9uVGVybWluYWxOb2RlID0gc3Vic3RpdHV0aW9uTm9kZSwgIC8vL1xuICAgICAgICAgICAgc3Vic3RpdHV0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoU3Vic3RpdHV0aW9uTm9uVGVybWluYWxOb2RlKHN1YnN0aXR1dGlvbk5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlKTtcblxuICAgICAgc3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMgPSBzdWJzdGl0dXRpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3Vic3RpdHV0aW9uTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoU3Vic3RpdHV0aW9uTm9kZXMoc3Vic3RpdHV0aW9uTm9kZXMsIG5vZGVzKSB7XG4gIGxldCBzdWJzdGl0dXRpb25Ob2Rlc01hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBub2Rlc0xlbmd0aCA9IG5vZGVzLmxlbmd0aCxcbiAgICAgICAgc3Vic3RpdHV0aW9uTm9kZXNMZW5ndGggPSBzdWJzdGl0dXRpb25Ob2Rlcy5sZW5ndGg7XG5cbiAgaWYgKG5vZGVzTGVuZ3RoID09PSBzdWJzdGl0dXRpb25Ob2Rlc0xlbmd0aCkge1xuICAgIHN1YnN0aXR1dGlvbk5vZGVzTWF0Y2hlcyA9IG5vZGVzLmV2ZXJ5KChub2RlLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uTm9kZSA9IHN1YnN0aXR1dGlvbk5vZGVzW2luZGV4XSxcbiAgICAgICAgICAgIHN1YnN0aXR1dGlvbk5vZGVNYXRjaGVzID0gbWF0Y2hTdWJzdGl0dXRpb25Ob2RlKHN1YnN0aXR1dGlvbk5vZGUsIG5vZGUpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBzdWJzdGl0dXRpb25Ob2Rlc01hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoU3Vic3RpdHV0aW9uVGVybWluYWxOb2RlKHN1YnN0aXR1dGlvblRlcm1pbmFsTm9kZSwgdGVybWluYWxOb2RlKSB7XG4gIGNvbnN0IG1hdGNoZXMgPSBzdWJzdGl0dXRpb25UZXJtaW5hbE5vZGUubWF0Y2godGVybWluYWxOb2RlKSxcbiAgICAgICAgc3Vic3RpdHV0aW9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoZXM7ICAvLy9cblxuICByZXR1cm4gc3Vic3RpdHV0aW9uVGVybWluYWxOb2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hTdWJzdGl0dXRpb25Ob25UZXJtaW5hbE5vZGUoc3Vic3RpdHV0aW9uTm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUpIHtcbiAgbGV0IHN1YnN0aXR1dGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICBzdWJzdGl0dXRpb25SdWxlTmFtZSA9IHN1YnN0aXR1dGlvbk5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICBpZiAocnVsZU5hbWUgPT09IHN1YnN0aXR1dGlvblJ1bGVOYW1lKSB7XG4gICAgY29uc3QgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgc3Vic3RpdHV0aW9uQ2hpbGROb2RlcyA9IHN1YnN0aXR1dGlvbk5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICBzdWJzdGl0dXRpb25Ob2RlcyA9IHN1YnN0aXR1dGlvbkNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIHN1YnN0aXR1dGlvbk5vZGVzTWF0Y2hlcyA9IG1hdGNoU3Vic3RpdHV0aW9uTm9kZXMoc3Vic3RpdHV0aW9uTm9kZXMsIG5vZGVzKTtcblxuICAgIHN1YnN0aXR1dGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBzdWJzdGl0dXRpb25Ob2Rlc01hdGNoZXM7IC8vL1xuICB9XG5cbiAgcmV0dXJuIHN1YnN0aXR1dGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG4iXSwibmFtZXMiOlsiU3Vic3RpdHV0aW9uIiwidmFyaWFibGVOYW1lIiwibm9kZXMiLCJnZXRWYXJpYWJsZU5hbWUiLCJnZXROb2RlcyIsIm1hdGNoTm9kZXMiLCJtYXRjaGVzIiwic3Vic3RpdHV0aW9uTm9kZXMiLCJzdWJzdGl0dXRpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzIiwibWF0Y2hTdWJzdGl0dXRpb25Ob2RlcyIsImNoaWxkTm9kZXMiLCJicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVNYXRjaGVzIiwibWF0Y2hCcmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUiLCJicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJnZXRDaGlsZE5vZGVzIiwiYXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyIsImZyb21WYXJpYWJsZU5hbWVBbmROb2RlcyIsImJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUZyb21DaGlsZE5vZGVzIiwic3Vic3RpdHV0aW9uIiwibWF0Y2hTdWJzdGl0dXRpb25Ob2RlIiwic3Vic3RpdHV0aW9uTm9kZSIsIm5vZGUiLCJzdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcyIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInJ1bGVOb2RlVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwic3Vic3RpdHV0aW9uVGVybWluYWxOb2RlIiwic3Vic3RpdHV0aW9uVGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoU3Vic3RpdHV0aW9uVGVybWluYWxOb2RlIiwic3Vic3RpdHV0aW9uTm9uVGVybWluYWxOb2RlIiwibWF0Y2hTdWJzdGl0dXRpb25Ob25UZXJtaW5hbE5vZGUiLCJzdWJzdGl0dXRpb25Ob2Rlc01hdGNoZXMiLCJub2Rlc0xlbmd0aCIsImxlbmd0aCIsInN1YnN0aXR1dGlvbk5vZGVzTGVuZ3RoIiwiZXZlcnkiLCJpbmRleCIsIm1hdGNoIiwicnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIs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
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdWJzdGl0dXRpb24uanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG1hdGNoTm9kZXMsIGJyYWNrZXRlZENoaWxkTm9kZUZyb21DaGlsZE5vZGVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL25vZGVcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3Vic3RpdHV0aW9uIHtcbiAgY29uc3RydWN0b3IodmFyaWFibGVOYW1lLCBub2Rlcykge1xuICAgIHRoaXMudmFyaWFibGVOYW1lID0gdmFyaWFibGVOYW1lO1xuICAgIHRoaXMubm9kZXMgPSBub2RlcztcbiAgfVxuXG4gIGdldFZhcmlhYmxlTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZU5hbWU7XG4gIH1cblxuICBnZXROb2RlcygpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlcztcbiAgfVxuXG4gIG1hdGNoTm9kZXMobm9kZXMpIHtcbiAgICBsZXQgbWF0Y2hlcztcblxuICAgIGNvbnN0IG5vZGVzQSA9IHRoaXMubm9kZXMsICAvLy9cbiAgICAgICAgICBub2Rlc0IgPSBub2RlcyxcbiAgICAgICAgICBtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaCA9IG1hdGNoTm9kZXMobm9kZXNBLCBub2Rlc0IpO1xuXG4gICAgbWF0Y2hlcyA9IG1ldGFTdWJzdGl0dXRpb25Ob2Rlc01hdGNoOyAgLy8vXG5cbiAgICBpZiAoIW1hdGNoZXMpIHtcbiAgICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBub2RlcywgLy8vXG4gICAgICAgICAgICBicmFja2V0ZWRDaGlsZE5vZGUgPSBicmFja2V0ZWRDaGlsZE5vZGVGcm9tQ2hpbGROb2RlcyhjaGlsZE5vZGVzKTtcblxuICAgICAgaWYgKGJyYWNrZXRlZENoaWxkTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBicmFja2V0ZWRDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgIG5vZGVzQiA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgICBub2Rlc01hdGNoID0gbWF0Y2hOb2Rlcyhub2Rlc0EsIG5vZGVzQik7XG5cbiAgICAgICAgbWF0Y2hlcyA9IG5vZGVzTWF0Y2g7IC8vL1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYXRjaGVzO1xuICB9XG5cbiAgc3RhdGljIGZyb21NZXRhdmFyaWFibGVOYW1lQW5kTm9kZXModmFyaWFibGVOYW1lLCBub2Rlcykge1xuICAgIGNvbnN0IGJyYWNrZXRlZENoaWxkTm9kZSA9IGJyYWNrZXRlZENoaWxkTm9kZUZyb21DaGlsZE5vZGVzKG5vZGVzKTtcblxuICAgIGlmIChicmFja2V0ZWRDaGlsZE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IGJyYWNrZXRlZENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCk7XG5cbiAgICAgIG5vZGVzID0gY2hpbGROb2RlczsgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgbWV0YVN1YnN0aXR1dGlvbiA9IG5ldyBTdWJzdGl0dXRpb24odmFyaWFibGVOYW1lLCBub2Rlcyk7XG5cbiAgICByZXR1cm4gbWV0YVN1YnN0aXR1dGlvbjtcbiAgfVxufVxuIiwiUmVhY3QuY3JlYXRlRWxlbWVudCJdLCJuYW1lcyI6WyJTdWJzdGl0dXRpb24iLCJ2YXJpYWJsZU5hbWUiLCJub2RlcyIsImdldFZhcmlhYmxlTmFtZSIsImdldE5vZGVzIiwibWF0Y2hOb2RlcyIsIm1hdGNoZXMiLCJub2Rlc0EiLCJub2Rlc0IiLCJtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaCIsImNoaWxkTm9kZXMiLCJicmFja2V0ZWRDaGlsZE5vZGUiLCJicmFja2V0ZWRDaGlsZE5vZGVGcm9tQ2hpbGROb2RlcyIsIm5vblRlcm1pbmFsTm9kZSIsImdldENoaWxkTm9kZXMiLCJub2Rlc01hdGNoIiwiZnJvbU1ldGF2YXJpYWJsZU5hbWVBbmROb2RlcyIsIm1ldGFTdWJzdGl0dXRpb24iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBSXFCQTs7O29CQUZ3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFOUMsSUFBQSxBQUFNQSw2QkFBTjthQUFNQSxhQUNQQyxZQUFZLEVBQUVDLEtBQUs7OEJBRFpGO1FBRWpCLElBQUksQ0FBQ0MsWUFBWSxHQUFHQTtRQUNwQixJQUFJLENBQUNDLEtBQUssR0FBR0E7O2lCQUhJRjs7WUFNbkJHLEtBQUFBO21CQUFBQSxTQUFBQSxrQkFBa0I7Z0JBQ2hCLE9BQU8sSUFBSSxDQUFDRixZQUFZO1lBQzFCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLFdBQVc7Z0JBQ1QsT0FBTyxJQUFJLENBQUNGLEtBQUs7WUFDbkI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsV0FBV0gsS0FBSyxFQUFFO2dCQUNoQixJQUFJSTtnQkFFSixJQUFNQyxTQUFTLElBQUksQ0FBQ0wsS0FBSyxFQUNuQk0sU0FBU04sT0FDVE8sNkJBQTZCSixJQUFBQSxnQkFBVSxFQUFDRSxRQUFRQztnQkFFdERGLFVBQVVHLDRCQUE2QixHQUFHO2dCQUUxQyxJQUFJLENBQUNILFNBQVM7b0JBQ1osSUFBTUksYUFBYVIsT0FDYlMscUJBQXFCQyxJQUFBQSxzQ0FBZ0MsRUFBQ0Y7b0JBRTVELElBQUlDLHVCQUF1QixJQUFJLEVBQUU7d0JBQy9CLElBQU1FLGtCQUFrQkYsb0JBQ2xCRCxjQUFhRyxnQkFBZ0JDLGFBQWEsSUFDMUNOLFVBQVNFLGFBQ1RLLGFBQWFWLElBQUFBLGdCQUFVLEVBQUNFLFFBQVFDO3dCQUV0Q0YsVUFBVVMsWUFBWSxHQUFHO29CQUMzQixDQUFDO2dCQUNILENBQUM7Z0JBRUQsT0FBT1Q7WUFDVDs7OztZQUVPVSxLQUFBQTttQkFBUCxTQUFPQSw2QkFBNkJmLFlBQVksRUFBRUMsS0FBSyxFQUFFO2dCQUN2RCxJQUFNUyxxQkFBcUJDLElBQUFBLHNDQUFnQyxFQUFDVjtnQkFFNUQsSUFBSVMsdUJBQXVCLElBQUksRUFBRTtvQkFDL0IsSUFBTUUsa0JBQWtCRixvQkFDbEJELGFBQWFHLGdCQUFnQkMsYUFBYTtvQkFFaERaLFFBQVFRLFlBQVksR0FBRztnQkFDekIsQ0FBQztnQkFFRCxJQUFNTyxtQkFBbUIsSUFsRFJqQixhQWtEeUJDLGNBQWNDO2dCQUV4RCxPQUFPZTtZQUNUOzs7V0FyRG1CakIifQ==
@@ -9,9 +9,6 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- front: function() {
13
- return front;
14
- },
15
12
  first: function() {
16
13
  return first;
17
14
  },
@@ -51,7 +48,7 @@ function _interopRequireDefault(obj) {
51
48
  default: obj
52
49
  };
53
50
  }
54
- var front = _necessary.arrayUtilities.front, first = _necessary.arrayUtilities.first, second = _necessary.arrayUtilities.second, third = _necessary.arrayUtilities.third, last = _necessary.arrayUtilities.last, push = _necessary.arrayUtilities.push, prune = _necessary.arrayUtilities.prune, filter = _necessary.arrayUtilities.filter;
51
+ var first = _necessary.arrayUtilities.first, second = _necessary.arrayUtilities.second, third = _necessary.arrayUtilities.third, last = _necessary.arrayUtilities.last, push = _necessary.arrayUtilities.push, prune = _necessary.arrayUtilities.prune, filter = _necessary.arrayUtilities.filter;
55
52
  function someSubArray(array, subArrayLength, callback) {
56
53
  var found = false;
57
54
  var arrayLength = array.length, indexesLength = arrayLength, permutationLength = subArrayLength; ///
@@ -99,4 +96,4 @@ function rightDifference(arrayA, arrayB) {
99
96
  });
100
97
  }
101
98
 
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYXJyYXkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgcGVybXV0YXRpb25zTWF0cml4IGZyb20gXCIuLi9wZXJtdXRhdGlvbnNNYXRyaXhcIjtcblxuaW1wb3J0IHsgTUFYSU1VTV9JTkRFWEVTX0xFTkdUSCwgTUFYSU1VTV9QRVJNVVRBVElPTl9MRU5HVEggfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBjb25zdCB7IGZyb250LCBmaXJzdCwgc2Vjb25kLCB0aGlyZCwgbGFzdCwgcHVzaCwgcHJ1bmUsIGZpbHRlciB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBzb21lU3ViQXJyYXkoYXJyYXksIHN1YkFycmF5TGVuZ3RoLCBjYWxsYmFjaykge1xuICBsZXQgZm91bmQgPSBmYWxzZTtcblxuICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgaW5kZXhlc0xlbmd0aCA9IGFycmF5TGVuZ3RoLCAvLy9cbiAgICAgICAgcGVybXV0YXRpb25MZW5ndGggPSBzdWJBcnJheUxlbmd0aDsgLy8vXG5cbiAgaWYgKHBlcm11dGF0aW9uTGVuZ3RoIDw9IE1BWElNVU1fUEVSTVVUQVRJT05fTEVOR1RIKSB7XG4gICAgbGV0IG9mZnNldCxcbiAgICAgICAgcGVybXV0YXRpb25zO1xuXG4gICAgaWYgKGluZGV4ZXNMZW5ndGggPiBNQVhJTVVNX0lOREVYRVNfTEVOR1RIKSB7XG4gICAgICBvZmZzZXQgPSBpbmRleGVzTGVuZ3RoIC0gTUFYSU1VTV9JTkRFWEVTX0xFTkdUSDtcblxuICAgICAgcGVybXV0YXRpb25zID0gcGVybXV0YXRpb25zTWF0cml4W01BWElNVU1fSU5ERVhFU19MRU5HVEhdW3Blcm11dGF0aW9uTGVuZ3RoXTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2Zmc2V0ID0gMDtcblxuICAgICAgcGVybXV0YXRpb25zID0gcGVybXV0YXRpb25zTWF0cml4W2luZGV4ZXNMZW5ndGhdW3Blcm11dGF0aW9uTGVuZ3RoXTtcbiAgICB9XG5cbiAgICBpZiAocGVybXV0YXRpb25zICE9PSBudWxsKSB7XG4gICAgICBmb3VuZCA9IHBlcm11dGF0aW9ucy5zb21lKChwZXJtdXRhdGlvbikgPT4ge1xuICAgICAgICBpZiAocGVybXV0YXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBzdWJBcnJheSA9IFtdO1xuXG4gICAgICAgICAgZm9yIChsZXQgcG9zaXRpb24gPSAwOyBwb3NpdGlvbiA8IHBlcm11dGF0aW9uTGVuZ3RoOyBwb3NpdGlvbisrKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHBlcm11dGF0aW9uW3Bvc2l0aW9uXSArIG9mZnNldCxcbiAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICAgICAgICAgIHN1YkFycmF5LnB1c2goZWxlbWVudCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcGFzc2VkID0gY2FsbGJhY2soc3ViQXJyYXkpO1xuXG4gICAgICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZm91bmQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsZWZ0RGlmZmVyZW5jZShhcnJheUEsIGFycmF5Qikge1xuICBmaWx0ZXIoYXJyYXlBLCAoZWxlbWVudEEpID0+IHtcbiAgICBjb25zdCBhcnJheUJJbmNsdWRlc0VsZW1lbnRBID0gYXJyYXlCLmluY2x1ZGVzKGVsZW1lbnRBKTtcblxuICAgIGlmICghYXJyYXlCSW5jbHVkZXNFbGVtZW50QSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJpZ2h0RGlmZmVyZW5jZShhcnJheUEsIGFycmF5Qikge1xuICBmaWx0ZXIoYXJyYXlCLCAoZWxlbWVudEIpID0+IHtcbiAgICBjb25zdCBhcnJheUFJbmNsdWRlc0VsZW1lbnRCID0gYXJyYXlBLmluY2x1ZGVzKGVsZW1lbnRCKTtcblxuICAgIGlmICghYXJyYXlBSW5jbHVkZXNFbGVtZW50Qikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJmcm9udCIsImZpcnN0Iiwic2Vjb25kIiwidGhpcmQiLCJsYXN0IiwicHVzaCIsInBydW5lIiwiZmlsdGVyIiwic29tZVN1YkFycmF5IiwibGVmdERpZmZlcmVuY2UiLCJyaWdodERpZmZlcmVuY2UiLCJhcnJheVV0aWxpdGllcyIsImFycmF5Iiwic3ViQXJyYXlMZW5ndGgiLCJjYWxsYmFjayIsImZvdW5kIiwiYXJyYXlMZW5ndGgiLCJsZW5ndGgiLCJpbmRleGVzTGVuZ3RoIiwicGVybXV0YXRpb25MZW5ndGgiLCJNQVhJTVVNX1BFUk1VVEFUSU9OX0xFTkdUSCIsIm9mZnNldCIsInBlcm11dGF0aW9ucyIsIk1BWElNVU1fSU5ERVhFU19MRU5HVEgiLCJwZXJtdXRhdGlvbnNNYXRyaXgiLCJzb21lIiwicGVybXV0YXRpb24iLCJzdWJBcnJheSIsInBvc2l0aW9uIiwiaW5kZXgiLCJlbGVtZW50IiwicGFzc2VkIiwiYXJyYXlBIiwiYXJyYXlCIiwiZWxlbWVudEEiLCJhcnJheUJJbmNsdWRlc0VsZW1lbnRBIiwiaW5jbHVkZXMiLCJlbGVtZW50QiIsImFycmF5QUluY2x1ZGVzRWxlbWVudEIiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVFlQSxLQUFLO2VBQUxBOztJQUFPQyxLQUFLO2VBQUxBOztJQUFPQyxNQUFNO2VBQU5BOztJQUFRQyxLQUFLO2VBQUxBOztJQUFPQyxJQUFJO2VBQUpBOztJQUFNQyxJQUFJO2VBQUpBOztJQUFNQyxLQUFLO2VBQUxBOztJQUFPQyxNQUFNO2VBQU5BOztJQUUvQ0MsWUFBWTtlQUFaQTs7SUE4Q0FDLGNBQWM7ZUFBZEE7O0lBVUFDLGVBQWU7ZUFBZkE7Ozt5QkFoRWU7dUVBRUE7eUJBRW9DOzs7Ozs7QUFFNUQsSUFBUVYsUUFBMkRXLHlCQUFjLENBQXpFWCxPQUFPQyxRQUFvRFUseUJBQWMsQ0FBbEVWLE9BQU9DLFNBQTZDUyx5QkFBYyxDQUEzRFQsUUFBUUMsUUFBcUNRLHlCQUFjLENBQW5EUixPQUFPQyxPQUE4Qk8seUJBQWMsQ0FBNUNQLE1BQU1DLE9BQXdCTSx5QkFBYyxDQUF0Q04sTUFBTUMsUUFBa0JLLHlCQUFjLENBQWhDTCxPQUFPQyxTQUFXSSx5QkFBYyxDQUF6Qko7QUFFeEQsU0FBU0MsYUFBYUksS0FBSyxFQUFFQyxjQUFjLEVBQUVDLFFBQVEsRUFBRTtJQUM1RCxJQUFJQyxRQUFRLEtBQUs7SUFFakIsSUFBTUMsY0FBY0osTUFBTUssTUFBTSxFQUMxQkMsZ0JBQWdCRixhQUNoQkcsb0JBQW9CTixnQkFBZ0IsR0FBRztJQUU3QyxJQUFJTSxxQkFBcUJDLHFDQUEwQixFQUFFO1FBQ25ELElBQUlDLFFBQ0FDO1FBRUosSUFBSUosZ0JBQWdCSyxpQ0FBc0IsRUFBRTtZQUMxQ0YsU0FBU0gsZ0JBQWdCSyxpQ0FBc0I7WUFFL0NELGVBQWVFLDJCQUFrQixDQUFDRCxpQ0FBc0IsQ0FBQyxDQUFDSixrQkFBa0I7UUFDOUUsT0FBTztZQUNMRSxTQUFTO1lBRVRDLGVBQWVFLDJCQUFrQixDQUFDTixjQUFjLENBQUNDLGtCQUFrQjtRQUNyRSxDQUFDO1FBRUQsSUFBSUcsaUJBQWlCLElBQUksRUFBRTtZQUN6QlAsUUFBUU8sYUFBYUcsSUFBSSxDQUFDLFNBQUNDLGFBQWdCO2dCQUN6QyxJQUFJQSxnQkFBZ0IsSUFBSSxFQUFFO29CQUN4QixJQUFNQyxXQUFXLEVBQUU7b0JBRW5CLElBQUssSUFBSUMsV0FBVyxHQUFHQSxXQUFXVCxtQkFBbUJTLFdBQVk7d0JBQy9ELElBQU1DLFFBQVFILFdBQVcsQ0FBQ0UsU0FBUyxHQUFHUCxRQUNoQ1MsVUFBVWxCLEtBQUssQ0FBQ2lCLE1BQU07d0JBRTVCRixTQUFTdEIsSUFBSSxDQUFDeUI7b0JBQ2hCO29CQUVBLElBQU1DLFNBQVNqQixTQUFTYTtvQkFFeEIsSUFBSUksUUFBUTt3QkFDVixPQUFPLElBQUk7b0JBQ2IsQ0FBQztnQkFDSCxDQUFDO1lBQ0g7UUFDRixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU9oQjtBQUNUO0FBRU8sU0FBU04sZUFBZXVCLE1BQU0sRUFBRUMsTUFBTSxFQUFFO0lBQzdDMUIsT0FBT3lCLFFBQVEsU0FBQ0UsVUFBYTtRQUMzQixJQUFNQyx5QkFBeUJGLE9BQU9HLFFBQVEsQ0FBQ0Y7UUFFL0MsSUFBSSxDQUFDQyx3QkFBd0I7WUFDM0IsT0FBTyxJQUFJO1FBQ2IsQ0FBQztJQUNIO0FBQ0Y7QUFFTyxTQUFTekIsZ0JBQWdCc0IsTUFBTSxFQUFFQyxNQUFNLEVBQUU7SUFDOUMxQixPQUFPMEIsUUFBUSxTQUFDSSxVQUFhO1FBQzNCLElBQU1DLHlCQUF5Qk4sT0FBT0ksUUFBUSxDQUFDQztRQUUvQyxJQUFJLENBQUNDLHdCQUF3QjtZQUMzQixPQUFPLElBQUk7UUFDYixDQUFDO0lBQ0g7QUFDRiJ9
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYXJyYXkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgcGVybXV0YXRpb25zTWF0cml4IGZyb20gXCIuLi9wZXJtdXRhdGlvbnNNYXRyaXhcIjtcblxuaW1wb3J0IHsgTUFYSU1VTV9JTkRFWEVTX0xFTkdUSCwgTUFYSU1VTV9QRVJNVVRBVElPTl9MRU5HVEggfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBjb25zdCB7IGZpcnN0LCBzZWNvbmQsIHRoaXJkLCBsYXN0LCBwdXNoLCBwcnVuZSwgZmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWVTdWJBcnJheShhcnJheSwgc3ViQXJyYXlMZW5ndGgsIGNhbGxiYWNrKSB7XG4gIGxldCBmb3VuZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGFycmF5TGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICBpbmRleGVzTGVuZ3RoID0gYXJyYXlMZW5ndGgsIC8vL1xuICAgICAgICBwZXJtdXRhdGlvbkxlbmd0aCA9IHN1YkFycmF5TGVuZ3RoOyAvLy9cblxuICBpZiAocGVybXV0YXRpb25MZW5ndGggPD0gTUFYSU1VTV9QRVJNVVRBVElPTl9MRU5HVEgpIHtcbiAgICBsZXQgb2Zmc2V0LFxuICAgICAgICBwZXJtdXRhdGlvbnM7XG5cbiAgICBpZiAoaW5kZXhlc0xlbmd0aCA+IE1BWElNVU1fSU5ERVhFU19MRU5HVEgpIHtcbiAgICAgIG9mZnNldCA9IGluZGV4ZXNMZW5ndGggLSBNQVhJTVVNX0lOREVYRVNfTEVOR1RIO1xuXG4gICAgICBwZXJtdXRhdGlvbnMgPSBwZXJtdXRhdGlvbnNNYXRyaXhbTUFYSU1VTV9JTkRFWEVTX0xFTkdUSF1bcGVybXV0YXRpb25MZW5ndGhdO1xuICAgIH0gZWxzZSB7XG4gICAgICBvZmZzZXQgPSAwO1xuXG4gICAgICBwZXJtdXRhdGlvbnMgPSBwZXJtdXRhdGlvbnNNYXRyaXhbaW5kZXhlc0xlbmd0aF1bcGVybXV0YXRpb25MZW5ndGhdO1xuICAgIH1cblxuICAgIGlmIChwZXJtdXRhdGlvbnMgIT09IG51bGwpIHtcbiAgICAgIGZvdW5kID0gcGVybXV0YXRpb25zLnNvbWUoKHBlcm11dGF0aW9uKSA9PiB7XG4gICAgICAgIGlmIChwZXJtdXRhdGlvbiAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHN1YkFycmF5ID0gW107XG5cbiAgICAgICAgICBmb3IgKGxldCBwb3NpdGlvbiA9IDA7IHBvc2l0aW9uIDwgcGVybXV0YXRpb25MZW5ndGg7IHBvc2l0aW9uKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcGVybXV0YXRpb25bcG9zaXRpb25dICsgb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgICAgICAgICAgc3ViQXJyYXkucHVzaChlbGVtZW50KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFjayhzdWJBcnJheSk7XG5cbiAgICAgICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmb3VuZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxlZnREaWZmZXJlbmNlKGFycmF5QSwgYXJyYXlCKSB7XG4gIGZpbHRlcihhcnJheUEsIChlbGVtZW50QSkgPT4ge1xuICAgIGNvbnN0IGFycmF5QkluY2x1ZGVzRWxlbWVudEEgPSBhcnJheUIuaW5jbHVkZXMoZWxlbWVudEEpO1xuXG4gICAgaWYgKCFhcnJheUJJbmNsdWRlc0VsZW1lbnRBKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmlnaHREaWZmZXJlbmNlKGFycmF5QSwgYXJyYXlCKSB7XG4gIGZpbHRlcihhcnJheUIsIChlbGVtZW50QikgPT4ge1xuICAgIGNvbnN0IGFycmF5QUluY2x1ZGVzRWxlbWVudEIgPSBhcnJheUEuaW5jbHVkZXMoZWxlbWVudEIpO1xuXG4gICAgaWYgKCFhcnJheUFJbmNsdWRlc0VsZW1lbnRCKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImZpcnN0Iiwic2Vjb25kIiwidGhpcmQiLCJsYXN0IiwicHVzaCIsInBydW5lIiwiZmlsdGVyIiwic29tZVN1YkFycmF5IiwibGVmdERpZmZlcmVuY2UiLCJyaWdodERpZmZlcmVuY2UiLCJhcnJheVV0aWxpdGllcyIsImFycmF5Iiwic3ViQXJyYXlMZW5ndGgiLCJjYWxsYmFjayIsImZvdW5kIiwiYXJyYXlMZW5ndGgiLCJsZW5ndGgiLCJpbmRleGVzTGVuZ3RoIiwicGVybXV0YXRpb25MZW5ndGgiLCJNQVhJTVVNX1BFUk1VVEFUSU9OX0xFTkdUSCIsIm9mZnNldCIsInBlcm11dGF0aW9ucyIsIk1BWElNVU1fSU5ERVhFU19MRU5HVEgiLCJwZXJtdXRhdGlvbnNNYXRyaXgiLCJzb21lIiwicGVybXV0YXRpb24iLCJzdWJBcnJheSIsInBvc2l0aW9uIiwiaW5kZXgiLCJlbGVtZW50IiwicGFzc2VkIiwiYXJyYXlBIiwiYXJyYXlCIiwiZWxlbWVudEEiLCJhcnJheUJJbmNsdWRlc0VsZW1lbnRBIiwiaW5jbHVkZXMiLCJlbGVtZW50QiIsImFycmF5QUluY2x1ZGVzRWxlbWVudEIiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVFlQSxLQUFLO2VBQUxBOztJQUFPQyxNQUFNO2VBQU5BOztJQUFRQyxLQUFLO2VBQUxBOztJQUFPQyxJQUFJO2VBQUpBOztJQUFNQyxJQUFJO2VBQUpBOztJQUFNQyxLQUFLO2VBQUxBOztJQUFPQyxNQUFNO2VBQU5BOztJQUV4Q0MsWUFBWTtlQUFaQTs7SUE4Q0FDLGNBQWM7ZUFBZEE7O0lBVUFDLGVBQWU7ZUFBZkE7Ozt5QkFoRWU7dUVBRUE7eUJBRW9DOzs7Ozs7QUFFNUQsSUFBUVQsUUFBb0RVLHlCQUFjLENBQWxFVixPQUFPQyxTQUE2Q1MseUJBQWMsQ0FBM0RULFFBQVFDLFFBQXFDUSx5QkFBYyxDQUFuRFIsT0FBT0MsT0FBOEJPLHlCQUFjLENBQTVDUCxNQUFNQyxPQUF3Qk0seUJBQWMsQ0FBdENOLE1BQU1DLFFBQWtCSyx5QkFBYyxDQUFoQ0wsT0FBT0MsU0FBV0kseUJBQWMsQ0FBekJKO0FBRWpELFNBQVNDLGFBQWFJLEtBQUssRUFBRUMsY0FBYyxFQUFFQyxRQUFRLEVBQUU7SUFDNUQsSUFBSUMsUUFBUSxLQUFLO0lBRWpCLElBQU1DLGNBQWNKLE1BQU1LLE1BQU0sRUFDMUJDLGdCQUFnQkYsYUFDaEJHLG9CQUFvQk4sZ0JBQWdCLEdBQUc7SUFFN0MsSUFBSU0scUJBQXFCQyxxQ0FBMEIsRUFBRTtRQUNuRCxJQUFJQyxRQUNBQztRQUVKLElBQUlKLGdCQUFnQkssaUNBQXNCLEVBQUU7WUFDMUNGLFNBQVNILGdCQUFnQkssaUNBQXNCO1lBRS9DRCxlQUFlRSwyQkFBa0IsQ0FBQ0QsaUNBQXNCLENBQUMsQ0FBQ0osa0JBQWtCO1FBQzlFLE9BQU87WUFDTEUsU0FBUztZQUVUQyxlQUFlRSwyQkFBa0IsQ0FBQ04sY0FBYyxDQUFDQyxrQkFBa0I7UUFDckUsQ0FBQztRQUVELElBQUlHLGlCQUFpQixJQUFJLEVBQUU7WUFDekJQLFFBQVFPLGFBQWFHLElBQUksQ0FBQyxTQUFDQyxhQUFnQjtnQkFDekMsSUFBSUEsZ0JBQWdCLElBQUksRUFBRTtvQkFDeEIsSUFBTUMsV0FBVyxFQUFFO29CQUVuQixJQUFLLElBQUlDLFdBQVcsR0FBR0EsV0FBV1QsbUJBQW1CUyxXQUFZO3dCQUMvRCxJQUFNQyxRQUFRSCxXQUFXLENBQUNFLFNBQVMsR0FBR1AsUUFDaENTLFVBQVVsQixLQUFLLENBQUNpQixNQUFNO3dCQUU1QkYsU0FBU3RCLElBQUksQ0FBQ3lCO29CQUNoQjtvQkFFQSxJQUFNQyxTQUFTakIsU0FBU2E7b0JBRXhCLElBQUlJLFFBQVE7d0JBQ1YsT0FBTyxJQUFJO29CQUNiLENBQUM7Z0JBQ0gsQ0FBQztZQUNIO1FBQ0YsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPaEI7QUFDVDtBQUVPLFNBQVNOLGVBQWV1QixNQUFNLEVBQUVDLE1BQU0sRUFBRTtJQUM3QzFCLE9BQU95QixRQUFRLFNBQUNFLFVBQWE7UUFDM0IsSUFBTUMseUJBQXlCRixPQUFPRyxRQUFRLENBQUNGO1FBRS9DLElBQUksQ0FBQ0Msd0JBQXdCO1lBQzNCLE9BQU8sSUFBSTtRQUNiLENBQUM7SUFDSDtBQUNGO0FBRU8sU0FBU3pCLGdCQUFnQnNCLE1BQU0sRUFBRUMsTUFBTSxFQUFFO0lBQzlDMUIsT0FBTzBCLFFBQVEsU0FBQ0ksVUFBYTtRQUMzQixJQUFNQyx5QkFBeUJOLE9BQU9JLFFBQVEsQ0FBQ0M7UUFFL0MsSUFBSSxDQUFDQyx3QkFBd0I7WUFDM0IsT0FBTyxJQUFJO1FBQ2IsQ0FBQztJQUNIO0FBQ0YifQ==