occam-verify-cli 0.0.525 → 0.0.527
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.
- package/lib/assertion/type.js +10 -40
- package/lib/axiom.js +7 -7
- package/lib/axiomLemmaTheoremConjecture.js +190 -0
- package/lib/combinator.js +5 -5
- package/lib/conclusion.js +3 -3
- package/lib/conjecture.js +141 -0
- package/lib/consequence.js +5 -5
- package/lib/constants.js +4 -16
- package/lib/constructor.js +6 -6
- package/lib/context/file.js +85 -32
- package/lib/context/metaproof.js +46 -4
- package/lib/context/proof.js +38 -93
- package/lib/context/release/directory.js +20 -1
- package/lib/context/release/file.js +27 -3
- package/lib/equality.js +78 -51
- package/lib/index.js +1 -13
- package/lib/kinds.js +5 -1
- package/lib/label.js +5 -5
- package/lib/lemma.js +7 -7
- package/lib/matcher/metastatementForMetavariable.js +16 -19
- package/lib/matcher/statementForMetavariable.js +22 -20
- package/lib/matcher/{statementForVariable → termForVariable}/consequence.js +13 -13
- package/lib/matcher/{statementForVariable → termForVariable}/supposition.js +13 -13
- package/lib/matcher/termForVariable.js +198 -0
- package/lib/matcher.js +23 -64
- package/lib/mixins/file.js +62 -2
- package/lib/premise.js +6 -6
- package/lib/rule.js +5 -5
- package/lib/ruleNames.js +1 -9
- package/lib/step/proof.js +22 -1
- package/lib/substitution/statementForMetavariable.js +12 -8
- package/lib/substitution/termForVariable.js +86 -0
- package/lib/supposition.js +6 -6
- package/lib/theorem.js +7 -7
- package/lib/type.js +13 -6
- package/lib/utilities/string.js +17 -16
- package/lib/utilities/substitution.js +4 -5
- package/lib/variable.js +5 -39
- package/lib/verify/assertion/type.js +60 -37
- package/lib/verify/axiom.js +2 -3
- package/lib/verify/conclusion.js +2 -3
- package/lib/verify/conjecture.js +56 -0
- package/lib/verify/consequence.js +3 -4
- package/lib/verify/declaration/topLevel.js +7 -3
- package/lib/verify/label.js +2 -3
- package/lib/verify/lemma.js +2 -3
- package/lib/verify/metastatement/qualified.js +3 -4
- package/lib/verify/metastatement/unqualified.js +3 -4
- package/lib/verify/premise.js +3 -4
- package/lib/verify/rule.js +2 -3
- package/lib/verify/statement/qualified.js +41 -12
- package/lib/verify/statement/unqualified.js +3 -4
- package/lib/verify/statement.js +47 -51
- package/lib/verify/statementAsCombinator.js +2 -3
- package/lib/verify/supposition.js +3 -4
- package/lib/verify/term.js +3 -4
- package/lib/verify/termAsConstructor.js +4 -5
- package/lib/verify/theorem.js +2 -3
- package/lib/verify/type.js +2 -3
- package/lib/verify/variable.js +2 -3
- package/package.json +1 -1
- package/src/assertion/type.js +7 -32
- package/src/axiom.js +4 -4
- package/src/{axiomLemmaTheorem.js → axiomLemmaTheoremConjecture.js} +9 -9
- package/src/combinator.js +4 -4
- package/src/conclusion.js +2 -2
- package/src/conjecture.js +13 -0
- package/src/consequence.js +4 -4
- package/src/constants.js +1 -4
- package/src/constructor.js +6 -6
- package/src/context/file.js +89 -32
- package/src/context/metaproof.js +44 -3
- package/src/context/proof.js +42 -37
- package/src/context/release/directory.js +24 -0
- package/src/context/release/file.js +34 -3
- package/src/equality.js +110 -61
- package/src/index.js +0 -3
- package/src/kinds.js +1 -0
- package/src/label.js +4 -4
- package/src/lemma.js +4 -4
- package/src/matcher/metastatementForMetavariable.js +22 -32
- package/src/matcher/statementForMetavariable.js +40 -34
- package/src/matcher/termForVariable/consequence.js +9 -0
- package/src/matcher/termForVariable/supposition.js +9 -0
- package/src/matcher/termForVariable.js +89 -0
- package/src/matcher.js +28 -22
- package/src/mixins/file.js +46 -1
- package/src/premise.js +6 -6
- package/src/rule.js +4 -4
- package/src/ruleNames.js +0 -2
- package/src/step/proof.js +27 -0
- package/src/substitution/statementForMetavariable.js +17 -10
- package/src/substitution/termForVariable.js +64 -0
- package/src/supposition.js +5 -5
- package/src/theorem.js +4 -4
- package/src/type.js +18 -8
- package/src/utilities/string.js +27 -21
- package/src/utilities/substitution.js +6 -4
- package/src/variable.js +5 -38
- package/src/verify/assertion/type.js +71 -65
- package/src/verify/axiom.js +1 -2
- package/src/verify/conclusion.js +1 -2
- package/src/verify/conjecture.js +73 -0
- package/src/verify/consequence.js +2 -3
- package/src/verify/declaration/topLevel.js +7 -0
- package/src/verify/label.js +1 -2
- package/src/verify/lemma.js +1 -2
- package/src/verify/metastatement/qualified.js +2 -3
- package/src/verify/metastatement/unqualified.js +2 -3
- package/src/verify/premise.js +2 -3
- package/src/verify/rule.js +1 -2
- package/src/verify/statement/qualified.js +55 -15
- package/src/verify/statement/unqualified.js +2 -3
- package/src/verify/statement.js +49 -70
- package/src/verify/statementAsCombinator.js +1 -2
- package/src/verify/supposition.js +2 -3
- package/src/verify/term.js +2 -3
- package/src/verify/termAsConstructor.js +3 -4
- package/src/verify/theorem.js +1 -2
- package/src/verify/type.js +1 -2
- package/src/verify/variable.js +1 -2
- package/lib/axiomLemmaTheorem.js +0 -190
- package/lib/jsonTypes.js +0 -30
- package/lib/matcher/statementForVariable.js +0 -201
- package/lib/substitution/statementForVariable.js +0 -86
- package/lib/utilities/json.js +0 -187
- package/lib/utilities/version.js +0 -32
- package/lib/versionChanges.js +0 -34
- package/src/jsonTypes.js +0 -6
- package/src/matcher/statementForVariable/consequence.js +0 -9
- package/src/matcher/statementForVariable/supposition.js +0 -9
- package/src/matcher/statementForVariable.js +0 -99
- package/src/substitution/statementForVariable.js +0 -64
- package/src/utilities/json.js +0 -264
- package/src/utilities/version.js +0 -30
- package/src/versionChanges.js +0 -11
|
@@ -10,7 +10,6 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _metastatement = /*#__PURE__*/ _interopRequireDefault(require("../metastatement"));
|
|
12
12
|
var _query = require("../../utilities/query");
|
|
13
|
-
var _string = require("../../utilities/string");
|
|
14
13
|
function _interopRequireDefault(obj) {
|
|
15
14
|
return obj && obj.__esModule ? obj : {
|
|
16
15
|
default: obj
|
|
@@ -22,8 +21,8 @@ function verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assertions
|
|
|
22
21
|
metaproofContext.begin(unqualifiedMetastatementNode);
|
|
23
22
|
var metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode);
|
|
24
23
|
if (metastatementNode !== null) {
|
|
25
|
-
var metastatementString =
|
|
26
|
-
metaproofContext.debug("Verifying the ".concat(metastatementString, " unqualified metastatement..."));
|
|
24
|
+
var metastatementString = metaproofContext.nodeAsString(metastatementNode);
|
|
25
|
+
metaproofContext.debug("Verifying the '".concat(metastatementString, "' unqualified metastatement..."));
|
|
27
26
|
var metastatementMatches = true;
|
|
28
27
|
if (derived) {
|
|
29
28
|
metastatementMatches = metaproofContext.matchMetastatement(metastatementNode);
|
|
@@ -37,4 +36,4 @@ function verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assertions
|
|
|
37
36
|
return unqualifiedMetastatementVerified;
|
|
38
37
|
}
|
|
39
38
|
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvbWV0YXN0YXRlbWVudC91bnF1YWxpZmllZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeU1ldGFzdGF0ZW1lbnQgZnJvbSBcIi4uL21ldGFzdGF0ZW1lbnRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3VucXVhbGlmaWVkTWV0YXN0YXRlbWVudC9tZXRhc3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50KHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUsIGFzc2VydGlvbnMsIGRlcml2ZWQsIG1ldGFwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgbWV0YXByb29mQ29udGV4dC5iZWdpbih1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKG1ldGFzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudFN0cmluZyA9IG1ldGFwcm9vZkNvbnRleHQubm9kZUFzU3RyaW5nKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIG1ldGFwcm9vZkNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXN0YXRlbWVudFN0cmluZ30nIHVucXVhbGlmaWVkIG1ldGFzdGF0ZW1lbnQuLi5gKTtcblxuICAgIGxldCBtZXRhc3RhdGVtZW50TWF0Y2hlcyA9IHRydWU7XG5cbiAgICBpZiAoZGVyaXZlZCkge1xuICAgICAgbWV0YXN0YXRlbWVudE1hdGNoZXMgPSBtZXRhcHJvb2ZDb250ZXh0Lm1hdGNoTWV0YXN0YXRlbWVudChtZXRhc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuXG4gICAgaWYgKG1ldGFzdGF0ZW1lbnRNYXRjaGVzKSB7XG4gICAgICBjb25zdCBtZXRhc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlNZXRhc3RhdGVtZW50KG1ldGFzdGF0ZW1lbnROb2RlLCBhc3NlcnRpb25zLCBkZXJpdmVkLCBtZXRhcHJvb2ZDb250ZXh0KTtcblxuICAgICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQgPSBtZXRhc3RhdGVtZW50VmVyaWZpZWQ7IC8vL1xuICAgIH1cbiAgfVxuXG4gIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID9cbiAgICBtZXRhcHJvb2ZDb250ZXh0LmNvbXBsZXRlKHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUpIDpcbiAgICAgIG1ldGFwcm9vZkNvbnRleHQuaGFsdCh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICByZXR1cm4gdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5VW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50IiwibWV0YXN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUiLCJhc3NlcnRpb25zIiwiZGVyaXZlZCIsIm1ldGFwcm9vZkNvbnRleHQiLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsImJlZ2luIiwibWV0YXN0YXRlbWVudE5vZGUiLCJtZXRhc3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiZGVidWciLCJtZXRhc3RhdGVtZW50TWF0Y2hlcyIsIm1hdGNoTWV0YXN0YXRlbWVudCIsIm1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeU1ldGFzdGF0ZW1lbnQiLCJjb21wbGV0ZSIsImhhbHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBd0JBOzs7a0VBTlE7cUJBRU47Ozs7OztBQUUxQixJQUFNQyx5QkFBeUJDLElBQUFBLGdCQUFTLEVBQUM7QUFFMUIsU0FBU0YsK0JBQStCRyw0QkFBNEIsRUFBRUMsVUFBVSxFQUFFQyxPQUFPLEVBQUVDLGdCQUFnQixFQUFFO0lBQzFILElBQUlDLG1DQUFtQyxLQUFLO0lBRTVDRCxpQkFBaUJFLEtBQUssQ0FBQ0w7SUFFdkIsSUFBTU0sb0JBQW9CUix1QkFBdUJFO0lBRWpELElBQUlNLHNCQUFzQixJQUFJLEVBQUU7UUFDOUIsSUFBTUMsc0JBQXNCSixpQkFBaUJLLFlBQVksQ0FBQ0Y7UUFFMURILGlCQUFpQk0sS0FBSyxDQUFDLEFBQUMsa0JBQXFDLE9BQXBCRixxQkFBb0I7UUFFN0QsSUFBSUcsdUJBQXVCLElBQUk7UUFFL0IsSUFBSVIsU0FBUztZQUNYUSx1QkFBdUJQLGlCQUFpQlEsa0JBQWtCLENBQUNMO1FBQzdELENBQUM7UUFFRCxJQUFJSSxzQkFBc0I7WUFDeEIsSUFBTUUsd0JBQXdCQyxJQUFBQSxzQkFBbUIsRUFBQ1AsbUJBQW1CTCxZQUFZQyxTQUFTQztZQUUxRkMsbUNBQW1DUSx1QkFBdUIsR0FBRztRQUMvRCxDQUFDO0lBQ0gsQ0FBQztJQUVEUixtQ0FDRUQsaUJBQWlCVyxRQUFRLENBQUNkLGdDQUN4QkcsaUJBQWlCWSxJQUFJLENBQUNmLDZCQUE2QjtJQUV2RCxPQUFPSTtBQUNUIn0=
|
package/lib/verify/premise.js
CHANGED
|
@@ -12,7 +12,6 @@ var _premise = /*#__PURE__*/ _interopRequireDefault(require("../premise"));
|
|
|
12
12
|
var _metaproof = /*#__PURE__*/ _interopRequireDefault(require("../step/metaproof"));
|
|
13
13
|
var _unqualified = /*#__PURE__*/ _interopRequireDefault(require("../verify/metastatement/unqualified"));
|
|
14
14
|
var _query = require("../utilities/query");
|
|
15
|
-
var _string = require("../utilities/string");
|
|
16
15
|
function _interopRequireDefault(obj) {
|
|
17
16
|
return obj && obj.__esModule ? obj : {
|
|
18
17
|
default: obj
|
|
@@ -22,8 +21,8 @@ var metastatementNodeQuery = (0, _query.nodeQuery)("/unqualifiedMetastatement/me
|
|
|
22
21
|
function verifyPremise(premiseNode, premises, metaproofContext) {
|
|
23
22
|
var premiseVerified;
|
|
24
23
|
metaproofContext.begin(premiseNode);
|
|
25
|
-
var premiseString =
|
|
26
|
-
metaproofContext.debug("Verifying the ".concat(premiseString, " premise..."));
|
|
24
|
+
var premiseString = metaproofContext.nodeAsString(premiseNode);
|
|
25
|
+
metaproofContext.debug("Verifying the '".concat(premiseString, "' premise..."));
|
|
27
26
|
var derived = false, assertions = [], unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(premiseNode), unqualifiedMetastatementVerified = (0, _unqualified.default)(unqualifiedMetastatementNode, assertions, derived, metaproofContext);
|
|
28
27
|
if (unqualifiedMetastatementVerified) {
|
|
29
28
|
var metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode), metaproofStep = _metaproof.default.fromMetastatementNode(metastatementNode), premise = _premise.default.fromMetastatementNode(metastatementNode);
|
|
@@ -35,4 +34,4 @@ function verifyPremise(premiseNode, premises, metaproofContext) {
|
|
|
35
34
|
return premiseVerified;
|
|
36
35
|
}
|
|
37
36
|
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcHJlbWlzZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFByZW1pc2UgZnJvbSBcIi4uL3ByZW1pc2VcIjtcbmltcG9ydCBNZXRhcHJvb2ZTdGVwIGZyb20gXCIuLi9zdGVwL21ldGFwcm9vZlwiO1xuaW1wb3J0IHZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L21ldGFzdGF0ZW1lbnQvdW5xdWFsaWZpZWRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3VucXVhbGlmaWVkTWV0YXN0YXRlbWVudC9tZXRhc3RhdGVtZW50IVwiKSxcbiAgICAgIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcmVtaXNlL3VucXVhbGlmaWVkTWV0YXN0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVByZW1pc2UocHJlbWlzZU5vZGUsIHByZW1pc2VzLCBtZXRhcHJvb2ZDb250ZXh0KSB7XG4gIGxldCBwcmVtaXNlVmVyaWZpZWQ7XG5cbiAgbWV0YXByb29mQ29udGV4dC5iZWdpbihwcmVtaXNlTm9kZSk7XG5cbiAgY29uc3QgcHJlbWlzZVN0cmluZyA9IG1ldGFwcm9vZkNvbnRleHQubm9kZUFzU3RyaW5nKHByZW1pc2VOb2RlKTtcblxuICBtZXRhcHJvb2ZDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlLi4uYCk7XG5cbiAgY29uc3QgZGVyaXZlZCA9IGZhbHNlLFxuICAgICAgICBhc3NlcnRpb25zID0gW10sXG4gICAgICAgIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUgPSB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlUXVlcnkocHJlbWlzZU5vZGUpLFxuICAgICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlLCBhc3NlcnRpb25zLCBkZXJpdmVkLCBtZXRhcHJvb2ZDb250ZXh0KTtcblxuICBpZiAodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgbWV0YXByb29mU3RlcCA9IE1ldGFwcm9vZlN0ZXAuZnJvbU1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBwcmVtaXNlID0gUHJlbWlzZS5mcm9tTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgcHJlbWlzZXMucHVzaChwcmVtaXNlKTtcblxuICAgIG1ldGFwcm9vZkNvbnRleHQuYWRkTWV0YXByb29mU3RlcChtZXRhcHJvb2ZTdGVwKTtcblxuICAgIHByZW1pc2VWZXJpZmllZCA9IHRydWU7XG4gIH1cblxuICBwcmVtaXNlVmVyaWZpZWQgP1xuICAgIG1ldGFwcm9vZkNvbnRleHQuY29tcGxldGUocHJlbWlzZU5vZGUpIDpcbiAgICAgIG1ldGFwcm9vZkNvbnRleHQuaGFsdChwcmVtaXNlTm9kZSk7XG5cbiAgcmV0dXJuIHByZW1pc2VWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlQcmVtaXNlIiwibWV0YXN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGVRdWVyeSIsInByZW1pc2VOb2RlIiwicHJlbWlzZXMiLCJtZXRhcHJvb2ZDb250ZXh0IiwicHJlbWlzZVZlcmlmaWVkIiwiYmVnaW4iLCJwcmVtaXNlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiZGVidWciLCJkZXJpdmVkIiwiYXNzZXJ0aW9ucyIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUiLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCIsIm1ldGFzdGF0ZW1lbnROb2RlIiwibWV0YXByb29mU3RlcCIsIk1ldGFwcm9vZlN0ZXAiLCJmcm9tTWV0YXN0YXRlbWVudE5vZGUiLCJwcmVtaXNlIiwiUHJlbWlzZSIsInB1c2giLCJhZGRNZXRhcHJvb2ZTdGVwIiwiY29tcGxldGUiLCJoYWx0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQXdCQTs7OzREQVRKOzhEQUNNO2dFQUNpQjtxQkFFakI7Ozs7OztBQUUxQixJQUFNQyx5QkFBeUJDLElBQUFBLGdCQUFTLEVBQUMsNkNBQ25DQyxvQ0FBb0NELElBQUFBLGdCQUFTLEVBQUM7QUFFckMsU0FBU0YsY0FBY0ksV0FBVyxFQUFFQyxRQUFRLEVBQUVDLGdCQUFnQixFQUFFO0lBQzdFLElBQUlDO0lBRUpELGlCQUFpQkUsS0FBSyxDQUFDSjtJQUV2QixJQUFNSyxnQkFBZ0JILGlCQUFpQkksWUFBWSxDQUFDTjtJQUVwREUsaUJBQWlCSyxLQUFLLENBQUMsQUFBQyxrQkFBK0IsT0FBZEYsZUFBYztJQUV2RCxJQUFNRyxVQUFVLEtBQUssRUFDZkMsYUFBYSxFQUFFLEVBQ2ZDLCtCQUErQlgsa0NBQWtDQyxjQUNqRVcsbUNBQW1DQyxJQUFBQSxvQkFBOEIsRUFBQ0YsOEJBQThCRCxZQUFZRCxTQUFTTjtJQUUzSCxJQUFJUyxrQ0FBa0M7UUFDcEMsSUFBTUUsb0JBQW9CaEIsdUJBQXVCYSwrQkFDM0NJLGdCQUFnQkMsa0JBQWEsQ0FBQ0MscUJBQXFCLENBQUNILG9CQUNwREksVUFBVUMsZ0JBQU8sQ0FBQ0YscUJBQXFCLENBQUNIO1FBRTlDWixTQUFTa0IsSUFBSSxDQUFDRjtRQUVkZixpQkFBaUJrQixnQkFBZ0IsQ0FBQ047UUFFbENYLGtCQUFrQixJQUFJO0lBQ3hCLENBQUM7SUFFREEsa0JBQ0VELGlCQUFpQm1CLFFBQVEsQ0FBQ3JCLGVBQ3hCRSxpQkFBaUJvQixJQUFJLENBQUN0QixZQUFZO0lBRXRDLE9BQU9HO0FBQ1QifQ==
|
package/lib/verify/rule.js
CHANGED
|
@@ -15,7 +15,6 @@ var _ruleProof = /*#__PURE__*/ _interopRequireDefault(require("../verify/rulePro
|
|
|
15
15
|
var _metaproof = /*#__PURE__*/ _interopRequireDefault(require("../context/metaproof"));
|
|
16
16
|
var _conclusion = /*#__PURE__*/ _interopRequireDefault(require("../verify/conclusion"));
|
|
17
17
|
var _array = require("../utilities/array");
|
|
18
|
-
var _string = require("../utilities/string");
|
|
19
18
|
var _query = require("../utilities/query");
|
|
20
19
|
function _interopRequireDefault(obj) {
|
|
21
20
|
return obj && obj.__esModule ? obj : {
|
|
@@ -26,7 +25,7 @@ var labelNodesQuery = (0, _query.nodesQuery)("/rule/label"), premisesNodeQuery =
|
|
|
26
25
|
function verifyRule(ruleNode, fileContext) {
|
|
27
26
|
var ruleVerified = false;
|
|
28
27
|
fileContext.begin(ruleNode);
|
|
29
|
-
var labelNodes = labelNodesQuery(ruleNode), labelsString =
|
|
28
|
+
var labelNodes = labelNodesQuery(ruleNode), labelsString = fileContext.nodesAsString(labelNodes), metaProofContext = _metaproof.default.fromFileContext(fileContext);
|
|
30
29
|
fileContext.debug("Verifying the '".concat(labelsString, "' rule..."));
|
|
31
30
|
var labels = [], labelsVerified = (0, _labels.default)(labelNodes, labels, fileContext);
|
|
32
31
|
if (labelsVerified) {
|
|
@@ -59,4 +58,4 @@ function verifyRule(ruleNode, fileContext) {
|
|
|
59
58
|
return ruleVerified;
|
|
60
59
|
}
|
|
61
60
|
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFJ1bGUgZnJvbSBcIi4uL3J1bGVcIjtcbmltcG9ydCB2ZXJpZnlMYWJlbHMgZnJvbSBcIi4uL3ZlcmlmeS9sYWJlbHNcIjtcbmltcG9ydCB2ZXJpZnlQcmVtaXNlIGZyb20gXCIuLi92ZXJpZnkvcHJlbWlzZVwiO1xuaW1wb3J0IHZlcmlmeVJ1bGVQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3J1bGVQcm9vZlwiO1xuaW1wb3J0IE1ldGFwcm9vZkNvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbWV0YXByb29mXCI7XG5pbXBvcnQgdmVyaWZ5Q29uY2x1c2lvbiBmcm9tIFwiLi4vdmVyaWZ5L2NvbmNsdXNpb25cIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGxhYmVsTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcnVsZS9sYWJlbFwiKSxcbiAgICAgIHByZW1pc2VzTm9kZVF1ZXJ5ID0gbm9kZXNRdWVyeShcIi9ydWxlL3ByZW1pc2VcIiksXG4gICAgICBydWxlUHJvb2ZOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZS9ydWxlUHJvb2YhXCIpLFxuICAgICAgY29uY2x1c2lvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ydWxlL2NvbmNsdXNpb24hXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlKHJ1bGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgcnVsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgZmlsZUNvbnRleHQuYmVnaW4ocnVsZU5vZGUpO1xuXG4gIGNvbnN0IGxhYmVsTm9kZXMgPSBsYWJlbE5vZGVzUXVlcnkocnVsZU5vZGUpLFxuICAgICAgICBsYWJlbHNTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2Rlc0FzU3RyaW5nKGxhYmVsTm9kZXMpLFxuICAgICAgICBtZXRhUHJvb2ZDb250ZXh0ID0gTWV0YXByb29mQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpO1xuXG4gIGZpbGVDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke2xhYmVsc1N0cmluZ30nIHJ1bGUuLi5gKTtcblxuICBjb25zdCBsYWJlbHMgPSBbXSxcbiAgICAgICAgbGFiZWxzVmVyaWZpZWQgPSB2ZXJpZnlMYWJlbHMobGFiZWxOb2RlcywgbGFiZWxzLCBmaWxlQ29udGV4dCk7XG5cbiAgaWYgKGxhYmVsc1ZlcmlmaWVkKSB7XG4gICAgY29uc3QgcHJlbWlzZXMgPSBbXSxcbiAgICAgICAgICBwcmVtaXNlTm9kZXMgPSBwcmVtaXNlc05vZGVRdWVyeShydWxlTm9kZSksXG4gICAgICAgICAgcHJlbWlzZXNWZXJpZmllZCA9IHByZW1pc2VOb2Rlcy5ldmVyeSgocHJlbWlzZU5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByZW1pc2VWZXJpZmllZCA9IHZlcmlmeVByZW1pc2UocHJlbWlzZU5vZGUsIHByZW1pc2VzLCBtZXRhUHJvb2ZDb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKHByZW1pc2VWZXJpZmllZCkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIGlmIChwcmVtaXNlc1ZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBjb25jbHVzaW9ucyA9IFtdLFxuICAgICAgICAgICAgY29uY2x1c2lvbk5vZGUgPSBjb25jbHVzaW9uTm9kZVF1ZXJ5KHJ1bGVOb2RlKSxcbiAgICAgICAgICAgIGNvbmNsdXNpb25WZXJpZmllZCA9IHZlcmlmeUNvbmNsdXNpb24oY29uY2x1c2lvbk5vZGUsIGNvbmNsdXNpb25zLCBtZXRhUHJvb2ZDb250ZXh0KTtcblxuICAgICAgaWYgKGNvbmNsdXNpb25WZXJpZmllZCkge1xuICAgICAgICBjb25zdCBydWxlUHJvb2ZOb2RlID0gcnVsZVByb29mTm9kZVF1ZXJ5KHJ1bGVOb2RlKSxcbiAgICAgICAgICAgICAgZmlyc3RDb25jbHVzaW9uID0gZmlyc3QoY29uY2x1c2lvbnMpLFxuICAgICAgICAgICAgICBjb25jbHVzaW9uID0gZmlyc3RDb25jbHVzaW9uOyAvLy9cblxuICAgICAgICBsZXQgcnVsZVByb29mVmVyaWZpZWQgPSB0cnVlOyAvLy9cblxuICAgICAgICBpZiAocnVsZVByb29mTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHJ1bGVQcm9vZlZlcmlmaWVkID0gdmVyaWZ5UnVsZVByb29mKHJ1bGVQcm9vZk5vZGUsIGNvbmNsdXNpb24sIG1ldGFQcm9vZkNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJ1bGVQcm9vZlZlcmlmaWVkKSB7XG4gICAgICAgICAgY29uc3QgcnVsZSA9IFJ1bGUuZnJvbUxhYmVsc1ByZW1pc2VzQW5kQ29uY2x1c2lvbihsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uKTtcblxuICAgICAgICAgIGZpbGVDb250ZXh0LmFkZFJ1bGUocnVsZSk7XG5cbiAgICAgICAgICBydWxlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHJ1bGVWZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyBydWxlLmApO1xuICB9XG5cbiAgcnVsZVZlcmlmaWVkID9cbiAgICBmaWxlQ29udGV4dC5jb21wbGV0ZShydWxlTm9kZSkgOlxuICAgICAgZmlsZUNvbnRleHQuY29tcGxldGUocnVsZU5vZGUpO1xuXG4gIHJldHVybiBydWxlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5UnVsZSIsImxhYmVsTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJwcmVtaXNlc05vZGVRdWVyeSIsInJ1bGVQcm9vZk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImNvbmNsdXNpb25Ob2RlUXVlcnkiLCJydWxlTm9kZSIsImZpbGVDb250ZXh0IiwicnVsZVZlcmlmaWVkIiwiYmVnaW4iLCJsYWJlbE5vZGVzIiwibGFiZWxzU3RyaW5nIiwibm9kZXNBc1N0cmluZyIsIm1ldGFQcm9vZkNvbnRleHQiLCJNZXRhcHJvb2ZDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwiZGVidWciLCJsYWJlbHMiLCJsYWJlbHNWZXJpZmllZCIsInZlcmlmeUxhYmVscyIsInByZW1pc2VzIiwicHJlbWlzZU5vZGVzIiwicHJlbWlzZXNWZXJpZmllZCIsImV2ZXJ5IiwicHJlbWlzZU5vZGUiLCJwcmVtaXNlVmVyaWZpZWQiLCJ2ZXJpZnlQcmVtaXNlIiwiY29uY2x1c2lvbnMiLCJjb25jbHVzaW9uTm9kZSIsImNvbmNsdXNpb25WZXJpZmllZCIsInZlcmlmeUNvbmNsdXNpb24iLCJydWxlUHJvb2ZOb2RlIiwiZmlyc3RDb25jbHVzaW9uIiwiZmlyc3QiLCJjb25jbHVzaW9uIiwicnVsZVByb29mVmVyaWZpZWQiLCJ2ZXJpZnlSdWxlUHJvb2YiLCJydWxlIiwiUnVsZSIsImZyb21MYWJlbHNQcmVtaXNlc0FuZENvbmNsdXNpb24iLCJhZGRSdWxlIiwiaW5mbyIsImNvbXBsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpQkE7OztlQUF3QkE7Ozt5REFmUDsyREFDUTs0REFDQzs4REFDRTs4REFDQzsrREFDQTtxQkFFUDtxQkFDZ0I7Ozs7OztBQUV0QyxJQUFNQyxrQkFBa0JDLElBQUFBLGlCQUFVLEVBQUMsZ0JBQzdCQyxvQkFBb0JELElBQUFBLGlCQUFVLEVBQUMsa0JBQy9CRSxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUMscUJBQy9CQyxzQkFBc0JELElBQUFBLGdCQUFTLEVBQUM7QUFFdkIsU0FBU0wsV0FBV08sUUFBUSxFQUFFQyxXQUFXLEVBQUU7SUFDeEQsSUFBSUMsZUFBZSxLQUFLO0lBRXhCRCxZQUFZRSxLQUFLLENBQUNIO0lBRWxCLElBQU1JLGFBQWFWLGdCQUFnQk0sV0FDN0JLLGVBQWVKLFlBQVlLLGFBQWEsQ0FBQ0YsYUFDekNHLG1CQUFtQkMsa0JBQWdCLENBQUNDLGVBQWUsQ0FBQ1I7SUFFMURBLFlBQVlTLEtBQUssQ0FBQyxBQUFDLGtCQUE4QixPQUFiTCxjQUFhO0lBRWpELElBQU1NLFNBQVMsRUFBRSxFQUNYQyxpQkFBaUJDLElBQUFBLGVBQVksRUFBQ1QsWUFBWU8sUUFBUVY7SUFFeEQsSUFBSVcsZ0JBQWdCO1FBQ2xCLElBQU1FLFdBQVcsRUFBRSxFQUNiQyxlQUFlbkIsa0JBQWtCSSxXQUNqQ2dCLG1CQUFtQkQsYUFBYUUsS0FBSyxDQUFDLFNBQUNDLGFBQWdCO1lBQ3JELElBQU1DLGtCQUFrQkMsSUFBQUEsZ0JBQWEsRUFBQ0YsYUFBYUosVUFBVVA7WUFFN0QsSUFBSVksaUJBQWlCO2dCQUNuQixPQUFPLElBQUk7WUFDYixDQUFDO1FBQ0g7UUFFTixJQUFJSCxrQkFBa0I7WUFDcEIsSUFBTUssY0FBYyxFQUFFLEVBQ2hCQyxpQkFBaUJ2QixvQkFBb0JDLFdBQ3JDdUIscUJBQXFCQyxJQUFBQSxtQkFBZ0IsRUFBQ0YsZ0JBQWdCRCxhQUFhZDtZQUV6RSxJQUFJZ0Isb0JBQW9CO2dCQUN0QixJQUFNRSxnQkFBZ0I1QixtQkFBbUJHLFdBQ25DMEIsa0JBQWtCQyxJQUFBQSxZQUFLLEVBQUNOLGNBQ3hCTyxhQUFhRixpQkFBaUIsR0FBRztnQkFFdkMsSUFBSUcsb0JBQW9CLElBQUksRUFBRSxHQUFHO2dCQUVqQyxJQUFJSixrQkFBa0IsSUFBSSxFQUFFO29CQUMxQkksb0JBQW9CQyxJQUFBQSxrQkFBZSxFQUFDTCxlQUFlRyxZQUFZckI7Z0JBQ2pFLENBQUM7Z0JBRUQsSUFBSXNCLG1CQUFtQjtvQkFDckIsSUFBTUUsT0FBT0MsYUFBSSxDQUFDQywrQkFBK0IsQ0FBQ3RCLFFBQVFHLFVBQVVjO29CQUVwRTNCLFlBQVlpQyxPQUFPLENBQUNIO29CQUVwQjdCLGVBQWUsSUFBSTtnQkFDckIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUlBLGNBQWM7UUFDaEJELFlBQVlrQyxJQUFJLENBQUMsQUFBQyxpQkFBNkIsT0FBYjlCLGNBQWE7SUFDakQsQ0FBQztJQUVESCxlQUNFRCxZQUFZbUMsUUFBUSxDQUFDcEMsWUFDbkJDLFlBQVltQyxRQUFRLENBQUNwQyxTQUFTO0lBRWxDLE9BQU9FO0FBQ1QifQ==
|
|
@@ -9,7 +9,6 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _statement = /*#__PURE__*/ _interopRequireDefault(require("../../verify/statement"));
|
|
12
|
-
var _string = require("../../utilities/string");
|
|
13
12
|
var _query = require("../../utilities/query");
|
|
14
13
|
function _interopRequireDefault(obj) {
|
|
15
14
|
return obj && obj.__esModule ? obj : {
|
|
@@ -22,23 +21,53 @@ function verifyQualifiedStatement(qualifiedStatementNode, assertions, derived, p
|
|
|
22
21
|
proofContext.begin(qualifiedStatementNode);
|
|
23
22
|
var statementNode = statementNodeQuery(qualifiedStatementNode);
|
|
24
23
|
if (statementNode !== null) {
|
|
25
|
-
var statementString =
|
|
26
|
-
proofContext.debug("Verifying the ".concat(statementString, " qualified statement..."));
|
|
27
|
-
var ruleMatchesStatement = true;
|
|
24
|
+
var statementString = proofContext.nodeAsString(statementNode);
|
|
25
|
+
proofContext.debug("Verifying the '".concat(statementString, "' qualified statement..."));
|
|
28
26
|
var referenceNode = referenceNodeQuery(qualifiedStatementNode);
|
|
29
|
-
if (referenceNode
|
|
30
|
-
var referenceName = (0, _query.referenceNameFromReferenceNode)(referenceNode), rule = proofContext.findRuleByReferenceName(referenceName);
|
|
31
|
-
if (rule !== null) {
|
|
32
|
-
ruleMatchesStatement = rule.matchStatement(statementNode, proofContext);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
if (ruleMatchesStatement) {
|
|
27
|
+
if (referenceNode === null) {
|
|
36
28
|
var context = proofContext, statementVerified = (0, _statement.default)(statementNode, assertions, derived, context);
|
|
37
29
|
qualifiedStatementVerified = statementVerified; ///
|
|
30
|
+
} else {
|
|
31
|
+
var referenceName = (0, _query.referenceNameFromReferenceNode)(referenceNode);
|
|
32
|
+
if (!qualifiedStatementVerified) {
|
|
33
|
+
var rule = proofContext.findRuleByReferenceName(referenceName);
|
|
34
|
+
if (rule !== null) {
|
|
35
|
+
var ruleMatchesStatement = rule.matchStatement(statementNode, proofContext);
|
|
36
|
+
qualifiedStatementVerified = ruleMatchesStatement; ///
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (!qualifiedStatementVerified) {
|
|
40
|
+
var axiom = proofContext.findAxiomByReferenceName(referenceName);
|
|
41
|
+
if (axiom !== null) {
|
|
42
|
+
var axiomMatchesStatement = axiom.matchStatement(statementNode, proofContext);
|
|
43
|
+
qualifiedStatementVerified = axiomMatchesStatement; ///
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (!qualifiedStatementVerified) {
|
|
47
|
+
var lemma = proofContext.findLemmaByReferenceName(referenceName);
|
|
48
|
+
if (lemma !== null) {
|
|
49
|
+
var lemmaMatchesStatement = lemma.matchStatement(statementNode, proofContext);
|
|
50
|
+
qualifiedStatementVerified = lemmaMatchesStatement; ///
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (!qualifiedStatementVerified) {
|
|
54
|
+
var theorem = proofContext.findTheoremByReferenceName(referenceName);
|
|
55
|
+
if (theorem !== null) {
|
|
56
|
+
var theoremMatchesStatement = theorem.matchStatement(statementNode, proofContext);
|
|
57
|
+
qualifiedStatementVerified = theoremMatchesStatement; ///
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (!qualifiedStatementVerified) {
|
|
61
|
+
var conjecture = proofContext.findConjectureByReferenceName(referenceName);
|
|
62
|
+
if (conjecture !== null) {
|
|
63
|
+
var conjectureMatchesStatement = conjecture.matchStatement(statementNode, proofContext);
|
|
64
|
+
qualifiedStatementVerified = conjectureMatchesStatement; ///
|
|
65
|
+
}
|
|
66
|
+
}
|
|
38
67
|
}
|
|
39
68
|
}
|
|
40
69
|
qualifiedStatementVerified ? proofContext.complete(qualifiedStatementNode) : proofContext.halt(qualifiedStatementNode);
|
|
41
70
|
return qualifiedStatementVerified;
|
|
42
71
|
}
|
|
43
72
|
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3F1YWxpZmllZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeVN0YXRlbWVudCBmcm9tIFwiLi4vLi4vdmVyaWZ5L3N0YXRlbWVudFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnksIHJlZmVyZW5jZU5hbWVGcm9tUmVmZXJlbmNlTm9kZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgcmVmZXJlbmNlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3F1YWxpZmllZFN0YXRlbWVudC9xdWFsaWZpY2F0aW9uIS9yZWZlcmVuY2UhXCIpLFxuICAgICAgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3F1YWxpZmllZFN0YXRlbWVudC9zdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgYXNzZXJ0aW9ucywgZGVyaXZlZCwgcHJvb2ZDb250ZXh0KSB7XG4gIGxldCBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IGZhbHNlO1xuXG4gIHByb29mQ29udGV4dC5iZWdpbihxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gcHJvb2ZDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIHByb29mQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50Li4uYCk7XG5cbiAgICBjb25zdCByZWZlcmVuY2VOb2RlID0gcmVmZXJlbmNlTm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgaWYgKHJlZmVyZW5jZU5vZGUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSBwcm9vZkNvbnRleHQsXG4gICAgICAgICAgICBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBhc3NlcnRpb25zLCBkZXJpdmVkLCBjb250ZXh0KTtcblxuICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllZDsgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZU5hbWUgPSByZWZlcmVuY2VOYW1lRnJvbVJlZmVyZW5jZU5vZGUocmVmZXJlbmNlTm9kZSk7XG5cbiAgICAgIGlmICghcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgcnVsZSA9IHByb29mQ29udGV4dC5maW5kUnVsZUJ5UmVmZXJlbmNlTmFtZShyZWZlcmVuY2VOYW1lKTtcblxuICAgICAgICBpZiAocnVsZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHJ1bGVNYXRjaGVzU3RhdGVtZW50ID0gcnVsZS5tYXRjaFN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBydWxlTWF0Y2hlc1N0YXRlbWVudDsgIC8vL1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgYXhpb20gPSBwcm9vZkNvbnRleHQuZmluZEF4aW9tQnlSZWZlcmVuY2VOYW1lKHJlZmVyZW5jZU5hbWUpO1xuXG4gICAgICAgIGlmIChheGlvbSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IGF4aW9tTWF0Y2hlc1N0YXRlbWVudCA9IGF4aW9tLm1hdGNoU3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIHByb29mQ29udGV4dCk7XG5cbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IGF4aW9tTWF0Y2hlc1N0YXRlbWVudDsgLy8vXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBsZW1tYSA9IHByb29mQ29udGV4dC5maW5kTGVtbWFCeVJlZmVyZW5jZU5hbWUocmVmZXJlbmNlTmFtZSk7XG5cbiAgICAgICAgaWYgKGxlbW1hICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgbGVtbWFNYXRjaGVzU3RhdGVtZW50ID0gbGVtbWEubWF0Y2hTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gbGVtbWFNYXRjaGVzU3RhdGVtZW50OyAvLy9cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIXF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IHRoZW9yZW0gPSBwcm9vZkNvbnRleHQuZmluZFRoZW9yZW1CeVJlZmVyZW5jZU5hbWUocmVmZXJlbmNlTmFtZSk7XG5cbiAgICAgICAgaWYgKHRoZW9yZW0gIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCB0aGVvcmVtTWF0Y2hlc1N0YXRlbWVudCA9IHRoZW9yZW0ubWF0Y2hTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdGhlb3JlbU1hdGNoZXNTdGF0ZW1lbnQ7IC8vL1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgY29uamVjdHVyZSA9IHByb29mQ29udGV4dC5maW5kQ29uamVjdHVyZUJ5UmVmZXJlbmNlTmFtZShyZWZlcmVuY2VOYW1lKTtcblxuICAgICAgICBpZiAoY29uamVjdHVyZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IGNvbmplY3R1cmVNYXRjaGVzU3RhdGVtZW50ID0gY29uamVjdHVyZS5tYXRjaFN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBjb25qZWN0dXJlTWF0Y2hlc1N0YXRlbWVudDsgLy8vXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA/XG4gICAgcHJvb2ZDb250ZXh0LmNvbXBsZXRlKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpIDpcbiAgICAgIHByb29mQ29udGV4dC5oYWx0KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIHJldHVybiBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQiLCJyZWZlcmVuY2VOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJxdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwiYXNzZXJ0aW9ucyIsImRlcml2ZWQiLCJwcm9vZkNvbnRleHQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsImJlZ2luIiwic3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsImRlYnVnIiwicmVmZXJlbmNlTm9kZSIsImNvbnRleHQiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVN0YXRlbWVudCIsInJlZmVyZW5jZU5hbWUiLCJyZWZlcmVuY2VOYW1lRnJvbVJlZmVyZW5jZU5vZGUiLCJydWxlIiwiZmluZFJ1bGVCeVJlZmVyZW5jZU5hbWUiLCJydWxlTWF0Y2hlc1N0YXRlbWVudCIsIm1hdGNoU3RhdGVtZW50IiwiYXhpb20iLCJmaW5kQXhpb21CeVJlZmVyZW5jZU5hbWUiLCJheGlvbU1hdGNoZXNTdGF0ZW1lbnQiLCJsZW1tYSIsImZpbmRMZW1tYUJ5UmVmZXJlbmNlTmFtZSIsImxlbW1hTWF0Y2hlc1N0YXRlbWVudCIsInRoZW9yZW0iLCJmaW5kVGhlb3JlbUJ5UmVmZXJlbmNlTmFtZSIsInRoZW9yZW1NYXRjaGVzU3RhdGVtZW50IiwiY29uamVjdHVyZSIsImZpbmRDb25qZWN0dXJlQnlSZWZlcmVuY2VOYW1lIiwiY29uamVjdHVyZU1hdGNoZXNTdGF0ZW1lbnQiLCJjb21wbGV0ZSIsImhhbHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBd0JBOzs7OERBUEk7cUJBRThCOzs7Ozs7QUFFMUQsSUFBTUMscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDLGtEQUMvQkMscUJBQXFCRCxJQUFBQSxnQkFBUyxFQUFDO0FBRXRCLFNBQVNGLHlCQUF5Qkksc0JBQXNCLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxFQUFFQyxZQUFZLEVBQUU7SUFDMUcsSUFBSUMsNkJBQTZCLEtBQUs7SUFFdENELGFBQWFFLEtBQUssQ0FBQ0w7SUFFbkIsSUFBTU0sZ0JBQWdCUCxtQkFBbUJDO0lBRXpDLElBQUlNLGtCQUFrQixJQUFJLEVBQUU7UUFDMUIsSUFBTUMsa0JBQWtCSixhQUFhSyxZQUFZLENBQUNGO1FBRWxESCxhQUFhTSxLQUFLLENBQUMsQUFBQyxrQkFBaUMsT0FBaEJGLGlCQUFnQjtRQUVyRCxJQUFNRyxnQkFBZ0JiLG1CQUFtQkc7UUFFekMsSUFBSVUsa0JBQWtCLElBQUksRUFBRTtZQUMxQixJQUFNQyxVQUFVUixjQUNWUyxvQkFBb0JDLElBQUFBLGtCQUFlLEVBQUNQLGVBQWVMLFlBQVlDLFNBQVNTO1lBRTlFUCw2QkFBNkJRLG1CQUFtQixHQUFHO1FBQ3JELE9BQU87WUFDTCxJQUFNRSxnQkFBZ0JDLElBQUFBLHFDQUE4QixFQUFDTDtZQUVyRCxJQUFJLENBQUNOLDRCQUE0QjtnQkFDL0IsSUFBTVksT0FBT2IsYUFBYWMsdUJBQXVCLENBQUNIO2dCQUVsRCxJQUFJRSxTQUFTLElBQUksRUFBRTtvQkFDakIsSUFBTUUsdUJBQXVCRixLQUFLRyxjQUFjLENBQUNiLGVBQWVIO29CQUVoRUMsNkJBQTZCYyxzQkFBdUIsR0FBRztnQkFDekQsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLENBQUNkLDRCQUE0QjtnQkFDL0IsSUFBTWdCLFFBQVFqQixhQUFha0Isd0JBQXdCLENBQUNQO2dCQUVwRCxJQUFJTSxVQUFVLElBQUksRUFBRTtvQkFDbEIsSUFBTUUsd0JBQXdCRixNQUFNRCxjQUFjLENBQUNiLGVBQWVIO29CQUVsRUMsNkJBQTZCa0IsdUJBQXVCLEdBQUc7Z0JBQ3pELENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxDQUFDbEIsNEJBQTRCO2dCQUMvQixJQUFNbUIsUUFBUXBCLGFBQWFxQix3QkFBd0IsQ0FBQ1Y7Z0JBRXBELElBQUlTLFVBQVUsSUFBSSxFQUFFO29CQUNsQixJQUFNRSx3QkFBd0JGLE1BQU1KLGNBQWMsQ0FBQ2IsZUFBZUg7b0JBRWxFQyw2QkFBNkJxQix1QkFBdUIsR0FBRztnQkFDekQsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLENBQUNyQiw0QkFBNEI7Z0JBQy9CLElBQU1zQixVQUFVdkIsYUFBYXdCLDBCQUEwQixDQUFDYjtnQkFFeEQsSUFBSVksWUFBWSxJQUFJLEVBQUU7b0JBQ3BCLElBQU1FLDBCQUEwQkYsUUFBUVAsY0FBYyxDQUFDYixlQUFlSDtvQkFFdEVDLDZCQUE2QndCLHlCQUF5QixHQUFHO2dCQUMzRCxDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksQ0FBQ3hCLDRCQUE0QjtnQkFDL0IsSUFBTXlCLGFBQWExQixhQUFhMkIsNkJBQTZCLENBQUNoQjtnQkFFOUQsSUFBSWUsZUFBZSxJQUFJLEVBQUU7b0JBQ3ZCLElBQU1FLDZCQUE2QkYsV0FBV1YsY0FBYyxDQUFDYixlQUFlSDtvQkFFNUVDLDZCQUE2QjJCLDRCQUE0QixHQUFHO2dCQUM5RCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQzQiw2QkFDRUQsYUFBYTZCLFFBQVEsQ0FBQ2hDLDBCQUNwQkcsYUFBYThCLElBQUksQ0FBQ2pDLHVCQUF1QjtJQUU3QyxPQUFPSTtBQUNUIn0=
|
|
@@ -10,7 +10,6 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _statement = /*#__PURE__*/ _interopRequireDefault(require("../statement"));
|
|
12
12
|
var _query = require("../../utilities/query");
|
|
13
|
-
var _string = require("../../utilities/string");
|
|
14
13
|
function _interopRequireDefault(obj) {
|
|
15
14
|
return obj && obj.__esModule ? obj : {
|
|
16
15
|
default: obj
|
|
@@ -22,8 +21,8 @@ function verifyUnqualifiedStatement(unqualifiedStatementNode, assertions, derive
|
|
|
22
21
|
proofContext.begin(unqualifiedStatementNode);
|
|
23
22
|
var statementNode = statementNodeQuery(unqualifiedStatementNode);
|
|
24
23
|
if (statementNode !== null) {
|
|
25
|
-
var statementString =
|
|
26
|
-
proofContext.debug("Verifying the ".concat(statementString, " unqualified statement..."));
|
|
24
|
+
var statementString = proofContext.nodeAsString(statementNode);
|
|
25
|
+
proofContext.debug("Verifying the '".concat(statementString, "' unqualified statement..."));
|
|
27
26
|
var statementMatches = true;
|
|
28
27
|
if (derived) {
|
|
29
28
|
statementMatches = proofContext.matchStatement(statementNode);
|
|
@@ -37,4 +36,4 @@ function verifyUnqualifiedStatement(unqualifiedStatementNode, assertions, derive
|
|
|
37
36
|
return unqualifiedStatementVerified;
|
|
38
37
|
}
|
|
39
38
|
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5U3RhdGVtZW50IGZyb20gXCIuLi9zdGF0ZW1lbnRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdW5xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBhc3NlcnRpb25zLCBkZXJpdmVkLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4odW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKHN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBwcm9vZkNvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgcHJvb2ZDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHVucXVhbGlmaWVkIHN0YXRlbWVudC4uLmApO1xuXG4gICAgbGV0IHN0YXRlbWVudE1hdGNoZXMgPSB0cnVlO1xuXG4gICAgaWYgKGRlcml2ZWQpIHtcbiAgICAgIHN0YXRlbWVudE1hdGNoZXMgPSBwcm9vZkNvbnRleHQubWF0Y2hTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlbWVudE1hdGNoZXMpIHtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSBwcm9vZkNvbnRleHQsIC8vL1xuICAgICAgICAgICAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzZXJ0aW9ucywgZGVyaXZlZCwgY29udGV4dCk7XG5cbiAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllZDsgIC8vL1xuICAgIH1cbiAgfVxuXG4gIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgP1xuICAgIHByb29mQ29udGV4dC5jb21wbGV0ZSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpIDpcbiAgICAgIHByb29mQ29udGV4dC5oYWx0KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgcmV0dXJuIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJhc3NlcnRpb25zIiwiZGVyaXZlZCIsInByb29mQ29udGV4dCIsInVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJiZWdpbiIsInN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJkZWJ1ZyIsInN0YXRlbWVudE1hdGNoZXMiLCJtYXRjaFN0YXRlbWVudCIsImNvbnRleHQiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVN0YXRlbWVudCIsImNvbXBsZXRlIiwiaGFsdCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUF3QkE7Ozs4REFOSTtxQkFFRjs7Ozs7O0FBRTFCLElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQztBQUV0QixTQUFTRiwyQkFBMkJHLHdCQUF3QixFQUFFQyxVQUFVLEVBQUVDLE9BQU8sRUFBRUMsWUFBWSxFQUFFO0lBQzlHLElBQUlDLCtCQUErQixLQUFLO0lBRXhDRCxhQUFhRSxLQUFLLENBQUNMO0lBRW5CLElBQU1NLGdCQUFnQlIsbUJBQW1CRTtJQUV6QyxJQUFJTSxrQkFBa0IsSUFBSSxFQUFFO1FBQzFCLElBQU1DLGtCQUFrQkosYUFBYUssWUFBWSxDQUFDRjtRQUVsREgsYUFBYU0sS0FBSyxDQUFDLEFBQUMsa0JBQWlDLE9BQWhCRixpQkFBZ0I7UUFFckQsSUFBSUcsbUJBQW1CLElBQUk7UUFFM0IsSUFBSVIsU0FBUztZQUNYUSxtQkFBbUJQLGFBQWFRLGNBQWMsQ0FBQ0w7UUFDakQsQ0FBQztRQUVELElBQUlJLGtCQUFrQjtZQUNwQixJQUFNRSxVQUFVVCxjQUNWVSxvQkFBb0JDLElBQUFBLGtCQUFlLEVBQUNSLGVBQWVMLFlBQVlDLFNBQVNVO1lBRTlFUiwrQkFBK0JTLG1CQUFvQixHQUFHO1FBQ3hELENBQUM7SUFDSCxDQUFDO0lBRURULCtCQUNFRCxhQUFhWSxRQUFRLENBQUNmLDRCQUNwQkcsYUFBYWEsSUFBSSxDQUFDaEIseUJBQXlCO0lBRS9DLE9BQU9JO0FBQ1QifQ==
|
package/lib/verify/statement.js
CHANGED
|
@@ -2,23 +2,28 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
default: function() {
|
|
8
13
|
return verifyStatement;
|
|
14
|
+
},
|
|
15
|
+
verifyStatementAgainstCombinator: function() {
|
|
16
|
+
return verifyStatementAgainstCombinator;
|
|
9
17
|
}
|
|
10
18
|
});
|
|
11
19
|
var _equality = /*#__PURE__*/ _interopRequireDefault(require("../equality"));
|
|
12
20
|
var _term = /*#__PURE__*/ _interopRequireDefault(require("../verify/term"));
|
|
13
|
-
var _equality1 = /*#__PURE__*/ _interopRequireDefault(require("../ocmbinator/equality"));
|
|
14
21
|
var _bracketed = /*#__PURE__*/ _interopRequireDefault(require("../ocmbinator/bracketed"));
|
|
15
22
|
var _type = /*#__PURE__*/ _interopRequireDefault(require("../verify/assertion/type"));
|
|
16
23
|
var _array = require("../utilities/array");
|
|
17
24
|
var _type1 = require("../type");
|
|
18
|
-
var _string = require("../utilities/string");
|
|
19
25
|
var _typeNames = require("../typeNames");
|
|
20
26
|
var _metaTypes = require("../metaTypes");
|
|
21
|
-
var _constants = require("../constants");
|
|
22
27
|
var _query = require("../utilities/query");
|
|
23
28
|
var _ruleNames = require("../ruleNames");
|
|
24
29
|
function _arrayLikeToArray(arr, len) {
|
|
@@ -56,40 +61,23 @@ function verifyStatement(statementNode, assertions, derived, context) {
|
|
|
56
61
|
var statementVerified = false;
|
|
57
62
|
context.begin(statementNode);
|
|
58
63
|
if (!statementVerified) {
|
|
59
|
-
var
|
|
60
|
-
statementVerified =
|
|
64
|
+
var statementVerifiedAgainstCombinators = verifyStatementAgainstCombinators(statementNode, context);
|
|
65
|
+
statementVerified = statementVerifiedAgainstCombinators; ///
|
|
61
66
|
}
|
|
62
67
|
if (!statementVerified) {
|
|
63
|
-
var statementVerifiedAsTypeAssertion = verifyStatementAsTypeAssertion(statementNode, assertions, context);
|
|
68
|
+
var statementVerifiedAsTypeAssertion = verifyStatementAsTypeAssertion(statementNode, assertions, derived, context);
|
|
64
69
|
statementVerified = statementVerifiedAsTypeAssertion; ///
|
|
65
70
|
}
|
|
66
71
|
if (!statementVerified) {
|
|
67
|
-
var
|
|
68
|
-
statementVerified =
|
|
72
|
+
var statementVerifiedAsEquality = verifyStatementAsEquality(statementNode, derived, context);
|
|
73
|
+
statementVerified = statementVerifiedAsEquality; //
|
|
69
74
|
}
|
|
70
75
|
statementVerified ? context.complete(statementNode) : context.halt(statementNode);
|
|
71
76
|
return statementVerified;
|
|
72
77
|
}
|
|
73
|
-
function
|
|
74
|
-
var
|
|
75
|
-
|
|
76
|
-
if (statementVerifiedAgainstCombinator) {
|
|
77
|
-
statementVerifiedAsEquality = true;
|
|
78
|
-
if (derived) {
|
|
79
|
-
var equality = _equality.default.fromStatementNode(statementNode), proofSteps = context.getProofSteps(), equalities = equalitiesFromProofSteps(proofSteps), equalityEquates = equality.equate(equalities);
|
|
80
|
-
statementVerifiedAsEquality = equalityEquates; ///
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return statementVerifiedAsEquality;
|
|
84
|
-
}
|
|
85
|
-
function verifyStatementAsTypeAssertion(statementNode, assertions, context) {
|
|
86
|
-
var statementVerifiedAsTypeAssertion = false;
|
|
87
|
-
var typeAssertionNode = typeAssertionNodeQuery(statementNode);
|
|
88
|
-
if (typeAssertionNode !== null) {
|
|
89
|
-
var typeAssertionVerified = (0, _type.default)(typeAssertionNode, assertions, context);
|
|
90
|
-
statementVerifiedAsTypeAssertion = typeAssertionVerified; ///
|
|
91
|
-
}
|
|
92
|
-
return statementVerifiedAsTypeAssertion;
|
|
78
|
+
function verifyStatementAgainstCombinator(statementNode, combinator, context) {
|
|
79
|
+
var combinatorStatementNode = combinator.getStatementNode(), node = statementNode, combinatorNode = combinatorStatementNode, nodeVerified = verifyNode(node, combinatorNode, context), statementVerifiedAgainstCombinator = nodeVerified; ///
|
|
80
|
+
return statementVerifiedAgainstCombinator;
|
|
93
81
|
}
|
|
94
82
|
function verifyStatementAgainstCombinators(statementNode, context) {
|
|
95
83
|
var statementVerifiedAgainstCombinators = false;
|
|
@@ -108,9 +96,29 @@ function verifyStatementAgainstCombinators(statementNode, context) {
|
|
|
108
96
|
}
|
|
109
97
|
return statementVerifiedAgainstCombinators;
|
|
110
98
|
}
|
|
111
|
-
function
|
|
112
|
-
var
|
|
113
|
-
|
|
99
|
+
function verifyStatementAsTypeAssertion(statementNode, assertions, derived, context) {
|
|
100
|
+
var statementVerifiedAsTypeAssertion = false;
|
|
101
|
+
var typeAssertionNode = typeAssertionNodeQuery(statementNode);
|
|
102
|
+
if (typeAssertionNode !== null) {
|
|
103
|
+
var typeAssertionVerified = (0, _type.default)(typeAssertionNode, assertions, derived, context);
|
|
104
|
+
statementVerifiedAsTypeAssertion = typeAssertionVerified; ///
|
|
105
|
+
}
|
|
106
|
+
return statementVerifiedAsTypeAssertion;
|
|
107
|
+
}
|
|
108
|
+
function verifyStatementAsEquality(statementNode, derived, context) {
|
|
109
|
+
var statementVerifiedAsEquality = false;
|
|
110
|
+
var equality = _equality.default.fromStatementNode(statementNode, context);
|
|
111
|
+
if (equality !== null) {
|
|
112
|
+
statementVerifiedAsEquality = true; ///
|
|
113
|
+
if (derived) {
|
|
114
|
+
var equalities = context.getEqualities();
|
|
115
|
+
if (equalities !== null) {
|
|
116
|
+
var equalityEquates = equality.equate(equalities, context);
|
|
117
|
+
statementVerifiedAsEquality = equalityEquates; ///
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return statementVerifiedAsEquality;
|
|
114
122
|
}
|
|
115
123
|
function verifyNode(node, combinatorNode, context) {
|
|
116
124
|
var nodeVerified;
|
|
@@ -178,7 +186,7 @@ function verifyArgumentNode(argumentNode, combinatorArgumentNode, context) {
|
|
|
178
186
|
var argumentNodeVerified = false;
|
|
179
187
|
var termNode = termNodeQuery(argumentNode);
|
|
180
188
|
if (termNode === null) {
|
|
181
|
-
var argumentString =
|
|
189
|
+
var argumentString = context.nodeAsString(argumentNode);
|
|
182
190
|
context.error("The ".concat(argumentString, " argument should be a term, not a type"));
|
|
183
191
|
} else {
|
|
184
192
|
var types = [], termVerified = (0, _term.default)(termNode, types, context);
|
|
@@ -195,10 +203,10 @@ function verifyMetaargumentNode(metaArgumentNode, combinatorMetaargumentNode, co
|
|
|
195
203
|
var metaArgumentNodeVerified = false;
|
|
196
204
|
var statementNode = statementNodeQuery(metaArgumentNode);
|
|
197
205
|
if (statementNode === null) {
|
|
198
|
-
var metaArgumentString =
|
|
206
|
+
var metaArgumentString = context.nodeAsString(metaArgumentNode);
|
|
199
207
|
context.error("The '".concat(metaArgumentString, "' meta-argument should be a statement, not a meta-type."));
|
|
200
208
|
} else {
|
|
201
|
-
var derived = false, assertions =
|
|
209
|
+
var derived = false, assertions = [], statementVerified = verifyStatement(statementNode, assertions, derived, context);
|
|
202
210
|
if (statementVerified) {
|
|
203
211
|
var combinatorMetaTYpeNode = metaTypeNodeQuery(combinatorMetaargumentNode);
|
|
204
212
|
if (combinatorMetaTYpeNode !== null) {
|
|
@@ -206,24 +214,12 @@ function verifyMetaargumentNode(metaArgumentNode, combinatorMetaargumentNode, co
|
|
|
206
214
|
metaArgumentNodeVerified = terminalNodeContentStatementMetaType; ///
|
|
207
215
|
}
|
|
208
216
|
if (!metaArgumentNodeVerified) {
|
|
209
|
-
var combinatorMetaargumentString =
|
|
217
|
+
var combinatorMetaargumentString = context.nodeAsString(combinatorMetaargumentNode);
|
|
210
218
|
context.error("The '".concat(combinatorMetaargumentString, "' combinator meta-argument should be the 'Statement' meta-type."));
|
|
211
219
|
}
|
|
212
220
|
}
|
|
213
221
|
}
|
|
214
222
|
return metaArgumentNodeVerified;
|
|
215
223
|
}
|
|
216
|
-
function equalitiesFromProofSteps(proofSteps) {
|
|
217
|
-
var start = -_constants.MAXIMUM_INDEXES_LENGTH; ///
|
|
218
|
-
proofSteps = proofSteps.slice(start); ///
|
|
219
|
-
var equalities = proofSteps.reduce(function(equalities, proofStep, index) {
|
|
220
|
-
var equality = _equality.default.fromProofStep(proofStep);
|
|
221
|
-
if (equality !== null) {
|
|
222
|
-
equalities.push(equality);
|
|
223
|
-
}
|
|
224
|
-
return equalities;
|
|
225
|
-
}, []);
|
|
226
|
-
return equalities;
|
|
227
|
-
}
|
|
228
224
|
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRXF1YWxpdHkgZnJvbSBcIi4uL2VxdWFsaXR5XCI7XG5pbXBvcnQgdmVyaWZ5VGVybSBmcm9tIFwiLi4vdmVyaWZ5L3Rlcm1cIjtcbmltcG9ydCBlcXVhbGl0eUNvbWJpbmF0b3IgZnJvbSBcIi4uL29jbWJpbmF0b3IvZXF1YWxpdHlcIjtcbmltcG9ydCBicmFja2V0ZWRDb21iaW5hdG9yIGZyb20gXCIuLi9vY21iaW5hdG9yL2JyYWNrZXRlZFwiO1xuaW1wb3J0IHZlcmlmeVR5cGVBc3NlcnRpb24gZnJvbSBcIi4uL3ZlcmlmeS9hc3NlcnRpb24vdHlwZVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG9iamVjdFR5cGUgfSBmcm9tIFwiLi4vdHlwZVwiO1xuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IE9CSkVDVF9UWVBFX05BTUUgfSBmcm9tIFwiLi4vdHlwZU5hbWVzXCI7XG5pbXBvcnQgeyBTVEFURU1FTlRfTUVUQV9UWVBFIH0gZnJvbSBcIi4uL21ldGFUeXBlc1wiO1xuaW1wb3J0IHsgTUFYSU1VTV9JTkRFWEVTX0xFTkdUSCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgdHlwZU5hbWVGcm9tVHlwZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBBUkdVTUVOVF9SVUxFX05BTUUsIE1FVEFfQVJHVU1FTlRfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2FyZ3VtZW50L3Rlcm0hXCIpLFxuICAgICAgdHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hcmd1bWVudC90eXBlIVwiKSxcbiAgICAgIG1ldGFUeXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGFBcmd1bWVudC9tZXRhVHlwZSEvQG1ldGEtdHlwZVwiKSxcbiAgICAgIHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhQXJndW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIHR5cGVBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L3R5cGVBc3NlcnRpb24hXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzZXJ0aW9ucywgZGVyaXZlZCwgY29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb250ZXh0LmJlZ2luKHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICghc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkgPSB2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5KHN0YXRlbWVudE5vZGUsIGRlcml2ZWQsIGNvbnRleHQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHk7ICAvL1xuICB9XG5cbiAgaWYgKCFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uID0gdmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2VydGlvbnMsIGNvbnRleHQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbjsgLy8vXG4gIH1cblxuICBpZiAoIXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMgPSB2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcnMoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZCA9IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzOyAgLy8vXG4gIH1cblxuICBzdGF0ZW1lbnRWZXJpZmllZCA/XG4gICAgY29udGV4dC5jb21wbGV0ZShzdGF0ZW1lbnROb2RlKSA6XG4gICAgICBjb250ZXh0LmhhbHQoc3RhdGVtZW50Tm9kZSk7XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5KHN0YXRlbWVudE5vZGUsIGRlcml2ZWQsIGNvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IGZhbHNlO1xuXG4gIGNvbnN0IGNvbWJpbmF0b3IgPSBlcXVhbGl0eUNvbWJpbmF0b3IsICAvLy9cbiAgICAgICAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciA9IHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3IsIGNvbnRleHQpO1xuXG4gIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yKSB7XG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5ID0gdHJ1ZTtcblxuICAgIGlmIChkZXJpdmVkKSB7XG4gICAgICBjb25zdCBlcXVhbGl0eSA9IEVxdWFsaXR5LmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgcHJvb2ZTdGVwcyA9IGNvbnRleHQuZ2V0UHJvb2ZTdGVwcygpLFxuICAgICAgICAgICAgZXF1YWxpdGllcyA9IGVxdWFsaXRpZXNGcm9tUHJvb2ZTdGVwcyhwcm9vZlN0ZXBzKSxcbiAgICAgICAgICAgIGVxdWFsaXR5RXF1YXRlcyA9IGVxdWFsaXR5LmVxdWF0ZShlcXVhbGl0aWVzKTtcblxuICAgICAgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5ID0gZXF1YWxpdHlFcXVhdGVzOyAvLy9cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5O1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24oc3RhdGVtZW50Tm9kZSwgYXNzZXJ0aW9ucywgY29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCB0eXBlQXNzZXJ0aW9uTm9kZSA9IHR5cGVBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKHR5cGVBc3NlcnRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgdHlwZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5VHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzZXJ0aW9ucywgY29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiA9IHR5cGVBc3NlcnRpb25WZXJpZmllZDsgLy8vXG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9ycyhzdGF0ZW1lbnROb2RlLCBjb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycyA9IGZhbHNlO1xuXG4gIGxldCBjb21iaW5hdG9ycyA9IGNvbnRleHQuZ2V0Q29tYmluYXRvcnMoKTtcblxuICBjb21iaW5hdG9ycyA9IFsgLy8vXG4gICAgYnJhY2tldGVkQ29tYmluYXRvcixcbiAgICAuLi5jb21iaW5hdG9yc1xuICBdO1xuXG4gIGNvbnN0IGNvbWJpbmF0b3IgPSBjb21iaW5hdG9ycy5maW5kKChjb21iaW5hdG9yKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciA9IHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3IsIGNvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkgfHwgbnVsbDtcblxuICBpZiAoY29tYmluYXRvciAhPT0gbnVsbCkge1xuICAgIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycztcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgY29tYmluYXRvciwgY29udGV4dCkge1xuICBjb25zdCBjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSA9IGNvbWJpbmF0b3IuZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAgICAgICBub2RlID0gc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICBjb21iaW5hdG9yTm9kZSA9IGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgbm9kZVZlcmlmaWVkID0gdmVyaWZ5Tm9kZShub2RlLCBjb21iaW5hdG9yTm9kZSwgY29udGV4dCksXG4gICAgICAgIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IgPSBub2RlVmVyaWZpZWQ7ICAvLy9cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5Tm9kZShub2RlLCBjb21iaW5hdG9yTm9kZSwgY29udGV4dCkge1xuICBsZXQgbm9kZVZlcmlmaWVkO1xuXG4gIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgIGNvbWJpbmF0b3JOb2RlVGVybWluYWxOb2RlID0gY29tYmluYXRvck5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICBpZiAobm9kZVRlcm1pbmFsTm9kZSA9PT0gY29tYmluYXRvck5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICBpZiAobm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgICAgY29tYmluYXRvclRlcm1pbmFsTm9kZSA9IGNvbWJpbmF0b3JOb2RlLCAgLy8vXG4gICAgICAgICAgICB0ZXJtaW5hbE5vZGVWZXJpZmllZCA9IHZlcmlmeVRlcm1pbmFsTm9kZSh0ZXJtaW5hbE5vZGUsIGNvbWJpbmF0b3JUZXJtaW5hbE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICBub2RlVmVyaWZpZWQgPSB0ZXJtaW5hbE5vZGVWZXJpZmllZDsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgIGNvbWJpbmF0b3JOb25UZXJtaW5hbE5vZGUgPSBjb21iaW5hdG9yTm9kZSwgIC8vL1xuICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSB2ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBjb21iaW5hdG9yTm9uVGVybWluYWxOb2RlLCBjb250ZXh0KTtcblxuICAgICAgbm9kZVZlcmlmaWVkID0gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7IC8vL1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBub2RlVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeU5vZGVzKG5vZGVzLCBjb21iaW5hdG9yTm9kZXMsIGNvbnRleHQpIHtcbiAgbGV0IG5vZGVzVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBub2Rlc0xlbmd0aCA9IG5vZGVzLmxlbmd0aCxcbiAgICAgICAgY29tYmluYXRvck5vZGVzTGVuZ3RoID0gY29tYmluYXRvck5vZGVzLmxlbmd0aDtcblxuICBpZiAobm9kZXNMZW5ndGggPT09IGNvbWJpbmF0b3JOb2Rlc0xlbmd0aCkge1xuICAgIG5vZGVzVmVyaWZpZWQgPSBub2Rlcy5ldmVyeSgobm9kZSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGNvbWJpbmF0b3JOb2RlID0gY29tYmluYXRvck5vZGVzW2luZGV4XSxcbiAgICAgICAgICAgIG5vZGVWZXJpZmllZCA9IHZlcmlmeU5vZGUobm9kZSwgY29tYmluYXRvck5vZGUsIGNvbnRleHQpO1xuXG4gICAgICBpZiAobm9kZVZlcmlmaWVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIG5vZGVzVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVRlcm1pbmFsTm9kZSh0ZXJtaW5hbE5vZGUsIGNvbWJpbmF0b3JUZXJtaW5hbE5vZGUsIGNvbnRleHQpIHtcbiAgbGV0IHRlcm1pbmFsTm9kZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbWF0Y2hlcyA9IHRlcm1pbmFsTm9kZS5tYXRjaChjb21iaW5hdG9yVGVybWluYWxOb2RlKTtcblxuICBpZiAobWF0Y2hlcykge1xuICAgIHRlcm1pbmFsTm9kZVZlcmlmaWVkID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtaW5hbE5vZGVWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgY29tYmluYXRvck5vblRlcm1pbmFsTm9kZSwgY29udGV4dCkge1xuICBsZXQgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLCAvLy9cbiAgICAgICAgY29tYmluYXRvclJ1bGVOYW1lID0gY29tYmluYXRvck5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICBpZiAocnVsZU5hbWUgPT09IGNvbWJpbmF0b3JSdWxlTmFtZSkge1xuICAgIHN3aXRjaCAocnVsZU5hbWUpIHtcbiAgICAgIGNhc2UgQVJHVU1FTlRfUlVMRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IGFyZ3VtZW50Tm9kZSA9IG5vblRlcm1pbmFsTm9kZSwgLy8vXG4gICAgICAgICAgICAgIGNvbWJpbmF0b3JBcmd1bWVudE5vZGUgPSBjb21iaW5hdG9yTm9uVGVybWluYWxOb2RlLCAvLy9cbiAgICAgICAgICAgICAgYXJndW1lbnROb2RlVmVyaWZpZWQgPSB2ZXJpZnlBcmd1bWVudE5vZGUoYXJndW1lbnROb2RlLCBjb21iaW5hdG9yQXJndW1lbnROb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IGFyZ3VtZW50Tm9kZVZlcmlmaWVkOyAvLy9cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBNRVRBX0FSR1VNRU5UX1JVTEVfTkFNRToge1xuICAgICAgICBjb25zdCBtZXRhQXJndW1lbnROb2RlID0gbm9uVGVybWluYWxOb2RlLCAvLy9cbiAgICAgICAgICAgICAgY29tYmluYXRvck1ldGFhcmd1bWVudE5vZGUgPSBjb21iaW5hdG9yTm9uVGVybWluYWxOb2RlLCAvLy9cbiAgICAgICAgICAgICAgbWV0YUFyZ3VtZW50Tm9kZVZlcmlmaWVkID0gdmVyaWZ5TWV0YWFyZ3VtZW50Tm9kZShtZXRhQXJndW1lbnROb2RlLCBjb21iaW5hdG9yTWV0YWFyZ3VtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQ7IC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICBjb21iaW5hdG9yQ2hpbGROb2RlcyA9IGNvbWJpbmF0b3JOb25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICBub2RlcyA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgICBjb21iaW5hdG9yTm9kZXMgPSBjb21iaW5hdG9yQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgICAgIG5vZGVzVmVyaWZpZWQgPSB2ZXJpZnlOb2Rlcyhub2RlcywgY29tYmluYXRvck5vZGVzLCBjb250ZXh0KTtcblxuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IG5vZGVzVmVyaWZpZWQ7IC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBub25UZXJtaW5hbE5vZGVWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5QXJndW1lbnROb2RlKGFyZ3VtZW50Tm9kZSwgY29tYmluYXRvckFyZ3VtZW50Tm9kZSwgY29udGV4dCkge1xuICBsZXQgYXJndW1lbnROb2RlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkoYXJndW1lbnROb2RlKTtcblxuICBpZiAodGVybU5vZGUgPT09IG51bGwpIHtcbiAgICBjb25zdCBhcmd1bWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyhhcmd1bWVudE5vZGUpO1xuXG4gICAgY29udGV4dC5lcnJvcihgVGhlICR7YXJndW1lbnRTdHJpbmd9IGFyZ3VtZW50IHNob3VsZCBiZSBhIHRlcm0sIG5vdCBhIHR5cGVgKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0eXBlcyA9IFtdLFxuICAgICAgICAgIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm0odGVybU5vZGUsIHR5cGVzLCBjb250ZXh0KTtcblxuICAgIGlmICh0ZXJtVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGZpcnN0VHlwZSA9IGZpcnN0KHR5cGVzKSxcbiAgICAgICAgICAgIHRlcm1UeXBlID0gZmlyc3RUeXBlLCAvLy9cbiAgICAgICAgICAgIHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeShjb21iaW5hdG9yQXJndW1lbnROb2RlKSxcbiAgICAgICAgICAgIHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUpLFxuICAgICAgICAgICAgdHlwZSA9ICh0eXBlTmFtZSA9PT0gT0JKRUNUX1RZUEVfTkFNRSkgP1xuICAgICAgICAgICAgICAgICAgICAgb2JqZWN0VHlwZSA6ICAvLy9cbiAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpLFxuICAgICAgICAgICAgc3RhdGVtZW50VHlwZUVxdWFsVG9PclN1YlR5cGVPZlR5cGUgPSB0ZXJtVHlwZS5pc0VxdWFsVG9PclN1YlR5cGVPZih0eXBlKTtcblxuICAgICAgaWYgKHN0YXRlbWVudFR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZUeXBlKSB7XG4gICAgICAgIGFyZ3VtZW50Tm9kZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXJndW1lbnROb2RlVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeU1ldGFhcmd1bWVudE5vZGUobWV0YUFyZ3VtZW50Tm9kZSwgY29tYmluYXRvck1ldGFhcmd1bWVudE5vZGUsIGNvbnRleHQpIHtcbiAgbGV0IG1ldGFBcmd1bWVudE5vZGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkobWV0YUFyZ3VtZW50Tm9kZSk7XG5cbiAgaWYgKHN0YXRlbWVudE5vZGUgPT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhQXJndW1lbnRTdHJpbmcgPSBub2RlQXNTdHJpbmcobWV0YUFyZ3VtZW50Tm9kZSk7XG5cbiAgICBjb250ZXh0LmVycm9yKGBUaGUgJyR7bWV0YUFyZ3VtZW50U3RyaW5nfScgbWV0YS1hcmd1bWVudCBzaG91bGQgYmUgYSBzdGF0ZW1lbnQsIG5vdCBhIG1ldGEtdHlwZS5gKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgICAgYXNzZXJ0aW9ucyA9IG51bGwsXG4gICAgICAgICAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzZXJ0aW9ucywgZGVyaXZlZCwgY29udGV4dCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGNvbWJpbmF0b3JNZXRhVFlwZU5vZGUgPSBtZXRhVHlwZU5vZGVRdWVyeShjb21iaW5hdG9yTWV0YWFyZ3VtZW50Tm9kZSk7XG5cbiAgICAgIGlmIChjb21iaW5hdG9yTWV0YVRZcGVOb2RlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IGNvbWJpbmF0b3JNZXRhVFlwZU5vZGUsICAvLy9cbiAgICAgICAgICAgICAgdGVybWluYWxOb2RlQ29udGVudCA9IHRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgICAgIHRlcm1pbmFsTm9kZUNvbnRlbnRTdGF0ZW1lbnRNZXRhVHlwZSA9ICh0ZXJtaW5hbE5vZGVDb250ZW50ID09PSBTVEFURU1FTlRfTUVUQV9UWVBFKTtcblxuICAgICAgICBtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQgPSB0ZXJtaW5hbE5vZGVDb250ZW50U3RhdGVtZW50TWV0YVR5cGU7ICAvLy9cbiAgICAgIH1cblxuICAgICAgaWYgKCFtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgY29tYmluYXRvck1ldGFhcmd1bWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyhjb21iaW5hdG9yTWV0YWFyZ3VtZW50Tm9kZSk7XG5cbiAgICAgICAgY29udGV4dC5lcnJvcihgVGhlICcke2NvbWJpbmF0b3JNZXRhYXJndW1lbnRTdHJpbmd9JyBjb21iaW5hdG9yIG1ldGEtYXJndW1lbnQgc2hvdWxkIGJlIHRoZSAnU3RhdGVtZW50JyBtZXRhLXR5cGUuYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1ldGFBcmd1bWVudE5vZGVWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gZXF1YWxpdGllc0Zyb21Qcm9vZlN0ZXBzKHByb29mU3RlcHMpIHtcbiAgY29uc3Qgc3RhcnQgPSAtTUFYSU1VTV9JTkRFWEVTX0xFTkdUSDsgIC8vL1xuXG4gIHByb29mU3RlcHMgPSBwcm9vZlN0ZXBzLnNsaWNlKHN0YXJ0KTsgLy8vXG5cbiAgY29uc3QgZXF1YWxpdGllcyA9IHByb29mU3RlcHMucmVkdWNlKChlcXVhbGl0aWVzLCBwcm9vZlN0ZXAsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgZXF1YWxpdHkgPSBFcXVhbGl0eS5mcm9tUHJvb2ZTdGVwKHByb29mU3RlcCk7XG5cbiAgICBpZiAoZXF1YWxpdHkgIT09IG51bGwpIHtcbiAgICAgIGVxdWFsaXRpZXMucHVzaChlcXVhbGl0eSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVxdWFsaXRpZXM7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gZXF1YWxpdGllcztcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlTdGF0ZW1lbnQiLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidHlwZU5vZGVRdWVyeSIsIm1ldGFUeXBlTm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5IiwidHlwZUFzc2VydGlvbk5vZGVRdWVyeSIsInN0YXRlbWVudE5vZGUiLCJhc3NlcnRpb25zIiwiZGVyaXZlZCIsImNvbnRleHQiLCJzdGF0ZW1lbnRWZXJpZmllZCIsImJlZ2luIiwic3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5IiwidmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eSIsInN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uIiwic3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMiLCJ2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcnMiLCJjb21wbGV0ZSIsImhhbHQiLCJjb21iaW5hdG9yIiwiZXF1YWxpdHlDb21iaW5hdG9yIiwic3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciIsInZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yIiwiZXF1YWxpdHkiLCJFcXVhbGl0eSIsImZyb21TdGF0ZW1lbnROb2RlIiwicHJvb2ZTdGVwcyIsImdldFByb29mU3RlcHMiLCJlcXVhbGl0aWVzIiwiZXF1YWxpdGllc0Zyb21Qcm9vZlN0ZXBzIiwiZXF1YWxpdHlFcXVhdGVzIiwiZXF1YXRlIiwidHlwZUFzc2VydGlvbk5vZGUiLCJ0eXBlQXNzZXJ0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlUeXBlQXNzZXJ0aW9uIiwiY29tYmluYXRvcnMiLCJnZXRDb21iaW5hdG9ycyIsImJyYWNrZXRlZENvbWJpbmF0b3IiLCJmaW5kIiwiY29tYmluYXRvclN0YXRlbWVudE5vZGUiLCJnZXRTdGF0ZW1lbnROb2RlIiwibm9kZSIsImNvbWJpbmF0b3JOb2RlIiwibm9kZVZlcmlmaWVkIiwidmVyaWZ5Tm9kZSIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsImNvbWJpbmF0b3JOb2RlVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwiY29tYmluYXRvclRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZVZlcmlmaWVkIiwidmVyaWZ5VGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwiY29tYmluYXRvck5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwidmVyaWZ5Tm9kZXMiLCJub2RlcyIsImNvbWJpbmF0b3JOb2RlcyIsIm5vZGVzVmVyaWZpZWQiLCJub2Rlc0xlbmd0aCIsImxlbmd0aCIsImNvbWJpbmF0b3JOb2Rlc0xlbmd0aCIsImV2ZXJ5IiwiaW5kZXgiLCJtYXRjaGVzIiwibWF0Y2giLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiY29tYmluYXRvclJ1bGVOYW1lIiwiQVJHVU1FTlRfUlVMRV9OQU1FIiwiYXJndW1lbnROb2RlIiwiY29tYmluYXRvckFyZ3VtZW50Tm9kZSIsImFyZ3VtZW50Tm9kZVZlcmlmaWVkIiwidmVyaWZ5QXJndW1lbnROb2RlIiwiTUVUQV9BUkdVTUVOVF9SVUxFX05BTUUiLCJtZXRhQXJndW1lbnROb2RlIiwiY29tYmluYXRvck1ldGFhcmd1bWVudE5vZGUiLCJtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQiLCJ2ZXJpZnlNZXRhYXJndW1lbnROb2RlIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJjb21iaW5hdG9yQ2hpbGROb2RlcyIsInRlcm1Ob2RlIiwiYXJndW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJlcnJvciIsInR5cGVzIiwidGVybVZlcmlmaWVkIiwidmVyaWZ5VGVybSIsImZpcnN0VHlwZSIsImZpcnN0IiwidGVybVR5cGUiLCJ0eXBlTm9kZSIsInR5cGVOYW1lIiwidHlwZU5hbWVGcm9tVHlwZU5vZGUiLCJ0eXBlIiwiT0JKRUNUX1RZUEVfTkFNRSIsIm9iamVjdFR5cGUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJzdGF0ZW1lbnRUeXBlRXF1YWxUb09yU3ViVHlwZU9mVHlwZSIsImlzRXF1YWxUb09yU3ViVHlwZU9mIiwibWV0YUFyZ3VtZW50U3RyaW5nIiwiY29tYmluYXRvck1ldGFUWXBlTm9kZSIsInRlcm1pbmFsTm9kZUNvbnRlbnQiLCJnZXRDb250ZW50IiwidGVybWluYWxOb2RlQ29udGVudFN0YXRlbWVudE1ldGFUeXBlIiwiU1RBVEVNRU5UX01FVEFfVFlQRSIsImNvbWJpbmF0b3JNZXRhYXJndW1lbnRTdHJpbmciLCJzdGFydCIsIk1BWElNVU1fSU5ERVhFU19MRU5HVEgiLCJzbGljZSIsInJlZHVjZSIsInByb29mU3RlcCIsImZyb21Qcm9vZlN0ZXAiLCJwdXNoIl0sIm1hcHBpbmdzIjoi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
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRXF1YWxpdHkgZnJvbSBcIi4uL2VxdWFsaXR5XCI7XG5pbXBvcnQgdmVyaWZ5VGVybSBmcm9tIFwiLi4vdmVyaWZ5L3Rlcm1cIjtcbmltcG9ydCBicmFja2V0ZWRDb21iaW5hdG9yIGZyb20gXCIuLi9vY21iaW5hdG9yL2JyYWNrZXRlZFwiO1xuaW1wb3J0IHZlcmlmeVR5cGVBc3NlcnRpb24gZnJvbSBcIi4uL3ZlcmlmeS9hc3NlcnRpb24vdHlwZVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG9iamVjdFR5cGUgfSBmcm9tIFwiLi4vdHlwZVwiO1xuaW1wb3J0IHsgT0JKRUNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IFNUQVRFTUVOVF9NRVRBX1RZUEUgfSBmcm9tIFwiLi4vbWV0YVR5cGVzXCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIHR5cGVOYW1lRnJvbVR5cGVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgQVJHVU1FTlRfUlVMRV9OQU1FLCBNRVRBX0FSR1VNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuLi9ydWxlTmFtZXNcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hcmd1bWVudC90ZXJtIVwiKSxcbiAgICAgIHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXJndW1lbnQvdHlwZSFcIiksXG4gICAgICBtZXRhVHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhQXJndW1lbnQvbWV0YVR5cGUhL0BtZXRhLXR5cGVcIiksXG4gICAgICBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YUFyZ3VtZW50L3N0YXRlbWVudCFcIiksXG4gICAgICB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC90eXBlQXNzZXJ0aW9uIVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2VydGlvbnMsIGRlcml2ZWQsIGNvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29udGV4dC5iZWdpbihzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoIXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMgPSB2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcnMoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZCA9IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzOyAgLy8vXG4gIH1cblxuICBpZiAoIXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24gPSB2ZXJpZnlTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24oc3RhdGVtZW50Tm9kZSwgYXNzZXJ0aW9ucywgZGVyaXZlZCwgY29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZCA9IHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uOyAvLy9cbiAgfVxuXG4gIGlmICghc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkgPSB2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5KHN0YXRlbWVudE5vZGUsIGRlcml2ZWQsIGNvbnRleHQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHk7ICAvL1xuICB9XG5cbiAgc3RhdGVtZW50VmVyaWZpZWQgP1xuICAgIGNvbnRleHQuY29tcGxldGUoc3RhdGVtZW50Tm9kZSkgOlxuICAgICAgY29udGV4dC5oYWx0KHN0YXRlbWVudE5vZGUpO1xuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3IsIGNvbnRleHQpIHtcbiAgY29uc3QgY29tYmluYXRvclN0YXRlbWVudE5vZGUgPSBjb21iaW5hdG9yLmdldFN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgbm9kZSA9IHN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgY29tYmluYXRvck5vZGUgPSBjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgIG5vZGVWZXJpZmllZCA9IHZlcmlmeU5vZGUobm9kZSwgY29tYmluYXRvck5vZGUsIGNvbnRleHQpLFxuICAgICAgICBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yID0gbm9kZVZlcmlmaWVkOyAgLy8vXG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3I7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9ycyhzdGF0ZW1lbnROb2RlLCBjb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycyA9IGZhbHNlO1xuXG4gIGxldCBjb21iaW5hdG9ycyA9IGNvbnRleHQuZ2V0Q29tYmluYXRvcnMoKTtcblxuICBjb21iaW5hdG9ycyA9IFsgLy8vXG4gICAgYnJhY2tldGVkQ29tYmluYXRvcixcbiAgICAuLi5jb21iaW5hdG9yc1xuICBdO1xuXG4gIGNvbnN0IGNvbWJpbmF0b3IgPSBjb21iaW5hdG9ycy5maW5kKChjb21iaW5hdG9yKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciA9IHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3IsIGNvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkgfHwgbnVsbDtcblxuICBpZiAoY29tYmluYXRvciAhPT0gbnVsbCkge1xuICAgIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycztcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2VydGlvbnMsIGRlcml2ZWQsIGNvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3QgdHlwZUFzc2VydGlvbk5vZGUgPSB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICh0eXBlQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeVR5cGVBc3NlcnRpb24odHlwZUFzc2VydGlvbk5vZGUsIGFzc2VydGlvbnMsIGRlcml2ZWQsIGNvbnRleHQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24gPSB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQ7IC8vL1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5KHN0YXRlbWVudE5vZGUsIGRlcml2ZWQsIGNvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IGZhbHNlO1xuXG4gIGNvbnN0IGVxdWFsaXR5ID0gRXF1YWxpdHkuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgaWYgKGVxdWFsaXR5ICE9PSBudWxsKSB7XG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5ID0gdHJ1ZTsgLy8vXG5cbiAgICBpZiAoZGVyaXZlZCkge1xuICAgICAgY29uc3QgZXF1YWxpdGllcyA9IGNvbnRleHQuZ2V0RXF1YWxpdGllcygpO1xuXG4gICAgICBpZiAoZXF1YWxpdGllcyAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBlcXVhbGl0eUVxdWF0ZXMgPSBlcXVhbGl0eS5lcXVhdGUoZXF1YWxpdGllcywgY29udGV4dCk7XG5cbiAgICAgICAgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5ID0gZXF1YWxpdHlFcXVhdGVzOyAvLy9cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5O1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlOb2RlKG5vZGUsIGNvbWJpbmF0b3JOb2RlLCBjb250ZXh0KSB7XG4gIGxldCBub2RlVmVyaWZpZWQ7XG5cbiAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgY29tYmluYXRvck5vZGVUZXJtaW5hbE5vZGUgPSBjb21iaW5hdG9yTm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gIGlmIChub2RlVGVybWluYWxOb2RlID09PSBjb21iaW5hdG9yTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgICBjb21iaW5hdG9yVGVybWluYWxOb2RlID0gY29tYmluYXRvck5vZGUsICAvLy9cbiAgICAgICAgICAgIHRlcm1pbmFsTm9kZVZlcmlmaWVkID0gdmVyaWZ5VGVybWluYWxOb2RlKHRlcm1pbmFsTm9kZSwgY29tYmluYXRvclRlcm1pbmFsTm9kZSwgY29udGV4dCk7XG5cbiAgICAgIG5vZGVWZXJpZmllZCA9IHRlcm1pbmFsTm9kZVZlcmlmaWVkOyAgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGUsIC8vL1xuICAgICAgICAgICAgY29tYmluYXRvck5vblRlcm1pbmFsTm9kZSA9IGNvbWJpbmF0b3JOb2RlLCAgLy8vXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGUsIGNvbWJpbmF0b3JOb25UZXJtaW5hbE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICBub2RlVmVyaWZpZWQgPSBub25UZXJtaW5hbE5vZGVWZXJpZmllZDsgLy8vXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5vZGVWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5Tm9kZXMobm9kZXMsIGNvbWJpbmF0b3JOb2RlcywgY29udGV4dCkge1xuICBsZXQgbm9kZXNWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVzTGVuZ3RoID0gbm9kZXMubGVuZ3RoLFxuICAgICAgICBjb21iaW5hdG9yTm9kZXNMZW5ndGggPSBjb21iaW5hdG9yTm9kZXMubGVuZ3RoO1xuXG4gIGlmIChub2Rlc0xlbmd0aCA9PT0gY29tYmluYXRvck5vZGVzTGVuZ3RoKSB7XG4gICAgbm9kZXNWZXJpZmllZCA9IG5vZGVzLmV2ZXJ5KChub2RlLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgY29tYmluYXRvck5vZGUgPSBjb21iaW5hdG9yTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgbm9kZVZlcmlmaWVkID0gdmVyaWZ5Tm9kZShub2RlLCBjb21iaW5hdG9yTm9kZSwgY29udGV4dCk7XG5cbiAgICAgIGlmIChub2RlVmVyaWZpZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbm9kZXNWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5VGVybWluYWxOb2RlKHRlcm1pbmFsTm9kZSwgY29tYmluYXRvclRlcm1pbmFsTm9kZSwgY29udGV4dCkge1xuICBsZXQgdGVybWluYWxOb2RlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBtYXRjaGVzID0gdGVybWluYWxOb2RlLm1hdGNoKGNvbWJpbmF0b3JUZXJtaW5hbE5vZGUpO1xuXG4gIGlmIChtYXRjaGVzKSB7XG4gICAgdGVybWluYWxOb2RlVmVyaWZpZWQgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHRlcm1pbmFsTm9kZVZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBjb21iaW5hdG9yTm9uVGVybWluYWxOb2RlLCBjb250ZXh0KSB7XG4gIGxldCBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksIC8vL1xuICAgICAgICBjb21iaW5hdG9yUnVsZU5hbWUgPSBjb21iaW5hdG9yTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7IC8vL1xuXG4gIGlmIChydWxlTmFtZSA9PT0gY29tYmluYXRvclJ1bGVOYW1lKSB7XG4gICAgc3dpdGNoIChydWxlTmFtZSkge1xuICAgICAgY2FzZSBBUkdVTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgICAgY29uc3QgYXJndW1lbnROb2RlID0gbm9uVGVybWluYWxOb2RlLCAvLy9cbiAgICAgICAgICAgICAgY29tYmluYXRvckFyZ3VtZW50Tm9kZSA9IGNvbWJpbmF0b3JOb25UZXJtaW5hbE5vZGUsIC8vL1xuICAgICAgICAgICAgICBhcmd1bWVudE5vZGVWZXJpZmllZCA9IHZlcmlmeUFyZ3VtZW50Tm9kZShhcmd1bWVudE5vZGUsIGNvbWJpbmF0b3JBcmd1bWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gYXJndW1lbnROb2RlVmVyaWZpZWQ7IC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIE1FVEFfQVJHVU1FTlRfUlVMRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IG1ldGFBcmd1bWVudE5vZGUgPSBub25UZXJtaW5hbE5vZGUsIC8vL1xuICAgICAgICAgICAgICBjb21iaW5hdG9yTWV0YWFyZ3VtZW50Tm9kZSA9IGNvbWJpbmF0b3JOb25UZXJtaW5hbE5vZGUsIC8vL1xuICAgICAgICAgICAgICBtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQgPSB2ZXJpZnlNZXRhYXJndW1lbnROb2RlKG1ldGFBcmd1bWVudE5vZGUsIGNvbWJpbmF0b3JNZXRhYXJndW1lbnROb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IG1ldGFBcmd1bWVudE5vZGVWZXJpZmllZDsgLy8vXG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgIGNvbWJpbmF0b3JDaGlsZE5vZGVzID0gY29tYmluYXRvck5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgIG5vZGVzID0gY2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgICAgIGNvbWJpbmF0b3JOb2RlcyA9IGNvbWJpbmF0b3JDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgbm9kZXNWZXJpZmllZCA9IHZlcmlmeU5vZGVzKG5vZGVzLCBjb21iaW5hdG9yTm9kZXMsIGNvbnRleHQpO1xuXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gbm9kZXNWZXJpZmllZDsgLy8vXG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBcmd1bWVudE5vZGUoYXJndW1lbnROb2RlLCBjb21iaW5hdG9yQXJndW1lbnROb2RlLCBjb250ZXh0KSB7XG4gIGxldCBhcmd1bWVudE5vZGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeShhcmd1bWVudE5vZGUpO1xuXG4gIGlmICh0ZXJtTm9kZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IGFyZ3VtZW50U3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcoYXJndW1lbnROb2RlKTtcblxuICAgIGNvbnRleHQuZXJyb3IoYFRoZSAke2FyZ3VtZW50U3RyaW5nfSBhcmd1bWVudCBzaG91bGQgYmUgYSB0ZXJtLCBub3QgYSB0eXBlYCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdHlwZXMgPSBbXSxcbiAgICAgICAgICB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0eXBlcywgY29udGV4dCk7XG5cbiAgICBpZiAodGVybVZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBmaXJzdFR5cGUgPSBmaXJzdCh0eXBlcyksXG4gICAgICAgICAgICB0ZXJtVHlwZSA9IGZpcnN0VHlwZSwgLy8vXG4gICAgICAgICAgICB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkoY29tYmluYXRvckFyZ3VtZW50Tm9kZSksXG4gICAgICAgICAgICB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKSxcbiAgICAgICAgICAgIHR5cGUgPSAodHlwZU5hbWUgPT09IE9CSkVDVF9UWVBFX05BTUUpID9cbiAgICAgICAgICAgICAgICAgICAgIG9iamVjdFR5cGUgOiAgLy8vXG4gICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKSxcbiAgICAgICAgICAgIHN0YXRlbWVudFR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZUeXBlID0gdGVybVR5cGUuaXNFcXVhbFRvT3JTdWJUeXBlT2YodHlwZSk7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRUeXBlRXF1YWxUb09yU3ViVHlwZU9mVHlwZSkge1xuICAgICAgICBhcmd1bWVudE5vZGVWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGFyZ3VtZW50Tm9kZVZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlNZXRhYXJndW1lbnROb2RlKG1ldGFBcmd1bWVudE5vZGUsIGNvbWJpbmF0b3JNZXRhYXJndW1lbnROb2RlLCBjb250ZXh0KSB7XG4gIGxldCBtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KG1ldGFBcmd1bWVudE5vZGUpO1xuXG4gIGlmIChzdGF0ZW1lbnROb2RlID09PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YUFyZ3VtZW50U3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobWV0YUFyZ3VtZW50Tm9kZSk7XG5cbiAgICBjb250ZXh0LmVycm9yKGBUaGUgJyR7bWV0YUFyZ3VtZW50U3RyaW5nfScgbWV0YS1hcmd1bWVudCBzaG91bGQgYmUgYSBzdGF0ZW1lbnQsIG5vdCBhIG1ldGEtdHlwZS5gKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgICAgYXNzZXJ0aW9ucyA9IFtdLFxuICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2VydGlvbnMsIGRlcml2ZWQsIGNvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBjb21iaW5hdG9yTWV0YVRZcGVOb2RlID0gbWV0YVR5cGVOb2RlUXVlcnkoY29tYmluYXRvck1ldGFhcmd1bWVudE5vZGUpO1xuXG4gICAgICBpZiAoY29tYmluYXRvck1ldGFUWXBlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBjb21iaW5hdG9yTWV0YVRZcGVOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIHRlcm1pbmFsTm9kZUNvbnRlbnQgPSB0ZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgICAgICB0ZXJtaW5hbE5vZGVDb250ZW50U3RhdGVtZW50TWV0YVR5cGUgPSAodGVybWluYWxOb2RlQ29udGVudCA9PT0gU1RBVEVNRU5UX01FVEFfVFlQRSk7XG5cbiAgICAgICAgbWV0YUFyZ3VtZW50Tm9kZVZlcmlmaWVkID0gdGVybWluYWxOb2RlQ29udGVudFN0YXRlbWVudE1ldGFUeXBlOyAgLy8vXG4gICAgICB9XG5cbiAgICAgIGlmICghbWV0YUFyZ3VtZW50Tm9kZVZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IGNvbWJpbmF0b3JNZXRhYXJndW1lbnRTdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhjb21iaW5hdG9yTWV0YWFyZ3VtZW50Tm9kZSk7XG5cbiAgICAgICAgY29udGV4dC5lcnJvcihgVGhlICcke2NvbWJpbmF0b3JNZXRhYXJndW1lbnRTdHJpbmd9JyBjb21iaW5hdG9yIG1ldGEtYXJndW1lbnQgc2hvdWxkIGJlIHRoZSAnU3RhdGVtZW50JyBtZXRhLXR5cGUuYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1ldGFBcmd1bWVudE5vZGVWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlTdGF0ZW1lbnQiLCJ2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvciIsInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ0eXBlTm9kZVF1ZXJ5IiwibWV0YVR5cGVOb2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJ0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZSIsImFzc2VydGlvbnMiLCJkZXJpdmVkIiwiY29udGV4dCIsInN0YXRlbWVudFZlcmlmaWVkIiwiYmVnaW4iLCJzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycyIsInZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9ycyIsInN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uIiwic3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5IiwidmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eSIsImNvbXBsZXRlIiwiaGFsdCIsImNvbWJpbmF0b3IiLCJjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJub2RlIiwiY29tYmluYXRvck5vZGUiLCJub2RlVmVyaWZpZWQiLCJ2ZXJpZnlOb2RlIiwic3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciIsImNvbWJpbmF0b3JzIiwiZ2V0Q29tYmluYXRvcnMiLCJicmFja2V0ZWRDb21iaW5hdG9yIiwiZmluZCIsInR5cGVBc3NlcnRpb25Ob2RlIiwidHlwZUFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5VHlwZUFzc2VydGlvbiIsImVxdWFsaXR5IiwiRXF1YWxpdHkiLCJmcm9tU3RhdGVtZW50Tm9kZSIsImVxdWFsaXRpZXMiLCJnZXRFcXVhbGl0aWVzIiwiZXF1YWxpdHlFcXVhdGVzIiwiZXF1YXRlIiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwiY29tYmluYXRvck5vZGVUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJjb21iaW5hdG9yVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJjb21iaW5hdG9yTm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlVmVyaWZpZWQiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiLCJ2ZXJpZnlOb2RlcyIsIm5vZGVzIiwiY29tYmluYXRvck5vZGVzIiwibm9kZXNWZXJpZmllZCIsIm5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwiY29tYmluYXRvck5vZGVzTGVuZ3RoIiwiZXZlcnkiLCJpbmRleCIsIm1hdGNoZXMiLCJtYXRjaCIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJjb21iaW5hdG9yUnVsZU5hbWUiLCJBUkdVTUVOVF9SVUxFX05BTUUiLCJhcmd1bWVudE5vZGUiLCJjb21iaW5hdG9yQXJndW1lbnROb2RlIiwiYXJndW1lbnROb2RlVmVyaWZpZWQiLCJ2ZXJpZnlBcmd1bWVudE5vZGUiLCJNRVRBX0FSR1VNRU5UX1JVTEVfTkFNRSIsIm1ldGFBcmd1bWVudE5vZGUiLCJjb21iaW5hdG9yTWV0YWFyZ3VtZW50Tm9kZSIsIm1ldGFBcmd1bWVudE5vZGVWZXJpZmllZCIsInZlcmlmeU1ldGFhcmd1bWVudE5vZGUiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsImNvbWJpbmF0b3JDaGlsZE5vZGVzIiwidGVybU5vZGUiLCJhcmd1bWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsImVycm9yIiwidHlwZXMiLCJ0ZXJtVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtIiwiZmlyc3RUeXBlIiwiZmlyc3QiLCJ0ZXJtVHlwZSIsInR5cGVOb2RlIiwidHlwZU5hbWUiLCJ0eXBlTmFtZUZyb21UeXBlTm9kZSIsInR5cGUiLCJPQkpFQ1RfVFlQRV9OQU1FIiwib2JqZWN0VHlwZSIsImZpbmRUeXBlQnlUeXBlTmFtZSIsInN0YXRlbWVudFR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZUeXBlIiwiaXNFcXVhbFRvT3JTdWJUeXBlT2YiLCJtZXRhQXJndW1lbnRTdHJpbmciLCJjb21iaW5hdG9yTWV0YVRZcGVOb2RlIiwidGVybWluYWxOb2RlQ29udGVudCIsImdldENvbnRlbnQiLCJ0ZXJtaW5hbE5vZGVDb250ZW50U3RhdGVtZW50TWV0YVR5cGUiLCJTVEFURU1FTlRfTUVUQV9UWVBFIiwiY29tYmluYXRvck1ldGFhcmd1bWVudFN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBb0JBLE9BNEJDO2VBNUJ1QkE7O0lBOEJSQyxnQ0FBZ0M7ZUFBaENBOzs7NkRBaERLO3lEQUNFOzhEQUNTO3lEQUNBO3FCQUVWO3FCQUNLO3lCQUNNO3lCQUNHO3FCQUNZO3lCQUNZOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVELElBQU1DLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyxvQkFDMUJDLGdCQUFnQkQsSUFBQUEsZ0JBQVMsRUFBQyxvQkFDMUJFLG9CQUFvQkYsSUFBQUEsZ0JBQVMsRUFBQyx1Q0FDOUJHLHFCQUFxQkgsSUFBQUEsZ0JBQVMsRUFBQyw2QkFDL0JJLHlCQUF5QkosSUFBQUEsZ0JBQVMsRUFBQztBQUUxQixTQUFTSCxnQkFBZ0JRLGFBQWEsRUFBRUMsVUFBVSxFQUFFQyxPQUFPLEVBQUVDLE9BQU8sRUFBRTtJQUNuRixJQUFJQyxvQkFBb0IsS0FBSztJQUU3QkQsUUFBUUUsS0FBSyxDQUFDTDtJQUVkLElBQUksQ0FBQ0ksbUJBQW1CO1FBQ3RCLElBQU1FLHNDQUFzQ0Msa0NBQWtDUCxlQUFlRztRQUU3RkMsb0JBQW9CRSxxQ0FBc0MsR0FBRztJQUMvRCxDQUFDO0lBRUQsSUFBSSxDQUFDRixtQkFBbUI7UUFDdEIsSUFBTUksbUNBQW1DQywrQkFBK0JULGVBQWVDLFlBQVlDLFNBQVNDO1FBRTVHQyxvQkFBb0JJLGtDQUFrQyxHQUFHO0lBQzNELENBQUM7SUFFRCxJQUFJLENBQUNKLG1CQUFtQjtRQUN0QixJQUFNTSw4QkFBOEJDLDBCQUEwQlgsZUFBZUUsU0FBU0M7UUFFdEZDLG9CQUFvQk0sNkJBQThCLEVBQUU7SUFDdEQsQ0FBQztJQUVETixvQkFDRUQsUUFBUVMsUUFBUSxDQUFDWixpQkFDZkcsUUFBUVUsSUFBSSxDQUFDYixjQUFjO0lBRS9CLE9BQU9JO0FBQ1Q7QUFFTyxTQUFTWCxpQ0FBaUNPLGFBQWEsRUFBRWMsVUFBVSxFQUFFWCxPQUFPLEVBQUU7SUFDbkYsSUFBTVksMEJBQTBCRCxXQUFXRSxnQkFBZ0IsSUFDckRDLE9BQU9qQixlQUNQa0IsaUJBQWlCSCx5QkFDakJJLGVBQWVDLFdBQVdILE1BQU1DLGdCQUFnQmYsVUFDaERrQixxQ0FBcUNGLGNBQWUsR0FBRztJQUU3RCxPQUFPRTtBQUNUO0FBRUEsU0FBU2Qsa0NBQWtDUCxhQUFhLEVBQUVHLE9BQU8sRUFBRTtJQUNqRSxJQUFJRyxzQ0FBc0MsS0FBSztJQUUvQyxJQUFJZ0IsY0FBY25CLFFBQVFvQixjQUFjO0lBRXhDRCxjQUFjO1FBQ1pFLGtCQUFtQjtLQUVwQixDQUhhLE9BRVosbUJBQUdGO0lBR0wsSUFBTVIsYUFBYVEsWUFBWUcsSUFBSSxDQUFDLFNBQUNYLFlBQWU7UUFDNUMsSUFBTU8scUNBQXFDNUIsaUNBQWlDTyxlQUFlYyxZQUFZWDtRQUV2RyxJQUFJa0Isb0NBQW9DO1lBQ3RDLE9BQU8sSUFBSTtRQUNiLENBQUM7SUFDSCxNQUFNLElBQUk7SUFFaEIsSUFBSVAsZUFBZSxJQUFJLEVBQUU7UUFDdkJSLHNDQUFzQyxJQUFJO0lBQzVDLENBQUM7SUFFRCxPQUFPQTtBQUNUO0FBRUEsU0FBU0csK0JBQStCVCxhQUFhLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxFQUFFQyxPQUFPLEVBQUU7SUFDbkYsSUFBSUssbUNBQW1DLEtBQUs7SUFFNUMsSUFBTWtCLG9CQUFvQjNCLHVCQUF1QkM7SUFFakQsSUFBSTBCLHNCQUFzQixJQUFJLEVBQUU7UUFDOUIsSUFBTUMsd0JBQXdCQyxJQUFBQSxhQUFtQixFQUFDRixtQkFBbUJ6QixZQUFZQyxTQUFTQztRQUUxRkssbUNBQW1DbUIsdUJBQXVCLEdBQUc7SUFDL0QsQ0FBQztJQUVELE9BQU9uQjtBQUNUO0FBRUEsU0FBU0csMEJBQTBCWCxhQUFhLEVBQUVFLE9BQU8sRUFBRUMsT0FBTyxFQUFFO0lBQ2xFLElBQUlPLDhCQUE4QixLQUFLO0lBRXZDLElBQU1tQixXQUFXQyxpQkFBUSxDQUFDQyxpQkFBaUIsQ0FBQy9CLGVBQWVHO0lBRTNELElBQUkwQixhQUFhLElBQUksRUFBRTtRQUNyQm5CLDhCQUE4QixJQUFJLEVBQUUsR0FBRztRQUV2QyxJQUFJUixTQUFTO1lBQ1gsSUFBTThCLGFBQWE3QixRQUFROEIsYUFBYTtZQUV4QyxJQUFJRCxlQUFlLElBQUksRUFBRTtnQkFDdkIsSUFBTUUsa0JBQWtCTCxTQUFTTSxNQUFNLENBQUNILFlBQVk3QjtnQkFFcERPLDhCQUE4QndCLGlCQUFpQixHQUFHO1lBQ3BELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU94QjtBQUNUO0FBRUEsU0FBU1UsV0FBV0gsSUFBSSxFQUFFQyxjQUFjLEVBQUVmLE9BQU8sRUFBRTtJQUNqRCxJQUFJZ0I7SUFFSixJQUFNaUIsbUJBQW1CbkIsS0FBS29CLGNBQWMsSUFDdENDLDZCQUE2QnBCLGVBQWVtQixjQUFjO0lBRWhFLElBQUlELHFCQUFxQkUsNEJBQTRCO1FBQ25ELElBQUlGLGtCQUFrQjtZQUNwQixJQUFNRyxlQUFldEIsTUFDZnVCLHlCQUF5QnRCLGdCQUN6QnVCLHVCQUF1QkMsbUJBQW1CSCxjQUFjQyx3QkFBd0JyQztZQUV0RmdCLGVBQWVzQixzQkFBdUIsR0FBRztRQUMzQyxPQUFPO1lBQ0wsSUFBTUUsa0JBQWtCMUIsTUFDbEIyQiw0QkFBNEIxQixnQkFDNUIyQiwwQkFBMEJDLHNCQUFzQkgsaUJBQWlCQywyQkFBMkJ6QztZQUVsR2dCLGVBQWUwQix5QkFBeUIsR0FBRztRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8xQjtBQUNUO0FBRUEsU0FBUzRCLFlBQVlDLEtBQUssRUFBRUMsZUFBZSxFQUFFOUMsT0FBTyxFQUFFO0lBQ3BELElBQUkrQyxnQkFBZ0IsS0FBSztJQUV6QixJQUFNQyxjQUFjSCxNQUFNSSxNQUFNLEVBQzFCQyx3QkFBd0JKLGdCQUFnQkcsTUFBTTtJQUVwRCxJQUFJRCxnQkFBZ0JFLHVCQUF1QjtRQUN6Q0gsZ0JBQWdCRixNQUFNTSxLQUFLLENBQUMsU0FBQ3JDLE1BQU1zQyxPQUFVO1lBQzNDLElBQU1yQyxpQkFBaUIrQixlQUFlLENBQUNNLE1BQU0sRUFDdkNwQyxlQUFlQyxXQUFXSCxNQUFNQyxnQkFBZ0JmO1lBRXRELElBQUlnQixjQUFjO2dCQUNoQixPQUFPLElBQUk7WUFDYixDQUFDO1FBQ0g7SUFDRixDQUFDO0lBRUQsT0FBTytCO0FBQ1Q7QUFFQSxTQUFTUixtQkFBbUJILFlBQVksRUFBRUMsc0JBQXNCLEVBQUVyQyxPQUFPLEVBQUU7SUFDekUsSUFBSXNDLHVCQUF1QixLQUFLO0lBRWhDLElBQU1lLFVBQVVqQixhQUFha0IsS0FBSyxDQUFDakI7SUFFbkMsSUFBSWdCLFNBQVM7UUFDWGYsdUJBQXVCLElBQUk7SUFDN0IsQ0FBQztJQUVELE9BQU9BO0FBQ1Q7QUFFQSxTQUFTSyxzQkFBc0JILGVBQWUsRUFBRUMseUJBQXlCLEVBQUV6QyxPQUFPLEVBQUU7SUFDbEYsSUFBSTBDLDBCQUEwQixLQUFLO0lBRW5DLElBQU1hLFdBQVdmLGdCQUFnQmdCLFdBQVcsSUFDdENDLHFCQUFxQmhCLDBCQUEwQmUsV0FBVyxJQUFJLEdBQUc7SUFFdkUsSUFBSUQsYUFBYUUsb0JBQW9CO1FBQ25DLE9BQVFGO1lBQ04sS0FBS0csNkJBQWtCO2dCQUFFO29CQUN2QixJQUFNQyxlQUFlbkIsaUJBQ2ZvQix5QkFBeUJuQiwyQkFDekJvQix1QkFBdUJDLG1CQUFtQkgsY0FBY0Msd0JBQXdCNUQ7b0JBRXRGMEMsMEJBQTBCbUIsc0JBQXNCLEdBQUc7b0JBRW5ELEtBQU07Z0JBQ1I7WUFFQSxLQUFLRSxrQ0FBdUI7Z0JBQUU7b0JBQzVCLElBQU1DLG1CQUFtQnhCLGlCQUNuQnlCLDZCQUE2QnhCLDJCQUM3QnlCLDJCQUEyQkMsdUJBQXVCSCxrQkFBa0JDLDRCQUE0QmpFO29CQUV0RzBDLDBCQUEwQndCLDBCQUEwQixHQUFHO29CQUV2RCxLQUFNO2dCQUNSO1lBRUE7Z0JBQVM7b0JBQ1AsSUFBTUUsYUFBYTVCLGdCQUFnQjZCLGFBQWEsSUFDMUNDLHVCQUF1QjdCLDBCQUEwQjRCLGFBQWEsSUFDOUR4QixRQUFRdUIsWUFDUnRCLGtCQUFrQndCLHNCQUNsQnZCLGdCQUFnQkgsWUFBWUMsT0FBT0MsaUJBQWlCOUM7b0JBRTFEMEMsMEJBQTBCSyxlQUFlLEdBQUc7b0JBRTVDLEtBQU07Z0JBQ1I7UUFDRjtJQUNGLENBQUM7SUFFRCxPQUFPTDtBQUNUO0FBRUEsU0FBU29CLG1CQUFtQkgsWUFBWSxFQUFFQyxzQkFBc0IsRUFBRTVELE9BQU8sRUFBRTtJQUN6RSxJQUFJNkQsdUJBQXVCLEtBQUs7SUFFaEMsSUFBTVUsV0FBV2hGLGNBQWNvRTtJQUUvQixJQUFJWSxhQUFhLElBQUksRUFBRTtRQUNyQixJQUFNQyxpQkFBaUJ4RSxRQUFReUUsWUFBWSxDQUFDZDtRQUU1QzNELFFBQVEwRSxLQUFLLENBQUMsQUFBQyxPQUFxQixPQUFmRixnQkFBZTtJQUN0QyxPQUFPO1FBQ0wsSUFBTUcsUUFBUSxFQUFFLEVBQ1ZDLGVBQWVDLElBQUFBLGFBQVUsRUFBQ04sVUFBVUksT0FBTzNFO1FBRWpELElBQUk0RSxjQUFjO1lBQ2hCLElBQU1FLFlBQVlDLElBQUFBLFlBQUssRUFBQ0osUUFDbEJLLFdBQVdGLFdBQ1hHLFdBQVd4RixjQUFjbUUseUJBQ3pCc0IsV0FBV0MsSUFBQUEsMkJBQW9CLEVBQUNGLFdBQ2hDRyxPQUFPLEFBQUNGLGFBQWFHLDJCQUFnQixHQUM1QkMsaUJBQVUsR0FDUnRGLFFBQVF1RixrQkFBa0IsQ0FBQ0wsU0FBUyxFQUMvQ00sc0NBQXNDUixTQUFTUyxvQkFBb0IsQ0FBQ0w7WUFFMUUsSUFBSUkscUNBQXFDO2dCQUN2QzNCLHVCQUF1QixJQUFJO1lBQzdCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU9BO0FBQ1Q7QUFFQSxTQUFTTSx1QkFBdUJILGdCQUFnQixFQUFFQywwQkFBMEIsRUFBRWpFLE9BQU8sRUFBRTtJQUNyRixJQUFJa0UsMkJBQTJCLEtBQUs7SUFFcEMsSUFBTXJFLGdCQUFnQkYsbUJBQW1CcUU7SUFFekMsSUFBSW5FLGtCQUFrQixJQUFJLEVBQUU7UUFDMUIsSUFBTTZGLHFCQUFxQjFGLFFBQVF5RSxZQUFZLENBQUNUO1FBRWhEaEUsUUFBUTBFLEtBQUssQ0FBQyxBQUFDLFFBQTBCLE9BQW5CZ0Isb0JBQW1CO0lBQzNDLE9BQU87UUFDTCxJQUFNM0YsVUFBVSxLQUFLLEVBQ2ZELGFBQWEsRUFBRSxFQUNmRyxvQkFBb0JaLGdCQUFnQlEsZUFBZUMsWUFBWUMsU0FBU0M7UUFFOUUsSUFBSUMsbUJBQW1CO1lBQ3JCLElBQU0wRix5QkFBeUJqRyxrQkFBa0J1RTtZQUVqRCxJQUFJMEIsMkJBQTJCLElBQUksRUFBRTtnQkFDbkMsSUFBTXZELGVBQWV1RCx3QkFDZkMsc0JBQXNCeEQsYUFBYXlELFVBQVUsSUFDN0NDLHVDQUF3Q0Ysd0JBQXdCRyw4QkFBbUI7Z0JBRXpGN0IsMkJBQTJCNEIsc0NBQXVDLEdBQUc7WUFDdkUsQ0FBQztZQUVELElBQUksQ0FBQzVCLDBCQUEwQjtnQkFDN0IsSUFBTThCLCtCQUErQmhHLFFBQVF5RSxZQUFZLENBQUNSO2dCQUUxRGpFLFFBQVEwRSxLQUFLLENBQUMsQUFBQyxRQUFvQyxPQUE3QnNCLDhCQUE2QjtZQUNyRCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPOUI7QUFDVCJ9
|
|
@@ -11,7 +11,6 @@ Object.defineProperty(exports, "default", {
|
|
|
11
11
|
var _combinator = /*#__PURE__*/ _interopRequireDefault(require("../combinator"));
|
|
12
12
|
var _term = /*#__PURE__*/ _interopRequireDefault(require("../verify/term"));
|
|
13
13
|
var _statement = /*#__PURE__*/ _interopRequireDefault(require("../verify/statement"));
|
|
14
|
-
var _string = require("../utilities/string");
|
|
15
14
|
var _query = require("../utilities/query");
|
|
16
15
|
var _ruleNames = require("../ruleNames");
|
|
17
16
|
function _interopRequireDefault(obj) {
|
|
@@ -22,7 +21,7 @@ function _interopRequireDefault(obj) {
|
|
|
22
21
|
function verifyStatementAsCombinator(statementNode, fileContext) {
|
|
23
22
|
var statementVerifiedAsCombinator = false;
|
|
24
23
|
fileContext.begin(statementNode);
|
|
25
|
-
var statementString =
|
|
24
|
+
var statementString = fileContext.nodeAsString(statementNode);
|
|
26
25
|
fileContext.debug("Verifying the '".concat(statementString, "' combinator...."));
|
|
27
26
|
var nonTerminalNode = statementNode, childNodes = nonTerminalNode.getChildNodes(), childNodesVerified = verifyChildNodes(childNodes, fileContext);
|
|
28
27
|
if (childNodesVerified) {
|
|
@@ -111,4 +110,4 @@ function verifyStatementNode(statementNode, fileContext) {
|
|
|
111
110
|
return statementNodeVerified;
|
|
112
111
|
}
|
|
113
112
|
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50QXNDb21iaW5hdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgQ29tYmluYXRvciBmcm9tIFwiLi4vY29tYmluYXRvclwiO1xuaW1wb3J0IHZlcmlmeVRlcm0gZnJvbSBcIi4uL3ZlcmlmeS90ZXJtXCI7XG5pbXBvcnQgdmVyaWZ5U3RhdGVtZW50IGZyb20gXCIuLi92ZXJpZnkvc3RhdGVtZW50XCI7XG5cbmltcG9ydCB7IG5vZGVBc1N0cmluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyB0eXBlTmFtZUZyb21UeXBlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IFRZUEVfUlVMRV9OQU1FLCBURVJNX1JVTEVfTkFNRSwgU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuLi9ydWxlTmFtZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzQ29tYmluYXRvciA9IGZhbHNlO1xuXG4gIGZpbGVDb250ZXh0LmJlZ2luKHN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICBmaWxlQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBjb21iaW5hdG9yLi4uLmApO1xuXG4gIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IHN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIGNoaWxkTm9kZXNWZXJpZmllZCA9IHZlcmlmeUNoaWxkTm9kZXMoY2hpbGROb2RlcywgZmlsZUNvbnRleHQpO1xuXG4gIGlmIChjaGlsZE5vZGVzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBjb21iaW5hdG9yID0gQ29tYmluYXRvci5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgIGZpbGVDb250ZXh0LmFkZENvbWJpbmF0b3IoY29tYmluYXRvcik7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzQ29tYmluYXRvciA9IHRydWU7XG4gIH1cblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0NvbWJpbmF0b3IpIHtcbiAgICBmaWxlQ29udGV4dC5pbmZvKGBWZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgY29tYmluYXRvci5gKTtcbiAgfVxuXG4gIHN0YXRlbWVudFZlcmlmaWVkQXNDb21iaW5hdG9yID9cbiAgICBmaWxlQ29udGV4dC5jb21wbGV0ZShzdGF0ZW1lbnROb2RlKSA6XG4gICAgICBmaWxlQ29udGV4dC5oYWx0KHN0YXRlbWVudE5vZGUpO1xuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzQ29tYmluYXRvcjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5Tm9kZShub2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgbm9kZVZlcmlmaWVkO1xuXG4gIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgdGVybWluYWxOb2RlVmVyaWZpZWQgPSB2ZXJpZnlUZXJtaW5hbE5vZGUodGVybWluYWxOb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICBub2RlVmVyaWZpZWQgPSB0ZXJtaW5hbE5vZGVWZXJpZmllZDsgIC8vL1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGUsIC8vL1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gdmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgbm9kZVZlcmlmaWVkID0gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7IC8vL1xuICB9XG5cbiAgcmV0dXJuIG5vZGVWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5Q2hpbGROb2RlcyhjaGlsZE5vZGVzLCBmaWxlQ29udGV4dCkge1xuICBjb25zdCBjaGlsZE5vZGVzVmVyaWZpZWQgPSBjaGlsZE5vZGVzLmV2ZXJ5KChjaGlsZE5vZGUpID0+IHtcbiAgICBjb25zdCBub2RlID0gY2hpbGROb2RlLCAvLy9cbiAgICAgICAgICBub2RlVmVyaWZpZWQgPSB2ZXJpZnlOb2RlKG5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIGlmIChub2RlVmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGNoaWxkTm9kZXNWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5VGVybWluYWxOb2RlKHRlcm1pbmFsTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgY29uc3QgdGVybWluYWxOb2RlVmVyaWZpZWQgPSB0cnVlO1xuXG4gIHJldHVybiB0ZXJtaW5hbE5vZGVWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkO1xuXG4gIGNvbnN0IHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7XG5cbiAgc3dpdGNoIChydWxlTmFtZSkge1xuICAgIGNhc2UgVFlQRV9SVUxFX05BTUU6IHtcbiAgICAgIGNvbnN0IHR5cGVOb2RlID0gbm9uVGVybWluYWxOb2RlLCAvLy9cbiAgICAgICAgICAgIHR5cGVOb2RlVmVyaWZpZWQgPSB2ZXJpZnlUeXBlTm9kZSh0eXBlTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHR5cGVOb2RlVmVyaWZpZWQ7IC8vL1xuXG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjYXNlIFRFUk1fUlVMRV9OQU1FOiB7XG4gICAgICBjb25zdCB0ZXJtTm9kZSA9IG5vblRlcm1pbmFsTm9kZSwgLy8vXG4gICAgICAgICAgICB0ZXJtTm9kZVZlcmlmaWVkID0gdmVyaWZ5VGVybU5vZGUodGVybU5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSB0ZXJtTm9kZVZlcmlmaWVkOyAvLy9cblxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2FzZSBTVEFURU1FTlRfUlVMRV9OQU1FOiB7XG4gICAgICBjb25zdCBzdGF0bWVudE5vZGUgPSBub25UZXJtaW5hbE5vZGUsIC8vL1xuICAgICAgICAgICAgc3RhdG1lbnROb2RlVmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnROb2RlKHN0YXRtZW50Tm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHN0YXRtZW50Tm9kZVZlcmlmaWVkOyAvLy9cblxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgZGVmYXVsdDoge1xuICAgICAgY29uc3QgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICBjaGlsZE5vZGVzVmVyaWZpZWQgPSB2ZXJpZnlDaGlsZE5vZGVzKGNoaWxkTm9kZXMsIGZpbGVDb250ZXh0KTtcblxuICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBjaGlsZE5vZGVzVmVyaWZpZWQ7IC8vL1xuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVR5cGVOb2RlKHR5cGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgdHlwZU5vZGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUpLFxuICAgICAgICB0eXBlUHJlc2VudCA9IGZpbGVDb250ZXh0LmlzVHlwZVByZXNlbnRCeVR5cGVOYW1lKHR5cGVOYW1lKTtcblxuICBpZiAoIXR5cGVQcmVzZW50KSB7XG4gICAgZmlsZUNvbnRleHQuZXJyb3IoYFRoZSB0eXBlICcke3R5cGVOYW1lfScgaXMgbWlzc2luZy5gKTtcbiAgfSBlbHNlIHtcbiAgICB0eXBlTm9kZVZlcmlmaWVkID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiB0eXBlTm9kZVZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlUZXJtTm9kZSh0ZXJtTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgY29uc3QgdHlwZXMgPSBbXSxcbiAgICAgICAgY29udGV4dCA9IGZpbGVDb250ZXh0LCAgLy8vXG4gICAgICAgIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm0odGVybU5vZGUsIHR5cGVzLCBjb250ZXh0KSxcbiAgICAgICAgdGVybU5vZGVWZXJpZmllZCA9IHRlcm1WZXJpZmllZDsgIC8vL1xuXG4gIHJldHVybiB0ZXJtTm9kZVZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGNvbnN0IGNvbnRleHQgPSBmaWxlQ29udGV4dCwgIC8vL1xuICAgICAgICBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgIGFzc2VydGlvbnMgPSBbXSxcbiAgICAgICAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzZXJ0aW9ucywgZGVyaXZlZCwgY29udGV4dCksXG4gICAgICAgIHN0YXRlbWVudE5vZGVWZXJpZmllZCA9IHN0YXRlbWVudFZlcmlmaWVkOyAgLy8vXG5cbiAgcmV0dXJuIHN0YXRlbWVudE5vZGVWZXJpZmllZDtcbn1cblxuIl0sIm5hbWVzIjpbInZlcmlmeVN0YXRlbWVudEFzQ29tYmluYXRvciIsInN0YXRlbWVudE5vZGUiLCJmaWxlQ29udGV4dCIsInN0YXRlbWVudFZlcmlmaWVkQXNDb21iaW5hdG9yIiwiYmVnaW4iLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJkZWJ1ZyIsIm5vblRlcm1pbmFsTm9kZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiY2hpbGROb2Rlc1ZlcmlmaWVkIiwidmVyaWZ5Q2hpbGROb2RlcyIsImNvbWJpbmF0b3IiLCJDb21iaW5hdG9yIiwiZnJvbVN0YXRlbWVudE5vZGUiLCJhZGRDb21iaW5hdG9yIiwiaW5mbyIsImNvbXBsZXRlIiwiaGFsdCIsInZlcmlmeU5vZGUiLCJub2RlIiwibm9kZVZlcmlmaWVkIiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGVWZXJpZmllZCIsInZlcmlmeU5vblRlcm1pbmFsTm9kZSIsImV2ZXJ5IiwiY2hpbGROb2RlIiwicnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsIlRZUEVfUlVMRV9OQU1FIiwidHlwZU5vZGUiLCJ0eXBlTm9kZVZlcmlmaWVkIiwidmVyaWZ5VHlwZU5vZGUiLCJURVJNX1JVTEVfTkFNRSIsInRlcm1Ob2RlIiwidGVybU5vZGVWZXJpZmllZCIsInZlcmlmeVRlcm1Ob2RlIiwiU1RBVEVNRU5UX1JVTEVfTkFNRSIsInN0YXRtZW50Tm9kZSIsInN0YXRtZW50Tm9kZVZlcmlmaWVkIiwidmVyaWZ5U3RhdGVtZW50Tm9kZSIsInR5cGVOYW1lIiwidHlwZU5hbWVGcm9tVHlwZU5vZGUiLCJ0eXBlUHJlc2VudCIsImlzVHlwZVByZXNlbnRCeVR5cGVOYW1lIiwiZXJyb3IiLCJ0eXBlcyIsImNvbnRleHQiLCJ0ZXJtVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtIiwiZGVyaXZlZCIsImFzc2VydGlvbnMiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVN0YXRlbWVudCIsInN0YXRlbWVudE5vZGVWZXJpZmllZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUF3QkE7OzsrREFSRDt5REFDQTs4REFDSztzQkFFQztxQkFDUTt5QkFDK0I7Ozs7OztBQUVyRCxTQUFTQSw0QkFBNEJDLGFBQWEsRUFBRUMsV0FBVyxFQUFFO0lBQzlFLElBQUlDLGdDQUFnQyxLQUFLO0lBRXpDRCxZQUFZRSxLQUFLLENBQUNIO0lBRWxCLElBQU1JLGtCQUFrQkMsSUFBQUEsb0JBQVksRUFBQ0w7SUFFckNDLFlBQVlLLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkYsaUJBQWdCO0lBRXBELElBQU1HLGtCQUFrQlAsZUFDbEJRLGFBQWFELGdCQUFnQkUsYUFBYSxJQUMxQ0MscUJBQXFCQyxpQkFBaUJILFlBQVlQO0lBRXhELElBQUlTLG9CQUFvQjtRQUN0QixJQUFNRSxhQUFhQyxtQkFBVSxDQUFDQyxpQkFBaUIsQ0FBQ2Q7UUFFaERDLFlBQVljLGFBQWEsQ0FBQ0g7UUFFMUJWLGdDQUFnQyxJQUFJO0lBQ3RDLENBQUM7SUFFRCxJQUFJQSwrQkFBK0I7UUFDakNELFlBQVllLElBQUksQ0FBQyxBQUFDLGlCQUFnQyxPQUFoQlosaUJBQWdCO0lBQ3BELENBQUM7SUFFREYsZ0NBQ0VELFlBQVlnQixRQUFRLENBQUNqQixpQkFDbkJDLFlBQVlpQixJQUFJLENBQUNsQixjQUFjO0lBRW5DLE9BQU9FO0FBQ1Q7QUFFQSxTQUFTaUIsV0FBV0MsSUFBSSxFQUFFbkIsV0FBVyxFQUFFO0lBQ3JDLElBQUlvQjtJQUVKLElBQU1DLG1CQUFtQkYsS0FBS0csY0FBYztJQUU1QyxJQUFJRCxrQkFBa0I7UUFDcEIsSUFBTUUsZUFBZUosTUFDZkssdUJBQXVCQyxtQkFBbUJGLGNBQWN2QjtRQUU5RG9CLGVBQWVJLHNCQUF1QixHQUFHO0lBQzNDLE9BQU87UUFDTCxJQUFN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
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50QXNDb21iaW5hdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgQ29tYmluYXRvciBmcm9tIFwiLi4vY29tYmluYXRvclwiO1xuaW1wb3J0IHZlcmlmeVRlcm0gZnJvbSBcIi4uL3ZlcmlmeS90ZXJtXCI7XG5pbXBvcnQgdmVyaWZ5U3RhdGVtZW50IGZyb20gXCIuLi92ZXJpZnkvc3RhdGVtZW50XCI7XG5cbmltcG9ydCB7IHR5cGVOYW1lRnJvbVR5cGVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgVFlQRV9SVUxFX05BTUUsIFRFUk1fUlVMRV9OQU1FLCBTVEFURU1FTlRfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc0NvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNDb21iaW5hdG9yID0gZmFsc2U7XG5cbiAgZmlsZUNvbnRleHQuYmVnaW4oc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gIGZpbGVDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIGNvbWJpbmF0b3IuLi4uYCk7XG5cbiAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgY2hpbGROb2Rlc1ZlcmlmaWVkID0gdmVyaWZ5Q2hpbGROb2RlcyhjaGlsZE5vZGVzLCBmaWxlQ29udGV4dCk7XG5cbiAgaWYgKGNoaWxkTm9kZXNWZXJpZmllZCkge1xuICAgIGNvbnN0IGNvbWJpbmF0b3IgPSBDb21iaW5hdG9yLmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgZmlsZUNvbnRleHQuYWRkQ29tYmluYXRvcihjb21iaW5hdG9yKTtcblxuICAgIHN0YXRlbWVudFZlcmlmaWVkQXNDb21iaW5hdG9yID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzQ29tYmluYXRvcikge1xuICAgIGZpbGVDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBjb21iaW5hdG9yLmApO1xuICB9XG5cbiAgc3RhdGVtZW50VmVyaWZpZWRBc0NvbWJpbmF0b3IgP1xuICAgIGZpbGVDb250ZXh0LmNvbXBsZXRlKHN0YXRlbWVudE5vZGUpIDpcbiAgICAgIGZpbGVDb250ZXh0LmhhbHQoc3RhdGVtZW50Tm9kZSk7XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNDb21iaW5hdG9yO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlOb2RlKG5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCBub2RlVmVyaWZpZWQ7XG5cbiAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICBpZiAobm9kZVRlcm1pbmFsTm9kZSkge1xuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICB0ZXJtaW5hbE5vZGVWZXJpZmllZCA9IHZlcmlmeVRlcm1pbmFsTm9kZSh0ZXJtaW5hbE5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIG5vZGVWZXJpZmllZCA9IHRlcm1pbmFsTm9kZVZlcmlmaWVkOyAgLy8vXG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZSwgLy8vXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSB2ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICBub2RlVmVyaWZpZWQgPSBub25UZXJtaW5hbE5vZGVWZXJpZmllZDsgLy8vXG4gIH1cblxuICByZXR1cm4gbm9kZVZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlDaGlsZE5vZGVzKGNoaWxkTm9kZXMsIGZpbGVDb250ZXh0KSB7XG4gIGNvbnN0IGNoaWxkTm9kZXNWZXJpZmllZCA9IGNoaWxkTm9kZXMuZXZlcnkoKGNoaWxkTm9kZSkgPT4ge1xuICAgIGNvbnN0IG5vZGUgPSBjaGlsZE5vZGUsIC8vL1xuICAgICAgICAgIG5vZGVWZXJpZmllZCA9IHZlcmlmeU5vZGUobm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgaWYgKG5vZGVWZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gY2hpbGROb2Rlc1ZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlUZXJtaW5hbE5vZGUodGVybWluYWxOb2RlLCBmaWxlQ29udGV4dCkge1xuICBjb25zdCB0ZXJtaW5hbE5vZGVWZXJpZmllZCA9IHRydWU7XG5cbiAgcmV0dXJuIHRlcm1pbmFsTm9kZVZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG5cbiAgY29uc3QgcnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKTtcblxuICBzd2l0Y2ggKHJ1bGVOYW1lKSB7XG4gICAgY2FzZSBUWVBFX1JVTEVfTkFNRToge1xuICAgICAgY29uc3QgdHlwZU5vZGUgPSBub25UZXJtaW5hbE5vZGUsIC8vL1xuICAgICAgICAgICAgdHlwZU5vZGVWZXJpZmllZCA9IHZlcmlmeVR5cGVOb2RlKHR5cGVOb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gdHlwZU5vZGVWZXJpZmllZDsgLy8vXG5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNhc2UgVEVSTV9SVUxFX05BTUU6IHtcbiAgICAgIGNvbnN0IHRlcm1Ob2RlID0gbm9uVGVybWluYWxOb2RlLCAvLy9cbiAgICAgICAgICAgIHRlcm1Ob2RlVmVyaWZpZWQgPSB2ZXJpZnlUZXJtTm9kZSh0ZXJtTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHRlcm1Ob2RlVmVyaWZpZWQ7IC8vL1xuXG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjYXNlIFNUQVRFTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgIGNvbnN0IHN0YXRtZW50Tm9kZSA9IG5vblRlcm1pbmFsTm9kZSwgLy8vXG4gICAgICAgICAgICBzdGF0bWVudE5vZGVWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudE5vZGUoc3RhdG1lbnROb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gc3RhdG1lbnROb2RlVmVyaWZpZWQ7IC8vL1xuXG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBkZWZhdWx0OiB7XG4gICAgICBjb25zdCBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgIGNoaWxkTm9kZXNWZXJpZmllZCA9IHZlcmlmeUNoaWxkTm9kZXMoY2hpbGROb2RlcywgZmlsZUNvbnRleHQpO1xuXG4gICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IGNoaWxkTm9kZXNWZXJpZmllZDsgLy8vXG5cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBub25UZXJtaW5hbE5vZGVWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5VHlwZU5vZGUodHlwZU5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCB0eXBlTm9kZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgdHlwZU5hbWUgPSB0eXBlTmFtZUZyb21UeXBlTm9kZSh0eXBlTm9kZSksXG4gICAgICAgIHR5cGVQcmVzZW50ID0gZmlsZUNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gIGlmICghdHlwZVByZXNlbnQpIHtcbiAgICBmaWxlQ29udGV4dC5lcnJvcihgVGhlIHR5cGUgJyR7dHlwZU5hbWV9JyBpcyBtaXNzaW5nLmApO1xuICB9IGVsc2Uge1xuICAgIHR5cGVOb2RlVmVyaWZpZWQgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHR5cGVOb2RlVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVRlcm1Ob2RlKHRlcm1Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBjb25zdCB0eXBlcyA9IFtdLFxuICAgICAgICBjb250ZXh0ID0gZmlsZUNvbnRleHQsICAvLy9cbiAgICAgICAgdGVybVZlcmlmaWVkID0gdmVyaWZ5VGVybSh0ZXJtTm9kZSwgdHlwZXMsIGNvbnRleHQpLFxuICAgICAgICB0ZXJtTm9kZVZlcmlmaWVkID0gdGVybVZlcmlmaWVkOyAgLy8vXG5cbiAgcmV0dXJuIHRlcm1Ob2RlVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgY29uc3QgY29udGV4dCA9IGZpbGVDb250ZXh0LCAgLy8vXG4gICAgICAgIGRlcml2ZWQgPSBmYWxzZSxcbiAgICAgICAgYXNzZXJ0aW9ucyA9IFtdLFxuICAgICAgICBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBhc3NlcnRpb25zLCBkZXJpdmVkLCBjb250ZXh0KSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZVZlcmlmaWVkID0gc3RhdGVtZW50VmVyaWZpZWQ7ICAvLy9cblxuICByZXR1cm4gc3RhdGVtZW50Tm9kZVZlcmlmaWVkO1xufVxuXG4iXSwibmFtZXMiOlsidmVyaWZ5U3RhdGVtZW50QXNDb21iaW5hdG9yIiwic3RhdGVtZW50Tm9kZSIsImZpbGVDb250ZXh0Iiwic3RhdGVtZW50VmVyaWZpZWRBc0NvbWJpbmF0b3IiLCJiZWdpbiIsInN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsImRlYnVnIiwibm9uVGVybWluYWxOb2RlIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJjaGlsZE5vZGVzVmVyaWZpZWQiLCJ2ZXJpZnlDaGlsZE5vZGVzIiwiY29tYmluYXRvciIsIkNvbWJpbmF0b3IiLCJmcm9tU3RhdGVtZW50Tm9kZSIsImFkZENvbWJpbmF0b3IiLCJpbmZvIiwiY29tcGxldGUiLCJoYWx0IiwidmVyaWZ5Tm9kZSIsIm5vZGUiLCJub2RlVmVyaWZpZWQiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGVWZXJpZmllZCIsInZlcmlmeVRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwiZXZlcnkiLCJjaGlsZE5vZGUiLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiVFlQRV9SVUxFX05BTUUiLCJ0eXBlTm9kZSIsInR5cGVOb2RlVmVyaWZpZWQiLCJ2ZXJpZnlUeXBlTm9kZSIsIlRFUk1fUlVMRV9OQU1FIiwidGVybU5vZGUiLCJ0ZXJtTm9kZVZlcmlmaWVkIiwidmVyaWZ5VGVybU5vZGUiLCJTVEFURU1FTlRfUlVMRV9OQU1FIiwic3RhdG1lbnROb2RlIiwic3RhdG1lbnROb2RlVmVyaWZpZWQiLCJ2ZXJpZnlTdGF0ZW1lbnROb2RlIiwidHlwZU5hbWUiLCJ0eXBlTmFtZUZyb21UeXBlTm9kZSIsInR5cGVQcmVzZW50IiwiaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUiLCJlcnJvciIsInR5cGVzIiwiY29udGV4dCIsInRlcm1WZXJpZmllZCIsInZlcmlmeVRlcm0iLCJkZXJpdmVkIiwiYXNzZXJ0aW9ucyIsInN0YXRl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
|