occam-nominal 1.0.430 → 1.0.432

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.
@@ -26,32 +26,36 @@ const _element = require("../utilities/element");
26
26
  const _constants = require("../constants");
27
27
  const _instance = require("../utilities/instance");
28
28
  function stripBracketsFromTerm(term, context) {
29
- const termNode = term.getNode(), bracketedTermChildNode = bracketedTermChildNodeFromTermNode(termNode);
30
- if (bracketedTermChildNode !== null) {
31
- const termNode = bracketedTermChildNode; ///
32
- term = (0, _element.termFromTermNode)(termNode, context);
29
+ let termNode = term.getNode(), bracketedTermChildNode = bracketedTermChildNodeFromTermNode(termNode);
30
+ while(bracketedTermChildNode !== null){
31
+ termNode = bracketedTermChildNode; ///
32
+ bracketedTermChildNode = bracketedTermChildNodeFromTermNode(termNode);
33
33
  }
34
+ term = (0, _element.termFromTermNode)(termNode, context);
34
35
  return term;
35
36
  }
36
37
  function stripBracketsFromTermNode(termNode) {
37
- const bracketedTermChildNode = bracketedTermChildNodeFromTermNode(termNode);
38
- if (bracketedTermChildNode !== null) {
38
+ let bracketedTermChildNode = bracketedTermChildNodeFromTermNode(termNode);
39
+ while(bracketedTermChildNode !== null){
39
40
  termNode = bracketedTermChildNode; ///
41
+ bracketedTermChildNode = bracketedTermChildNodeFromTermNode(termNode);
40
42
  }
41
43
  return termNode;
42
44
  }
43
45
  function stripBracketsFromStatement(statement, context) {
44
- const statementNode = statement.getNode(), bracketedStatementChildNode = bracketedStatementChildNodeFromStatementNode(statementNode);
45
- if (bracketedStatementChildNode !== null) {
46
- const statementNode = bracketedStatementChildNode; ///
47
- statement = (0, _element.statementFromStatementNode)(statementNode, context);
46
+ let statementNode = statement.getNode(), bracketedStatementChildNode = bracketedStatementChildNodeFromStatementNode(statementNode);
47
+ while(bracketedStatementChildNode !== null){
48
+ statementNode = bracketedStatementChildNode; ///
49
+ bracketedStatementChildNode = bracketedStatementChildNodeFromStatementNode(statementNode);
48
50
  }
51
+ statement = (0, _element.statementFromStatementNode)(statementNode, context);
49
52
  return statement;
50
53
  }
51
54
  function stripBracketsFromStatementNode(statementNode) {
52
- const bracketedStatementChildNode = bracketedStatementChildNodeFromStatementNode(statementNode);
53
- if (bracketedStatementChildNode !== null) {
55
+ let bracketedStatementChildNode = bracketedStatementChildNodeFromStatementNode(statementNode);
56
+ while(bracketedStatementChildNode !== null){
54
57
  statementNode = bracketedStatementChildNode; ///
58
+ bracketedStatementChildNode = bracketedStatementChildNodeFromStatementNode(statementNode);
55
59
  }
56
60
  return statementNode;
57
61
  }
@@ -74,4 +78,4 @@ function bracketedStatementChildNodeFromStatementNode(statementNode) {
74
78
  return bracketedStatementChildNode;
75
79
  }
76
80
 
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYnJhY2tldHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHRlcm1Gcm9tVGVybU5vZGUsIHN0YXRlbWVudEZyb21TdGF0ZW1lbnROb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyBCUkFDS0VURURfVEVSTV9ERVBUSCwgQlJBQ0tFVEVEX1NUQVRFTUVOVF9ERVBUSCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGJyYWNrZXRlZENvbnN0cnVjdG9yRnJvbU5vdGhpbmcsIGJyYWNrZXRlZENvbWJpbmF0b3JGcm9tTm90aGluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvaW5zdGFuY2VcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwQnJhY2tldHNGcm9tVGVybSh0ZXJtLCBjb250ZXh0KSB7XG4gIGNvbnN0IHRlcm1Ob2RlID0gdGVybS5nZXROb2RlKCksXG4gICAgICAgIGJyYWNrZXRlZFRlcm1DaGlsZE5vZGUgPSBicmFja2V0ZWRUZXJtQ2hpbGROb2RlRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlKTtcblxuICBpZiAoYnJhY2tldGVkVGVybUNoaWxkTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHRlcm1Ob2RlID0gYnJhY2tldGVkVGVybUNoaWxkTm9kZTsgIC8vL1xuXG4gICAgdGVybSA9IHRlcm1Gcm9tVGVybU5vZGUodGVybU5vZGUsIGNvbnRleHQpO1xuICB9XG5cbiAgcmV0dXJuIHRlcm07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcEJyYWNrZXRzRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlKSB7XG4gIGNvbnN0IGJyYWNrZXRlZFRlcm1DaGlsZE5vZGUgPSBicmFja2V0ZWRUZXJtQ2hpbGROb2RlRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlKTtcblxuICBpZiAoYnJhY2tldGVkVGVybUNoaWxkTm9kZSAhPT0gbnVsbCkge1xuICAgIHRlcm1Ob2RlID0gYnJhY2tldGVkVGVybUNoaWxkTm9kZTsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIHRlcm1Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUgPSBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZTsgIC8vL1xuXG4gICAgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpIHtcbiAgY29uc3QgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSAhPT0gbnVsbCkge1xuICAgIHN0YXRlbWVudE5vZGUgPSBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGU7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnROb2RlO1xufVxuXG5mdW5jdGlvbiBicmFja2V0ZWRUZXJtQ2hpbGROb2RlRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlKSB7XG4gIGxldCBicmFja2V0ZWRUZXJtQ2hpbGROb2RlID0gbnVsbDtcblxuICBjb25zdCBkZXB0aCA9IEJSQUNLRVRFRF9URVJNX0RFUFRILFxuICAgICAgICBicmFja2V0ZWRDb25zdHJ1Y3RvciA9IGJyYWNrZXRlZENvbnN0cnVjdG9yRnJvbU5vdGhpbmcoKSxcbiAgICAgICAgYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtID0gYnJhY2tldGVkQ29uc3RydWN0b3IuZ2V0VGVybSgpLFxuICAgICAgICBicmFja2V0ZWRDb25zdHJ1Y3RvclRlcm1Ob2RlID0gYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtLmdldE5vZGUoKSxcbiAgICAgICAgdGVybU5vZGVNYXRjaEJyYWNrZXRlZENvbnN0cnVjdG9yTm9kZSA9IHRlcm1Ob2RlLm1hdGNoKGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybU5vZGUsIGRlcHRoKTtcblxuICBpZiAodGVybU5vZGVNYXRjaEJyYWNrZXRlZENvbnN0cnVjdG9yTm9kZSkge1xuICAgIGNvbnN0IHNpbmd1bGFyVGVybU5vZGUgPSB0ZXJtTm9kZS5nZXRTaW5ndWxhclRlcm1Ob2RlKCk7XG5cbiAgICBicmFja2V0ZWRUZXJtQ2hpbGROb2RlID0gc2luZ3VsYXJUZXJtTm9kZTsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIGJyYWNrZXRlZFRlcm1DaGlsZE5vZGU7XG59XG5cbmZ1bmN0aW9uIGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpIHtcbiAgbGV0IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSA9IG51bGw7XG5cbiAgY29uc3QgZGVwdGggPSBCUkFDS0VURURfU1RBVEVNRU5UX0RFUFRILFxuICAgICAgICBicmFja2V0ZWRDb21iaW5hdG9yID0gYnJhY2tldGVkQ29tYmluYXRvckZyb21Ob3RoaW5nKCksXG4gICAgICAgIGJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnQgPSBicmFja2V0ZWRDb21iaW5hdG9yLmdldFN0YXRlbWVudCgpLFxuICAgICAgICBicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50bk5vZGUgPSBicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZU1hdGNoQnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlLm1hdGNoKGJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnRuTm9kZSwgZGVwdGgpO1xuXG4gIGlmIChzdGF0ZW1lbnROb2RlTWF0Y2hCcmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50Tm9kZSkge1xuICAgIGNvbnN0IHNpbmd1bGFyU3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGUuZ2V0U2luZ3VsYXJTdGF0ZW1lbnROb2RlKCk7XG5cbiAgICBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUgPSBzaW5ndWxhclN0YXRlbWVudE5vZGU7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGU7XG59XG4iXSwibmFtZXMiOlsic3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnQiLCJzdHJpcEJyYWNrZXRzRnJvbVN0YXRlbWVudE5vZGUiLCJzdHJpcEJyYWNrZXRzRnJvbVRlcm0iLCJzdHJpcEJyYWNrZXRzRnJvbVRlcm1Ob2RlIiwidGVybSIsImNvbnRleHQiLCJ0ZXJtTm9kZSIsImdldE5vZGUiLCJicmFja2V0ZWRUZXJtQ2hpbGROb2RlIiwiYnJhY2tldGVkVGVybUNoaWxkTm9kZUZyb21UZXJtTm9kZSIsInRlcm1Gcm9tVGVybU5vZGUiLCJzdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlIiwiYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRGcm9tU3RhdGVtZW50Tm9kZSIsImRlcHRoIiwiQlJBQ0tFVEVEX1RFUk1fREVQVEgiLCJicmFja2V0ZWRDb25zdHJ1Y3RvciIsImJyYWNrZXRlZENvbnN0cnVjdG9yRnJvbU5vdGhpbmciLCJicmFja2V0ZWRDb25zdHJ1Y3RvclRlcm0iLCJnZXRUZXJtIiwiYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtTm9kZSIsInRlcm1Ob2RlTWF0Y2hCcmFja2V0ZWRDb25zdHJ1Y3Rvck5vZGUiLCJtYXRjaCIsInNpbmd1bGFyVGVybU5vZGUiLCJnZXRTaW5ndWxhclRlcm1Ob2RlIiwiQlJBQ0tFVEVEX1NUQVRFTUVOVF9ERVBUSCIsImJyYWNrZXRlZENvbWJpbmF0b3IiLCJicmFja2V0ZWRDb21iaW5hdG9yRnJvbU5vdGhpbmciLCJicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50IiwiYnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudG5Ob2RlIiwic3RhdGVtZW50Tm9kZU1hdGNoQnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudE5vZGUiLCJzaW5ndWxhclN0YXRlbWVudE5vZGUiLCJnZXRTaW5ndWxhclN0YXRlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQTZCZ0JBO2VBQUFBOztRQWFBQztlQUFBQTs7UUFwQ0FDO2VBQUFBOztRQWFBQztlQUFBQTs7O3lCQWpCNkM7MkJBQ0c7MEJBQ2dCO0FBRXpFLFNBQVNELHNCQUFzQkUsSUFBSSxFQUFFQyxPQUFPO0lBQ2pELE1BQU1DLFdBQVdGLEtBQUtHLE9BQU8sSUFDdkJDLHlCQUF5QkMsbUNBQW1DSDtJQUVsRSxJQUFJRSwyQkFBMkIsTUFBTTtRQUNuQyxNQUFNRixXQUFXRSx3QkFBeUIsR0FBRztRQUU3Q0osT0FBT00sSUFBQUEseUJBQWdCLEVBQUNKLFVBQVVEO0lBQ3BDO0lBRUEsT0FBT0Q7QUFDVDtBQUVPLFNBQVNELDBCQUEwQkcsUUFBUTtJQUNoRCxNQUFNRSx5QkFBeUJDLG1DQUFtQ0g7SUFFbEUsSUFBSUUsMkJBQTJCLE1BQU07UUFDbkNGLFdBQVdFLHdCQUF5QixHQUFHO0lBQ3pDO0lBRUEsT0FBT0Y7QUFDVDtBQUVPLFNBQVNOLDJCQUEyQlcsU0FBUyxFQUFFTixPQUFPO0lBQzNELE1BQU1PLGdCQUFnQkQsVUFBVUosT0FBTyxJQUNqQ00sOEJBQThCQyw2Q0FBNkNGO0lBRWpGLElBQUlDLGdDQUFnQyxNQUFNO1FBQ3hDLE1BQU1ELGdCQUFnQkMsNkJBQThCLEdBQUc7UUFFdkRGLFlBQVlJLElBQUFBLG1DQUEwQixFQUFDSCxlQUFlUDtJQUN4RDtJQUVBLE9BQU9NO0FBQ1Q7QUFFTyxTQUFTViwrQkFBK0JXLGFBQWE7SUFDMUQsTUFBTUMsOEJBQThCQyw2Q0FBNkNGO0lBRWpGLElBQUlDLGdDQUFnQyxNQUFNO1FBQ3hDRCxnQkFBZ0JDLDZCQUE4QixHQUFHO0lBQ25EO0lBRUEsT0FBT0Q7QUFDVDtBQUVBLFNBQVNILG1DQUFtQ0gsUUFBUTtJQUNsRCxJQUFJRSx5QkFBeUI7SUFFN0IsTUFBTVEsUUFBUUMsK0JBQW9CLEVBQzVCQyx1QkFBdUJDLElBQUFBLHlDQUErQixLQUN0REMsMkJBQTJCRixxQkFBcUJHLE9BQU8sSUFDdkRDLCtCQUErQkYseUJBQXlCYixPQUFPLElBQy9EZ0Isd0NBQXdDakIsU0FBU2tCLEtBQUssQ0FBQ0YsOEJBQThCTjtJQUUzRixJQUFJTyx1Q0FBdUM7UUFDekMsTUFBTUUsbUJBQW1CbkIsU0FBU29CLG1CQUFtQjtRQUVyRGxCLHlCQUF5QmlCLGtCQUFtQixHQUFHO0lBQ2pEO0lBRUEsT0FBT2pCO0FBQ1Q7QUFFQSxTQUFTTSw2Q0FBNkNGLGFBQWE7SUFDakUsSUFBSUMsOEJBQThCO0lBRWxDLE1BQU1HLFFBQVFXLG9DQUF5QixFQUNqQ0Msc0JBQXNCQyxJQUFBQSx3Q0FBOEIsS0FDcERDLCtCQUErQkYsb0JBQW9CRyxZQUFZLElBQy9EQyxvQ0FBb0NGLDZCQUE2QnZCLE9BQU8sSUFDeEUwQixxREFBcURyQixjQUFjWSxLQUFLLENBQUNRLG1DQUFtQ2hCO0lBRWxILElBQUlpQixvREFBb0Q7UUFDdEQsTUFBTUMsd0JBQXdCdEIsY0FBY3VCLHdCQUF3QjtRQUVwRXRCLDhCQUE4QnFCLHVCQUF3QixHQUFHO0lBQzNEO0lBRUEsT0FBT3JCO0FBQ1QifQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYnJhY2tldHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHRlcm1Gcm9tVGVybU5vZGUsIHN0YXRlbWVudEZyb21TdGF0ZW1lbnROb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyBCUkFDS0VURURfVEVSTV9ERVBUSCwgQlJBQ0tFVEVEX1NUQVRFTUVOVF9ERVBUSCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGJyYWNrZXRlZENvbnN0cnVjdG9yRnJvbU5vdGhpbmcsIGJyYWNrZXRlZENvbWJpbmF0b3JGcm9tTm90aGluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvaW5zdGFuY2VcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwQnJhY2tldHNGcm9tVGVybSh0ZXJtLCBjb250ZXh0KSB7XG4gIGxldCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgYnJhY2tldGVkVGVybUNoaWxkTm9kZSA9IGJyYWNrZXRlZFRlcm1DaGlsZE5vZGVGcm9tVGVybU5vZGUodGVybU5vZGUpO1xuXG4gIHdoaWxlIChicmFja2V0ZWRUZXJtQ2hpbGROb2RlICE9PSBudWxsKSB7XG4gICAgdGVybU5vZGUgPSBicmFja2V0ZWRUZXJtQ2hpbGROb2RlOyAgLy8vXG5cbiAgICBicmFja2V0ZWRUZXJtQ2hpbGROb2RlID0gYnJhY2tldGVkVGVybUNoaWxkTm9kZUZyb21UZXJtTm9kZSh0ZXJtTm9kZSk7XG4gIH1cblxuICB0ZXJtID0gdGVybUZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIHRlcm07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcEJyYWNrZXRzRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlKSB7XG4gIGxldCBicmFja2V0ZWRUZXJtQ2hpbGROb2RlID0gYnJhY2tldGVkVGVybUNoaWxkTm9kZUZyb21UZXJtTm9kZSh0ZXJtTm9kZSk7XG5cbiAgd2hpbGUgKGJyYWNrZXRlZFRlcm1DaGlsZE5vZGUgIT09IG51bGwpIHtcbiAgICB0ZXJtTm9kZSA9IGJyYWNrZXRlZFRlcm1DaGlsZE5vZGU7ICAvLy9cblxuICAgIGJyYWNrZXRlZFRlcm1DaGlsZE5vZGUgPSBicmFja2V0ZWRUZXJtQ2hpbGROb2RlRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwQnJhY2tldHNGcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgd2hpbGUgKGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSAhPT0gbnVsbCkge1xuICAgIHN0YXRlbWVudE5vZGUgPSBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGU7ICAvLy9cblxuICAgIGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSA9IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIHN0YXRlbWVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwQnJhY2tldHNGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKSB7XG4gIGxldCBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUgPSBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICB3aGlsZSAoYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlICE9PSBudWxsKSB7XG4gICAgc3RhdGVtZW50Tm9kZSA9IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZTsgIC8vL1xuXG4gICAgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50Tm9kZTtcbn1cblxuZnVuY3Rpb24gYnJhY2tldGVkVGVybUNoaWxkTm9kZUZyb21UZXJtTm9kZSh0ZXJtTm9kZSkge1xuICBsZXQgYnJhY2tldGVkVGVybUNoaWxkTm9kZSA9IG51bGw7XG5cbiAgY29uc3QgZGVwdGggPSBCUkFDS0VURURfVEVSTV9ERVBUSCxcbiAgICAgICAgYnJhY2tldGVkQ29uc3RydWN0b3IgPSBicmFja2V0ZWRDb25zdHJ1Y3RvckZyb21Ob3RoaW5nKCksXG4gICAgICAgIGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybSA9IGJyYWNrZXRlZENvbnN0cnVjdG9yLmdldFRlcm0oKSxcbiAgICAgICAgYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtTm9kZSA9IGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybS5nZXROb2RlKCksXG4gICAgICAgIHRlcm1Ob2RlTWF0Y2hCcmFja2V0ZWRDb25zdHJ1Y3Rvck5vZGUgPSB0ZXJtTm9kZS5tYXRjaChicmFja2V0ZWRDb25zdHJ1Y3RvclRlcm1Ob2RlLCBkZXB0aCk7XG5cbiAgaWYgKHRlcm1Ob2RlTWF0Y2hCcmFja2V0ZWRDb25zdHJ1Y3Rvck5vZGUpIHtcbiAgICBjb25zdCBzaW5ndWxhclRlcm1Ob2RlID0gdGVybU5vZGUuZ2V0U2luZ3VsYXJUZXJtTm9kZSgpO1xuXG4gICAgYnJhY2tldGVkVGVybUNoaWxkTm9kZSA9IHNpbmd1bGFyVGVybU5vZGU7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBicmFja2V0ZWRUZXJtQ2hpbGROb2RlO1xufVxuXG5mdW5jdGlvbiBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKSB7XG4gIGxldCBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUgPSBudWxsO1xuXG4gIGNvbnN0IGRlcHRoID0gQlJBQ0tFVEVEX1NUQVRFTUVOVF9ERVBUSCxcbiAgICAgICAgYnJhY2tldGVkQ29tYmluYXRvciA9IGJyYWNrZXRlZENvbWJpbmF0b3JGcm9tTm90aGluZygpLFxuICAgICAgICBicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50ID0gYnJhY2tldGVkQ29tYmluYXRvci5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgYnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudG5Ob2RlID0gYnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHN0YXRlbWVudE5vZGVNYXRjaEJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZS5tYXRjaChicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50bk5vZGUsIGRlcHRoKTtcblxuICBpZiAoc3RhdGVtZW50Tm9kZU1hdGNoQnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudE5vZGUpIHtcbiAgICBjb25zdCBzaW5ndWxhclN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlLmdldFNpbmd1bGFyU3RhdGVtZW50Tm9kZSgpO1xuXG4gICAgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlID0gc2luZ3VsYXJTdGF0ZW1lbnROb2RlOyAgLy8vXG4gIH1cblxuICByZXR1cm4gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlO1xufVxuIl0sIm5hbWVzIjpbInN0cmlwQnJhY2tldHNGcm9tU3RhdGVtZW50Iiwic3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnROb2RlIiwic3RyaXBCcmFja2V0c0Zyb21UZXJtIiwic3RyaXBCcmFja2V0c0Zyb21UZXJtTm9kZSIsInRlcm0iLCJjb250ZXh0IiwidGVybU5vZGUiLCJnZXROb2RlIiwiYnJhY2tldGVkVGVybUNoaWxkTm9kZSIsImJyYWNrZXRlZFRlcm1DaGlsZE5vZGVGcm9tVGVybU5vZGUiLCJ0ZXJtRnJvbVRlcm1Ob2RlIiwic3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsImJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSIsImJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUZyb21TdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50RnJvbVN0YXRlbWVudE5vZGUiLCJkZXB0aCIsIkJSQUNLRVRFRF9URVJNX0RFUFRIIiwiYnJhY2tldGVkQ29uc3RydWN0b3IiLCJicmFja2V0ZWRDb25zdHJ1Y3RvckZyb21Ob3RoaW5nIiwiYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtIiwiZ2V0VGVybSIsImJyYWNrZXRlZENvbnN0cnVjdG9yVGVybU5vZGUiLCJ0ZXJtTm9kZU1hdGNoQnJhY2tldGVkQ29uc3RydWN0b3JOb2RlIiwibWF0Y2giLCJzaW5ndWxhclRlcm1Ob2RlIiwiZ2V0U2luZ3VsYXJUZXJtTm9kZSIsIkJSQUNLRVRFRF9TVEFURU1FTlRfREVQVEgiLCJicmFja2V0ZWRDb21iaW5hdG9yIiwiYnJhY2tldGVkQ29tYmluYXRvckZyb21Ob3RoaW5nIiwiYnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudCIsImdldFN0YXRlbWVudCIsImJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnRuTm9kZSIsInN0YXRlbWVudE5vZGVNYXRjaEJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnROb2RlIiwic2luZ3VsYXJTdGF0ZW1lbnROb2RlIiwiZ2V0U2luZ3VsYXJTdGF0ZW1lbnROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFpQ2dCQTtlQUFBQTs7UUFlQUM7ZUFBQUE7O1FBMUNBQztlQUFBQTs7UUFlQUM7ZUFBQUE7Ozt5QkFuQjZDOzJCQUNHOzBCQUNnQjtBQUV6RSxTQUFTRCxzQkFBc0JFLElBQUksRUFBRUMsT0FBTztJQUNqRCxJQUFJQyxXQUFXRixLQUFLRyxPQUFPLElBQ3ZCQyx5QkFBeUJDLG1DQUFtQ0g7SUFFaEUsTUFBT0UsMkJBQTJCLEtBQU07UUFDdENGLFdBQVdFLHdCQUF5QixHQUFHO1FBRXZDQSx5QkFBeUJDLG1DQUFtQ0g7SUFDOUQ7SUFFQUYsT0FBT00sSUFBQUEseUJBQWdCLEVBQUNKLFVBQVVEO0lBRWxDLE9BQU9EO0FBQ1Q7QUFFTyxTQUFTRCwwQkFBMEJHLFFBQVE7SUFDaEQsSUFBSUUseUJBQXlCQyxtQ0FBbUNIO0lBRWhFLE1BQU9FLDJCQUEyQixLQUFNO1FBQ3RDRixXQUFXRSx3QkFBeUIsR0FBRztRQUV2Q0EseUJBQXlCQyxtQ0FBbUNIO0lBQzlEO0lBRUEsT0FBT0E7QUFDVDtBQUVPLFNBQVNOLDJCQUEyQlcsU0FBUyxFQUFFTixPQUFPO0lBQzNELElBQUlPLGdCQUFnQkQsVUFBVUosT0FBTyxJQUNuQ00sOEJBQThCQyw2Q0FBNkNGO0lBRTdFLE1BQU9DLGdDQUFnQyxLQUFNO1FBQzNDRCxnQkFBZ0JDLDZCQUE4QixHQUFHO1FBRWpEQSw4QkFBOEJDLDZDQUE2Q0Y7SUFDN0U7SUFFQUQsWUFBWUksSUFBQUEsbUNBQTBCLEVBQUNILGVBQWVQO0lBRXRELE9BQU9NO0FBQ1Q7QUFFTyxTQUFTViwrQkFBK0JXLGFBQWE7SUFDMUQsSUFBSUMsOEJBQThCQyw2Q0FBNkNGO0lBRS9FLE1BQU9DLGdDQUFnQyxLQUFNO1FBQzNDRCxnQkFBZ0JDLDZCQUE4QixHQUFHO1FBRWpEQSw4QkFBOEJDLDZDQUE2Q0Y7SUFDN0U7SUFFQSxPQUFPQTtBQUNUO0FBRUEsU0FBU0gsbUNBQW1DSCxRQUFRO0lBQ2xELElBQUlFLHlCQUF5QjtJQUU3QixNQUFNUSxRQUFRQywrQkFBb0IsRUFDNUJDLHVCQUF1QkMsSUFBQUEseUNBQStCLEtBQ3REQywyQkFBMkJGLHFCQUFxQkcsT0FBTyxJQUN2REMsK0JBQStCRix5QkFBeUJiLE9BQU8sSUFDL0RnQix3Q0FBd0NqQixTQUFTa0IsS0FBSyxDQUFDRiw4QkFBOEJOO0lBRTNGLElBQUlPLHVDQUF1QztRQUN6QyxNQUFNRSxtQkFBbUJuQixTQUFTb0IsbUJBQW1CO1FBRXJEbEIseUJBQXlCaUIsa0JBQW1CLEdBQUc7SUFDakQ7SUFFQSxPQUFPakI7QUFDVDtBQUVBLFNBQVNNLDZDQUE2Q0YsYUFBYTtJQUNqRSxJQUFJQyw4QkFBOEI7SUFFbEMsTUFBTUcsUUFBUVcsb0NBQXlCLEVBQ2pDQyxzQkFBc0JDLElBQUFBLHdDQUE4QixLQUNwREMsK0JBQStCRixvQkFBb0JHLFlBQVksSUFDL0RDLG9DQUFvQ0YsNkJBQTZCdkIsT0FBTyxJQUN4RTBCLHFEQUFxRHJCLGNBQWNZLEtBQUssQ0FBQ1EsbUNBQW1DaEI7SUFFbEgsSUFBSWlCLG9EQUFvRDtRQUN0RCxNQUFNQyx3QkFBd0J0QixjQUFjdUIsd0JBQXdCO1FBRXBFdEIsOEJBQThCcUIsdUJBQXdCLEdBQUc7SUFDM0Q7SUFFQSxPQUFPckI7QUFDVCJ9
@@ -12,8 +12,8 @@ _export(exports, {
12
12
  get equivalencesFromEquality () {
13
13
  return equivalencesFromEquality;
14
14
  },
15
- get findEquivalenceByTermNodes () {
16
- return findEquivalenceByTermNodes;
15
+ get findEquivalenceByTermNode () {
16
+ return findEquivalenceByTermNode;
17
17
  },
18
18
  get mergeEquivalences () {
19
19
  return mergeEquivalences;
@@ -46,10 +46,10 @@ function equivalencesFromEquality(equality, context) {
46
46
  ];
47
47
  return equivalences;
48
48
  }
49
- function findEquivalenceByTermNodes(equivalences, termNodes) {
49
+ function findEquivalenceByTermNode(equivalences, termNode) {
50
50
  const equivalence = equivalences.find((equivalence)=>{
51
- const termNodeMatches = equivalence.matchTermNodes(termNodes);
52
- if (termNodeMatches) {
51
+ const termEquates = equivalence.matchTermNode(termNode);
52
+ if (termEquates) {
53
53
  return true;
54
54
  }
55
55
  }) || null;
@@ -131,4 +131,4 @@ function groundedTermsFromGroundedEquivalencesAndDefinedVariables(groundedEquiva
131
131
  });
132
132
  }
133
133
 
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZXF1aXZhbGVuY2VzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyB2YXJpYWJsZXNGcm9tVGVybSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZXF1aXZhbGVuY2VcIjtcblxuY29uc3QgeyBwdXNoLCBzZXBhcmF0ZSB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXNBLCBlcXVpdmFsZW5jZXNCLCBjb250ZXh0KSB7XG4gIGVxdWl2YWxlbmNlc0EgPSBbICAvLy9cbiAgICAuLi5lcXVpdmFsZW5jZXNBXG4gIF07XG5cbiAgZXF1aXZhbGVuY2VzQi5mb3JFYWNoKChlcXVpdmFsZW5jZUIpID0+IHtcbiAgICBlcXVpdmFsZW5jZXNBID0gbWVyZ2VFcXVpdmFsZW5jZShlcXVpdmFsZW5jZXNBLCBlcXVpdmFsZW5jZUIsIGNvbnRleHQpO1xuICB9KTtcblxuICByZXR1cm4gZXF1aXZhbGVuY2VzQTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVxdWl2YWxlbmNlc0Zyb21FcXVhbGl0eShlcXVhbGl0eSwgY29udGV4dCkge1xuICBjb25zdCB7IEVxdWl2YWxlbmNlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgZWF1bGl2YWxlbmNlID0gRXF1aXZhbGVuY2UuZnJvbUVxdWFsaXR5KGVxdWFsaXR5LCBjb250ZXh0KSxcbiAgICAgICAgZXF1aXZhbGVuY2VzID0gW1xuICAgICAgICAgIGVhdWxpdmFsZW5jZVxuICAgICAgICBdO1xuXG4gIHJldHVybiBlcXVpdmFsZW5jZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRXF1aXZhbGVuY2VCeVRlcm1Ob2RlcyhlcXVpdmFsZW5jZXMsIHRlcm1Ob2Rlcykge1xuICBjb25zdCBlcXVpdmFsZW5jZSA9IGVxdWl2YWxlbmNlcy5maW5kKChlcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IHRlcm1Ob2RlTWF0Y2hlcyA9IGVxdWl2YWxlbmNlLm1hdGNoVGVybU5vZGVzKHRlcm1Ob2Rlcyk7XG5cbiAgICBpZiAodGVybU5vZGVNYXRjaGVzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pIHx8IG51bGw7XG5cbiAgcmV0dXJuIGVxdWl2YWxlbmNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VwYXJhdGVHcm91bmRlZFRlcm1zQW5kRGVmaW5lZFZhcmlhYmxlcyhlcXVpdmFsZW5jZXMsIGdyb3VuZGVkVGVybXMsIGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpIHtcbiAgbGV0IGdyb3VuZGVkRXF1aXZhbGVuY2VzLFxuICAgICAgcmVtYWluaW5nRXF1aXZhbGVuY2VzLFxuICAgICAgaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsXG4gICAgICBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXM7XG5cbiAgcmVtYWluaW5nRXF1aXZhbGVuY2VzID0gW107XG5cbiAgaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMgPSBbXTtcblxuICBzZXBhcmF0ZUluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcywgY29udGV4dCk7XG5cbiAgY29uc3QgaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNMZW5ndGggPSBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcy5sZW5ndGg7XG5cbiAgaWYgKGluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoID4gMCkge1xuICAgIGdyb3VuZGVkRXF1aXZhbGVuY2VzID0gaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXM7IC8vL1xuXG4gICAgbGV0IGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCA9IDE7XG5cbiAgICB3aGlsZSAoaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoID4gMCkge1xuICAgICAgbGV0IGRlZmluZWRWYXJpYWJsZXNMZW5ndGggPSAwLFxuICAgICAgICAgICAgcHJldmlvdXNEZWZpbmVkVmFyaWFibGVzTGVuZ3RoID0gLTE7XG5cbiAgICAgIHdoaWxlIChkZWZpbmVkVmFyaWFibGVzTGVuZ3RoID4gcHJldmlvdXNEZWZpbmVkVmFyaWFibGVzTGVuZ3RoKSB7XG4gICAgICAgIHByZXZpb3VzRGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA9IGRlZmluZWRWYXJpYWJsZXNMZW5ndGg7ICAvLy9cblxuICAgICAgICBncm91bmRlZFRlcm1zRnJvbUdyb3VuZGVkRXF1aXZhbGVuY2VzQW5kRGVmaW5lZFZhcmlhYmxlcyhncm91bmRlZEVxdWl2YWxlbmNlcywgZGVmaW5lZFZhcmlhYmxlcywgZ3JvdW5kZWRUZXJtcywgY29udGV4dCk7XG5cbiAgICAgICAgZGVmaW5lZFZhcmlhYmxlc0Zyb21Hcm91bmRlZFRlcm1zKGdyb3VuZGVkVGVybXMsIGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gICAgICAgIGRlZmluZWRWYXJpYWJsZXNMZW5ndGggPSBkZWZpbmVkVmFyaWFibGVzLmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgZXF1aXZhbGVuY2VzID0gcmVtYWluaW5nRXF1aXZhbGVuY2VzOyAvLy9cblxuICAgICAgcmVtYWluaW5nRXF1aXZhbGVuY2VzID0gW107XG5cbiAgICAgIGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyA9IFtdO1xuXG4gICAgICBzZXBhcmF0ZUltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXMsIHJlbWFpbmluZ0VxdWl2YWxlbmNlcywgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzLCBkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KTtcblxuICAgICAgcHVzaChncm91bmRlZEVxdWl2YWxlbmNlcywgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzKTtcblxuICAgICAgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoID0gaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzLmxlbmd0aDsgIC8vL1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBtZXJnZUVxdWl2YWxlbmNlKGVxdWl2YWxlbmNlc0EsIGVxdWl2YWxlbmNlQiwgY29udGV4dCkge1xuICBjb25zdCBtZXJnZWRFcXVpdmFsZW5jZXMgPSBbXTtcblxuICBlcXVpdmFsZW5jZXNBLmZvckVhY2goKGVxdWl2YWxlbmNlQSkgPT4ge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlQkRpc2pvaW50RnJvbUVxdWl2YWxlbmNlQSA9IGVxdWl2YWxlbmNlQi5pc0Rpc2pvaW50RnJvbShlcXVpdmFsZW5jZUEpO1xuXG4gICAgaWYgKGVxdWl2YWxlbmNlQkRpc2pvaW50RnJvbUVxdWl2YWxlbmNlQSkge1xuICAgICAgY29uc3QgbWVyZ2VkRXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZUE7ICAvLy9cblxuICAgICAgbWVyZ2VkRXF1aXZhbGVuY2VzLnB1c2gobWVyZ2VkRXF1aXZhbGVuY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlcXVpdmFsZW5jZUIgPSBlcXVpdmFsZW5jZUIubWVyZ2VkV2l0aChlcXVpdmFsZW5jZUEsIGNvbnRleHQpO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgbWVyZ2VkRXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZUI7ICAvLy9cblxuICBtZXJnZWRFcXVpdmFsZW5jZXMucHVzaChtZXJnZWRFcXVpdmFsZW5jZSk7XG5cbiAgZXF1aXZhbGVuY2VzQSA9IG1lcmdlZEVxdWl2YWxlbmNlczsgIC8vL1xuXG4gIHJldHVybiBlcXVpdmFsZW5jZXNBO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVkVmFyaWFibGVzRnJvbUdyb3VuZGVkVGVybXMoZ3JvdW5kZWRUZXJtcywgZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCkge1xuICBncm91bmRlZFRlcm1zLmZvckVhY2goKGdyb3VuZGVkVGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm0gPSBncm91bmRlZFRlcm0sICAvLy9cbiAgICAgICAgICB2YXJpYWJsZXMgPSB2YXJpYWJsZXNGcm9tVGVybSh0ZXJtLCBjb250ZXh0KTtcblxuICAgIHZhcmlhYmxlcy5mb3JFYWNoKCh2YXJpYWJsZSkgPT4ge1xuICAgICAgY29uc3QgZGVmaW5lZFZhcmlhYmxlc0luY2x1ZGVzVGVybVZhcmlhYmxlID0gZGVmaW5lZFZhcmlhYmxlcy5pbmNsdWRlcyh2YXJpYWJsZSk7XG5cbiAgICAgIGlmICghZGVmaW5lZFZhcmlhYmxlc0luY2x1ZGVzVGVybVZhcmlhYmxlKSB7XG4gICAgICAgIGNvbnN0IGRlZmluZWRWYXJpYWJsZSA9IHZhcmlhYmxlOyAgLy8vXG5cbiAgICAgICAgZGVmaW5lZFZhcmlhYmxlcy5wdXNoKGRlZmluZWRWYXJpYWJsZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXBhcmF0ZUluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcywgY29udGV4dCkge1xuICBzZXBhcmF0ZShlcXVpdmFsZW5jZXMsIHJlbWFpbmluZ0VxdWl2YWxlbmNlcywgaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsIChlcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlSW5pdGlhbGx5R3JvdW5kZWQgPSBlcXVpdmFsZW5jZS5pc0luaXRpYWxseUdyb3VuZGVkKGNvbnRleHQpO1xuXG4gICAgaWYgKCFlcXVpdmFsZW5jZUluaXRpYWxseUdyb3VuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXBhcmF0ZUltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXMsIHJlbWFpbmluZ0VxdWl2YWxlbmNlcywgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzLCBkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KSB7XG4gIHNlcGFyYXRlKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsIChlcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlSW1wbGljaXRseUdyb3VuZGVkID0gZXF1aXZhbGVuY2UuaXNJbXBsaWNpdGx5R3JvdW5kZWQoZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCk7XG5cbiAgICBpZiAoIWVxdWl2YWxlbmNlSW1wbGljaXRseUdyb3VuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBncm91bmRlZFRlcm1zRnJvbUdyb3VuZGVkRXF1aXZhbGVuY2VzQW5kRGVmaW5lZFZhcmlhYmxlcyhncm91bmRlZEVxdWl2YWxlbmNlcywgZGVmaW5lZFZhcmlhYmxlcywgZ3JvdW5kZWRUZXJtcywgY29udGV4dCkge1xuICBncm91bmRlZEVxdWl2YWxlbmNlcy5mb3JFYWNoKChncm91bmRlZEVxdWl2YWxlbmNlKSA9PiB7XG4gICAgZ3JvdW5kZWRFcXVpdmFsZW5jZS5nZXRHcm91bmRlZFRlcm1zKGRlZmluZWRWYXJpYWJsZXMsIGdyb3VuZGVkVGVybXMsIGNvbnRleHQpO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJlcXVpdmFsZW5jZXNGcm9tRXF1YWxpdHkiLCJmaW5kRXF1aXZhbGVuY2VCeVRlcm1Ob2RlcyIsIm1lcmdlRXF1aXZhbGVuY2VzIiwic2VwYXJhdGVHcm91bmRlZFRlcm1zQW5kRGVmaW5lZFZhcmlhYmxlcyIsInB1c2giLCJzZXBhcmF0ZSIsImFycmF5VXRpbGl0aWVzIiwiZXF1aXZhbGVuY2VzQSIsImVxdWl2YWxlbmNlc0IiLCJjb250ZXh0IiwiZm9yRWFjaCIsImVxdWl2YWxlbmNlQiIsIm1lcmdlRXF1aXZhbGVuY2UiLCJlcXVhbGl0eSIsIkVxdWl2YWxlbmNlIiwiZWxlbWVudHMiLCJlYXVsaXZhbGVuY2UiLCJmcm9tRXF1YWxpdHkiLCJlcXVpdmFsZW5jZXMiLCJ0ZXJtTm9kZXMiLCJlcXVpdmFsZW5jZSIsImZpbmQiLCJ0ZXJtTm9kZU1hdGNoZXMiLCJtYXRjaFRlcm1Ob2RlcyIsImdyb3VuZGVkVGVybXMiLCJkZWZpbmVkVmFyaWFibGVzIiwiZ3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJyZW1haW5pbmdFcXVpdmFsZW5jZXMiLCJpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcyIsImltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyIsInNlcGFyYXRlSW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCIsImxlbmd0aCIsImltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCIsImRlZmluZWRWYXJpYWJsZXNMZW5ndGgiLCJwcmV2aW91c0RlZmluZWRWYXJpYWJsZXNMZW5ndGgiLCJncm91bmRlZFRlcm1zRnJvbUdyb3VuZGVkRXF1aXZhbGVuY2VzQW5kRGVmaW5lZFZhcmlhYmxlcyIsImRlZmluZWRWYXJpYWJsZXNGcm9tR3JvdW5kZWRUZXJtcyIsInNlcGFyYXRlSW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzIiwibWVyZ2VkRXF1aXZhbGVuY2VzIiwiZXF1aXZhbGVuY2VBIiwiZXF1aXZhbGVuY2VCRGlzam9pbnRGcm9tRXF1aXZhbGVuY2VBIiwiaXNEaXNqb2ludEZyb20iLCJtZXJnZWRFcXVpdmFsZW5jZSIsIm1lcmdlZFdpdGgiLCJncm91bmRlZFRlcm0iLCJ0ZXJtIiwidmFyaWFibGVzIiwidmFyaWFibGVzRnJvbVRlcm0iLCJ2YXJpYWJsZSIsImRlZmluZWRWYXJpYWJsZXNJbmNsdWRlc1Rlcm1WYXJpYWJsZSIsImluY2x1ZGVzIiwiZGVmaW5lZFZhcmlhYmxlIiwiZXF1aXZhbGVuY2VJbml0aWFsbHlHcm91bmRlZCIsImlzSW5pdGlhbGx5R3JvdW5kZWQiLCJlcXVpdmFsZW5jZUltcGxpY2l0bHlHcm91bmRlZCIsImlzSW1wbGljaXRseUdyb3VuZGVkIiwiZ3JvdW5kZWRFcXVpdmFsZW5jZSIsImdldEdyb3VuZGVkVGVybXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQXNCZ0JBO2VBQUFBOztRQVVBQztlQUFBQTs7UUF0QkFDO2VBQUFBOztRQWtDQUM7ZUFBQUE7OzsyQkExQ2U7aUVBRVY7NkJBRWE7Ozs7OztBQUVsQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsUUFBUSxFQUFFLEdBQUdDLHlCQUFjO0FBRWxDLFNBQVNKLGtCQUFrQkssYUFBYSxFQUFFQyxhQUFhLEVBQUVDLE9BQU87SUFDckVGLGdCQUFnQjtXQUNYQTtLQUNKO0lBRURDLGNBQWNFLE9BQU8sQ0FBQyxDQUFDQztRQUNyQkosZ0JBQWdCSyxpQkFBaUJMLGVBQWVJLGNBQWNGO0lBQ2hFO0lBRUEsT0FBT0Y7QUFDVDtBQUVPLFNBQVNQLHlCQUF5QmEsUUFBUSxFQUFFSixPQUFPO0lBQ3hELE1BQU0sRUFBRUssV0FBVyxFQUFFLEdBQUdDLGlCQUFRLEVBQzFCQyxlQUFlRixZQUFZRyxZQUFZLENBQUNKLFVBQVVKLFVBQ2xEUyxlQUFlO1FBQ2JGO0tBQ0Q7SUFFUCxPQUFPRTtBQUNUO0FBRU8sU0FBU2pCLDJCQUEyQmlCLFlBQVksRUFBRUMsU0FBUztJQUNoRSxNQUFNQyxjQUFjRixhQUFhRyxJQUFJLENBQUMsQ0FBQ0Q7UUFDckMsTUFBTUUsa0JBQWtCRixZQUFZRyxjQUFjLENBQUNKO1FBRW5ELElBQUlHLGlCQUFpQjtZQUNuQixPQUFPO1FBQ1Q7SUFDRixNQUFNO0lBRU4sT0FBT0Y7QUFDVDtBQUVPLFNBQVNqQix5Q0FBeUNlLFlBQVksRUFBRU0sYUFBYSxFQUFFQyxnQkFBZ0IsRUFBRWhC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
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZXF1aXZhbGVuY2VzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyB2YXJpYWJsZXNGcm9tVGVybSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZXF1aXZhbGVuY2VcIjtcblxuY29uc3QgeyBwdXNoLCBzZXBhcmF0ZSB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXNBLCBlcXVpdmFsZW5jZXNCLCBjb250ZXh0KSB7XG4gIGVxdWl2YWxlbmNlc0EgPSBbICAvLy9cbiAgICAuLi5lcXVpdmFsZW5jZXNBXG4gIF07XG5cbiAgZXF1aXZhbGVuY2VzQi5mb3JFYWNoKChlcXVpdmFsZW5jZUIpID0+IHtcbiAgICBlcXVpdmFsZW5jZXNBID0gbWVyZ2VFcXVpdmFsZW5jZShlcXVpdmFsZW5jZXNBLCBlcXVpdmFsZW5jZUIsIGNvbnRleHQpO1xuICB9KTtcblxuICByZXR1cm4gZXF1aXZhbGVuY2VzQTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVxdWl2YWxlbmNlc0Zyb21FcXVhbGl0eShlcXVhbGl0eSwgY29udGV4dCkge1xuICBjb25zdCB7IEVxdWl2YWxlbmNlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgZWF1bGl2YWxlbmNlID0gRXF1aXZhbGVuY2UuZnJvbUVxdWFsaXR5KGVxdWFsaXR5LCBjb250ZXh0KSxcbiAgICAgICAgZXF1aXZhbGVuY2VzID0gW1xuICAgICAgICAgIGVhdWxpdmFsZW5jZVxuICAgICAgICBdO1xuXG4gIHJldHVybiBlcXVpdmFsZW5jZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRXF1aXZhbGVuY2VCeVRlcm1Ob2RlKGVxdWl2YWxlbmNlcywgdGVybU5vZGUpIHtcbiAgY29uc3QgZXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZXMuZmluZCgoZXF1aXZhbGVuY2UpID0+IHtcbiAgICBjb25zdCB0ZXJtRXF1YXRlcyA9IGVxdWl2YWxlbmNlLm1hdGNoVGVybU5vZGUodGVybU5vZGUpO1xuXG4gICAgaWYgKHRlcm1FcXVhdGVzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pIHx8IG51bGw7XG5cbiAgcmV0dXJuIGVxdWl2YWxlbmNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VwYXJhdGVHcm91bmRlZFRlcm1zQW5kRGVmaW5lZFZhcmlhYmxlcyhlcXVpdmFsZW5jZXMsIGdyb3VuZGVkVGVybXMsIGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpIHtcbiAgbGV0IGdyb3VuZGVkRXF1aXZhbGVuY2VzLFxuICAgICAgcmVtYWluaW5nRXF1aXZhbGVuY2VzLFxuICAgICAgaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsXG4gICAgICBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXM7XG5cbiAgcmVtYWluaW5nRXF1aXZhbGVuY2VzID0gW107XG5cbiAgaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMgPSBbXTtcblxuICBzZXBhcmF0ZUluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcywgY29udGV4dCk7XG5cbiAgY29uc3QgaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNMZW5ndGggPSBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcy5sZW5ndGg7XG5cbiAgaWYgKGluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoID4gMCkge1xuICAgIGdyb3VuZGVkRXF1aXZhbGVuY2VzID0gaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXM7IC8vL1xuXG4gICAgbGV0IGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCA9IDE7XG5cbiAgICB3aGlsZSAoaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoID4gMCkge1xuICAgICAgbGV0IGRlZmluZWRWYXJpYWJsZXNMZW5ndGggPSAwLFxuICAgICAgICAgICAgcHJldmlvdXNEZWZpbmVkVmFyaWFibGVzTGVuZ3RoID0gLTE7XG5cbiAgICAgIHdoaWxlIChkZWZpbmVkVmFyaWFibGVzTGVuZ3RoID4gcHJldmlvdXNEZWZpbmVkVmFyaWFibGVzTGVuZ3RoKSB7XG4gICAgICAgIHByZXZpb3VzRGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA9IGRlZmluZWRWYXJpYWJsZXNMZW5ndGg7ICAvLy9cblxuICAgICAgICBncm91bmRlZFRlcm1zRnJvbUdyb3VuZGVkRXF1aXZhbGVuY2VzQW5kRGVmaW5lZFZhcmlhYmxlcyhncm91bmRlZEVxdWl2YWxlbmNlcywgZGVmaW5lZFZhcmlhYmxlcywgZ3JvdW5kZWRUZXJtcywgY29udGV4dCk7XG5cbiAgICAgICAgZGVmaW5lZFZhcmlhYmxlc0Zyb21Hcm91bmRlZFRlcm1zKGdyb3VuZGVkVGVybXMsIGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gICAgICAgIGRlZmluZWRWYXJpYWJsZXNMZW5ndGggPSBkZWZpbmVkVmFyaWFibGVzLmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgZXF1aXZhbGVuY2VzID0gcmVtYWluaW5nRXF1aXZhbGVuY2VzOyAvLy9cblxuICAgICAgcmVtYWluaW5nRXF1aXZhbGVuY2VzID0gW107XG5cbiAgICAgIGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyA9IFtdO1xuXG4gICAgICBzZXBhcmF0ZUltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXMsIHJlbWFpbmluZ0VxdWl2YWxlbmNlcywgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzLCBkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KTtcblxuICAgICAgcHVzaChncm91bmRlZEVxdWl2YWxlbmNlcywgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzKTtcblxuICAgICAgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoID0gaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzLmxlbmd0aDsgIC8vL1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBtZXJnZUVxdWl2YWxlbmNlKGVxdWl2YWxlbmNlc0EsIGVxdWl2YWxlbmNlQiwgY29udGV4dCkge1xuICBjb25zdCBtZXJnZWRFcXVpdmFsZW5jZXMgPSBbXTtcblxuICBlcXVpdmFsZW5jZXNBLmZvckVhY2goKGVxdWl2YWxlbmNlQSkgPT4ge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlQkRpc2pvaW50RnJvbUVxdWl2YWxlbmNlQSA9IGVxdWl2YWxlbmNlQi5pc0Rpc2pvaW50RnJvbShlcXVpdmFsZW5jZUEpO1xuXG4gICAgaWYgKGVxdWl2YWxlbmNlQkRpc2pvaW50RnJvbUVxdWl2YWxlbmNlQSkge1xuICAgICAgY29uc3QgbWVyZ2VkRXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZUE7ICAvLy9cblxuICAgICAgbWVyZ2VkRXF1aXZhbGVuY2VzLnB1c2gobWVyZ2VkRXF1aXZhbGVuY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlcXVpdmFsZW5jZUIgPSBlcXVpdmFsZW5jZUIubWVyZ2VkV2l0aChlcXVpdmFsZW5jZUEsIGNvbnRleHQpO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgbWVyZ2VkRXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZUI7ICAvLy9cblxuICBtZXJnZWRFcXVpdmFsZW5jZXMucHVzaChtZXJnZWRFcXVpdmFsZW5jZSk7XG5cbiAgZXF1aXZhbGVuY2VzQSA9IG1lcmdlZEVxdWl2YWxlbmNlczsgIC8vL1xuXG4gIHJldHVybiBlcXVpdmFsZW5jZXNBO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVkVmFyaWFibGVzRnJvbUdyb3VuZGVkVGVybXMoZ3JvdW5kZWRUZXJtcywgZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCkge1xuICBncm91bmRlZFRlcm1zLmZvckVhY2goKGdyb3VuZGVkVGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm0gPSBncm91bmRlZFRlcm0sICAvLy9cbiAgICAgICAgICB2YXJpYWJsZXMgPSB2YXJpYWJsZXNGcm9tVGVybSh0ZXJtLCBjb250ZXh0KTtcblxuICAgIHZhcmlhYmxlcy5mb3JFYWNoKCh2YXJpYWJsZSkgPT4ge1xuICAgICAgY29uc3QgZGVmaW5lZFZhcmlhYmxlc0luY2x1ZGVzVGVybVZhcmlhYmxlID0gZGVmaW5lZFZhcmlhYmxlcy5pbmNsdWRlcyh2YXJpYWJsZSk7XG5cbiAgICAgIGlmICghZGVmaW5lZFZhcmlhYmxlc0luY2x1ZGVzVGVybVZhcmlhYmxlKSB7XG4gICAgICAgIGNvbnN0IGRlZmluZWRWYXJpYWJsZSA9IHZhcmlhYmxlOyAgLy8vXG5cbiAgICAgICAgZGVmaW5lZFZhcmlhYmxlcy5wdXNoKGRlZmluZWRWYXJpYWJsZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXBhcmF0ZUluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcywgY29udGV4dCkge1xuICBzZXBhcmF0ZShlcXVpdmFsZW5jZXMsIHJlbWFpbmluZ0VxdWl2YWxlbmNlcywgaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsIChlcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlSW5pdGlhbGx5R3JvdW5kZWQgPSBlcXVpdmFsZW5jZS5pc0luaXRpYWxseUdyb3VuZGVkKGNvbnRleHQpO1xuXG4gICAgaWYgKCFlcXVpdmFsZW5jZUluaXRpYWxseUdyb3VuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXBhcmF0ZUltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXMsIHJlbWFpbmluZ0VxdWl2YWxlbmNlcywgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzLCBkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KSB7XG4gIHNlcGFyYXRlKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsIChlcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlSW1wbGljaXRseUdyb3VuZGVkID0gZXF1aXZhbGVuY2UuaXNJbXBsaWNpdGx5R3JvdW5kZWQoZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCk7XG5cbiAgICBpZiAoIWVxdWl2YWxlbmNlSW1wbGljaXRseUdyb3VuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBncm91bmRlZFRlcm1zRnJvbUdyb3VuZGVkRXF1aXZhbGVuY2VzQW5kRGVmaW5lZFZhcmlhYmxlcyhncm91bmRlZEVxdWl2YWxlbmNlcywgZGVmaW5lZFZhcmlhYmxlcywgZ3JvdW5kZWRUZXJtcywgY29udGV4dCkge1xuICBncm91bmRlZEVxdWl2YWxlbmNlcy5mb3JFYWNoKChncm91bmRlZEVxdWl2YWxlbmNlKSA9PiB7XG4gICAgZ3JvdW5kZWRFcXVpdmFsZW5jZS5nZXRHcm91bmRlZFRlcm1zKGRlZmluZWRWYXJpYWJsZXMsIGdyb3VuZGVkVGVybXMsIGNvbnRleHQpO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJlcXVpdmFsZW5jZXNGcm9tRXF1YWxpdHkiLCJmaW5kRXF1aXZhbGVuY2VCeVRlcm1Ob2RlIiwibWVyZ2VFcXVpdmFsZW5jZXMiLCJzZXBhcmF0ZUdyb3VuZGVkVGVybXNBbmREZWZpbmVkVmFyaWFibGVzIiwicHVzaCIsInNlcGFyYXRlIiwiYXJyYXlVdGlsaXRpZXMiLCJlcXVpdmFsZW5jZXNBIiwiZXF1aXZhbGVuY2VzQiIsImNvbnRleHQiLCJmb3JFYWNoIiwiZXF1aXZhbGVuY2VCIiwibWVyZ2VFcXVpdmFsZW5jZSIsImVxdWFsaXR5IiwiRXF1aXZhbGVuY2UiLCJlbGVtZW50cyIsImVhdWxpdmFsZW5jZSIsImZyb21FcXVhbGl0eSIsImVxdWl2YWxlbmNlcyIsInRlcm1Ob2RlIiwiZXF1aXZhbGVuY2UiLCJmaW5kIiwidGVybUVxdWF0ZXMiLCJtYXRjaFRlcm1Ob2RlIiwiZ3JvdW5kZWRUZXJtcyIsImRlZmluZWRWYXJpYWJsZXMiLCJncm91bmRlZEVxdWl2YWxlbmNlcyIsInJlbWFpbmluZ0VxdWl2YWxlbmNlcyIsImluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzIiwiaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzIiwic2VwYXJhdGVJbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcyIsImluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoIiwibGVuZ3RoIiwiaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoIiwiZGVmaW5lZFZhcmlhYmxlc0xlbmd0aCIsInByZXZpb3VzRGVmaW5lZFZhcmlhYmxlc0xlbmd0aCIsImdyb3VuZGVkVGVybXNGcm9tR3JvdW5kZWRFcXVpdmFsZW5jZXNBbmREZWZpbmVkVmFyaWFibGVzIiwiZGVmaW5lZFZhcmlhYmxlc0Zyb21Hcm91bmRlZFRlcm1zIiwic2VwYXJhdGVJbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJtZXJnZWRFcXVpdmFsZW5jZXMiLCJlcXVpdmFsZW5jZUEiLCJlcXVpdmFsZW5jZUJEaXNqb2ludEZyb21FcXVpdmFsZW5jZUEiLCJpc0Rpc2pvaW50RnJvbSIsIm1lcmdlZEVxdWl2YWxlbmNlIiwibWVyZ2VkV2l0aCIsImdyb3VuZGVkVGVybSIsInRlcm0iLCJ2YXJpYWJsZXMiLCJ2YXJpYWJsZXNGcm9tVGVybSIsInZhcmlhYmxlIiwiZGVmaW5lZFZhcmlhYmxlc0luY2x1ZGVzVGVybVZhcmlhYmxlIiwiaW5jbHVkZXMiLCJkZWZpbmVkVmFyaWFibGUiLCJlcXVpdmFsZW5jZUluaXRpYWxseUdyb3VuZGVkIiwiaXNJbml0aWFsbHlHcm91bmRlZCIsImVxdWl2YWxlbmNlSW1wbGljaXRseUdyb3VuZGVkIiwiaXNJbXBsaWNpdGx5R3JvdW5kZWQiLCJncm91bmRlZEVxdWl2YWxlbmNlIiwiZ2V0R3JvdW5kZWRUZXJtcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBc0JnQkE7ZUFBQUE7O1FBVUFDO2VBQUFBOztRQXRCQUM7ZUFBQUE7O1FBa0NBQztlQUFBQTs7OzJCQTFDZTtpRUFFVjs2QkFFYTs7Ozs7O0FBRWxDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUUsR0FBR0MseUJBQWM7QUFFbEMsU0FBU0osa0JBQWtCSyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsT0FBTztJQUNyRUYsZ0JBQWdCO1dBQ1hBO0tBQ0o7SUFFREMsY0FBY0UsT0FBTyxDQUFDLENBQUNDO1FBQ3JCSixnQkFBZ0JLLGlCQUFpQkwsZUFBZUksY0FBY0Y7SUFDaEU7SUFFQSxPQUFPRjtBQUNUO0FBRU8sU0FBU1AseUJBQXlCYSxRQUFRLEVBQUVKLE9BQU87SUFDeEQsTUFBTSxFQUFFSyxXQUFXLEVBQUUsR0FBR0MsaUJBQVEsRUFDMUJDLGVBQWVGLFlBQVlHLFlBQVksQ0FBQ0osVUFBVUosVUFDbERTLGVBQWU7UUFDYkY7S0FDRDtJQUVQLE9BQU9FO0FBQ1Q7QUFFTyxTQUFTakIsMEJBQTBCaUIsWUFBWSxFQUFFQyxRQUFRO0lBQzlELE1BQU1DLGNBQWNGLGFBQWFHLElBQUksQ0FBQyxDQUFDRDtRQUNyQyxNQUFNRSxjQUFjRixZQUFZRyxhQUFhLENBQUNKO1FBRTlDLElBQUlHLGFBQWE7WUFDZixPQUFPO1FBQ1Q7SUFDRixNQUFNO0lBRU4sT0FBT0Y7QUFDVDtBQUVPLFNBQVNqQix5Q0FBeUNlLFlBQVksRUFBRU0sYUFBYSxFQUFFQyxnQkFBZ0IsRUFBRWhCLE9BQU87SUFDN0csSUFBSWlCLHNCQUNB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
@@ -90,9 +90,13 @@ _export(exports, {
90
90
  });
91
91
  const _type = require("../utilities/type");
92
92
  const _constants = require("../constants");
93
- function termsStringFromTerms(terms) {
93
+ function termsStringFromTerms(terms, quoted = false) {
94
94
  const termsString = terms.reduce((termsString, term)=>{
95
- const termString = term.getString();
95
+ let termString;
96
+ termString = term.getString();
97
+ if (quoted) {
98
+ termString = `'${termString}'`;
99
+ }
96
100
  termsString = termsString !== null ? `${termsString}, ${termString}` : termString;
97
101
  return termsString;
98
102
  }, null);
@@ -245,4 +249,4 @@ function statementSubstitutionStringFromStatementMetavariableAndSubstitution(sta
245
249
  return statementSubstitutionString;
246
250
  }
247
251
 
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBiYXNlVHlwZUZyb21Ob3RoaW5nIH0gZnJvbSBcIi4uL3V0aWxpdGllcy90eXBlXCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcsIFBST1ZJU0lPTkFMLCBQUk9WSVNJT05BTExZIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gdGVybXNTdHJpbmdGcm9tVGVybXModGVybXMpIHtcbiAgY29uc3QgdGVybXNTdHJpbmcgPSB0ZXJtcy5yZWR1Y2UoKHRlcm1zU3RyaW5nLCB0ZXJtKSA9PiB7XG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCk7XG5cbiAgICB0ZXJtc1N0cmluZyA9ICh0ZXJtc1N0cmluZyAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgIGAke3Rlcm1zU3RyaW5nfSwgJHt0ZXJtU3RyaW5nfWAgOlxuICAgICAgICAgICAgICAgICAgICAgIHRlcm1TdHJpbmc7XG5cbiAgICByZXR1cm4gdGVybXNTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiB0ZXJtc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxhYmVsc1N0cmluZ0Zyb21MYWJlbHMobGFiZWxzKSB7XG4gIGNvbnN0IGxhYmVsc1N0cmluZyA9IGxhYmVscy5yZWR1Y2UoKGxhYmVsc1N0cmluZywgbGFiZWwpID0+IHtcbiAgICBjb25zdCBsYWJlbFN0cmluZyA9IGxhYmVsLmdldFN0cmluZygpO1xuXG4gICAgbGFiZWxzU3RyaW5nID0gKGxhYmVsc1N0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IC8vL1xuICAgICAgICAgICAgICAgICAgICAgIGAke2xhYmVsc1N0cmluZ30sICR7bGFiZWxTdHJpbmd9YDtcblxuICAgIHJldHVybiBsYWJlbHNTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBsYWJlbHNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmVtaXNlc1N0cmluZ0Zyb21QcmVtaXNlcyhwcmVtaXNlcykge1xuICBjb25zdCBwcmVtaXNlc1N0cmluZyA9IHByZW1pc2VzLnJlZHVjZSgocHJlbWlzZXNTdHJpbmcsIHByZW1pc2UpID0+IHtcbiAgICBjb25zdCBwcmVtaXNlU3RyaW5nID0gcHJlbWlzZS5nZXRTdHJpbmcoKTtcblxuICAgIHByZW1pc2VzU3RyaW5nID0gKHByZW1pc2VzU3RyaW5nICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgIGAke3ByZW1pc2VzU3RyaW5nfSwgJHtwcmVtaXNlU3RyaW5nfWAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgIHByZW1pc2VTdHJpbmc7ICAvLy9cblxuICAgIHJldHVybiBwcmVtaXNlc1N0cmluZztcbiAgfSwgbnVsbCk7XG5cbiAgcmV0dXJuIHByZW1pc2VzU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaHlwb3RoZXNlc1N0cmluZ0Zyb21IeXBvdGhlc2VzKGh5cG90aGVzZXMpIHtcbiAgY29uc3QgaHlwb3RoZXNlc1N0cmluZyA9IGh5cG90aGVzZXMucmVkdWNlKChoeXBvdGhlc2VzU3RyaW5nLCBoeXBvdGhlc2lzKSA9PiB7XG4gICAgY29uc3QgaHlwb3RoZXNpc1N0cmluZyA9IGh5cG90aGVzaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBoeXBvdGhlc2VzU3RyaW5nID0gKGh5cG90aGVzZXNTdHJpbmcgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7aHlwb3RoZXNlc1N0cmluZ30sICR7aHlwb3RoZXNpc1N0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoeXBvdGhlc2lzU3RyaW5nOyAgLy8vXG5cbiAgICByZXR1cm4gaHlwb3RoZXNlc1N0cmluZztcbiAgfSwgbnVsbCk7XG5cbiAgcmV0dXJuIGh5cG90aGVzZXNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdXBlclR5cGVzU3RyaW5nRnJvbVN1cGVyVHlwZXMoc3VwZXJUeXBlcykge1xuICBsZXQgc3VwZXJUeXBlc1N0cmluZztcblxuICBjb25zdCBiYXNlVHlwZSA9IGJhc2VUeXBlRnJvbU5vdGhpbmcoKTtcblxuICBzdXBlclR5cGVzU3RyaW5nID0gc3VwZXJUeXBlcy5yZWR1Y2UoKHN1cGVyVHlwZXNTdHJpbmcsIHN1cGVyVHlwZSkgPT4ge1xuICAgIGlmIChzdXBlclR5cGUgIT09IGJhc2VUeXBlKSB7XG4gICAgICBjb25zdCBzdXBlclR5cGVTdHJpbmcgPSBzdXBlclR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIHN1cGVyVHlwZXNTdHJpbmcgPSAoc3VwZXJUeXBlc1N0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgYCcke3N1cGVyVHlwZVN0cmluZ30nYCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtzdXBlclR5cGVzU3RyaW5nfSwgJyR7c3VwZXJUeXBlU3RyaW5nfSdgO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlclR5cGVzU3RyaW5nO1xuICB9LCBudWxsKTtcblxuICBzdXBlclR5cGVzU3RyaW5nID0gKHN1cGVyVHlwZXNTdHJpbmcgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgYDoke3N1cGVyVHlwZXNTdHJpbmd9YCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEVNUFRZX1NUUklORztcblxuICByZXR1cm4gc3VwZXJUeXBlc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcmFtZXRlcnNTdHJpbmdGcm9tUGFyYW1ldGVycyhwYXJhbWV0ZXJzKSB7XG4gIGNvbnN0IHBhcmFtZXRlcnNTdHJpbmcgPSBwYXJhbWV0ZXJzLnJlZHVjZSgocGFyYW1ldGVyc1N0cmluZywgcGFyYW1ldGVyKSA9PiB7XG4gICAgY29uc3QgcGFyYW1ldGVyU3RyaW5nID0gcGFyYW1ldGVyLmdldFN0cmluZygpO1xuXG4gICAgcGFyYW1ldGVyc1N0cmluZyA9IChwYXJhbWV0ZXJzU3RyaW5nID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyU3RyaW5nIDogLy8vXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGAke3BhcmFtZXRlcnNTdHJpbmd9LCAke3BhcmFtZXRlclN0cmluZ31gO1xuXG4gICAgcmV0dXJuIHBhcmFtZXRlcnNTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBwYXJhbWV0ZXJzU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlzaW5hbFN0cmluZ0Zyb21Qcm92aXNpb25hbChwcm92aXNpb25hbCkge1xuICBjb25zdCBwcm92aXNpbmFsU3RyaW5nID0gcHJvdmlzaW9uYWwgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke1BST1ZJU0lPTkFMfSBgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVNUFRZX1NUUklORztcblxuICByZXR1cm4gcHJvdmlzaW5hbFN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3Zpc2lvbmFsbHlTdHJpbmdGcm9tUHJvdmlzaW9uYWwocHJvdmlzaW9uYWwpIHtcbiAgY29uc3QgcHJvdmlzaW5hbGx5U3RyaW5nID0gcHJvdmlzaW9uYWwgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCAke1BST1ZJU0lPTkFMTFl9YCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTVBUWV9TVFJJTkc7XG5cbiAgcmV0dXJuIHByb3Zpc2luYWxseVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1cHBvc2l0aW9uc1N0cmluZ0Zyb21TdXBwb3NpdGlvbnMoc3VwcG9zaXRpb25zKSB7XG4gIGNvbnN0IHN1cHBvc2l0aW9uc1N0cmluZyA9IHN1cHBvc2l0aW9ucy5yZWR1Y2UoKHN1cHBvc2l0aW9uc1N0cmluZywgc3VwcG9zaXRpb24pID0+IHtcbiAgICBjb25zdCBzdXBwb3NpdGlvblN0cmluZyA9IHN1cHBvc2l0aW9uLmdldFN0cmluZygpO1xuXG4gICAgc3VwcG9zaXRpb25zU3RyaW5nID0gKHN1cHBvc2l0aW9uc1N0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9zaXRpb25TdHJpbmc6IC8vL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke3N1cHBvc2l0aW9uc1N0cmluZ30sICR7c3VwcG9zaXRpb25TdHJpbmd9YDtcblxuICAgIHJldHVybiBzdXBwb3NpdGlvbnNTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBzdXBwb3NpdGlvbnNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcXVpdmFsZW5jZVN0cmluZ0Zyb21UZXJtcyh0ZXJtcykge1xuICBjb25zdCB0ZXJtc1N0cmluZyA9IHRlcm1zU3RyaW5nRnJvbVRlcm1zKHRlcm1zKSxcbiAgICAgICAgZXF1aXZhbGVuY2VTdHJpbmcgPSBgWyR7dGVybXNTdHJpbmd9XWA7XG5cbiAgcmV0dXJuIGVxdWl2YWxlbmNlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmF0dXJlU3RyaW5nRnJvbVNpZ25hdHVyZShzaWduYXR1cmUpIHtcbiAgY29uc3Qgc2lnbmF0dXJlU3RyaW5nID0gKHNpZ25hdHVyZSAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZS5nZXRTdHJpbmcoKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsO1xuXG4gIHJldHVybiBzaWduYXR1cmVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0eXBlU3RyaW5nRnJvbU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpIHtcbiAgY29uc3QgdHlwZVN0cmluZyA9IG5vbWluYWxUeXBlTmFtZTsgIC8vL1xuXG4gIHJldHVybiB0eXBlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nRnJvbVN0YXRlbWVudChzdGFzdGVtZW50KSB7XG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXN0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgIGltcGxpY2l0QXNzdW1wdGlvblN0cmluZyA9IGAuIDo6ICR7c3RhdGVtZW50U3RyaW5nfWA7XG5cbiAgcmV0dXJuIGltcGxpY2l0QXNzdW1wdGlvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1TdWJzdGl0dXRpb25TdHJpbmdGcm9tVGVybUFuZFZhcmlhYmxlKHRlcm0sIHZhcmlhYmxlKSB7XG4gIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICB0ZXJtU3Vic3RpdHV0aW9uU3RyaW5nID0gYFske3Rlcm1TdHJpbmd9IGZvciAke3ZhcmlhYmxlU3RyaW5nfV1gO1xuXG4gIHJldHVybiB0ZXJtU3Vic3RpdHV0aW9uU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uc3RyYWludFN0cmluZ0Zyb21SZWZlcmVuY2VBbmRTdGF0ZW1lbnQocmVmZXJlbmNlLCBzdGF0ZW1lbnQpIHtcbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICByZWZlcm5lY2VTdHJpbmcgPSByZWZlcmVuY2UuZ2V0U3RyaW5nKCksXG4gICAgICAgIGNvbnN0cmFpbnRTdHJpbmcgPSBgJHtyZWZlcm5lY2VTdHJpbmd9IDo6ICR7c3RhdGVtZW50U3RyaW5nfWA7XG5cbiAgcmV0dXJuIGNvbnN0cmFpbnRTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBydWxzU3RyaW5nRnJvbUxhYmVsc1ByZW1pc2VzQW5kQ29uY2x1c2lvbihsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uKSB7XG4gIGxldCBydWxlU3RyaW5nID0gRU1QVFlfU1RSSU5HO1xuXG4gIGNvbnN0IGNvbmNsdXNpb25TdHJpbmcgPSBjb25jbHVzaW9uLmdldFN0cmluZygpLFxuICAgICAgICBwcmVtaXNlc1N0cmluZyA9IHByZW1pc2VzU3RyaW5nRnJvbVByZW1pc2VzKHByZW1pc2VzKSxcbiAgICAgICAgbGFiZWxzU3RyaW5nID0gbGFiZWxzU3RyaW5nRnJvbUxhYmVscyhsYWJlbHMpO1xuXG4gIHJ1bGVTdHJpbmcgPSBgJHtydWxlU3RyaW5nfSR7bGFiZWxzU3RyaW5nfSA6OiBgO1xuXG4gIHJ1bGVTdHJpbmcgPSAocHJlbWlzZXNTdHJpbmcgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgYCR7cnVsZVN0cmluZ31bJHtwcmVtaXNlc1N0cmluZ31dLi4uJHtjb25jbHVzaW9uU3RyaW5nfWAgOlxuICAgICAgICAgICAgICAgICAgIGAke3J1bGVTdHJpbmd9JHtjb25jbHVzaW9uU3RyaW5nfWA7XG5cbiAgcmV0dXJuIHJ1bGVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzY2hlbWFTdHJpbmdGcm9tTGFiZWxTdXBwb3NpdGlvbnNBbmREZWR1Y3Rpb24obGFiZWwsIHN1cHBvc2l0aW9ucywgZGVkdWN0aW9uKSB7XG4gIGNvbnN0IGxhYmVsU3RyaW5nID0gbGFiZWwuZ2V0U3RyaW5nKCksXG4gICAgICAgIGRlZHVjdGlvblN0cmluZyA9IGRlZHVjdGlvbi5nZXRTdHJpbmcoKSxcbiAgICAgICAgc3VwcG9zaXRpb25zU3RyaW5nID0gc3VwcG9zaXRpb25zU3RyaW5nRnJvbVN1cHBvc2l0aW9ucyhzdXBwb3NpdGlvbnMpLFxuICAgICAgICBzY2hlbWFTdHJpbmcgPSAoc3VwcG9zaXRpb25zU3RyaW5nICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICBgJHtsYWJlbFN0cmluZ30gOjogWyR7c3VwcG9zaXRpb25zU3RyaW5nfV0uLi4ke2RlZHVjdGlvblN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7bGFiZWxTdHJpbmd9IDo6ICR7ZGVkdWN0aW9uU3RyaW5nfWA7XG5cbiAgcmV0dXJuIHNjaGVtYVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlY3Rpb25TdHJpbmdGcm9tSHlwb3RoZXNlc0RlY2xhcmF0aW9uQW5kQ2xhaW0oaHlwb3RoZXNlcywgZGVjbGFyYXRpb24sIGNsYWltKSB7XG4gIGxldCBzZWN0aW9uU3RyaW5nO1xuXG4gIGNvbnN0IGh5cG90aGVzZXNTdHJpbmcgPSBoeXBvdGhlc2VzU3RyaW5nRnJvbUh5cG90aGVzZXMoaHlwb3RoZXNlcyk7XG5cbiAgc2VjdGlvblN0cmluZyA9IGBbJHtoeXBvdGhlc2VzU3RyaW5nfV06OjogYDtcblxuICBpZiAoZGVjbGFyYXRpb24gIT09IG51bGwpIHtcbiAgICBjb25zdCBkZWNsYXJhdGlvblN0cmluZyA9IGRlY2xhcmF0aW9uLmdldFN0cmluZygpO1xuXG4gICAgc2VjdGlvblN0cmluZyA9IGAke3NlY3Rpb25TdHJpbmd9JHtkZWNsYXJhdGlvblN0cmluZ31gO1xuICB9XG5cbiAgaWYgKGNsYWltICE9PSBudWxsKSB7XG4gICAgY29uc3QgY2xhaW1TdHJpbmcgPSBjbGFpbS5nZXRTdHJpbmcoKTtcblxuICAgIHNlY3Rpb25TdHJpbmcgPSBgJHtzZWN0aW9uU3RyaW5nfSR7Y2xhaW1TdHJpbmd9YDtcbiAgfVxuXG4gIHJldHVybiBzZWN0aW9uU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VicHJvb2ZTdHJpbmdGcm9tU3VwcG9zaXRpb25zQW5kU3ViRGVyaXZhdGlvbihzdXBwb3NpdGlvbnMsIHN1YkRlcml2YXRpb24pIHtcbiAgY29uc3QgbGFzdFN0ZXAgPSBzdWJEZXJpdmF0aW9uLmdldExhc3RTdGVwKCksXG4gICAgICAgIHN1cHBvc2l0aW9uc1N0cmluZyA9IHN1cHBvc2l0aW9uc1N0cmluZ0Zyb21TdXBwb3NpdGlvbnMoc3VwcG9zaXRpb25zKSxcbiAgICAgICAgbGFzdFN0ZXBTdHJpbmcgPSBsYXN0U3RlcC5nZXRTdHJpbmcoKSxcbiAgICAgICAgc3VicHJvb2ZTdHJpbmcgPSBgWyR7c3VwcG9zaXRpb25zU3RyaW5nfV0uLi4ke2xhc3RTdGVwU3RyaW5nfWA7XG5cbiAgcmV0dXJuIHN1YnByb29mU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJhbWVTdWJzdGl0dXRpb25TdHJpbmdGcm9tRnJhbWVBbmRNZXRhdmFyaWFibGUoZnJhbWUsIG1ldGF2YXJpYWJsZSkge1xuICBjb25zdCBmcmFtZVN0cmluZyA9IGZyYW1lLmdldFN0cmluZygpLFxuICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSBtZXRhdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHN0cmluZyA9IGBbJHtmcmFtZVN0cmluZ30gZm9yIFske21ldGF2YXJpYWJsZVN0cmluZ31dXWA7XG5cbiAgcmV0dXJuIHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsYWltU3RyaW5nRnJvbUxhYmVsc1NpZ25hdHVyZVN1cHBvc2l0aW9uc0FuZERlZHVjdGlvbihsYWJlbHMsIHNpZ25hdHVyZSwgc3VwcG9zaXRpb25zLCBkZWR1Y3Rpb24pIHtcbiAgbGV0IGNsYWltU3RyaW5nID0gRU1QVFlfU1RSSU5HO1xuXG4gIGNvbnN0IGRlZHVjdGlvblN0cmluZyA9IGRlZHVjdGlvbi5nZXRTdHJpbmcoKSxcbiAgICAgICAgbGFiZWxzU3RyaW5nID0gbGFiZWxzU3RyaW5nRnJvbUxhYmVscyhsYWJlbHMpLFxuICAgICAgICBzaWduYXR1cmVTdHJpbmcgPSBzaWduYXR1cmVTdHJpbmdGcm9tU2lnbmF0dXJlKHNpZ25hdHVyZSksXG4gICAgICAgIHN1cHBvc2l0aW9uc1N0cmluZyA9IHN1cHBvc2l0aW9uc1N0cmluZ0Zyb21TdXBwb3NpdGlvbnMoc3VwcG9zaXRpb25zKTtcblxuICBjbGFpbVN0cmluZyA9IChsYWJlbHNTdHJpbmcgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgYCR7Y2xhaW1TdHJpbmd9JHtsYWJlbHNTdHJpbmd9YCA6XG4gICAgICAgICAgICAgICAgICAgYC4uYDtcblxuICBjbGFpbVN0cmluZyA9IChzaWduYXR1cmVTdHJpbmcgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgYCR7Y2xhaW1TdHJpbmd9JHtzaWduYXR1cmVTdHJpbmd9YCA6XG4gICAgICAgICAgICAgICAgICAgYCR7Y2xhaW1TdHJpbmd9YDtcblxuXG4gIGNsYWltU3RyaW5nID0gKHN1cHBvc2l0aW9uc1N0cmluZyAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICBgJHtjbGFpbVN0cmluZ30gOjogWyR7c3VwcG9zaXRpb25zU3RyaW5nfV0uLi4ke2RlZHVjdGlvblN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICBgJHtjbGFpbVN0cmluZ30gOjogJHtkZWR1Y3Rpb25TdHJpbmd9YDtcblxuICByZXR1cm4gY2xhaW1TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZWR1cmVDYWxsU3RyaW5nRnJvbVByb2NlZHVyZVJlZmVyZW5jZUFuZFBhcmFtZXRlcnMocHJvY2VkdXJlUmVmZXJlbmNlLCBwYXJhbWV0ZXJzKSB7XG4gIGNvbnN0IHByb2NlZHVyZVJlZmVyZW5jZU5hbWUgPSBwcm9jZWR1cmVSZWZlcmVuY2UuZ2V0TmFtZSgpLFxuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVyc1N0cmluZ0Zyb21QYXJhbWV0ZXJzKHBhcmFtZXRlcnMpLFxuICAgICAgICBwcm9jZWR1cmVDYWxsU3RyaW5nID0gYEAke3Byb2NlZHVyZVJlZmVyZW5jZU5hbWV9KCR7cGFyYW1ldGVyc1N0cmluZ30pYDtcblxuICByZXR1cm4gcHJvY2VkdXJlQ2FsbFN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvdHlwZURlY2xhcmF0aW9uU3RyaW5nRnJvbVR5cGVTdXBlclR5cGVzQW5kUHJvdmlzaW9uYWwodHlwZSwgc3VwZXJUeXBlcywgcHJvdmlzaW9uYWwpIHtcbiAgY29uc3QgdHlwZVN0cmluZyA9IHR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHN1cGVyVHlwZXNTdHJpbmcgPSBzdXBlclR5cGVzU3RyaW5nRnJvbVN1cGVyVHlwZXMoc3VwZXJUeXBlcyksXG4gICAgICAgIHByb3Zpc2lvbmFsU3RyaW5nID0gcHJvdmlzaW5hbFN0cmluZ0Zyb21Qcm92aXNpb25hbChwcm92aXNpb25hbCksXG4gICAgICAgIGNvdHlwZURlY2xhcmF0aW9uU3RyaW5nID0gYCR7cHJvdmlzaW9uYWxTdHJpbmd9JHt0eXBlU3RyaW5nfSR7c3VwZXJUeXBlc1N0cmluZ31gO1xuXG4gIHJldHVybiBjb3R5cGVEZWNsYXJhdGlvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlbWVudFN1YnN0aXR1dGlvblN0cmluZ0Zyb21TdGF0ZW1lbnRBbmRNZXRhdmFyaWFibGUoc3RhdGVtZW50LCBtZXRhdmFyaWFibGUpIHtcbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSBtZXRhdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHN0YXRlbWVudFN1YnN0aXR1dGlvblN0cmluZyA9IGBbJHtzdGF0ZW1lbnRTdHJpbmd9IGZvciAke21ldGF2YXJpYWJsZVN0cmluZ31dYDtcblxuICByZXR1cm4gc3RhdGVtZW50U3Vic3RpdHV0aW9uU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVmZXJlbmNlU3Vic3RpdHV0aW9uU3RyaW5nRnJvbVJlZmVyZW5jZUFuZE1ldGF2YXJpYWJsZShyZWZlcmVuY2UsIG1ldGF2YXJpYWJsZSkge1xuICBjb25zdCByZWZlcmVuY2VTdHJpbmcgPSByZWZlcmVuY2UuZ2V0U3RyaW5nKCksXG4gICAgICAgIG1ldGF2YXJpYWJsZVN0cmluZyA9IG1ldGF2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmVmZXJlbmNlU3Vic3RpdHV0aW9uU3RyaW5nID0gYFske3JlZmVyZW5jZVN0cmluZ30gZm9yICR7bWV0YXZhcmlhYmxlU3RyaW5nfV1gO1xuXG4gIHJldHVybiByZWZlcmVuY2VTdWJzdGl0dXRpb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnRTdWJzdGl0dXRpb25TdHJpbmdGcm9tU3RhdGVtZW50TWV0YXZhcmlhYmxlQW5kU3Vic3RpdHV0aW9uKHN0YXRlbWVudCwgbWV0YXZhcmlhYmxlLCBzdWJzdGl0dXRpb24pIHtcbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSBtZXRhdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHN1YnN0aXR1dGlvblN0cmluZyA9IHN1YnN0aXR1dGlvbi5nZXRTdHJpbmcoKSxcbiAgICAgICAgc3RhdGVtZW50U3Vic3RpdHV0aW9uU3RyaW5nID0gYFske3N0YXRlbWVudFN0cmluZ30gZm9yICR7bWV0YXZhcmlhYmxlU3RyaW5nfSR7c3Vic3RpdHV0aW9uU3RyaW5nfV1gO1xuXG4gIHJldHVybiBzdGF0ZW1lbnRTdWJzdGl0dXRpb25TdHJpbmc7XG59XG4iXSwibmFtZXMiOlsiY2xhaW1TdHJpbmdGcm9tTGFiZWxzU2lnbmF0dXJlU3VwcG9zaXRpb25zQW5kRGVkdWN0aW9uIiwiY29uc3RyYWludFN0cmluZ0Zyb21SZWZlcmVuY2VBbmRTdGF0ZW1lbnQiLCJjb3R5cGVEZWNsYXJhdGlvblN0cmluZ0Zyb21UeXBlU3VwZXJUeXBlc0FuZFByb3Zpc2lvbmFsIiwiZXF1aXZhbGVuY2VTdHJpbmdGcm9tVGVybXMiLCJmcmFtZVN1YnN0aXR1dGlvblN0cmluZ0Zyb21GcmFtZUFuZE1ldGF2YXJpYWJsZSIsImh5cG90aGVzZXNTdHJpbmdGcm9tSHlwb3RoZXNlcyIsImltcGxpY2l0QXNzdW1wdGlvblN0cmluZ0Zyb21TdGF0ZW1lbnQiLCJsYWJlbHNTdHJpbmdGcm9tTGFiZWxzIiwicGFyYW1ldGVyc1N0cmluZ0Zyb21QYXJhbWV0ZXJzIiwicHJlbWlzZXNTdHJpbmdGcm9tUHJlbWlzZXMiLCJwcm9jZWR1cmVDYWxsU3RyaW5nRnJvbVByb2NlZHVyZVJlZmVyZW5jZUFuZFBhcmFtZXRlcnMiLCJwcm92aXNpbmFsU3RyaW5nRnJvbVByb3Zpc2lvbmFsIiwicHJvdmlzaW9uYWxseVN0cmluZ0Zyb21Qcm92aXNpb25hbCIsInJlZmVyZW5jZVN1YnN0aXR1dGlvblN0cmluZ0Zyb21SZWZlcmVuY2VBbmRNZXRhdmFyaWFibGUiLCJydWxzU3RyaW5nRnJvbUxhYmVsc1ByZW1pc2VzQW5kQ29uY2x1c2lvbiIsInNjaGVtYVN0cmluZ0Zyb21MYWJlbFN1cHBvc2l0aW9uc0FuZERlZHVjdGlvbiIsInNlY3Rpb25TdHJpbmdGcm9tSHlwb3RoZXNlc0RlY2xhcmF0aW9uQW5kQ2xhaW0iLCJzaWduYXR1cmVTdHJpbmdGcm9tU2lnbmF0dXJlIiwic3RhdGVtZW50U3Vic3RpdHV0aW9uU3RyaW5nRnJvbVN0YXRlbWVudEFuZE1ldGF2YXJpYWJsZSIsInN0YXRlbWVudFN1YnN0aXR1dGlvblN0cmluZ0Zyb21TdGF0ZW1lbnRNZXRhdmFyaWFibGVBbmRTdWJzdGl0dXRpb24iLCJzdWJwcm9vZlN0cmluZ0Zyb21TdXBwb3NpdGlvbnNBbmRTdWJEZXJpdmF0aW9uIiwic3VwZXJUeXBlc1N0cmluZ0Zyb21TdXBlclR5cGVzIiwic3VwcG9zaXRpb25zU3RyaW5nRnJvbVN1cHBvc2l0aW9ucyIsInRlcm1TdWJzdGl0dXRpb25TdHJpbmdGcm9tVGVybUFuZFZhcmlhYmxlIiwidGVybXNTdHJpbmdGcm9tVGVybXMiLCJ0eXBlU3RyaW5nRnJvbU5vbWluYWxUeXBlTmFtZSIsInRlcm1zIiwidGVybXNTdHJpbmciLCJyZWR1Y2UiLCJ0ZXJtIiwidGVybVN0cmluZyIsImdldFN0cmluZyIsImxhYmVscyIsImxhYmVsc1N0cmluZyIsImxhYmVsIiwibGFiZWxTdHJpbmciLCJwcmVtaXNlcyIsInByZW1pc2VzU3RyaW5nIiwicHJlbWlzZSIsInByZW1pc2VTdHJpbmciLCJoeXBvdGhlc2VzIiwiaHlwb3RoZXNlc1N0cmluZyIsImh5cG90aGVzaXMiLCJoeXBvdGhlc2lzU3RyaW5nIiwic3VwZXJUeXBlcyIsInN1cGVyVHlwZXNTdHJpbmciLCJiYXNlVHlwZSIsImJhc2VUeXBlRnJvbU5vdGhpbmciLCJzdXBlclR5cGUiLCJzdXBlclR5cGVTdHJpbmciLCJFTVBUWV9TVFJJTkciLCJwYXJhbWV0ZXJzIiwicGFyYW1ldGVyc1N0cmluZyIsInBhcmFtZXRlciIsInBhcmFtZXRlclN0cmluZyIsInByb3Zpc2lvbmFsIiwicHJvdmlzaW5hbFN0cmluZyIsIlBST1ZJU0lPTkFMIiwicHJvdmlzaW5hbGx5U3RyaW5nIiwiUFJPVklTSU9OQUxMWSIsInN1cHBvc2l0aW9ucyIsInN1cHBvc2l0aW9uc1N0cmluZyIsInN1cHBvc2l0aW9uIiwic3VwcG9zaXRpb25TdHJpbmciLCJlcXVpdmFsZW5jZVN0cmluZyIsInNpZ25hdHVyZSIsInNpZ25hdHVyZVN0cmluZyIsIm5vbWluYWxUeXBlTmFtZSIsInR5cGVTdHJpbmciLCJzdGFzdGVtZW50Iiwic3RhdGVtZW50U3RyaW5nIiwiaW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nIiwidmFyaWFibGUiLCJ2YXJpYWJsZVN0cmluZyIsInRlcm1TdWJzdGl0dXRpb25TdHJpbmciLCJyZWZlcmVuY2UiLCJzdGF0ZW1lbnQiLCJyZWZlcm5lY2VTdHJpbmciLCJjb25zdHJhaW50U3RyaW5nIiwiY29uY2x1c2lvbiIsInJ1bGVTdHJpbmciLCJjb25jbHVzaW9uU3RyaW5nIiwiZGVkdWN0aW9uIiwiZGVkdWN0aW9uU3RyaW5nIiwic2NoZW1hU3RyaW5nIiwiZGVjbGFyYXRpb24iLCJjbGFpbSIsInNlY3Rpb25TdHJpbmciLCJkZWNsYXJhdGlvblN0cmluZyIsImNsYWltU3RyaW5nIiwic3ViRGVyaXZhdGlvbiIsImxhc3RTdGVwIiwiZ2V0TGFzdFN0ZXAiLCJsYXN0U3RlcFN0cmluZyIsInN1YnByb29mU3RyaW5nIiwiZnJhbWUiLCJtZXRhdmFyaWFibGUiLCJmcmFtZVN0cmluZyIsIm1ldGF2YXJpYWJsZVN0cmluZyIsInN0cmluZyIsInByb2NlZHVyZVJlZmVyZW5jZSIsInByb2NlZHVyZVJlZmVyZW5jZU5hbWUiLCJnZXROYW1lIiwicHJvY2VkdXJlQ2FsbFN0cmluZyIsInR5cGUiLCJwcm92aXNpb25hbFN0cmluZyIsImNvdHlwZURlY2xhcmF0aW9uU3RyaW5nIiwic3RhdGVtZW50U3Vic3RpdHV0aW9uU3RyaW5nIiwicmVmZXJlbmNlU3RyaW5nIiwicmVmZXJlbmNlU3Vic3RpdHV0aW9uU3RyaW5nIiwic3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUErT2dCQTtlQUFBQTs7UUExRUFDO2VBQUFBOztRQTBHQUM7ZUFBQUE7O1FBOUlBQztlQUFBQTs7UUFzR0FDO2VBQUFBOztRQXhMQUM7ZUFBQUE7O1FBdUdBQztlQUFBQTs7UUFuSUFDO2VBQUFBOztRQWtFQUM7ZUFBQUE7O1FBcERBQztlQUFBQTs7UUFzT0FDO2VBQUFBOztRQXBLQUM7ZUFBQUE7O1FBUUFDO2VBQUFBOztRQXFMQUM7ZUFBQUE7O1FBbkhBQztlQUFBQTs7UUFnQkFDO2VBQUFBOztRQVdBQztlQUFBQTs7UUFoRUFDO2VBQUFBOztRQWdKQUM7ZUFBQUE7O1FBZ0JBQztlQUFBQTs7UUExRUFDO2VBQUFBOztRQWpLQUM7ZUFBQUE7O1FBc0RBQztlQUFBQTs7UUEwQ0FDO2VBQUFBOztRQXhKQUM7ZUFBQUE7O1FBMklBQztlQUFBQTs7O3NCQTlJb0I7MkJBQ3FCO0FBRWxELFNBQVNELHFCQUFxQkUsS0FBSztJQUN4QyxNQUFNQyxjQUFjRCxNQUFNRSxNQUFNLENBQUMsQ0FBQ0QsYUFBYUU7UUFDN0MsTUFBTUMsYUFBYUQsS0FBS0UsU0FBUztRQUVqQ0osY0FBYyxBQUFDQSxnQkFBZ0IsT0FDaEIsR0FBR0EsWUFBWSxFQUFFLEVBQUVHLFlBQVksR0FDNUJBO1FBRWxCLE9BQU9IO0lBQ1QsR0FB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
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBiYXNlVHlwZUZyb21Ob3RoaW5nIH0gZnJvbSBcIi4uL3V0aWxpdGllcy90eXBlXCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcsIFBST1ZJU0lPTkFMLCBQUk9WSVNJT05BTExZIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gdGVybXNTdHJpbmdGcm9tVGVybXModGVybXMsIHF1b3RlZCA9IGZhbHNlKSB7XG4gIGNvbnN0IHRlcm1zU3RyaW5nID0gdGVybXMucmVkdWNlKCh0ZXJtc1N0cmluZywgdGVybSkgPT4ge1xuICAgIGxldCB0ZXJtU3RyaW5nO1xuXG4gICAgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCk7XG5cbiAgICBpZiAocXVvdGVkKSB7XG4gICAgICB0ZXJtU3RyaW5nID0gYCcke3Rlcm1TdHJpbmd9J2A7XG4gICAgfVxuXG4gICAgdGVybXNTdHJpbmcgPSAodGVybXNTdHJpbmcgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICBgJHt0ZXJtc1N0cmluZ30sICR7dGVybVN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICB0ZXJtU3RyaW5nO1xuXG4gICAgcmV0dXJuIHRlcm1zU3RyaW5nO1xuICB9LCBudWxsKTtcblxuICByZXR1cm4gdGVybXNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsYWJlbHNTdHJpbmdGcm9tTGFiZWxzKGxhYmVscykge1xuICBjb25zdCBsYWJlbHNTdHJpbmcgPSBsYWJlbHMucmVkdWNlKChsYWJlbHNTdHJpbmcsIGxhYmVsKSA9PiB7XG4gICAgY29uc3QgbGFiZWxTdHJpbmcgPSBsYWJlbC5nZXRTdHJpbmcoKTtcblxuICAgIGxhYmVsc1N0cmluZyA9IChsYWJlbHNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiAvLy9cbiAgICAgICAgICAgICAgICAgICAgICBgJHtsYWJlbHNTdHJpbmd9LCAke2xhYmVsU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gbGFiZWxzU3RyaW5nO1xuICB9LCBudWxsKTtcblxuICByZXR1cm4gbGFiZWxzU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlbWlzZXNTdHJpbmdGcm9tUHJlbWlzZXMocHJlbWlzZXMpIHtcbiAgY29uc3QgcHJlbWlzZXNTdHJpbmcgPSBwcmVtaXNlcy5yZWR1Y2UoKHByZW1pc2VzU3RyaW5nLCBwcmVtaXNlKSA9PiB7XG4gICAgY29uc3QgcHJlbWlzZVN0cmluZyA9IHByZW1pc2UuZ2V0U3RyaW5nKCk7XG5cbiAgICBwcmVtaXNlc1N0cmluZyA9IChwcmVtaXNlc1N0cmluZyAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICBgJHtwcmVtaXNlc1N0cmluZ30sICR7cHJlbWlzZVN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICBwcmVtaXNlU3RyaW5nOyAgLy8vXG5cbiAgICByZXR1cm4gcHJlbWlzZXNTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBwcmVtaXNlc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh5cG90aGVzZXNTdHJpbmdGcm9tSHlwb3RoZXNlcyhoeXBvdGhlc2VzKSB7XG4gIGNvbnN0IGh5cG90aGVzZXNTdHJpbmcgPSBoeXBvdGhlc2VzLnJlZHVjZSgoaHlwb3RoZXNlc1N0cmluZywgaHlwb3RoZXNpcykgPT4ge1xuICAgIGNvbnN0IGh5cG90aGVzaXNTdHJpbmcgPSBoeXBvdGhlc2lzLmdldFN0cmluZygpO1xuXG4gICAgaHlwb3RoZXNlc1N0cmluZyA9IChoeXBvdGhlc2VzU3RyaW5nICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGAke2h5cG90aGVzZXNTdHJpbmd9LCAke2h5cG90aGVzaXNTdHJpbmd9YCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHlwb3RoZXNpc1N0cmluZzsgIC8vL1xuXG4gICAgcmV0dXJuIGh5cG90aGVzZXNTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBoeXBvdGhlc2VzU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VwZXJUeXBlc1N0cmluZ0Zyb21TdXBlclR5cGVzKHN1cGVyVHlwZXMpIHtcbiAgbGV0IHN1cGVyVHlwZXNTdHJpbmc7XG5cbiAgY29uc3QgYmFzZVR5cGUgPSBiYXNlVHlwZUZyb21Ob3RoaW5nKCk7XG5cbiAgc3VwZXJUeXBlc1N0cmluZyA9IHN1cGVyVHlwZXMucmVkdWNlKChzdXBlclR5cGVzU3RyaW5nLCBzdXBlclR5cGUpID0+IHtcbiAgICBpZiAoc3VwZXJUeXBlICE9PSBiYXNlVHlwZSkge1xuICAgICAgY29uc3Qgc3VwZXJUeXBlU3RyaW5nID0gc3VwZXJUeXBlLmdldFN0cmluZygpO1xuXG4gICAgICBzdXBlclR5cGVzU3RyaW5nID0gKHN1cGVyVHlwZXNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGAnJHtzdXBlclR5cGVTdHJpbmd9J2AgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7c3VwZXJUeXBlc1N0cmluZ30sICcke3N1cGVyVHlwZVN0cmluZ30nYDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXJUeXBlc1N0cmluZztcbiAgfSwgbnVsbCk7XG5cbiAgc3VwZXJUeXBlc1N0cmluZyA9IChzdXBlclR5cGVzU3RyaW5nICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgIGA6JHtzdXBlclR5cGVzU3RyaW5nfWAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICBFTVBUWV9TVFJJTkc7XG5cbiAgcmV0dXJuIHN1cGVyVHlwZXNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJhbWV0ZXJzU3RyaW5nRnJvbVBhcmFtZXRlcnMocGFyYW1ldGVycykge1xuICBjb25zdCBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5yZWR1Y2UoKHBhcmFtZXRlcnNTdHJpbmcsIHBhcmFtZXRlcikgPT4ge1xuICAgIGNvbnN0IHBhcmFtZXRlclN0cmluZyA9IHBhcmFtZXRlci5nZXRTdHJpbmcoKTtcblxuICAgIHBhcmFtZXRlcnNTdHJpbmcgPSAocGFyYW1ldGVyc1N0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlclN0cmluZyA6IC8vL1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtwYXJhbWV0ZXJzU3RyaW5nfSwgJHtwYXJhbWV0ZXJTdHJpbmd9YDtcblxuICAgIHJldHVybiBwYXJhbWV0ZXJzU3RyaW5nO1xuICB9LCBudWxsKTtcblxuICByZXR1cm4gcGFyYW1ldGVyc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3Zpc2luYWxTdHJpbmdGcm9tUHJvdmlzaW9uYWwocHJvdmlzaW9uYWwpIHtcbiAgY29uc3QgcHJvdmlzaW5hbFN0cmluZyA9IHByb3Zpc2lvbmFsID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtQUk9WSVNJT05BTH0gYCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTVBUWV9TVFJJTkc7XG5cbiAgcmV0dXJuIHByb3Zpc2luYWxTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aXNpb25hbGx5U3RyaW5nRnJvbVByb3Zpc2lvbmFsKHByb3Zpc2lvbmFsKSB7XG4gIGNvbnN0IHByb3Zpc2luYWxseVN0cmluZyA9IHByb3Zpc2lvbmFsID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAgJHtQUk9WSVNJT05BTExZfWAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU1QVFlfU1RSSU5HO1xuXG4gIHJldHVybiBwcm92aXNpbmFsbHlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdXBwb3NpdGlvbnNTdHJpbmdGcm9tU3VwcG9zaXRpb25zKHN1cHBvc2l0aW9ucykge1xuICBjb25zdCBzdXBwb3NpdGlvbnNTdHJpbmcgPSBzdXBwb3NpdGlvbnMucmVkdWNlKChzdXBwb3NpdGlvbnNTdHJpbmcsIHN1cHBvc2l0aW9uKSA9PiB7XG4gICAgY29uc3Qgc3VwcG9zaXRpb25TdHJpbmcgPSBzdXBwb3NpdGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIHN1cHBvc2l0aW9uc1N0cmluZyA9IChzdXBwb3NpdGlvbnNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvc2l0aW9uU3RyaW5nOiAvLy9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtzdXBwb3NpdGlvbnNTdHJpbmd9LCAke3N1cHBvc2l0aW9uU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gc3VwcG9zaXRpb25zU3RyaW5nO1xuICB9LCBudWxsKTtcblxuICByZXR1cm4gc3VwcG9zaXRpb25zU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXF1aXZhbGVuY2VTdHJpbmdGcm9tVGVybXModGVybXMpIHtcbiAgY29uc3QgdGVybXNTdHJpbmcgPSB0ZXJtc1N0cmluZ0Zyb21UZXJtcyh0ZXJtcyksXG4gICAgICAgIGVxdWl2YWxlbmNlU3RyaW5nID0gYFske3Rlcm1zU3RyaW5nfV1gO1xuXG4gIHJldHVybiBlcXVpdmFsZW5jZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hdHVyZVN0cmluZ0Zyb21TaWduYXR1cmUoc2lnbmF0dXJlKSB7XG4gIGNvbnN0IHNpZ25hdHVyZVN0cmluZyA9IChzaWduYXR1cmUgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmUuZ2V0U3RyaW5nKCkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcblxuICByZXR1cm4gc2lnbmF0dXJlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHlwZVN0cmluZ0Zyb21Ob21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKSB7XG4gIGNvbnN0IHR5cGVTdHJpbmcgPSBub21pbmFsVHlwZU5hbWU7ICAvLy9cblxuICByZXR1cm4gdHlwZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGltcGxpY2l0QXNzdW1wdGlvblN0cmluZ0Zyb21TdGF0ZW1lbnQoc3Rhc3RlbWVudCkge1xuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGFzdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICBpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmcgPSBgLiA6OiAke3N0YXRlbWVudFN0cmluZ31gO1xuXG4gIHJldHVybiBpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXJtU3Vic3RpdHV0aW9uU3RyaW5nRnJvbVRlcm1BbmRWYXJpYWJsZSh0ZXJtLCB2YXJpYWJsZSkge1xuICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgdGVybVN1YnN0aXR1dGlvblN0cmluZyA9IGBbJHt0ZXJtU3RyaW5nfSBmb3IgJHt2YXJpYWJsZVN0cmluZ31dYDtcblxuICByZXR1cm4gdGVybVN1YnN0aXR1dGlvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0cmFpbnRTdHJpbmdGcm9tUmVmZXJlbmNlQW5kU3RhdGVtZW50KHJlZmVyZW5jZSwgc3RhdGVtZW50KSB7XG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmVmZXJuZWNlU3RyaW5nID0gcmVmZXJlbmNlLmdldFN0cmluZygpLFxuICAgICAgICBjb25zdHJhaW50U3RyaW5nID0gYCR7cmVmZXJuZWNlU3RyaW5nfSA6OiAke3N0YXRlbWVudFN0cmluZ31gO1xuXG4gIHJldHVybiBjb25zdHJhaW50U3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVsc1N0cmluZ0Zyb21MYWJlbHNQcmVtaXNlc0FuZENvbmNsdXNpb24obGFiZWxzLCBwcmVtaXNlcywgY29uY2x1c2lvbikge1xuICBsZXQgcnVsZVN0cmluZyA9IEVNUFRZX1NUUklORztcblxuICBjb25zdCBjb25jbHVzaW9uU3RyaW5nID0gY29uY2x1c2lvbi5nZXRTdHJpbmcoKSxcbiAgICAgICAgcHJlbWlzZXNTdHJpbmcgPSBwcmVtaXNlc1N0cmluZ0Zyb21QcmVtaXNlcyhwcmVtaXNlcyksXG4gICAgICAgIGxhYmVsc1N0cmluZyA9IGxhYmVsc1N0cmluZ0Zyb21MYWJlbHMobGFiZWxzKTtcblxuICBydWxlU3RyaW5nID0gYCR7cnVsZVN0cmluZ30ke2xhYmVsc1N0cmluZ30gOjogYDtcblxuICBydWxlU3RyaW5nID0gKHByZW1pc2VzU3RyaW5nICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgIGAke3J1bGVTdHJpbmd9WyR7cHJlbWlzZXNTdHJpbmd9XS4uLiR7Y29uY2x1c2lvblN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICBgJHtydWxlU3RyaW5nfSR7Y29uY2x1c2lvblN0cmluZ31gO1xuXG4gIHJldHVybiBydWxlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2NoZW1hU3RyaW5nRnJvbUxhYmVsU3VwcG9zaXRpb25zQW5kRGVkdWN0aW9uKGxhYmVsLCBzdXBwb3NpdGlvbnMsIGRlZHVjdGlvbikge1xuICBjb25zdCBsYWJlbFN0cmluZyA9IGxhYmVsLmdldFN0cmluZygpLFxuICAgICAgICBkZWR1Y3Rpb25TdHJpbmcgPSBkZWR1Y3Rpb24uZ2V0U3RyaW5nKCksXG4gICAgICAgIHN1cHBvc2l0aW9uc1N0cmluZyA9IHN1cHBvc2l0aW9uc1N0cmluZ0Zyb21TdXBwb3NpdGlvbnMoc3VwcG9zaXRpb25zKSxcbiAgICAgICAgc2NoZW1hU3RyaW5nID0gKHN1cHBvc2l0aW9uc1N0cmluZyAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgYCR7bGFiZWxTdHJpbmd9IDo6IFske3N1cHBvc2l0aW9uc1N0cmluZ31dLi4uJHtkZWR1Y3Rpb25TdHJpbmd9YCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGAke2xhYmVsU3RyaW5nfSA6OiAke2RlZHVjdGlvblN0cmluZ31gO1xuXG4gIHJldHVybiBzY2hlbWFTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZWN0aW9uU3RyaW5nRnJvbUh5cG90aGVzZXNEZWNsYXJhdGlvbkFuZENsYWltKGh5cG90aGVzZXMsIGRlY2xhcmF0aW9uLCBjbGFpbSkge1xuICBsZXQgc2VjdGlvblN0cmluZztcblxuICBjb25zdCBoeXBvdGhlc2VzU3RyaW5nID0gaHlwb3RoZXNlc1N0cmluZ0Zyb21IeXBvdGhlc2VzKGh5cG90aGVzZXMpO1xuXG4gIHNlY3Rpb25TdHJpbmcgPSBgWyR7aHlwb3RoZXNlc1N0cmluZ31dOjo6IGA7XG5cbiAgaWYgKGRlY2xhcmF0aW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgZGVjbGFyYXRpb25TdHJpbmcgPSBkZWNsYXJhdGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIHNlY3Rpb25TdHJpbmcgPSBgJHtzZWN0aW9uU3RyaW5nfSR7ZGVjbGFyYXRpb25TdHJpbmd9YDtcbiAgfVxuXG4gIGlmIChjbGFpbSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGNsYWltU3RyaW5nID0gY2xhaW0uZ2V0U3RyaW5nKCk7XG5cbiAgICBzZWN0aW9uU3RyaW5nID0gYCR7c2VjdGlvblN0cmluZ30ke2NsYWltU3RyaW5nfWA7XG4gIH1cblxuICByZXR1cm4gc2VjdGlvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1YnByb29mU3RyaW5nRnJvbVN1cHBvc2l0aW9uc0FuZFN1YkRlcml2YXRpb24oc3VwcG9zaXRpb25zLCBzdWJEZXJpdmF0aW9uKSB7XG4gIGNvbnN0IGxhc3RTdGVwID0gc3ViRGVyaXZhdGlvbi5nZXRMYXN0U3RlcCgpLFxuICAgICAgICBzdXBwb3NpdGlvbnNTdHJpbmcgPSBzdXBwb3NpdGlvbnNTdHJpbmdGcm9tU3VwcG9zaXRpb25zKHN1cHBvc2l0aW9ucyksXG4gICAgICAgIGxhc3RTdGVwU3RyaW5nID0gbGFzdFN0ZXAuZ2V0U3RyaW5nKCksXG4gICAgICAgIHN1YnByb29mU3RyaW5nID0gYFske3N1cHBvc2l0aW9uc1N0cmluZ31dLi4uJHtsYXN0U3RlcFN0cmluZ31gO1xuXG4gIHJldHVybiBzdWJwcm9vZlN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyYW1lU3Vic3RpdHV0aW9uU3RyaW5nRnJvbUZyYW1lQW5kTWV0YXZhcmlhYmxlKGZyYW1lLCBtZXRhdmFyaWFibGUpIHtcbiAgY29uc3QgZnJhbWVTdHJpbmcgPSBmcmFtZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbWV0YXZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICBzdHJpbmcgPSBgWyR7ZnJhbWVTdHJpbmd9IGZvciBbJHttZXRhdmFyaWFibGVTdHJpbmd9XV1gO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGFpbVN0cmluZ0Zyb21MYWJlbHNTaWduYXR1cmVTdXBwb3NpdGlvbnNBbmREZWR1Y3Rpb24obGFiZWxzLCBzaWduYXR1cmUsIHN1cHBvc2l0aW9ucywgZGVkdWN0aW9uKSB7XG4gIGxldCBjbGFpbVN0cmluZyA9IEVNUFRZX1NUUklORztcblxuICBjb25zdCBkZWR1Y3Rpb25TdHJpbmcgPSBkZWR1Y3Rpb24uZ2V0U3RyaW5nKCksXG4gICAgICAgIGxhYmVsc1N0cmluZyA9IGxhYmVsc1N0cmluZ0Zyb21MYWJlbHMobGFiZWxzKSxcbiAgICAgICAgc2lnbmF0dXJlU3RyaW5nID0gc2lnbmF0dXJlU3RyaW5nRnJvbVNpZ25hdHVyZShzaWduYXR1cmUpLFxuICAgICAgICBzdXBwb3NpdGlvbnNTdHJpbmcgPSBzdXBwb3NpdGlvbnNTdHJpbmdGcm9tU3VwcG9zaXRpb25zKHN1cHBvc2l0aW9ucyk7XG5cbiAgY2xhaW1TdHJpbmcgPSAobGFiZWxzU3RyaW5nICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgIGAke2NsYWltU3RyaW5nfSR7bGFiZWxzU3RyaW5nfWAgOlxuICAgICAgICAgICAgICAgICAgIGAuLmA7XG5cbiAgY2xhaW1TdHJpbmcgPSAoc2lnbmF0dXJlU3RyaW5nICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgIGAke2NsYWltU3RyaW5nfSR7c2lnbmF0dXJlU3RyaW5nfWAgOlxuICAgICAgICAgICAgICAgICAgIGAke2NsYWltU3RyaW5nfWA7XG5cblxuICBjbGFpbVN0cmluZyA9IChzdXBwb3NpdGlvbnNTdHJpbmcgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgYCR7Y2xhaW1TdHJpbmd9IDo6IFske3N1cHBvc2l0aW9uc1N0cmluZ31dLi4uJHtkZWR1Y3Rpb25TdHJpbmd9YCA6XG4gICAgICAgICAgICAgICAgICAgYCR7Y2xhaW1TdHJpbmd9IDo6ICR7ZGVkdWN0aW9uU3RyaW5nfWA7XG5cbiAgcmV0dXJuIGNsYWltU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvY2VkdXJlQ2FsbFN0cmluZ0Zyb21Qcm9jZWR1cmVSZWZlcmVuY2VBbmRQYXJhbWV0ZXJzKHByb2NlZHVyZVJlZmVyZW5jZSwgcGFyYW1ldGVycykge1xuICBjb25zdCBwcm9jZWR1cmVSZWZlcmVuY2VOYW1lID0gcHJvY2VkdXJlUmVmZXJlbmNlLmdldE5hbWUoKSxcbiAgICAgICAgcGFyYW1ldGVyc1N0cmluZyA9IHBhcmFtZXRlcnNTdHJpbmdGcm9tUGFyYW1ldGVycyhwYXJhbWV0ZXJzKSxcbiAgICAgICAgcHJvY2VkdXJlQ2FsbFN0cmluZyA9IGBAJHtwcm9jZWR1cmVSZWZlcmVuY2VOYW1lfSgke3BhcmFtZXRlcnNTdHJpbmd9KWA7XG5cbiAgcmV0dXJuIHByb2NlZHVyZUNhbGxTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb3R5cGVEZWNsYXJhdGlvblN0cmluZ0Zyb21UeXBlU3VwZXJUeXBlc0FuZFByb3Zpc2lvbmFsKHR5cGUsIHN1cGVyVHlwZXMsIHByb3Zpc2lvbmFsKSB7XG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLmdldFN0cmluZygpLFxuICAgICAgICBzdXBlclR5cGVzU3RyaW5nID0gc3VwZXJUeXBlc1N0cmluZ0Zyb21TdXBlclR5cGVzKHN1cGVyVHlwZXMpLFxuICAgICAgICBwcm92aXNpb25hbFN0cmluZyA9IHByb3Zpc2luYWxTdHJpbmdGcm9tUHJvdmlzaW9uYWwocHJvdmlzaW9uYWwpLFxuICAgICAgICBjb3R5cGVEZWNsYXJhdGlvblN0cmluZyA9IGAke3Byb3Zpc2lvbmFsU3RyaW5nfSR7dHlwZVN0cmluZ30ke3N1cGVyVHlwZXNTdHJpbmd9YDtcblxuICByZXR1cm4gY290eXBlRGVjbGFyYXRpb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnRTdWJzdGl0dXRpb25TdHJpbmdGcm9tU3RhdGVtZW50QW5kTWV0YXZhcmlhYmxlKHN0YXRlbWVudCwgbWV0YXZhcmlhYmxlKSB7XG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbWV0YXZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICBzdGF0ZW1lbnRTdWJzdGl0dXRpb25TdHJpbmcgPSBgWyR7c3RhdGVtZW50U3RyaW5nfSBmb3IgJHttZXRhdmFyaWFibGVTdHJpbmd9XWA7XG5cbiAgcmV0dXJuIHN0YXRlbWVudFN1YnN0aXR1dGlvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZmVyZW5jZVN1YnN0aXR1dGlvblN0cmluZ0Zyb21SZWZlcmVuY2VBbmRNZXRhdmFyaWFibGUocmVmZXJlbmNlLCBtZXRhdmFyaWFibGUpIHtcbiAgY29uc3QgcmVmZXJlbmNlU3RyaW5nID0gcmVmZXJlbmNlLmdldFN0cmluZygpLFxuICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSBtZXRhdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHJlZmVyZW5jZVN1YnN0aXR1dGlvblN0cmluZyA9IGBbJHtyZWZlcmVuY2VTdHJpbmd9IGZvciAke21ldGF2YXJpYWJsZVN0cmluZ31dYDtcblxuICByZXR1cm4gcmVmZXJlbmNlU3Vic3RpdHV0aW9uU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RhdGVtZW50U3Vic3RpdHV0aW9uU3RyaW5nRnJvbVN0YXRlbWVudE1ldGF2YXJpYWJsZUFuZFN1YnN0aXR1dGlvbihzdGF0ZW1lbnQsIG1ldGF2YXJpYWJsZSwgc3Vic3RpdHV0aW9uKSB7XG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbWV0YXZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICBzdWJzdGl0dXRpb25TdHJpbmcgPSBzdWJzdGl0dXRpb24uZ2V0U3RyaW5nKCksXG4gICAgICAgIHN0YXRlbWVudFN1YnN0aXR1dGlvblN0cmluZyA9IGBbJHtzdGF0ZW1lbnRTdHJpbmd9IGZvciAke21ldGF2YXJpYWJsZVN0cmluZ30ke3N1YnN0aXR1dGlvblN0cmluZ31dYDtcblxuICByZXR1cm4gc3RhdGVtZW50U3Vic3RpdHV0aW9uU3RyaW5nO1xufVxuIl0sIm5hbWVzIjpbImNsYWltU3RyaW5nRnJvbUxhYmVsc1NpZ25hdHVyZVN1cHBvc2l0aW9uc0FuZERlZHVjdGlvbiIsImNvbnN0cmFpbnRTdHJpbmdGcm9tUmVmZXJlbmNlQW5kU3RhdGVtZW50IiwiY290eXBlRGVjbGFyYXRpb25TdHJpbmdGcm9tVHlwZVN1cGVyVHlwZXNBbmRQcm92aXNpb25hbCIsImVxdWl2YWxlbmNlU3RyaW5nRnJvbVRlcm1zIiwiZnJhbWVTdWJzdGl0dXRpb25TdHJpbmdGcm9tRnJhbWVBbmRNZXRhdmFyaWFibGUiLCJoeXBvdGhlc2VzU3RyaW5nRnJvbUh5cG90aGVzZXMiLCJpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmdGcm9tU3RhdGVtZW50IiwibGFiZWxzU3RyaW5nRnJvbUxhYmVscyIsInBhcmFtZXRlcnNTdHJpbmdGcm9tUGFyYW1ldGVycyIsInByZW1pc2VzU3RyaW5nRnJvbVByZW1pc2VzIiwicHJvY2VkdXJlQ2FsbFN0cmluZ0Zyb21Qcm9jZWR1cmVSZWZlcmVuY2VBbmRQYXJhbWV0ZXJzIiwicHJvdmlzaW5hbFN0cmluZ0Zyb21Qcm92aXNpb25hbCIsInByb3Zpc2lvbmFsbHlTdHJpbmdGcm9tUHJvdmlzaW9uYWwiLCJyZWZlcmVuY2VTdWJzdGl0dXRpb25TdHJpbmdGcm9tUmVmZXJlbmNlQW5kTWV0YXZhcmlhYmxlIiwicnVsc1N0cmluZ0Zyb21MYWJlbHNQcmVtaXNlc0FuZENvbmNsdXNpb24iLCJzY2hlbWFTdHJpbmdGcm9tTGFiZWxTdXBwb3NpdGlvbnNBbmREZWR1Y3Rpb24iLCJzZWN0aW9uU3RyaW5nRnJvbUh5cG90aGVzZXNEZWNsYXJhdGlvbkFuZENsYWltIiwic2lnbmF0dXJlU3RyaW5nRnJvbVNpZ25hdHVyZSIsInN0YXRlbWVudFN1YnN0aXR1dGlvblN0cmluZ0Zyb21TdGF0ZW1lbnRBbmRNZXRhdmFyaWFibGUiLCJzdGF0ZW1lbnRTdWJzdGl0dXRpb25TdHJpbmdGcm9tU3RhdGVtZW50TWV0YXZhcmlhYmxlQW5kU3Vic3RpdHV0aW9uIiwic3VicHJvb2ZTdHJpbmdGcm9tU3VwcG9zaXRpb25zQW5kU3ViRGVyaXZhdGlvbiIsInN1cGVyVHlwZXNTdHJpbmdGcm9tU3VwZXJUeXBlcyIsInN1cHBvc2l0aW9uc1N0cmluZ0Zyb21TdXBwb3NpdGlvbnMiLCJ0ZXJtU3Vic3RpdHV0aW9uU3RyaW5nRnJvbVRlcm1BbmRWYXJpYWJsZSIsInRlcm1zU3RyaW5nRnJvbVRlcm1zIiwidHlwZVN0cmluZ0Zyb21Ob21pbmFsVHlwZU5hbWUiLCJ0ZXJtcyIsInF1b3RlZCIsInRlcm1zU3RyaW5nIiwicmVkdWNlIiwidGVybSIsInRlcm1TdHJpbmciLCJnZXRTdHJpbmciLCJsYWJlbHMiLCJsYWJlbHNTdHJpbmciLCJsYWJlbCIsImxhYmVsU3RyaW5nIiwicHJlbWlzZXMiLCJwcmVtaXNlc1N0cmluZyIsInByZW1pc2UiLCJwcmVtaXNlU3RyaW5nIiwiaHlwb3RoZXNlcyIsImh5cG90aGVzZXNTdHJpbmciLCJoeXBvdGhlc2lzIiwiaHlwb3RoZXNpc1N0cmluZyIsInN1cGVyVHlwZXMiLCJzdXBlclR5cGVzU3RyaW5nIiwiYmFzZVR5cGUiLCJiYXNlVHlwZUZyb21Ob3RoaW5nIiwic3VwZXJUeXBlIiwic3VwZXJUeXBlU3RyaW5nIiwiRU1QVFlfU1RSSU5HIiwicGFyYW1ldGVycyIsInBhcmFtZXRlcnNTdHJpbmciLCJwYXJhbWV0ZXIiLCJwYXJhbWV0ZXJTdHJpbmciLCJwcm92aXNpb25hbCIsInByb3Zpc2luYWxTdHJpbmciLCJQUk9WSVNJT05BTCIsInByb3Zpc2luYWxseVN0cmluZyIsIlBST1ZJU0lPTkFMTFkiLCJzdXBwb3NpdGlvbnMiLCJzdXBwb3NpdGlvbnNTdHJpbmciLCJzdXBwb3NpdGlvbiIsInN1cHBvc2l0aW9uU3RyaW5nIiwiZXF1aXZhbGVuY2VTdHJpbmciLCJzaWduYXR1cmUiLCJzaWduYXR1cmVTdHJpbmciLCJub21pbmFsVHlwZU5hbWUiLCJ0eXBlU3RyaW5nIiwic3Rhc3RlbWVudCIsInN0YXRlbWVudFN0cmluZyIsImltcGxpY2l0QXNzdW1wdGlvblN0cmluZyIsInZhcmlhYmxlIiwidmFyaWFibGVTdHJpbmciLCJ0ZXJtU3Vic3RpdHV0aW9uU3RyaW5nIiwicmVmZXJlbmNlIiwic3RhdGVtZW50IiwicmVmZXJuZWNlU3RyaW5nIiwiY29uc3RyYWludFN0cmluZyIsImNvbmNsdXNpb24iLCJydWxlU3RyaW5nIiwiY29uY2x1c2lvblN0cmluZyIsImRlZHVjdGlvbiIsImRlZHVjdGlvblN0cmluZyIsInNjaGVtYVN0cmluZyIsImRlY2xhcmF0aW9uIiwiY2xhaW0iLCJzZWN0aW9uU3RyaW5nIiwiZGVjbGFyYXRpb25TdHJpbmciLCJjbGFpbVN0cmluZyIsInN1YkRlcml2YXRpb24iLCJsYXN0U3RlcCIsImdldExhc3RTdGVwIiwibGFzdFN0ZXBTdHJpbmciLCJzdWJwcm9vZlN0cmluZyIsImZyYW1lIiwibWV0YXZhcmlhYmxlIiwiZnJhbWVTdHJpbmciLCJtZXRhdmFyaWFibGVTdHJpbmciLCJzdHJpbmciLCJwcm9jZWR1cmVSZWZlcmVuY2UiLCJwcm9jZWR1cmVSZWZlcmVuY2VOYW1lIiwiZ2V0TmFtZSIsInByb2NlZHVyZUNhbGxTdHJpbmciLCJ0eXBlIiwicHJvdmlzaW9uYWxTdHJpbmciLCJjb3R5cGVEZWNsYXJhdGlvblN0cmluZyIsInN0YXRlbWVudFN1YnN0aXR1dGlvblN0cmluZyIsInJlZmVyZW5jZVN0cmluZyIsInJlZmVyZW5jZVN1YnN0aXR1dGlvblN0cmluZyIsInN1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvblN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBcVBnQkE7ZUFBQUE7O1FBMUVBQztlQUFBQTs7UUEwR0FDO2VBQUFBOztRQTlJQUM7ZUFBQUE7O1FBc0dBQztlQUFBQTs7UUF4TEFDO2VBQUFBOztRQXVHQUM7ZUFBQUE7O1FBbklBQztlQUFBQTs7UUFrRUFDO2VBQUFBOztRQXBEQUM7ZUFBQUE7O1FBc09BQztlQUFBQTs7UUFwS0FDO2VBQUFBOztRQVFBQztlQUFBQTs7UUFxTEFDO2VBQUFBOztRQW5IQUM7ZUFBQUE7O1FBZ0JBQztlQUFBQTs7UUFXQUM7ZUFBQUE7O1FBaEVBQztlQUFBQTs7UUFnSkFDO2VBQUFBOztRQWdCQUM7ZUFBQUE7O1FBMUVBQztlQUFBQTs7UUFqS0FDO2VBQUFBOztRQXNEQUM7ZUFBQUE7O1FBMENBQztlQUFBQTs7UUE5SkFDO2VBQUFBOztRQWlKQUM7ZUFBQUE7OztzQkFwSm9COzJCQUNxQjtBQUVsRCxTQUFTRCxxQkFBcUJFLEtBQUssRUFBRUMsU0FBUyxLQUFLO0lBQ3hELE1BQU1DLGNBQWNGLE1BQU1HLE1BQU0sQ0FBQyxD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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-nominal",
3
3
  "author": "James Smith",
4
- "version": "1.0.430",
4
+ "version": "1.0.432",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-nominal",
7
7
  "description": "Occam's Nominal language.",
@@ -11,16 +11,16 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "necessary": "^17.6.3",
14
- "occam-furtle": "^3.0.438",
14
+ "occam-furtle": "^3.0.440",
15
15
  "occam-grammar-utilities": "^8.1.22",
16
- "occam-languages": "^2.2.55",
16
+ "occam-languages": "^2.2.57",
17
17
  "occam-query": "^4.1.203"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@swc/core": "1.13.20",
21
21
  "decaf-cli": "^1.0.37",
22
- "occam-model": "^1.0.572",
23
- "occam-server": "^7.0.72",
22
+ "occam-model": "^1.0.574",
23
+ "occam-server": "^7.0.74",
24
24
  "watchful-cli": "^1.7.102"
25
25
  },
26
26
  "scripts": {
@@ -632,13 +632,6 @@ export default class NominalFileContext extends FileContext {
632
632
  return labelPresent;
633
633
  }
634
634
 
635
- isAxiomPresentByReference(reference) {
636
- const axiom = this.findAxiomByReference(reference),
637
- axiomPresent = (axiom !== null);
638
-
639
- return axiomPresent;
640
- }
641
-
642
635
  isTypePresentByTypeName(typeName, includeRelease = true) {
643
636
  const type = this.findTypeByTypeName(typeName, includeRelease),
644
637
  typePresent = (type !== null);
@@ -12,13 +12,11 @@ import { termsFromJSON,
12
12
  statementsFromJSON,
13
13
  assertionsFromJSON,
14
14
  referencesFromJSON,
15
- signaturesFromJSON,
16
15
  assumptionsFromJSON,
17
16
  metavariablesFromJSON,
18
17
  substitutionsFromJSON,
19
18
  equalitiesToEqualitiesJSON,
20
19
  statementsToStatementsJSON,
21
- signaturesToSignaturesJSON,
22
20
  assertionsToAssertionsJSON,
23
21
  referencesToReferencesJSON,
24
22
  assumptionsToAssumptionsJSON,
@@ -28,7 +26,7 @@ import { termsFromJSON,
28
26
  const { push, extract } = arrayUtilities;
29
27
 
30
28
  export default class MnemicContext extends Context {
31
- constructor(context, terms, frames, equalities, assertions, statements, signatures, references, assumptions, metavariables, substitutions) {
29
+ constructor(context, terms, frames, equalities, assertions, statements, references, assumptions, metavariables, substitutions) {
32
30
  super(context);
33
31
 
34
32
  this.terms = terms;
@@ -36,7 +34,6 @@ export default class MnemicContext extends Context {
36
34
  this.equalities = equalities;
37
35
  this.assertions = assertions;
38
36
  this.statements = statements;
39
- this.signatures = signatures;
40
37
  this.references = references;
41
38
  this.assumptions = assumptions;
42
39
  this.metavariables = metavariables;
@@ -83,16 +80,6 @@ export default class MnemicContext extends Context {
83
80
  return statements;
84
81
  }
85
82
 
86
- getSignatures(signatures = []) {
87
- const context = this.getContext();
88
-
89
- push(signatures, this.signatures);
90
-
91
- context.getSignatures(signatures);
92
-
93
- return signatures;
94
- }
95
-
96
83
  getAssertions(assertions = []) {
97
84
  const context = this.getContext();
98
85
 
@@ -273,32 +260,6 @@ export default class MnemicContext extends Context {
273
260
  context.debug(`...added the '${statementString}' statement to the mnemic context.`);
274
261
  }
275
262
 
276
- addSignature(signature) {
277
- const context = this, ///
278
- signatureString = signature.getString();
279
-
280
- context.trace(`Adding the '${signatureString}' signature to the mnemic context...`);
281
-
282
- const signatureA = signature; ///
283
-
284
- extract(this.signatures, (signature) => {
285
- const signatureB = signature, ///
286
- signatureAEqualToSignatureB = signatureA.isEqualTo(signatureB);
287
-
288
- if (signatureAEqualToSignatureB) {
289
- const signatureString = signature.getString();
290
-
291
- context.trace(`Removed the existing '${signatureString}' signature from the mnemic context...`);
292
-
293
- return true;
294
- }
295
- });
296
-
297
- this.signatures.push(signature);
298
-
299
- context.debug(`...added the '${signatureString}' signature to the mnemic context.`);
300
- }
301
-
302
263
  addReference(reference) {
303
264
  const context = this, ///
304
265
  referenceString = reference.getString();
@@ -490,19 +451,6 @@ export default class MnemicContext extends Context {
490
451
  return statement;
491
452
  }
492
453
 
493
- findSignatureBySignatureNode(signatureNode) {
494
- const signatures = this.getSignatures(),
495
- signature = signatures.find((signature) => {
496
- const signatureNodeMatches = signature.matchSignatureNode(signatureNode);
497
-
498
- if (signatureNodeMatches) {
499
- return true;
500
- }
501
- }) || null;
502
-
503
- return signature;
504
- }
505
-
506
454
  findReferenceByReferenceNode(referenceNode) {
507
455
  const references = this.getReferences(),
508
456
  reference = references.find((reference) => {
@@ -603,13 +551,6 @@ export default class MnemicContext extends Context {
603
551
  return statementPresent;
604
552
  }
605
553
 
606
- isSignaturePresentBySignatureNode(signatureNode) {
607
- const signature = this.findSignatureBySignatureNode(signatureNode),
608
- signaturePresent = (signature !== null);
609
-
610
- return signaturePresent;
611
- }
612
-
613
554
  isAssumptionPresentByAssumptionNode(assumptionNode) {
614
555
  const assumption = this.findAssumptionByAssumptionNode(assumptionNode),
615
556
  assumptionPresent = (assumption !== null);
@@ -647,7 +588,6 @@ export default class MnemicContext extends Context {
647
588
  this.frames = framesFromJSON(json, context);
648
589
 
649
590
  this.assertions = assertionsFromJSON(json, context);
650
- this.signatures = signaturesFromJSON(json, context);
651
591
  this.substitutions = substitutionsFromJSON(json, context);
652
592
  }
653
593
 
@@ -663,7 +603,6 @@ export default class MnemicContext extends Context {
663
603
  equalities = this.getEqualities(),
664
604
  assertions = this.getAssertions(),
665
605
  statements = this.getStatements(),
666
- signatures = this.getSignatures(),
667
606
  references = this.getReferences(),
668
607
  assumptions = this.getAssumptions(),
669
608
  metavariables = this.getMetavariables(),
@@ -674,7 +613,6 @@ export default class MnemicContext extends Context {
674
613
  equalitiesJSON = equalitiesToEqualitiesJSON(equalities),
675
614
  assertionsJSON = assertionsToAssertionsJSON(assertions),
676
615
  statementsJSON = statementsToStatementsJSON(statements),
677
- signaturesJSON = signaturesToSignaturesJSON(signatures),
678
616
  referencesJSON = referencesToReferencesJSON(references),
679
617
  assumptionsJSON = assumptionsToAssumptionsJSON(assumptions),
680
618
  metavariablesJSON = metavariablesToMetavariablesJSON(metavariables),
@@ -685,7 +623,6 @@ export default class MnemicContext extends Context {
685
623
  equalities = equalitiesJSON; ///
686
624
  assertions = assertionsJSON; ///
687
625
  statements = statementsJSON; ///
688
- signatures = signaturesJSON; ///
689
626
  references = referencesJSON; ///
690
627
  assumptions = assumptionsJSON; ///
691
628
  metavariables = metavariablesJSON; //
@@ -697,7 +634,6 @@ export default class MnemicContext extends Context {
697
634
  equalities,
698
635
  assertions,
699
636
  statements,
700
- signatures,
701
637
  references,
702
638
  assumptions,
703
639
  metavariables,
@@ -713,12 +649,11 @@ export default class MnemicContext extends Context {
713
649
  equalities = null,
714
650
  statements = null,
715
651
  assertions = null,
716
- signatures = null,
717
652
  references = null,
718
653
  assumptions = null,
719
654
  metavariables = null,
720
655
  substitutions = null,
721
- mnemicContext = new MnemicContext(context, terms, frames, equalities, assertions, statements, signatures, references, assumptions, metavariables, substitutions);
656
+ mnemicContext = new MnemicContext(context, terms, frames, equalities, assertions, statements, references, assumptions, metavariables, substitutions);
722
657
 
723
658
  mnemicContext.initialise(json);
724
659
 
@@ -731,12 +666,11 @@ export default class MnemicContext extends Context {
731
666
  equalities = [],
732
667
  statements = [],
733
668
  assertions = [],
734
- signatures = [],
735
669
  references = [],
736
670
  assumptions = [],
737
671
  metavariables = [],
738
672
  substitutions = [],
739
- mnemicContext = new MnemicContext(context, terms, frames, equalities, assertions, statements, signatures, references, assumptions, metavariables, substitutions);
673
+ mnemicContext = new MnemicContext(context, terms, frames, equalities, assertions, statements, references, assumptions, metavariables, substitutions);
740
674
 
741
675
  return mnemicContext;
742
676
  }
package/src/context.js CHANGED
@@ -305,13 +305,6 @@ export default class Context extends ContextBase {
305
305
  return statement;
306
306
  }
307
307
 
308
- findSignatureBySignatureNode(signatureNode) {
309
- const context = this.getContext(),
310
- signature = context.findSignatureBySignatureNode(signatureNode);
311
-
312
- return signature;
313
- }
314
-
315
308
  findReferenceByReferenceNode(referenceNode) {
316
309
  const context = this.getContext(),
317
310
  reference = context.findReferenceByReferenceNode(referenceNode);
@@ -417,13 +410,6 @@ export default class Context extends ContextBase {
417
410
  return declaredMetavariable;
418
411
  }
419
412
 
420
- isAxiomPresentByReference(reference) {
421
- const context = this.getContext(),
422
- axiomPresent = context.isAxiomPresentByReference(reference);
423
-
424
- return axiomPresent;
425
- }
426
-
427
413
  isTermPresentByTermNode(termNode) {
428
414
  const context = this.getContext(),
429
415
  termPresent = context.isTermPresentByTermNode(termNode);
@@ -466,13 +452,6 @@ export default class Context extends ContextBase {
466
452
  return statementPresent;
467
453
  }
468
454
 
469
- isSignaturePresentBySignatureNode(signatureNode) {
470
- const context = this.getContext(),
471
- signaturePresent = context.isSignaturePresentBySignatureNode(signatureNode);
472
-
473
- return signaturePresent;
474
- }
475
-
476
455
  isMetavariablePresentByMetavariableNode(metavariableNode) {
477
456
  const context = this.getContext(),
478
457
  metavariablePresent = context.isMetavariablePresentByMetavariableNode(metavariableNode);
@@ -145,9 +145,17 @@ export default define(class SignatureAssertion extends Assertion {
145
145
  referenceValidates = this.reference.validate(state, context, (reference, context) => {
146
146
  let validates = false;
147
147
 
148
- const asiomPresent = context.isAxiomPresentByReference(reference);
148
+ const axiom = context.findAxiomByReference(reference);
149
149
 
150
- if (asiomPresent) {
150
+ if (axiom !== null) {
151
+ const axiomSatisfiable = axiom.isSatisfiable();
152
+
153
+ if (axiomSatisfiable) {
154
+ validates = true;
155
+ }
156
+ }
157
+
158
+ if (validates) {
151
159
  this.reference = reference;
152
160
 
153
161
  validates = continuation(state, context);
@@ -200,9 +208,7 @@ export default define(class SignatureAssertion extends Assertion {
200
208
  return continuation(stepAndFactOrSubproofsUnify);
201
209
  }
202
210
 
203
- debugger
204
-
205
- // stepAndFactOrSubproofsUnify = axiom.unifyStepAndFactOrSubproofs(step, factOrSubproofs, context);
211
+ axiom.unifyStepAndFactOrSubproofs(step, factOrSubproofs, context, continuation);
206
212
  });
207
213
  }, context);
208
214
  }
@@ -16,10 +16,6 @@ export default define(class BracketedConstructor extends Constructor {
16
16
  unifyTerm(term, state, context, continuation) {
17
17
  let termUnifiesWithBracketedConstructor;
18
18
 
19
- const termString = term.getString();
20
-
21
- context.trace(`Unifying the '${termString}' term with the bracketed constructor...`);
22
-
23
19
  termUnifiesWithBracketedConstructor = super.unifyTerm(term, context, (term, context) => {
24
20
  let termUnifies = false;
25
21
 
@@ -52,10 +48,6 @@ export default define(class BracketedConstructor extends Constructor {
52
48
  return termUnifies;
53
49
  });
54
50
 
55
- if (termUnifiesWithBracketedConstructor) {
56
- context.debug(`...unified the '${termString}' term with the bracketed constructor.`);
57
- }
58
-
59
51
  return termUnifiesWithBracketedConstructor;
60
52
  }
61
53