occam-verify-cli 1.0.457 → 1.0.473
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/constants.js +13 -1
- package/lib/context/ephemeral.js +270 -0
- package/lib/context/file.js +102 -66
- package/lib/context/liminal.js +120 -0
- package/lib/context/literal.js +92 -0
- package/lib/context/nominal.js +15 -1
- package/lib/context/release.js +66 -7
- package/lib/context/scoped.js +48 -40
- package/lib/context/synthetic.js +133 -0
- package/lib/element/assertion/contained.js +66 -66
- package/lib/element/assertion/defined.js +32 -32
- package/lib/element/assertion/property.js +39 -39
- package/lib/element/assertion/satisfies.js +22 -22
- package/lib/element/assumption.js +5 -8
- package/lib/element/conclusion.js +14 -13
- package/lib/element/constructor.js +2 -2
- package/lib/element/deduction.js +14 -13
- package/lib/element/derivation.js +3 -3
- package/lib/element/equality.js +5 -5
- package/lib/element/equivalence.js +112 -107
- package/lib/element/equivalences.js +24 -10
- package/lib/element/error.js +3 -3
- package/lib/element/frame.js +38 -21
- package/lib/element/hypothesis.js +2 -2
- package/lib/element/judgement.js +6 -5
- package/lib/element/metaType.js +1 -2
- package/lib/element/metavariable.js +46 -35
- package/lib/element/parameter.js +13 -5
- package/lib/element/procedureCall.js +16 -16
- package/lib/element/proof.js +14 -13
- package/lib/element/proofAssertion/premise.js +41 -30
- package/lib/element/proofAssertion/step.js +39 -35
- package/lib/element/proofAssertion/supposition.js +43 -32
- package/lib/element/proofAssertion.js +19 -5
- package/lib/element/propertyRelation.js +2 -2
- package/lib/element/reference.js +50 -9
- package/lib/element/rule.js +26 -28
- package/lib/element/section.js +2 -2
- package/lib/element/signature.js +9 -6
- package/lib/element/statement.js +44 -31
- package/lib/element/subproof.js +18 -17
- package/lib/element/substitution/frame.js +83 -46
- package/lib/element/substitution/reference.js +101 -19
- package/lib/element/substitution/statement.js +122 -75
- package/lib/element/substitution/term.js +93 -57
- package/lib/element/substitution.js +20 -69
- package/lib/element/substitutions.js +49 -34
- package/lib/element/term.js +30 -21
- package/lib/element/topLevelAssertion/axiom.js +8 -6
- package/lib/element/topLevelAssertion/conjecture.js +4 -4
- package/lib/element/topLevelAssertion/lemma.js +4 -4
- package/lib/element/topLevelAssertion/theorem.js +2 -2
- package/lib/element/topLevelAssertion.js +30 -23
- package/lib/element/topLevelMetaAssertion/metaLemma.js +2 -2
- package/lib/element/topLevelMetaAssertion/metatheorem.js +2 -2
- package/lib/element/topLevelMetaAssertion.js +16 -12
- package/lib/element/variable.js +30 -22
- package/lib/index.js +3 -3
- package/lib/main.js +3 -3
- package/lib/node/frame.js +2 -2
- package/lib/node/metavariable.js +4 -4
- package/lib/node/parameter.js +28 -7
- package/lib/node/substitution/frame.js +9 -31
- package/lib/node/substitution/reference.js +137 -0
- package/lib/node/substitution/statement.js +9 -31
- package/lib/node/substitution/term.js +9 -23
- package/lib/nonTerminalNodeMap.js +3 -2
- package/lib/process/instantiate.js +2 -14
- package/lib/process/unify.js +5 -5
- package/lib/tokenTypes.js +22 -0
- package/lib/utilities/context.js +54 -19
- package/lib/utilities/element.js +161 -336
- package/lib/utilities/instance.js +4 -4
- package/lib/utilities/string.js +18 -4
- package/lib/utilities/unification.js +24 -18
- package/lib/utilities/validation.js +31 -31
- package/package.json +2 -2
- package/src/constants.js +12 -0
- package/src/context/{transient.js → ephemeral.js} +15 -112
- package/src/context/file.js +66 -67
- package/src/context/liminal.js +67 -0
- package/src/context/{fragment.js → literal.js} +17 -4
- package/src/context/nominal.js +12 -0
- package/src/context/release.js +44 -6
- package/src/context/scoped.js +41 -31
- package/src/context/synthetic.js +60 -0
- package/src/element/assertion/contained.js +49 -47
- package/src/element/assertion/defined.js +29 -27
- package/src/element/assertion/property.js +35 -35
- package/src/element/assertion/satisfies.js +19 -18
- package/src/element/assumption.js +4 -10
- package/src/element/conclusion.js +16 -19
- package/src/element/constructor.js +1 -1
- package/src/element/deduction.js +16 -21
- package/src/element/derivation.js +2 -2
- package/src/element/equality.js +4 -4
- package/src/element/equivalence.js +115 -135
- package/src/element/equivalences.js +9 -7
- package/src/element/error.js +4 -2
- package/src/element/frame.js +50 -23
- package/src/element/hypothesis.js +1 -1
- package/src/element/judgement.js +9 -4
- package/src/element/metaType.js +0 -1
- package/src/element/metavariable.js +54 -53
- package/src/element/parameter.js +10 -5
- package/src/element/procedureCall.js +20 -18
- package/src/element/proof.js +14 -16
- package/src/element/proofAssertion/premise.js +46 -42
- package/src/element/proofAssertion/step.js +45 -40
- package/src/element/proofAssertion/supposition.js +56 -45
- package/src/element/proofAssertion.js +23 -5
- package/src/element/propertyRelation.js +1 -1
- package/src/element/reference.js +64 -16
- package/src/element/rule.js +31 -37
- package/src/element/section.js +1 -1
- package/src/element/signature.js +8 -8
- package/src/element/statement.js +51 -40
- package/src/element/subproof.js +16 -18
- package/src/element/substitution/frame.js +99 -42
- package/src/element/substitution/reference.js +120 -20
- package/src/element/substitution/statement.js +160 -89
- package/src/element/substitution/term.js +104 -63
- package/src/element/substitution.js +16 -58
- package/src/element/substitutions.js +43 -41
- package/src/element/term.js +37 -32
- package/src/element/topLevelAssertion/axiom.js +8 -6
- package/src/element/topLevelAssertion/conjecture.js +1 -2
- package/src/element/topLevelAssertion/lemma.js +2 -3
- package/src/element/topLevelAssertion/theorem.js +1 -1
- package/src/element/topLevelAssertion.js +31 -27
- package/src/element/topLevelMetaAssertion/metaLemma.js +1 -2
- package/src/element/topLevelMetaAssertion/metatheorem.js +1 -2
- package/src/element/topLevelMetaAssertion.js +15 -13
- package/src/element/variable.js +30 -31
- package/src/index.js +2 -1
- package/src/main.js +2 -1
- package/src/node/frame.js +1 -1
- package/src/node/metavariable.js +3 -3
- package/src/node/parameter.js +32 -5
- package/src/node/substitution/frame.js +6 -32
- package/src/node/substitution/reference.js +38 -0
- package/src/node/substitution/statement.js +6 -32
- package/src/node/substitution/term.js +6 -22
- package/src/nonTerminalNodeMap.js +3 -0
- package/src/process/instantiate.js +0 -8
- package/src/process/unify.js +4 -4
- package/src/tokenTypes.js +4 -0
- package/src/utilities/context.js +43 -17
- package/src/utilities/element.js +187 -401
- package/src/utilities/instance.js +3 -3
- package/src/utilities/string.js +21 -5
- package/src/utilities/unification.js +26 -23
- package/src/utilities/validation.js +47 -47
- package/lib/context/fragment.js +0 -77
- package/lib/context/transient.js +0 -371
- package/lib/log.js +0 -150
- package/lib/utilities/fragment.js +0 -23
- package/lib/utilities/node.js +0 -71
- package/src/log.js +0 -118
- package/src/utilities/fragment.js +0 -11
- package/src/utilities/node.js +0 -85
|
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "default", {
|
|
|
11
11
|
var _necessary = require("necessary");
|
|
12
12
|
var _element = /*#__PURE__*/ _interop_require_default(require("../element"));
|
|
13
13
|
var _elements = require("../elements");
|
|
14
|
+
var _context = require("../utilities/context");
|
|
14
15
|
var _string = require("../utilities/string");
|
|
15
16
|
var _instantiate = require("../process/instantiate");
|
|
16
17
|
var _brackets = require("../utilities/brackets");
|
|
@@ -69,6 +70,19 @@ function _create_class(Constructor, protoProps, staticProps) {
|
|
|
69
70
|
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
70
71
|
return Constructor;
|
|
71
72
|
}
|
|
73
|
+
function _define_property(obj, key, value) {
|
|
74
|
+
if (key in obj) {
|
|
75
|
+
Object.defineProperty(obj, key, {
|
|
76
|
+
value: value,
|
|
77
|
+
enumerable: true,
|
|
78
|
+
configurable: true,
|
|
79
|
+
writable: true
|
|
80
|
+
});
|
|
81
|
+
} else {
|
|
82
|
+
obj[key] = value;
|
|
83
|
+
}
|
|
84
|
+
return obj;
|
|
85
|
+
}
|
|
72
86
|
function _get_prototype_of(o) {
|
|
73
87
|
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
74
88
|
return o.__proto__ || Object.getPrototypeOf(o);
|
|
@@ -164,8 +178,9 @@ function _is_native_reflect_construct() {
|
|
|
164
178
|
return !!result;
|
|
165
179
|
})();
|
|
166
180
|
}
|
|
181
|
+
var _Equivalence;
|
|
167
182
|
var compress = _necessary.arrayUtilities.compress;
|
|
168
|
-
var _default = (0, _elements.define)(/*#__PURE__*/ function(Element) {
|
|
183
|
+
var _default = (0, _elements.define)((_Equivalence = /*#__PURE__*/ function(Element) {
|
|
169
184
|
_inherits(Equivalence, Element);
|
|
170
185
|
function Equivalence(context, string, node, terms) {
|
|
171
186
|
_class_call_check(this, Equivalence);
|
|
@@ -185,27 +200,6 @@ var _default = (0, _elements.define)(/*#__PURE__*/ function(Element) {
|
|
|
185
200
|
return this.terms;
|
|
186
201
|
}
|
|
187
202
|
},
|
|
188
|
-
{
|
|
189
|
-
key: "addTerm",
|
|
190
|
-
value: function addTerm(term, context) {
|
|
191
|
-
var termString = term.getString(), equivalenceString = this.asString(); ///
|
|
192
|
-
context.trace("Adding the '".concat(termString, "' term to the '").concat(equivalenceString, "' equivalence..."));
|
|
193
|
-
var termA = term, termPresent = this.someTerm(function(term) {
|
|
194
|
-
var termB = term, termAEqualToTermB = termA.isEqualTo(termB);
|
|
195
|
-
if (termAEqualToTermB) {
|
|
196
|
-
return true;
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
if (!termPresent) {
|
|
200
|
-
this.terms.push(term);
|
|
201
|
-
var termsString = (0, _string.termsStringFromTerms)(this.terms), string = termsString, equalivanceNode = (0, _instantiate.instantiateEquivalence)(string, context), equalivance = (0, _element1.equalivanceFromEquivalenceNode)(equalivanceNode, context);
|
|
202
|
-
this.node = equalivance.getNode();
|
|
203
|
-
this.string = equalivance.getString();
|
|
204
|
-
var equivalenceString1 = this.string; ///
|
|
205
|
-
context.debug("...added the '".concat(termString, "' term to the '").concat(equivalenceString1, "' equivalence."));
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
},
|
|
209
203
|
{
|
|
210
204
|
key: "getType",
|
|
211
205
|
value: function getType() {
|
|
@@ -224,6 +218,81 @@ var _default = (0, _elements.define)(/*#__PURE__*/ function(Element) {
|
|
|
224
218
|
return type;
|
|
225
219
|
}
|
|
226
220
|
},
|
|
221
|
+
{
|
|
222
|
+
key: "getGroundedTerms",
|
|
223
|
+
value: function getGroundedTerms(definedVariables, groundedTerms, context) {
|
|
224
|
+
this.terms.forEach(function(term) {
|
|
225
|
+
var termGrounded = term.isGrounded(definedVariables, context);
|
|
226
|
+
if (termGrounded) {
|
|
227
|
+
var termMatchesGroundedTerm = groundedTerms.some(function(groundedTerm) {
|
|
228
|
+
var groundedTermNode = groundedTerm.getNode(), groundedTermNodeMatches = term.matchNode(groundedTermNode);
|
|
229
|
+
if (groundedTermNodeMatches) {
|
|
230
|
+
return true;
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
if (!termMatchesGroundedTerm) {
|
|
234
|
+
var groundedTerm = term;
|
|
235
|
+
groundedTerms.push(groundedTerm);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
key: "getInitiallyGroundedTerms",
|
|
243
|
+
value: function getInitiallyGroundedTerms(context) {
|
|
244
|
+
var initiallyGroundedTerms = this.terms.reduce(function(initiallyGroundedTerms, term) {
|
|
245
|
+
var termInitiallyGrounded = term.isInitiallyGrounded(context);
|
|
246
|
+
if (termInitiallyGrounded) {
|
|
247
|
+
var initiallyGroundedTerm = term; ///
|
|
248
|
+
initiallyGroundedTerms.push(initiallyGroundedTerm);
|
|
249
|
+
}
|
|
250
|
+
return initiallyGroundedTerms;
|
|
251
|
+
}, []);
|
|
252
|
+
return initiallyGroundedTerms;
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
key: "getImplicitlyGroundedTerms",
|
|
257
|
+
value: function getImplicitlyGroundedTerms(definedVariables, context) {
|
|
258
|
+
var implicitlyGroundedTerms = this.terms.reduce(function(implicitlyGroundedTerms, term) {
|
|
259
|
+
var termImplicitlyGrounded = term.isImplicitlyGrounded(definedVariables, context);
|
|
260
|
+
if (termImplicitlyGrounded) {
|
|
261
|
+
var implicitlyGroundedTerm = term; ///
|
|
262
|
+
implicitlyGroundedTerms.push(implicitlyGroundedTerm);
|
|
263
|
+
}
|
|
264
|
+
return implicitlyGroundedTerms;
|
|
265
|
+
}, []);
|
|
266
|
+
return implicitlyGroundedTerms;
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
key: "isDisjointFrom",
|
|
271
|
+
value: function isDisjointFrom(equivalence) {
|
|
272
|
+
var _this = this;
|
|
273
|
+
var disjointFrom = equivalence.everyTerm(function(term) {
|
|
274
|
+
var comparesToTerm = _this.compareTerm(term);
|
|
275
|
+
if (!comparesToTerm) {
|
|
276
|
+
return true;
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
return disjointFrom;
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
key: "isInitiallyGrounded",
|
|
284
|
+
value: function isInitiallyGrounded(context) {
|
|
285
|
+
var initiallyGroundedTerms = this.getInitiallyGroundedTerms(context), initiallyGroundedTermsLength = initiallyGroundedTerms.length, initiallyGrounded = initiallyGroundedTermsLength > 0;
|
|
286
|
+
return initiallyGrounded;
|
|
287
|
+
}
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
key: "isImplicitlyGrounded",
|
|
291
|
+
value: function isImplicitlyGrounded(definedVariables, context) {
|
|
292
|
+
var implicitlyGroundedTerms = this.getImplicitlyGroundedTerms(definedVariables, context), implicitlyGroundedTermsLength = implicitlyGroundedTerms.length, implicitlyGrounded = implicitlyGroundedTermsLength > 0;
|
|
293
|
+
return implicitlyGrounded;
|
|
294
|
+
}
|
|
295
|
+
},
|
|
227
296
|
{
|
|
228
297
|
key: "compareTerm",
|
|
229
298
|
value: function compareTerm(term) {
|
|
@@ -277,33 +346,6 @@ var _default = (0, _elements.define)(/*#__PURE__*/ function(Element) {
|
|
|
277
346
|
return variableNodeMatches;
|
|
278
347
|
}
|
|
279
348
|
},
|
|
280
|
-
{
|
|
281
|
-
key: "isDisjointFrom",
|
|
282
|
-
value: function isDisjointFrom(equivalence) {
|
|
283
|
-
var _this = this;
|
|
284
|
-
var disjointFrom = equivalence.everyTerm(function(term) {
|
|
285
|
-
var comparesToTerm = _this.compareTerm(term);
|
|
286
|
-
if (!comparesToTerm) {
|
|
287
|
-
return true;
|
|
288
|
-
}
|
|
289
|
-
});
|
|
290
|
-
return disjointFrom;
|
|
291
|
-
}
|
|
292
|
-
},
|
|
293
|
-
{
|
|
294
|
-
key: "mergedWith",
|
|
295
|
-
value: function mergedWith(equivalence) {
|
|
296
|
-
var equivalenceA = this, equivalenceB = equivalence, equivalenceATerms = equivalenceA.getTerms(), equivalenceTermsB = equivalenceB.getTerms(), terms = _to_consumable_array(equivalenceATerms).concat(_to_consumable_array(equivalenceTermsB));
|
|
297
|
-
compress(terms, function(termA, termB) {
|
|
298
|
-
var termAEqualToTermB = termA.isEqualTo(termB);
|
|
299
|
-
if (!termAEqualToTermB) {
|
|
300
|
-
return true;
|
|
301
|
-
}
|
|
302
|
-
});
|
|
303
|
-
equivalence = new Equivalence(terms);
|
|
304
|
-
return equivalence;
|
|
305
|
-
}
|
|
306
|
-
},
|
|
307
349
|
{
|
|
308
350
|
key: "someTerm",
|
|
309
351
|
value: function someTerm(callback) {
|
|
@@ -329,77 +371,40 @@ var _default = (0, _elements.define)(/*#__PURE__*/ function(Element) {
|
|
|
329
371
|
}
|
|
330
372
|
},
|
|
331
373
|
{
|
|
332
|
-
key: "
|
|
333
|
-
value: function
|
|
334
|
-
this.terms.
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
if (groundedTermNodeMatches) {
|
|
340
|
-
return true;
|
|
341
|
-
}
|
|
342
|
-
});
|
|
343
|
-
if (!termMatchesGroundedTerm) {
|
|
344
|
-
var groundedTerm = term;
|
|
345
|
-
groundedTerms.push(groundedTerm);
|
|
346
|
-
}
|
|
374
|
+
key: "combineTerms",
|
|
375
|
+
value: function combineTerms(terms) {
|
|
376
|
+
var combinedTerms = _to_consumable_array(this.terms).concat(_to_consumable_array(terms));
|
|
377
|
+
compress(combinedTerms, function(combinedTermA, combinedTermB) {
|
|
378
|
+
var combinedTermAEqualToCombinedTermB = combinedTermA.isEqualTo(combinedTermB);
|
|
379
|
+
if (!combinedTermAEqualToCombinedTermB) {
|
|
380
|
+
return true;
|
|
347
381
|
}
|
|
348
382
|
});
|
|
383
|
+
return combinedTerms;
|
|
349
384
|
}
|
|
350
385
|
},
|
|
351
386
|
{
|
|
352
|
-
key: "
|
|
353
|
-
value: function
|
|
354
|
-
var
|
|
355
|
-
return
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
key: "isImplicitlyGrounded",
|
|
360
|
-
value: function isImplicitlyGrounded(definedVariables, context) {
|
|
361
|
-
var implicitlyGroundedTerms = this.getImplicitlyGroundedTerms(definedVariables, context), implicitlyGroundedTermsLength = implicitlyGroundedTerms.length, implicitlyGrounded = implicitlyGroundedTermsLength > 0;
|
|
362
|
-
return implicitlyGrounded;
|
|
363
|
-
}
|
|
364
|
-
},
|
|
365
|
-
{
|
|
366
|
-
key: "getInitiallyGroundedTerms",
|
|
367
|
-
value: function getInitiallyGroundedTerms(context) {
|
|
368
|
-
var initiallyGroundedTerms = this.terms.reduce(function(initiallyGroundedTerms, term) {
|
|
369
|
-
var termInitiallyGrounded = term.isInitiallyGrounded(context);
|
|
370
|
-
if (termInitiallyGrounded) {
|
|
371
|
-
var initiallyGroundedTerm = term; ///
|
|
372
|
-
initiallyGroundedTerms.push(initiallyGroundedTerm);
|
|
373
|
-
}
|
|
374
|
-
return initiallyGroundedTerms;
|
|
375
|
-
}, []);
|
|
376
|
-
return initiallyGroundedTerms;
|
|
377
|
-
}
|
|
378
|
-
},
|
|
379
|
-
{
|
|
380
|
-
key: "getImplicitlyGroundedTerms",
|
|
381
|
-
value: function getImplicitlyGroundedTerms(definedVariables, context) {
|
|
382
|
-
var implicitlyGroundedTerms = this.terms.reduce(function(implicitlyGroundedTerms, term) {
|
|
383
|
-
var termImplicitlyGrounded = term.isImplicitlyGrounded(definedVariables, context);
|
|
384
|
-
if (termImplicitlyGrounded) {
|
|
385
|
-
var implicitlyGroundedTerm = term; ///
|
|
386
|
-
implicitlyGroundedTerms.push(implicitlyGroundedTerm);
|
|
387
|
-
}
|
|
388
|
-
return implicitlyGroundedTerms;
|
|
389
|
-
}, []);
|
|
390
|
-
return implicitlyGroundedTerms;
|
|
387
|
+
key: "mergedWith",
|
|
388
|
+
value: function mergedWith(equivalence, context) {
|
|
389
|
+
var terms = equivalence.getTerms(), combinedTerms = this.combineTerms(terms);
|
|
390
|
+
return (0, _context.literally)(function(context) {
|
|
391
|
+
var terms = combinedTerms, termsString = (0, _string.termsStringFromTerms)(terms), string = termsString, equivalenceNode = (0, _instantiate.instantiateEquivalence)(string, context), _$equivalence = (0, _element1.equivalenceFromEquivalenceNode)(equivalenceNode, context);
|
|
392
|
+
return _$equivalence;
|
|
393
|
+
}, context);
|
|
391
394
|
}
|
|
392
395
|
}
|
|
393
396
|
], [
|
|
394
397
|
{
|
|
395
398
|
key: "fromEquality",
|
|
396
399
|
value: function fromEquality(equality, context) {
|
|
397
|
-
|
|
398
|
-
|
|
400
|
+
return (0, _context.literally)(function(context) {
|
|
401
|
+
var terms = equality.getTerms(), termsString = (0, _string.termsStringFromTerms)(terms), string = termsString, equivalenceNode = (0, _instantiate.instantiateEquivalence)(string, context), equivalence = (0, _element1.equivalenceFromEquivalenceNode)(equivalenceNode, context);
|
|
402
|
+
return equivalence;
|
|
403
|
+
}, context);
|
|
399
404
|
}
|
|
400
405
|
}
|
|
401
406
|
]);
|
|
402
407
|
return Equivalence;
|
|
403
|
-
}(_wrap_native_super(_element.default)));
|
|
408
|
+
}(_wrap_native_super(_element.default)), _define_property(_Equivalence, "name", "Equivalence"), _Equivalence));
|
|
404
409
|
|
|
405
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2VxdWl2YWxlbmNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IEVsZW1lbnQgZnJvbSBcIi4uL2VsZW1lbnRcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyB0ZXJtc1N0cmluZ0Zyb21UZXJtcyB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZUVxdWl2YWxlbmNlIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IHN0cmlwQnJhY2tldHNGcm9tVGVybU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2JyYWNrZXRzXCI7XG5pbXBvcnQgeyBlcXVhbGl2YW5jZUZyb21FcXVpdmFsZW5jZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBjb21wcmVzcyB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBFcXVpdmFsZW5jZSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIHRlcm1zKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlKTtcbiAgICB0aGlzLnRlcm1zID0gdGVybXM7XG4gIH1cblxuICBnZXRUZXJtcygpIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtcztcbiAgfVxuXG4gIGFkZFRlcm0odGVybSwgY29udGV4dCkge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgIGVxdWl2YWxlbmNlU3RyaW5nID0gdGhpcy5hc1N0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEFkZGluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gdG8gdGhlICcke2VxdWl2YWxlbmNlU3RyaW5nfScgZXF1aXZhbGVuY2UuLi5gKTtcblxuICAgIGNvbnN0IHRlcm1BID0gdGVybSwgLy8vXG4gICAgICAgICAgdGVybVByZXNlbnQgPSB0aGlzLnNvbWVUZXJtKCh0ZXJtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ZXJtQiA9IHRlcm0sIC8vL1xuICAgICAgICAgICAgICAgICAgdGVybUFFcXVhbFRvVGVybUIgPSB0ZXJtQS5pc0VxdWFsVG8odGVybUIpO1xuXG4gICAgICAgICAgICBpZiAodGVybUFFcXVhbFRvVGVybUIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICBpZiAoIXRlcm1QcmVzZW50KSB7XG4gICAgICB0aGlzLnRlcm1zLnB1c2godGVybSk7XG5cbiAgICAgIGNvbnN0IHRlcm1zU3RyaW5nID0gdGVybXNTdHJpbmdGcm9tVGVybXModGhpcy50ZXJtcyksXG4gICAgICAgICAgICBzdHJpbmcgPSB0ZXJtc1N0cmluZywgIC8vL1xuICAgICAgICAgICAgZXF1YWxpdmFuY2VOb2RlID0gaW5zdGFudGlhdGVFcXVpdmFsZW5jZShzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgZXF1YWxpdmFuY2UgPSBlcXVhbGl2YW5jZUZyb21FcXVpdmFsZW5jZU5vZGUoZXF1YWxpdmFuY2VOb2RlLCBjb250ZXh0KTtcblxuICAgICAgdGhpcy5ub2RlID0gZXF1YWxpdmFuY2UuZ2V0Tm9kZSgpO1xuXG4gICAgICB0aGlzLnN0cmluZyA9IGVxdWFsaXZhbmNlLmdldFN0cmluZygpO1xuXG4gICAgICBjb25zdCBlcXVpdmFsZW5jZVN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uYWRkZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHRvIHRoZSAnJHtlcXVpdmFsZW5jZVN0cmluZ30nIGVxdWl2YWxlbmNlLmApO1xuICAgIH1cbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgY29uc3QgdHlwZSA9IHRoaXMudGVybXMucmVkdWNlKCh0eXBlLCB0ZXJtKSA9PiB7XG4gICAgICBjb25zdCB0ZXJtVHlwZSA9IHRlcm0uZ2V0VHlwZSgpO1xuXG4gICAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgICB0eXBlID0gdGVybVR5cGU7ICAvLy9cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHRlcm1UeXBlU3ViVHlwZU9mVHlwZSA9IHRlcm1UeXBlLmlzU3ViVHlwZU9mKHR5cGUpO1xuXG4gICAgICAgIGlmICh0ZXJtVHlwZVN1YlR5cGVPZlR5cGUpIHtcbiAgICAgICAgICB0eXBlID0gdGVybVR5cGU7ICAvLy9cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9LCBudWxsKTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgY29tcGFyZVRlcm0odGVybSkge1xuICAgIGNvbnN0IHRlcm1BID0gdGVybSwgLy8vXG4gICAgICAgICAgY29tcGFyZXNUb1Rlcm0gPSB0aGlzLnNvbWVUZXJtKCh0ZXJtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ZXJtQiA9IHRlcm0sIC8vL1xuICAgICAgICAgICAgICAgICAgdGVybUFFcXVhbFRvVGVybUIgPSB0ZXJtQS5pc0VxdWFsVG8odGVybUIpO1xuXG4gICAgICAgICAgICBpZiAodGVybUFFcXVhbFRvVGVybUIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICByZXR1cm4gY29tcGFyZXNUb1Rlcm07XG4gIH1cblxuICBtYXRjaFRlcm1Ob2RlKHRlcm1Ob2RlKSB7XG4gICAgdGVybU5vZGUgPSBzdHJpcEJyYWNrZXRzRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlKTsgLy8vXG5cbiAgICBjb25zdCB0ZXJtTm9kZU1hdGNoZXMgPSB0aGlzLnNvbWVUZXJtKCh0ZXJtKSA9PiB7XG4gICAgICBjb25zdCB0ZXJtTm9kZU1hdGNoZXMgPSB0ZXJtLm1hdGNoTm9kZSh0ZXJtTm9kZSk7XG5cbiAgICAgIGlmICh0ZXJtTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGVybU5vZGVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hUZXJtTm9kZXModGVybU5vZGVzKSB7XG4gICAgY29uc3QgdGVybU5vZGVzTWF0Y2ggPSB0ZXJtTm9kZXMuZXZlcnkoKHRlcm1Ob2RlKSA9PiB7XG4gICAgICBjb25zdCB0ZXJtTm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoVGVybU5vZGUodGVybU5vZGUpO1xuXG4gICAgICBpZiAodGVybU5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRlcm1Ob2Rlc01hdGNoO1xuICB9XG5cbiAgbWF0Y2hWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3QgdmFyaWFibGVOb2RlQSA9IHZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGVOb2RlTWF0Y2hlcyA9IHRoaXMuc29tZVRlcm0oKHRlcm0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRlcm1Ob2RlID0gdGVybS5nZXROb2RlKCksXG4gICAgICAgICAgICAgICAgICBzaW5ndWxhclZhcmlhYmxlTm9kZSA9IHRlcm1Ob2RlLmdldFNpbmd1bGFyVmFyaWFibGVOb2RlKCk7XG5cbiAgICAgICAgICAgIGlmIChzaW5ndWxhclZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCB2YXJpYWJsZU5vZGVCID0gc2luZ3VsYXJWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZU5vZGVBTWF0Y2hlc1ZhcmlhYmxlTm9kZUIgPSB2YXJpYWJsZU5vZGVBLm1hdGNoKHZhcmlhYmxlTm9kZUIpO1xuXG4gICAgICAgICAgICAgIGlmICh2YXJpYWJsZU5vZGVBTWF0Y2hlc1ZhcmlhYmxlTm9kZUIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlTm9kZU1hdGNoZXM7XG4gIH1cblxuICBpc0Rpc2pvaW50RnJvbShlcXVpdmFsZW5jZSkge1xuICAgIGNvbnN0IGRpc2pvaW50RnJvbSA9IGVxdWl2YWxlbmNlLmV2ZXJ5VGVybSgodGVybSkgPT4ge1xuICAgICAgY29uc3QgY29tcGFyZXNUb1Rlcm0gPSB0aGlzLmNvbXBhcmVUZXJtKHRlcm0pO1xuXG4gICAgICBpZiAoIWNvbXBhcmVzVG9UZXJtKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRpc2pvaW50RnJvbTtcbiAgfVxuXG4gIG1lcmdlZFdpdGgoZXF1aXZhbGVuY2UpIHtcbiAgICBjb25zdCBlcXVpdmFsZW5jZUEgPSB0aGlzLFxuICAgICAgICAgIGVxdWl2YWxlbmNlQiA9IGVxdWl2YWxlbmNlLCAvLy9cbiAgICAgICAgICBlcXVpdmFsZW5jZUFUZXJtcyA9IGVxdWl2YWxlbmNlQS5nZXRUZXJtcygpLFxuICAgICAgICAgIGVxdWl2YWxlbmNlVGVybXNCID0gZXF1aXZhbGVuY2VCLmdldFRlcm1zKCksXG4gICAgICAgICAgdGVybXMgPSBbXG4gICAgICAgICAgICAuLi5lcXVpdmFsZW5jZUFUZXJtcyxcbiAgICAgICAgICAgIC4uLmVxdWl2YWxlbmNlVGVybXNCXG4gICAgICAgICAgXTtcblxuICAgIGNvbXByZXNzKHRlcm1zLCAodGVybUEsIHRlcm1CKSA9PiB7XG4gICAgICBjb25zdCB0ZXJtQUVxdWFsVG9UZXJtQiA9IHRlcm1BLmlzRXF1YWxUbyh0ZXJtQik7XG5cbiAgICAgIGlmICghdGVybUFFcXVhbFRvVGVybUIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBlcXVpdmFsZW5jZSA9IG5ldyBFcXVpdmFsZW5jZSh0ZXJtcyk7XG5cbiAgICByZXR1cm4gZXF1aXZhbGVuY2U7XG4gIH1cblxuICBzb21lVGVybShjYWxsYmFjaykgeyByZXR1cm4gdGhpcy50ZXJtcy5zb21lKGNhbGxiYWNrKTsgfVxuXG4gIGV2ZXJ5VGVybShjYWxsYmFjaykgeyByZXR1cm4gdGhpcy50ZXJtcy5ldmVyeShjYWxsYmFjayk7IH1cblxuICBzb21lT3RoZXJUZXJtKHRlcm0sIGNhbGxiYWNrKSB7XG4gICAgY29uc3QgdGVybUEgPSB0ZXJtLCAvLy9cbiAgICAgICAgICB0ZXJtcyA9IHRoaXMudGVybXMuZmlsdGVyKCh0ZXJtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ZXJtQiA9IHRlcm0sIC8vL1xuICAgICAgICAgICAgICAgICAgdGVybUFFcXVhbFRvVGVybUIgPSB0ZXJtQS5pc0VxdWFsVG8odGVybUIpO1xuXG4gICAgICAgICAgICBpZiAoIXRlcm1BRXF1YWxUb1Rlcm1CKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHJlc3VsdCA9IHRlcm1zLnNvbWUoY2FsbGJhY2spO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldEdyb3VuZGVkVGVybXMoZGVmaW5lZFZhcmlhYmxlcywgZ3JvdW5kZWRUZXJtcywgY29udGV4dCkge1xuICAgIHRoaXMudGVybXMuZm9yRWFjaCgodGVybSkgPT4ge1xuICAgICAgY29uc3QgdGVybUdyb3VuZGVkID0gdGVybS5pc0dyb3VuZGVkKGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gICAgICBpZiAodGVybUdyb3VuZGVkKSB7XG4gICAgICAgIGNvbnN0IHRlcm1NYXRjaGVzR3JvdW5kZWRUZXJtID0gZ3JvdW5kZWRUZXJtcy5zb21lKChncm91bmRlZFRlcm0pID0+IHtcbiAgICAgICAgICBjb25zdCBncm91bmRlZFRlcm1Ob2RlID0gZ3JvdW5kZWRUZXJtLmdldE5vZGUoKSxcbiAgICAgICAgICAgICAgICBncm91bmRlZFRlcm1Ob2RlTWF0Y2hlcyA9IHRlcm0ubWF0Y2hOb2RlKGdyb3VuZGVkVGVybU5vZGUpO1xuXG4gICAgICAgICAgaWYgKGdyb3VuZGVkVGVybU5vZGVNYXRjaGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKCF0ZXJtTWF0Y2hlc0dyb3VuZGVkVGVybSkge1xuICAgICAgICAgIGNvbnN0IGdyb3VuZGVkVGVybSA9IHRlcm07XG5cbiAgICAgICAgICBncm91bmRlZFRlcm1zLnB1c2goZ3JvdW5kZWRUZXJtKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaXNJbml0aWFsbHlHcm91bmRlZChjb250ZXh0KSB7XG4gICAgY29uc3QgaW5pdGlhbGx5R3JvdW5kZWRUZXJtcyA9IHRoaXMuZ2V0SW5pdGlhbGx5R3JvdW5kZWRUZXJtcyhjb250ZXh0KSxcbiAgICAgICAgICBpbml0aWFsbHlHcm91bmRlZFRlcm1zTGVuZ3RoID0gaW5pdGlhbGx5R3JvdW5kZWRUZXJtcy5sZW5ndGgsXG4gICAgICAgICAgaW5pdGlhbGx5R3JvdW5kZWQgPSAoaW5pdGlhbGx5R3JvdW5kZWRUZXJtc0xlbmd0aCA+IDApO1xuXG4gICAgcmV0dXJuIGluaXRpYWxseUdyb3VuZGVkO1xuICB9XG5cbiAgaXNJbXBsaWNpdGx5R3JvdW5kZWQoZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCkge1xuICAgIGNvbnN0IGltcGxpY2l0bHlHcm91bmRlZFRlcm1zID0gdGhpcy5nZXRJbXBsaWNpdGx5R3JvdW5kZWRUZXJtcyhkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KSxcbiAgICAgICAgICBpbXBsaWNpdGx5R3JvdW5kZWRUZXJtc0xlbmd0aCA9IGltcGxpY2l0bHlHcm91bmRlZFRlcm1zLmxlbmd0aCxcbiAgICAgICAgICBpbXBsaWNpdGx5R3JvdW5kZWQgPSAoaW1wbGljaXRseUdyb3VuZGVkVGVybXNMZW5ndGggPiAwKTtcblxuICAgIHJldHVybiBpbXBsaWNpdGx5R3JvdW5kZWQ7XG4gIH1cblxuICBnZXRJbml0aWFsbHlHcm91bmRlZFRlcm1zKGNvbnRleHQpIHtcbiAgICBjb25zdCBpbml0aWFsbHlHcm91bmRlZFRlcm1zID0gdGhpcy50ZXJtcy5yZWR1Y2UoKGluaXRpYWxseUdyb3VuZGVkVGVybXMsIHRlcm0pID0+IHtcbiAgICAgIGNvbnN0IHRlcm1Jbml0aWFsbHlHcm91bmRlZCA9IHRlcm0uaXNJbml0aWFsbHlHcm91bmRlZChjb250ZXh0KTtcblxuICAgICAgaWYgKHRlcm1Jbml0aWFsbHlHcm91bmRlZCkge1xuICAgICAgICBjb25zdCBpbml0aWFsbHlHcm91bmRlZFRlcm0gPSB0ZXJtOyAvLy9cblxuICAgICAgICBpbml0aWFsbHlHcm91bmRlZFRlcm1zLnB1c2goaW5pdGlhbGx5R3JvdW5kZWRUZXJtKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGluaXRpYWxseUdyb3VuZGVkVGVybXM7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIGluaXRpYWxseUdyb3VuZGVkVGVybXM7XG4gIH1cblxuICBnZXRJbXBsaWNpdGx5R3JvdW5kZWRUZXJtcyhkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KSB7XG4gICAgY29uc3QgaW1wbGljaXRseUdyb3VuZGVkVGVybXMgPSB0aGlzLnRlcm1zLnJlZHVjZSgoaW1wbGljaXRseUdyb3VuZGVkVGVybXMsIHRlcm0pID0+IHtcbiAgICAgIGNvbnN0IHRlcm1JbXBsaWNpdGx5R3JvdW5kZWQgPSB0ZXJtLmlzSW1wbGljaXRseUdyb3VuZGVkKGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gICAgICBpZiAodGVybUltcGxpY2l0bHlHcm91bmRlZCkge1xuICAgICAgICBjb25zdCBpbXBsaWNpdGx5R3JvdW5kZWRUZXJtID0gdGVybTsgLy8vXG5cbiAgICAgICAgaW1wbGljaXRseUdyb3VuZGVkVGVybXMucHVzaChpbXBsaWNpdGx5R3JvdW5kZWRUZXJtKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGltcGxpY2l0bHlHcm91bmRlZFRlcm1zO1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiBpbXBsaWNpdGx5R3JvdW5kZWRUZXJtcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRXF1YWxpdHkoZXF1YWxpdHksIGNvbnRleHQpIHtcbiAgICBjb25zdCB0ZXJtcyA9IGVxdWFsaXR5LmdldFRlcm1zKCksXG4gICAgICAgICAgdGVybXNTdHJpbmcgPSB0ZXJtc1N0cmluZ0Zyb21UZXJtcyh0ZXJtcyksXG4gICAgICAgICAgc3RyaW5nID0gdGVybXNTdHJpbmcsICAvLy9cbiAgICAgICAgICBlcXVhbGl2YW5jZU5vZGUgPSBpbnN0YW50aWF0ZUVxdWl2YWxlbmNlKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgZXF1YWxpdmFuY2UgPSBlcXVhbGl2YW5jZUZyb21FcXVpdmFsZW5jZU5vZGUoZXF1YWxpdmFuY2VOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBlcXVhbGl2YW5jZTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiY29tcHJlc3MiLCJhcnJheVV0aWxpdGllcyIsImRlZmluZSIsIkVxdWl2YWxlbmNlIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJ0ZXJtcyIsImdldFRlcm1zIiwiYWRkVGVybSIsInRlcm0iLCJ0ZXJtU3RyaW5nIiwiZ2V0U3RyaW5nIiwiZXF1aXZhbGVuY2VTdHJpbmciLCJhc1N0cmluZyIsInRyYWNlIiwidGVybUEiLCJ0ZXJtUHJlc2VudCIsInNvbWVUZXJtIiwidGVybUIiLCJ0ZXJtQUVxdWFsVG9UZXJtQiIsImlzRXF1YWxUbyIsInB1c2giLCJ0ZXJtc1N0cmluZyIsInRlcm1zU3RyaW5nRnJvbVRlcm1zIiwiZXF1YWxpdmFuY2VOb2RlIiwiaW5zdGFudGlhdGVFcXVpdmFsZW5jZSIsImVxdWFsaXZhbmNlIiwiZXF1YWxpdmFuY2VGcm9tRXF1aXZhbGVuY2VOb2RlIiwiZ2V0Tm9kZSIsImRlYnVnIiwiZ2V0VHlwZSIsInR5cGUiLCJyZWR1Y2UiLCJ0ZXJtVHlwZSIsInRlcm1UeXBlU3ViVHlwZU9mVHlwZSIsImlzU3ViVHlwZU9mIiwiY29tcGFyZVRlcm0iLCJjb21wYXJlc1RvVGVybSIsIm1hdGNoVGVybU5vZGUiLCJ0ZXJtTm9kZSIsInN0cmlwQnJhY2tldHNGcm9tVGVybU5vZGUiLCJ0ZXJtTm9kZU1hdGNoZXMiLCJtYXRjaE5vZGUiLCJtYXRjaFRlcm1Ob2RlcyIsInRlcm1Ob2RlcyIsInRlcm1Ob2Rlc01hdGNoIiwiZXZlcnkiLCJtYXRjaFZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZUEiLCJ2YXJpYWJsZU5vZGVNYXRjaGVzIiwic2luZ3VsYXJWYXJpYWJsZU5vZGUiLCJnZXRTaW5ndWxhclZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZUIiLCJ2YXJpYWJsZU5vZGVBTWF0Y2hlc1ZhcmlhYmxlTm9kZUIiLCJtYXRjaCIsImlzRGlzam9pbnRGcm9tIiwiZXF1aXZhbGVuY2UiLCJkaXNqb2ludEZyb20iLCJldmVyeVRlcm0iLCJtZXJnZWRXaXRoIiwiZXF1aXZhbGVuY2VBIiwiZXF1aXZhbGVuY2VCIiwiZXF1aXZhbGVuY2VBVGVybXMiLCJlcXVpdmFsZW5jZVRlcm1zQiIsImNhbGxiYWNrIiwic29tZSIsInNvbWVPdGhlclRlcm0iLCJmaWx0ZXIiLCJyZXN1bHQiLCJnZXRHcm91bmRlZFRlcm1zIiwiZGVmaW5lZFZhcmlhYmxlcyIsImdyb3VuZGVkVGVybXMiLCJmb3JFYWNoIiwidGVybUdyb3VuZGVkIiwiaXNHcm91bmRlZCIsInRlcm1NYXRjaGVzR3JvdW5kZWRUZXJtIiwiZ3JvdW5kZWRUZXJtIiwiZ3JvdW5kZWRUZXJtTm9kZSIsImdyb3VuZGVkVGVybU5vZGVNYXRjaGVzIiwiaXNJbml0aWFsbHlHcm91bmRlZCIsImluaXRpYWxseUdyb3VuZGVkVGVybXMiLCJnZXRJbml0aWFsbHlHcm91bmRlZFRlcm1zIiwiaW5pdGlhbGx5R3JvdW5kZWRUZXJtc0xlbmd0aCIsImxlbmd0aCIsImluaXRpYWxseUdyb3VuZGVkIiwiaXNJbXBsaWNpdGx5R3JvdW5kZWQiLCJpbXBsaWNpdGx5R3JvdW5kZWRUZXJtcyIsImdldEltcGxpY2l0bHlHcm91bmRlZFRlcm1zIiwiaW1wbGljaXRseUdyb3VuZGVkVGVybXNMZW5ndGgiLCJpbXBsaWNpdGx5R3JvdW5kZWQiLCJ0ZXJtSW5pdGlhbGx5R3JvdW5kZWQiLCJpbml0aWFsbHlHcm91bmRlZFRlcm0iLCJ0ZXJtSW1wbGljaXRseUdyb3VuZGVkIiwiaW1wbGljaXRseUdyb3VuZGVkVGVybSIsImZyb21FcXVhbGl0eSIsImVxdWFsaXR5IiwiRWxlbWVudCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUFBOzs7eUJBWitCOzhEQUVYO3dCQUVHO3NCQUNjOzJCQUNFO3dCQUNHO3dCQUNLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFL0MsSUFBTSxBQUFFQSxXQUFhQyx5QkFBYyxDQUEzQkQ7SUFFUixXQUFlRSxJQUFBQSxnQkFBTSxnQkFBQzs7YUFBTUMsWUFDZEMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsS0FBSztnQ0FEZEo7O2dCQUV4QixrQkFGd0JBO1lBRWxCQztZQUFTQztZQUFRQzs7UUFDdkIsTUFBS0MsS0FBSyxHQUFHQTs7Ozs7WUFHZkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRCxLQUFLO1lBQ25COzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFB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
|
|
410
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2VxdWl2YWxlbmNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IEVsZW1lbnQgZnJvbSBcIi4uL2VsZW1lbnRcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBsaXRlcmFsbHkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IHRlcm1zU3RyaW5nRnJvbVRlcm1zIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlRXF1aXZhbGVuY2UgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgc3RyaXBCcmFja2V0c0Zyb21UZXJtTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvYnJhY2tldHNcIjtcbmltcG9ydCB7IGVxdWl2YWxlbmNlRnJvbUVxdWl2YWxlbmNlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuXG5jb25zdCB7IGNvbXByZXNzIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEVxdWl2YWxlbmNlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgdGVybXMpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUpO1xuICAgIHRoaXMudGVybXMgPSB0ZXJtcztcbiAgfVxuXG4gIGdldFRlcm1zKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm1zO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy50ZXJtcy5yZWR1Y2UoKHR5cGUsIHRlcm0pID0+IHtcbiAgICAgIGNvbnN0IHRlcm1UeXBlID0gdGVybS5nZXRUeXBlKCk7XG5cbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgIHR5cGUgPSB0ZXJtVHlwZTsgIC8vL1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdGVybVR5cGVTdWJUeXBlT2ZUeXBlID0gdGVybVR5cGUuaXNTdWJUeXBlT2YodHlwZSk7XG5cbiAgICAgICAgaWYgKHRlcm1UeXBlU3ViVHlwZU9mVHlwZSkge1xuICAgICAgICAgIHR5cGUgPSB0ZXJtVHlwZTsgIC8vL1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH0sIG51bGwpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBnZXRHcm91bmRlZFRlcm1zKGRlZmluZWRWYXJpYWJsZXMsIGdyb3VuZGVkVGVybXMsIGNvbnRleHQpIHtcbiAgICB0aGlzLnRlcm1zLmZvckVhY2goKHRlcm0pID0+IHtcbiAgICAgIGNvbnN0IHRlcm1Hcm91bmRlZCA9IHRlcm0uaXNHcm91bmRlZChkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KTtcblxuICAgICAgaWYgKHRlcm1Hcm91bmRlZCkge1xuICAgICAgICBjb25zdCB0ZXJtTWF0Y2hlc0dyb3VuZGVkVGVybSA9IGdyb3VuZGVkVGVybXMuc29tZSgoZ3JvdW5kZWRUZXJtKSA9PiB7XG4gICAgICAgICAgY29uc3QgZ3JvdW5kZWRUZXJtTm9kZSA9IGdyb3VuZGVkVGVybS5nZXROb2RlKCksXG4gICAgICAgICAgICAgICAgZ3JvdW5kZWRUZXJtTm9kZU1hdGNoZXMgPSB0ZXJtLm1hdGNoTm9kZShncm91bmRlZFRlcm1Ob2RlKTtcblxuICAgICAgICAgIGlmIChncm91bmRlZFRlcm1Ob2RlTWF0Y2hlcykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIGlmICghdGVybU1hdGNoZXNHcm91bmRlZFRlcm0pIHtcbiAgICAgICAgICBjb25zdCBncm91bmRlZFRlcm0gPSB0ZXJtO1xuXG4gICAgICAgICAgZ3JvdW5kZWRUZXJtcy5wdXNoKGdyb3VuZGVkVGVybSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldEluaXRpYWxseUdyb3VuZGVkVGVybXMoY29udGV4dCkge1xuICAgIGNvbnN0IGluaXRpYWxseUdyb3VuZGVkVGVybXMgPSB0aGlzLnRlcm1zLnJlZHVjZSgoaW5pdGlhbGx5R3JvdW5kZWRUZXJtcywgdGVybSkgPT4ge1xuICAgICAgY29uc3QgdGVybUluaXRpYWxseUdyb3VuZGVkID0gdGVybS5pc0luaXRpYWxseUdyb3VuZGVkKGNvbnRleHQpO1xuXG4gICAgICBpZiAodGVybUluaXRpYWxseUdyb3VuZGVkKSB7XG4gICAgICAgIGNvbnN0IGluaXRpYWxseUdyb3VuZGVkVGVybSA9IHRlcm07IC8vL1xuXG4gICAgICAgIGluaXRpYWxseUdyb3VuZGVkVGVybXMucHVzaChpbml0aWFsbHlHcm91bmRlZFRlcm0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5pdGlhbGx5R3JvdW5kZWRUZXJtcztcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gaW5pdGlhbGx5R3JvdW5kZWRUZXJtcztcbiAgfVxuXG4gIGdldEltcGxpY2l0bHlHcm91bmRlZFRlcm1zKGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpIHtcbiAgICBjb25zdCBpbXBsaWNpdGx5R3JvdW5kZWRUZXJtcyA9IHRoaXMudGVybXMucmVkdWNlKChpbXBsaWNpdGx5R3JvdW5kZWRUZXJtcywgdGVybSkgPT4ge1xuICAgICAgY29uc3QgdGVybUltcGxpY2l0bHlHcm91bmRlZCA9IHRlcm0uaXNJbXBsaWNpdGx5R3JvdW5kZWQoZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCk7XG5cbiAgICAgIGlmICh0ZXJtSW1wbGljaXRseUdyb3VuZGVkKSB7XG4gICAgICAgIGNvbnN0IGltcGxpY2l0bHlHcm91bmRlZFRlcm0gPSB0ZXJtOyAvLy9cblxuICAgICAgICBpbXBsaWNpdGx5R3JvdW5kZWRUZXJtcy5wdXNoKGltcGxpY2l0bHlHcm91bmRlZFRlcm0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW1wbGljaXRseUdyb3VuZGVkVGVybXM7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIGltcGxpY2l0bHlHcm91bmRlZFRlcm1zO1xuICB9XG5cbiAgaXNEaXNqb2ludEZyb20oZXF1aXZhbGVuY2UpIHtcbiAgICBjb25zdCBkaXNqb2ludEZyb20gPSBlcXVpdmFsZW5jZS5ldmVyeVRlcm0oKHRlcm0pID0+IHtcbiAgICAgIGNvbnN0IGNvbXBhcmVzVG9UZXJtID0gdGhpcy5jb21wYXJlVGVybSh0ZXJtKTtcblxuICAgICAgaWYgKCFjb21wYXJlc1RvVGVybSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBkaXNqb2ludEZyb207XG4gIH1cblxuICBpc0luaXRpYWxseUdyb3VuZGVkKGNvbnRleHQpIHtcbiAgICBjb25zdCBpbml0aWFsbHlHcm91bmRlZFRlcm1zID0gdGhpcy5nZXRJbml0aWFsbHlHcm91bmRlZFRlcm1zKGNvbnRleHQpLFxuICAgICAgICAgIGluaXRpYWxseUdyb3VuZGVkVGVybXNMZW5ndGggPSBpbml0aWFsbHlHcm91bmRlZFRlcm1zLmxlbmd0aCxcbiAgICAgICAgICBpbml0aWFsbHlHcm91bmRlZCA9IChpbml0aWFsbHlHcm91bmRlZFRlcm1zTGVuZ3RoID4gMCk7XG5cbiAgICByZXR1cm4gaW5pdGlhbGx5R3JvdW5kZWQ7XG4gIH1cblxuICBpc0ltcGxpY2l0bHlHcm91bmRlZChkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KSB7XG4gICAgY29uc3QgaW1wbGljaXRseUdyb3VuZGVkVGVybXMgPSB0aGlzLmdldEltcGxpY2l0bHlHcm91bmRlZFRlcm1zKGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpLFxuICAgICAgICAgIGltcGxpY2l0bHlHcm91bmRlZFRlcm1zTGVuZ3RoID0gaW1wbGljaXRseUdyb3VuZGVkVGVybXMubGVuZ3RoLFxuICAgICAgICAgIGltcGxpY2l0bHlHcm91bmRlZCA9IChpbXBsaWNpdGx5R3JvdW5kZWRUZXJtc0xlbmd0aCA+IDApO1xuXG4gICAgcmV0dXJuIGltcGxpY2l0bHlHcm91bmRlZDtcbiAgfVxuXG4gIGNvbXBhcmVUZXJtKHRlcm0pIHtcbiAgICBjb25zdCB0ZXJtQSA9IHRlcm0sIC8vL1xuICAgICAgICAgIGNvbXBhcmVzVG9UZXJtID0gdGhpcy5zb21lVGVybSgodGVybSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGVybUIgPSB0ZXJtLCAvLy9cbiAgICAgICAgICAgICAgICAgIHRlcm1BRXF1YWxUb1Rlcm1CID0gdGVybUEuaXNFcXVhbFRvKHRlcm1CKTtcblxuICAgICAgICAgICAgaWYgKHRlcm1BRXF1YWxUb1Rlcm1CKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvbXBhcmVzVG9UZXJtO1xuICB9XG5cbiAgbWF0Y2hUZXJtTm9kZSh0ZXJtTm9kZSkge1xuICAgIHRlcm1Ob2RlID0gc3RyaXBCcmFja2V0c0Zyb21UZXJtTm9kZSh0ZXJtTm9kZSk7IC8vL1xuXG4gICAgY29uc3QgdGVybU5vZGVNYXRjaGVzID0gdGhpcy5zb21lVGVybSgodGVybSkgPT4ge1xuICAgICAgY29uc3QgdGVybU5vZGVNYXRjaGVzID0gdGVybS5tYXRjaE5vZGUodGVybU5vZGUpO1xuXG4gICAgICBpZiAodGVybU5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRlcm1Ob2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoVGVybU5vZGVzKHRlcm1Ob2Rlcykge1xuICAgIGNvbnN0IHRlcm1Ob2Rlc01hdGNoID0gdGVybU5vZGVzLmV2ZXJ5KCh0ZXJtTm9kZSkgPT4ge1xuICAgICAgY29uc3QgdGVybU5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaFRlcm1Ob2RlKHRlcm1Ob2RlKTtcblxuICAgICAgaWYgKHRlcm1Ob2RlTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB0ZXJtTm9kZXNNYXRjaDtcbiAgfVxuXG4gIG1hdGNoVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSkge1xuICAgIGNvbnN0IHZhcmlhYmxlTm9kZUEgPSB2YXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTm9kZU1hdGNoZXMgPSB0aGlzLnNvbWVUZXJtKCh0ZXJtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICAgICAgICAgICAgc2luZ3VsYXJWYXJpYWJsZU5vZGUgPSB0ZXJtTm9kZS5nZXRTaW5ndWxhclZhcmlhYmxlTm9kZSgpO1xuXG4gICAgICAgICAgICBpZiAoc2luZ3VsYXJWYXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgdmFyaWFibGVOb2RlQiA9IHNpbmd1bGFyVmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVOb2RlQU1hdGNoZXNWYXJpYWJsZU5vZGVCID0gdmFyaWFibGVOb2RlQS5tYXRjaCh2YXJpYWJsZU5vZGVCKTtcblxuICAgICAgICAgICAgICBpZiAodmFyaWFibGVOb2RlQU1hdGNoZXNWYXJpYWJsZU5vZGVCKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIHJldHVybiB2YXJpYWJsZU5vZGVNYXRjaGVzO1xuICB9XG5cbiAgc29tZVRlcm0oY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMudGVybXMuc29tZShjYWxsYmFjayk7IH1cblxuICBldmVyeVRlcm0oY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMudGVybXMuZXZlcnkoY2FsbGJhY2spOyB9XG5cbiAgc29tZU90aGVyVGVybSh0ZXJtLCBjYWxsYmFjaykge1xuICAgIGNvbnN0IHRlcm1BID0gdGVybSwgLy8vXG4gICAgICAgICAgdGVybXMgPSB0aGlzLnRlcm1zLmZpbHRlcigodGVybSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGVybUIgPSB0ZXJtLCAvLy9cbiAgICAgICAgICAgICAgICAgIHRlcm1BRXF1YWxUb1Rlcm1CID0gdGVybUEuaXNFcXVhbFRvKHRlcm1CKTtcblxuICAgICAgICAgICAgaWYgKCF0ZXJtQUVxdWFsVG9UZXJtQikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICByZXN1bHQgPSB0ZXJtcy5zb21lKGNhbGxiYWNrKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBjb21iaW5lVGVybXModGVybXMpIHtcbiAgICBjb25zdCBjb21iaW5lZFRlcm1zID0gW1xuICAgICAgLi4udGhpcy50ZXJtcyxcbiAgICAgIC4uLnRlcm1zXG4gICAgXTtcblxuICAgIGNvbXByZXNzKGNvbWJpbmVkVGVybXMsIChjb21iaW5lZFRlcm1BLCBjb21iaW5lZFRlcm1CKSA9PiB7XG4gICAgICBjb25zdCBjb21iaW5lZFRlcm1BRXF1YWxUb0NvbWJpbmVkVGVybUIgPSBjb21iaW5lZFRlcm1BLmlzRXF1YWxUbyhjb21iaW5lZFRlcm1CKTtcblxuICAgICAgaWYgKCFjb21iaW5lZFRlcm1BRXF1YWxUb0NvbWJpbmVkVGVybUIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29tYmluZWRUZXJtcztcbiAgfVxuXG4gIG1lcmdlZFdpdGgoZXF1aXZhbGVuY2UsIGNvbnRleHQpIHtcbiAgICBjb25zdCB0ZXJtcyA9IGVxdWl2YWxlbmNlLmdldFRlcm1zKCksXG4gICAgICAgICAgY29tYmluZWRUZXJtcyA9IHRoaXMuY29tYmluZVRlcm1zKHRlcm1zKTtcblxuICAgIHJldHVybiBsaXRlcmFsbHkoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHRlcm1zID0gY29tYmluZWRUZXJtcywgIC8vL1xuICAgICAgICAgICAgdGVybXNTdHJpbmcgPSB0ZXJtc1N0cmluZ0Zyb21UZXJtcyh0ZXJtcyksXG4gICAgICAgICAgICBzdHJpbmcgPSB0ZXJtc1N0cmluZywgIC8vL1xuICAgICAgICAgICAgZXF1aXZhbGVuY2VOb2RlID0gaW5zdGFudGlhdGVFcXVpdmFsZW5jZShzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgZXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZUZyb21FcXVpdmFsZW5jZU5vZGUoZXF1aXZhbGVuY2VOb2RlLCBjb250ZXh0KTtcblxuICAgICAgcmV0dXJuIGVxdWl2YWxlbmNlO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkVxdWl2YWxlbmNlXCI7XG5cbiAgc3RhdGljIGZyb21FcXVhbGl0eShlcXVhbGl0eSwgY29udGV4dCkge1xuICAgIHJldHVybiBsaXRlcmFsbHkoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHRlcm1zID0gZXF1YWxpdHkuZ2V0VGVybXMoKSxcbiAgICAgICAgICAgIHRlcm1zU3RyaW5nID0gdGVybXNTdHJpbmdGcm9tVGVybXModGVybXMpLFxuICAgICAgICAgICAgc3RyaW5nID0gdGVybXNTdHJpbmcsICAvLy9cbiAgICAgICAgICAgIGVxdWl2YWxlbmNlTm9kZSA9IGluc3RhbnRpYXRlRXF1aXZhbGVuY2Uoc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgIGVxdWl2YWxlbmNlID0gZXF1aXZhbGVuY2VGcm9tRXF1aXZhbGVuY2VOb2RlKGVxdWl2YWxlbmNlTm9kZSwgY29udGV4dCk7XG5cbiAgICAgIHJldHVybiBlcXVpdmFsZW5jZTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiY29tcHJlc3MiLCJhcnJheVV0aWxpdGllcyIsImRlZmluZSIsIkVxdWl2YWxlbmNlIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJ0ZXJtcyIsImdldFRlcm1zIiwiZ2V0VHlwZSIsInR5cGUiLCJyZWR1Y2UiLCJ0ZXJtIiwidGVybVR5cGUiLCJ0ZXJtVHlwZVN1YlR5cGVPZlR5cGUiLCJpc1N1YlR5cGVPZiIsImdldEdyb3VuZGVkVGVybXMiLCJkZWZpbmVkVmFyaWFibGVzIiwiZ3JvdW5kZWRUZXJtcyIsImZvckVhY2giLCJ0ZXJtR3JvdW5kZWQiLCJpc0dyb3VuZGVkIiwidGVybU1hdGNoZXNHcm91bmRlZFRlcm0iLCJzb21lIiwiZ3JvdW5kZWRUZXJtIiwiZ3JvdW5kZWRUZXJtTm9kZSIsImdldE5vZGUiLCJncm91bmRlZFRlcm1Ob2RlTWF0Y2hlcyIsIm1hdGNoTm9kZSIsInB1c2giLCJnZXRJbml0aWFsbHlHcm91bmRlZFRlcm1zIiwiaW5pdGlhbGx5R3JvdW5kZWRUZXJtcyIsInRlcm1Jbml0aWFsbHlHcm91bmRlZCIsImlzSW5pdGlhbGx5R3JvdW5kZWQiLCJpbml0aWFsbHlHcm91bmRlZFRlcm0iLCJnZXRJbXBsaWNpdGx5R3JvdW5kZWRUZXJtcyIsImltcGxpY2l0bHlHcm91bmRlZFRlcm1zIiwidGVybUltcGxpY2l0bHlHcm91bmRlZCIsImlzSW1wbGljaXRseUdyb3VuZGVkIiwiaW1wbGljaXRseUdyb3VuZGVkVGVybSIsImlzRGlzam9pbnRGcm9tIiwiZXF1aXZhbGVuY2UiLCJkaXNqb2ludEZyb20iLCJldmVyeVRlcm0iLCJjb21wYXJlc1RvVGVybSIsImNvbXBhcmVUZXJtIiwiaW5pdGlhbGx5R3JvdW5kZWRUZXJtc0xlbmd0aCIsImxlbmd0aCIsImluaXRpYWxseUdyb3VuZGVkIiwiaW1wbGljaXRseUdyb3VuZGVkVGVybXNMZW5ndGgiLCJpbXBsaWNpdGx5R3JvdW5kZWQiLCJ0ZXJtQSIsInNvbWVUZXJtIiwidGVybUIiLCJ0ZXJtQUVxdWFsVG9UZXJtQiIsImlzRXF1YWxUbyIsIm1hdGNoVGVybU5vZGUiLCJ0ZXJtTm9kZSIsInN0cmlwQnJhY2tldHNGcm9tVGVybU5vZGUiLCJ0ZXJtTm9kZU1hdGNoZXMiLCJtYXRjaFRlcm1Ob2RlcyIsInRlcm1Ob2RlcyIsInRlcm1Ob2Rlc01hdGNoIiwiZXZlcnkiLCJtYXRjaFZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZUEiLCJ2YXJpYWJsZU5vZGVNYXRjaGVzIiwic2luZ3VsYXJWYXJpYWJsZU5vZGUiLCJnZXRTaW5ndWxhclZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZUIiLCJ2YXJpYWJsZU5vZGVBTWF0Y2hlc1ZhcmlhYmxlTm9kZUIiLCJtYXRjaCIsImNhbGxiYWNrIiwic29tZU90aGVyVGVybSIsImZpbHRlciIsInJlc3VsdCIsImNvbWJpbmVUZXJtcyIsImNvbWJpbmVkVGVybXMiLCJjb21iaW5lZFRlcm1BIiwiY29tYmluZWRUZXJtQiIsImNvbWJpbmVkVGVybUFFcXVhbFRvQ29tYmluZWRUZXJtQiIsIm1lcmdlZFdpdGgiLCJsaXRlcmFsbHkiLCJ0ZXJtc1N0cmluZyIsInRlcm1zU3RyaW5nRnJvbVRlcm1zIiwiZXF1aXZhbGVuY2VOb2RlIiwiaW5zdGFudGlhdGVFcXVpdmFsZW5jZSIsImVxdWl2YWxlbmNlRnJvbUVxdWl2YWxlbmNlTm9kZSIsImZyb21FcXVhbGl0eSIsImVxdWFsaXR5IiwiRWxlbWVudCIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWVBOzs7ZUFBQTs7O3lCQWIrQjs4REFFWDt3QkFFRzt1QkFDRztzQkFDVzsyQkFDRTt3QkFDRzt3QkFDSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFL0MsSUFB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
|
|
@@ -67,6 +67,19 @@ function _create_class(Constructor, protoProps, staticProps) {
|
|
|
67
67
|
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
68
68
|
return Constructor;
|
|
69
69
|
}
|
|
70
|
+
function _define_property(obj, key, value) {
|
|
71
|
+
if (key in obj) {
|
|
72
|
+
Object.defineProperty(obj, key, {
|
|
73
|
+
value: value,
|
|
74
|
+
enumerable: true,
|
|
75
|
+
configurable: true,
|
|
76
|
+
writable: true
|
|
77
|
+
});
|
|
78
|
+
} else {
|
|
79
|
+
obj[key] = value;
|
|
80
|
+
}
|
|
81
|
+
return obj;
|
|
82
|
+
}
|
|
70
83
|
function _get_prototype_of(o) {
|
|
71
84
|
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
72
85
|
return o.__proto__ || Object.getPrototypeOf(o);
|
|
@@ -162,8 +175,9 @@ function _is_native_reflect_construct() {
|
|
|
162
175
|
return !!result;
|
|
163
176
|
})();
|
|
164
177
|
}
|
|
178
|
+
var _Equivalences;
|
|
165
179
|
var push = _necessary.arrayUtilities.push, separate = _necessary.arrayUtilities.separate;
|
|
166
|
-
var _default = (0, _elements.define)(/*#__PURE__*/ function(Element) {
|
|
180
|
+
var _default = (0, _elements.define)((_Equivalences = /*#__PURE__*/ function(Element) {
|
|
167
181
|
_inherits(Equivalences, Element);
|
|
168
182
|
function Equivalences(context, string, node, array) {
|
|
169
183
|
_class_call_check(this, Equivalences);
|
|
@@ -256,25 +270,25 @@ var _default = (0, _elements.define)(/*#__PURE__*/ function(Element) {
|
|
|
256
270
|
},
|
|
257
271
|
{
|
|
258
272
|
key: "mergedWith",
|
|
259
|
-
value: function mergedWith(equivalences) {
|
|
273
|
+
value: function mergedWith(equivalences, context) {
|
|
260
274
|
var mergedEquivalences = this.clone(); ///
|
|
261
275
|
equivalences.forEachEquivalence(function(equivalence) {
|
|
262
|
-
mergedEquivalences = mergedEquivalences.mergedWithEquivalence(equivalence);
|
|
276
|
+
mergedEquivalences = mergedEquivalences.mergedWithEquivalence(equivalence, context);
|
|
263
277
|
});
|
|
264
278
|
return mergedEquivalences;
|
|
265
279
|
}
|
|
266
280
|
},
|
|
267
281
|
{
|
|
268
282
|
key: "mergedWithEquivalence",
|
|
269
|
-
value: function mergedWithEquivalence(equivalence) {
|
|
270
|
-
var equivalences = Equivalences.fromNothing();
|
|
283
|
+
value: function mergedWithEquivalence(equivalence, context) {
|
|
284
|
+
var equivalences = Equivalences.fromNothing(context);
|
|
271
285
|
var mergedEquivalence = equivalence; ///
|
|
272
286
|
this.forEachEquivalence(function(equivalence) {
|
|
273
287
|
var mergedEquivalenceDisjointFromEquivalence = mergedEquivalence.isDisjointFrom(equivalence);
|
|
274
288
|
if (mergedEquivalenceDisjointFromEquivalence) {
|
|
275
289
|
equivalences.addEquivalence(equivalence);
|
|
276
290
|
} else {
|
|
277
|
-
mergedEquivalence = mergedEquivalence.mergedWith(equivalence);
|
|
291
|
+
mergedEquivalence = mergedEquivalence.mergedWith(equivalence, context);
|
|
278
292
|
}
|
|
279
293
|
});
|
|
280
294
|
equivalence = mergedEquivalence; ///
|
|
@@ -315,8 +329,8 @@ var _default = (0, _elements.define)(/*#__PURE__*/ function(Element) {
|
|
|
315
329
|
key: "separateGroundedTermsAndDefinedVariables",
|
|
316
330
|
value: function separateGroundedTermsAndDefinedVariables(groundedTerms, definedVariables, context) {
|
|
317
331
|
var equivalences = this, groundedEquivalences, remainingEquivalences, initiallyGroundedEquivalences, implicitlyGroundedEquivalences;
|
|
318
|
-
remainingEquivalences = Equivalences.fromNothing();
|
|
319
|
-
initiallyGroundedEquivalences = Equivalences.fromNothing();
|
|
332
|
+
remainingEquivalences = Equivalences.fromNothing(context);
|
|
333
|
+
initiallyGroundedEquivalences = Equivalences.fromNothing(context);
|
|
320
334
|
equivalences.separateInitiallyGroundedEquivalences(remainingEquivalences, initiallyGroundedEquivalences, context);
|
|
321
335
|
var initiallyGroundedEquivalencesLength = initiallyGroundedEquivalences.getLength();
|
|
322
336
|
if (initiallyGroundedEquivalencesLength > 0) {
|
|
@@ -357,7 +371,7 @@ var _default = (0, _elements.define)(/*#__PURE__*/ function(Element) {
|
|
|
357
371
|
}
|
|
358
372
|
]);
|
|
359
373
|
return Equivalences;
|
|
360
|
-
}(_wrap_native_super(_element.default)));
|
|
374
|
+
}(_wrap_native_super(_element.default)), _define_property(_Equivalences, "name", "Equivalences"), _Equivalences));
|
|
361
375
|
function definedVariablesFromGroundedTerms(groundedTerms, definedVariables, context) {
|
|
362
376
|
groundedTerms.forEach(function(groundedTerm) {
|
|
363
377
|
var term = groundedTerm, variables = (0, _term.variablesFromTerm)(term, context);
|
|
@@ -376,4 +390,4 @@ function groundedTermsFromGroundedEquivalencesAndDefinedVariables(groundedEquiva
|
|
|
376
390
|
});
|
|
377
391
|
}
|
|
378
392
|
|
|
379
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2VxdWl2YWxlbmNlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBFbGVtZW50IGZyb20gXCIuLi9lbGVtZW50XCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFyaWFibGVzRnJvbVRlcm0gfSBmcm9tIFwiLi90ZXJtXCI7XG5cbmNvbnN0IHsgcHVzaCwgc2VwYXJhdGUgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXF1aXZhbGVuY2VzIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYXJyYXkpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUpO1xuXG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7IHJldHVybiB0aGlzLmFycmF5Lmxlbmd0aDsgfVxuXG4gIGdldFR5cGVzKCkge1xuICAgIGNvbnN0IHR5cGVzID0gdGhpcy5hcnJheS5tYXAoKGVxdWl2YWxlbmNlKSA9PiB7XG4gICAgICBjb25zdCB0eXBlID0gZXF1aXZhbGVuY2UuZ2V0VHlwZSgpO1xuXG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0eXBlcztcbiAgfVxuXG4gIGFkZEVxdWl2YWxlbmNlKGVxdWl2YWxlbmNlKSB7XG4gICAgdGhpcy5hcnJheS5wdXNoKGVxdWl2YWxlbmNlKTtcbiAgfVxuXG4gIGFkZEVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXMpIHtcbiAgICBjb25zdCBhcnJheSA9IGVxdWl2YWxlbmNlcy5nZXRBcnJheSgpO1xuXG4gICAgcHVzaCh0aGlzLmFycmF5LCBhcnJheSk7XG4gIH1cblxuICBzb21lRXF1aXZhbGVuY2UoY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMuYXJyYXkuc29tZShjYWxsYmFjayk7IH1cblxuICBldmVyeUVxdWl2YWxlbmNlKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmFycmF5LmV2ZXJ5KGNhbGxiYWNrKTsgfVxuXG4gIGZvckVhY2hFcXVpdmFsZW5jZShjYWxsYmFjaykgeyB0aGlzLmFycmF5LmZvckVhY2goY2FsbGJhY2spOyB9XG5cbiAgZmluZEVxdWl2YWxlbmNlQnlUZXJtKHRlcm0pIHtcbiAgICBjb25zdCBlcXVpdmFsZW5jZSA9IHRoaXMuYXJyYXkuZmluZCgoZXF1aXZhbGVuY2UpID0+IHtcbiAgICAgIGNvbnN0IGVxdWl2YWxlbmNlQ29tcGFyZXNUb1Rlcm0gPSBlcXVpdmFsZW5jZS5jb21wYXJlVGVybSh0ZXJtKTtcblxuICAgICAgaWYgKGVxdWl2YWxlbmNlQ29tcGFyZXNUb1Rlcm0pIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBlcXVpdmFsZW5jZTtcbiAgfVxuXG4gIGZpbmRFcXVpdmFsZW5jZUJ5VGVybU5vZGVzKHRlcm1Ob2Rlcykge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlID0gdGhpcy5hcnJheS5maW5kKChlcXVpdmFsZW5jZSkgPT4ge1xuICAgICAgY29uc3QgdGVybU5vZGVNYXRjaGVzID0gZXF1aXZhbGVuY2UubWF0Y2hUZXJtTm9kZXModGVybU5vZGVzKTtcblxuICAgICAgaWYgKHRlcm1Ob2RlTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIGVxdWl2YWxlbmNlO1xuICB9XG5cbiAgbWVyZ2VkV2l0aChlcXVpdmFsZW5jZXMpIHtcbiAgICBsZXQgIG1lcmdlZEVxdWl2YWxlbmNlcyA9IHRoaXMuY2xvbmUoKTsgLy8vXG5cbiAgICBlcXVpdmFsZW5jZXMuZm9yRWFjaEVxdWl2YWxlbmNlKChlcXVpdmFsZW5jZSkgPT4ge1xuICAgICAgbWVyZ2VkRXF1aXZhbGVuY2VzID0gbWVyZ2VkRXF1aXZhbGVuY2VzLm1lcmdlZFdpdGhFcXVpdmFsZW5jZShlcXVpdmFsZW5jZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWVyZ2VkRXF1aXZhbGVuY2VzO1xuICB9XG5cbiAgbWVyZ2VkV2l0aEVxdWl2YWxlbmNlKGVxdWl2YWxlbmNlKSB7XG4gICAgY29uc3QgZXF1aXZhbGVuY2VzID0gRXF1aXZhbGVuY2VzLmZyb21Ob3RoaW5nKCk7XG5cbiAgICBsZXQgbWVyZ2VkRXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZTsgLy8vXG5cbiAgICB0aGlzLmZvckVhY2hFcXVpdmFsZW5jZSgoZXF1aXZhbGVuY2UpID0+IHtcbiAgICAgIGNvbnN0IG1lcmdlZEVxdWl2YWxlbmNlRGlzam9pbnRGcm9tRXF1aXZhbGVuY2UgPSBtZXJnZWRFcXVpdmFsZW5jZS5pc0Rpc2pvaW50RnJvbShlcXVpdmFsZW5jZSk7XG5cbiAgICAgIGlmIChtZXJnZWRFcXVpdmFsZW5jZURpc2pvaW50RnJvbUVxdWl2YWxlbmNlKSB7XG4gICAgICAgIGVxdWl2YWxlbmNlcy5hZGRFcXVpdmFsZW5jZShlcXVpdmFsZW5jZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXJnZWRFcXVpdmFsZW5jZSA9IG1lcmdlZEVxdWl2YWxlbmNlLm1lcmdlZFdpdGgoZXF1aXZhbGVuY2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZXF1aXZhbGVuY2UgPSBtZXJnZWRFcXVpdmFsZW5jZTsgIC8vL1xuXG4gICAgZXF1aXZhbGVuY2VzLmFkZEVxdWl2YWxlbmNlKGVxdWl2YWxlbmNlKTtcblxuICAgIHJldHVybiBlcXVpdmFsZW5jZXM7XG4gIH1cblxuICBzZXBhcmF0ZUVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXNBLCBlcXVpdmFsZW5jZXNCLCBjYWxsYmFjaykge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlc0FBcnJheSA9IGVxdWl2YWxlbmNlc0EuZ2V0QXJyYXkoKSxcbiAgICAgICAgICBlcXVpdmFsZW5jZXNCQXJyYXkgPSBlcXVpdmFsZW5jZXNCLmdldEFycmF5KCk7XG5cbiAgICBzZXBhcmF0ZSh0aGlzLmFycmF5LCBlcXVpdmFsZW5jZXNBQXJyYXksIGVxdWl2YWxlbmNlc0JBcnJheSwgY2FsbGJhY2spO1xuICB9XG5cbiAgc2VwYXJhdGVJbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcyhyZW1haW5pbmdFcXVpdmFsZW5jZXMsIGluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzLCBjb250ZXh0KSB7XG4gICAgdGhpcy5zZXBhcmF0ZUVxdWl2YWxlbmNlcyhyZW1haW5pbmdFcXVpdmFsZW5jZXMsIGluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzLCAoZXF1aXZhbGVuY2UpID0+IHtcbiAgICAgIGNvbnN0IGVxdWl2YWxlbmNlSW5pdGlhbGx5R3JvdW5kZWQgPSBlcXVpdmFsZW5jZS5pc0luaXRpYWxseUdyb3VuZGVkKGNvbnRleHQpO1xuXG4gICAgICBpZiAoIWVxdWl2YWxlbmNlSW5pdGlhbGx5R3JvdW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzZXBhcmF0ZUltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyhyZW1haW5pbmdFcXVpdmFsZW5jZXMsIGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcywgZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCkge1xuICAgIHRoaXMuc2VwYXJhdGVFcXVpdmFsZW5jZXMocmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsIChlcXVpdmFsZW5jZSkgPT4ge1xuICAgICAgY29uc3QgZXF1aXZhbGVuY2VJbXBsaWNpdGx5R3JvdW5kZWQgPSBlcXVpdmFsZW5jZS5pc0ltcGxpY2l0bHlHcm91bmRlZChkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KTtcblxuICAgICAgaWYgKCFlcXVpdmFsZW5jZUltcGxpY2l0bHlHcm91bmRlZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNlcGFyYXRlR3JvdW5kZWRUZXJtc0FuZERlZmluZWRWYXJpYWJsZXMoZ3JvdW5kZWRUZXJtcywgZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCkge1xuICAgIGxldCBlcXVpdmFsZW5jZXMgPSB0aGlzLFxuICAgICAgICBncm91bmRlZEVxdWl2YWxlbmNlcyxcbiAgICAgICAgcmVtYWluaW5nRXF1aXZhbGVuY2VzLFxuICAgICAgICBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcyxcbiAgICAgICAgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzO1xuXG4gICAgcmVtYWluaW5nRXF1aXZhbGVuY2VzID1FcXVpdmFsZW5jZXMuZnJvbU5vdGhpbmcoKTtcblxuICAgIGluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzID0gRXF1aXZhbGVuY2VzLmZyb21Ob3RoaW5nKCk7XG5cbiAgICBlcXVpdmFsZW5jZXMuc2VwYXJhdGVJbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcyhyZW1haW5pbmdFcXVpdmFsZW5jZXMsIGluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzLCBjb250ZXh0KTtcblxuICAgIGNvbnN0IGluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoID0gaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMuZ2V0TGVuZ3RoKCk7XG5cbiAgICBpZiAoaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNMZW5ndGggPiAwKSB7XG4gICAgICBncm91bmRlZEVxdWl2YWxlbmNlcyA9IGluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzOyAvLy9cblxuICAgICAgbGV0IGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCA9IDE7XG5cbiAgICAgIHdoaWxlIChpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNMZW5ndGggPiAwKSB7XG4gICAgICAgIGxldCBkZWZpbmVkVmFyaWFibGVzTGVuZ3RoID0gMCxcbiAgICAgICAgICAgIHByZXZpb3VzRGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA9IC0xO1xuXG4gICAgICAgIHdoaWxlIChkZWZpbmVkVmFyaWFibGVzTGVuZ3RoID4gcHJldmlvdXNEZWZpbmVkVmFyaWFibGVzTGVuZ3RoKSB7XG4gICAgICAgICAgcHJldmlvdXNEZWZpbmVkVmFyaWFibGVzTGVuZ3RoID0gZGVmaW5lZFZhcmlhYmxlc0xlbmd0aDsgIC8vL1xuXG4gICAgICAgICAgZ3JvdW5kZWRUZXJtc0Zyb21Hcm91bmRlZEVxdWl2YWxlbmNlc0FuZERlZmluZWRWYXJpYWJsZXMoZ3JvdW5kZWRFcXVpdmFsZW5jZXMsIGRlZmluZWRWYXJpYWJsZXMsIGdyb3VuZGVkVGVybXMsIGNvbnRleHQpO1xuXG4gICAgICAgICAgZGVmaW5lZFZhcmlhYmxlc0Zyb21Hcm91bmRlZFRlcm1zKGdyb3VuZGVkVGVybXMsIGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gICAgICAgICAgZGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA9IGRlZmluZWRWYXJpYWJsZXMubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgZXF1aXZhbGVuY2VzID0gcmVtYWluaW5nRXF1aXZhbGVuY2VzOyAvLy9cblxuICAgICAgICByZW1haW5pbmdFcXVpdmFsZW5jZXMgPSBbXTtcblxuICAgICAgICBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMgPSBbXTtcblxuICAgICAgICBlcXVpdmFsZW5jZXMuc2VwYXJhdGVJbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMocmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsIGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gICAgICAgIGdyb3VuZGVkRXF1aXZhbGVuY2VzLmFkZEVxdWl2YWxlbmNlcyhpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMpO1xuXG4gICAgICAgIGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCA9IGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcy5nZXRMZW5ndGgoKTsgIC8vL1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIGNvbnN0IGFycmF5ID0gW1xuICAgICAgICAgICAgLi4udGhpcy5hcnJheVxuICAgICAgICAgIF0sXG4gICAgICAgICAgZXF1aXZhbGVuY2VzID0gbmV3IEVxdWl2YWxlbmNlcyhhcnJheSk7XG5cbiAgICByZXR1cm4gZXF1aXZhbGVuY2VzO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKGNvbnRleHQpIHtcbiAgICBjb25zdCBzdHJpbmcgPSBFTVBUWV9TVFJJTkcsXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgYXJyYXkgPSBbXSxcbiAgICAgICAgICBlcXVpdmFsZW5jZXMgPSBuZXcgRXF1aXZhbGVuY2VzKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYXJyYXkpO1xuXG4gICAgcmV0dXJuIGVxdWl2YWxlbmNlcztcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGRlZmluZWRWYXJpYWJsZXNGcm9tR3JvdW5kZWRUZXJtcyhncm91bmRlZFRlcm1zLCBkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KSB7XG4gIGdyb3VuZGVkVGVybXMuZm9yRWFjaCgoZ3JvdW5kZWRUZXJtKSA9PiB7XG4gICAgY29uc3QgdGVybSA9IGdyb3VuZGVkVGVybSwgIC8vL1xuICAgICAgICAgIHZhcmlhYmxlcyA9IHZhcmlhYmxlc0Zyb21UZXJtKHRlcm0sIGNvbnRleHQpO1xuXG4gICAgdmFyaWFibGVzLmZvckVhY2goKHZhcmlhYmxlKSA9PiB7XG4gICAgICBjb25zdCBkZWZpbmVkVmFyaWFibGVzSW5jbHVkZXNUZXJtVmFyaWFibGUgPSBkZWZpbmVkVmFyaWFibGVzLmluY2x1ZGVzKHZhcmlhYmxlKTtcblxuICAgICAgaWYgKCFkZWZpbmVkVmFyaWFibGVzSW5jbHVkZXNUZXJtVmFyaWFibGUpIHtcbiAgICAgICAgY29uc3QgZGVmaW5lZFZhcmlhYmxlID0gdmFyaWFibGU7ICAvLy9cblxuICAgICAgICBkZWZpbmVkVmFyaWFibGVzLnB1c2goZGVmaW5lZFZhcmlhYmxlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdyb3VuZGVkVGVybXNGcm9tR3JvdW5kZWRFcXVpdmFsZW5jZXNBbmREZWZpbmVkVmFyaWFibGVzKGdyb3VuZGVkRXF1aXZhbGVuY2VzLCBkZWZpbmVkVmFyaWFibGVzLCBncm91bmRlZFRlcm1zLCBjb250ZXh0KSB7XG4gIGdyb3VuZGVkRXF1aXZhbGVuY2VzLmZvckVhY2hFcXVpdmFsZW5jZSgoZ3JvdW5kZWRFcXVpdmFsZW5jZSkgPT4ge1xuICAgIGdyb3VuZGVkRXF1aXZhbGVuY2UuZ2V0R3JvdW5kZWRUZXJtcyhkZWZpbmVkVmFyaWFibGVzLCBncm91bmRlZFRlcm1zLCBjb250ZXh0KTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsicHVzaCIsImFycmF5VXRpbGl0aWVzIiwic2VwYXJhdGUiLCJkZWZpbmUiLCJFcXVpdmFsZW5jZXMiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImFycmF5IiwiZ2V0QXJyYXkiLCJnZXRMZW5ndGgiLCJsZW5ndGgiLCJnZXRUeXBlcyIsInR5cGVzIiwibWFwIiwiZXF1aXZhbGVuY2UiLCJ0eXBlIiwiZ2V0VHlwZSIsImFkZEVxdWl2YWxlbmNlIiwiYWRkRXF1aXZhbGVuY2VzIiwiZXF1aXZhbGVuY2VzIiwic29tZUVxdWl2YWxlbmNlIiwiY2FsbGJhY2siLCJzb21lIiwiZXZlcnlFcXVpdmFsZW5jZSIsImV2ZXJ5IiwiZm9yRWFjaEVxdWl2YWxlbmNlIiwiZm9yRWFjaCIsImZpbmRFcXVpdmFsZW5jZUJ5VGVybSIsInRlcm0iLCJmaW5kIiwiZXF1aXZhbGVuY2VDb21wYXJlc1RvVGVybSIsImNvbXBhcmVUZXJtIiwiZmluZEVxdWl2YWxlbmNlQnlUZXJtTm9kZXMiLCJ0ZXJtTm9kZXMiLCJ0ZXJtTm9kZU1hdGNoZXMiLCJtYXRjaFRlcm1Ob2RlcyIsIm1lcmdlZFdpdGgiLCJtZXJnZWRFcXVpdmFsZW5jZXMiLCJjbG9uZSIsIm1lcmdlZFdpdGhFcXVpdmFsZW5jZSIsImZyb21Ob3RoaW5nIiwibWVyZ2VkRXF1aXZhbGVuY2UiLCJtZXJnZWRFcXVpdmFsZW5jZURpc2pvaW50RnJvbUVxdWl2YWxlbmNlIiwiaXNEaXNqb2ludEZyb20iLCJzZXBhcmF0ZUVxdWl2YWxlbmNlcyIsImVxdWl2YWxlbmNlc0EiLCJlcXVpdmFsZW5jZXNCIiwiZXF1aXZhbGVuY2VzQUFycmF5IiwiZXF1aXZhbGVuY2VzQkFycmF5Iiwic2VwYXJhdGVJbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcyIsInJlbWFpbmluZ0VxdWl2YWxlbmNlcyIsImluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzIiwiZXF1aXZhbGVuY2VJbml0aWFsbHlHcm91bmRlZCIsImlzSW5pdGlhbGx5R3JvdW5kZWQiLCJzZXBhcmF0ZUltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyIsImltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyIsImRlZmluZWRWYXJpYWJsZXMiLCJlcXVpdmFsZW5jZUltcGxpY2l0bHlHcm91bmRlZCIsImlzSW1wbGljaXRseUdyb3VuZGVkIiwic2VwYXJhdGVHcm91bmRlZFRlcm1zQW5kRGVmaW5lZFZhcmlhYmxlcyIsImdyb3VuZGVkVGVybXMiLCJncm91bmRlZEVxdWl2YWxlbmNlcyIsImluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoIiwiaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoIiwiZGVmaW5lZFZhcmlhYmxlc0xlbmd0aCIsInByZXZpb3VzRGVmaW5lZFZhcmlhYmxlc0xlbmd0aCIsImdyb3VuZGVkVGVybXNGcm9tR3JvdW5kZWRFcXVpdmFsZW5jZXNBbmREZWZpbmVkVmFyaWFibGVzIiwiZGVmaW5lZFZhcmlhYmxlc0Zyb21Hcm91bmRlZFRlcm1zIiwiRU1QVFlfU1RSSU5HIiwiRWxlbWVudCIsImdyb3VuZGVkVGVybSIsInZhcmlhYmxlcyIsInZhcmlhYmxlc0Zyb21UZXJtIiwidmFyaWFibGUiLCJkZWZpbmVkVmFyaWFibGVzSW5jbHVkZXNUZXJtVmFyaWFibGUiLCJpbmNsdWRlcyIsImRlZmluZWRWYXJpYWJsZSIsImdyb3VuZGVkRXF1aXZhbGVuY2UiLCJnZXRHcm91bmRlZFRlcm1zIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQUE7Ozt5QkFWK0I7OERBRVg7d0JBRUc7eUJBQ007b0JBQ0s7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsQyxJQUFRQSxPQUFtQkMseUJBQWMsQ0FBakNELE1BQU1FLFdBQWFELHlCQUFjLENBQTNCQztJQUVkLFdBQWVDLElBQUFBLGdCQUFNLGdCQUFDOzthQUFNQyxhQUNkQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxLQUFLO2dDQURkSjs7Z0JBRXhCLGtCQUZ3QkE7WUFFbEJDO1lBQVNDO1lBQVFDOztRQUV2QixNQUFLQyxLQUFLLEdBQUdBOzs7OztZQUdmQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNELEtBQUs7WUFDbkI7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQWMsT0FBTyxJQUFJLENBQUNGLEtBQUssQ0FBQ0csTUFBTTtZQUFFOzs7WUFFeENDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxRQUFRLElBQUksQ0FBQ0wsS0FBSyxDQUFDTSxHQUFHLENBQUMsU0FBQ0M7b0JBQzVCLElBQU1DLE9BQU9ELFlBQVlFLE9BQU87b0JBRWhDLE9BQU9EO2dCQUNUO2dCQUVBLE9BQU9IO1lBQ1Q7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZUgsV0FBVztnQkFDeEIsSUFBSSxDQUFDUCxLQUFLLENBQUNSLElBQUksQ0FBQ2U7WUFDbEI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUEsZ0JBQWdCQyxZQUFZO2dCQUMxQixJQUFNWixRQUFRWSxhQUFhWCxRQUFRO2dCQUVuQ1QsS0FBSyxJQUFJLENBQUNRLEtBQUssRUFBRUE7WUFDbkI7OztZQUVBYSxLQUFBQTttQkFBQUEsU0FBQUEsZ0JBQWdCQyxRQUFRO2dCQUFJLE9BQU8sSUFBSSxDQUFDZCxLQUFLLENBQUNlLElBQUksQ0FBQ0Q7WUFBVzs7O1lBRTlERSxLQUFBQTttQkFBQUEsU0FBQUEsaUJBQWlCRixRQUFRO2dCQUFJLE9BQU8sSUFBSSxDQUFDZCxLQUFLLENBQUNpQixLQUFLLENBQUNIO1lBQVc7OztZQUVoRUksS0FBQUE7bUJBQUFBLFNBQUFBLG1CQUFtQkosUUFBUTtnQkFBSSxJQUFJLENBQUNkLEtBQUssQ0FBQ21CLE9BQU8sQ0FBQ0w7WUFBVzs7O1lBRTdETSxLQUFBQTttQkFBQUEsU0FBQUEsc0JBQXNCQyxJQUFJO2dCQUN4QixJQUFNZCxjQUFjLElBQUksQ0FBQ1AsS0FBSyxDQUFDc0IsSUFBSSxDQUFDLFNBQUNmO29CQUNuQyxJQUFNZ0IsNEJBQTRCaEIsWUFBWWlCLFdBQVcsQ0FBQ0g7b0JBRTFELElBQUlFLDJCQUEyQjt3QkFDN0IsT0FBTztvQkFDVDtnQkFDRixNQUFNO2dCQUVOLE9BQU9oQjtZQUNUOzs7WUFFQWtCLEtBQUFBO21CQUFBQSxTQUFBQSwyQkFBMkJDLFNBQVM7Z0JBQ2xDLElBQU1uQixjQUFjLElBQUksQ0FBQ1AsS0FBSyxDQUFDc0IsSUFBSSxDQUFDLFNBQUNmO29CQUNuQyxJQUFNb0Isa0JBQWtCcEIsWUFBWXFCLGNBQWMsQ0FBQ0Y7b0JBRW5ELElBQUlDLGlCQUFpQjt3QkFDbkIsT0FBTztvQkFDVDtnQkFDRixNQUFNO2dCQUVOLE9BQU9wQjtZQUNUOzs7WUFFQXNCLEtBQUFBO21CQUFBQSxTQUFBQSxXQUFXakIsWUFBWTtnQkFDckIsSUFBS2tCLHFCQUFxQixJQUFJLENBQUNDLEtBQUssSUFBSSxHQUFHO2dCQUUzQ25CLGFBQWFNLGtCQUFrQixDQUFDLFNBQUNYO29CQUMvQnVCLHFCQUFxQkEsbUJBQW1CRSxxQkFBcUIsQ0FBQ3pCO2dCQUNoRTtnQkFFQSxPQUFPdUI7WUFDVDs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSxzQkFBc0J6QixXQUFXO2dCQUMvQixJQUFNSyxlQUFlaEIsYUFBYXFDLFdBQVc7Z0JBRTdDLElBQUlDLG9CQUFvQjNCLGFBQWEsR0FBRztnQkFFeEMsSUFBSSxDQUFDVyxrQkFBa0IsQ0FBQyxTQUFDWDtvQkFDdkIsSUFBTTRCLDJDQUEyQ0Qsa0JBQWtCRSxjQUFjLENBQUM3QjtvQkFFbEYsSUFBSTRCLDBDQUEwQzt3QkFDNUN2QixhQUFhRixjQUFjLENBQUNIO29CQUM5QixPQUFPO3dCQUNMMkIsb0JBQW9CQSxrQkFBa0JMLFVBQVUsQ0FBQ3RCO29CQUNuRDtnQkFDRjtnQkFFQUEsY0FBYzJCLG1CQUFvQixHQUFHO2dCQUVyQ3RCLGFBQWFGLGNBQWMsQ0FBQ0g7Z0JBRTVCLE9BQU9LO1lBQ1Q7OztZQUVBeUIsS0FBQUE7bUJBQUFBLFNBQUFBLHFCQUFxQkMsYUFBYSxFQUFFQyxhQUFhLEVBQUV6QixRQUFRO2dCQUN6RCxJQUFNMEIscUJBQXFCRixjQUFjckMsUUFBUSxJQUMzQ3dDLHFCQUFxQkYsY0FBY3RDLFFBQVE7Z0JBRWpEUCxTQUFTLElBQUksQ0FBQ00sS0FBSyxFQUFFd0Msb0JBQW9CQyxvQkFBb0IzQjtZQUMvRDs7O1lBRUE0QixLQUFBQTttQkFBQUEsU0FBQUEsc0NBQXNDQyxxQkFBcUIsRUFBRUMsNkJBQTZCLEVBQUUvQyxPQUFPO2dCQUNqRyxJQUFJLENBQUN3QyxvQkFBb0IsQ0FBQ00sdUJBQXVCQywrQkFBK0IsU0FBQ3JDO29CQUMvRSxJQUFNc0MsK0JBQStCdEMsWUFBWXVDLG1CQUFtQixDQUFDakQ7b0JBRXJFLElBQUksQ0FBQ2dELDhCQUE4Qjt3QkFDakMsT0FBTztvQkFDVDtnQkFDRjtZQUNGOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBLHVDQUF1Q0oscUJBQXFCLEVBQUVLLDhCQUE4QixFQUFFQyxnQkFBZ0IsRUFBRXBELE9BQU87Z0JBQ3JILElBQUksQ0FBQ3dDLG9CQUFvQixDQUFDTSx1QkFBdUJLLGdDQUFnQyxTQUFDekM7b0JBQ2hGLElBQU0yQyxnQ0FBZ0MzQyxZQUFZNEMsb0JBQW9CLENBQUNGLGtCQUFrQnBEO29CQUV6RixJQUFJLENBQUNxRCwrQkFBK0I7d0JBQ2xDLE9BQU87b0JBQ1Q7Z0JBQ0Y7WUFDRjs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSx5Q0FBeUNDLGFBQWEsRUFBRUosZ0JBQWdCLEVBQUVwRCxPQUFPO2dCQUMvRSxJQUFJZSxlQUFlLElBQUksRUFDbkIwQyxzQkFDQVgsdUJBQ0FDLCtCQUNBSTtnQkFFSkwsd0JBQXVCL0MsYUFBYXFDLFdBQVc7Z0JBRS9DVyxnQ0FBZ0NoRCxhQUFhcUMsV0FBVztnQkFFeERyQixhQUFhOEIscUNBQXFDLENBQUNDLHVCQUF1QkMsK0JBQStCL0M7Z0JBRXpHLElBQU0wRCxzQ0FBc0NYLDhCQUE4QjFDLFNBQVM7Z0JBRW5GLElBQUlxRCxzQ0FBc0MsR0FBRztvQkFDM0NELHVCQUF1QlYsK0JBQStCLEdBQUc7b0JBRXpELElBQUlZLHVDQUF1QztvQkFFM0MsTUFBT0EsdUNBQXVDLEVBQUc7d0JBQy9DLElBQUlDLHlCQUF5QixHQUN6QkMsaUNBQWlDLENBQUM7d0JBRXRDLE1BQU9ELHlCQUF5QkMsK0JBQWdDOzRCQUM5REEsaUNBQWlDRCx3QkFBeUIsR0FBRzs0QkFFN0RFLHlEQUF5REwsc0JBQXNCTCxrQkFBa0JJLGVBQWV4RDs0QkFFaEgrRCxrQ0FBa0NQLGVBQWVKLGtCQUFrQnBEOzRCQUVuRTRELHlCQUF5QlIsaUJBQWlCOUMsTUFBTTt3QkFDbEQ7d0JBRUFTLGVBQWUrQix1QkFBdUIsR0FBRzt3QkFFekNBLHdCQUF3QixFQUFFO3dCQUUxQkssaUNBQWlDLEVBQUU7d0JBRW5DcEMsYUFBYW1DLHNDQUFzQyxDQUFDSix1QkFBdUJLLGdDQUFnQ0Msa0JBQWtCcEQ7d0JBRTdIeUQscUJBQXFCM0MsZUFBZSxDQUFDcUM7d0JBRXJDUSx1Q0FBdUNSLCtCQUErQjlDLFNBQVMsSUFBSyxHQUFHO29CQUN6RjtnQkFDRjtZQUNGOzs7WUFFQTZCLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNL0IsUUFDRSxxQkFBRyxJQUFJLENBQUNBLEtBQUssR0FFZlksZUFBZSxJQUFJaEIsYUFBYUk7Z0JBRXRDLE9BQU9ZO1lBQ1Q7Ozs7WUFFT3FCLEtBQUFBO21CQUFQLFNBQU9BLFlBQVlwQyxPQUFPO2dCQUN4QixJQUFNQyxTQUFTK0QsdUJBQVksRUFDckI5RCxPQUFPLE1BQ1BDLFFBQVEsRUFBRSxFQUNWWSxlQUFlLElBQUloQixhQUFhQyxTQUFTQyxRQUFRQyxNQUFNQztnQkFFN0QsT0FBT1k7WUFDVDs7OztxQkEzTCtDa0QsZ0JBQU87QUE4THhELFNBQVNGLGtDQUFrQ1AsYUFBYSxFQUFFSixnQkFBZ0IsRUFBRXBELE9BQU87SUFDakZ3RCxjQUFjbEMsT0FBTyxDQUFDLFNBQUM0QztRQUNyQixJQUFNMUMsT0FBTzBDLGNBQ1BDLFlBQVlDLElBQUFBLHVCQUFpQixFQUFDNUMsTUFBTXhCO1FBRTFDbUUsVUFBVTdDLE9BQU8sQ0FBQyxTQUFDK0M7WUFDakIsSUFBTUMsdUNBQXVDbEIsaUJBQWlCbUIsUUFBUSxDQUFDRjtZQUV2RSxJQUFJLENBQUNDLHNDQUFzQztnQkFDekMsSUFBTUUsa0JBQWtCSCxVQUFXLEdBQUc7Z0JBRXRDakIsaUJBQWlCekQsSUFBSSxDQUFDNkU7WUFDeEI7UUFDRjtJQUNGO0FBQ0Y7QUFFQSxTQUFTVix5REFBeURMLG9CQUFvQixFQUFFTCxnQkFBZ0IsRUFBRUksYUFBYSxFQUFFeEQsT0FBTztJQUM5SHlELHFCQUFxQnBDLGtCQUFrQixDQUFDLFNBQUNvRDtRQUN2Q0Esb0JBQW9CQyxnQkFBZ0IsQ0FBQ3RCLGtCQUFrQkksZUFBZXhEO0lBQ3hFO0FBQ0YifQ==
|
|
393
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2VxdWl2YWxlbmNlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBFbGVtZW50IGZyb20gXCIuLi9lbGVtZW50XCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFyaWFibGVzRnJvbVRlcm0gfSBmcm9tIFwiLi90ZXJtXCI7XG5cbmNvbnN0IHsgcHVzaCwgc2VwYXJhdGUgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXF1aXZhbGVuY2VzIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYXJyYXkpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUpO1xuXG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7IHJldHVybiB0aGlzLmFycmF5Lmxlbmd0aDsgfVxuXG4gIGdldFR5cGVzKCkge1xuICAgIGNvbnN0IHR5cGVzID0gdGhpcy5hcnJheS5tYXAoKGVxdWl2YWxlbmNlKSA9PiB7XG4gICAgICBjb25zdCB0eXBlID0gZXF1aXZhbGVuY2UuZ2V0VHlwZSgpO1xuXG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0eXBlcztcbiAgfVxuXG4gIGFkZEVxdWl2YWxlbmNlKGVxdWl2YWxlbmNlKSB7XG4gICAgdGhpcy5hcnJheS5wdXNoKGVxdWl2YWxlbmNlKTtcbiAgfVxuXG4gIGFkZEVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXMpIHtcbiAgICBjb25zdCBhcnJheSA9IGVxdWl2YWxlbmNlcy5nZXRBcnJheSgpO1xuXG4gICAgcHVzaCh0aGlzLmFycmF5LCBhcnJheSk7XG4gIH1cblxuICBzb21lRXF1aXZhbGVuY2UoY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMuYXJyYXkuc29tZShjYWxsYmFjayk7IH1cblxuICBldmVyeUVxdWl2YWxlbmNlKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmFycmF5LmV2ZXJ5KGNhbGxiYWNrKTsgfVxuXG4gIGZvckVhY2hFcXVpdmFsZW5jZShjYWxsYmFjaykgeyB0aGlzLmFycmF5LmZvckVhY2goY2FsbGJhY2spOyB9XG5cbiAgZmluZEVxdWl2YWxlbmNlQnlUZXJtKHRlcm0pIHtcbiAgICBjb25zdCBlcXVpdmFsZW5jZSA9IHRoaXMuYXJyYXkuZmluZCgoZXF1aXZhbGVuY2UpID0+IHtcbiAgICAgIGNvbnN0IGVxdWl2YWxlbmNlQ29tcGFyZXNUb1Rlcm0gPSBlcXVpdmFsZW5jZS5jb21wYXJlVGVybSh0ZXJtKTtcblxuICAgICAgaWYgKGVxdWl2YWxlbmNlQ29tcGFyZXNUb1Rlcm0pIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBlcXVpdmFsZW5jZTtcbiAgfVxuXG4gIGZpbmRFcXVpdmFsZW5jZUJ5VGVybU5vZGVzKHRlcm1Ob2Rlcykge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlID0gdGhpcy5hcnJheS5maW5kKChlcXVpdmFsZW5jZSkgPT4ge1xuICAgICAgY29uc3QgdGVybU5vZGVNYXRjaGVzID0gZXF1aXZhbGVuY2UubWF0Y2hUZXJtTm9kZXModGVybU5vZGVzKTtcblxuICAgICAgaWYgKHRlcm1Ob2RlTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIGVxdWl2YWxlbmNlO1xuICB9XG5cbiAgbWVyZ2VkV2l0aChlcXVpdmFsZW5jZXMsIGNvbnRleHQpIHtcbiAgICBsZXQgIG1lcmdlZEVxdWl2YWxlbmNlcyA9IHRoaXMuY2xvbmUoKTsgLy8vXG5cbiAgICBlcXVpdmFsZW5jZXMuZm9yRWFjaEVxdWl2YWxlbmNlKChlcXVpdmFsZW5jZSkgPT4ge1xuICAgICAgbWVyZ2VkRXF1aXZhbGVuY2VzID0gbWVyZ2VkRXF1aXZhbGVuY2VzLm1lcmdlZFdpdGhFcXVpdmFsZW5jZShlcXVpdmFsZW5jZSwgY29udGV4dCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWVyZ2VkRXF1aXZhbGVuY2VzO1xuICB9XG5cbiAgbWVyZ2VkV2l0aEVxdWl2YWxlbmNlKGVxdWl2YWxlbmNlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgZXF1aXZhbGVuY2VzID0gRXF1aXZhbGVuY2VzLmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gICAgbGV0IG1lcmdlZEVxdWl2YWxlbmNlID0gZXF1aXZhbGVuY2U7IC8vL1xuXG4gICAgdGhpcy5mb3JFYWNoRXF1aXZhbGVuY2UoKGVxdWl2YWxlbmNlKSA9PiB7XG4gICAgICBjb25zdCBtZXJnZWRFcXVpdmFsZW5jZURpc2pvaW50RnJvbUVxdWl2YWxlbmNlID0gbWVyZ2VkRXF1aXZhbGVuY2UuaXNEaXNqb2ludEZyb20oZXF1aXZhbGVuY2UpO1xuXG4gICAgICBpZiAobWVyZ2VkRXF1aXZhbGVuY2VEaXNqb2ludEZyb21FcXVpdmFsZW5jZSkge1xuICAgICAgICBlcXVpdmFsZW5jZXMuYWRkRXF1aXZhbGVuY2UoZXF1aXZhbGVuY2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVyZ2VkRXF1aXZhbGVuY2UgPSBtZXJnZWRFcXVpdmFsZW5jZS5tZXJnZWRXaXRoKGVxdWl2YWxlbmNlLCBjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGVxdWl2YWxlbmNlID0gbWVyZ2VkRXF1aXZhbGVuY2U7ICAvLy9cblxuICAgIGVxdWl2YWxlbmNlcy5hZGRFcXVpdmFsZW5jZShlcXVpdmFsZW5jZSk7XG5cbiAgICByZXR1cm4gZXF1aXZhbGVuY2VzO1xuICB9XG5cbiAgc2VwYXJhdGVFcXVpdmFsZW5jZXMoZXF1aXZhbGVuY2VzQSwgZXF1aXZhbGVuY2VzQiwgY2FsbGJhY2spIHtcbiAgICBjb25zdCBlcXVpdmFsZW5jZXNBQXJyYXkgPSBlcXVpdmFsZW5jZXNBLmdldEFycmF5KCksXG4gICAgICAgICAgZXF1aXZhbGVuY2VzQkFycmF5ID0gZXF1aXZhbGVuY2VzQi5nZXRBcnJheSgpO1xuXG4gICAgc2VwYXJhdGUodGhpcy5hcnJheSwgZXF1aXZhbGVuY2VzQUFycmF5LCBlcXVpdmFsZW5jZXNCQXJyYXksIGNhbGxiYWNrKTtcbiAgfVxuXG4gIHNlcGFyYXRlSW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMocmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcywgY29udGV4dCkge1xuICAgIHRoaXMuc2VwYXJhdGVFcXVpdmFsZW5jZXMocmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcywgKGVxdWl2YWxlbmNlKSA9PiB7XG4gICAgICBjb25zdCBlcXVpdmFsZW5jZUluaXRpYWxseUdyb3VuZGVkID0gZXF1aXZhbGVuY2UuaXNJbml0aWFsbHlHcm91bmRlZChjb250ZXh0KTtcblxuICAgICAgaWYgKCFlcXVpdmFsZW5jZUluaXRpYWxseUdyb3VuZGVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2VwYXJhdGVJbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMocmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsIGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpIHtcbiAgICB0aGlzLnNlcGFyYXRlRXF1aXZhbGVuY2VzKHJlbWFpbmluZ0VxdWl2YWxlbmNlcywgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzLCAoZXF1aXZhbGVuY2UpID0+IHtcbiAgICAgIGNvbnN0IGVxdWl2YWxlbmNlSW1wbGljaXRseUdyb3VuZGVkID0gZXF1aXZhbGVuY2UuaXNJbXBsaWNpdGx5R3JvdW5kZWQoZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCk7XG5cbiAgICAgIGlmICghZXF1aXZhbGVuY2VJbXBsaWNpdGx5R3JvdW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzZXBhcmF0ZUdyb3VuZGVkVGVybXNBbmREZWZpbmVkVmFyaWFibGVzKGdyb3VuZGVkVGVybXMsIGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpIHtcbiAgICBsZXQgZXF1aXZhbGVuY2VzID0gdGhpcyxcbiAgICAgICAgZ3JvdW5kZWRFcXVpdmFsZW5jZXMsXG4gICAgICAgIHJlbWFpbmluZ0VxdWl2YWxlbmNlcyxcbiAgICAgICAgaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsXG4gICAgICAgIGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcztcblxuICAgIHJlbWFpbmluZ0VxdWl2YWxlbmNlcyA9RXF1aXZhbGVuY2VzLmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gICAgaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMgPSBFcXVpdmFsZW5jZXMuZnJvbU5vdGhpbmcoY29udGV4dCk7XG5cbiAgICBlcXVpdmFsZW5jZXMuc2VwYXJhdGVJbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcyhyZW1haW5pbmdFcXVpdmFsZW5jZXMsIGluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzLCBjb250ZXh0KTtcblxuICAgIGNvbnN0IGluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoID0gaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMuZ2V0TGVuZ3RoKCk7XG5cbiAgICBpZiAoaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNMZW5ndGggPiAwKSB7XG4gICAgICBncm91bmRlZEVxdWl2YWxlbmNlcyA9IGluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzOyAvLy9cblxuICAgICAgbGV0IGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCA9IDE7XG5cbiAgICAgIHdoaWxlIChpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNMZW5ndGggPiAwKSB7XG4gICAgICAgIGxldCBkZWZpbmVkVmFyaWFibGVzTGVuZ3RoID0gMCxcbiAgICAgICAgICAgIHByZXZpb3VzRGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA9IC0xO1xuXG4gICAgICAgIHdoaWxlIChkZWZpbmVkVmFyaWFibGVzTGVuZ3RoID4gcHJldmlvdXNEZWZpbmVkVmFyaWFibGVzTGVuZ3RoKSB7XG4gICAgICAgICAgcHJldmlvdXNEZWZpbmVkVmFyaWFibGVzTGVuZ3RoID0gZGVmaW5lZFZhcmlhYmxlc0xlbmd0aDsgIC8vL1xuXG4gICAgICAgICAgZ3JvdW5kZWRUZXJtc0Zyb21Hcm91bmRlZEVxdWl2YWxlbmNlc0FuZERlZmluZWRWYXJpYWJsZXMoZ3JvdW5kZWRFcXVpdmFsZW5jZXMsIGRlZmluZWRWYXJpYWJsZXMsIGdyb3VuZGVkVGVybXMsIGNvbnRleHQpO1xuXG4gICAgICAgICAgZGVmaW5lZFZhcmlhYmxlc0Zyb21Hcm91bmRlZFRlcm1zKGdyb3VuZGVkVGVybXMsIGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gICAgICAgICAgZGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA9IGRlZmluZWRWYXJpYWJsZXMubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgZXF1aXZhbGVuY2VzID0gcmVtYWluaW5nRXF1aXZhbGVuY2VzOyAvLy9cblxuICAgICAgICByZW1haW5pbmdFcXVpdmFsZW5jZXMgPSBbXTtcblxuICAgICAgICBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMgPSBbXTtcblxuICAgICAgICBlcXVpdmFsZW5jZXMuc2VwYXJhdGVJbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMocmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsIGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gICAgICAgIGdyb3VuZGVkRXF1aXZhbGVuY2VzLmFkZEVxdWl2YWxlbmNlcyhpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMpO1xuXG4gICAgICAgIGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCA9IGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcy5nZXRMZW5ndGgoKTsgIC8vL1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIGNvbnN0IGFycmF5ID0gW1xuICAgICAgICAgICAgLi4udGhpcy5hcnJheVxuICAgICAgICAgIF0sXG4gICAgICAgICAgZXF1aXZhbGVuY2VzID0gbmV3IEVxdWl2YWxlbmNlcyhhcnJheSk7XG5cbiAgICByZXR1cm4gZXF1aXZhbGVuY2VzO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkVxdWl2YWxlbmNlc1wiO1xuXG4gIHN0YXRpYyBmcm9tTm90aGluZyhjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RyaW5nID0gRU1QVFlfU1RSSU5HLFxuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGFycmF5ID0gW10sXG4gICAgICAgICAgZXF1aXZhbGVuY2VzID0gbmV3IEVxdWl2YWxlbmNlcyhjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGFycmF5KTtcblxuICAgIHJldHVybiBlcXVpdmFsZW5jZXM7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBkZWZpbmVkVmFyaWFibGVzRnJvbUdyb3VuZGVkVGVybXMoZ3JvdW5kZWRUZXJtcywgZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCkge1xuICBncm91bmRlZFRlcm1zLmZvckVhY2goKGdyb3VuZGVkVGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm0gPSBncm91bmRlZFRlcm0sICAvLy9cbiAgICAgICAgICB2YXJpYWJsZXMgPSB2YXJpYWJsZXNGcm9tVGVybSh0ZXJtLCBjb250ZXh0KTtcblxuICAgIHZhcmlhYmxlcy5mb3JFYWNoKCh2YXJpYWJsZSkgPT4ge1xuICAgICAgY29uc3QgZGVmaW5lZFZhcmlhYmxlc0luY2x1ZGVzVGVybVZhcmlhYmxlID0gZGVmaW5lZFZhcmlhYmxlcy5pbmNsdWRlcyh2YXJpYWJsZSk7XG5cbiAgICAgIGlmICghZGVmaW5lZFZhcmlhYmxlc0luY2x1ZGVzVGVybVZhcmlhYmxlKSB7XG4gICAgICAgIGNvbnN0IGRlZmluZWRWYXJpYWJsZSA9IHZhcmlhYmxlOyAgLy8vXG5cbiAgICAgICAgZGVmaW5lZFZhcmlhYmxlcy5wdXNoKGRlZmluZWRWYXJpYWJsZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBncm91bmRlZFRlcm1zRnJvbUdyb3VuZGVkRXF1aXZhbGVuY2VzQW5kRGVmaW5lZFZhcmlhYmxlcyhncm91bmRlZEVxdWl2YWxlbmNlcywgZGVmaW5lZFZhcmlhYmxlcywgZ3JvdW5kZWRUZXJtcywgY29udGV4dCkge1xuICBncm91bmRlZEVxdWl2YWxlbmNlcy5mb3JFYWNoRXF1aXZhbGVuY2UoKGdyb3VuZGVkRXF1aXZhbGVuY2UpID0+IHtcbiAgICBncm91bmRlZEVxdWl2YWxlbmNlLmdldEdyb3VuZGVkVGVybXMoZGVmaW5lZFZhcmlhYmxlcywgZ3JvdW5kZWRUZXJtcywgY29udGV4dCk7XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbInB1c2giLCJhcnJheVV0aWxpdGllcyIsInNlcGFyYXRlIiwiZGVmaW5lIiwiRXF1aXZhbGVuY2VzIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJhcnJheSIsImdldEFycmF5IiwiZ2V0TGVuZ3RoIiwibGVuZ3RoIiwiZ2V0VHlwZXMiLCJ0eXBlcyIsIm1hcCIsImVxdWl2YWxlbmNlIiwidHlwZSIsImdldFR5cGUiLCJhZGRFcXVpdmFsZW5jZSIsImFkZEVxdWl2YWxlbmNlcyIsImVxdWl2YWxlbmNlcyIsInNvbWVFcXVpdmFsZW5jZSIsImNhbGxiYWNrIiwic29tZSIsImV2ZXJ5RXF1aXZhbGVuY2UiLCJldmVyeSIsImZvckVhY2hFcXVpdmFsZW5jZSIsImZvckVhY2giLCJmaW5kRXF1aXZhbGVuY2VCeVRlcm0iLCJ0ZXJtIiwiZmluZCIsImVxdWl2YWxlbmNlQ29tcGFyZXNUb1Rlcm0iLCJjb21wYXJlVGVybSIsImZpbmRFcXVpdmFsZW5jZUJ5VGVybU5vZGVzIiwidGVybU5vZGVzIiwidGVybU5vZGVNYXRjaGVzIiwibWF0Y2hUZXJtTm9kZXMiLCJtZXJnZWRXaXRoIiwibWVyZ2VkRXF1aXZhbGVuY2VzIiwiY2xvbmUiLCJtZXJnZWRXaXRoRXF1aXZhbGVuY2UiLCJmcm9tTm90aGluZyIsIm1lcmdlZEVxdWl2YWxlbmNlIiwibWVyZ2VkRXF1aXZhbGVuY2VEaXNqb2ludEZyb21FcXVpdmFsZW5jZSIsImlzRGlzam9pbnRGcm9tIiwic2VwYXJhdGVFcXVpdmFsZW5jZXMiLCJlcXVpdmFsZW5jZXNBIiwiZXF1aXZhbGVuY2VzQiIsImVxdWl2YWxlbmNlc0FBcnJheSIsImVxdWl2YWxlbmNlc0JBcnJheSIsInNlcGFyYXRlSW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJyZW1haW5pbmdFcXVpdmFsZW5jZXMiLCJpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcyIsImVxdWl2YWxlbmNlSW5pdGlhbGx5R3JvdW5kZWQiLCJpc0luaXRpYWxseUdyb3VuZGVkIiwic2VwYXJhdGVJbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJkZWZpbmVkVmFyaWFibGVzIiwiZXF1aXZhbGVuY2VJbXBsaWNpdGx5R3JvdW5kZWQiLCJpc0ltcGxpY2l0bHlHcm91bmRlZCIsInNlcGFyYXRlR3JvdW5kZWRUZXJtc0FuZERlZmluZWRWYXJpYWJsZXMiLCJncm91bmRlZFRlcm1zIiwiZ3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCIsImltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCIsImRlZmluZWRWYXJpYWJsZXNMZW5ndGgiLCJwcmV2aW91c0RlZmluZWRWYXJpYWJsZXNMZW5ndGgiLCJncm91bmRlZFRlcm1zRnJvbUdyb3VuZGVkRXF1aXZhbGVuY2VzQW5kRGVmaW5lZFZhcmlhYmxlcyIsImRlZmluZWRWYXJpYWJsZXNGcm9tR3JvdW5kZWRUZXJtcyIsIkVNUFRZX1NUUklORyIsIkVsZW1lbnQiLCJuYW1lIiwiZ3JvdW5kZWRUZXJtIiwidmFyaWFibGVzIiwidmFyaWFibGVzRnJvbVRlcm0iLCJ2YXJpYWJsZSIsImRlZmluZWRWYXJpYWJsZXNJbmNsdWRlc1Rlcm1WYXJpYWJsZSIsImluY2x1ZGVzIiwiZGVmaW5lZFZhcmlhYmxlIiwiZ3JvdW5kZWRFcXVpdmFsZW5jZSIsImdldEdyb3VuZGVkVGVybXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVlBOzs7ZUFBQTs7O3lCQVYrQjs4REFFWDt3QkFFRzt5QkFDTTtvQkFDSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEMsSUFBUUEsT0FBbUJDLHlCQUFjLENBQWpDRCxNQUFNRSxXQUFhRCx5QkFBYyxDQUEzQkM7SUFFZCxXQUFlQyxJQUFBQSxnQkFBTSxpQ0FBQzs7YUFBTUMsYUFDZEMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsS0FBSztnQ0FEZEo7O2dCQUV4QixrQkFGd0JBO1lBRWxCQztZQUFTQztZQUFRQzs7UUFFdkIsTUFBS0MsS0FBSyxHQUFHQTs7Ozs7WUFHZkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9B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
|
package/lib/element/error.js
CHANGED
|
@@ -163,8 +163,8 @@ var _default = (0, _elements.define)((_Error = /*#__PURE__*/ function(Element) {
|
|
|
163
163
|
key: "verify",
|
|
164
164
|
value: function verify() {
|
|
165
165
|
var verifies = false;
|
|
166
|
-
var errorString = this.
|
|
167
|
-
|
|
166
|
+
var node = this.getNode(), context = this.getContext(), errorString = this.getString(); ///
|
|
167
|
+
context.warning("The '".concat(errorString, "' error cannot be verified."), node);
|
|
168
168
|
return verifies;
|
|
169
169
|
}
|
|
170
170
|
}
|
|
@@ -172,4 +172,4 @@ var _default = (0, _elements.define)((_Error = /*#__PURE__*/ function(Element) {
|
|
|
172
172
|
return Error;
|
|
173
173
|
}(_wrap_native_super(_element.default)), _define_property(_Error, "name", "Error"), _Error));
|
|
174
174
|
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2Vycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRWxlbWVudCBmcm9tIFwiLi4vZWxlbWVudFwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEVycm9yIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG4gIH1cblxuICB2ZXJpZnkoKSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGVycm9yU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC53YXJuaW5nKGBUaGUgJyR7ZXJyb3JTdHJpbmd9JyBlcnJvciBjYW5ub3QgYmUgdmVyaWZpZWQuYCwgbm9kZSk7XG5cbiAgICByZXR1cm4gdmVyaWZpZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiRXJyb3JcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkVycm9yIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJ2ZXJpZnkiLCJ2ZXJpZmllcyIsImdldE5vZGUiLCJnZXRDb250ZXh0IiwiZXJyb3JTdHJpbmciLCJnZXRTdHJpbmciLCJ3YXJuaW5nIiwiRWxlbWVudCIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBQTs7OzhEQUpvQjt3QkFFRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUV2QixXQUFlQSxJQUFBQSxnQkFBTSwwQkFBQzs7YUFBTUMsTUFDZEMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUk7Z0NBRFBIO1FBRXhCLE9BQUEsa0JBRndCQTtZQUVsQkM7WUFBU0M7WUFBUUM7Ozs7O1lBR3pCQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSUMsV0FBVztnQkFFZixJQUFNRixPQUFPLElBQUksQ0FBQ0csT0FBTyxJQUNuQkwsVUFBVSxJQUFJLENBQUNNLFVBQVUsSUFDekJDLGNBQWMsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztnQkFFMUNSLFFBQVFTLE9BQU8sQ0FBQyxBQUFDLFFBQW1CLE9BQVpGLGFBQVksZ0NBQThCTDtnQkFFbEUsT0FBT0U7WUFDVDs7OztxQkFmd0NNLGdCQUFPLElBaUIvQyx5QkFBT0MsUUFBTyJ9
|