@posiwise/common-services 0.1.48 → 0.1.49
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.
|
@@ -128,7 +128,6 @@ export class PermissionService {
|
|
|
128
128
|
}
|
|
129
129
|
// eslint-disable-next-line no-eval
|
|
130
130
|
// NOSONAR: Trusted eval function is handled safely here
|
|
131
|
-
console.log('eval(expr)', eval(expr));
|
|
132
131
|
return eval(expr); // NOSONAR
|
|
133
132
|
}
|
|
134
133
|
getPermissionByRole(roleId) {
|
|
@@ -212,4 +211,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
212
211
|
providedIn: 'root'
|
|
213
212
|
}]
|
|
214
213
|
}], ctorParameters: () => [{ type: i1.MainApiHttpService }] });
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24tc2VydmljZXMvc3JjL2xpYi9wZXJtaXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFFbkMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUs3RCxNQUFNLE9BQU8saUJBQWlCO0lBUzFCLFlBQTZCLEdBQXVCO1FBQXZCLFFBQUcsR0FBSCxHQUFHLENBQW9CO1FBRnBELFNBQUksR0FBUyxJQUFJLENBQUM7SUFFcUMsQ0FBQztJQUV4RCxzQkFBc0IsQ0FBQyxZQUFZO1FBQy9CLGlCQUFpQixDQUFDLG9CQUFvQixHQUFHLFlBQVksQ0FBQztJQUMxRCxDQUFDO0lBRUQsU0FBUyxDQUFDLGNBQXNCLEVBQUUsVUFBVSxHQUFHLElBQUksRUFBRSxjQUFjLEdBQUcsSUFBSSxFQUFFLFdBQVcsR0FBRyxJQUFJO1FBQzFGLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztZQUV0QixzQ0FBc0M7WUFDdEMseUJBQXlCO1lBQ3pCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixNQUFNLGVBQWUsR0FBRyxpQkFBaUIsRUFBRSxlQUFlLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENB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LGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztZQUN0QyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsaUJBQWlCO1NBQy9DLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVNLGlCQUFpQjtRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7K0dBelFRLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmQsTUFBTTs7NEZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5pbXBvcnQgcGlja0J5IGZyb20gJ2xvZGFzaC9waWNrQnknO1xuXG5pbXBvcnQgeyBBRE1JTl9TVUJfTUVOVV9XSElURUxJU1QsIFBFUk1JU1NJT05fTkFNRVMsIFVzZXIgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBNYWluQXBpSHR0cFNlcnZpY2UgfSBmcm9tICcuL21haW4tYXBpLWh0dHAuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvblNlcnZpY2Uge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgc3RhdGljIHNlbGVjdGVkUHJvZHVjdDogYW55OyAvLyBOT1NPTkFSXG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHN0YXRpYyBzZWxlY3RlZFN1YnNjcmlwdGlvbjogYW55OyAvLyBOT1NPTkFSXG5cbiAgICB1c2VyOiBVc2VyID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXBpOiBNYWluQXBpSHR0cFNlcnZpY2UpIHt9XG5cbiAgICBzZXRDdXJyZW50U3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbikge1xuICAgICAgICBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFN1YnNjcmlwdGlvbiA9IHN1YnNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBpc0dyYW50ZWQocGVybWlzc2lvbk5hbWU6IHN0cmluZywgcHJvZHVjdEtleSA9IG51bGwsIHBlcm1pc3Npb25fa2V5ID0gbnVsbCwgcHJvZHVjdFNsdWcgPSBudWxsKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLnVzZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgdXNlciB9ID0gdGhpcztcblxuICAgICAgICAgICAgLy8gQWRtaW4gaGF2ZSBhY2Nlc3MgdG8gYWxsIHRoZSBtZW51cy5cbiAgICAgICAgICAgIC8vIEUuZy4sIFBhZ2VzLlN1cGVyQWRtaW5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzU3VwZXJBZG1pbigpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uTmFtZSkge1xuICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2R1Y3QgPSBQZXJtaXNzaW9uU2VydmljZT8uc2VsZWN0ZWRQcm9kdWN0IHx8IHRoaXMuZ2V0Q3VycmVudFByb2R1Y3QoKTtcbiAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uU2x1ZyA9IHNlbGVjdGVkUHJvZHVjdD8uc3Vic2NyaXB0aW9uX3NsdWc7XG5cbiAgICAgICAgICAgICAgbGV0IHNsdWdUb0NoZWNrO1xuICAgICAgICAgICAgICBpZiAoIXByb2R1Y3RTbHVnKSB7XG4gICAgICAgICAgICAgICAgIHNsdWdUb0NoZWNrID0gYFBhZ2VzLlByb2R1Y3QuJHtzdWJzY3JpcHRpb25TbHVnfS5gO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNsdWdUb0NoZWNrID0gcHJvZHVjdFNsdWdcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCFwZXJtaXNzaW9uTmFtZS5pbmNsdWRlcyhzbHVnVG9DaGVjaykpIHtcbiAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25OYW1lID0gcGVybWlzc2lvbk5hbWUucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgJ1BhZ2VzLlByb2R1Y3QuJyxcbiAgICAgICAgICAgICAgICAgICAgc2x1Z1RvQ2hlY2tcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBSZXR1cm5pbmcgdHJ1ZSBpZiB1c2VyIGhhcyBhIGdpdmVuIHBlcm1pc3Npb25cbiAgICAgICAgICAgIC8vIEUuZy4sIFBhZ2VzLlJvbGUuQ2xvdWRPbGl2ZS5TYWxlc01hbmFnZXJcbiAgICAgICAgICAgIC8vIG9yIFBhZ2VzLkJldGEgb3IgUGFnZXMuQWxwaGFcbiAgICAgICAgICAgIGlmICh1c2VyWydhdXRoJ10/LlsnZ3JhbnRlZCddW3Blcm1pc3Npb25OYW1lXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChwcm9kdWN0S2V5KSB7XG4gICAgICAgICAgICAgICAgLy8gZmlsdGVycyB0aGUgcGVybWlzc2lvbiBvbmx5IGZvciB0aGUgc2VsZWN0ZWQgcHJvZHVjdC5cbiAgICAgICAgICAgICAgICBsZXQgZmlsdGVyZWRQZXJtaXNzaW9ucyA9IHBpY2tCeShcbiAgICAgICAgICAgICAgICAgICAgY2xvbmVEZWVwKHVzZXJbJ2F1dGgnXVsnZ3JhbnRlZCddKSxcbiAgICAgICAgICAgICAgICAgICAgKF92YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleS5pbmNsdWRlcyhwcm9kdWN0S2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgLy8gYWRkIFBhZ2VzLlByb2R1Y3Que3Blcm1pc3Npb25fa2V5fVxuICAgICAgICAgICAgICAgIGZpbHRlcmVkUGVybWlzc2lvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnsgW2BQYWdlcy5Qcm9kdWN0LiR7cGVybWlzc2lvbl9rZXl9YF06IHRydWUgfSxcbiAgICAgICAgICAgICAgICAgICAgLi4uZmlsdGVyZWRQZXJtaXNzaW9uc1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAvLyBFLmcuLCBQYWdlcy5Qcm9kdWN0LkNsb3VkT2xpdmUuQ2xvdWRPbGl2ZV9Nc3BLZXlcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWRQZXJtaXNzaW9uc1twZXJtaXNzaW9uTmFtZV0gfHwgZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIG5vIHZhbGlkIHBlcm1pc3Npb24gd2FzIGRldGVjdGVkIGZvciB0aGlzIHVzZXJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHVzZXIgbm90IGxvZ2dlZC1pblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0UGVybWlzc2lvblRyZWVEYXRhQnlSb2xlKGRhdGEpIHtcbiAgICAgICAgY29uc3QgcGVybWlzc2lvbnMgPSBbXTtcbiAgICAgICAgZGF0YS5hbGwuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgbmFtZSB9ID0gZWxlbWVudDtcbiAgICAgICAgICAgIHBlcm1pc3Npb25zLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiBlbGVtZW50LmlkLCAvLyBwZXJtaXNzaW9uSWQ6IFVzZWQgdG8gdXBkYXRlIHRoZSBwZXJtaXNzaW9ucyBvbiBjaGFuZ2VcbiAgICAgICAgICAgICAgICBwYXJlbnROYW1lOiBuYW1lLmluY2x1ZGVzKCcuJykgPyBuYW1lLnN1YnN0cmluZygwLCBuYW1lLmxhc3RJbmRleE9mKCcuJykpIDogbnVsbCxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBlbGVtZW50Lm5hbWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGVybWlzc2lvbnMsXG4gICAgICAgICAgICBncmFudGVkUGVybWlzc2lvbk5hbWVzOiBPYmplY3Qua2V5cyhkYXRhLmdyYW50ZWQpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZXZhbHVhdGVQZXJtaXNzaW9ucyhcbiAgICAgICAgcGVybWlzc2lvbjogc3RyaW5nLFxuICAgICAgICBwcm9kdWN0S2V5OiBzdHJpbmcgPSBudWxsLFxuICAgICAgICBwZXJtaXNzaW9uX2tleTogc3RyaW5nID0gbnVsbCxcbiAgICAgICAgcHJvZHVjdFNsdWc6IHN0cmluZyA9IG51bGxcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAtICAgYFN1cGVyQWRtaW5gICAgICAgICAgICAgID0+ICBHb2QtbGlrZSBwb3dlciAtIE1vc3QgcHJpdmlsZWdlZFxuXG4gICAgICAgIC8vIC0gICBgU3Vic2NyaXB0aW9uU3VwZXJPd25lcmAgPT4gIFNvbWUgb2YgdGhlIGZlYXR1cmVzIHVuZGVyIEFkbWluIE1lbnVcbiAgICAgICAgLy8gLSAgIGBTdWJzY3JpcHRpb25TdXBlckFkbWluYCA9PiAgU29tZSBvZiB0aGUgZmVhdHVyZXMgdW5kZXIgQWRtaW4gTWVudVxuXG4gICAgICAgIC8vIC0gICBgU3Vic2NyaXB0aW9uT3duZXJgICAgICA9PiBQcm9kdWN0IDogU2VjdGlvbiBvZiBhIGdpdmVuIHN1YnNjcmlwdGlvblxuICAgICAgICAvLyAtICAgYFN1YnNjcmlwdGlvbkFkbWluYCAgICAgPT4gUHJvZHVjdCA6IFNlY3Rpb24gb2YgYSBnaXZlbiBzdWJzY3JpcHRpb25cblxuICAgICAgICAvLyAtICAgYFBhZ2VzLkJldGFgICAgICAgICAgICAgPT4gUHJvZHVjdCA6IFNlY3Rpb24gb2YgdGhlIHBhZ2VcbiAgICAgICAgLy8gLSAgIGBQYWdlcy5BbHBoYWAgICAgICAgICAgID0+IFByb2R1Y3QgOiBTZWN0aW9uIG9mIHRoZSBwYWdlXG5cbiAgICAgICAgbGV0IGV4cHIgPSAnJztcbiAgICAgICAgaWYgKHBlcm1pc3Npb24gPT09IFBFUk1JU1NJT05fTkFNRVMuU3VwZXJBZG1pbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNTdXBlckFkbWluKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlcm1pc3Npb24gPT09IFBFUk1JU1NJT05fTkFNRVMuU3Vic2NyaXB0aW9uQWRtaW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzVXNlclN1YnNjcmlwdGlvbkFkbWluKCkgfHwgdGhpcy5pc1VzZXJTdWJzY3JpcHRpb25Pd25lcigpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwZXJtaXNzaW9uID09PSBQRVJNSVNTSU9OX05BTUVTLlN1YnNjcmlwdGlvbk93bmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc1VzZXJTdWJzY3JpcHRpb25Pd25lcigpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwZXJtaXNzaW9uID09PSBQRVJNSVNTSU9OX05BTUVTLlN1YnNjcmlwdGlvblN1cGVyQWRtaW4pIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgdGhpcy5pc1VzZXJTdWJzY3JpcHRpb25TdXBlckFkbWluKCkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmlzVXNlclN1YnNjcmlwdGlvblN1cGVyT3duZXIoKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuaXNTdXBlckFkbWluKClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlcm1pc3Npb24gPT09IFBFUk1JU1NJT05fTkFNRVMuU3Vic2NyaXB0aW9uU3VwZXJPd25lcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNVc2VyU3Vic2NyaXB0aW9uU3VwZXJPd25lcigpIHx8IHRoaXMuaXNTdXBlckFkbWluKCk7XG4gICAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICAgIHR5cGVvZiBwZXJtaXNzaW9uID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgQURNSU5fU1VCX01FTlVfV0hJVEVMSVNULnNvbWUodiA9PiBwZXJtaXNzaW9uLmluY2x1ZGVzKHYpKSAmJlxuICAgICAgICAgICh0aGlzLmlzVXNlclN1YnNjcmlwdGlvblN1cGVyQWRtaW4oKSB8fCB0aGlzLmlzVXNlclN1YnNjcmlwdGlvblN1cGVyT3duZXIoKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBldmFsdWF0ZXMgYSBjb21wbGV4IHBlcm1pc3Npb25cbiAgICAgICAgLy8gRWc6IGAoICR7QkFTSUNfUEVSTUlTU0lPTlMuTXNwS2V5fSB8fCAke0JBU0lDX1BFUk1JU1NJT05TLlNhYVNLZXl9ICkgJiYgJHtCQVNJQ19QRVJNSVNTSU9OUy5CZXRhfWBcbiAgICAgICAgaWYgKHR5cGVvZiBwZXJtaXNzaW9uICE9PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgIHBlcm1pc3Npb24uc3BsaXQoJyAnKS5mb3JFYWNoKHggPT4ge1xuICAgICAgICAgICAgbGV0IHJhdyA9IHg7XG4gICAgICAgICAgICBpZiAoeC5pbmNsdWRlcygnUGFnZXMnKSkge1xuICAgICAgICAgICAgICBpZiAocHJvZHVjdEtleSkge1xuICAgICAgICAgICAgICAgIHJhdyA9IGB0aGlzLmlzR3JhbnRlZCgnJHt4fScsICcke3Byb2R1Y3RLZXl9JywgJyR7cGVybWlzc2lvbl9rZXl9JywgJyR7cHJvZHVjdFNsdWd9JylgO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJhdyA9IGB0aGlzLmlzR3JhbnRlZCgnJHt4fScpYDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleHByICs9IGAke3Jhd30gYDtcbiAgICAgICAgICB9LCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXZhbFxuICAgICAgICAvLyBOT1NPTkFSOiBUcnVzdGVkIGV2YWwgZnVuY3Rpb24gaXMgaGFuZGxlZCBzYWZlbHkgaGVyZVxuICAgICAgICBjb25zb2xlLmxvZygnZXZhbChleHByKScsIGV2YWwoZXhwcikpXG4gICAgICAgIHJldHVybiBldmFsKGV4cHIpOyAvLyBOT1NPTkFSXG4gICAgfVxuXG4gICAgZ2V0UGVybWlzc2lvbkJ5Um9sZShyb2xlSWQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0KGAvYWRtaW4vcm9sZV9wZXJtaXNzaW9ucy8ke3JvbGVJZH1gKTtcbiAgICB9XG5cbiAgICBzYXZlVXNlclBlcm1pc3Npb24ocGF5bG9hZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkucG9zdChgL2FkbWluL3JvbGVfcGVybWlzc2lvbnNgLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBkZXRlcm1pbmUgdXNlciBpcyBzdXBlcl9hZG1pbiB1c2luZyB1c2VyLmF1dGguZ3JhbnRlZFsnUGFnZXMuU3VwZXJBZG1pbiddXG4gICAgICovXG4gICAgaXNTdXBlckFkbWluKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnVzZXIuYXV0aC5ncmFudGVkWydQYWdlcy5TdXBlckFkbWluJ10gfHwgZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIEFueSBQcm9kdWN0IEFkbWluIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb2R1Y3QgYmVpbmcgbWFzdGVyIHByb2R1Y3Qgb3Igbm90LlxuICAgICAqL1xuICAgIHB1YmxpYyBpc1VzZXJTdWJzY3JpcHRpb25Pd25lcihwcm9kdWN0Pyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXByb2R1Y3QpIHtcbiAgICAgICAgICAgIHByb2R1Y3QgPSB0aGlzLmdldEN1cnJlbnRQcm9kdWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRQcm9kdWN0ID0gUGVybWlzc2lvblNlcnZpY2U/LnNlbGVjdGVkUHJvZHVjdDtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uU2x1ZyA9IHNlbGVjdGVkUHJvZHVjdD8uc3Vic2NyaXB0aW9uX3NsdWc7XG4gICAgICAgIHJldHVybiAhIXRoaXMudXNlci5hdXRoLmdyYW50ZWRbXG4gICAgICAgICAgICBgUGFnZXMuUHJvZHVjdC4ke3N1YnNjcmlwdGlvblNsdWd9LiR7cHJvZHVjdC5wZXJtaXNzaW9uX2tleX0uJHtwcm9kdWN0LmZlYXR1cmVfa2V5fS5TdWJzY3JpcHRpb25Pd25lcmBcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbnkgUHJvZHVjdCBBZG1pbiByZWdhcmRsZXNzIG9mIHRoZSBwcm9kdWN0IGJlaW5nIG1hc3RlciBwcm9kdWN0IG9yIG5vdC5cbiAgICAgKiAqcmJhY0FsbG93PVwiU3Vic2NyaXB0aW9uQWRtaW5cIlxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgcHVibGljIGlzVXNlclN1YnNjcmlwdGlvbkFkbWluKHByb2R1Y3Q/KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghcHJvZHVjdCkge1xuICAgICAgICAgICAgcHJvZHVjdCA9IHRoaXMuZ2V0Q3VycmVudFByb2R1Y3QoKTtcbiAgICAgICAgfVxuICAgICAgY29uc3Qgc2VsZWN0ZWRQcm9kdWN0ID0gUGVybWlzc2lvblNlcnZpY2U/LnNlbGVjdGVkUHJvZHVjdDtcbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvblNsdWcgPSBzZWxlY3RlZFByb2R1Y3Q/LnN1YnNjcmlwdGlvbl9zbHVnO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgISF0aGlzLnVzZXIuYXV0aC5ncmFudGVkW1xuICAgICAgICAgICAgICAgIGBQYWdlcy5Qcm9kdWN0LiR7c3Vic2NyaXB0aW9uU2x1Z30uJHtwcm9kdWN0LnBlcm1pc3Npb25fa2V5fS4ke3Byb2R1Y3QuZmVhdHVyZV9rZXl9LlN1YnNjcmlwdGlvbkFkbWluYFxuICAgICAgICAgICAgXSB8fFxuICAgICAgICAgICAgISF0aGlzLnVzZXIuYXV0aC5ncmFudGVkW1xuICAgICAgICAgICAgICAgIGBQYWdlcy5Qcm9kdWN0LiR7c3Vic2NyaXB0aW9uU2x1Z30uJHtwcm9kdWN0LnBlcm1pc3Npb25fa2V5fS4ke3Byb2R1Y3QuZmVhdHVyZV9rZXl9LlN1YnNjcmlwdGlvbk93bmVyYFxuICAgICAgICAgICAgXVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFueSBQcm9kdWN0IEFkbWluIG9mIHRoZSBwcm9kdWN0IGJlaW5nIHRoZSBtYXN0ZXIgcHJvZHVjdFxuICAgICAqL1xuICAgIGlzVXNlclN1YnNjcmlwdGlvblN1cGVyQWRtaW4ocHJvZHVjdD8pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFwcm9kdWN0KSB7XG4gICAgICAgICAgICBwcm9kdWN0ID0gdGhpcy5nZXRDdXJyZW50UHJvZHVjdCgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUHJvZHVjdCA9IFBlcm1pc3Npb25TZXJ2aWNlPy5zZWxlY3RlZFByb2R1Y3Q7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvblNsdWcgPSBzZWxlY3RlZFByb2R1Y3Q/LnN1YnNjcmlwdGlvbl9zbHVnO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgISF0aGlzLnVzZXIuYXV0aC5ncmFudGVkW1xuICAgICAgICAgICAgICAgIGBQYWdlcy5Qcm9kdWN0LiR7c3Vic2NyaXB0aW9uU2x1Z30uJHtwcm9kdWN0LnBlcm1pc3Npb25fa2V5fS4ke3Byb2R1Y3QuZmVhdHVyZV9rZXl9LlN1YnNjcmlwdGlvblN1cGVyQWRtaW5gXG4gICAgICAgICAgICBdIHx8XG4gICAgICAgICAgICAhIXRoaXMudXNlci5hdXRoLmdyYW50ZWRbXG4gICAgICAgICAgICAgICAgYFBhZ2VzLlByb2R1Y3QuJHtzdWJzY3JpcHRpb25TbHVnfS4ke3Byb2R1Y3QucGVybWlzc2lvbl9rZXl9LiR7cHJvZHVjdC5mZWF0dXJlX2tleX0uU3Vic2NyaXB0aW9uU3VwZXJPd25lcmBcbiAgICAgICAgICAgIF1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbnkgUHJvZHVjdCBBZG1pbiBvZiB0aGUgcHJvZHVjdCBiZWluZyB0aGUgbWFzdGVyIHByb2R1Y3RcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNVc2VyU3Vic2NyaXB0aW9uU3VwZXJPd25lcihwcm9kdWN0Pyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXByb2R1Y3QpIHtcbiAgICAgICAgICAgIHByb2R1Y3QgPSB0aGlzLmdldEN1cnJlbnRQcm9kdWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRQcm9kdWN0ID0gUGVybWlzc2lvblNlcnZpY2U/LnNlbGVjdGVkUHJvZHVjdDtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uU2x1ZyA9IHNlbGVjdGVkUHJvZHVjdD8uc3Vic2NyaXB0aW9uX3NsdWc7XG4gICAgICAgIHJldHVybiAhIXRoaXMudXNlci5hdXRoLmdyYW50ZWRbXG4gICAgICAgICAgICBgUGFnZXMuUHJvZHVjdC4ke3N1YnNjcmlwdGlvblNsdWd9LiR7cHJvZHVjdC5wZXJtaXNzaW9uX2tleX0uJHtwcm9kdWN0LmZlYXR1cmVfa2V5fS5TdWJzY3JpcHRpb25TdXBlck93bmVyYFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHNldEN1cnJlbnRQcm9kdWN0KHByb2R1Y3QpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXG4gICAgICAgICAgICAncHJvZHVjdCcsXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgaWQ6IHByb2R1Y3QuaWQsXG4gICAgICAgICAgICAgICAgcGVybWlzc2lvbl9rZXk6IHByb2R1Y3QucGVybWlzc2lvbl9rZXksXG4gICAgICAgICAgICAgICAgZmVhdHVyZV9rZXk6IHByb2R1Y3QuZmVhdHVyZV9rZXksXG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uSWQ6IHByb2R1Y3Quc3Vic2NyaXB0aW9uSWQsXG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uX3NsdWc6IHByb2R1Y3Quc3Vic2NyaXB0aW9uX3NsdWdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEN1cnJlbnRQcm9kdWN0KCkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncHJvZHVjdCcpKTtcbiAgICB9XG59XG4iXX0=
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24tc2VydmljZXMvc3JjL2xpYi9wZXJtaXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFFbkMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUs3RCxNQUFNLE9BQU8saUJBQWlCO0lBUzFCLFlBQTZCLEdBQXVCO1FBQXZCLFFBQUcsR0FBSCxHQUFHLENBQW9CO1FBRnBELFNBQUksR0FBUyxJQUFJLENBQUM7SUFFcUMsQ0FBQztJQUV4RCxzQkFBc0IsQ0FBQyxZQUFZO1FBQy9CLGlCQUFpQixDQUFDLG9CQUFvQixHQUFHLFlBQVksQ0FBQztJQUMxRCxDQUFDO0lBRUQsU0FBUyxDQUFDLGNBQXNCLEVBQUUsVUFBVSxHQUFHLElBQUksRUFBRSxjQUFjLEdBQUcsSUFBSSxFQUFFLFdBQVcsR0FBRyxJQUFJO1FBQzFGLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztZQUV0QixzQ0FBc0M7WUFDdEMseUJBQXlCO1lBQ3pCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixNQUFNLGVBQWUsR0FBRyxpQkFBaUIsRUFBRSxlQUFlLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENB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LENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVNLGlCQUFpQjtRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7K0dBdlFRLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmQsTUFBTTs7NEZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5pbXBvcnQgcGlja0J5IGZyb20gJ2xvZGFzaC9waWNrQnknO1xuXG5pbXBvcnQgeyBBRE1JTl9TVUJfTUVOVV9XSElURUxJU1QsIFBFUk1JU1NJT05fTkFNRVMsIFVzZXIgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBNYWluQXBpSHR0cFNlcnZpY2UgfSBmcm9tICcuL21haW4tYXBpLWh0dHAuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvblNlcnZpY2Uge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgc3RhdGljIHNlbGVjdGVkUHJvZHVjdDogYW55OyAvLyBOT1NPTkFSXG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHN0YXRpYyBzZWxlY3RlZFN1YnNjcmlwdGlvbjogYW55OyAvLyBOT1NPTkFSXG5cbiAgICB1c2VyOiBVc2VyID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXBpOiBNYWluQXBpSHR0cFNlcnZpY2UpIHt9XG5cbiAgICBzZXRDdXJyZW50U3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbikge1xuICAgICAgICBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFN1YnNjcmlwdGlvbiA9IHN1YnNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBpc0dyYW50ZWQocGVybWlzc2lvbk5hbWU6IHN0cmluZywgcHJvZHVjdEtleSA9IG51bGwsIHBlcm1pc3Npb25fa2V5ID0gbnVsbCwgcHJvZHVjdFNsdWcgPSBudWxsKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLnVzZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgdXNlciB9ID0gdGhpcztcblxuICAgICAgICAgICAgLy8gQWRtaW4gaGF2ZSBhY2Nlc3MgdG8gYWxsIHRoZSBtZW51cy5cbiAgICAgICAgICAgIC8vIEUuZy4sIFBhZ2VzLlN1cGVyQWRtaW5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzU3VwZXJBZG1pbigpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uTmFtZSkge1xuICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2R1Y3QgPSBQZXJtaXNzaW9uU2VydmljZT8uc2VsZWN0ZWRQcm9kdWN0IHx8IHRoaXMuZ2V0Q3VycmVudFByb2R1Y3QoKTtcbiAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uU2x1ZyA9IHNlbGVjdGVkUHJvZHVjdD8uc3Vic2NyaXB0aW9uX3NsdWc7XG5cbiAgICAgICAgICAgICAgbGV0IHNsdWdUb0NoZWNrO1xuICAgICAgICAgICAgICBpZiAoIXByb2R1Y3RTbHVnKSB7XG4gICAgICAgICAgICAgICAgIHNsdWdUb0NoZWNrID0gYFBhZ2VzLlByb2R1Y3QuJHtzdWJzY3JpcHRpb25TbHVnfS5gO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNsdWdUb0NoZWNrID0gcHJvZHVjdFNsdWdcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCFwZXJtaXNzaW9uTmFtZS5pbmNsdWRlcyhzbHVnVG9DaGVjaykpIHtcbiAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25OYW1lID0gcGVybWlzc2lvbk5hbWUucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgJ1BhZ2VzLlByb2R1Y3QuJyxcbiAgICAgICAgICAgICAgICAgICAgc2x1Z1RvQ2hlY2tcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBSZXR1cm5pbmcgdHJ1ZSBpZiB1c2VyIGhhcyBhIGdpdmVuIHBlcm1pc3Npb25cbiAgICAgICAgICAgIC8vIEUuZy4sIFBhZ2VzLlJvbGUuQ2xvdWRPbGl2ZS5TYWxlc01hbmFnZXJcbiAgICAgICAgICAgIC8vIG9yIFBhZ2VzLkJldGEgb3IgUGFnZXMuQWxwaGFcbiAgICAgICAgICAgIGlmICh1c2VyWydhdXRoJ10/LlsnZ3JhbnRlZCddW3Blcm1pc3Npb25OYW1lXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChwcm9kdWN0S2V5KSB7XG4gICAgICAgICAgICAgICAgLy8gZmlsdGVycyB0aGUgcGVybWlzc2lvbiBvbmx5IGZvciB0aGUgc2VsZWN0ZWQgcHJvZHVjdC5cbiAgICAgICAgICAgICAgICBsZXQgZmlsdGVyZWRQZXJtaXNzaW9ucyA9IHBpY2tCeShcbiAgICAgICAgICAgICAgICAgICAgY2xvbmVEZWVwKHVzZXJbJ2F1dGgnXVsnZ3JhbnRlZCddKSxcbiAgICAgICAgICAgICAgICAgICAgKF92YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleS5pbmNsdWRlcyhwcm9kdWN0S2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgLy8gYWRkIFBhZ2VzLlByb2R1Y3Que3Blcm1pc3Npb25fa2V5fVxuICAgICAgICAgICAgICAgIGZpbHRlcmVkUGVybWlzc2lvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnsgW2BQYWdlcy5Qcm9kdWN0LiR7cGVybWlzc2lvbl9rZXl9YF06IHRydWUgfSxcbiAgICAgICAgICAgICAgICAgICAgLi4uZmlsdGVyZWRQZXJtaXNzaW9uc1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAvLyBFLmcuLCBQYWdlcy5Qcm9kdWN0LkNsb3VkT2xpdmUuQ2xvdWRPbGl2ZV9Nc3BLZXlcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWRQZXJtaXNzaW9uc1twZXJtaXNzaW9uTmFtZV0gfHwgZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIG5vIHZhbGlkIHBlcm1pc3Npb24gd2FzIGRldGVjdGVkIGZvciB0aGlzIHVzZXJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHVzZXIgbm90IGxvZ2dlZC1pblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0UGVybWlzc2lvblRyZWVEYXRhQnlSb2xlKGRhdGEpIHtcbiAgICAgICAgY29uc3QgcGVybWlzc2lvbnMgPSBbXTtcbiAgICAgICAgZGF0YS5hbGwuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgbmFtZSB9ID0gZWxlbWVudDtcbiAgICAgICAgICAgIHBlcm1pc3Npb25zLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiBlbGVtZW50LmlkLCAvLyBwZXJtaXNzaW9uSWQ6IFVzZWQgdG8gdXBkYXRlIHRoZSBwZXJtaXNzaW9ucyBvbiBjaGFuZ2VcbiAgICAgICAgICAgICAgICBwYXJlbnROYW1lOiBuYW1lLmluY2x1ZGVzKCcuJykgPyBuYW1lLnN1YnN0cmluZygwLCBuYW1lLmxhc3RJbmRleE9mKCcuJykpIDogbnVsbCxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBlbGVtZW50Lm5hbWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGVybWlzc2lvbnMsXG4gICAgICAgICAgICBncmFudGVkUGVybWlzc2lvbk5hbWVzOiBPYmplY3Qua2V5cyhkYXRhLmdyYW50ZWQpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZXZhbHVhdGVQZXJtaXNzaW9ucyhcbiAgICAgICAgcGVybWlzc2lvbjogc3RyaW5nLFxuICAgICAgICBwcm9kdWN0S2V5OiBzdHJpbmcgPSBudWxsLFxuICAgICAgICBwZXJtaXNzaW9uX2tleTogc3RyaW5nID0gbnVsbCxcbiAgICAgICAgcHJvZHVjdFNsdWc6IHN0cmluZyA9IG51bGxcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAtICAgYFN1cGVyQWRtaW5gICAgICAgICAgICAgID0+ICBHb2QtbGlrZSBwb3dlciAtIE1vc3QgcHJpdmlsZWdlZFxuXG4gICAgICAgIC8vIC0gICBgU3Vic2NyaXB0aW9uU3VwZXJPd25lcmAgPT4gIFNvbWUgb2YgdGhlIGZlYXR1cmVzIHVuZGVyIEFkbWluIE1lbnVcbiAgICAgICAgLy8gLSAgIGBTdWJzY3JpcHRpb25TdXBlckFkbWluYCA9PiAgU29tZSBvZiB0aGUgZmVhdHVyZXMgdW5kZXIgQWRtaW4gTWVudVxuXG4gICAgICAgIC8vIC0gICBgU3Vic2NyaXB0aW9uT3duZXJgICAgICA9PiBQcm9kdWN0IDogU2VjdGlvbiBvZiBhIGdpdmVuIHN1YnNjcmlwdGlvblxuICAgICAgICAvLyAtICAgYFN1YnNjcmlwdGlvbkFkbWluYCAgICAgPT4gUHJvZHVjdCA6IFNlY3Rpb24gb2YgYSBnaXZlbiBzdWJzY3JpcHRpb25cblxuICAgICAgICAvLyAtICAgYFBhZ2VzLkJldGFgICAgICAgICAgICAgPT4gUHJvZHVjdCA6IFNlY3Rpb24gb2YgdGhlIHBhZ2VcbiAgICAgICAgLy8gLSAgIGBQYWdlcy5BbHBoYWAgICAgICAgICAgID0+IFByb2R1Y3QgOiBTZWN0aW9uIG9mIHRoZSBwYWdlXG5cbiAgICAgICAgbGV0IGV4cHIgPSAnJztcbiAgICAgICAgaWYgKHBlcm1pc3Npb24gPT09IFBFUk1JU1NJT05fTkFNRVMuU3VwZXJBZG1pbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNTdXBlckFkbWluKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlcm1pc3Npb24gPT09IFBFUk1JU1NJT05fTkFNRVMuU3Vic2NyaXB0aW9uQWRtaW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzVXNlclN1YnNjcmlwdGlvbkFkbWluKCkgfHwgdGhpcy5pc1VzZXJTdWJzY3JpcHRpb25Pd25lcigpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwZXJtaXNzaW9uID09PSBQRVJNSVNTSU9OX05BTUVTLlN1YnNjcmlwdGlvbk93bmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc1VzZXJTdWJzY3JpcHRpb25Pd25lcigpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwZXJtaXNzaW9uID09PSBQRVJNSVNTSU9OX05BTUVTLlN1YnNjcmlwdGlvblN1cGVyQWRtaW4pIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgdGhpcy5pc1VzZXJTdWJzY3JpcHRpb25TdXBlckFkbWluKCkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmlzVXNlclN1YnNjcmlwdGlvblN1cGVyT3duZXIoKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuaXNTdXBlckFkbWluKClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlcm1pc3Npb24gPT09IFBFUk1JU1NJT05fTkFNRVMuU3Vic2NyaXB0aW9uU3VwZXJPd25lcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNVc2VyU3Vic2NyaXB0aW9uU3VwZXJPd25lcigpIHx8IHRoaXMuaXNTdXBlckFkbWluKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdHlwZW9mIHBlcm1pc3Npb24gPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgIEFETUlOX1NVQl9NRU5VX1dISVRFTElTVC5zb21lKHYgPT4gcGVybWlzc2lvbi5pbmNsdWRlcyh2KSkgJiZcbiAgICAgICAgICAgICh0aGlzLmlzVXNlclN1YnNjcmlwdGlvblN1cGVyQWRtaW4oKSB8fCB0aGlzLmlzVXNlclN1YnNjcmlwdGlvblN1cGVyT3duZXIoKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgZXZhbHVhdGVzIGEgY29tcGxleCBwZXJtaXNzaW9uXG4gICAgICAgIC8vIEVnOiBgKCAke0JBU0lDX1BFUk1JU1NJT05TLk1zcEtleX0gfHwgJHtCQVNJQ19QRVJNSVNTSU9OUy5TYWFTS2V5fSApICYmICR7QkFTSUNfUEVSTUlTU0lPTlMuQmV0YX1gXG4gICAgICBpZiAodHlwZW9mIHBlcm1pc3Npb24gIT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgIHBlcm1pc3Npb24uc3BsaXQoJyAnKS5mb3JFYWNoKHggPT4ge1xuICAgICAgICAgICAgbGV0IHJhdyA9IHg7XG4gICAgICAgICAgICBpZiAoeC5pbmNsdWRlcygnUGFnZXMnKSkge1xuICAgICAgICAgICAgICAgIGlmIChwcm9kdWN0S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHJhdyA9IGB0aGlzLmlzR3JhbnRlZCgnJHt4fScsICcke3Byb2R1Y3RLZXl9JywgJyR7cGVybWlzc2lvbl9rZXl9JywgJyR7cHJvZHVjdFNsdWd9JylgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJhdyA9IGB0aGlzLmlzR3JhbnRlZCgnJHt4fScpYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGV4cHIgKz0gYCR7cmF3fSBgO1xuICAgICAgICB9LCB0aGlzKTtcbiAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV2YWxcbiAgICAgICAgLy8gTk9TT05BUjogVHJ1c3RlZCBldmFsIGZ1bmN0aW9uIGlzIGhhbmRsZWQgc2FmZWx5IGhlcmVcbiAgICAgICAgcmV0dXJuIGV2YWwoZXhwcik7IC8vIE5PU09OQVJcbiAgICB9XG5cbiAgICBnZXRQZXJtaXNzaW9uQnlSb2xlKHJvbGVJZDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXQoYC9hZG1pbi9yb2xlX3Blcm1pc3Npb25zLyR7cm9sZUlkfWApO1xuICAgIH1cblxuICAgIHNhdmVVc2VyUGVybWlzc2lvbihwYXlsb2FkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5wb3N0KGAvYWRtaW4vcm9sZV9wZXJtaXNzaW9uc2AsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGRldGVybWluZSB1c2VyIGlzIHN1cGVyX2FkbWluIHVzaW5nIHVzZXIuYXV0aC5ncmFudGVkWydQYWdlcy5TdXBlckFkbWluJ11cbiAgICAgKi9cbiAgICBpc1N1cGVyQWRtaW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudXNlci5hdXRoLmdyYW50ZWRbJ1BhZ2VzLlN1cGVyQWRtaW4nXSB8fCBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgQW55IFByb2R1Y3QgQWRtaW4gcmVnYXJkbGVzcyBvZiB0aGUgcHJvZHVjdCBiZWluZyBtYXN0ZXIgcHJvZHVjdCBvciBub3QuXG4gICAgICovXG4gICAgcHVibGljIGlzVXNlclN1YnNjcmlwdGlvbk93bmVyKHByb2R1Y3Q/KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghcHJvZHVjdCkge1xuICAgICAgICAgICAgcHJvZHVjdCA9IHRoaXMuZ2V0Q3VycmVudFByb2R1Y3QoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZWxlY3RlZFByb2R1Y3QgPSBQZXJtaXNzaW9uU2VydmljZT8uc2VsZWN0ZWRQcm9kdWN0O1xuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25TbHVnID0gc2VsZWN0ZWRQcm9kdWN0Py5zdWJzY3JpcHRpb25fc2x1ZztcbiAgICAgICAgcmV0dXJuICEhdGhpcy51c2VyLmF1dGguZ3JhbnRlZFtcbiAgICAgICAgICAgIGBQYWdlcy5Qcm9kdWN0LiR7c3Vic2NyaXB0aW9uU2x1Z30uJHtwcm9kdWN0LnBlcm1pc3Npb25fa2V5fS4ke3Byb2R1Y3QuZmVhdHVyZV9rZXl9LlN1YnNjcmlwdGlvbk93bmVyYFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFueSBQcm9kdWN0IEFkbWluIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb2R1Y3QgYmVpbmcgbWFzdGVyIHByb2R1Y3Qgb3Igbm90LlxuICAgICAqICpyYmFjQWxsb3c9XCJTdWJzY3JpcHRpb25BZG1pblwiXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNVc2VyU3Vic2NyaXB0aW9uQWRtaW4ocHJvZHVjdD8pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFwcm9kdWN0KSB7XG4gICAgICAgICAgICBwcm9kdWN0ID0gdGhpcy5nZXRDdXJyZW50UHJvZHVjdCgpO1xuICAgICAgICB9XG4gICAgICBjb25zdCBzZWxlY3RlZFByb2R1Y3QgPSBQZXJtaXNzaW9uU2VydmljZT8uc2VsZWN0ZWRQcm9kdWN0O1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uU2x1ZyA9IHNlbGVjdGVkUHJvZHVjdD8uc3Vic2NyaXB0aW9uX3NsdWc7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMudXNlci5hdXRoLmdyYW50ZWRbXG4gICAgICAgICAgICAgICAgYFBhZ2VzLlByb2R1Y3QuJHtzdWJzY3JpcHRpb25TbHVnfS4ke3Byb2R1Y3QucGVybWlzc2lvbl9rZXl9LiR7cHJvZHVjdC5mZWF0dXJlX2tleX0uU3Vic2NyaXB0aW9uQWRtaW5gXG4gICAgICAgICAgICBdIHx8XG4gICAgICAgICAgICAhIXRoaXMudXNlci5hdXRoLmdyYW50ZWRbXG4gICAgICAgICAgICAgICAgYFBhZ2VzLlByb2R1Y3QuJHtzdWJzY3JpcHRpb25TbHVnfS4ke3Byb2R1Y3QucGVybWlzc2lvbl9rZXl9LiR7cHJvZHVjdC5mZWF0dXJlX2tleX0uU3Vic2NyaXB0aW9uT3duZXJgXG4gICAgICAgICAgICBdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW55IFByb2R1Y3QgQWRtaW4gb2YgdGhlIHByb2R1Y3QgYmVpbmcgdGhlIG1hc3RlciBwcm9kdWN0XG4gICAgICovXG4gICAgaXNVc2VyU3Vic2NyaXB0aW9uU3VwZXJBZG1pbihwcm9kdWN0Pyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXByb2R1Y3QpIHtcbiAgICAgICAgICAgIHByb2R1Y3QgPSB0aGlzLmdldEN1cnJlbnRQcm9kdWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRQcm9kdWN0ID0gUGVybWlzc2lvblNlcnZpY2U/LnNlbGVjdGVkUHJvZHVjdDtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uU2x1ZyA9IHNlbGVjdGVkUHJvZHVjdD8uc3Vic2NyaXB0aW9uX3NsdWc7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMudXNlci5hdXRoLmdyYW50ZWRbXG4gICAgICAgICAgICAgICAgYFBhZ2VzLlByb2R1Y3QuJHtzdWJzY3JpcHRpb25TbHVnfS4ke3Byb2R1Y3QucGVybWlzc2lvbl9rZXl9LiR7cHJvZHVjdC5mZWF0dXJlX2tleX0uU3Vic2NyaXB0aW9uU3VwZXJBZG1pbmBcbiAgICAgICAgICAgIF0gfHxcbiAgICAgICAgICAgICEhdGhpcy51c2VyLmF1dGguZ3JhbnRlZFtcbiAgICAgICAgICAgICAgICBgUGFnZXMuUHJvZHVjdC4ke3N1YnNjcmlwdGlvblNsdWd9LiR7cHJvZHVjdC5wZXJtaXNzaW9uX2tleX0uJHtwcm9kdWN0LmZlYXR1cmVfa2V5fS5TdWJzY3JpcHRpb25TdXBlck93bmVyYFxuICAgICAgICAgICAgXVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFueSBQcm9kdWN0IEFkbWluIG9mIHRoZSBwcm9kdWN0IGJlaW5nIHRoZSBtYXN0ZXIgcHJvZHVjdFxuICAgICAqL1xuICAgIHB1YmxpYyBpc1VzZXJTdWJzY3JpcHRpb25TdXBlck93bmVyKHByb2R1Y3Q/KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghcHJvZHVjdCkge1xuICAgICAgICAgICAgcHJvZHVjdCA9IHRoaXMuZ2V0Q3VycmVudFByb2R1Y3QoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZWxlY3RlZFByb2R1Y3QgPSBQZXJtaXNzaW9uU2VydmljZT8uc2VsZWN0ZWRQcm9kdWN0O1xuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25TbHVnID0gc2VsZWN0ZWRQcm9kdWN0Py5zdWJzY3JpcHRpb25fc2x1ZztcbiAgICAgICAgcmV0dXJuICEhdGhpcy51c2VyLmF1dGguZ3JhbnRlZFtcbiAgICAgICAgICAgIGBQYWdlcy5Qcm9kdWN0LiR7c3Vic2NyaXB0aW9uU2x1Z30uJHtwcm9kdWN0LnBlcm1pc3Npb25fa2V5fS4ke3Byb2R1Y3QuZmVhdHVyZV9rZXl9LlN1YnNjcmlwdGlvblN1cGVyT3duZXJgXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgc2V0Q3VycmVudFByb2R1Y3QocHJvZHVjdCkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICAgICAgICdwcm9kdWN0JyxcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBpZDogcHJvZHVjdC5pZCxcbiAgICAgICAgICAgICAgICBwZXJtaXNzaW9uX2tleTogcHJvZHVjdC5wZXJtaXNzaW9uX2tleSxcbiAgICAgICAgICAgICAgICBmZWF0dXJlX2tleTogcHJvZHVjdC5mZWF0dXJlX2tleSxcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25JZDogcHJvZHVjdC5zdWJzY3JpcHRpb25JZCxcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25fc2x1ZzogcHJvZHVjdC5zdWJzY3JpcHRpb25fc2x1Z1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VycmVudFByb2R1Y3QoKSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdwcm9kdWN0JykpO1xuICAgIH1cbn1cbiJdfQ==
|