ntk-cms-api 1.2.234 → 1.2.235
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/esm2020/lib/service/base/apiCmsServerBase.service.mjs +2 -2
- package/esm2020/lib/service/core-main/coreEnum.service.mjs +2 -2
- package/fesm2015/ntk-cms-api.mjs +2 -2
- package/fesm2015/ntk-cms-api.mjs.map +1 -1
- package/fesm2020/ntk-cms-api.mjs +2 -2
- package/fesm2020/ntk-cms-api.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -60,7 +60,7 @@ export class ApiCmsServerBase extends ApiServerBase {
|
|
|
60
60
|
do {
|
|
61
61
|
if (this.cachApiResult[serviceNameKay]?.isSuccess)
|
|
62
62
|
return of(this.cachApiResult[serviceNameKay]);
|
|
63
|
-
} while (this.cachApiCallDate[serviceNameKay] && (
|
|
63
|
+
} while (this.cachApiCallDate[serviceNameKay] && (new Date().getTime() - this.cachApiCallDate[serviceNameKay].getTime()) < this.cashApiSeconds);
|
|
64
64
|
this.cachApiCallDate[serviceNameKay] = new Date();
|
|
65
65
|
}
|
|
66
66
|
//! optimaze call api
|
|
@@ -441,4 +441,4 @@ ApiCmsServerBase.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ver
|
|
|
441
441
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ApiCmsServerBase, decorators: [{
|
|
442
442
|
type: Injectable
|
|
443
443
|
}] });
|
|
444
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpQ21zU2VydmVyQmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnRrLWNtcy1hcGkvc3JjL2xpYi9zZXJ2aWNlL2Jhc2UvYXBpQ21zU2VydmVyQmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsS0FBSyxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8zQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBYzNFLE1BQU0sT0FBTyxnQkFBNkMsU0FBUSxhQUFhO0lBQzdFLGdCQUFnQjtRQUNkLDJCQUEyQjtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxZQUFZLEVBQUU7WUFDckUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7U0FDM0IsQ0FBQzthQUNELElBQUk7UUFDSCwrQkFBK0I7UUFDL0IsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUNELHVCQUF1QjtRQUNyQiwyQkFBMkI7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLHNCQUFz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RUFBRTtZQUMvRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRTtTQUMzQixDQUFDO2FBQ0QsSUFBSSxDQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzFCLCtCQUErQjtRQUMvQixHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDOzs2R0F4ZlUsZ0JBQWdCO2lIQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgcmV0cnksIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFwaVNlcnZlckJhc2UgfSBmcm9tICcuL2FwaVNlcnZlckJhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEVycm9yRXhjZXB0aW9uUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2Vycm9yRXhjZXB0aW9uUmVzdWx0JztcclxuaW1wb3J0IHsgRXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2Vycm9yRXhjZXB0aW9uUmVzdWx0QmFzZSc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmlsdGVyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2Jhc2UvZmlsdGVyTW9kZWwnO1xyXG5pbXBvcnQgeyBFcnJvckV4Y2VwdGlvblJlc3VsdEV4cG9ydEZpbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2Jhc2UvZXJyb3JFeGNlcHRpb25SZXN1bHRFeHBvcnRGaWxlJztcclxuaW1wb3J0IHsgUmVjb3JkU3RhdHVzRW51bSB9IGZyb20gJy4uLy4uL21vZGVscy9lbnVtcy9iYXNlL3JlY29yZFN0YXR1c0VudW0nO1xyXG5pbXBvcnQgeyBDb3JlTW9kdWxlRW50aXR5UmVwb3J0RmlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9jb3JlLW1haW4vY29yZU1vZHVsZUVudGl0eVJlcG9ydEZpbGVNb2RlbCc7XHJcbmltcG9ydCB7IElBcGlDbXNTZXJ2ZXJCYXNlIH0gZnJvbSAnLi9pQXBpQ21zU2VydmVyQmFzZSc7XHJcbmltcG9ydCB7IENvcmVNb2R1bGVEYXRhTWVtb01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9jb3JlLW1vZHVsZS1kYXRhL2NvcmVNb2R1bGVEYXRhTWVtb01vZGVsJztcclxuaW1wb3J0IHsgRXhwb3J0RmlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2V4cG9ydEZpbGVNb2RlbCc7XHJcbmltcG9ydCB7IENvcmVNb2R1bGVTaG93S2V5RHRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbW9kdWxlL2NvcmVNb2R1bGVTaG93S2V5RHRvTW9kZWwnO1xyXG5pbXBvcnQgeyBDb3JlTW9kdWxlTG9nU2hvd0tleU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9jb3JlLW1vZHVsZS1sb2cvY29yZU1vZHVsZUxvZ1Nob3dLZXlNb2RlbCc7XHJcbmltcG9ydCB7IENvcmVNb2R1bGVEYXRhQ29tbWVudE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9jb3JlLW1vZHVsZS1kYXRhL2NvcmVNb2R1bGVEYXRhQ29tbWVudE1vZGVsJztcclxuaW1wb3J0IHsgQ29yZU1vZHVsZURhdGFQaW5Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHkvY29yZS1tb2R1bGUtZGF0YS9jb3JlTW9kdWxlRGF0YVBpbk1vZGVsJztcclxuaW1wb3J0IHsgQ29yZU1vZHVsZURhdGFUYXNrTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2NvcmUtbW9kdWxlLWRhdGEvY29yZU1vZHVsZURhdGFUYXNrTW9kZWwnO1xyXG5pbXBvcnQgeyBDb3JlTW9kdWxlRGF0YU1lbW9EdG9Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tb2R1bGUvY29yZU1vZHVsZURhdGFNZW1vRHRvTW9kZWwnO1xyXG5pbXBvcnQgeyBDb3JlTW9kdWxlRGF0YVRhc2tEdG9Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tb2R1bGUvY29yZU1vZHVsZURhdGFUYXNrRHRvTW9kZWwnO1xyXG5pbXBvcnQgeyBDb3JlTW9kdWxlRGF0YVBpbkR0b01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1vZHVsZS9jb3JlTW9kdWxlRGF0YVBpbkR0b01vZGVsJztcclxuaW1wb3J0IHsgQ29yZU1vZHVsZURhdGFDb21tZW50RHRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbW9kdWxlL2NvcmVNb2R1bGVEYXRhQ29tbWVudER0b01vZGVsJztcclxuXHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXBpQ21zU2VydmVyQmFzZTxUTW9kZWwsIFRLZXksIFRGaWx0ZXJNb2RlbD4gZXh0ZW5kcyBBcGlTZXJ2ZXJCYXNlIGltcGxlbWVudHMgSUFwaUNtc1NlcnZlckJhc2Uge1xyXG4gIFNlcnZpY2VWaWV3TW9kZWwoKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxUTW9kZWw+PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9WaWV3TW9kZWwnLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VSZXBvcnRGaWxlR2V0QWxsKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8Q29yZU1vZHVsZUVudGl0eVJlcG9ydEZpbGVNb2RlbD4+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL1JlcG9ydEZpbGVHZXRBbGwnLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBTZXJ2aWNlR2V0QWxsKG1vZGVsOiBURmlsdGVyTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PFRNb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvZ2V0QWxsJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUdldEFsbEVkaXRvcihtb2RlbDogVEZpbHRlck1vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxUTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL2dldEFsbEVkaXRvcicsIG1vZGVsLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VHZXRPbmVCeUlkKGlkOiBUS2V5KTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxUTW9kZWw+PiB7XHJcbiAgICAvLyEgb3B0aW1hemUgY2FsbCBhcGlcclxuICAgIGNvbnN0IHNlcnZpY2VOYW1lID0gJ1NlcnZpY2VHZXRPbmVCeUlkJztcclxuICAgIGNvbnN0IHNlcnZpY2VOYW1lS2F5ID0gc2VydmljZU5hbWUgKyAnXycgKyBpZDtcclxuICAgIGlmICh0aGlzLmdldE1vZHVsZUNhc2hTZXJ2aWNlKCkuaW5jbHVkZXMoc2VydmljZU5hbWUpKSB7XHJcbiAgICAgIGRvIHtcclxuICAgICAgICBpZiAodGhpcy5jYWNoQXBpUmVzdWx0W3NlcnZpY2VOYW1lS2F5XT8uaXNTdWNjZXNzKVxyXG4gICAgICAgICAgcmV0dXJuIG9mKHRoaXMuY2FjaEFwaVJlc3VsdFtzZXJ2aWNlTmFtZUtheV0pO1xyXG4gICAgICB9IHdoaWxlICh0aGlzLmNhY2hBcGlDYWxsRGF0ZVtzZXJ2aWNlTmFtZUtheV0gJiYgKHRoaXMuY2FjaEFwaUNhbGxEYXRlW3NlcnZpY2VOYW1lS2F5XS5nZXRUaW1lKCkgLSBuZXcgRGF0ZSgpLmdldFRpbWUoKSkgPiB0aGlzLmNhc2hBcGlTZWNvbmRzKTtcclxuICAgICAgdGhpcy5jYWNoQXBpQ2FsbERhdGVbc2VydmljZU5hbWVLYXldID0gbmV3IERhdGUoKTtcclxuICAgIH1cclxuICAgIC8vISBvcHRpbWF6ZSBjYWxsIGFwaVxyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvJyArIGlkLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICAvLyEgb3B0aW1hemUgY2FsbCBhcGlcclxuICAgICAgICAgIGlmICh0aGlzLmdldE1vZHVsZUNhc2hTZXJ2aWNlKCkuaW5jbHVkZXMoc2VydmljZU5hbWUpKVxyXG4gICAgICAgICAgICB0aGlzLmNhY2hBcGlSZXN1bHRbc2VydmljZU5hbWVLYXldID0gcmV0O1xyXG4gICAgICAgICAgLy8hIG9wdGltYXplIGNhbGwgYXBpXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBTZXJ2aWNlR2V0Q291bnQobW9kZWw6IEZpbHRlck1vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvQ291bnQnLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlQ2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZVNldFN0YXR1cyhpZDogVEtleSwgcmVjb3JkU3RhdHVzOiBSZWNvcmRTdGF0dXNFbnVtKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxUTW9kZWw+PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9TZXRTdGF0dXMvJyArIGlkICsgXCIvXCIgKyByZWNvcmRTdGF0dXMsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUdldEV4aXN0KG1vZGVsOiBGaWx0ZXJNb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL2V4aXN0JywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZUNoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBTZXJ2aWNlRXhwb3J0RmlsZShtb2RlbDogRmlsdGVyTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0RXhwb3J0RmlsZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9FeHBvcnRGaWxlJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2tFeHBvcnRGaWxlKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBTZXJ2aWNlRXhwb3J0RmlsZUdldE9uZShpZDogVEtleSwgbW9kZWw6IEV4cG9ydEZpbGVNb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHRFeHBvcnRGaWxlPiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIG1vZGVsID0gbmV3IEV4cG9ydEZpbGVNb2RlbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvRXhwb3J0RmlsZS8nICsgaWQsIG1vZGVsLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrRXhwb3J0RmlsZShyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlQWRkKG1vZGVsOiBUTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PFRNb2RlbD4+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy8nLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgU2VydmljZUVkaXQobW9kZWw6IFRNb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8VE1vZGVsPj4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wdXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIFNlcnZpY2VEZWxldGUoaWQ6IFRLZXkpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5kZWxldGUodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvJyArIGlkLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VEZWxldGVMaXN0KGlkczogVEtleVtdKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9EZWxldGVMaXN0JywgaWRzLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VEZWxldGVFbnRpdHkobW9kZWw6IFRNb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlPiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvZGVsZXRlJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqTWVtbyAqL1xyXG4gIFNlcnZpY2VNZW1vQWRkKG1vZGVsOiBDb3JlTW9kdWxlRGF0YU1lbW9EdG9Nb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlPiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvTWVtb0FkZCcsIG1vZGVsLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VNZW1vRGVsZXRlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvTWVtb0RlbGV0ZS8nICsgaWQsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZU1lbW9HZXRBbGwoKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxDb3JlTW9kdWxlRGF0YU1lbW9Nb2RlbD4+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL01lbW9HZXRBbGwvJywge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlTWVtb0dldEFsbEVudGl0eShpZDogVEtleSk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8Q29yZU1vZHVsZURhdGFNZW1vTW9kZWw+PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9NZW1vR2V0QWxsLycgKyBpZCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICAvKipNZW1vICovXHJcbiAgLyoqUGluICovXHJcbiAgU2VydmljZVBpbkFkZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL1BpbkFkZC8nICsgaWQsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZVBpbkRlbGV0ZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL1BpbkRlbGV0ZS8nICsgaWQsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZVBpbkNoZWNrKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvUGluQ2hlY2svJyArIGlkLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VQaW5HZXRBbGwoKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxDb3JlTW9kdWxlRGF0YVBpbk1vZGVsPj4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvUGluR2V0QWxsLycsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZVBpbkdldEFsbEVudGl0eShpZDogVEtleSk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8Q29yZU1vZHVsZURhdGFQaW5Nb2RlbD4+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL1BpbkdldEFsbC8nICsgaWQsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqUGluICovXHJcbiAgLyoqVGFzayAqL1xyXG4gIFNlcnZpY2VUYXNrQWRkKG1vZGVsOiBDb3JlTW9kdWxlRGF0YVRhc2tEdG9Nb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlPiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvVGFza0FkZCcsIG1vZGVsLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VUYXNrRGVsZXRlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvVGFza0RlbGV0ZS8nICsgaWQsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZVRhc2tHZXRBbGwoKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxDb3JlTW9kdWxlRGF0YVRhc2tNb2RlbD4+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL1Rhc2tHZXRBbGwvJywge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlVGFza0dldEFsbEVudGl0eShpZDogVEtleSk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8Q29yZU1vZHVsZURhdGFUYXNrTW9kZWw+PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9UYXNrR2V0QWxsLycgKyBpZCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICAvKipUYXNrICovXHJcbiAgLyoqY29tbWVudCAqL1xyXG5cclxuICBTZXJ2aWNlQ29tbWVudEFkZChtb2RlbDogQ29yZU1vZHVsZURhdGFDb21tZW50RHRvTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0NvbW1lbnRBZGQnLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlQ29tbWVudERlbGV0ZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0NvbW1lbnREZWxldGUvJyArIGlkLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VDb21tZW50R2V0QWxsKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8Q29yZU1vZHVsZURhdGFDb21tZW50TW9kZWw+PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9Db21tZW50R2V0QWxsLycsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUNvbW1lbnRHZXRBbGxFbnRpdHkoaWQ6IFRLZXkpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PENvcmVNb2R1bGVEYXRhQ29tbWVudE1vZGVsPj4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvQ29tbWVudEdldEFsbC8nICsgaWQsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKmNvbW1lbnQgKi9cclxuICBTZXJ2aWNlU2hvd0tleUFkZChtb2RlbDogQ29yZU1vZHVsZVNob3dLZXlEdG9Nb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8Q29yZU1vZHVsZUxvZ1Nob3dLZXlNb2RlbD4+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9TaG93S2V5QWRkJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZVNob3dLZXlHZXRBbGwoaWQ6IFRLZXkpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PENvcmVNb2R1bGVMb2dTaG93S2V5TW9kZWw+PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9TaG93S2V5R2V0QWxsLycgKyBpZCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
444
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpQ21zU2VydmVyQmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnRrLWNtcy1hcGkvc3JjL2xpYi9zZXJ2aWNlL2Jhc2UvYXBpQ21zU2VydmVyQmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsS0FBSyxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8zQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBYzNFLE1BQU0sT0FBTyxnQkFBNkMsU0FBUSxhQUFhO0lBQzdFLGdCQUFnQjtRQUNkLDJCQUEyQjtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxZQUFZLEVBQUU7WUFDckUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7U0FDM0IsQ0FBQzthQUNELElBQUk7UUFDSCwrQkFBK0I7UUFDL0IsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUNELHVCQUF1QjtRQUNyQiwyQkFBMkI7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLHNCQUFz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RUFBRTtZQUMvRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRTtTQUMzQixDQUFDO2FBQ0QsSUFBSSxDQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzFCLCtCQUErQjtRQUMvQixHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDOzs2R0F4ZlUsZ0JBQWdCO2lIQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgcmV0cnksIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFwaVNlcnZlckJhc2UgfSBmcm9tICcuL2FwaVNlcnZlckJhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEVycm9yRXhjZXB0aW9uUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2Vycm9yRXhjZXB0aW9uUmVzdWx0JztcclxuaW1wb3J0IHsgRXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2Vycm9yRXhjZXB0aW9uUmVzdWx0QmFzZSc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmlsdGVyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2Jhc2UvZmlsdGVyTW9kZWwnO1xyXG5pbXBvcnQgeyBFcnJvckV4Y2VwdGlvblJlc3VsdEV4cG9ydEZpbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2Jhc2UvZXJyb3JFeGNlcHRpb25SZXN1bHRFeHBvcnRGaWxlJztcclxuaW1wb3J0IHsgUmVjb3JkU3RhdHVzRW51bSB9IGZyb20gJy4uLy4uL21vZGVscy9lbnVtcy9iYXNlL3JlY29yZFN0YXR1c0VudW0nO1xyXG5pbXBvcnQgeyBDb3JlTW9kdWxlRW50aXR5UmVwb3J0RmlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9jb3JlLW1haW4vY29yZU1vZHVsZUVudGl0eVJlcG9ydEZpbGVNb2RlbCc7XHJcbmltcG9ydCB7IElBcGlDbXNTZXJ2ZXJCYXNlIH0gZnJvbSAnLi9pQXBpQ21zU2VydmVyQmFzZSc7XHJcbmltcG9ydCB7IENvcmVNb2R1bGVEYXRhTWVtb01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9jb3JlLW1vZHVsZS1kYXRhL2NvcmVNb2R1bGVEYXRhTWVtb01vZGVsJztcclxuaW1wb3J0IHsgRXhwb3J0RmlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2V4cG9ydEZpbGVNb2RlbCc7XHJcbmltcG9ydCB7IENvcmVNb2R1bGVTaG93S2V5RHRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbW9kdWxlL2NvcmVNb2R1bGVTaG93S2V5RHRvTW9kZWwnO1xyXG5pbXBvcnQgeyBDb3JlTW9kdWxlTG9nU2hvd0tleU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9jb3JlLW1vZHVsZS1sb2cvY29yZU1vZHVsZUxvZ1Nob3dLZXlNb2RlbCc7XHJcbmltcG9ydCB7IENvcmVNb2R1bGVEYXRhQ29tbWVudE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9jb3JlLW1vZHVsZS1kYXRhL2NvcmVNb2R1bGVEYXRhQ29tbWVudE1vZGVsJztcclxuaW1wb3J0IHsgQ29yZU1vZHVsZURhdGFQaW5Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHkvY29yZS1tb2R1bGUtZGF0YS9jb3JlTW9kdWxlRGF0YVBpbk1vZGVsJztcclxuaW1wb3J0IHsgQ29yZU1vZHVsZURhdGFUYXNrTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2NvcmUtbW9kdWxlLWRhdGEvY29yZU1vZHVsZURhdGFUYXNrTW9kZWwnO1xyXG5pbXBvcnQgeyBDb3JlTW9kdWxlRGF0YU1lbW9EdG9Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tb2R1bGUvY29yZU1vZHVsZURhdGFNZW1vRHRvTW9kZWwnO1xyXG5pbXBvcnQgeyBDb3JlTW9kdWxlRGF0YVRhc2tEdG9Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tb2R1bGUvY29yZU1vZHVsZURhdGFUYXNrRHRvTW9kZWwnO1xyXG5pbXBvcnQgeyBDb3JlTW9kdWxlRGF0YVBpbkR0b01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1vZHVsZS9jb3JlTW9kdWxlRGF0YVBpbkR0b01vZGVsJztcclxuaW1wb3J0IHsgQ29yZU1vZHVsZURhdGFDb21tZW50RHRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbW9kdWxlL2NvcmVNb2R1bGVEYXRhQ29tbWVudER0b01vZGVsJztcclxuXHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXBpQ21zU2VydmVyQmFzZTxUTW9kZWwsIFRLZXksIFRGaWx0ZXJNb2RlbD4gZXh0ZW5kcyBBcGlTZXJ2ZXJCYXNlIGltcGxlbWVudHMgSUFwaUNtc1NlcnZlckJhc2Uge1xyXG4gIFNlcnZpY2VWaWV3TW9kZWwoKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxUTW9kZWw+PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9WaWV3TW9kZWwnLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VSZXBvcnRGaWxlR2V0QWxsKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8Q29yZU1vZHVsZUVudGl0eVJlcG9ydEZpbGVNb2RlbD4+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL1JlcG9ydEZpbGVHZXRBbGwnLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBTZXJ2aWNlR2V0QWxsKG1vZGVsOiBURmlsdGVyTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PFRNb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvZ2V0QWxsJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUdldEFsbEVkaXRvcihtb2RlbDogVEZpbHRlck1vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxUTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL2dldEFsbEVkaXRvcicsIG1vZGVsLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VHZXRPbmVCeUlkKGlkOiBUS2V5KTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxUTW9kZWw+PiB7XHJcbiAgICAvLyEgb3B0aW1hemUgY2FsbCBhcGlcclxuICAgIGNvbnN0IHNlcnZpY2VOYW1lID0gJ1NlcnZpY2VHZXRPbmVCeUlkJztcclxuICAgIGNvbnN0IHNlcnZpY2VOYW1lS2F5ID0gc2VydmljZU5hbWUgKyAnXycgKyBpZDtcclxuICAgIGlmICh0aGlzLmdldE1vZHVsZUNhc2hTZXJ2aWNlKCkuaW5jbHVkZXMoc2VydmljZU5hbWUpKSB7XHJcbiAgICAgIGRvIHtcclxuICAgICAgICBpZiAodGhpcy5jYWNoQXBpUmVzdWx0W3NlcnZpY2VOYW1lS2F5XT8uaXNTdWNjZXNzKVxyXG4gICAgICAgICAgcmV0dXJuIG9mKHRoaXMuY2FjaEFwaVJlc3VsdFtzZXJ2aWNlTmFtZUtheV0pO1xyXG4gICAgICB9IHdoaWxlICh0aGlzLmNhY2hBcGlDYWxsRGF0ZVtzZXJ2aWNlTmFtZUtheV0gJiYgKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gdGhpcy5jYWNoQXBpQ2FsbERhdGVbc2VydmljZU5hbWVLYXldLmdldFRpbWUoKSkgPCB0aGlzLmNhc2hBcGlTZWNvbmRzKTtcclxuICAgICAgdGhpcy5jYWNoQXBpQ2FsbERhdGVbc2VydmljZU5hbWVLYXldID0gbmV3IERhdGUoKTtcclxuICAgIH1cclxuICAgIC8vISBvcHRpbWF6ZSBjYWxsIGFwaVxyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvJyArIGlkLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICAvLyEgb3B0aW1hemUgY2FsbCBhcGlcclxuICAgICAgICAgIGlmICh0aGlzLmdldE1vZHVsZUNhc2hTZXJ2aWNlKCkuaW5jbHVkZXMoc2VydmljZU5hbWUpKVxyXG4gICAgICAgICAgICB0aGlzLmNhY2hBcGlSZXN1bHRbc2VydmljZU5hbWVLYXldID0gcmV0O1xyXG4gICAgICAgICAgLy8hIG9wdGltYXplIGNhbGwgYXBpXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBTZXJ2aWNlR2V0Q291bnQobW9kZWw6IEZpbHRlck1vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvQ291bnQnLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlQ2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZVNldFN0YXR1cyhpZDogVEtleSwgcmVjb3JkU3RhdHVzOiBSZWNvcmRTdGF0dXNFbnVtKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxUTW9kZWw+PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9TZXRTdGF0dXMvJyArIGlkICsgXCIvXCIgKyByZWNvcmRTdGF0dXMsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUdldEV4aXN0KG1vZGVsOiBGaWx0ZXJNb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL2V4aXN0JywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZUNoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBTZXJ2aWNlRXhwb3J0RmlsZShtb2RlbDogRmlsdGVyTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0RXhwb3J0RmlsZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9FeHBvcnRGaWxlJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2tFeHBvcnRGaWxlKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBTZXJ2aWNlRXhwb3J0RmlsZUdldE9uZShpZDogVEtleSwgbW9kZWw6IEV4cG9ydEZpbGVNb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHRFeHBvcnRGaWxlPiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIG1vZGVsID0gbmV3IEV4cG9ydEZpbGVNb2RlbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvRXhwb3J0RmlsZS8nICsgaWQsIG1vZGVsLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrRXhwb3J0RmlsZShyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlQWRkKG1vZGVsOiBUTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PFRNb2RlbD4+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy8nLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgU2VydmljZUVkaXQobW9kZWw6IFRNb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8VE1vZGVsPj4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wdXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIFNlcnZpY2VEZWxldGUoaWQ6IFRLZXkpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5kZWxldGUodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvJyArIGlkLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VEZWxldGVMaXN0KGlkczogVEtleVtdKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9EZWxldGVMaXN0JywgaWRzLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VEZWxldGVFbnRpdHkobW9kZWw6IFRNb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlPiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvZGVsZXRlJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqTWVtbyAqL1xyXG4gIFNlcnZpY2VNZW1vQWRkKG1vZGVsOiBDb3JlTW9kdWxlRGF0YU1lbW9EdG9Nb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlPiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvTWVtb0FkZCcsIG1vZGVsLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VNZW1vRGVsZXRlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvTWVtb0RlbGV0ZS8nICsgaWQsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZU1lbW9HZXRBbGwoKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxDb3JlTW9kdWxlRGF0YU1lbW9Nb2RlbD4+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL01lbW9HZXRBbGwvJywge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlTWVtb0dldEFsbEVudGl0eShpZDogVEtleSk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8Q29yZU1vZHVsZURhdGFNZW1vTW9kZWw+PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9NZW1vR2V0QWxsLycgKyBpZCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICAvKipNZW1vICovXHJcbiAgLyoqUGluICovXHJcbiAgU2VydmljZVBpbkFkZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL1BpbkFkZC8nICsgaWQsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZVBpbkRlbGV0ZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL1BpbkRlbGV0ZS8nICsgaWQsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZVBpbkNoZWNrKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvUGluQ2hlY2svJyArIGlkLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VQaW5HZXRBbGwoKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxDb3JlTW9kdWxlRGF0YVBpbk1vZGVsPj4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvUGluR2V0QWxsLycsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZVBpbkdldEFsbEVudGl0eShpZDogVEtleSk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8Q29yZU1vZHVsZURhdGFQaW5Nb2RlbD4+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL1BpbkdldEFsbC8nICsgaWQsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqUGluICovXHJcbiAgLyoqVGFzayAqL1xyXG4gIFNlcnZpY2VUYXNrQWRkKG1vZGVsOiBDb3JlTW9kdWxlRGF0YVRhc2tEdG9Nb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlPiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvVGFza0FkZCcsIG1vZGVsLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VUYXNrRGVsZXRlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvVGFza0RlbGV0ZS8nICsgaWQsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZVRhc2tHZXRBbGwoKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxDb3JlTW9kdWxlRGF0YVRhc2tNb2RlbD4+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL1Rhc2tHZXRBbGwvJywge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlVGFza0dldEFsbEVudGl0eShpZDogVEtleSk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8Q29yZU1vZHVsZURhdGFUYXNrTW9kZWw+PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9UYXNrR2V0QWxsLycgKyBpZCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICAvKipUYXNrICovXHJcbiAgLyoqY29tbWVudCAqL1xyXG5cclxuICBTZXJ2aWNlQ29tbWVudEFkZChtb2RlbDogQ29yZU1vZHVsZURhdGFDb21tZW50RHRvTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0NvbW1lbnRBZGQnLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlQ29tbWVudERlbGV0ZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0NvbW1lbnREZWxldGUvJyArIGlkLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VDb21tZW50R2V0QWxsKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8Q29yZU1vZHVsZURhdGFDb21tZW50TW9kZWw+PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9Db21tZW50R2V0QWxsLycsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUNvbW1lbnRHZXRBbGxFbnRpdHkoaWQ6IFRLZXkpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PENvcmVNb2R1bGVEYXRhQ29tbWVudE1vZGVsPj4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvQ29tbWVudEdldEFsbC8nICsgaWQsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKmNvbW1lbnQgKi9cclxuICBTZXJ2aWNlU2hvd0tleUFkZChtb2RlbDogQ29yZU1vZHVsZVNob3dLZXlEdG9Nb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8Q29yZU1vZHVsZUxvZ1Nob3dLZXlNb2RlbD4+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9TaG93S2V5QWRkJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZVNob3dLZXlHZXRBbGwoaWQ6IFRLZXkpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PENvcmVNb2R1bGVMb2dTaG93S2V5TW9kZWw+PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9dHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9TaG93S2V5R2V0QWxsLycgKyBpZCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -13,7 +13,7 @@ export class CoreEnumService extends ApiServerBase {
|
|
|
13
13
|
do {
|
|
14
14
|
if (this.cachApiResult[serviceName]?.isSuccess)
|
|
15
15
|
return of(this.cachApiResult[serviceName]);
|
|
16
|
-
} while (this.cachApiCallDate[serviceName] && (
|
|
16
|
+
} while (this.cachApiCallDate[serviceName] && (new Date().getTime() - this.cachApiCallDate[serviceName].getTime()) < this.cashApiSeconds);
|
|
17
17
|
this.cachApiCallDate[serviceName] = new Date();
|
|
18
18
|
//! optimaze call api
|
|
19
19
|
return this.http
|
|
@@ -236,4 +236,4 @@ CoreEnumService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", vers
|
|
|
236
236
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CoreEnumService, decorators: [{
|
|
237
237
|
type: Injectable
|
|
238
238
|
}] });
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZUVudW0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL250ay1jbXMtYXBpL3NyYy9saWIvc2VydmljZS9jb3JlLW1haW4vY29yZUVudW0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGVBQWdCLFNBQVEsYUFBYTtJQUNoRCxzQkFBc0I7UUFDcEIsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixxQkFBcUI7UUFDckIsTUFBTSxXQUFXLEdBQUcseUJBQXlCLENBQUM7UUFDOUMsR0FBRztZQUNELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTO2dCQUM1QyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDOUMsUUFBUSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRTtRQUMxSSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0MscUJBQXFCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFB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QUErQjtRQUMvQixHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBQ0Qsd0JBQXdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLG9CQUFvQixFQUFFO1lBQzdFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1NBQzNCLENBQUM7YUFDRCxJQUFJO1FBQ0gsK0JBQStCO1FBQy9CLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7OzRHQXZQVSxlQUFlO2dIQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRXJyb3JFeGNlcHRpb25SZXN1bHQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2Jhc2UvZXJyb3JFeGNlcHRpb25SZXN1bHQnO1xyXG5pbXBvcnQgeyBJbmZvRW51bU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2luZm9FbnVtTW9kZWwnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2ZXJCYXNlIH0gZnJvbSAnLi4vYmFzZS9hcGlTZXJ2ZXJCYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb3JlRW51bVNlcnZpY2UgZXh0ZW5kcyBBcGlTZXJ2ZXJCYXNlIHtcclxuICBnZXRNb2R1bGVDb250cm9sbGVyVXJsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ0NvcmVFbnVtJztcclxuICB9XHJcblxyXG4gIFNlcnZpY2VSZWNvcmRTdGF0dXNFbnVtKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8SW5mb0VudW1Nb2RlbD4+IHtcclxuICAgIC8vISBvcHRpbWF6ZSBjYWxsIGFwaVxyXG4gICAgY29uc3Qgc2VydmljZU5hbWUgPSAnU2VydmljZVJlY29yZFN0YXR1c0VudW0nO1xyXG4gICAgZG8ge1xyXG4gICAgICBpZiAodGhpcy5jYWNoQXBpUmVzdWx0W3NlcnZpY2VOYW1lXT8uaXNTdWNjZXNzKVxyXG4gICAgICAgIHJldHVybiBvZih0aGlzLmNhY2hBcGlSZXN1bHRbc2VydmljZU5hbWVdKTtcclxuICAgIH0gd2hpbGUgKHRoaXMuY2FjaEFwaUNhbGxEYXRlW3NlcnZpY2VOYW1lXSAmJiAodGhpcy5jYWNoQXBpQ2FsbERhdGVbc2VydmljZU5hbWVdLmdldFRpbWUoKSAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpKSA+IHRoaXMuY2FzaEFwaVNlY29uZHMpO1xyXG4gICAgdGhpcy5jYWNoQXBpQ2FsbERhdGVbc2VydmljZU5hbWVdID0gbmV3IERhdGUoKTtcclxuICAgIC8vISBvcHRpbWF6ZSBjYWxsIGFwaVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL1JlY29yZFN0YXR1c0VudW0nLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICAvLyEgb3B0aW1hemUgY2FsbCBhcGlcclxuICAgICAgICAgIHRoaXMuY2FjaEFwaVJlc3VsdFtzZXJ2aWNlTmFtZV0gPSByZXQ7XHJcbiAgICAgICAgICAvLyEgb3B0aW1hemUgY2FsbCBhcGlcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIFNlcnZpY2VMb2NhdGlvblR5cGVFbnVtKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8SW5mb0VudW1Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9Mb2NhdGlvblR5cGVFbnVtJywge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlVXNlckxhbmd1YWdlRW51bSgpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEluZm9FbnVtTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvVXNlckxhbmd1YWdlRW51bScsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgLy8vL1xyXG4gIC8vIEVudW1Vc2VyTGFuZ3VhZ2VcclxuICAvLy8vXHJcbiAgU2VydmljZUdlbmRlckVudW0oKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxJbmZvRW51bU1vZGVsPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0dlbmRlckVudW0nLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VNZW51UGxhY2VUeXBlRW51bSgpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEluZm9FbnVtTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvTWVudVBsYWNlVHlwZUVudW0nLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VTaXRlU3RhdHVzRW51bSgpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEluZm9FbnVtTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvU2l0ZVN0YXR1c0VudW0nLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VHZW5kZXJUeXBlRW51bSgpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEluZm9FbnVtTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvR2VuZGVyVHlwZUVudW0nLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VDbXNTaXRlTWVudUFyZWFUeXBlRW51bSgpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEluZm9FbnVtTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvQ21zU2l0ZU1lbnVBcmVhVHlwZUVudW0nLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VMYW5ndWFnZUVudW0oKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxJbmZvRW51bU1vZGVsPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0xhbmd1YWdlRW51bScsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZURldmljZVR5cGVFbnVtKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8SW5mb0VudW1Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9EZXZpY2VUeXBlRW51bScsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZU9wZXJhdGluZ1N5c3RlbVR5cGVFbnVtKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8SW5mb0VudW1Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9PcGVyYXRpbmdTeXN0ZW1UeXBlRW51bScsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZU1hbmFnZVVzZXJBY2Nlc3NBcmVhVHlwZXNFbnVtKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8SW5mb0VudW1Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9NYW5hZ2VVc2VyQWNjZXNzQXJlYVR5cGVzRW51bScsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZU1hbmFnZVVzZXJBY2Nlc3NVc2VyVHlwZXNFbnVtKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8SW5mb0VudW1Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9NYW5hZ2VVc2VyQWNjZXNzVXNlclR5cGVzRW51bScsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZVNlbmRTbXNTdGF0dXNUeXBlRW51bSgpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEluZm9FbnVtTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvU2VuZFNtc1N0YXR1c1R5cGVFbnVtJywge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlQ21zTW9kdWxlU2FsZUl0ZW1UeXBlRW51bSgpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEluZm9FbnVtTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvQ21zTW9kdWxlU2FsZUl0ZW1UeXBlRW51bScsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZVJlcG9ydEZpbGVUeXBlRW51bSgpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEluZm9FbnVtTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvUmVwb3J0RmlsZVR5cGVFbnVtJywge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlVXNlckNsYWltS2luZHNFbnVtKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8SW5mb0VudW1Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9Vc2VyQ2xhaW1LaW5kc0VudW0nLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VVc2VyQ2xhaW1Hcm91cEFjdGlvblR5cGVFbnVtKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8SW5mb0VudW1Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9Vc2VyQ2xhaW1Hcm91cEFjdGlvblR5cGVFbnVtJywge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlSW5wdXREYXRhVHlwZUVudW0oKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxJbmZvRW51bU1vZGVsPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0lucHV0RGF0YVR5cGVFbnVtJywge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZUVudW0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL250ay1jbXMtYXBpL3NyYy9saWIvc2VydmljZS9jb3JlLW1haW4vY29yZUVudW0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGVBQWdCLFNBQVEsYUFBYTtJQUNoRCxzQkFBc0I7UUFDcEIsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixxQkFBcUI7UUFDckIsTUFBTSxXQUFXLEdBQUcseUJBQXlCLENBQUM7UUFDOUMsR0FBRztZQUNELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTO2dCQUM1QyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDOUMsUUFBUSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRTtRQUMxSSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0MscUJBQXFCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFB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QUErQjtRQUMvQixHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBQ0Qsd0JBQXdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLG9CQUFvQixFQUFFO1lBQzdFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1NBQzNCLENBQUM7YUFDRCxJQUFJO1FBQ0gsK0JBQStCO1FBQy9CLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7OzRHQXZQVSxlQUFlO2dIQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRXJyb3JFeGNlcHRpb25SZXN1bHQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2Jhc2UvZXJyb3JFeGNlcHRpb25SZXN1bHQnO1xyXG5pbXBvcnQgeyBJbmZvRW51bU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2luZm9FbnVtTW9kZWwnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2ZXJCYXNlIH0gZnJvbSAnLi4vYmFzZS9hcGlTZXJ2ZXJCYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb3JlRW51bVNlcnZpY2UgZXh0ZW5kcyBBcGlTZXJ2ZXJCYXNlIHtcclxuICBnZXRNb2R1bGVDb250cm9sbGVyVXJsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ0NvcmVFbnVtJztcclxuICB9XHJcblxyXG4gIFNlcnZpY2VSZWNvcmRTdGF0dXNFbnVtKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8SW5mb0VudW1Nb2RlbD4+IHtcclxuICAgIC8vISBvcHRpbWF6ZSBjYWxsIGFwaVxyXG4gICAgY29uc3Qgc2VydmljZU5hbWUgPSAnU2VydmljZVJlY29yZFN0YXR1c0VudW0nO1xyXG4gICAgZG8ge1xyXG4gICAgICBpZiAodGhpcy5jYWNoQXBpUmVzdWx0W3NlcnZpY2VOYW1lXT8uaXNTdWNjZXNzKVxyXG4gICAgICAgIHJldHVybiBvZih0aGlzLmNhY2hBcGlSZXN1bHRbc2VydmljZU5hbWVdKTtcclxuICAgIH0gd2hpbGUgKHRoaXMuY2FjaEFwaUNhbGxEYXRlW3NlcnZpY2VOYW1lXSAmJiAobmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aGlzLmNhY2hBcGlDYWxsRGF0ZVtzZXJ2aWNlTmFtZV0uZ2V0VGltZSgpKSA8IHRoaXMuY2FzaEFwaVNlY29uZHMpO1xyXG4gICAgdGhpcy5jYWNoQXBpQ2FsbERhdGVbc2VydmljZU5hbWVdID0gbmV3IERhdGUoKTtcclxuICAgIC8vISBvcHRpbWF6ZSBjYWxsIGFwaVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL1JlY29yZFN0YXR1c0VudW0nLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICAvLyEgb3B0aW1hemUgY2FsbCBhcGlcclxuICAgICAgICAgIHRoaXMuY2FjaEFwaVJlc3VsdFtzZXJ2aWNlTmFtZV0gPSByZXQ7XHJcbiAgICAgICAgICAvLyEgb3B0aW1hemUgY2FsbCBhcGlcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIFNlcnZpY2VMb2NhdGlvblR5cGVFbnVtKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8SW5mb0VudW1Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9Mb2NhdGlvblR5cGVFbnVtJywge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlVXNlckxhbmd1YWdlRW51bSgpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEluZm9FbnVtTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvVXNlckxhbmd1YWdlRW51bScsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgLy8vL1xyXG4gIC8vIEVudW1Vc2VyTGFuZ3VhZ2VcclxuICAvLy8vXHJcbiAgU2VydmljZUdlbmRlckVudW0oKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxJbmZvRW51bU1vZGVsPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0dlbmRlckVudW0nLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VNZW51UGxhY2VUeXBlRW51bSgpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEluZm9FbnVtTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvTWVudVBsYWNlVHlwZUVudW0nLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VTaXRlU3RhdHVzRW51bSgpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEluZm9FbnVtTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvU2l0ZVN0YXR1c0VudW0nLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VHZW5kZXJUeXBlRW51bSgpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEluZm9FbnVtTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvR2VuZGVyVHlwZUVudW0nLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VDbXNTaXRlTWVudUFyZWFUeXBlRW51bSgpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEluZm9FbnVtTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvQ21zU2l0ZU1lbnVBcmVhVHlwZUVudW0nLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VMYW5ndWFnZUVudW0oKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxJbmZvRW51bU1vZGVsPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0xhbmd1YWdlRW51bScsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZURldmljZVR5cGVFbnVtKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8SW5mb0VudW1Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9EZXZpY2VUeXBlRW51bScsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZU9wZXJhdGluZ1N5c3RlbVR5cGVFbnVtKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8SW5mb0VudW1Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9PcGVyYXRpbmdTeXN0ZW1UeXBlRW51bScsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZU1hbmFnZVVzZXJBY2Nlc3NBcmVhVHlwZXNFbnVtKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8SW5mb0VudW1Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9NYW5hZ2VVc2VyQWNjZXNzQXJlYVR5cGVzRW51bScsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZU1hbmFnZVVzZXJBY2Nlc3NVc2VyVHlwZXNFbnVtKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8SW5mb0VudW1Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9NYW5hZ2VVc2VyQWNjZXNzVXNlclR5cGVzRW51bScsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZVNlbmRTbXNTdGF0dXNUeXBlRW51bSgpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEluZm9FbnVtTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvU2VuZFNtc1N0YXR1c1R5cGVFbnVtJywge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlQ21zTW9kdWxlU2FsZUl0ZW1UeXBlRW51bSgpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEluZm9FbnVtTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvQ21zTW9kdWxlU2FsZUl0ZW1UeXBlRW51bScsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZVJlcG9ydEZpbGVUeXBlRW51bSgpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEluZm9FbnVtTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvUmVwb3J0RmlsZVR5cGVFbnVtJywge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlVXNlckNsYWltS2luZHNFbnVtKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8SW5mb0VudW1Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9Vc2VyQ2xhaW1LaW5kc0VudW0nLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VVc2VyQ2xhaW1Hcm91cEFjdGlvblR5cGVFbnVtKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8SW5mb0VudW1Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9Vc2VyQ2xhaW1Hcm91cEFjdGlvblR5cGVFbnVtJywge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlSW5wdXREYXRhVHlwZUVudW0oKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxJbmZvRW51bU1vZGVsPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0lucHV0RGF0YVR5cGVFbnVtJywge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
package/fesm2015/ntk-cms-api.mjs
CHANGED
|
@@ -1687,7 +1687,7 @@ class ApiCmsServerBase extends ApiServerBase {
|
|
|
1687
1687
|
do {
|
|
1688
1688
|
if ((_a = this.cachApiResult[serviceNameKay]) === null || _a === void 0 ? void 0 : _a.isSuccess)
|
|
1689
1689
|
return of(this.cachApiResult[serviceNameKay]);
|
|
1690
|
-
} while (this.cachApiCallDate[serviceNameKay] && (
|
|
1690
|
+
} while (this.cachApiCallDate[serviceNameKay] && (new Date().getTime() - this.cachApiCallDate[serviceNameKay].getTime()) < this.cashApiSeconds);
|
|
1691
1691
|
this.cachApiCallDate[serviceNameKay] = new Date();
|
|
1692
1692
|
}
|
|
1693
1693
|
//! optimaze call api
|
|
@@ -2152,7 +2152,7 @@ class CoreEnumService extends ApiServerBase {
|
|
|
2152
2152
|
do {
|
|
2153
2153
|
if ((_a = this.cachApiResult[serviceName]) === null || _a === void 0 ? void 0 : _a.isSuccess)
|
|
2154
2154
|
return of(this.cachApiResult[serviceName]);
|
|
2155
|
-
} while (this.cachApiCallDate[serviceName] && (
|
|
2155
|
+
} while (this.cachApiCallDate[serviceName] && (new Date().getTime() - this.cachApiCallDate[serviceName].getTime()) < this.cashApiSeconds);
|
|
2156
2156
|
this.cachApiCallDate[serviceName] = new Date();
|
|
2157
2157
|
//! optimaze call api
|
|
2158
2158
|
return this.http
|