occam-nominal 1.0.428 → 1.0.430
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/context/file/nominal.js +5 -1
- package/lib/context.js +5 -1
- package/lib/element/assertion/signature.js +69 -69
- package/lib/element/claim/axiom.js +37 -31
- package/lib/element/label.js +1 -1
- package/lib/element/signature.js +31 -48
- package/lib/node/assertion/signature.js +4 -4
- package/lib/node/header.js +2 -2
- package/lib/utilities/element.js +11 -12
- package/package.json +5 -5
- package/src/context/file/nominal.js +13 -6
- package/src/context.js +8 -1
- package/src/element/assertion/signature.js +77 -72
- package/src/element/claim/axiom.js +51 -42
- package/src/element/label.js +3 -3
- package/src/element/signature.js +34 -60
- package/src/node/assertion/signature.js +5 -5
- package/src/node/header.js +2 -3
- package/src/utilities/element.js +10 -15
|
@@ -11,10 +11,10 @@ Object.defineProperty(exports, "default", {
|
|
|
11
11
|
const _occamlanguages = require("occam-languages");
|
|
12
12
|
const _assertion = /*#__PURE__*/ _interop_require_default(require("../assertion"));
|
|
13
13
|
const _elements = require("../../elements");
|
|
14
|
+
const _continuation = require("../../utilities/continuation");
|
|
14
15
|
const _context = require("../../utilities/context");
|
|
15
16
|
const _instantiate = require("../../process/instantiate");
|
|
16
17
|
const _element = require("../../utilities/element");
|
|
17
|
-
const _continuation = require("../../utilities/continuation");
|
|
18
18
|
function _interop_require_default(obj) {
|
|
19
19
|
return obj && obj.__esModule ? obj : {
|
|
20
20
|
default: obj
|
|
@@ -22,13 +22,13 @@ function _interop_require_default(obj) {
|
|
|
22
22
|
}
|
|
23
23
|
const { breakPointFromJSON } = _occamlanguages.breakPointUtilities;
|
|
24
24
|
const _default = (0, _elements.define)(class SignatureAssertion extends _assertion.default {
|
|
25
|
-
constructor(context, string, node, breakPoint,
|
|
25
|
+
constructor(context, string, node, breakPoint, terms, reference){
|
|
26
26
|
super(context, string, node, breakPoint);
|
|
27
|
-
this.
|
|
27
|
+
this.terms = terms;
|
|
28
28
|
this.reference = reference;
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
return this.
|
|
30
|
+
getTerms() {
|
|
31
|
+
return this.terms;
|
|
32
32
|
}
|
|
33
33
|
getReference() {
|
|
34
34
|
return this.reference;
|
|
@@ -37,7 +37,7 @@ const _default = (0, _elements.define)(class SignatureAssertion extends _asserti
|
|
|
37
37
|
const node = this.getNode(), signatureAssertionNode = node; ///
|
|
38
38
|
return signatureAssertionNode;
|
|
39
39
|
}
|
|
40
|
-
validate(
|
|
40
|
+
validate(state, context, continuation) {
|
|
41
41
|
let validates;
|
|
42
42
|
const signatureAssertionString = this.getString(); ///
|
|
43
43
|
context.trace(`Validating the '${signatureAssertionString}' signature assertion...`);
|
|
@@ -49,11 +49,11 @@ const _default = (0, _elements.define)(class SignatureAssertion extends _asserti
|
|
|
49
49
|
validates = continuation(signatureAssertion, context);
|
|
50
50
|
} else {
|
|
51
51
|
assertion = this; ///
|
|
52
|
-
const
|
|
52
|
+
const validateTerms = this.validateTerms.bind(this), validateReference = this.validateReference.bind(this);
|
|
53
53
|
validates = (0, _continuation.all)([
|
|
54
|
-
|
|
54
|
+
validateTerms,
|
|
55
55
|
validateReference
|
|
56
|
-
],
|
|
56
|
+
], state, context, (state, context)=>{
|
|
57
57
|
let validates;
|
|
58
58
|
context.addAssertion(assertion);
|
|
59
59
|
const signatureAssertion = assertion; ///
|
|
@@ -66,84 +66,84 @@ const _default = (0, _elements.define)(class SignatureAssertion extends _asserti
|
|
|
66
66
|
}
|
|
67
67
|
return validates;
|
|
68
68
|
}
|
|
69
|
-
|
|
70
|
-
let
|
|
71
|
-
const signatureAssertionString = this.getString(); ///
|
|
72
|
-
context.trace(`Validating the '${signatureAssertionString}' signature assertion's
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
69
|
+
validateTerm(term, terms, state, context, continuation) {
|
|
70
|
+
let termValidates;
|
|
71
|
+
const termString = term.getString(), signatureAssertionString = this.getString(); ///
|
|
72
|
+
context.trace(`Validating the '${signatureAssertionString}' signature assertion's '${termString}' term...`);
|
|
73
|
+
termValidates = term.validate(state, context, (term, context)=>{
|
|
74
|
+
let validates;
|
|
75
|
+
terms.push(term);
|
|
76
|
+
validates = continuation(terms, state, context);
|
|
77
|
+
return validates;
|
|
78
|
+
});
|
|
79
|
+
if (termValidates) {
|
|
80
|
+
context.debug(`...validated the '${signatureAssertionString}' signature assertion's '${termString}' term.`);
|
|
77
81
|
}
|
|
78
|
-
|
|
79
|
-
context.debug(`...validated the '${signatureAssertionString}' signature assertion's signature.`);
|
|
80
|
-
}
|
|
81
|
-
return signatureValidates;
|
|
82
|
+
return termValidates;
|
|
82
83
|
}
|
|
83
|
-
|
|
84
|
-
let
|
|
84
|
+
validateTerms(state, context, continuation) {
|
|
85
|
+
let termsValidate;
|
|
85
86
|
const signatureAssertionString = this.getString(); ///
|
|
86
|
-
context.trace(`Validating the '${signatureAssertionString}' signature assertion's
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
const signatureUnifies = this.unifySignature(context);
|
|
94
|
-
if (signatureUnifies) {
|
|
95
|
-
this.reference = reference;
|
|
96
|
-
referenceVerifies = true;
|
|
97
|
-
}
|
|
98
|
-
} else {
|
|
99
|
-
const axiomString = axiom.getString();
|
|
100
|
-
context.debug(`The '${axiomString}' axiom is not satisfiable.`);
|
|
101
|
-
}
|
|
102
|
-
} else {
|
|
103
|
-
const referencdString = reference.getString();
|
|
104
|
-
context.debug(`There is no axiom for the '${referencdString}' reference.`);
|
|
87
|
+
context.trace(`Validating the '${signatureAssertionString}' signature assertion's terms...`);
|
|
88
|
+
const terms = [], validateTerm = this.validateTerm.bind(this);
|
|
89
|
+
termsValidate = (0, _continuation.every)(this.terms, validateTerm, terms, state, context, (terms, state, context)=>{
|
|
90
|
+
let termsValidate;
|
|
91
|
+
termsValidate = continuation(state, context);
|
|
92
|
+
if (termsValidate) {
|
|
93
|
+
this.terms = terms;
|
|
105
94
|
}
|
|
95
|
+
return termsValidate;
|
|
96
|
+
});
|
|
97
|
+
if (termsValidate) {
|
|
98
|
+
context.debug(`...validated the '${signatureAssertionString}' signature assertion's terms.`);
|
|
106
99
|
}
|
|
107
|
-
|
|
108
|
-
context.debug(`...validated the '${signatureAssertionString}' signature assertion's reference.`);
|
|
109
|
-
}
|
|
110
|
-
return referenceVerifies;
|
|
100
|
+
return termsValidate;
|
|
111
101
|
}
|
|
112
|
-
|
|
113
|
-
let
|
|
102
|
+
validateReference(state, context, continuation) {
|
|
103
|
+
let referenceValidates;
|
|
114
104
|
const signatureAssertionString = this.getString(); ///
|
|
115
|
-
context.trace(`
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
105
|
+
context.trace(`Validating the '${signatureAssertionString}' signature assertion's reference...`);
|
|
106
|
+
referenceValidates = this.reference.validate(state, context, (reference, context)=>{
|
|
107
|
+
let validates = false;
|
|
108
|
+
const asiomPresent = context.isAxiomPresentByReference(reference);
|
|
109
|
+
if (asiomPresent) {
|
|
110
|
+
this.reference = reference;
|
|
111
|
+
validates = continuation(state, context);
|
|
112
|
+
}
|
|
113
|
+
return validates;
|
|
114
|
+
});
|
|
115
|
+
if (referenceValidates) {
|
|
116
|
+
context.debug(`...validated the '${signatureAssertionString}' signature assertion's reference.`);
|
|
122
117
|
}
|
|
123
|
-
return
|
|
118
|
+
return referenceValidates;
|
|
124
119
|
}
|
|
125
|
-
|
|
120
|
+
unifyClaim(claim, context) {
|
|
121
|
+
debugger;
|
|
126
122
|
let claimUnifies;
|
|
127
123
|
const claimString = claim.getString(), signatureAssertionString = this.getString();
|
|
128
124
|
context.trace(`Unifying the '${claimString}' claim with the '${signatureAssertionString}' signature assertion...`);
|
|
129
|
-
|
|
125
|
+
(0, _context.reconcile)((context)=>{
|
|
130
126
|
const axiom = context.findAxiomByReference(this.reference);
|
|
131
127
|
axiom.unifySignature(this.signature, context);
|
|
132
|
-
claimUnifies =
|
|
128
|
+
claimUnifies = axiom.unifyClaim(claim, context);
|
|
133
129
|
}, context);
|
|
134
130
|
if (claimUnifies) {
|
|
135
131
|
context.trace(`...unified the '${claimString}' claim with the '${signatureAssertionString}' signature assertion...`);
|
|
136
132
|
}
|
|
137
133
|
return claimUnifies;
|
|
138
134
|
}
|
|
139
|
-
|
|
140
|
-
let stepAndFactOrSubproofsUnify;
|
|
141
|
-
|
|
142
|
-
const axiom = context.findAxiomByReference(this.reference);
|
|
143
|
-
axiom.
|
|
144
|
-
|
|
135
|
+
unifyStepAndFactOrSubproofs(step, factOrSubproofs, context, continuation) {
|
|
136
|
+
let stepAndFactOrSubproofsUnify = false;
|
|
137
|
+
return (0, _context.reconcile)((context)=>{
|
|
138
|
+
const axiom = context.findAxiomByReference(this.reference), signatureAssertion = this; ///
|
|
139
|
+
return axiom.unifySignatureAssertion(signatureAssertion, context, (signatureAssertionUnifies)=>{
|
|
140
|
+
if (!signatureAssertionUnifies) {
|
|
141
|
+
return continuation(stepAndFactOrSubproofsUnify);
|
|
142
|
+
}
|
|
143
|
+
debugger;
|
|
144
|
+
// stepAndFactOrSubproofsUnify = axiom.unifyStepAndFactOrSubproofs(step, factOrSubproofs, context);
|
|
145
|
+
});
|
|
145
146
|
}, context);
|
|
146
|
-
return stepAndFactOrSubproofsUnify;
|
|
147
147
|
}
|
|
148
148
|
static name = "SignatureAssertion";
|
|
149
149
|
static fromJSON(json, context) {
|
|
@@ -151,9 +151,9 @@ const _default = (0, _elements.define)(class SignatureAssertion extends _asserti
|
|
|
151
151
|
const { name } = json;
|
|
152
152
|
if (this.name === name) {
|
|
153
153
|
(0, _context.instantiate)((context)=>{
|
|
154
|
-
const { string } = json, definedAssertionNode = (0, _instantiate.instantiateSignatureAssertion)(string, context), node = definedAssertionNode, breakPoint = breakPointFromJSON(json),
|
|
154
|
+
const { string } = json, definedAssertionNode = (0, _instantiate.instantiateSignatureAssertion)(string, context), node = definedAssertionNode, breakPoint = breakPointFromJSON(json), terms = (0, _element.termsFromSignatureAssertionNode)(definedAssertionNode, context), reference = (0, _element.referenceFromSignatureAssertionNode)(definedAssertionNode, context);
|
|
155
155
|
context = null;
|
|
156
|
-
signatureAssertion = new SignatureAssertion(context, string, node, breakPoint,
|
|
156
|
+
signatureAssertion = new SignatureAssertion(context, string, node, breakPoint, terms, reference);
|
|
157
157
|
}, context);
|
|
158
158
|
}
|
|
159
159
|
return signatureAssertion;
|
|
@@ -168,4 +168,4 @@ const _default = (0, _elements.define)(class SignatureAssertion extends _asserti
|
|
|
168
168
|
}
|
|
169
169
|
});
|
|
170
170
|
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2VydGlvbi9zaWduYXR1cmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBBc3NlcnRpb24gZnJvbSBcIi4uL2Fzc2VydGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHJlY29uY2lsZSwgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlU2lnbmF0dXJlQXNzZXJ0aW9uIH0gZnJvbSBcIi4uLy4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IHNpZ25hdHVyZUZyb21TaWduYXR1cmVBc3NlcnRpb25Ob2RlLCByZWZlcmVuY2VGcm9tU2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSwgc2lnbmF0dXJlQXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7YWxsLCBleGlzdHN9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29udGludWF0aW9uXCI7XG5cbmNvbnN0IHsgYnJlYWtQb2ludEZyb21KU09OIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgU2lnbmF0dXJlQXNzZXJ0aW9uIGV4dGVuZHMgQXNzZXJ0aW9uIHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBzaWduYXR1cmUsIHJlZmVyZW5jZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnNpZ25hdHVyZSA9IHNpZ25hdHVyZTtcbiAgICB0aGlzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZTtcbiAgfVxuXG4gIGdldFNpZ25hdHVyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zaWduYXR1cmU7XG4gIH1cblxuICBnZXRSZWZlcmVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlO1xuICB9XG5cbiAgZ2V0U2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgc2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgIHJldHVybiBzaWduYXR1cmVBc3NlcnRpb25Ob2RlO1xuICB9XG5cbiAgdmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGxldCB2YWxpZGF0ZXM7XG5cbiAgICBjb25zdCBzaWduYXR1cmVBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgICBsZXQgYXNzZXJ0aW9uO1xuXG4gICAgYXNzZXJ0aW9uID0gdGhpcy5maW5kQXNzZXJ0aW9uKGNvbnRleHQpO1xuXG4gICAgaWYgKGFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc2lnbmF0dXJlQXNzZXJ0aW9uID0gYXNzZXJ0aW9uOyAvLy9cblxuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24gaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuXG4gICAgICB2YWxpZGF0ZXMgPSBjb250aW51YXRpb24oc2lnbmF0dXJlQXNzZXJ0aW9uLCBjb250ZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXNzZXJ0aW9uID0gdGhpczsgLy8vXG5cbiAgICAgIGNvbnN0IHZhbGlkYXRlU2lnbmF0dXJlID0gdGhpcy52YWxpZGF0ZVNpZ25hdHVyZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgdmFsaWRhdGVSZWZlcmVuY2UgPSB0aGlzLnZhbGlkYXRlUmVmZXJlbmNlLmJpbmQodGhpcyk7XG5cbiAgICAgIHZhbGlkYXRlcyA9IGFsbChbXG4gICAgICAgIHZhbGlkYXRlU2lnbmF0dXJlLFxuICAgICAgICB2YWxpZGF0ZVJlZmVyZW5jZVxuICAgICAgXSwgc3RhdGUsIGNvbnRleHQsIChzdGF0ZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgICAgIGNvbnRleHQuYWRkQXNzZXJ0aW9uKGFzc2VydGlvbik7XG5cbiAgICAgICAgY29uc3Qgc2lnbmF0dXJlQXNzZXJ0aW9uID0gYXNzZXJ0aW9uOyAvLy9cblxuICAgICAgICB2YWxpZGF0ZXMgPSBjb250aW51YXRpb24oc2lnbmF0dXJlQXNzZXJ0aW9uLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gdmFsaWRhdGVzO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0ZXM7XG4gIH1cblxuICB2YWxpZGF0ZVNpZ25hdHVyZShjb250ZXh0KSB7XG4gICAgbGV0IHNpZ25hdHVyZVZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3Mgc2lnbmF0dXJlLi4uYCk7XG5cbiAgICBjb25zdCBzaWduYXR1cmUgPSB0aGlzLnNpZ25hdHVyZS52YWxpZGF0ZShzdGF0ZSwgY29udGV4dCk7XG5cbiAgICBpZiAoc2lnbmF0dXJlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnNpZ25hdHVyZSA9IHNpZ25hdHVyZTtcblxuICAgICAgc2lnbmF0dXJlVmFsaWRhdGVzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoc2lnbmF0dXJlVmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24ncyBzaWduYXR1cmUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ25hdHVyZVZhbGlkYXRlcztcbiAgfVxuXG4gIHZhbGlkYXRlUmVmZXJlbmNlKGNvbnRleHQpIHtcbiAgICBsZXQgcmVmZXJlbmNlVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHNpZ25hdHVyZUFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24ncyByZWZlcmVuY2UuLi5gKTtcblxuICAgIGNvbnN0IHJlZmVyZW5jZSA9IHRoaXMucmVmZXJlbmNlLnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0KTtcblxuICAgIGlmIChyZWZlcmVuY2UgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGF4aW9tID0gY29udGV4dC5maW5kQXhpb21CeVJlZmVyZW5jZShyZWZlcmVuY2UpO1xuXG4gICAgICBpZiAoYXhpb20gIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgc2F0aXNmaWFibGUgPSBheGlvbS5pc1NhdGlzZmlhYmxlKCk7XG5cbiAgICAgICAgaWYgKHNhdGlzZmlhYmxlKSB7XG4gICAgICAgICAgY29uc3Qgc2lnbmF0dXJlVW5pZmllcyA9IHRoaXMudW5pZnlTaWduYXR1cmUoY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAoc2lnbmF0dXJlVW5pZmllcykge1xuICAgICAgICAgICAgdGhpcy5yZWZlcmVuY2UgPSByZWZlcmVuY2U7XG5cbiAgICAgICAgICAgIHJlZmVyZW5jZVZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgYXhpb21TdHJpbmcgPSBheGlvbS5nZXRTdHJpbmcoKTtcblxuICAgICAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHtheGlvbVN0cmluZ30nIGF4aW9tIGlzIG5vdCBzYXRpc2ZpYWJsZS5gKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNkU3RyaW5nID0gcmVmZXJlbmNlLmdldFN0cmluZygpO1xuXG4gICAgICAgIGNvbnRleHQuZGVidWcoYFRoZXJlIGlzIG5vIGF4aW9tIGZvciB0aGUgJyR7cmVmZXJlbmNkU3RyaW5nfScgcmVmZXJlbmNlLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyZWZlcmVuY2VWZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3MgcmVmZXJlbmNlLmApO1xuICAgIH1cblxuICAgIHJldHVybiByZWZlcmVuY2VWZXJpZmllcztcbiAgfVxuXG4gIHVuaWZ5U2lnbmF0dXJlKGNvbnRleHQpIHtcbiAgICBsZXQgc2lnbmF0dXJlVW5pZmllcztcblxuICAgIGNvbnN0IHNpZ25hdHVyZUFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3Mgc2lnbmF0dXJlLi4uYCk7XG5cbiAgICByZXR1cm4gcmVjb25jaWxlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBheGlvbSA9IGNvbnRleHQuZmluZEF4aW9tQnlSZWZlcmVuY2UodGhpcy5yZWZlcmVuY2UpO1xuXG4gICAgICBzaWduYXR1cmVVbmlmaWVzID0gYXhpb20udW5pZnlTaWduYXR1cmUodGhpcy5zaWduYXR1cmUsIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgaWYgKHNpZ25hdHVyZVVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24ncyBzaWduYXR1cmUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ25hdHVyZVVuaWZpZXM7XG4gIH1cblxuICBhc3luYyB1bmlmeUNsYWltKGNsYWltLCBjb250ZXh0KSB7XG4gICAgbGV0IGNsYWltVW5pZmllcztcblxuICAgIGNvbnN0IGNsYWltU3RyaW5nID0gY2xhaW0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtjbGFpbVN0cmluZ30nIGNsYWltIHdpdGggdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24uLi5gKTtcblxuICAgIGF3YWl0IHJlY29uY2lsZShhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgYXhpb20gPSBjb250ZXh0LmZpbmRBeGlvbUJ5UmVmZXJlbmNlKHRoaXMucmVmZXJlbmNlKTtcblxuICAgICAgYXhpb20udW5pZnlTaWduYXR1cmUodGhpcy5zaWduYXR1cmUsIGNvbnRleHQpO1xuXG4gICAgICBjbGFpbVVuaWZpZXMgPSBhd2FpdCBheGlvbS51bmlmeUNsYWltKGNsYWltLCBjb250ZXh0KTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIGlmIChjbGFpbVVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYC4uLnVuaWZpZWQgdGhlICcke2NsYWltU3RyaW5nfScgY2xhaW0gd2l0aCB0aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbi4uLmApO1xuICAgIH1cblxuICAgIHJldHVybiBjbGFpbVVuaWZpZXM7XG4gIH1cblxuICBhc3luYyB1bmlmeVN0ZXBBbmRGYWN0T3JTdWJwcm9vZnMoc3RlcCwgZmFjdE9yU3VicHJvb2ZzLCBjb250ZXh0KSB7XG4gICAgbGV0IHN0ZXBBbmRGYWN0T3JTdWJwcm9vZnNVbmlmeTtcblxuICAgIGF3YWl0IHJlY29uY2lsZShhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgYXhpb20gPSBjb250ZXh0LmZpbmRBeGlvbUJ5UmVmZXJlbmNlKHRoaXMucmVmZXJlbmNlKTtcblxuICAgICAgYXhpb20udW5pZnlTaWduYXR1cmUodGhpcy5zaWduYXR1cmUsIGNvbnRleHQpO1xuXG4gICAgICBzdGVwQW5kRmFjdE9yU3VicHJvb2ZzVW5pZnkgPSBhd2FpdCBheGlvbS51bmlmeVN0ZXBBbmRGYWN0T3JTdWJwcm9vZnMoc3RlcCwgZmFjdE9yU3VicHJvb2ZzLCBjb250ZXh0KTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBzdGVwQW5kRmFjdE9yU3VicHJvb2ZzVW5pZnk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiU2lnbmF0dXJlQXNzZXJ0aW9uXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgc2lnbmF0dXJlQXNzZXJ0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IHsgbmFtZSB9ID0ganNvbjtcblxuICAgIGlmICh0aGlzLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgICBkZWZpbmVkQXNzZXJ0aW9uTm9kZSA9IGluc3RhbnRpYXRlU2lnbmF0dXJlQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICAgIG5vZGUgPSBkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEZyb21KU09OKGpzb24pLFxuICAgICAgICAgICAgICBzaWduYXR1cmUgPSBzaWduYXR1cmVGcm9tU2lnbmF0dXJlQXNzZXJ0aW9uTm9kZShkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHJlZmVyZW5jZSA9IHJlZmVyZW5jZUZyb21TaWduYXR1cmVBc3NlcnRpb25Ob2RlKGRlZmluZWRBc3NlcnRpb25Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgICBzaWduYXR1cmVBc3NlcnRpb24gPSBuZXcgU2lnbmF0dXJlQXNzZXJ0aW9uKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgc2lnbmF0dXJlLCByZWZlcmVuY2UpO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ25hdHVyZUFzc2VydGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RlcChzdGVwLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0ZXAuZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAgICAgICAgIHNpZ25hdHVyZUFzc2VydGlvbiA9IHNpZ25hdHVyZUFzc2VydGlvbkZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZUFzc2VydGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHNpZ25hdHVyZUFzc2VydGlvbiA9IHNpZ25hdHVyZUFzc2VydGlvbkZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZUFzc2VydGlvbjtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiYnJlYWtQb2ludEZyb21KU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIlNpZ25hdHVyZUFzc2VydGlvbiIsIkFzc2VydGlvbiIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInNpZ25hdHVyZSIsInJlZmVyZW5jZSIsImdldFNpZ25hdHVyZSIsImdldFJlZmVyZW5jZSIsImdldFNpZ25hdHVyZUFzc2VydGlvbk5vZGUiLCJnZXROb2RlIiwic2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSIsInZhbGlkYXRlIiwic3RhdGUiLCJjb250aW51YXRpb24iLCJ2YWxpZGF0ZXMiLCJzaWduYXR1cmVBc3NlcnRpb25TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsImFzc2VydGlvbiIsImZpbmRBc3NlcnRpb24iLCJzaWduYXR1cmVBc3NlcnRpb24iLCJkZWJ1ZyIsInZhbGlkYXRlU2lnbmF0dXJlIiwiYmluZCIsInZhbGlkYXRlUmVmZXJlbmNlIiwiYWxsIiwiYWRkQXNzZXJ0aW9uIiwic2lnbmF0dXJlVmFsaWRhdGVzIiwicmVmZXJlbmNlVmVyaWZpZXMiLCJheGlvbSIsImZpbmRBeGlvbUJ5UmVmZXJlbmNlIiwic2F0aXNmaWFibGUiLCJpc1NhdGlzZmlhYmxlIiwic2lnbmF0dXJlVW5pZmllcyIsInVuaWZ5U2lnbmF0dXJlIiwiYXhpb21TdHJpbmciLCJyZWZlcmVuY2RTdHJpbmciLCJyZWNvbmNpbGUiLCJ1bmlmeUNsYWltIiwiY2xhaW0iLCJjbGFpbVVuaWZpZXMiLCJjbGFpbVN0cmluZyIsInVuaWZ5U3RlcEFuZEZhY3RPclN1YnByb29mcyIsInN0ZXAiLCJmYWN0T3JTdWJwcm9vZnMiLCJzdGVwQW5kRmFjdE9yU3VicHJvb2ZzVW5pZnkiLCJuYW1lIiwiZnJvbUpTT04iLCJqc29uIiwiaW5zdGFudGlhdGUiLCJkZWZpbmVkQXNzZXJ0aW9uTm9kZSIsImluc3RhbnRpYXRlU2lnbmF0dXJlQXNzZXJ0aW9uIiwic2lnbmF0dXJlRnJvbVNpZ25hdHVyZUFzc2VydGlvbk5vZGUiLCJyZWZlcmVuY2VGcm9tU2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSIsImZyb21TdGVwIiwic3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJzaWduYXR1cmVBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZSIsImZyb21TdGF0ZW1lbnQiLCJzdGF0ZW1lbnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBQTs7O2dDQVpvQztrRUFFZDswQkFFQzt5QkFDZ0I7NkJBQ087eUJBQ2dGOzhCQUNwRzs7Ozs7O0FBRTFCLE1BQU0sRUFBRUEsa0JBQWtCLEVBQUUsR0FBR0MsbUNBQW1CO01BRWxELFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsMkJBQTJCQyxrQkFBUztJQUM5RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFNBQVMsRUFBRUMsU0FBUyxDQUFFO1FBQ25FLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO1FBQ2pCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNGLFNBQVM7SUFDdkI7SUFFQUcsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRixTQUFTO0lBQ3ZCO0lBRUFHLDRCQUE0QjtRQUMxQixNQUFNTixPQUFPLElBQUksQ0FBQ08sT0FBTyxJQUNuQkMseUJBQXlCUixNQUFPLEdBQUc7UUFFekMsT0FBT1E7SUFDVDtJQUVBQyxTQUFTQyxNQUFLLEVBQUVaLE9BQU8sRUFBRWEsWUFBWSxFQUFFO1FBQ3JDLElBQUlDO1FBRUos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
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2VydGlvbi9zaWduYXR1cmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBBc3NlcnRpb24gZnJvbSBcIi4uL2Fzc2VydGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGFsbCwgZXZlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgcmVjb25jaWxlLCBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVTaWduYXR1cmVBc3NlcnRpb24gfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgdGVybXNGcm9tU2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSwgcmVmZXJlbmNlRnJvbVNpZ25hdHVyZUFzc2VydGlvbk5vZGUsIHNpZ25hdHVyZUFzc2VydGlvbkZyb21TdGF0ZW1lbnROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5cbmNvbnN0IHsgYnJlYWtQb2ludEZyb21KU09OIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgU2lnbmF0dXJlQXNzZXJ0aW9uIGV4dGVuZHMgQXNzZXJ0aW9uIHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0ZXJtcywgcmVmZXJlbmNlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudGVybXMgPSB0ZXJtcztcbiAgICB0aGlzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZTtcbiAgfVxuXG4gIGdldFRlcm1zKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm1zO1xuICB9XG5cbiAgZ2V0UmVmZXJlbmNlKCkge1xuICAgIHJldHVybiB0aGlzLnJlZmVyZW5jZTtcbiAgfVxuXG4gIGdldFNpZ25hdHVyZUFzc2VydGlvbk5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHNpZ25hdHVyZUFzc2VydGlvbk5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICByZXR1cm4gc2lnbmF0dXJlQXNzZXJ0aW9uTm9kZTtcbiAgfVxuXG4gIHZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbi4uLmApO1xuXG4gICAgbGV0IGFzc2VydGlvbjtcblxuICAgIGFzc2VydGlvbiA9IHRoaXMuZmluZEFzc2VydGlvbihjb250ZXh0KTtcblxuICAgIGlmIChhc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHNpZ25hdHVyZUFzc2VydGlvbiA9IGFzc2VydGlvbjsgLy8vXG5cbiAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uIGlzIGFscmVhZHkgcHJlc2VudC5gKTtcblxuICAgICAgdmFsaWRhdGVzID0gY29udGludWF0aW9uKHNpZ25hdHVyZUFzc2VydGlvbiwgY29udGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFzc2VydGlvbiA9IHRoaXM7IC8vL1xuXG4gICAgICBjb25zdCB2YWxpZGF0ZVRlcm1zID0gdGhpcy52YWxpZGF0ZVRlcm1zLmJpbmQodGhpcyksXG4gICAgICAgICAgICB2YWxpZGF0ZVJlZmVyZW5jZSA9IHRoaXMudmFsaWRhdGVSZWZlcmVuY2UuYmluZCh0aGlzKTtcblxuICAgICAgdmFsaWRhdGVzID0gYWxsKFtcbiAgICAgICAgdmFsaWRhdGVUZXJtcyxcbiAgICAgICAgdmFsaWRhdGVSZWZlcmVuY2VcbiAgICAgIF0sIHN0YXRlLCBjb250ZXh0LCAoc3RhdGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHZhbGlkYXRlcztcblxuICAgICAgICBjb250ZXh0LmFkZEFzc2VydGlvbihhc3NlcnRpb24pO1xuXG4gICAgICAgIGNvbnN0IHNpZ25hdHVyZUFzc2VydGlvbiA9IGFzc2VydGlvbjsgLy8vXG5cbiAgICAgICAgdmFsaWRhdGVzID0gY29udGludWF0aW9uKHNpZ25hdHVyZUFzc2VydGlvbiwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlcztcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdGVzO1xuICB9XG5cbiAgdmFsaWRhdGVUZXJtKHRlcm0sIHRlcm1zLCBzdGF0ZSwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgbGV0IHRlcm1WYWxpZGF0ZXM7XG5cbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzaWduYXR1cmVBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3MgJyR7dGVybVN0cmluZ30nIHRlcm0uLi5gKTtcblxuICAgIHRlcm1WYWxpZGF0ZXMgPSB0ZXJtLnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAodGVybSwgY29udGV4dCkgPT4ge1xuICAgICAgbGV0IHZhbGlkYXRlcztcblxuICAgICAgdGVybXMucHVzaCh0ZXJtKTtcblxuICAgICAgdmFsaWRhdGVzID0gY29udGludWF0aW9uKHRlcm1zLCBzdGF0ZSwgY29udGV4dCk7XG5cbiAgICAgIHJldHVybiB2YWxpZGF0ZXM7XG4gICAgfSk7XG5cbiAgICBpZiAodGVybVZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3MgJyR7dGVybVN0cmluZ30nIHRlcm0uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm1WYWxpZGF0ZXM7XG4gIH1cblxuICB2YWxpZGF0ZVRlcm1zKHN0YXRlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBsZXQgdGVybXNWYWxpZGF0ZTtcblxuICAgIGNvbnN0IHNpZ25hdHVyZUFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24ncyB0ZXJtcy4uLmApO1xuXG4gICAgY29uc3QgdGVybXMgPSBbXSxcbiAgICAgICAgICB2YWxpZGF0ZVRlcm0gPSB0aGlzLnZhbGlkYXRlVGVybS5iaW5kKHRoaXMpO1xuXG4gICAgdGVybXNWYWxpZGF0ZSA9IGV2ZXJ5KHRoaXMudGVybXMsIHZhbGlkYXRlVGVybSwgdGVybXMsIHN0YXRlLCBjb250ZXh0LCAodGVybXMsIHN0YXRlLCBjb250ZXh0KSA9PiB7XG4gICAgICBsZXQgdGVybXNWYWxpZGF0ZTtcblxuICAgICAgdGVybXNWYWxpZGF0ZSA9IGNvbnRpbnVhdGlvbihzdGF0ZSwgY29udGV4dCk7XG5cbiAgICAgIGlmICh0ZXJtc1ZhbGlkYXRlKSB7XG4gICAgICAgIHRoaXMudGVybXMgPSB0ZXJtcztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRlcm1zVmFsaWRhdGU7XG4gICAgfSk7XG5cbiAgICBpZiAodGVybXNWYWxpZGF0ZSl7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24ncyB0ZXJtcy5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybXNWYWxpZGF0ZVxuICB9XG5cbiAgdmFsaWRhdGVSZWZlcmVuY2Uoc3RhdGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGxldCByZWZlcmVuY2VWYWxpZGF0ZXM7XG5cbiAgICBjb25zdCBzaWduYXR1cmVBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3MgcmVmZXJlbmNlLi4uYCk7XG5cbiAgICByZWZlcmVuY2VWYWxpZGF0ZXMgPSB0aGlzLnJlZmVyZW5jZS52YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgKHJlZmVyZW5jZSwgY29udGV4dCkgPT4ge1xuICAgICAgbGV0IHZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgICBjb25zdCBhc2lvbVByZXNlbnQgPSBjb250ZXh0LmlzQXhpb21QcmVzZW50QnlSZWZlcmVuY2UocmVmZXJlbmNlKTtcblxuICAgICAgaWYgKGFzaW9tUHJlc2VudCkge1xuICAgICAgICB0aGlzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZTtcblxuICAgICAgICB2YWxpZGF0ZXMgPSBjb250aW51YXRpb24oc3RhdGUsIGNvbnRleHQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmFsaWRhdGVzO1xuICAgIH0pO1xuXG4gICAgaWYgKHJlZmVyZW5jZVZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3MgcmVmZXJlbmNlLmApO1xuICAgIH1cblxuICAgIHJldHVybiByZWZlcmVuY2VWYWxpZGF0ZXM7XG4gIH1cblxuICB1bmlmeUNsYWltKGNsYWltLCBjb250ZXh0KSB7XG4gICAgZGVidWdnZXJcblxuICAgIGxldCBjbGFpbVVuaWZpZXM7XG5cbiAgICBjb25zdCBjbGFpbVN0cmluZyA9IGNsYWltLmdldFN0cmluZygpLFxuICAgICAgICAgIHNpZ25hdHVyZUFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7Y2xhaW1TdHJpbmd9JyBjbGFpbSB3aXRoIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgICByZWNvbmNpbGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGF4aW9tID0gY29udGV4dC5maW5kQXhpb21CeVJlZmVyZW5jZSh0aGlzLnJlZmVyZW5jZSk7XG5cbiAgICAgIGF4aW9tLnVuaWZ5U2lnbmF0dXJlKHRoaXMuc2lnbmF0dXJlLCBjb250ZXh0KTtcblxuICAgICAgY2xhaW1VbmlmaWVzID0gYXhpb20udW5pZnlDbGFpbShjbGFpbSwgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICBpZiAoY2xhaW1VbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LnRyYWNlKGAuLi51bmlmaWVkIHRoZSAnJHtjbGFpbVN0cmluZ30nIGNsYWltIHdpdGggdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24uLi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xhaW1VbmlmaWVzO1xuICB9XG5cbiAgdW5pZnlTdGVwQW5kRmFjdE9yU3VicHJvb2ZzKHN0ZXAsIGZhY3RPclN1YnByb29mcywgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgbGV0IHN0ZXBBbmRGYWN0T3JTdWJwcm9vZnNVbmlmeSA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIHJlY29uY2lsZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgYXhpb20gPSBjb250ZXh0LmZpbmRBeGlvbUJ5UmVmZXJlbmNlKHRoaXMucmVmZXJlbmNlKSxcbiAgICAgICAgICAgIHNpZ25hdHVyZUFzc2VydGlvbiA9IHRoaXM7ICAvLy9cblxuICAgICAgcmV0dXJuIGF4aW9tLnVuaWZ5U2lnbmF0dXJlQXNzZXJ0aW9uKHNpZ25hdHVyZUFzc2VydGlvbiwgY29udGV4dCwgKHNpZ25hdHVyZUFzc2VydGlvblVuaWZpZXMpID0+IHtcbiAgICAgICAgaWYgKCFzaWduYXR1cmVBc3NlcnRpb25VbmlmaWVzKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdGVwQW5kRmFjdE9yU3VicHJvb2ZzVW5pZnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVidWdnZXJcblxuICAgICAgICAvLyBzdGVwQW5kRmFjdE9yU3VicHJvb2ZzVW5pZnkgPSBheGlvbS51bmlmeVN0ZXBBbmRGYWN0T3JTdWJwcm9vZnMoc3RlcCwgZmFjdE9yU3VicHJvb2ZzLCBjb250ZXh0KTtcbiAgICAgIH0pO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlNpZ25hdHVyZUFzc2VydGlvblwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IHNpZ25hdHVyZUFzc2VydGlvbiA9IG51bGw7XG5cbiAgICBjb25zdCB7IG5hbWUgfSA9IGpzb247XG5cbiAgICBpZiAodGhpcy5uYW1lID09PSBuYW1lKSB7XG4gICAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgICAgZGVmaW5lZEFzc2VydGlvbk5vZGUgPSBpbnN0YW50aWF0ZVNpZ25hdHVyZUFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBub2RlID0gZGVmaW5lZEFzc2VydGlvbk5vZGUsICAvLy9cbiAgICAgICAgICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSxcbiAgICAgICAgICAgICAgdGVybXMgPSB0ZXJtc0Zyb21TaWduYXR1cmVBc3NlcnRpb25Ob2RlKGRlZmluZWRBc3NlcnRpb25Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgcmVmZXJlbmNlID0gcmVmZXJlbmNlRnJvbVNpZ25hdHVyZUFzc2VydGlvbk5vZGUoZGVmaW5lZEFzc2VydGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICAgIHNpZ25hdHVyZUFzc2VydGlvbiA9IG5ldyBTaWduYXR1cmVBc3NlcnRpb24oY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0ZXJtcywgcmVmZXJlbmNlKTtcbiAgICAgIH0sIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduYXR1cmVBc3NlcnRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbVN0ZXAoc3RlcCwgY29udGV4dCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGVwLmdldFN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgICBzaWduYXR1cmVBc3NlcnRpb24gPSBzaWduYXR1cmVBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBzaWduYXR1cmVBc3NlcnRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgICBzaWduYXR1cmVBc3NlcnRpb24gPSBzaWduYXR1cmVBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBzaWduYXR1cmVBc3NlcnRpb247XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrUG9pbnRGcm9tSlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJTaWduYXR1cmVBc3NlcnRpb24iLCJBc3NlcnRpb24iLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0ZXJtcyIsInJlZmVyZW5jZSIsImdldFRlcm1zIiwiZ2V0UmVmZXJlbmNlIiwiZ2V0U2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSIsImdldE5vZGUiLCJzaWduYXR1cmVBc3NlcnRpb25Ob2RlIiwidmFsaWRhdGUiLCJzdGF0ZSIsImNvbnRpbnVhdGlvbiIsInZhbGlkYXRlcyIsInNpZ25hdHVyZUFzc2VydGlvblN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwiYXNzZXJ0aW9uIiwiZmluZEFzc2VydGlvbiIsInNpZ25hdHVyZUFzc2VydGlvbiIsImRlYnVnIiwidmFsaWRhdGVUZXJtcyIsImJpbmQiLCJ2YWxpZGF0ZVJlZmVyZW5jZSIsImFsbCIsImFkZEFzc2VydGlvbiIsInZhbGlkYXRlVGVybSIsInRlcm0iLCJ0ZXJtVmFsaWRhdGVzIiwidGVybVN0cmluZyIsInB1c2giLCJ0ZXJtc1ZhbGlkYXRlIiwiZXZlcnkiLCJyZWZlcmVuY2VWYWxpZGF0ZXMiLCJhc2lvbVByZXNlbnQiLCJpc0F4aW9tUHJlc2VudEJ5UmVmZXJlbmNlIiwidW5pZnlDbGFpbSIsImNsYWltIiwiY2xhaW1VbmlmaWVzIiwiY2xhaW1TdHJpbmciLCJyZWNvbmNpbGUiLCJheGlvbSIsImZpbmRBeGlvbUJ5UmVmZXJlbmNlIiwidW5pZnlTaWduYXR1cmUiLCJzaWduYXR1cmUiLCJ1bmlmeVN0ZXBBbmRGYWN0T3JTdWJwcm9vZnMiLCJzdGVwIiwiZmFjdE9yU3VicHJvb2ZzIiwic3RlcEFuZEZhY3RPclN1YnByb29mc1VuaWZ5IiwidW5pZnlTaWduYXR1cmVBc3NlcnRpb24iLCJzaWduYXR1cmVBc3NlcnRpb25VbmlmaWVzIiwibmFtZSIsImZyb21KU09OIiwianNvbiIsImluc3RhbnRpYXRlIiwiZGVmaW5lZEFzc2VydGlvbk5vZGUiLCJpbnN0YW50aWF0ZVNpZ25hdHVyZUFzc2VydGlvbiIsInRlcm1zRnJvbVNpZ25hdHVyZUFzc2VydGlvbk5vZGUiLCJyZWZlcmVuY2VGcm9tU2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSIsImZyb21TdGVwIiwic3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJzaWduYXR1cmVBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZSIsImZyb21TdGF0ZW1lbnQiLCJzdGF0ZW1lbnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBQTs7O2dDQVpvQztrRUFFZDswQkFFQzs4QkFDSTt5QkFDWTs2QkFDTzt5QkFDNEU7Ozs7OztBQUUxSCxNQUFNLEVBQUVBLGtCQUFrQixFQUFFLEdBQUdDLG1DQUFtQjtNQUVsRCxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLDJCQUEyQkMsa0JBQVM7SUFDOUQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLEVBQUVDLFNBQVMsQ0FBRTtRQUMvRCxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNGLEtBQUs7SUFDbkI7SUFFQUcsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRixTQUFTO0lBQ3ZCO0lBRUFHLDRCQUE0QjtRQUMxQixNQUFNTixPQUFPLElBQUksQ0FBQ08sT0FBTyxJQUNuQkMs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
|
|
@@ -60,20 +60,43 @@ const _default = (0, _elements.define)(class Axiom extends _claim.default {
|
|
|
60
60
|
return continuation(signatureVerifies);
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
63
|
+
unifyClaim(claim, context) {
|
|
64
|
+
debugger;
|
|
65
|
+
let claimUnifies = false;
|
|
66
|
+
const axiomString = this.getString(), claimString = claim.getString();
|
|
67
|
+
context.trace(`Unifying the '${claimString}' claim with the '${axiomString}' axiom...`);
|
|
68
|
+
const deduction = claim.getDeduction(), deductionUnifies = this.unifyDeduction(deduction, context);
|
|
69
|
+
if (deductionUnifies) {
|
|
70
|
+
const hypothesesDischarges = claim.dischargeHypotheses(context);
|
|
71
|
+
if (hypothesesDischarges) {
|
|
72
|
+
const suppositions = claim.getSuppositions(), suppositionsUnify = this.unifySuppositions(suppositions, context);
|
|
73
|
+
if (suppositionsUnify) {
|
|
74
|
+
claimUnifies = true;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (claimUnifies) {
|
|
79
|
+
context.debug(`...unified the '${claimString}' claim with the '${axiomString}' axiom.`);
|
|
73
80
|
}
|
|
74
|
-
return
|
|
81
|
+
return claimUnifies;
|
|
82
|
+
}
|
|
83
|
+
unifySignatureAssertion(signatureAssertion, context, continuation) {
|
|
84
|
+
let signatureAssertionUnifies = false;
|
|
85
|
+
const axiomString = this.getString(), signatureAssertionString = signatureAssertion.getString();
|
|
86
|
+
context.trace(`Unifying the '${signatureAssertionString}' signature assertion with the '${axiomString}' axiom...`);
|
|
87
|
+
const terms = signatureAssertion.getTerms(), signature = this.getSignature();
|
|
88
|
+
return signature.unifyTerms(terms, context, (termsUnify)=>{
|
|
89
|
+
if (termsUnify) {
|
|
90
|
+
signatureAssertionUnifies = true;
|
|
91
|
+
}
|
|
92
|
+
if (signatureAssertionUnifies) {
|
|
93
|
+
context.debug(`...unified the '${signatureAssertionString}' signature assertion with the '${axiomString}' axiom.`);
|
|
94
|
+
}
|
|
95
|
+
return continuation(signatureAssertionUnifies);
|
|
96
|
+
});
|
|
75
97
|
}
|
|
76
98
|
unifyDeduction(deduction, context) {
|
|
99
|
+
debugger;
|
|
77
100
|
let deductionUnifies;
|
|
78
101
|
const axiomString = this.getString(), generalDeduction = this.deduction, specificDeduction = deduction, generalDeductionString = generalDeduction.getString(), specificDeductionString = specificDeduction.getString();
|
|
79
102
|
context.trace(`Unifying the '${specificDeductionString}' deduction with the '${axiomString}' axiom's '${generalDeductionString}' deduction...`);
|
|
@@ -96,6 +119,7 @@ const _default = (0, _elements.define)(class Axiom extends _claim.default {
|
|
|
96
119
|
return deductionUnifies;
|
|
97
120
|
}
|
|
98
121
|
unifySupposition(supposition, index, context) {
|
|
122
|
+
debugger;
|
|
99
123
|
let suppositionUnifies = false;
|
|
100
124
|
const specificSupposition = supposition; ///
|
|
101
125
|
supposition = this.getSupposition(index);
|
|
@@ -120,6 +144,7 @@ const _default = (0, _elements.define)(class Axiom extends _claim.default {
|
|
|
120
144
|
return suppositionUnifies;
|
|
121
145
|
}
|
|
122
146
|
unifySuppositions(suppositions, context) {
|
|
147
|
+
debugger;
|
|
123
148
|
let suppositionsUnify;
|
|
124
149
|
const specificSuppositions = suppositions; ///
|
|
125
150
|
suppositions = this.getSuppositions();
|
|
@@ -132,29 +157,10 @@ const _default = (0, _elements.define)(class Axiom extends _claim.default {
|
|
|
132
157
|
});
|
|
133
158
|
return suppositionsUnify;
|
|
134
159
|
}
|
|
135
|
-
unifyClaim(claim, context) {
|
|
136
|
-
let claimUnifies = false;
|
|
137
|
-
const axiomString = this.getString(), claimString = claim.getString();
|
|
138
|
-
context.trace(`Unifying the '${claimString}' claim with the '${axiomString}' axiom...`);
|
|
139
|
-
const deduction = claim.getDeduction(), deductionUnifies = this.unifyDeduction(deduction, context);
|
|
140
|
-
if (deductionUnifies) {
|
|
141
|
-
const hypothesesDischarges = claim.dischargeHypotheses(context);
|
|
142
|
-
if (hypothesesDischarges) {
|
|
143
|
-
const suppositions = claim.getSuppositions(), suppositionsUnify = this.unifySuppositions(suppositions, context);
|
|
144
|
-
if (suppositionsUnify) {
|
|
145
|
-
claimUnifies = true;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
if (claimUnifies) {
|
|
150
|
-
context.debug(`...unified the '${claimString}' claim with the '${axiomString}' axiom.`);
|
|
151
|
-
}
|
|
152
|
-
return claimUnifies;
|
|
153
|
-
}
|
|
154
160
|
static name = "Axiom";
|
|
155
161
|
static fromJSON(json, context) {
|
|
156
162
|
return _claim.default.fromJSON(Axiom, json, context);
|
|
157
163
|
}
|
|
158
164
|
});
|
|
159
165
|
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2NsYWltL2F4aW9tLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBDbGFpbSBmcm9tIFwiLi4vY2xhaW1cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyByZWNvbmNpbGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyBicmVha2FibGUgfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXMsXG4gICAgICB7IGFzeW5jaHJvbm91c01hdGNoIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBBeGlvbSBleHRlbmRzIENsYWltIHtcbiAgZ2V0QXhpb21Ob2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBheGlvbU5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiBheGlvbU5vZGU7XG4gIH1cblxuICBpc1NhdGlzZmlhYmxlKCkge1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IHRoaXMuZ2V0U2lnbmF0dXJlKCksXG4gICAgICAgICAgc2F0aXNmaWFibGUgPSAoc2lnbmF0dXJlICE9PSBudWxsKTtcblxuICAgIHJldHVybiBzYXRpc2ZpYWJsZTtcbiAgfVxuXG4gIHZlcmlmeSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgYXhpb21TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7YXhpb21TdHJpbmd9JyBheGlvbS4uLmApO1xuXG4gICAgdGhpcy52ZXJpZnlTaWduYXR1cmUoY29udGV4dCwgKHNpZ25hdHVyZVZlcmlmaWVzKSA9PiB7XG4gICAgICBpZiAoIXNpZ25hdHVyZVZlcmlmaWVzKSB7XG4gICAgICAgIGNvbnN0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2ZXJpZmllcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLnZlcmlmeUV4KGNvbnRleHQsICh2ZXJpZmllcykgPT4ge1xuICAgICAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgICAgICBjb25zdCBheGlvbSA9IHRoaXM7IC8vL1xuXG4gICAgICAgICAgY29udGV4dC5hZGRBeGlvbShheGlvbSk7XG5cbiAgICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7YXhpb21TdHJpbmd9JyBheGlvbS5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250aW51YXRpb24odmVyaWZpZXMsIGNvbnRleHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHZlcmlmeVNpZ25hdHVyZShjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBzYXRpc2ZpYWJsZSA9IHRoaXMuaXNTYXRpc2ZpYWJsZSgpO1xuXG4gICAgaWYgKCFzYXRpc2ZpYWJsZSkge1xuICAgICAgY29uc3Qgc2lnbmF0dXJlVmVyaWZpZXMgPSB0cnVlOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzaWduYXR1cmVWZXJpZmllcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2lnbmF0dXJlID0gdGhpcy5nZXRTaWduYXR1cmUoKSxcbiAgICAgICAgICBheGlvbVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtheGlvbVN0cmluZ30nIGF4aW9tJ3Mgc2lnbmF0dXJlLi4uYCk7XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlLnZlcmlmeShjb250ZXh0LCAoc2lnbmF0dXJlVmVyaWZpZXMpID0+IHtcbiAgICAgIGlmIChzaWduYXR1cmVWZXJpZmllcykge1xuICAgICAgICBjb250ZXh0LnRyYWNlKGAuLi52ZXJpZmllZCB0aGUgJyR7YXhpb21TdHJpbmd9JyBheGlvbSdzIHNpZ25hdHVyZS5gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzaWduYXR1cmVWZXJpZmllcyk7XG4gICAgfSk7XG4gIH1cblxuICB1bmlmeVNpZ25hdHVyZShzaWduYXR1cmUsIGNvbnRleHQpIHtcbiAgICBsZXQgc2lnbmF0dXJlVW5pZmllcztcblxuICAgIGNvbnN0IGF4aW9tU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgLy8vXG4gICAgICAgICAgc2lnbmF0dXJlU3RyaW5nID0gc2lnbmF0dXJlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3NpZ25hdHVyZVN0cmluZ30nIHNpZ25hdHVyZSB3aXRoIHRoZSAnJHtheGlvbVN0cmluZ30nIGF4aW9tLi4uYCk7XG5cbiAgICBjb25zdCBzcGVjaWZpY1NpZ25hdHVyZSA9IHNpZ25hdHVyZTsgIC8vL1xuXG4gICAgc2lnbmF0dXJlID0gdGhpcy5nZXRTaWduYXR1cmUoKTtcblxuICAgIGNvbnN0IGdlbmVyYWxTaWduYXR1cmUgPSBzaWduYXR1cmU7IC8vL1xuXG4gICAgc2lnbmF0dXJlVW5pZmllcyA9IGdlbmVyYWxTaWduYXR1cmUudW5pZnlTaWduYXR1cmUoc3BlY2lmaWNTaWduYXR1cmUsIGNvbnRleHQpO1xuXG4gICAgaWYgKHNpZ25hdHVyZVVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3NpZ25hdHVyZVN0cmluZ30nIHNpZ25hdHVyZSB3aXRoIHRoZSAnJHtheGlvbVN0cmluZ30nIGF4aW9tLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduYXR1cmVVbmlmaWVzO1xuICB9XG5cbiAgdW5pZnlEZWR1Y3Rpb24oZGVkdWN0aW9uLCBjb250ZXh0KSB7XG4gICAgbGV0IGRlZHVjdGlvblVuaWZpZXM7XG5cbiAgICBjb25zdCBheGlvbVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksIC8vL1xuICAgICAgICAgIGdlbmVyYWxEZWR1Y3Rpb24gPSB0aGlzLmRlZHVjdGlvbiwgIC8vL1xuICAgICAgICAgIHNwZWNpZmljRGVkdWN0aW9uID0gZGVkdWN0aW9uLCAgLy8vXG4gICAgICAgICAgZ2VuZXJhbERlZHVjdGlvblN0cmluZyA9IGdlbmVyYWxEZWR1Y3Rpb24uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc3BlY2lmaWNEZWR1Y3Rpb25TdHJpbmcgPSBzcGVjaWZpY0RlZHVjdGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzcGVjaWZpY0RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbiB3aXRoIHRoZSAnJHtheGlvbVN0cmluZ30nIGF4aW9tJ3MgJyR7Z2VuZXJhbERlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbi4uLmApO1xuXG4gICAgY29uc3QgZ2VuZXJhbERlZHVjdGlvbkNvbnRleHQgPSBnZW5lcmFsRGVkdWN0aW9uLmdldENvbnRleHQoKSxcbiAgICAgICAgICBzcGVjaWZpY0RlZHVjdGlvbkNvbnRleHQgPSBzcGVjaWZpY0RlZHVjdGlvbi5nZXRDb250ZXh0KCksXG4gICAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBnZW5lcmFsRGVkdWN0aW9uQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gc3BlY2lmaWNEZWR1Y3Rpb25Db250ZXh0OyAvLy9cblxuICAgIGRlYnVnZ2VyXG5cbiAgICByZXR1cm4gcmVjb25jaWxlKChzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgIGxldCBzdGF0ZW1lbnQ7XG5cbiAgICAgIHN0YXRlbWVudCA9IHNwZWNpZmljRGVkdWN0aW9uLmdldFN0YXRlbWVudCgpO1xuXG4gICAgICBjb25zdCBzcGVjaWZpY1N0YXRlbWVudCA9IHN0YXRlbWVudDsgIC8vL1xuXG4gICAgICBzdGF0ZW1lbnQgPSBnZW5lcmFsRGVkdWN0aW9uLmdldFN0YXRlbWVudCgpO1xuXG4gICAgICBjb25zdCBnZW5lcmFsU3RhdGVtZW50ID0gc3RhdGVtZW50LCAvLy9cbiAgICAgICAgICAgIHN0YXRlbWVudFVuaWZpZXMgPSBnZW5lcmFsU3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KHNwZWNpZmljU3RhdGVtZW50LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgaWYgKHN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgICAgc3BlY2lmaWNDb250ZXh0LmNvbW1pdChjb250ZXh0KTtcblxuICAgICAgICBkZWR1Y3Rpb25VbmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgaWYgKGRlZHVjdGlvblVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3NwZWNpZmljRGVkdWN0aW9uU3RyaW5nfScgZGVkdWN0aW9uIHdpdGggdGhlICcke2F4aW9tU3RyaW5nfScgYXhpb20ncyAnJHtnZW5lcmFsRGVkdWN0aW9uU3RyaW5nfScgZGVkdWN0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiBkZWR1Y3Rpb25VbmlmaWVzO1xuICB9XG5cbiAgdW5pZnlTdXBwb3NpdGlvbihzdXBwb3NpdGlvbiwgaW5kZXgsIGNvbnRleHQpIHtcbiAgICBsZXQgc3VwcG9zaXRpb25VbmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBzcGVjaWZpY1N1cHBvc2l0aW9uID0gc3VwcG9zaXRpb247ICAvLy9cblxuICAgIHN1cHBvc2l0aW9uID0gdGhpcy5nZXRTdXBwb3NpdGlvbihpbmRleCk7XG5cbiAgICBjb25zdCBheGlvbVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksIC8vL1xuICAgICAgICAgIGdlbmVyYWxTdXBwb3NpdGlvbiA9IHN1cHBvc2l0aW9uLCAgLy8vXG4gICAgICAgICAgZ2VuZXJhbFN1cHBvc2l0aW9uU3RyaW5nID0gZ2VuZXJhbFN1cHBvc2l0aW9uLmdldFN0cmluZygpLFxuICAgICAgICAgIHNwZWNpZmljU3VwcG9zaXRpb25TdHJpbmcgPSBzcGVjaWZpY1N1cHBvc2l0aW9uLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3NwZWNpZmljU3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbiB3aXRoIHRoZSAnJHtheGlvbVN0cmluZ30nIGF4aW9tJ3MgJyR7Z2VuZXJhbFN1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24uLi5gKTtcblxuICAgIGNvbnN0IGdlbmVyYWxTdXBwb3NpdGlvbkNvbnRleHQgPSBnZW5lcmFsU3VwcG9zaXRpb24uZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHNwZWNpZmljU3VwcG9zaXRpb25Db250ZXh0ID0gc3BlY2lmaWNTdXBwb3NpdGlvbi5nZXRDb250ZXh0KCksXG4gICAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBnZW5lcmFsU3VwcG9zaXRpb25Db250ZXh0LCAvLy9cbiAgICAgICAgICBzcGVjaWZpY0NvbnRleHQgPSBzcGVjaWZpY1N1cHBvc2l0aW9uQ29udGV4dDsgLy8vXG5cbiAgICBkZWJ1Z2dlclxuXG4gICAgcmV0dXJuIHJlY29uY2lsZSgoc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICBsZXQgc3RhdGVtZW50O1xuXG4gICAgICBzdGF0ZW1lbnQgPSBzcGVjaWZpY1N1cHBvc2l0aW9uLmdldFN0YXRlbWVudCgpO1xuXG4gICAgICBjb25zdCBzcGVjaWZpY1N0YXRlbWVudCA9IHN0YXRlbWVudDsgIC8vL1xuXG4gICAgICBzdGF0ZW1lbnQgPSBnZW5lcmFsU3VwcG9zaXRpb24uZ2V0U3RhdGVtZW50KCk7XG5cbiAgICAgIGNvbnN0IGdlbmVyYWxTdGF0ZW1lbnQgPSBzdGF0ZW1lbnQsIC8vL1xuICAgICAgICAgICAgc3RhdGVtZW50VW5pZmllcyA9IGdlbmVyYWxTdGF0ZW1lbnQudW5pZnlTdGF0ZW1lbnQoc3BlY2lmaWNTdGF0ZW1lbnQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VW5pZmllcykge1xuICAgICAgICBzcGVjaWZpY0NvbnRleHQuY29tbWl0KGNvbnRleHQpO1xuXG4gICAgICAgIHN1cHBvc2l0aW9uVW5pZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfSwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChzdXBwb3NpdGlvblVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3NwZWNpZmljU3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbiB3aXRoIHRoZSAnJHtheGlvbVN0cmluZ30nIGF4aW9tJ3MgJyR7Z2VuZXJhbFN1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24uLi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwcG9zaXRpb25VbmlmaWVzO1xuICB9XG5cbiAgdW5pZnlTdXBwb3NpdGlvbnMoc3VwcG9zaXRpb25zLCBjb250ZXh0KSB7XG4gICAgbGV0IHN1cHBvc2l0aW9uc1VuaWZ5O1xuXG4gICAgY29uc3Qgc3BlY2lmaWNTdXBwb3NpdGlvbnMgPSBzdXBwb3NpdGlvbnM7ICAvLy9cblxuICAgIHN1cHBvc2l0aW9ucyA9IHRoaXMuZ2V0U3VwcG9zaXRpb25zKCk7XG5cbiAgICBjb25zdCBnZW5lcmFsU3VwcG9zaXRpb25zID0gc3VwcG9zaXRpb25zOyAvLy9cblxuICAgIHN1cHBvc2l0aW9uc1VuaWZ5ID0gYXN5bmNocm9ub3VzTWF0Y2goZ2VuZXJhbFN1cHBvc2l0aW9ucywgc3BlY2lmaWNTdXBwb3NpdGlvbnMsIChnZW5lcmFsU3VwcG9zaXRpb24sIHNwZWNpZmljU3VwcG9zaXRpb24sIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBzdXBwb3NpdGlvbiA9IHNwZWNpZmljU3VwcG9zaXRpb24sICAvLy9cbiAgICAgICAgICAgIHN1cHBvc2l0aW9uVW5pZmllcyA9IHRoaXMudW5pZnlTdXBwb3NpdGlvbihzdXBwb3NpdGlvbiwgaW5kZXgsIGNvbnRleHQpO1xuXG4gICAgICBpZiAoc3VwcG9zaXRpb25VbmlmaWVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN1cHBvc2l0aW9uc1VuaWZ5O1xuICB9XG5cbiAgdW5pZnlDbGFpbShjbGFpbSwgY29udGV4dCkge1xuICAgIGxldCBjbGFpbVVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGF4aW9tU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgLy8vXG4gICAgICAgICAgY2xhaW1TdHJpbmcgPSBjbGFpbS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtjbGFpbVN0cmluZ30nIGNsYWltIHdpdGggdGhlICcke2F4aW9tU3RyaW5nfScgYXhpb20uLi5gKTtcblxuICAgIGNvbnN0IGRlZHVjdGlvbiA9IGNsYWltLmdldERlZHVjdGlvbigpLFxuICAgICAgICAgIGRlZHVjdGlvblVuaWZpZXMgPSB0aGlzLnVuaWZ5RGVkdWN0aW9uKGRlZHVjdGlvbiwgY29udGV4dCk7XG5cbiAgICBpZiAoZGVkdWN0aW9uVW5pZmllcykge1xuICAgICAgY29uc3QgaHlwb3RoZXNlc0Rpc2NoYXJnZXMgPSBjbGFpbS5kaXNjaGFyZ2VIeXBvdGhlc2VzKGNvbnRleHQpO1xuXG4gICAgICBpZiAoaHlwb3RoZXNlc0Rpc2NoYXJnZXMpIHtcbiAgICAgICAgY29uc3Qgc3VwcG9zaXRpb25zID0gY2xhaW0uZ2V0U3VwcG9zaXRpb25zKCksXG4gICAgICAgICAgICAgIHN1cHBvc2l0aW9uc1VuaWZ5ID0gdGhpcy51bmlmeVN1cHBvc2l0aW9ucyhzdXBwb3NpdGlvbnMsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChzdXBwb3NpdGlvbnNVbmlmeSkge1xuICAgICAgICAgIGNsYWltVW5pZmllcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2xhaW1VbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtjbGFpbVN0cmluZ30nIGNsYWltIHdpdGggdGhlICcke2F4aW9tU3RyaW5nfScgYXhpb20uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsYWltVW5pZmllcztcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJBeGlvbVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7IHJldHVybiBDbGFpbS5mcm9tSlNPTihBeGlvbSwganNvbiwgY29udGV4dCk7IH1cbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJhc3luY2hyb25vdXNNYXRjaCIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIkF4aW9tIiwiQ2xhaW0iLCJnZXRBeGlvbU5vZGUiLCJub2RlIiwiZ2V0Tm9kZSIsImF4aW9tTm9kZSIsImlzU2F0aXNmaWFibGUiLCJzaWduYXR1cmUiLCJnZXRTaWduYXR1cmUiLCJzYXRpc2ZpYWJsZSIsInZlcmlmeSIsImNvbnRleHQiLCJjb250aW51YXRpb24iLCJheGlvbVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmVyaWZ5U2lnbmF0dXJlIiwic2lnbmF0dXJlVmVyaWZpZXMiLCJ2ZXJpZmllcyIsInZlcmlmeUV4IiwiYXhpb20iLCJhZGRBeGlvbSIsImRlYnVnIiwidW5pZnlTaWduYXR1cmUiLCJzaWduYXR1cmVVbmlmaWVzIiwic2lnbmF0dXJlU3RyaW5nIiwic3BlY2lmaWNTaWduYXR1cmUiLCJnZW5lcmFsU2lnbmF0dXJlIiwidW5pZnlEZWR1Y3Rpb24iLCJkZWR1Y3Rpb24iLCJkZWR1Y3Rpb25VbmlmaWVzIiwiZ2VuZXJhbERlZHVjdGlvbiIsInNwZWNpZmljRGVkdWN0aW9uIiwiZ2VuZXJhbERlZHVjdGlvblN0cmluZyIsInNwZWNpZmljRGVkdWN0aW9uU3RyaW5nIiwiZ2VuZXJhbERlZHVjdGlvbkNvbnRleHQiLCJnZXRDb250ZXh0Iiwic3BlY2lmaWNEZWR1Y3Rpb25Db250ZXh0IiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpY0NvbnRleHQiLCJyZWNvbmNpbGUiLCJzdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnQiLCJzcGVjaWZpY1N0YXRlbWVudCIsImdlbmVyYWxTdGF0ZW1lbnQiLCJzdGF0ZW1lbnRVbmlmaWVzIiwidW5pZnlTdGF0ZW1lbnQiLCJjb21taXQiLCJ1bmlmeVN1cHBvc2l0aW9uIiwic3VwcG9zaXRpb24iLCJpbmRleCIsInN1cHBvc2l0aW9uVW5pZmllcyIsInNwZWNpZmljU3VwcG9zaXRpb24iLCJnZXRTdXBwb3NpdGlvbiIsImdlbmVyYWxTdXBwb3NpdGlvbiIsImdlbmVyYWxTdXBwb3NpdGlvblN0cmluZyIsInNwZWNpZmljU3VwcG9zaXRpb25TdHJpbmciLCJnZW5lcmFsU3VwcG9zaXRpb25Db250ZXh0Iiwic3BlY2lmaWNTdXBwb3NpdGlvbkNvbnRleHQiLCJ1bmlmeVN1cHBvc2l0aW9ucyIsInN1cHBvc2l0aW9ucyIsInN1cHBvc2l0aW9uc1VuaWZ5Iiwic3BlY2lmaWNTdXBwb3NpdGlvbnMiLCJnZXRTdXBwb3NpdGlvbnMiLCJnZW5lcmFsU3VwcG9zaXRpb25zIiwidW5pZnlDbGFpbSIsImNsYWltIiwiY2xhaW1VbmlmaWVzIiwiY2xhaW1TdHJpbmciLCJnZXREZWR1Y3Rpb24iLCJoeXBvdGhlc2VzRGlzY2hhcmdlcyIsImRpc2NoYXJnZUh5cG90aGVzZXMiLCJuYW1lIiwiZnJvbUpTT04iLCJqc29uIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQUE7OztnQ0FWMkQ7OERBRXpDOzBCQUVLO3lCQUNHOzs7Ozs7QUFFMUIsTUFBTSxFQUFFQSxTQUFTLEVBQUUsR0FBR0MsbUNBQW1CLEVBQ25DLEVBQUVDLGlCQUFpQixFQUFFLEdBQUdDLHFDQUFxQjtNQUVuRCxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGNBQWNDLGNBQUs7SUFDN0NDLGVBQWU7UUFDYixNQUFNQyxPQUFPLElBQUksQ0FBQ0MsT0FBTyxJQUNuQkMsWUFBWUYsTUFBTSxHQUFHO1FBRTNCLE9BQU9FO0lBQ1Q7SUFFQUMsZ0JBQWdCO1FBQ2QsTUFBTUMsWUFBWSxJQUFJLENBQUNDLFlBQVksSUFDN0JDLGNBQWVGLGNBQWM7UUFFbkMsT0FBT0U7SUFDVDtJQUVBQyxTQUFTZixVQUFVLFNBQVVnQixPQUFPLEVBQUVDLFlBQVk7UUFDaEQsTUFBTUMsY0FBYyxJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRXpDSCxRQUFRSSxLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVGLFlBQVksVUFBVSxDQUFDO1FBRXZELElBQUksQ0FBQ0csZUFBZSxDQUFDTCxTQUFTLENBQUNNO1lBQzdCLElBQUksQ0FBQ0EsbUJBQW1CO2dCQUN0QixNQUFNQyxXQUFXO2dCQUVqQixPQUFPTixhQUFhTTtZQUN0QjtZQUVBLE9BQU8sSUFBSSxDQUFDQyxRQUFRLENBQUNSLFNBQVMsQ0FBQ087Z0JBQzdCLElBQUlBLFVBQVU7b0JBQ1osTUFBTUUsUUFBUSxJQUFJLEVBQUUsR0FBRztvQkFFdkJULFFBQVFVLFFBQVEsQ0FBQ0Q7b0JBRWpCVCxRQUFRVyxLQUFLLENBQUMsQ0FBQyxpQkFBaUIsRUFBRVQsWUFBWSxRQUFRLENBQUM7Z0JBQ3pEO2dCQUVBLE9BQU9ELGFBQWFNLFVBQVVQO1lBQ2hDO1FBQ0Y7SUFDRixHQUFHO0lBRUhLLGdCQUFnQkwsT0FBTyxFQUFFQyxZQUFZLEVBQUU7UUFDckMsTUFBTUgsY0FBYyxJQUFJLENBQUNILGFBQWE7UUFFdEMsSUFBSSxDQUFDRyxhQUFhO1lBQ2hCLE1BQU1RLG9CQUFvQixNQUFNLEdBQUc7WUFFbkMsT0FBT0wsYUFBYUs7UUFDdEI7UUFFQSxNQUFNVixZQUFZLElBQUksQ0FBQ0MsWUFBWSxJQUM3QkssY0FBYyxJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRXpDSCxRQUFRSSxLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVGLFlBQVksc0JBQXNCLENBQUM7UUFFbkUsT0FBT04sVUFBVUcsTUFBTSxDQUFDQyxTQUFTLENBQUNNO1lBQ2hDLElBQUlBLG1CQUFtQjtnQkFDckJOLFFBQVFJLEtBQUssQ0FBQyxDQUFDLGlCQUFpQixFQUFFRixZQUFZLG9CQUFvQixDQUFDO1lBQ3JFO1lBRUEsT0FBT0QsYUFBYUs7UUFDdEI7SUFDRjtJQUVBTSxlQUFlaEIsU0FBUyxFQUFFSSxPQUFPLEVBQUU7UUFDakMsSUFBSWE7UUFFSixNQUFNWCxjQUFjLElBQUksQ0FBQ0MsU0FBUyxJQUM1Qlcsa0JBQWtCbEIsVUFBVU8sU0FBUztRQUUzQ0gsUUFBUUksS0FBSyxDQUFDLENBQUMsY0FBYyxFQUFFVSxnQkFBZ0Isc0JBQXNCLEVBQUVaLFlBQVksVUFBVSxDQUFDO1FBRTlGLE1BQU1hLG9CQUFvQm5CLFdBQVksR0FBRztRQUV6Q0EsWUFBWSxJQUFJLENBQUNDLFlBQVk7UUFFN0IsTUFBTW1CLG1CQUFtQnBCLFdBQVcsR0FBRztRQUV2Q2lCLG1CQUFtQkcsaUJBQWlCSixjQUFjLENBQUNHLG1CQUFtQmY7UUFFdEUsSUFBSWEsa0JBQWtCO1lBQ3BCYixRQUFRVyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUcsZ0JBQWdCLHNCQUFzQixFQUFFWixZQUFZLFFBQVEsQ0FBQztRQUNoRztRQUVBLE9BQU9XO0lBQ1Q7SUFFQUksZUFBZUMsU0FBUyxFQUFFbEIsT0FBTyxFQUFFO1FBQ2pDLElBQUltQjtRQUVKLE1BQU1qQixjQUFjLElBQUksQ0FBQ0MsU0FBUyxJQUM1QmlCLG1CQUFtQixJQUFJLENBQUNGLFNBQVMsRUFDakNHLG9CQUFvQkgsV0FDcEJJLHlCQUF5QkYsaUJBQWlCakIsU0FBUyxJQUNuRG9CLDBCQUEwQkYsa0JBQWtCbEIsU0FBUztRQUUzREgsUUFBUUksS0FBSyxDQUFDLENBQUMsY0FBYyxFQUFFbUIsd0JBQXdCLHNCQUFzQixFQUFFckIsWUFBWSxXQUFXLEVBQUVvQix1QkFBdUIsY0FBYyxDQUFDO1FBRTlJLE1BQU1FLDBCQUEwQkosaUJBQWlCSyxVQUFVLElBQ3JEQywyQkFBMkJMLGtCQUFrQkksVUFBVSxJQUN2REUsaUJBQWlCSCx5QkFDakJJLGtCQUFrQkYsMEJBQTBCLEdBQUc7UUFFckQsUUFBUTtRQUVSLE9BQU9HLElBQUFBLGtCQUFTLEVBQUMsQ0FBQ0Q7WUFDaEIsSUFBSUU7WUFFSkEsWUFBWVQsa0JBQWtCVSxZQUFZO1lBRTFDLE1BQU1DLG9CQUFvQkYsV0FBWSxHQUFHO1lBRXpDQSxZQUFZVixpQkFBaUJXLFlBQVk7WUFFekMsTUFBTUUsbUJBQW1CSCxXQUNuQkksbUJBQW1CRCxpQkFBaUJFLGNBQWMsQ0FBQ0gsbUJBQW1CTCxnQkFBZ0JDO1lBRTVGLElBQUlNLGtCQUFrQjtnQkFDcEJOLGdCQUFnQlEsTUFBTSxDQUFDcEM7Z0JBRXZCbUIsbUJBQW1CO1lBQ3JCO1FBQ0YsR0FBR1M7UUFFSCxJQUFJVCxrQkFBa0I7WUFDcEJuQixRQUFRVyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRVksd0JBQXdCLHNCQUFzQixFQUFFckIsWUFBWSxXQUFXLEVBQUVvQix1QkFBdUIsWUFBWSxDQUFDO1FBQ2hKO1FBRUEsT0FBT0g7SUFDVDtJQUVBa0IsaUJBQWlCQyxXQUFXLEVBQUVDLEtBQUssRUFBRXZDLE9BQU8sRUFBRTtRQUM1QyxJQUFJd0MscUJBQXFCO1FBRXpCLE1BQU1DLHNCQUFzQkgsYUFBYyxHQUFHO1FBRTdDQSxjQUFjLElBQUksQ0FBQ0ksY0FBYyxDQUFDSDtRQUVsQyxNQUFNckMsY0FBYyxJQUFJLENBQUNDLFNBQVMsSUFDNUJ3QyxxQkFBcUJMLGFBQ3JCTSwyQkFBMkJELG1CQUFtQnhDLFNBQVMsSUFDdkQwQyw0QkFBNEJKLG9CQUFvQnRDLFNBQVM7UUFFL0RILFFBQVFJLEtBQUssQ0FBQyxDQUFDLGNBQWMsRUFBRXlDLDBCQUEwQix3QkFBd0IsRUFBRTNDLFlBQVksV0FBVyxFQUFFMEMseUJBQXlCLGdCQUFnQixDQUFDO1FBRXRKLE1BQU1FLDRCQUE0QkgsbUJBQW1CbEIsVUFBVSxJQUN6RHNCLDZCQUE2Qk4sb0JBQW9CaEIsVUFBVSxJQUMzREUsaUJBQWlCbUIsMkJBQ2pCbEIsa0JBQWtCbUIsNEJBQTRCLEdBQUc7UUFFdkQsUUFBUTtRQUVSLE9BQU9sQixJQUFBQSxrQkFBUyxFQUFDLENBQUNEO1lBQ2hCLElBQUlFO1lBRUpBLFlBQVlXLG9CQUFvQlYsWUFBWTtZQUU1QyxNQUFNQyxvQkFBb0JGLFdBQVksR0FBRztZQUV6Q0EsWUFBWWEsbUJBQW1CWixZQUFZO1lBRTNDLE1BQU1FLG1CQUFtQkgsV0FDbkJJLG1CQUFtQkQsaUJBQWlCRSxjQUFjLENBQUNILG1CQUFtQkwsZ0JBQWdCQztZQUU1RixJQUFJTSxrQkFBa0I7Z0JBQ3BCTixnQkFBZ0JRLE1BQU0sQ0FBQ3BDO2dCQUV2QndDLHFCQUFxQjtZQUN2QjtRQUNGLEdBQUdaO1FBRUgsSUFBSVksb0JBQW9CO1lBQ3RCeEMsUUFBUVcsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVrQywwQkFBMEIsd0JBQXdCLEVBQUUzQyxZQUFZLFdBQVcsRUFBRTBDLHlCQUF5QixnQkFBZ0IsQ0FBQztRQUMxSjtRQUVBLE9BQU9KO0lBQ1Q7SUFFQVEsa0JBQWtCQyxZQUFZLEVBQUVqRCxPQUFPLEVBQUU7UUFDdkMsSUFBSWtEO1FBRUosTUFBTUMsdUJBQXVCRixjQUFlLEdBQUc7UUFFL0NBLGVBQWUsSUFBSSxDQUFDRyxlQUFlO1FBRW5DLE1BQU1DLHNCQUFzQkosY0FBYyxHQUFHO1FBRTdDQyxvQkFBb0JoRSxrQkFBa0JtRSxxQkFBcUJGLHNCQUFzQixDQUFDUixvQkFBb0JGLHFCQUFxQkY7WUFDekgsTUFBTUQsY0FBY0cscUJBQ2RELHFCQUFxQixJQUFJLENBQUNILGdCQUFnQixDQUFDQyxhQUFhQyxPQUFPdkM7WUFFckUsSUFBSXdDLG9CQUFvQjtnQkFDdEIsT0FBTztZQUNUO1FBQ0Y7UUFFQSxPQUFPVTtJQUNUO0lBRUFJLFdBQVdDLEtBQUssRUFBRXZELE9BQU8sRUFBRTtRQUN6QixJQUFJd0QsZUFBZTtRQUVuQixNQUFNdEQsY0FBYyxJQUFJLENBQUNDLFNBQVMsSUFDNUJzRCxjQUFjRixNQUFNcEQsU0FBUztRQUVuQ0gsUUFBUUksS0FBSyxDQUFDLENBQUMsY0FBYyxFQUFFcUQsWUFBWSxrQkFBa0IsRUFBRXZELFlBQVksVUFBVSxDQUFDO1FBRXRGLE1BQU1nQixZQUFZcUMsTUFBTUcsWUFBWSxJQUM5QnZDLG1CQUFtQixJQUFJLENBQUNGLGNBQWMsQ0FBQ0MsV0FBV2xCO1FBRXhELElBQUltQixrQkFBa0I7WUFDcEIsTUFBTXdDLHVCQUF1QkosTUFBTUssbUJBQW1CLENBQUM1RDtZQUV2RCxJQUFJMkQsc0JBQXNCO2dCQUN4QixNQUFNVixlQUFlTSxNQUFNSCxlQUFlLElBQ3BDRixvQkFBb0IsSUFBSSxDQUFDRixpQkFBaUIsQ0FBQ0MsY0FBY2pEO2dCQUUvRCxJQUFJa0QsbUJBQW1CO29CQUNyQk0sZUFBZTtnQkFDakI7WUFDRjtRQUNGO1FBRUEsSUFBSUEsY0FBYztZQUNoQnhELFFBQVFXLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFOEMsWUFBWSxrQkFBa0IsRUFBRXZELFlBQVksUUFBUSxDQUFDO1FBQ3hGO1FBRUEsT0FBT3NEO0lBQ1Q7SUFFQSxPQUFPSyxPQUFPLFFBQVE7SUFFdEIsT0FBT0MsU0FBU0MsSUFBSSxFQUFFL0QsT0FBTyxFQUFFO1FBQUUsT0FBT1YsY0FBSyxDQUFDd0UsUUFBUSxDQUFDekUsT0FBTzBFLE1BQU0vRDtJQUFVO0FBQ2hGIn0=
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2NsYWltL2F4aW9tLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBDbGFpbSBmcm9tIFwiLi4vY2xhaW1cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyByZWNvbmNpbGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyBicmVha2FibGUgfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXMsXG4gICAgICB7IGFzeW5jaHJvbm91c01hdGNoIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBBeGlvbSBleHRlbmRzIENsYWltIHtcbiAgZ2V0QXhpb21Ob2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBheGlvbU5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiBheGlvbU5vZGU7XG4gIH1cblxuICBpc1NhdGlzZmlhYmxlKCkge1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IHRoaXMuZ2V0U2lnbmF0dXJlKCksXG4gICAgICAgICAgc2F0aXNmaWFibGUgPSAoc2lnbmF0dXJlICE9PSBudWxsKTtcblxuICAgIHJldHVybiBzYXRpc2ZpYWJsZTtcbiAgfVxuXG4gIHZlcmlmeSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgYXhpb21TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7YXhpb21TdHJpbmd9JyBheGlvbS4uLmApO1xuXG4gICAgdGhpcy52ZXJpZnlTaWduYXR1cmUoY29udGV4dCwgKHNpZ25hdHVyZVZlcmlmaWVzKSA9PiB7XG4gICAgICBpZiAoIXNpZ25hdHVyZVZlcmlmaWVzKSB7XG4gICAgICAgIGNvbnN0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2ZXJpZmllcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLnZlcmlmeUV4KGNvbnRleHQsICh2ZXJpZmllcykgPT4ge1xuICAgICAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgICAgICBjb25zdCBheGlvbSA9IHRoaXM7IC8vL1xuXG4gICAgICAgICAgY29udGV4dC5hZGRBeGlvbShheGlvbSk7XG5cbiAgICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7YXhpb21TdHJpbmd9JyBheGlvbS5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250aW51YXRpb24odmVyaWZpZXMsIGNvbnRleHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHZlcmlmeVNpZ25hdHVyZShjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBzYXRpc2ZpYWJsZSA9IHRoaXMuaXNTYXRpc2ZpYWJsZSgpO1xuXG4gICAgaWYgKCFzYXRpc2ZpYWJsZSkge1xuICAgICAgY29uc3Qgc2lnbmF0dXJlVmVyaWZpZXMgPSB0cnVlOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzaWduYXR1cmVWZXJpZmllcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2lnbmF0dXJlID0gdGhpcy5nZXRTaWduYXR1cmUoKSxcbiAgICAgICAgICBheGlvbVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtheGlvbVN0cmluZ30nIGF4aW9tJ3Mgc2lnbmF0dXJlLi4uYCk7XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlLnZlcmlmeShjb250ZXh0LCAoc2lnbmF0dXJlVmVyaWZpZXMpID0+IHtcbiAgICAgIGlmIChzaWduYXR1cmVWZXJpZmllcykge1xuICAgICAgICBjb250ZXh0LnRyYWNlKGAuLi52ZXJpZmllZCB0aGUgJyR7YXhpb21TdHJpbmd9JyBheGlvbSdzIHNpZ25hdHVyZS5gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzaWduYXR1cmVWZXJpZmllcyk7XG4gICAgfSk7XG4gIH1cblxuICB1bmlmeUNsYWltKGNsYWltLCBjb250ZXh0KSB7XG4gICAgZGVidWdnZXJcblxuICAgIGxldCBjbGFpbVVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGF4aW9tU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgLy8vXG4gICAgICAgICAgY2xhaW1TdHJpbmcgPSBjbGFpbS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtjbGFpbVN0cmluZ30nIGNsYWltIHdpdGggdGhlICcke2F4aW9tU3RyaW5nfScgYXhpb20uLi5gKTtcblxuICAgIGNvbnN0IGRlZHVjdGlvbiA9IGNsYWltLmdldERlZHVjdGlvbigpLFxuICAgICAgICAgIGRlZHVjdGlvblVuaWZpZXMgPSB0aGlzLnVuaWZ5RGVkdWN0aW9uKGRlZHVjdGlvbiwgY29udGV4dCk7XG5cbiAgICBpZiAoZGVkdWN0aW9uVW5pZmllcykge1xuICAgICAgY29uc3QgaHlwb3RoZXNlc0Rpc2NoYXJnZXMgPSBjbGFpbS5kaXNjaGFyZ2VIeXBvdGhlc2VzKGNvbnRleHQpO1xuXG4gICAgICBpZiAoaHlwb3RoZXNlc0Rpc2NoYXJnZXMpIHtcbiAgICAgICAgY29uc3Qgc3VwcG9zaXRpb25zID0gY2xhaW0uZ2V0U3VwcG9zaXRpb25zKCksXG4gICAgICAgICAgICAgIHN1cHBvc2l0aW9uc1VuaWZ5ID0gdGhpcy51bmlmeVN1cHBvc2l0aW9ucyhzdXBwb3NpdGlvbnMsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChzdXBwb3NpdGlvbnNVbmlmeSkge1xuICAgICAgICAgIGNsYWltVW5pZmllcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2xhaW1VbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtjbGFpbVN0cmluZ30nIGNsYWltIHdpdGggdGhlICcke2F4aW9tU3RyaW5nfScgYXhpb20uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsYWltVW5pZmllcztcbiAgfVxuXG4gIHVuaWZ5U2lnbmF0dXJlQXNzZXJ0aW9uKHNpZ25hdHVyZUFzc2VydGlvbiwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgbGV0IHNpZ25hdHVyZUFzc2VydGlvblVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGF4aW9tU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgLy8vXG4gICAgICAgICAgc2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nID0gc2lnbmF0dXJlQXNzZXJ0aW9uLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24gd2l0aCB0aGUgJyR7YXhpb21TdHJpbmd9JyBheGlvbS4uLmApO1xuXG4gICAgY29uc3QgdGVybXMgPSBzaWduYXR1cmVBc3NlcnRpb24uZ2V0VGVybXMoKSxcbiAgICAgICAgICBzaWduYXR1cmUgPSB0aGlzLmdldFNpZ25hdHVyZSgpO1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZS51bmlmeVRlcm1zKHRlcm1zLCBjb250ZXh0LCAodGVybXNVbmlmeSkgPT4ge1xuICAgICAgaWYgKHRlcm1zVW5pZnkpIHtcbiAgICAgICAgc2lnbmF0dXJlQXNzZXJ0aW9uVW5pZmllcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChzaWduYXR1cmVBc3NlcnRpb25VbmlmaWVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24gd2l0aCB0aGUgJyR7YXhpb21TdHJpbmd9JyBheGlvbS5gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzaWduYXR1cmVBc3NlcnRpb25VbmlmaWVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHVuaWZ5RGVkdWN0aW9uKGRlZHVjdGlvbiwgY29udGV4dCkge1xuICAgIGRlYnVnZ2VyXG5cbiAgICBsZXQgZGVkdWN0aW9uVW5pZmllcztcblxuICAgIGNvbnN0IGF4aW9tU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgLy8vXG4gICAgICAgICAgZ2VuZXJhbERlZHVjdGlvbiA9IHRoaXMuZGVkdWN0aW9uLCAgLy8vXG4gICAgICAgICAgc3BlY2lmaWNEZWR1Y3Rpb24gPSBkZWR1Y3Rpb24sICAvLy9cbiAgICAgICAgICBnZW5lcmFsRGVkdWN0aW9uU3RyaW5nID0gZ2VuZXJhbERlZHVjdGlvbi5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzcGVjaWZpY0RlZHVjdGlvblN0cmluZyA9IHNwZWNpZmljRGVkdWN0aW9uLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3NwZWNpZmljRGVkdWN0aW9uU3RyaW5nfScgZGVkdWN0aW9uIHdpdGggdGhlICcke2F4aW9tU3RyaW5nfScgYXhpb20ncyAnJHtnZW5lcmFsRGVkdWN0aW9uU3RyaW5nfScgZGVkdWN0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBnZW5lcmFsRGVkdWN0aW9uQ29udGV4dCA9IGdlbmVyYWxEZWR1Y3Rpb24uZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHNwZWNpZmljRGVkdWN0aW9uQ29udGV4dCA9IHNwZWNpZmljRGVkdWN0aW9uLmdldENvbnRleHQoKSxcbiAgICAgICAgICBnZW5lcmFsQ29udGV4dCA9IGdlbmVyYWxEZWR1Y3Rpb25Db250ZXh0LCAvLy9cbiAgICAgICAgICBzcGVjaWZpY0NvbnRleHQgPSBzcGVjaWZpY0RlZHVjdGlvbkNvbnRleHQ7IC8vL1xuXG4gICAgZGVidWdnZXJcblxuICAgIHJldHVybiByZWNvbmNpbGUoKHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgbGV0IHN0YXRlbWVudDtcblxuICAgICAgc3RhdGVtZW50ID0gc3BlY2lmaWNEZWR1Y3Rpb24uZ2V0U3RhdGVtZW50KCk7XG5cbiAgICAgIGNvbnN0IHNwZWNpZmljU3RhdGVtZW50ID0gc3RhdGVtZW50OyAgLy8vXG5cbiAgICAgIHN0YXRlbWVudCA9IGdlbmVyYWxEZWR1Y3Rpb24uZ2V0U3RhdGVtZW50KCk7XG5cbiAgICAgIGNvbnN0IGdlbmVyYWxTdGF0ZW1lbnQgPSBzdGF0ZW1lbnQsIC8vL1xuICAgICAgICAgICAgc3RhdGVtZW50VW5pZmllcyA9IGdlbmVyYWxTdGF0ZW1lbnQudW5pZnlTdGF0ZW1lbnQoc3BlY2lmaWNTdGF0ZW1lbnQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VW5pZmllcykge1xuICAgICAgICBzcGVjaWZpY0NvbnRleHQuY29tbWl0KGNvbnRleHQpO1xuXG4gICAgICAgIGRlZHVjdGlvblVuaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH0sIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICBpZiAoZGVkdWN0aW9uVW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3BlY2lmaWNEZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24gd2l0aCB0aGUgJyR7YXhpb21TdHJpbmd9JyBheGlvbSdzICcke2dlbmVyYWxEZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZHVjdGlvblVuaWZpZXM7XG4gIH1cblxuICB1bmlmeVN1cHBvc2l0aW9uKHN1cHBvc2l0aW9uLCBpbmRleCwgY29udGV4dCkge1xuICAgIGRlYnVnZ2VyXG5cbiAgICBsZXQgc3VwcG9zaXRpb25VbmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBzcGVjaWZpY1N1cHBvc2l0aW9uID0gc3VwcG9zaXRpb247ICAvLy9cblxuICAgIHN1cHBvc2l0aW9uID0gdGhpcy5nZXRTdXBwb3NpdGlvbihpbmRleCk7XG5cbiAgICBjb25zdCBheGlvbVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksIC8vL1xuICAgICAgICAgIGdlbmVyYWxTdXBwb3NpdGlvbiA9IHN1cHBvc2l0aW9uLCAgLy8vXG4gICAgICAgICAgZ2VuZXJhbFN1cHBvc2l0aW9uU3RyaW5nID0gZ2VuZXJhbFN1cHBvc2l0aW9uLmdldFN0cmluZygpLFxuICAgICAgICAgIHNwZWNpZmljU3VwcG9zaXRpb25TdHJpbmcgPSBzcGVjaWZpY1N1cHBvc2l0aW9uLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3NwZWNpZmljU3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbiB3aXRoIHRoZSAnJHtheGlvbVN0cmluZ30nIGF4aW9tJ3MgJyR7Z2VuZXJhbFN1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24uLi5gKTtcblxuICAgIGNvbnN0IGdlbmVyYWxTdXBwb3NpdGlvbkNvbnRleHQgPSBnZW5lcmFsU3VwcG9zaXRpb24uZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHNwZWNpZmljU3VwcG9zaXRpb25Db250ZXh0ID0gc3BlY2lmaWNTdXBwb3NpdGlvbi5nZXRDb250ZXh0KCksXG4gICAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBnZW5lcmFsU3VwcG9zaXRpb25Db250ZXh0LCAvLy9cbiAgICAgICAgICBzcGVjaWZpY0NvbnRleHQgPSBzcGVjaWZpY1N1cHBvc2l0aW9uQ29udGV4dDsgLy8vXG5cbiAgICBkZWJ1Z2dlclxuXG4gICAgcmV0dXJuIHJlY29uY2lsZSgoc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICBsZXQgc3RhdGVtZW50O1xuXG4gICAgICBzdGF0ZW1lbnQgPSBzcGVjaWZpY1N1cHBvc2l0aW9uLmdldFN0YXRlbWVudCgpO1xuXG4gICAgICBjb25zdCBzcGVjaWZpY1N0YXRlbWVudCA9IHN0YXRlbWVudDsgIC8vL1xuXG4gICAgICBzdGF0ZW1lbnQgPSBnZW5lcmFsU3VwcG9zaXRpb24uZ2V0U3RhdGVtZW50KCk7XG5cbiAgICAgIGNvbnN0IGdlbmVyYWxTdGF0ZW1lbnQgPSBzdGF0ZW1lbnQsIC8vL1xuICAgICAgICAgICAgc3RhdGVtZW50VW5pZmllcyA9IGdlbmVyYWxTdGF0ZW1lbnQudW5pZnlTdGF0ZW1lbnQoc3BlY2lmaWNTdGF0ZW1lbnQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VW5pZmllcykge1xuICAgICAgICBzcGVjaWZpY0NvbnRleHQuY29tbWl0KGNvbnRleHQpO1xuXG4gICAgICAgIHN1cHBvc2l0aW9uVW5pZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfSwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChzdXBwb3NpdGlvblVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3NwZWNpZmljU3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbiB3aXRoIHRoZSAnJHtheGlvbVN0cmluZ30nIGF4aW9tJ3MgJyR7Z2VuZXJhbFN1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24uLi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwcG9zaXRpb25VbmlmaWVzO1xuICB9XG5cbiAgdW5pZnlTdXBwb3NpdGlvbnMoc3VwcG9zaXRpb25zLCBjb250ZXh0KSB7XG4gICAgZGVidWdnZXJcblxuICAgIGxldCBzdXBwb3NpdGlvbnNVbmlmeTtcblxuICAgIGNvbnN0IHNwZWNpZmljU3VwcG9zaXRpb25zID0gc3VwcG9zaXRpb25zOyAgLy8vXG5cbiAgICBzdXBwb3NpdGlvbnMgPSB0aGlzLmdldFN1cHBvc2l0aW9ucygpO1xuXG4gICAgY29uc3QgZ2VuZXJhbFN1cHBvc2l0aW9ucyA9IHN1cHBvc2l0aW9uczsgLy8vXG5cbiAgICBzdXBwb3NpdGlvbnNVbmlmeSA9IGFzeW5jaHJvbm91c01hdGNoKGdlbmVyYWxTdXBwb3NpdGlvbnMsIHNwZWNpZmljU3VwcG9zaXRpb25zLCAoZ2VuZXJhbFN1cHBvc2l0aW9uLCBzcGVjaWZpY1N1cHBvc2l0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3Qgc3VwcG9zaXRpb24gPSBzcGVjaWZpY1N1cHBvc2l0aW9uLCAgLy8vXG4gICAgICAgICAgICBzdXBwb3NpdGlvblVuaWZpZXMgPSB0aGlzLnVuaWZ5U3VwcG9zaXRpb24oc3VwcG9zaXRpb24sIGluZGV4LCBjb250ZXh0KTtcblxuICAgICAgaWYgKHN1cHBvc2l0aW9uVW5pZmllcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzdXBwb3NpdGlvbnNVbmlmeTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJBeGlvbVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7IHJldHVybiBDbGFpbS5mcm9tSlNPTihBeGlvbSwganNvbiwgY29udGV4dCk7IH1cbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJhc3luY2hyb25vdXNNYXRjaCIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIkF4aW9tIiwiQ2xhaW0iLCJnZXRBeGlvbU5vZGUiLCJub2RlIiwiZ2V0Tm9kZSIsImF4aW9tTm9kZSIsImlzU2F0aXNmaWFibGUiLCJzaWduYXR1cmUiLCJnZXRTaWduYXR1cmUiLCJzYXRpc2ZpYWJsZSIsInZlcmlmeSIsImNvbnRleHQiLCJjb250aW51YXRpb24iLCJheGlvbVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmVyaWZ5U2lnbmF0dXJlIiwic2lnbmF0dXJlVmVyaWZpZXMiLCJ2ZXJpZmllcyIsInZlcmlmeUV4IiwiYXhpb20iLCJhZGRBeGlvbSIsImRlYnVnIiwidW5pZnlDbGFpbSIsImNsYWltIiwiY2xhaW1VbmlmaWVzIiwiY2xhaW1TdHJpbmciLCJkZWR1Y3Rpb24iLCJnZXREZWR1Y3Rpb24iLCJkZWR1Y3Rpb25VbmlmaWVzIiwidW5pZnlEZWR1Y3Rpb24iLCJoeXBvdGhlc2VzRGlzY2hhcmdlcyIsImRpc2NoYXJnZUh5cG90aGVzZXMiLCJzdXBwb3NpdGlvbnMiLCJnZXRTdXBwb3NpdGlvbnMiLCJzdXBwb3NpdGlvbnNVbmlmeSIsInVuaWZ5U3VwcG9zaXRpb25zIiwidW5pZnlTaWduYXR1cmVBc3NlcnRpb24iLCJzaWduYXR1cmVBc3NlcnRpb24iLCJzaWduYXR1cmVBc3NlcnRpb25VbmlmaWVzIiwic2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nIiwidGVybXMiLCJnZXRUZXJtcyIsInVuaWZ5VGVybXMiLCJ0ZXJtc1VuaWZ5IiwiZ2VuZXJhbERlZHVjdGlvbiIsInNwZWNpZmljRGVkdWN0aW9uIiwiZ2VuZXJhbERlZHVjdGlvblN0cmluZyIsInNwZWNpZmljRGVkdWN0aW9uU3RyaW5nIiwiZ2VuZXJhbERlZHVjdGlvbkNvbnRleHQiLCJnZXRDb250ZXh0Iiwic3BlY2lmaWNEZWR1Y3Rpb25Db250ZXh0IiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpY0NvbnRleHQiLCJyZWNvbmNpbGUiLCJzdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnQiLCJzcGVjaWZpY1N0YXRlbWVudCIsImdlbmVyYWxTdGF0ZW1lbnQiLCJzdGF0ZW1lbnRVbmlmaWVzIiwidW5pZnlTdGF0ZW1lbnQiLCJjb21taXQiLCJ1bmlmeVN1cHBvc2l0aW9uIiwic3VwcG9zaXRpb24iLCJpbmRleCIsInN1cHBvc2l0aW9uVW5pZmllcyIsInNwZWNpZmljU3VwcG9zaXRpb24iLCJnZXRTdXBwb3NpdGlvbiIsImdlbmVyYWxTdXBwb3NpdGlvbiIsImdlbmVyYWxTdXBwb3NpdGlvblN0cmluZyIsInNwZWNpZmljU3VwcG9zaXRpb25TdHJpbmciLCJnZW5lcmFsU3VwcG9zaXRpb25Db250ZXh0Iiwic3BlY2lmaWNTdXBwb3NpdGlvbkNvbnRleHQiLCJzcGVjaWZpY1N1cHBvc2l0aW9ucyIsImdlbmVyYWxTdXBwb3NpdGlvbnMiLCJuYW1lIiwiZnJvbUpTT04iLCJqc29uIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQUE7OztnQ0FWMkQ7OERBRXpDOzBCQUVLO3lCQUNHOzs7Ozs7QUFFMUIsTUFBTSxFQUFFQSxTQUFTLEVBQUUsR0FBR0MsbUNBQW1CLEVBQ25DLEVBQUVDLGlCQUFpQixFQUFFLEdBQUdDLHFDQUFxQjtNQUVuRCxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGNBQWNDLGNBQUs7SUFDN0NDLGVBQWU7UUFDYixNQUFNQyxPQUFPLElBQUksQ0FBQ0MsT0FBTyxJQUNuQkMsWUFBWUYsTUFBTSxHQUFHO1FBRTNCLE9BQU9FO0lBQ1Q7SUFFQUMsZ0JBQWdCO1FBQ2QsTUFBTUMsWUFBWSxJQUFJLENBQUNDLFlBQVksSUFDN0JDLGNBQWVGLGNBQWM7UUFFbkMsT0FBT0U7SUFDVDtJQUVBQyxTQUFTZixVQUFVLFNBQVVnQixPQUFPLEVBQUVDLFlBQVk7UUFDaEQsTUFBTUMsY0FBYyxJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRXpDSCxRQUFRSSxLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVGLFlBQVksVUFBVSxDQUFDO1FBRXZELElBQUksQ0FBQ0csZUFBZSxDQUFDTCxTQUFTLENBQUNNO1lBQzdCLElBQUksQ0FBQ0EsbUJBQW1CO2dCQUN0QixNQUFNQyxXQUFXO2dCQUVqQixPQUFPTixhQUFhTTtZQUN0QjtZQUVBLE9BQU8sSUFBSSxDQUFDQyxRQUFRLENBQUNSLFNBQVMsQ0FBQ087Z0JBQzdCLElBQUlBLFVBQVU7b0JBQ1osTUFBTUUsUUFBUSxJQUFJLEVBQUUsR0FBRztvQkFFdkJULFFBQVFVLFFBQVEsQ0FBQ0Q7b0JBRWpCVCxRQUFR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
|
package/lib/element/label.js
CHANGED
|
@@ -178,4 +178,4 @@ const _default = (0, _elements.define)(class Label extends _occamlanguages.Eleme
|
|
|
178
178
|
}
|
|
179
179
|
});
|
|
180
180
|
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xhYmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBhbGwgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBkZWNsYXJlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdGF0ZVwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVMYWJlbCB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyBsYWJlbEZyb21MYWJlbE5vZGUsIG1ldGF2YXJpYWJsZUZyb21MYWJlbE5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IGpvaW4sIGFibGF0ZSwgYXR0ZW1wdCwgcmVjb25jaWxlLCBzZXJpYWxpc2UsIHVuc2VyaWFsaXNlLCBpbnN0YW50aWF0ZX0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5cbmNvbnN0IHsgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIExhYmVsIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbWV0YXZhcmlhYmxlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMubWV0YXZhcmlhYmxlID0gbWV0YXZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGdldExhYmVsTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgbGFiZWxOb2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4gbGFiZWxOb2RlO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlTm9kZSgpIHsgcmV0dXJuIHRoaXMubWV0YXZhcmlhYmxlLmdldE5vZGUoKTsgfVxuXG4gIG1hdGNoTGFiZWxOb2RlKGxhYmVsTm9kZSkge1xuICAgIGNvbnN0IG5vZGUgPSBsYWJlbE5vZGUsIC8vL1xuICAgICAgICAgIG5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaE5vZGUobm9kZSksXG4gICAgICAgICAgbGFiZWxOb2RlTWF0Y2hlcyA9IG5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBsYWJlbE5vZGVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHsgcmV0dXJuIHRoaXMubWV0YXZhcmlhYmxlLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTsgfVxuXG4gIGNvbXBhcmVSZWZlcmVuY2UocmVmZXJlbmNlKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlID0gcmVmZXJlbmNlLmdldE1ldGF2YXJpYWJsZSgpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZUNvbXBhcmVzVG9NZXRhdmFyaWFibGUgPSB0aGlzLmNvbXBhcmVNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKSxcbiAgICAgICAgICBjb21wYXJlc1RvUmVmZXJlbmNlID0gbWV0YXZhcmlhYmxlQ29tcGFyZXNUb01ldGF2YXJpYWJsZTsgLy8vXG5cbiAgICByZXR1cm4gY29tcGFyZXNUb1JlZmVyZW5jZTtcbiAgfVxuXG4gIGNvbXBhcmVNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKSB7IHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZS5jb21wYXJlTWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSk7IH1cblxuICB2ZXJpZnkoY29udGludWF0aW9uKSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgbGFiZWxTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC4uLmApO1xuXG4gICAgY29uc3QgbGFiZWxOb2RlID0gdGhpcy5nZXRMYWJlbE5vZGUoKSxcbiAgICAgICAgICBsYWJlbFByZXNlbnQgPSBjb250ZXh0LmlzTGFiZWxQcmVzZW50QnlMYWJlbE5vZGUobGFiZWxOb2RlKTtcblxuICAgIGlmICghbGFiZWxQcmVzZW50KSB7XG4gICAgICBkZWNsYXJlKChzdGF0ZSkgPT4ge1xuICAgICAgICBjb25zdCB2YWxpZGF0ZXMgPSB0aGlzLnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAobGFiZWwsIGNvbnRleHQpID0+IHRydWUpO1xuXG4gICAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbCBpcyBhbHJlYWR5IHByZXNlbnQuYCk7XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHZlcmlmaWVzKTtcbiAgfVxuXG4gIHZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgY29uc3QgbGFiZWxTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAgLy8vXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC4uLmApO1xuXG4gICAgY29uc3QgbGFiZWwgPSB0aGlzOyAvLy9cblxuICAgIGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGF0dGVtcHQoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRlTWV0YXZhcmlhYmxlID0gdGhpcy52YWxpZGF0ZU1ldGF2YXJpYWJsZS5iaW5kKHRoaXMpO1xuXG4gICAgICB2YWxpZGF0ZXMgPSBhbGwoW1xuICAgICAgICB2YWxpZGF0ZU1ldGF2YXJpYWJsZVxuICAgICAgXSwgc3RhdGUsIGNvbnRleHQsIChzdGF0ZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgICAgIHRoaXMuY29tbWl0KGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICB2YWxpZGF0ZXMgPSBjb250aW51YXRpb24obGFiZWwsIGNvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiB2YWxpZGF0ZXM7XG4gICAgICB9KTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdGVzO1xuICB9XG5cbiAgdmFsaWRhdGVNZXRhdmFyaWFibGUoc3RhdGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGxldCBtZXRhdmFyaWFibGVWYWxpZGF0ZXM7XG5cbiAgICBjb25zdCBsYWJlbFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbCdzIG1ldGF2YXJpYWJsZS4uLmApO1xuXG4gICAgbWV0YXZhcmlhYmxlVmFsaWRhdGVzID0gdGhpcy5tZXRhdmFyaWFibGUudmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIChtZXRhdmFyaWFibGUsIGNvbnRleHQpID0+IHtcbiAgICAgIGxldCB2YWxpZGF0ZXM7XG5cbiAgICAgIHRoaXMubWV0YXZhcmlhYmxlID0gbWV0YXZhcmlhYmxlO1xuXG4gICAgICB2YWxpZGF0ZXMgPSBjb250aW51YXRpb24oc3RhdGUsIGNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gdmFsaWRhdGVzO1xuICAgIH0pO1xuXG4gICAgaWYgKG1ldGF2YXJpYWJsZVZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsJ3MgbWV0YXZhcmlhYmxlLidgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlVmFsaWRhdGVzO1xuICB9XG5cbiAgdW5pZnlSZWZlcmVuY2UocmVmZXJlbmNlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBsYWJlbFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksIC8vL1xuICAgICAgICAgIHJlZmVyZW5jZVN0cmluZyA9IHJlZmVyZW5jZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyByZWZlcmVuY2Ugd2l0aCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC4uLmApO1xuXG4gICAgY29uc3QgbGFiZWxDb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksIC8vL1xuICAgICAgICAgIHJlZmVyZW5jZUNvbnRleHQgPSByZWZlcmVuY2UuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGdlbmVyYWxDb250ZXh0ID0gbGFiZWxDb250ZXh0LCAvLy9cbiAgICAgICAgICBzcGVjaWZpY0NvbnRleHQgPSByZWZlcmVuY2VDb250ZXh0OyAgLy8vXG5cbiAgICByZXR1cm4gam9pbigoc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gcmVjb25jaWxlKChzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlID0gcmVmZXJlbmNlLmdldE1ldGF2YXJpYWJsZSgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnVuaWZ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgKG1ldGF2YXJpYWJsZVVuaWZpZXMpID0+IHtcbiAgICAgICAgICBsZXQgcmVmZXJlbmNlVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgICAgICAgaWYgKG1ldGF2YXJpYWJsZVVuaWZpZXMpIHtcbiAgICAgICAgICAgIHNwZWNpZmljQ29udGV4dC5jb21taXQoY29udGV4dCk7XG5cbiAgICAgICAgICAgIHJlZmVyZW5jZVVuaWZpZXMgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChyZWZlcmVuY2VVbmlmaWVzKSB7XG4gICAgICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyByZWZlcmVuY2Ugd2l0aCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC5gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHJlZmVyZW5jZVVuaWZpZXMpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIHNwZWNpZmljQ29udGV4dCk7XG4gICAgfSwgc3BlY2lmaWNDb250ZXh0LCBjb250ZXh0KTtcbiAgfVxuXG4gIHVuaWZ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgIC8vL1xuICAgICAgICAgIGxhYmVsU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgLy8vXG4gICAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbWV0YXZhcmlhYmxlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZSB3aXRoIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsLi4uYCk7XG5cbiAgICByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGUudW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5KG1ldGF2YXJpYWJsZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgKG1ldGF2YXJpYWJsZVVuaWZpZXNJbnRyaW5zaWNhbGx5KSA9PiB7XG4gICAgICBsZXQgbWV0YXZhcmlhYmxlVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlVW5pZmllc0ludHJpbnNpY2FsbHkpIHtcbiAgICAgICAgbWV0YXZhcmlhYmxlVW5pZmllcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVVbmlmaWVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZSB3aXRoIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsLmApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKG1ldGF2YXJpYWJsZVVuaWZpZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIHJldHVybiBzZXJpYWxpc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgICBjb25zdCBqc29uID0ge1xuICAgICAgICBjb250ZXh0LFxuICAgICAgICBzdHJpbmcsXG4gICAgICAgIGJyZWFrUG9pbnRcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBqc29uO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkxhYmVsXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgbGFiZWw7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgdW5zZXJpYWxpc2UoKGpzb24sIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICAgIGxhYmVsTm9kZSA9IGluc3RhbnRpYXRlTGFiZWwoc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbm9kZSA9IGxhYmVsTm9kZSwgLy8vXG4gICAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZUZyb21MYWJlbE5vZGUobGFiZWxOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBsYWJlbCA9IG5ldyBMYWJlbChjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG1ldGF2YXJpYWJsZSk7XG4gICAgICB9LCBqc29uLCBjb250ZXh0KTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTGFiZWxTdHJpbmcobGFiZWxTdHJpbmcsIGNvbnRleHQpIHtcbiAgICBsZXQgbGFiZWw7XG5cbiAgICBhYmxhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBzdHJpbmcgPSBsYWJlbFN0cmluZywgIC8vL1xuICAgICAgICAgICAgbGFiZWxOb2RlID0gaW5zdGFudGlhdGVMYWJlbChzdHJpbmcsIGNvbnRleHQpO1xuXG4gICAgICBsYWJlbCA9IGxhYmVsRnJvbUxhYmVsTm9kZShsYWJlbE5vZGUsIGNvbnRleHQpO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrUG9pbnRGcm9tSlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIkxhYmVsIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsIm1ldGF2YXJpYWJsZSIsImdldE1ldGF2YXJpYWJsZSIsImdldExhYmVsTm9kZSIsImdldE5vZGUiLCJsYWJlbE5vZGUiLCJnZXRNZXRhdmFyaWFibGVOb2RlIiwibWF0Y2hMYWJlbE5vZGUiLCJub2RlTWF0Y2hlcyIsIm1hdGNoTm9kZSIsImxhYmVsTm9kZU1hdGNoZXMiLCJtYXRjaE1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOb2RlIiwiY29tcGFyZVJlZmVyZW5jZSIsInJlZmVyZW5jZSIsIm1ldGF2YXJpYWJsZUNvbXBhcmVzVG9NZXRhdmFyaWFibGUiLCJjb21wYXJlTWV0YXZhcmlhYmxlIiwiY29tcGFyZXNUb1JlZmVyZW5jZSIsInZlcmlmeSIsImNvbnRpbnVhdGlvbiIsInZlcmlmaWVzIiwiZ2V0Q29udGV4dCIsImxhYmVsU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJsYWJlbFByZXNlbnQiLCJpc0xhYmVsUHJlc2VudEJ5TGFiZWxOb2RlIiwiZGVjbGFyZSIsInN0YXRlIiwidmFsaWRhdGVzIiwidmFsaWRhdGUiLCJsYWJlbCIsImRlYnVnIiwic3BlY2lmaWNDb250ZXh0IiwiYXR0ZW1wdCIsInZhbGlkYXRlTWV0YXZhcmlhYmxlIiwiYmluZCIsImFsbCIsImNvbW1pdCIsIm1ldGF2YXJpYWJsZVZhbGlkYXRlcyIsInVuaWZ5UmVmZXJlbmNlIiwicmVmZXJlbmNlU3RyaW5nIiwibGFiZWxDb250ZXh0IiwicmVmZXJlbmNlQ29udGV4dCIsImdlbmVyYWxDb250ZXh0Iiwiam9pbiIsInJlY29uY2lsZSIsInVuaWZ5TWV0YXZhcmlhYmxlIiwibWV0YXZhcmlhYmxlVW5pZmllcyIsInJlZmVyZW5jZVVuaWZpZXMiLCJtZXRhdmFyaWFibGVTdHJpbmciLCJ1bmlmeU1ldGF2YXJpYWJsZUludHJpbnNpY2FsbHkiLCJtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseSIsInRvSlNPTiIsInNlcmlhbGlzZSIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImpzb24iLCJuYW1lIiwiZnJvbUpTT04iLCJpbnN0YW50aWF0ZSIsInVuc2VyaWFsaXNlIiwiaW5zdGFudGlhdGVMYWJlbCIsIm1ldGF2YXJpYWJsZUZyb21MYWJlbE5vZGUiLCJmcm9tTGFiZWxTdHJpbmciLCJhYmxhdGUiLCJsYWJlbEZyb21MYWJlbE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWFBOzs7ZUFBQTs7O2dDQVg2Qzs4QkFFekI7MEJBQ0c7dUJBQ0M7NkJBQ1M7eUJBQzZCO3lCQUN1QjtBQUVyRixNQUFNLEVBQUVBLGtCQUFrQixFQUFFQywwQkFBMEIsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFOUUsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxjQUFjQyx1QkFBTztJQUMvQyxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFlBQVksQ0FBRTtRQUMzRCxLQUFLLENB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
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xhYmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBhbGwgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBkZWNsYXJlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdGF0ZVwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVMYWJlbCB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyBsYWJlbEZyb21MYWJlbE5vZGUsIG1ldGF2YXJpYWJsZUZyb21MYWJlbE5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IGpvaW4sIGFibGF0ZSwgYXR0ZW1wdCwgcmVjb25jaWxlLCBzZXJpYWxpc2UsIHVuc2VyaWFsaXNlLCBpbnN0YW50aWF0ZX0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5cbmNvbnN0IHsgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIExhYmVsIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbWV0YXZhcmlhYmxlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMubWV0YXZhcmlhYmxlID0gbWV0YXZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGdldExhYmVsTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgbGFiZWxOb2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4gbGFiZWxOb2RlO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlTm9kZSgpIHsgcmV0dXJuIHRoaXMubWV0YXZhcmlhYmxlLmdldE5vZGUoKTsgfVxuXG4gIG1hdGNoTGFiZWxOb2RlKGxhYmVsTm9kZSkge1xuICAgIGNvbnN0IG5vZGUgPSBsYWJlbE5vZGUsIC8vL1xuICAgICAgICAgIG5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaE5vZGUobm9kZSksXG4gICAgICAgICAgbGFiZWxOb2RlTWF0Y2hlcyA9IG5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBsYWJlbE5vZGVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHsgcmV0dXJuIHRoaXMubWV0YXZhcmlhYmxlLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTsgfVxuXG4gIGNvbXBhcmVSZWZlcmVuY2UocmVmZXJlbmNlKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlID0gcmVmZXJlbmNlLmdldE1ldGF2YXJpYWJsZSgpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZUNvbXBhcmVzVG9NZXRhdmFyaWFibGUgPSB0aGlzLmNvbXBhcmVNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKSxcbiAgICAgICAgICBjb21wYXJlc1RvUmVmZXJlbmNlID0gbWV0YXZhcmlhYmxlQ29tcGFyZXNUb01ldGF2YXJpYWJsZTsgLy8vXG5cbiAgICByZXR1cm4gY29tcGFyZXNUb1JlZmVyZW5jZTtcbiAgfVxuXG4gIGNvbXBhcmVNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKSB7IHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZS5jb21wYXJlTWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSk7IH1cblxuICB2ZXJpZnkoY29udGludWF0aW9uKSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgbGFiZWxTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC4uLmApO1xuXG4gICAgY29uc3QgbGFiZWxOb2RlID0gdGhpcy5nZXRMYWJlbE5vZGUoKSxcbiAgICAgICAgICBsYWJlbFByZXNlbnQgPSBjb250ZXh0LmlzTGFiZWxQcmVzZW50QnlMYWJlbE5vZGUobGFiZWxOb2RlKTtcblxuICAgIGlmICghbGFiZWxQcmVzZW50KSB7XG4gICAgICBkZWNsYXJlKChzdGF0ZSkgPT4ge1xuICAgICAgICBjb25zdCB2YWxpZGF0ZXMgPSB0aGlzLnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAobGFiZWwsIGNvbnRleHQpID0+IHRydWUpO1xuXG4gICAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbCBpcyBhbHJlYWR5IHByZXNlbnQuYCk7XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHZlcmlmaWVzKTtcbiAgfVxuXG4gIHZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgY29uc3QgbGFiZWxTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAgLy8vXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC4uLmApO1xuXG4gICAgY29uc3QgbGFiZWwgPSB0aGlzOyAvLy9cblxuICAgIGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGF0dGVtcHQoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRlTWV0YXZhcmlhYmxlID0gdGhpcy52YWxpZGF0ZU1ldGF2YXJpYWJsZS5iaW5kKHRoaXMpO1xuXG4gICAgICB2YWxpZGF0ZXMgPSBhbGwoW1xuICAgICAgICB2YWxpZGF0ZU1ldGF2YXJpYWJsZVxuICAgICAgXSwgc3RhdGUsIGNvbnRleHQsIChzdGF0ZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgICAgIHRoaXMuY29tbWl0KGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICB2YWxpZGF0ZXMgPSBjb250aW51YXRpb24obGFiZWwsIGNvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiB2YWxpZGF0ZXM7XG4gICAgICB9KTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdGVzO1xuICB9XG5cbiAgdmFsaWRhdGVNZXRhdmFyaWFibGUoc3RhdGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGxldCBtZXRhdmFyaWFibGVWYWxpZGF0ZXM7XG5cbiAgICBjb25zdCBsYWJlbFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbCdzIG1ldGF2YXJpYWJsZS4uLmApO1xuXG4gICAgbWV0YXZhcmlhYmxlVmFsaWRhdGVzID0gdGhpcy5tZXRhdmFyaWFibGUudmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIChtZXRhdmFyaWFibGUsIGNvbnRleHQpID0+IHtcbiAgICAgIGxldCB2YWxpZGF0ZXM7XG5cbiAgICAgIHRoaXMubWV0YXZhcmlhYmxlID0gbWV0YXZhcmlhYmxlO1xuXG4gICAgICB2YWxpZGF0ZXMgPSBjb250aW51YXRpb24oc3RhdGUsIGNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gdmFsaWRhdGVzO1xuICAgIH0pO1xuXG4gICAgaWYgKG1ldGF2YXJpYWJsZVZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsJ3MgbWV0YXZhcmlhYmxlLidgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlVmFsaWRhdGVzO1xuICB9XG5cbiAgdW5pZnlSZWZlcmVuY2UocmVmZXJlbmNlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBsYWJlbFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksIC8vL1xuICAgICAgICAgIHJlZmVyZW5jZVN0cmluZyA9IHJlZmVyZW5jZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyByZWZlcmVuY2Ugd2l0aCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC4uLmApO1xuXG4gICAgY29uc3QgbGFiZWxDb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksIC8vL1xuICAgICAgICAgIHJlZmVyZW5jZUNvbnRleHQgPSByZWZlcmVuY2UuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGdlbmVyYWxDb250ZXh0ID0gbGFiZWxDb250ZXh0LCAvLy9cbiAgICAgICAgICBzcGVjaWZpY0NvbnRleHQgPSByZWZlcmVuY2VDb250ZXh0OyAgLy8vXG5cbiAgICByZXR1cm4gam9pbigoc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gcmVjb25jaWxlKChzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlID0gcmVmZXJlbmNlLmdldE1ldGF2YXJpYWJsZSgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnVuaWZ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgKG1ldGF2YXJpYWJsZVVuaWZpZXMpID0+IHtcbiAgICAgICAgICBsZXQgcmVmZXJlbmNlVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgICAgICAgaWYgKG1ldGF2YXJpYWJsZVVuaWZpZXMpIHtcbiAgICAgICAgICAgIHNwZWNpZmljQ29udGV4dC5jb21taXQoY29udGV4dCk7XG5cbiAgICAgICAgICAgIHJlZmVyZW5jZVVuaWZpZXMgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChyZWZlcmVuY2VVbmlmaWVzKSB7XG4gICAgICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyByZWZlcmVuY2Ugd2l0aCB0aGUgJyR7bGFiZWxTdHJpbmd9JyBsYWJlbC5gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHJlZmVyZW5jZVVuaWZpZXMpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIHNwZWNpZmljQ29udGV4dCk7XG4gICAgfSwgc3BlY2lmaWNDb250ZXh0LCBjb250ZXh0KTtcbiAgfVxuXG4gIHVuaWZ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgIC8vL1xuICAgICAgICAgIGxhYmVsU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgLy8vXG4gICAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbWV0YXZhcmlhYmxlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZSB3aXRoIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsLi4uYCk7XG5cbiAgICByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGUudW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5KG1ldGF2YXJpYWJsZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgKG1ldGF2YXJpYWJsZVVuaWZpZXNJbnRyaW5zaWNhbGx5KSA9PiB7XG4gICAgICBsZXQgbWV0YXZhcmlhYmxlVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlVW5pZmllc0ludHJpbnNpY2FsbHkpIHtcbiAgICAgICAgbWV0YXZhcmlhYmxlVW5pZmllcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVVbmlmaWVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZSB3aXRoIHRoZSAnJHtsYWJlbFN0cmluZ30nIGxhYmVsLmApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKG1ldGF2YXJpYWJsZVVuaWZpZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIHJldHVybiBzZXJpYWxpc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgICBjb25zdCBqc29uID0ge1xuICAgICAgICBjb250ZXh0LFxuICAgICAgICBzdHJpbmcsXG4gICAgICAgIGJyZWFrUG9pbnRcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBqc29uO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkxhYmVsXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgbGFiZWw7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgdW5zZXJpYWxpc2UoKGpzb24sIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICAgIGxhYmVsTm9kZSA9IGluc3RhbnRpYXRlTGFiZWwoc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbm9kZSA9IGxhYmVsTm9kZSwgLy8vXG4gICAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZUZyb21MYWJlbE5vZGUobGFiZWxOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBsYWJlbCA9IG5ldyBMYWJlbChjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG1ldGF2YXJpYWJsZSk7XG4gICAgICB9LCBqc29uLCBjb250ZXh0KTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTGFiZWxTdHJpbmcobGFiZWxTdHJpbmcsIGNvbnRleHQpIHtcbiAgICBsZXQgbGFiZWw7XG5cbiAgICBhYmxhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHN0cmluZyA9IGxhYmVsU3RyaW5nLCAgLy8vXG4gICAgICAgICAgICAgIGxhYmVsTm9kZSA9IGluc3RhbnRpYXRlTGFiZWwoc3RyaW5nLCBjb250ZXh0KTtcblxuICAgICAgICBsYWJlbCA9IGxhYmVsRnJvbUxhYmVsTm9kZShsYWJlbE5vZGUsIGNvbnRleHQpO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrUG9pbnRGcm9tSlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIkxhYmVsIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsIm1ldGF2YXJpYWJsZSIsImdldE1ldGF2YXJpYWJsZSIsImdldExhYmVsTm9kZSIsImdldE5vZGUiLCJsYWJlbE5vZGUiLCJnZXRNZXRhdmFyaWFibGVOb2RlIiwibWF0Y2hMYWJlbE5vZGUiLCJub2RlTWF0Y2hlcyIsIm1hdGNoTm9kZSIsImxhYmVsTm9kZU1hdGNoZXMiLCJtYXRjaE1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOb2RlIiwiY29tcGFyZVJlZmVyZW5jZSIsInJlZmVyZW5jZSIsIm1ldGF2YXJpYWJsZUNvbXBhcmVzVG9NZXRhdmFyaWFibGUiLCJjb21wYXJlTWV0YXZhcmlhYmxlIiwiY29tcGFyZXNUb1JlZmVyZW5jZSIsInZlcmlmeSIsImNvbnRpbnVhdGlvbiIsInZlcmlmaWVzIiwiZ2V0Q29udGV4dCIsImxhYmVsU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJsYWJlbFByZXNlbnQiLCJpc0xhYmVsUHJlc2VudEJ5TGFiZWxOb2RlIiwiZGVjbGFyZSIsInN0YXRlIiwidmFsaWRhdGVzIiwidmFsaWRhdGUiLCJsYWJlbCIsImRlYnVnIiwic3BlY2lmaWNDb250ZXh0IiwiYXR0ZW1wdCIsInZhbGlkYXRlTWV0YXZhcmlhYmxlIiwiYmluZCIsImFsbCIsImNvbW1pdCIsIm1ldGF2YXJpYWJsZVZhbGlkYXRlcyIsInVuaWZ5UmVmZXJlbmNlIiwicmVmZXJlbmNlU3RyaW5nIiwibGFiZWxDb250ZXh0IiwicmVmZXJlbmNlQ29udGV4dCIsImdlbmVyYWxDb250ZXh0Iiwiam9pbiIsInJlY29uY2lsZSIsInVuaWZ5TWV0YXZhcmlhYmxlIiwibWV0YXZhcmlhYmxlVW5pZmllcyIsInJlZmVyZW5jZVVuaWZpZXMiLCJtZXRhdmFyaWFibGVTdHJpbmciLCJ1bmlmeU1ldGF2YXJpYWJsZUludHJpbnNpY2FsbHkiLCJtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseSIsInRvSlNPTiIsInNlcmlhbGlzZSIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImpzb24iLCJuYW1lIiwiZnJvbUpTT04iLCJpbnN0YW50aWF0ZSIsInVuc2VyaWFsaXNlIiwiaW5zdGFudGlhdGVMYWJlbCIsIm1ldGF2YXJpYWJsZUZyb21MYWJlbE5vZGUiLCJmcm9tTGFiZWxTdHJpbmciLCJhYmxhdGUiLCJsYWJlbEZyb21MYWJlbE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWFBOzs7ZUFBQTs7O2dDQVg2Qzs4QkFFekI7MEJBQ0c7dUJBQ0M7NkJBQ1M7eUJBQzZCO3lCQUN1QjtBQUVyRixNQUFNLEVBQUVBLGtCQUFrQixFQUFFQywwQkFBMEIsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFOUUsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxjQUFjQyx1QkFBTztJQUMvQyxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFlBQVksQ0FBRTtRQUMzRCxL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
|