occam-verify-cli 1.0.72 → 1.0.74

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/src/index.js CHANGED
@@ -3,6 +3,7 @@
3
3
  import Type from "./dom/type";
4
4
  import Term from "./dom/term";
5
5
  import Rule from "./dom/rule";
6
+ import Step from "./dom/step";
6
7
  import Label from "./dom/label";
7
8
  import Axiom from "./dom/axiom";
8
9
  import Lemma from "./dom/lemma";
@@ -17,7 +18,6 @@ import Subproof from "./dom/subproof";
17
18
  import Variable from "./dom/variable";
18
19
  import Property from "./dom/property";
19
20
  import Parameter from "./dom/parameter";
20
- import ProofStep from "./dom/proofStep";
21
21
  import Reference from "./dom/reference";
22
22
  import Statement from "./dom/statement";
23
23
  import Judgement from "./dom/judgement";
@@ -21,10 +21,10 @@ function unifyAWithRule(statement, reference, substitutions, context) {
21
21
 
22
22
  context.trace(`Unifying the '${statementString}' statement with the '${ruleString}' rule...`);
23
23
 
24
- const proofStepSubproofs = context.getProofStepSubproofs(),
25
- statementAndProofStepsUnified = rule.unifyStatementAndProofStepSubproofs(statement, proofStepSubproofs, context);
24
+ const stepsOrSubproofs = context.getStepsOrSubproofs(),
25
+ statementAndStepsUnified = rule.unifyStatementAndStepsOrSubproofs(statement, stepsOrSubproofs, context);
26
26
 
27
- unifiedWithRule = statementAndProofStepsUnified; ///
27
+ unifiedWithRule = statementAndStepsUnified; ///
28
28
 
29
29
  if (unifiedWithRule) {
30
30
  context.debug(`...unified the '${statementString}' statement with the '${ruleString}' rule.`);
@@ -114,14 +114,14 @@ function unifyAWithAxiomLemmaTheoremOrConjecture(statement, reference, substitut
114
114
 
115
115
  context.trace(`Unifying the '${statementString}' statement with the '${axiomLemmaTheoremConjectureString}' axiom, lemma, theorem or conjecture...`);
116
116
 
117
- const proofStepSubproofs = context.getProofStepSubproofs(),
117
+ const stepsOrSubproofs = context.getStepsOrSubproofs(),
118
118
  specificSubstitutions = Substitutions.fromNothing();
119
119
 
120
120
  substitutions = specificSubstitutions; ///
121
121
 
122
- const statementAndProofStepsUnified = axiomLemmaTheoremConjecture.unifyStatementAndProofStepSubproofs(statement, proofStepSubproofs, substitutions, context);
122
+ const statementAndStepsUnified = axiomLemmaTheoremConjecture.unifyStatementAndStepsOrSubproofs(statement, stepsOrSubproofs, substitutions, context);
123
123
 
124
- if (statementAndProofStepsUnified) {
124
+ if (statementAndStepsUnified) {
125
125
  const metavariable = reference.getMetavariable(),
126
126
  specificContext = context, ///
127
127
  statementSubstitution = StatementSubstitution.fromStatementAndMetavariable(statement, metavariable, context),
@@ -237,17 +237,17 @@ function unifyAsPropertyAssertion(statement, reference, substitutions, context)
237
237
  return unifiedAsPropertyAssertion;
238
238
  }
239
239
 
240
- function unifyWithProofStepSubproofs(statement, reference, substitutions, context) {
241
- let unifiedWithProofSteps = false;
240
+ function unifyWithStepsOrSubproofs(statement, reference, substitutions, context) {
241
+ let unifiedWithSteps = false;
242
242
 
243
243
  if (reference === null) {
244
- const proofStepSubproofs = context.getProofStepSubproofs(),
245
- statementUnifiedWithProofSteps = statement.unifyWithProofStepSubproofs(proofStepSubproofs, context);
244
+ const stepsOrSubproofs = context.getStepsOrSubproofs(),
245
+ statementUnifiedWithSteps = statement.unifyWithStepsOrSubproofs(stepsOrSubproofs, context);
246
246
 
247
- unifiedWithProofSteps = statementUnifiedWithProofSteps; ///
247
+ unifiedWithSteps = statementUnifiedWithSteps; ///
248
248
  }
249
249
 
250
- return unifiedWithProofSteps;
250
+ return unifiedWithSteps;
251
251
  }
252
252
 
253
253
  const unifyMixins = [
@@ -259,7 +259,7 @@ const unifyMixins = [
259
259
  unifyAsJudgement,
260
260
  unifyAsTypeAssertion,
261
261
  unifyAsPropertyAssertion,
262
- unifyWithProofStepSubproofs
262
+ unifyWithStepsOrSubproofs
263
263
  ];
264
264
 
265
265
  export default unifyMixins;
@@ -3,16 +3,16 @@
3
3
  import { nodeQuery, nodesQuery } from "./query";
4
4
  import { nodeAsString, nodesAsString } from "./string";
5
5
 
6
- const suppositionStatementNodesQuery = nodesQuery("/subproof/supposition/statement"),
7
- lastProofStepStatementNodeQuery = nodeQuery("/subproof/subDerivation/proofStep[-1]/statement");
6
+ const lastStepStatementNodeQuery = nodeQuery("/subproof/subDerivation/step[-1]/statement"),
7
+ suppositionStatementNodesQuery = nodesQuery("/subproof/supposition/statement");
8
8
 
9
9
  export function subproofStringFromSubproofNode(subproofNode, fileContext) {
10
10
  const tokens = fileContext.getTokens(),
11
11
  suppositionStatementNodes = suppositionStatementNodesQuery(subproofNode),
12
- lastProofStepStatementNode = lastProofStepStatementNodeQuery(subproofNode),
12
+ lastStepStatementNode = lastStepStatementNodeQuery(subproofNode),
13
13
  suppositionStatementsString = nodesAsString(suppositionStatementNodes, tokens),
14
- lastProofStepStatementString = nodeAsString(lastProofStepStatementNode, tokens),
15
- subproofString = `[${suppositionStatementsString}]...${lastProofStepStatementString}`;
14
+ lastStepStatementString = nodeAsString(lastStepStatementNode, tokens),
15
+ subproofString = `[${suppositionStatementsString}]...${lastStepStatementString}`;
16
16
 
17
17
  return subproofString;
18
18
  }
@@ -1,228 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- var _dom = /*#__PURE__*/ _interop_require_wildcard(require("../dom"));
12
- var _unify = /*#__PURE__*/ _interop_require_default(require("../mixins/proofStep/unify"));
13
- var _substitutions = /*#__PURE__*/ _interop_require_default(require("../substitutions"));
14
- var _query = require("../utilities/query");
15
- var _context = require("../utilities/context");
16
- function _class_call_check(instance, Constructor) {
17
- if (!(instance instanceof Constructor)) {
18
- throw new TypeError("Cannot call a class as a function");
19
- }
20
- }
21
- function _defineProperties(target, props) {
22
- for(var i = 0; i < props.length; i++){
23
- var descriptor = props[i];
24
- descriptor.enumerable = descriptor.enumerable || false;
25
- descriptor.configurable = true;
26
- if ("value" in descriptor) descriptor.writable = true;
27
- Object.defineProperty(target, descriptor.key, descriptor);
28
- }
29
- }
30
- function _create_class(Constructor, protoProps, staticProps) {
31
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
32
- if (staticProps) _defineProperties(Constructor, staticProps);
33
- return Constructor;
34
- }
35
- function _define_property(obj, key, value) {
36
- if (key in obj) {
37
- Object.defineProperty(obj, key, {
38
- value: value,
39
- enumerable: true,
40
- configurable: true,
41
- writable: true
42
- });
43
- } else {
44
- obj[key] = value;
45
- }
46
- return obj;
47
- }
48
- function _interop_require_default(obj) {
49
- return obj && obj.__esModule ? obj : {
50
- default: obj
51
- };
52
- }
53
- function _getRequireWildcardCache(nodeInterop) {
54
- if (typeof WeakMap !== "function") return null;
55
- var cacheBabelInterop = new WeakMap();
56
- var cacheNodeInterop = new WeakMap();
57
- return (_getRequireWildcardCache = function(nodeInterop) {
58
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
59
- })(nodeInterop);
60
- }
61
- function _interop_require_wildcard(obj, nodeInterop) {
62
- if (!nodeInterop && obj && obj.__esModule) {
63
- return obj;
64
- }
65
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
66
- return {
67
- default: obj
68
- };
69
- }
70
- var cache = _getRequireWildcardCache(nodeInterop);
71
- if (cache && cache.has(obj)) {
72
- return cache.get(obj);
73
- }
74
- var newObj = {
75
- __proto__: null
76
- };
77
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
78
- for(var key in obj){
79
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
80
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
81
- if (desc && (desc.get || desc.set)) {
82
- Object.defineProperty(newObj, key, desc);
83
- } else {
84
- newObj[key] = obj[key];
85
- }
86
- }
87
- }
88
- newObj.default = obj;
89
- if (cache) {
90
- cache.set(obj, newObj);
91
- }
92
- return newObj;
93
- }
94
- var _ProofStep;
95
- var proofStepNodeQuery = (0, _query.nodeQuery)("/proofStep");
96
- var _default = (0, _dom.domAssigned)((_ProofStep = /*#__PURE__*/ function() {
97
- function ProofStep(string, statement, reference) {
98
- _class_call_check(this, ProofStep);
99
- this.string = string;
100
- this.statement = statement;
101
- this.reference = reference;
102
- }
103
- _create_class(ProofStep, [
104
- {
105
- key: "getString",
106
- value: function getString() {
107
- return this.string;
108
- }
109
- },
110
- {
111
- key: "getStatement",
112
- value: function getStatement() {
113
- return this.statement;
114
- }
115
- },
116
- {
117
- key: "getReference",
118
- value: function getReference() {
119
- return this.reference;
120
- }
121
- },
122
- {
123
- key: "isQualified",
124
- value: function isQualified() {
125
- var qualified = this.reference !== null;
126
- return qualified;
127
- }
128
- },
129
- {
130
- key: "isProofStep",
131
- value: function isProofStep() {
132
- var proofStep = true;
133
- return proofStep;
134
- }
135
- },
136
- {
137
- key: "matchTermAndPropertyRelation",
138
- value: function matchTermAndPropertyRelation(term, propertyRelation, context) {
139
- var termAndPropertyRelationMatch = false;
140
- var propertyAssertion = (0, _context.propertyAssertionFromStatement)(this.statement, context);
141
- if (propertyAssertion !== null) {
142
- termAndPropertyRelationMatch = propertyAssertion.matchTermAndPropertyRelation(term, propertyRelation, context);
143
- }
144
- return termAndPropertyRelationMatch;
145
- }
146
- },
147
- {
148
- key: "unify",
149
- value: function unify(substitutions, context) {
150
- var _this = this;
151
- var unified;
152
- var proofStepString = this.string; ///
153
- context.trace("Unifying the '".concat(proofStepString, "' proof step..."));
154
- unified = _unify.default.some(function(unifyMixin) {
155
- var unified = unifyMixin(_this.statement, _this.reference, substitutions, context);
156
- if (unified) {
157
- return true;
158
- }
159
- });
160
- if (unified) {
161
- context.debug("...unified the '".concat(proofStepString, "' proof step."));
162
- }
163
- return unified;
164
- }
165
- },
166
- {
167
- key: "verify",
168
- value: function verify(substitutions, assignments, context) {
169
- var verified = false;
170
- var proofStepString = this.string;
171
- context.trace("Verifying the '".concat(proofStepString, "' proof step..."));
172
- if (this.statement !== null) {
173
- var qualified = this.isQualified(), stated = qualified, statementVerified = this.statement.verify(assignments, stated, context);
174
- if (statementVerified) {
175
- if (this.reference === null) {
176
- verified = true;
177
- } else {
178
- var referenceVerified = this.reference.verify(context);
179
- verified = referenceVerified; ///
180
- }
181
- }
182
- } else {
183
- context.debug("Cannot verify the '".concat(proofStepString, "' proof step because it is nonsense."));
184
- }
185
- if (verified) {
186
- context.debug("...verified the '".concat(proofStepString, "' proof step."));
187
- }
188
- return verified;
189
- }
190
- },
191
- {
192
- key: "unifyStatement",
193
- value: function unifyStatement(statement, context) {
194
- var statementUnified;
195
- var specificContext = context, generalContext = context, substitutions = _substitutions.default.fromNothing();
196
- statementUnified = statement.unifyStatement(this.statement, substitutions, generalContext, specificContext);
197
- if (statementUnified) {
198
- var equivalences = context.getEquivalences(), substitutionsUnified = equivalences.unifySubstitutions(substitutions);
199
- statementUnified = substitutionsUnified; ///
200
- }
201
- return statementUnified;
202
- }
203
- }
204
- ], [
205
- {
206
- key: "fromStatement",
207
- value: function fromStatement(statement, context) {
208
- var statementString = statement.getString(), string = statementString, reference = null, proofStep = new ProofStep(string, statement, reference);
209
- return proofStep;
210
- }
211
- },
212
- {
213
- key: "fromProofStepSubproofNode",
214
- value: function fromProofStepSubproofNode(proofStepSubproofNode, fileContext) {
215
- var proofStep = null;
216
- var proofStepNode = proofStepNodeQuery(proofStepSubproofNode);
217
- if (proofStepNode !== null) {
218
- var Statement = _dom.default.Statement, Reference = _dom.default.Reference, node = proofStepNode, string = fileContext.nodeAsString(node), statement = Statement.fromProofStepNode(proofStepNode, fileContext), reference = Reference.fromProofStepNode(proofStepNode, fileContext);
219
- proofStep = new ProofStep(string, statement, reference);
220
- }
221
- return proofStep;
222
- }
223
- }
224
- ]);
225
- return ProofStep;
226
- }(), _define_property(_ProofStep, "name", "ProofStep"), _ProofStep));
227
-
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vcHJvb2ZTdGVwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZG9tIGZyb20gXCIuLi9kb21cIjtcbmltcG9ydCB1bmlmeU1peGlucyBmcm9tIFwiLi4vbWl4aW5zL3Byb29mU3RlcC91bmlmeVwiO1xuaW1wb3J0IFN1YnN0aXR1dGlvbnMgZnJvbSBcIi4uL3N1YnN0aXR1dGlvbnNcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgZG9tQXNzaWduZWQgfSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgeyBwcm9wZXJ0eUFzc2VydGlvbkZyb21TdGF0ZW1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgcHJvb2ZTdGVwTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb29mU3RlcFwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoY2xhc3MgUHJvb2ZTdGVwIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCBzdGF0ZW1lbnQsIHJlZmVyZW5jZSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMuc3RhdGVtZW50ID0gc3RhdGVtZW50O1xuICAgIHRoaXMucmVmZXJlbmNlID0gcmVmZXJlbmNlO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRSZWZlcmVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlO1xuICB9XG5cbiAgaXNRdWFsaWZpZWQoKSB7XG4gICAgY29uc3QgcXVhbGlmaWVkID0gKHRoaXMucmVmZXJlbmNlICE9PSBudWxsKTtcblxuICAgIHJldHVybiBxdWFsaWZpZWQ7XG4gIH1cblxuICBpc1Byb29mU3RlcCgpIHtcbiAgICBjb25zdCBwcm9vZlN0ZXAgPSB0cnVlO1xuXG4gICAgcmV0dXJuIHByb29mU3RlcDtcbiAgfVxuXG4gIG1hdGNoVGVybUFuZFByb3BlcnR5UmVsYXRpb24odGVybSwgcHJvcGVydHlSZWxhdGlvbiwgY29udGV4dCkge1xuICAgIGxldCB0ZXJtQW5kUHJvcGVydHlSZWxhdGlvbk1hdGNoID0gZmFsc2U7XG5cbiAgICBjb25zdCBwcm9wZXJ0eUFzc2VydGlvbiA9IHByb3BlcnR5QXNzZXJ0aW9uRnJvbVN0YXRlbWVudCh0aGlzLnN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgICBpZiAocHJvcGVydHlBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgIHRlcm1BbmRQcm9wZXJ0eVJlbGF0aW9uTWF0Y2ggPSBwcm9wZXJ0eUFzc2VydGlvbi5tYXRjaFRlcm1BbmRQcm9wZXJ0eVJlbGF0aW9uKHRlcm0sIHByb3BlcnR5UmVsYXRpb24sIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtQW5kUHJvcGVydHlSZWxhdGlvbk1hdGNoO1xuICB9XG5cbiAgdW5pZnkoc3Vic3RpdHV0aW9ucywgY29udGV4dCkge1xuICAgIGxldCB1bmlmaWVkO1xuXG4gICAgY29uc3QgcHJvb2ZTdGVwU3RyaW5nID0gdGhpcy5zdHJpbmc7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtwcm9vZlN0ZXBTdHJpbmd9JyBwcm9vZiBzdGVwLi4uYCk7XG5cbiAgICB1bmlmaWVkID0gdW5pZnlNaXhpbnMuc29tZSgodW5pZnlNaXhpbikgPT4ge1xuICAgICAgY29uc3QgdW5pZmllZCA9IHVuaWZ5TWl4aW4odGhpcy5zdGF0ZW1lbnQsIHRoaXMucmVmZXJlbmNlLCBzdWJzdGl0dXRpb25zLCBjb250ZXh0KTtcblxuICAgICAgaWYgKHVuaWZpZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodW5pZmllZCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cHJvb2ZTdGVwU3RyaW5nfScgcHJvb2Ygc3RlcC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5pZmllZDtcbiAgfVxuXG4gIHZlcmlmeShzdWJzdGl0dXRpb25zLCBhc3NpZ25tZW50cywgY29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgcHJvb2ZTdGVwU3RyaW5nID0gdGhpcy5zdHJpbmc7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Byb29mU3RlcFN0cmluZ30nIHByb29mIHN0ZXAuLi5gKTtcblxuICAgIGlmICh0aGlzLnN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcXVhbGlmaWVkID0gdGhpcy5pc1F1YWxpZmllZCgpLFxuICAgICAgICAgICAgc3RhdGVkID0gcXVhbGlmaWVkLCAvLy9cbiAgICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdGhpcy5zdGF0ZW1lbnQudmVyaWZ5KGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgaWYgKHRoaXMucmVmZXJlbmNlID09PSBudWxsKSB7XG4gICAgICAgICAgdmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZVZlcmlmaWVkID0gdGhpcy5yZWZlcmVuY2UudmVyaWZ5KGNvbnRleHQpO1xuXG4gICAgICAgICAgdmVyaWZpZWQgPSByZWZlcmVuY2VWZXJpZmllZDsgLy8vXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgQ2Fubm90IHZlcmlmeSB0aGUgJyR7cHJvb2ZTdGVwU3RyaW5nfScgcHJvb2Ygc3RlcCBiZWNhdXNlIGl0IGlzIG5vbnNlbnNlLmApO1xuICAgIH1cblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Byb29mU3RlcFN0cmluZ30nIHByb29mIHN0ZXAuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudFVuaWZpZWQ7XG5cbiAgICBjb25zdCBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0LCAvLy9cbiAgICAgICAgICBnZW5lcmFsQ29udGV4dCA9IGNvbnRleHQsIC8vL1xuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21Ob3RoaW5nKCk7XG5cbiAgICBzdGF0ZW1lbnRVbmlmaWVkID0gc3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KHRoaXMuc3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVkKSB7XG4gICAgICBjb25zdCBlcXVpdmFsZW5jZXMgPSBjb250ZXh0LmdldEVxdWl2YWxlbmNlcygpLFxuICAgICAgICAgICAgc3Vic3RpdHV0aW9uc1VuaWZpZWQgPSBlcXVpdmFsZW5jZXMudW5pZnlTdWJzdGl0dXRpb25zKHN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gc3Vic3RpdHV0aW9uc1VuaWZpZWQ7ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVtZW50VW5pZmllZDtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJQcm9vZlN0ZXBcIjtcblxuICBzdGF0aWMgZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc3RyaW5nID0gc3RhdGVtZW50U3RyaW5nLCAvLy9cbiAgICAgICAgICByZWZlcmVuY2UgPSBudWxsLFxuICAgICAgICAgIHByb29mU3RlcCA9IG5ldyBQcm9vZlN0ZXAoc3RyaW5nLCBzdGF0ZW1lbnQsIHJlZmVyZW5jZSk7XG5cbiAgICByZXR1cm4gcHJvb2ZTdGVwO1xuICB9XG5cbiAgc3RhdGljIGZyb21Qcm9vZlN0ZXBTdWJwcm9vZk5vZGUocHJvb2ZTdGVwU3VicHJvb2ZOb2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGxldCBwcm9vZlN0ZXAgPSBudWxsO1xuXG4gICAgY29uc3QgcHJvb2ZTdGVwTm9kZSA9IHByb29mU3RlcE5vZGVRdWVyeShwcm9vZlN0ZXBTdWJwcm9vZk5vZGUpO1xuXG4gICAgaWYgKHByb29mU3RlcE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHsgU3RhdGVtZW50LCBSZWZlcmVuY2UgfSA9IGRvbSxcbiAgICAgICAgICAgIG5vZGUgPSBwcm9vZlN0ZXBOb2RlLCAvLy9cbiAgICAgICAgICAgIHN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICAgIHN0YXRlbWVudCA9IFN0YXRlbWVudC5mcm9tUHJvb2ZTdGVwTm9kZShwcm9vZlN0ZXBOb2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgICByZWZlcmVuY2UgPSBSZWZlcmVuY2UuZnJvbVByb29mU3RlcE5vZGUocHJvb2ZTdGVwTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgICBwcm9vZlN0ZXAgPSBuZXcgUHJvb2ZTdGVwKHN0cmluZywgc3RhdGVtZW50LCByZWZlcmVuY2UpO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9vZlN0ZXA7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbInByb29mU3RlcE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImRvbUFzc2lnbmVkIiwiUHJvb2ZTdGVwIiwic3RyaW5nIiwic3RhdGVtZW50IiwicmVmZXJlbmNlIiwiZ2V0U3RyaW5nIiwiZ2V0U3RhdGVtZW50IiwiZ2V0UmVmZXJlbmNlIiwiaXNRdWFsaWZpZWQiLCJxdWFsaWZpZWQiLCJpc1Byb29mU3RlcCIsInByb29mU3RlcCIsIm1hdGNoVGVybUFuZFByb3BlcnR5UmVsYXRpb24iLCJ0ZXJtIiwicHJvcGVydHlSZWxhdGlvbiIsImNvbnRleHQiLCJ0ZXJtQW5kUHJvcGVydHlSZWxhdGlvbk1hdGNoIiwicHJvcGVydHlBc3NlcnRpb24iLCJwcm9wZXJ0eUFzc2VydGlvbkZyb21TdGF0ZW1lbnQiLCJ1bmlmeSIsInN1YnN0aXR1dGlvbnMiLCJ1bmlmaWVkIiwicHJvb2ZTdGVwU3RyaW5nIiwidHJhY2UiLCJ1bmlmeU1peGlucyIsInNvbWUiLCJ1bmlmeU1peGluIiwiZGVidWciLCJ2ZXJpZnkiLCJhc3NpZ25tZW50cyIsInZlcmlmaWVkIiwic3RhdGVkIiwic3RhdGVtZW50VmVyaWZpZWQiLCJyZWZlcmVuY2VWZXJpZmllZCIsInVuaWZ5U3RhdGVtZW50Iiwic3RhdGVtZW50VW5pZmllZCIsInNwZWNpZmljQ29udGV4dCIsImdlbmVyYWxDb250ZXh0IiwiU3Vic3RpdHV0aW9ucyIsImZyb21Ob3RoaW5nIiwiZXF1aXZhbGVuY2VzIiwiZ2V0RXF1aXZhbGVuY2VzIiwic3Vic3RpdHV0aW9uc1VuaWZpZWQiLCJ1bmlmeVN1YnN0aXR1dGlvbnMiLCJmcm9tU3RhdGVtZW50Iiwic3RhdGVtZW50U3RyaW5nIiwiZnJvbVByb29mU3RlcFN1YnByb29mTm9kZSIsInByb29mU3RlcFN1YnByb29mTm9kZSIsImZpbGVDb250ZXh0IiwicHJvb2ZTdGVwTm9kZSIsIlN0YXRlbWVudCIsImRvbSIsIlJlZmVyZW5jZSIsIm5vZGUiLCJub2RlQXNTdHJpbmciLCJmcm9tUHJvb2ZTdGVwTm9kZSIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVlBOzs7ZUFBQTs7OzJEQVZnQjs0REFDUTtvRUFDRTtxQkFFQTt1QkFFcUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -1,181 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- var _substitutions = /*#__PURE__*/ _interop_require_default(require("../../substitutions"));
12
- var _statement = /*#__PURE__*/ _interop_require_default(require("../../substitution/statement"));
13
- var _context = require("../../utilities/context");
14
- function _interop_require_default(obj) {
15
- return obj && obj.__esModule ? obj : {
16
- default: obj
17
- };
18
- }
19
- function unifyAWithRule(statement, reference, substitutions, context) {
20
- var unifiedWithRule = false;
21
- if (reference !== null) {
22
- var rule = context.findRuleByReference(reference);
23
- if (rule !== null) {
24
- var ruleString = rule.getString(), statementString = statement.getString();
25
- context.trace("Unifying the '".concat(statementString, "' statement with the '").concat(ruleString, "' rule..."));
26
- var proofStepSubproofs = context.getProofStepSubproofs(), statementAndProofStepsUnified = rule.unifyStatementAndProofStepSubproofs(statement, proofStepSubproofs, context);
27
- unifiedWithRule = statementAndProofStepsUnified; ///
28
- if (unifiedWithRule) {
29
- context.debug("...unified the '".concat(statementString, "' statement with the '").concat(ruleString, "' rule."));
30
- }
31
- }
32
- }
33
- return unifiedWithRule;
34
- }
35
- function unifyAWithReference(statement, reference, substitutions, context) {
36
- var unifiedWithReference = false;
37
- if (reference !== null) {
38
- var metavariableVerified = reference.verifyMetavariable(context);
39
- if (metavariableVerified) {
40
- var statementString = statement.getString(), referenceString = reference.getString();
41
- context.trace("Unifying the '".concat(statementString, "' statement with the '").concat(referenceString, "' reference..."));
42
- var metavariable = reference.getMetavariable(), specificContext = context, statementSubstitution = _statement.default.fromStatementAndMetavariable(statement, metavariable, context), substitution = statementSubstitution; ///
43
- substitutions.addSubstitution(substitution, specificContext);
44
- unifiedWithReference = true;
45
- if (unifiedWithReference) {
46
- context.debug("...unified the '".concat(statementString, "' statement with the '").concat(referenceString, "' reference."));
47
- }
48
- }
49
- }
50
- return unifiedWithReference;
51
- }
52
- function unifyAsSatisfyingAssertion(statement, reference, substitutions, context) {
53
- var unifiedAsSatisfyingAssertion = false;
54
- if (reference !== null) {
55
- var satisfyingAssertion = (0, _context.satisfyingAssertionFromStatement)(statement, context);
56
- if (satisfyingAssertion !== null) {
57
- var statementString = statement.getString();
58
- context.trace("Unifying the '".concat(statementString, "' statement as a satisfying assertion..."));
59
- var axiomLemmaTheoremConjecture = context.findAxiomLemmaTheoremConjectureByReference(reference);
60
- if (axiomLemmaTheoremConjecture !== null) {
61
- reference = satisfyingAssertion.getReference();
62
- var axiom = context.findAxiomByReference(reference), substitutions1 = _substitutions.default.fromNothing(), axiomLemmaTheoremConjectureUnified = axiom.unifyAxiomLemmaTheoremConjecture(axiomLemmaTheoremConjecture, substitutions1, context);
63
- if (axiomLemmaTheoremConjectureUnified) {
64
- var substitutionsMatch = satisfyingAssertion.matchSubstitutions(substitutions1, context);
65
- unifiedAsSatisfyingAssertion = substitutionsMatch; ///
66
- }
67
- }
68
- if (unifiedAsSatisfyingAssertion) {
69
- context.debug("...unified the '".concat(statementString, "' statement as a satisfying assertion."));
70
- }
71
- }
72
- }
73
- return unifiedAsSatisfyingAssertion;
74
- }
75
- function unifyAWithAxiomLemmaTheoremOrConjecture(statement, reference, substitutions, context) {
76
- var unifiedWithAxiomLemmaTheoremOrConjecture = false;
77
- if (reference !== null) {
78
- var axiomLemmaTheoremConjecture = context.findAxiomLemmaTheoremConjectureByReference(reference), generalSubstitutions = substitutions; ///
79
- if (axiomLemmaTheoremConjecture !== null) {
80
- var statementString = statement.getString(), axiomLemmaTheoremConjectureString = reference.getString();
81
- context.trace("Unifying the '".concat(statementString, "' statement with the '").concat(axiomLemmaTheoremConjectureString, "' axiom, lemma, theorem or conjecture..."));
82
- var proofStepSubproofs = context.getProofStepSubproofs(), specificSubstitutions = _substitutions.default.fromNothing();
83
- substitutions = specificSubstitutions; ///
84
- var statementAndProofStepsUnified = axiomLemmaTheoremConjecture.unifyStatementAndProofStepSubproofs(statement, proofStepSubproofs, substitutions, context);
85
- if (statementAndProofStepsUnified) {
86
- var metavariable = reference.getMetavariable(), specificContext = context, statementSubstitution = _statement.default.fromStatementAndMetavariable(statement, metavariable, context), substitution = statementSubstitution; ///
87
- substitutions = generalSubstitutions; ///
88
- substitutions.addSubstitution(substitution, specificContext);
89
- unifiedWithAxiomLemmaTheoremOrConjecture = true;
90
- }
91
- if (unifiedWithAxiomLemmaTheoremOrConjecture) {
92
- context.debug("...unified the '".concat(statementString, "' statement with the '").concat(axiomLemmaTheoremConjectureString, "' axiom, lemma, theorem or conjecture."));
93
- }
94
- }
95
- }
96
- return unifiedWithAxiomLemmaTheoremOrConjecture;
97
- }
98
- function unifyAsEquality(statement, reference, substitutions, context) {
99
- var unifiedAsEquality = false;
100
- if (reference === null) {
101
- var equality = (0, _context.equalityFromStatement)(statement, context);
102
- if (equality !== null) {
103
- var statementString = statement.getString();
104
- context.trace("Unifying the '".concat(statementString, "' statement as an equality..."));
105
- unifiedAsEquality = true;
106
- context.debug("...unified the '".concat(statementString, "' statement as an equality."));
107
- }
108
- }
109
- return unifiedAsEquality;
110
- }
111
- function unifyAsJudgement(statement, reference, substitutions, context) {
112
- var unifiedAsJudgement = false;
113
- if (reference === null) {
114
- var judgement = (0, _context.judgementFromStatement)(statement, context);
115
- if (judgement !== null) {
116
- var statementString = statement.getString();
117
- context.trace("Unifying the '".concat(statementString, "' statement as a judgement..."));
118
- unifiedAsJudgement = true;
119
- context.debug("...unified the '".concat(statementString, "' statement as a judgement."));
120
- }
121
- }
122
- return unifiedAsJudgement;
123
- }
124
- function unifyAsTypeAssertion(statement, reference, substitutions, context) {
125
- var unifiedAsTypeAssertion = false;
126
- if (reference === null) {
127
- var typeAssertion = (0, _context.typeAssertionFromStatement)(statement, context);
128
- if (typeAssertion !== null) {
129
- var statementString = statement.getString();
130
- context.trace("Unifying the '".concat(statementString, "' statement as a type assertion..."));
131
- unifiedAsTypeAssertion = true;
132
- context.debug("...unified the '".concat(statementString, "' statement as a type assertion."));
133
- }
134
- }
135
- return unifiedAsTypeAssertion;
136
- }
137
- function unifyAsPropertyAssertion(statement, reference, substitutions, context) {
138
- var unifiedAsPropertyAssertion = false;
139
- if (reference === null) {
140
- var propertyAssertion = (0, _context.propertyAssertionFromStatement)(statement, context);
141
- if (propertyAssertion !== null) {
142
- var statementString = statement.getString();
143
- context.trace("Unifying the '".concat(statementString, "' statement as a property assertion..."));
144
- var term = propertyAssertion.getTerm(), equivalence = context.findEquivalenceByTerm(term);
145
- if (equivalence !== null) {
146
- unifiedAsPropertyAssertion = equivalence.someOtherTerm(term, function(term) {
147
- var propertyRelation = propertyAssertion.getPropertyRelation(), propertyAssertionMatches = context.matchTermAndPropertyRelation(term, propertyRelation);
148
- if (propertyAssertionMatches) {
149
- return true;
150
- }
151
- });
152
- }
153
- if (unifiedAsPropertyAssertion) {
154
- context.debug("...unified the '".concat(statementString, "' statement as a property assertion."));
155
- }
156
- }
157
- }
158
- return unifiedAsPropertyAssertion;
159
- }
160
- function unifyWithProofStepSubproofs(statement, reference, substitutions, context) {
161
- var unifiedWithProofSteps = false;
162
- if (reference === null) {
163
- var proofStepSubproofs = context.getProofStepSubproofs(), statementUnifiedWithProofSteps = statement.unifyWithProofStepSubproofs(proofStepSubproofs, context);
164
- unifiedWithProofSteps = statementUnifiedWithProofSteps; ///
165
- }
166
- return unifiedWithProofSteps;
167
- }
168
- var unifyMixins = [
169
- unifyAWithRule,
170
- unifyAWithReference,
171
- unifyAsSatisfyingAssertion,
172
- unifyAWithAxiomLemmaTheoremOrConjecture,
173
- unifyAsEquality,
174
- unifyAsJudgement,
175
- unifyAsTypeAssertion,
176
- unifyAsPropertyAssertion,
177
- unifyWithProofStepSubproofs
178
- ];
179
- var _default = unifyMixins;
180
-
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9taXhpbnMvcHJvb2ZTdGVwL3VuaWZ5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgU3Vic3RpdHV0aW9ucyBmcm9tIFwiLi4vLi4vc3Vic3RpdHV0aW9uc1wiO1xuaW1wb3J0IFN0YXRlbWVudFN1YnN0aXR1dGlvbiBmcm9tIFwiLi4vLi4vc3Vic3RpdHV0aW9uL3N0YXRlbWVudFwiO1xuXG5pbXBvcnQgeyBlcXVhbGl0eUZyb21TdGF0ZW1lbnQsXG4gICAgICAgICBqdWRnZW1lbnRGcm9tU3RhdGVtZW50LFxuICAgICAgICAgdHlwZUFzc2VydGlvbkZyb21TdGF0ZW1lbnQsXG4gICAgICAgICBwcm9wZXJ0eUFzc2VydGlvbkZyb21TdGF0ZW1lbnQsXG4gICAgICAgICBzYXRpc2Z5aW5nQXNzZXJ0aW9uRnJvbVN0YXRlbWVudCB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29udGV4dFwiO1xuXG5mdW5jdGlvbiB1bmlmeUFXaXRoUnVsZShzdGF0ZW1lbnQsIHJlZmVyZW5jZSwgc3Vic3RpdHV0aW9ucywgY29udGV4dCkge1xuICBsZXQgdW5pZmllZFdpdGhSdWxlID0gZmFsc2U7XG5cbiAgaWYgKHJlZmVyZW5jZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHJ1bGUgPSBjb250ZXh0LmZpbmRSdWxlQnlSZWZlcmVuY2UocmVmZXJlbmNlKTtcblxuICAgIGlmIChydWxlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBydWxlU3RyaW5nID0gcnVsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtydWxlU3RyaW5nfScgcnVsZS4uLmApO1xuXG4gICAgICBjb25zdCBwcm9vZlN0ZXBTdWJwcm9vZnMgPSBjb250ZXh0LmdldFByb29mU3RlcFN1YnByb29mcygpLFxuICAgICAgICAgICAgc3RhdGVtZW50QW5kUHJvb2ZTdGVwc1VuaWZpZWQgPSBydWxlLnVuaWZ5U3RhdGVtZW50QW5kUHJvb2ZTdGVwU3VicHJvb2ZzKHN0YXRlbWVudCwgcHJvb2ZTdGVwU3VicHJvb2ZzLCBjb250ZXh0KTtcblxuICAgICAgdW5pZmllZFdpdGhSdWxlID0gc3RhdGVtZW50QW5kUHJvb2ZTdGVwc1VuaWZpZWQ7ICAvLy9cblxuICAgICAgaWYgKHVuaWZpZWRXaXRoUnVsZSkge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7cnVsZVN0cmluZ30nIHJ1bGUuYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuaWZpZWRXaXRoUnVsZTtcbn1cblxuZnVuY3Rpb24gdW5pZnlBV2l0aFJlZmVyZW5jZShzdGF0ZW1lbnQsIHJlZmVyZW5jZSwgc3Vic3RpdHV0aW9ucywgY29udGV4dCkge1xuICBsZXQgdW5pZmllZFdpdGhSZWZlcmVuY2UgPSBmYWxzZTtcblxuICBpZiAocmVmZXJlbmNlICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSByZWZlcmVuY2UudmVyaWZ5TWV0YXZhcmlhYmxlKGNvbnRleHQpO1xuXG4gICAgaWYgKG1ldGF2YXJpYWJsZVZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICByZWZlcmVuY2VTdHJpbmcgPSByZWZlcmVuY2UuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7cmVmZXJlbmNlU3RyaW5nfScgcmVmZXJlbmNlLi4uYCk7XG5cbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZSA9IHJlZmVyZW5jZS5nZXRNZXRhdmFyaWFibGUoKSxcbiAgICAgICAgICAgIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHQsICAvLy9cbiAgICAgICAgICAgIHN0YXRlbWVudFN1YnN0aXR1dGlvbiA9IFN0YXRlbWVudFN1YnN0aXR1dGlvbi5mcm9tU3RhdGVtZW50QW5kTWV0YXZhcmlhYmxlKHN0YXRlbWVudCwgbWV0YXZhcmlhYmxlLCBjb250ZXh0KSxcbiAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHN0YXRlbWVudFN1YnN0aXR1dGlvbjsgLy8vXG5cbiAgICAgIHN1YnN0aXR1dGlvbnMuYWRkU3Vic3RpdHV0aW9uKHN1YnN0aXR1dGlvbiwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgdW5pZmllZFdpdGhSZWZlcmVuY2UgPSB0cnVlO1xuXG4gICAgICBpZiAodW5pZmllZFdpdGhSZWZlcmVuY2UpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke3JlZmVyZW5jZVN0cmluZ30nIHJlZmVyZW5jZS5gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5pZmllZFdpdGhSZWZlcmVuY2U7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5QXNTYXRpc2Z5aW5nQXNzZXJ0aW9uKHN0YXRlbWVudCwgcmVmZXJlbmNlLCBzdWJzdGl0dXRpb25zLCBjb250ZXh0KSB7XG4gIGxldCB1bmlmaWVkQXNTYXRpc2Z5aW5nQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgaWYgKHJlZmVyZW5jZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHNhdGlzZnlpbmdBc3NlcnRpb24gPSBzYXRpc2Z5aW5nQXNzZXJ0aW9uRnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gICAgaWYgKHNhdGlzZnlpbmdBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHNhdGlzZnlpbmcgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgICAgIGNvbnN0IGF4aW9tTGVtbWFUaGVvcmVtQ29uamVjdHVyZSA9IGNvbnRleHQuZmluZEF4aW9tTGVtbWFUaGVvcmVtQ29uamVjdHVyZUJ5UmVmZXJlbmNlKHJlZmVyZW5jZSk7XG5cbiAgICAgIGlmIChheGlvbUxlbW1hVGhlb3JlbUNvbmplY3R1cmUgIT09IG51bGwpIHtcbiAgICAgICAgcmVmZXJlbmNlID0gc2F0aXNmeWluZ0Fzc2VydGlvbi5nZXRSZWZlcmVuY2UoKTtcblxuICAgICAgICBjb25zdCBheGlvbSA9IGNvbnRleHQuZmluZEF4aW9tQnlSZWZlcmVuY2UocmVmZXJlbmNlKSxcbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IFN1YnN0aXR1dGlvbnMuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICAgICAgYXhpb21MZW1tYVRoZW9yZW1Db25qZWN0dXJlVW5pZmllZCA9IGF4aW9tLnVuaWZ5QXhpb21MZW1tYVRoZW9yZW1Db25qZWN0dXJlKGF4aW9tTGVtbWFUaGVvcmVtQ29uamVjdHVyZSwgc3Vic3RpdHV0aW9ucywgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKGF4aW9tTGVtbWFUaGVvcmVtQ29uamVjdHVyZVVuaWZpZWQpIHtcbiAgICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25zTWF0Y2ggPSBzYXRpc2Z5aW5nQXNzZXJ0aW9uLm1hdGNoU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb25zLCBjb250ZXh0KTtcblxuICAgICAgICAgIHVuaWZpZWRBc1NhdGlzZnlpbmdBc3NlcnRpb24gPSBzdWJzdGl0dXRpb25zTWF0Y2g7ICAvLy9cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodW5pZmllZEFzU2F0aXNmeWluZ0Fzc2VydGlvbikge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBzYXRpc2Z5aW5nIGFzc2VydGlvbi5gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5pZmllZEFzU2F0aXNmeWluZ0Fzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gdW5pZnlBV2l0aEF4aW9tTGVtbWFUaGVvcmVtT3JDb25qZWN0dXJlKHN0YXRlbWVudCwgcmVmZXJlbmNlLCBzdWJzdGl0dXRpb25zLCBjb250ZXh0KSB7XG4gIGxldCB1bmlmaWVkV2l0aEF4aW9tTGVtbWFUaGVvcmVtT3JDb25qZWN0dXJlID0gZmFsc2U7XG5cbiAgaWYgKHJlZmVyZW5jZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGF4aW9tTGVtbWFUaGVvcmVtQ29uamVjdHVyZSA9IGNvbnRleHQuZmluZEF4aW9tTGVtbWFUaGVvcmVtQ29uamVjdHVyZUJ5UmVmZXJlbmNlKHJlZmVyZW5jZSksXG4gICAgICAgICAgZ2VuZXJhbFN1YnN0aXR1dGlvbnMgPSBzdWJzdGl0dXRpb25zOyAvLy9cblxuICAgIGlmIChheGlvbUxlbW1hVGhlb3JlbUNvbmplY3R1cmUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIGF4aW9tTGVtbWFUaGVvcmVtQ29uamVjdHVyZVN0cmluZyA9IHJlZmVyZW5jZS5nZXRTdHJpbmcoKTtcblxuICAgICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtheGlvbUxlbW1hVGhlb3JlbUNvbmplY3R1cmVTdHJpbmd9JyBheGlvbSwgbGVtbWEsIHRoZW9yZW0gb3IgY29uamVjdHVyZS4uLmApO1xuXG4gICAgICBjb25zdCBwcm9vZlN0ZXBTdWJwcm9vZnMgPSBjb250ZXh0LmdldFByb29mU3RlcFN1YnByb29mcygpLFxuICAgICAgICAgICAgc3BlY2lmaWNTdWJzdGl0dXRpb25zID0gU3Vic3RpdHV0aW9ucy5mcm9tTm90aGluZygpO1xuXG4gICAgICBzdWJzdGl0dXRpb25zID0gc3BlY2lmaWNTdWJzdGl0dXRpb25zOyAgLy8vXG5cbiAgICAgIGNvbnN0IHN0YXRlbWVudEFuZFByb29mU3RlcHNVbmlmaWVkID0gYXhpb21MZW1tYVRoZW9yZW1Db25qZWN0dXJlLnVuaWZ5U3RhdGVtZW50QW5kUHJvb2ZTdGVwU3VicHJvb2ZzKHN0YXRlbWVudCwgcHJvb2ZTdGVwU3VicHJvb2ZzLCBzdWJzdGl0dXRpb25zLCBjb250ZXh0KTtcblxuICAgICAgaWYgKHN0YXRlbWVudEFuZFByb29mU3RlcHNVbmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZSA9IHJlZmVyZW5jZS5nZXRNZXRhdmFyaWFibGUoKSxcbiAgICAgICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dCwgIC8vL1xuICAgICAgICAgICAgICBzdGF0ZW1lbnRTdWJzdGl0dXRpb24gPSBTdGF0ZW1lbnRTdWJzdGl0dXRpb24uZnJvbVN0YXRlbWVudEFuZE1ldGF2YXJpYWJsZShzdGF0ZW1lbnQsIG1ldGF2YXJpYWJsZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHN0YXRlbWVudFN1YnN0aXR1dGlvbjsgIC8vL1xuXG4gICAgICAgIHN1YnN0aXR1dGlvbnMgPSBnZW5lcmFsU3Vic3RpdHV0aW9uczsgLy8vXG5cbiAgICAgICAgc3Vic3RpdHV0aW9ucy5hZGRTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIHVuaWZpZWRXaXRoQXhpb21MZW1tYVRoZW9yZW1PckNvbmplY3R1cmUgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodW5pZmllZFdpdGhBeGlvbUxlbW1hVGhlb3JlbU9yQ29uamVjdHVyZSkge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7YXhpb21MZW1tYVRoZW9yZW1Db25qZWN0dXJlU3RyaW5nfScgYXhpb20sIGxlbW1hLCB0aGVvcmVtIG9yIGNvbmplY3R1cmUuYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuaWZpZWRXaXRoQXhpb21MZW1tYVRoZW9yZW1PckNvbmplY3R1cmU7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5QXNFcXVhbGl0eShzdGF0ZW1lbnQsIHJlZmVyZW5jZSwgc3Vic3RpdHV0aW9ucywgY29udGV4dCkge1xuICBsZXQgdW5pZmllZEFzRXF1YWxpdHkgPSBmYWxzZTtcblxuICBpZiAocmVmZXJlbmNlID09PSBudWxsKSB7XG4gICAgY29uc3QgZXF1YWxpdHkgPSBlcXVhbGl0eUZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICAgIGlmIChlcXVhbGl0eSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGFuIGVxdWFsaXR5Li4uYCk7XG5cbiAgICAgIHVuaWZpZWRBc0VxdWFsaXR5ID0gdHJ1ZTtcblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGFuIGVxdWFsaXR5LmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmlmaWVkQXNFcXVhbGl0eTtcbn1cblxuZnVuY3Rpb24gdW5pZnlBc0p1ZGdlbWVudChzdGF0ZW1lbnQsIHJlZmVyZW5jZSwgc3Vic3RpdHV0aW9ucywgY29udGV4dCkge1xuICBsZXQgdW5pZmllZEFzSnVkZ2VtZW50ID0gZmFsc2U7XG5cbiAgaWYgKHJlZmVyZW5jZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IGp1ZGdlbWVudCA9IGp1ZGdlbWVudEZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICAgIGlmIChqdWRnZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGp1ZGdlbWVudC4uLmApO1xuXG4gICAgICB1bmlmaWVkQXNKdWRnZW1lbnQgPSB0cnVlO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBqdWRnZW1lbnQuYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuaWZpZWRBc0p1ZGdlbWVudDtcbn1cblxuZnVuY3Rpb24gdW5pZnlBc1R5cGVBc3NlcnRpb24oc3RhdGVtZW50LCByZWZlcmVuY2UsIHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpIHtcbiAgbGV0IHVuaWZpZWRBc1R5cGVBc3NlcnRpb24gPSBmYWxzZTtcblxuICBpZiAocmVmZXJlbmNlID09PSBudWxsKSB7XG4gICAgY29uc3QgdHlwZUFzc2VydGlvbiA9IHR5cGVBc3NlcnRpb25Gcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgICBpZiAodHlwZUFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgdHlwZSBhc3NlcnRpb24uLi5gKTtcblxuICAgICAgdW5pZmllZEFzVHlwZUFzc2VydGlvbiA9IHRydWU7XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmlmaWVkQXNUeXBlQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB1bmlmeUFzUHJvcGVydHlBc3NlcnRpb24oc3RhdGVtZW50LCByZWZlcmVuY2UsIHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpIHtcbiAgbGV0IHVuaWZpZWRBc1Byb3BlcnR5QXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgaWYgKHJlZmVyZW5jZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHByb3BlcnR5QXNzZXJ0aW9uID0gcHJvcGVydHlBc3NlcnRpb25Gcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgICBpZiAocHJvcGVydHlBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHByb3BlcnR5IGFzc2VydGlvbi4uLmApO1xuXG4gICAgICBjb25zdCB0ZXJtID0gcHJvcGVydHlBc3NlcnRpb24uZ2V0VGVybSgpLFxuICAgICAgICAgICAgZXF1aXZhbGVuY2UgPSBjb250ZXh0LmZpbmRFcXVpdmFsZW5jZUJ5VGVybSh0ZXJtKTtcblxuICAgICAgaWYgKGVxdWl2YWxlbmNlICE9PSBudWxsKSB7XG4gICAgICAgIHVuaWZpZWRBc1Byb3BlcnR5QXNzZXJ0aW9uID0gZXF1aXZhbGVuY2Uuc29tZU90aGVyVGVybSh0ZXJtLCAodGVybSkgPT4geyAgLy8vXG4gICAgICAgICAgY29uc3QgcHJvcGVydHlSZWxhdGlvbiA9IHByb3BlcnR5QXNzZXJ0aW9uLmdldFByb3BlcnR5UmVsYXRpb24oKSxcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eUFzc2VydGlvbk1hdGNoZXMgPSBjb250ZXh0Lm1hdGNoVGVybUFuZFByb3BlcnR5UmVsYXRpb24odGVybSwgcHJvcGVydHlSZWxhdGlvbik7XG5cbiAgICAgICAgICBpZiAocHJvcGVydHlBc3NlcnRpb25NYXRjaGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAodW5pZmllZEFzUHJvcGVydHlBc3NlcnRpb24pIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgcHJvcGVydHkgYXNzZXJ0aW9uLmApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmlmaWVkQXNQcm9wZXJ0eUFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gdW5pZnlXaXRoUHJvb2ZTdGVwU3VicHJvb2ZzKHN0YXRlbWVudCwgcmVmZXJlbmNlLCBzdWJzdGl0dXRpb25zLCBjb250ZXh0KSB7XG4gIGxldCB1bmlmaWVkV2l0aFByb29mU3RlcHMgPSBmYWxzZTtcblxuICBpZiAocmVmZXJlbmNlID09PSBudWxsKSB7XG4gICAgY29uc3QgcHJvb2ZTdGVwU3VicHJvb2ZzID0gY29udGV4dC5nZXRQcm9vZlN0ZXBTdWJwcm9vZnMoKSxcbiAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkV2l0aFByb29mU3RlcHMgPSBzdGF0ZW1lbnQudW5pZnlXaXRoUHJvb2ZTdGVwU3VicHJvb2ZzKHByb29mU3RlcFN1YnByb29mcywgY29udGV4dCk7XG5cbiAgICB1bmlmaWVkV2l0aFByb29mU3RlcHMgPSBzdGF0ZW1lbnRVbmlmaWVkV2l0aFByb29mU3RlcHM7IC8vL1xuICB9XG5cbiAgcmV0dXJuIHVuaWZpZWRXaXRoUHJvb2ZTdGVwcztcbn1cblxuY29uc3QgdW5pZnlNaXhpbnMgPSBbXG4gIHVuaWZ5QVdpdGhSdWxlLFxuICB1bmlmeUFXaXRoUmVmZXJlbmNlLFxuICB1bmlmeUFzU2F0aXNmeWluZ0Fzc2VydGlvbixcbiAgdW5pZnlBV2l0aEF4aW9tTGVtbWFUaGVvcmVtT3JDb25qZWN0dXJlLFxuICB1bmlmeUFzRXF1YWxpdHksXG4gIHVuaWZ5QXNKdWRnZW1lbnQsXG4gIHVuaWZ5QXNUeXBlQXNzZXJ0aW9uLFxuICB1bmlmeUFzUHJvcGVydHlBc3NlcnRpb24sXG4gIHVuaWZ5V2l0aFByb29mU3RlcFN1YnByb29mc1xuXTtcblxuZXhwb3J0IGRlZmF1bHQgdW5pZnlNaXhpbnM7XG5cbiJdLCJuYW1lcyI6WyJ1bmlmeUFXaXRoUnVsZSIsInN0YXRlbWVudCIsInJlZmVyZW5jZSIsInN1YnN0aXR1dGlvbnMiLCJjb250ZXh0IiwidW5pZmllZFdpdGhSdWxlIiwicnVsZSIsImZpbmRSdWxlQnlSZWZlcmVuY2UiLCJydWxlU3RyaW5nIiwiZ2V0U3RyaW5nIiwic3RhdGVtZW50U3RyaW5nIiwidHJhY2UiLCJwcm9vZlN0ZXBTdWJwcm9vZnMiLCJnZXRQcm9vZlN0ZXBTdWJwcm9vZnMiLCJzdGF0ZW1lbnRBbmRQcm9vZlN0ZXBzVW5pZmllZCIsInVuaWZ5U3RhdGVtZW50QW5kUHJvb2ZTdGVwU3VicHJvb2ZzIiwiZGVidWciLCJ1bmlmeUFXaXRoUmVmZXJlbmNlIiwidW5pZmllZFdpdGhSZWZlcmVuY2UiLCJtZXRhdmFyaWFibGVWZXJpZmllZCIsInZlcmlmeU1ldGF2YXJpYWJsZSIsInJlZmVyZW5jZVN0cmluZyIsIm1ldGF2YXJpYWJsZSIsImdldE1ldGF2YXJpYWJsZSIsInNwZWNpZmljQ29udGV4dCIsInN0YXRlbWVudFN1YnN0aXR1dGlvbiIsIlN0YXRlbWVudFN1YnN0aXR1dGlvbiIsImZyb21TdGF0ZW1lbnRBbmRNZXRhdmFyaWFibGUiLCJzdWJzdGl0dXRpb24iLCJhZGRTdWJzdGl0dXRpb24iLCJ1bmlmeUFzU2F0aXNmeWluZ0Fzc2VydGlvbiIsInVuaWZpZWRBc1NhdGlzZnlpbmdBc3NlcnRpb24iLCJzYXRpc2Z5aW5nQXNzZXJ0aW9uIiwic2F0aXNmeWluZ0Fzc2VydGlvbkZyb21TdGF0ZW1lbnQiLCJheGlvbUxlbW1hVGhlb3JlbUNvbmplY3R1cmUiLCJmaW5kQXhpb21MZW1tYVRoZW9yZW1Db25qZWN0dXJlQnlSZWZlcmVuY2UiLCJnZXRSZWZlcmVuY2UiLCJheGlvbSIsImZpbmRBeGlvbUJ5UmVmZXJlbmNlIiwiU3Vic3RpdHV0aW9ucyIsImZyb21Ob3RoaW5nIiwiYXhpb21MZW1tYVRoZW9yZW1Db25qZWN0dXJlVW5pZmllZCIsInVuaWZ5QXhpb21MZW1tYVRoZW9yZW1Db25qZWN0dXJlIiwic3Vic3RpdHV0aW9uc01hdGNoIiwibWF0Y2hTdWJzdGl0dXRpb25zIiwidW5pZnlBV2l0aEF4aW9tTGVtbWFUaGVvcmVtT3JDb25qZWN0dXJlIiwidW5pZmllZFdpdGhBeGlvbUxlbW1hVGhlb3JlbU9yQ29uamVjdHVyZSIsImdlbmVyYWxTdWJzdGl0dXRpb25zIiwiYXhpb21MZW1tYVRoZW9yZW1Db25qZWN0dXJlU3RyaW5nIiwic3BlY2lmaWNTdWJzdGl0dXRpb25zIiwidW5pZnlBc0VxdWFsaXR5IiwidW5pZmllZEFzRXF1YWxpdHkiLCJlcXVhbGl0eSIsImVxdWFsaXR5RnJvbVN0YXRlbWVudCIsInVuaWZ5QXNKdWRnZW1lbnQiLCJ1bmlmaWVkQXNKdWRnZW1lbnQiLCJqdWRnZW1lbnQiLCJqdWRnZW1lbnRGcm9tU3RhdGVtZW50IiwidW5pZnlBc1R5cGVBc3NlcnRpb24iLCJ1bmlmaWVkQXNUeXBlQXNzZXJ0aW9uIiwidHlwZUFzc2VydGlvbiIsInR5cGVBc3NlcnRpb25Gcm9tU3RhdGVtZW50IiwidW5pZnlBc1Byb3BlcnR5QXNzZXJ0aW9uIiwidW5pZmllZEFzUHJvcGVydHlBc3NlcnRpb24iLCJwcm9wZXJ0eUFzc2VydGlvbiIsInByb3BlcnR5QXNzZXJ0aW9uRnJvbVN0YXRlbWVudCIsInRlcm0iLCJnZXRUZXJtIiwiZXF1aXZhbGVuY2UiLCJmaW5kRXF1aXZhbGVuY2VCeVRlcm0iLCJzb21lT3RoZXJUZXJtIiwicHJvcGVydHlSZWxhdGlvbiIsImdldFByb3BlcnR5UmVsYXRpb24iLCJwcm9wZXJ0eUFzc2VydGlvbk1hdGNoZXMiLCJtYXRjaFRlcm1BbmRQcm9wZXJ0eVJlbGF0aW9uIiwidW5pZnlXaXRoUHJvb2ZTdGVwU3VicHJvb2ZzIiwidW5pZmllZFdpdGhQcm9vZlN0ZXBzIiwic3RhdGVtZW50VW5pZmllZFdpdGhQcm9vZlN0ZXBzIiwidW5pZnlNaXhpbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXdRQTs7O2VBQUE7OztvRUF0UTBCO2dFQUNRO3VCQU1lOzs7Ozs7QUFFakQsU0FBU0EsZUFBZUMsU0FBUyxFQUFFQyxTQUFTLEVBQUVDLGFBQWEsRUFBRUMsT0FBTztJQUNsRSxJQUFJQyxrQkFBa0I7SUFFdEIsSUFBSUgsY0FBYyxNQUFNO1FBQ3RCLElBQU1JLE9BQU9GLFFBQVFHLG1CQUFtQixDQUFDTDtRQUV6QyxJQUFJSSxTQUFTLE1BQU07WUFDakIsSUFBTUUsYUFBYUYsS0FBS0csU0FBUyxJQUMzQkMsa0JBQWtCVCxVQUFVUSxTQUFTO1lBRTNDTCxRQUFRTyxLQUFLLENBQUMsQUFBQyxpQkFBd0RILE9BQXhDRSxpQkFBZ0IsMEJBQW1DLE9BQVhGLFlBQVc7WUFFbEYsSUFBTUkscUJBQXFCUixRQUFRUyxxQkFBcUIsSUFDbERDLGdDQUFnQ1IsS0FBS1MsbUNBQW1DLENBQUNkLFdBQVdXLG9CQUFvQlI7WUFFOUdDLGtCQUFrQlMsK0JBQWdDLEdBQUc7WUFFckQsSUFBSVQsaUJBQWlCO2dCQUNuQkQsUUFBUVksS0FBSyxDQUFDLEFBQUMsbUJBQTBEUixPQUF4Q0UsaUJBQWdCLDBCQUFtQyxPQUFYRixZQUFXO1lBQ3RGO1FBQ0Y7SUFDRjtJQUVBLE9BQU9IO0FBQ1Q7QUFFQSxTQUFTWSxvQkFBb0JoQixTQUFTLEVBQUVDLFNBQVMsRUFBRUMsYUFBYSxFQUFFQyxPQUFPO0lBQ3ZFLElBQUljLHVCQUF1QjtJQUUzQixJQUFJaEIsY0FBYyxNQUFNO1FBQ3RCLElBQU1p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