occam-verify-cli 0.0.902 → 0.0.904
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/axiomLemmaTheoremConjecture.js +18 -34
- package/lib/conclusion.js +3 -3
- package/lib/constants.js +1 -9
- package/lib/metaLemmaMetatheorem.js +22 -40
- package/lib/rule.js +45 -83
- package/lib/ruleNames.js +1 -21
- package/lib/utilities/array.js +49 -42
- package/lib/utilities/verifier.js +4 -10
- package/lib/verifier/node/metastatement.js +31 -6
- package/lib/verifier/node/statementAsCombinator.js +31 -6
- package/lib/verifier/node/termAsConstructor.js +25 -5
- package/lib/verifier/nodes/equality.js +13 -3
- package/lib/verifier/nodes/intrinsicLevel.js +13 -3
- package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +13 -3
- package/lib/verifier/nodes/metaLevel.js +13 -3
- package/lib/verifier/nodes/statementAgainstCombinator.js +13 -3
- package/lib/verifier/nodes/termAgainstConstructor.js +13 -3
- package/lib/verify/containedAssertion.js +2 -2
- package/lib/verify/premise.js +1 -3
- package/lib/verify/statement/qualified.js +4 -7
- package/lib/verify/statement/unqualified.js +2 -5
- package/lib/verify/statement.js +34 -19
- package/lib/verify/statementAsCombinator.js +1 -2
- package/package.json +1 -1
- package/src/axiomLemmaTheoremConjecture.js +27 -47
- package/src/conclusion.js +2 -2
- package/src/constants.js +0 -2
- package/src/metaLemmaMetatheorem.js +33 -54
- package/src/rule.js +58 -101
- package/src/ruleNames.js +0 -5
- package/src/utilities/array.js +22 -42
- package/src/utilities/verifier.js +3 -11
- package/src/verifier/node/metastatement.js +46 -6
- package/src/verifier/node/statementAsCombinator.js +50 -10
- package/src/verifier/node/termAsConstructor.js +37 -6
- package/src/verifier/nodes/equality.js +19 -4
- package/src/verifier/nodes/intrinsicLevel.js +18 -3
- package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +18 -3
- package/src/verifier/nodes/metaLevel.js +19 -4
- package/src/verifier/nodes/statementAgainstCombinator.js +18 -3
- package/src/verifier/nodes/termAgainstConstructor.js +19 -4
- package/src/verify/containedAssertion.js +1 -1
- package/src/verify/premise.js +0 -2
- package/src/verify/statement/qualified.js +3 -7
- package/src/verify/statement/unqualified.js +1 -5
- package/src/verify/statement.js +38 -18
- package/src/verify/statementAsCombinator.js +0 -1
- package/lib/permutationsMatrix.js +0 -466136
- package/lib/utilities/permutations.js +0 -114
- package/src/permutationsMatrix.js +0 -6
- package/src/utilities/permutations.js +0 -148
package/lib/rule.js
CHANGED
|
@@ -72,25 +72,11 @@ var Rule = /*#__PURE__*/ function() {
|
|
|
72
72
|
{
|
|
73
73
|
key: "matchStatement",
|
|
74
74
|
value: function matchStatement(statementNode, localContext) {
|
|
75
|
-
var
|
|
76
|
-
var
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
var substitutions = [], conclusionMatches = matchConclusion(this.conclusion, statementNode, substitutions, this.fileContext, localContext);
|
|
75
|
+
var statementNatches = false;
|
|
76
|
+
var proofSteps = localContext.getProofSteps(), substitutions = [], premisesMatch = matchPremises(this.premises, proofSteps, substitutions, this.fileContext, localContext);
|
|
77
|
+
if (premisesMatch) {
|
|
78
|
+
var conclusionMatches = matchConclusion(this.conclusion, statementNode, substitutions, this.fileContext, localContext);
|
|
80
79
|
statementNatches = conclusionMatches; ///
|
|
81
|
-
} else {
|
|
82
|
-
var proofSteps = localContext.getProofSteps();
|
|
83
|
-
statementNatches = (0, _array.someSubArray)(proofSteps, premisesLength, function(proofSteps) {
|
|
84
|
-
var premisesMatchConclusion = false;
|
|
85
|
-
var substitutions = [], premisesMatch = matchPremises(_this.premises, proofSteps, substitutions, _this.fileContext, localContext);
|
|
86
|
-
if (premisesMatch) {
|
|
87
|
-
var conclusionMatches = matchConclusion(_this.conclusion, statementNode, substitutions, _this.fileContext, localContext);
|
|
88
|
-
premisesMatchConclusion = conclusionMatches; ///
|
|
89
|
-
}
|
|
90
|
-
if (premisesMatchConclusion) {
|
|
91
|
-
return true;
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
80
|
}
|
|
95
81
|
return statementNatches;
|
|
96
82
|
}
|
|
@@ -98,25 +84,11 @@ var Rule = /*#__PURE__*/ function() {
|
|
|
98
84
|
{
|
|
99
85
|
key: "matchMetastatement",
|
|
100
86
|
value: function matchMetastatement(metastatementNode, localMetaContext) {
|
|
101
|
-
var
|
|
102
|
-
var
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
var substitutions = [], conclusionMatches = metaMatchConclusion(this.conclusion, metastatementNode, substitutions, this.fileContext, localMetaContext);
|
|
87
|
+
var metastatementNatches = false;
|
|
88
|
+
var metaproofSteps = localMetaContext.getMetaproofSteps(), substitutions = [], premisesMatch = metaMatchPremises(this.premises, metaproofSteps, substitutions, this.fileContext, localMetaContext);
|
|
89
|
+
if (premisesMatch) {
|
|
90
|
+
var conclusionMatches = metaMatchConclusion(this.conclusion, metastatementNode, substitutions, this.fileContext, localMetaContext);
|
|
106
91
|
metastatementNatches = conclusionMatches; ///
|
|
107
|
-
} else {
|
|
108
|
-
var metaproofSteps = localMetaContext.getMetaproofSteps();
|
|
109
|
-
metastatementNatches = (0, _array.someSubArray)(metaproofSteps, premisesLength, function(metaproofSteps) {
|
|
110
|
-
var premisesMatchConclusion = false;
|
|
111
|
-
var substitutions = [], premisesMatch = metaMatchPremises(_this.premises, metaproofSteps, substitutions, _this.fileContext, localMetaContext);
|
|
112
|
-
if (premisesMatch) {
|
|
113
|
-
var conclusionMatches = metaMatchConclusion(_this.conclusion, metastatementNode, substitutions, _this.fileContext, localMetaContext);
|
|
114
|
-
premisesMatchConclusion = conclusionMatches; ///
|
|
115
|
-
}
|
|
116
|
-
if (premisesMatchConclusion) {
|
|
117
|
-
return true;
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
92
|
}
|
|
121
93
|
return metastatementNatches;
|
|
122
94
|
}
|
|
@@ -185,28 +157,24 @@ var Rule = /*#__PURE__*/ function() {
|
|
|
185
157
|
]);
|
|
186
158
|
return Rule;
|
|
187
159
|
}();
|
|
188
|
-
function matchPremise(premise,
|
|
189
|
-
var
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
if (statementNodeMatches) {
|
|
200
|
-
return true;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}) || null;
|
|
204
|
-
var premiseMatches = proofStep !== null;
|
|
160
|
+
function matchPremise(premise, proofStep, substitutions, fileContext, localContext) {
|
|
161
|
+
var premiseMatches = false;
|
|
162
|
+
var subproofNode = proofStep.getSubproofNode(), statementNode = proofStep.getStatementNode();
|
|
163
|
+
if (subproofNode !== null) {
|
|
164
|
+
var subproofNodeMatches = premise.matchSubproofNode(subproofNode, substitutions, fileContext, localContext);
|
|
165
|
+
premiseMatches = subproofNodeMatches; ///
|
|
166
|
+
}
|
|
167
|
+
if (statementNode !== null) {
|
|
168
|
+
var statementNodeMatches = premise.matchStatementNode(statementNode, substitutions, fileContext, localContext);
|
|
169
|
+
premiseMatches = statementNodeMatches; ///
|
|
170
|
+
}
|
|
205
171
|
return premiseMatches;
|
|
206
172
|
}
|
|
207
|
-
function matchPremises(
|
|
208
|
-
|
|
209
|
-
|
|
173
|
+
function matchPremises(premises, proofSteps, substitutions, fileContext, localContext) {
|
|
174
|
+
premises = (0, _array.reverse)(premises); ///
|
|
175
|
+
proofSteps = (0, _array.reverse)(proofSteps); ///
|
|
176
|
+
var premisesMatch = (0, _array.correlate)(premises, proofSteps, function(premise, proofStep) {
|
|
177
|
+
var premiseMatches = matchPremise(premise, proofStep, substitutions, fileContext, localContext);
|
|
210
178
|
if (premiseMatches) {
|
|
211
179
|
return true;
|
|
212
180
|
}
|
|
@@ -217,34 +185,28 @@ function matchConclusion(conclusion, statementNode, substitutions, fileContext,
|
|
|
217
185
|
var statementNodeMatches = conclusion.matchStatementNode(statementNode, substitutions, fileContext, localContext), conclusionMatches = statementNodeMatches; ///
|
|
218
186
|
return conclusionMatches;
|
|
219
187
|
}
|
|
220
|
-
function metaMatchPremise(premise,
|
|
221
|
-
var
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
if (metastatementNode !== null) {
|
|
236
|
-
var metastatementNodeMatches = premise.matchMetastatementNode(metastatementNode, substitutions, fileContext, localMetaContext);
|
|
237
|
-
if (metastatementNodeMatches) {
|
|
238
|
-
return true;
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
}) || null;
|
|
242
|
-
var premiseMatches = metaproofStep !== null;
|
|
188
|
+
function metaMatchPremise(premise, metaproofStep, substitutions, fileContext, localMetaContext) {
|
|
189
|
+
var premiseMatches = false;
|
|
190
|
+
var ruleSubproofNode = metaproofStep.getRuleSubproofNode(), metaSubproofNode = metaproofStep.getMetaSubproofNode(), metastatementNode = metaproofStep.getMetastatementNode();
|
|
191
|
+
if (ruleSubproofNode !== null) {
|
|
192
|
+
var ruleSubProofNodeMatches = premise.matchRuleSubproofNode(ruleSubproofNode, substitutions, fileContext, localMetaContext);
|
|
193
|
+
premiseMatches = ruleSubProofNodeMatches; ///
|
|
194
|
+
}
|
|
195
|
+
if (metaSubproofNode !== null) {
|
|
196
|
+
var metaSubProofNodeMatches = premise.matchMetaSubproofNode(metaSubproofNode, substitutions, fileContext, localMetaContext);
|
|
197
|
+
premiseMatches = metaSubProofNodeMatches; ///
|
|
198
|
+
}
|
|
199
|
+
if (metastatementNode !== null) {
|
|
200
|
+
var metastatementNodeMatches = premise.matchMetastatementNode(metastatementNode, substitutions, fileContext, localMetaContext);
|
|
201
|
+
premiseMatches = metastatementNodeMatches; ///
|
|
202
|
+
}
|
|
243
203
|
return premiseMatches;
|
|
244
204
|
}
|
|
245
|
-
function metaMatchPremises(
|
|
246
|
-
|
|
247
|
-
|
|
205
|
+
function metaMatchPremises(premises, metaproofSteps, substitutions, fileContext, localMetaContext) {
|
|
206
|
+
premises = (0, _array.reverse)(premises); ///
|
|
207
|
+
metaproofSteps = (0, _array.reverse)(metaproofSteps); ///
|
|
208
|
+
var premisesMatch = (0, _array.correlate)(premises, metaproofSteps, function(premise, metaproofStep) {
|
|
209
|
+
var premiseMatches = metaMatchPremise(premise, metaproofStep, substitutions, fileContext, localMetaContext);
|
|
248
210
|
if (premiseMatches) {
|
|
249
211
|
return true;
|
|
250
212
|
}
|
|
@@ -256,4 +218,4 @@ function metaMatchConclusion(conclusion, metastatementNode, substitutions, fileC
|
|
|
256
218
|
return conclusionMatches;
|
|
257
219
|
}
|
|
258
220
|
|
|
259
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTGFiZWwgZnJvbSBcIi4vbGFiZWxcIjtcbmltcG9ydCBQcmVtaXNlIGZyb20gXCIuL3ByZW1pc2VcIjtcbmltcG9ydCBDb25jbHVzaW9uIGZyb20gXCIuL2NvbmNsdXNpb25cIjtcblxuaW1wb3J0IHsgZXh0cmFjdCB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgc29tZVN1YkFycmF5IH0gZnJvbSBcIi4vdXRpbGl0aWVzL2FycmF5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJ1bGUge1xuICBjb25zdHJ1Y3RvcihsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uLCBmaWxlQ29udGV4dCkge1xuICAgIHRoaXMubGFiZWxzID0gbGFiZWxzO1xuICAgIHRoaXMucHJlbWlzZXMgPSBwcmVtaXNlcztcbiAgICB0aGlzLmNvbmNsdXNpb24gPSBjb25jbHVzaW9uO1xuICAgIHRoaXMuZmlsZUNvbnRleHQgPSBmaWxlQ29udGV4dDtcbiAgfVxuXG4gIGdldExhYmVscygpIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbHM7XG4gIH1cblxuICBnZXRQcmVtaXNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVtaXNlcztcbiAgfVxuXG4gIGdldENvbmNsdXNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uY2x1c2lvbjtcbiAgfVxuXG4gIGdldEZpbGVDb250ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZXh0O1xuICB9XG5cbiAgbWF0Y2hTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudE5hdGNoZXM7XG5cbiAgICBjb25zdCBwcmVtaXNlc0xlbmd0aCA9IHRoaXMucHJlbWlzZXMubGVuZ3RoO1xuXG4gICAgaWYgKHByZW1pc2VzTGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25zID0gW10sXG4gICAgICAgICAgICBjb25jbHVzaW9uTWF0Y2hlcyA9IG1hdGNoQ29uY2x1c2lvbih0aGlzLmNvbmNsdXNpb24sIHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIHRoaXMuZmlsZUNvbnRleHQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIHN0YXRlbWVudE5hdGNoZXMgPSBjb25jbHVzaW9uTWF0Y2hlczsgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHByb29mU3RlcHMgPSBsb2NhbENvbnRleHQuZ2V0UHJvb2ZTdGVwcygpO1xuXG4gICAgICBzdGF0ZW1lbnROYXRjaGVzID0gc29tZVN1YkFycmF5KHByb29mU3RlcHMsIHByZW1pc2VzTGVuZ3RoLCAocHJvb2ZTdGVwcykgPT4ge1xuICAgICAgICBsZXQgcHJlbWlzZXNNYXRjaENvbmNsdXNpb24gPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25zID0gW10sXG4gICAgICAgICAgICAgIHByZW1pc2VzTWF0Y2ggPSBtYXRjaFByZW1pc2VzKHRoaXMucHJlbWlzZXMsIHByb29mU3RlcHMsIHN1YnN0aXR1dGlvbnMsIHRoaXMuZmlsZUNvbnRleHQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHByZW1pc2VzTWF0Y2gpIHtcbiAgICAgICAgICBjb25zdCBjb25jbHVzaW9uTWF0Y2hlcyA9IG1hdGNoQ29uY2x1c2lvbih0aGlzLmNvbmNsdXNpb24sIHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIHRoaXMuZmlsZUNvbnRleHQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgICBwcmVtaXNlc01hdGNoQ29uY2x1c2lvbiA9IGNvbmNsdXNpb25NYXRjaGVzOyAgLy8vXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJlbWlzZXNNYXRjaENvbmNsdXNpb24pIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudE5hdGNoZXM7XG4gIH1cblxuICBtYXRjaE1ldGFzdGF0ZW1lbnQobWV0YXN0YXRlbWVudE5vZGUsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgICBsZXQgbWV0YXN0YXRlbWVudE5hdGNoZXM7XG5cbiAgICBjb25zdCBwcmVtaXNlc0xlbmd0aCA9IHRoaXMucHJlbWlzZXMubGVuZ3RoO1xuXG4gICAgaWYgKHByZW1pc2VzTGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25zID0gW10sXG4gICAgICAgICAgICBjb25jbHVzaW9uTWF0Y2hlcyA9IG1ldGFNYXRjaENvbmNsdXNpb24odGhpcy5jb25jbHVzaW9uLCBtZXRhc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgdGhpcy5maWxlQ29udGV4dCwgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgIG1ldGFzdGF0ZW1lbnROYXRjaGVzID0gY29uY2x1c2lvbk1hdGNoZXM7IC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtZXRhcHJvb2ZTdGVwcyA9IGxvY2FsTWV0YUNvbnRleHQuZ2V0TWV0YXByb29mU3RlcHMoKTtcblxuICAgICAgbWV0YXN0YXRlbWVudE5hdGNoZXMgPSBzb21lU3ViQXJyYXkobWV0YXByb29mU3RlcHMsIHByZW1pc2VzTGVuZ3RoLCAobWV0YXByb29mU3RlcHMpID0+IHtcbiAgICAgICAgbGV0IHByZW1pc2VzTWF0Y2hDb25jbHVzaW9uID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IFtdLFxuICAgICAgICAgICAgICBwcmVtaXNlc01hdGNoID0gbWV0YU1hdGNoUHJlbWlzZXModGhpcy5wcmVtaXNlcywgbWV0YXByb29mU3RlcHMsIHN1YnN0aXR1dGlvbnMsIHRoaXMuZmlsZUNvbnRleHQsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgICAgIGlmIChwcmVtaXNlc01hdGNoKSB7XG4gICAgICAgICAgY29uc3QgY29uY2x1c2lvbk1hdGNoZXMgPSBtZXRhTWF0Y2hDb25jbHVzaW9uKHRoaXMuY29uY2x1c2lvbiwgbWV0YXN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIHRoaXMuZmlsZUNvbnRleHQsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgICAgICAgcHJlbWlzZXNNYXRjaENvbmNsdXNpb24gPSBjb25jbHVzaW9uTWF0Y2hlczsgIC8vL1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByZW1pc2VzTWF0Y2hDb25jbHVzaW9uKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhc3RhdGVtZW50TmF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMgPSB0aGlzLmxhYmVscy5zb21lKChsYWJlbCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWxNYXRjaGVzTWV0YXZhcmlhYmxlTm9kZSA9IGxhYmVsLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgICAgaWYgKGxhYmVsTWF0Y2hlc01ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlTm9kZU1hdGNoZXM7XG4gIH1cblxuICB0b0pTT04odG9rZW5zKSB7XG4gICAgY29uc3QgbGFiZWxzSlNPTiA9IHRoaXMubGFiZWxzLm1hcCgobGFiZWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsSlNPTiA9IGxhYmVsLnRvSlNPTih0b2tlbnMpO1xuXG4gICAgICAgICAgICByZXR1cm4gbGFiZWxKU09OO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHByZW1pc2VzSlNPTiA9IHRoaXMucHJlbWlzZXMubWFwKChwcmVtaXNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcmVtaXNlSlNPTiA9IHByZW1pc2UudG9KU09OKHRva2Vucyk7XG5cbiAgICAgICAgICAgIHJldHVybiBwcmVtaXNlSlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjb25jbHVzaW9uSlNPTiA9IHRoaXMuY29uY2x1c2lvbi50b0pTT04odG9rZW5zKSxcbiAgICAgICAgICBsYWJlbHMgPSBsYWJlbHNKU09OLCAgLy8vXG4gICAgICAgICAgcHJlbWlzZXMgPSBwcmVtaXNlc0pTT04sICAvLy9cbiAgICAgICAgICBjb25jbHVzaW9uID0gY29uY2x1c2lvbkpTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgbGFiZWxzLFxuICAgICAgICAgICAgcHJlbWlzZXMsXG4gICAgICAgICAgICBjb25jbHVzaW9uXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OQW5kRmlsZUNvbnRleHQoanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgcnVsZTtcblxuICAgIGxldCB7IGxhYmVscyB9ID0ganNvbjtcblxuICAgIGNvbnN0IGxhYmVsc0pTT04gPSBsYWJlbHM7ICAvLy9cblxuICAgIGxhYmVscyA9IGxhYmVsc0pTT04ubWFwKChsYWJlbEpTT04pID0+IHtcbiAgICAgIGNvbnN0IGpzb24gPSBsYWJlbEpTT04sIC8vL1xuICAgICAgICAgICAgbGFiZWwgPSBMYWJlbC5mcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgICAgcmV0dXJuIGxhYmVsO1xuICAgIH0pO1xuXG4gICAgbGV0IHsgcHJlbWlzZXMgfSA9IGpzb247XG5cbiAgICBjb25zdCBwcmVtaXNlc0pTT04gPSBwcmVtaXNlczsgIC8vL1xuXG4gICAgcHJlbWlzZXMgPSBwcmVtaXNlc0pTT04ubWFwKChwcmVtaXNlSlNPTikgPT4ge1xuICAgICAgY29uc3QganNvbiA9IHByZW1pc2VKU09OLCAvLy9cbiAgICAgICAgICAgIHByZW1pc2UgPSBQcmVtaXNlLmZyb21KU09OQW5kRmlsZUNvbnRleHQoanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gcHJlbWlzZTtcbiAgICB9KTtcblxuICAgIGxldCB7IGNvbmNsdXNpb24gfSA9IGpzb247XG5cbiAgICBjb25zdCBjb25jbHVzaW9uSlNPTiA9IGNvbmNsdXNpb247ICAvLy9cblxuICAgIGpzb24gPSBjb25jbHVzaW9uSlNPTjsgIC8vL1xuXG4gICAgY29uY2x1c2lvbiA9IENvbmNsdXNpb24uZnJvbUpTT05BbmRGaWxlQ29udGV4dChqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICBydWxlID0gbmV3IFJ1bGUobGFiZWxzLCBwcmVtaXNlcywgY29uY2x1c2lvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHJ1bGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUxhYmVsc1ByZW1pc2VzQ29uY2x1c2lvbkFuZEZpbGVDb250ZXh0KGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24sIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgcnVsZSA9IG5ldyBSdWxlKGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24sIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiBydWxlO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJlbWlzZShwcmVtaXNlLCBwcm9vZlN0ZXBzLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbG9jYWxDb250ZXh0KSB7XG4gIGNvbnN0IHByb29mU3RlcCA9IGV4dHJhY3QocHJvb2ZTdGVwcywgKHByb29mU3RlcCkgPT4ge1xuICAgIGNvbnN0IHN1YnByb29mTm9kZSA9IHByb29mU3RlcC5nZXRTdWJwcm9vZk5vZGUoKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gcHJvb2ZTdGVwLmdldFN0YXRlbWVudE5vZGUoKTtcblxuICAgIGlmIChzdWJwcm9vZk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN1YnByb29mTm9kZU1hdGNoZXMgPSBwcmVtaXNlLm1hdGNoU3VicHJvb2ZOb2RlKHN1YnByb29mTm9kZSwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmIChzdWJwcm9vZk5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHByZW1pc2UubWF0Y2hTdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50Tm9kZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9KSB8fCBudWxsO1xuXG4gIGNvbnN0IHByZW1pc2VNYXRjaGVzID0gKHByb29mU3RlcCAhPT0gbnVsbCk7XG5cbiAgcmV0dXJuIHByZW1pc2VNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByZW1pc2VzKHByZW1pc2UsIHByb29mU3RlcHMsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBsb2NhbENvbnRleHQpIHtcbiAgY29uc3QgcHJlbWlzZXNNYXRjaCA9IHByZW1pc2UuZXZlcnkoKHByZW1pc2UpID0+IHtcbiAgICBjb25zdCBwcmVtaXNlTWF0Y2hlcyA9IG1hdGNoUHJlbWlzZShwcmVtaXNlLCBwcm9vZlN0ZXBzLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChwcmVtaXNlTWF0Y2hlcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcHJlbWlzZXNNYXRjaDtcbn1cblxuZnVuY3Rpb24gbWF0Y2hDb25jbHVzaW9uKGNvbmNsdXNpb24sIHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBsb2NhbENvbnRleHQpIHtcbiAgY29uc3Qgc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBjb25jbHVzaW9uLm1hdGNoU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbG9jYWxDb250ZXh0KSxcbiAgICAgICAgY29uY2x1c2lvbk1hdGNoZXMgPSBzdGF0ZW1lbnROb2RlTWF0Y2hlczsgLy8vXG5cbiAgcmV0dXJuIGNvbmNsdXNpb25NYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtZXRhTWF0Y2hQcmVtaXNlKHByZW1pc2UsIG1ldGFwcm9vZlN0ZXBzLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBjb25zdCBtZXRhcHJvb2ZTdGVwID0gZXh0cmFjdChtZXRhcHJvb2ZTdGVwcywgKG1ldGFwcm9vZlN0ZXApID0+IHtcbiAgICBjb25zdCBydWxlU3VicHJvb2ZOb2RlID0gbWV0YXByb29mU3RlcC5nZXRSdWxlU3VicHJvb2ZOb2RlKCksXG4gICAgICAgICAgbWV0YVN1YnByb29mTm9kZSA9IG1ldGFwcm9vZlN0ZXAuZ2V0TWV0YVN1YnByb29mTm9kZSgpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXByb29mU3RlcC5nZXRNZXRhc3RhdGVtZW50Tm9kZSgpXG5cbiAgICBpZiAocnVsZVN1YnByb29mTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcnVsZVN1YlByb29mTm9kZU1hdGNoZXMgPSBwcmVtaXNlLm1hdGNoUnVsZVN1YnByb29mTm9kZShydWxlU3VicHJvb2ZOb2RlLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgIGlmIChydWxlU3ViUHJvb2ZOb2RlTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobWV0YVN1YnByb29mTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgbWV0YVN1YlByb29mTm9kZU1hdGNoZXMgPSBwcmVtaXNlLm1hdGNoTWV0YVN1YnByb29mTm9kZShtZXRhU3VicHJvb2ZOb2RlLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgIGlmIChtZXRhU3ViUHJvb2ZOb2RlTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobWV0YXN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHByZW1pc2UubWF0Y2hNZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgICBpZiAobWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfSkgfHwgbnVsbDtcblxuICBjb25zdCBwcmVtaXNlTWF0Y2hlcyA9IChtZXRhcHJvb2ZTdGVwICE9PSBudWxsKTtcblxuICByZXR1cm4gcHJlbWlzZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1ldGFNYXRjaFByZW1pc2VzKHByZW1pc2UsIG1ldGFwcm9vZlN0ZXBzLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBjb25zdCBwcmVtaXNlc01hdGNoID0gcHJlbWlzZS5ldmVyeSgocHJlbWlzZSkgPT4ge1xuICAgIGNvbnN0IHByZW1pc2VNYXRjaGVzID0gbWV0YU1hdGNoUHJlbWlzZShwcmVtaXNlLCBtZXRhcHJvb2ZTdGVwcywgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgaWYgKHByZW1pc2VNYXRjaGVzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBwcmVtaXNlc01hdGNoO1xufVxuXG5mdW5jdGlvbiBtZXRhTWF0Y2hDb25jbHVzaW9uKGNvbmNsdXNpb24sIG1ldGFzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBjb25jbHVzaW9uLm1hdGNoTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBsb2NhbE1ldGFDb250ZXh0KSxcbiAgICAgICAgY29uY2x1c2lvbk1hdGNoZXMgPSBtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7IC8vL1xuXG4gIHJldHVybiBjb25jbHVzaW9uTWF0Y2hlcztcbn1cbiJdLCJuYW1lcyI6WyJSdWxlIiwibGFiZWxzIiwicHJlbWlzZXMiLCJjb25jbHVzaW9uIiwiZmlsZUNvbnRleHQiLCJnZXRMYWJlbHMiLCJnZXRQcmVtaXNlcyIsImdldENvbmNsdXNpb24iLCJnZXRGaWxlQ29udGV4dCIsIm1hdGNoU3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsImxvY2FsQ29udGV4dCIsInN0YXRlbWVudE5hdGNoZXMiLCJwcmVtaXNlc0xlbmd0aCIsImxlbmd0aCIsInN1YnN0aXR1dGlvbnMiLCJjb25jbHVzaW9uTWF0Y2hlcyIsIm1hdGNoQ29uY2x1c2lvbiIsInByb29mU3RlcHMiLCJnZXRQcm9vZlN0ZXBzIiwic29tZVN1YkFycmF5IiwicHJlbWlzZXNNYXRjaENvbmNsdXNpb24iLCJwcmVtaXNlc01hdGNoIiwibWF0Y2hQcmVtaXNlcyIsIm1hdGNoTWV0YXN0YXRlbWVudCIsIm1ldGFzdGF0ZW1lbnROb2RlIiwibG9jYWxNZXRhQ29udGV4dCIsIm1ldGFzdGF0ZW1lbnROYXRjaGVzIiwibWV0YU1hdGNoQ29uY2x1c2lvbiIsIm1ldGFwcm9vZlN0ZXBzIiwiZ2V0TWV0YXByb29mU3RlcHMiLCJtZXRhTWF0Y2hQcmVtaXNlcyIsIm1hdGNoTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOb2RlTWF0Y2hlcyIsInNvbWUiLCJsYWJlbCIsImxhYmVsTWF0Y2hlc01ldGF2YXJpYWJsZU5vZGUiLCJ0b0pTT04iLCJ0b2tlbnMiLCJsYWJlbHNKU09OIiwibWFwIiwibGFiZWxKU09OIiwicHJlbWlzZXNKU09OIiwicHJlbWlzZSIsInByZW1pc2VKU09OIiwiY29uY2x1c2lvbkpTT04iLCJqc29uIiwiZnJvbUpTT05BbmRGaWxlQ29udGV4dCIsInJ1bGUiLCJMYWJlbCIsIlByZW1pc2UiLCJDb25jbHVzaW9uIiwiZnJvbUxhYmVsc1ByZW1pc2VzQ29uY2x1c2lvbkFuZEZpbGVDb250ZXh0IiwibWF0Y2hQcmVtaXNlIiwicHJvb2ZTdGVwIiwiZXh0cmFjdCIsInN1YnByb29mTm9kZSIsImdldFN1YnByb29mTm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJzdWJwcm9vZk5vZGVNYXRjaGVzIiwibWF0Y2hTdWJwcm9vZk5vZGUiLCJzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoU3RhdGVtZW50Tm9kZSIsInByZW1pc2VNYXRjaGVzIiwiZXZlcnkiLCJtZXRhTWF0Y2hQcmVtaXNlIiwibWV0YXByb29mU3RlcCIsInJ1bGVTdWJwcm9vZk5vZGUiLCJnZXRSdWxlU3VicHJvb2ZOb2RlIiwibWV0YVN1YnByb29mTm9kZSIsImdldE1ldGFTdWJwcm9vZk5vZGUiLCJnZXRNZXRhc3RhdGVtZW50Tm9kZSIsInJ1bGVTdWJQcm9vZk5vZGVNYXRjaGVzIiwibWF0Y2hSdWxlU3VicHJvb2ZOb2RlIiwibWV0YVN1YlByb29mTm9kZU1hdGNoZXMiLCJtYXRjaE1ldGFTdWJwcm9vZk5vZGUiLCJtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMiLCJtYXRjaE1ldGFzdGF0ZW1lbnROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7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
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTGFiZWwgZnJvbSBcIi4vbGFiZWxcIjtcbmltcG9ydCBQcmVtaXNlIGZyb20gXCIuL3ByZW1pc2VcIjtcbmltcG9ydCBDb25jbHVzaW9uIGZyb20gXCIuL2NvbmNsdXNpb25cIjtcblxuaW1wb3J0IHsgcmV2ZXJzZSwgY29ycmVsYXRlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2FycmF5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJ1bGUge1xuICBjb25zdHJ1Y3RvcihsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uLCBmaWxlQ29udGV4dCkge1xuICAgIHRoaXMubGFiZWxzID0gbGFiZWxzO1xuICAgIHRoaXMucHJlbWlzZXMgPSBwcmVtaXNlcztcbiAgICB0aGlzLmNvbmNsdXNpb24gPSBjb25jbHVzaW9uO1xuICAgIHRoaXMuZmlsZUNvbnRleHQgPSBmaWxlQ29udGV4dDtcbiAgfVxuXG4gIGdldExhYmVscygpIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbHM7XG4gIH1cblxuICBnZXRQcmVtaXNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVtaXNlcztcbiAgfVxuXG4gIGdldENvbmNsdXNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uY2x1c2lvbjtcbiAgfVxuXG4gIGdldEZpbGVDb250ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZXh0O1xuICB9XG5cbiAgbWF0Y2hTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudE5hdGNoZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHByb29mU3RlcHMgPSBsb2NhbENvbnRleHQuZ2V0UHJvb2ZTdGVwcygpLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBbXSxcbiAgICAgICAgICBwcmVtaXNlc01hdGNoID0gbWF0Y2hQcmVtaXNlcyh0aGlzLnByZW1pc2VzLCBwcm9vZlN0ZXBzLCBzdWJzdGl0dXRpb25zLCB0aGlzLmZpbGVDb250ZXh0LCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHByZW1pc2VzTWF0Y2gpIHtcbiAgICAgIGNvbnN0IGNvbmNsdXNpb25NYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uKHRoaXMuY29uY2x1c2lvbiwgc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgdGhpcy5maWxlQ29udGV4dCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgc3RhdGVtZW50TmF0Y2hlcyA9IGNvbmNsdXNpb25NYXRjaGVzOyAgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudE5hdGNoZXM7XG4gIH1cblxuICBtYXRjaE1ldGFzdGF0ZW1lbnQobWV0YXN0YXRlbWVudE5vZGUsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgICBsZXQgbWV0YXN0YXRlbWVudE5hdGNoZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IG1ldGFwcm9vZlN0ZXBzID0gbG9jYWxNZXRhQ29udGV4dC5nZXRNZXRhcHJvb2ZTdGVwcygpLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBbXSxcbiAgICAgICAgICBwcmVtaXNlc01hdGNoID0gbWV0YU1hdGNoUHJlbWlzZXModGhpcy5wcmVtaXNlcywgbWV0YXByb29mU3RlcHMsIHN1YnN0aXR1dGlvbnMsIHRoaXMuZmlsZUNvbnRleHQsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgaWYgKHByZW1pc2VzTWF0Y2gpIHtcbiAgICAgIGNvbnN0IGNvbmNsdXNpb25NYXRjaGVzID0gbWV0YU1hdGNoQ29uY2x1c2lvbih0aGlzLmNvbmNsdXNpb24sIG1ldGFzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCB0aGlzLmZpbGVDb250ZXh0LCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgbWV0YXN0YXRlbWVudE5hdGNoZXMgPSBjb25jbHVzaW9uTWF0Y2hlczsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhc3RhdGVtZW50TmF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMgPSB0aGlzLmxhYmVscy5zb21lKChsYWJlbCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWxNYXRjaGVzTWV0YXZhcmlhYmxlTm9kZSA9IGxhYmVsLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgICAgaWYgKGxhYmVsTWF0Y2hlc01ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlTm9kZU1hdGNoZXM7XG4gIH1cblxuICB0b0pTT04odG9rZW5zKSB7XG4gICAgY29uc3QgbGFiZWxzSlNPTiA9IHRoaXMubGFiZWxzLm1hcCgobGFiZWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsSlNPTiA9IGxhYmVsLnRvSlNPTih0b2tlbnMpO1xuXG4gICAgICAgICAgICByZXR1cm4gbGFiZWxKU09OO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHByZW1pc2VzSlNPTiA9IHRoaXMucHJlbWlzZXMubWFwKChwcmVtaXNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcmVtaXNlSlNPTiA9IHByZW1pc2UudG9KU09OKHRva2Vucyk7XG5cbiAgICAgICAgICAgIHJldHVybiBwcmVtaXNlSlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjb25jbHVzaW9uSlNPTiA9IHRoaXMuY29uY2x1c2lvbi50b0pTT04odG9rZW5zKSxcbiAgICAgICAgICBsYWJlbHMgPSBsYWJlbHNKU09OLCAgLy8vXG4gICAgICAgICAgcHJlbWlzZXMgPSBwcmVtaXNlc0pTT04sICAvLy9cbiAgICAgICAgICBjb25jbHVzaW9uID0gY29uY2x1c2lvbkpTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgbGFiZWxzLFxuICAgICAgICAgICAgcHJlbWlzZXMsXG4gICAgICAgICAgICBjb25jbHVzaW9uXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OQW5kRmlsZUNvbnRleHQoanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgcnVsZTtcblxuICAgIGxldCB7IGxhYmVscyB9ID0ganNvbjtcblxuICAgIGNvbnN0IGxhYmVsc0pTT04gPSBsYWJlbHM7ICAvLy9cblxuICAgIGxhYmVscyA9IGxhYmVsc0pTT04ubWFwKChsYWJlbEpTT04pID0+IHtcbiAgICAgIGNvbnN0IGpzb24gPSBsYWJlbEpTT04sIC8vL1xuICAgICAgICAgICAgbGFiZWwgPSBMYWJlbC5mcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgICAgcmV0dXJuIGxhYmVsO1xuICAgIH0pO1xuXG4gICAgbGV0IHsgcHJlbWlzZXMgfSA9IGpzb247XG5cbiAgICBjb25zdCBwcmVtaXNlc0pTT04gPSBwcmVtaXNlczsgIC8vL1xuXG4gICAgcHJlbWlzZXMgPSBwcmVtaXNlc0pTT04ubWFwKChwcmVtaXNlSlNPTikgPT4ge1xuICAgICAgY29uc3QganNvbiA9IHByZW1pc2VKU09OLCAvLy9cbiAgICAgICAgICAgIHByZW1pc2UgPSBQcmVtaXNlLmZyb21KU09OQW5kRmlsZUNvbnRleHQoanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gcHJlbWlzZTtcbiAgICB9KTtcblxuICAgIGxldCB7IGNvbmNsdXNpb24gfSA9IGpzb247XG5cbiAgICBjb25zdCBjb25jbHVzaW9uSlNPTiA9IGNvbmNsdXNpb247ICAvLy9cblxuICAgIGpzb24gPSBjb25jbHVzaW9uSlNPTjsgIC8vL1xuXG4gICAgY29uY2x1c2lvbiA9IENvbmNsdXNpb24uZnJvbUpTT05BbmRGaWxlQ29udGV4dChqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICBydWxlID0gbmV3IFJ1bGUobGFiZWxzLCBwcmVtaXNlcywgY29uY2x1c2lvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHJ1bGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUxhYmVsc1ByZW1pc2VzQ29uY2x1c2lvbkFuZEZpbGVDb250ZXh0KGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24sIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgcnVsZSA9IG5ldyBSdWxlKGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24sIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiBydWxlO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJlbWlzZShwcmVtaXNlLCBwcm9vZlN0ZXAsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHByZW1pc2VNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3Qgc3VicHJvb2ZOb2RlID0gcHJvb2ZTdGVwLmdldFN1YnByb29mTm9kZSgpLFxuICAgICAgICBzdGF0ZW1lbnROb2RlID0gcHJvb2ZTdGVwLmdldFN0YXRlbWVudE5vZGUoKTtcblxuICBpZiAoc3VicHJvb2ZOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3VicHJvb2ZOb2RlTWF0Y2hlcyA9IHByZW1pc2UubWF0Y2hTdWJwcm9vZk5vZGUoc3VicHJvb2ZOb2RlLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbG9jYWxDb250ZXh0KTtcblxuICAgIHByZW1pc2VNYXRjaGVzID0gc3VicHJvb2ZOb2RlTWF0Y2hlczsgLy8vXG4gIH1cblxuICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGVNYXRjaGVzID0gcHJlbWlzZS5tYXRjaFN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBwcmVtaXNlTWF0Y2hlcyA9IHN0YXRlbWVudE5vZGVNYXRjaGVzOyAgLy8vXG4gIH1cblxuICByZXR1cm4gcHJlbWlzZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJlbWlzZXMocHJlbWlzZXMsIHByb29mU3RlcHMsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBsb2NhbENvbnRleHQpIHtcbiAgcHJlbWlzZXMgPSByZXZlcnNlKHByZW1pc2VzKTsgLy8vXG5cbiAgcHJvb2ZTdGVwcyA9IHJldmVyc2UocHJvb2ZTdGVwcyk7IC8vL1xuXG4gIGNvbnN0IHByZW1pc2VzTWF0Y2ggPSBjb3JyZWxhdGUocHJlbWlzZXMsIHByb29mU3RlcHMsIChwcmVtaXNlLCBwcm9vZlN0ZXApID0+IHtcbiAgICBjb25zdCBwcmVtaXNlTWF0Y2hlcyA9IG1hdGNoUHJlbWlzZShwcmVtaXNlLCBwcm9vZlN0ZXAsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHByZW1pc2VNYXRjaGVzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBwcmVtaXNlc01hdGNoO1xufVxuXG5mdW5jdGlvbiBtYXRjaENvbmNsdXNpb24oY29uY2x1c2lvbiwgc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIGxvY2FsQ29udGV4dCkge1xuICBjb25zdCBzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IGNvbmNsdXNpb24ubWF0Y2hTdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBsb2NhbENvbnRleHQpLFxuICAgICAgICBjb25jbHVzaW9uTWF0Y2hlcyA9IHN0YXRlbWVudE5vZGVNYXRjaGVzOyAvLy9cblxuICByZXR1cm4gY29uY2x1c2lvbk1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1ldGFNYXRjaFByZW1pc2UocHJlbWlzZSwgbWV0YXByb29mU3RlcCwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IHByZW1pc2VNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3QgcnVsZVN1YnByb29mTm9kZSA9IG1ldGFwcm9vZlN0ZXAuZ2V0UnVsZVN1YnByb29mTm9kZSgpLFxuICAgICAgICBtZXRhU3VicHJvb2ZOb2RlID0gbWV0YXByb29mU3RlcC5nZXRNZXRhU3VicHJvb2ZOb2RlKCksXG4gICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXByb29mU3RlcC5nZXRNZXRhc3RhdGVtZW50Tm9kZSgpXG5cbiAgaWYgKHJ1bGVTdWJwcm9vZk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBydWxlU3ViUHJvb2ZOb2RlTWF0Y2hlcyA9IHByZW1pc2UubWF0Y2hSdWxlU3VicHJvb2ZOb2RlKHJ1bGVTdWJwcm9vZk5vZGUsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgIHByZW1pc2VNYXRjaGVzID0gcnVsZVN1YlByb29mTm9kZU1hdGNoZXM7IC8vL1xuICB9XG5cbiAgaWYgKG1ldGFTdWJwcm9vZk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhU3ViUHJvb2ZOb2RlTWF0Y2hlcyA9IHByZW1pc2UubWF0Y2hNZXRhU3VicHJvb2ZOb2RlKG1ldGFTdWJwcm9vZk5vZGUsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgIHByZW1pc2VNYXRjaGVzID0gbWV0YVN1YlByb29mTm9kZU1hdGNoZXM7IC8vL1xuICB9XG5cbiAgaWYgKG1ldGFzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gcHJlbWlzZS5tYXRjaE1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICBwcmVtaXNlTWF0Y2hlcyA9IG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlczsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIHByZW1pc2VNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtZXRhTWF0Y2hQcmVtaXNlcyhwcmVtaXNlcywgbWV0YXByb29mU3RlcHMsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBsb2NhbE1ldGFDb250ZXh0KSB7XG4gIHByZW1pc2VzID0gcmV2ZXJzZShwcmVtaXNlcyk7IC8vL1xuXG4gIG1ldGFwcm9vZlN0ZXBzID0gcmV2ZXJzZShtZXRhcHJvb2ZTdGVwcyk7IC8vL1xuXG4gIGNvbnN0IHByZW1pc2VzTWF0Y2ggPSBjb3JyZWxhdGUocHJlbWlzZXMsIG1ldGFwcm9vZlN0ZXBzLCAocHJlbWlzZSwgbWV0YXByb29mU3RlcCkgPT4ge1xuICAgIGNvbnN0IHByZW1pc2VNYXRjaGVzID0gbWV0YU1hdGNoUHJlbWlzZShwcmVtaXNlLCBtZXRhcHJvb2ZTdGVwLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICBpZiAocHJlbWlzZU1hdGNoZXMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHByZW1pc2VzTWF0Y2g7XG59XG5cbmZ1bmN0aW9uIG1ldGFNYXRjaENvbmNsdXNpb24oY29uY2x1c2lvbiwgbWV0YXN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBsb2NhbE1ldGFDb250ZXh0KSB7XG4gIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IGNvbmNsdXNpb24ubWF0Y2hNZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIGxvY2FsTWV0YUNvbnRleHQpLFxuICAgICAgICBjb25jbHVzaW9uTWF0Y2hlcyA9IG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlczsgLy8vXG5cbiAgcmV0dXJuIGNvbmNsdXNpb25NYXRjaGVzO1xufVxuIl0sIm5hbWVzIjpbIlJ1bGUiLCJsYWJlbHMiLCJwcmVtaXNlcyIsImNvbmNsdXNpb24iLCJmaWxlQ29udGV4dCIsImdldExhYmVscyIsImdldFByZW1pc2VzIiwiZ2V0Q29uY2x1c2lvbiIsImdldEZpbGVDb250ZXh0IiwibWF0Y2hTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwibG9jYWxDb250ZXh0Iiwic3RhdGVtZW50TmF0Y2hlcyIsInByb29mU3RlcHMiLCJnZXRQcm9vZlN0ZXBzIiwic3Vic3RpdHV0aW9ucyIsInByZW1pc2VzTWF0Y2giLCJtYXRjaFByZW1pc2VzIiwiY29uY2x1c2lvbk1hdGNoZXMiLCJtYXRjaENvbmNsdXNpb24iLCJtYXRjaE1ldGFzdGF0ZW1lbnQiLCJtZXRhc3RhdGVtZW50Tm9kZSIsImxvY2FsTWV0YUNvbnRleHQiLCJtZXRhc3RhdGVtZW50TmF0Y2hlcyIsIm1ldGFwcm9vZlN0ZXBzIiwiZ2V0TWV0YXByb29mU3RlcHMiLCJtZXRhTWF0Y2hQcmVtaXNlcyIsIm1ldGFNYXRjaENvbmNsdXNpb24iLCJtYXRjaE1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMiLCJzb21lIiwibGFiZWwiLCJsYWJlbE1hdGNoZXNNZXRhdmFyaWFibGVOb2RlIiwidG9KU09OIiwidG9rZW5zIiwibGFiZWxzSlNPTiIsIm1hcCIsImxhYmVsSlNPTiIsInByZW1pc2VzSlNPTiIsInByZW1pc2UiLCJwcmVtaXNlSlNPTiIsImNvbmNsdXNpb25KU09OIiwianNvbiIsImZyb21KU09OQW5kRmlsZUNvbnRleHQiLCJydWxlIiwiTGFiZWwiLCJQcmVtaXNlIiwiQ29uY2x1c2lvbiIsImZyb21MYWJlbHNQcmVtaXNlc0NvbmNsdXNpb25BbmRGaWxlQ29udGV4dCIsIm1hdGNoUHJlbWlzZSIsInByb29mU3RlcCIsInByZW1pc2VNYXRjaGVzIiwic3VicHJvb2ZOb2RlIiwiZ2V0U3VicHJvb2ZOb2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsInN1YnByb29mTm9kZU1hdGNoZXMiLCJtYXRjaFN1YnByb29mTm9kZSIsInN0YXRlbWVudE5vZGVNYXRjaGVzIiwibWF0Y2hTdGF0ZW1lbnROb2RlIiwicmV2ZXJzZSIsImNvcnJlbGF0ZSIsIm1ldGFNYXRjaFByZW1pc2UiLCJtZXRhcHJvb2ZTdGVwIiwicnVsZVN1YnByb29mTm9kZSIsImdldFJ1bGVTdWJwcm9vZk5vZGUiLCJtZXRhU3VicHJvb2ZOb2RlIiwiZ2V0TWV0YVN1YnByb29mTm9kZSIsImdldE1ldGFzdGF0ZW1lbnROb2RlIiwicnVsZVN1YlByb29mTm9kZU1hdGNoZXMiLCJtYXRjaFJ1bGVTdWJwcm9vZk5vZGUiLCJtZXRhU3ViUHJvb2ZOb2RlTWF0Y2hlcyIsIm1hdGNoTWV0YVN1YnByb29mTm9kZSIsIm1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoTWV0YXN0YXRlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBUXFCQTs7OzREQU5IOzhEQUNFO2lFQUNHO3FCQUVZOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXBCLElBQUEsQUFBTUEscUJBQUQsQUFBTDthQUFNQSxLQUNQQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsVUFBVSxFQUFFQyxXQUFXO2dDQURsQ0o7UUFFakIsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLFdBQVcsR0FBR0E7O2tCQUxGSjs7WUFRbkJLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osTUFBTTtZQUNwQjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osUUFBUTtZQUN0Qjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osVUFBVTtZQUN4Qjs7O1lBRUFL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
|
package/lib/ruleNames.js
CHANGED
|
@@ -18,21 +18,6 @@ _export(exports, {
|
|
|
18
18
|
META_ARGUMENT_RULE_NAME: function() {
|
|
19
19
|
return META_ARGUMENT_RULE_NAME;
|
|
20
20
|
},
|
|
21
|
-
META_SUBPROOF_RULE_NAME: function() {
|
|
22
|
-
return META_SUBPROOF_RULE_NAME;
|
|
23
|
-
},
|
|
24
|
-
QUALIFIED_METASTATEMENT_RULE_NAME: function() {
|
|
25
|
-
return QUALIFIED_METASTATEMENT_RULE_NAME;
|
|
26
|
-
},
|
|
27
|
-
QUALIFIED_STATEMENT_RULE_NAME: function() {
|
|
28
|
-
return QUALIFIED_STATEMENT_RULE_NAME;
|
|
29
|
-
},
|
|
30
|
-
RULE_SUBPROOF_RULE_NAME: function() {
|
|
31
|
-
return RULE_SUBPROOF_RULE_NAME;
|
|
32
|
-
},
|
|
33
|
-
SUBPROOF_RULE_NAME: function() {
|
|
34
|
-
return SUBPROOF_RULE_NAME;
|
|
35
|
-
},
|
|
36
21
|
UNQUALIFIED_METASTATEMENT_RULE_NAME: function() {
|
|
37
22
|
return UNQUALIFIED_METASTATEMENT_RULE_NAME;
|
|
38
23
|
},
|
|
@@ -43,16 +28,11 @@ _export(exports, {
|
|
|
43
28
|
return VARIABLE_DECLARATION_RULE_NAME;
|
|
44
29
|
}
|
|
45
30
|
});
|
|
46
|
-
var SUBPROOF_RULE_NAME = "subproof";
|
|
47
31
|
var METAVARIABLE_RULE_NAME = "metavariable";
|
|
48
|
-
var RULE_SUBPROOF_RULE_NAME = "ruleSubproof";
|
|
49
|
-
var META_SUBPROOF_RULE_NAME = "metaSubproof";
|
|
50
32
|
var META_ARGUMENT_RULE_NAME = "metaArgument";
|
|
51
|
-
var QUALIFIED_STATEMENT_RULE_NAME = "qualifiedStatement";
|
|
52
33
|
var VARIABLE_DECLARATION_RULE_NAME = "variableDeclaration";
|
|
53
34
|
var UNQUALIFIED_STATEMENT_RULE_NAME = "unqualifiedStatement";
|
|
54
35
|
var CONSTRUCTOR_DECLARATION_RULE_NAME = "constructorDeclaration";
|
|
55
|
-
var QUALIFIED_METASTATEMENT_RULE_NAME = "qualifiedMetastatement";
|
|
56
36
|
var UNQUALIFIED_METASTATEMENT_RULE_NAME = "unqualifiedMetastatement";
|
|
57
37
|
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlTmFtZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FID0gXCJtZXRhdmFyaWFibGVcIjtcbmV4cG9ydCBjb25zdCBNRVRBX0FSR1VNRU5UX1JVTEVfTkFNRSA9IFwibWV0YUFyZ3VtZW50XCI7XG5leHBvcnQgY29uc3QgVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FID0gXCJ2YXJpYWJsZURlY2xhcmF0aW9uXCI7XG5leHBvcnQgY29uc3QgVU5RVUFMSUZJRURfU1RBVEVNRU5UX1JVTEVfTkFNRSA9IFwidW5xdWFsaWZpZWRTdGF0ZW1lbnRcIjtcbmV4cG9ydCBjb25zdCBDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUgPSBcImNvbnN0cnVjdG9yRGVjbGFyYXRpb25cIjtcbmV4cG9ydCBjb25zdCBVTlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSA9IFwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50XCI7XG4iXSwibmFtZXMiOlsiQ09OU1RSVUNUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiTUVUQVZBUklBQkxFX1JVTEVfTkFNRSIsIk1FVEFfQVJHVU1FTlRfUlVMRV9OQU1FIiwiVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUiLCJVTlFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FIiwiVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFNYUEsaUNBQWlDO2VBQWpDQTs7SUFKQUMsc0JBQXNCO2VBQXRCQTs7SUFDQUMsdUJBQXVCO2VBQXZCQTs7SUFJQUMsbUNBQW1DO2VBQW5DQTs7SUFGQUMsK0JBQStCO2VBQS9CQTs7SUFEQUMsOEJBQThCO2VBQTlCQTs7O0FBRk4sSUFBTUoseUJBQXlCO0FBQy9CLElBQU1DLDBCQUEwQjtBQUNoQyxJQUFNRyxpQ0FBaUM7QUFDdkMsSUFBTUQsa0NBQWtDO0FBQ3hDLElBQU1KLG9DQUFvQztBQUMxQyxJQUFNRyxzQ0FBc0MifQ==
|
package/lib/utilities/array.js
CHANGED
|
@@ -12,6 +12,9 @@ _export(exports, {
|
|
|
12
12
|
compress: function() {
|
|
13
13
|
return compress;
|
|
14
14
|
},
|
|
15
|
+
correlate: function() {
|
|
16
|
+
return correlate;
|
|
17
|
+
},
|
|
15
18
|
extract: function() {
|
|
16
19
|
return extract;
|
|
17
20
|
},
|
|
@@ -30,12 +33,12 @@ _export(exports, {
|
|
|
30
33
|
match: function() {
|
|
31
34
|
return match;
|
|
32
35
|
},
|
|
33
|
-
prune: function() {
|
|
34
|
-
return prune;
|
|
35
|
-
},
|
|
36
36
|
push: function() {
|
|
37
37
|
return push;
|
|
38
38
|
},
|
|
39
|
+
reverse: function() {
|
|
40
|
+
return reverse;
|
|
41
|
+
},
|
|
39
42
|
rightDifference: function() {
|
|
40
43
|
return rightDifference;
|
|
41
44
|
},
|
|
@@ -44,49 +47,53 @@ _export(exports, {
|
|
|
44
47
|
},
|
|
45
48
|
separate: function() {
|
|
46
49
|
return separate;
|
|
47
|
-
},
|
|
48
|
-
someSubArray: function() {
|
|
49
|
-
return someSubArray;
|
|
50
50
|
}
|
|
51
51
|
});
|
|
52
52
|
var _necessary = require("necessary");
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return
|
|
57
|
-
default: obj
|
|
58
|
-
};
|
|
53
|
+
function _array_like_to_array(arr, len) {
|
|
54
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
55
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
56
|
+
return arr2;
|
|
59
57
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if (
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
58
|
+
function _array_without_holes(arr) {
|
|
59
|
+
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
60
|
+
}
|
|
61
|
+
function _iterable_to_array(iter) {
|
|
62
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
63
|
+
}
|
|
64
|
+
function _non_iterable_spread() {
|
|
65
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
66
|
+
}
|
|
67
|
+
function _to_consumable_array(arr) {
|
|
68
|
+
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
69
|
+
}
|
|
70
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
71
|
+
if (!o) return;
|
|
72
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
73
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
74
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
75
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
76
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
77
|
+
}
|
|
78
|
+
var first = _necessary.arrayUtilities.first, second = _necessary.arrayUtilities.second, last = _necessary.arrayUtilities.last, extract = _necessary.arrayUtilities.extract, push = _necessary.arrayUtilities.push, match = _necessary.arrayUtilities.match, filter = _necessary.arrayUtilities.filter, compress = _necessary.arrayUtilities.compress, separate = _necessary.arrayUtilities.separate;
|
|
79
|
+
function reverse(array) {
|
|
80
|
+
array = _to_consumable_array(array).reverse();
|
|
81
|
+
return array;
|
|
82
|
+
}
|
|
83
|
+
function correlate(arrayA, arrayB, callback) {
|
|
84
|
+
arrayB = _to_consumable_array(arrayB);
|
|
85
|
+
var correlates = arrayA.every(function(elementA) {
|
|
86
|
+
var elementB = extract(arrayB, function(elementB) {
|
|
87
|
+
var result = callback(elementA, elementB);
|
|
88
|
+
if (result) {
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
}) || null;
|
|
92
|
+
if (elementB !== null) {
|
|
93
|
+
return true;
|
|
87
94
|
}
|
|
88
|
-
}
|
|
89
|
-
return
|
|
95
|
+
});
|
|
96
|
+
return correlates;
|
|
90
97
|
}
|
|
91
98
|
function leftDifference(arrayA, arrayB) {
|
|
92
99
|
filter(arrayA, function(elementA) {
|
|
@@ -105,4 +112,4 @@ function rightDifference(arrayA, arrayB) {
|
|
|
105
112
|
});
|
|
106
113
|
}
|
|
107
114
|
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYXJyYXkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5leHBvcnQgY29uc3QgeyBmaXJzdCwgc2Vjb25kLCBsYXN0LCBleHRyYWN0LCBwdXNoLCBtYXRjaCwgZmlsdGVyLCBjb21wcmVzcywgc2VwYXJhdGUgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gcmV2ZXJzZShhcnJheSkge1xuICBhcnJheSA9IFsgLy8vXG4gICAgLi4uYXJyYXlcbiAgXS5yZXZlcnNlKCk7XG5cbiAgcmV0dXJuIGFycmF5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29ycmVsYXRlKGFycmF5QSwgYXJyYXlCLCBjYWxsYmFjaykge1xuICBhcnJheUIgPSBbICAvLy9cbiAgICAuLi5hcnJheUJcbiAgXTtcblxuICBjb25zdCBjb3JyZWxhdGVzID0gYXJyYXlBLmV2ZXJ5KChlbGVtZW50QSkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnRCID0gZXh0cmFjdChhcnJheUIsIChlbGVtZW50QikgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gY2FsbGJhY2soZWxlbWVudEEsIGVsZW1lbnRCKTtcblxuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KSB8fCBudWxsO1xuXG4gICAgaWYgKGVsZW1lbnRCICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBjb3JyZWxhdGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGVmdERpZmZlcmVuY2UoYXJyYXlBLCBhcnJheUIpIHtcbiAgZmlsdGVyKGFycmF5QSwgKGVsZW1lbnRBKSA9PiB7XG4gICAgY29uc3QgYXJyYXlCSW5jbHVkZXNFbGVtZW50QSA9IGFycmF5Qi5pbmNsdWRlcyhlbGVtZW50QSk7XG5cbiAgICBpZiAoIWFycmF5QkluY2x1ZGVzRWxlbWVudEEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByaWdodERpZmZlcmVuY2UoYXJyYXlBLCBhcnJheUIpIHtcbiAgZmlsdGVyKGFycmF5QiwgKGVsZW1lbnRCKSA9PiB7XG4gICAgY29uc3QgYXJyYXlBSW5jbHVkZXNFbGVtZW50QiA9IGFycmF5QS5pbmNsdWRlcyhlbGVtZW50Qik7XG5cbiAgICBpZiAoIWFycmF5QUluY2x1ZGVzRWxlbWVudEIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiY29tcHJlc3MiLCJjb3JyZWxhdGUiLCJleHRyYWN0IiwiZmlsdGVyIiwiZmlyc3QiLCJsYXN0IiwibGVmdERpZmZlcmVuY2UiLCJtYXRjaCIsInB1c2giLCJyZXZlcnNlIiwicmlnaHREaWZmZXJlbmNlIiwic2Vjb25kIiwic2VwYXJhdGUiLCJhcnJheVV0aWxpdGllcyIsImFycmF5IiwiYXJyYXlBIiwiYXJyYXlCIiwiY2FsbGJhY2siLCJjb3JyZWxhdGVzIiwiZXZlcnkiLCJlbGVtZW50QSIsImVsZW1lbnRCIiwicmVzdWx0IiwiYXJyYXlCSW5jbHVkZXNFbGVtZW50QSIsImluY2x1ZGVzIiwiYXJyYXlBSW5jbHVkZXNFbGVtZW50QiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBSWtFQSxRQUFRO2VBQVJBOztJQVVsREMsU0FBUztlQUFUQTs7SUFWb0JDLE9BQU87ZUFBUEE7O0lBQXNCQyxNQUFNO2VBQU5BOztJQUEzQ0MsS0FBSztlQUFMQTs7SUFBZUMsSUFBSTtlQUFKQTs7SUFnQ2RDLGNBQWM7ZUFBZEE7O0lBaENtQ0MsS0FBSztlQUFMQTs7SUFBTkMsSUFBSTtlQUFKQTs7SUFFN0JDLE9BQU87ZUFBUEE7O0lBd0NBQyxlQUFlO2VBQWZBOztJQTFDTUMsTUFBTTtlQUFOQTs7SUFBc0RDLFFBQVE7ZUFBUkE7Ozt5QkFGN0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXhCLElBQVFSLFFBQTBFUyx5QkFBYyxDQUF4RlQsT0FBT08sU0FBbUVFLHlCQUFjLENBQWpGRixRQUFRTixPQUEyRFEseUJBQWMsQ0FBekVSLE1BQU1ILFVBQXFEVyx5QkFBYyxDQUFuRVgsU0FBU00sT0FBNENLLHlCQUFjLENBQTFETCxNQUFNRCxRQUFzQ00seUJBQWMsQ0FBcEROLE9BQU9KLFNBQStCVSx5QkFBYyxDQUE3Q1YsUUFBUUgsV0FBdUJhLHlCQUFjLENBQXJDYixVQUFVWSxXQUFhQyx5QkFBYyxDQUEzQkQ7QUFFckUsU0FBU0gsUUFBUUssS0FBSztJQUMzQkEsUUFBUSxBQUNOLHFCQUFHQSxPQUNITCxPQUFPO0lBRVQsT0FBT0s7QUFDVDtBQUVPLFNBQVNiLFVBQVVjLE1BQU0sRUFBRUMsTUFBTSxFQUFFQyxRQUFRO0lBQ2hERCxTQUNFLHFCQUFHQTtJQUdMLElBQU1FLGFBQWFILE9BQU9JLEtBQUssQ0FBQyxTQUFDQztRQUMvQixJQUFNQyxXQUFXbkIsUUFBUWMsUUFBUSxTQUFDSztZQUNoQyxJQUFNQyxTQUFTTCxTQUFTRyxVQUFVQztZQUVsQyxJQUFJQyxRQUFRO2dCQUNWLE9BQU87WUFDVDtRQUNGLE1BQU07UUFFTixJQUFJRCxhQUFhLE1BQU07WUFDckIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPSDtBQUNUO0FBRU8sU0FBU1osZUFBZVMsTUFBTSxFQUFFQyxNQUFNO0lBQzNDYixPQUFPWSxRQUFRLFNBQUNLO1FBQ2QsSUFBTUcseUJBQXlCUCxPQUFPUSxRQUFRLENBQUNKO1FBRS9DLElBQUksQ0FBQ0csd0JBQXdCO1lBQzNCLE9BQU87UUFDVDtJQUNGO0FBQ0Y7QUFFTyxTQUFTYixnQkFBZ0JLLE1BQU0sRUFBRUMsTUFBTTtJQUM1Q2IsT0FBT2EsUUFBUSxTQUFDSztRQUNkLElBQU1JLHlCQUF5QlYsT0FBT1MsUUFBUSxDQUFDSDtRQUUvQyxJQUFJLENBQUNJLHdCQUF3QjtZQUMzQixPQUFPO1FBQ1Q7SUFDRjtBQUNGIn0=
|
|
@@ -45,17 +45,14 @@ function verifyNode(nodeQueryMaps, nonTerminalNode) {
|
|
|
45
45
|
for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
|
|
46
46
|
remainingArguments[_key - 2] = arguments[_key];
|
|
47
47
|
}
|
|
48
|
-
var nodeVerified;
|
|
48
|
+
var nodeVerified = false;
|
|
49
49
|
nodeVerified = nodeQueryMaps.some(function(nodeQueryMap) {
|
|
50
|
-
var nodeVerified = false;
|
|
51
50
|
var nodeQuery = nodeQueryMap.nodeQuery, verifyNode = nodeQueryMap.verifyNode;
|
|
52
51
|
var node = nodeQuery(nonTerminalNode);
|
|
53
52
|
if (node !== null) {
|
|
54
53
|
nodeVerified = verifyNode.apply(void 0, [
|
|
55
54
|
node
|
|
56
55
|
].concat(_to_consumable_array(remainingArguments)));
|
|
57
|
-
}
|
|
58
|
-
if (nodeVerified) {
|
|
59
56
|
return true;
|
|
60
57
|
}
|
|
61
58
|
});
|
|
@@ -65,9 +62,8 @@ function verifyNodes(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB) {
|
|
|
65
62
|
for(var _len = arguments.length, remainingArguments = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++){
|
|
66
63
|
remainingArguments[_key - 3] = arguments[_key];
|
|
67
64
|
}
|
|
68
|
-
var nodesVerified;
|
|
69
|
-
|
|
70
|
-
var nodesVerified = false;
|
|
65
|
+
var nodesVerified = false;
|
|
66
|
+
nodeQueryMaps.some(function(nodeQueryMap) {
|
|
71
67
|
var nodeQueryA = nodeQueryMap.nodeQueryA, nodeQueryB = nodeQueryMap.nodeQueryB, verifyNodes = nodeQueryMap.verifyNodes;
|
|
72
68
|
var nodeA = nodeQueryA(nonTerminalNodeA), nodeB = nodeQueryB(nonTerminalNodeB); ///
|
|
73
69
|
if (nodeA !== null && nodeB !== null) {
|
|
@@ -75,12 +71,10 @@ function verifyNodes(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB) {
|
|
|
75
71
|
nodeA,
|
|
76
72
|
nodeB
|
|
77
73
|
].concat(_to_consumable_array(remainingArguments)));
|
|
78
|
-
}
|
|
79
|
-
if (nodesVerified) {
|
|
80
74
|
return true;
|
|
81
75
|
}
|
|
82
76
|
});
|
|
83
77
|
return nodesVerified;
|
|
84
78
|
}
|
|
85
79
|
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmVyaWZpZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlOb2RlKG5vZGVRdWVyeU1hcHMsIG5vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBub2RlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBub2RlVmVyaWZpZWQgPSBub2RlUXVlcnlNYXBzLnNvbWUoKG5vZGVRdWVyeU1hcCkgPT4ge1xuICAgIGNvbnN0IHsgbm9kZVF1ZXJ5LCB2ZXJpZnlOb2RlIH0gPSBub2RlUXVlcnlNYXA7XG5cbiAgICBjb25zdCBub2RlID0gbm9kZVF1ZXJ5KG5vblRlcm1pbmFsTm9kZSk7XG5cbiAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgbm9kZVZlcmlmaWVkID0gdmVyaWZ5Tm9kZShub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBub2RlVmVyaWZpZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlOb2Rlcyhub2RlUXVlcnlNYXBzLCBub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IG5vZGVzVmVyaWZpZWQgPSBmYWxzZTtcblxuICBub2RlUXVlcnlNYXBzLnNvbWUoKG5vZGVRdWVyeU1hcCkgPT4ge1xuICAgIGNvbnN0IHsgbm9kZVF1ZXJ5QSwgbm9kZVF1ZXJ5QiwgdmVyaWZ5Tm9kZXMgfSA9IG5vZGVRdWVyeU1hcDtcblxuICAgIGNvbnN0IG5vZGVBID0gbm9kZVF1ZXJ5QShub25UZXJtaW5hbE5vZGVBKSwgIC8vL1xuICAgICAgICAgIG5vZGVCID0gbm9kZVF1ZXJ5Qihub25UZXJtaW5hbE5vZGVCKTsgIC8vL1xuXG4gICAgaWYgKChub2RlQSAhPT0gbnVsbCkgJiYgKG5vZGVCICE9PSBudWxsKSkge1xuICAgICAgbm9kZXNWZXJpZmllZCA9IHZlcmlmeU5vZGVzKG5vZGVBLCBub2RlQiwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gbm9kZXNWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlOb2RlIiwidmVyaWZ5Tm9kZXMiLCJub2RlUXVlcnlNYXBzIiwibm9uVGVybWluYWxOb2RlIiwicmVtYWluaW5nQXJndW1lbnRzIiwibm9kZVZlcmlmaWVkIiwic29tZSIsIm5vZGVRdWVyeU1hcCIsIm5vZGVRdWVyeSIsIm5vZGUiLCJub25UZXJtaW5hbE5vZGVBIiwibm9uVGVybWluYWxOb2RlQiIsIm5vZGVzVmVyaWZpZWQiLCJub2RlUXVlcnlBIiwibm9kZVF1ZXJ5QiIsIm5vZGVBIiwibm9kZUIiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUVnQkEsVUFBVTtlQUFWQTs7SUFrQkFDLFdBQVc7ZUFBWEE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFsQlQsU0FBU0QsV0FBV0UsYUFBYSxFQUFFQyxlQUFlO0lBQUUsSUFBQSxJQUFBLE9BQUEsVUFBQSxRQUFBLEFBQUdDLHFCQUFILFVBQUEsT0FBQSxJQUFBLE9BQUEsUUFBQSxPQUFBLEdBQUEsT0FBQSxNQUFBO1FBQUdBLG1CQUFILE9BQUEsS0FBQSxTQUFBLENBQUEsS0FBcUI7O0lBQzlFLElBQUlDLGVBQWU7SUFFbkJBLGVBQWVILGNBQWNJLElBQUksQ0FBQyxTQUFDQztRQUNqQyxJQUFRQyxZQUEwQkQsYUFBMUJDLFdBQVdSLGFBQWVPLGFBQWZQO1FBRW5CLElBQU1TLE9BQU9ELFVBQVVMO1FBRXZCLElBQUlNLFNBQVMsTUFBTTtZQUNqQkosZUFBZUwsV0FBQUEsTUFBQUEsS0FBQUEsR0FBQUE7Z0JBQVdTO2FBQTRCLENBQXZDVCxPQUFpQixxQkFBR0k7WUFFbkMsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPQztBQUNUO0FBRU8sU0FBU0osWUFBWUMsYUFBYSxFQUFFUSxnQkFBZ0IsRUFBRUMsZ0JBQWdCO0lBQUUsSUFBQSxJQUFBLE9BQUEsVUFBQSxRQUFBLEFBQUdQLHFCQUFILFVBQUEsT0FBQSxJQUFBLE9BQUEsUUFBQSxPQUFBLEdBQUEsT0FBQSxNQUFBO1FBQUdBLG1CQUFILE9BQUEsS0FBQSxTQUFBLENBQUEsS0FBcUI7O0lBQ2xHLElBQUlRLGdCQUFnQjtJQUVwQlYsY0FBY0ksSUFBSSxDQUFDLFNBQUNDO1FBQ2xCLElBQVFNLGFBQXdDTixhQUF4Q00sWUFBWUMsYUFBNEJQLGFBQTVCTyxZQUFZYixjQUFnQk0sYUFBaEJOO1FBRWhDLElBQU1jLFFBQVFGLFdBQVdILG1CQUNuQk0sUUFBUUYsV0FBV0gsbUJBQW9CLEdBQUc7UUFFaEQsSUFBSSxBQUFDSSxVQUFVLFFBQVVDLFVBQVUsTUFBTztZQUN4Q0osZ0JBQWdCWCxZQUFBQSxNQUFBQSxLQUFBQSxHQUFBQTtnQkFBWWM7Z0JBQU9DO2FBQTZCLENBQWhEZixPQUEwQixxQkFBR0c7WUFFN0MsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPUTtBQUNUIn0=
|
|
@@ -128,7 +128,7 @@ function _create_super(Derived) {
|
|
|
128
128
|
return _possible_constructor_return(this, result);
|
|
129
129
|
};
|
|
130
130
|
}
|
|
131
|
-
var termNodeQuery = (0, _query.nodeQuery)("/term!"), variableNodeQuery = (0, _query.nodeQuery)("/variable!"), metavariableNodeQuery = (0, _query.nodeQuery)("/metavariable!");
|
|
131
|
+
var termNodeQuery = (0, _query.nodeQuery)("/term!"), variableNodeQuery = (0, _query.nodeQuery)("/variable!"), nonTerminalNodeQuery = (0, _query.nodeQuery)("/*"), metavariableNodeQuery = (0, _query.nodeQuery)("/metavariable!");
|
|
132
132
|
var MetastatementNodeVerifier = /*#__PURE__*/ function(NodeVerifier) {
|
|
133
133
|
_inherits(MetastatementNodeVerifier, NodeVerifier);
|
|
134
134
|
var _super = _create_super(MetastatementNodeVerifier);
|
|
@@ -140,23 +140,48 @@ var MetastatementNodeVerifier = /*#__PURE__*/ function(NodeVerifier) {
|
|
|
140
140
|
{
|
|
141
141
|
key: "verifyNonTerminalNode",
|
|
142
142
|
value: function verifyNonTerminalNode(nonTerminalNode, localMetaContext, verifyAhead) {
|
|
143
|
+
var _this = this;
|
|
143
144
|
var nonTerminalNodeVerified;
|
|
144
145
|
var nodeQueryMaps = [
|
|
145
146
|
{
|
|
146
147
|
nodeQuery: termNodeQuery,
|
|
147
|
-
verifyNode:
|
|
148
|
+
verifyNode: function(node, localMetaContext, verifyAhead) {
|
|
149
|
+
var nonTerminalNodeVerified;
|
|
150
|
+
var termNode = node, termNodeVerified = _this.verifyTermNode(termNode, localMetaContext, verifyAhead);
|
|
151
|
+
nonTerminalNodeVerified = termNodeVerified; ///
|
|
152
|
+
return nonTerminalNodeVerified;
|
|
153
|
+
}
|
|
148
154
|
},
|
|
149
155
|
{
|
|
150
156
|
nodeQuery: variableNodeQuery,
|
|
151
|
-
verifyNode:
|
|
157
|
+
verifyNode: function(node, localMetaContext, verifyAhead) {
|
|
158
|
+
var nonTerminalNodeVerified;
|
|
159
|
+
var variableNode = node, variableNodeVerified = _this.verifyVariableNode(variableNode, localMetaContext, verifyAhead);
|
|
160
|
+
nonTerminalNodeVerified = variableNodeVerified; ///
|
|
161
|
+
return nonTerminalNodeVerified;
|
|
162
|
+
}
|
|
152
163
|
},
|
|
153
164
|
{
|
|
154
165
|
nodeQuery: metavariableNodeQuery,
|
|
155
|
-
verifyNode:
|
|
166
|
+
verifyNode: function(node, localMetaContext, verifyAhead) {
|
|
167
|
+
var nonTerminalNodeVerified;
|
|
168
|
+
var metavariableNode = node, metavariableNodeVerified = _this.verifyMetavariableNode(metavariableNode, localMetaContext, verifyAhead);
|
|
169
|
+
nonTerminalNodeVerified = metavariableNodeVerified; ///
|
|
170
|
+
return nonTerminalNodeVerified;
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
nodeQuery: nonTerminalNodeQuery,
|
|
175
|
+
verifyNode: function(node, localMetaContext, verifyAhead) {
|
|
176
|
+
var nonTerminalNodeVerified;
|
|
177
|
+
var _$nonTerminalNode = node; ///
|
|
178
|
+
nonTerminalNodeVerified = _get(_get_prototype_of(MetastatementNodeVerifier.prototype), "verifyNonTerminalNode", _this).call(_this, _$nonTerminalNode, localMetaContext, verifyAhead);
|
|
179
|
+
return nonTerminalNodeVerified;
|
|
180
|
+
}
|
|
156
181
|
}
|
|
157
182
|
];
|
|
158
183
|
var nodeVerified = (0, _verifier.verifyNode)(nodeQueryMaps, nonTerminalNode, localMetaContext, verifyAhead);
|
|
159
|
-
nonTerminalNodeVerified = nodeVerified
|
|
184
|
+
nonTerminalNodeVerified = nodeVerified; ///
|
|
160
185
|
return nonTerminalNodeVerified;
|
|
161
186
|
}
|
|
162
187
|
},
|
|
@@ -187,4 +212,4 @@ var MetastatementNodeVerifier = /*#__PURE__*/ function(NodeVerifier) {
|
|
|
187
212
|
var metastatementNodeVerifier = new MetastatementNodeVerifier();
|
|
188
213
|
var _default = metastatementNodeVerifier;
|
|
189
214
|
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZmllci9ub2RlL21ldGFzdGF0ZW1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBMb2NhbENvbnRleHQgZnJvbSBcIi4uLy4uL2NvbnRleHQvbG9jYWxcIjtcbmltcG9ydCBOb2RlVmVyaWZpZXIgZnJvbSBcIi4uLy4uL3ZlcmlmaWVyL25vZGVcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgdmVyaWZ5Tm9kZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvdmVyaWZpZXJcIjtcbmltcG9ydCB7IHZlcmlmeVN0YW5kYWxvbmVUZXJtIH0gZnJvbSBcIi4uLy4uL3ZlcmlmeS90ZXJtXCI7XG5pbXBvcnQgeyB2ZXJpZnlTdGFuZGFsb25lVmFyaWFibGUgfSBmcm9tIFwiLi4vLi4vdmVyaWZ5L3ZhcmlhYmxlXCI7XG5pbXBvcnQgeyB2ZXJpZnlTdGFuZGFsb25lTWV0YXZhcmlhYmxlIH0gZnJvbSBcIi4uLy4uL3ZlcmlmeS9tZXRhdmFyaWFibGVcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtIVwiKSxcbiAgICAgIHZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlIVwiKSxcbiAgICAgIG5vblRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiLypcIiksXG4gICAgICBtZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXZhcmlhYmxlIVwiKTtcblxuY2xhc3MgTWV0YXN0YXRlbWVudE5vZGVWZXJpZmllciBleHRlbmRzIE5vZGVWZXJpZmllciB7XG4gIHZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGUsIGxvY2FsTWV0YUNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gICAgbGV0IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkO1xuXG4gICAgY29uc3Qgbm9kZVF1ZXJ5TWFwcyA9IFtcbiAgICAgIHtcbiAgICAgICAgbm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgICB2ZXJpZnlOb2RlOiAobm9kZSwgbG9jYWxNZXRhQ29udGV4dCwgdmVyaWZ5QWhlYWQpID0+IHtcbiAgICAgICAgICBsZXQgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG5cbiAgICAgICAgICBjb25zdCB0ZXJtTm9kZSA9IG5vZGUsIC8vL1xuICAgICAgICAgICAgICAgIHRlcm1Ob2RlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeVRlcm1Ob2RlKHRlcm1Ob2RlLCBsb2NhbE1ldGFDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHRlcm1Ob2RlVmVyaWZpZWQ7IC8vL1xuXG4gICAgICAgICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBub2RlUXVlcnk6IHZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgICB2ZXJpZnlOb2RlOiAobm9kZSwgbG9jYWxNZXRhQ29udGV4dCwgdmVyaWZ5QWhlYWQpID0+IHtcbiAgICAgICAgICBsZXQgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG5cbiAgICAgICAgICBjb25zdCB2YXJpYWJsZU5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgICAgICB2YXJpYWJsZU5vZGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgbG9jYWxNZXRhQ29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSB2YXJpYWJsZU5vZGVWZXJpZmllZDsgLy8vXG5cbiAgICAgICAgICByZXR1cm4gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5vZGVRdWVyeTogbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgICB2ZXJpZnlOb2RlOiAobm9kZSwgbG9jYWxNZXRhQ29udGV4dCwgdmVyaWZ5QWhlYWQpID0+IHtcbiAgICAgICAgICBsZXQgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG5cbiAgICAgICAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbm9kZSwgLy8vXG4gICAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlTm9kZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUsIGxvY2FsTWV0YUNvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gbWV0YXZhcmlhYmxlTm9kZVZlcmlmaWVkOyAvLy9cblxuICAgICAgICAgIHJldHVybiBub25UZXJtaW5hbE5vZGVWZXJpZmllZDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbm9kZVF1ZXJ5OiBub25UZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgdmVyaWZ5Tm9kZTogKG5vZGUsIGxvY2FsTWV0YUNvbnRleHQsIHZlcmlmeUFoZWFkKSA9PiB7XG4gICAgICAgICAgbGV0IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkO1xuXG4gICAgICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZTsgLy8vXG5cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9XG5cbiAgICAgICAgICAgIHN1cGVyLnZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGUsIGxvY2FsTWV0YUNvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgICAgICAgIHJldHVybiBub25UZXJtaW5hbE5vZGVWZXJpZmllZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF07XG5cbiAgICBjb25zdCBub2RlVmVyaWZpZWQgPSB2ZXJpZnlOb2RlKG5vZGVRdWVyeU1hcHMsIG5vblRlcm1pbmFsTm9kZSwgbG9jYWxNZXRhQ29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBub2RlVmVyaWZpZWQ7IC8vL1xuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlLCBsb2NhbE1ldGFDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICAgIGNvbnN0IHN0YW5kYWxvbmVNZXRhdmFyaWFibGVWZXJpZmllZCA9IHZlcmlmeVN0YW5kYWxvbmVNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbG9jYWxNZXRhQ29udGV4dCwgdmVyaWZ5QWhlYWQpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGVWZXJpZmllZCA9IHN0YW5kYWxvbmVNZXRhdmFyaWFibGVWZXJpZmllZDsgIC8vL1xuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZU5vZGVWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGxvY2FsTWV0YUNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gICAgY29uc3QgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21Mb2NhbE1ldGFDb250ZXh0KGxvY2FsTWV0YUNvbnRleHQpLFxuICAgICAgICAgIHN0YW5kYWxvbmVWYXJpYWJsZVZlcmlmaWVkID0gdmVyaWZ5U3RhbmRhbG9uZVZhcmlhYmxlKHZhcmlhYmxlTm9kZSwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCksXG4gICAgICAgICAgdmFyaWFibGVOb2RlVmVyaWZpZWQgPSBzdGFuZGFsb25lVmFyaWFibGVWZXJpZmllZDsgIC8vL1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlTm9kZVZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5VGVybU5vZGUodGVybU5vZGUsIGxvY2FsTWV0YUNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gICAgY29uc3QgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21Mb2NhbE1ldGFDb250ZXh0KGxvY2FsTWV0YUNvbnRleHQpLFxuICAgICAgICAgIHN0YW5kYWxvbmVUZXJtVmVyaWZpZWQgPSB2ZXJpZnlTdGFuZGFsb25lVGVybSh0ZXJtTm9kZSwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCksXG4gICAgICAgICAgdGVybU5vZGVWZXJpZmllZCA9IHN0YW5kYWxvbmVUZXJtVmVyaWZpZWQ7ICAvLy9cblxuICAgIHJldHVybiB0ZXJtTm9kZVZlcmlmaWVkO1xuICB9XG59XG5cbmNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlVmVyaWZpZXIgPSBuZXcgTWV0YXN0YXRlbWVudE5vZGVWZXJpZmllcigpO1xuXG5leHBvcnQgZGVmYXVsdCBtZXRhc3RhdGVtZW50Tm9kZVZlcmlmaWVyO1xuIl0sIm5hbWVzIjpbInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2YXJpYWJsZU5vZGVRdWVyeSIsIm5vblRlcm1pbmFsTm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlTm9kZVF1ZXJ5IiwiTWV0YXN0YXRlbWVudE5vZGVWZXJpZmllciIsInZlcmlmeU5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsImxvY2FsTWV0YUNvbnRleHQiLCJ2ZXJpZnlBaGVhZCIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwibm9kZVF1ZXJ5TWFwcyIsInZlcmlmeU5vZGUiLCJub2RlIiwidGVybU5vZGUiLCJ0ZXJtTm9kZVZlcmlmaWVkIiwidmVyaWZ5VGVybU5vZGUiLCJ2YXJpYWJsZU5vZGUiLCJ2YXJpYWJsZU5vZGVWZXJpZmllZCIsInZlcmlmeVZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOb2RlVmVyaWZpZWQiLCJ2ZXJpZnlNZXRhdmFyaWFibGVOb2RlIiwibm9kZVZlcmlmaWVkIiwic3RhbmRhbG9uZU1ldGF2YXJpYWJsZVZlcmlmaWVkIiwidmVyaWZ5U3RhbmRhbG9uZU1ldGF2YXJpYWJsZSIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21Mb2NhbE1ldGFDb250ZXh0Iiwic3RhbmRhbG9uZVZhcmlhYmxlVmVyaWZpZWQiLCJ2ZXJpZnlTdGFuZGFsb25lVmFyaWFibGUiLCJzdGFuZGFsb25lVGVybVZlcmlmaWVkIiwidmVyaWZ5U3RhbmRhbG9uZVRlcm0iLCJOb2RlVmVyaWZpZXIiLCJtZXRhc3RhdGVtZW50Tm9kZVZlcmlmaWVyIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE2R0E7OztlQUFBOzs7NERBM0d5QjsyREFDQTtxQkFFQzt3QkFDQztvQkFDVTt3QkFDSTs0QkFDSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTdDLElBQU1BLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyxXQUMxQkMsb0JBQW9CRCxJQUFBQSxnQkFBUyxFQUFDLGVBQzlCRSx1QkFBdUJGLElBQUFBLGdCQUFTLEVBQUMsT0FDakNHLHdCQUF3QkgsSUFBQUEsZ0JBQVMsRUFBQztBQUV4QyxJQUFBLEFBQU1JLDBDQUFELEFBQUw7Y0FBTUE7K0JBQUFBO2FBQUFBO2dDQUFBQTs7O2tCQUFBQTs7WUFDSkMsS0FBQUE7bUJBQUFBLFNBQUFBLHNCQUFzQkMsZUFBZSxFQUFFQyxnQkFBZ0IsRUFBRUMsV0FBVzs7Z0JBQ2xFLElBQUlDO2dCQUVKLElBQU1DLGdCQUFnQjtvQkFDcEI7d0JBQ0VWLFdBQVdEO3dCQUNYWSxZQUFZLFNBQUNDLE1BQU1MLGtCQUFrQkM7NEJBQ25DLElBQUlDOzRCQUVKLElBQU1JLFdBQVdELE1BQ1hFLG1CQUFtQixNQUFLQyxjQUFjLENBQUNGLFVBQVVOLGtCQUFrQkM7NEJBRXpFQywwQkFBMEJLLGtCQUFrQixHQUFHOzRCQUUvQyxPQUFPTDt3QkFDVDtvQkFDRjtvQkFDQTt3QkFDRVQsV0FBV0M7d0JBQ1hVLFlBQVksU0FBQ0MsTUFBTUwsa0JBQWtCQzs0QkFDbkMsSUFBSUM7NEJBRUosSUFBTU8sZUFBZUosTUFDZkssdUJBQXVCLE1BQUtDLGtCQUFrQixDQUFDRixjQUFjVCxrQkFBa0JDOzRCQUVyRkMsMEJBQTBCUSxzQkFBc0IsR0FBRzs0QkFFbkQsT0FBT1I7d0JBQ1Q7b0JBQ0Y7b0JBQ0E7d0JBQ0VULFdBQVdHO3dCQUNYUSxZQUFZLFNBQUNDLE1BQU1MLGtCQUFrQkM7NEJBQ25DLElBQUlDOzRCQUVKLElBQU1VLG1CQUFtQlAsTUFDbkJRLDJCQUEyQixNQUFLQyxzQkFBc0IsQ0FBQ0Ysa0JBQWtCWixrQkFBa0JDOzRCQUVqR0MsMEJBQTBCVywwQkFBMEIsR0FBRzs0QkFFdkQsT0FBT1g7d0JBQ1Q7b0JBQ0Y7b0JBQ0E7d0JBQ0VULFdBQVdFO3dCQUNYUyxZQUFZLFNBQUNDLE1BQU1MLGtCQUFrQkM7NEJBQ25DLElBQUlDOzRCQUVKLElBQU1ILG9CQUFrQk0sTUFBTSxHQUFHOzRCQUVqQ0gsMEJBRUUsdUJBckROTCxzQ0FxRFlDLDRDQUFzQkMsbUJBQWlCQyxrQkFBa0JDOzRCQUVqRSxPQUFPQzt3QkFDVDtvQkFDRjtpQkFDRDtnQkFFRCxJQUFNYSxlQUFlWCxJQUFBQSxvQkFBVSxFQUFDRCxlQUFlSixpQkFBaUJDLGtCQUFrQkM7Z0JBRWxGQywwQkFBMEJhLGNBQWMsR0FBRztnQkFFM0MsT0FBT2I7WUFDVDs7O1lBRUFZLEtBQUFBO21CQUFBQSxTQUFBQSx1QkFBdUJGLGdCQUFnQixFQUFFWixnQkFBZ0IsRUFBRUMsV0FBVztnQkFDcEUsSUFBTWUsaUNBQWlDQyxJQUFBQSwwQ0FBNEIsRUFBQ0wsa0JBQWtCWixrQkFBa0JDLGNBQ2xHWSwyQkFBMkJHLGdDQUFpQyxHQUFHO2dCQUVyRSxPQUFPSDtZQUNUOzs7WUFFQUYsS0FBQUE7bUJBQUFBLFNBQUFBLG1CQUFtQkYsWUFBWSxFQUFFVCxnQkFBZ0IsRUFBRUMsV0FBVztnQkFDNUQsSUFBTWlCLGVBQWVDLGNBQVksQ0FBQ0Msb0JBQW9CLENBQUNwQixtQkFDakRxQiw2QkFBNkJDLElBQUFBLGtDQUF3QixFQUFDYixjQUFjUyxjQUFjakIsY0FDbEZTLHVCQUF1QlcsNEJBQTZCLEdBQUc7Z0JBRTdELE9BQU9YO1lBQ1Q7OztZQUVBRixLQUFBQTttQkFBQUEsU0FBQUEsZUFBZUYsUUFBUSxFQUFFTixnQkFBZ0IsRUFBRUMsV0FBVztnQkFDcEQsSUFBTWlCLGVBQWVDLGNBQVksQ0FBQ0Msb0JBQW9CLENBQUNwQixtQkFDakR1Qix5QkFBeUJDLElBQUFBLDBCQUFvQixFQUFDbEIsVUFBVVksY0FBY2pCLGNBQ3RFTSxtQkFBbUJnQix3QkFBeUIsR0FBRztnQkFFckQsT0FBT2hCO1lBQ1Q7OztXQXhGSVY7RUFBa0M0QixhQUFZO0FBMkZwRCxJQUFNQyw0QkFBNEIsSUFBSTdCO0lBRXRDLFdBQWU2QiJ9
|