@sd-angular/core 1.2.77 → 1.2.80
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/bundles/sd-angular-core-api.umd.js +1 -1
- package/bundles/sd-angular-core-api.umd.js.map +1 -1
- package/bundles/sd-angular-core-api.umd.min.js +1 -1
- package/bundles/sd-angular-core-api.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-export.umd.js +20 -4
- package/bundles/sd-angular-core-export.umd.js.map +1 -1
- package/bundles/sd-angular-core-export.umd.min.js +1 -1
- package/bundles/sd-angular-core-export.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.js +254 -208
- package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
- package/esm2015/api/src/lib/api.service.js +2 -2
- package/esm2015/export/src/lib/export.service.js +8 -3
- package/esm2015/grid-material/src/lib/components/popup-export/popup-export.component.js +27 -15
- package/esm2015/grid-material/src/lib/grid-material.component.js +55 -29
- package/export/src/lib/export.service.d.ts +1 -1
- package/fesm2015/sd-angular-core-api.js +1 -1
- package/fesm2015/sd-angular-core-api.js.map +1 -1
- package/fesm2015/sd-angular-core-export.js +7 -2
- package/fesm2015/sd-angular-core-export.js.map +1 -1
- package/fesm2015/sd-angular-core-grid-material.js +80 -42
- package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
- package/grid-material/sd-angular-core-grid-material.metadata.json +1 -1
- package/grid-material/src/lib/components/popup-export/popup-export.component.d.ts +4 -1
- package/grid-material/src/lib/grid-material.component.d.ts +1 -0
- package/package.json +1 -1
- package/{sd-angular-core-1.2.77.tgz → sd-angular-core-1.2.80.tgz} +0 -0
|
@@ -124,7 +124,7 @@ export class SdApiService {
|
|
|
124
124
|
_defineParams.set(this, (request) => {
|
|
125
125
|
const rq = [];
|
|
126
126
|
for (const [key, value] of Object.entries(request)) {
|
|
127
|
-
if (value !== null && value !== undefined && value !== '') {
|
|
127
|
+
if (value !== null && value !== undefined && value !== '' && (value === null || value === void 0 ? void 0 : value.toString()) !== '') {
|
|
128
128
|
rq.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);
|
|
129
129
|
}
|
|
130
130
|
}
|
|
@@ -323,4 +323,4 @@ SdApiService.ctorParameters = () => [
|
|
|
323
323
|
{ type: SdCacheService },
|
|
324
324
|
{ type: SdTokenService }
|
|
325
325
|
];
|
|
326
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2FwaS8iLCJzb3VyY2VzIjpbInNyYy9saWIvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQXFCLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFLN0IsTUFBTSxPQUFPLFlBQVk7SUFxQnZCLFlBQ1UsVUFBc0IsRUFDVSxhQUFnQyxFQUNoRSxZQUE0QixFQUM1QixZQUE0QjtRQUg1QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ1Usa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hFLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUF4QjlCLGFBQVEsR0FBRyx1Q0FBdUMsQ0FBQztRQUUzRCxtQkFBVyxNQUFNLEVBQUMsQ0FBQyxPQUFPO1FBRTFCLHlCQUFpQixJQUFJLEVBQUMsQ0FBQyxLQUFLO1FBQzVCLGlC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U0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFaUSxVQUFVOzRDQW9DZCxNQUFNLFNBQUMsVUFBVSxjQUFHLFFBQVE7WUFoQ3hCLGNBQWM7WUFDZCxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IHRha2UsIHRpbWVvdXQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7IElBcGlDb25maWd1cmF0aW9uLCBBUElfQ09ORklHIH0gZnJvbSAnLi9hcGkubW9kZWwnO1xyXG5pbXBvcnQgeyBTZENhY2hlU2VydmljZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY2FjaGUnO1xyXG5pbXBvcnQgeyBTZFRva2VuU2VydmljZSB9IGZyb20gJy4vdG9rZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IGhhc2ggZnJvbSAnb2JqZWN0LWhhc2gnO1xyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RBcGlTZXJ2aWNlIHtcclxuICBwcml2YXRlIHVwbG9hZElkID0gJ1UxMThmZWZiMS0zMDg1LTQ2NDEtOGNiOC1mN2ZlNWMyOGY1MDknO1xyXG5cclxuICAjdGltZW91dCA9IDEyMDAwMDsgLy8gMTIwc1xyXG5cclxuICAjY2FjaGVEdXJhdGlvbiA9IDIwMDA7IC8vIDJzXHJcbiAgI2NhY2hlOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiB7XHJcbiAgICAgIGNyZWF0ZWREYXRlOiBEYXRlO1xyXG4gICAgICBzdWJqZWN0OiBTdWJqZWN0PGFueT47XHJcbiAgICAgIHJlc3BvbnNlPzoge1xyXG4gICAgICAgIHN0YXR1cz86ICdzdWNjZXNzJyB8ICdlcnJvcic7XHJcbiAgICAgICAgcmVzdWx0OiBhbnksXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9ID0ge307XHJcblxyXG4gIHByaXZhdGUgdHJhbnNsYXRlID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbj8udHJhbnNsYXRlKHZhbHVlKSB8fCB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxyXG4gICAgQEluamVjdChBUElfQ09ORklHKSBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbmZpZ3VyYXRpb246IElBcGlDb25maWd1cmF0aW9uLFxyXG4gICAgcHJpdmF0ZSBjYWNoZVNlcnZpY2U6IFNkQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2tlblNlcnZpY2U6IFNkVG9rZW5TZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBwb3N0ID0gYXN5bmMgPFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55LCBoZWFkZXJzPzogSHR0cEhlYWRlcnMsIG9wdGlvbnM/OiB7XHJcbiAgICByZXNwb25zZVR5cGU/OiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnO1xyXG4gIH0pOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzIHx8IHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnMoe1xyXG4gICAgICB1cmxcclxuICAgIH0pO1xyXG4gICAgbGV0IGhhc2hLZXkgPSB1dWlkLnY0KCk7XHJcbiAgICBpZiAoIShib2R5IGluc3RhbmNlb2YgRm9ybURhdGEpKSB7XHJcbiAgICAgIGhhc2hLZXkgPSBoYXNoKHtcclxuICAgICAgICB1cmwsXHJcbiAgICAgICAgaGVhZGVycyxcclxuICAgICAgICBib2R5XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLiNjYWNoZVtoYXNoS2V5XSB8fCBEYXRlLmFkZE1pbGlzZWNvbmRzKHRoaXMuI2NhY2hlW2hhc2hLZXldLmNyZWF0ZWREYXRlLCB0aGlzLiNjYWNoZUR1cmF0aW9uKSA8IG5ldyBEYXRlKCkpIHtcclxuICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0gPSB7XHJcbiAgICAgICAgY3JlYXRlZERhdGU6IG5ldyBEYXRlKCksXHJcbiAgICAgICAgc3ViamVjdDogbmV3IFN1YmplY3QoKSxcclxuICAgICAgfTtcclxuICAgICAgaWYgKG9wdGlvbnM/LnJlc3BvbnNlVHlwZSAmJiBvcHRpb25zLnJlc3BvbnNlVHlwZSAhPT0gJ2pzb24nKSB7XHJcbiAgICAgICAgdGhpcy5odHRwQ2xpZW50LnBvc3QoZW5jb2RlVVJJKHVybCksIGJvZHksIHtcclxuICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcclxuICAgICAgICAgIGhlYWRlcnMsXHJcbiAgICAgICAgICByZXNwb25zZVR5cGU6IG9wdGlvbnM/LnJlc3BvbnNlVHlwZSBhcyBhbnlcclxuICAgICAgICB9KS5waXBlKHRpbWVvdXQodGhpcy4jdGltZW91dCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgIHJlc3VsdDogcmVzXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5uZXh0KHJlcyk7XHJcbiAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXHJcbiAgICAgICAgICAgIHJlc3VsdDogZXJyXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5lcnJvcihlcnIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0KGVuY29kZVVSSSh1cmwpLCBib2R5LCB7XHJcbiAgICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxyXG4gICAgICAgICAgaGVhZGVyc1xyXG4gICAgICAgIH0pLnBpcGUodGltZW91dCh0aGlzLiN0aW1lb3V0KSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMub2spIHtcclxuICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgICAgcmVzdWx0OiByZXMuYm9keVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0Lm5leHQocmVzLmJvZHkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgIHJlc3VsdDogcmVzLmJvZHlcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5lcnJvcihyZXMuYm9keSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXHJcbiAgICAgICAgICAgIHJlc3VsdDogZXJyXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5lcnJvcihlcnIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2U/LnN0YXR1cykge1xyXG4gICAgICBpZiAodGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2U/LnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlLnJlc3VsdDtcclxuICAgICAgfVxyXG4gICAgICB0aHJvdyB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZS5yZXN1bHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuXHJcbiAgcG9zdENhY2hlID0gYXN5bmMgPFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55LCBvcHRpb25zPzoge1xyXG4gICAgY2FjaGVUeXBlPzogJ2RlZmF1bHQnIHwgJ3Nlc3Npb24nIHwgJ2xvY2FsJztcclxuICAgIGNhY2hlSG91cnM/OiBudW1iZXI7XHJcbiAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnM7XHJcbiAgfSk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG9wdGlvbnM/LmhlYWRlcnMgfHwgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycyh7XHJcbiAgICAgIHVybFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7IGdldCwgc2V0LCBoYXMgfSA9IHRoaXMuY2FjaGVTZXJ2aWNlLmNyZWF0ZSh7XHJcbiAgICAgIHVybCxcclxuICAgICAgaGVhZGVycyxcclxuICAgICAgYm9keVxyXG4gICAgfSwge1xyXG4gICAgICB0eXBlOiBvcHRpb25zPy5jYWNoZVR5cGUsXHJcbiAgICAgIGhvdXJzOiBvcHRpb25zPy5jYWNoZUhvdXJzXHJcbiAgICB9KTtcclxuICAgIGlmICghaGFzKCkpIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wb3N0KHVybCwgYm9keSwgb3B0aW9ucz8uaGVhZGVycyk7XHJcbiAgICAgIHNldChyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdldCgpO1xyXG4gIH1cclxuXHJcbiAgcHV0PFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55LCBoZWFkZXJzPzogSHR0cEhlYWRlcnMpOiBQcm9taXNlPFQ+IHtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzIHx8IHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnMoe1xyXG4gICAgICB1cmxcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLmh0dHBDbGllbnQucHV0KGVuY29kZVVSSSh1cmwpLCBib2R5LCB7XHJcbiAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcclxuICAgICAgICBoZWFkZXJzXHJcbiAgICAgIH0pLnBpcGUodGltZW91dCh0aGlzLiN0aW1lb3V0KSkudG9Qcm9taXNlKCkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQub2spIHtcclxuICAgICAgICAgIHJlc29sdmUocmVzdWx0LmJvZHkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LmJvZHkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSkuY2F0Y2goKGh0dHBFcnJvclJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHJlamVjdChodHRwRXJyb3JSZXNwb25zZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAjZGVmaW5lUGFyYW1zID0gKHJlcXVlc3Q6IGFueSkgPT4ge1xyXG4gICAgY29uc3QgcnEgPSBbXTtcclxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJlcXVlc3QpKSB7XHJcbiAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSAnJykge1xyXG4gICAgICAgIHJxLnB1c2goXHJcbiAgICAgICAgICBgJHtlbmNvZGVVUklDb21wb25lbnQoa2V5IGFzIHN0cmluZyl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KFxyXG4gICAgICAgICAgICB2YWx1ZSBhcyBzdHJpbmdcclxuICAgICAgICAgICl9YFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBgPyR7cnE/LmpvaW4oJyYnKX1gO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2l0aFBhcmFtcyA9IDxUID0gYW55Pih1cmw6IHN0cmluZywgcGFyYW1zOiBhbnksIG9wdGlvbnM/OiB7XHJcbiAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnMsXHJcbiAgICByZXNwb25zZVR5cGU/OiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnO1xyXG4gIH0pOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmdldChgJHt1cmx9JHt0aGlzLiNkZWZpbmVQYXJhbXMocGFyYW1zKX1gLCBvcHRpb25zPy5oZWFkZXJzLCB7IC4uLm9wdGlvbnMsIGVuY29kZVVSSTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRDYWNoZVdpdGhQYXJhbXMgPSA8VCA9IGFueT4odXJsOiBzdHJpbmcsIHBhcmFtczogYW55LCBoZWFkZXJzPzogSHR0cEhlYWRlcnMsIG9wdGlvbnM/OiB7XHJcbiAgICByZWxvYWQ/OiBib29sZWFuLFxyXG4gICAgY2FjaGVUeXBlPzogJ2RlZmF1bHQnIHwgJ3Nlc3Npb24nIHwgJ2xvY2FsJztcclxuICAgIGNhY2hlSG91cnM/OiBudW1iZXI7XHJcbiAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnM7XHJcbiAgfSk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2FjaGUoYCR7dXJsfSR7dGhpcy4jZGVmaW5lUGFyYW1zKHBhcmFtcyl9YCwgeyAuLi5vcHRpb25zLCBoZWFkZXJzLCBlbmNvZGVVUkk6IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0ID0gPFQgPSBhbnk+KHVybDogc3RyaW5nLCBoZWFkZXJzPzogSHR0cEhlYWRlcnMsIG9wdGlvbnM/OiB7XHJcbiAgICByZXNwb25zZVR5cGU/OiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnO1xyXG4gICAgZW5jb2RlVVJJPzogYm9vbGVhblxyXG4gIH0pOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzIHx8IHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnMoe1xyXG4gICAgICB1cmxcclxuICAgIH0pO1xyXG4gICAgY29uc3QgZW5jb2RlZFVybCA9IG9wdGlvbnM/LmVuY29kZVVSSSA9PT0gZmFsc2UgPyB1cmwgOiBlbmNvZGVVUkkodXJsKTtcclxuICAgIC8vIGNvbnN0IGhhc2hLZXkgPSBoYXNoKHtcclxuICAgIC8vICAgZW5jb2RlZFVybCxcclxuICAgIC8vICAgaGVhZGVyc1xyXG4gICAgLy8gfSk7XHJcbiAgICBjb25zdCBoYXNoS2V5ID0gaGFzaCh7XHJcbiAgICAgIGVuY29kZWRVcmwsXHJcbiAgICAgIGhlYWRlcnNcclxuICAgIH0pO1xyXG4gICAgaWYgKCF0aGlzLiNjYWNoZVtoYXNoS2V5XSB8fCBEYXRlLmFkZE1pbGlzZWNvbmRzKHRoaXMuI2NhY2hlW2hhc2hLZXldLmNyZWF0ZWREYXRlLCB0aGlzLiNjYWNoZUR1cmF0aW9uKSA8IG5ldyBEYXRlKCkpIHtcclxuICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0gPSB7XHJcbiAgICAgICAgY3JlYXRlZERhdGU6IG5ldyBEYXRlKCksXHJcbiAgICAgICAgc3ViamVjdDogbmV3IFN1YmplY3QoKVxyXG4gICAgICB9O1xyXG4gICAgICBpZiAob3B0aW9ucz8ucmVzcG9uc2VUeXBlICYmIG9wdGlvbnMucmVzcG9uc2VUeXBlICE9PSAnanNvbicpIHtcclxuICAgICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KGVuY29kZWRVcmwsIHsgb2JzZXJ2ZTogJ2JvZHknLCBoZWFkZXJzLCByZXNwb25zZVR5cGU6IG9wdGlvbnM/LnJlc3BvbnNlVHlwZSBhcyBhbnkgfSlcclxuICAgICAgICAgIC5waXBlKHRpbWVvdXQodGhpcy4jdGltZW91dCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgIHJlc3VsdDogcmVzXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QubmV4dChyZXMpO1xyXG4gICAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgIHJlc3VsdDogZXJyXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QuZXJyb3IoZXJyKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQoZW5jb2RlZFVybCwgeyBvYnNlcnZlOiAncmVzcG9uc2UnLCBoZWFkZXJzIH0pXHJcbiAgICAgICAgICAucGlwZSh0aW1lb3V0KHRoaXMuI3RpbWVvdXQpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzLm9rKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICAgIHJlc3VsdDogcmVzLmJvZHlcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QubmV4dChyZXMuYm9keSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXHJcbiAgICAgICAgICAgICAgICByZXN1bHQ6IHJlcy5ib2R5XHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0LmVycm9yKHJlcy5ib2R5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgIHJlc3VsdDogZXJyXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QuZXJyb3IoZXJyKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2U/LnN0YXR1cykge1xyXG4gICAgICBpZiAodGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2U/LnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlLnJlc3VsdDtcclxuICAgICAgfVxyXG4gICAgICB0aHJvdyB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZS5yZXN1bHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2FjaGUgPSBhc3luYyA8VCA9IGFueT4odXJsOiBzdHJpbmcsIG9wdGlvbnM/OiB7XHJcbiAgICByZWxvYWQ/OiBib29sZWFuLFxyXG4gICAgY2FjaGVUeXBlPzogJ2RlZmF1bHQnIHwgJ3Nlc3Npb24nIHwgJ2xvY2FsJztcclxuICAgIGNhY2hlSG91cnM/OiBudW1iZXI7XHJcbiAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnM7XHJcbiAgICBlbmNvZGVVUkk/OiBib29sZWFuXHJcbiAgfSk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG9wdGlvbnM/LmhlYWRlcnMgfHwgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycyh7XHJcbiAgICAgIHVybFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBlbmNvZGVkVXJsID0gb3B0aW9ucz8uZW5jb2RlVVJJID09PSBmYWxzZSA/IHVybCA6IGVuY29kZVVSSSh1cmwpO1xyXG4gICAgY29uc3QgeyBnZXQsIHNldCwgaGFzIH0gPSB0aGlzLmNhY2hlU2VydmljZS5jcmVhdGUoe1xyXG4gICAgICBlbmNvZGVkVXJsLFxyXG4gICAgICBoZWFkZXJzXHJcbiAgICB9LCB7XHJcbiAgICAgIHR5cGU6IG9wdGlvbnM/LmNhY2hlVHlwZSxcclxuICAgICAgaG91cnM6IG9wdGlvbnM/LmNhY2hlSG91cnNcclxuICAgIH0pO1xyXG4gICAgaWYgKCFoYXMoKSB8fCBvcHRpb25zPy5yZWxvYWQpIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5nZXQoZW5jb2RlZFVybCwgb3B0aW9ucz8uaGVhZGVycywgeyBlbmNvZGVVUkk6IGZhbHNlIH0pO1xyXG4gICAgICBzZXQocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuICAgIHJldHVybiBnZXQoKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZTxUID0gYW55Pih1cmw6IHN0cmluZywgaGVhZGVycz86IEh0dHBIZWFkZXJzKTogUHJvbWlzZTxUPiB7XHJcbiAgICBoZWFkZXJzID0gaGVhZGVycyB8fCB0aGlzLnRva2VuU2VydmljZS5jdXN0b21IZWFkZXJzKHtcclxuICAgICAgdXJsXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5odHRwQ2xpZW50LmRlbGV0ZShlbmNvZGVVUkkodXJsKSwgeyBvYnNlcnZlOiAncmVzcG9uc2UnLCBoZWFkZXJzIH0pXHJcbiAgICAgICAgLnBpcGUodGltZW91dCh0aGlzLiN0aW1lb3V0KSlcclxuICAgICAgICAudG9Qcm9taXNlKCkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5vaykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdC5ib2R5KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlamVjdChyZXN1bHQuYm9keSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkuY2F0Y2goKGh0dHBFcnJvclJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmVqZWN0KGh0dHBFcnJvclJlc3BvbnNlKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkU2luZ2xlID0gKHVybDogc3RyaW5nLCBvcHRpb24/OiB7XHJcbiAgICBleHRlbnNpb25zPzogc3RyaW5nW10sXHJcbiAgICBtYXhTaXplSW5NYj86IG51bWJlcixcclxuICAgIHZhbGlkYXRvcj86IChmaWxlTmFtZTogc3RyaW5nKSA9PiBzdHJpbmdcclxuICB9KTogUHJvbWlzZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIGlmICgkKGAjJHt0aGlzLnVwbG9hZElkfWApLmxlbmd0aCkge1xyXG4gICAgICAgICQoJ2JvZHknKS5jaGlsZHJlbihgIyR7dGhpcy51cGxvYWRJZH1gKS5yZW1vdmUoKTtcclxuICAgICAgfVxyXG4gICAgICAkKCdib2R5JykuYXBwZW5kKGA8aW5wdXQgaWQ9JyR7dGhpcy51cGxvYWRJZH0nIHN0eWxlPSdkaXNwbGF5OiBub25lJyB0eXBlPSdmaWxlJyAvPmApO1xyXG4gICAgICAkKGAjJHt0aGlzLnVwbG9hZElkfWApLm9uKCdjaGFuZ2UnLCAoZXZ0OiBhbnkpID0+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSBldnQudGFyZ2V0O1xyXG4gICAgICAgICAgY29uc3QgZmlsZVRvVXBsb2FkID0gdGFyZ2V0LmZpbGVzLml0ZW0oMCk7XHJcbiAgICAgICAgICB0aGlzLnVwbG9hZCh1cmwsIGZpbGVUb1VwbG9hZCwgb3B0aW9uKS50aGVuKHJlc29sdmUpLmNhdGNoKHJlamVjdCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgIHJlamVjdChlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgJChgIyR7dGhpcy51cGxvYWRJZH1gKS50cmlnZ2VyKCdjbGljaycpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWQgPSBhc3luYyAodXJsOiBzdHJpbmcsIGZpbGU6IEZpbGUsIG9wdGlvbj86IHtcclxuICAgIGV4dGVuc2lvbnM/OiBzdHJpbmdbXSxcclxuICAgIG1heFNpemVJbk1iPzogbnVtYmVyLFxyXG4gICAgdmFsaWRhdG9yPzogKGZpbGVOYW1lOiBzdHJpbmcpID0+IHN0cmluZ1xyXG4gIH0pID0+IHtcclxuICAgIGNvbnN0IGxhc3REb3QgPSBmaWxlLm5hbWUubGFzdEluZGV4T2YoJy4nKTtcclxuICAgIGlmIChsYXN0RG90ID09PSAtMSkge1xyXG4gICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGUoYEludmFsaWQgZmlsZSBleHRlbnNpb25gKTtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZXh0ZW5zaW9uID0gZmlsZS5uYW1lLnN1YnN0cmluZyhsYXN0RG90ICsgMSk7XHJcbiAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgIGlmIChvcHRpb24uZXh0ZW5zaW9ucz8ubGVuZ3RoICYmICFvcHRpb24uZXh0ZW5zaW9ucy5zb21lKGUgPT4gZS50b1VwcGVyQ2FzZSgpID09PSBleHRlbnNpb24udG9VcHBlckNhc2UoKSkpIHtcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gYFske2ZpbGUubmFtZX1dICR7dGhpcy50cmFuc2xhdGUoJ1VwbG9hZGVkIGZpbGUgaXMgbm90IG1hdGNoIGV4dGVuc2lvbicpfSAke29wdGlvbi5leHRlbnNpb25zLmpvaW4oJywgJyl9YDtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG9wdGlvbi5tYXhTaXplSW5NYiA+IDAgJiYgb3B0aW9uLm1heFNpemVJbk1iICogMTAyNCAqIDEwMjQgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gYFske2ZpbGUubmFtZX1dICR7dGhpcy50cmFuc2xhdGUoJ01heCBmaWxlIHNpemUnKX0gJHtvcHRpb24ubWF4U2l6ZUluTWJ9IE1ic2A7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChvcHRpb24udmFsaWRhdG9yICYmIG9wdGlvbi52YWxpZGF0b3IoZmlsZS5uYW1lKSkge1xyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBvcHRpb24udmFsaWRhdG9yKGZpbGUubmFtZSk7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUsIGZpbGUubmFtZSk7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wb3N0KHVybCwgZm9ybURhdGEpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
326
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2FwaS8iLCJzb3VyY2VzIjpbInNyYy9saWIvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQXFCLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFLN0IsTUFBTSxPQUFPLFlBQVk7SUFxQnZCLFlBQ1UsVUFBc0IsRUFDVSxhQUFnQyxFQUNoRSxZQUE0QixFQUM1QixZQUE0QjtRQUg1QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ1Usa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hFLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUF4QjlCLGFBQVEsR0FBRyx1Q0FBdUMsQ0FBQztRQUUzRCxtQkFBVyxNQUFNLEVBQUMsQ0FBQyxPQUFPO1FBRTFCLHlCQUFpQixJQUFJLEVBQUMsQ0FBQyxLQUFLO1FBQzVCLGlC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QzVCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7OztZQW5TRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVpRLFVBQVU7NENBb0NkLE1BQU0sU0FBQyxVQUFVLGNBQUcsUUFBUTtZQWhDeEIsY0FBYztZQUNkLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgdGFrZSwgdGltZW91dCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcclxuaW1wb3J0IHsgSUFwaUNvbmZpZ3VyYXRpb24sIEFQSV9DT05GSUcgfSBmcm9tICcuL2FwaS5tb2RlbCc7XHJcbmltcG9ydCB7IFNkQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jYWNoZSc7XHJcbmltcG9ydCB7IFNkVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi90b2tlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgaGFzaCBmcm9tICdvYmplY3QtaGFzaCc7XHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZEFwaVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgdXBsb2FkSWQgPSAnVTExOGZlZmIxLTMwODUtNDY0MS04Y2I4LWY3ZmU1YzI4ZjUwOSc7XHJcblxyXG4gICN0aW1lb3V0ID0gMTIwMDAwOyAvLyAxMjBzXHJcblxyXG4gICNjYWNoZUR1cmF0aW9uID0gMjAwMDsgLy8gMnNcclxuICAjY2FjaGU6IHtcclxuICAgIFtrZXk6IHN0cmluZ106IHtcclxuICAgICAgY3JlYXRlZERhdGU6IERhdGU7XHJcbiAgICAgIHN1YmplY3Q6IFN1YmplY3Q8YW55PjtcclxuICAgICAgcmVzcG9uc2U/OiB7XHJcbiAgICAgICAgc3RhdHVzPzogJ3N1Y2Nlc3MnIHwgJ2Vycm9yJztcclxuICAgICAgICByZXN1bHQ6IGFueSxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gPSB7fTtcclxuXHJcbiAgcHJpdmF0ZSB0cmFuc2xhdGUgPSAodmFsdWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uPy50cmFuc2xhdGUodmFsdWUpIHx8IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICBASW5qZWN0KEFQSV9DT05GSUcpIEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlndXJhdGlvbjogSUFwaUNvbmZpZ3VyYXRpb24sXHJcbiAgICBwcml2YXRlIGNhY2hlU2VydmljZTogU2RDYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRva2VuU2VydmljZTogU2RUb2tlblNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHBvc3QgPSBhc3luYyA8VCA9IGFueT4odXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIGhlYWRlcnM/OiBIdHRwSGVhZGVycywgb3B0aW9ucz86IHtcclxuICAgIHJlc3BvbnNlVHlwZT86ICdhcnJheWJ1ZmZlcicgfCAnYmxvYicgfCAnanNvbicgfCAndGV4dCc7XHJcbiAgfSk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgaGVhZGVycyA9IGhlYWRlcnMgfHwgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycyh7XHJcbiAgICAgIHVybFxyXG4gICAgfSk7XHJcbiAgICBsZXQgaGFzaEtleSA9IHV1aWQudjQoKTtcclxuICAgIGlmICghKGJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YSkpIHtcclxuICAgICAgaGFzaEtleSA9IGhhc2goe1xyXG4gICAgICAgIHVybCxcclxuICAgICAgICBoZWFkZXJzLFxyXG4gICAgICAgIGJvZHlcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuI2NhY2hlW2hhc2hLZXldIHx8IERhdGUuYWRkTWlsaXNlY29uZHModGhpcy4jY2FjaGVbaGFzaEtleV0uY3JlYXRlZERhdGUsIHRoaXMuI2NhY2hlRHVyYXRpb24pIDwgbmV3IERhdGUoKSkge1xyXG4gICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XSA9IHtcclxuICAgICAgICBjcmVhdGVkRGF0ZTogbmV3IERhdGUoKSxcclxuICAgICAgICBzdWJqZWN0OiBuZXcgU3ViamVjdCgpLFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAob3B0aW9ucz8ucmVzcG9uc2VUeXBlICYmIG9wdGlvbnMucmVzcG9uc2VUeXBlICE9PSAnanNvbicpIHtcclxuICAgICAgICB0aGlzLmh0dHBDbGllbnQucG9zdChlbmNvZGVVUkkodXJsKSwgYm9keSwge1xyXG4gICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgaGVhZGVycyxcclxuICAgICAgICAgIHJlc3BvbnNlVHlwZTogb3B0aW9ucz8ucmVzcG9uc2VUeXBlIGFzIGFueVxyXG4gICAgICAgIH0pLnBpcGUodGltZW91dCh0aGlzLiN0aW1lb3V0KSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgcmVzdWx0OiByZXNcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0Lm5leHQocmVzKTtcclxuICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcclxuICAgICAgICAgICAgcmVzdWx0OiBlcnJcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0LmVycm9yKGVycik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5odHRwQ2xpZW50LnBvc3QoZW5jb2RlVVJJKHVybCksIGJvZHksIHtcclxuICAgICAgICAgIG9ic2VydmU6ICdyZXNwb25zZScsXHJcbiAgICAgICAgICBoZWFkZXJzXHJcbiAgICAgICAgfSkucGlwZSh0aW1lb3V0KHRoaXMuI3RpbWVvdXQpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcy5vaykge1xyXG4gICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICByZXN1bHQ6IHJlcy5ib2R5XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QubmV4dChyZXMuYm9keSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXHJcbiAgICAgICAgICAgICAgcmVzdWx0OiByZXMuYm9keVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0LmVycm9yKHJlcy5ib2R5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcclxuICAgICAgICAgICAgcmVzdWx0OiBlcnJcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0LmVycm9yKGVycik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZT8uc3RhdHVzKSB7XHJcbiAgICAgIGlmICh0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZT8uc3RhdHVzID09PSAnc3VjY2VzcycpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UucmVzdWx0O1xyXG4gICAgICB9XHJcbiAgICAgIHRocm93IHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlLnJlc3VsdDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0LnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG5cclxuICBwb3N0Q2FjaGUgPSBhc3luYyA8VCA9IGFueT4odXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIG9wdGlvbnM/OiB7XHJcbiAgICBjYWNoZVR5cGU/OiAnZGVmYXVsdCcgfCAnc2Vzc2lvbicgfCAnbG9jYWwnO1xyXG4gICAgY2FjaGVIb3Vycz86IG51bWJlcjtcclxuICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycztcclxuICB9KTogUHJvbWlzZTxUPiA9PiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gb3B0aW9ucz8uaGVhZGVycyB8fCB0aGlzLnRva2VuU2VydmljZS5jdXN0b21IZWFkZXJzKHtcclxuICAgICAgdXJsXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHsgZ2V0LCBzZXQsIGhhcyB9ID0gdGhpcy5jYWNoZVNlcnZpY2UuY3JlYXRlKHtcclxuICAgICAgdXJsLFxyXG4gICAgICBoZWFkZXJzLFxyXG4gICAgICBib2R5XHJcbiAgICB9LCB7XHJcbiAgICAgIHR5cGU6IG9wdGlvbnM/LmNhY2hlVHlwZSxcclxuICAgICAgaG91cnM6IG9wdGlvbnM/LmNhY2hlSG91cnNcclxuICAgIH0pO1xyXG4gICAgaWYgKCFoYXMoKSkge1xyXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnBvc3QodXJsLCBib2R5LCBvcHRpb25zPy5oZWFkZXJzKTtcclxuICAgICAgc2V0KHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ2V0KCk7XHJcbiAgfVxyXG5cclxuICBwdXQ8VCA9IGFueT4odXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIGhlYWRlcnM/OiBIdHRwSGVhZGVycyk6IFByb21pc2U8VD4ge1xyXG4gICAgaGVhZGVycyA9IGhlYWRlcnMgfHwgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycyh7XHJcbiAgICAgIHVybFxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMuaHR0cENsaWVudC5wdXQoZW5jb2RlVVJJKHVybCksIGJvZHksIHtcclxuICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxyXG4gICAgICAgIGhlYWRlcnNcclxuICAgICAgfSkucGlwZSh0aW1lb3V0KHRoaXMuI3RpbWVvdXQpKS50b1Byb21pc2UoKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5vaykge1xyXG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQuYm9keSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQuYm9keSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KS5jYXRjaCgoaHR0cEVycm9yUmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgcmVqZWN0KGh0dHBFcnJvclJlc3BvbnNlKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gICNkZWZpbmVQYXJhbXMgPSAocmVxdWVzdDogYW55KSA9PiB7XHJcbiAgICBjb25zdCBycSA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocmVxdWVzdCkpIHtcclxuICAgICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09ICcnICYmIHZhbHVlPy50b1N0cmluZygpICE9PSAnJykge1xyXG4gICAgICAgIHJxLnB1c2goXHJcbiAgICAgICAgICBgJHtlbmNvZGVVUklDb21wb25lbnQoa2V5IGFzIHN0cmluZyl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KFxyXG4gICAgICAgICAgICB2YWx1ZSBhcyBzdHJpbmdcclxuICAgICAgICAgICl9YFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBgPyR7cnE/LmpvaW4oJyYnKX1gO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2l0aFBhcmFtcyA9IDxUID0gYW55Pih1cmw6IHN0cmluZywgcGFyYW1zOiBhbnksIG9wdGlvbnM/OiB7XHJcbiAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnMsXHJcbiAgICByZXNwb25zZVR5cGU/OiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnO1xyXG4gIH0pOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmdldChgJHt1cmx9JHt0aGlzLiNkZWZpbmVQYXJhbXMocGFyYW1zKX1gLCBvcHRpb25zPy5oZWFkZXJzLCB7IC4uLm9wdGlvbnMsIGVuY29kZVVSSTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRDYWNoZVdpdGhQYXJhbXMgPSA8VCA9IGFueT4odXJsOiBzdHJpbmcsIHBhcmFtczogYW55LCBoZWFkZXJzPzogSHR0cEhlYWRlcnMsIG9wdGlvbnM/OiB7XHJcbiAgICByZWxvYWQ/OiBib29sZWFuLFxyXG4gICAgY2FjaGVUeXBlPzogJ2RlZmF1bHQnIHwgJ3Nlc3Npb24nIHwgJ2xvY2FsJztcclxuICAgIGNhY2hlSG91cnM/OiBudW1iZXI7XHJcbiAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnM7XHJcbiAgfSk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2FjaGUoYCR7dXJsfSR7dGhpcy4jZGVmaW5lUGFyYW1zKHBhcmFtcyl9YCwgeyAuLi5vcHRpb25zLCBoZWFkZXJzLCBlbmNvZGVVUkk6IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0ID0gPFQgPSBhbnk+KHVybDogc3RyaW5nLCBoZWFkZXJzPzogSHR0cEhlYWRlcnMsIG9wdGlvbnM/OiB7XHJcbiAgICByZXNwb25zZVR5cGU/OiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnO1xyXG4gICAgZW5jb2RlVVJJPzogYm9vbGVhblxyXG4gIH0pOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzIHx8IHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnMoe1xyXG4gICAgICB1cmxcclxuICAgIH0pO1xyXG4gICAgY29uc3QgZW5jb2RlZFVybCA9IG9wdGlvbnM/LmVuY29kZVVSSSA9PT0gZmFsc2UgPyB1cmwgOiBlbmNvZGVVUkkodXJsKTtcclxuICAgIC8vIGNvbnN0IGhhc2hLZXkgPSBoYXNoKHtcclxuICAgIC8vICAgZW5jb2RlZFVybCxcclxuICAgIC8vICAgaGVhZGVyc1xyXG4gICAgLy8gfSk7XHJcbiAgICBjb25zdCBoYXNoS2V5ID0gaGFzaCh7XHJcbiAgICAgIGVuY29kZWRVcmwsXHJcbiAgICAgIGhlYWRlcnNcclxuICAgIH0pO1xyXG4gICAgaWYgKCF0aGlzLiNjYWNoZVtoYXNoS2V5XSB8fCBEYXRlLmFkZE1pbGlzZWNvbmRzKHRoaXMuI2NhY2hlW2hhc2hLZXldLmNyZWF0ZWREYXRlLCB0aGlzLiNjYWNoZUR1cmF0aW9uKSA8IG5ldyBEYXRlKCkpIHtcclxuICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0gPSB7XHJcbiAgICAgICAgY3JlYXRlZERhdGU6IG5ldyBEYXRlKCksXHJcbiAgICAgICAgc3ViamVjdDogbmV3IFN1YmplY3QoKVxyXG4gICAgICB9O1xyXG4gICAgICBpZiAob3B0aW9ucz8ucmVzcG9uc2VUeXBlICYmIG9wdGlvbnMucmVzcG9uc2VUeXBlICE9PSAnanNvbicpIHtcclxuICAgICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KGVuY29kZWRVcmwsIHsgb2JzZXJ2ZTogJ2JvZHknLCBoZWFkZXJzLCByZXNwb25zZVR5cGU6IG9wdGlvbnM/LnJlc3BvbnNlVHlwZSBhcyBhbnkgfSlcclxuICAgICAgICAgIC5waXBlKHRpbWVvdXQodGhpcy4jdGltZW91dCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgIHJlc3VsdDogcmVzXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QubmV4dChyZXMpO1xyXG4gICAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgIHJlc3VsdDogZXJyXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QuZXJyb3IoZXJyKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQoZW5jb2RlZFVybCwgeyBvYnNlcnZlOiAncmVzcG9uc2UnLCBoZWFkZXJzIH0pXHJcbiAgICAgICAgICAucGlwZSh0aW1lb3V0KHRoaXMuI3RpbWVvdXQpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzLm9rKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICAgIHJlc3VsdDogcmVzLmJvZHlcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QubmV4dChyZXMuYm9keSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXHJcbiAgICAgICAgICAgICAgICByZXN1bHQ6IHJlcy5ib2R5XHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0LmVycm9yKHJlcy5ib2R5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgIHJlc3VsdDogZXJyXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QuZXJyb3IoZXJyKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2U/LnN0YXR1cykge1xyXG4gICAgICBpZiAodGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2U/LnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlLnJlc3VsdDtcclxuICAgICAgfVxyXG4gICAgICB0aHJvdyB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZS5yZXN1bHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2FjaGUgPSBhc3luYyA8VCA9IGFueT4odXJsOiBzdHJpbmcsIG9wdGlvbnM/OiB7XHJcbiAgICByZWxvYWQ/OiBib29sZWFuLFxyXG4gICAgY2FjaGVUeXBlPzogJ2RlZmF1bHQnIHwgJ3Nlc3Npb24nIHwgJ2xvY2FsJztcclxuICAgIGNhY2hlSG91cnM/OiBudW1iZXI7XHJcbiAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnM7XHJcbiAgICBlbmNvZGVVUkk/OiBib29sZWFuXHJcbiAgfSk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG9wdGlvbnM/LmhlYWRlcnMgfHwgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycyh7XHJcbiAgICAgIHVybFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBlbmNvZGVkVXJsID0gb3B0aW9ucz8uZW5jb2RlVVJJID09PSBmYWxzZSA/IHVybCA6IGVuY29kZVVSSSh1cmwpO1xyXG4gICAgY29uc3QgeyBnZXQsIHNldCwgaGFzIH0gPSB0aGlzLmNhY2hlU2VydmljZS5jcmVhdGUoe1xyXG4gICAgICBlbmNvZGVkVXJsLFxyXG4gICAgICBoZWFkZXJzXHJcbiAgICB9LCB7XHJcbiAgICAgIHR5cGU6IG9wdGlvbnM/LmNhY2hlVHlwZSxcclxuICAgICAgaG91cnM6IG9wdGlvbnM/LmNhY2hlSG91cnNcclxuICAgIH0pO1xyXG4gICAgaWYgKCFoYXMoKSB8fCBvcHRpb25zPy5yZWxvYWQpIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5nZXQoZW5jb2RlZFVybCwgb3B0aW9ucz8uaGVhZGVycywgeyBlbmNvZGVVUkk6IGZhbHNlIH0pO1xyXG4gICAgICBzZXQocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuICAgIHJldHVybiBnZXQoKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZTxUID0gYW55Pih1cmw6IHN0cmluZywgaGVhZGVycz86IEh0dHBIZWFkZXJzKTogUHJvbWlzZTxUPiB7XHJcbiAgICBoZWFkZXJzID0gaGVhZGVycyB8fCB0aGlzLnRva2VuU2VydmljZS5jdXN0b21IZWFkZXJzKHtcclxuICAgICAgdXJsXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5odHRwQ2xpZW50LmRlbGV0ZShlbmNvZGVVUkkodXJsKSwgeyBvYnNlcnZlOiAncmVzcG9uc2UnLCBoZWFkZXJzIH0pXHJcbiAgICAgICAgLnBpcGUodGltZW91dCh0aGlzLiN0aW1lb3V0KSlcclxuICAgICAgICAudG9Qcm9taXNlKCkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5vaykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdC5ib2R5KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlamVjdChyZXN1bHQuYm9keSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkuY2F0Y2goKGh0dHBFcnJvclJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmVqZWN0KGh0dHBFcnJvclJlc3BvbnNlKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkU2luZ2xlID0gKHVybDogc3RyaW5nLCBvcHRpb24/OiB7XHJcbiAgICBleHRlbnNpb25zPzogc3RyaW5nW10sXHJcbiAgICBtYXhTaXplSW5NYj86IG51bWJlcixcclxuICAgIHZhbGlkYXRvcj86IChmaWxlTmFtZTogc3RyaW5nKSA9PiBzdHJpbmdcclxuICB9KTogUHJvbWlzZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIGlmICgkKGAjJHt0aGlzLnVwbG9hZElkfWApLmxlbmd0aCkge1xyXG4gICAgICAgICQoJ2JvZHknKS5jaGlsZHJlbihgIyR7dGhpcy51cGxvYWRJZH1gKS5yZW1vdmUoKTtcclxuICAgICAgfVxyXG4gICAgICAkKCdib2R5JykuYXBwZW5kKGA8aW5wdXQgaWQ9JyR7dGhpcy51cGxvYWRJZH0nIHN0eWxlPSdkaXNwbGF5OiBub25lJyB0eXBlPSdmaWxlJyAvPmApO1xyXG4gICAgICAkKGAjJHt0aGlzLnVwbG9hZElkfWApLm9uKCdjaGFuZ2UnLCAoZXZ0OiBhbnkpID0+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSBldnQudGFyZ2V0O1xyXG4gICAgICAgICAgY29uc3QgZmlsZVRvVXBsb2FkID0gdGFyZ2V0LmZpbGVzLml0ZW0oMCk7XHJcbiAgICAgICAgICB0aGlzLnVwbG9hZCh1cmwsIGZpbGVUb1VwbG9hZCwgb3B0aW9uKS50aGVuKHJlc29sdmUpLmNhdGNoKHJlamVjdCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgIHJlamVjdChlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgJChgIyR7dGhpcy51cGxvYWRJZH1gKS50cmlnZ2VyKCdjbGljaycpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWQgPSBhc3luYyAodXJsOiBzdHJpbmcsIGZpbGU6IEZpbGUsIG9wdGlvbj86IHtcclxuICAgIGV4dGVuc2lvbnM/OiBzdHJpbmdbXSxcclxuICAgIG1heFNpemVJbk1iPzogbnVtYmVyLFxyXG4gICAgdmFsaWRhdG9yPzogKGZpbGVOYW1lOiBzdHJpbmcpID0+IHN0cmluZ1xyXG4gIH0pID0+IHtcclxuICAgIGNvbnN0IGxhc3REb3QgPSBmaWxlLm5hbWUubGFzdEluZGV4T2YoJy4nKTtcclxuICAgIGlmIChsYXN0RG90ID09PSAtMSkge1xyXG4gICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGUoYEludmFsaWQgZmlsZSBleHRlbnNpb25gKTtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZXh0ZW5zaW9uID0gZmlsZS5uYW1lLnN1YnN0cmluZyhsYXN0RG90ICsgMSk7XHJcbiAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgIGlmIChvcHRpb24uZXh0ZW5zaW9ucz8ubGVuZ3RoICYmICFvcHRpb24uZXh0ZW5zaW9ucy5zb21lKGUgPT4gZS50b1VwcGVyQ2FzZSgpID09PSBleHRlbnNpb24udG9VcHBlckNhc2UoKSkpIHtcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gYFske2ZpbGUubmFtZX1dICR7dGhpcy50cmFuc2xhdGUoJ1VwbG9hZGVkIGZpbGUgaXMgbm90IG1hdGNoIGV4dGVuc2lvbicpfSAke29wdGlvbi5leHRlbnNpb25zLmpvaW4oJywgJyl9YDtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG9wdGlvbi5tYXhTaXplSW5NYiA+IDAgJiYgb3B0aW9uLm1heFNpemVJbk1iICogMTAyNCAqIDEwMjQgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gYFske2ZpbGUubmFtZX1dICR7dGhpcy50cmFuc2xhdGUoJ01heCBmaWxlIHNpemUnKX0gJHtvcHRpb24ubWF4U2l6ZUluTWJ9IE1ic2A7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChvcHRpb24udmFsaWRhdG9yICYmIG9wdGlvbi52YWxpZGF0b3IoZmlsZS5uYW1lKSkge1xyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBvcHRpb24udmFsaWRhdG9yKGZpbGUubmFtZSk7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUsIGZpbGUubmFtZSk7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wb3N0KHVybCwgZm9ybURhdGEpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -168,8 +168,13 @@ export class SdExportService {
|
|
|
168
168
|
});
|
|
169
169
|
csvExporter.generateCsv([headerCSV, ...items]);
|
|
170
170
|
});
|
|
171
|
-
this.exportExcelRaw = (
|
|
172
|
-
const
|
|
171
|
+
this.exportExcelRaw = (option) => __awaiter(this, void 0, void 0, function* () {
|
|
172
|
+
const { columns, items, fileName } = option;
|
|
173
|
+
const header = {};
|
|
174
|
+
for (const column of columns) {
|
|
175
|
+
header[column.field] = column.title;
|
|
176
|
+
}
|
|
177
|
+
const ws = XLSX.utils.json_to_sheet([header, ...items]);
|
|
173
178
|
const wb = { Sheets: { data: ws }, SheetNames: ['data'] };
|
|
174
179
|
const excelBuffer = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });
|
|
175
180
|
const blob = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8' });
|
|
@@ -243,4 +248,4 @@ SdExportService.ctorParameters = () => [
|
|
|
243
248
|
{ type: SdNotifyService },
|
|
244
249
|
{ type: undefined, decorators: [{ type: Inject, args: [EXPORT_CONFIG,] }, { type: Optional }] }
|
|
245
250
|
];
|
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2V4cG9ydC8iLCJzb3VyY2VzIjpbInNyYy9saWIvZXhwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQXdDLGFBQWEsRUFBaUIsR0FBRyxFQUFnQixNQUFNLGdCQUFnQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7O0FBSzVELE1BQU0sT0FBTyxlQUFlO0lBSTFCLFlBQ1UsVUFBd0IsRUFDeEIsY0FBZ0MsRUFDaEMsYUFBOEIsRUFDSyxhQUFtQztRQUh0RSxlQUFVLEdBQVYsVUFBVSxDQUFjO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDSyxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUF1QmhGLHFCQUFhLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQzFDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDdEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDNUIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDVixPQUFPLFFBQVEsSUFBSSxDQUFDLE1BQU0sV0FBVyxZQUFZLFNBQVMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDO2FBQ3ZFO1lBQ0QsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDbEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixLQUFLO2FBQ04sQ0FBQyxDQUFDO1lBQ0gsT0FBTyxRQUFRLElBQUksQ0FBQyxNQUFNLFdBQVcsWUFBWSxTQUFTLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUN4RSxDQUFDLEVBQUE7UUFFRCxxQkFBZ0IsR0FBRyxDQUFPLFFBQXdCLEVBQUUsRUFBRTtZQUNwRCxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUMzQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxHQUFHLENBQUM7WUFDbkMsTUFBTSxHQUFHLEdBQUcsR0FBRyxXQUFXLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztZQUNsRCw0RUFBNEU7WUFDNUUsaUNBQWlDO1lBQ2pDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQzdELFlBQVksRUFBRSxhQUFhO2FBQzVCLENBQUMsQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsMkVBQTJFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZILGlEQUFBLElBQUksRUFBZSxJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsSUFBSSxVQUFVLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUEsQ0FBQTtRQUVELG1CQUFjLEdBQUcsQ0FBTyxJQUl2QixFQUF5QixFQUFFO1lBQzFCLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQztZQUN2QyxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUMzQyxNQUFNLEVBQUUsY0FBYyxFQUFFLEdBQUcsR0FBRyxDQUFDO1lBQy9CLE1BQU0sR0FBRyxHQUFHLEdBQUcsV0FBVyxHQUFHLGNBQWMsSUFBSSw4Q0FBQSxJQUFJLEVBQVksR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0UsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztnQkFDNUMsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDO2dCQUNwQixXQUFXLEVBQUUsR0FBRztnQkFDaEIsU0FBUzthQUNWLENBQUMsQ0FBQztZQUNILElBQUksSUFBSSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBVSxFQUFFLEVBQUU7b0JBQzFGLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsT0FBTyxDQUFDLENBQUM7b0JBQ2hELE1BQU0sR0FBRyxDQUFDO2dCQUNaLENBQUMsQ0FBQyxDQUFDO2dCQUNILE9BQU87b0JBQ0wsUUFBUTtvQkFDUixRQUFRO2lCQUNULENBQUM7YUFDSDtZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFBLENBQUE7UUFFRCwyQkFBc0IsR0FBRyxDQUFPLElBSS9CLEVBQUUsRUFBRTtZQUNILE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQztZQUN0QyxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUMzQyxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxHQUFHLENBQUM7WUFDdkMsTUFBTSxHQUFHLEdBQUcsR0FBRyxXQUFXLEdBQUcsc0JBQXNCLElBQUksOENBQUEsSUFBSSxFQUFZLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JGLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDekUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxDQUFDLENBQUEsQ0FBQTtRQUVELGVBQVUsR0FBRyxDQUFPLElBSW5CLEVBQUUsRUFBRTtZQUNILE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQztZQUN0QyxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUMzQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsR0FBRyxDQUFDO1lBQzNCLE1BQU0sR0FBRyxHQUFHLEdBQUcsV0FBVyxHQUFHLFVBQVUsSUFBSSw4Q0FBQSxJQUFJLEVBQVksR0FBRyxFQUFFLEtBQUssQ0FBQyxTQUFTLFFBQVEsRUFBRSxDQUFDO1lBQzFGLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFBLENBQUE7UUFFRCxrQkFBYSxHQUFHLENBQU8sSUFHdEIsRUFBMkIsRUFBRTs7WUFPNUIsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDNUIsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDM0MsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLEdBQUcsQ0FBQztZQUM5QixNQUFNLEdBQUcsR0FBRyxHQUFHLFdBQVcsR0FBRyxhQUFhLElBQUksOENBQUEsSUFBSSxFQUFZLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVFLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQW1CLEdBQUcsQ0FBQyxDQUFDO1lBQzdELE9BQU8sT0FBQSxHQUFHLENBQUMsS0FBSywwQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMxQixRQUFRLEVBQUUsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3JCLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSTthQUNqQixDQUFDLE1BQUssRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFBLENBQUE7UUFFRCxhQUFRLEdBQUcsQ0FBQyxRQUFnQixFQUFFLFFBQWlCLEVBQUUsRUFBRTtZQUNqRCxNQUFNLElBQUksR0FBUSxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUM7WUFDaEQsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7WUFDckIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFBO1FBRUQscUJBQWdCLEdBQUcsQ0FBTyxJQUt6QixFQUFFLEVBQUU7WUFDSCxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ3BELE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQzNDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxHQUFHLEdBQUcsQ0FBQztZQUNuQyxNQUFNLEdBQUcsR0FBRyxHQUFHLFdBQVcsR0FBRyxrQkFBa0IsRUFBRSxDQUFDO1lBQ2xELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUM3QyxRQUFRO2dCQUNSLE9BQU87Z0JBQ1AsS0FBSztnQkFDTCxRQUFRO2FBQ1QsRUFBRSxJQUFJLEVBQUU7Z0JBQ1AsWUFBWSxFQUFFLGFBQWE7YUFDNUIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSwyRUFBMkUsRUFBRSxDQUFDLENBQUM7WUFDdkgsaURBQUEsSUFBSSxFQUFlLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUEsQ0FBQTtRQUVELFdBQU0sR0FBRyxDQUFPLE1BQXFCLEVBQUUsRUFBRTtZQUN2QyxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUMzQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDO1lBQ3pCLE1BQU0sR0FBRyxHQUFHLEdBQUcsV0FBVyxHQUFHLFFBQVEsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQzNELFlBQVksRUFBRSxhQUFhO2FBQzVCLENBQUMsQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsMkVBQTJFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZILGlEQUFBLElBQUksRUFBZSxJQUFJLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQSxDQUFBO1FBRUQsaURBQWlEO1FBQ2pELGlEQUFpRDtRQUNqRCxzQkFBc0I7UUFDdEIsMkJBQTJCO1FBQzNCLHlCQUF5QjtRQUN6Qiw2QkFBNkI7UUFDN0Isd0JBQXdCO1FBQ3hCLHdCQUF3QjtRQUN4QixnQ0FBZ0M7UUFDaEMsb0JBQW9CO1FBQ3BCLHlCQUF5QjtRQUN6Qix3QkFBd0I7UUFDeEIsK0JBQStCO1FBQy9CLE9BQU87UUFDUCwwQkFBMEI7UUFDMUIsb0NBQW9DO1FBQ3BDLDhDQUE4QztRQUM5QyxNQUFNO1FBQ04sNElBQTRJO1FBQzVJLElBQUk7UUFFSixjQUFTLEdBQUcsQ0FBTyxNQUFxQixFQUFFLEVBQUU7WUFDMUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDO1lBQzVDLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUNyQixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDNUIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO2FBQ3hDO1lBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUM7Z0JBQ2xDLFFBQVEsRUFBRSxHQUFHLFFBQVEsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLHFCQUFxQixDQUFDLEVBQUU7Z0JBQ3BGLGNBQWMsRUFBRSxHQUFHO2dCQUNuQixZQUFZLEVBQUUsR0FBRztnQkFDakIsZ0JBQWdCLEVBQUUsR0FBRztnQkFDckIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixLQUFLLEVBQUUsUUFBUSxJQUFJLEtBQUs7Z0JBQ3hCLE1BQU0sRUFBRSxJQUFJO2FBQ2IsQ0FBQyxDQUFDO1lBQ0gsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFBLENBQUE7UUFFRCxtQkFBYyxHQUFHLENBQU8sSUFBVyxFQUFFLFFBQWdCLEVBQUUsRUFBRTtZQUN2RCxNQUFNLEVBQUUsR0FBbUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUQsTUFBTSxFQUFFLEdBQWtCLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDekUsTUFBTSxXQUFXLEdBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzdFLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUZBQWlGLEVBQUUsQ0FBQyxDQUFDO1lBQ2xJLGlEQUFBLElBQUksRUFBZSxJQUFJLEVBQUUsUUFBUSxDQUFFLENBQUM7UUFDdEMsQ0FBQyxDQUFBLENBQUE7UUFFRCxhQUFRLEdBQUcsQ0FBTyxJQUFjLEVBQUUsRUFBRTtZQUNsQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUMzQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsR0FBRyxDQUFDO1lBQzNCLE1BQU0sR0FBRyxHQUFHLEdBQUcsV0FBVyxHQUFHLFVBQVUsRUFBRSxDQUFDO1lBQzFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUM3QyxJQUFJO2FBQ0wsRUFBRSxJQUFJLEVBQUU7Z0JBQ1AsWUFBWSxFQUFFLGFBQWE7YUFDNUIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7WUFDN0QsaURBQUEsSUFBSSxFQUFlLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFBLENBQUE7UUFFRCx3QkFBZ0IsQ0FBQyxJQUFVLEVBQUUsV0FBbUIsUUFBUSxFQUFFLEVBQUU7WUFDMUQsSUFBSTtnQkFDRixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0MsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMxQyxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3pDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsRUFBRSxvQkFBb0I7b0JBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxHQUFHLFFBQVEsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDeEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO29CQUNqQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNiLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNqQzthQUNGO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN4QztRQUNILENBQUMsRUFBQTtJQW5QRCxDQUFDO0lBUkQsSUFBSSxnQkFBZ0I7O1FBQ2xCLE9BQU8sQ0FBQyxRQUFDLElBQUksQ0FBQyxhQUFhLDBDQUFFLFdBQVcsQ0FBQSxDQUFDO0lBQzNDLENBQUM7SUFRRCxJQUFZLE1BQU07UUFDaEIsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdEMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQ2hDLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFZLFVBQVU7UUFDcEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDcEMsSUFBSSxFQUFDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxNQUFNLENBQUEsRUFBRTtZQUNqQixPQUFPO1NBQ1I7UUFDRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLFFBQVEsRUFBRTtZQUNoQyxPQUFPLE1BQU0sQ0FBQztTQUNmO1FBQ0QsT0FBTyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDOzs7OztZQWhDRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVhRLFlBQVk7WUFPWixnQkFBZ0I7WUFEaEIsZUFBZTs0Q0FjbkIsTUFBTSxTQUFDLGFBQWEsY0FBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNkQXBpU2VydmljZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvYXBpJztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuaW1wb3J0IGhhc2ggZnJvbSAnb2JqZWN0LWhhc2gnO1xyXG5pbXBvcnQgeyBFeHBvcnRUb0NzdiB9IGZyb20gJ2V4cG9ydC10by1jc3YnO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG5pbXBvcnQgeyBFeHBvcnRUZW1wbGF0ZSwgSUV4cG9ydENvbmZpZ3VyYXRpb24sIEVYUE9SVF9DT05GSUcsIElFeHBvcnRPcHRpb24sIEFQSSwgU2RFeHBvcnRGaWxlIH0gZnJvbSAnLi9leHBvcnQubW9kZWwnO1xyXG5pbXBvcnQgeyBTZE5vdGlmeVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL25vdGlmeSc7XHJcbmltcG9ydCB7IFNkVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3V0aWxpdHknO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RFeHBvcnRTZXJ2aWNlIHtcclxuICBnZXQgaGFzQ29uZmlndXJhdGlvbigpIHtcclxuICAgIHJldHVybiAhIXRoaXMuY29uZmlndXJhdGlvbj8uZmlyZWJhc2VVcmw7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBTZEFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBTZFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBub3RpZnlTZXJ2aWNlOiBTZE5vdGlmeVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KEVYUE9SVF9DT05GSUcpIEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlndXJhdGlvbjogSUV4cG9ydENvbmZpZ3VyYXRpb24pIHtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IGZvbGRlcigpIHtcclxuICAgIGNvbnN0IHsgZm9sZGVyIH0gPSB0aGlzLmNvbmZpZ3VyYXRpb247XHJcbiAgICBpZiAodHlwZW9mIChmb2xkZXIpID09PSAnc3RyaW5nJykge1xyXG4gICAgICByZXR1cm4gZm9sZGVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvbGRlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgdXNlckZvbGRlcigpIHtcclxuICAgIGNvbnN0IHsgdXNlciB9ID0gdGhpcy5jb25maWd1cmF0aW9uO1xyXG4gICAgaWYgKCF1c2VyPy5mb2xkZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBmb2xkZXIgfSA9IHVzZXI7XHJcbiAgICBpZiAodHlwZW9mIChmb2xkZXIpID09PSAnc3RyaW5nJykge1xyXG4gICAgICByZXR1cm4gZm9sZGVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvbGRlcigpO1xyXG4gIH1cclxuXHJcbiAgI2RpcmVjdG9yeSA9IChrZXk6IHN0cmluZywgZ3JvdXA6IHN0cmluZykgPT4ge1xyXG4gICAgbGV0IGhhc2hlZEZvbGRlciA9IGhhc2goe1xyXG4gICAgICBmb2xkZXI6IHRoaXMuZm9sZGVyLFxyXG4gICAgICB1c2VyRm9sZGVyOiB0aGlzLnVzZXJGb2xkZXJcclxuICAgIH0pO1xyXG4gICAgaWYgKCFncm91cCkge1xyXG4gICAgICByZXR1cm4gYGRpcjE9JHt0aGlzLmZvbGRlcn0mZGlyMj1VLSR7aGFzaGVkRm9sZGVyfSZkaXIzPSR7a2V5IHx8ICcnfWA7XHJcbiAgICB9XHJcbiAgICBoYXNoZWRGb2xkZXIgPSBoYXNoKHtcclxuICAgICAgZm9sZGVyOiB0aGlzLmZvbGRlcixcclxuICAgICAgZ3JvdXBcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGBkaXIxPSR7dGhpcy5mb2xkZXJ9JmRpcjI9Ry0ke2hhc2hlZEZvbGRlcn0mZGlyMz0ke2tleSB8fCAnJ31gO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVUZW1wbGF0ZSA9IGFzeW5jICh0ZW1wbGF0ZTogRXhwb3J0VGVtcGxhdGUpID0+IHtcclxuICAgIGNvbnN0IHsgZmlyZWJhc2VVcmwgfSA9IHRoaXMuY29uZmlndXJhdGlvbjtcclxuICAgIGNvbnN0IHsgc2RHZW5lcmF0ZVRlbXBsYXRlIH0gPSBBUEk7XHJcbiAgICBjb25zdCB1cmwgPSBgJHtmaXJlYmFzZVVybH0ke3NkR2VuZXJhdGVUZW1wbGF0ZX1gO1xyXG4gICAgLy8gY29uc3QgeyBmaWxlUGF0aCwgZmlsZU5hbWUgfSA9IGF3YWl0IHRoaXMuYXBpU2VydmljZS5wb3N0KHVybCwgdGVtcGxhdGUpO1xyXG4gICAgLy8gcmV0dXJuIHsgZmlsZVBhdGgsIGZpbGVOYW1lIH07XHJcbiAgICBjb25zdCBidWZmZXIgPSBhd2FpdCB0aGlzLmFwaVNlcnZpY2UucG9zdCh1cmwsIHRlbXBsYXRlLCBudWxsLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2Jhc2U2NCwnIH0pO1xyXG4gICAgdGhpcy4jYmxvYlRvU2F2ZUFzKGJsb2IsIHRlbXBsYXRlLmZpbGVOYW1lIHx8ICdUZW1wbGF0ZScpO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkVGVtcGxhdGUgPSBhc3luYyAoYXJnczoge1xyXG4gICAga2V5OiBzdHJpbmc7XHJcbiAgICBncm91cD86IHN0cmluZztcclxuICAgIHZhbGlkYXRvcj86IChmaWxlTmFtZTogc3RyaW5nKSA9PiBzdHJpbmdcclxuICB9KTogUHJvbWlzZTxTZEV4cG9ydEZpbGU+ID0+IHtcclxuICAgIGNvbnN0IHsga2V5LCBncm91cCwgdmFsaWRhdG9yIH0gPSBhcmdzO1xyXG4gICAgY29uc3QgeyBmaXJlYmFzZVVybCB9ID0gdGhpcy5jb25maWd1cmF0aW9uO1xyXG4gICAgY29uc3QgeyB1cGxvYWRUZW1wbGF0ZSB9ID0gQVBJO1xyXG4gICAgY29uc3QgdXJsID0gYCR7ZmlyZWJhc2VVcmx9JHt1cGxvYWRUZW1wbGF0ZX0/JHt0aGlzLiNkaXJlY3Rvcnkoa2V5LCBncm91cCl9YDtcclxuICAgIGNvbnN0IGZpbGUgPSBhd2FpdCB0aGlzLnV0aWxpdHlTZXJ2aWNlLnVwbG9hZCh7XHJcbiAgICAgIGV4dGVuc2lvbnM6IFsneGxzeCddLFxyXG4gICAgICBtYXhTaXplSW5NYjogMC4xLFxyXG4gICAgICB2YWxpZGF0b3JcclxuICAgIH0pO1xyXG4gICAgaWYgKGZpbGUpIHtcclxuICAgICAgY29uc3QgeyBmaWxlUGF0aCwgZmlsZU5hbWUgfSA9IGF3YWl0IHRoaXMuYXBpU2VydmljZS51cGxvYWQodXJsLCBmaWxlKS5jYXRjaCgoZXJyOiBFcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMubm90aWZ5U2VydmljZS5ub3RpZnkud2FybmluZyhlcnI/Lm1lc3NhZ2UpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZmlsZVBhdGgsXHJcbiAgICAgICAgZmlsZU5hbWUsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlVXBsb2FkVGVtcGxhdGUgPSBhc3luYyAoYXJnczoge1xyXG4gICAga2V5OiBzdHJpbmc7XHJcbiAgICB0ZW1wbGF0ZTogRXhwb3J0VGVtcGxhdGU7XHJcbiAgICBncm91cD86IHN0cmluZztcclxuICB9KSA9PiB7XHJcbiAgICBjb25zdCB7IGtleSwgdGVtcGxhdGUsIGdyb3VwIH0gPSBhcmdzO1xyXG4gICAgY29uc3QgeyBmaXJlYmFzZVVybCB9ID0gdGhpcy5jb25maWd1cmF0aW9uO1xyXG4gICAgY29uc3QgeyBnZW5lcmF0ZVVwbG9hZFRlbXBsYXRlIH0gPSBBUEk7XHJcbiAgICBjb25zdCB1cmwgPSBgJHtmaXJlYmFzZVVybH0ke2dlbmVyYXRlVXBsb2FkVGVtcGxhdGV9PyR7dGhpcy4jZGlyZWN0b3J5KGtleSwgZ3JvdXApfWA7XHJcbiAgICBjb25zdCB7IGZpbGVQYXRoLCBmaWxlTmFtZSB9ID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLnBvc3QodXJsLCB0ZW1wbGF0ZSk7XHJcbiAgICByZXR1cm4geyBmaWxlUGF0aCwgZmlsZU5hbWUgfTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUZpbGUgPSBhc3luYyAoYXJnczoge1xyXG4gICAga2V5OiBzdHJpbmc7XHJcbiAgICBncm91cD86IHN0cmluZztcclxuICAgIGZpbGVOYW1lPzogc3RyaW5nO1xyXG4gIH0pID0+IHtcclxuICAgIGNvbnN0IHsga2V5LCBncm91cCwgZmlsZU5hbWUgfSA9IGFyZ3M7XHJcbiAgICBjb25zdCB7IGZpcmViYXNlVXJsIH0gPSB0aGlzLmNvbmZpZ3VyYXRpb247XHJcbiAgICBjb25zdCB7IHJlbW92ZUZpbGUgfSA9IEFQSTtcclxuICAgIGNvbnN0IHVybCA9IGAke2ZpcmViYXNlVXJsfSR7cmVtb3ZlRmlsZX0/JHt0aGlzLiNkaXJlY3Rvcnkoa2V5LCBncm91cCl9Jm5hbWU9JHtmaWxlTmFtZX1gO1xyXG4gICAgYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLnBvc3QodXJsKTtcclxuICB9XHJcblxyXG4gIGZpbGVzSW5Gb2xkZXIgPSBhc3luYyAoYXJnczoge1xyXG4gICAga2V5OiBzdHJpbmc7XHJcbiAgICBncm91cD86IHN0cmluZztcclxuICB9KTogUHJvbWlzZTxTZEV4cG9ydEZpbGVbXT4gPT4ge1xyXG4gICAgaW50ZXJmYWNlIEZpbGVzSW5Gb2xkZXJSZXMge1xyXG4gICAgICBkaXJlY3Rvcnk6IHN0cmluZztcclxuICAgICAgZmlsZXM6IHtcclxuICAgICAgICBwdWJsaWNVcmw6IHN0cmluZywgZnVsbFBhdGg6IHN0cmluZywgbmFtZTogc3RyaW5nXHJcbiAgICAgIH1bXTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsga2V5LCBncm91cCB9ID0gYXJncztcclxuICAgIGNvbnN0IHsgZmlyZWJhc2VVcmwgfSA9IHRoaXMuY29uZmlndXJhdGlvbjtcclxuICAgIGNvbnN0IHsgZmlsZXNJbkZvbGRlciB9ID0gQVBJO1xyXG4gICAgY29uc3QgdXJsID0gYCR7ZmlyZWJhc2VVcmx9JHtmaWxlc0luRm9sZGVyfT8ke3RoaXMuI2RpcmVjdG9yeShrZXksIGdyb3VwKX1gO1xyXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLmdldDxGaWxlc0luRm9sZGVyUmVzPih1cmwpO1xyXG4gICAgcmV0dXJuIHJlcy5maWxlcz8ubWFwKGUgPT4gKHtcclxuICAgICAgZmlsZVBhdGg6IGUucHVibGljVXJsLFxyXG4gICAgICBmaWxlTmFtZTogZS5uYW1lXHJcbiAgICB9KSkgfHwgW107XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZCA9IChmaWxlUGF0aDogc3RyaW5nLCBmaWxlTmFtZT86IHN0cmluZykgPT4ge1xyXG4gICAgY29uc3QgbGluazogYW55ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgbGluay5kb3dubG9hZCA9IGAke2ZpbGVOYW1lIHx8IHV1aWQudjQoKX0ueGxzeGA7XHJcbiAgICBsaW5rLmhyZWYgPSBmaWxlUGF0aDtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0QnlUZW1wbGF0ZSA9IGFzeW5jIChhcmdzOiB7XHJcbiAgICBmaWxlUGF0aDogc3RyaW5nLFxyXG4gICAgY29sdW1uczogYW55W10sXHJcbiAgICBpdGVtczogYW55W10sXHJcbiAgICBmaWxlTmFtZT86IHN0cmluZ1xyXG4gIH0pID0+IHtcclxuICAgIGNvbnN0IHsgZmlsZVBhdGgsIGNvbHVtbnMsIGl0ZW1zLCBmaWxlTmFtZSB9ID0gYXJncztcclxuICAgIGNvbnN0IHsgZmlyZWJhc2VVcmwgfSA9IHRoaXMuY29uZmlndXJhdGlvbjtcclxuICAgIGNvbnN0IHsgc2RFeHBvcnRCeVRlbXBsYXRlIH0gPSBBUEk7XHJcbiAgICBjb25zdCB1cmwgPSBgJHtmaXJlYmFzZVVybH0ke3NkRXhwb3J0QnlUZW1wbGF0ZX1gO1xyXG4gICAgY29uc3QgYnVmZmVyID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLnBvc3QodXJsLCB7XHJcbiAgICAgIGZpbGVQYXRoLFxyXG4gICAgICBjb2x1bW5zLFxyXG4gICAgICBpdGVtcyxcclxuICAgICAgZmlsZU5hbWVcclxuICAgIH0sIG51bGwsIHtcclxuICAgICAgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwgeyB0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7YmFzZTY0LCcgfSk7XHJcbiAgICB0aGlzLiNibG9iVG9TYXZlQXMoYmxvYiwgZmlsZU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0ID0gYXN5bmMgKG9wdGlvbjogSUV4cG9ydE9wdGlvbikgPT4ge1xyXG4gICAgY29uc3QgeyBmaXJlYmFzZVVybCB9ID0gdGhpcy5jb25maWd1cmF0aW9uO1xyXG4gICAgY29uc3QgeyBzZEV4cG9ydCB9ID0gQVBJO1xyXG4gICAgY29uc3QgdXJsID0gYCR7ZmlyZWJhc2VVcmx9JHtzZEV4cG9ydH1gO1xyXG4gICAgY29uc3QgYnVmZmVyID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLnBvc3QodXJsLCBvcHRpb24sIG51bGwsIHtcclxuICAgICAgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwgeyB0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7YmFzZTY0LCcgfSk7XHJcbiAgICB0aGlzLiNibG9iVG9TYXZlQXMoYmxvYiwgb3B0aW9uPy5maWxlTmFtZSk7XHJcbiAgfVxyXG5cclxuICAvLyBleHBvcnRDU1YgPSBhc3luYyAob3B0aW9uOiBJRXhwb3J0T3B0aW9uKSA9PiB7XHJcbiAgLy8gICBjb25zdCB7IGNvbHVtbnMsIGl0ZW1zLCBmaWxlTmFtZSB9ID0gb3B0aW9uO1xyXG4gIC8vICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAvLyAgICAgZmllbGRTZXBhcmF0b3I6ICcsJyxcclxuICAvLyAgICAgcXVvdGVTdHJpbmdzOiAnXCInLFxyXG4gIC8vICAgICBkZWNpbWFsc2VwYXJhdG9yOiAnLicsXHJcbiAgLy8gICAgIHNob3dMYWJlbHM6IHRydWUsXHJcbiAgLy8gICAgIHNob3dUaXRsZTogZmFsc2UsXHJcbiAgLy8gICAgIHRpdGxlOiBmaWxlTmFtZSB8fCAnQ1NWJyxcclxuICAvLyAgICAgdXNlQm9tOiB0cnVlLFxyXG4gIC8vICAgICBub0Rvd25sb2FkOiBmYWxzZSxcclxuICAvLyAgICAgdXNlSGVhZGVyOiBmYWxzZSxcclxuICAvLyAgICAgbnVsbFRvRW1wdHlTdHJpbmc6IHRydWUsXHJcbiAgLy8gICB9O1xyXG4gIC8vICAgY29uc3QgaGVhZGVyQ1NWID0ge307XHJcbiAgLy8gICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5zKSB7XHJcbiAgLy8gICAgIGhlYWRlckNTVltjb2x1bW4uZmllbGRdID0gY29sdW1uLnRpdGxlO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgcmV0dXJuIG5ldyBBbmd1bGFyQ3N2KFsuLi5baGVhZGVyQ1NWXSwgLi4uaXRlbXNdLCBgJHtmaWxlTmFtZSB8fCAnQ1NWJ31fJHtEYXRlLnRvRm9ybWF0KG5ldyBEYXRlKCksICd5eXl5LU1NLWRkLUhILW1tLXNzJyl9YCwgb3B0aW9ucyk7XHJcbiAgLy8gfVxyXG5cclxuICBleHBvcnRDU1YgPSBhc3luYyAob3B0aW9uOiBJRXhwb3J0T3B0aW9uKSA9PiB7XHJcbiAgICBjb25zdCB7IGNvbHVtbnMsIGl0ZW1zLCBmaWxlTmFtZSB9ID0gb3B0aW9uO1xyXG4gICAgY29uc3QgaGVhZGVyQ1NWID0ge307XHJcbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5zKSB7XHJcbiAgICAgIGhlYWRlckNTVltjb2x1bW4uZmllbGRdID0gY29sdW1uLnRpdGxlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY3N2RXhwb3J0ZXIgPSBuZXcgRXhwb3J0VG9Dc3Yoe1xyXG4gICAgICBmaWxlbmFtZTogYCR7ZmlsZU5hbWUgfHwgJ0NTVid9XyR7RGF0ZS50b0Zvcm1hdChuZXcgRGF0ZSgpLCAneXl5eS1NTS1kZC1ISC1tbS1zcycpfWAsXHJcbiAgICAgIGZpZWxkU2VwYXJhdG9yOiAnLCcsXHJcbiAgICAgIHF1b3RlU3RyaW5nczogJ1wiJyxcclxuICAgICAgZGVjaW1hbFNlcGFyYXRvcjogJy4nLFxyXG4gICAgICBzaG93TGFiZWxzOiB0cnVlLFxyXG4gICAgICBzaG93VGl0bGU6IGZhbHNlLFxyXG4gICAgICB0aXRsZTogZmlsZU5hbWUgfHwgJ0NTVicsXHJcbiAgICAgIHVzZUJvbTogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgY3N2RXhwb3J0ZXIuZ2VuZXJhdGVDc3YoW2hlYWRlckNTViwgLi4uaXRlbXNdKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydEV4Y2VsUmF3ID0gYXN5bmMgKGRhdGE6IGFueVtdLCBmaWxlTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCB3czogWExTWC5Xb3JrU2hlZXQgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoZGF0YSk7XHJcbiAgICBjb25zdCB3YjogWExTWC5Xb3JrQm9vayA9IHsgU2hlZXRzOiB7IGRhdGE6IHdzIH0sIFNoZWV0TmFtZXM6IFsnZGF0YSddIH07XHJcbiAgICBjb25zdCBleGNlbEJ1ZmZlcjogYW55ID0gWExTWC53cml0ZSh3YiwgeyBib29rVHlwZTogJ3hsc3gnLCB0eXBlOiAnYXJyYXknIH0pO1xyXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtleGNlbEJ1ZmZlcl0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2NoYXJzZXQ9VVRGLTgnIH0pO1xyXG4gICAgdGhpcy4jYmxvYlRvU2F2ZUFzKGJsb2IsIGZpbGVOYW1lICk7XHJcbiAgfVxyXG5cclxuICBtZXJnZVBERiA9IGFzeW5jICh1cmxzOiBzdHJpbmdbXSkgPT4ge1xyXG4gICAgY29uc3QgeyBmaXJlYmFzZVVybCB9ID0gdGhpcy5jb25maWd1cmF0aW9uO1xyXG4gICAgY29uc3QgeyBzZE1lcmdlUERGIH0gPSBBUEk7XHJcbiAgICBjb25zdCB1cmwgPSBgJHtmaXJlYmFzZVVybH0ke3NkTWVyZ2VQREZ9YDtcclxuICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IHRoaXMuYXBpU2VydmljZS5wb3N0KHVybCwge1xyXG4gICAgICB1cmxzXHJcbiAgICB9LCBudWxsLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3BkZicgfSk7XHJcbiAgICB0aGlzLiNibG9iVG9TYXZlQXMoYmxvYiwgYCR7dXVpZC52NCgpfWApO1xyXG4gIH1cclxuXHJcbiAgI2Jsb2JUb1NhdmVBcyA9IChibG9iOiBCbG9iLCBmaWxlTmFtZTogc3RyaW5nID0gJ0V4cG9ydCcpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICBmaWxlTmFtZSA9IGZpbGVOYW1lLnJlcGxhY2UoLy54bHN4L2ksICcnKTtcclxuICAgICAgZmlsZU5hbWUgPSBmaWxlTmFtZS5yZXBsYWNlKC8ucGRmL2ksICcnKTtcclxuICAgICAgaWYgKGxpbmsuZG93bmxvYWQgIT09IHVuZGVmaW5lZCkgeyAvLyBmZWF0dXJlIGRldGVjdGlvblxyXG4gICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgdXJsKTtcclxuICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBgJHtmaWxlTmFtZX1fJHtuZXcgRGF0ZSgpLnRvRm9ybWF0KCd5eXl5X01NX2RkX0hIX21tJyl9YCk7XHJcbiAgICAgICAgbGluay5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgICAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdCbG9iVG9TYXZlQXMgZXJyb3InLCBlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUV4cG9ydEluZm8ge1xyXG4gIGRhdGE6IGFueVtdO1xyXG4gIHNoZWV0TmFtZT86IHN0cmluZztcclxuICBmaWxlTmFtZT86IHN0cmluZztcclxufVxyXG4iXX0=
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2V4cG9ydC8iLCJzb3VyY2VzIjpbInNyYy9saWIvZXhwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQXdDLGFBQWEsRUFBaUIsR0FBRyxFQUFnQixNQUFNLGdCQUFnQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7O0FBSzVELE1BQU0sT0FBTyxlQUFlO0lBSTFCLFlBQ1UsVUFBd0IsRUFDeEIsY0FBZ0MsRUFDaEMsYUFBOEIsRUFDSyxhQUFtQztRQUh0RSxlQUFVLEdBQVYsVUFBVSxDQUFjO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDSyxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUF1QmhGLHFCQUFhLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQzFDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDdEIsTUFBTSxFQUFFLElBQUks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QUNqQzthQUNGO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN4QztRQUNILENBQUMsRUFBQTtJQXhQRCxDQUFDO0lBUkQsSUFBSSxnQkFBZ0I7O1FBQ2xCLE9BQU8sQ0FBQyxRQUFDLElBQUksQ0FBQyxhQUFhLDBDQUFFLFdBQVcsQ0FBQSxDQUFDO0lBQzNDLENBQUM7SUFRRCxJQUFZLE1BQU07UUFDaEIsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdEMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQ2hDLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFZLFVBQVU7UUFDcEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDcEMsSUFBSSxFQUFDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxNQUFNLENBQUEsRUFBRTtZQUNqQixPQUFPO1NBQ1I7UUFDRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLFFBQVEsRUFBRTtZQUNoQyxPQUFPLE1BQU0sQ0FBQztTQUNmO1FBQ0QsT0FBTyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDOzs7OztZQWhDRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVhRLFlBQVk7WUFPWixnQkFBZ0I7WUFEaEIsZUFBZTs0Q0FjbkIsTUFBTSxTQUFDLGFBQWEsY0FBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNkQXBpU2VydmljZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvYXBpJztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuaW1wb3J0IGhhc2ggZnJvbSAnb2JqZWN0LWhhc2gnO1xyXG5pbXBvcnQgeyBFeHBvcnRUb0NzdiB9IGZyb20gJ2V4cG9ydC10by1jc3YnO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG5pbXBvcnQgeyBFeHBvcnRUZW1wbGF0ZSwgSUV4cG9ydENvbmZpZ3VyYXRpb24sIEVYUE9SVF9DT05GSUcsIElFeHBvcnRPcHRpb24sIEFQSSwgU2RFeHBvcnRGaWxlIH0gZnJvbSAnLi9leHBvcnQubW9kZWwnO1xyXG5pbXBvcnQgeyBTZE5vdGlmeVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL25vdGlmeSc7XHJcbmltcG9ydCB7IFNkVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3V0aWxpdHknO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RFeHBvcnRTZXJ2aWNlIHtcclxuICBnZXQgaGFzQ29uZmlndXJhdGlvbigpIHtcclxuICAgIHJldHVybiAhIXRoaXMuY29uZmlndXJhdGlvbj8uZmlyZWJhc2VVcmw7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBTZEFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBTZFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBub3RpZnlTZXJ2aWNlOiBTZE5vdGlmeVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KEVYUE9SVF9DT05GSUcpIEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlndXJhdGlvbjogSUV4cG9ydENvbmZpZ3VyYXRpb24pIHtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IGZvbGRlcigpIHtcclxuICAgIGNvbnN0IHsgZm9sZGVyIH0gPSB0aGlzLmNvbmZpZ3VyYXRpb247XHJcbiAgICBpZiAodHlwZW9mIChmb2xkZXIpID09PSAnc3RyaW5nJykge1xyXG4gICAgICByZXR1cm4gZm9sZGVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvbGRlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgdXNlckZvbGRlcigpIHtcclxuICAgIGNvbnN0IHsgdXNlciB9ID0gdGhpcy5jb25maWd1cmF0aW9uO1xyXG4gICAgaWYgKCF1c2VyPy5mb2xkZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBmb2xkZXIgfSA9IHVzZXI7XHJcbiAgICBpZiAodHlwZW9mIChmb2xkZXIpID09PSAnc3RyaW5nJykge1xyXG4gICAgICByZXR1cm4gZm9sZGVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvbGRlcigpO1xyXG4gIH1cclxuXHJcbiAgI2RpcmVjdG9yeSA9IChrZXk6IHN0cmluZywgZ3JvdXA6IHN0cmluZykgPT4ge1xyXG4gICAgbGV0IGhhc2hlZEZvbGRlciA9IGhhc2goe1xyXG4gICAgICBmb2xkZXI6IHRoaXMuZm9sZGVyLFxyXG4gICAgICB1c2VyRm9sZGVyOiB0aGlzLnVzZXJGb2xkZXJcclxuICAgIH0pO1xyXG4gICAgaWYgKCFncm91cCkge1xyXG4gICAgICByZXR1cm4gYGRpcjE9JHt0aGlzLmZvbGRlcn0mZGlyMj1VLSR7aGFzaGVkRm9sZGVyfSZkaXIzPSR7a2V5IHx8ICcnfWA7XHJcbiAgICB9XHJcbiAgICBoYXNoZWRGb2xkZXIgPSBoYXNoKHtcclxuICAgICAgZm9sZGVyOiB0aGlzLmZvbGRlcixcclxuICAgICAgZ3JvdXBcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGBkaXIxPSR7dGhpcy5mb2xkZXJ9JmRpcjI9Ry0ke2hhc2hlZEZvbGRlcn0mZGlyMz0ke2tleSB8fCAnJ31gO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVUZW1wbGF0ZSA9IGFzeW5jICh0ZW1wbGF0ZTogRXhwb3J0VGVtcGxhdGUpID0+IHtcclxuICAgIGNvbnN0IHsgZmlyZWJhc2VVcmwgfSA9IHRoaXMuY29uZmlndXJhdGlvbjtcclxuICAgIGNvbnN0IHsgc2RHZW5lcmF0ZVRlbXBsYXRlIH0gPSBBUEk7XHJcbiAgICBjb25zdCB1cmwgPSBgJHtmaXJlYmFzZVVybH0ke3NkR2VuZXJhdGVUZW1wbGF0ZX1gO1xyXG4gICAgLy8gY29uc3QgeyBmaWxlUGF0aCwgZmlsZU5hbWUgfSA9IGF3YWl0IHRoaXMuYXBpU2VydmljZS5wb3N0KHVybCwgdGVtcGxhdGUpO1xyXG4gICAgLy8gcmV0dXJuIHsgZmlsZVBhdGgsIGZpbGVOYW1lIH07XHJcbiAgICBjb25zdCBidWZmZXIgPSBhd2FpdCB0aGlzLmFwaVNlcnZpY2UucG9zdCh1cmwsIHRlbXBsYXRlLCBudWxsLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2Jhc2U2NCwnIH0pO1xyXG4gICAgdGhpcy4jYmxvYlRvU2F2ZUFzKGJsb2IsIHRlbXBsYXRlLmZpbGVOYW1lIHx8ICdUZW1wbGF0ZScpO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkVGVtcGxhdGUgPSBhc3luYyAoYXJnczoge1xyXG4gICAga2V5OiBzdHJpbmc7XHJcbiAgICBncm91cD86IHN0cmluZztcclxuICAgIHZhbGlkYXRvcj86IChmaWxlTmFtZTogc3RyaW5nKSA9PiBzdHJpbmdcclxuICB9KTogUHJvbWlzZTxTZEV4cG9ydEZpbGU+ID0+IHtcclxuICAgIGNvbnN0IHsga2V5LCBncm91cCwgdmFsaWRhdG9yIH0gPSBhcmdzO1xyXG4gICAgY29uc3QgeyBmaXJlYmFzZVVybCB9ID0gdGhpcy5jb25maWd1cmF0aW9uO1xyXG4gICAgY29uc3QgeyB1cGxvYWRUZW1wbGF0ZSB9ID0gQVBJO1xyXG4gICAgY29uc3QgdXJsID0gYCR7ZmlyZWJhc2VVcmx9JHt1cGxvYWRUZW1wbGF0ZX0/JHt0aGlzLiNkaXJlY3Rvcnkoa2V5LCBncm91cCl9YDtcclxuICAgIGNvbnN0IGZpbGUgPSBhd2FpdCB0aGlzLnV0aWxpdHlTZXJ2aWNlLnVwbG9hZCh7XHJcbiAgICAgIGV4dGVuc2lvbnM6IFsneGxzeCddLFxyXG4gICAgICBtYXhTaXplSW5NYjogMC4xLFxyXG4gICAgICB2YWxpZGF0b3JcclxuICAgIH0pO1xyXG4gICAgaWYgKGZpbGUpIHtcclxuICAgICAgY29uc3QgeyBmaWxlUGF0aCwgZmlsZU5hbWUgfSA9IGF3YWl0IHRoaXMuYXBpU2VydmljZS51cGxvYWQodXJsLCBmaWxlKS5jYXRjaCgoZXJyOiBFcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMubm90aWZ5U2VydmljZS5ub3RpZnkud2FybmluZyhlcnI/Lm1lc3NhZ2UpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZmlsZVBhdGgsXHJcbiAgICAgICAgZmlsZU5hbWUsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlVXBsb2FkVGVtcGxhdGUgPSBhc3luYyAoYXJnczoge1xyXG4gICAga2V5OiBzdHJpbmc7XHJcbiAgICB0ZW1wbGF0ZTogRXhwb3J0VGVtcGxhdGU7XHJcbiAgICBncm91cD86IHN0cmluZztcclxuICB9KSA9PiB7XHJcbiAgICBjb25zdCB7IGtleSwgdGVtcGxhdGUsIGdyb3VwIH0gPSBhcmdzO1xyXG4gICAgY29uc3QgeyBmaXJlYmFzZVVybCB9ID0gdGhpcy5jb25maWd1cmF0aW9uO1xyXG4gICAgY29uc3QgeyBnZW5lcmF0ZVVwbG9hZFRlbXBsYXRlIH0gPSBBUEk7XHJcbiAgICBjb25zdCB1cmwgPSBgJHtmaXJlYmFzZVVybH0ke2dlbmVyYXRlVXBsb2FkVGVtcGxhdGV9PyR7dGhpcy4jZGlyZWN0b3J5KGtleSwgZ3JvdXApfWA7XHJcbiAgICBjb25zdCB7IGZpbGVQYXRoLCBmaWxlTmFtZSB9ID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLnBvc3QodXJsLCB0ZW1wbGF0ZSk7XHJcbiAgICByZXR1cm4geyBmaWxlUGF0aCwgZmlsZU5hbWUgfTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUZpbGUgPSBhc3luYyAoYXJnczoge1xyXG4gICAga2V5OiBzdHJpbmc7XHJcbiAgICBncm91cD86IHN0cmluZztcclxuICAgIGZpbGVOYW1lPzogc3RyaW5nO1xyXG4gIH0pID0+IHtcclxuICAgIGNvbnN0IHsga2V5LCBncm91cCwgZmlsZU5hbWUgfSA9IGFyZ3M7XHJcbiAgICBjb25zdCB7IGZpcmViYXNlVXJsIH0gPSB0aGlzLmNvbmZpZ3VyYXRpb247XHJcbiAgICBjb25zdCB7IHJlbW92ZUZpbGUgfSA9IEFQSTtcclxuICAgIGNvbnN0IHVybCA9IGAke2ZpcmViYXNlVXJsfSR7cmVtb3ZlRmlsZX0/JHt0aGlzLiNkaXJlY3Rvcnkoa2V5LCBncm91cCl9Jm5hbWU9JHtmaWxlTmFtZX1gO1xyXG4gICAgYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLnBvc3QodXJsKTtcclxuICB9XHJcblxyXG4gIGZpbGVzSW5Gb2xkZXIgPSBhc3luYyAoYXJnczoge1xyXG4gICAga2V5OiBzdHJpbmc7XHJcbiAgICBncm91cD86IHN0cmluZztcclxuICB9KTogUHJvbWlzZTxTZEV4cG9ydEZpbGVbXT4gPT4ge1xyXG4gICAgaW50ZXJmYWNlIEZpbGVzSW5Gb2xkZXJSZXMge1xyXG4gICAgICBkaXJlY3Rvcnk6IHN0cmluZztcclxuICAgICAgZmlsZXM6IHtcclxuICAgICAgICBwdWJsaWNVcmw6IHN0cmluZywgZnVsbFBhdGg6IHN0cmluZywgbmFtZTogc3RyaW5nXHJcbiAgICAgIH1bXTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsga2V5LCBncm91cCB9ID0gYXJncztcclxuICAgIGNvbnN0IHsgZmlyZWJhc2VVcmwgfSA9IHRoaXMuY29uZmlndXJhdGlvbjtcclxuICAgIGNvbnN0IHsgZmlsZXNJbkZvbGRlciB9ID0gQVBJO1xyXG4gICAgY29uc3QgdXJsID0gYCR7ZmlyZWJhc2VVcmx9JHtmaWxlc0luRm9sZGVyfT8ke3RoaXMuI2RpcmVjdG9yeShrZXksIGdyb3VwKX1gO1xyXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLmdldDxGaWxlc0luRm9sZGVyUmVzPih1cmwpO1xyXG4gICAgcmV0dXJuIHJlcy5maWxlcz8ubWFwKGUgPT4gKHtcclxuICAgICAgZmlsZVBhdGg6IGUucHVibGljVXJsLFxyXG4gICAgICBmaWxlTmFtZTogZS5uYW1lXHJcbiAgICB9KSkgfHwgW107XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZCA9IChmaWxlUGF0aDogc3RyaW5nLCBmaWxlTmFtZT86IHN0cmluZykgPT4ge1xyXG4gICAgY29uc3QgbGluazogYW55ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgbGluay5kb3dubG9hZCA9IGAke2ZpbGVOYW1lIHx8IHV1aWQudjQoKX0ueGxzeGA7XHJcbiAgICBsaW5rLmhyZWYgPSBmaWxlUGF0aDtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0QnlUZW1wbGF0ZSA9IGFzeW5jIChhcmdzOiB7XHJcbiAgICBmaWxlUGF0aDogc3RyaW5nLFxyXG4gICAgY29sdW1uczogYW55W10sXHJcbiAgICBpdGVtczogYW55W10sXHJcbiAgICBmaWxlTmFtZT86IHN0cmluZ1xyXG4gIH0pID0+IHtcclxuICAgIGNvbnN0IHsgZmlsZVBhdGgsIGNvbHVtbnMsIGl0ZW1zLCBmaWxlTmFtZSB9ID0gYXJncztcclxuICAgIGNvbnN0IHsgZmlyZWJhc2VVcmwgfSA9IHRoaXMuY29uZmlndXJhdGlvbjtcclxuICAgIGNvbnN0IHsgc2RFeHBvcnRCeVRlbXBsYXRlIH0gPSBBUEk7XHJcbiAgICBjb25zdCB1cmwgPSBgJHtmaXJlYmFzZVVybH0ke3NkRXhwb3J0QnlUZW1wbGF0ZX1gO1xyXG4gICAgY29uc3QgYnVmZmVyID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLnBvc3QodXJsLCB7XHJcbiAgICAgIGZpbGVQYXRoLFxyXG4gICAgICBjb2x1bW5zLFxyXG4gICAgICBpdGVtcyxcclxuICAgICAgZmlsZU5hbWVcclxuICAgIH0sIG51bGwsIHtcclxuICAgICAgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwgeyB0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7YmFzZTY0LCcgfSk7XHJcbiAgICB0aGlzLiNibG9iVG9TYXZlQXMoYmxvYiwgZmlsZU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0ID0gYXN5bmMgKG9wdGlvbjogSUV4cG9ydE9wdGlvbikgPT4ge1xyXG4gICAgY29uc3QgeyBmaXJlYmFzZVVybCB9ID0gdGhpcy5jb25maWd1cmF0aW9uO1xyXG4gICAgY29uc3QgeyBzZEV4cG9ydCB9ID0gQVBJO1xyXG4gICAgY29uc3QgdXJsID0gYCR7ZmlyZWJhc2VVcmx9JHtzZEV4cG9ydH1gO1xyXG4gICAgY29uc3QgYnVmZmVyID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLnBvc3QodXJsLCBvcHRpb24sIG51bGwsIHtcclxuICAgICAgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwgeyB0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7YmFzZTY0LCcgfSk7XHJcbiAgICB0aGlzLiNibG9iVG9TYXZlQXMoYmxvYiwgb3B0aW9uPy5maWxlTmFtZSk7XHJcbiAgfVxyXG5cclxuICAvLyBleHBvcnRDU1YgPSBhc3luYyAob3B0aW9uOiBJRXhwb3J0T3B0aW9uKSA9PiB7XHJcbiAgLy8gICBjb25zdCB7IGNvbHVtbnMsIGl0ZW1zLCBmaWxlTmFtZSB9ID0gb3B0aW9uO1xyXG4gIC8vICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAvLyAgICAgZmllbGRTZXBhcmF0b3I6ICcsJyxcclxuICAvLyAgICAgcXVvdGVTdHJpbmdzOiAnXCInLFxyXG4gIC8vICAgICBkZWNpbWFsc2VwYXJhdG9yOiAnLicsXHJcbiAgLy8gICAgIHNob3dMYWJlbHM6IHRydWUsXHJcbiAgLy8gICAgIHNob3dUaXRsZTogZmFsc2UsXHJcbiAgLy8gICAgIHRpdGxlOiBmaWxlTmFtZSB8fCAnQ1NWJyxcclxuICAvLyAgICAgdXNlQm9tOiB0cnVlLFxyXG4gIC8vICAgICBub0Rvd25sb2FkOiBmYWxzZSxcclxuICAvLyAgICAgdXNlSGVhZGVyOiBmYWxzZSxcclxuICAvLyAgICAgbnVsbFRvRW1wdHlTdHJpbmc6IHRydWUsXHJcbiAgLy8gICB9O1xyXG4gIC8vICAgY29uc3QgaGVhZGVyQ1NWID0ge307XHJcbiAgLy8gICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5zKSB7XHJcbiAgLy8gICAgIGhlYWRlckNTVltjb2x1bW4uZmllbGRdID0gY29sdW1uLnRpdGxlO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgcmV0dXJuIG5ldyBBbmd1bGFyQ3N2KFsuLi5baGVhZGVyQ1NWXSwgLi4uaXRlbXNdLCBgJHtmaWxlTmFtZSB8fCAnQ1NWJ31fJHtEYXRlLnRvRm9ybWF0KG5ldyBEYXRlKCksICd5eXl5LU1NLWRkLUhILW1tLXNzJyl9YCwgb3B0aW9ucyk7XHJcbiAgLy8gfVxyXG5cclxuICBleHBvcnRDU1YgPSBhc3luYyAob3B0aW9uOiBJRXhwb3J0T3B0aW9uKSA9PiB7XHJcbiAgICBjb25zdCB7IGNvbHVtbnMsIGl0ZW1zLCBmaWxlTmFtZSB9ID0gb3B0aW9uO1xyXG4gICAgY29uc3QgaGVhZGVyQ1NWID0ge307XHJcbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5zKSB7XHJcbiAgICAgIGhlYWRlckNTVltjb2x1bW4uZmllbGRdID0gY29sdW1uLnRpdGxlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY3N2RXhwb3J0ZXIgPSBuZXcgRXhwb3J0VG9Dc3Yoe1xyXG4gICAgICBmaWxlbmFtZTogYCR7ZmlsZU5hbWUgfHwgJ0NTVid9XyR7RGF0ZS50b0Zvcm1hdChuZXcgRGF0ZSgpLCAneXl5eS1NTS1kZC1ISC1tbS1zcycpfWAsXHJcbiAgICAgIGZpZWxkU2VwYXJhdG9yOiAnLCcsXHJcbiAgICAgIHF1b3RlU3RyaW5nczogJ1wiJyxcclxuICAgICAgZGVjaW1hbFNlcGFyYXRvcjogJy4nLFxyXG4gICAgICBzaG93TGFiZWxzOiB0cnVlLFxyXG4gICAgICBzaG93VGl0bGU6IGZhbHNlLFxyXG4gICAgICB0aXRsZTogZmlsZU5hbWUgfHwgJ0NTVicsXHJcbiAgICAgIHVzZUJvbTogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgY3N2RXhwb3J0ZXIuZ2VuZXJhdGVDc3YoW2hlYWRlckNTViwgLi4uaXRlbXNdKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydEV4Y2VsUmF3ID0gYXN5bmMgKG9wdGlvbjogSUV4cG9ydE9wdGlvbikgPT4ge1xyXG4gICAgY29uc3QgeyBjb2x1bW5zLCBpdGVtcywgZmlsZU5hbWUgfSA9IG9wdGlvbjtcclxuICAgIGNvbnN0IGhlYWRlciA9IHt9O1xyXG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2YgY29sdW1ucykge1xyXG4gICAgICBoZWFkZXJbY29sdW1uLmZpZWxkXSA9IGNvbHVtbi50aXRsZTtcclxuICAgIH1cclxuICAgIGNvbnN0IHdzOiBYTFNYLldvcmtTaGVldCA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldChbaGVhZGVyLCAuLi5pdGVtc10pO1xyXG4gICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSB7IFNoZWV0czogeyBkYXRhOiB3cyB9LCBTaGVldE5hbWVzOiBbJ2RhdGEnXSB9O1xyXG4gICAgY29uc3QgZXhjZWxCdWZmZXI6IGFueSA9IFhMU1gud3JpdGUod2IsIHsgYm9va1R5cGU6ICd4bHN4JywgdHlwZTogJ2FycmF5JyB9KTtcclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZXhjZWxCdWZmZXJdLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldDtjaGFyc2V0PVVURi04JyB9KTtcclxuICAgIHRoaXMuI2Jsb2JUb1NhdmVBcyhibG9iLCBmaWxlTmFtZSk7XHJcbiAgfVxyXG5cclxuICBtZXJnZVBERiA9IGFzeW5jICh1cmxzOiBzdHJpbmdbXSkgPT4ge1xyXG4gICAgY29uc3QgeyBmaXJlYmFzZVVybCB9ID0gdGhpcy5jb25maWd1cmF0aW9uO1xyXG4gICAgY29uc3QgeyBzZE1lcmdlUERGIH0gPSBBUEk7XHJcbiAgICBjb25zdCB1cmwgPSBgJHtmaXJlYmFzZVVybH0ke3NkTWVyZ2VQREZ9YDtcclxuICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IHRoaXMuYXBpU2VydmljZS5wb3N0KHVybCwge1xyXG4gICAgICB1cmxzXHJcbiAgICB9LCBudWxsLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3BkZicgfSk7XHJcbiAgICB0aGlzLiNibG9iVG9TYXZlQXMoYmxvYiwgYCR7dXVpZC52NCgpfWApO1xyXG4gIH1cclxuXHJcbiAgI2Jsb2JUb1NhdmVBcyA9IChibG9iOiBCbG9iLCBmaWxlTmFtZTogc3RyaW5nID0gJ0V4cG9ydCcpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICBmaWxlTmFtZSA9IGZpbGVOYW1lLnJlcGxhY2UoLy54bHN4L2ksICcnKTtcclxuICAgICAgZmlsZU5hbWUgPSBmaWxlTmFtZS5yZXBsYWNlKC8ucGRmL2ksICcnKTtcclxuICAgICAgaWYgKGxpbmsuZG93bmxvYWQgIT09IHVuZGVmaW5lZCkgeyAvLyBmZWF0dXJlIGRldGVjdGlvblxyXG4gICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgdXJsKTtcclxuICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBgJHtmaWxlTmFtZX1fJHtuZXcgRGF0ZSgpLnRvRm9ybWF0KCd5eXl5X01NX2RkX0hIX21tJyl9YCk7XHJcbiAgICAgICAgbGluay5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgICAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdCbG9iVG9TYXZlQXMgZXJyb3InLCBlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUV4cG9ydEluZm8ge1xyXG4gIGRhdGE6IGFueVtdO1xyXG4gIHNoZWV0TmFtZT86IHN0cmluZztcclxuICBmaWxlTmFtZT86IHN0cmluZztcclxufVxyXG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _getExportableColumns, _getExportableGroups, _initTemplate;
|
|
1
|
+
var _getExportableColumns, _getExportableGroups, _getExportColumns, _initTemplate;
|
|
2
2
|
import { __awaiter, __classPrivateFieldGet } from "tslib";
|
|
3
3
|
import { Component, ViewChild, Output, EventEmitter, Input, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';
|
|
4
4
|
import { SdNotifyService } from '@sd-angular/core/notify';
|
|
@@ -82,24 +82,36 @@ export class SdPopupExport {
|
|
|
82
82
|
this.modal.open();
|
|
83
83
|
this.ref.detectChanges();
|
|
84
84
|
});
|
|
85
|
-
this
|
|
85
|
+
_getExportColumns.set(this, () => {
|
|
86
86
|
if (this.configuration) {
|
|
87
87
|
const { firstColumns, secondColumns } = this.configuration;
|
|
88
|
-
|
|
88
|
+
return [...firstColumns, ...secondColumns].map(e => (Object.assign(Object.assign({}, e), { data: this.columns.find(e1 => e1.field === e.field) }))).filter(e => !!e.data)
|
|
89
89
|
.map(e => e.data);
|
|
90
|
-
this.export.emit({
|
|
91
|
-
file: null,
|
|
92
|
-
columns,
|
|
93
|
-
isCSV
|
|
94
|
-
});
|
|
95
90
|
}
|
|
96
91
|
else {
|
|
97
|
-
this.
|
|
98
|
-
file: null,
|
|
99
|
-
columns: this.columns,
|
|
100
|
-
isCSV
|
|
101
|
-
});
|
|
92
|
+
return this.columns;
|
|
102
93
|
}
|
|
94
|
+
});
|
|
95
|
+
this.exportDefault = () => {
|
|
96
|
+
this.export.emit({
|
|
97
|
+
file: null,
|
|
98
|
+
columns: __classPrivateFieldGet(this, _getExportColumns).call(this),
|
|
99
|
+
isCSV: false
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
this.exportCSV = () => {
|
|
103
|
+
this.export.emit({
|
|
104
|
+
file: null,
|
|
105
|
+
columns: __classPrivateFieldGet(this, _getExportColumns).call(this),
|
|
106
|
+
isCSV: true
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
this.exportRaw = () => {
|
|
110
|
+
this.export.emit({
|
|
111
|
+
file: null,
|
|
112
|
+
columns: __classPrivateFieldGet(this, _getExportColumns).call(this),
|
|
113
|
+
isRaw: true
|
|
114
|
+
});
|
|
103
115
|
};
|
|
104
116
|
this.loadFiles = (group = null) => __awaiter(this, void 0, void 0, function* () {
|
|
105
117
|
this.selectedGroup = this.groups.find(e => e.code === group);
|
|
@@ -283,7 +295,7 @@ export class SdPopupExport {
|
|
|
283
295
|
ngAfterViewInit() {
|
|
284
296
|
}
|
|
285
297
|
}
|
|
286
|
-
_getExportableColumns = new WeakMap(), _getExportableGroups = new WeakMap(), _initTemplate = new WeakMap();
|
|
298
|
+
_getExportableColumns = new WeakMap(), _getExportableGroups = new WeakMap(), _getExportColumns = new WeakMap(), _initTemplate = new WeakMap();
|
|
287
299
|
SdPopupExport.decorators = [
|
|
288
300
|
{ type: Component, args: [{
|
|
289
301
|
selector: 'sd-popup-export',
|
|
@@ -306,4 +318,4 @@ SdPopupExport.propDecorators = {
|
|
|
306
318
|
_gridOption: [{ type: Input, args: ['gridOption',] }],
|
|
307
319
|
configuration: [{ type: Input }]
|
|
308
320
|
};
|
|
309
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtZXhwb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZ3JpZC1tYXRlcmlhbC8iLCJzb3VyY2VzIjpbInNyYy9saWIvY29tcG9uZW50cy9wb3B1cC1leHBvcnQvcG9wdXAtZXhwb3J0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlySixPQUFPLEVBQ0wsZUFBZSxFQUNoQixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDakIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ25CLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBSS9CLE9BQU8sRUFBZ0IsZUFBZSxFQUFrQixNQUFNLHlCQUF5QixDQUFDO0FBRXhGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVMzQyxNQUFNLE9BQU8sYUFBYTtJQStFeEIsWUFDVSxHQUFzQixFQUN0QixjQUFnQyxFQUNoQyxhQUE4QixFQUM5QixhQUE4QixFQUM5QixnQkFBb0M7UUFKcEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQWxGOUMsWUFBTyxHQUFxQixFQUFFLENBQUM7UUFDL0IsV0FBTSxHQUFvQixFQUFFLENBQUM7UUFFN0IsbUJBQWMs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WTtxQkFRdEIsTUFBTTswQkFHTixLQUFLLFNBQUMsWUFBWTs0QkFLbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBWaWV3Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5cclxuaW1wb3J0IHtcclxuICBTZE5vdGlmeVNlcnZpY2VcclxufSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL25vdGlmeSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIFNkTG9hZGluZ1NlcnZpY2VcclxufSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2xvYWRpbmcnO1xyXG5cclxuaW1wb3J0IHtcclxuICBTZFRyYW5zbGF0ZVNlcnZpY2VcclxufSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3RyYW5zbGF0ZSc7XHJcbmltcG9ydCBoYXNoIGZyb20gJ29iamVjdC1oYXNoJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0aW9uTGlzdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBTZEdyaWRNYXRlcmlhbE9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9ncmlkLW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFNkTW9kYWwgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL21vZGFsJztcclxuaW1wb3J0IHsgU2RFeHBvcnRGaWxlLCBTZEV4cG9ydFNlcnZpY2UsIFNkRXhwb3J0Q29sdW1uIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9leHBvcnQnO1xyXG5pbXBvcnQgeyBTZEdyb3VwRXhwb3J0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyaWQtZXhwb3J0Lm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTZEdyaWRDb25maWd1cmF0aW9uUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyaWQtY29uZmlnLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtcG9wdXAtZXhwb3J0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcG9wdXAtZXhwb3J0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wb3B1cC1leHBvcnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RQb3B1cEV4cG9ydCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgZ3JpZE9wdGlvbjogU2RHcmlkTWF0ZXJpYWxPcHRpb247XHJcbiAgY29sdW1uczogU2RFeHBvcnRDb2x1bW5bXSA9IFtdO1xyXG4gIGdyb3VwczogU2RHcm91cEV4cG9ydFtdID0gW107XHJcbiAgdGVtcGxhdGVOYW1lOiBzdHJpbmc7XHJcbiAgZW5hYmxlQ3JlYXRpbmcgPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdtb2RhbCcpIG1vZGFsOiBTZE1vZGFsO1xyXG4gIEBWaWV3Q2hpbGQoJ2xpc3RHcm91cHMnKSBsaXN0R3JvdXBzOiBNYXRTZWxlY3Rpb25MaXN0O1xyXG5cclxuICBzZWxlY3RlZDoge1xyXG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhblxyXG4gIH0gPSB7fTtcclxuICBmaWxlczogU2RFeHBvcnRGaWxlW10gPSBbXTtcclxuICBzZWxlY3RlZEdyb3VwOiBTZEdyb3VwRXhwb3J0O1xyXG5cclxuICBAT3V0cHV0KCkgZXhwb3J0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGZpbGU6IFNkRXhwb3J0RmlsZSwgY29sdW1uczogU2RFeHBvcnRDb2x1bW5bXSwgaXNDU1Y/OiBib29sZWFuIH0+KCk7XHJcbiAgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICBASW5wdXQoJ2dyaWRPcHRpb24nKSBzZXQgX2dyaWRPcHRpb24ob3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbikge1xyXG4gICAgdGhpcy5ncmlkT3B0aW9uID0gb3B0aW9uO1xyXG4gICAgdGhpcy5jb2x1bW5zID0gdGhpcy4jZ2V0RXhwb3J0YWJsZUNvbHVtbnMoKTtcclxuICAgIHRoaXMuZ3JvdXBzID0gdGhpcy4jZ2V0RXhwb3J0YWJsZUdyb3VwcygpO1xyXG4gIH1cclxuICBASW5wdXQoKSBjb25maWd1cmF0aW9uOiBTZEdyaWRDb25maWd1cmF0aW9uUmVzdWx0O1xyXG4gIHByaXZhdGUgZ2V0IGtleSgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgcHJlZml4ID0gJzkzODg5ZTc4LWY5NzEtNGExZC04YzczLWZlMjMyMWFmOTIzMyc7XHJcbiAgICBpZiAoIXRoaXMuZ3JpZE9wdGlvbj8uZXhwb3J0Py5rZXkpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaGFzaCh7XHJcbiAgICAgIHByZWZpeCxcclxuICAgICAga2V5OiB0aGlzLmdyaWRPcHRpb24/LmV4cG9ydD8ua2V5XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gICNnZXRFeHBvcnRhYmxlQ29sdW1ucyA9ICgpOiBTZEV4cG9ydENvbHVtbltdID0+IHtcclxuICAgIGNvbnN0IGNvbHVtbnM6IFNkRXhwb3J0Q29sdW1uW10gPSBbXTtcclxuICAgIHRoaXMuZ3JpZE9wdGlvbi5jb2x1bW5zLmZpbHRlcihlID0+ICFlLmV4cG9ydD8uZGlzYWJsZWQpLmZvckVhY2goY29sdW1uID0+IHtcclxuICAgICAgaWYgKGNvbHVtbi50eXBlID09PSAnaW1hZ2UnKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2NoaWxkcmVuJykge1xyXG4gICAgICAgIGNvbHVtbi5jaGlsZHJlbj8uZmlsdGVyKGUgPT4gIWUuZXhwb3J0Py5kaXNhYmxlZCkuZm9yRWFjaChjaGlsZENvbHVtbiA9PiB7XHJcbiAgICAgICAgICBpZiAoY2hpbGRDb2x1bW4udHlwZSA9PT0gJ2ltYWdlJykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb2x1bW5zLnB1c2goY2hpbGRDb2x1bW4pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY29sdW1uLnR5cGUgPT09ICdjaGlsZHJlbi1jb2wnKSB7XHJcbiAgICAgICAgY29sdW1uLmNoaWxkcmVuPy5maWx0ZXIoZSA9PiAhZS5leHBvcnQ/LmRpc2FibGVkKS5mb3JFYWNoKGNoaWxkQ29sdW1uID0+IHtcclxuICAgICAgICAgIGlmIChjaGlsZENvbHVtbi50eXBlID09PSAnaW1hZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbHVtbnMucHVzaChjaGlsZENvbHVtbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbHVtbnMucHVzaChjb2x1bW4pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gWy4uLmNvbHVtbnMsIC4uLih0aGlzLmdyaWRPcHRpb24uZXhwb3J0Py5jb2x1bW5zPy5maWx0ZXIoZSA9PiAhZS5leHBvcnQ/LmRpc2FibGVkKSB8fCBbXSldLm1hcChlID0+ICh7XHJcbiAgICAgIGZpZWxkOiBlLmZpZWxkLFxyXG4gICAgICB0aXRsZTogZS50aXRsZSxcclxuICAgICAgZGVzY3JpcHRpb246IGUuZGVzY3JpcHRpb24sXHJcbiAgICAgIHdpZHRoOiBlLndpZHRoXHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICAjZ2V0RXhwb3J0YWJsZUdyb3VwcyA9ICgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLmdyaWRPcHRpb24/LmV4cG9ydD8uZ3JvdXBzPy5maWx0ZXIoZSA9PiB7XHJcbiAgICAgIGNvbnN0IHBlcm1pc3Npb24gPSBlLnBlcm1pc3Npb247XHJcbiAgICAgIGlmICh0eXBlb2YgKHBlcm1pc3Npb24pID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgcmV0dXJuIHBlcm1pc3Npb24oKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcGVybWlzc2lvbjtcclxuICAgIH0pIHx8IFtdO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGxvYWRpbmdTZXJ2aWNlOiBTZExvYWRpbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBleHBvcnRTZXJ2aWNlOiBTZEV4cG9ydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5vdGlmeVNlcnZpY2U6IFNkTm90aWZ5U2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogU2RUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgfVxyXG5cclxuICBvcGVuID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgaWYgKCF0aGlzLmtleSkge1xyXG4gICAgICB0aGlzLmV4cG9ydERlZmF1bHQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZ3JvdXBzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLmdyaWRPcHRpb24/LmV4cG9ydD8uaGlkZU15VGVtcGxhdGVzKSB7XHJcbiAgICAgIHRoaXMubG9hZEZpbGVzKHRoaXMuZ3JvdXBzWzBdLmNvZGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sb2FkRmlsZXMobnVsbCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkID0ge307XHJcbiAgICB0aGlzLm1vZGFsLm9wZW4oKTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydERlZmF1bHQgPSAoaXNDU1Y6IGJvb2xlYW4gPSBmYWxzZSkgPT4ge1xyXG4gICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbikge1xyXG4gICAgICBjb25zdCB7IGZpcnN0Q29sdW1ucywgc2Vjb25kQ29sdW1ucyB9ID0gdGhpcy5jb25maWd1cmF0aW9uO1xyXG4gICAgICBjb25zdCBjb2x1bW5zID0gWy4uLmZpcnN0Q29sdW1ucywgLi4uc2Vjb25kQ29sdW1uc10ubWFwKGUgPT4gKHtcclxuICAgICAgICAuLi5lLFxyXG4gICAgICAgIGRhdGE6IHRoaXMuY29sdW1ucy5maW5kKGUxID0+IGUxLmZpZWxkID09PSBlLmZpZWxkKVxyXG4gICAgICB9KSkuZmlsdGVyKGUgPT4gISFlLmRhdGEpXHJcbiAgICAgICAgLm1hcChlID0+IGUuZGF0YSk7XHJcbiAgICAgIHRoaXMuZXhwb3J0LmVtaXQoe1xyXG4gICAgICAgIGZpbGU6IG51bGwsXHJcbiAgICAgICAgY29sdW1ucyxcclxuICAgICAgICBpc0NTVlxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZXhwb3J0LmVtaXQoe1xyXG4gICAgICAgIGZpbGU6IG51bGwsXHJcbiAgICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zLFxyXG4gICAgICAgIGlzQ1NWXHJcbiAgICAgIH0pO1xyXG4gICAgfSAgICAgIFxyXG4gIH1cclxuXHJcblxyXG4gIGxvYWRGaWxlcyA9IGFzeW5jIChncm91cDogc3RyaW5nID0gbnVsbCkgPT4ge1xyXG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwID0gdGhpcy5ncm91cHMuZmluZChlID0+IGUuY29kZSA9PT0gZ3JvdXApO1xyXG4gICAgdGhpcy5maWxlcyA9IGF3YWl0IHRoaXMuZXhwb3J0U2VydmljZS5maWxlc0luRm9sZGVyKHtcclxuICAgICAga2V5OiB0aGlzLmtleSxcclxuICAgICAgZ3JvdXBcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICAjaW5pdFRlbXBsYXRlID0gYXN5bmMgKGZpbGVOYW1lPzogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBzaGVldHM6IHtcclxuICAgICAgbmFtZTogc3RyaW5nLFxyXG4gICAgICBpdGVtczogYW55W10sXHJcbiAgICAgIGZpZWxkczogc3RyaW5nW11cclxuICAgIH1bXSA9IFtdO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5ncmlkT3B0aW9uPy5leHBvcnQ/LnNoZWV0cykpIHtcclxuICAgICAgZm9yIChjb25zdCBzaGVldCBvZiB0aGlzLmdyaWRPcHRpb24uZXhwb3J0LnNoZWV0cykge1xyXG4gICAgICAgIGlmIChzaGVldC5uYW1lICYmIHNoZWV0Lml0ZW1zICYmIHNoZWV0LmZpZWxkcykge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2hlZXQuaXRlbXMpKSB7XHJcbiAgICAgICAgICAgIHNoZWV0cy5wdXNoKHtcclxuICAgICAgICAgICAgICBuYW1lOiBzaGVldC5uYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1zOiBzaGVldC5pdGVtcyxcclxuICAgICAgICAgICAgICBmaWVsZHM6IHNoZWV0LmZpZWxkc1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHNoZWV0cy5wdXNoKHtcclxuICAgICAgICAgICAgICBuYW1lOiBzaGVldC5uYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1zOiBhd2FpdCBzaGVldC5pdGVtcygpLFxyXG4gICAgICAgICAgICAgIGZpZWxkczogc2hlZXQuZmllbGRzXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhwb3J0U2VydmljZS5nZW5lcmF0ZVRlbXBsYXRlKHtcclxuICAgICAgZmlsZU5hbWU6IGZpbGVOYW1lIHx8IHRoaXMuZ3JpZE9wdGlvbj8uZXhwb3J0Py5maWxlTmFtZSxcclxuICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zLFxyXG4gICAgICBzaGVldHNcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVUZW1wbGF0ZSA9IGFzeW5jICgpID0+IHtcclxuICAgIHRoaXMubG9hZGluZ1NlcnZpY2Uuc3RhcnQoKTtcclxuICAgIGF3YWl0IHRoaXMuI2luaXRUZW1wbGF0ZSgpLmZpbmFsbHkodGhpcy5sb2FkaW5nU2VydmljZS5zdG9wKTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlQW5kVXBsb2FkVGVtcGxhdGUgPSBhc3luYyAoZmlsZU5hbWU/OiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IHNoZWV0czoge1xyXG4gICAgICBuYW1lOiBzdHJpbmcsXHJcbiAgICAgIGl0ZW1zOiBhbnlbXSxcclxuICAgICAgZmllbGRzOiBzdHJpbmdbXVxyXG4gICAgfVtdID0gW107XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmdyaWRPcHRpb24/LmV4cG9ydD8uc2hlZXRzKSkge1xyXG4gICAgICBmb3IgKGNvbnN0IHNoZWV0IG9mIHRoaXMuZ3JpZE9wdGlvbj8uZXhwb3J0Py5zaGVldHMpIHtcclxuICAgICAgICBpZiAoc2hlZXQubmFtZSAmJiBzaGVldC5pdGVtcyAmJiBzaGVldC5maWVsZHMpIHtcclxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNoZWV0Lml0ZW1zKSkge1xyXG4gICAgICAgICAgICBzaGVldHMucHVzaCh7XHJcbiAgICAgICAgICAgICAgbmFtZTogc2hlZXQubmFtZSxcclxuICAgICAgICAgICAgICBpdGVtczogc2hlZXQuaXRlbXMsXHJcbiAgICAgICAgICAgICAgZmllbGRzOiBzaGVldC5maWVsZHNcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzaGVldHMucHVzaCh7XHJcbiAgICAgICAgICAgICAgbmFtZTogc2hlZXQubmFtZSxcclxuICAgICAgICAgICAgICBpdGVtczogYXdhaXQgc2hlZXQuaXRlbXMoKSxcclxuICAgICAgICAgICAgICBmaWVsZHM6IHNoZWV0LmZpZWxkc1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmV4cG9ydFNlcnZpY2UuZ2VuZXJhdGVVcGxvYWRUZW1wbGF0ZSh7XHJcbiAgICAgIGtleTogdGhpcy5rZXksXHJcbiAgICAgIHRlbXBsYXRlOiB7XHJcbiAgICAgICAgZmlsZU5hbWU6IGZpbGVOYW1lIHx8IHRoaXMuZ3JpZE9wdGlvbj8uZXhwb3J0Py5maWxlTmFtZSxcclxuICAgICAgICBjb2x1bW5zOiB0aGlzLmNvbHVtbnMuZmlsdGVyKGUgPT4gdGhpcy5zZWxlY3RlZFtlLmZpZWxkXSksXHJcbiAgICAgICAgc2hlZXRzXHJcbiAgICAgIH0sXHJcbiAgICAgIGdyb3VwOiB0aGlzLnNlbGVjdGVkR3JvdXA/LmNvZGVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25FeHBvcnQgPSAoZmlsZTogU2RFeHBvcnRGaWxlKSA9PiB7XHJcbiAgICB0aGlzLmV4cG9ydC5lbWl0KHtcclxuICAgICAgZmlsZSxcclxuICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zXHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHVwbG9hZFRlbXBsYXRlID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IGF3YWl0IHRoaXMuZXhwb3J0U2VydmljZS51cGxvYWRUZW1wbGF0ZSh7XHJcbiAgICAgIGtleTogdGhpcy5rZXksXHJcbiAgICAgIGdyb3VwOiB0aGlzLnNlbGVjdGVkR3JvdXA/LmNvZGUsXHJcbiAgICAgIHZhbGlkYXRvcjogdGhpcy5ncmlkT3B0aW9uPy5leHBvcnQ/LnZhbGlkYXRvcnNcclxuICAgIH0pO1xyXG4gICAgaWYgKGZpbGUpIHtcclxuICAgICAgdGhpcy5maWxlcyA9IFsuLi50aGlzLmZpbGVzLCBmaWxlXTtcclxuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRmlsZSA9IChmaWxlOiBTZEV4cG9ydEZpbGUpID0+IHtcclxuICAgIHRoaXMubm90aWZ5U2VydmljZS5jb25maXJtKHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ1JlbW92ZSB0ZW1wbGF0ZScpKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5leHBvcnRTZXJ2aWNlLnJlbW92ZUZpbGUoe1xyXG4gICAgICAgIGtleTogdGhpcy5rZXksXHJcbiAgICAgICAgZmlsZU5hbWU6IGZpbGUuZmlsZU5hbWUsXHJcbiAgICAgICAgZ3JvdXA6IHRoaXMuc2VsZWN0ZWRHcm91cD8uY29kZSB8fCBudWxsXHJcbiAgICAgIH0pO1xyXG4gICAgICBjb25zdCBpZHggPSB0aGlzLmZpbGVzLmluZGV4T2YoZmlsZSk7XHJcbiAgICAgIHRoaXMuZmlsZXMuc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgIHRoaXMuZmlsZXMgPSBbLi4udGhpcy5maWxlc107XHJcbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlVGVtcGxhdGUgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCB7IHRyYW5zbGF0ZSB9ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlO1xyXG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5jb2x1bW5zLnNvbWUoZSA9PiB0aGlzLnNlbGVjdGVkW2UuZmllbGRdKSkge1xyXG4gICAgICB0aGlzLm5vdGlmeVNlcnZpY2Uubm90aWZ5Lndhcm5pbmcodHJhbnNsYXRlKCdQbGVhc2Ugc2VsZWN0IGNvbHVtbnMnKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMubG9hZGluZ1NlcnZpY2Uuc3RhcnQoKTtcclxuICAgIGNvbnN0IGZpbGVOYW1lID0gdGhpcy50ZW1wbGF0ZU5hbWUgKyAnLnhsc3gnO1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKHRoaXMuZ3JpZE9wdGlvbj8uZXhwb3J0Py52YWxpZGF0b3JzPy4oZmlsZU5hbWUpKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZnlTZXJ2aWNlLm5vdGlmeS53YXJuaW5nKHRoaXMuZ3JpZE9wdGlvbj8uZXhwb3J0Py52YWxpZGF0b3JzKGZpbGVOYW1lKSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZ2VuZXJhdGVBbmRVcGxvYWRUZW1wbGF0ZShmaWxlTmFtZSk7XHJcbiAgICAgIGlmIChyZXN1bHQ/LmZpbGVQYXRoKSB7XHJcbiAgICAgICAgY29uc3QgZmlsZTogU2RFeHBvcnRGaWxlID0ge1xyXG4gICAgICAgICAgZmlsZVBhdGg6IHJlc3VsdC5maWxlUGF0aCxcclxuICAgICAgICAgIGZpbGVOYW1lOiByZXN1bHQuZmlsZU5hbWVcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMub25FeHBvcnQoZmlsZSk7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZU5hbWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZW5hYmxlQ3JlYXRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZpbGVzID0gWy4uLnRoaXMuZmlsZXMsIGZpbGVdO1xyXG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgdGhpcy5sb2FkaW5nU2VydmljZS5zdG9wKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZUdyb3VwID0gKCkgPT4ge1xyXG4gICAgdGhpcy5sb2FkRmlsZXModGhpcy5saXN0R3JvdXBzPy5zZWxlY3RlZE9wdGlvbnM/LnNlbGVjdGVkWzBdPy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0b3JUZW1wbGF0ZU5hbWUgPSAodmFsOiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IHsgdHJhbnNsYXRlIH0gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2U7XHJcbiAgICBjb25zdCByZWdleCA9IC9eW0EtWmEtejAtOSBfXSpbQS1aYS16MC05XVtBLVphLXowLTkgX10qJC87XHJcbiAgICBpZiAoIXZhbCkge1xyXG4gICAgICByZXR1cm4gdHJhbnNsYXRlKCdQbGVhc2UgZW50ZXIgeW91ciB0ZW1wbGF0ZSBuYW1lJyk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsLmxlbmd0aCA+IDUwKSB7XHJcbiAgICAgIHJldHVybiB0cmFuc2xhdGUoJ1RlbXBsYXRlIG5hbWUgaXMgdG9vIGxvbmcnKTtcclxuICAgIH1cclxuICAgIGlmICghcmVnZXgudGVzdCh2YWwpKSB7XHJcbiAgICAgIHJldHVybiB0cmFuc2xhdGUoJ1RlbXBsYXRlIG5hbWUgb25seSBjb250YWlucyBsZXR0ZXJzLCBudW1iZXJzIGFuZCBzcGFjZXMnKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
321
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtZXhwb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZ3JpZC1tYXRlcmlhbC8iLCJzb3VyY2VzIjpbInNyYy9saWIvY29tcG9uZW50cy9wb3B1cC1leHBvcnQvcG9wdXAtZXhwb3J0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlySixPQUFPLEVBQ0wsZUFBZSxFQUNoQixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDakIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ25CLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBSS9CLE9BQU8sRUFBZ0IsZUFBZSxFQUFrQixNQUFNLHlCQUF5QixDQUFDO0FBRXhGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVMzQyxNQUFNLE9BQU8sYUFBYTtJQStFeEIsWUFDVSxHQUFzQixFQUN0QixjQUFnQyxFQUNoQyxhQUE4QixFQUM5QixhQUE4QixFQUM5QixnQkFBb0M7UUFKcEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQWxGOUMsWUFBTyxHQUFxQixFQUFFLENBQUM7UUFDL0IsV0FBTSxHQUFvQixFQUFFLENBQUM7UUFFN0IsbUJBQWMs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QUUsTUFBTSwwQ0FBRSxHQUFHO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFzREQsUUFBUTtJQUNSLENBQUM7SUFFRCxlQUFlO0lBQ2YsQ0FBQzs7OztZQWpHRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IseXpMQUE0QztnQkFFNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7WUE3QmtGLGlCQUFpQjtZQVNsRyxnQkFBZ0I7WUFVSyxlQUFlO1lBZHBDLGVBQWU7WUFRZixrQkFBa0I7OztvQkF1QmpCLFNBQVMsU0FBQyxPQUFPO3lCQUNqQixTQUFTLFNBQUMsWUFBWTtxQkFRdEIsTUFBTTswQkFHTixLQUFLLFNBQUMsWUFBWTs0QkFLbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBWaWV3Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5cclxuaW1wb3J0IHtcclxuICBTZE5vdGlmeVNlcnZpY2VcclxufSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL25vdGlmeSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIFNkTG9hZGluZ1NlcnZpY2VcclxufSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2xvYWRpbmcnO1xyXG5cclxuaW1wb3J0IHtcclxuICBTZFRyYW5zbGF0ZVNlcnZpY2VcclxufSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3RyYW5zbGF0ZSc7XHJcbmltcG9ydCBoYXNoIGZyb20gJ29iamVjdC1oYXNoJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0aW9uTGlzdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBTZEdyaWRNYXRlcmlhbE9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9ncmlkLW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFNkTW9kYWwgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL21vZGFsJztcclxuaW1wb3J0IHsgU2RFeHBvcnRGaWxlLCBTZEV4cG9ydFNlcnZpY2UsIFNkRXhwb3J0Q29sdW1uIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9leHBvcnQnO1xyXG5pbXBvcnQgeyBTZEdyb3VwRXhwb3J0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyaWQtZXhwb3J0Lm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTZEdyaWRDb25maWd1cmF0aW9uUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyaWQtY29uZmlnLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtcG9wdXAtZXhwb3J0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcG9wdXAtZXhwb3J0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wb3B1cC1leHBvcnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RQb3B1cEV4cG9ydCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgZ3JpZE9wdGlvbjogU2RHcmlkTWF0ZXJpYWxPcHRpb247XHJcbiAgY29sdW1uczogU2RFeHBvcnRDb2x1bW5bXSA9IFtdO1xyXG4gIGdyb3VwczogU2RHcm91cEV4cG9ydFtdID0gW107XHJcbiAgdGVtcGxhdGVOYW1lOiBzdHJpbmc7XHJcbiAgZW5hYmxlQ3JlYXRpbmcgPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdtb2RhbCcpIG1vZGFsOiBTZE1vZGFsO1xyXG4gIEBWaWV3Q2hpbGQoJ2xpc3RHcm91cHMnKSBsaXN0R3JvdXBzOiBNYXRTZWxlY3Rpb25MaXN0O1xyXG5cclxuICBzZWxlY3RlZDoge1xyXG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhblxyXG4gIH0gPSB7fTtcclxuICBmaWxlczogU2RFeHBvcnRGaWxlW10gPSBbXTtcclxuICBzZWxlY3RlZEdyb3VwOiBTZEdyb3VwRXhwb3J0O1xyXG5cclxuICBAT3V0cHV0KCkgZXhwb3J0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGZpbGU6IFNkRXhwb3J0RmlsZSwgY29sdW1uczogU2RFeHBvcnRDb2x1bW5bXSwgaXNDU1Y/OiBib29sZWFuLCBpc1Jhdz86IGJvb2xlYW4gfT4oKTtcclxuICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gIEBJbnB1dCgnZ3JpZE9wdGlvbicpIHNldCBfZ3JpZE9wdGlvbihvcHRpb246IFNkR3JpZE1hdGVyaWFsT3B0aW9uKSB7XHJcbiAgICB0aGlzLmdyaWRPcHRpb24gPSBvcHRpb247XHJcbiAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLiNnZXRFeHBvcnRhYmxlQ29sdW1ucygpO1xyXG4gICAgdGhpcy5ncm91cHMgPSB0aGlzLiNnZXRFeHBvcnRhYmxlR3JvdXBzKCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGNvbmZpZ3VyYXRpb246IFNkR3JpZENvbmZpZ3VyYXRpb25SZXN1bHQ7XHJcbiAgcHJpdmF0ZSBnZXQga2V5KCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBwcmVmaXggPSAnOTM4ODllNzgtZjk3MS00YTFkLThjNzMtZmUyMzIxYWY5MjMzJztcclxuICAgIGlmICghdGhpcy5ncmlkT3B0aW9uPy5leHBvcnQ/LmtleSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiBoYXNoKHtcclxuICAgICAgcHJlZml4LFxyXG4gICAgICBrZXk6IHRoaXMuZ3JpZE9wdGlvbj8uZXhwb3J0Py5rZXlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgI2dldEV4cG9ydGFibGVDb2x1bW5zID0gKCk6IFNkRXhwb3J0Q29sdW1uW10gPT4ge1xyXG4gICAgY29uc3QgY29sdW1uczogU2RFeHBvcnRDb2x1bW5bXSA9IFtdO1xyXG4gICAgdGhpcy5ncmlkT3B0aW9uLmNvbHVtbnMuZmlsdGVyKGUgPT4gIWUuZXhwb3J0Py5kaXNhYmxlZCkuZm9yRWFjaChjb2x1bW4gPT4ge1xyXG4gICAgICBpZiAoY29sdW1uLnR5cGUgPT09ICdpbWFnZScpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvbHVtbi50eXBlID09PSAnY2hpbGRyZW4nKSB7XHJcbiAgICAgICAgY29sdW1uLmNoaWxkcmVuPy5maWx0ZXIoZSA9PiAhZS5leHBvcnQ/LmRpc2FibGVkKS5mb3JFYWNoKGNoaWxkQ29sdW1uID0+IHtcclxuICAgICAgICAgIGlmIChjaGlsZENvbHVtbi50eXBlID09PSAnaW1hZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbHVtbnMucHVzaChjaGlsZENvbHVtbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2NoaWxkcmVuLWNvbCcpIHtcclxuICAgICAgICBjb2x1bW4uY2hpbGRyZW4/LmZpbHRlcihlID0+ICFlLmV4cG9ydD8uZGlzYWJsZWQpLmZvckVhY2goY2hpbGRDb2x1bW4gPT4ge1xyXG4gICAgICAgICAgaWYgKGNoaWxkQ29sdW1uLnR5cGUgPT09ICdpbWFnZScpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29sdW1ucy5wdXNoKGNoaWxkQ29sdW1uKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29sdW1ucy5wdXNoKGNvbHVtbik7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBbLi4uY29sdW1ucywgLi4uKHRoaXMuZ3JpZE9wdGlvbi5leHBvcnQ/LmNvbHVtbnM/LmZpbHRlcihlID0+ICFlLmV4cG9ydD8uZGlzYWJsZWQpIHx8IFtdKV0ubWFwKGUgPT4gKHtcclxuICAgICAgZmllbGQ6IGUuZmllbGQsXHJcbiAgICAgIHRpdGxlOiBlLnRpdGxlLFxyXG4gICAgICBkZXNjcmlwdGlvbjogZS5kZXNjcmlwdGlvbixcclxuICAgICAgd2lkdGg6IGUud2lkdGhcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gICNnZXRFeHBvcnRhYmxlR3JvdXBzID0gKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ3JpZE9wdGlvbj8uZXhwb3J0Py5ncm91cHM/LmZpbHRlcihlID0+IHtcclxuICAgICAgY29uc3QgcGVybWlzc2lvbiA9IGUucGVybWlzc2lvbjtcclxuICAgICAgaWYgKHR5cGVvZiAocGVybWlzc2lvbikgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICByZXR1cm4gcGVybWlzc2lvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBwZXJtaXNzaW9uO1xyXG4gICAgfSkgfHwgW107XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgbG9hZGluZ1NlcnZpY2U6IFNkTG9hZGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGV4cG9ydFNlcnZpY2U6IFNkRXhwb3J0U2VydmljZSxcclxuICAgIHByaXZhdGUgbm90aWZ5U2VydmljZTogU2ROb3RpZnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBTZFRyYW5zbGF0ZVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICB9XHJcblxyXG4gIG9wZW4gPSBhc3luYyAoKSA9PiB7XHJcbiAgICBpZiAoIXRoaXMua2V5KSB7XHJcbiAgICAgIHRoaXMuZXhwb3J0RGVmYXVsdCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ncm91cHMubGVuZ3RoID09PSAxICYmIHRoaXMuZ3JpZE9wdGlvbj8uZXhwb3J0Py5oaWRlTXlUZW1wbGF0ZXMpIHtcclxuICAgICAgdGhpcy5sb2FkRmlsZXModGhpcy5ncm91cHNbMF0uY29kZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvYWRGaWxlcyhudWxsKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWQgPSB7fTtcclxuICAgIHRoaXMubW9kYWwub3BlbigpO1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgI2dldEV4cG9ydENvbHVtbnMgPSAoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uKSB7XHJcbiAgICAgIGNvbnN0IHsgZmlyc3RDb2x1bW5zLCBzZWNvbmRDb2x1bW5zIH0gPSB0aGlzLmNvbmZpZ3VyYXRpb247XHJcbiAgICAgIHJldHVybiBbLi4uZmlyc3RDb2x1bW5zLCAuLi5zZWNvbmRDb2x1bW5zXS5tYXAoZSA9PiAoe1xyXG4gICAgICAgIC4uLmUsXHJcbiAgICAgICAgZGF0YTogdGhpcy5jb2x1bW5zLmZpbmQoZTEgPT4gZTEuZmllbGQgPT09IGUuZmllbGQpXHJcbiAgICAgIH0pKS5maWx0ZXIoZSA9PiAhIWUuZGF0YSlcclxuICAgICAgICAubWFwKGUgPT4gZS5kYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbHVtbnM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHBvcnREZWZhdWx0ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5leHBvcnQuZW1pdCh7XHJcbiAgICAgIGZpbGU6IG51bGwsXHJcbiAgICAgIGNvbHVtbnM6IHRoaXMuI2dldEV4cG9ydENvbHVtbnMoKSxcclxuICAgICAgaXNDU1Y6IGZhbHNlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGV4cG9ydENTViA9ICgpID0+IHtcclxuICAgIHRoaXMuZXhwb3J0LmVtaXQoe1xyXG4gICAgICBmaWxlOiBudWxsLFxyXG4gICAgICBjb2x1bW5zOiB0aGlzLiNnZXRFeHBvcnRDb2x1bW5zKCksXHJcbiAgICAgIGlzQ1NWOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGV4cG9ydFJhdyA9ICgpID0+IHtcclxuICAgIHRoaXMuZXhwb3J0LmVtaXQoe1xyXG4gICAgICBmaWxlOiBudWxsLFxyXG4gICAgICBjb2x1bW5zOiB0aGlzLiNnZXRFeHBvcnRDb2x1bW5zKCksXHJcbiAgICAgIGlzUmF3OiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvYWRGaWxlcyA9IGFzeW5jIChncm91cDogc3RyaW5nID0gbnVsbCkgPT4ge1xyXG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwID0gdGhpcy5ncm91cHMuZmluZChlID0+IGUuY29kZSA9PT0gZ3JvdXApO1xyXG4gICAgdGhpcy5maWxlcyA9IGF3YWl0IHRoaXMuZXhwb3J0U2VydmljZS5maWxlc0luRm9sZGVyKHtcclxuICAgICAga2V5OiB0aGlzLmtleSxcclxuICAgICAgZ3JvdXBcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICAjaW5pdFRlbXBsYXRlID0gYXN5bmMgKGZpbGVOYW1lPzogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBzaGVldHM6IHtcclxuICAgICAgbmFtZTogc3RyaW5nLFxyXG4gICAgICBpdGVtczogYW55W10sXHJcbiAgICAgIGZpZWxkczogc3RyaW5nW11cclxuICAgIH1bXSA9IFtdO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5ncmlkT3B0aW9uPy5leHBvcnQ/LnNoZWV0cykpIHtcclxuICAgICAgZm9yIChjb25zdCBzaGVldCBvZiB0aGlzLmdyaWRPcHRpb24uZXhwb3J0LnNoZWV0cykge1xyXG4gICAgICAgIGlmIChzaGVldC5uYW1lICYmIHNoZWV0Lml0ZW1zICYmIHNoZWV0LmZpZWxkcykge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2hlZXQuaXRlbXMpKSB7XHJcbiAgICAgICAgICAgIHNoZWV0cy5wdXNoKHtcclxuICAgICAgICAgICAgICBuYW1lOiBzaGVldC5uYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1zOiBzaGVldC5pdGVtcyxcclxuICAgICAgICAgICAgICBmaWVsZHM6IHNoZWV0LmZpZWxkc1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHNoZWV0cy5wdXNoKHtcclxuICAgICAgICAgICAgICBuYW1lOiBzaGVldC5uYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1zOiBhd2FpdCBzaGVldC5pdGVtcygpLFxyXG4gICAgICAgICAgICAgIGZpZWxkczogc2hlZXQuZmllbGRzXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhwb3J0U2VydmljZS5nZW5lcmF0ZVRlbXBsYXRlKHtcclxuICAgICAgZmlsZU5hbWU6IGZpbGVOYW1lIHx8IHRoaXMuZ3JpZE9wdGlvbj8uZXhwb3J0Py5maWxlTmFtZSxcclxuICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zLFxyXG4gICAgICBzaGVldHNcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVUZW1wbGF0ZSA9IGFzeW5jICgpID0+IHtcclxuICAgIHRoaXMubG9hZGluZ1NlcnZpY2Uuc3RhcnQoKTtcclxuICAgIGF3YWl0IHRoaXMuI2luaXRUZW1wbGF0ZSgpLmZpbmFsbHkodGhpcy5sb2FkaW5nU2VydmljZS5zdG9wKTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlQW5kVXBsb2FkVGVtcGxhdGUgPSBhc3luYyAoZmlsZU5hbWU/OiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IHNoZWV0czoge1xyXG4gICAgICBuYW1lOiBzdHJpbmcsXHJcbiAgICAgIGl0ZW1zOiBhbnlbXSxcclxuICAgICAgZmllbGRzOiBzdHJpbmdbXVxyXG4gICAgfVtdID0gW107XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmdyaWRPcHRpb24/LmV4cG9ydD8uc2hlZXRzKSkge1xyXG4gICAgICBmb3IgKGNvbnN0IHNoZWV0IG9mIHRoaXMuZ3JpZE9wdGlvbj8uZXhwb3J0Py5zaGVldHMpIHtcclxuICAgICAgICBpZiAoc2hlZXQubmFtZSAmJiBzaGVldC5pdGVtcyAmJiBzaGVldC5maWVsZHMpIHtcclxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNoZWV0Lml0ZW1zKSkge1xyXG4gICAgICAgICAgICBzaGVldHMucHVzaCh7XHJcbiAgICAgICAgICAgICAgbmFtZTogc2hlZXQubmFtZSxcclxuICAgICAgICAgICAgICBpdGVtczogc2hlZXQuaXRlbXMsXHJcbiAgICAgICAgICAgICAgZmllbGRzOiBzaGVldC5maWVsZHNcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzaGVldHMucHVzaCh7XHJcbiAgICAgICAgICAgICAgbmFtZTogc2hlZXQubmFtZSxcclxuICAgICAgICAgICAgICBpdGVtczogYXdhaXQgc2hlZXQuaXRlbXMoKSxcclxuICAgICAgICAgICAgICBmaWVsZHM6IHNoZWV0LmZpZWxkc1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmV4cG9ydFNlcnZpY2UuZ2VuZXJhdGVVcGxvYWRUZW1wbGF0ZSh7XHJcbiAgICAgIGtleTogdGhpcy5rZXksXHJcbiAgICAgIHRlbXBsYXRlOiB7XHJcbiAgICAgICAgZmlsZU5hbWU6IGZpbGVOYW1lIHx8IHRoaXMuZ3JpZE9wdGlvbj8uZXhwb3J0Py5maWxlTmFtZSxcclxuICAgICAgICBjb2x1bW5zOiB0aGlzLmNvbHVtbnMuZmlsdGVyKGUgPT4gdGhpcy5zZWxlY3RlZFtlLmZpZWxkXSksXHJcbiAgICAgICAgc2hlZXRzXHJcbiAgICAgIH0sXHJcbiAgICAgIGdyb3VwOiB0aGlzLnNlbGVjdGVkR3JvdXA/LmNvZGVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25FeHBvcnQgPSAoZmlsZTogU2RFeHBvcnRGaWxlKSA9PiB7XHJcbiAgICB0aGlzLmV4cG9ydC5lbWl0KHtcclxuICAgICAgZmlsZSxcclxuICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zXHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHVwbG9hZFRlbXBsYXRlID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IGF3YWl0IHRoaXMuZXhwb3J0U2VydmljZS51cGxvYWRUZW1wbGF0ZSh7XHJcbiAgICAgIGtleTogdGhpcy5rZXksXHJcbiAgICAgIGdyb3VwOiB0aGlzLnNlbGVjdGVkR3JvdXA/LmNvZGUsXHJcbiAgICAgIHZhbGlkYXRvcjogdGhpcy5ncmlkT3B0aW9uPy5leHBvcnQ/LnZhbGlkYXRvcnNcclxuICAgIH0pO1xyXG4gICAgaWYgKGZpbGUpIHtcclxuICAgICAgdGhpcy5maWxlcyA9IFsuLi50aGlzLmZpbGVzLCBmaWxlXTtcclxuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRmlsZSA9IChmaWxlOiBTZEV4cG9ydEZpbGUpID0+IHtcclxuICAgIHRoaXMubm90aWZ5U2VydmljZS5jb25maXJtKHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ1JlbW92ZSB0ZW1wbGF0ZScpKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5leHBvcnRTZXJ2aWNlLnJlbW92ZUZpbGUoe1xyXG4gICAgICAgIGtleTogdGhpcy5rZXksXHJcbiAgICAgICAgZmlsZU5hbWU6IGZpbGUuZmlsZU5hbWUsXHJcbiAgICAgICAgZ3JvdXA6IHRoaXMuc2VsZWN0ZWRHcm91cD8uY29kZSB8fCBudWxsXHJcbiAgICAgIH0pO1xyXG4gICAgICBjb25zdCBpZHggPSB0aGlzLmZpbGVzLmluZGV4T2YoZmlsZSk7XHJcbiAgICAgIHRoaXMuZmlsZXMuc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgIHRoaXMuZmlsZXMgPSBbLi4udGhpcy5maWxlc107XHJcbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlVGVtcGxhdGUgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCB7IHRyYW5zbGF0ZSB9ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlO1xyXG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5jb2x1bW5zLnNvbWUoZSA9PiB0aGlzLnNlbGVjdGVkW2UuZmllbGRdKSkge1xyXG4gICAgICB0aGlzLm5vdGlmeVNlcnZpY2Uubm90aWZ5Lndhcm5pbmcodHJhbnNsYXRlKCdQbGVhc2Ugc2VsZWN0IGNvbHVtbnMnKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMubG9hZGluZ1NlcnZpY2Uuc3RhcnQoKTtcclxuICAgIGNvbnN0IGZpbGVOYW1lID0gdGhpcy50ZW1wbGF0ZU5hbWUgKyAnLnhsc3gnO1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKHRoaXMuZ3JpZE9wdGlvbj8uZXhwb3J0Py52YWxpZGF0b3JzPy4oZmlsZU5hbWUpKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZnlTZXJ2aWNlLm5vdGlmeS53YXJuaW5nKHRoaXMuZ3JpZE9wdGlvbj8uZXhwb3J0Py52YWxpZGF0b3JzKGZpbGVOYW1lKSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZ2VuZXJhdGVBbmRVcGxvYWRUZW1wbGF0ZShmaWxlTmFtZSk7XHJcbiAgICAgIGlmIChyZXN1bHQ/LmZpbGVQYXRoKSB7XHJcbiAgICAgICAgY29uc3QgZmlsZTogU2RFeHBvcnRGaWxlID0ge1xyXG4gICAgICAgICAgZmlsZVBhdGg6IHJlc3VsdC5maWxlUGF0aCxcclxuICAgICAgICAgIGZpbGVOYW1lOiByZXN1bHQuZmlsZU5hbWVcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMub25FeHBvcnQoZmlsZSk7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZU5hbWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZW5hYmxlQ3JlYXRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZpbGVzID0gWy4uLnRoaXMuZmlsZXMsIGZpbGVdO1xyXG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgdGhpcy5sb2FkaW5nU2VydmljZS5zdG9wKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZUdyb3VwID0gKCkgPT4ge1xyXG4gICAgdGhpcy5sb2FkRmlsZXModGhpcy5saXN0R3JvdXBzPy5zZWxlY3RlZE9wdGlvbnM/LnNlbGVjdGVkWzBdPy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0b3JUZW1wbGF0ZU5hbWUgPSAodmFsOiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IHsgdHJhbnNsYXRlIH0gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2U7XHJcbiAgICBjb25zdCByZWdleCA9IC9eW0EtWmEtejAtOSBfXSpbQS1aYS16MC05XVtBLVphLXowLTkgX10qJC87XHJcbiAgICBpZiAoIXZhbCkge1xyXG4gICAgICByZXR1cm4gdHJhbnNsYXRlKCdQbGVhc2UgZW50ZXIgeW91ciB0ZW1wbGF0ZSBuYW1lJyk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsLmxlbmd0aCA+IDUwKSB7XHJcbiAgICAgIHJldHVybiB0cmFuc2xhdGUoJ1RlbXBsYXRlIG5hbWUgaXMgdG9vIGxvbmcnKTtcclxuICAgIH1cclxuICAgIGlmICghcmVnZXgudGVzdCh2YWwpKSB7XHJcbiAgICAgIHJldHVybiB0cmFuc2xhdGUoJ1RlbXBsYXRlIG5hbWUgb25seSBjb250YWlucyBsZXR0ZXJzLCBudW1iZXJzIGFuZCBzcGFjZXMnKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG4iXX0=
|