@decaf-ts/for-nest 0.11.2-refactor.2 → 0.11.2-refactor.4
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/README.md +273 -1
- package/dist/for-nest.cjs +219 -193
- package/dist/for-nest.js +235 -208
- package/lib/cjs/auth/AuthInterceptor.cjs +6 -3
- package/lib/cjs/auth/DecafAuthModule.cjs +2 -8
- package/lib/cjs/decaf-model/DecafModelModule.cjs +7 -2
- package/lib/cjs/decaf-model/FromModelController.cjs +121 -68
- package/lib/cjs/decaf-model/decorators/utils.cjs +4 -3
- package/lib/cjs/decaf-model/utils.cjs +10 -4
- package/lib/cjs/decorators.cjs +4 -3
- package/lib/cjs/index.cjs +3 -3
- package/lib/cjs/request/DecafRequestContext.cjs +5 -2
- package/lib/esm/auth/AuthInterceptor.js +6 -3
- package/lib/esm/auth/DecafAuthModule.js +1 -7
- package/lib/esm/decaf-model/DecafModelModule.js +6 -1
- package/lib/esm/decaf-model/FromModelController.js +122 -69
- package/lib/esm/decaf-model/decorators/utils.js +3 -2
- package/lib/esm/decaf-model/utils.js +9 -3
- package/lib/esm/decorators.js +3 -2
- package/lib/esm/index.js +3 -3
- package/lib/esm/request/DecafRequestContext.js +4 -1
- package/lib/types/decaf-model/FromModelController.d.cts +3 -0
- package/lib/types/decaf-model/FromModelController.d.mts +3 -0
- package/lib/types/index.d.cts +3 -3
- package/lib/types/index.d.mts +3 -3
- package/lib/types/request/DecafRequestContext.d.cts +1 -0
- package/lib/types/request/DecafRequestContext.d.mts +1 -0
- package/package.json +1 -1
|
@@ -72,7 +72,10 @@ let AuthInterceptor = class AuthInterceptor {
|
|
|
72
72
|
const transformer = core_2.Adapter.transformerFor(flavour);
|
|
73
73
|
if (!transformer)
|
|
74
74
|
continue;
|
|
75
|
-
const
|
|
75
|
+
const instance = transformer.from
|
|
76
|
+
? transformer
|
|
77
|
+
: new transformer();
|
|
78
|
+
const from = await instance.from(this.requestContext);
|
|
76
79
|
if (from)
|
|
77
80
|
this.requestContext.accumulate(from);
|
|
78
81
|
}
|
|
@@ -86,5 +89,5 @@ exports.AuthInterceptor = AuthInterceptor = __decorate([
|
|
|
86
89
|
__metadata("design:paramtypes", [core_1.Reflector,
|
|
87
90
|
DecafRequestContext_js_1.DecafRequestContext, Object])
|
|
88
91
|
], AuthInterceptor);
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQXV0aEludGVyY2VwdG9yLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdB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QkFDWixTQUFTO1lBQ2IsTUFBTSxJQUFJLEdBQUcsTUFBTSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN6RCxJQUFJLElBQUk7Z0JBQ0osSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNMLENBQUM7Q0FDSixDQUFDO0FBUU8sMENBQWU7QUFQeEIsMEJBQUEsZUFBZSxHQUFHLFVBQVUsQ0FBQztJQUN6QixJQUFBLG1CQUFVLEVBQUMsRUFBRSxLQUFLLEVBQUUsY0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBQSxpQkFBUSxHQUFFLENBQUM7SUFDdEIsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFBLGVBQU0sRUFBQywyQkFBWSxDQUFDLENBQUM7SUFDaEMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUMsZ0JBQVM7UUFDdEMsNENBQW1CLEVBQUUsTUFBTSxDQUFDLENBQUM7Q0FDcEMsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUVwQixzMlFBQXMyUSIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlY29yYXRlID0gKHRoaXMgJiYgdGhpcy5fX2RlY29yYXRlKSB8fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbnZhciBfX21ldGFkYXRhID0gKHRoaXMgJiYgdGhpcy5fX21ldGFkYXRhKSB8fCBmdW5jdGlvbiAoaywgdikge1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTtcbn07XG52YXIgX19wYXJhbSA9ICh0aGlzICYmIHRoaXMuX19wYXJhbSkgfHwgZnVuY3Rpb24gKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxufTtcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT3B0aW9uYWwsIFNjb3BlLCB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgUmVmbGVjdG9yIH0gZnJvbSBcIkBuZXN0anMvY29yZVwiO1xuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgQWRhcHRlciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQVVUSF9IQU5ETEVSLCBBVVRIX01FVEFfS0VZLCBJU19QVUJMSUNfS0VZLCBSRVFVSVJFRF9ST0xFU19LRVksIFNLSVBfTU9ERUxfUk9MRVNfS0VZIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBEZWNhZlJlcXVlc3RDb250ZXh0IH0gZnJvbSBcIi4vLi4vcmVxdWVzdC9EZWNhZlJlcXVlc3RDb250ZXh0LmpzXCI7XG5sZXQgQXV0aEludGVyY2VwdG9yID0gY2xhc3MgQXV0aEludGVyY2VwdG9yIHtcbiAgICBjb25zdHJ1Y3RvcihyZWZsZWN0b3IsIHJlcXVlc3RDb250ZXh0LCBhdXRoSGFuZGxlcikge1xuICAgICAgICB0aGlzLnJlZmxlY3RvciA9IHJlZmxlY3RvcjtcbiAgICAgICAgdGhpcy5yZXF1ZXN0Q29udGV4dCA9IHJlcXVlc3RDb250ZXh0O1xuICAgICAgICB0aGlzLmF1dGhIYW5kbGVyID0gYXV0aEhhbmRsZXI7XG4gICAgfVxuICAgIGFzeW5jIGludGVyY2VwdChjdHgsIG5leHQpIHtcbiAgICAgICAgY29uc3QgbG9nID0gTG9nZ2luZy5mb3IodGhpcykuZm9yKHRoaXMuaW50ZXJjZXB0KTtcbiAgICAgICAgY29uc3QgaXNQdWJsaWMgPSB0aGlzLnJlZmxlY3Rvci5nZXRBbGxBbmRPdmVycmlkZShJU19QVUJMSUNfS0VZLCBbXG4gICAgICAgICAgICBjdHguZ2V0SGFuZGxlcigpLFxuICAgICAgICAgICAgY3R4LmdldENsYXNzKCksXG4gICAgICAgIF0pO1xuICAgICAgICBjb25zdCBtb2RlbE5hbWUgPSB0aGlzLnJlZmxlY3Rvci5nZXQoQVVUSF9NRVRBX0tFWSwgY3R4LmdldEhhbmRsZXIoKSkgPz9cbiAgICAgICAgICAgIHRoaXMucmVmbGVjdG9yLmdldChBVVRIX01FVEFfS0VZLCBjdHguZ2V0Q2xhc3MoKSk7XG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUm9sZXMgPSB0aGlzLnJlZmxlY3Rvci5nZXRBbGxBbmRPdmVycmlkZShSRVFVSVJFRF9ST0xFU19LRVksIFtjdHguZ2V0SGFuZGxlcigpLCBjdHguZ2V0Q2xhc3MoKV0pO1xuICAgICAgICBjb25zdCBza2lwTW9kZWxSb2xlcyA9IHRoaXMucmVmbGVjdG9yLmdldEFsbEFuZE92ZXJyaWRlKFNLSVBfTU9ERUxfUk9MRVNfS0VZLCBbY3R4LmdldEhhbmRsZXIoKSwgY3R4LmdldENsYXNzKCldKTtcbiAgICAgICAgY29uc3QgZWZmZWN0aXZlTW9kZWwgPSBza2lwTW9kZWxSb2xlcyA/IHVuZGVmaW5lZCA6IG1vZGVsTmFtZTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYEludGVyY2VwdGVkIHJlcXVlc3Qke21vZGVsTmFtZSA/IGAgZm9yICR7bW9kZWxOYW1lfWAgOiBcIlwifWApO1xuICAgICAgICBpZiAoaXNQdWJsaWMpIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhgUHVibGljIHJvdXRlIOKAlCBza2lwcGluZyBhdXRoYCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5hdXRoSGFuZGxlcikge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5hdXRoSGFuZGxlci5hdXRob3JpemUoY3R4LCBlZmZlY3RpdmVNb2RlbCwgcmVxdWlyZWRSb2xlcywgdGhpcy5yZXF1ZXN0Q29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsb2cuZGVidWcoYE5vIGF1dGggaGFuZGxlciByZWdpc3RlcmVkYCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVHJhbnNmb3JtZXJzIHJ1biBBRlRFUiBhdXRoIHNvIHRoZXkgY2FuIHJlYWQgYXV0aC1wb3B1bGF0ZWQgZmllbGRzXG4gICAgICAgIC8vIChlLmcuIGB1c2VyYCkgZnJvbSB0aGUgY29udGV4dCBhbmQgbWFwIHRoZW0gdG8gYWRhcHRlci1zcGVjaWZpYyBrZXlzXG4gICAgICAgIC8vIChlLmcuIGBVVUlEYCBmb3IgUmFtQWRhcHRlcidzIEBjcmVhdGVkQnkvQHVwZGF0ZWRCeSBoYW5kbGVycykuXG4gICAgICAgIGF3YWl0IHRoaXMuYXBwbHlUcmFuc2Zvcm1lcnMoKTtcbiAgICAgICAgY29uc3QgdXNlciA9IHRoaXMucmVxdWVzdENvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJ1c2VyXCIpO1xuICAgICAgICBjb25zdCBvcmdhbml6YXRpb24gPSB0aGlzLnJlcXVlc3RDb250ZXh0LmdldE9yVW5kZWZpbmVkKFwib3JnYW5pemF0aW9uXCIpO1xuICAgICAgICBpZiAodXNlciB8fCBvcmdhbml6YXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRMb2cgPSB0aGlzLnJlcXVlc3RDb250ZXh0LmdldChcImxvZ2dlclwiKTtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkTG9nID0gY3VycmVudExvZy5mb3IoeyB1c2VyLCBvcmdhbml6YXRpb24gfSk7XG4gICAgICAgICAgICB0aGlzLnJlcXVlc3RDb250ZXh0LmFjY3VtdWxhdGUoeyBsb2dnZXI6IGNoaWxkTG9nIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZSgpO1xuICAgIH1cbiAgICBhc3luYyBhcHBseVRyYW5zZm9ybWVycygpIHtcbiAgICAgICAgY29uc3QgZmxhdm91cnMgPSBBZGFwdGVyLmZsYXZvdXJzVG9UcmFuc2Zvcm0oKTtcbiAgICAgICAgaWYgKCFmbGF2b3VycylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgZm9yIChjb25zdCBmbGF2b3VyIG9mIGZsYXZvdXJzKSB7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1lciA9IEFkYXB0ZXIudHJhbnNmb3JtZXJGb3IoZmxhdm91cik7XG4gICAgICAgICAgICBpZiAoIXRyYW5zZm9ybWVyKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgY29uc3QgZnJvbSA9IGF3YWl0IHRyYW5zZm9ybWVyLmZyb20odGhpcy5yZXF1ZXN0Q29udGV4dCk7XG4gICAgICAgICAgICBpZiAoZnJvbSlcbiAgICAgICAgICAgICAgICB0aGlzLnJlcXVlc3RDb250ZXh0LmFjY3VtdWxhdGUoZnJvbSk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuQXV0aEludGVyY2VwdG9yID0gX19kZWNvcmF0ZShbXG4gICAgSW5qZWN0YWJsZSh7IHNjb3BlOiBTY29wZS5SRVFVRVNUIH0pLFxuICAgIF9fcGFyYW0oMiwgT3B0aW9uYWwoKSksXG4gICAgX19wYXJhbSgyLCBJbmplY3QoQVVUSF9IQU5ETEVSKSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtSZWZsZWN0b3IsXG4gICAgICAgIERlY2FmUmVxdWVzdENvbnRleHQsIE9iamVjdF0pXG5dLCBBdXRoSW50ZXJjZXB0b3IpO1xuZXhwb3J0IHsgQXV0aEludGVyY2VwdG9yIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lRWFYwYUVsdWRHVnlZMlZ3ZEc5eUxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpTGk0dkxpNHZMaTR2YzNKakwyRjFkR2d2UVhWMGFFbHVkR1Z5WTJWd2RHOXlMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3T3p0QlFVRkJMRTlCUVU4c1JVRkRUQ3hWUVVGVkxFVkJTVllzVFVGQlRTeEZRVU5PTEZGQlFWRXNSVUZEVWl4TFFVRkxMRWRCUTA0c1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVTjRRaXhQUVVGUExFVkJRVVVzVTBGQlV5eEZRVUZGTEUxQlFVMHNZMEZCWXl4RFFVRkRPMEZCU1hwRExFOUJRVThzUlVGQlJTeFBRVUZQTEVWQlFVVXNUVUZCVFN4dFFrRkJiVUlzUTBGQlF6dEJRVU0xUXl4UFFVRlBMRVZCUVVVc1QwRkJUeXhGUVVGRkxFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkhla01zVDBGQlR5eEZRVUZGTEZsQlFWa3NSVUZCUlN4aFFVRmhMRVZCUVVVc1lVRkJZU3hGUVVGRkxHdENRVUZyUWl4RlFVRkZMRzlDUVVGdlFpeEZRVUZGTEhWQ1FVRnZRanRCUVVWdVNDeFBRVUZQTEVWQlFVVXNiVUpCUVcxQ0xFVkJRVVVzTkVOQlFYVkRPMEZCUnpsRUxFbEJRVTBzWlVGQlpTeEhRVUZ5UWl4TlFVRk5MR1ZCUVdVN1NVRkRNVUlzV1VGRGJVSXNVMEZCYjBJc1JVRkRiRUlzWTBGQmJVTXNSVUZEU0N4WFFVRjVRanRSUVVZelJDeGpRVUZUTEVkQlFWUXNVMEZCVXl4RFFVRlhPMUZCUTJ4Q0xHMUNRVUZqTEVkQlFXUXNZMEZCWXl4RFFVRnhRanRSUVVOSUxHZENRVUZYTEVkQlFWZ3NWMEZCVnl4RFFVRmpPMGxCUXpORkxFTkJRVU03U1VGRlNpeExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVTmlMRWRCUVhGQ0xFVkJRM0pDTEVsQlFXbENPMUZCUldwQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJWeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVWNlJDeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExHbENRVUZwUWl4RFFVRlZMR0ZCUVdFc1JVRkJSVHRaUVVONFJTeEhRVUZITEVOQlFVTXNWVUZCVlN4RlFVRkZPMWxCUTJoQ0xFZEJRVWNzUTBGQlF5eFJRVUZSTEVWQlFVVTdVMEZEWml4RFFVRkRMRU5CUVVNN1VVRkZTQ3hOUVVGTkxGTkJRVk1zUjBGRFlpeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkRhRUlzWVVGQllTeEZRVU5pTEVkQlFVY3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkRha0k3V1VGRFJDeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJkVUlzWVVGQllTeEZRVUZGTEVkQlFVY3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSVEZGTEUxQlFVMHNZVUZCWVN4SFFVRkhMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zYVVKQlFXbENMRU5CUTNCRUxHdENRVUZyUWl4RlFVTnNRaXhEUVVGRExFZEJRVWNzUTBGQlF5eFZRVUZWTEVWQlFVVXNSVUZCUlN4SFFVRkhMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zUTBGRGJrTXNRMEZCUXp0UlFVVkdMRTFCUVUwc1kwRkJZeXhIUVVGSExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNhVUpCUVdsQ0xFTkJRM0pFTEc5Q1FVRnZRaXhGUVVOd1FpeERRVUZETEVkQlFVY3NRMEZCUXl4VlFVRlZMRVZCUVVVc1JVRkJSU3hIUVVGSExFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTXNRMEZEYmtNc1EwRkJRenRSUVVWR0xFMUJRVTBzWTBGQll5eEhRVUZITEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTTdVVUZGT1VRc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eHpRa0ZCYzBJc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlJURkZMRWxCUVVrc1VVRkJVU3hGUVVGRkxFTkJRVU03V1VGRFlpeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRGhDUVVFNFFpeERRVUZETEVOQlFVTTdVVUZETlVNc1EwRkJRenRoUVVGTkxFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMWxCUXpWQ0xFMUJRVTBzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4VFFVRlRMRU5CUXpsQ0xFZEJRVWNzUlVGRFNDeGpRVUZ6UXl4RlFVTjBReXhoUVVGaExFVkJRMklzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZEY0VJc1EwRkJRenRSUVVOS0xFTkJRVU03WVVGQlRTeERRVUZETzFsQlEwNHNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXcwUWtGQk5FSXNRMEZCUXl4RFFVRkRPMUZCUXpGRExFTkJRVU03VVVGRlJDeHhSVUZCY1VVN1VVRkRja1VzZFVWQlFYVkZPMUZCUTNaRkxHbEZRVUZwUlR0UlFVTnFSU3hOUVVGTkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hEUVVGRE8xRkJSUzlDTEUxQlFVMHNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zWTBGQll5eERRVUZETEUxQlFXRXNRMEZCUXl4RFFVRkRPMUZCUXk5RUxFMUJRVTBzV1VGQldTeEhRVUZITEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1kwRkJZeXhEUVVGRExHTkJRWEZDTEVOQlFVTXNRMEZCUXp0UlFVTXZSU3hKUVVGSkxFbEJRVWtzU1VGQlNTeFpRVUZaTEVWQlFVVXNRMEZCUXp0WlFVTjZRaXhOUVVGTkxGVkJRVlVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWRCUVVjc1EwRkJReXhSUVVGbExFTkJRVU1zUTBGQlF6dFpRVU0xUkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNTVUZCU1N4RlFVRkZMRmxCUVZrc1JVRkJSU3hEUVVGRExFTkJRVU03V1VGRGVFUXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhWUVVGVkxFTkJRVU1zUlVGQlJTeE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRlRMRU5CUVVNc1EwRkJRenRSUVVNNVJDeERRVUZETzFGQlJVUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03U1VGRGRrSXNRMEZCUXp0SlFVVlRMRXRCUVVzc1EwRkJReXhwUWtGQmFVSTdVVUZETDBJc1RVRkJUU3hSUVVGUkxFZEJRVWNzVDBGQlR5eERRVUZETEcxQ1FVRnRRaXhGUVVGRkxFTkJRVU03VVVGREwwTXNTVUZCU1N4RFFVRkRMRkZCUVZFN1dVRkJSU3hQUVVGUE8xRkJSWFJDTEV0QlFVc3NUVUZCVFN4UFFVRlBMRWxCUVVrc1VVRkJVU3hGUVVGRkxFTkJRVU03V1VGREwwSXNUVUZCVFN4WFFVRlhMRWRCUVVjc1QwRkJUeXhEUVVGRExHTkJRV01zUTBGRGVFTXNUMEZCVHl4RFFVTTBRaXhEUVVGRE8xbEJRM1JETEVsQlFVa3NRMEZCUXl4WFFVRlhPMmRDUVVGRkxGTkJRVk03V1VGRE0wSXNUVUZCVFN4SlFVRkpMRWRCUVVjc1RVRkJUU3hYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJRenRaUVVONlJDeEpRVUZKTEVsQlFVazdaMEpCUVVVc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRha1FzUTBGQlF6dEpRVU5JTEVOQlFVTTdRMEZEUml4RFFVRkJPMEZCYWtaWkxHVkJRV1U3U1VGRU0wSXNWVUZCVlN4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0SlFVdG9ReXhYUVVGQkxGRkJRVkVzUlVGQlJTeERRVUZCTzBsQlFVVXNWMEZCUVN4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVUU3Y1VOQlJrd3NVMEZCVXp0UlFVTkdMRzFDUVVGdFFqdEhRVWczUXl4bFFVRmxMRU5CYVVZelFpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdYRzRnSUVsdWFtVmpkR0ZpYkdVc1hHNGdJRTVsYzNSSmJuUmxjbU5sY0hSdmNpeGNiaUFnUlhobFkzVjBhVzl1UTI5dWRHVjRkQ3hjYmlBZ1EyRnNiRWhoYm1Sc1pYSXNYRzRnSUVsdWFtVmpkQ3hjYmlBZ1QzQjBhVzl1WVd3c1hHNGdJRk5qYjNCbExGeHVmU0JtY205dElGd2lRRzVsYzNScWN5OWpiMjF0YjI1Y0lqdGNibWx0Y0c5eWRDQjdJRkpsWm14bFkzUnZjaUI5SUdaeWIyMGdYQ0pBYm1WemRHcHpMMk52Y21WY0lqdGNibWx0Y0c5eWRDQjdJRTlpYzJWeWRtRmliR1VnZlNCbWNtOXRJRndpY25ocWMxd2lPMXh1WEc1cGJYQnZjblFnZXlCRGIyNXpkSEoxWTNSdmNpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR1ZqYjNKaGRHbHZibHdpTzF4dWFXMXdiM0owSUhzZ1RHOW5aMmx1WnlCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdmJHOW5aMmx1WjF3aU8xeHVhVzF3YjNKMElIc2dRV1JoY0hSbGNpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZZMjl5WlZ3aU8xeHVhVzF3YjNKMElIc2dVbVZ4ZFdWemRGUnZRMjl1ZEdWNGRGUnlZVzV6Wm05eWJXVnlJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTltYjNJdGFIUjBjQzl6WlhKMlpYSmNJanRjYmx4dWFXMXdiM0owSUhzZ1FWVlVTRjlJUVU1RVRFVlNMQ0JCVlZSSVgwMUZWRUZmUzBWWkxDQkpVMTlRVlVKTVNVTmZTMFZaTENCU1JWRlZTVkpGUkY5U1QweEZVMTlMUlZrc0lGTkxTVkJmVFU5RVJVeGZVazlNUlZOZlMwVlpJSDBnWm5KdmJTQmNJaTR2WTI5dWMzUmhiblJ6WENJN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUVGMWRHaElZVzVrYkdWeUlIMGdabkp2YlNCY0lpNHVMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdleUJFWldOaFpsSmxjWFZsYzNSRGIyNTBaWGgwSUgwZ1puSnZiU0JjSWk0dUwzSmxjWFZsYzNRdlJHVmpZV1pTWlhGMVpYTjBRMjl1ZEdWNGRGd2lPMXh1WEc1QVNXNXFaV04wWVdKc1pTaDdJSE5qYjNCbE9pQlRZMjl3WlM1U1JWRlZSVk5VSUgwcFhHNWxlSEJ2Y25RZ1kyeGhjM01nUVhWMGFFbHVkR1Z5WTJWd2RHOXlJR2x0Y0d4bGJXVnVkSE1nVG1WemRFbHVkR1Z5WTJWd2RHOXlJSHRjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9YRzRnSUNBZ2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCeVpXWnNaV04wYjNJNklGSmxabXhsWTNSdmNpeGNiaUFnSUNCd2NtOTBaV04wWldRZ2NtVmhaRzl1YkhrZ2NtVnhkV1Z6ZEVOdmJuUmxlSFE2SUVSbFkyRm1VbVZ4ZFdWemRFTnZiblJsZUhRc1hHNGdJQ0FnUUU5d2RHbHZibUZzS0NrZ1FFbHVhbVZqZENoQlZWUklYMGhCVGtSTVJWSXBJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2dZWFYwYUVoaGJtUnNaWEkvT2lCQmRYUm9TR0Z1Wkd4bGNseHVJQ0FwSUh0OVhHNWNiaUFnWVhONWJtTWdhVzUwWlhKalpYQjBLRnh1SUNBZ0lHTjBlRG9nUlhobFkzVjBhVzl1UTI5dWRHVjRkQ3hjYmlBZ0lDQnVaWGgwT2lCRFlXeHNTR0Z1Wkd4bGNseHVJQ0FwT2lCUWNtOXRhWE5sUEU5aWMyVnlkbUZpYkdVOFlXNTVQajRnZTF4dUlDQWdJR052Ym5OMElHeHZaeUE5SUV4dloyZHBibWN1Wm05eUtIUm9hWE1nWVhNZ1lXNTVLUzVtYjNJb2RHaHBjeTVwYm5SbGNtTmxjSFFwTzF4dVhHNGdJQ0FnWTI5dWMzUWdhWE5RZFdKc2FXTWdQU0IwYUdsekxuSmxabXhsWTNSdmNpNW5aWFJCYkd4QmJtUlBkbVZ5Y21sa1pUeGliMjlzWldGdVBpaEpVMTlRVlVKTVNVTmZTMFZaTENCYlhHNGdJQ0FnSUNCamRIZ3VaMlYwU0dGdVpHeGxjaWdwTEZ4dUlDQWdJQ0FnWTNSNExtZGxkRU5zWVhOektDa3NYRzRnSUNBZ1hTazdYRzVjYmlBZ0lDQmpiMjV6ZENCdGIyUmxiRTVoYldVZ1BWeHVJQ0FnSUNBZ2RHaHBjeTV5Wldac1pXTjBiM0l1WjJWMFBITjBjbWx1WnlCOElFTnZibk4wY25WamRHOXlQaWhjYmlBZ0lDQWdJQ0FnUVZWVVNGOU5SVlJCWDB0RldTeGNiaUFnSUNBZ0lDQWdZM1I0TG1kbGRFaGhibVJzWlhJb0tWeHVJQ0FnSUNBZ0tTQS9QMXh1SUNBZ0lDQWdkR2hwY3k1eVpXWnNaV04wYjNJdVoyVjBQSE4wY21sdVp5QjhJRU52Ym5OMGNuVmpkRzl5UGloQlZWUklYMDFGVkVGZlMwVlpMQ0JqZEhndVoyVjBRMnhoYzNNb0tTazdYRzVjYmlBZ0lDQmpiMjV6ZENCeVpYRjFhWEpsWkZKdmJHVnpJRDBnZEdocGN5NXlaV1pzWldOMGIzSXVaMlYwUVd4c1FXNWtUM1psY25KcFpHVThjM1J5YVc1blcxMCtLRnh1SUNBZ0lDQWdVa1ZSVlVsU1JVUmZVazlNUlZOZlMwVlpMRnh1SUNBZ0lDQWdXMk4wZUM1blpYUklZVzVrYkdWeUtDa3NJR04wZUM1blpYUkRiR0Z6Y3lncFhWeHVJQ0FnSUNrN1hHNWNiaUFnSUNCamIyNXpkQ0J6YTJsd1RXOWtaV3hTYjJ4bGN5QTlJSFJvYVhNdWNtVm1iR1ZqZEc5eUxtZGxkRUZzYkVGdVpFOTJaWEp5YVdSbFBHSnZiMnhsWVc0K0tGeHVJQ0FnSUNBZ1UwdEpVRjlOVDBSRlRGOVNUMHhGVTE5TFJWa3NYRzRnSUNBZ0lDQmJZM1I0TG1kbGRFaGhibVJzWlhJb0tTd2dZM1I0TG1kbGRFTnNZWE56S0NsZFhHNGdJQ0FnS1R0Y2JseHVJQ0FnSUdOdmJuTjBJR1ZtWm1WamRHbDJaVTF2WkdWc0lEMGdjMnRwY0UxdlpHVnNVbTlzWlhNZ1B5QjFibVJsWm1sdVpXUWdPaUJ0YjJSbGJFNWhiV1U3WEc1Y2JpQWdJQ0JzYjJjdWRtVnlZbTl6WlNoZ1NXNTBaWEpqWlhCMFpXUWdjbVZ4ZFdWemRDUjdiVzlrWld4T1lXMWxJRDhnWUNCbWIzSWdKSHR0YjJSbGJFNWhiV1Y5WUNBNklGd2lYQ0o5WUNrN1hHNWNiaUFnSUNCcFppQW9hWE5RZFdKc2FXTXBJSHRjYmlBZ0lDQWdJR3h2Wnk1a1pXSjFaeWhnVUhWaWJHbGpJSEp2ZFhSbElPS0FsQ0J6YTJsd2NHbHVaeUJoZFhSb1lDazdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaDBhR2x6TG1GMWRHaElZVzVrYkdWeUtTQjdYRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbUYxZEdoSVlXNWtiR1Z5TG1GMWRHaHZjbWw2WlNoY2JpQWdJQ0FnSUNBZ1kzUjRMRnh1SUNBZ0lDQWdJQ0JsWm1abFkzUnBkbVZOYjJSbGJDQmhjeUJ6ZEhKcGJtY2dmQ0JEYjI1emRISjFZM1J2Y2l4Y2JpQWdJQ0FnSUNBZ2NtVnhkV2x5WldSU2IyeGxjeXhjYmlBZ0lDQWdJQ0FnZEdocGN5NXlaWEYxWlhOMFEyOXVkR1Y0ZEZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdiRzluTG1SbFluVm5LR0JPYnlCaGRYUm9JR2hoYm1Sc1pYSWdjbVZuYVhOMFpYSmxaR0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUZSeVlXNXpabTl5YldWeWN5QnlkVzRnUVVaVVJWSWdZWFYwYUNCemJ5QjBhR1Y1SUdOaGJpQnlaV0ZrSUdGMWRHZ3RjRzl3ZFd4aGRHVmtJR1pwWld4a2MxeHVJQ0FnSUM4dklDaGxMbWN1SUdCMWMyVnlZQ2tnWm5KdmJTQjBhR1VnWTI5dWRHVjRkQ0JoYm1RZ2JXRndJSFJvWlcwZ2RHOGdZV1JoY0hSbGNpMXpjR1ZqYVdacFl5QnJaWGx6WEc0Z0lDQWdMeThnS0dVdVp5NGdZRlZWU1VSZ0lHWnZjaUJTWVcxQlpHRndkR1Z5SjNNZ1FHTnlaV0YwWldSQ2VTOUFkWEJrWVhSbFpFSjVJR2hoYm1Sc1pYSnpLUzVjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbUZ3Y0d4NVZISmhibk5tYjNKdFpYSnpLQ2s3WEc1Y2JpQWdJQ0JqYjI1emRDQjFjMlZ5SUQwZ2RHaHBjeTV5WlhGMVpYTjBRMjl1ZEdWNGRDNW5aWFJQY2xWdVpHVm1hVzVsWkNoY0luVnpaWEpjSWlCaGN5QmhibmtwTzF4dUlDQWdJR052Ym5OMElHOXlaMkZ1YVhwaGRHbHZiaUE5SUhSb2FYTXVjbVZ4ZFdWemRFTnZiblJsZUhRdVoyVjBUM0pWYm1SbFptbHVaV1FvWENKdmNtZGhibWw2WVhScGIyNWNJaUJoY3lCaGJua3BPMXh1SUNBZ0lHbG1JQ2gxYzJWeUlIeDhJRzl5WjJGdWFYcGhkR2x2YmlrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWTNWeWNtVnVkRXh2WnlBOUlIUm9hWE11Y21WeGRXVnpkRU52Ym5SbGVIUXVaMlYwS0Z3aWJHOW5aMlZ5WENJZ1lYTWdZVzU1S1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR05vYVd4a1RHOW5JRDBnWTNWeWNtVnVkRXh2Wnk1bWIzSW9leUIxYzJWeUxDQnZjbWRoYm1sNllYUnBiMjRnZlNrN1hHNGdJQ0FnSUNCMGFHbHpMbkpsY1hWbGMzUkRiMjUwWlhoMExtRmpZM1Z0ZFd4aGRHVW9leUJzYjJkblpYSTZJR05vYVd4a1RHOW5JSDBnWVhNZ1lXNTVLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2JtVjRkQzVvWVc1a2JHVW9LVHRjYmlBZ2ZWeHVYRzRnSUhCeWIzUmxZM1JsWkNCaGMzbHVZeUJoY0hCc2VWUnlZVzV6Wm05eWJXVnljeWdwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCbWJHRjJiM1Z5Y3lBOUlFRmtZWEIwWlhJdVpteGhkbTkxY25OVWIxUnlZVzV6Wm05eWJTZ3BPMXh1SUNBZ0lHbG1JQ2doWm14aGRtOTFjbk1wSUhKbGRIVnlianRjYmx4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnWm14aGRtOTFjaUJ2WmlCbWJHRjJiM1Z5Y3lrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnZEhKaGJuTm1iM0p0WlhJZ1BTQkJaR0Z3ZEdWeUxuUnlZVzV6Wm05eWJXVnlSbTl5S0Z4dUlDQWdJQ0FnSUNCbWJHRjJiM1Z5WEc0Z0lDQWdJQ0FwSUdGeklGSmxjWFZsYzNSVWIwTnZiblJsZUhSVWNtRnVjMlp2Y20xbGNqeGhibmsrTzF4dUlDQWdJQ0FnYVdZZ0tDRjBjbUZ1YzJadmNtMWxjaWtnWTI5dWRHbHVkV1U3WEc0Z0lDQWdJQ0JqYjI1emRDQm1jbTl0SUQwZ1lYZGhhWFFnZEhKaGJuTm1iM0p0WlhJdVpuSnZiU2gwYUdsekxuSmxjWFZsYzNSRGIyNTBaWGgwS1R0Y2JpQWdJQ0FnSUdsbUlDaG1jbTl0S1NCMGFHbHpMbkpsY1hWbGMzUkRiMjUwWlhoMExtRmpZM1Z0ZFd4aGRHVW9abkp2YlNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzU5WEc0aVhYMD0iXX0=
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvQXV0aEludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxVQUFVLEVBSVYsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEdBQ04sTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSXpDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekMsT0FBTyxFQUNMLFlBQVksRUFDWixhQUFhLEVBQ2IsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixvQkFBb0IsR0FDckIsdUJBQW9CO0FBRXJCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSw0Q0FBdUM7QUFHOUQsSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQUMxQixZQUNtQixTQUFvQixFQUNsQixjQUFtQyxFQUNILFdBQXlCO1FBRjNELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDbEIsbUJBQWMsR0FBZCxjQUFjLENBQXFCO1FBQ0gsZ0JBQVcsR0FBWCxXQUFXLENBQWM7SUFDM0UsQ0FBQztJQUVKLEtBQUssQ0FBQyxTQUFTLENBQ2IsR0FBcUIsRUFDckIsSUFBaUI7UUFFakIsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXpELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQVUsYUFBYSxFQUFFO1lBQ3hFLEdBQUcsQ0FBQyxVQUFVLEVBQUU7WUFDaEIsR0FBRyxDQUFDLFFBQVEsRUFBRTtTQUNmLENBQUMsQ0FBQztRQUVILE1BQU0sU0FBUyxH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QUk7Z0JBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFBO0FBdEZZLGVBQWU7SUFEM0IsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUtoQyxXQUFBLFFBQVEsRUFBRSxDQUFBO0lBQUUsV0FBQSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7cUNBRkwsU0FBUztRQUNGLG1CQUFtQjtHQUg3QyxlQUFlLENBc0YzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIE5lc3RJbnRlcmNlcHRvcixcbiAgRXhlY3V0aW9uQ29udGV4dCxcbiAgQ2FsbEhhbmRsZXIsXG4gIEluamVjdCxcbiAgT3B0aW9uYWwsXG4gIFNjb3BlLFxufSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IFJlZmxlY3RvciB9IGZyb20gXCJAbmVzdGpzL2NvcmVcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgQWRhcHRlciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgUmVxdWVzdFRvQ29udGV4dFRyYW5zZm9ybWVyIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItaHR0cC9zZXJ2ZXJcIjtcblxuaW1wb3J0IHtcbiAgQVVUSF9IQU5ETEVSLFxuICBBVVRIX01FVEFfS0VZLFxuICBJU19QVUJMSUNfS0VZLFxuICBSRVFVSVJFRF9ST0xFU19LRVksXG4gIFNLSVBfTU9ERUxfUk9MRVNfS0VZLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB0eXBlIHsgQXV0aEhhbmRsZXIgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IERlY2FmUmVxdWVzdENvbnRleHQgfSBmcm9tIFwiLi4vcmVxdWVzdC9EZWNhZlJlcXVlc3RDb250ZXh0XCI7XG5cbkBJbmplY3RhYmxlKHsgc2NvcGU6IFNjb3BlLlJFUVVFU1QgfSlcbmV4cG9ydCBjbGFzcyBBdXRoSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBOZXN0SW50ZXJjZXB0b3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlZmxlY3RvcjogUmVmbGVjdG9yLFxuICAgIHByb3RlY3RlZCByZWFkb25seSByZXF1ZXN0Q29udGV4dDogRGVjYWZSZXF1ZXN0Q29udGV4dCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFVVEhfSEFORExFUikgcHJpdmF0ZSByZWFkb25seSBhdXRoSGFuZGxlcj86IEF1dGhIYW5kbGVyXG4gICkge31cblxuICBhc3luYyBpbnRlcmNlcHQoXG4gICAgY3R4OiBFeGVjdXRpb25Db250ZXh0LFxuICAgIG5leHQ6IENhbGxIYW5kbGVyXG4gICk6IFByb21pc2U8T2JzZXJ2YWJsZTxhbnk+PiB7XG4gICAgY29uc3QgbG9nID0gTG9nZ2luZy5mb3IodGhpcyBhcyBhbnkpLmZvcih0aGlzLmludGVyY2VwdCk7XG5cbiAgICBjb25zdCBpc1B1YmxpYyA9IHRoaXMucmVmbGVjdG9yLmdldEFsbEFuZE92ZXJyaWRlPGJvb2xlYW4+KElTX1BVQkxJQ19LRVksIFtcbiAgICAgIGN0eC5nZXRIYW5kbGVyKCksXG4gICAgICBjdHguZ2V0Q2xhc3MoKSxcbiAgICBdKTtcblxuICAgIGNvbnN0IG1vZGVsTmFtZSA9XG4gICAgICB0aGlzLnJlZmxlY3Rvci5nZXQ8c3RyaW5nIHwgQ29uc3RydWN0b3I+KFxuICAgICAgICBBVVRIX01FVEFfS0VZLFxuICAgICAgICBjdHguZ2V0SGFuZGxlcigpXG4gICAgICApID8/XG4gICAgICB0aGlzLnJlZmxlY3Rvci5nZXQ8c3RyaW5nIHwgQ29uc3RydWN0b3I+KEFVVEhfTUVUQV9LRVksIGN0eC5nZXRDbGFzcygpKTtcblxuICAgIGNvbnN0IHJlcXVpcmVkUm9sZXMgPSB0aGlzLnJlZmxlY3Rvci5nZXRBbGxBbmRPdmVycmlkZTxzdHJpbmdbXT4oXG4gICAgICBSRVFVSVJFRF9ST0xFU19LRVksXG4gICAgICBbY3R4LmdldEhhbmRsZXIoKSwgY3R4LmdldENsYXNzKCldXG4gICAgKTtcblxuICAgIGNvbnN0IHNraXBNb2RlbFJvbGVzID0gdGhpcy5yZWZsZWN0b3IuZ2V0QWxsQW5kT3ZlcnJpZGU8Ym9vbGVhbj4oXG4gICAgICBTS0lQX01PREVMX1JPTEVTX0tFWSxcbiAgICAgIFtjdHguZ2V0SGFuZGxlcigpLCBjdHguZ2V0Q2xhc3MoKV1cbiAgICApO1xuXG4gICAgY29uc3QgZWZmZWN0aXZlTW9kZWwgPSBza2lwTW9kZWxSb2xlcyA/IHVuZGVmaW5lZCA6IG1vZGVsTmFtZTtcblxuICAgIGxvZy52ZXJib3NlKGBJbnRlcmNlcHRlZCByZXF1ZXN0JHttb2RlbE5hbWUgPyBgIGZvciAke21vZGVsTmFtZX1gIDogXCJcIn1gKTtcblxuICAgIGlmIChpc1B1YmxpYykge1xuICAgICAgbG9nLmRlYnVnKGBQdWJsaWMgcm91dGUg4oCUIHNraXBwaW5nIGF1dGhgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYXV0aEhhbmRsZXIpIHtcbiAgICAgIGF3YWl0IHRoaXMuYXV0aEhhbmRsZXIuYXV0aG9yaXplKFxuICAgICAgICBjdHgsXG4gICAgICAgIGVmZmVjdGl2ZU1vZGVsIGFzIHN0cmluZyB8IENvbnN0cnVjdG9yLFxuICAgICAgICByZXF1aXJlZFJvbGVzLFxuICAgICAgICB0aGlzLnJlcXVlc3RDb250ZXh0XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2cuZGVidWcoYE5vIGF1dGggaGFuZGxlciByZWdpc3RlcmVkYCk7XG4gICAgfVxuXG4gICAgLy8gVHJhbnNmb3JtZXJzIHJ1biBBRlRFUiBhdXRoIHNvIHRoZXkgY2FuIHJlYWQgYXV0aC1wb3B1bGF0ZWQgZmllbGRzXG4gICAgLy8gKGUuZy4gYHVzZXJgKSBmcm9tIHRoZSBjb250ZXh0IGFuZCBtYXAgdGhlbSB0byBhZGFwdGVyLXNwZWNpZmljIGtleXNcbiAgICAvLyAoZS5nLiBgVVVJRGAgZm9yIFJhbUFkYXB0ZXIncyBAY3JlYXRlZEJ5L0B1cGRhdGVkQnkgaGFuZGxlcnMpLlxuICAgIGF3YWl0IHRoaXMuYXBwbHlUcmFuc2Zvcm1lcnMoKTtcblxuICAgIGNvbnN0IHVzZXIgPSB0aGlzLnJlcXVlc3RDb250ZXh0LmdldE9yVW5kZWZpbmVkKFwidXNlclwiIGFzIGFueSk7XG4gICAgY29uc3Qgb3JnYW5pemF0aW9uID0gdGhpcy5yZXF1ZXN0Q29udGV4dC5nZXRPclVuZGVmaW5lZChcbiAgICAgIFwib3JnYW5pemF0aW9uXCIgYXMgYW55XG4gICAgKTtcbiAgICBpZiAodXNlciB8fCBvcmdhbml6YXRpb24pIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRMb2cgPSB0aGlzLnJlcXVlc3RDb250ZXh0LmdldChcImxvZ2dlclwiIGFzIGFueSk7XG4gICAgICBjb25zdCBjaGlsZExvZyA9IGN1cnJlbnRMb2cuZm9yKHsgdXNlciwgb3JnYW5pemF0aW9uIH0pO1xuICAgICAgdGhpcy5yZXF1ZXN0Q29udGV4dC5hY2N1bXVsYXRlKHsgbG9nZ2VyOiBjaGlsZExvZyB9IGFzIGFueSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgYXBwbHlUcmFuc2Zvcm1lcnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmxhdm91cnMgPSBBZGFwdGVyLmZsYXZvdXJzVG9UcmFuc2Zvcm0oKTtcbiAgICBpZiAoIWZsYXZvdXJzKSByZXR1cm47XG5cbiAgICBmb3IgKGNvbnN0IGZsYXZvdXIgb2YgZmxhdm91cnMpIHtcbiAgICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gQWRhcHRlci50cmFuc2Zvcm1lckZvcihcbiAgICAgICAgZmxhdm91clxuICAgICAgKSBhcyBSZXF1ZXN0VG9Db250ZXh0VHJhbnNmb3JtZXI8YW55PjtcbiAgICAgIGlmICghdHJhbnNmb3JtZXIpIGNvbnRpbnVlO1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSAodHJhbnNmb3JtZXIgYXMgYW55KS5mcm9tXG4gICAgICAgID8gdHJhbnNmb3JtZXJcbiAgICAgICAgOiBuZXcgKHRyYW5zZm9ybWVyIGFzIGFueSkoKTtcbiAgICAgIGNvbnN0IGZyb20gPSBhd2FpdCBpbnN0YW5jZS5mcm9tKHRoaXMucmVxdWVzdENvbnRleHQpO1xuICAgICAgaWYgKGZyb20pIHRoaXMucmVxdWVzdENvbnRleHQuYWNjdW11bGF0ZShmcm9tKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQXV0aEludGVyY2VwdG9yLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdB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QkFDWixTQUFTO1lBQ2IsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLElBQUk7Z0JBQzdCLENBQUMsQ0FBQyxXQUFXO2dCQUNiLENBQUMsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDdEQsSUFBSSxJQUFJO2dCQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDTCxDQUFDO0NBQ0osQ0FBQztBQVFPLDBDQUFlO0FBUHhCLDBCQUFBLGVBQWUsR0FBRyxVQUFVLENBQUM7SUFDekIsSUFBQSxtQkFBVSxFQUFDLEVBQUUsS0FBSyxFQUFFLGNBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUEsaUJBQVEsR0FBRSxDQUFDO0lBQ3RCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBQSxlQUFNLEVBQUMsMkJBQVksQ0FBQyxDQUFDO0lBQ2hDLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLGdCQUFTO1FBQ3RDLDRDQUFtQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0NBQ3BDLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFFcEIsc3FSQUFzcVIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG52YXIgX19tZXRhZGF0YSA9ICh0aGlzICYmIHRoaXMuX19tZXRhZGF0YSkgfHwgZnVuY3Rpb24gKGssIHYpIHtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoaywgdik7XG59O1xudmFyIF9fcGFyYW0gPSAodGhpcyAmJiB0aGlzLl9fcGFyYW0pIHx8IGZ1bmN0aW9uIChwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7IGRlY29yYXRvcih0YXJnZXQsIGtleSwgcGFyYW1JbmRleCk7IH1cbn07XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE9wdGlvbmFsLCBTY29wZSwgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IFJlZmxlY3RvciB9IGZyb20gXCJAbmVzdGpzL2NvcmVcIjtcbmltcG9ydCB7IExvZ2dpbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IEFkYXB0ZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEFVVEhfSEFORExFUiwgQVVUSF9NRVRBX0tFWSwgSVNfUFVCTElDX0tFWSwgUkVRVUlSRURfUk9MRVNfS0VZLCBTS0lQX01PREVMX1JPTEVTX0tFWSwgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IERlY2FmUmVxdWVzdENvbnRleHQgfSBmcm9tIFwiLi8uLi9yZXF1ZXN0L0RlY2FmUmVxdWVzdENvbnRleHQuanNcIjtcbmxldCBBdXRoSW50ZXJjZXB0b3IgPSBjbGFzcyBBdXRoSW50ZXJjZXB0b3Ige1xuICAgIGNvbnN0cnVjdG9yKHJlZmxlY3RvciwgcmVxdWVzdENvbnRleHQsIGF1dGhIYW5kbGVyKSB7XG4gICAgICAgIHRoaXMucmVmbGVjdG9yID0gcmVmbGVjdG9yO1xuICAgICAgICB0aGlzLnJlcXVlc3RDb250ZXh0ID0gcmVxdWVzdENvbnRleHQ7XG4gICAgICAgIHRoaXMuYXV0aEhhbmRsZXIgPSBhdXRoSGFuZGxlcjtcbiAgICB9XG4gICAgYXN5bmMgaW50ZXJjZXB0KGN0eCwgbmV4dCkge1xuICAgICAgICBjb25zdCBsb2cgPSBMb2dnaW5nLmZvcih0aGlzKS5mb3IodGhpcy5pbnRlcmNlcHQpO1xuICAgICAgICBjb25zdCBpc1B1YmxpYyA9IHRoaXMucmVmbGVjdG9yLmdldEFsbEFuZE92ZXJyaWRlKElTX1BVQkxJQ19LRVksIFtcbiAgICAgICAgICAgIGN0eC5nZXRIYW5kbGVyKCksXG4gICAgICAgICAgICBjdHguZ2V0Q2xhc3MoKSxcbiAgICAgICAgXSk7XG4gICAgICAgIGNvbnN0IG1vZGVsTmFtZSA9IHRoaXMucmVmbGVjdG9yLmdldChBVVRIX01FVEFfS0VZLCBjdHguZ2V0SGFuZGxlcigpKSA/P1xuICAgICAgICAgICAgdGhpcy5yZWZsZWN0b3IuZ2V0KEFVVEhfTUVUQV9LRVksIGN0eC5nZXRDbGFzcygpKTtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRSb2xlcyA9IHRoaXMucmVmbGVjdG9yLmdldEFsbEFuZE92ZXJyaWRlKFJFUVVJUkVEX1JPTEVTX0tFWSwgW2N0eC5nZXRIYW5kbGVyKCksIGN0eC5nZXRDbGFzcygpXSk7XG4gICAgICAgIGNvbnN0IHNraXBNb2RlbFJvbGVzID0gdGhpcy5yZWZsZWN0b3IuZ2V0QWxsQW5kT3ZlcnJpZGUoU0tJUF9NT0RFTF9ST0xFU19LRVksIFtjdHguZ2V0SGFuZGxlcigpLCBjdHguZ2V0Q2xhc3MoKV0pO1xuICAgICAgICBjb25zdCBlZmZlY3RpdmVNb2RlbCA9IHNraXBNb2RlbFJvbGVzID8gdW5kZWZpbmVkIDogbW9kZWxOYW1lO1xuICAgICAgICBsb2cudmVyYm9zZShgSW50ZXJjZXB0ZWQgcmVxdWVzdCR7bW9kZWxOYW1lID8gYCBmb3IgJHttb2RlbE5hbWV9YCA6IFwiXCJ9YCk7XG4gICAgICAgIGlmIChpc1B1YmxpYykge1xuICAgICAgICAgICAgbG9nLmRlYnVnKGBQdWJsaWMgcm91dGUg4oCUIHNraXBwaW5nIGF1dGhgKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLmF1dGhIYW5kbGVyKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmF1dGhIYW5kbGVyLmF1dGhvcml6ZShjdHgsIGVmZmVjdGl2ZU1vZGVsLCByZXF1aXJlZFJvbGVzLCB0aGlzLnJlcXVlc3RDb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhgTm8gYXV0aCBoYW5kbGVyIHJlZ2lzdGVyZWRgKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUcmFuc2Zvcm1lcnMgcnVuIEFGVEVSIGF1dGggc28gdGhleSBjYW4gcmVhZCBhdXRoLXBvcHVsYXRlZCBmaWVsZHNcbiAgICAgICAgLy8gKGUuZy4gYHVzZXJgKSBmcm9tIHRoZSBjb250ZXh0IGFuZCBtYXAgdGhlbSB0byBhZGFwdGVyLXNwZWNpZmljIGtleXNcbiAgICAgICAgLy8gKGUuZy4gYFVVSURgIGZvciBSYW1BZGFwdGVyJ3MgQGNyZWF0ZWRCeS9AdXBkYXRlZEJ5IGhhbmRsZXJzKS5cbiAgICAgICAgYXdhaXQgdGhpcy5hcHBseVRyYW5zZm9ybWVycygpO1xuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5yZXF1ZXN0Q29udGV4dC5nZXRPclVuZGVmaW5lZChcInVzZXJcIik7XG4gICAgICAgIGNvbnN0IG9yZ2FuaXphdGlvbiA9IHRoaXMucmVxdWVzdENvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJvcmdhbml6YXRpb25cIik7XG4gICAgICAgIGlmICh1c2VyIHx8IG9yZ2FuaXphdGlvbikge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudExvZyA9IHRoaXMucmVxdWVzdENvbnRleHQuZ2V0KFwibG9nZ2VyXCIpO1xuICAgICAgICAgICAgY29uc3QgY2hpbGRMb2cgPSBjdXJyZW50TG9nLmZvcih7IHVzZXIsIG9yZ2FuaXphdGlvbiB9KTtcbiAgICAgICAgICAgIHRoaXMucmVxdWVzdENvbnRleHQuYWNjdW11bGF0ZSh7IGxvZ2dlcjogY2hpbGRMb2cgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKCk7XG4gICAgfVxuICAgIGFzeW5jIGFwcGx5VHJhbnNmb3JtZXJzKCkge1xuICAgICAgICBjb25zdCBmbGF2b3VycyA9IEFkYXB0ZXIuZmxhdm91cnNUb1RyYW5zZm9ybSgpO1xuICAgICAgICBpZiAoIWZsYXZvdXJzKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBmb3IgKGNvbnN0IGZsYXZvdXIgb2YgZmxhdm91cnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gQWRhcHRlci50cmFuc2Zvcm1lckZvcihmbGF2b3VyKTtcbiAgICAgICAgICAgIGlmICghdHJhbnNmb3JtZXIpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBjb25zdCBpbnN0YW5jZSA9IHRyYW5zZm9ybWVyLmZyb21cbiAgICAgICAgICAgICAgICA/IHRyYW5zZm9ybWVyXG4gICAgICAgICAgICAgICAgOiBuZXcgdHJhbnNmb3JtZXIoKTtcbiAgICAgICAgICAgIGNvbnN0IGZyb20gPSBhd2FpdCBpbnN0YW5jZS5mcm9tKHRoaXMucmVxdWVzdENvbnRleHQpO1xuICAgICAgICAgICAgaWYgKGZyb20pXG4gICAgICAgICAgICAgICAgdGhpcy5yZXF1ZXN0Q29udGV4dC5hY2N1bXVsYXRlKGZyb20pO1xuICAgICAgICB9XG4gICAgfVxufTtcbkF1dGhJbnRlcmNlcHRvciA9IF9fZGVjb3JhdGUoW1xuICAgIEluamVjdGFibGUoeyBzY29wZTogU2NvcGUuUkVRVUVTVCB9KSxcbiAgICBfX3BhcmFtKDIsIE9wdGlvbmFsKCkpLFxuICAgIF9fcGFyYW0oMiwgSW5qZWN0KEFVVEhfSEFORExFUikpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbUmVmbGVjdG9yLFxuICAgICAgICBEZWNhZlJlcXVlc3RDb250ZXh0LCBPYmplY3RdKVxuXSwgQXV0aEludGVyY2VwdG9yKTtcbmV4cG9ydCB7IEF1dGhJbnRlcmNlcHRvciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUVhWMGFFbHVkR1Z5WTJWd2RHOXlMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dmMzSmpMMkYxZEdndlFYVjBhRWx1ZEdWeVkyVndkRzl5TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJN096czdPenM3T3pzN096dEJRVUZCTEU5QlFVOHNSVUZEVEN4VlFVRlZMRVZCU1ZZc1RVRkJUU3hGUVVOT0xGRkJRVkVzUlVGRFVpeExRVUZMTEVkQlEwNHNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU40UWl4UFFVRlBMRVZCUVVVc1UwRkJVeXhGUVVGRkxFMUJRVTBzWTBGQll5eERRVUZETzBGQlNYcERMRTlCUVU4c1JVRkJSU3hQUVVGUExFVkJRVVVzVFVGQlRTeHRRa0ZCYlVJc1EwRkJRenRCUVVNMVF5eFBRVUZQTEVWQlFVVXNUMEZCVHl4RlFVRkZMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZIZWtNc1QwRkJUeXhGUVVOTUxGbEJRVmtzUlVGRFdpeGhRVUZoTEVWQlEySXNZVUZCWVN4RlFVTmlMR3RDUVVGclFpeEZRVU5zUWl4dlFrRkJiMElzUjBGRGNrSXNkVUpCUVc5Q08wRkJSWEpDTEU5QlFVOHNSVUZCUlN4dFFrRkJiVUlzUlVGQlJTdzBRMEZCZFVNN1FVRkhPVVFzU1VGQlRTeGxRVUZsTEVkQlFYSkNMRTFCUVUwc1pVRkJaVHRKUVVNeFFpeFpRVU50UWl4VFFVRnZRaXhGUVVOc1FpeGpRVUZ0UXl4RlFVTklMRmRCUVhsQ08xRkJSak5FTEdOQlFWTXNSMEZCVkN4VFFVRlRMRU5CUVZjN1VVRkRiRUlzYlVKQlFXTXNSMEZCWkN4alFVRmpMRU5CUVhGQ08xRkJRMGdzWjBKQlFWY3NSMEZCV0N4WFFVRlhMRU5CUVdNN1NVRkRNMFVzUTBGQlF6dEpRVVZLTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUTJJc1IwRkJjVUlzUlVGRGNrSXNTVUZCYVVJN1VVRkZha0lzVFVGQlRTeEhRVUZITEVkQlFVY3NUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGWExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJSWHBFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zYVVKQlFXbENMRU5CUVZVc1lVRkJZU3hGUVVGRk8xbEJRM2hGTEVkQlFVY3NRMEZCUXl4VlFVRlZMRVZCUVVVN1dVRkRhRUlzUjBGQlJ5eERRVUZETEZGQlFWRXNSVUZCUlR0VFFVTm1MRU5CUVVNc1EwRkJRenRSUVVWSUxFMUJRVTBzVTBGQlV5eEhRVU5pTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVOb1FpeGhRVUZoTEVWQlEySXNSMEZCUnl4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVOcVFqdFpRVU5FTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGMVFpeGhRVUZoTEVWQlFVVXNSMEZCUnl4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRk1VVXNUVUZCVFN4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eHBRa0ZCYVVJc1EwRkRjRVFzYTBKQlFXdENMRVZCUTJ4Q0xFTkJRVU1zUjBGQlJ5eERRVUZETEZWQlFWVXNSVUZCUlN4RlFVRkZMRWRCUVVjc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF5eERRVU51UXl4RFFVRkRPMUZCUlVZc1RVRkJUU3hqUVVGakxFZEJRVWNzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4cFFrRkJhVUlzUTBGRGNrUXNiMEpCUVc5Q0xFVkJRM0JDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRlZCUVZVc1JVRkJSU3hGUVVGRkxFZEJRVWNzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXl4RFFVTnVReXhEUVVGRE8xRkJSVVlzVFVGQlRTeGpRVUZqTEVkQlFVY3NZMEZCWXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXp0UlFVVTVSQ3hIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEhOQ1FVRnpRaXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNVMEZCVXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZGTVVVc1NVRkJTU3hSUVVGUkxFVkJRVVVzUTBGQlF6dFpRVU5pTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc09FSkJRVGhDTEVOQlFVTXNRMEZCUXp0UlFVTTFReXhEUVVGRE8yRkJRVTBzU1VGQlNTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1dVRkROVUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRk5CUVZNc1EwRkRPVUlzUjBGQlJ5eEZRVU5JTEdOQlFYTkRMRVZCUTNSRExHRkJRV0VzUlVGRFlpeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVTndRaXhEUVVGRE8xRkJRMG9zUTBGQlF6dGhRVUZOTEVOQlFVTTdXVUZEVGl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExEUkNRVUUwUWl4RFFVRkRMRU5CUVVNN1VVRkRNVU1zUTBGQlF6dFJRVVZFTEhGRlFVRnhSVHRSUVVOeVJTeDFSVUZCZFVVN1VVRkRka1VzYVVWQlFXbEZPMUZCUTJwRkxFMUJRVTBzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhGUVVGRkxFTkJRVU03VVVGRkwwSXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eGpRVUZqTEVOQlFVTXNUVUZCWVN4RFFVRkRMRU5CUVVNN1VVRkRMMFFzVFVGQlRTeFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhqUVVGakxFTkJRM0pFTEdOQlFYRkNMRU5CUTNSQ0xFTkJRVU03VVVGRFJpeEpRVUZKTEVsQlFVa3NTVUZCU1N4WlFVRlpMRVZCUVVVc1EwRkJRenRaUVVONlFpeE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZsTEVOQlFVTXNRMEZCUXp0WlFVTTFSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1NVRkJTU3hGUVVGRkxGbEJRVmtzUlVGQlJTeERRVUZETEVOQlFVTTdXVUZEZUVRc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eFZRVUZWTEVOQlFVTXNSVUZCUlN4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGVExFTkJRVU1zUTBGQlF6dFJRVU01UkN4RFFVRkRPMUZCUlVRc1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdTVUZEZGtJc1EwRkJRenRKUVVWVExFdEJRVXNzUTBGQlF5eHBRa0ZCYVVJN1VVRkRMMElzVFVGQlRTeFJRVUZSTEVkQlFVY3NUMEZCVHl4RFFVRkRMRzFDUVVGdFFpeEZRVUZGTEVOQlFVTTdVVUZETDBNc1NVRkJTU3hEUVVGRExGRkJRVkU3V1VGQlJTeFBRVUZQTzFGQlJYUkNMRXRCUVVzc1RVRkJUU3hQUVVGUExFbEJRVWtzVVVGQlVTeEZRVUZGTEVOQlFVTTdXVUZETDBJc1RVRkJUU3hYUVVGWExFZEJRVWNzVDBGQlR5eERRVUZETEdOQlFXTXNRMEZEZUVNc1QwRkJUeXhEUVVNMFFpeERRVUZETzFsQlEzUkRMRWxCUVVrc1EwRkJReXhYUVVGWE8yZENRVUZGTEZOQlFWTTdXVUZETTBJc1RVRkJUU3hSUVVGUkxFZEJRVWtzVjBGQmJVSXNRMEZCUXl4SlFVRkpPMmRDUVVONFF5eERRVUZETEVOQlFVTXNWMEZCVnp0blFrRkRZaXhEUVVGRExFTkJRVU1zU1VGQlN5eFhRVUZ0UWl4RlFVRkZMRU5CUVVNN1dVRkRMMElzVFVGQlRTeEpRVUZKTEVkQlFVY3NUVUZCVFN4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXp0WlFVTjBSQ3hKUVVGSkxFbEJRVWs3WjBKQlFVVXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEYWtRc1EwRkJRenRKUVVOSUxFTkJRVU03UTBGRFJpeERRVUZCTzBGQmRFWlpMR1ZCUVdVN1NVRkVNMElzVlVGQlZTeERRVUZETEVWQlFVVXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dEpRVXRvUXl4WFFVRkJMRkZCUVZFc1JVRkJSU3hEUVVGQk8wbEJRVVVzVjBGQlFTeE5RVUZOTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVFN2NVTkJSa3dzVTBGQlV6dFJRVU5HTEcxQ1FVRnRRanRIUVVnM1F5eGxRVUZsTEVOQmMwWXpRaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3WEc0Z0lFbHVhbVZqZEdGaWJHVXNYRzRnSUU1bGMzUkpiblJsY21ObGNIUnZjaXhjYmlBZ1JYaGxZM1YwYVc5dVEyOXVkR1Y0ZEN4Y2JpQWdRMkZzYkVoaGJtUnNaWElzWEc0Z0lFbHVhbVZqZEN4Y2JpQWdUM0IwYVc5dVlXd3NYRzRnSUZOamIzQmxMRnh1ZlNCbWNtOXRJRndpUUc1bGMzUnFjeTlqYjIxdGIyNWNJanRjYm1sdGNHOXlkQ0I3SUZKbFpteGxZM1J2Y2lCOUlHWnliMjBnWENKQWJtVnpkR3B6TDJOdmNtVmNJanRjYm1sdGNHOXlkQ0I3SUU5aWMyVnlkbUZpYkdVZ2ZTQm1jbTl0SUZ3aWNuaHFjMXdpTzF4dVhHNXBiWEJ2Y25RZ2V5QkRiMjV6ZEhKMVkzUnZjaUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdWamIzSmhkR2x2Ymx3aU8xeHVhVzF3YjNKMElIc2dURzluWjJsdVp5QjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZiRzluWjJsdVoxd2lPMXh1YVcxd2IzSjBJSHNnUVdSaGNIUmxjaUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WTI5eVpWd2lPMXh1YVcxd2IzSjBJSHNnVW1WeGRXVnpkRlJ2UTI5dWRHVjRkRlJ5WVc1elptOXliV1Z5SUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5bWIzSXRhSFIwY0M5elpYSjJaWEpjSWp0Y2JseHVhVzF3YjNKMElIdGNiaUFnUVZWVVNGOUlRVTVFVEVWU0xGeHVJQ0JCVlZSSVgwMUZWRUZmUzBWWkxGeHVJQ0JKVTE5UVZVSk1TVU5mUzBWWkxGeHVJQ0JTUlZGVlNWSkZSRjlTVDB4RlUxOUxSVmtzWEc0Z0lGTkxTVkJmVFU5RVJVeGZVazlNUlZOZlMwVlpMRnh1ZlNCbWNtOXRJRndpTGk5amIyNXpkR0Z1ZEhOY0lqdGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1FYVjBhRWhoYm1Sc1pYSWdmU0JtY205dElGd2lMaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUVSbFkyRm1VbVZ4ZFdWemRFTnZiblJsZUhRZ2ZTQm1jbTl0SUZ3aUxpNHZjbVZ4ZFdWemRDOUVaV05oWmxKbGNYVmxjM1JEYjI1MFpYaDBYQ0k3WEc1Y2JrQkpibXBsWTNSaFlteGxLSHNnYzJOdmNHVTZJRk5qYjNCbExsSkZVVlZGVTFRZ2ZTbGNibVY0Y0c5eWRDQmpiR0Z6Y3lCQmRYUm9TVzUwWlhKalpYQjBiM0lnYVcxd2JHVnRaVzUwY3lCT1pYTjBTVzUwWlhKalpYQjBiM0lnZTF4dUlDQmpiMjV6ZEhKMVkzUnZjaWhjYmlBZ0lDQndjbWwyWVhSbElISmxZV1J2Ym14NUlISmxabXhsWTNSdmNqb2dVbVZtYkdWamRHOXlMRnh1SUNBZ0lIQnliM1JsWTNSbFpDQnlaV0ZrYjI1c2VTQnlaWEYxWlhOMFEyOXVkR1Y0ZERvZ1JHVmpZV1pTWlhGMVpYTjBRMjl1ZEdWNGRDeGNiaUFnSUNCQVQzQjBhVzl1WVd3b0tTQkFTVzVxWldOMEtFRlZWRWhmU0VGT1JFeEZVaWtnY0hKcGRtRjBaU0J5WldGa2IyNXNlU0JoZFhSb1NHRnVaR3hsY2o4NklFRjFkR2hJWVc1a2JHVnlYRzRnSUNrZ2UzMWNibHh1SUNCaGMzbHVZeUJwYm5SbGNtTmxjSFFvWEc0Z0lDQWdZM1I0T2lCRmVHVmpkWFJwYjI1RGIyNTBaWGgwTEZ4dUlDQWdJRzVsZUhRNklFTmhiR3hJWVc1a2JHVnlYRzRnSUNrNklGQnliMjFwYzJVOFQySnpaWEoyWVdKc1pUeGhibmsrUGlCN1hHNGdJQ0FnWTI5dWMzUWdiRzluSUQwZ1RHOW5aMmx1Wnk1bWIzSW9kR2hwY3lCaGN5QmhibmtwTG1admNpaDBhR2x6TG1sdWRHVnlZMlZ3ZENrN1hHNWNiaUFnSUNCamIyNXpkQ0JwYzFCMVlteHBZeUE5SUhSb2FYTXVjbVZtYkdWamRHOXlMbWRsZEVGc2JFRnVaRTkyWlhKeWFXUmxQR0p2YjJ4bFlXNCtLRWxUWDFCVlFreEpRMTlMUlZrc0lGdGNiaUFnSUNBZ0lHTjBlQzVuWlhSSVlXNWtiR1Z5S0Nrc1hHNGdJQ0FnSUNCamRIZ3VaMlYwUTJ4aGMzTW9LU3hjYmlBZ0lDQmRLVHRjYmx4dUlDQWdJR052Ym5OMElHMXZaR1ZzVG1GdFpTQTlYRzRnSUNBZ0lDQjBhR2x6TG5KbFpteGxZM1J2Y2k1blpYUThjM1J5YVc1bklId2dRMjl1YzNSeWRXTjBiM0krS0Z4dUlDQWdJQ0FnSUNCQlZWUklYMDFGVkVGZlMwVlpMRnh1SUNBZ0lDQWdJQ0JqZEhndVoyVjBTR0Z1Wkd4bGNpZ3BYRzRnSUNBZ0lDQXBJRDgvWEc0Z0lDQWdJQ0IwYUdsekxuSmxabXhsWTNSdmNpNW5aWFE4YzNSeWFXNW5JSHdnUTI5dWMzUnlkV04wYjNJK0tFRlZWRWhmVFVWVVFWOUxSVmtzSUdOMGVDNW5aWFJEYkdGemN5Z3BLVHRjYmx4dUlDQWdJR052Ym5OMElISmxjWFZwY21Wa1VtOXNaWE1nUFNCMGFHbHpMbkpsWm14bFkzUnZjaTVuWlhSQmJHeEJibVJQZG1WeWNtbGtaVHh6ZEhKcGJtZGJYVDRvWEc0Z0lDQWdJQ0JTUlZGVlNWSkZSRjlTVDB4RlUxOUxSVmtzWEc0Z0lDQWdJQ0JiWTNSNExtZGxkRWhoYm1Sc1pYSW9LU3dnWTNSNExtZGxkRU5zWVhOektDbGRYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHTnZibk4wSUhOcmFYQk5iMlJsYkZKdmJHVnpJRDBnZEdocGN5NXlaV1pzWldOMGIzSXVaMlYwUVd4c1FXNWtUM1psY25KcFpHVThZbTl2YkdWaGJqNG9YRzRnSUNBZ0lDQlRTMGxRWDAxUFJFVk1YMUpQVEVWVFgwdEZXU3hjYmlBZ0lDQWdJRnRqZEhndVoyVjBTR0Z1Wkd4bGNpZ3BMQ0JqZEhndVoyVjBRMnhoYzNNb0tWMWNiaUFnSUNBcE8xeHVYRzRnSUNBZ1kyOXVjM1FnWldabVpXTjBhWFpsVFc5a1pXd2dQU0J6YTJsd1RXOWtaV3hTYjJ4bGN5QS9JSFZ1WkdWbWFXNWxaQ0E2SUcxdlpHVnNUbUZ0WlR0Y2JseHVJQ0FnSUd4dlp5NTJaWEppYjNObEtHQkpiblJsY21ObGNIUmxaQ0J5WlhGMVpYTjBKSHR0YjJSbGJFNWhiV1VnUHlCZ0lHWnZjaUFrZTIxdlpHVnNUbUZ0WlgxZ0lEb2dYQ0pjSW4xZ0tUdGNibHh1SUNBZ0lHbG1JQ2hwYzFCMVlteHBZeWtnZTF4dUlDQWdJQ0FnYkc5bkxtUmxZblZuS0dCUWRXSnNhV01nY205MWRHVWc0b0NVSUhOcmFYQndhVzVuSUdGMWRHaGdLVHRjYmlBZ0lDQjlJR1ZzYzJVZ2FXWWdLSFJvYVhNdVlYVjBhRWhoYm1Sc1pYSXBJSHRjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11WVhWMGFFaGhibVJzWlhJdVlYVjBhRzl5YVhwbEtGeHVJQ0FnSUNBZ0lDQmpkSGdzWEc0Z0lDQWdJQ0FnSUdWbVptVmpkR2wyWlUxdlpHVnNJR0Z6SUhOMGNtbHVaeUI4SUVOdmJuTjBjblZqZEc5eUxGeHVJQ0FnSUNBZ0lDQnlaWEYxYVhKbFpGSnZiR1Z6TEZ4dUlDQWdJQ0FnSUNCMGFHbHpMbkpsY1hWbGMzUkRiMjUwWlhoMFhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0JzYjJjdVpHVmlkV2NvWUU1dklHRjFkR2dnYUdGdVpHeGxjaUJ5WldkcGMzUmxjbVZrWUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1ZISmhibk5tYjNKdFpYSnpJSEoxYmlCQlJsUkZVaUJoZFhSb0lITnZJSFJvWlhrZ1kyRnVJSEpsWVdRZ1lYVjBhQzF3YjNCMWJHRjBaV1FnWm1sbGJHUnpYRzRnSUNBZ0x5OGdLR1V1Wnk0Z1lIVnpaWEpnS1NCbWNtOXRJSFJvWlNCamIyNTBaWGgwSUdGdVpDQnRZWEFnZEdobGJTQjBieUJoWkdGd2RHVnlMWE53WldOcFptbGpJR3RsZVhOY2JpQWdJQ0F2THlBb1pTNW5MaUJnVlZWSlJHQWdabTl5SUZKaGJVRmtZWEIwWlhJbmN5QkFZM0psWVhSbFpFSjVMMEIxY0dSaGRHVmtRbmtnYUdGdVpHeGxjbk1wTGx4dUlDQWdJR0YzWVdsMElIUm9hWE11WVhCd2JIbFVjbUZ1YzJadmNtMWxjbk1vS1R0Y2JseHVJQ0FnSUdOdmJuTjBJSFZ6WlhJZ1BTQjBhR2x6TG5KbGNYVmxjM1JEYjI1MFpYaDBMbWRsZEU5eVZXNWtaV1pwYm1Wa0tGd2lkWE5sY2x3aUlHRnpJR0Z1ZVNrN1hHNGdJQ0FnWTI5dWMzUWdiM0puWVc1cGVtRjBhVzl1SUQwZ2RHaHBjeTV5WlhGMVpYTjBRMjl1ZEdWNGRDNW5aWFJQY2xWdVpHVm1hVzVsWkNoY2JpQWdJQ0FnSUZ3aWIzSm5ZVzVwZW1GMGFXOXVYQ0lnWVhNZ1lXNTVYRzRnSUNBZ0tUdGNiaUFnSUNCcFppQW9kWE5sY2lCOGZDQnZjbWRoYm1sNllYUnBiMjRwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR04xY25KbGJuUk1iMmNnUFNCMGFHbHpMbkpsY1hWbGMzUkRiMjUwWlhoMExtZGxkQ2hjSW14dloyZGxjbHdpSUdGeklHRnVlU2s3WEc0Z0lDQWdJQ0JqYjI1emRDQmphR2xzWkV4dlp5QTlJR04xY25KbGJuUk1iMmN1Wm05eUtIc2dkWE5sY2l3Z2IzSm5ZVzVwZW1GMGFXOXVJSDBwTzF4dUlDQWdJQ0FnZEdocGN5NXlaWEYxWlhOMFEyOXVkR1Y0ZEM1aFkyTjFiWFZzWVhSbEtIc2diRzluWjJWeU9pQmphR2xzWkV4dlp5QjlJR0Z6SUdGdWVTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUc1bGVIUXVhR0Z1Wkd4bEtDazdYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnWVhONWJtTWdZWEJ3YkhsVWNtRnVjMlp2Y20xbGNuTW9LVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1kyOXVjM1FnWm14aGRtOTFjbk1nUFNCQlpHRndkR1Z5TG1ac1lYWnZkWEp6Vkc5VWNtRnVjMlp2Y20wb0tUdGNiaUFnSUNCcFppQW9JV1pzWVhadmRYSnpLU0J5WlhSMWNtNDdYRzVjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR1pzWVhadmRYSWdiMllnWm14aGRtOTFjbk1wSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSFJ5WVc1elptOXliV1Z5SUQwZ1FXUmhjSFJsY2k1MGNtRnVjMlp2Y20xbGNrWnZjaWhjYmlBZ0lDQWdJQ0FnWm14aGRtOTFjbHh1SUNBZ0lDQWdLU0JoY3lCU1pYRjFaWE4wVkc5RGIyNTBaWGgwVkhKaGJuTm1iM0p0WlhJOFlXNTVQanRjYmlBZ0lDQWdJR2xtSUNnaGRISmhibk5tYjNKdFpYSXBJR052Ym5ScGJuVmxPMXh1SUNBZ0lDQWdZMjl1YzNRZ2FXNXpkR0Z1WTJVZ1BTQW9kSEpoYm5ObWIzSnRaWElnWVhNZ1lXNTVLUzVtY205dFhHNGdJQ0FnSUNBZ0lEOGdkSEpoYm5ObWIzSnRaWEpjYmlBZ0lDQWdJQ0FnT2lCdVpYY2dLSFJ5WVc1elptOXliV1Z5SUdGeklHRnVlU2tvS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR1p5YjIwZ1BTQmhkMkZwZENCcGJuTjBZVzVqWlM1bWNtOXRLSFJvYVhNdWNtVnhkV1Z6ZEVOdmJuUmxlSFFwTzF4dUlDQWdJQ0FnYVdZZ0tHWnliMjBwSUhSb2FYTXVjbVZ4ZFdWemRFTnZiblJsZUhRdVlXTmpkVzExYkdGMFpTaG1jbTl0S1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibjFjYmlKZGZRPT0iXX0=
|
|
@@ -16,16 +16,10 @@ const common_1 = require("@nestjs/common");
|
|
|
16
16
|
const core_1 = require("@nestjs/core");
|
|
17
17
|
const AuthInterceptor_js_1 = require("./AuthInterceptor.cjs");
|
|
18
18
|
const constants_js_1 = require("./constants.cjs");
|
|
19
|
-
const DecafRequestHandlerInterceptor_js_1 = require("./../interceptors/DecafRequestHandlerInterceptor.cjs");
|
|
20
19
|
let DecafAuthModule = DecafAuthModule_1 = class DecafAuthModule {
|
|
21
20
|
static forRoot(options = {}) {
|
|
22
21
|
const providers = [
|
|
23
22
|
AuthInterceptor_js_1.AuthInterceptor,
|
|
24
|
-
DecafRequestHandlerInterceptor_js_1.DecafRequestHandlerInterceptor,
|
|
25
|
-
{
|
|
26
|
-
provide: core_1.APP_INTERCEPTOR,
|
|
27
|
-
useClass: DecafRequestHandlerInterceptor_js_1.DecafRequestHandlerInterceptor,
|
|
28
|
-
},
|
|
29
23
|
];
|
|
30
24
|
if (options.handler) {
|
|
31
25
|
providers.push(options.handler);
|
|
@@ -52,5 +46,5 @@ exports.DecafAuthModule = DecafAuthModule;
|
|
|
52
46
|
exports.DecafAuthModule = DecafAuthModule = DecafAuthModule_1 = __decorate([
|
|
53
47
|
(0, common_1.Module)({})
|
|
54
48
|
], DecafAuthModule);
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZBdXRoTW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvRGVjYWZBdXRoTW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxPQUFPLEVBQWlCLE1BQU0sRUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSw2QkFBMEI7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSx1QkFBb0I7QUFTcEMsSUFBTSxlQUFlLHVCQUFyQixNQUFNLGVBQWU7SUFDMUIsTUFBTSxDQUFDLE9BQU8sQ0FDWixVQUFrQyxFQUFFO1FBRXBDLE1BQU0sU0FBUyxHQUErQjtZQUM1QyxlQUFlO1NBQ2hCLENBQUM7UUFFRixJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNiLE9BQU8sRUFBRSxZQUFZO2dCQUNyQixRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU87YUFDMUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLFNBQW1CLENBQUMsSUFBSSxDQUFDO2dCQUN4QixPQUFPLEVBQUUsZUFBZTtnQkFDeEIsV0FBVyxFQUFFLGVBQWU7YUFDN0IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU87WUFDTCxNQUFNLEVBQUUsaUJBQWU7WUFDdkIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksS0FBSztZQUMvQixTQUFTO1lBQ1QsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQztTQUN6QyxDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUE7QUE5QlksZUFBZTtJQUQzQixNQUFNLENBQUMsRUFBRSxDQUFDO0dBQ0UsZUFBZSxDQThCM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljTW9kdWxlLCBNb2R1bGUsIFR5cGUgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IEFQUF9JTlRFUkNFUFRPUiB9IGZyb20gXCJAbmVzdGpzL2NvcmVcIjtcblxuaW1wb3J0IHsgQXV0aEludGVyY2VwdG9yIH0gZnJvbSBcIi4vQXV0aEludGVyY2VwdG9yXCI7XG5pbXBvcnQgeyBBVVRIX0hBTkRMRVIgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IEF1dGhIYW5kbGVyIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5cbmV4cG9ydCB0eXBlIERlY2FmQXV0aE1vZHVsZU9wdGlvbnMgPSB7XG4gIGdsb2JhbD86IGJvb2xlYW47XG4gIGhhbmRsZXI/OiBUeXBlPEF1dGhIYW5kbGVyPjtcbn07XG5cbkBNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgRGVjYWZBdXRoTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoXG4gICAgb3B0aW9uczogRGVjYWZBdXRoTW9kdWxlT3B0aW9ucyA9IHt9XG4gICk6IER5bmFtaWNNb2R1bGUge1xuICAgIGNvbnN0IHByb3ZpZGVyczogRHluYW1pY01vZHVsZVtcInByb3ZpZGVyc1wiXSA9IFtcbiAgICAgIEF1dGhJbnRlcmNlcHRvcixcbiAgICBdO1xuXG4gICAgaWYgKG9wdGlvbnMuaGFuZGxlcikge1xuICAgICAgcHJvdmlkZXJzLnB1c2gob3B0aW9ucy5oYW5kbGVyKTtcbiAgICAgIHByb3ZpZGVycy5wdXNoKHtcbiAgICAgICAgcHJvdmlkZTogQVVUSF9IQU5ETEVSLFxuICAgICAgICB1c2VDbGFzczogb3B0aW9ucy5oYW5kbGVyLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZ2xvYmFsKSB7XG4gICAgICAocHJvdmlkZXJzIGFzIGFueVtdKS5wdXNoKHtcbiAgICAgICAgcHJvdmlkZTogQVBQX0lOVEVSQ0VQVE9SLFxuICAgICAgICB1c2VFeGlzdGluZzogQXV0aEludGVyY2VwdG9yLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZHVsZTogRGVjYWZBdXRoTW9kdWxlLFxuICAgICAgZ2xvYmFsOiBvcHRpb25zLmdsb2JhbCA/PyBmYWxzZSxcbiAgICAgIHByb3ZpZGVycyxcbiAgICAgIGV4cG9ydHM6IFtBdXRoSW50ZXJjZXB0b3IsIEFVVEhfSEFORExFUl0sXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZBdXRoTW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRGVjYWZBdXRoTW9kdWxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xKLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNsRSxDQUFDLENBQUM7QUFDRixJQUFJLGlCQUFpQixDQUFDO0FBQ3RCLDJDQUF3QztBQUN4Qyx1Q0FBK0M7QUFDL0MsNkRBQXVEO0FBQ3ZELGlEQUE4QztBQUM5QyxJQUFJLGVBQWUsR0FBRyxpQkFBaUIsR0FBRyxNQUFNLGVBQWU7SUFDM0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsRUFBRTtRQUN2QixNQUFNLFNBQVMsR0FBRztZQUNkLG9DQUFlO1NBQ2xCLENBQUM7UUFDRixJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNYLE9BQU8sRUFBRSwyQkFBWTtnQkFDckIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPO2FBQzVCLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNYLE9BQU8sRUFBRSxzQkFBZTtnQkFDeEIsV0FBVyxFQUFFLG9DQUFlO2FBQy9CLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxPQUFPO1lBQ0gsTUFBTSxFQUFFLGlCQUFpQjtZQUN6QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sSUFBSSxLQUFLO1lBQy9CLFNBQVM7WUFDVCxPQUFPLEVBQUUsQ0FBQyxvQ0FBZSxFQUFFLDJCQUFZLENBQUM7U0FDM0MsQ0FBQztJQUNOLENBQUM7Q0FDSixDQUFDO0FBSU8sMENBQWU7QUFIeEIsMEJBQUEsZUFBZSxHQUFHLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztJQUM3QyxJQUFBLGVBQU0sRUFBQyxFQUFFLENBQUM7Q0FDYixFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBRXBCLHN0RkFBc3RGIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fZGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZGVjb3JhdGUpIHx8IGZ1bmN0aW9uIChkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XG59O1xudmFyIERlY2FmQXV0aE1vZHVsZV8xO1xuaW1wb3J0IHsgTW9kdWxlIH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBBUFBfSU5URVJDRVBUT1IgfSBmcm9tIFwiQG5lc3Rqcy9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tIFwiLi9BdXRoSW50ZXJjZXB0b3IuanNcIjtcbmltcG9ydCB7IEFVVEhfSEFORExFUiB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xubGV0IERlY2FmQXV0aE1vZHVsZSA9IERlY2FmQXV0aE1vZHVsZV8xID0gY2xhc3MgRGVjYWZBdXRoTW9kdWxlIHtcbiAgICBzdGF0aWMgZm9yUm9vdChvcHRpb25zID0ge30pIHtcbiAgICAgICAgY29uc3QgcHJvdmlkZXJzID0gW1xuICAgICAgICAgICAgQXV0aEludGVyY2VwdG9yLFxuICAgICAgICBdO1xuICAgICAgICBpZiAob3B0aW9ucy5oYW5kbGVyKSB7XG4gICAgICAgICAgICBwcm92aWRlcnMucHVzaChvcHRpb25zLmhhbmRsZXIpO1xuICAgICAgICAgICAgcHJvdmlkZXJzLnB1c2goe1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFVVEhfSEFORExFUixcbiAgICAgICAgICAgICAgICB1c2VDbGFzczogb3B0aW9ucy5oYW5kbGVyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuZ2xvYmFsKSB7XG4gICAgICAgICAgICBwcm92aWRlcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOVEVSQ0VQVE9SLFxuICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBBdXRoSW50ZXJjZXB0b3IsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbW9kdWxlOiBEZWNhZkF1dGhNb2R1bGVfMSxcbiAgICAgICAgICAgIGdsb2JhbDogb3B0aW9ucy5nbG9iYWwgPz8gZmFsc2UsXG4gICAgICAgICAgICBwcm92aWRlcnMsXG4gICAgICAgICAgICBleHBvcnRzOiBbQXV0aEludGVyY2VwdG9yLCBBVVRIX0hBTkRMRVJdLFxuICAgICAgICB9O1xuICAgIH1cbn07XG5EZWNhZkF1dGhNb2R1bGUgPSBEZWNhZkF1dGhNb2R1bGVfMSA9IF9fZGVjb3JhdGUoW1xuICAgIE1vZHVsZSh7fSlcbl0sIERlY2FmQXV0aE1vZHVsZSk7XG5leHBvcnQgeyBEZWNhZkF1dGhNb2R1bGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVJHVmpZV1pCZFhSb1RXOWtkV3hsTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZjM0pqTDJGMWRHZ3ZSR1ZqWVdaQmRYUm9UVzlrZFd4bExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN1FVRkJRU3hQUVVGUExFVkJRV2xDTEUxQlFVMHNSVUZCVVN4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlF6ZEVMRTlCUVU4c1JVRkJSU3hsUVVGbExFVkJRVVVzVFVGQlRTeGpRVUZqTEVOQlFVTTdRVUZGTDBNc1QwRkJUeXhGUVVGRkxHVkJRV1VzUlVGQlJTdzJRa0ZCTUVJN1FVRkRjRVFzVDBGQlR5eEZRVUZGTEZsQlFWa3NSVUZCUlN4MVFrRkJiMEk3UVVGVGNFTXNTVUZCVFN4bFFVRmxMSFZDUVVGeVFpeE5RVUZOTEdWQlFXVTdTVUZETVVJc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGRFdpeFZRVUZyUXl4RlFVRkZPMUZCUlhCRExFMUJRVTBzVTBGQlV5eEhRVUVyUWp0WlFVTTFReXhsUVVGbE8xTkJRMmhDTEVOQlFVTTdVVUZGUml4SlFVRkpMRTlCUVU4c1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dFpRVU53UWl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0WlFVTm9ReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETzJkQ1FVTmlMRTlCUVU4c1JVRkJSU3haUVVGWk8yZENRVU55UWl4UlFVRlJMRVZCUVVVc1QwRkJUeXhEUVVGRExFOUJRVTg3WVVGRE1VSXNRMEZCUXl4RFFVRkRPMUZCUTB3c1EwRkJRenRSUVVWRUxFbEJRVWtzVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMWxCUTJ4Q0xGTkJRVzFDTEVOQlFVTXNTVUZCU1N4RFFVRkRPMmRDUVVONFFpeFBRVUZQTEVWQlFVVXNaVUZCWlR0blFrRkRlRUlzVjBGQlZ5eEZRVUZGTEdWQlFXVTdZVUZETjBJc1EwRkJReXhEUVVGRE8xRkJRMHdzUTBGQlF6dFJRVVZFTEU5QlFVODdXVUZEVEN4TlFVRk5MRVZCUVVVc2FVSkJRV1U3V1VGRGRrSXNUVUZCVFN4RlFVRkZMRTlCUVU4c1EwRkJReXhOUVVGTkxFbEJRVWtzUzBGQlN6dFpRVU12UWl4VFFVRlRPMWxCUTFRc1QwRkJUeXhGUVVGRkxFTkJRVU1zWlVGQlpTeEZRVUZGTEZsQlFWa3NRMEZCUXp0VFFVTjZReXhEUVVGRE8wbEJRMG9zUTBGQlF6dERRVU5HTEVOQlFVRTdRVUU1UWxrc1pVRkJaVHRKUVVRelFpeE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRPMGRCUTBVc1pVRkJaU3hEUVRoQ00wSWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJFZVc1aGJXbGpUVzlrZFd4bExDQk5iMlIxYkdVc0lGUjVjR1VnZlNCbWNtOXRJRndpUUc1bGMzUnFjeTlqYjIxdGIyNWNJanRjYm1sdGNHOXlkQ0I3SUVGUVVGOUpUbFJGVWtORlVGUlBVaUI5SUdaeWIyMGdYQ0pBYm1WemRHcHpMMk52Y21WY0lqdGNibHh1YVcxd2IzSjBJSHNnUVhWMGFFbHVkR1Z5WTJWd2RHOXlJSDBnWm5KdmJTQmNJaTR2UVhWMGFFbHVkR1Z5WTJWd2RHOXlYQ0k3WEc1cGJYQnZjblFnZXlCQlZWUklYMGhCVGtSTVJWSWdmU0JtY205dElGd2lMaTlqYjI1emRHRnVkSE5jSWp0Y2JtbHRjRzl5ZENCN0lFRjFkR2hJWVc1a2JHVnlJSDBnWm5KdmJTQmNJaTR1TDNSNWNHVnpYQ0k3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRVJsWTJGbVFYVjBhRTF2WkhWc1pVOXdkR2x2Ym5NZ1BTQjdYRzRnSUdkc2IySmhiRDg2SUdKdmIyeGxZVzQ3WEc0Z0lHaGhibVJzWlhJL09pQlVlWEJsUEVGMWRHaElZVzVrYkdWeVBqdGNibjA3WEc1Y2JrQk5iMlIxYkdVb2UzMHBYRzVsZUhCdmNuUWdZMnhoYzNNZ1JHVmpZV1pCZFhSb1RXOWtkV3hsSUh0Y2JpQWdjM1JoZEdsaklHWnZjbEp2YjNRb1hHNGdJQ0FnYjNCMGFXOXVjem9nUkdWallXWkJkWFJvVFc5a2RXeGxUM0IwYVc5dWN5QTlJSHQ5WEc0Z0lDazZJRVI1Ym1GdGFXTk5iMlIxYkdVZ2UxeHVJQ0FnSUdOdmJuTjBJSEJ5YjNacFpHVnljem9nUkhsdVlXMXBZMDF2WkhWc1pWdGNJbkJ5YjNacFpHVnljMXdpWFNBOUlGdGNiaUFnSUNBZ0lFRjFkR2hKYm5SbGNtTmxjSFJ2Y2l4Y2JpQWdJQ0JkTzF4dVhHNGdJQ0FnYVdZZ0tHOXdkR2x2Ym5NdWFHRnVaR3hsY2lrZ2UxeHVJQ0FnSUNBZ2NISnZkbWxrWlhKekxuQjFjMmdvYjNCMGFXOXVjeTVvWVc1a2JHVnlLVHRjYmlBZ0lDQWdJSEJ5YjNacFpHVnljeTV3ZFhOb0tIdGNiaUFnSUNBZ0lDQWdjSEp2ZG1sa1pUb2dRVlZVU0Y5SVFVNUVURVZTTEZ4dUlDQWdJQ0FnSUNCMWMyVkRiR0Z6Y3pvZ2IzQjBhVzl1Y3k1b1lXNWtiR1Z5TEZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHOXdkR2x2Ym5NdVoyeHZZbUZzS1NCN1hHNGdJQ0FnSUNBb2NISnZkbWxrWlhKeklHRnpJR0Z1ZVZ0ZEtTNXdkWE5vS0h0Y2JpQWdJQ0FnSUNBZ2NISnZkbWxrWlRvZ1FWQlFYMGxPVkVWU1EwVlFWRTlTTEZ4dUlDQWdJQ0FnSUNCMWMyVkZlR2x6ZEdsdVp6b2dRWFYwYUVsdWRHVnlZMlZ3ZEc5eUxGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUcxdlpIVnNaVG9nUkdWallXWkJkWFJvVFc5a2RXeGxMRnh1SUNBZ0lDQWdaMnh2WW1Gc09pQnZjSFJwYjI1ekxtZHNiMkpoYkNBL1B5Qm1ZV3h6WlN4Y2JpQWdJQ0FnSUhCeWIzWnBaR1Z5Y3l4Y2JpQWdJQ0FnSUdWNGNHOXlkSE02SUZ0QmRYUm9TVzUwWlhKalpYQjBiM0lzSUVGVlZFaGZTRUZPUkV4RlVsMHNYRzRnSUNBZ2ZUdGNiaUFnZlZ4dWZWeHVJbDE5Il19
|
|
@@ -45,6 +45,11 @@ function getModuleFor(flavour) {
|
|
|
45
45
|
const log = this.log.for(this.forRoot);
|
|
46
46
|
log.info(`Generating controllers for flavour...`);
|
|
47
47
|
const trackedModels = core_1.Adapter.models(flavour).filter((model) => this.isExposed(model, options.controllerExposure));
|
|
48
|
+
// Controllers always rely on a backing ModelService, even when Nest providers
|
|
49
|
+
// are not auto-registered. Warm the singleton registry here so shutdown can
|
|
50
|
+
// see the live services created for the generated controllers.
|
|
51
|
+
for (const model of trackedModels)
|
|
52
|
+
core_1.ModelService.forModel(model);
|
|
48
53
|
let modelServices = [];
|
|
49
54
|
if (options.autoServices) {
|
|
50
55
|
log.info("Auto-services enabled. Initializing service generation.");
|
|
@@ -74,5 +79,5 @@ function getModuleFor(flavour) {
|
|
|
74
79
|
});
|
|
75
80
|
return DecafModelModule;
|
|
76
81
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZNb2RlbE1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkRlY2FmTW9kZWxNb2R1bGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFZQSxvQ0F3REM7QUFwRUQsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FB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LFlBQVksS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDakMsY0FBYyxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztZQUNoRCxDQUFDO1lBQ0QsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsNENBQW1CLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUM5SCxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsV0FBVyxDQUFDLE1BQU0sY0FBYyxDQUFDLENBQUM7WUFDeEQsT0FBTztnQkFDSCxNQUFNLEVBQUUsa0JBQWtCO2dCQUMxQixXQUFXO2dCQUNYLFNBQVMsRUFBRTtvQkFDUCxHQUFHLGFBQWE7aUJBQ25CO2FBQ0osQ0FBQztRQUNOLENBQUM7S0FDSixDQUFDO0lBQ0YsZ0JBQWdCLEdBQUcsa0JBQWtCLEdBQUcsVUFBVSxDQUFDO1FBQy9DLElBQUEsZUFBTSxFQUFDLEVBQUUsQ0FBQztLQUNiLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNyQixNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRTtRQUNwQyxLQUFLLEVBQUUsY0FBYyxPQUFPLEVBQUU7S0FDakMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxnQkFBZ0IsQ0FBQztBQUM1QixDQUFDO0FBQ0QsOGpPQUE4ak8iLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG5pbXBvcnQgeyBNb2R1bGUgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IEFkYXB0ZXIsIE1vZGVsU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgRnJvbU1vZGVsQ29udHJvbGxlciB9IGZyb20gXCIuL0Zyb21Nb2RlbENvbnRyb2xsZXIuanNcIjtcbmltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBERUNBRl9FWFBPU0UgfSBmcm9tIFwiLi8uLi9jb25zdGFudHMuanNcIjtcbmV4cG9ydCBmdW5jdGlvbiBnZXRNb2R1bGVGb3IoZmxhdm91cikge1xuICAgIHZhciBEZWNhZk1vZGVsTW9kdWxlXzE7XG4gICAgbGV0IERlY2FmTW9kZWxNb2R1bGUgPSBjbGFzcyBEZWNhZk1vZGVsTW9kdWxlIHtcbiAgICAgICAgc3RhdGljIHsgRGVjYWZNb2RlbE1vZHVsZV8xID0gdGhpczsgfVxuICAgICAgICBzdGF0aWMgeyB0aGlzLmxvZyA9IExvZ2dpbmcuZm9yKERlY2FmTW9kZWxNb2R1bGVfMS5uYW1lKS5mb3IoZmxhdm91cik7IH1cbiAgICAgICAgc3RhdGljIGNyZWF0ZU1vZGVsU2VydmljZXMobW9kZWxzKSB7XG4gICAgICAgICAgICByZXR1cm4gbW9kZWxzLm1hcCgobW9kZWwpID0+ICh7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogYCR7bW9kZWwubmFtZX1TZXJ2aWNlYCxcbiAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiBNb2RlbFNlcnZpY2UuZm9yTW9kZWwobW9kZWwpLFxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICAgIHN0YXRpYyBpc0V4cG9zZWQobW9kZWwsIGV4cG9zdXJlKSB7XG4gICAgICAgICAgICBjb25zdCBvdmVycmlkZSA9IGV4cG9zdXJlPy5bbW9kZWwubmFtZV07XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHR5cGVvZiBvdmVycmlkZSAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgID8gb3ZlcnJpZGVcbiAgICAgICAgICAgICAgICA6IE1ldGFkYXRhLmdldChtb2RlbCwgTWV0YWRhdGEua2V5KERFQ0FGX0VYUE9TRSkpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSlcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuaW5jbHVkZXMoZmxhdm91cik7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgc3RhdGljIGZvclJvb3QoZmxhdm91ciwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgICAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5mb3JSb290KTtcbiAgICAgICAgICAgIGxvZy5pbmZvKGBHZW5lcmF0aW5nIGNvbnRyb2xsZXJzIGZvciBmbGF2b3VyLi4uYCk7XG4gICAgICAgICAgICBjb25zdCB0cmFja2VkTW9kZWxzID0gQWRhcHRlci5tb2RlbHMoZmxhdm91cikuZmlsdGVyKChtb2RlbCkgPT4gdGhpcy5pc0V4cG9zZWQobW9kZWwsIG9wdGlvbnMuY29udHJvbGxlckV4cG9zdXJlKSk7XG4gICAgICAgICAgICBsZXQgbW9kZWxTZXJ2aWNlcyA9IFtdO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuYXV0b1NlcnZpY2VzKSB7XG4gICAgICAgICAgICAgICAgbG9nLmluZm8oXCJBdXRvLXNlcnZpY2VzIGVuYWJsZWQuIEluaXRpYWxpemluZyBzZXJ2aWNlIGdlbmVyYXRpb24uXCIpO1xuICAgICAgICAgICAgICAgIG1vZGVsU2VydmljZXMgPSB0aGlzLmNyZWF0ZU1vZGVsU2VydmljZXModHJhY2tlZE1vZGVscyk7XG4gICAgICAgICAgICAgICAgbG9nLmluZm8oYEF1dG8tc2VydmljZXMgY29tcGxldGVkLiAke21vZGVsU2VydmljZXMubGVuZ3RofSBzZXJ2aWNlcyBpbml0aWFsaXplZC5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGdsb2JhbERlZmF1bHRzID0ge307XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5hZ2dyZWdhdGlvbnMgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgZ2xvYmFsRGVmYXVsdHMuYWxsb3dHcm91cGluZ1F1ZXJpZXMgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xsZXJzID0gdHJhY2tlZE1vZGVscy5tYXAoKG1vZGVsKSA9PiBGcm9tTW9kZWxDb250cm9sbGVyLmNyZWF0ZShtb2RlbCwgb3B0aW9ucy5jb250cm9sbGVyQ29uZmlnLCBnbG9iYWxEZWZhdWx0cykpO1xuICAgICAgICAgICAgbG9nLmluZm8oYEdlbmVyYXRlZCAke2NvbnRyb2xsZXJzLmxlbmd0aH0gY29udHJvbGxlcnNgKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbW9kdWxlOiBEZWNhZk1vZGVsTW9kdWxlXzEsXG4gICAgICAgICAgICAgICAgY29udHJvbGxlcnMsXG4gICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIC4uLm1vZGVsU2VydmljZXMsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9O1xuICAgIERlY2FmTW9kZWxNb2R1bGUgPSBEZWNhZk1vZGVsTW9kdWxlXzEgPSBfX2RlY29yYXRlKFtcbiAgICAgICAgTW9kdWxlKHt9KVxuICAgIF0sIERlY2FmTW9kZWxNb2R1bGUpO1xuICAgIE9iamVjdC5hc3NpZ24oRGVjYWZNb2RlbE1vZHVsZSwgXCJuYW1lXCIsIHtcbiAgICAgICAgdmFsdWU6IGBEZWNhZk1vZHVsZSR7Zmxhdm91cn1gLFxuICAgIH0pO1xuICAgIHJldHVybiBEZWNhZk1vZGVsTW9kdWxlO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUkdWallXWk5iMlJsYkUxdlpIVnNaUzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUwzTnlZeTlrWldOaFppMXRiMlJsYkM5RVpXTmhaazF2WkdWc1RXOWtkV3hsTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJN096czdPenRCUVVGQkxFOUJRVThzUlVGQmFVSXNUVUZCVFN4RlFVRlpMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZEYWtVc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGQlJTeFpRVUZaTEVWQlFVVXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU4yUkN4UFFVRlBMRVZCUVVVc1QwRkJUeXhGUVVGRkxFMUJRVTBzYlVKQlFXMUNMRU5CUVVNN1FVRkROVU1zVDBGQlR5eEZRVUZGTEcxQ1FVRnRRaXhGUVVGRkxHbERRVUU0UWp0QlFVYzFSQ3hQUVVGUExFVkJRVVVzVVVGQlVTeEZRVUZGTEUxQlFVMHNjMEpCUVhOQ0xFTkJRVU03UVVGRGFFUXNUMEZCVHl4RlFVRkZMRmxCUVZrc1JVRkJSU3d3UWtGQmNVSTdRVUZITlVNc1RVRkJUU3hWUVVGVkxGbEJRVmtzUTBGQlF5eFBRVUZsT3p0SlFVVXhReXhKUVVGTkxHZENRVUZuUWl4SFFVRjBRaXhOUVVGTkxHZENRVUZuUWpzN2FVSkJRMG9zVVVGQlJ5eEhRVUZITEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc2EwSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eEJRVUZzUkN4RFFVRnRSRHRSUVVWMFJTeE5RVUZOTEVOQlFVTXNiVUpCUVcxQ0xFTkJRM2hDTEUxQlFUWkNPMWxCUlRkQ0xFOUJRVThzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dG5Ra0ZETlVJc1QwRkJUeXhGUVVGRkxFZEJRVWNzUzBGQlN5eERRVUZETEVsQlFVa3NVMEZCVXp0blFrRkRMMElzVlVGQlZTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQldTeERRVUZETzJGQlEzUkVMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMDRzUTBGQlF6dFJRVVZFTEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUTJRc1MwRkJORUlzUlVGRE5VSXNVVUZCTmtNN1dVRkZOME1zVFVGQlRTeFJRVUZSTEVkQlFVY3NVVUZCVVN4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlEzaERMRTFCUVUwc1MwRkJTeXhIUVVOVUxFOUJRVThzVVVGQlVTeExRVUZMTEZkQlFWYzdaMEpCUXpkQ0xFTkJRVU1zUTBGQlF5eFJRVUZSTzJkQ1FVTldMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NSVUZCUlN4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZGZEVRc1NVRkJTU3hQUVVGUExFdEJRVXNzUzBGQlN5eFhRVUZYTzJkQ1FVRkZMRTlCUVU4c1NVRkJTU3hEUVVGRE8xbEJRemxETEVsQlFVa3NTMEZCU3l4TFFVRkxMRWxCUVVrN1owSkJRVVVzVDBGQlR5eEpRVUZKTEVOQlFVTTdXVUZEYUVNc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXp0blFrRkJSU3hQUVVGUExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkRla1FzVDBGQlR5eExRVUZMTEVOQlFVTTdVVUZEWml4RFFVRkRPMUZCUlVRc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGRFdpeFBRVUZsTEVWQlEyWXNWVUZCZFVNc1JVRkJSVHRaUVVWNlF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkRka01zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4MVEwRkJkVU1zUTBGQlF5eERRVUZETzFsQlJXeEVMRTFCUVUwc1lVRkJZU3hIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZETjBRc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVWQlFVVXNUMEZCVHl4RFFVRkRMR3RDUVVGclFpeERRVUZETEVOQlEyeEVMRU5CUVVNN1dVRkZSaXhKUVVGSkxHRkJRV0VzUjBGQlpTeEZRVUZGTEVOQlFVTTdXVUZEYmtNc1NVRkJTU3hQUVVGUExFTkJRVU1zV1VGQldTeEZRVUZGTEVOQlFVTTdaMEpCUTNwQ0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNlVVJCUVhsRUxFTkJRVU1zUTBGQlF6dG5Ra0ZEY0VVc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dG5Ra0ZEZUVRc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGRFRpdzBRa0ZCTkVJc1lVRkJZU3hEUVVGRExFMUJRVTBzZDBKQlFYZENMRU5CUTNwRkxFTkJRVU03V1VGRFNpeERRVUZETzFsQlJVUXNUVUZCVFN4alFVRmpMRWRCUVRCRExFVkJRVVVzUTBGQlF6dFpRVU5xUlN4SlFVRkpMRTlCUVU4c1EwRkJReXhaUVVGWkxFdEJRVXNzUzBGQlN5eEZRVUZGTEVOQlFVTTdaMEpCUTI1RExHTkJRV01zUTBGQlF5eHZRa0ZCYjBJc1IwRkJSeXhMUVVGTExFTkJRVU03V1VGRE9VTXNRMEZCUXp0WlFVVkVMRTFCUVUwc1YwRkJWeXhIUVVGSExHRkJRV0VzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVNNVF5eHRRa0ZCYlVJc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEU5QlFVOHNRMEZCUXl4blFrRkJaMElzUlVGQlJTeGpRVUZqTEVOQlFVTXNRMEZETlVVc1EwRkJRenRaUVVOR0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNZVUZCWVN4WFFVRlhMRU5CUVVNc1RVRkJUU3hqUVVGakxFTkJRVU1zUTBGQlF6dFpRVVY0UkN4UFFVRlBPMmRDUVVOTUxFMUJRVTBzUlVGQlJTeHJRa0ZCWjBJN1owSkJRM2hDTEZkQlFWYzdaMEpCUTFnc1UwRkJVeXhGUVVGRk8yOUNRVU5VTEVkQlFVY3NZVUZCWVR0cFFrRkRha0k3WVVGRFJpeERRVUZETzFGQlEwb3NRMEZCUXpzN1NVRnFSVWNzWjBKQlFXZENPMUZCUkhKQ0xFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTTdUMEZEVEN4blFrRkJaMElzUTBGclJYSkNPMGxCUTBRc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hOUVVGTkxFVkJRVVU3VVVGRGRFTXNTMEZCU3l4RlFVRkZMR05CUVdNc1QwRkJUeXhGUVVGRk8wdEJReTlDTEVOQlFVTXNRMEZCUXp0SlFVTklMRTlCUVU4c1owSkJRV2RDTEVOQlFVTTdRVUZETVVJc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUVSNWJtRnRhV05OYjJSMWJHVXNJRTF2WkhWc1pTd2dVSEp2ZG1sa1pYSWdmU0JtY205dElGd2lRRzVsYzNScWN5OWpiMjF0YjI1Y0lqdGNibWx0Y0c5eWRDQjdJRUZrWVhCMFpYSXNJRTF2WkdWc1UyVnlkbWxqWlNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhzZ1RHOW5aMmx1WnlCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdmJHOW5aMmx1WjF3aU8xeHVhVzF3YjNKMElIc2dSbkp2YlUxdlpHVnNRMjl1ZEhKdmJHeGxjaUI5SUdaeWIyMGdYQ0l1TDBaeWIyMU5iMlJsYkVOdmJuUnliMnhzWlhKY0lqdGNibWx0Y0c5eWRDQjdJRVJsWTJGbVRXOWtkV3hsVDNCMGFXOXVjeUI5SUdaeWIyMGdYQ0l1TGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1RXOWtaV3dzSUUxdlpHVnNRMjl1YzNSeWRXTjBiM0lnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJ2Y2kxMllXeHBaR0YwYVc5dVhDSTdYRzVwYlhCdmNuUWdleUJOWlhSaFpHRjBZU0I5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdWamIzSmhkR2x2Ymx3aU8xeHVhVzF3YjNKMElIc2dSRVZEUVVaZlJWaFFUMU5GSUgwZ1puSnZiU0JjSWk0dUwyTnZibk4wWVc1MGMxd2lPMXh1YVcxd2IzSjBJSFI1Y0dVZ2V5Qk5iMlJsYkVOdmJuUnliMnhzWlhKR1lXTjBiM0o1UTI5dVptbG5JSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTltYjNJdGFIUjBjQzl6WlhKMlpYSmNJanRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRFMXZaSFZzWlVadmNpaG1iR0YyYjNWeU9pQnpkSEpwYm1jcElIdGNiaUFnUUUxdlpIVnNaU2g3ZlNsY2JpQWdZMnhoYzNNZ1JHVmpZV1pOYjJSbGJFMXZaSFZzWlNCN1hHNGdJQ0FnYzNSaGRHbGpJSEpsWVdSdmJteDVJR3h2WnlBOUlFeHZaMmRwYm1jdVptOXlLRVJsWTJGbVRXOWtaV3hOYjJSMWJHVXVibUZ0WlNrdVptOXlLR1pzWVhadmRYSXBPMXh1WEc0Z0lDQWdjM1JoZEdsaklHTnlaV0YwWlUxdlpHVnNVMlZ5ZG1salpYTThWQ0JsZUhSbGJtUnpJRTF2WkdWc1BHSnZiMnhsWVc0K1BpaGNiaUFnSUNBZ0lHMXZaR1ZzY3pvZ1RXOWtaV3hEYjI1emRISjFZM1J2Y2p4VVBsdGRYRzRnSUNBZ0tUb2dVSEp2ZG1sa1pYSmJYU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiVzlrWld4ekxtMWhjQ2dvYlc5a1pXd3BJRDArSUNoN1hHNGdJQ0FnSUNBZ0lIQnliM1pwWkdVNklHQWtlMjF2WkdWc0xtNWhiV1Y5VTJWeWRtbGpaV0FzWEc0Z0lDQWdJQ0FnSUhWelpVWmhZM1J2Y25rNklDZ3BJRDArSUUxdlpHVnNVMlZ5ZG1salpTNW1iM0pOYjJSbGJDaHRiMlJsYkNCaGN5QmhibmtwTEZ4dUlDQWdJQ0FnZlNrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhOMFlYUnBZeUJwYzBWNGNHOXpaV1FvWEc0Z0lDQWdJQ0J0YjJSbGJEb2dUVzlrWld4RGIyNXpkSEoxWTNSdmNqeGhibmsrTEZ4dUlDQWdJQ0FnWlhod2IzTjFjbVUvT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JpYjI5c1pXRnVJSHdnYzNSeWFXNW5XMTArWEc0Z0lDQWdLVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQnZkbVZ5Y21sa1pTQTlJR1Y0Y0c5emRYSmxQeTViYlc5a1pXd3VibUZ0WlYwN1hHNGdJQ0FnSUNCamIyNXpkQ0IyWVd4MVpTQTlYRzRnSUNBZ0lDQWdJSFI1Y0dWdlppQnZkbVZ5Y21sa1pTQWhQVDBnWENKMWJtUmxabWx1WldSY0lseHVJQ0FnSUNBZ0lDQWdJRDhnYjNabGNuSnBaR1ZjYmlBZ0lDQWdJQ0FnSUNBNklFMWxkR0ZrWVhSaExtZGxkQ2h0YjJSbGJDd2dUV1YwWVdSaGRHRXVhMlY1S0VSRlEwRkdYMFZZVUU5VFJTa3BPMXh1WEc0Z0lDQWdJQ0JwWmlBb2RIbHdaVzltSUhaaGJIVmxJRDA5UFNCY0luVnVaR1ZtYVc1bFpGd2lLU0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdJQ0FnSUdsbUlDaDJZV3gxWlNBOVBUMGdkSEoxWlNrZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ0lDQnBaaUFvUVhKeVlYa3VhWE5CY25KaGVTaDJZV3gxWlNrcElISmxkSFZ5YmlCMllXeDFaUzVwYm1Oc2RXUmxjeWhtYkdGMmIzVnlLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J6ZEdGMGFXTWdabTl5VW05dmRDaGNiaUFnSUNBZ0lHWnNZWFp2ZFhJNklITjBjbWx1Wnl4Y2JpQWdJQ0FnSUc5d2RHbHZibk02SUZCaGNuUnBZV3c4UkdWallXWk5iMlIxYkdWUGNIUnBiMjV6UGlBOUlIdDlYRzRnSUNBZ0tUb2dSSGx1WVcxcFkwMXZaSFZzWlNCN1hHNGdJQ0FnSUNCamIyNXpkQ0JzYjJjZ1BTQjBhR2x6TG14dlp5NW1iM0lvZEdocGN5NW1iM0pTYjI5MEtUdGNiaUFnSUNBZ0lHeHZaeTVwYm1adktHQkhaVzVsY21GMGFXNW5JR052Ym5SeWIyeHNaWEp6SUdadmNpQm1iR0YyYjNWeUxpNHVZQ2s3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJSFJ5WVdOclpXUk5iMlJsYkhNZ1BTQkJaR0Z3ZEdWeUxtMXZaR1ZzY3lobWJHRjJiM1Z5S1M1bWFXeDBaWElvS0cxdlpHVnNLU0E5UGx4dUlDQWdJQ0FnSUNCMGFHbHpMbWx6Ulhod2IzTmxaQ2h0YjJSbGJDd2diM0IwYVc5dWN5NWpiMjUwY205c2JHVnlSWGh3YjNOMWNtVXBYRzRnSUNBZ0lDQXBPMXh1WEc0Z0lDQWdJQ0JzWlhRZ2JXOWtaV3hUWlhKMmFXTmxjem9nVUhKdmRtbGtaWEpiWFNBOUlGdGRPMXh1SUNBZ0lDQWdhV1lnS0c5d2RHbHZibk11WVhWMGIxTmxjblpwWTJWektTQjdYRzRnSUNBZ0lDQWdJR3h2Wnk1cGJtWnZLRndpUVhWMGJ5MXpaWEoyYVdObGN5QmxibUZpYkdWa0xpQkpibWwwYVdGc2FYcHBibWNnYzJWeWRtbGpaU0JuWlc1bGNtRjBhVzl1TGx3aUtUdGNiaUFnSUNBZ0lDQWdiVzlrWld4VFpYSjJhV05sY3lBOUlIUm9hWE11WTNKbFlYUmxUVzlrWld4VFpYSjJhV05sY3loMGNtRmphMlZrVFc5a1pXeHpLVHRjYmlBZ0lDQWdJQ0FnYkc5bkxtbHVabThvWEc0Z0lDQWdJQ0FnSUNBZ1lFRjFkRzh0YzJWeWRtbGpaWE1nWTI5dGNHeGxkR1ZrTGlBa2UyMXZaR1ZzVTJWeWRtbGpaWE11YkdWdVozUm9mU0J6WlhKMmFXTmxjeUJwYm1sMGFXRnNhWHBsWkM1Z1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR052Ym5OMElHZHNiMkpoYkVSbFptRjFiSFJ6T2lCUVlYSjBhV0ZzUEUxdlpHVnNRMjl1ZEhKdmJHeGxja1poWTNSdmNubERiMjVtYVdjK0lEMGdlMzA3WEc0Z0lDQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1aFoyZHlaV2RoZEdsdmJuTWdQVDA5SUdaaGJITmxLU0I3WEc0Z0lDQWdJQ0FnSUdkc2IySmhiRVJsWm1GMWJIUnpMbUZzYkc5M1IzSnZkWEJwYm1kUmRXVnlhV1Z6SUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJR052Ym5SeWIyeHNaWEp6SUQwZ2RISmhZMnRsWkUxdlpHVnNjeTV0WVhBb0tHMXZaR1ZzS1NBOVBseHVJQ0FnSUNBZ0lDQkdjbTl0VFc5a1pXeERiMjUwY205c2JHVnlMbU55WldGMFpTaHRiMlJsYkN3Z2IzQjBhVzl1Y3k1amIyNTBjbTlzYkdWeVEyOXVabWxuTENCbmJHOWlZV3hFWldaaGRXeDBjeWxjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0JzYjJjdWFXNW1ieWhnUjJWdVpYSmhkR1ZrSUNSN1kyOXVkSEp2Ykd4bGNuTXViR1Z1WjNSb2ZTQmpiMjUwY205c2JHVnljMkFwTzF4dVhHNGdJQ0FnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnSUNCdGIyUjFiR1U2SUVSbFkyRm1UVzlrWld4TmIyUjFiR1VzWEc0Z0lDQWdJQ0FnSUdOdmJuUnliMnhzWlhKekxGeHVJQ0FnSUNBZ0lDQndjbTkyYVdSbGNuTTZJRnRjYmlBZ0lDQWdJQ0FnSUNBdUxpNXRiMlJsYkZObGNuWnBZMlZ6TEZ4dUlDQWdJQ0FnSUNCZExGeHVJQ0FnSUNBZ2ZUdGNiaUFnSUNCOVhHNGdJSDFjYmlBZ1QySnFaV04wTG1GemMybG5iaWhFWldOaFprMXZaR1ZzVFc5a2RXeGxMQ0JjSW01aGJXVmNJaXdnZTF4dUlDQWdJSFpoYkhWbE9pQmdSR1ZqWVdaTmIyUjFiR1VrZTJac1lYWnZkWEo5WUN4Y2JpQWdmU2s3WEc0Z0lISmxkSFZ5YmlCRVpXTmhaazF2WkdWc1RXOWtkV3hsTzF4dWZWeHVJbDE5Il19
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZNb2RlbE1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNhZi1tb2RlbC9EZWNhZk1vZGVsTW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBaUIsTUFBTSxFQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlDQUE4QjtBQUc1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSwwQkFBcUI7QUFHNUMsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFlOztJQUUxQyxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFnQjs7aUJBQ0osUUFBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxBQUFsRCxDQUFtRDtRQUV0RSxNQUFNLENBQUMsbUJBQW1CLENBQ3hCLE1BQTZCO1lBRTdCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksU0FBUztnQkFDL0IsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBWSxDQUFDO2FBQ3RELENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUVELE1BQU0sQ0FBQyxTQUFTLENBQ2QsS0FBNEIsRUFDNUIsUUFBNkM7WUFFN0MsTUFBTSxRQUFRLEdBQUcsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sS0FBSyxHQUNULE9BQU8sUUFBUSxLQUFLLFdBQVc7Z0JBQzdCLENBQUMsQ0FBQyxRQUFRO2dCQUNWLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFFdEQsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQzlDLElBQUksS0FBSyxLQUFLLElBQUk7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDaEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFBRSxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxDQUFDLE9BQU8sQ0FDWixPQUFlLEVBQ2YsVUFBdUMsRUFBRTtZQUV6QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkMsR0FBRyxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1lBRWxELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDN0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQ2xELENBQUM7WUFFRiw4RUFBOEU7WUFDOUUsNEVBQTRFO1lBQzVFLCtEQUErRDtZQUMvRCxLQUFLLE1BQU0sS0FBSyxJQUFJLGFBQWE7Z0JBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFZLENBQUMsQ0FBQztZQUV2RSxJQUFJLGFBQWEsR0FBZSxFQUFFLENBQUM7WUFDbkMsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3pCLEdBQUcsQ0FBQyxJQUFJLENBQUMseURBQXlELENBQUMsQ0FBQztnQkFDcEUsYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDeEQsR0FBRyxDQUFDLElBQUksQ0FDTiw0QkFBNEIsYUFBYSxDQUFDLE1BQU0sd0JBQXdCLENBQ3pFLENBQUM7WUFDSixDQUFDO1lBRUQsTUFBTSxjQUFjLEdBQTBDLEVBQUUsQ0FBQztZQUNqRSxJQUFJLE9BQU8sQ0FBQyxZQUFZLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ25DLGNBQWMsQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7WUFDOUMsQ0FBQztZQUVELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUM5QyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsQ0FDNUUsQ0FBQztZQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxXQUFXLENBQUMsTUFBTSxjQUFjLENBQUMsQ0FBQztZQUV4RCxPQUFPO2dCQUNMLE1BQU0sRUFBRSxrQkFBZ0I7Z0JBQ3hCLFdBQVc7Z0JBQ1gsU0FBUyxFQUFFO29CQUNULEdBQUcsYUFBYTtpQkFDakI7YUFDRixDQUFDO1FBQ0osQ0FBQzs7SUF0RUcsZ0JBQWdCO1FBRHJCLE1BQU0sQ0FBQyxFQUFFLENBQUM7T0FDTCxnQkFBZ0IsQ0F1RXJCO0lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUU7UUFDdEMsS0FBSyxFQUFFLGNBQWMsT0FBTyxFQUFFO0tBQy9CLENBQUMsQ0FBQztJQUNILE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER5bmFtaWNNb2R1bGUsIE1vZHVsZSwgUHJvdmlkZXIgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IEFkYXB0ZXIsIE1vZGVsU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgRnJvbU1vZGVsQ29udHJvbGxlciB9IGZyb20gXCIuL0Zyb21Nb2RlbENvbnRyb2xsZXJcIjtcbmltcG9ydCB7IERlY2FmTW9kdWxlT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgTW9kZWwsIE1vZGVsQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBNZXRhZGF0YSB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgREVDQUZfRVhQT1NFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHR5cGUgeyBNb2RlbENvbnRyb2xsZXJGYWN0b3J5Q29uZmlnIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItaHR0cC9zZXJ2ZXJcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vZHVsZUZvcihmbGF2b3VyOiBzdHJpbmcpIHtcbiAgQE1vZHVsZSh7fSlcbiAgY2xhc3MgRGVjYWZNb2RlbE1vZHVsZSB7XG4gICAgc3RhdGljIHJlYWRvbmx5IGxvZyA9IExvZ2dpbmcuZm9yKERlY2FmTW9kZWxNb2R1bGUubmFtZSkuZm9yKGZsYXZvdXIpO1xuXG4gICAgc3RhdGljIGNyZWF0ZU1vZGVsU2VydmljZXM8VCBleHRlbmRzIE1vZGVsPGJvb2xlYW4+PihcbiAgICAgIG1vZGVsczogTW9kZWxDb25zdHJ1Y3RvcjxUPltdXG4gICAgKTogUHJvdmlkZXJbXSB7XG4gICAgICByZXR1cm4gbW9kZWxzLm1hcCgobW9kZWwpID0+ICh7XG4gICAgICAgIHByb3ZpZGU6IGAke21vZGVsLm5hbWV9U2VydmljZWAsXG4gICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IE1vZGVsU2VydmljZS5mb3JNb2RlbChtb2RlbCBhcyBhbnkpLFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIHN0YXRpYyBpc0V4cG9zZWQoXG4gICAgICBtb2RlbDogTW9kZWxDb25zdHJ1Y3Rvcjxhbnk+LFxuICAgICAgZXhwb3N1cmU/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuIHwgc3RyaW5nW10+XG4gICAgKTogYm9vbGVhbiB7XG4gICAgICBjb25zdCBvdmVycmlkZSA9IGV4cG9zdXJlPy5bbW9kZWwubmFtZV07XG4gICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgIHR5cGVvZiBvdmVycmlkZSAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgICAgID8gb3ZlcnJpZGVcbiAgICAgICAgICA6IE1ldGFkYXRhLmdldChtb2RlbCwgTWV0YWRhdGEua2V5KERFQ0FGX0VYUE9TRSkpO1xuXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSkgcmV0dXJuIHRydWU7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiB2YWx1ZS5pbmNsdWRlcyhmbGF2b3VyKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZm9yUm9vdChcbiAgICAgIGZsYXZvdXI6IHN0cmluZyxcbiAgICAgIG9wdGlvbnM6IFBhcnRpYWw8RGVjYWZNb2R1bGVPcHRpb25zPiA9IHt9XG4gICAgKTogRHluYW1pY01vZHVsZSB7XG4gICAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5mb3JSb290KTtcbiAgICAgIGxvZy5pbmZvKGBHZW5lcmF0aW5nIGNvbnRyb2xsZXJzIGZvciBmbGF2b3VyLi4uYCk7XG5cbiAgICAgIGNvbnN0IHRyYWNrZWRNb2RlbHMgPSBBZGFwdGVyLm1vZGVscyhmbGF2b3VyKS5maWx0ZXIoKG1vZGVsKSA9PlxuICAgICAgICB0aGlzLmlzRXhwb3NlZChtb2RlbCwgb3B0aW9ucy5jb250cm9sbGVyRXhwb3N1cmUpXG4gICAgICApO1xuXG4gICAgICAvLyBDb250cm9sbGVycyBhbHdheXMgcmVseSBvbiBhIGJhY2tpbmcgTW9kZWxTZXJ2aWNlLCBldmVuIHdoZW4gTmVzdCBwcm92aWRlcnNcbiAgICAgIC8vIGFyZSBub3QgYXV0by1yZWdpc3RlcmVkLiBXYXJtIHRoZSBzaW5nbGV0b24gcmVnaXN0cnkgaGVyZSBzbyBzaHV0ZG93biBjYW5cbiAgICAgIC8vIHNlZSB0aGUgbGl2ZSBzZXJ2aWNlcyBjcmVhdGVkIGZvciB0aGUgZ2VuZXJhdGVkIGNvbnRyb2xsZXJzLlxuICAgICAgZm9yIChjb25zdCBtb2RlbCBvZiB0cmFja2VkTW9kZWxzKSBNb2RlbFNlcnZpY2UuZm9yTW9kZWwobW9kZWwgYXMgYW55KTtcblxuICAgICAgbGV0IG1vZGVsU2VydmljZXM6IFByb3ZpZGVyW10gPSBbXTtcbiAgICAgIGlmIChvcHRpb25zLmF1dG9TZXJ2aWNlcykge1xuICAgICAgICBsb2cuaW5mbyhcIkF1dG8tc2VydmljZXMgZW5hYmxlZC4gSW5pdGlhbGl6aW5nIHNlcnZpY2UgZ2VuZXJhdGlvbi5cIik7XG4gICAgICAgIG1vZGVsU2VydmljZXMgPSB0aGlzLmNyZWF0ZU1vZGVsU2VydmljZXModHJhY2tlZE1vZGVscyk7XG4gICAgICAgIGxvZy5pbmZvKFxuICAgICAgICAgIGBBdXRvLXNlcnZpY2VzIGNvbXBsZXRlZC4gJHttb2RlbFNlcnZpY2VzLmxlbmd0aH0gc2VydmljZXMgaW5pdGlhbGl6ZWQuYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBnbG9iYWxEZWZhdWx0czogUGFydGlhbDxNb2RlbENvbnRyb2xsZXJGYWN0b3J5Q29uZmlnPiA9IHt9O1xuICAgICAgaWYgKG9wdGlvbnMuYWdncmVnYXRpb25zID09PSBmYWxzZSkge1xuICAgICAgICBnbG9iYWxEZWZhdWx0cy5hbGxvd0dyb3VwaW5nUXVlcmllcyA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb250cm9sbGVycyA9IHRyYWNrZWRNb2RlbHMubWFwKChtb2RlbCkgPT5cbiAgICAgICAgRnJvbU1vZGVsQ29udHJvbGxlci5jcmVhdGUobW9kZWwsIG9wdGlvbnMuY29udHJvbGxlckNvbmZpZywgZ2xvYmFsRGVmYXVsdHMpXG4gICAgICApO1xuICAgICAgbG9nLmluZm8oYEdlbmVyYXRlZCAke2NvbnRyb2xsZXJzLmxlbmd0aH0gY29udHJvbGxlcnNgKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbW9kdWxlOiBEZWNhZk1vZGVsTW9kdWxlLFxuICAgICAgICBjb250cm9sbGVycyxcbiAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgLi4ubW9kZWxTZXJ2aWNlcyxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgfVxuICB9XG4gIE9iamVjdC5hc3NpZ24oRGVjYWZNb2RlbE1vZHVsZSwgXCJuYW1lXCIsIHtcbiAgICB2YWx1ZTogYERlY2FmTW9kdWxlJHtmbGF2b3VyfWAsXG4gIH0pO1xuICByZXR1cm4gRGVjYWZNb2RlbE1vZHVsZTtcbn1cbiJdfQ==
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZNb2RlbE1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkRlY2FmTW9kZWxNb2R1bGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFZQSxvQ0E2REM7QUF6RUQsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FB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QUMsSUFBSSxDQUFDLDRCQUE0QixhQUFhLENBQUMsTUFBTSx3QkFBd0IsQ0FBQyxDQUFDO1lBQ3ZGLENBQUM7WUFDRCxNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDMUIsSUFBSSxPQUFPLENBQUMsWUFBWSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUNqQyxjQUFjLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1lBQ2hELENBQUM7WUFDRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyw0Q0FBbUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQzlILEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxXQUFXLENBQUMsTUFBTSxjQUFjLENBQUMsQ0FBQztZQUN4RCxPQUFPO2dCQUNILE1BQU0sRUFBRSxrQkFBa0I7Z0JBQzFCLFdBQVc7Z0JBQ1gsU0FBUyxFQUFFO29CQUNQLEdBQUcsYUFBYTtpQkFDbkI7YUFDSixDQUFDO1FBQ04sQ0FBQztLQUNKLENBQUM7SUFDRixnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxVQUFVLENBQUM7UUFDL0MsSUFBQSxlQUFNLEVBQUMsRUFBRSxDQUFDO0tBQ2IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFO1FBQ3BDLEtBQUssRUFBRSxjQUFjLE9BQU8sRUFBRTtLQUNqQyxDQUFDLENBQUM7SUFDSCxPQUFPLGdCQUFnQixDQUFDO0FBQzVCLENBQUM7QUFDRCxrb1BBQWtvUCIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlY29yYXRlID0gKHRoaXMgJiYgdGhpcy5fX2RlY29yYXRlKSB8fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbmltcG9ydCB7IE1vZHVsZSB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgQWRhcHRlciwgTW9kZWxTZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBMb2dnaW5nIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5pbXBvcnQgeyBGcm9tTW9kZWxDb250cm9sbGVyIH0gZnJvbSBcIi4vRnJvbU1vZGVsQ29udHJvbGxlci5qc1wiO1xuaW1wb3J0IHsgTWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IERFQ0FGX0VYUE9TRSB9IGZyb20gXCIuLy4uL2NvbnN0YW50cy5qc1wiO1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1vZHVsZUZvcihmbGF2b3VyKSB7XG4gICAgdmFyIERlY2FmTW9kZWxNb2R1bGVfMTtcbiAgICBsZXQgRGVjYWZNb2RlbE1vZHVsZSA9IGNsYXNzIERlY2FmTW9kZWxNb2R1bGUge1xuICAgICAgICBzdGF0aWMgeyBEZWNhZk1vZGVsTW9kdWxlXzEgPSB0aGlzOyB9XG4gICAgICAgIHN0YXRpYyB7IHRoaXMubG9nID0gTG9nZ2luZy5mb3IoRGVjYWZNb2RlbE1vZHVsZV8xLm5hbWUpLmZvcihmbGF2b3VyKTsgfVxuICAgICAgICBzdGF0aWMgY3JlYXRlTW9kZWxTZXJ2aWNlcyhtb2RlbHMpIHtcbiAgICAgICAgICAgIHJldHVybiBtb2RlbHMubWFwKChtb2RlbCkgPT4gKHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBgJHttb2RlbC5uYW1lfVNlcnZpY2VgLFxuICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IE1vZGVsU2VydmljZS5mb3JNb2RlbChtb2RlbCksXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgc3RhdGljIGlzRXhwb3NlZChtb2RlbCwgZXhwb3N1cmUpIHtcbiAgICAgICAgICAgIGNvbnN0IG92ZXJyaWRlID0gZXhwb3N1cmU/Llttb2RlbC5uYW1lXTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdHlwZW9mIG92ZXJyaWRlICE9PSBcInVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgPyBvdmVycmlkZVxuICAgICAgICAgICAgICAgIDogTWV0YWRhdGEuZ2V0KG1vZGVsLCBNZXRhZGF0YS5rZXkoREVDQUZfRVhQT1NFKSk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlKVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKVxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5pbmNsdWRlcyhmbGF2b3VyKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBzdGF0aWMgZm9yUm9vdChmbGF2b3VyLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmZvclJvb3QpO1xuICAgICAgICAgICAgbG9nLmluZm8oYEdlbmVyYXRpbmcgY29udHJvbGxlcnMgZm9yIGZsYXZvdXIuLi5gKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYWNrZWRNb2RlbHMgPSBBZGFwdGVyLm1vZGVscyhmbGF2b3VyKS5maWx0ZXIoKG1vZGVsKSA9PiB0aGlzLmlzRXhwb3NlZChtb2RlbCwgb3B0aW9ucy5jb250cm9sbGVyRXhwb3N1cmUpKTtcbiAgICAgICAgICAgIC8vIENvbnRyb2xsZXJzIGFsd2F5cyByZWx5IG9uIGEgYmFja2luZyBNb2RlbFNlcnZpY2UsIGV2ZW4gd2hlbiBOZXN0IHByb3ZpZGVyc1xuICAgICAgICAgICAgLy8gYXJlIG5vdCBhdXRvLXJlZ2lzdGVyZWQuIFdhcm0gdGhlIHNpbmdsZXRvbiByZWdpc3RyeSBoZXJlIHNvIHNodXRkb3duIGNhblxuICAgICAgICAgICAgLy8gc2VlIHRoZSBsaXZlIHNlcnZpY2VzIGNyZWF0ZWQgZm9yIHRoZSBnZW5lcmF0ZWQgY29udHJvbGxlcnMuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IG1vZGVsIG9mIHRyYWNrZWRNb2RlbHMpXG4gICAgICAgICAgICAgICAgTW9kZWxTZXJ2aWNlLmZvck1vZGVsKG1vZGVsKTtcbiAgICAgICAgICAgIGxldCBtb2RlbFNlcnZpY2VzID0gW107XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5hdXRvU2VydmljZXMpIHtcbiAgICAgICAgICAgICAgICBsb2cuaW5mbyhcIkF1dG8tc2VydmljZXMgZW5hYmxlZC4gSW5pdGlhbGl6aW5nIHNlcnZpY2UgZ2VuZXJhdGlvbi5cIik7XG4gICAgICAgICAgICAgICAgbW9kZWxTZXJ2aWNlcyA9IHRoaXMuY3JlYXRlTW9kZWxTZXJ2aWNlcyh0cmFja2VkTW9kZWxzKTtcbiAgICAgICAgICAgICAgICBsb2cuaW5mbyhgQXV0by1zZXJ2aWNlcyBjb21wbGV0ZWQuICR7bW9kZWxTZXJ2aWNlcy5sZW5ndGh9IHNlcnZpY2VzIGluaXRpYWxpemVkLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZ2xvYmFsRGVmYXVsdHMgPSB7fTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmFnZ3JlZ2F0aW9ucyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBnbG9iYWxEZWZhdWx0cy5hbGxvd0dyb3VwaW5nUXVlcmllcyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY29udHJvbGxlcnMgPSB0cmFja2VkTW9kZWxzLm1hcCgobW9kZWwpID0+IEZyb21Nb2RlbENvbnRyb2xsZXIuY3JlYXRlKG1vZGVsLCBvcHRpb25zLmNvbnRyb2xsZXJDb25maWcsIGdsb2JhbERlZmF1bHRzKSk7XG4gICAgICAgICAgICBsb2cuaW5mbyhgR2VuZXJhdGVkICR7Y29udHJvbGxlcnMubGVuZ3RofSBjb250cm9sbGVyc2ApO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBtb2R1bGU6IERlY2FmTW9kZWxNb2R1bGVfMSxcbiAgICAgICAgICAgICAgICBjb250cm9sbGVycyxcbiAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAgLi4ubW9kZWxTZXJ2aWNlcyxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgRGVjYWZNb2RlbE1vZHVsZSA9IERlY2FmTW9kZWxNb2R1bGVfMSA9IF9fZGVjb3JhdGUoW1xuICAgICAgICBNb2R1bGUoe30pXG4gICAgXSwgRGVjYWZNb2RlbE1vZHVsZSk7XG4gICAgT2JqZWN0LmFzc2lnbihEZWNhZk1vZGVsTW9kdWxlLCBcIm5hbWVcIiwge1xuICAgICAgICB2YWx1ZTogYERlY2FmTW9kdWxlJHtmbGF2b3VyfWAsXG4gICAgfSk7XG4gICAgcmV0dXJuIERlY2FmTW9kZWxNb2R1bGU7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lSR1ZqWVdaTmIyUmxiRTF2WkhWc1pTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1TDNOeVl5OWtaV05oWmkxdGIyUmxiQzlFWldOaFprMXZaR1ZzVFc5a2RXeGxMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096dEJRVUZCTEU5QlFVOHNSVUZCYVVJc1RVRkJUU3hGUVVGWkxFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkRha1VzVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZCUlN4WlFVRlpMRVZCUVVVc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVTjJSQ3hQUVVGUExFVkJRVVVzVDBGQlR5eEZRVUZGTEUxQlFVMHNiVUpCUVcxQ0xFTkJRVU03UVVGRE5VTXNUMEZCVHl4RlFVRkZMRzFDUVVGdFFpeEZRVUZGTEdsRFFVRTRRanRCUVVjMVJDeFBRVUZQTEVWQlFVVXNVVUZCVVN4RlFVRkZMRTFCUVUwc2MwSkJRWE5DTEVOQlFVTTdRVUZEYUVRc1QwRkJUeXhGUVVGRkxGbEJRVmtzUlVGQlJTd3dRa0ZCY1VJN1FVRkhOVU1zVFVGQlRTeFZRVUZWTEZsQlFWa3NRMEZCUXl4UFFVRmxPenRKUVVVeFF5eEpRVUZOTEdkQ1FVRm5RaXhIUVVGMFFpeE5RVUZOTEdkQ1FVRm5RanM3YVVKQlEwb3NVVUZCUnl4SFFVRkhMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zYTBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4QlFVRnNSQ3hEUVVGdFJEdFJRVVYwUlN4TlFVRk5MRU5CUVVNc2JVSkJRVzFDTEVOQlEzaENMRTFCUVRaQ08xbEJSVGRDTEU5QlFVOHNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0blFrRkROVUlzVDBGQlR5eEZRVUZGTEVkQlFVY3NTMEZCU3l4RFFVRkRMRWxCUVVrc1UwRkJVenRuUWtGREwwSXNWVUZCVlN4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCV1N4RFFVRkRPMkZCUTNSRUxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEwNHNRMEZCUXp0UlFVVkVMRTFCUVUwc1EwRkJReXhUUVVGVExFTkJRMlFzUzBGQk5FSXNSVUZETlVJc1VVRkJOa003V1VGRk4wTXNUVUZCVFN4UlFVRlJMRWRCUVVjc1VVRkJVU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMWxCUTNoRExFMUJRVTBzUzBGQlN5eEhRVU5VTEU5QlFVOHNVVUZCVVN4TFFVRkxMRmRCUVZjN1owSkJRemRDTEVOQlFVTXNRMEZCUXl4UlFVRlJPMmRDUVVOV0xFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1JVRkJSU3hSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkZkRVFzU1VGQlNTeFBRVUZQTEV0QlFVc3NTMEZCU3l4WFFVRlhPMmRDUVVGRkxFOUJRVThzU1VGQlNTeERRVUZETzFsQlF6bERMRWxCUVVrc1MwRkJTeXhMUVVGTExFbEJRVWs3WjBKQlFVVXNUMEZCVHl4SlFVRkpMRU5CUVVNN1dVRkRhRU1zU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJRenRuUWtGQlJTeFBRVUZQTEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRGVrUXNUMEZCVHl4TFFVRkxMRU5CUVVNN1VVRkRaaXhEUVVGRE8xRkJSVVFzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZEV2l4UFFVRmxMRVZCUTJZc1ZVRkJkVU1zUlVGQlJUdFpRVVY2UXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRGRrTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXgxUTBGQmRVTXNRMEZCUXl4RFFVRkRPMWxCUld4RUxFMUJRVTBzWVVGQllTeEhRVUZITEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkROMFFzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1QwRkJUeXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRU5CUTJ4RUxFTkJRVU03V1VGRlJpdzRSVUZCT0VVN1dVRkRPVVVzTkVWQlFUUkZPMWxCUXpWRkxDdEVRVUVyUkR0WlFVTXZSQ3hMUVVGTExFMUJRVTBzUzBGQlN5eEpRVUZKTEdGQlFXRTdaMEpCUVVVc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZaTEVOQlFVTXNRMEZCUXp0WlFVVjJSU3hKUVVGSkxHRkJRV0VzUjBGQlpTeEZRVUZGTEVOQlFVTTdXVUZEYmtNc1NVRkJTU3hQUVVGUExFTkJRVU1zV1VGQldTeEZRVUZGTEVOQlFVTTdaMEpCUTNwQ0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNlVVJCUVhsRUxFTkJRVU1zUTBGQlF6dG5Ra0ZEY0VVc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dG5Ra0ZEZUVRc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGRFRpdzBRa0ZCTkVJc1lVRkJZU3hEUVVGRExFMUJRVTBzZDBKQlFYZENMRU5CUTNwRkxFTkJRVU03V1VGRFNpeERRVUZETzFsQlJVUXNUVUZCVFN4alFVRmpMRWRCUVRCRExFVkJRVVVzUTBGQlF6dFpRVU5xUlN4SlFVRkpMRTlCUVU4c1EwRkJReXhaUVVGWkxFdEJRVXNzUzBGQlN5eEZRVUZGTEVOQlFVTTdaMEpCUTI1RExHTkJRV01zUTBGQlF5eHZRa0ZCYjBJc1IwRkJSeXhMUVVGTExFTkJRVU03V1VGRE9VTXNRMEZCUXp0WlFVVkVMRTFCUVUwc1YwRkJWeXhIUVVGSExHRkJRV0VzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVNNVF5eHRRa0ZCYlVJc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEU5QlFVOHNRMEZCUXl4blFrRkJaMElzUlVGQlJTeGpRVUZqTEVOQlFVTXNRMEZETlVVc1EwRkJRenRaUVVOR0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNZVUZCWVN4WFFVRlhMRU5CUVVNc1RVRkJUU3hqUVVGakxFTkJRVU1zUTBGQlF6dFpRVVY0UkN4UFFVRlBPMmRDUVVOTUxFMUJRVTBzUlVGQlJTeHJRa0ZCWjBJN1owSkJRM2hDTEZkQlFWYzdaMEpCUTFnc1UwRkJVeXhGUVVGRk8yOUNRVU5VTEVkQlFVY3NZVUZCWVR0cFFrRkRha0k3WVVGRFJpeERRVUZETzFGQlEwb3NRMEZCUXpzN1NVRjBSVWNzWjBKQlFXZENPMUZCUkhKQ0xFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTTdUMEZEVEN4blFrRkJaMElzUTBGMVJYSkNPMGxCUTBRc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hOUVVGTkxFVkJRVVU3VVVGRGRFTXNTMEZCU3l4RlFVRkZMR05CUVdNc1QwRkJUeXhGUVVGRk8wdEJReTlDTEVOQlFVTXNRMEZCUXp0SlFVTklMRTlCUVU4c1owSkJRV2RDTEVOQlFVTTdRVUZETVVJc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUVSNWJtRnRhV05OYjJSMWJHVXNJRTF2WkhWc1pTd2dVSEp2ZG1sa1pYSWdmU0JtY205dElGd2lRRzVsYzNScWN5OWpiMjF0YjI1Y0lqdGNibWx0Y0c5eWRDQjdJRUZrWVhCMFpYSXNJRTF2WkdWc1UyVnlkbWxqWlNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhzZ1RHOW5aMmx1WnlCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdmJHOW5aMmx1WjF3aU8xeHVhVzF3YjNKMElIc2dSbkp2YlUxdlpHVnNRMjl1ZEhKdmJHeGxjaUI5SUdaeWIyMGdYQ0l1TDBaeWIyMU5iMlJsYkVOdmJuUnliMnhzWlhKY0lqdGNibWx0Y0c5eWRDQjdJRVJsWTJGbVRXOWtkV3hsVDNCMGFXOXVjeUI5SUdaeWIyMGdYQ0l1TGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1RXOWtaV3dzSUUxdlpHVnNRMjl1YzNSeWRXTjBiM0lnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJ2Y2kxMllXeHBaR0YwYVc5dVhDSTdYRzVwYlhCdmNuUWdleUJOWlhSaFpHRjBZU0I5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdWamIzSmhkR2x2Ymx3aU8xeHVhVzF3YjNKMElIc2dSRVZEUVVaZlJWaFFUMU5GSUgwZ1puSnZiU0JjSWk0dUwyTnZibk4wWVc1MGMxd2lPMXh1YVcxd2IzSjBJSFI1Y0dVZ2V5Qk5iMlJsYkVOdmJuUnliMnhzWlhKR1lXTjBiM0o1UTI5dVptbG5JSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTltYjNJdGFIUjBjQzl6WlhKMlpYSmNJanRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRFMXZaSFZzWlVadmNpaG1iR0YyYjNWeU9pQnpkSEpwYm1jcElIdGNiaUFnUUUxdlpIVnNaU2g3ZlNsY2JpQWdZMnhoYzNNZ1JHVmpZV1pOYjJSbGJFMXZaSFZzWlNCN1hHNGdJQ0FnYzNSaGRHbGpJSEpsWVdSdmJteDVJR3h2WnlBOUlFeHZaMmRwYm1jdVptOXlLRVJsWTJGbVRXOWtaV3hOYjJSMWJHVXVibUZ0WlNrdVptOXlLR1pzWVhadmRYSXBPMXh1WEc0Z0lDQWdjM1JoZEdsaklHTnlaV0YwWlUxdlpHVnNVMlZ5ZG1salpYTThWQ0JsZUhSbGJtUnpJRTF2WkdWc1BHSnZiMnhsWVc0K1BpaGNiaUFnSUNBZ0lHMXZaR1ZzY3pvZ1RXOWtaV3hEYjI1emRISjFZM1J2Y2p4VVBsdGRYRzRnSUNBZ0tUb2dVSEp2ZG1sa1pYSmJYU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiVzlrWld4ekxtMWhjQ2dvYlc5a1pXd3BJRDArSUNoN1hHNGdJQ0FnSUNBZ0lIQnliM1pwWkdVNklHQWtlMjF2WkdWc0xtNWhiV1Y5VTJWeWRtbGpaV0FzWEc0Z0lDQWdJQ0FnSUhWelpVWmhZM1J2Y25rNklDZ3BJRDArSUUxdlpHVnNVMlZ5ZG1salpTNW1iM0pOYjJSbGJDaHRiMlJsYkNCaGN5QmhibmtwTEZ4dUlDQWdJQ0FnZlNrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhOMFlYUnBZeUJwYzBWNGNHOXpaV1FvWEc0Z0lDQWdJQ0J0YjJSbGJEb2dUVzlrWld4RGIyNXpkSEoxWTNSdmNqeGhibmsrTEZ4dUlDQWdJQ0FnWlhod2IzTjFjbVUvT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JpYjI5c1pXRnVJSHdnYzNSeWFXNW5XMTArWEc0Z0lDQWdLVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQnZkbVZ5Y21sa1pTQTlJR1Y0Y0c5emRYSmxQeTViYlc5a1pXd3VibUZ0WlYwN1hHNGdJQ0FnSUNCamIyNXpkQ0IyWVd4MVpTQTlYRzRnSUNBZ0lDQWdJSFI1Y0dWdlppQnZkbVZ5Y21sa1pTQWhQVDBnWENKMWJtUmxabWx1WldSY0lseHVJQ0FnSUNBZ0lDQWdJRDhnYjNabGNuSnBaR1ZjYmlBZ0lDQWdJQ0FnSUNBNklFMWxkR0ZrWVhSaExtZGxkQ2h0YjJSbGJDd2dUV1YwWVdSaGRHRXVhMlY1S0VSRlEwRkdYMFZZVUU5VFJTa3BPMXh1WEc0Z0lDQWdJQ0JwWmlBb2RIbHdaVzltSUhaaGJIVmxJRDA5UFNCY0luVnVaR1ZtYVc1bFpGd2lLU0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdJQ0FnSUdsbUlDaDJZV3gxWlNBOVBUMGdkSEoxWlNrZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ0lDQnBaaUFvUVhKeVlYa3VhWE5CY25KaGVTaDJZV3gxWlNrcElISmxkSFZ5YmlCMllXeDFaUzVwYm1Oc2RXUmxjeWhtYkdGMmIzVnlLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J6ZEdGMGFXTWdabTl5VW05dmRDaGNiaUFnSUNBZ0lHWnNZWFp2ZFhJNklITjBjbWx1Wnl4Y2JpQWdJQ0FnSUc5d2RHbHZibk02SUZCaGNuUnBZV3c4UkdWallXWk5iMlIxYkdWUGNIUnBiMjV6UGlBOUlIdDlYRzRnSUNBZ0tUb2dSSGx1WVcxcFkwMXZaSFZzWlNCN1hHNGdJQ0FnSUNCamIyNXpkQ0JzYjJjZ1BTQjBhR2x6TG14dlp5NW1iM0lvZEdocGN5NW1iM0pTYjI5MEtUdGNiaUFnSUNBZ0lHeHZaeTVwYm1adktHQkhaVzVsY21GMGFXNW5JR052Ym5SeWIyeHNaWEp6SUdadmNpQm1iR0YyYjNWeUxpNHVZQ2s3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJSFJ5WVdOclpXUk5iMlJsYkhNZ1BTQkJaR0Z3ZEdWeUxtMXZaR1ZzY3lobWJHRjJiM1Z5S1M1bWFXeDBaWElvS0cxdlpHVnNLU0E5UGx4dUlDQWdJQ0FnSUNCMGFHbHpMbWx6Ulhod2IzTmxaQ2h0YjJSbGJDd2diM0IwYVc5dWN5NWpiMjUwY205c2JHVnlSWGh3YjNOMWNtVXBYRzRnSUNBZ0lDQXBPMXh1WEc0Z0lDQWdJQ0F2THlCRGIyNTBjbTlzYkdWeWN5QmhiSGRoZVhNZ2NtVnNlU0J2YmlCaElHSmhZMnRwYm1jZ1RXOWtaV3hUWlhKMmFXTmxMQ0JsZG1WdUlIZG9aVzRnVG1WemRDQndjbTkyYVdSbGNuTmNiaUFnSUNBZ0lDOHZJR0Z5WlNCdWIzUWdZWFYwYnkxeVpXZHBjM1JsY21Wa0xpQlhZWEp0SUhSb1pTQnphVzVuYkdWMGIyNGdjbVZuYVhOMGNua2dhR1Z5WlNCemJ5QnphSFYwWkc5M2JpQmpZVzVjYmlBZ0lDQWdJQzh2SUhObFpTQjBhR1VnYkdsMlpTQnpaWEoyYVdObGN5QmpjbVZoZEdWa0lHWnZjaUIwYUdVZ1oyVnVaWEpoZEdWa0lHTnZiblJ5YjJ4c1pYSnpMbHh1SUNBZ0lDQWdabTl5SUNoamIyNXpkQ0J0YjJSbGJDQnZaaUIwY21GamEyVmtUVzlrWld4ektTQk5iMlJsYkZObGNuWnBZMlV1Wm05eVRXOWtaV3dvYlc5a1pXd2dZWE1nWVc1NUtUdGNibHh1SUNBZ0lDQWdiR1YwSUcxdlpHVnNVMlZ5ZG1salpYTTZJRkJ5YjNacFpHVnlXMTBnUFNCYlhUdGNiaUFnSUNBZ0lHbG1JQ2h2Y0hScGIyNXpMbUYxZEc5VFpYSjJhV05sY3lrZ2UxeHVJQ0FnSUNBZ0lDQnNiMmN1YVc1bWJ5aGNJa0YxZEc4dGMyVnlkbWxqWlhNZ1pXNWhZbXhsWkM0Z1NXNXBkR2xoYkdsNmFXNW5JSE5sY25acFkyVWdaMlZ1WlhKaGRHbHZiaTVjSWlrN1hHNGdJQ0FnSUNBZ0lHMXZaR1ZzVTJWeWRtbGpaWE1nUFNCMGFHbHpMbU55WldGMFpVMXZaR1ZzVTJWeWRtbGpaWE1vZEhKaFkydGxaRTF2WkdWc2N5azdYRzRnSUNBZ0lDQWdJR3h2Wnk1cGJtWnZLRnh1SUNBZ0lDQWdJQ0FnSUdCQmRYUnZMWE5sY25acFkyVnpJR052YlhCc1pYUmxaQzRnSkh0dGIyUmxiRk5sY25acFkyVnpMbXhsYm1kMGFIMGdjMlZ5ZG1salpYTWdhVzVwZEdsaGJHbDZaV1F1WUZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmpiMjV6ZENCbmJHOWlZV3hFWldaaGRXeDBjem9nVUdGeWRHbGhiRHhOYjJSbGJFTnZiblJ5YjJ4c1pYSkdZV04wYjNKNVEyOXVabWxuUGlBOUlIdDlPMXh1SUNBZ0lDQWdhV1lnS0c5d2RHbHZibk11WVdkbmNtVm5ZWFJwYjI1eklEMDlQU0JtWVd4elpTa2dlMXh1SUNBZ0lDQWdJQ0JuYkc5aVlXeEVaV1poZFd4MGN5NWhiR3h2ZDBkeWIzVndhVzVuVVhWbGNtbGxjeUE5SUdaaGJITmxPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JqYjI1emRDQmpiMjUwY205c2JHVnljeUE5SUhSeVlXTnJaV1JOYjJSbGJITXViV0Z3S0NodGIyUmxiQ2tnUFQ1Y2JpQWdJQ0FnSUNBZ1JuSnZiVTF2WkdWc1EyOXVkSEp2Ykd4bGNpNWpjbVZoZEdVb2JXOWtaV3dzSUc5d2RHbHZibk11WTI5dWRISnZiR3hsY2tOdmJtWnBaeXdnWjJ4dlltRnNSR1ZtWVhWc2RITXBYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdiRzluTG1sdVptOG9ZRWRsYm1WeVlYUmxaQ0FrZTJOdmJuUnliMnhzWlhKekxteGxibWQwYUgwZ1kyOXVkSEp2Ykd4bGNuTmdLVHRjYmx4dUlDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnYlc5a2RXeGxPaUJFWldOaFprMXZaR1ZzVFc5a2RXeGxMRnh1SUNBZ0lDQWdJQ0JqYjI1MGNtOXNiR1Z5Y3l4Y2JpQWdJQ0FnSUNBZ2NISnZkbWxrWlhKek9pQmJYRzRnSUNBZ0lDQWdJQ0FnTGk0dWJXOWtaV3hUWlhKMmFXTmxjeXhjYmlBZ0lDQWdJQ0FnWFN4Y2JpQWdJQ0FnSUgwN1hHNGdJQ0FnZlZ4dUlDQjlYRzRnSUU5aWFtVmpkQzVoYzNOcFoyNG9SR1ZqWVdaTmIyUmxiRTF2WkhWc1pTd2dYQ0p1WVcxbFhDSXNJSHRjYmlBZ0lDQjJZV3gxWlRvZ1lFUmxZMkZtVFc5a2RXeGxKSHRtYkdGMmIzVnlmV0FzWEc0Z0lIMHBPMXh1SUNCeVpYUjFjbTRnUkdWallXWk5iMlJsYkUxdlpIVnNaVHRjYm4xY2JpSmRmUT09Il19
|