occam-verify-cli 1.0.911 → 1.0.913
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/element/assertion/signature.js +2 -2
- package/lib/element/signature.js +27 -2
- package/lib/process/instantiate.js +8 -2
- package/lib/utilities/element.js +4 -17
- package/package.json +7 -7
- package/src/element/assertion/signature.js +3 -3
- package/src/element/signature.js +44 -2
- package/src/process/instantiate.js +4 -0
- package/src/utilities/element.js +8 -19
|
@@ -145,7 +145,7 @@ const _default = (0, _elements.define)(class SignatureAssertion extends _asserti
|
|
|
145
145
|
const { name } = json;
|
|
146
146
|
if (this.name === name) {
|
|
147
147
|
(0, _context.instantiate)((context)=>{
|
|
148
|
-
const { string, lineIndex } = json, definedAssertionNode = (0, _instantiate.instantiateSignatureAssertion)(string, context), node = definedAssertionNode, signature = (0, _element.
|
|
148
|
+
const { string, lineIndex } = json, definedAssertionNode = (0, _instantiate.instantiateSignatureAssertion)(string, context), node = definedAssertionNode, signature = (0, _element.signatureFromSignatureAssertionNode)(definedAssertionNode, context), reference = (0, _element.referenceFromSignatureAssertionNode)(definedAssertionNode, context);
|
|
149
149
|
context = null;
|
|
150
150
|
signatureAssertion = new SignatureAssertion(context, string, node, lineIndex, signature, reference);
|
|
151
151
|
}, context);
|
|
@@ -162,4 +162,4 @@ const _default = (0, _elements.define)(class SignatureAssertion extends _asserti
|
|
|
162
162
|
}
|
|
163
163
|
});
|
|
164
164
|
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2VydGlvbi9zaWduYXR1cmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBBc3NlcnRpb24gZnJvbSBcIi4uL2Fzc2VydGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZVNpZ25hdHVyZUFzc2VydGlvbiB9IGZyb20gXCIuLi8uLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyBzaWduYXR1cmVGcm9tSlNpZ25hdHVyZUFzc2VydGlvbk5vZGUsIHJlZmVyZW5jZUZyb21KU2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSwgc2lnbmF0dXJlQXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFNpZ25hdHVyZUFzc2VydGlvbiBleHRlbmRzIEFzc2VydGlvbiB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgbGluZUluZGV4LCBzaWduYXR1cmUsIHJlZmVyZW5jZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgbGluZUluZGV4KTtcblxuICAgIHRoaXMuc2lnbmF0dXJlID0gc2lnbmF0dXJlO1xuICAgIHRoaXMucmVmZXJlbmNlID0gcmVmZXJlbmNlO1xuICB9XG5cbiAgZ2V0U2lnbmF0dXJlKCkge1xuICAgIHJldHVybiB0aGlzLnNpZ25hdHVyZTtcbiAgfVxuXG4gIGdldFJlZmVyZW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2U7XG4gIH1cblxuICBnZXRTaWduYXR1cmVBc3NlcnRpb25Ob2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBzaWduYXR1cmVBc3NlcnRpb25Ob2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZUFzc2VydGlvbk5vZGU7XG4gIH1cblxuICBjb21wYXJlU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb25zLCBjb250ZXh0KSB7IHJldHVybiB0aGlzLnNpZ25hdHVyZS5jb21wYXJlU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb25zLCBjb250ZXh0KTsgfVxuXG4gIGNvcnJlbGF0ZVN1YnN0aXR1dGlvbnMoc3Vic3RpdHV0aW9ucywgY29udGV4dCkgeyByZXR1cm4gdGhpcy5zaWduYXR1cmUuY29ycmVsYXRlU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb25zLCBjb250ZXh0KTsgfVxuXG4gIHZhbGlkYXRlKGNvbnRleHQpIHtcbiAgICBsZXQgc2lnbmF0dXJlQXNzZXJ0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IHNpZ25hdHVyZUFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbi4uLmApO1xuXG4gICAgbGV0IHZhbGlkYXRlcyA9IHRydWU7XG5cbiAgICBjb25zdCB2YWxpZEFzc2VydGlvbiA9IHRoaXMuZmluZFZhbGlkQXNzZXJ0aW9uKGNvbnRleHQpO1xuXG4gICAgaWYgKHZhbGlkQXNzZXJ0aW9uKSB7XG4gICAgICB2YWxpZGF0ZXMgPSB0cnVlO1xuXG4gICAgICBzaWduYXR1cmVBc3NlcnRpb24gPSB2YWxpZEFzc2VydGlvbjsgLy8vXG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uIGlzIGFscmVhZHkgdmFsaWQuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNpZ25hdHVyZVZlcmlmaWVzID0gdGhpcy52YWxpZGF0ZVNpZ25hdHVyZShjb250ZXh0KTtcblxuICAgICAgaWYgKHNpZ25hdHVyZVZlcmlmaWVzKSB7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZVZlcmlmaWVzID0gdGhpcy52YWxpZGF0ZVJlZmVyZW5jZShjb250ZXh0KTtcblxuICAgICAgICBpZiAocmVmZXJlbmNlVmVyaWZpZXMpIHtcbiAgICAgICAgICB2YWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgICBjb25zdCBhc3NlcnRpb24gPSB0aGlzOyAvLy9cblxuICAgICAgICBzaWduYXR1cmVBc3NlcnRpb24gPSBhc3NlcnRpb247IC8vL1xuXG4gICAgICAgIGNvbnRleHQuYWRkQXNzZXJ0aW9uKHNpZ25hdHVyZUFzc2VydGlvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduYXR1cmVBc3NlcnRpb247XG4gIH1cblxuICB2YWxpZGF0ZVNpZ25hdHVyZShjb250ZXh0KSB7XG4gICAgbGV0IHNpZ25hdHVyZVZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3Mgc2lnbmF0dXJlLi4uYCk7XG5cbiAgICBjb25zdCBzaWduYXR1cmUgPSB0aGlzLnNpZ25hdHVyZS52YWxpZGF0ZShjb250ZXh0KTtcblxuICAgIGlmIChzaWduYXR1cmUgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuc2lnbmF0dXJlID0gc2lnbmF0dXJlO1xuXG4gICAgICBzaWduYXR1cmVWYWxpZGF0ZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChzaWduYXR1cmVWYWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbidzIHNpZ25hdHVyZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlVmFsaWRhdGVzO1xuICB9XG5cbiAgdmFsaWRhdGVSZWZlcmVuY2UoY29udGV4dCkge1xuICAgIGxldCByZWZlcmVuY2VWZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbidzIHJlZmVyZW5jZS4uLmApO1xuXG4gICAgY29uc3QgcmVmZXJlbmNlID0gdGhpcy5yZWZlcmVuY2UudmFsaWRhdGUoY29udGV4dCk7XG5cbiAgICBpZiAocmVmZXJlbmNlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBheGlvbSA9IGNvbnRleHQuZmluZEF4aW9tQnlSZWZlcmVuY2UocmVmZXJlbmNlKTtcblxuICAgICAgaWYgKGF4aW9tICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHNhdGlzZmlhYmxlID0gYXhpb20uaXNTYXRpc2ZpYWJsZSgpO1xuXG4gICAgICAgIGlmIChzYXRpc2ZpYWJsZSkge1xuICAgICAgICAgIGNvbnN0IHNpZ25hdHVyZVVuaWZpZXMgPSBheGlvbS51bmlmeVNpZ25hdHVyZSh0aGlzLnNpZ25hdHVyZSwgY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAoc2lnbmF0dXJlVW5pZmllcykge1xuICAgICAgICAgICAgdGhpcy5yZWZlcmVuY2UgPSByZWZlcmVuY2U7XG5cbiAgICAgICAgICAgIHJlZmVyZW5jZVZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgYXhpb21TdHJpbmcgPSBheGlvbS5nZXRTdHJpbmcoKTtcblxuICAgICAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHtheGlvbVN0cmluZ30nIGF4aW9tIGlzIG5vdCBzYXRpc2ZpYWJsZS5gKTtcbiAgICAgICAgfVxuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZWZlcmVuY2RTdHJpbmcgPSByZWZlcmVuY2UuZ2V0U3RyaW5nKCk7XG5cbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlcmUgaXMgbm8gYXhpb20gZm9yIHRoZSAnJHtyZWZlcmVuY2RTdHJpbmd9JyByZWZlcmVuY2UuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlZmVyZW5jZVZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24ncyByZWZlcmVuY2UuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlZmVyZW5jZVZlcmlmaWVzO1xuICB9XG5cbiAgdW5pZnlTdGVwQW5kU3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyhzdGVwLCBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zLCBjb250ZXh0KSB7XG4gICAgbGV0IHN0ZXBBbmRTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zVW5pZnkgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN0ZXB0U3RyaW5nID0gc3RlcC5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzaWduYXR1cmVBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGVwdFN0cmluZ30nIHN0ZXAgd2l0aCB0aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbi4uLmApO1xuXG4gICAgdGhpcy5zaWduYXR1cmUudmFsaWRhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCBheGlvbSA9IGNvbnRleHQuZmluZEF4aW9tQnlSZWZlcmVuY2UodGhpcy5yZWZlcmVuY2UpLFxuICAgICAgICAgIHNhdGlzZmlhYmxlID0gYXhpb20uaXNTYXRpc2ZpYWJsZSgpO1xuXG4gICAgaWYgKHNhdGlzZmlhYmxlKSB7XG4gICAgICBjb25zdCBheGlvbUNvbXBhcmVzVG9TaWduYXR1cmUgPSBheGlvbS5jb21wYXJlU2lnbmF0dXJlKHRoaXMuc2lnbmF0dXJlLCBjb250ZXh0KTtcblxuICAgICAgaWYgKGF4aW9tQ29tcGFyZXNUb1NpZ25hdHVyZSkge1xuICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25zQiA9IHN1YnN0aXR1dGlvbnM7IC8vL1xuXG4gICAgICAgIHN0ZXBBbmRTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zVW5pZnkgPSB1bmlmeVN0ZXBBbmRTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zKHN0ZXAsIHN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChzdGVwQW5kU3VicHJvb2ZPclByb29mQXNzZXJ0aW9uc1VuaWZ5KSB7XG4gICAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uc0EgPSBzdWJzdGl0dXRpb25zLCAvLy9cbiAgICAgICAgICAgICAgICBzdWJzdGl0dXRpb25zQ29ycmVsYXRlID0gc3Vic3RpdHV0aW9uc0EuY29ycmVsYXRlU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb25zQik7XG5cbiAgICAgICAgICBpZiAoIXN1YnN0aXR1dGlvbnNDb3JyZWxhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbnNBU3RyaW5nID0gc3Vic3RpdHV0aW9uc0EuYXNTdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgIHN1YnN0aXR1dGlvbnNCU3RyaW5nID0gc3Vic3RpdHV0aW9uc0IuYXNTdHJpbmcoKTtcblxuICAgICAgICAgICAgY29udGV4dC50cmFjZShgVEhlIHNpZ25hdHVyZSdzICR7c3Vic3RpdHV0aW9uc0JTdHJpbmd9IHN1YnN0aXR1dGlvbnMgZG8gbm90IGNvcnJlbGF0ZSB3aXRoIHRoZSB1bmlmaWNhdGlvbidzICR7c3Vic3RpdHV0aW9uc0FTdHJpbmd9IHN1YnN0aXR1dGlvbnMuYCk7XG5cbiAgICAgICAgICAgIHN0ZXBBbmRTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zVW5pZnkgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RlcEFuZFN1YnByb29mT3JQcm9vZkFzc2VydGlvbnNVbmlmeSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RlcHRTdHJpbmd9JyBzdGVwIHdpdGggdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0ZXBBbmRTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zVW5pZnk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiU2lnbmF0dXJlQXNzZXJ0aW9uXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgc2lnbmF0dXJlQXNzZXJ0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IHsgbmFtZSB9ID0ganNvbjtcblxuICAgIGlmICh0aGlzLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3RyaW5nLCBsaW5lSW5kZXggfSA9IGpzb24sXG4gICAgICAgICAgICAgIGRlZmluZWRBc3NlcnRpb25Ob2RlID0gaW5zdGFudGlhdGVTaWduYXR1cmVBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbm9kZSA9IGRlZmluZWRBc3NlcnRpb25Ob2RlLCAgLy8vXG4gICAgICAgICAgICAgIHNpZ25hdHVyZSA9IHNpZ25hdHVyZUZyb21KU2lnbmF0dXJlQXNzZXJ0aW9uTm9kZShkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHJlZmVyZW5jZSA9IHJlZmVyZW5jZUZyb21KU2lnbmF0dXJlQXNzZXJ0aW9uTm9kZShkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICAgICAgc2lnbmF0dXJlQXNzZXJ0aW9uID0gbmV3IFNpZ25hdHVyZUFzc2VydGlvbihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGxpbmVJbmRleCwgc2lnbmF0dXJlLCByZWZlcmVuY2UpO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ25hdHVyZUFzc2VydGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RlcChzdGVwLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0ZXAuZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAgICAgICAgIHNpZ25hdHVyZUFzc2VydGlvbiA9IHNpZ25hdHVyZUFzc2VydGlvbkZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZUFzc2VydGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHNpZ25hdHVyZUFzc2VydGlvbiA9IHNpZ25hdHVyZUFzc2VydGlvbkZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZUFzc2VydGlvbjtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiU2lnbmF0dXJlQXNzZXJ0aW9uIiwiQXNzZXJ0aW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJsaW5lSW5kZXgiLCJzaWduYXR1cmUiLCJyZWZlcmVuY2UiLCJnZXRTaWduYXR1cmUiLCJnZXRSZWZlcmVuY2UiLCJnZXRTaWduYXR1cmVBc3NlcnRpb25Ob2RlIiwiZ2V0Tm9kZSIsInNpZ25hdHVyZUFzc2VydGlvbk5vZGUiLCJjb21wYXJlU3Vic3RpdHV0aW9ucyIsInN1YnN0aXR1dGlvbnMiLCJjb3JyZWxhdGVTdWJzdGl0dXRpb25zIiwidmFsaWRhdGUiLCJzaWduYXR1cmVBc3NlcnRpb24iLCJzaWduYXR1cmVBc3NlcnRpb25TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbGlkYXRlcyIsInZhbGlkQXNzZXJ0aW9uIiwiZmluZFZhbGlkQXNzZXJ0aW9uIiwiZGVidWciLCJzaWduYXR1cmVWZXJpZmllcyIsInZhbGlkYXRlU2lnbmF0dXJlIiwicmVmZXJlbmNlVmVyaWZpZXMiLCJ2YWxpZGF0ZVJlZmVyZW5jZSIsImFzc2VydGlvbiIsImFkZEFzc2VydGlvbiIsInNpZ25hdHVyZVZhbGlkYXRlcyIsImF4aW9tIiwiZmluZEF4aW9tQnlSZWZlcmVuY2UiLCJzYXRpc2ZpYWJsZSIsImlzU2F0aXNmaWFibGUiLCJzaWduYXR1cmVVbmlmaWVzIiwidW5pZnlTaWduYXR1cmUiLCJheGlvbVN0cmluZyIsInJlZmVyZW5jZFN0cmluZyIsInVuaWZ5U3RlcEFuZFN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMiLCJzdGVwIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyIsInN0ZXBBbmRTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zVW5pZnkiLCJzdGVwdFN0cmluZyIsImF4aW9tQ29tcGFyZXNUb1NpZ25hdHVyZSIsImNvbXBhcmVTaWduYXR1cmUiLCJzdWJzdGl0dXRpb25zQiIsInN1YnN0aXR1dGlvbnNBIiwic3Vic3RpdHV0aW9uc0NvcnJlbGF0ZSIsInN1YnN0aXR1dGlvbnNBU3RyaW5nIiwiYXNTdHJpbmciLCJzdWJzdGl0dXRpb25zQlN0cmluZyIsIm5hbWUiLCJmcm9tSlNPTiIsImpzb24iLCJpbnN0YW50aWF0ZSIsImRlZmluZWRBc3NlcnRpb25Ob2RlIiwiaW5zdGFudGlhdGVTaWduYXR1cmVBc3NlcnRpb24iLCJzaWduYXR1cmVGcm9tSlNpZ25hdHVyZUFzc2VydGlvbk5vZGUiLCJyZWZlcmVuY2VGcm9tSlNpZ25hdHVyZUFzc2VydGlvbk5vZGUiLCJmcm9tU3RlcCIsInN0YXRlbWVudE5vZGUiLCJnZXRTdGF0ZW1lbnROb2RlIiwic2lnbmF0dXJlQXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUiLCJmcm9tU3RhdGVtZW50Iiwic3RhdGVtZW50Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQUE7OztrRUFQc0I7MEJBRUM7eUJBQ0s7NkJBQ2tCO3lCQUNrRjs7Ozs7O01BRWhJLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsMkJBQTJCQyxrQkFBUztJQUM5RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRUMsU0FBUyxDQUFFO1FBQ2xFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO1FBQ2pCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNGLFNBQVM7SUFDdkI7SUFFQUcsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRixTQUFTO0lBQ3ZCO0lBRUFHLDRCQUE0QjtRQUMxQixNQUFNTixPQUFPLElBQUksQ0FBQ08sT0FBTyxJQUNuQkMseUJBQXlCUixNQUFPLEdBQUc7UUFFekMsT0FBT1E7SUFDVDtJQUVBQyxxQkFBcUJDLGNBQWEsRUFBRVosT0FBTyxF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
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2VydGlvbi9zaWduYXR1cmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBBc3NlcnRpb24gZnJvbSBcIi4uL2Fzc2VydGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZVNpZ25hdHVyZUFzc2VydGlvbiB9IGZyb20gXCIuLi8uLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyBzaWduYXR1cmVGcm9tU2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSwgcmVmZXJlbmNlRnJvbVNpZ25hdHVyZUFzc2VydGlvbk5vZGUsIHNpZ25hdHVyZUFzc2VydGlvbkZyb21TdGF0ZW1lbnROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBTaWduYXR1cmVBc3NlcnRpb24gZXh0ZW5kcyBBc3NlcnRpb24ge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGxpbmVJbmRleCwgc2lnbmF0dXJlLCByZWZlcmVuY2UpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGxpbmVJbmRleCk7XG5cbiAgICB0aGlzLnNpZ25hdHVyZSA9IHNpZ25hdHVyZTtcbiAgICB0aGlzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZTtcbiAgfVxuXG4gIGdldFNpZ25hdHVyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zaWduYXR1cmU7XG4gIH1cblxuICBnZXRSZWZlcmVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlO1xuICB9XG5cbiAgZ2V0U2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgc2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgIHJldHVybiBzaWduYXR1cmVBc3NlcnRpb25Ob2RlO1xuICB9XG5cbiAgY29tcGFyZVN1YnN0aXR1dGlvbnMoc3Vic3RpdHV0aW9ucywgY29udGV4dCkgeyByZXR1cm4gdGhpcy5zaWduYXR1cmUuY29tcGFyZVN1YnN0aXR1dGlvbnMoc3Vic3RpdHV0aW9ucywgY29udGV4dCk7IH1cblxuICBjb3JyZWxhdGVTdWJzdGl0dXRpb25zKHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpIHsgcmV0dXJuIHRoaXMuc2lnbmF0dXJlLmNvcnJlbGF0ZVN1YnN0aXR1dGlvbnMoc3Vic3RpdHV0aW9ucywgY29udGV4dCk7IH1cblxuICB2YWxpZGF0ZShjb250ZXh0KSB7XG4gICAgbGV0IHNpZ25hdHVyZUFzc2VydGlvbiA9IG51bGw7XG5cbiAgICBjb25zdCBzaWduYXR1cmVBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24uLi5gKTtcblxuICAgIGxldCB2YWxpZGF0ZXMgPSB0cnVlO1xuXG4gICAgY29uc3QgdmFsaWRBc3NlcnRpb24gPSB0aGlzLmZpbmRWYWxpZEFzc2VydGlvbihjb250ZXh0KTtcblxuICAgIGlmICh2YWxpZEFzc2VydGlvbikge1xuICAgICAgdmFsaWRhdGVzID0gdHJ1ZTtcblxuICAgICAgc2lnbmF0dXJlQXNzZXJ0aW9uID0gdmFsaWRBc3NlcnRpb247IC8vL1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi50aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbiBpcyBhbHJlYWR5IHZhbGlkLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzaWduYXR1cmVWZXJpZmllcyA9IHRoaXMudmFsaWRhdGVTaWduYXR1cmUoY29udGV4dCk7XG5cbiAgICAgIGlmIChzaWduYXR1cmVWZXJpZmllcykge1xuICAgICAgICBjb25zdCByZWZlcmVuY2VWZXJpZmllcyA9IHRoaXMudmFsaWRhdGVSZWZlcmVuY2UoY29udGV4dCk7XG5cbiAgICAgICAgaWYgKHJlZmVyZW5jZVZlcmlmaWVzKSB7XG4gICAgICAgICAgdmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgY29uc3QgYXNzZXJ0aW9uID0gdGhpczsgLy8vXG5cbiAgICAgICAgc2lnbmF0dXJlQXNzZXJ0aW9uID0gYXNzZXJ0aW9uOyAvLy9cblxuICAgICAgICBjb250ZXh0LmFkZEFzc2VydGlvbihzaWduYXR1cmVBc3NlcnRpb24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlQXNzZXJ0aW9uO1xuICB9XG5cbiAgdmFsaWRhdGVTaWduYXR1cmUoY29udGV4dCkge1xuICAgIGxldCBzaWduYXR1cmVWYWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHNpZ25hdHVyZUFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nfScgc2lnbmF0dXJlIGFzc2VydGlvbidzIHNpZ25hdHVyZS4uLmApO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlID0gdGhpcy5zaWduYXR1cmUudmFsaWRhdGUoY29udGV4dCk7XG5cbiAgICBpZiAoc2lnbmF0dXJlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnNpZ25hdHVyZSA9IHNpZ25hdHVyZTtcblxuICAgICAgc2lnbmF0dXJlVmFsaWRhdGVzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoc2lnbmF0dXJlVmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24ncyBzaWduYXR1cmUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ25hdHVyZVZhbGlkYXRlcztcbiAgfVxuXG4gIHZhbGlkYXRlUmVmZXJlbmNlKGNvbnRleHQpIHtcbiAgICBsZXQgcmVmZXJlbmNlVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHNpZ25hdHVyZUFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24ncyByZWZlcmVuY2UuLi5gKTtcblxuICAgIGNvbnN0IHJlZmVyZW5jZSA9IHRoaXMucmVmZXJlbmNlLnZhbGlkYXRlKGNvbnRleHQpO1xuXG4gICAgaWYgKHJlZmVyZW5jZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgYXhpb20gPSBjb250ZXh0LmZpbmRBeGlvbUJ5UmVmZXJlbmNlKHJlZmVyZW5jZSk7XG5cbiAgICAgIGlmIChheGlvbSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzYXRpc2ZpYWJsZSA9IGF4aW9tLmlzU2F0aXNmaWFibGUoKTtcblxuICAgICAgICBpZiAoc2F0aXNmaWFibGUpIHtcbiAgICAgICAgICBjb25zdCBzaWduYXR1cmVVbmlmaWVzID0gYXhpb20udW5pZnlTaWduYXR1cmUodGhpcy5zaWduYXR1cmUsIGNvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKHNpZ25hdHVyZVVuaWZpZXMpIHtcbiAgICAgICAgICAgIHRoaXMucmVmZXJlbmNlID0gcmVmZXJlbmNlO1xuXG4gICAgICAgICAgICByZWZlcmVuY2VWZXJpZmllcyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGF4aW9tU3RyaW5nID0gYXhpb20uZ2V0U3RyaW5nKCk7XG5cbiAgICAgICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7YXhpb21TdHJpbmd9JyBheGlvbSBpcyBub3Qgc2F0aXNmaWFibGUuYCk7XG4gICAgICAgIH1cblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNkU3RyaW5nID0gcmVmZXJlbmNlLmdldFN0cmluZygpO1xuXG4gICAgICAgIGNvbnRleHQuZGVidWcoYFRoZXJlIGlzIG5vIGF4aW9tIGZvciB0aGUgJyR7cmVmZXJlbmNkU3RyaW5nfScgcmVmZXJlbmNlLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyZWZlcmVuY2VWZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uJ3MgcmVmZXJlbmNlLmApO1xuICAgIH1cblxuICAgIHJldHVybiByZWZlcmVuY2VWZXJpZmllcztcbiAgfVxuXG4gIHVuaWZ5U3RlcEFuZFN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMoc3RlcCwgc3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucywgY29udGV4dCkge1xuICAgIGxldCBzdGVwQW5kU3VicHJvb2ZPclByb29mQXNzZXJ0aW9uc1VuaWZ5ID0gZmFsc2U7XG5cbiAgICBjb25zdCBzdGVwdFN0cmluZyA9IHN0ZXAuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc2lnbmF0dXJlQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RlcHRTdHJpbmd9JyBzdGVwIHdpdGggdGhlICcke3NpZ25hdHVyZUFzc2VydGlvblN0cmluZ30nIHNpZ25hdHVyZSBhc3NlcnRpb24uLi5gKTtcblxuICAgIHRoaXMuc2lnbmF0dXJlLnZhbGlkYXRlKGNvbnRleHQpO1xuXG4gICAgY29uc3QgYXhpb20gPSBjb250ZXh0LmZpbmRBeGlvbUJ5UmVmZXJlbmNlKHRoaXMucmVmZXJlbmNlKSxcbiAgICAgICAgICBzYXRpc2ZpYWJsZSA9IGF4aW9tLmlzU2F0aXNmaWFibGUoKTtcblxuICAgIGlmIChzYXRpc2ZpYWJsZSkge1xuICAgICAgY29uc3QgYXhpb21Db21wYXJlc1RvU2lnbmF0dXJlID0gYXhpb20uY29tcGFyZVNpZ25hdHVyZSh0aGlzLnNpZ25hdHVyZSwgY29udGV4dCk7XG5cbiAgICAgIGlmIChheGlvbUNvbXBhcmVzVG9TaWduYXR1cmUpIHtcbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uc0IgPSBzdWJzdGl0dXRpb25zOyAvLy9cblxuICAgICAgICBzdGVwQW5kU3VicHJvb2ZPclByb29mQXNzZXJ0aW9uc1VuaWZ5ID0gdW5pZnlTdGVwQW5kU3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyhzdGVwLCBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zLCBjb250ZXh0KTtcblxuICAgICAgICBpZiAoc3RlcEFuZFN1YnByb29mT3JQcm9vZkFzc2VydGlvbnNVbmlmeSkge1xuICAgICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbnNBID0gc3Vic3RpdHV0aW9ucywgLy8vXG4gICAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uc0NvcnJlbGF0ZSA9IHN1YnN0aXR1dGlvbnNBLmNvcnJlbGF0ZVN1YnN0aXR1dGlvbnMoc3Vic3RpdHV0aW9uc0IpO1xuXG4gICAgICAgICAgaWYgKCFzdWJzdGl0dXRpb25zQ29ycmVsYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25zQVN0cmluZyA9IHN1YnN0aXR1dGlvbnNBLmFzU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICBzdWJzdGl0dXRpb25zQlN0cmluZyA9IHN1YnN0aXR1dGlvbnNCLmFzU3RyaW5nKCk7XG5cbiAgICAgICAgICAgIGNvbnRleHQudHJhY2UoYFRIZSBzaWduYXR1cmUncyAke3N1YnN0aXR1dGlvbnNCU3RyaW5nfSBzdWJzdGl0dXRpb25zIGRvIG5vdCBjb3JyZWxhdGUgd2l0aCB0aGUgdW5pZmljYXRpb24ncyAke3N1YnN0aXR1dGlvbnNBU3RyaW5nfSBzdWJzdGl0dXRpb25zLmApO1xuXG4gICAgICAgICAgICBzdGVwQW5kU3VicHJvb2ZPclByb29mQXNzZXJ0aW9uc1VuaWZ5ID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN0ZXBBbmRTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zVW5pZnkpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N0ZXB0U3RyaW5nfScgc3RlcCB3aXRoIHRoZSAnJHtzaWduYXR1cmVBc3NlcnRpb25TdHJpbmd9JyBzaWduYXR1cmUgYXNzZXJ0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdGVwQW5kU3VicHJvb2ZPclByb29mQXNzZXJ0aW9uc1VuaWZ5O1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlNpZ25hdHVyZUFzc2VydGlvblwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IHNpZ25hdHVyZUFzc2VydGlvbiA9IG51bGw7XG5cbiAgICBjb25zdCB7IG5hbWUgfSA9IGpzb247XG5cbiAgICBpZiAodGhpcy5uYW1lID09PSBuYW1lKSB7XG4gICAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IHN0cmluZywgbGluZUluZGV4IH0gPSBqc29uLFxuICAgICAgICAgICAgICBkZWZpbmVkQXNzZXJ0aW9uTm9kZSA9IGluc3RhbnRpYXRlU2lnbmF0dXJlQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICAgIG5vZGUgPSBkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBzaWduYXR1cmUgPSBzaWduYXR1cmVGcm9tU2lnbmF0dXJlQXNzZXJ0aW9uTm9kZShkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHJlZmVyZW5jZSA9IHJlZmVyZW5jZUZyb21TaWduYXR1cmVBc3NlcnRpb25Ob2RlKGRlZmluZWRBc3NlcnRpb25Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgICBzaWduYXR1cmVBc3NlcnRpb24gPSBuZXcgU2lnbmF0dXJlQXNzZXJ0aW9uKGNvbnRleHQsIHN0cmluZywgbm9kZSwgbGluZUluZGV4LCBzaWduYXR1cmUsIHJlZmVyZW5jZSk7XG4gICAgICB9LCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlQXNzZXJ0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdGVwKHN0ZXAsIGNvbnRleHQpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RlcC5nZXRTdGF0ZW1lbnROb2RlKCksXG4gICAgICAgICAgc2lnbmF0dXJlQXNzZXJ0aW9uID0gc2lnbmF0dXJlQXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlQXNzZXJ0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAgc2lnbmF0dXJlQXNzZXJ0aW9uID0gc2lnbmF0dXJlQXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlQXNzZXJ0aW9uO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJTaWduYXR1cmVBc3NlcnRpb24iLCJBc3NlcnRpb24iLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImxpbmVJbmRleCIsInNpZ25hdHVyZSIsInJlZmVyZW5jZSIsImdldFNpZ25hdHVyZSIsImdldFJlZmVyZW5jZSIsImdldFNpZ25hdHVyZUFzc2VydGlvbk5vZGUiLCJnZXROb2RlIiwic2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSIsImNvbXBhcmVTdWJzdGl0dXRpb25zIiwic3Vic3RpdHV0aW9ucyIsImNvcnJlbGF0ZVN1YnN0aXR1dGlvbnMiLCJ2YWxpZGF0ZSIsInNpZ25hdHVyZUFzc2VydGlvbiIsInNpZ25hdHVyZUFzc2VydGlvblN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsaWRhdGVzIiwidmFsaWRBc3NlcnRpb24iLCJmaW5kVmFsaWRBc3NlcnRpb24iLCJkZWJ1ZyIsInNpZ25hdHVyZVZlcmlmaWVzIiwidmFsaWRhdGVTaWduYXR1cmUiLCJyZWZlcmVuY2VWZXJpZmllcyIsInZhbGlkYXRlUmVmZXJlbmNlIiwiYXNzZXJ0aW9uIiwiYWRkQXNzZXJ0aW9uIiwic2lnbmF0dXJlVmFsaWRhdGVzIiwiYXhpb20iLCJmaW5kQXhpb21CeVJlZmVyZW5jZSIsInNhdGlzZmlhYmxlIiwiaXNTYXRpc2ZpYWJsZSIsInNpZ25hdHVyZVVuaWZpZXMiLCJ1bmlmeVNpZ25hdHVyZSIsImF4aW9tU3RyaW5nIiwicmVmZXJlbmNkU3RyaW5nIiwidW5pZnlTdGVwQW5kU3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyIsInN0ZXAiLCJzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zIiwic3RlcEFuZFN1YnByb29mT3JQcm9vZkFzc2VydGlvbnNVbmlmeSIsInN0ZXB0U3RyaW5nIiwiYXhpb21Db21wYXJlc1RvU2lnbmF0dXJlIiwiY29tcGFyZVNpZ25hdHVyZSIsInN1YnN0aXR1dGlvbnNCIiwic3Vic3RpdHV0aW9uc0EiLCJzdWJzdGl0dXRpb25zQ29ycmVsYXRlIiwic3Vic3RpdHV0aW9uc0FTdHJpbmciLCJhc1N0cmluZyIsInN1YnN0aXR1dGlvbnNCU3RyaW5nIiwibmFtZSIsImZyb21KU09OIiwianNvbiIsImluc3RhbnRpYXRlIiwiZGVmaW5lZEFzc2VydGlvbk5vZGUiLCJpbnN0YW50aWF0ZVNpZ25hdHVyZUFzc2VydGlvbiIsInNpZ25hdHVyZUZyb21TaWduYXR1cmVBc3NlcnRpb25Ob2RlIiwicmVmZXJlbmNlRnJvbVNpZ25hdHVyZUFzc2VydGlvbk5vZGUiLCJmcm9tU3RlcCIsInN0YXRlbWVudE5vZGUiLCJnZXRTdGF0ZW1lbnROb2RlIiwic2lnbmF0dXJlQXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUiLCJmcm9tU3RhdGVtZW50Iiwic3RhdGVtZW50Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQUE7OztrRUFQc0I7MEJBRUM7eUJBQ0s7NkJBQ2tCO3lCQUNnRjs7Ozs7O01BRTlILFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsMkJBQTJCQyxrQkFBUztJQUM5RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRUMsU0FBUyxDQUFFO1FBQ2xFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO1FBQ2pCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNGLFNBQVM7SUFDdkI7SUFFQUcsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRixTQUFTO0lBQ3ZCO0lBRUFHLDRCQUE0QjtRQUMxQixNQUFNTixPQUFPLElBQUksQ0FBQ08sT0FBTyxJQUNuQkMseUJBQXlCUixNQUFPLEdBQUc7UUFFekMsT0FBT1E7SUFDVDtJQUVBQyxxQkFBcUJDLGNBQWEsRUFBRVosT0FBTyxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUNJLFNBQVMsQ0FBQ08sb0JBQW9CLENBQUNDLGdCQUFlWjtJQUFVO0lBRW5IYSx1QkFBdUJELGNBQWEsRUFBRVosT0FBTyxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUNJLFNBQVMsQ0FBQ1Msc0JBQXNCLENBQUNELGdCQUFlWjtJQUFVO0lBRXZIYyxTQUFTZCxPQUFPLEVBQUU7UUFDaEIsSUFBSWUscUJBQXFCO1FBRXpCLE1BQU1DLDJCQUEyQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRXREakIsUUFBUWtCLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRix5QkFBeUIsd0JBQXdCLENBQUM7UUFFbkYsSUFBSUcsWUFBWTtRQUVoQixNQUFNQyxpQkFBaUIsSUFBSSxDQUFDQyxrQkFBa0IsQ0FBQ3JCO1FBRS9DLElBQUlvQixnQkFBZ0I7WUFDbEJELFlBQVk7WUFFWkoscUJBQXFCSyxnQkFBZ0IsR0FBRztZQUV4Q3BCLFFBQVFzQixLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUVOLHlCQUF5Qix1Q0FBdUMsQ0FBQztRQUM1RixPQUFPO1lBQ0wsTUFBTU8sb0JBQW9CLElBQUksQ0FBQ0MsaUJBQWlCLENBQUN4QjtZQUVqRCxJQUFJdUIsbUJBQW1CO2dCQUNyQixNQUFNRSxvQkFBb0IsSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQzFCO2dCQUVqRCxJQUFJeUIsbUJBQW1CO29CQUNyQk4sWUFBWTtnQkFDZDtnQkFFQUEsWUFBWTtZQUNkO1lBRUEsSUFBSUEsV0FBVztnQkFDYixNQUFNUSxZQUFZLElBQUksRUFBRSxHQUFHO2dCQUUzQloscUJBQXFCWSxXQUFXLEdBQUc7Z0JBRW5DM0IsUUFBUTRCLFlBQVksQ0FBQ2I7WUFDdkI7UUFDRjtRQUVBLElBQUlJLFdBQVc7WUFDYm5CLFFBQVFzQixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRU4seUJBQXlCLHNCQUFzQixDQUFDO1FBQ3JGO1FBRUEsT0FBT0Q7SUFDVDtJQUVBUyxrQkFBa0J4QixPQUFPLEVBQUU7UUFDekIsSUFBSTZCLHFCQUFxQjtRQUV6QixNQUFNYiwyQkFBMkIsSUFBSSxDQUFDQyxTQUFTLElBQUksR0FBRztRQUV0RGpCLFFBQVFrQixLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYseUJBQXlCLG9DQUFvQyxDQUFDO1FBRS9GLE1BQU1aLFlBQVksSUFBSSxDQUFDQSxTQUFTLENBQUNVLFFBQVEsQ0FBQ2Q7UUFFMUMsSUFBSUksY0FBYyxNQUFNO1lBQ3RCLElBQUksQ0FBQ0EsU0FBUyxHQUFHQTtZQUVqQnlCLHFCQUFxQjtRQUN2QjtRQUVBLElBQUlBLG9CQUFvQjtZQUN0QjdCLFFBQVFzQixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRU4seUJBQXlCLGtDQUFrQyxDQUFDO1FBQ2pHO1FBRUEsT0FBT2E7SUFDVDtJQUVBSCxrQkFBa0IxQixPQUFPLEVBQUU7UUFDekIsSUFBSXlCLG9CQUFvQjtRQUV4QixNQUFNVCwyQkFBMkIsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUV2RGpCLFFBQVFrQixLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYseUJBQXlCLG9DQUFvQyxDQUFDO1FBRS9GLE1BQU1YLFlBQVksSUFBSSxDQUFDQSxTQUFTLENBQUNTLFFBQVEsQ0FBQ2Q7UUFFMUMsSUFBSUssY0FBYyxNQUFNO1lBQ3RCLE1BQU15QixRQUFROUIsUUFBUStCLG9CQUFvQixDQUFDMUI7WUFFM0MsSUFBSXlCLFVBQVUsTUFBTTtnQkFDbEIsTUFBTUUsY0FBY0YsTUFBTUcsYUFBYTtnQkFFdkMsSUFBSUQsYUFBYTtvQkFDZixNQUFNRSxtQkFBbUJKLE1BQU1LLGNBQWMsQ0FBQyxJQUFJLENBQUMvQixTQUFTLEVBQUVKO29CQUU5RCxJQUFJa0Msa0JBQWtCO3dCQUNwQixJQUFJLENBQUM3QixTQUFTLEdBQUdBO3dCQUVqQm9CLG9CQUFvQjtvQkFDdEI7Z0JBQ0YsT0FBTztvQkFDTCxNQUFNVyxjQUFjTixNQUFNYixTQUFTO29CQUVuQ2pCLFFBQVFzQixLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUVjLFlBQVksMkJBQTJCLENBQUM7Z0JBQ2hFO1lBRUYsT0FBTztnQkFDTCxNQUFNQyxrQkFBa0JoQyxVQUFVWSxTQUFTO2dCQUUzQ2pCLFFBQVFzQixLQUFLLENBQUMsQ0FBQywyQkFBMkIsRUFBRWUsZ0JBQWdCLFlBQVksQ0FBQztZQUMzRTtRQUNGO1FBRUEsSUFBSVosbUJBQW1CO1lBQ3JCekIsUUFBUXNCLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFTix5QkFBeUIsa0NBQWtDLENBQUM7UUFDakc7UUFFQSxPQUFPUztJQUNUO0lBRUFhLHNDQUFzQ0MsSUFBSSxFQUFFQyx5QkFBeUIsRUFBRXhDLE9BQU8sRUFBRTtRQUM5RSxJQUFJeUMsd0NBQXdDO1FBRTVDLE1BQU1DLGNBQWNILEtBQUt0QixTQUFTLElBQzVCRCwyQkFBMkIsSUFBSSxDQUFDQyxTQUFTLElBQUksR0FBRztRQUV0RGpCLFFBQVFrQixLQUFLLENBQUMsQ0FBQyxjQUFjLEVBQUV3QixZQUFZLGlCQUFpQixFQUFFMUIseUJBQXlCLHdCQUF3QixDQUFDO1FBRWhILElBQUksQ0FBQ1osU0FBUyxDQUFDVSxRQUFRLENBQUNkO1FBRXhCLE1BQU04QixRQUFROUIsUUFBUStCLG9CQUFvQixDQUFDLElBQUksQ0FBQzFCLFNBQVMsR0FDbkQyQixjQUFjRixNQUFNRyxhQUFhO1FBRXZDLElBQUlELGFBQWE7WUFDZixNQUFNVywyQkFBMkJiLE1BQU1jLGdCQUFnQixDQUFDLElBQUksQ0FBQ3hDLFNBQVMsRUFBRUo7WUFFeEUsSUFBSTJDLDBCQUEwQjtnQkFDNUIsTUFBTUUsaUJBQWlCakMsZUFBZSxHQUFHO2dCQUV6QzZCLHdDQUF3Q0gsc0NBQXNDQyxNQUFNQywyQkFBMkJ4QztnQkFFL0csSUFBSXlDLHVDQUF1QztvQkFDekMsTUFBTUssaUJBQWlCbEMsZUFDakJtQyx5QkFBeUJELGVBQWVqQyxzQkFBc0IsQ0FBQ2dDO29CQUVyRSxJQUFJLENBQUNFLHdCQUF3Qjt3QkFDM0IsTUFBTUMsdUJBQXVCRixlQUFlRyxRQUFRLElBQzlDQyx1QkFBdUJMLGVBQWVJLFFBQVE7d0JBRXBEakQsUUFBUWtCLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFZ0MscUJBQXFCLHVEQUF1RCxFQUFFRixxQkFBcUIsZUFBZSxDQUFDO3dCQUVwSlAsd0NBQXdDO29CQUMxQztnQkFDRjtZQUNGO1FBQ0Y7UUFFQSxJQUFJQSx1Q0FBdUM7WUFDekN6QyxRQUFRc0IsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVvQixZQUFZLGlCQUFpQixFQUFFMUIseUJBQXlCLHNCQUFzQixDQUFDO1FBQ2xIO1FBRUEsT0FBT3lCO0lBQ1Q7SUFFQSxPQUFPVSxPQUFPLHFCQUFxQjtJQUVuQyxPQUFPQyxTQUFTQyxJQUFJLEVBQUVyRCxPQUFPLEVBQUU7UUFDN0IsSUFBSWUscUJBQXFCO1FBRXpCLE1BQU0sRUFBRW9DLElBQUksRUFBRSxHQUFHRTtRQUVqQixJQUFJLElBQUksQ0FBQ0YsSUFBSSxLQUFLQSxNQUFNO1lBQ3RCRyxJQUFBQSxvQkFBVyxFQUFDLENBQUN0RDtnQkFDWCxNQUFNLEVBQUVDLE1BQU0sRUFBRUUsU0FBUyxFQUFFLEdBQUdrRCxNQUN4QkUsdUJBQXVCQyxJQUFBQSwwQ0FBNkIsRUFBQ3ZELFFBQVFELFVBQzdERSxPQUFPcUQsc0JBQ1BuRCxZQUFZcUQsSUFBQUEsNENBQW1DLEVBQUNGLHNCQUFzQnZELFVBQ3RFSyxZQUFZcUQsSUFBQUEsNENBQW1DLEVBQUNILHNCQUFzQnZEO2dCQUU1RUEsVUFBVTtnQkFFVmUscUJBQXFCLElBQUlqQixtQkFBbUJFLFNBQVNDLFFBQVFDLE1BQU1DLFdBQVdDLFdBQVdDO1lBQzNGLEdBQUdMO1FBQ0w7UUFFQSxPQUFPZTtJQUNUO0lBRUEsT0FBTzRDLFNBQVNwQixJQUFJLEVBQUV2QyxPQUFPLEVBQUU7UUFDN0IsTUFBTTRELGdCQUFnQnJCLEtBQUtzQixnQkFBZ0IsSUFDckM5QyxxQkFBcUIrQyxJQUFBQSw0Q0FBbUMsRUFBQ0YsZUFBZTVEO1FBRTlFLE9BQU9lO0lBQ1Q7SUFFQSxPQUFPZ0QsY0FBY0MsU0FBUyxFQUFFaEUsT0FBTyxFQUFFO1FBQ3ZDLE1BQU00RCxnQkFBZ0JJLFVBQVV2RCxPQUFPLElBQ2pDTSxxQkFBcUIrQyxJQUFBQSw0Q0FBbUMsRUFBQ0YsZUFBZTVEO1FBRTlFLE9BQU9lO0lBQ1Q7QUFDRiJ9
|
package/lib/element/signature.js
CHANGED
|
@@ -35,6 +35,14 @@ const _default = (0, _elements.define)(class Signature extends _occamlanguages.E
|
|
|
35
35
|
const term = this.terms[index];
|
|
36
36
|
return term;
|
|
37
37
|
}
|
|
38
|
+
isEqualTo(signature) {
|
|
39
|
+
const signatureNode = signature.getNode(), signatureNodeMatches = this.matchSignatureNode(signatureNode), equalTo = signatureNodeMatches; ///
|
|
40
|
+
return equalTo;
|
|
41
|
+
}
|
|
42
|
+
matchSignatureNode(signatureNode) {
|
|
43
|
+
const node = signatureNode, nodeMatches = this.matchNode(node), signatureNodeMatches = nodeMatches; ///
|
|
44
|
+
return signatureNodeMatches;
|
|
45
|
+
}
|
|
38
46
|
findValidSignature(context) {
|
|
39
47
|
const signatureNode = this.getSignatureNode(), signature = context.findSignatureBySignatureNode(signatureNode), validSignature = signature; ///
|
|
40
48
|
return validSignature;
|
|
@@ -193,12 +201,29 @@ const _default = (0, _elements.define)(class Signature extends _occamlanguages.E
|
|
|
193
201
|
let signature;
|
|
194
202
|
(0, _context.unserialise)((json, context)=>{
|
|
195
203
|
(0, _context.instantiate)((context)=>{
|
|
196
|
-
const { string, lineIndex } = json, signatureNode = (0, _instantiate.instantiateSignature)(string, context), node = signatureNode, terms =
|
|
204
|
+
const { string, lineIndex } = json, signatureNode = (0, _instantiate.instantiateSignature)(string, context), node = signatureNode, terms = termsFromSignatureNode(signatureNode, context);
|
|
197
205
|
signature = new Signature(context, string, node, lineIndex, terms);
|
|
198
206
|
}, context);
|
|
199
207
|
}, json, context);
|
|
200
208
|
return signature;
|
|
201
209
|
}
|
|
210
|
+
static fromSignatureString(signatureString, context) {
|
|
211
|
+
let signature;
|
|
212
|
+
(0, _context.ablate)((context)=>{
|
|
213
|
+
(0, _context.instantiate)((context)=>{
|
|
214
|
+
const string = signatureString, signatureNode = (0, _instantiate.instantiateSignature)(string, context);
|
|
215
|
+
signature = (0, _element.signatureFromSignatureNode)(signatureNode, context);
|
|
216
|
+
}, context);
|
|
217
|
+
}, context);
|
|
218
|
+
return signature;
|
|
219
|
+
}
|
|
202
220
|
});
|
|
221
|
+
function termsFromSignatureNode(signatureNode, context) {
|
|
222
|
+
const termNodes = signatureNode.getTermNodes(), terms = termNodes.map((termNode)=>{
|
|
223
|
+
const term = context.findTermByTermNode(termNode);
|
|
224
|
+
return term;
|
|
225
|
+
});
|
|
226
|
+
return terms;
|
|
227
|
+
}
|
|
203
228
|
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3NpZ25hdHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlU2lnbmF0dXJlIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IHRlcm1zRnJvbVNpZ25hdHVyZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IGF0dGVtcHQsIHJlY29uY2lsZSwgc2VyaWFsaXNlLCB1bnNlcmlhbGlzZSwgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyBtYXRjaCwgY29tcGFyZSwgY29ycmVsYXRlIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFNpZ25hdHVyZSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGxpbmVJbmRleCwgdGVybXMpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGxpbmVJbmRleCk7XG5cbiAgICB0aGlzLnRlcm1zID0gdGVybXM7XG4gIH1cblxuICBnZXRUZXJtcygpIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtcztcbiAgfVxuXG4gIGdldFNpZ25hdHVyZU5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHNpZ25hdHVyZU5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiBzaWduYXR1cmVOb2RlO1xuICB9XG5cbiAgZ2V0TGVuZ3RoKCkge1xuICAgIGNvbnN0IHRlcm1zTGVuZ3RoID0gdGhpcy50ZXJtcy5sZW5ndGgsXG4gICAgICAgICAgbGVuZ3RoID0gdGVybXNMZW5ndGg7IC8vL1xuXG4gICAgcmV0dXJuIGxlbmd0aDtcbiAgfVxuXG4gIGdldFRlcm0oaW5kZXgpIHtcbiAgICBjb25zdCB0ZXJtID0gdGhpcy50ZXJtc1tpbmRleF07XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIGZpbmRWYWxpZFNpZ25hdHVyZShjb250ZXh0KSB7XG4gICAgY29uc3Qgc2lnbmF0dXJlTm9kZSA9IHRoaXMuZ2V0U2lnbmF0dXJlTm9kZSgpLFxuICAgICAgICAgIHNpZ25hdHVyZSA9IGNvbnRleHQuZmluZFNpZ25hdHVyZUJ5U2lnbmF0dXJlTm9kZShzaWduYXR1cmVOb2RlKSxcbiAgICAgICAgICB2YWxpZFNpZ25hdHVyZSA9IHNpZ25hdHVyZTsgIC8vL1xuXG4gICAgcmV0dXJuIHZhbGlkU2lnbmF0dXJlO1xuICB9XG5cbiAgdmVyaWZ5KGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHNpZ25hdHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlLi4uYCk7XG5cbiAgICBhdHRlbXB0KChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB0ZXJtc1ZhbGlkYXRlID0gdGhpcy52YWxpZGF0ZVRlcm1zKGNvbnRleHQpO1xuXG4gICAgICBpZiAodGVybXNWYWxpZGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgICB0aGlzLmNvbW1pdChjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9LCBjb250ZXh0KTtcblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgdmFsaWRhdGUoY29udGV4dCkge1xuICAgIGxldCBzaWduYXR1cmUgPSBudWxsO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlLi4uYCk7XG5cbiAgICBsZXQgdmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCB2YWxpZFNpZ25hdHVyZSA9IHRoaXMuZmluZFZhbGlkU2lnbmF0dXJlKGNvbnRleHQpO1xuXG4gICAgaWYgKHZhbGlkU2lnbmF0dXJlKSB7XG4gICAgICBzaWduYXR1cmUgPSB2YWxpZFNpZ25hdHVyZTsgIC8vL1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi50aGUgJyR7c2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlIGlzIGFscmVhZHkgdmFsaWQuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHQ7ICAvLy9cblxuICAgICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgICBhdHRlbXB0KChjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHRlcm1zVmFsaWRhdGUgPSB0aGlzLnZhbGlkYXRlVGVybXMoY29udGV4dCk7XG5cbiAgICAgICAgaWYgKHRlcm1zVmFsaWRhdGUgIT09IG51bGwpIHtcbiAgICAgICAgICB2YWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgICAgIHRoaXMuY29tbWl0KGNvbnRleHQpO1xuICAgICAgICB9XG4gICAgICB9LCBjb250ZXh0KTtcblxuICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgIHNpZ25hdHVyZSA9IHRoaXM7IC8vL1xuXG4gICAgICAgIGNvbnRleHQuYWRkU2lnbmF0dXJlKHNpZ25hdHVyZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ25hdHVyZTtcbiAgfVxuXG4gIHZhbGlkYXRlVGVybXMoY29udGV4dCkge1xuICAgIGxldCB0ZXJtc1ZhbGlkYXRlO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlJ3MgdGVybXMuLi5gKTtcblxuICAgIGNvbnN0IHRlcm1zID0gW107XG5cbiAgICB0ZXJtc1ZhbGlkYXRlID0gdGhpcy50ZXJtcy5ldmVyeSgodGVybSkgPT4ge1xuICAgICAgdGVybSA9IHRlcm0udmFsaWRhdGUoY29udGV4dCwgKHRlcm0pID0+IHsgLy8vXG4gICAgICAgIGNvbnN0IHZhbGlkYXRlc0ZvcndhcmRzID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gdmFsaWRhdGVzRm9yd2FyZHM7XG4gICAgICB9KTtcblxuICAgICAgaWYgKHRlcm0gIT09IG51bGwpIHtcbiAgICAgICAgdGVybXMucHVzaCh0ZXJtKTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh0ZXJtc1ZhbGlkYXRlKSB7XG4gICAgICB0aGlzLnRlcm1zID0gdGVybXM7XG4gICAgfVxuXG4gICAgaWYgKHRlcm1zVmFsaWRhdGUpe1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUncyB0ZXJtcy5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybXNWYWxpZGF0ZVxuICB9XG5cbiAgdW5pZnlTaWduYXR1cmUoc2lnbmF0dXJlLCBjb250ZXh0KSB7XG4gICAgbGV0IHNpZ25hdHVyZVVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGdlbmVyYWxTaWduYXR1cmUgPSB0aGlzLFxuICAgICAgICAgIHNwZWNpZmljU2lnbmF0dXJlID0gc2lnbmF0dXJlLCAgLy8vXG4gICAgICAgICAgZ2VuZXJhbFNpZ25hdHVyZVN0cmluZyA9IGdlbmVyYWxTaWduYXR1cmUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc3BlY2lmaWNTaWduYXR1cmVTdHJpbmcgPSBzcGVjaWZpY1NpZ25hdHVyZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzcGVjaWZpY1NpZ25hdHVyZVN0cmluZ30nIHNpZ25hdHVyZSB3aXRoIHRoZSAnJHtnZW5lcmFsU2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlLi4uYCk7XG5cbiAgICBjb250ZXh0ID0gc3BlY2lmaWNTaWduYXR1cmUuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29uc3Qgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuXG4gICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29uc3QgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0OyAvLy9cblxuICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgIHJlY29uY2lsZSgoc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBnZW5lcmFsU2lnbmF0dXJlVGVybXMgPSBnZW5lcmFsU2lnbmF0dXJlLmdldFRlcm1zKCksXG4gICAgICAgICAgICBzcGVjaWZpY1NpZ25hdHVyZVRlcm1zID0gc3BlY2lmaWNTaWduYXR1cmUuZ2V0VGVybXMoKSxcbiAgICAgICAgICAgIGdlbmVyYWxUZXJtcyA9IGdlbmVyYWxTaWduYXR1cmVUZXJtcywgIC8vL1xuICAgICAgICAgICAgc3BlY2lmaWNUZXJtcyA9IHNwZWNpZmljU2lnbmF0dXJlVGVybXM7IC8vL1xuXG4gICAgICBzaWduYXR1cmVVbmlmaWVzID0gbWF0Y2goZ2VuZXJhbFRlcm1zLCBzcGVjaWZpY1Rlcm1zLCAoZ2VuZXJhbFRlcm0sIHNwZWNpZmljVGVybSkgPT4ge1xuICAgICAgICBsZXQgdGVybVVuaWZpZXM7XG5cbiAgICAgICAgcmVjb25jaWxlKChzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgICB0ZXJtVW5pZmllcyA9IGdlbmVyYWxUZXJtLnVuaWZ5VGVybShzcGVjaWZpY1Rlcm0sIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKHRlcm1VbmlmaWVzKSB7XG4gICAgICAgICAgICBzcGVjaWZpY0NvbnRleHQuY29tbWl0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIGlmICh0ZXJtVW5pZmllcykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgaWYgKHNpZ25hdHVyZVVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3NwZWNpZmljU2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlIHdpdGggdGhlICcke2dlbmVyYWxTaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ25hdHVyZVVuaWZpZXM7XG4gIH1cblxuICBjb21wYXJlU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb25zLCBjb250ZXh0KSB7XG4gICAgbGV0IHN1YnN0aXR1dGlvbnNDb21wYXJlcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgIC8vL1xuICAgICAgICAgIHN1YnN0aXR1dGlvbnNTdHJpbmcgPSBzdWJzdGl0dXRpb25zLmFzU3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke3N1YnN0aXR1dGlvbnNTdHJpbmd9JyBzdWJzdGl0dXRpb25zIGFnYWluc3QgdGhlICcke3NpZ25hdHVyZVN0cmluZ30nIHNpZ25hdHVyZS4uLmApO1xuXG4gICAgY29uc3QgYXJyYXkgPSBzdWJzdGl0dXRpb25zLmdldEFycmF5KCksXG4gICAgICAgICAgY29tcGFyZXMgPSBjb21wYXJlKHRoaXMudGVybXMsIGFycmF5LCAodGVybSwgc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25UZXJtID0gc3Vic3RpdHV0aW9uLmdldFRlcm0oKSxcbiAgICAgICAgICAgICAgICAgIHN1YnN0aXR1dGlvblRlcm1FcXVhbFRvVGVybSA9IHN1YnN0aXR1dGlvblRlcm0uaXNFcXVhbFRvKHRlcm0pO1xuXG4gICAgICAgICAgICBpZiAoc3Vic3RpdHV0aW9uVGVybUVxdWFsVG9UZXJtKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgaWYgKGNvbXBhcmVzKSB7XG4gICAgICBzdWJzdGl0dXRpb25zQ29tcGFyZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChzdWJzdGl0dXRpb25zQ29tcGFyZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHtzdWJzdGl0dXRpb25zU3RyaW5nfScgc3Vic3RpdHV0aW9ucyBhZ2FpbnN0IHRoZSAnJHtzaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbnNDb21wYXJlcztcbiAgfVxuXG4gIGNvcnJlbGF0ZVN1YnN0aXR1dGlvbnMoc3Vic3RpdHV0aW9ucywgY29udGV4dCkge1xuICAgIGxldCBzdWJzdGl0dXRpb25zQ29ycmVsYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSwgIC8vL1xuICAgICAgICAgIHN1YnN0aXR1dGlvbnNTdHJpbmcgPSBzdWJzdGl0dXRpb25zLmFzU3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb3JyZWxhdGluZyB0aGUgJyR7c3Vic3RpdHV0aW9uc1N0cmluZ30nIHN1YnN0aXR1dGlvbnMgYWdhaW5zdCB0aGUgJyR7c2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlLi4uYCk7XG5cbiAgICBjb25zdCBhcnJheSA9IHN1YnN0aXR1dGlvbnMuZ2V0QXJyYXkoKSxcbiAgICAgICAgICBjb3JyZWxhdGVzID0gY29ycmVsYXRlKHRoaXMudGVybXMsIGFycmF5LCAodGVybSwgc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25UZXJtID0gc3Vic3RpdHV0aW9uLmdldFRlcm0oKSxcbiAgICAgICAgICAgICAgICAgIHN1YnN0aXR1dGlvblRlcm1FcXVhbFRvVGVybSA9IHN1YnN0aXR1dGlvblRlcm0uaXNFcXVhbFRvKHRlcm0pO1xuXG4gICAgICAgICAgICBpZiAoc3Vic3RpdHV0aW9uVGVybUVxdWFsVG9UZXJtKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgaWYgKGNvcnJlbGF0ZXMpIHtcbiAgICAgIHN1YnN0aXR1dGlvbnNDb3JyZWxhdGVzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uc0NvcnJlbGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvcnJlbGF0ZWQgdGhlICcke3N1YnN0aXR1dGlvbnNTdHJpbmd9JyBzdWJzdGl0dXRpb25zIGFnYWluc3QgdGhlICcke3NpZ25hdHVyZVN0cmluZ30nIHNpZ25hdHVyZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uc0NvcnJlbGF0ZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiU2lnbmF0dXJlXCI7XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIHJldHVybiBzZXJpYWxpc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBsaW5lSW5kZXggPSB0aGlzLmdldExpbmVJbmRleCgpLFxuICAgICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgICBsaW5lSW5kZXhcbiAgICAgICAgICAgIH07XG5cbiAgICAgIHJldHVybiBqc29uO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgc2lnbmF0dXJlO1xuXG4gICAgdW5zZXJpYWxpc2UoKGpzb24sIGNvbnRleHQpID0+IHtcbiAgICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3RyaW5nLCBsaW5lSW5kZXggfSA9IGpzb24sXG4gICAgICAgICAgICAgIHNpZ25hdHVyZU5vZGUgPSBpbnN0YW50aWF0ZVNpZ25hdHVyZShzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBub2RlID0gc2lnbmF0dXJlTm9kZSwgIC8vL1xuICAgICAgICAgICAgICB0ZXJtcyA9IHRlcm1zRnJvbVNpZ25hdHVyZU5vZGUoc2lnbmF0dXJlTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgc2lnbmF0dXJlID0gbmV3IFNpZ25hdHVyZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGxpbmVJbmRleCwgdGVybXMpO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfSwganNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJtYXRjaCIsImNvbXBhcmUiLCJjb3JyZWxhdGUiLCJhcnJheVV0aWxpdGllcyIsImRlZmluZSIsIlNpZ25hdHVyZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImxpbmVJbmRleCIsInRlcm1zIiwiZ2V0VGVybXMiLCJnZXRTaWduYXR1cmVOb2RlIiwiZ2V0Tm9kZSIsInNpZ25hdHVyZU5vZGUiLCJnZXRMZW5ndGgiLCJ0ZXJtc0xlbmd0aCIsImxlbmd0aCIsImdldFRlcm0iLCJpbmRleCIsInRlcm0iLCJmaW5kVmFsaWRTaWduYXR1cmUiLCJzaWduYXR1cmUiLCJmaW5kU2lnbmF0dXJlQnlTaWduYXR1cmVOb2RlIiwidmFsaWRTaWduYXR1cmUiLCJ2ZXJpZnkiLCJ2ZXJpZmllcyIsInNpZ25hdHVyZVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwiYXR0ZW1wdCIsInRlcm1zVmFsaWRhdGUiLCJ2YWxpZGF0ZVRlcm1zIiwiY29tbWl0IiwiZGVidWciLCJ2YWxpZGF0ZSIsInZhbGlkYXRlcyIsInNwZWNpZmljQ29udGV4dCIsImdldENvbnRleHQiLCJhZGRTaWduYXR1cmUiLCJldmVyeSIsInZhbGlkYXRlc0ZvcndhcmRzIiwicHVzaCIsInVuaWZ5U2lnbmF0dXJlIiwic2lnbmF0dXJlVW5pZmllcyIsImdlbmVyYWxTaWduYXR1cmUiLCJzcGVjaWZpY1NpZ25hdHVyZSIsImdlbmVyYWxTaWduYXR1cmVTdHJpbmciLCJzcGVjaWZpY1NpZ25hdHVyZVN0cmluZyIsImdlbmVyYWxDb250ZXh0IiwicmVjb25jaWxlIiwiZ2VuZXJhbFNpZ25hdHVyZVRlcm1zIiwic3BlY2lmaWNTaWduYXR1cmVUZXJtcyIsImdlbmVyYWxUZXJtcyIsInNwZWNpZmljVGVybXMiLCJnZW5lcmFsVGVybSIsInNwZWNpZmljVGVybSIsInRlcm1VbmlmaWVzIiwidW5pZnlUZXJtIiwiY29tcGFyZVN1YnN0aXR1dGlvbnMiLCJzdWJzdGl0dXRpb25zIiwic3Vic3RpdHV0aW9uc0NvbXBhcmVzIiwic3Vic3RpdHV0aW9uc1N0cmluZyIsImFzU3RyaW5nIiwiYXJyYXkiLCJnZXRBcnJheSIsImNvbXBhcmVzIiwic3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uVGVybSIsInN1YnN0aXR1dGlvblRlcm1FcXVhbFRvVGVybSIsImlzRXF1YWxUbyIsImNvcnJlbGF0ZVN1YnN0aXR1dGlvbnMiLCJzdWJzdGl0dXRpb25zQ29ycmVsYXRlcyIsImNvcnJlbGF0ZXMiLCJuYW1lIiwidG9KU09OIiwic2VyaWFsaXNlIiwiZ2V0TGluZUluZGV4IiwianNvbiIsImZyb21KU09OIiwidW5zZXJpYWxpc2UiLCJpbnN0YW50aWF0ZSIsImluc3RhbnRpYXRlU2lnbmF0dXJlIiwidGVybXNGcm9tU2lnbmF0dXJlTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBWUE7OztlQUFBOzs7Z0NBVndCOzJCQUNPOzBCQUVSOzZCQUNjO3lCQUNFO3lCQUNpQztBQUV4RSxNQUFNLEVBQUVBLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxTQUFTLEVBQUUsR0FBR0MseUJBQWM7TUFFcEQsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxrQkFBa0JDLHVCQUFPO0lBQ25ELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsS0FBSyxDQUFFO1FBQ25ELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO0lBQ2Y7SUFFQUMsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDRCxLQUFLO0lBQ25CO0lBRUFFLG1CQUFtQjtRQUNqQixNQUFNSixPQUFPLElBQUksQ0FBQ0ssT0FBTyxJQUNuQkMsZ0JBQWdCTixNQUFNLEdBQUc7UUFFL0IsT0FBT007SUFDVDtJQUVBQyxZQUFZO1FBQ1YsTUFBTUMsY0FBYyxJQUFJLENB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
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3NpZ25hdHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlU2lnbmF0dXJlIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IHNpZ25hdHVyZUZyb21TaWduYXR1cmVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyBhdHRlbXB0LCByZWNvbmNpbGUsIHNlcmlhbGlzZSwgdW5zZXJpYWxpc2UsIGluc3RhbnRpYXRlLCBhYmxhdGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyBtYXRjaCwgY29tcGFyZSwgY29ycmVsYXRlIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFNpZ25hdHVyZSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGxpbmVJbmRleCwgdGVybXMpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGxpbmVJbmRleCk7XG5cbiAgICB0aGlzLnRlcm1zID0gdGVybXM7XG4gIH1cblxuICBnZXRUZXJtcygpIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtcztcbiAgfVxuXG4gIGdldFNpZ25hdHVyZU5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHNpZ25hdHVyZU5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiBzaWduYXR1cmVOb2RlO1xuICB9XG5cbiAgZ2V0TGVuZ3RoKCkge1xuICAgIGNvbnN0IHRlcm1zTGVuZ3RoID0gdGhpcy50ZXJtcy5sZW5ndGgsXG4gICAgICAgICAgbGVuZ3RoID0gdGVybXNMZW5ndGg7IC8vL1xuXG4gICAgcmV0dXJuIGxlbmd0aDtcbiAgfVxuXG4gIGdldFRlcm0oaW5kZXgpIHtcbiAgICBjb25zdCB0ZXJtID0gdGhpcy50ZXJtc1tpbmRleF07XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIGlzRXF1YWxUbyhzaWduYXR1cmUpIHtcbiAgICBjb25zdCBzaWduYXR1cmVOb2RlID0gc2lnbmF0dXJlLmdldE5vZGUoKSxcbiAgICAgICAgICBzaWduYXR1cmVOb2RlTWF0Y2hlcyA9IHRoaXMubWF0Y2hTaWduYXR1cmVOb2RlKHNpZ25hdHVyZU5vZGUpLFxuICAgICAgICAgIGVxdWFsVG8gPSBzaWduYXR1cmVOb2RlTWF0Y2hlczsgIC8vL1xuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBtYXRjaFNpZ25hdHVyZU5vZGUoc2lnbmF0dXJlTm9kZSkge1xuICAgIGNvbnN0IG5vZGUgPSBzaWduYXR1cmVOb2RlLCAvLy9cbiAgICAgICAgICBub2RlTWF0Y2hlcyA9IHRoaXMubWF0Y2hOb2RlKG5vZGUpLFxuICAgICAgICAgIHNpZ25hdHVyZU5vZGVNYXRjaGVzID0gbm9kZU1hdGNoZXM7IC8vL1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZU5vZGVNYXRjaGVzO1xuICB9XG5cbiAgZmluZFZhbGlkU2lnbmF0dXJlKGNvbnRleHQpIHtcbiAgICBjb25zdCBzaWduYXR1cmVOb2RlID0gdGhpcy5nZXRTaWduYXR1cmVOb2RlKCksXG4gICAgICAgICAgc2lnbmF0dXJlID0gY29udGV4dC5maW5kU2lnbmF0dXJlQnlTaWduYXR1cmVOb2RlKHNpZ25hdHVyZU5vZGUpLFxuICAgICAgICAgIHZhbGlkU2lnbmF0dXJlID0gc2lnbmF0dXJlOyAgLy8vXG5cbiAgICByZXR1cm4gdmFsaWRTaWduYXR1cmU7XG4gIH1cblxuICB2ZXJpZnkoY29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUuLi5gKTtcblxuICAgIGF0dGVtcHQoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHRlcm1zVmFsaWRhdGUgPSB0aGlzLnZhbGlkYXRlVGVybXMoY29udGV4dCk7XG5cbiAgICAgIGlmICh0ZXJtc1ZhbGlkYXRlICE9PSBudWxsKSB7XG4gICAgICAgIHZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICAgIHRoaXMuY29tbWl0KGNvbnRleHQpO1xuICAgICAgfVxuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3NpZ25hdHVyZVN0cmluZ30nIHNpZ25hdHVyZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZXM7XG4gIH1cblxuICB2YWxpZGF0ZShjb250ZXh0KSB7XG4gICAgbGV0IHNpZ25hdHVyZSA9IG51bGw7XG5cbiAgICBjb25zdCBzaWduYXR1cmVTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUuLi5gKTtcblxuICAgIGxldCB2YWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHZhbGlkU2lnbmF0dXJlID0gdGhpcy5maW5kVmFsaWRTaWduYXR1cmUoY29udGV4dCk7XG5cbiAgICBpZiAodmFsaWRTaWduYXR1cmUpIHtcbiAgICAgIHNpZ25hdHVyZSA9IHZhbGlkU2lnbmF0dXJlOyAgLy8vXG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnRoZSAnJHtzaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUgaXMgYWxyZWFkeSB2YWxpZC5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuXG4gICAgICBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICAgIGF0dGVtcHQoKGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgdGVybXNWYWxpZGF0ZSA9IHRoaXMudmFsaWRhdGVUZXJtcyhjb250ZXh0KTtcblxuICAgICAgICBpZiAodGVybXNWYWxpZGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgICAgdGhpcy5jb21taXQoY29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH0sIGNvbnRleHQpO1xuXG4gICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgc2lnbmF0dXJlID0gdGhpczsgLy8vXG5cbiAgICAgICAgY29udGV4dC5hZGRTaWduYXR1cmUoc2lnbmF0dXJlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3NpZ25hdHVyZVN0cmluZ30nIHNpZ25hdHVyZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlO1xuICB9XG5cbiAgdmFsaWRhdGVUZXJtcyhjb250ZXh0KSB7XG4gICAgbGV0IHRlcm1zVmFsaWRhdGU7XG5cbiAgICBjb25zdCBzaWduYXR1cmVTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUncyB0ZXJtcy4uLmApO1xuXG4gICAgY29uc3QgdGVybXMgPSBbXTtcblxuICAgIHRlcm1zVmFsaWRhdGUgPSB0aGlzLnRlcm1zLmV2ZXJ5KCh0ZXJtKSA9PiB7XG4gICAgICB0ZXJtID0gdGVybS52YWxpZGF0ZShjb250ZXh0LCAodGVybSkgPT4geyAvLy9cbiAgICAgICAgY29uc3QgdmFsaWRhdGVzRm9yd2FyZHMgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB2YWxpZGF0ZXNGb3J3YXJkcztcbiAgICAgIH0pO1xuXG4gICAgICBpZiAodGVybSAhPT0gbnVsbCkge1xuICAgICAgICB0ZXJtcy5wdXNoKHRlcm0pO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRlcm1zVmFsaWRhdGUpIHtcbiAgICAgIHRoaXMudGVybXMgPSB0ZXJtcztcbiAgICB9XG5cbiAgICBpZiAodGVybXNWYWxpZGF0ZSl7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3NpZ25hdHVyZVN0cmluZ30nIHNpZ25hdHVyZSdzIHRlcm1zLmApO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtc1ZhbGlkYXRlXG4gIH1cblxuICB1bmlmeVNpZ25hdHVyZShzaWduYXR1cmUsIGNvbnRleHQpIHtcbiAgICBsZXQgc2lnbmF0dXJlVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgZ2VuZXJhbFNpZ25hdHVyZSA9IHRoaXMsXG4gICAgICAgICAgc3BlY2lmaWNTaWduYXR1cmUgPSBzaWduYXR1cmUsICAvLy9cbiAgICAgICAgICBnZW5lcmFsU2lnbmF0dXJlU3RyaW5nID0gZ2VuZXJhbFNpZ25hdHVyZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzcGVjaWZpY1NpZ25hdHVyZVN0cmluZyA9IHNwZWNpZmljU2lnbmF0dXJlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3NwZWNpZmljU2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlIHdpdGggdGhlICcke2dlbmVyYWxTaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUuLi5gKTtcblxuICAgIGNvbnRleHQgPSBzcGVjaWZpY1NpZ25hdHVyZS5nZXRDb250ZXh0KCk7XG5cbiAgICBjb25zdCBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0OyAgLy8vXG5cbiAgICBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb25zdCBnZW5lcmFsQ29udGV4dCA9IGNvbnRleHQ7IC8vL1xuXG4gICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgcmVjb25jaWxlKChzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGdlbmVyYWxTaWduYXR1cmVUZXJtcyA9IGdlbmVyYWxTaWduYXR1cmUuZ2V0VGVybXMoKSxcbiAgICAgICAgICAgIHNwZWNpZmljU2lnbmF0dXJlVGVybXMgPSBzcGVjaWZpY1NpZ25hdHVyZS5nZXRUZXJtcygpLFxuICAgICAgICAgICAgZ2VuZXJhbFRlcm1zID0gZ2VuZXJhbFNpZ25hdHVyZVRlcm1zLCAgLy8vXG4gICAgICAgICAgICBzcGVjaWZpY1Rlcm1zID0gc3BlY2lmaWNTaWduYXR1cmVUZXJtczsgLy8vXG5cbiAgICAgIHNpZ25hdHVyZVVuaWZpZXMgPSBtYXRjaChnZW5lcmFsVGVybXMsIHNwZWNpZmljVGVybXMsIChnZW5lcmFsVGVybSwgc3BlY2lmaWNUZXJtKSA9PiB7XG4gICAgICAgIGxldCB0ZXJtVW5pZmllcztcblxuICAgICAgICByZWNvbmNpbGUoKHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICAgIHRlcm1VbmlmaWVzID0gZ2VuZXJhbFRlcm0udW5pZnlUZXJtKHNwZWNpZmljVGVybSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgICAgICBpZiAodGVybVVuaWZpZXMpIHtcbiAgICAgICAgICAgIHNwZWNpZmljQ29udGV4dC5jb21taXQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHRlcm1VbmlmaWVzKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICBpZiAoc2lnbmF0dXJlVW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3BlY2lmaWNTaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUgd2l0aCB0aGUgJyR7Z2VuZXJhbFNpZ25hdHVyZVN0cmluZ30nIHNpZ25hdHVyZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlVW5pZmllcztcbiAgfVxuXG4gIGNvbXBhcmVTdWJzdGl0dXRpb25zKHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpIHtcbiAgICBsZXQgc3Vic3RpdHV0aW9uc0NvbXBhcmVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBzaWduYXR1cmVTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAgLy8vXG4gICAgICAgICAgc3Vic3RpdHV0aW9uc1N0cmluZyA9IHN1YnN0aXR1dGlvbnMuYXNTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYENvbXBhcmluZyB0aGUgJyR7c3Vic3RpdHV0aW9uc1N0cmluZ30nIHN1YnN0aXR1dGlvbnMgYWdhaW5zdCB0aGUgJyR7c2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlLi4uYCk7XG5cbiAgICBjb25zdCBhcnJheSA9IHN1YnN0aXR1dGlvbnMuZ2V0QXJyYXkoKSxcbiAgICAgICAgICBjb21wYXJlcyA9IGNvbXBhcmUodGhpcy50ZXJtcywgYXJyYXksICh0ZXJtLCBzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvblRlcm0gPSBzdWJzdGl0dXRpb24uZ2V0VGVybSgpLFxuICAgICAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uVGVybUVxdWFsVG9UZXJtID0gc3Vic3RpdHV0aW9uVGVybS5pc0VxdWFsVG8odGVybSk7XG5cbiAgICAgICAgICAgIGlmIChzdWJzdGl0dXRpb25UZXJtRXF1YWxUb1Rlcm0pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICBpZiAoY29tcGFyZXMpIHtcbiAgICAgIHN1YnN0aXR1dGlvbnNDb21wYXJlcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHN1YnN0aXR1dGlvbnNDb21wYXJlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke3N1YnN0aXR1dGlvbnNTdHJpbmd9JyBzdWJzdGl0dXRpb25zIGFnYWluc3QgdGhlICcke3NpZ25hdHVyZVN0cmluZ30nIHNpZ25hdHVyZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uc0NvbXBhcmVzO1xuICB9XG5cbiAgY29ycmVsYXRlU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb25zLCBjb250ZXh0KSB7XG4gICAgbGV0IHN1YnN0aXR1dGlvbnNDb3JyZWxhdGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBzaWduYXR1cmVTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAgLy8vXG4gICAgICAgICAgc3Vic3RpdHV0aW9uc1N0cmluZyA9IHN1YnN0aXR1dGlvbnMuYXNTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYENvcnJlbGF0aW5nIHRoZSAnJHtzdWJzdGl0dXRpb25zU3RyaW5nfScgc3Vic3RpdHV0aW9ucyBhZ2FpbnN0IHRoZSAnJHtzaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUuLi5gKTtcblxuICAgIGNvbnN0IGFycmF5ID0gc3Vic3RpdHV0aW9ucy5nZXRBcnJheSgpLFxuICAgICAgICAgIGNvcnJlbGF0ZXMgPSBjb3JyZWxhdGUodGhpcy50ZXJtcywgYXJyYXksICh0ZXJtLCBzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvblRlcm0gPSBzdWJzdGl0dXRpb24uZ2V0VGVybSgpLFxuICAgICAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uVGVybUVxdWFsVG9UZXJtID0gc3Vic3RpdHV0aW9uVGVybS5pc0VxdWFsVG8odGVybSk7XG5cbiAgICAgICAgICAgIGlmIChzdWJzdGl0dXRpb25UZXJtRXF1YWxUb1Rlcm0pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICBpZiAoY29ycmVsYXRlcykge1xuICAgICAgc3Vic3RpdHV0aW9uc0NvcnJlbGF0ZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChzdWJzdGl0dXRpb25zQ29ycmVsYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uY29ycmVsYXRlZCB0aGUgJyR7c3Vic3RpdHV0aW9uc1N0cmluZ30nIHN1YnN0aXR1dGlvbnMgYWdhaW5zdCB0aGUgJyR7c2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJzdGl0dXRpb25zQ29ycmVsYXRlcztcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJTaWduYXR1cmVcIjtcblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgcmV0dXJuIHNlcmlhbGlzZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIGxpbmVJbmRleCA9IHRoaXMuZ2V0TGluZUluZGV4KCksXG4gICAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICAgIGxpbmVJbmRleFxuICAgICAgICAgICAgfTtcblxuICAgICAgcmV0dXJuIGpzb247XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGxldCBzaWduYXR1cmU7XG5cbiAgICB1bnNlcmlhbGlzZSgoanNvbiwgY29udGV4dCkgPT4ge1xuICAgICAgaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdHJpbmcsIGxpbmVJbmRleCB9ID0ganNvbixcbiAgICAgICAgICAgICAgc2lnbmF0dXJlTm9kZSA9IGluc3RhbnRpYXRlU2lnbmF0dXJlKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICAgIG5vZGUgPSBzaWduYXR1cmVOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIHRlcm1zID0gdGVybXNGcm9tU2lnbmF0dXJlTm9kZShzaWduYXR1cmVOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBzaWduYXR1cmUgPSBuZXcgU2lnbmF0dXJlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgbGluZUluZGV4LCB0ZXJtcyk7XG4gICAgICB9LCBjb250ZXh0KTtcbiAgICB9LCBqc29uLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBzaWduYXR1cmU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVNpZ25hdHVyZVN0cmluZyhzaWduYXR1cmVTdHJpbmcsIGNvbnRleHQpIHtcbiAgICBsZXQgc2lnbmF0dXJlO1xuXG4gICAgYWJsYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBzdHJpbmcgPSBzaWduYXR1cmVTdHJpbmcsICAvLy9cbiAgICAgICAgICAgICAgc2lnbmF0dXJlTm9kZSA9IGluc3RhbnRpYXRlU2lnbmF0dXJlKHN0cmluZywgY29udGV4dCk7XG5cbiAgICAgICAgc2lnbmF0dXJlID0gc2lnbmF0dXJlRnJvbVNpZ25hdHVyZU5vZGUoc2lnbmF0dXJlTm9kZSwgY29udGV4dCk7XG4gICAgICB9LCBjb250ZXh0KTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBzaWduYXR1cmU7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiB0ZXJtc0Zyb21TaWduYXR1cmVOb2RlKHNpZ25hdHVyZU5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgdGVybU5vZGVzID0gc2lnbmF0dXJlTm9kZS5nZXRUZXJtTm9kZXMoKSxcbiAgICAgICAgdGVybXMgPSB0ZXJtTm9kZXMubWFwKCh0ZXJtTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRlcm0gPSBjb250ZXh0LmZpbmRUZXJtQnlUZXJtTm9kZSh0ZXJtTm9kZSk7XG5cbiAgICAgICAgICByZXR1cm4gdGVybTtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIHRlcm1zO1xufVxuIl0sIm5hbWVzIjpbIm1hdGNoIiwiY29tcGFyZSIsImNvcnJlbGF0ZSIsImFycmF5VXRpbGl0aWVzIiwiZGVmaW5lIiwiU2lnbmF0dXJlIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwibGluZUluZGV4IiwidGVybXMiLCJnZXRUZXJtcyIsImdldFNpZ25hdHVyZU5vZGUiLCJnZXROb2RlIiwic2lnbmF0dXJlTm9kZSIsImdldExlbmd0aCIsInRlcm1zTGVuZ3RoIiwibGVuZ3RoIiwiZ2V0VGVybSIsImluZGV4IiwidGVybSIsImlzRXF1YWxUbyIsInNpZ25hdHVyZSIsInNpZ25hdHVyZU5vZGVNYXRjaGVzIiwibWF0Y2hTaWduYXR1cmVOb2RlIiwiZXF1YWxUbyIsIm5vZGVNYXRjaGVzIiwibWF0Y2hOb2RlIiwiZmluZFZhbGlkU2lnbmF0dXJlIiwiZmluZFNpZ25hdHVyZUJ5U2lnbmF0dXJlTm9kZSIsInZhbGlkU2lnbmF0dXJlIiwidmVyaWZ5IiwidmVyaWZpZXMiLCJzaWduYXR1cmVTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsImF0dGVtcHQiLCJ0ZXJtc1ZhbGlkYXRlIiwidmFsaWRhdGVUZXJtcyIsImNvbW1pdCIsImRlYnVnIiwidmFsaWRhdGUiLCJ2YWxpZGF0ZXMiLCJzcGVjaWZpY0NvbnRleHQiLCJnZXRDb250ZXh0IiwiYWRkU2lnbmF0dXJlIiwiZXZlcnkiLCJ2YWxpZGF0ZXNGb3J3YXJkcyIsInB1c2giLCJ1bmlmeVNpZ25hdHVyZSIsInNpZ25hdHVyZVVuaWZpZXMiLCJnZW5lcmFsU2lnbmF0dXJlIiwic3BlY2lmaWNTaWduYXR1cmUiLCJnZW5lcmFsU2lnbmF0dXJlU3RyaW5nIiwic3BlY2lmaWNTaWduYXR1cmVTdHJpbmciLCJnZW5lcmFsQ29udGV4dCIsInJlY29uY2lsZSIsImdlbmVyYWxTaWduYXR1cmVUZXJtcyIsInNwZWNpZmljU2lnbmF0dXJlVGVybXMiLCJnZW5lcmFsVGVybXMiLCJzcGVjaWZpY1Rlcm1zIiwiZ2VuZXJhbFRlcm0iLCJzcGVjaWZpY1Rlcm0iLCJ0ZXJtVW5pZmllcyIsInVuaWZ5VGVybSIsImNvbXBhcmVTdWJzdGl0dXRpb25zIiwic3Vic3RpdHV0aW9ucyIsInN1YnN0aXR1dGlvbnNDb21wYXJlcyIsInN1YnN0aXR1dGlvbnNTdHJpbmciLCJhc1N0cmluZyIsImFycmF5IiwiZ2V0QXJyYXkiLCJjb21wYXJlcyIsInN1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvblRlcm0iLCJzdWJzdGl0dXRpb25UZXJtRXF1YWxUb1Rlcm0iLCJjb3JyZWxhdGVTdWJzdGl0dXRpb25zIiwic3Vic3RpdHV0aW9uc0NvcnJlbGF0ZXMiLCJjb3JyZWxhdGVzIiwibmFtZSIsInRvSlNPTiIsInNlcmlhbGlzZSIsImdldExpbmVJbmRleCIsImpzb24iLCJmcm9tSlNPTiIsInVuc2VyaWFsaXNlIiwiaW5zdGFudGlhdGUiLCJpbnN0YW50aWF0ZVNpZ25hdHVyZSIsInRlcm1zRnJvbVNpZ25hdHVyZU5vZGUiLCJmcm9tU2lnbmF0dXJlU3RyaW5nIiwiYWJsYXRlIiwic2lnbmF0dXJlRnJvbVNpZ25hdHVyZU5vZGUiLCJ0ZXJtTm9kZXMiLCJnZXRUZXJtTm9kZXMiLCJtYXAiLCJ0ZXJtTm9kZSIsImZpbmRUZXJtQnlUZXJtTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBWUE7OztlQUFBOzs7Z0NBVndCOzJCQUNPOzBCQUVSOzZCQUNjO3lCQUNNO3lCQUNxQztBQUVoRixNQUFNLEVBQUVBLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxTQUFTLEVBQUUsR0FBR0MseUJBQWM7TUFFcEQsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxrQkFBa0JDLHVCQUFPO0lBQ25ELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsS0FBSyxDQUFFO1FBQ25ELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO0lBQ2Y7SUFFQUMsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDRCxLQUFLO0lBQ25CO0lBRUFFLG1CQUFtQjtRQUNqQixNQUFNSixPQUFPLElBQUksQ0FBQ0ssT0FBTyxJQUNuQkMsZ0JBQWdCTixNQUFNLEdBQUc7UUFFL0IsT0FBT007SUFDVDtJQUVBQyxZQUFZO1FBQ1YsTUFBTUMsY0FBYyxJQUFJLENBQUNOLEtBQUssQ0FBQ08sTUFBTSxFQUMvQkEsU0FBU0QsYUFBYSxHQUFHO1FBRS9CLE9BQU9DO0lBQ1Q7SUFFQUMsUUFBUUMsS0FBSyxFQUFFO1FBQ2IsTUFBTUMsT0FBTyxJQUFJLENBQUNWLEtBQUssQ0FBQ1MsTUFBTTtRQUU5QixPQUFPQztJQUNUO0lBRUFDLFVBQVVDLFNBQVMsRUFBRTtRQUNuQixNQUFNUixnQkFBZ0JRLFVBQVVULE9BQU8sSUFDakNVLHVCQUF1QixJQUFJLENBQUNDLGtCQUFrQixDQUFDVixnQkFDL0NXLFVBQVVGLHNCQUF1QixHQUFHO1FBRTFDLE9BQU9FO0lBQ1Q7SUFFQUQsbUJBQW1CVixhQUFhLEVBQUU7UUFDaEMsTUFBTU4sT0FBT00sZUFDUFksY0FBYyxJQUFJLENBQUNDLFNBQVMsQ0FBQ25CLE9BQzdCZSx1QkFBdUJHLGFBQWEsR0FBRztRQUU3QyxPQUFPSDtJQUNUO0lBRUFLLG1CQUFtQnRCLE9BQU8sRUFBRTtRQUMxQixNQUFNUSxnQkFBZ0IsSUFBSSxDQUFDRixnQkFBZ0IsSUFDckNVLFlBQVloQixRQUFRdUIsNEJBQTRCLENBQUNmLGdCQUNqRGdCLGlCQUFpQlIsV0FBWSxHQUFHO1FBRXRDLE9BQU9RO0lBQ1Q7SUFFQUMsT0FBT3pCLE9BQU8sRUFBRTtRQUNkLElBQUkwQixXQUFXO1FBRWYsTUFBTUMsa0JBQWtCLElBQUksQ0FBQ0MsU0FBUyxJQUFLLEdBQUc7UUFFOUM1QixRQUFRNkIsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFRixnQkFBZ0IsY0FBYyxDQUFDO1FBRS9ERyxJQUFBQSxnQkFBTyxFQUFDLENBQUM5QjtZQUNQLE1BQU0rQixnQkFBZ0IsSUFBSSxDQUFDQyxhQUFhLENBQUNoQztZQUV6QyxJQUFJK0Isa0JBQWtCLE1BQU07Z0JBQzFCTCxXQUFXO1lBQ2I7WUFFQSxJQUFJQSxVQUFVO2dCQUNaLElBQUksQ0FBQ08sTUFBTSxDQUFDakM7WUFDZDtRQUNGLEdBQUdBO1FBRUgsSUFBSTBCLFVBQVU7WUFDWjFCLFFBQVFrQyxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRVAsZ0JBQWdCLFlBQVksQ0FBQztRQUNsRTtRQUVBLE9BQU9EO0lBQ1Q7SUFFQVMsU0FBU25DLE9BQU8sRUFBRTtRQUNoQixJQUFJZ0IsWUFBWTtRQUVoQixNQUFNVyxrQkFBa0IsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUU5QzVCLFFBQVE2QixLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsZ0JBQWdCLGNBQWMsQ0FBQztRQUVoRSxJQUFJUyxZQUFZO1FBRWhCLE1BQU1aLGlCQUFpQixJQUFJLENBQUNGLGtCQUFrQixDQUFDdEI7UUFFL0MsSUFBSXdCLGdCQUFnQjtZQUNsQlIsWUFBWVEsZ0JBQWlCLEdBQUc7WUFFaEN4QixRQUFRa0MsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFUCxnQkFBZ0IsNkJBQTZCLENBQUM7UUFDekUsT0FBTztZQUNMLE1BQU1VLGtCQUFrQnJDLFNBQVUsR0FBRztZQUVyQ0EsVUFBVSxJQUFJLENBQUNzQyxVQUFVO1lBRXpCUixJQUFBQSxnQkFBTyxFQUFDLENBQUM5QjtnQkFDUCxNQUFNK0IsZ0JBQWdCLElBQUksQ0FBQ0MsYUFBYSxDQUFDaEM7Z0JBRXpDLElBQUkrQixrQkFBa0IsTUFBTTtvQkFDMUJLLFlBQVk7Z0JBQ2Q7Z0JBRUEsSUFBSUEsV0FBVztvQkFDYixJQUFJLENBQUNILE1BQU0sQ0FBQ2pDO2dCQUNkO1lBQ0YsR0FBR0E7WUFFSEEsVUFBVXFDLGlCQUFrQixHQUFHO1lBRS9CLElBQUlELFdBQVc7Z0JBQ2JwQixZQUFZLElBQUksRUFBRSxHQUFHO2dCQUVyQmhCLFFBQVF1QyxZQUFZLENBQUN2QjtZQUN2QjtRQUNGO1FBRUEsSUFBSW9CLFdBQVc7WUFDYnBDLFFBQVFrQyxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRVAsZ0JBQWdCLFlBQVksQ0FBQztRQUNsRTtRQUVBLE9BQU9YO0lBQ1Q7SUFFQWdCLGNBQWNoQyxPQUFPLEVBQUU7UUFDckIsSUFBSStCO1FBRUosTUFBTUosa0JBQWtCLElBQUksQ0FBQ0MsU0FBUyxJQUFLLEdBQUc7UUFFOUM1QixRQUFRNkIsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGdCQUFnQixzQkFBc0IsQ0FBQztRQUV4RSxNQUFNdkIsUUFBUSxFQUFFO1FBRWhCMkIsZ0JBQWdCLElBQUksQ0FBQzNCLEtBQUssQ0FBQ29DLEtBQUssQ0FBQyxDQUFDMUI7WUFDaENBLE9BQU9BLEtBQUtxQixRQUFRLENBQUNuQyxTQUFTLENBQUNjO2dCQUM3QixNQUFNMkIsb0JBQW9CO2dCQUUxQixPQUFPQTtZQUNUO1lBRUEsSUFBSTNCLFNBQVMsTUFBTTtnQkFDakJWLE1BQU1zQyxJQUFJLENBQUM1QjtnQkFFWCxPQUFPO1lBQ1Q7UUFDRjtRQUVBLElBQUlpQixlQUFlO1lBQ2pCLElBQUksQ0FBQzNCLEtBQUssR0FBR0E7UUFDZjtRQUVBLElBQUkyQixlQUFjO1lBQ2hCL0IsUUFBUWtDLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFUCxnQkFBZ0Isb0JBQW9CLENBQUM7UUFDMUU7UUFFQSxPQUFPSTtJQUNUO0lBRUFZLGVBQWUzQixTQUFTLEVBQUVoQixPQUFPLEVBQUU7UUFDakMsSUFBSTRDLG1CQUFtQjtRQUV2QixNQUFNQyxtQkFBbUIsSUFBSSxFQUN2QkMsb0JBQW9COUIsV0FDcEIrQix5QkFBeUJGLGlCQUFpQmpCLFNBQVMsSUFDbkRvQiwwQkFBMEJGLGtCQUFrQmxCLFNBQVM7UUFFM0Q1QixRQUFRNkIsS0FBSyxDQUFDLENBQUMsY0FBYyxFQUFFbUIsd0JBQXdCLHNCQUFzQixFQUFFRCx1QkFBdUIsY0FBYyxDQUFDO1FBRXJIL0MsVUFBVThDLGtCQUFrQlIsVUFBVTtRQUV0QyxNQUFNRCxrQkFBa0JyQyxTQUFVLEdBQUc7UUFFckNBLFVBQVUsSUFBSSxDQUFDc0MsVUFBVTtRQUV6QixNQUFNVyxpQkFBaUJqRCxTQUFTLEdBQUc7UUFFbkNBLFVBQVVxQyxpQkFBa0IsR0FBRztRQUUvQmEsSUFBQUEsa0JBQVMsRUFBQyxDQUFDYjtZQUNULE1BQU1jLHdCQUF3Qk4saUJBQWlCeEMsUUFBUSxJQUNqRCtDLHlCQUF5Qk4sa0JBQWtCekMsUUFBUSxJQUNuRGdELGVBQWVGLHVCQUNmRyxnQkFBZ0JGLHdCQUF3QixHQUFHO1lBRWpEUixtQkFBbUJuRCxNQUFNNEQsY0FBY0MsZUFBZSxDQUFDQyxhQUFhQztnQkFDbEUsSUFBSUM7Z0JBRUpQLElBQUFBLGtCQUFTLEVBQUMsQ0FBQ2I7b0JBQ1RvQixjQUFjRixZQUFZRyxTQUFTLENBQUNGLGNBQWNQLGdCQUFnQlo7b0JBRWxFLElBQUlvQixhQUFhO3dCQUNmcEIsZ0JBQWdCSixNQUFNO29CQUN4QjtnQkFDRixHQUFHSTtnQkFFSCxJQUFJb0IsYUFBYTtvQkFDZixPQUFPO2dCQUNUO1lBQ0Y7UUFDRixHQUFHcEI7UUFFSCxJQUFJTyxrQkFBa0I7WUFDcEI1QyxRQUFRa0MsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVjLHdCQUF3QixzQkFBc0IsRUFBRUQsdUJBQXVCLFlBQVksQ0FBQztRQUN2SDtRQUVBLE9BQU9IO0lBQ1Q7SUFFQWUscUJBQXFCQyxhQUFhLEVBQUU1RCxPQUFPLEVBQUU7UUFDM0MsSUFBSTZELHdCQUF3QjtRQUU1QixNQUFNbEMsa0JBQWtCLElBQUksQ0FBQ0MsU0FBUyxJQUNoQ2tDLHNCQUFzQkYsY0FBY0csUUFBUTtRQUVsRC9ELFFBQVE2QixLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVpQyxvQkFBb0IsNkJBQTZCLEVBQUVuQyxnQkFBZ0IsY0FBYyxDQUFDO1FBRWxILE1BQU1xQyxRQUFRSixjQUFjSyxRQUFRLElBQzlCQyxXQUFXeEUsUUFBUSxJQUFJLENBQUNVLEtBQUssRUFBRTRELE9BQU8sQ0FBQ2xELE1BQU1xRDtZQUMzQyxNQUFNQyxtQkFBbUJELGFBQWF2RCxPQUFPLElBQ3ZDeUQsOEJBQThCRCxpQkFBaUJyRCxTQUFTLENBQUNEO1lBRS9ELElBQUl1RCw2QkFBNkI7Z0JBQy9CLE9BQU87WUFDVDtRQUNGO1FBRU4sSUFBSUgsVUFBVTtZQUNaTCx3QkFBd0I7UUFDMUI7UUFFQSxJQUFJQSx1QkFBdUI7WUFDekI3RCxRQUFRa0MsS0FBSyxDQUFDLENBQUMsaUJBQWlCLEVBQUU0QixvQkFBb0IsNkJBQTZCLEVBQUVuQyxnQkFBZ0IsWUFBWSxDQUFDO1FBQ3BIO1FBRUEsT0FBT2tDO0lBQ1Q7SUFFQVMsdUJBQXVCVixhQUFhLEVBQUU1RCxPQUFPLEVBQUU7UUFDN0MsSUFBSXVFLDBCQUEwQjtRQUU5QixNQUFNNUMsa0JBQWtCLElBQUksQ0FBQ0MsU0FBUyxJQUNoQ2tDLHNCQUFzQkYsY0FBY0csUUFBUTtRQUVsRC9ELFFBQVE2QixLQUFLLENBQUMsQ0FBQyxpQkFBaUIsRUFBRWlDLG9CQUFvQiw2QkFBNkIsRUFBRW5DLGdCQUFnQixjQUFjLENBQUM7UUFFcEgsTUFBTXFDLFFBQVFKLGNBQWNLLFFBQVEsSUFDOUJPLGFBQWE3RSxVQUFVLElBQUksQ0FBQ1MsS0FBSyxFQUFFNEQsT0FBTyxDQUFDbEQsTUFBTXFEO1lBQy9DLE1BQU1DLG1CQUFtQkQsYUFBYXZELE9BQU8sSUFDdkN5RCw4QkFBOEJELGlCQUFpQnJELFNBQVMsQ0FBQ0Q7WUFFL0QsSUFBSXVELDZCQUE2QjtnQkFDL0IsT0FBTztZQUNUO1FBQ0Y7UUFFTixJQUFJRyxZQUFZO1lBQ2RELDBCQUEwQjtRQUM1QjtRQUVBLElBQUlBLHlCQUF5QjtZQUMzQnZFLFFBQVFrQyxLQUFLLENBQUMsQ0FBQyxtQkFBbUIsRUFBRTRCLG9CQUFvQiw2QkFBNkIsRUFBRW5DLGdCQUFnQixZQUFZLENBQUM7UUFDdEg7UUFFQSxPQUFPNEM7SUFDVDtJQUVBLE9BQU9FLE9BQU8sWUFBWTtJQUUxQkMsU0FBUztRQUNQLE1BQU0xRSxVQUFVLElBQUksQ0FBQ3NDLFVBQVU7UUFFL0IsT0FBT3FDLElBQUFBLGtCQUFTLEVBQUMsQ0FBQzNFO1lBQ2hCLE1BQU1DLFNBQVMsSUFBSSxDQUFDMkIsU0FBUyxJQUN2QnpCLFlBQVksSUFBSSxDQUFDeUUsWUFBWSxJQUM3QkMsT0FBTztnQkFDTDdFO2dCQUNBQztnQkFDQUU7WUFDRjtZQUVOLE9BQU8wRTtRQUNULEdBQUc3RTtJQUNMO0lBRUEsT0FBTzhFLFNBQVNELElBQUksRUFBRTdFLE9BQU8sRUFBRTtRQUM3QixJQUFJZ0I7UUFFSitELElBQUFBLG9CQUFXLEVBQUMsQ0FBQ0YsTUFBTTdFO1lBQ2pCZ0YsSUFBQUEsb0JBQVcsRUFBQyxDQUFDaEY7Z0JBQ1gsTUFBTSxFQUFFQyxNQUFNLEVBQUVFLFNBQVMsRUFBRSxHQUFHMEUsTUFDeEJyRSxnQkFBZ0J5RSxJQUFBQSxpQ0FBb0IsRUFBQ2hGLFFBQVFELFVBQzdDRSxPQUFPTSxlQUNQSixRQUFROEUsdUJBQXVCMUUsZUFBZVI7Z0JBRXBEZ0IsWUFBWSxJQUFJbEIsVUFBVUUsU0FBU0MsUUFBUUMsTUFBTUMsV0FBV0M7WUFDOUQsR0FBR0o7UUFDTCxHQUFHNkUsTUFBTTdFO1FBRVQsT0FBT2dCO0lBQ1Q7SUFFQSxPQUFPbUUsb0JBQW9CeEQsZUFBZSxFQUFFM0IsT0FBTyxFQUFFO1FBQ25ELElBQUlnQjtRQUVKb0UsSUFBQUEsZUFBTSxFQUFDLENBQUNwRjtZQUNOZ0YsSUFBQUEsb0JBQVcsRUFBQyxDQUFDaEY7Z0JBQ1gsTUFBTUMsU0FBUzBCLGlCQUNUbkIsZ0JBQWdCeUUsSUFBQUEsaUNBQW9CLEVBQUNoRixRQUFRRDtnQkFFbkRnQixZQUFZcUUsSUFBQUEsbUNBQTBCLEVBQUM3RSxlQUFlUjtZQUN4RCxHQUFHQTtRQUNMLEdBQUdBO1FBRUgsT0FBT2dCO0lBQ1Q7QUFDRjtBQUVBLFNBQVNrRSx1QkFBdUIxRSxhQUFhLEVBQUVSLE9BQU87SUFDcEQsTUFBTXNGLFlBQVk5RSxjQUFjK0UsWUFBWSxJQUN0Q25GLFFBQVFrRixVQUFVRSxHQUFHLENBQUMsQ0FBQ0M7UUFDckIsTUFBTTNFLE9BQU9kLFFBQVEwRixrQkFBa0IsQ0FBQ0Q7UUFFeEMsT0FBTzNFO0lBQ1Q7SUFFTixPQUFPVjtBQUNUIn0=
|
|
@@ -84,6 +84,9 @@ _export(exports, {
|
|
|
84
84
|
get instantiateReferenceSubstitution () {
|
|
85
85
|
return instantiateReferenceSubstitution;
|
|
86
86
|
},
|
|
87
|
+
get instantiateSignature () {
|
|
88
|
+
return instantiateSignature;
|
|
89
|
+
},
|
|
87
90
|
get instantiateSignatureAssertion () {
|
|
88
91
|
return instantiateSignatureAssertion;
|
|
89
92
|
},
|
|
@@ -120,7 +123,7 @@ _export(exports, {
|
|
|
120
123
|
});
|
|
121
124
|
const _bnf = require("../utilities/bnf");
|
|
122
125
|
const _ruleNames = require("../ruleNames");
|
|
123
|
-
const termPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TERM_RULE_NAME), typePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TYPE_RULE_NAME), framePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.FRAME_RULE_NAME), labelPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.LABEL_RULE_NAME), premisePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PREMISE_RULE_NAME), variablePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.VARIABLE_RULE_NAME), equalityPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.EQUALITY_RULE_NAME), propertyPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PROPERTY_RULE_NAME), judgementlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.JUDGEMENT_RULE_NAME), deductionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.DEDUCTION_RULE_NAME), parameterPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PARAMETER_RULE_NAME), statementPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.STATEMENT_RULE_NAME), referencePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.REFERENCE_RULE_NAME), combinatorPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.COMBINATOR_RULE_NAME), conclusionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.CONCLUSION_RULE_NAME), hypothesisPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.HYPOTHESIS_RULE_NAME), assumptionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.ASSUMPTION_RULE_NAME), typePrefixPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TYPE_PREFIX_RULE_NAME), suppositionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.SUPPOSITION_RULE_NAME), constructorPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.CONSTRUCTOR_RULE_NAME), equivalencePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.EQUIVALENCE_RULE_NAME), metavariablePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.METAVARIABLE_RULE_NAME), typeAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TYPE_ASSERTION_RULE_NAME), procedureCallPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PROCEDURE_CALL_RULE_NAME), propertyRelationlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PROPERTY_RELATION_RULE_NAME), definedAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.DEFINED_ASSERTION_RULE_NAME), termSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TERM_SUBSTITUTION_RULE_NAME), subproofAssertionlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.SUBPROOF_ASSERTION_RULE_NAME), propertyAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PROPERTY_ASSERTION_RULE_NAME), frameSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.FRAME_SUBSTITUTION_RULE_NAME), procedureReferencelaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PROCEDURE_REFERENCE_RULE_NAME), containedAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.CONTAINED_ASSERTION_RULE_NAME), signatureAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.SIGNATURE_ASSERTION_RULE_NAME), metaLevelAssumptionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.META_LEVEL_ASSUMPTION_RULE_NAME), statementSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.STATEMENT_SUBSTITUTION_RULE_NAME), referenceSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.REFERENCE_SUBSTITUTION_RULE_NAME);
|
|
126
|
+
const termPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TERM_RULE_NAME), typePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TYPE_RULE_NAME), framePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.FRAME_RULE_NAME), labelPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.LABEL_RULE_NAME), premisePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PREMISE_RULE_NAME), variablePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.VARIABLE_RULE_NAME), equalityPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.EQUALITY_RULE_NAME), propertyPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PROPERTY_RULE_NAME), judgementlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.JUDGEMENT_RULE_NAME), deductionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.DEDUCTION_RULE_NAME), parameterPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PARAMETER_RULE_NAME), statementPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.STATEMENT_RULE_NAME), referencePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.REFERENCE_RULE_NAME), signaturePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.SIGNATURE_RULE_NAME), combinatorPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.COMBINATOR_RULE_NAME), conclusionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.CONCLUSION_RULE_NAME), hypothesisPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.HYPOTHESIS_RULE_NAME), assumptionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.ASSUMPTION_RULE_NAME), typePrefixPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TYPE_PREFIX_RULE_NAME), suppositionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.SUPPOSITION_RULE_NAME), constructorPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.CONSTRUCTOR_RULE_NAME), equivalencePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.EQUIVALENCE_RULE_NAME), metavariablePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.METAVARIABLE_RULE_NAME), typeAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TYPE_ASSERTION_RULE_NAME), procedureCallPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PROCEDURE_CALL_RULE_NAME), propertyRelationlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PROPERTY_RELATION_RULE_NAME), definedAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.DEFINED_ASSERTION_RULE_NAME), termSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TERM_SUBSTITUTION_RULE_NAME), subproofAssertionlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.SUBPROOF_ASSERTION_RULE_NAME), propertyAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PROPERTY_ASSERTION_RULE_NAME), frameSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.FRAME_SUBSTITUTION_RULE_NAME), procedureReferencelaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PROCEDURE_REFERENCE_RULE_NAME), containedAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.CONTAINED_ASSERTION_RULE_NAME), signatureAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.SIGNATURE_ASSERTION_RULE_NAME), metaLevelAssumptionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.META_LEVEL_ASSUMPTION_RULE_NAME), statementSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.STATEMENT_SUBSTITUTION_RULE_NAME), referenceSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.REFERENCE_SUBSTITUTION_RULE_NAME);
|
|
124
127
|
function instantiatePremise(string, context) {
|
|
125
128
|
string = `${string}
|
|
126
129
|
`; ///
|
|
@@ -174,6 +177,9 @@ function instantiateStatement(string, context) {
|
|
|
174
177
|
function instantiateReference(string, context) {
|
|
175
178
|
return instantiate(referencePlaceholderRule, string, context);
|
|
176
179
|
}
|
|
180
|
+
function instantiateSignature(string, context) {
|
|
181
|
+
return instantiate(signaturePlaceholderRule, string, context);
|
|
182
|
+
}
|
|
177
183
|
function instantiateCombinator(string, context) {
|
|
178
184
|
return instantiate(combinatorPlaceholderRule, string, context);
|
|
179
185
|
}
|
|
@@ -252,4 +258,4 @@ function instantiate(placeholderRule, string, context) {
|
|
|
252
258
|
return node;
|
|
253
259
|
}
|
|
254
260
|
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL2luc3RhbnRpYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBydWxlRnJvbVJ1bGVOYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ibmZcIjtcbmltcG9ydCB7IFRFUk1fUlVMRV9OQU1FLFxuICAgICAgICAgVFlQRV9SVUxFX05BTUUsXG4gICAgICAgICBGUkFNRV9SVUxFX05BTUUsXG4gICAgICAgICBMQUJFTF9SVUxFX05BTUUsXG4gICAgICAgICBQUkVNSVNFX1JVTEVfTkFNRSxcbiAgICAgICAgIFZBUklBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgIEVRVUFMSVRZX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST1BFUlRZX1JVTEVfTkFNRSxcbiAgICAgICAgIEpVREdFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBERURVQ1RJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUEFSQU1FVEVSX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBSRUZFUkVOQ0VfUlVMRV9OQU1FLFxuICAgICAgICAgQ09NQklOQVRPUl9SVUxFX05BTUUsXG4gICAgICAgICBDT05DTFVTSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIEhZUE9USEVTSVNfUlVMRV9OQU1FLFxuICAgICAgICAgQVNTVU1QVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBUWVBFX1BSRUZJWF9SVUxFX05BTUUsXG4gICAgICAgICBTVVBQT1NJVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBDT05TVFJVQ1RPUl9SVUxFX05BTUUsXG4gICAgICAgICBFUVVJVkFMRU5DRV9SVUxFX05BTUUsXG4gICAgICAgICBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICAgVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FLFxuICAgICAgICAgUFJPUEVSVFlfUkVMQVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgVEVSTV9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUFJPUEVSVFlfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBGUkFNRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUFJPQ0VEVVJFX1JFRkVSRU5DRV9SVUxFX05BTUUsXG4gICAgICAgICBDT05UQUlORURfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFNJR05BVFVSRV9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgTUVUQV9MRVZFTF9BU1NVTVBUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUkVGRVJFTkNFX1NVQlNUSVRVVElPTl9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IHRlcm1QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFRFUk1fUlVMRV9OQU1FKSxcbiAgICAgIHR5cGVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFRZUEVfUlVMRV9OQU1FKSxcbiAgICAgIGZyYW1lUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShGUkFNRV9SVUxFX05BTUUpLFxuICAgICAgbGFiZWxQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKExBQkVMX1JVTEVfTkFNRSksXG4gICAgICBwcmVtaXNlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQUkVNSVNFX1JVTEVfTkFNRSksXG4gICAgICB2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoVkFSSUFCTEVfUlVMRV9OQU1FKSxcbiAgICAgIGVxdWFsaXR5UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShFUVVBTElUWV9SVUxFX05BTUUpLFxuICAgICAgcHJvcGVydHlQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFBST1BFUlRZX1JVTEVfTkFNRSksXG4gICAgICBqdWRnZW1lbnRsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoSlVER0VNRU5UX1JVTEVfTkFNRSksXG4gICAgICBkZWR1Y3Rpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKERFRFVDVElPTl9SVUxFX05BTUUpLFxuICAgICAgcGFyYW1ldGVyUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQQVJBTUVURVJfUlVMRV9OQU1FKSxcbiAgICAgIHN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoU1RBVEVNRU5UX1JVTEVfTkFNRSksXG4gICAgICByZWZlcmVuY2VQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFJFRkVSRU5DRV9SVUxFX05BTUUpLFxuICAgICAgY29tYmluYXRvclBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoQ09NQklOQVRPUl9SVUxFX05BTUUpLFxuICAgICAgY29uY2x1c2lvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoQ09OQ0xVU0lPTl9SVUxFX05BTUUpLFxuICAgICAgaHlwb3RoZXNpc1BsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoSFlQT1RIRVNJU19SVUxFX05BTUUpLFxuICAgICAgYXNzdW1wdGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoQVNTVU1QVElPTl9SVUxFX05BTUUpLFxuICAgICAgdHlwZVByZWZpeFBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoVFlQRV9QUkVGSVhfUlVMRV9OQU1FKSxcbiAgICAgIHN1cHBvc2l0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVVBQT1NJVElPTl9SVUxFX05BTUUpLFxuICAgICAgY29uc3RydWN0b3JQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKENPTlNUUlVDVE9SX1JVTEVfTkFNRSksXG4gICAgICBlcXVpdmFsZW5jZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoRVFVSVZBTEVOQ0VfUlVMRV9OQU1FKSxcbiAgICAgIG1ldGF2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoTUVUQVZBUklBQkxFX1JVTEVfTkFNRSksXG4gICAgICB0eXBlQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShUWVBFX0FTU0VSVElPTl9SVUxFX05BTUUpLFxuICAgICAgcHJvY2VkdXJlQ2FsbFBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FKSxcbiAgICAgIHByb3BlcnR5UmVsYXRpb25sYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUFJPUEVSVFlfUkVMQVRJT05fUlVMRV9OQU1FKSxcbiAgICAgIGRlZmluZWRBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKERFRklORURfQVNTRVJUSU9OX1JVTEVfTkFNRSksXG4gICAgICB0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUUpLFxuICAgICAgc3VicHJvb2ZBc3NlcnRpb25sYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoU1VCUFJPT0ZfQVNTRVJUSU9OX1JVTEVfTkFNRSksXG4gICAgICBwcm9wZXJ0eUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUFJPUEVSVFlfQVNTRVJUSU9OX1JVTEVfTkFNRSksXG4gICAgICBmcmFtZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSksXG4gICAgICBwcm9jZWR1cmVSZWZlcmVuY2VsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUFJPQ0VEVVJFX1JFRkVSRU5DRV9SVUxFX05BTUUpLFxuICAgICAgY29udGFpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShDT05UQUlORURfQVNTRVJUSU9OX1JVTEVfTkFNRSksXG4gICAgICBzaWduYXR1cmVBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFNJR05BVFVSRV9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIG1ldGFMZXZlbEFzc3VtcHRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKE1FVEFfTEVWRUxfQVNTVU1QVElPTl9SVUxFX05BTUUpLFxuICAgICAgc3RhdGVtZW50U3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVEFURU1FTlRfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSksXG4gICAgICByZWZlcmVuY2VTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFJFRkVSRU5DRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUHJlbWlzZShzdHJpbmcsIGNvbnRleHQpIHtcbiAgc3RyaW5nID0gYCR7c3RyaW5nfVxuYDsgIC8vL1xuXG4gIHJldHVybiBpbnN0YW50aWF0ZShwcmVtaXNlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVEZWR1Y3Rpb24oc3RyaW5nLCBjb250ZXh0KSB7XG4gIHN0cmluZyA9IGAke3N0cmluZ31cbmA7ICAvLy9cblxuICByZXR1cm4gaW5zdGFudGlhdGUoZGVkdWN0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb25jbHVzaW9uKHN0cmluZywgY29udGV4dCkge1xuICBzdHJpbmcgPSBgJHtzdHJpbmd9XG5gOyAgLy8vXG5cbiAgcmV0dXJuIGluc3RhbnRpYXRlKGNvbmNsdXNpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVN1cHBvc2l0aW9uKHN0cmluZywgY29udGV4dCkge1xuICBzdHJpbmcgPSBgJHtzdHJpbmd9XG5gOyAgLy8vXG5cbiAgcmV0dXJuIGluc3RhbnRpYXRlKHN1cHBvc2l0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVUZXJtKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodGVybVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVUeXBlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodHlwZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVGcmFtZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGZyYW1lUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUxhYmVsKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUobGFiZWxQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVmFyaWFibGUoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVFcXVhbGl0eShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGVxdWFsaXR5UGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVByb3BlcnR5KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocHJvcGVydHlQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlSnVkZ2VtZW50KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoanVkZ2VtZW50bGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUGFyYW1ldGVyKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocGFyYW1ldGVyUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVN0YXRlbWVudChzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVSZWZlcmVuY2Uoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShyZWZlcmVuY2VQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQ29tYmluYXRvcihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGNvbWJpbmF0b3JQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlSHlwb3RoZXNpcyhzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGh5cG90aGVzaXNQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQXNzdW1wdGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGFzc3VtcHRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVHlwZVByZWZpeChzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHR5cGVQcmVmaXhQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQ29uc3RydWN0b3Ioc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShjb25zdHJ1Y3RvclBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVFcXVpdmFsZW5jZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGVxdWl2YWxlbmNlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZU1ldGF2YXJpYWJsZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKG1ldGF2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVUeXBlQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodHlwZUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQcm9jZWR1cmVDYWxsKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocHJvY2VkdXJlQ2FsbFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQcm9wZXJ0eVJlbGF0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocHJvcGVydHlSZWxhdGlvbmxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZURlZmluZWRBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShkZWZpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVRlcm1TdWJzdGl0dXRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVN1YnByb29mQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoc3VicHJvb2ZBc3NlcnRpb25sYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQcm9wZXJ0eUFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHByb3BlcnR5QXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUZyYW1lU3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZnJhbWVTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUHJvY2VkdXJlUmVmZXJlbmNlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocHJvY2VkdXJlUmVmZXJlbmNlbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQ29udGFpbmVkQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoY29udGFpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVNpZ25hdHVyZUFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHNpZ25hdHVyZUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVNZXRhTGV2ZWxBc3N1bXB0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUobWV0YUxldmVsQXNzdW1wdGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVTdGF0ZW1lbnRTdWJzdGl0dXRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShzdGF0ZW1lbnRTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUmVmZXJlbmNlU3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocmVmZXJlbmNlU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmZ1bmN0aW9uIGluc3RhbnRpYXRlKHBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KSB7XG4gIGxldCBub2RlO1xuXG4gIGNvbnN0IGxleGVyID0gY29udGV4dC5nZXRMZXhlcigpLFxuICAgICAgICBwYXJzZXIgPSBjb250ZXh0LmdldFBhcnNlcigpLFxuICAgICAgICBjb250ZW50ID0gYCR7c3RyaW5nfVxuYCxcbiAgICAgICAgdG9rZW5zID0gbGV4ZXIudG9rZW5pc2UoY29udGVudCk7XG5cbiAgY29udGV4dC5zZXRUb2tlbnModG9rZW5zKTtcblxuICBjb25zdCBzdGFydFJ1bGUgPSBwbGFjZWhvbGRlclJ1bGU7ICAvLy9cblxuICBub2RlID0gcGFyc2VyLnBhcnNlKHRva2Vucywgc3RhcnRSdWxlKTtcblxuICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlOyAvLy9cblxuICBub25UZXJtaW5hbE5vZGUuc29tZUNoaWxkTm9kZSgoY2hpbGROb2RlKSA9PiB7XG4gICAgbm9kZSA9IGNoaWxkTm9kZTsgLy8vXG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIG5vZGU7XG59XG4iXSwibmFtZXMiOlsiaW5zdGFudGlhdGVBc3N1bXB0aW9uIiwiaW5zdGFudGlhdGVDb21iaW5hdG9yIiwiaW5zdGFudGlhdGVDb25jbHVzaW9uIiwiaW5zdGFudGlhdGVDb25zdHJ1Y3RvciIsImluc3RhbnRpYXRlQ29udGFpbmVkQXNzZXJ0aW9uIiwiaW5zdGFudGlhdGVEZWR1Y3Rpb24iLCJpbnN0YW50aWF0ZURlZmluZWRBc3NlcnRpb24iLCJpbnN0YW50aWF0ZUVxdWFsaXR5IiwiaW5zdGFudGlhdGVFcXVpdmFsZW5jZSIsImluc3RhbnRpYXRlRnJhbWUiLCJpbnN0YW50aWF0ZUZyYW1lU3Vic3RpdHV0aW9uIiwiaW5zdGFudGlhdGVIeXBvdGhlc2lzIiwiaW5zdGFudGlhdGVKdWRnZW1lbnQiLCJpbnN0YW50aWF0ZUxhYmVsIiwiaW5zdGFudGlhdGVNZXRhTGV2ZWxBc3N1bXB0aW9uIiwiaW5zdGFudGlhdGVNZXRhdmFyaWFibGUiLCJpbnN0YW50aWF0ZVBhcmFtZXRlciIsImluc3RhbnRpYXRlUHJlbWlzZSIsImluc3RhbnRpYXRlUHJvY2VkdXJlQ2FsbCIsImluc3RhbnRpYXRlUHJvY2VkdXJlUmVmZXJlbmNlIiwiaW5zdGFudGlhdGVQcm9wZXJ0eSIsImluc3RhbnRpYXRlUHJvcGVydHlBc3NlcnRpb24iLCJpbnN0YW50aWF0ZVByb3BlcnR5UmVsYXRpb24iLCJpbnN0YW50aWF0ZVJlZmVyZW5jZSIsImluc3RhbnRpYXRlUmVmZXJlbmNlU3Vic3RpdHV0aW9uIiwiaW5zdGFudGlhdGVTaWduYXR1cmVBc3NlcnRpb24iLCJpbnN0YW50aWF0ZVN0YXRlbWVudCIsImluc3RhbnRpYXRlU3RhdGVtZW50U3Vic3RpdHV0aW9uIiwiaW5zdGFudGlhdGVTdWJwcm9vZkFzc2VydGlvbiIsImluc3RhbnRpYXRlU3VwcG9zaXRpb24iLCJpbnN0YW50aWF0ZVRlcm0iLCJpbnN0YW50aWF0ZVRlcm1TdWJzdGl0dXRpb24iLCJpbnN0YW50aWF0ZVR5cGUiLCJpbnN0YW50aWF0ZVR5cGVBc3NlcnRpb24iLCJpbnN0YW50aWF0ZVR5cGVQcmVmaXgiLCJpbnN0YW50aWF0ZVZhcmlhYmxlIiwidGVybVBsYWNlaG9sZGVyUnVsZSIsInJ1bGVGcm9tUnVsZU5hbWUiLCJURVJNX1JVTEVfTkFNRSIsInR5cGVQbGFjZWhvbGRlclJ1bGUiLCJUWVBFX1JVTEVfTkFNRSIsImZyYW1lUGxhY2Vob2xkZXJSdWxlIiwiRlJBTUVfUlVMRV9OQU1FIiwibGFiZWxQbGFjZWhvbGRlclJ1bGUiLCJMQUJFTF9SVUxFX05BTUUiLCJwcmVtaXNlUGxhY2Vob2xkZXJSdWxlIiwiUFJFTUlTRV9SVUxFX05BTUUiLCJ2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSIsIlZBUklBQkxFX1JVTEVfTkFNRSIsImVxdWFsaXR5UGxhY2Vob2xkZXJSdWxlIiwiRVFVQUxJVFlfUlVMRV9OQU1FIiwicHJvcGVydHlQbGFjZWhvbGRlclJ1bGUiLCJQUk9QRVJUWV9SVUxFX05BTUUiLCJqdWRnZW1lbnRsYWNlaG9sZGVyUnVsZSIsIkpVREdFTUVOVF9SVUxFX05BTUUiLCJkZWR1Y3Rpb25QbGFjZWhvbGRlclJ1bGUiLCJERURVQ1RJT05fUlVMRV9OQU1FIiwicGFyYW1ldGVyUGxhY2Vob2xkZXJSdWxlIiwiUEFSQU1FVEVSX1JVTEVfTkFNRSIsInN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSIsIlNUQVRFTUVOVF9SVUxFX05BTUUiLCJyZWZlcmVuY2VQbGFjZWhvbGRlclJ1bGUiLCJSRUZFUkVOQ0VfUlVMRV9OQU1FIiwiY29tYmluYXRvclBsYWNlaG9sZGVyUnVsZSIsIkNPTUJJTkFUT1JfUlVMRV9OQU1FIiwiY29uY2x1c2lvblBsYWNlaG9sZGVyUnVsZSIsIkNPTkNMVVNJT05fUlVMRV9OQU1FIiwiaHlwb3RoZXNpc1BsYWNlaG9sZGVyUnVsZSIsIkhZUE9USEVTSVNfUlVMRV9OQU1FIiwiYXNzdW1wdGlvblBsYWNlaG9sZGVyUnVsZSIsIkFTU1VNUFRJT05fUlVMRV9OQU1FIiwidHlwZVByZWZpeFBsYWNlaG9sZGVyUnVsZSIsIlRZUEVfUFJFRklYX1JVTEVfTkFNRSIsInN1cHBvc2l0aW9uUGxhY2Vob2xkZXJSdWxlIiwiU1VQUE9TSVRJT05fUlVMRV9OQU1FIiwiY29uc3RydWN0b3JQbGFjZWhvbGRlclJ1bGUiLCJDT05TVFJVQ1RPUl9SVUxFX05BTUUiLCJlcXVpdmFsZW5jZVBsYWNlaG9sZGVyUnVsZSIsIkVRVUlWQUxFTkNFX1JVTEVfTkFNRSIsIm1ldGF2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSIsIk1FVEFWQVJJQUJMRV9SVUxFX05BTUUiLCJ0eXBlQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlIiwiVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FIiwicHJvY2VkdXJlQ2FsbFBsYWNlaG9sZGVyUnVsZSIsIlBST0NFRFVSRV9DQUxMX1JVTEVfTkFNRSIsInByb3BlcnR5UmVsYXRpb25sYWNlaG9sZGVyUnVsZSIsIlBST1BFUlRZX1JFTEFUSU9OX1JVTEVfTkFNRSIsImRlZmluZWRBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUiLCJERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUiLCJ0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlIiwiVEVSTV9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwic3VicHJvb2ZBc3NlcnRpb25sYWNlaG9sZGVyUnVsZSIsIlNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUiLCJwcm9wZXJ0eUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSIsIlBST1BFUlRZX0FTU0VSVElPTl9SVUxFX05BTUUiLCJmcmFtZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSIsIkZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJwcm9jZWR1cmVSZWZlcmVuY2VsYWNlaG9sZGVyUnVsZSIsIlBST0NFRFVSRV9SRUZFUkVOQ0VfUlVMRV9OQU1FIiwiY29udGFpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlIiwiQ09OVEFJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUiLCJzaWduYXR1cmVBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUiLCJTSUdOQVRVUkVfQVNTRVJUSU9OX1JVTEVfTkFNRSIsIm1ldGFMZXZlbEFzc3VtcHRpb25QbGFjZWhvbGRlclJ1bGUiLCJNRVRBX0xFVkVMX0FTU1VNUFRJT05fUlVMRV9OQU1FIiwic3RhdGVtZW50U3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlIiwiU1RBVEVNRU5UX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJyZWZlcmVuY2VTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUiLCJSRUZFUkVOQ0VfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsInN0cmluZyIsImNvbnRleHQiLCJpbnN0YW50aWF0ZSIsInBsYWNlaG9sZGVyUnVsZSIsIm5vZGUiLCJsZXhlciIsImdldExleGVyIiwicGFyc2VyIiwiZ2V0UGFyc2VyIiwiY29udGVudCIsInRva2VucyIsInRva2VuaXNlIiwic2V0VG9rZW5zIiwic3RhcnRSdWxlIiwicGFyc2UiLCJub25UZXJtaW5hbE5vZGUiLCJzb21lQ2hpbGROb2RlIiwiY2hpbGROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFtSWdCQTtlQUFBQTs7UUFKQUM7ZUFBQUE7O1FBcENBQztlQUFBQTs7UUE0Q0FDO2VBQUFBOztRQXdCQUM7ZUFBQUE7O1FBM0VBQztlQUFBQTs7UUErREFDO2VBQUFBOztRQWhDQUM7ZUFBQUE7O1FBc0JBQztlQUFBQTs7UUE1QkFDO2VBQUFBOztRQThDQUM7ZUFBQUE7O1FBMUJBQztlQUFBQTs7UUFWQUM7ZUFBQUE7O1FBUkFDO2VBQUFBOztRQW9EQUM7ZUFBQUE7O1FBeEJBQztlQUFBQTs7UUFsQkFDO2VBQUFBOztRQTVDQUM7ZUFBQUE7O1FBa0VBQztlQUFBQTs7UUFjQUM7ZUFBQUE7O1FBeENBQztlQUFBQTs7UUFvQ0FDO2VBQUFBOztRQVJBQztlQUFBQTs7UUFwQkFDO2VBQUFBOztRQTBDQUM7ZUFBQUE7O1FBTkFDO2VBQUFBOztRQXRDQUM7ZUFBQUE7O1FBMENBQztlQUFBQTs7UUFkQUM7ZUFBQUE7O1FBckRBQztlQUFBQTs7UUFPQUM7ZUFBQUE7O1FBNENBQztlQUFBQTs7UUExQ0FDO2VBQUFBOztRQWtDQUM7ZUFBQUE7O1FBUkFDO2VBQUFBOztRQXBCQUM7ZUFBQUE7OztxQkEvR2lCOzJCQW9DZ0I7QUFFakQsTUFBTUMsc0JBQXNCQyxJQUFBQSxxQkFBZ0IsRUFBQ0MseUJBQWMsR0FDckRDLHNCQUFzQkYsSUFBQUEscUJBQWdCLEVBQUNHLHlCQUFjLEdBQ3JEQyx1QkFBdUJKLElBQUFBLHFCQUFnQixFQUFDSywwQkFBZSxHQUN2REMsdUJBQXVCTixJQUFBQSxxQkFBZ0IsRUFBQ08sMEJBQWUsR0FDdkRDLHlCQUF5QlIsSUFBQUEscUJBQWdCLEVBQUNT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
|
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL2luc3RhbnRpYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBydWxlRnJvbVJ1bGVOYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ibmZcIjtcbmltcG9ydCB7IFRFUk1fUlVMRV9OQU1FLFxuICAgICAgICAgVFlQRV9SVUxFX05BTUUsXG4gICAgICAgICBGUkFNRV9SVUxFX05BTUUsXG4gICAgICAgICBMQUJFTF9SVUxFX05BTUUsXG4gICAgICAgICBQUkVNSVNFX1JVTEVfTkFNRSxcbiAgICAgICAgIFZBUklBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgIEVRVUFMSVRZX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST1BFUlRZX1JVTEVfTkFNRSxcbiAgICAgICAgIEpVREdFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBERURVQ1RJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUEFSQU1FVEVSX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBSRUZFUkVOQ0VfUlVMRV9OQU1FLFxuICAgICAgICAgU0lHTkFUVVJFX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTUJJTkFUT1JfUlVMRV9OQU1FLFxuICAgICAgICAgQ09OQ0xVU0lPTl9SVUxFX05BTUUsXG4gICAgICAgICBIWVBPVEhFU0lTX1JVTEVfTkFNRSxcbiAgICAgICAgIEFTU1VNUFRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgVFlQRV9QUkVGSVhfUlVMRV9OQU1FLFxuICAgICAgICAgU1VQUE9TSVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgQ09OU1RSVUNUT1JfUlVMRV9OQU1FLFxuICAgICAgICAgRVFVSVZBTEVOQ0VfUlVMRV9OQU1FLFxuICAgICAgICAgTUVUQVZBUklBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgIFRZUEVfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST0NFRFVSRV9DQUxMX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST1BFUlRZX1JFTEFUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIERFRklORURfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST1BFUlRZX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBTVUJQUk9PRl9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST0NFRFVSRV9SRUZFUkVOQ0VfUlVMRV9OQU1FLFxuICAgICAgICAgQ09OVEFJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBTSUdOQVRVUkVfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIE1FVEFfTEVWRUxfQVNTVU1QVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBTVEFURU1FTlRfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFJFRkVSRU5DRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCB0ZXJtUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShURVJNX1JVTEVfTkFNRSksXG4gICAgICB0eXBlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShUWVBFX1JVTEVfTkFNRSksXG4gICAgICBmcmFtZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoRlJBTUVfUlVMRV9OQU1FKSxcbiAgICAgIGxhYmVsUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShMQUJFTF9SVUxFX05BTUUpLFxuICAgICAgcHJlbWlzZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUFJFTUlTRV9SVUxFX05BTUUpLFxuICAgICAgdmFyaWFibGVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFZBUklBQkxFX1JVTEVfTkFNRSksXG4gICAgICBlcXVhbGl0eVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoRVFVQUxJVFlfUlVMRV9OQU1FKSxcbiAgICAgIHByb3BlcnR5UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQUk9QRVJUWV9SVUxFX05BTUUpLFxuICAgICAganVkZ2VtZW50bGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKEpVREdFTUVOVF9SVUxFX05BTUUpLFxuICAgICAgZGVkdWN0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShERURVQ1RJT05fUlVMRV9OQU1FKSxcbiAgICAgIHBhcmFtZXRlclBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUEFSQU1FVEVSX1JVTEVfTkFNRSksXG4gICAgICBzdGF0ZW1lbnRQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFNUQVRFTUVOVF9SVUxFX05BTUUpLFxuICAgICAgcmVmZXJlbmNlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShSRUZFUkVOQ0VfUlVMRV9OQU1FKSxcbiAgICAgIHNpZ25hdHVyZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoU0lHTkFUVVJFX1JVTEVfTkFNRSksXG4gICAgICBjb21iaW5hdG9yUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShDT01CSU5BVE9SX1JVTEVfTkFNRSksXG4gICAgICBjb25jbHVzaW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShDT05DTFVTSU9OX1JVTEVfTkFNRSksXG4gICAgICBoeXBvdGhlc2lzUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShIWVBPVEhFU0lTX1JVTEVfTkFNRSksXG4gICAgICBhc3N1bXB0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShBU1NVTVBUSU9OX1JVTEVfTkFNRSksXG4gICAgICB0eXBlUHJlZml4UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShUWVBFX1BSRUZJWF9SVUxFX05BTUUpLFxuICAgICAgc3VwcG9zaXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFNVUFBPU0lUSU9OX1JVTEVfTkFNRSksXG4gICAgICBjb25zdHJ1Y3RvclBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoQ09OU1RSVUNUT1JfUlVMRV9OQU1FKSxcbiAgICAgIGVxdWl2YWxlbmNlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShFUVVJVkFMRU5DRV9SVUxFX05BTUUpLFxuICAgICAgbWV0YXZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShNRVRBVkFSSUFCTEVfUlVMRV9OQU1FKSxcbiAgICAgIHR5cGVBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFRZUEVfQVNTRVJUSU9OX1JVTEVfTkFNRSksXG4gICAgICBwcm9jZWR1cmVDYWxsUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQUk9DRURVUkVfQ0FMTF9SVUxFX05BTUUpLFxuICAgICAgcHJvcGVydHlSZWxhdGlvbmxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQUk9QRVJUWV9SRUxBVElPTl9SVUxFX05BTUUpLFxuICAgICAgZGVmaW5lZEFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHRlcm1TdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSksXG4gICAgICBzdWJwcm9vZkFzc2VydGlvbmxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVUJQUk9PRl9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHByb3BlcnR5QXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIGZyYW1lU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShGUkFNRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHByb2NlZHVyZVJlZmVyZW5jZWxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQUk9DRURVUkVfUkVGRVJFTkNFX1JVTEVfTkFNRSksXG4gICAgICBjb250YWluZWRBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKENPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHNpZ25hdHVyZUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoU0lHTkFUVVJFX0FTU0VSVElPTl9SVUxFX05BTUUpLFxuICAgICAgbWV0YUxldmVsQXNzdW1wdGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoTUVUQV9MRVZFTF9BU1NVTVBUSU9OX1JVTEVfTkFNRSksXG4gICAgICBzdGF0ZW1lbnRTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHJlZmVyZW5jZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUkVGRVJFTkNFX1NVQlNUSVRVVElPTl9SVUxFX05BTUUpO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQcmVtaXNlKHN0cmluZywgY29udGV4dCkge1xuICBzdHJpbmcgPSBgJHtzdHJpbmd9XG5gOyAgLy8vXG5cbiAgcmV0dXJuIGluc3RhbnRpYXRlKHByZW1pc2VQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZURlZHVjdGlvbihzdHJpbmcsIGNvbnRleHQpIHtcbiAgc3RyaW5nID0gYCR7c3RyaW5nfVxuYDsgIC8vL1xuXG4gIHJldHVybiBpbnN0YW50aWF0ZShkZWR1Y3Rpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUNvbmNsdXNpb24oc3RyaW5nLCBjb250ZXh0KSB7XG4gIHN0cmluZyA9IGAke3N0cmluZ31cbmA7ICAvLy9cblxuICByZXR1cm4gaW5zdGFudGlhdGUoY29uY2x1c2lvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlU3VwcG9zaXRpb24oc3RyaW5nLCBjb250ZXh0KSB7XG4gIHN0cmluZyA9IGAke3N0cmluZ31cbmA7ICAvLy9cblxuICByZXR1cm4gaW5zdGFudGlhdGUoc3VwcG9zaXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVRlcm0oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0ZXJtUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVR5cGUoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0eXBlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUZyYW1lKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZnJhbWVQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlTGFiZWwoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShsYWJlbFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVWYXJpYWJsZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUVxdWFsaXR5KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZXF1YWxpdHlQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUHJvcGVydHkoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShwcm9wZXJ0eVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVKdWRnZW1lbnQoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShqdWRnZW1lbnRsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQYXJhbWV0ZXIoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShwYXJhbWV0ZXJQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlU3RhdGVtZW50KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoc3RhdGVtZW50UGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVJlZmVyZW5jZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHJlZmVyZW5jZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVTaWduYXR1cmUoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShzaWduYXR1cmVQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQ29tYmluYXRvcihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGNvbWJpbmF0b3JQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlSHlwb3RoZXNpcyhzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGh5cG90aGVzaXNQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQXNzdW1wdGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGFzc3VtcHRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVHlwZVByZWZpeChzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHR5cGVQcmVmaXhQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQ29uc3RydWN0b3Ioc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShjb25zdHJ1Y3RvclBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVFcXVpdmFsZW5jZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGVxdWl2YWxlbmNlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZU1ldGF2YXJpYWJsZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKG1ldGF2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVUeXBlQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodHlwZUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQcm9jZWR1cmVDYWxsKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocHJvY2VkdXJlQ2FsbFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQcm9wZXJ0eVJlbGF0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocHJvcGVydHlSZWxhdGlvbmxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZURlZmluZWRBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShkZWZpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVRlcm1TdWJzdGl0dXRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVN1YnByb29mQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoc3VicHJvb2ZBc3NlcnRpb25sYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQcm9wZXJ0eUFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHByb3BlcnR5QXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUZyYW1lU3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZnJhbWVTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUHJvY2VkdXJlUmVmZXJlbmNlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocHJvY2VkdXJlUmVmZXJlbmNlbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQ29udGFpbmVkQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoY29udGFpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVNpZ25hdHVyZUFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHNpZ25hdHVyZUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVNZXRhTGV2ZWxBc3N1bXB0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUobWV0YUxldmVsQXNzdW1wdGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVTdGF0ZW1lbnRTdWJzdGl0dXRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShzdGF0ZW1lbnRTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUmVmZXJlbmNlU3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocmVmZXJlbmNlU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmZ1bmN0aW9uIGluc3RhbnRpYXRlKHBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KSB7XG4gIGxldCBub2RlO1xuXG4gIGNvbnN0IGxleGVyID0gY29udGV4dC5nZXRMZXhlcigpLFxuICAgICAgICBwYXJzZXIgPSBjb250ZXh0LmdldFBhcnNlcigpLFxuICAgICAgICBjb250ZW50ID0gYCR7c3RyaW5nfVxuYCxcbiAgICAgICAgdG9rZW5zID0gbGV4ZXIudG9rZW5pc2UoY29udGVudCk7XG5cbiAgY29udGV4dC5zZXRUb2tlbnModG9rZW5zKTtcblxuICBjb25zdCBzdGFydFJ1bGUgPSBwbGFjZWhvbGRlclJ1bGU7ICAvLy9cblxuICBub2RlID0gcGFyc2VyLnBhcnNlKHRva2Vucywgc3RhcnRSdWxlKTtcblxuICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlOyAvLy9cblxuICBub25UZXJtaW5hbE5vZGUuc29tZUNoaWxkTm9kZSgoY2hpbGROb2RlKSA9PiB7XG4gICAgbm9kZSA9IGNoaWxkTm9kZTsgLy8vXG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIG5vZGU7XG59XG4iXSwibmFtZXMiOlsiaW5zdGFudGlhdGVBc3N1bXB0aW9uIiwiaW5zdGFudGlhdGVDb21iaW5hdG9yIiwiaW5zdGFudGlhdGVDb25jbHVzaW9uIiwiaW5zdGFudGlhdGVDb25zdHJ1Y3RvciIsImluc3RhbnRpYXRlQ29udGFpbmVkQXNzZXJ0aW9uIiwiaW5zdGFudGlhdGVEZWR1Y3Rpb24iLCJpbnN0YW50aWF0ZURlZmluZWRBc3NlcnRpb24iLCJpbnN0YW50aWF0ZUVxdWFsaXR5IiwiaW5zdGFudGlhdGVFcXVpdmFsZW5jZSIsImluc3RhbnRpYXRlRnJhbWUiLCJpbnN0YW50aWF0ZUZyYW1lU3Vic3RpdHV0aW9uIiwiaW5zdGFudGlhdGVIeXBvdGhlc2lzIiwiaW5zdGFudGlhdGVKdWRnZW1lbnQiLCJpbnN0YW50aWF0ZUxhYmVsIiwiaW5zdGFudGlhdGVNZXRhTGV2ZWxBc3N1bXB0aW9uIiwiaW5zdGFudGlhdGVNZXRhdmFyaWFibGUiLCJpbnN0YW50aWF0ZVBhcmFtZXRlciIsImluc3RhbnRpYXRlUHJlbWlzZSIsImluc3RhbnRpYXRlUHJvY2VkdXJlQ2FsbCIsImluc3RhbnRpYXRlUHJvY2VkdXJlUmVmZXJlbmNlIiwiaW5zdGFudGlhdGVQcm9wZXJ0eSIsImluc3RhbnRpYXRlUHJvcGVydHlBc3NlcnRpb24iLCJpbnN0YW50aWF0ZVByb3BlcnR5UmVsYXRpb24iLCJpbnN0YW50aWF0ZVJlZmVyZW5jZSIsImluc3RhbnRpYXRlUmVmZXJlbmNlU3Vic3RpdHV0aW9uIiwiaW5zdGFudGlhdGVTaWduYXR1cmUiLCJpbnN0YW50aWF0ZVNpZ25hdHVyZUFzc2VydGlvbiIsImluc3RhbnRpYXRlU3RhdGVtZW50IiwiaW5zdGFudGlhdGVTdGF0ZW1lbnRTdWJzdGl0dXRpb24iLCJpbnN0YW50aWF0ZVN1YnByb29mQXNzZXJ0aW9uIiwiaW5zdGFudGlhdGVTdXBwb3NpdGlvbiIsImluc3RhbnRpYXRlVGVybSIsImluc3RhbnRpYXRlVGVybVN1YnN0aXR1dGlvbiIsImluc3RhbnRpYXRlVHlwZSIsImluc3RhbnRpYXRlVHlwZUFzc2VydGlvbiIsImluc3RhbnRpYXRlVHlwZVByZWZpeCIsImluc3RhbnRpYXRlVmFyaWFibGUiLCJ0ZXJtUGxhY2Vob2xkZXJSdWxlIiwicnVsZUZyb21SdWxlTmFtZSIsIlRFUk1fUlVMRV9OQU1FIiwidHlwZVBsYWNlaG9sZGVyUnVsZSIsIlRZUEVfUlVMRV9OQU1FIiwiZnJhbWVQbGFjZWhvbGRlclJ1bGUiLCJGUkFNRV9SVUxFX05BTUUiLCJsYWJlbFBsYWNlaG9sZGVyUnVsZSIsIkxBQkVMX1JVTEVfTkFNRSIsInByZW1pc2VQbGFjZWhvbGRlclJ1bGUiLCJQUkVNSVNFX1JVTEVfTkFNRSIsInZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlIiwiVkFSSUFCTEVfUlVMRV9OQU1FIiwiZXF1YWxpdHlQbGFjZWhvbGRlclJ1bGUiLCJFUVVBTElUWV9SVUxFX05BTUUiLCJwcm9wZXJ0eVBsYWNlaG9sZGVyUnVsZSIsIlBST1BFUlRZX1JVTEVfTkFNRSIsImp1ZGdlbWVudGxhY2Vob2xkZXJSdWxlIiwiSlVER0VNRU5UX1JVTEVfTkFNRSIsImRlZHVjdGlvblBsYWNlaG9sZGVyUnVsZSIsIkRFRFVDVElPTl9SVUxFX05BTUUiLCJwYXJhbWV0ZXJQbGFjZWhvbGRlclJ1bGUiLCJQQVJBTUVURVJfUlVMRV9OQU1FIiwic3RhdGVtZW50UGxhY2Vob2xkZXJSdWxlIiwiU1RBVEVNRU5UX1JVTEVfTkFNRSIsInJlZmVyZW5jZVBsYWNlaG9sZGVyUnVsZSIsIlJFRkVSRU5DRV9SVUxFX05BTUUiLCJzaWduYXR1cmVQbGFjZWhvbGRlclJ1bGUiLCJTSUdOQVRVUkVfUlVMRV9OQU1FIiwiY29tYmluYXRvclBsYWNlaG9sZGVyUnVsZSIsIkNPTUJJTkFUT1JfUlVMRV9OQU1FIiwiY29uY2x1c2lvblBsYWNlaG9sZGVyUnVsZSIsIkNPTkNMVVNJT05fUlVMRV9OQU1FIiwiaHlwb3RoZXNpc1BsYWNlaG9sZGVyUnVsZSIsIkhZUE9USEVTSVNfUlVMRV9OQU1FIiwiYXNzdW1wdGlvblBsYWNlaG9sZGVyUnVsZSIsIkFTU1VNUFRJT05fUlVMRV9OQU1FIiwidHlwZVByZWZpeFBsYWNlaG9sZGVyUnVsZSIsIlRZUEVfUFJFRklYX1JVTEVfTkFNRSIsInN1cHBvc2l0aW9uUGxhY2Vob2xkZXJSdWxlIiwiU1VQUE9TSVRJT05fUlVMRV9OQU1FIiwiY29uc3RydWN0b3JQbGFjZWhvbGRlclJ1bGUiLCJDT05TVFJVQ1RPUl9SVUxFX05BTUUiLCJlcXVpdmFsZW5jZVBsYWNlaG9sZGVyUnVsZSIsIkVRVUlWQUxFTkNFX1JVTEVfTkFNRSIsIm1ldGF2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSIsIk1FVEFWQVJJQUJMRV9SVUxFX05BTUUiLCJ0eXBlQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlIiwiVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FIiwicHJvY2VkdXJlQ2FsbFBsYWNlaG9sZGVyUnVsZSIsIlBST0NFRFVSRV9DQUxMX1JVTEVfTkFNRSIsInByb3BlcnR5UmVsYXRpb25sYWNlaG9sZGVyUnVsZSIsIlBST1BFUlRZX1JFTEFUSU9OX1JVTEVfTkFNRSIsImRlZmluZWRBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUiLCJERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUiLCJ0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlIiwiVEVSTV9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwic3VicHJvb2ZBc3NlcnRpb25sYWNlaG9sZGVyUnVsZSIsIlNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUiLCJwcm9wZXJ0eUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSIsIlBST1BFUlRZX0FTU0VSVElPTl9SVUxFX05BTUUiLCJmcmFtZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSIsIkZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJwcm9jZWR1cmVSZWZlcmVuY2VsYWNlaG9sZGVyUnVsZSIsIlBST0NFRFVSRV9SRUZFUkVOQ0VfUlVMRV9OQU1FIiwiY29udGFpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlIiwiQ09OVEFJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUiLCJzaWduYXR1cmVBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUiLCJTSUdOQVRVUkVfQVNTRVJUSU9OX1JVTEVfTkFNRSIsIm1ldGFMZXZlbEFzc3VtcHRpb25QbGFjZWhvbGRlclJ1bGUiLCJNRVRBX0xFVkVMX0FTU1VNUFRJT05fUlVMRV9OQU1FIiwic3RhdGVtZW50U3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlIiwiU1RBVEVNRU5UX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJyZWZlcmVuY2VTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUiLCJSRUZFUkVOQ0VfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsInN0cmluZyIsImNvbnRleHQiLCJpbnN0YW50aWF0ZSIsInBsYWNlaG9sZGVyUnVsZSIsIm5vZGUiLCJsZXhlciIsImdldExleGVyIiwicGFyc2VyIiwiZ2V0UGFyc2VyIiwiY29udGVudCIsInRva2VucyIsInRva2VuaXNlIiwic2V0VG9rZW5zIiwic3RhcnRSdWxlIiwicGFyc2UiLCJub25UZXJtaW5hbE5vZGUiLCJzb21lQ2hpbGROb2RlIiwiY2hpbGROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUF1SWdCQTtlQUFBQTs7UUFKQUM7ZUFBQUE7O1FBdENBQztlQUFBQTs7UUE4Q0FDO2VBQUFBOztRQXdCQUM7ZUFBQUE7O1FBN0VBQztlQUFBQTs7UUFpRUFDO2VBQUFBOztRQWxDQUM7ZUFBQUE7O1FBd0JBQztlQUFBQTs7UUE5QkFDO2VBQUFBOztRQWdEQUM7ZUFBQUE7O1FBMUJBQztlQUFBQTs7UUFaQUM7ZUFBQUE7O1FBUkFDO2VBQUFBOztRQXNEQUM7ZUFBQUE7O1FBeEJBQztlQUFBQTs7UUFwQkFDO2VBQUFBOztRQTVDQUM7ZUFBQUE7O1FBb0VBQztlQUFBQTs7UUFjQUM7ZUFBQUE7O1FBMUNBQztlQUFBQTs7UUFzQ0FDO2VBQUFBOztRQVJBQztlQUFBQTs7UUF0QkFDO2VBQUFBOztRQTRDQUM7ZUFBQUE7O1FBMUNBQztlQUFBQTs7UUFvQ0FDO2VBQUFBOztRQXhDQUM7ZUFBQUE7O1FBNENBQztlQUFBQTs7UUFkQUM7ZUFB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
|