occam-verify-cli 1.0.220 → 1.0.224
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/context/file.js +19 -19
- package/lib/context/local.js +5 -43
- package/lib/context/release.js +11 -11
- package/lib/dom/assertion/contained.js +44 -44
- package/lib/dom/assertion/defined.js +40 -40
- package/lib/dom/assertion/property.js +37 -35
- package/lib/dom/assertion/satisfies.js +26 -25
- package/lib/dom/assertion/subproof.js +16 -16
- package/lib/dom/assertion/type.js +34 -32
- package/lib/dom/axiom.js +52 -52
- package/lib/dom/combinator/bracketed.js +5 -5
- package/lib/dom/combinator.js +6 -6
- package/lib/dom/conclusion.js +10 -10
- package/lib/dom/conjecture.js +5 -5
- package/lib/dom/constructor/bracketed.js +12 -12
- package/lib/dom/constructor.js +9 -9
- package/lib/dom/declaration/combinator.js +11 -11
- package/lib/dom/declaration/complexType.js +133 -63
- package/lib/dom/declaration/constructor.js +17 -17
- package/lib/dom/declaration/metavariable.js +17 -17
- package/lib/dom/declaration/simpleType.js +229 -0
- package/lib/dom/declaration/variable.js +17 -17
- package/lib/dom/declaration.js +54 -52
- package/lib/dom/deduction.js +15 -15
- package/lib/dom/derivation.js +8 -8
- package/lib/dom/equality.js +49 -34
- package/lib/dom/error.js +3 -3
- package/lib/dom/frame.js +38 -38
- package/lib/dom/judgement.js +31 -29
- package/lib/dom/label.js +5 -5
- package/lib/dom/lemma.js +5 -5
- package/lib/dom/metaLemma.js +5 -5
- package/lib/dom/metatheorem.js +5 -5
- package/lib/dom/metavariable.js +55 -55
- package/lib/dom/premise.js +36 -34
- package/lib/dom/procedureCall.js +9 -9
- package/lib/dom/proof.js +6 -6
- package/lib/dom/propertyRelation.js +18 -18
- package/lib/dom/reference.js +28 -28
- package/lib/dom/rule.js +63 -48
- package/lib/dom/signature.js +17 -17
- package/lib/dom/statement.js +36 -36
- package/lib/dom/step.js +32 -35
- package/lib/dom/subDerivation.js +8 -8
- package/lib/dom/subproof.js +27 -30
- package/lib/dom/substitution/statement.js +7 -7
- package/lib/dom/substitution/term.js +2 -16
- package/lib/dom/substitution.js +1 -15
- package/lib/dom/supposition.js +39 -39
- package/lib/dom/term.js +15 -15
- package/lib/dom/theorem.js +5 -5
- package/lib/dom/topLevelAssertion.js +60 -71
- package/lib/dom/topLevelMetaAssertion.js +28 -20
- package/lib/dom/type.js +18 -24
- package/lib/dom/variable.js +16 -16
- package/lib/equivalence.js +54 -33
- package/lib/equivalences.js +57 -101
- package/lib/index.js +2 -2
- package/lib/mixins/statement/verify.js +52 -52
- package/lib/mixins/step/unify.js +79 -61
- package/lib/mixins/term/verify.js +17 -17
- package/lib/substitutions.js +7 -7
- package/lib/unifier/equantional.js +170 -0
- package/lib/unifier/intrinsicLevel.js +8 -8
- package/lib/unifier/metaLevel.js +21 -21
- package/lib/unifier/metavariable.js +9 -9
- package/lib/unifier/statementWithCombinator.js +18 -18
- package/lib/unifier/termWithConstructor.js +10 -10
- package/lib/unifier.js +41 -41
- package/lib/utilities/brackets.js +2 -2
- package/lib/utilities/release.js +18 -17
- package/lib/utilities/subproof.js +2 -2
- package/lib/utilities/type.js +2 -2
- package/lib/utilities/unification.js +28 -34
- package/lib/verifier/combinator.js +14 -14
- package/lib/verifier/constructor.js +18 -18
- package/lib/verifier/topLevel.js +38 -38
- package/lib/verifier.js +30 -30
- package/package.json +1 -1
- package/src/context/file.js +18 -18
- package/src/context/local.js +5 -48
- package/src/context/release.js +11 -11
- package/src/dom/assertion/contained.js +46 -46
- package/src/dom/assertion/defined.js +41 -41
- package/src/dom/assertion/property.js +37 -35
- package/src/dom/assertion/satisfies.js +26 -25
- package/src/dom/assertion/subproof.js +15 -15
- package/src/dom/assertion/type.js +34 -32
- package/src/dom/axiom.js +56 -54
- package/src/dom/combinator/bracketed.js +4 -4
- package/src/dom/combinator.js +5 -5
- package/src/dom/conclusion.js +9 -9
- package/src/dom/conjecture.js +4 -4
- package/src/dom/constructor/bracketed.js +11 -11
- package/src/dom/constructor.js +8 -8
- package/src/dom/declaration/combinator.js +10 -10
- package/src/dom/declaration/complexType.js +129 -64
- package/src/dom/declaration/constructor.js +16 -16
- package/src/dom/declaration/metavariable.js +16 -16
- package/src/dom/declaration/simpleType.js +179 -0
- package/src/dom/declaration/variable.js +16 -16
- package/src/dom/declaration.js +54 -52
- package/src/dom/deduction.js +14 -14
- package/src/dom/derivation.js +7 -7
- package/src/dom/equality.js +55 -38
- package/src/dom/error.js +2 -2
- package/src/dom/frame.js +38 -38
- package/src/dom/judgement.js +31 -29
- package/src/dom/label.js +4 -4
- package/src/dom/lemma.js +4 -4
- package/src/dom/metaLemma.js +4 -4
- package/src/dom/metatheorem.js +4 -4
- package/src/dom/metavariable.js +54 -54
- package/src/dom/premise.js +35 -33
- package/src/dom/procedureCall.js +8 -8
- package/src/dom/proof.js +5 -5
- package/src/dom/propertyRelation.js +17 -17
- package/src/dom/reference.js +27 -27
- package/src/dom/rule.js +72 -49
- package/src/dom/signature.js +15 -15
- package/src/dom/statement.js +34 -34
- package/src/dom/step.js +42 -48
- package/src/dom/subDerivation.js +7 -7
- package/src/dom/subproof.js +30 -40
- package/src/dom/substitution/statement.js +6 -6
- package/src/dom/substitution/term.js +1 -19
- package/src/dom/substitution.js +0 -13
- package/src/dom/supposition.js +38 -38
- package/src/dom/term.js +14 -14
- package/src/dom/theorem.js +4 -4
- package/src/dom/topLevelAssertion.js +62 -81
- package/src/dom/topLevelMetaAssertion.js +35 -20
- package/src/dom/type.js +23 -33
- package/src/dom/variable.js +16 -15
- package/src/equivalence.js +69 -46
- package/src/equivalences.js +53 -115
- package/src/index.js +1 -1
- package/src/mixins/statement/verify.js +51 -51
- package/src/mixins/step/unify.js +88 -67
- package/src/mixins/term/verify.js +16 -16
- package/src/substitutions.js +5 -6
- package/src/unifier/equantional.js +90 -0
- package/src/unifier/intrinsicLevel.js +7 -7
- package/src/unifier/metaLevel.js +20 -21
- package/src/unifier/metavariable.js +8 -8
- package/src/unifier/statementWithCombinator.js +17 -17
- package/src/unifier/termWithConstructor.js +9 -9
- package/src/unifier.js +40 -40
- package/src/utilities/brackets.js +1 -1
- package/src/utilities/release.js +18 -18
- package/src/utilities/subproof.js +1 -1
- package/src/utilities/type.js +1 -1
- package/src/utilities/unification.js +27 -37
- package/src/verifier/combinator.js +13 -13
- package/src/verifier/constructor.js +17 -17
- package/src/verifier/topLevel.js +41 -41
- package/src/verifier.js +29 -29
- package/lib/dom/declaration/type.js +0 -209
- package/lib/unifier/equality.js +0 -155
- package/src/dom/declaration/type.js +0 -150
- package/src/unifier/equality.js +0 -70
|
@@ -10,9 +10,6 @@ function _export(target, all) {
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
_export(exports, {
|
|
13
|
-
get unifyEquality () {
|
|
14
|
-
return unifyEquality;
|
|
15
|
-
},
|
|
16
13
|
get unifyMetavariable () {
|
|
17
14
|
return unifyMetavariable;
|
|
18
15
|
},
|
|
@@ -36,7 +33,6 @@ _export(exports, {
|
|
|
36
33
|
}
|
|
37
34
|
});
|
|
38
35
|
var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
|
|
39
|
-
var _equality = /*#__PURE__*/ _interop_require_default(require("../unifier/equality"));
|
|
40
36
|
var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../unifier/metaLevel"));
|
|
41
37
|
var _metavariable = /*#__PURE__*/ _interop_require_default(require("../unifier/metavariable"));
|
|
42
38
|
var _intrinsicLevel = /*#__PURE__*/ _interop_require_default(require("../unifier/intrinsicLevel"));
|
|
@@ -47,70 +43,68 @@ function _interop_require_default(obj) {
|
|
|
47
43
|
default: obj
|
|
48
44
|
};
|
|
49
45
|
}
|
|
50
|
-
function unifyEquality(equality, context) {
|
|
51
|
-
var equalityUnified;
|
|
52
|
-
var leftTerm = equality.getLeftTerm(), rightTerm = equality.getRightTerm(), leftTermNode = leftTerm.getNode(), rightTermNode = rightTerm.getNode();
|
|
53
|
-
equalityUnified = _equality.default.unify(leftTermNode, rightTermNode, context);
|
|
54
|
-
return equalityUnified;
|
|
55
|
-
}
|
|
56
46
|
function unifyStatement(generalStatement, specificStatement, substitutions, generalContext, specificContext) {
|
|
57
|
-
var
|
|
47
|
+
var statementUnifies = false;
|
|
58
48
|
var generalStatementNode = generalStatement.getNode(), specificStatementNode = specificStatement.getNode(), generalStatementTokens = generalStatement.getTokens(), specificStatementTokens = specificStatement.getTokens();
|
|
59
49
|
generalContext = contextFromTokens(generalStatementTokens, generalContext); ///
|
|
60
50
|
specificContext = contextFromTokens(specificStatementTokens, specificContext); ///
|
|
61
|
-
var generalNonTerminalNode = generalStatementNode, specificNonTerminalNode = specificStatementNode,
|
|
62
|
-
|
|
63
|
-
|
|
51
|
+
var generalNonTerminalNode = generalStatementNode, specificNonTerminalNode = specificStatementNode, unifiesAtMetaLevel = _metaLevel.default.unify(generalNonTerminalNode, specificNonTerminalNode, substitutions, generalContext, specificContext);
|
|
52
|
+
if (unifiesAtMetaLevel) {
|
|
53
|
+
statementUnifies = true;
|
|
54
|
+
}
|
|
55
|
+
return statementUnifies;
|
|
64
56
|
}
|
|
65
57
|
function unifySubstitution(generalSubstitution, specificSubstitution, substitutions, generalContext, specificContext) {
|
|
66
|
-
var
|
|
58
|
+
var substitutionUnifies = false;
|
|
67
59
|
var generalSubstitutionNode = generalSubstitution.getNode(), specificSubstitutionNode = specificSubstitution.getNode(), generalSubstitutionTokens = generalSubstitution.getTokens(), specificSubstitutionTokens = specificSubstitution.getTokens();
|
|
68
60
|
generalContext = contextFromTokens(generalSubstitutionTokens, generalContext); ///
|
|
69
61
|
specificContext = contextFromTokens(specificSubstitutionTokens, specificContext); ///
|
|
70
|
-
var generalNonTerminalNode = generalSubstitutionNode, specificNonTerminalNode = specificSubstitutionNode,
|
|
71
|
-
|
|
72
|
-
|
|
62
|
+
var generalNonTerminalNode = generalSubstitutionNode, specificNonTerminalNode = specificSubstitutionNode, unifiesAtMetaLevel = _metaLevel.default.unify(generalNonTerminalNode, specificNonTerminalNode, substitutions, generalContext, specificContext);
|
|
63
|
+
if (unifiesAtMetaLevel) {
|
|
64
|
+
substitutionUnifies = true;
|
|
65
|
+
}
|
|
66
|
+
return substitutionUnifies;
|
|
73
67
|
}
|
|
74
68
|
function unifyMetavariable(generalMetavariable, specificMetavariable, generalContext, specificContext) {
|
|
75
|
-
var
|
|
69
|
+
var metavariableUnifies;
|
|
76
70
|
var generalMetavariableNode = generalMetavariable.getNode(), specificMetavariableNode = specificMetavariable.getNode(), generalMetavariableTokens = generalMetavariable.getTokens(), specificMetavariableTokens = specificMetavariable.getTokens();
|
|
77
71
|
generalContext = contextFromTokens(generalMetavariableTokens, generalContext); ///
|
|
78
72
|
specificContext = contextFromTokens(specificMetavariableTokens, specificContext); ///
|
|
79
|
-
|
|
80
|
-
return
|
|
73
|
+
metavariableUnifies = _metavariable.default.unify(generalMetavariableNode, specificMetavariableNode, generalContext, specificContext);
|
|
74
|
+
return metavariableUnifies;
|
|
81
75
|
}
|
|
82
76
|
function unifyTermWithConstructor(term, constructor, context) {
|
|
83
|
-
var
|
|
77
|
+
var termUnifiesWithConstructor;
|
|
84
78
|
var termNode = term.getNode(), constructorTerm = constructor.getTerm(), constructorTermNode = constructorTerm.getNode();
|
|
85
|
-
|
|
86
|
-
return
|
|
79
|
+
termUnifiesWithConstructor = _termWithConstructor.default.unify(constructorTermNode, termNode, context);
|
|
80
|
+
return termUnifiesWithConstructor;
|
|
87
81
|
}
|
|
88
82
|
function unifyStatementIntrinsically(generalStatement, specificStatement, substitutions, generalContext, specificContext) {
|
|
89
|
-
var
|
|
83
|
+
var metavariableUnifiesIntrinsically;
|
|
90
84
|
var generalStatementNode = generalStatement.getNode(), specificStatementNode = specificStatement.getNode(), generalStatementTokens = generalStatement.getTokens(), specificStatementTokens = specificStatement.getTokens();
|
|
91
85
|
generalContext = contextFromTokens(generalStatementTokens, generalContext); ///
|
|
92
86
|
specificContext = contextFromTokens(specificStatementTokens, specificContext); ///
|
|
93
87
|
var generalNonTerminalNode = generalStatementNode, specificNonTerminalNode = specificStatementNode; ///
|
|
94
|
-
|
|
95
|
-
return
|
|
88
|
+
metavariableUnifiesIntrinsically = _intrinsicLevel.default.unify(generalNonTerminalNode, specificNonTerminalNode, substitutions, generalContext, specificContext);
|
|
89
|
+
return metavariableUnifiesIntrinsically;
|
|
96
90
|
}
|
|
97
91
|
function unifyStatementWithCombinator(statement, combinator, assignments, stated, context) {
|
|
98
|
-
var
|
|
92
|
+
var statementUnifiesWithCombinator;
|
|
99
93
|
var statementNode = statement.getNode(), statementTokens = statement.getTokens(), combinatorStatement = combinator.getStatement(), combinatorStatementNode = combinatorStatement.getNode(), combinatorStatementTokens = combinatorStatement.getTokens();
|
|
100
94
|
var generalContext = context, specificContext = context; ///
|
|
101
95
|
generalContext = contextFromTokens(combinatorStatementTokens, generalContext); ///
|
|
102
96
|
specificContext = contextFromTokens(statementTokens, specificContext); ///
|
|
103
|
-
|
|
104
|
-
return
|
|
97
|
+
statementUnifiesWithCombinator = _statementWithCombinator.default.unify(combinatorStatementNode, statementNode, assignments, stated, generalContext, specificContext);
|
|
98
|
+
return statementUnifiesWithCombinator;
|
|
105
99
|
}
|
|
106
100
|
function unifyMetavariableIntrinsically(generalMetavariable, specificMetavariable, substitutions, generalContext, specificContext) {
|
|
107
|
-
var
|
|
101
|
+
var metavariableUnifiesIntrinsically;
|
|
108
102
|
var generalMetavariableNode = generalMetavariable.getNode(), specificMetavariableNode = specificMetavariable.getNode(), generalMetavariableTokens = generalMetavariable.getTokens(), specificMetavariableTokens = specificMetavariable.getTokens();
|
|
109
103
|
generalContext = contextFromTokens(generalMetavariableTokens, generalContext); ///
|
|
110
104
|
specificContext = contextFromTokens(specificMetavariableTokens, specificContext); ///
|
|
111
105
|
var generalNonTerminalNode = generalMetavariableNode, specificNonTerminalNode = specificMetavariableNode; ///
|
|
112
|
-
|
|
113
|
-
return
|
|
106
|
+
metavariableUnifiesIntrinsically = _intrinsicLevel.default.unify(generalNonTerminalNode, specificNonTerminalNode, substitutions, generalContext, specificContext);
|
|
107
|
+
return metavariableUnifiesIntrinsically;
|
|
114
108
|
}
|
|
115
109
|
function contextFromTokens(tokens, context) {
|
|
116
110
|
var localContext = _local.default.fromContextAndTokens(context, tokens);
|
|
@@ -118,4 +112,4 @@ function contextFromTokens(tokens, context) {
|
|
|
118
112
|
return context;
|
|
119
113
|
}
|
|
120
114
|
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdW5pZmljYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaW5nXCI7XG5cbmltcG9ydCBMb2NhbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbG9jYWxcIjtcbmltcG9ydCBlcXVhbGl0eVVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvZXF1YWxpdHlcIjtcbmltcG9ydCBtZXRhTGV2ZWxVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL21ldGFMZXZlbFwiO1xuaW1wb3J0IG1ldGF2YXJpYWJsZVVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvbWV0YXZhcmlhYmxlXCI7XG5pbXBvcnQgaW50cmluc2ljTGV2ZWxVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL2ludHJpbnNpY0xldmVsXCI7XG5pbXBvcnQgdGVybVdpdGhDb25zdHJ1Y3RvclVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvdGVybVdpdGhDb25zdHJ1Y3RvclwiO1xuaW1wb3J0IHN0YXRlbWVudFdpdGhDb21iaW5hdG9yVW5pZmllciBmcm9tIFwiLi4vdW5pZmllci9zdGF0ZW1lbnRXaXRoQ29tYmluYXRvclwiO1xuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlFcXVhbGl0eShlcXVhbGl0eSwgY29udGV4dCkge1xuICBsZXQgZXF1YWxpdHlVbmlmaWVkO1xuXG4gIGNvbnN0IGxlZnRUZXJtID0gZXF1YWxpdHkuZ2V0TGVmdFRlcm0oKSxcbiAgICAgICAgcmlnaHRUZXJtID0gZXF1YWxpdHkuZ2V0UmlnaHRUZXJtKCksXG4gICAgICAgIGxlZnRUZXJtTm9kZSA9IGxlZnRUZXJtLmdldE5vZGUoKSxcbiAgICAgICAgcmlnaHRUZXJtTm9kZSA9IHJpZ2h0VGVybS5nZXROb2RlKCk7XG5cbiAgZXF1YWxpdHlVbmlmaWVkID0gZXF1YWxpdHlVbmlmaWVyLnVuaWZ5KGxlZnRUZXJtTm9kZSwgcmlnaHRUZXJtTm9kZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIGVxdWFsaXR5VW5pZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50KGdlbmVyYWxTdGF0ZW1lbnQsIHNwZWNpZmljU3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRVbmlmaWVkO1xuXG4gIGNvbnN0IGdlbmVyYWxTdGF0ZW1lbnROb2RlID0gZ2VuZXJhbFN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljU3RhdGVtZW50Tm9kZSA9IHNwZWNpZmljU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbFN0YXRlbWVudFRva2VucyA9IGdlbmVyYWxTdGF0ZW1lbnQuZ2V0VG9rZW5zKCksXG4gICAgICAgIHNwZWNpZmljU3RhdGVtZW50VG9rZW5zID0gc3BlY2lmaWNTdGF0ZW1lbnQuZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhnZW5lcmFsU3RhdGVtZW50VG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHNwZWNpZmljU3RhdGVtZW50VG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAgLy8vXG5cbiAgY29uc3QgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxTdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUgPSBzcGVjaWZpY1N0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgdW5pZmllZEF0TWV0YUxldmVsID0gbWV0YUxldmVsVW5pZmllci51bmlmeShnZW5lcmFsTm9uVGVybWluYWxOb2RlLCBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgc3RhdGVtZW50VW5pZmllZCA9IHVuaWZpZWRBdE1ldGFMZXZlbDsgLy8vXG5cbiAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeVN1YnN0aXR1dGlvbihnZW5lcmFsU3Vic3RpdHV0aW9uLCBzcGVjaWZpY1N1YnN0aXR1dGlvbiwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBsZXQgc3Vic3RpdHV0aW9uVW5pZmllZDtcblxuICBjb25zdCBnZW5lcmFsU3Vic3RpdHV0aW9uTm9kZSA9IGdlbmVyYWxTdWJzdGl0dXRpb24uZ2V0Tm9kZSgpLFxuICAgICAgICBzcGVjaWZpY1N1YnN0aXR1dGlvbk5vZGUgPSBzcGVjaWZpY1N1YnN0aXR1dGlvbi5nZXROb2RlKCksXG4gICAgICAgIGdlbmVyYWxTdWJzdGl0dXRpb25Ub2tlbnMgPSBnZW5lcmFsU3Vic3RpdHV0aW9uLmdldFRva2VucygpLFxuICAgICAgICBzcGVjaWZpY1N1YnN0aXR1dGlvblRva2VucyA9IHNwZWNpZmljU3Vic3RpdHV0aW9uLmdldFRva2VucygpO1xuXG4gIGdlbmVyYWxDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoZ2VuZXJhbFN1YnN0aXR1dGlvblRva2VucywgZ2VuZXJhbENvbnRleHQpOyAvLy9cblxuICBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhzcGVjaWZpY1N1YnN0aXR1dGlvblRva2Vucywgc3BlY2lmaWNDb250ZXh0KTsgIC8vL1xuXG4gIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUgPSBnZW5lcmFsU3Vic3RpdHV0aW9uTm9kZSwgLy8vXG4gICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNTdWJzdGl0dXRpb25Ob2RlLFxuICAgICAgICB1bmlmaWVkQXRNZXRhTGV2ZWwgPSBtZXRhTGV2ZWxVbmlmaWVyLnVuaWZ5KGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICBzdWJzdGl0dXRpb25VbmlmaWVkID0gdW5pZmllZEF0TWV0YUxldmVsOyAvLy9cblxuICByZXR1cm4gc3Vic3RpdHV0aW9uVW5pZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5TWV0YXZhcmlhYmxlKGdlbmVyYWxNZXRhdmFyaWFibGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVkO1xuXG4gIGNvbnN0IGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbE1ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbE1ldGF2YXJpYWJsZVRva2VucyA9IGdlbmVyYWxNZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlVG9rZW5zID0gc3BlY2lmaWNNZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhnZW5lcmFsTWV0YXZhcmlhYmxlVG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHNwZWNpZmljTWV0YXZhcmlhYmxlVG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAvLy9cblxuICBtZXRhdmFyaWFibGVVbmlmaWVkID0gbWV0YXZhcmlhYmxlVW5pZmllci51bmlmeShnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSwgc3BlY2lmaWNNZXRhdmFyaWFibGVOb2RlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3Rvcih0ZXJtLCBjb25zdHJ1Y3RvciwgY29udGV4dCkge1xuICBsZXQgdGVybVVuaWZpZWRXaXRoQ29uc3RydWN0b3I7XG5cbiAgY29uc3QgdGVybU5vZGUgPSB0ZXJtLmdldE5vZGUoKSxcbiAgICAgICAgY29uc3RydWN0b3JUZXJtID0gY29uc3RydWN0b3IuZ2V0VGVybSgpLFxuICAgICAgICBjb25zdHJ1Y3RvclRlcm1Ob2RlID0gY29uc3RydWN0b3JUZXJtLmdldE5vZGUoKTtcblxuICB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvciA9IHRlcm1XaXRoQ29uc3RydWN0b3JVbmlmaWVyLnVuaWZ5KGNvbnN0cnVjdG9yVGVybU5vZGUsIHRlcm1Ob2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4gdGVybVVuaWZpZWRXaXRoQ29uc3RydWN0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeVN0YXRlbWVudEludHJpbnNpY2FsbHkoZ2VuZXJhbFN0YXRlbWVudCwgc3BlY2lmaWNTdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZVVuaWZpZWRJbnRyaW5zaWNhbGx5O1xuXG4gIGNvbnN0IGdlbmVyYWxTdGF0ZW1lbnROb2RlID0gZ2VuZXJhbFN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljU3RhdGVtZW50Tm9kZSA9IHNwZWNpZmljU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbFN0YXRlbWVudFRva2VucyA9IGdlbmVyYWxTdGF0ZW1lbnQuZ2V0VG9rZW5zKCksXG4gICAgICAgIHNwZWNpZmljU3RhdGVtZW50VG9rZW5zID0gc3BlY2lmaWNTdGF0ZW1lbnQuZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhnZW5lcmFsU3RhdGVtZW50VG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHNwZWNpZmljU3RhdGVtZW50VG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAvLy9cblxuICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbFN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSA9IHNwZWNpZmljU3RhdGVtZW50Tm9kZTsgLy8vXG5cbiAgbWV0YXZhcmlhYmxlVW5pZmllZEludHJpbnNpY2FsbHkgPSBpbnRyaW5zaWNMZXZlbFVuaWZpZXIudW5pZnkoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVVbmlmaWVkSW50cmluc2ljYWxseTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3Ioc3RhdGVtZW50LCBjb21iaW5hdG9yLCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRVbmlmaWVkV2l0aENvbWJpbmF0b3I7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHN0YXRlbWVudFRva2VucyA9IHN0YXRlbWVudC5nZXRUb2tlbnMoKSxcbiAgICAgICAgY29tYmluYXRvclN0YXRlbWVudCA9IGNvbWJpbmF0b3IuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgIGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlID0gY29tYmluYXRvclN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGNvbWJpbmF0b3JTdGF0ZW1lbnRUb2tlbnMgPSBjb21iaW5hdG9yU3RhdGVtZW50LmdldFRva2VucygpO1xuXG4gIGxldCBnZW5lcmFsQ29udGV4dCA9IGNvbnRleHQsIC8vL1xuICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuXG4gIGdlbmVyYWxDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoY29tYmluYXRvclN0YXRlbWVudFRva2VucywgZ2VuZXJhbENvbnRleHQpOyAgLy8vXG5cbiAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoc3RhdGVtZW50VG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAgLy8vXG5cbiAgc3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yID0gc3RhdGVtZW50V2l0aENvbWJpbmF0b3JVbmlmaWVyLnVuaWZ5KGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5KGdlbmVyYWxNZXRhdmFyaWFibGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVkSW50cmluc2ljYWxseTtcblxuICBjb25zdCBnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSA9IGdlbmVyYWxNZXRhdmFyaWFibGUuZ2V0Tm9kZSgpLFxuICAgICAgICBzcGVjaWZpY01ldGF2YXJpYWJsZU5vZGUgPSBzcGVjaWZpY01ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIGdlbmVyYWxNZXRhdmFyaWFibGVUb2tlbnMgPSBnZW5lcmFsTWV0YXZhcmlhYmxlLmdldFRva2VucygpLFxuICAgICAgICBzcGVjaWZpY01ldGF2YXJpYWJsZVRva2VucyA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldFRva2VucygpO1xuXG4gIGdlbmVyYWxDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoZ2VuZXJhbE1ldGF2YXJpYWJsZVRva2VucywgZ2VuZXJhbENvbnRleHQpOyAvLy9cblxuICBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhzcGVjaWZpY01ldGF2YXJpYWJsZVRva2Vucywgc3BlY2lmaWNDb250ZXh0KTsgLy8vXG5cbiAgY29uc3QgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUgPSBzcGVjaWZpY01ldGF2YXJpYWJsZU5vZGU7IC8vL1xuXG4gIG1ldGF2YXJpYWJsZVVuaWZpZWRJbnRyaW5zaWNhbGx5ID0gaW50cmluc2ljTGV2ZWxVbmlmaWVyLnVuaWZ5KGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllZEludHJpbnNpY2FsbHk7XG59XG5cbmZ1bmN0aW9uIGNvbnRleHRGcm9tVG9rZW5zKHRva2VucywgY29udGV4dCkge1xuICBjb25zdCBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUNvbnRleHRBbmRUb2tlbnMoY29udGV4dCwgdG9rZW5zKTtcblxuICBjb250ZXh0ID0gbG9jYWxDb250ZXh0OyAgLy8vXG5cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG4iXSwibmFtZXMiOlsidW5pZnlFcXVhbGl0eSIsInVuaWZ5TWV0YXZhcmlhYmxlIiwidW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5IiwidW5pZnlTdGF0ZW1lbnQiLCJ1bmlmeVN0YXRlbWVudEludHJpbnNpY2FsbHkiLCJ1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9yIiwidW5pZnlTdWJzdGl0dXRpb24iLCJ1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3IiLCJlcXVhbGl0eSIsImNvbnRleHQiLCJlcXVhbGl0eVVuaWZpZWQiLCJsZWZ0VGVybSIsImdldExlZnRUZXJtIiwicmlnaHRUZXJtIiwiZ2V0UmlnaHRUZXJtIiwibGVmdFRlcm1Ob2RlIiwiZ2V0Tm9kZSIsInJpZ2h0VGVybU5vZGUiLCJlcXVhbGl0eVVuaWZpZXIiLCJ1bmlmeSIsImdlbmVyYWxTdGF0ZW1lbnQiLCJzcGVjaWZpY1N0YXRlbWVudCIsInN1YnN0aXR1dGlvbnMiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInN0YXRlbWVudFVuaWZpZWQiLCJnZW5lcmFsU3RhdGVtZW50Tm9kZSIsInNwZWNpZmljU3RhdGVtZW50Tm9kZSIsImdlbmVyYWxTdGF0ZW1lbnRUb2tlbnMiLCJnZXRUb2tlbnMiLCJzcGVjaWZpY1N0YXRlbWVudFRva2VucyIsImNvbnRleHRGcm9tVG9rZW5zIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlIiwidW5pZmllZEF0TWV0YUxldmVsIiwibWV0YUxldmVsVW5pZmllciIsImdlbmVyYWxTdWJzdGl0dXRpb24iLCJzcGVjaWZpY1N1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvblVuaWZpZWQiLCJnZW5lcmFsU3Vic3RpdHV0aW9uTm9kZSIsInNwZWNpZmljU3Vic3RpdHV0aW9uTm9kZSIsImdlbmVyYWxTdWJzdGl0dXRpb25Ub2tlbnMiLCJzcGVjaWZpY1N1YnN0aXR1dGlvblRva2VucyIsImdlbmVyYWxNZXRhdmFyaWFibGUiLCJzcGVjaWZpY01ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZVVuaWZpZWQiLCJnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSIsInNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSIsImdlbmVyYWxNZXRhdmFyaWFibGVUb2tlbnMiLCJzcGVjaWZpY01ldGF2YXJpYWJsZVRva2VucyIsIm1ldGF2YXJpYWJsZVVuaWZpZXIiLCJ0ZXJtIiwiY29uc3RydWN0b3IiLCJ0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvciIsInRlcm1Ob2RlIiwiY29uc3RydWN0b3JUZXJtIiwiZ2V0VGVybSIsImNvbnN0cnVjdG9yVGVybU5vZGUiLCJ0ZXJtV2l0aENvbnN0cnVjdG9yVW5pZmllciIsIm1ldGF2YXJpYWJsZVVuaWZpZWRJbnRyaW5zaWNhbGx5IiwiaW50cmluc2ljTGV2ZWxVbmlmaWVyIiwic3RhdGVtZW50IiwiY29tYmluYXRvciIsImFzc2lnbm1lbnRzIiwic3RhdGVkIiwic3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yIiwic3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFRva2VucyIsImNvbWJpbmF0b3JTdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnQiLCJjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSIsImNvbWJpbmF0b3JTdGF0ZW1lbnRUb2tlbnMiLCJzdGF0ZW1lbnRXaXRoQ29tYmluYXRvclVuaWZpZXIiLCJ0b2tlbnMiLCJsb2NhbENvbnRleHQiLCJMb2NhbENvbnRleHQiLCJmcm9tQ29udGV4dEFuZFRva2VucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztRQVVnQkE7ZUFBQUE7O1FBdURBQztlQUFBQTs7UUFzRUFDO2VBQUFBOztRQWhIQUM7ZUFBQUE7O1FBdUVBQztlQUFBQTs7UUFvQkFDO2VBQUFBOztRQXRFQUM7ZUFBQUE7O1FBc0NBQztlQUFBQTs7OzREQWhGUzsrREFDRztnRUFDQzttRUFDRztxRUFDRTswRUFDSzs4RUFDSTs7Ozs7O0FBRXBDLFNBQVNQLGNBQWNRLFFBQVEsRUFBRUMsT0FBTztJQUM3QyxJQUFJQztJQUVKLElBQU1DLFdBQVdILFNBQVNJLFdBQVcsSUFDL0JDLFlBQVlMLFNBQVNNLFlBQVksSUFDakNDLGVBQWVKLFNBQVNLLE9BQU8sSUFDL0JDLGdCQUFnQkosVUFBVUcsT0FBTztJQUV2Q04sa0JBQWtCUSxpQkFBZSxDQUFDQyxLQUFLLENBQUNKLGNBQWNFLGVBQWVSO0lBRXJFLE9BQU9DO0FBQ1Q7QUFF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
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdW5pZmljYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaW5nXCI7XG5cbmltcG9ydCBMb2NhbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbG9jYWxcIjtcbmltcG9ydCBtZXRhTGV2ZWxVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL21ldGFMZXZlbFwiO1xuaW1wb3J0IG1ldGF2YXJpYWJsZVVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvbWV0YXZhcmlhYmxlXCI7XG5pbXBvcnQgaW50cmluc2ljTGV2ZWxVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL2ludHJpbnNpY0xldmVsXCI7XG5pbXBvcnQgdGVybVdpdGhDb25zdHJ1Y3RvclVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvdGVybVdpdGhDb25zdHJ1Y3RvclwiO1xuaW1wb3J0IHN0YXRlbWVudFdpdGhDb21iaW5hdG9yVW5pZmllciBmcm9tIFwiLi4vdW5pZmllci9zdGF0ZW1lbnRXaXRoQ29tYmluYXRvclwiO1xuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlTdGF0ZW1lbnQoZ2VuZXJhbFN0YXRlbWVudCwgc3BlY2lmaWNTdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFVuaWZpZXMgPSBmYWxzZTtcblxuICBjb25zdCBnZW5lcmFsU3RhdGVtZW50Tm9kZSA9IGdlbmVyYWxTdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBzcGVjaWZpY1N0YXRlbWVudE5vZGUgPSBzcGVjaWZpY1N0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGdlbmVyYWxTdGF0ZW1lbnRUb2tlbnMgPSBnZW5lcmFsU3RhdGVtZW50LmdldFRva2VucygpLFxuICAgICAgICBzcGVjaWZpY1N0YXRlbWVudFRva2VucyA9IHNwZWNpZmljU3RhdGVtZW50LmdldFRva2VucygpO1xuXG4gIGdlbmVyYWxDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoZ2VuZXJhbFN0YXRlbWVudFRva2VucywgZ2VuZXJhbENvbnRleHQpOyAvLy9cblxuICBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhzcGVjaWZpY1N0YXRlbWVudFRva2Vucywgc3BlY2lmaWNDb250ZXh0KTsgIC8vL1xuXG4gIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUgPSBnZW5lcmFsU3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNTdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgIHVuaWZpZXNBdE1ldGFMZXZlbCA9IG1ldGFMZXZlbFVuaWZpZXIudW5pZnkoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIGlmICh1bmlmaWVzQXRNZXRhTGV2ZWwpIHtcbiAgICBzdGF0ZW1lbnRVbmlmaWVzID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlTdWJzdGl0dXRpb24oZ2VuZXJhbFN1YnN0aXR1dGlvbiwgc3BlY2lmaWNTdWJzdGl0dXRpb24sIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgbGV0IHN1YnN0aXR1dGlvblVuaWZpZXMgPSBmYWxzZTtcblxuICBjb25zdCBnZW5lcmFsU3Vic3RpdHV0aW9uTm9kZSA9IGdlbmVyYWxTdWJzdGl0dXRpb24uZ2V0Tm9kZSgpLFxuICAgICAgICBzcGVjaWZpY1N1YnN0aXR1dGlvbk5vZGUgPSBzcGVjaWZpY1N1YnN0aXR1dGlvbi5nZXROb2RlKCksXG4gICAgICAgIGdlbmVyYWxTdWJzdGl0dXRpb25Ub2tlbnMgPSBnZW5lcmFsU3Vic3RpdHV0aW9uLmdldFRva2VucygpLFxuICAgICAgICBzcGVjaWZpY1N1YnN0aXR1dGlvblRva2VucyA9IHNwZWNpZmljU3Vic3RpdHV0aW9uLmdldFRva2VucygpO1xuXG4gIGdlbmVyYWxDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoZ2VuZXJhbFN1YnN0aXR1dGlvblRva2VucywgZ2VuZXJhbENvbnRleHQpOyAvLy9cblxuICBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhzcGVjaWZpY1N1YnN0aXR1dGlvblRva2Vucywgc3BlY2lmaWNDb250ZXh0KTsgIC8vL1xuXG4gIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUgPSBnZW5lcmFsU3Vic3RpdHV0aW9uTm9kZSwgLy8vXG4gICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNTdWJzdGl0dXRpb25Ob2RlLFxuICAgICAgICB1bmlmaWVzQXRNZXRhTGV2ZWwgPSBtZXRhTGV2ZWxVbmlmaWVyLnVuaWZ5KGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICBpZiAodW5pZmllc0F0TWV0YUxldmVsKSB7XG4gICAgc3Vic3RpdHV0aW9uVW5pZmllcyA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gc3Vic3RpdHV0aW9uVW5pZmllcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5TWV0YXZhcmlhYmxlKGdlbmVyYWxNZXRhdmFyaWFibGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVzO1xuXG4gIGNvbnN0IGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbE1ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbE1ldGF2YXJpYWJsZVRva2VucyA9IGdlbmVyYWxNZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlVG9rZW5zID0gc3BlY2lmaWNNZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhnZW5lcmFsTWV0YXZhcmlhYmxlVG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHNwZWNpZmljTWV0YXZhcmlhYmxlVG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAvLy9cblxuICBtZXRhdmFyaWFibGVVbmlmaWVzID0gbWV0YXZhcmlhYmxlVW5pZmllci51bmlmeShnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSwgc3BlY2lmaWNNZXRhdmFyaWFibGVOb2RlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3Rvcih0ZXJtLCBjb25zdHJ1Y3RvciwgY29udGV4dCkge1xuICBsZXQgdGVybVVuaWZpZXNXaXRoQ29uc3RydWN0b3I7XG5cbiAgY29uc3QgdGVybU5vZGUgPSB0ZXJtLmdldE5vZGUoKSxcbiAgICAgICAgY29uc3RydWN0b3JUZXJtID0gY29uc3RydWN0b3IuZ2V0VGVybSgpLFxuICAgICAgICBjb25zdHJ1Y3RvclRlcm1Ob2RlID0gY29uc3RydWN0b3JUZXJtLmdldE5vZGUoKTtcblxuICB0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3RvciA9IHRlcm1XaXRoQ29uc3RydWN0b3JVbmlmaWVyLnVuaWZ5KGNvbnN0cnVjdG9yVGVybU5vZGUsIHRlcm1Ob2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4gdGVybVVuaWZpZXNXaXRoQ29uc3RydWN0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeVN0YXRlbWVudEludHJpbnNpY2FsbHkoZ2VuZXJhbFN0YXRlbWVudCwgc3BlY2lmaWNTdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZVVuaWZpZXNJbnRyaW5zaWNhbGx5O1xuXG4gIGNvbnN0IGdlbmVyYWxTdGF0ZW1lbnROb2RlID0gZ2VuZXJhbFN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljU3RhdGVtZW50Tm9kZSA9IHNwZWNpZmljU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbFN0YXRlbWVudFRva2VucyA9IGdlbmVyYWxTdGF0ZW1lbnQuZ2V0VG9rZW5zKCksXG4gICAgICAgIHNwZWNpZmljU3RhdGVtZW50VG9rZW5zID0gc3BlY2lmaWNTdGF0ZW1lbnQuZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhnZW5lcmFsU3RhdGVtZW50VG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHNwZWNpZmljU3RhdGVtZW50VG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAvLy9cblxuICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbFN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSA9IHNwZWNpZmljU3RhdGVtZW50Tm9kZTsgLy8vXG5cbiAgbWV0YXZhcmlhYmxlVW5pZmllc0ludHJpbnNpY2FsbHkgPSBpbnRyaW5zaWNMZXZlbFVuaWZpZXIudW5pZnkoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3Ioc3RhdGVtZW50LCBjb21iaW5hdG9yLCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRVbmlmaWVzV2l0aENvbWJpbmF0b3I7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHN0YXRlbWVudFRva2VucyA9IHN0YXRlbWVudC5nZXRUb2tlbnMoKSxcbiAgICAgICAgY29tYmluYXRvclN0YXRlbWVudCA9IGNvbWJpbmF0b3IuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgIGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlID0gY29tYmluYXRvclN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGNvbWJpbmF0b3JTdGF0ZW1lbnRUb2tlbnMgPSBjb21iaW5hdG9yU3RhdGVtZW50LmdldFRva2VucygpO1xuXG4gIGxldCBnZW5lcmFsQ29udGV4dCA9IGNvbnRleHQsIC8vL1xuICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuXG4gIGdlbmVyYWxDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoY29tYmluYXRvclN0YXRlbWVudFRva2VucywgZ2VuZXJhbENvbnRleHQpOyAgLy8vXG5cbiAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoc3RhdGVtZW50VG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAgLy8vXG5cbiAgc3RhdGVtZW50VW5pZmllc1dpdGhDb21iaW5hdG9yID0gc3RhdGVtZW50V2l0aENvbWJpbmF0b3JVbmlmaWVyLnVuaWZ5KGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllc1dpdGhDb21iaW5hdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5KGdlbmVyYWxNZXRhdmFyaWFibGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseTtcblxuICBjb25zdCBnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSA9IGdlbmVyYWxNZXRhdmFyaWFibGUuZ2V0Tm9kZSgpLFxuICAgICAgICBzcGVjaWZpY01ldGF2YXJpYWJsZU5vZGUgPSBzcGVjaWZpY01ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIGdlbmVyYWxNZXRhdmFyaWFibGVUb2tlbnMgPSBnZW5lcmFsTWV0YXZhcmlhYmxlLmdldFRva2VucygpLFxuICAgICAgICBzcGVjaWZpY01ldGF2YXJpYWJsZVRva2VucyA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldFRva2VucygpO1xuXG4gIGdlbmVyYWxDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoZ2VuZXJhbE1ldGF2YXJpYWJsZVRva2VucywgZ2VuZXJhbENvbnRleHQpOyAvLy9cblxuICBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhzcGVjaWZpY01ldGF2YXJpYWJsZVRva2Vucywgc3BlY2lmaWNDb250ZXh0KTsgLy8vXG5cbiAgY29uc3QgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUgPSBzcGVjaWZpY01ldGF2YXJpYWJsZU5vZGU7IC8vL1xuXG4gIG1ldGF2YXJpYWJsZVVuaWZpZXNJbnRyaW5zaWNhbGx5ID0gaW50cmluc2ljTGV2ZWxVbmlmaWVyLnVuaWZ5KGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllc0ludHJpbnNpY2FsbHk7XG59XG5cbmZ1bmN0aW9uIGNvbnRleHRGcm9tVG9rZW5zKHRva2VucywgY29udGV4dCkge1xuICBjb25zdCBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUNvbnRleHRBbmRUb2tlbnMoY29udGV4dCwgdG9rZW5zKTtcblxuICBjb250ZXh0ID0gbG9jYWxDb250ZXh0OyAgLy8vXG5cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG4iXSwibmFtZXMiOlsidW5pZnlNZXRhdmFyaWFibGUiLCJ1bmlmeU1ldGF2YXJpYWJsZUludHJpbnNpY2FsbHkiLCJ1bmlmeVN0YXRlbWVudCIsInVuaWZ5U3RhdGVtZW50SW50cmluc2ljYWxseSIsInVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3IiLCJ1bmlmeVN1YnN0aXR1dGlvbiIsInVuaWZ5VGVybVdpdGhDb25zdHJ1Y3RvciIsImdlbmVyYWxTdGF0ZW1lbnQiLCJzcGVjaWZpY1N0YXRlbWVudCIsInN1YnN0aXR1dGlvbnMiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInN0YXRlbWVudFVuaWZpZXMiLCJnZW5lcmFsU3RhdGVtZW50Tm9kZSIsImdldE5vZGUiLCJzcGVjaWZpY1N0YXRlbWVudE5vZGUiLCJnZW5lcmFsU3RhdGVtZW50VG9rZW5zIiwiZ2V0VG9rZW5zIiwic3BlY2lmaWNTdGF0ZW1lbnRUb2tlbnMiLCJjb250ZXh0RnJvbVRva2VucyIsImdlbmVyYWxOb25UZXJtaW5hbE5vZGUiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZSIsInVuaWZpZXNBdE1ldGFMZXZlbCIsIm1ldGFMZXZlbFVuaWZpZXIiLCJ1bmlmeSIsImdlbmVyYWxTdWJzdGl0dXRpb24iLCJzcGVjaWZpY1N1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvblVuaWZpZXMiLCJnZW5lcmFsU3Vic3RpdHV0aW9uTm9kZSIsInNwZWNpZmljU3Vic3RpdHV0aW9uTm9kZSIsImdlbmVyYWxTdWJzdGl0dXRpb25Ub2tlbnMiLCJzcGVjaWZpY1N1YnN0aXR1dGlvblRva2VucyIsImdlbmVyYWxNZXRhdmFyaWFibGUiLCJzcGVjaWZpY01ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZVVuaWZpZXMiLCJnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSIsInNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSIsImdlbmVyYWxNZXRhdmFyaWFibGVUb2tlbnMiLCJzcGVjaWZpY01ldGF2YXJpYWJsZVRva2VucyIsIm1ldGF2YXJpYWJsZVVuaWZpZXIiLCJ0ZXJtIiwiY29uc3RydWN0b3IiLCJjb250ZXh0IiwidGVybVVuaWZpZXNXaXRoQ29uc3RydWN0b3IiLCJ0ZXJtTm9kZSIsImNvbnN0cnVjdG9yVGVybSIsImdldFRlcm0iLCJjb25zdHJ1Y3RvclRlcm1Ob2RlIiwidGVybVdpdGhDb25zdHJ1Y3RvclVuaWZpZXIiLCJtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseSIsImludHJpbnNpY0xldmVsVW5pZmllciIsInN0YXRlbWVudCIsImNvbWJpbmF0b3IiLCJhc3NpZ25tZW50cyIsInN0YXRlZCIsInN0YXRlbWVudFVuaWZpZXNXaXRoQ29tYmluYXRvciIsInN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRUb2tlbnMiLCJjb21iaW5hdG9yU3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50IiwiY29tYmluYXRvclN0YXRlbWVudE5vZGUiLCJjb21iaW5hdG9yU3RhdGVtZW50VG9rZW5zIiwic3RhdGVtZW50V2l0aENvbWJpbmF0b3JVbmlmaWVyIiwidG9rZW5zIiwibG9jYWxDb250ZXh0IiwiTG9jYWxDb250ZXh0IiwiZnJvbUNvbnRleHRBbmRUb2tlbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7UUF1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
|
|
@@ -114,10 +114,10 @@ var CombinatorVerifier = /*#__PURE__*/ function(Verifier) {
|
|
|
114
114
|
{
|
|
115
115
|
key: "verifyStatement",
|
|
116
116
|
value: function verifyStatement(statementNode, fileContext) {
|
|
117
|
-
var
|
|
118
|
-
var nonTerminalNode = statementNode, childNodes = nonTerminalNode.getChildNodes(),
|
|
119
|
-
|
|
120
|
-
return
|
|
117
|
+
var statementVerifiesAsCombinator;
|
|
118
|
+
var nonTerminalNode = statementNode, childNodes = nonTerminalNode.getChildNodes(), childNodesVerify = this.verifyChildNodes(childNodes, fileContext);
|
|
119
|
+
statementVerifiesAsCombinator = childNodesVerify; ///
|
|
120
|
+
return statementVerifiesAsCombinator;
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
]);
|
|
@@ -127,33 +127,33 @@ _define_property(CombinatorVerifier, "maps", [
|
|
|
127
127
|
{
|
|
128
128
|
nodeQuery: statementNodeQuery,
|
|
129
129
|
verify: function(statementNode, fileContext) {
|
|
130
|
-
var Statement = _dom.default.Statement, localContext = _local.default.fromFileContext(fileContext), context = localContext, statement = Statement.fromStatementNode(statementNode, context), assignments = null, stated = false,
|
|
131
|
-
return
|
|
130
|
+
var Statement = _dom.default.Statement, localContext = _local.default.fromFileContext(fileContext), context = localContext, statement = Statement.fromStatementNode(statementNode, context), assignments = null, stated = false, statementVerifies = statement.verify(assignments, stated, context);
|
|
131
|
+
return statementVerifies;
|
|
132
132
|
}
|
|
133
133
|
},
|
|
134
134
|
{
|
|
135
135
|
nodeQuery: termNodeQuery,
|
|
136
136
|
verify: function(termNode, fileContext) {
|
|
137
|
-
var Term = _dom.default.Term, localContext = _local.default.fromFileContext(fileContext), context = localContext, term = Term.fromTermNode(termNode, context),
|
|
138
|
-
var
|
|
139
|
-
return
|
|
137
|
+
var Term = _dom.default.Term, localContext = _local.default.fromFileContext(fileContext), context = localContext, term = Term.fromTermNode(termNode, context), termVerifies = term.verify(context, function() {
|
|
138
|
+
var verifiesAhead = true;
|
|
139
|
+
return verifiesAhead;
|
|
140
140
|
});
|
|
141
|
-
return
|
|
141
|
+
return termVerifies;
|
|
142
142
|
}
|
|
143
143
|
},
|
|
144
144
|
{
|
|
145
145
|
nodeQuery: typeNodeQuery,
|
|
146
146
|
verify: function(typeNode, fileContext) {
|
|
147
|
-
var
|
|
147
|
+
var typeVerifies = false;
|
|
148
148
|
var typeName = typeNode.getTypeName(), typePresent = fileContext.isTypePresentByTypeName(typeName);
|
|
149
149
|
if (typePresent) {
|
|
150
|
-
|
|
150
|
+
typeVerifies = true;
|
|
151
151
|
}
|
|
152
|
-
return
|
|
152
|
+
return typeVerifies;
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
155
|
]);
|
|
156
156
|
var combinatorVerifier = new CombinatorVerifier();
|
|
157
157
|
var _default = combinatorVerifier;
|
|
158
158
|
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZmllci9jb21iaW5hdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZG9tIGZyb20gXCIuLi9kb21cIjtcbmltcG9ydCBWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXJcIjtcbmltcG9ydCBMb2NhbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbG9jYWxcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm1cIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVcIiksXG4gICAgICBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50XCIpO1xuXG5jbGFzcyBDb21iaW5hdG9yVmVyaWZpZXIgZXh0ZW5kcyBWZXJpZmllciB7XG4gIHZlcmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGxldCBzdGF0ZW1lbnRWZXJpZmllc0FzQ29tYmluYXRvcjtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IHN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIGNoaWxkTm9kZXNWZXJpZnkgPSB0aGlzLnZlcmlmeUNoaWxkTm9kZXMoY2hpbGROb2RlcywgZmlsZUNvbnRleHQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZXNBc0NvbWJpbmF0b3IgPSBjaGlsZE5vZGVzVmVyaWZ5OyAgLy8vXG5cbiAgICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZXNBc0NvbWJpbmF0b3I7XG4gIH1cblxuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHN0YXRlbWVudE5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKHN0YXRlbWVudE5vZGUsIGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgU3RhdGVtZW50IH0gPSBkb20sXG4gICAgICAgICAgICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgICBjb250ZXh0ID0gbG9jYWxDb250ZXh0LCAvLy9cbiAgICAgICAgICAgICAgc3RhdGVtZW50ID0gU3RhdGVtZW50LmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBhc3NpZ25tZW50cyA9IG51bGwsXG4gICAgICAgICAgICAgIHN0YXRlZCA9IGZhbHNlLFxuICAgICAgICAgICAgICBzdGF0ZW1lbnRWZXJpZmllcyA9IHN0YXRlbWVudC52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAodGVybU5vZGUsIGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgVGVybSB9ID0gZG9tLFxuICAgICAgICAgICAgICBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSxcbiAgICAgICAgICAgICAgY29udGV4dCA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgICAgIHRlcm0gPSBUZXJtLmZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHRlcm1WZXJpZmllcyA9IHRlcm0udmVyaWZ5KGNvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2ZXJpZmllc0FoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB2ZXJpZmllc0FoZWFkO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGVybVZlcmlmaWVzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0eXBlTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAodHlwZU5vZGUsIGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCB0eXBlVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOb2RlLmdldFR5cGVOYW1lKCksXG4gICAgICAgICAgICAgIHR5cGVQcmVzZW50ID0gZmlsZUNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gICAgICAgIGlmICh0eXBlUHJlc2VudCkge1xuICAgICAgICAgIHR5cGVWZXJpZmllcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHlwZVZlcmlmaWVzO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY29uc3QgY29tYmluYXRvclZlcmlmaWVyID0gbmV3IENvbWJpbmF0b3JWZXJpZmllcigpO1xuXG5leHBvcnQgZGVmYXVsdCBjb21iaW5hdG9yVmVyaWZpZXI7XG4iXSwibmFtZXMiOlsidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVOb2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJDb21iaW5hdG9yVmVyaWZpZXIiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiZmlsZUNvbnRleHQiLCJzdGF0ZW1lbnRWZXJpZmllc0FzQ29tYmluYXRvciIsIm5vblRlcm1pbmFsTm9kZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiY2hpbGROb2Rlc1ZlcmlmeSIsInZlcmlmeUNoaWxkTm9kZXMiLCJWZXJpZmllciIsIm1hcHMiLCJ2ZXJpZnkiLCJTdGF0ZW1lbnQiLCJkb20iLCJsb2NhbENvbnRleHQiLCJMb2NhbENvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJjb250ZXh0Iiwic3RhdGVtZW50IiwiZnJvbVN0YXRlbWVudE5vZGUiLCJhc3NpZ25tZW50cyIsInN0YXRlZCIsInN0YXRlbWVudFZlcmlmaWVzIiwidGVybU5vZGUiLCJUZXJtIiwidGVybSIsImZyb21UZXJtTm9kZSIsInRlcm1WZXJpZmllcyIsInZlcmlmaWVzQWhlYWQiLCJ0eXBlTm9kZSIsInR5cGVWZXJpZmllcyIsInR5cGVOYW1lIiwiZ2V0VHlwZU5hbWUiLCJ0eXBlUHJlc2VudCIsImlzVHlwZVByZXNlbnRCeVR5cGVOYW1lIiwiY29tYmluYXRvclZlcmlmaWVyIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE0RUE7OztlQUFBOzs7MERBMUVnQjsrREFDSzs0REFDSTtxQkFFQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUIsSUFBTUEsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLFVBQzFCQyxnQkFBZ0JELElBQUFBLGdCQUFTLEVBQUMsVUFDMUJFLHFCQUFxQkYsSUFBQUEsZ0JBQVMsRUFBQztBQUVyQyxJQUFBLEFBQU1HLG1DQUFOO2NBQU1BO2FBQUFBO2dDQUFBQTtRQUFOLE9BQUEsa0JBQU1BOztrQkFBQUE7O1lBQ0pDLEtBQUFBO21CQUFBQSxTQUFBQSxnQkFBZ0JDLGFBQWEsRUFBRUMsV0FBVztnQkFDeEMsSUFBSUM7Z0JBRUosSUFBTUMsa0JBQWtCSCxlQUNsQkksYUFBYUQsZ0JBQWdCRSxhQUFhLElBQzFDQyxtQkFBbUIsSUFBSSxDQUFDQyxnQkFBZ0IsQ0FBQ0gsWUFBWUg7Z0JBRTNEQyxnQ0FBZ0NJLGtCQUFtQixHQUFHO2dCQUV0RCxPQUFPSjtZQUNUOzs7V0FYSUo7RUFBMkJVLGlCQUFRO0FBYXZDLGlCQWJJVixvQkFhR1csUUFBTztJQUNaO1FBQ0VkLFdBQVdFO1FBQ1hhLFFBQVEsU0FBQ1YsZUFBZUM7WUFDdEIsSUFBTSxBQUFFVSxZQUFjQyxZQUFHLENBQWpCRCxXQUNGRSxlQUFlQyxjQUFZLENBQUNDLGVBQWUsQ0FBQ2QsY0FDNUNlLFVBQVVILGNBQ1ZJLFlBQVlOLFVBQVVPLGlCQUFpQixDQUFDbEIsZUFBZWdCLFVBQ3ZERyxjQUFjLE1BQ2RDLFNBQVMsT0FDVEMsb0JBQW9CSixVQUFVUCxNQUFNLENBQUNTLGFBQWFDLFFBQVFKO1lBRWhFLE9BQU9LO1FBQ1Q7SUFDRjtJQUNBO1FBQ0UxQixXQUFXRDtRQUNYZ0IsUUFBUSxTQUFDWSxVQUFVckI7WUFDakIsSUFBTSxBQUFFc0IsT0FBU1gsWUFBRyxDQUFaVyxNQUNGVixlQUFlQyxjQUFZLENBQUNDLGVBQWUsQ0FBQ2QsY0FDNUNlLFVBQVVILGNBQ1ZXLE9BQU9ELEtBQUtFLFlBQVksQ0FBQ0gsVUFBVU4sVUFDbkNVLGVBQWVGLEtBQUtkLE1BQU0sQ0FBQ00sU0FBUztnQkFDbEMsSUFBTVcsZ0JBQWdCO2dCQUV0QixPQUFPQTtZQUNUO1lBRU4sT0FBT0Q7UUFDVDtJQUNGO0lBQ0E7UUFDRS9CLFdBQVdDO1FBQ1hjLFFBQVEsU0FBQ2tCLFVBQVUzQjtZQUNqQixJQUFJNEIsZUFBZTtZQUVuQixJQUFNQyxXQUFXRixTQUFTRyxXQUFXLElBQy9CQyxjQUFjL0IsWUFBWWdDLHVCQUF1QixDQUFDSDtZQUV4RCxJQUFJRSxhQUFhO2dCQUNmSCxlQUFlO1lBQ2pCO1lBRUEsT0FBT0E7UUFDVDtJQUNGO0NBQ0Q7QUFHSCxJQUFNSyxxQkFBcUIsSUFBSXBDO0lBRS9CLFdBQWVvQyJ9
|
|
@@ -165,13 +165,13 @@ var ConstructorVerifier = /*#__PURE__*/ function(Verifier) {
|
|
|
165
165
|
{
|
|
166
166
|
key: "verifyTerm",
|
|
167
167
|
value: function verifyTerm(termNode, fileContext) {
|
|
168
|
-
var
|
|
169
|
-
var nonTerminalNode = termNode, childNodes = nonTerminalNode.getChildNodes(),
|
|
170
|
-
var
|
|
171
|
-
return
|
|
168
|
+
var termVerifiesAsConstructor;
|
|
169
|
+
var nonTerminalNode = termNode, childNodes = nonTerminalNode.getChildNodes(), childNodesVerify = this.verifyChildNodes(childNodes, fileContext, function() {
|
|
170
|
+
var verifiesAhead = true;
|
|
171
|
+
return verifiesAhead;
|
|
172
172
|
});
|
|
173
|
-
|
|
174
|
-
return
|
|
173
|
+
termVerifiesAsConstructor = childNodesVerify; ///
|
|
174
|
+
return termVerifiesAsConstructor;
|
|
175
175
|
}
|
|
176
176
|
},
|
|
177
177
|
{
|
|
@@ -180,21 +180,21 @@ var ConstructorVerifier = /*#__PURE__*/ function(Verifier) {
|
|
|
180
180
|
for(var _len = arguments.length, remainingArguments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
|
|
181
181
|
remainingArguments[_key - 1] = arguments[_key];
|
|
182
182
|
}
|
|
183
|
-
var
|
|
183
|
+
var terminalNodeVerifies;
|
|
184
184
|
var type = terminalNode.getType();
|
|
185
185
|
if (type === _constants.TYPE_TYPE) {
|
|
186
186
|
var verifyAhead = remainingArguments.pop(), lastRemainingArgument = last(remainingArguments), fileContext = lastRemainingArgument, content = terminalNode.getContent(), typeString = content; ///
|
|
187
187
|
fileContext.debug("The '".concat(typeString, "' type is present in the constructor but has not been declared beforehand."));
|
|
188
|
-
|
|
188
|
+
terminalNodeVerifies = false;
|
|
189
189
|
remainingArguments.push(verifyAhead);
|
|
190
190
|
} else {
|
|
191
191
|
var _$_get;
|
|
192
|
-
|
|
192
|
+
terminalNodeVerifies = (_$_get = _get(_get_prototype_of(ConstructorVerifier.prototype), "verifyTerminalNode", this)).call.apply(_$_get, [
|
|
193
193
|
this,
|
|
194
194
|
terminalNode
|
|
195
195
|
].concat(_to_consumable_array(remainingArguments)));
|
|
196
196
|
}
|
|
197
|
-
return
|
|
197
|
+
return terminalNodeVerifies;
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
200
|
]);
|
|
@@ -204,28 +204,28 @@ _define_property(ConstructorVerifier, "maps", [
|
|
|
204
204
|
{
|
|
205
205
|
nodeQuery: termNodeQuery,
|
|
206
206
|
verify: function(termNode, fileContext, verifyAhead) {
|
|
207
|
-
var Term = _dom.default.Term, localContext = _local.default.fromFileContext(fileContext), context = localContext, term = Term.fromTermNode(termNode, context),
|
|
208
|
-
return
|
|
207
|
+
var Term = _dom.default.Term, localContext = _local.default.fromFileContext(fileContext), context = localContext, term = Term.fromTermNode(termNode, context), termVerifies = term.verify(localContext, verifyAhead);
|
|
208
|
+
return termVerifies;
|
|
209
209
|
}
|
|
210
210
|
},
|
|
211
211
|
{
|
|
212
212
|
nodeQuery: typeNodeQuery,
|
|
213
213
|
verify: function(typeNode, fileContext, verifyAhead) {
|
|
214
|
-
var
|
|
214
|
+
var typeVerifies;
|
|
215
215
|
var typeName = typeNode.getTypeName(), typePresent = fileContext.isTypePresentByTypeName(typeName);
|
|
216
216
|
if (typePresent) {
|
|
217
|
-
var
|
|
218
|
-
|
|
217
|
+
var verifiesAhead = verifyAhead();
|
|
218
|
+
typeVerifies = verifiesAhead; ///
|
|
219
219
|
} else {
|
|
220
220
|
var typeString = typeName; ///
|
|
221
221
|
fileContext.debug("The '".concat(typeString, "' type is not present."));
|
|
222
|
-
|
|
222
|
+
typeVerifies = false;
|
|
223
223
|
}
|
|
224
|
-
return
|
|
224
|
+
return typeVerifies;
|
|
225
225
|
}
|
|
226
226
|
}
|
|
227
227
|
]);
|
|
228
228
|
var constructorVerifier = new ConstructorVerifier();
|
|
229
229
|
var _default = constructorVerifier;
|
|
230
230
|
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZmllci9jb25zdHJ1Y3Rvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IFZlcmlmaWVyIGZyb20gXCIuLi92ZXJpZmllclwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBUWVBFX1RZUEUgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgbGFzdCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybVwiKSxcbiAgICAgIHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdHlwZVwiKTtcblxuY2xhc3MgQ29uc3RydWN0b3JWZXJpZmllciBleHRlbmRzIFZlcmlmaWVyIHtcbiAgdmVyaWZ5VGVybSh0ZXJtTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgdGVybVZlcmlmaWVzQXNDb25zdHJ1Y3RvcjtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IHRlcm1Ob2RlLCAvLy9cbiAgICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBjaGlsZE5vZGVzVmVyaWZ5ID0gdGhpcy52ZXJpZnlDaGlsZE5vZGVzKGNoaWxkTm9kZXMsIGZpbGVDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2ZXJpZmllc0FoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVzQWhlYWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICB0ZXJtVmVyaWZpZXNBc0NvbnN0cnVjdG9yID0gY2hpbGROb2Rlc1ZlcmlmeTsgIC8vL1xuXG4gICAgcmV0dXJuIHRlcm1WZXJpZmllc0FzQ29uc3RydWN0b3I7XG4gIH1cblxuICB2ZXJpZnlUZXJtaW5hbE5vZGUodGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgdGVybWluYWxOb2RlVmVyaWZpZXM7XG5cbiAgICBjb25zdCB0eXBlID0gdGVybWluYWxOb2RlLmdldFR5cGUoKTtcblxuICAgIGlmICh0eXBlID09PSBUWVBFX1RZUEUpIHtcbiAgICAgIGNvbnN0IHZlcmlmeUFoZWFkID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLCAvLy9cbiAgICAgICAgICAgIGxhc3RSZW1haW5pbmdBcmd1bWVudCA9IGxhc3QocmVtYWluaW5nQXJndW1lbnRzKSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0ID0gbGFzdFJlbWFpbmluZ0FyZ3VtZW50LCAgLy8vXG4gICAgICAgICAgICBjb250ZW50ID0gdGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICAgIHR5cGVTdHJpbmcgPSBjb250ZW50OyAvLy9cblxuICAgICAgZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBwcmVzZW50IGluIHRoZSBjb25zdHJ1Y3RvciBidXQgaGFzIG5vdCBiZWVuIGRlY2xhcmVkIGJlZm9yZWhhbmQuYCk7XG5cbiAgICAgIHRlcm1pbmFsTm9kZVZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICAgIHJlbWFpbmluZ0FyZ3VtZW50cy5wdXNoKHZlcmlmeUFoZWFkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGVybWluYWxOb2RlVmVyaWZpZXMgPSBzdXBlci52ZXJpZnlUZXJtaW5hbE5vZGUodGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtaW5hbE5vZGVWZXJpZmllcztcbiAgfVxuXG4gIHN0YXRpYyBtYXBzID0gW1xuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdGVybU5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKHRlcm1Ob2RlLCBmaWxlQ29udGV4dCwgdmVyaWZ5QWhlYWQpID0+IHtcbiAgICAgICAgY29uc3QgeyBUZXJtIH0gPSBkb20sXG4gICAgICAgICAgICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgICBjb250ZXh0ID0gbG9jYWxDb250ZXh0LCAvLy9cbiAgICAgICAgICAgICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgdGVybVZlcmlmaWVzID0gdGVybS52ZXJpZnkobG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgcmV0dXJuIHRlcm1WZXJpZmllcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdHlwZU5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKHR5cGVOb2RlLCBmaWxlQ29udGV4dCwgdmVyaWZ5QWhlYWQpID0+IHtcbiAgICAgICAgbGV0IHR5cGVWZXJpZmllcztcblxuICAgICAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOb2RlLmdldFR5cGVOYW1lKCksXG4gICAgICAgICAgICAgIHR5cGVQcmVzZW50ID0gZmlsZUNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gICAgICAgIGlmICh0eXBlUHJlc2VudCkge1xuICAgICAgICAgIGNvbnN0IHZlcmlmaWVzQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgICAgICAgdHlwZVZlcmlmaWVzID0gdmVyaWZpZXNBaGVhZDsgLy8vXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdHlwZVN0cmluZyA9IHR5cGVOYW1lOyAgLy8vXG5cbiAgICAgICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBwcmVzZW50LmApO1xuXG4gICAgICAgICAgdHlwZVZlcmlmaWVzID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHlwZVZlcmlmaWVzO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY29uc3QgY29uc3RydWN0b3JWZXJpZmllciA9IG5ldyBDb25zdHJ1Y3RvclZlcmlmaWVyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbnN0cnVjdG9yVmVyaWZpZXI7XG4iXSwibmFtZXMiOlsibGFzdCIsImFycmF5VXRpbGl0aWVzIiwidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVOb2RlUXVlcnkiLCJDb25zdHJ1Y3RvclZlcmlmaWVyIiwidmVyaWZ5VGVybSIsInRlcm1Ob2RlIiwiZmlsZUNvbnRleHQiLCJ0ZXJtVmVyaWZpZXNBc0NvbnN0cnVjdG9yIiwibm9uVGVybWluYWxOb2RlIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJjaGlsZE5vZGVzVmVyaWZ5IiwidmVyaWZ5Q2hpbGROb2RlcyIsInZlcmlmaWVzQWhlYWQiLCJ2ZXJpZnlUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJ0ZXJtaW5hbE5vZGVWZXJpZmllcyIsInR5cGUiLCJnZXRUeXBlIiwiVFlQRV9UWVBFIiwidmVyaWZ5QWhlYWQiLCJwb3AiLCJsYXN0UmVtYWluaW5nQXJndW1lbnQiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsInR5cGVTdHJpbmciLCJkZWJ1ZyIsInB1c2giLCJWZXJpZmllciIsIm1hcHMiLCJ2ZXJpZnkiLCJUZXJtIiwiZG9tIiwibG9jYWxDb250ZXh0IiwiTG9jYWxDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwiY29udGV4dCIsInRlcm0iLCJmcm9tVGVybU5vZGUiLCJ0ZXJtVmVyaWZpZXMiLCJ0eXBlTm9kZSIsInR5cGVWZXJpZmllcyIsInR5cGVOYW1lIiwiZ2V0VHlwZU5hbWUiLCJ0eXBlUHJlc2VudCIsImlzVHlwZVByZXNlbnRCeVR5cGVOYW1lIiwiY29uc3RydWN0b3JWZXJpZmllciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBa0dBOzs7ZUFBQTs7O3lCQWhHK0I7MERBRWY7K0RBQ0s7NERBQ0k7cUJBRUM7eUJBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTFCLElBQU0sQUFBRUEsT0FBU0MseUJBQWMsQ0FBdkJEO0FBRVIsSUFBTUUsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLFVBQzFCQyxnQkFBZ0JELElBQUFBLGdCQUFTLEVBQUM7QUFFaEMsSUFBQSxBQUFNRSxvQ0FBTjtjQUFNQTthQUFBQTtnQ0FBQUE7UUFBTixPQUFBLGtCQUFNQTs7a0JBQUFBOztZQUNKQyxLQUFBQTttQkFBQUEsU0FBQUEsV0FBV0MsUUFBUSxFQUFFQyxXQUFXO2dCQUM5QixJQUFJQztnQkFFSixJQUFNQyxrQkFBa0JILFVBQ2xCSSxhQUFhRCxnQkFBZ0JFLGFBQWEsSUFDMUNDLG1CQUFtQixJQUFJLENBQUNDLGdCQUFnQixDQUFDSCxZQUFZSCxhQUFhO29CQUNoRSxJQUFNTyxnQkFBZ0I7b0JBRXRCLE9BQU9BO2dCQUNUO2dCQUVOTiw0QkFBNEJJLGtCQUFtQixHQUFHO2dCQUVsRCxPQUFPSjtZQUNUOzs7WUFFQU8sS0FBQUE7bUJBQUFBLFNBQUFBLG1CQUFtQkMsWUFBWTtnQkFBRSxJQUFBLElBQUEsT0FBQSxVQUFBLFFBQUEsQUFBR0MscUJBQUgsVUFBQSxPQUFBLElBQUEsT0FBQSxRQUFBLE9BQUEsR0FBQSxPQUFBLE1BQUE7b0JBQUdBLG1CQUFILE9BQUEsS0FBQSxTQUFBLENBQUEsS0FBcUI7O2dCQUNwRCxJQUFJQztnQkFFSixJQUFNQyxPQUFPSCxhQUFhSSxPQUFPO2dCQUVqQyxJQUFJRCxTQUFTRSxvQkFBUyxFQUFFO29CQUN0QixJQUFNQyxjQUFjTCxtQkFBbUJNLEdBQUcsSUFDcENDLHdCQUF3QnpCLEtBQUtrQixxQkFDN0JWLGNBQWNpQix1QkFDZEMsVUFBVVQsYUFBYVUsVUFBVSxJQUNqQ0MsYUFBYUYsU0FBUyxHQUFHO29CQUUvQmxCLFlBQVlxQixLQUFLLENBQUMsQUFBQyxRQUFrQixPQUFYRCxZQUFXO29CQUVyQ1QsdUJBQXVCO29CQUV2QkQsbUJBQW1CWSxJQUFJLENBQUNQO2dCQUMxQixPQUFPO3dCQUNrQjtvQkFBdkJKLHdCQUF1QixTQUFBLHVCQW5DdkJkLGdDQW1DNkJXLHNCQUFOLElBQUssY0FBTDs7d0JBQXlCQzs2QkFBYyxxQkFBR0M7Z0JBQ25FO2dCQUVBLE9BQU9DO1lBQ1Q7OztXQXZDSWQ7RUFBNEIwQixpQkFBUTtBQXlDeEMsaUJBekNJMUIscUJBeUNHMkIsUUFBTztJQUNaO1FBQ0U3QixXQUFXRDtRQUNYK0IsUUFBUSxTQUFDMUIsVUFBVUMsYUFBYWU7WUFDOUIsSUFBTSxBQUFFVyxPQUFTQyxZQUFHLENBQVpELE1BQ0ZFLGVBQWVDLGNBQVksQ0FBQ0MsZUFBZSxDQUFDOUIsY0FDNUMrQixVQUFVSCxjQUNWSSxPQUFPTixLQUFLTyxZQUFZLENBQUNsQyxVQUFVZ0MsVUFDbkNHLGVBQWVGLEtBQUtQLE1BQU0sQ0FBQ0csY0FBY2I7WUFFL0MsT0FBT21CO1FBQ1Q7SUFDRjtJQUNBO1FBQ0V2QyxXQUFXQztRQUNYNkIsUUFBUSxTQUFDVSxVQUFVbkMsYUFBYWU7WUFDOUIsSUFBSXFCO1lBRUosSUFBTUMsV0FBV0YsU0FBU0csV0FBVyxJQUMvQkMsY0FBY3ZDLFlBQVl3Qyx1QkFBdUIsQ0FBQ0g7WUFFeEQsSUFBSUUsYUFBYTtnQkFDZixJQUFNaEMsZ0JBQWdCUTtnQkFFdEJxQixlQUFlN0IsZUFBZSxHQUFHO1lBQ25DLE9BQU87Z0JBQ0wsSUFBTWEsYUFBYWlCLFVBQVcsR0FBRztnQkFFakNyQyxZQUFZcUIsS0FBSyxDQUFDLEFBQUMsUUFBa0IsT0FBWEQsWUFBVztnQkFFckNnQixlQUFlO1lBQ2pCO1lBRUEsT0FBT0E7UUFDVDtJQUNGO0NBQ0Q7QUFHSCxJQUFNSyxzQkFBc0IsSUFBSTVDO0lBRWhDLFdBQWU0QyJ9
|