zek 14.2.69 → 14.2.71
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/services/auth.service.mjs +13 -7
- package/esm2020/lib/services/http-error-handler.service.mjs +112 -71
- package/fesm2015/zek.mjs +123 -76
- package/fesm2015/zek.mjs.map +1 -1
- package/fesm2020/zek.mjs +123 -76
- package/fesm2020/zek.mjs.map +1 -1
- package/lib/services/auth.service.d.ts +2 -1
- package/lib/services/http-error-handler.service.d.ts +15 -3
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
export class AuthService {
|
|
7
7
|
constructor() {
|
|
8
8
|
this._isInitialized = false;
|
|
9
|
-
this.
|
|
9
|
+
this._oldValue = false;
|
|
10
10
|
this._user = null;
|
|
11
11
|
}
|
|
12
12
|
get user() {
|
|
@@ -56,11 +56,12 @@ export class AuthService {
|
|
|
56
56
|
isAuthenticated() {
|
|
57
57
|
let expired = this.getExpired() || new Date(0); // if getExpired is null return min JS date
|
|
58
58
|
const newValue = new Date() < expired;
|
|
59
|
-
if (this.
|
|
60
|
-
this.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
if (this._oldValue !== newValue) {
|
|
60
|
+
this._oldValue = newValue;
|
|
61
|
+
this.emitOnSignedIn();
|
|
62
|
+
// if (this._onSignedInSubject) {
|
|
63
|
+
// this._onSignedInSubject.next(newValue);
|
|
64
|
+
// }
|
|
64
65
|
//if user is signed in and expired we need to logout (remove from localStorage)
|
|
65
66
|
if (!newValue) {
|
|
66
67
|
this.logout();
|
|
@@ -69,6 +70,11 @@ export class AuthService {
|
|
|
69
70
|
}
|
|
70
71
|
return newValue;
|
|
71
72
|
}
|
|
73
|
+
emitOnSignedIn() {
|
|
74
|
+
if (this._onSignedInSubject) {
|
|
75
|
+
this._onSignedInSubject.next(this._oldValue);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
72
78
|
get onSignedIn() {
|
|
73
79
|
if (!this._onSignedInSubject) {
|
|
74
80
|
this._onSignedInSubject = new BehaviorSubject(false);
|
|
@@ -194,4 +200,4 @@ AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version:
|
|
|
194
200
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: AuthService, decorators: [{
|
|
195
201
|
type: Injectable
|
|
196
202
|
}] });
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvc2VydmljZXMvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBR3hELE1BQU0sT0FBTyxXQUFXO0lBRHhCO1FBRVksbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsNkJBQXdCLEdBQVksS0FBSyxDQUFDO1FBQzFDLFVBQUssR0FBcUIsSUFBSSxDQUFDO0tBMk8xQztJQXZPRyxJQUFJLElBQUk7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN0QixJQUFJLElBQUksR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RDLElBQUksSUFBSSxFQUFFO2dCQUNOLElBQUksQ0FBQyxFQUFFLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNuRixJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDeEcsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztnQkFFNUksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDdEY7YUFDSjtZQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzNCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQ2pDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFJTyxzQkFBc0I7UUFDMUIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFFOUIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN0QixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDL0IsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFBLGlCQUFpQjtZQUU1RSxJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7YUFDNUI7WUFFRCxNQUFNLGNBQWMsR0FBRyxLQUFNLENBQUEsQ0FBQSxRQUFRO1lBQ3JDLElBQUksT0FBTyxHQUFHLGNBQWMsRUFBRTtnQkFDMUIsT0FBTyxHQUFHLGNBQWMsQ0FBQzthQUM1QjtZQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDN0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2Y7SUFDTCxDQUFDO0lBQ08sc0JBQXNCO1FBQzFCLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTtZQUNuQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0wsQ0FBQztJQUNPLGlCQUFpQjtRQUNyQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUM3QixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdEM7SUFDTCxDQUFDO0lBR0QsZUFBZTtRQUNYLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLDJDQUEyQztRQUUxRixNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUN0QyxJQUFJLElBQUksQ0FBQyx3QkFBd0IsS0FBSyxRQUFRLEVBQUU7WUFDNUMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLFFBQVEsQ0FBQztZQUV6QyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMxQztZQUVELCtFQUErRTtZQUMvRSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNYLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUNqQjtZQUNELE9BQU8sUUFBUSxDQUFDO1NBQ25CO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUlELElBQUksVUFBVTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDdkU7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQjtZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFFekQsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDdEMsQ0FBQztJQUtELElBQUksY0FBYztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDOUIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7WUFDbEQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUMvRTtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUU3RCxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztJQUMxQyxDQUFDO0lBSUQsS0FBSyxDQUFDLElBQW1DO1FBQ3JDLGNBQWM7UUFDZCxvQ0FBb0M7UUFDcEMsMEZBQTBGO1FBQzFGLGdIQUFnSDtRQUNoSCxvSkFBb0o7UUFDcEosdUNBQXVDO1FBQ3ZDLGlGQUFpRjtRQUNqRixRQUFRO1FBQ1IsSUFBSTtRQUVKLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLENBQUEsZ0NBQWdDO1FBQzVELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFBLHFEQUFxRDtJQUNoRixDQUFDO0lBQ0QsTUFBTTtRQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUlTLFVBQVU7UUFDaEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixJQUFJLElBQUksRUFBRTtZQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUN2QjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFUyxzQkFBc0I7UUFDNUIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixJQUFJLElBQUksRUFBRTtZQUNOLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO1NBQ2hDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUdELDhDQUE4QztJQUM5Qyx3REFBd0Q7SUFDeEQsdUJBQXVCO0lBQ3ZCLFFBQVE7SUFFUixrQ0FBa0M7SUFDbEMsNENBQTRDO0lBQzVDLDBDQUEwQztJQUMxQyx3QkFBd0I7SUFDeEIsUUFBUTtJQUVSLDRFQUE0RTtJQUM1RSx1QkFBdUI7SUFDdkIsSUFBSTtJQUdKLGFBQWEsQ0FBQyxVQUFvRDtRQUM5RCxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLElBQUksS0FBZ0MsQ0FBQztRQUNyQyxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7WUFDbEUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO1NBQ3JCLENBQUEsd0NBQXdDO1FBQ3pDLElBQUk7YUFDQyxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUc7Z0JBQ2YsT0FBTyxJQUFJLENBQUM7WUFFaEIsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUM7WUFDckIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7U0FDNUI7UUFFRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBR0QsY0FBYyxDQUFDLFdBQTJCLEVBQUUsS0FBcUI7UUFDN0QsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxQyxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN2RCxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ2xCLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxLQUFLLEVBQUU7WUFDUCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDekMsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN6QixJQUFJLEtBQUssR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9CLElBQUksS0FBSyxFQUFFO29CQUNQLElBQUksYUFBYSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUN4RCxJQUFJLGFBQWE7d0JBQ2IsT0FBTyxJQUFJLENBQUM7aUJBQ25CO2FBQ0o7U0FDSjthQUFNO1lBQ0gsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3pDLE1BQU0sQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekIsSUFBSSxLQUFLLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvQixJQUFJLEtBQUs7b0JBQ0wsT0FBTyxJQUFJLENBQUM7YUFDbkI7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFHRCxpQkFBaUIsQ0FBQyxJQUFTO1FBQ3ZCLHVEQUF1RDtRQUN2RCxtQ0FBbUM7UUFDbkMsOENBQThDO1FBRTlDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFbkMsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVuRCxvQ0FBb0M7UUFDcEMsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQzs7d0dBN09RLFdBQVc7NEdBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEtleVBhaXIsIExvZ2luVG9rZW4sIExvZ2luVXNlciB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IENvbnZlcnQsIERhdGVIZWxwZXIsIE9iamVjdEhlbHBlciwgU3RvcmFnZUhlbHBlciB9IGZyb20gJy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQml0d2lzZUhlbHBlciB9IGZyb20gJy4uL3V0aWxzL2JpdHdpc2UtaGVscGVyJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgX2lzSW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX29sZFZhbHVlSXNBdXRoZW50aWNhdGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF91c2VyOiBMb2dpblVzZXIgfCBudWxsID0gbnVsbDtcclxuXHJcblxyXG5cclxuICAgIGdldCB1c2VyKCk6IExvZ2luVXNlciB8IG51bGwge1xyXG4gICAgICAgIGlmICghdGhpcy5faXNJbml0aWFsaXplZCkge1xyXG4gICAgICAgICAgICBsZXQgdXNlciA9IFN0b3JhZ2VIZWxwZXIuZ2V0KCdsb2dpbicpO1xyXG4gICAgICAgICAgICBpZiAodXNlcikge1xyXG4gICAgICAgICAgICAgICAgdXNlci5pZCA9IE9iamVjdEhlbHBlci5pc0RlZmluZWQodXNlci5pZCkgPyBDb252ZXJ0LnBhcnNlTnVtYmVyKHVzZXIuaWQpIDogdXNlci5pZDtcclxuICAgICAgICAgICAgICAgIHVzZXIuZXhwaXJlZCA9IE9iamVjdEhlbHBlci5pc0RlZmluZWQodXNlci5leHBpcmVkKSA/IERhdGVIZWxwZXIucGFyc2VEYXRlKHVzZXIuZXhwaXJlZCkgOiB1c2VyLmV4cGlyZWQ7XHJcbiAgICAgICAgICAgICAgICB1c2VyLnJlZnJlc2hUb2tlblRpbWUgPSBPYmplY3RIZWxwZXIuaXNEZWZpbmVkKHVzZXIucmVmcmVzaFRva2VuVGltZSkgPyBEYXRlSGVscGVyLnBhcnNlRGF0ZSh1c2VyLnJlZnJlc2hUb2tlblRpbWUpIDogdXNlci5yZWZyZXNoVG9rZW5UaW1lO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHVzZXIucm9sZXMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdXNlci5yb2xlcyA9IHVzZXIucm9sZXMubWFwKGZ1bmN0aW9uIChlOiBhbnkpIHsgcmV0dXJuIGUgPyBlLnRvVXBwZXJDYXNlKCkgOiBlOyB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl91c2VyID0gdXNlcjtcclxuICAgICAgICAgICAgdGhpcy5faXNJbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuX3N0YXJSZWZyZXNoVG9rZW5UaW1lcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5fdXNlcjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfdGltZXJJZDogYW55O1xyXG4gICAgcHJpdmF0ZSBfc3RhclJlZnJlc2hUb2tlblRpbWVyKCkge1xyXG4gICAgICAgIHRoaXMuX3N0b3BSZWZyZXNoVG9rZW5UaW1lcigpO1xyXG5cclxuICAgICAgICBsZXQgdXNlciA9IHRoaXMuX3VzZXI7XHJcbiAgICAgICAgaWYgKHVzZXIgJiYgdXNlci5yZWZyZXNoVG9rZW5UaW1lKSB7XHJcbiAgICAgICAgICAgIGxldCB0aW1lb3V0ID0gdXNlci5yZWZyZXNoVG9rZW5UaW1lLmdldFRpbWUoKSAtIERhdGUubm93KCk7Ly8gLSAoNjAgKiAxMDAwKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aW1lb3V0IDwgMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdFJlZnJlc2hUb2tlbigpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBtaW5SZWZyZXNoVGltZSA9IDYwXzAwMC8vMSBtaW47XHJcbiAgICAgICAgICAgIGlmICh0aW1lb3V0IDwgbWluUmVmcmVzaFRpbWUpIHtcclxuICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBtaW5SZWZyZXNoVGltZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5fdGltZXJJZCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRSZWZyZXNoVG9rZW4oKTtcclxuICAgICAgICAgICAgfSwgdGltZW91dCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfc3RvcFJlZnJlc2hUb2tlblRpbWVyKCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fdGltZXJJZCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLl90aW1lcklkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9lbWl0UmVmcmVzaFRva2VuKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9vblJlZnJlc2hUb2tlblN1YmplY3QpIHtcclxuICAgICAgICAgICAgdGhpcy5fb25SZWZyZXNoVG9rZW5TdWJqZWN0Lm5leHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlzQXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICBsZXQgZXhwaXJlZCA9IHRoaXMuZ2V0RXhwaXJlZCgpIHx8IG5ldyBEYXRlKDApOy8vIGlmIGdldEV4cGlyZWQgaXMgbnVsbCByZXR1cm4gbWluIEpTIGRhdGVcclxuXHJcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBuZXcgRGF0ZSgpIDwgZXhwaXJlZDtcclxuICAgICAgICBpZiAodGhpcy5fb2xkVmFsdWVJc0F1dGhlbnRpY2F0ZWQgIT09IG5ld1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX29sZFZhbHVlSXNBdXRoZW50aWNhdGVkID0gbmV3VmFsdWU7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fb25TaWduZWRJblN1YmplY3QpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX29uU2lnbmVkSW5TdWJqZWN0Lm5leHQobmV3VmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL2lmIHVzZXIgaXMgc2lnbmVkIGluIGFuZCBleHBpcmVkIHdlIG5lZWQgdG8gbG9nb3V0IChyZW1vdmUgZnJvbSBsb2NhbFN0b3JhZ2UpXHJcbiAgICAgICAgICAgIGlmICghbmV3VmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9nb3V0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG5ld1ZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3VmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfb25TaWduZWRJblN1YmplY3Q/OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47Ly9CZWhhdmlvclN1YmplY3QgaXMgZm9yIGluaXRpYWwgZmlydCB2YWx1ZSA9IGZhbHNlXHJcbiAgICBwcml2YXRlIF9vblNpZ25lZEluT2JzZXJ2YWJsZT86IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBnZXQgb25TaWduZWRJbigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICBpZiAoIXRoaXMuX29uU2lnbmVkSW5TdWJqZWN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX29uU2lnbmVkSW5TdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuX29uU2lnbmVkSW5PYnNlcnZhYmxlID0gdGhpcy5fb25TaWduZWRJblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuX29uU2lnbmVkSW5PYnNlcnZhYmxlKVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJfb25FeGVjdXRlT2JzZXJ2YWJsZSBpcyB1bmRlZmluZWRcIik7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9vblNpZ25lZEluT2JzZXJ2YWJsZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfb25SZWZyZXNoVG9rZW5TdWJqZWN0PzogU3ViamVjdDx2b2lkPjtcclxuICAgIHByaXZhdGUgX29uUmVmcmVzaFRva2VuT2JzZXJ2YWJsZT86IE9ic2VydmFibGU8dm9pZD47XHJcbiAgICBnZXQgb25SZWZyZXNoVG9rZW4oKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9vblJlZnJlc2hUb2tlblN1YmplY3QpIHtcclxuICAgICAgICAgICAgdGhpcy5fb25SZWZyZXNoVG9rZW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgICAgICAgICAgdGhpcy5fb25SZWZyZXNoVG9rZW5PYnNlcnZhYmxlID0gdGhpcy5fb25SZWZyZXNoVG9rZW5TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLl9vblJlZnJlc2hUb2tlbk9ic2VydmFibGUpXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIm9uUmVmcmVzaFRva2VuT2JzZXJ2YWJsZSBpcyB1bmRlZmluZWRcIik7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9vblJlZnJlc2hUb2tlbk9ic2VydmFibGU7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBsb2dpbih1c2VyOiBMb2dpblRva2VuIHwgTG9naW5Vc2VyIHwgbnVsbCkge1xyXG4gICAgICAgIC8vIGlmICh1c2VyKSB7XHJcbiAgICAgICAgLy8gICAgIC8vIEkgdGhpbmsgd2UgZG9uJ3QgbmVlZCB0aGlzXHJcbiAgICAgICAgLy8gICAgIHVzZXIuaWQgPSBPYmplY3RIZWxwZXIuaXNEZWZpbmVkKHVzZXIuaWQpID8gQ29udmVydC5wYXJzZU51bWJlcih1c2VyLmlkKSA6IHVzZXIuaWQ7XHJcbiAgICAgICAgLy8gICAgIHVzZXIuZXhwaXJlZCA9IE9iamVjdEhlbHBlci5pc0RlZmluZWQodXNlci5leHBpcmVkKSA/ICBEYXRlSGVscGVyLnBhcnNlRGF0ZSh1c2VyLmV4cGlyZWQpIDogdXNlci5leHBpcmVkO1xyXG4gICAgICAgIC8vICAgICB1c2VyLnJlZnJlc2hUb2tlblRpbWUgPSBPYmplY3RIZWxwZXIuaXNEZWZpbmVkKHVzZXIucmVmcmVzaFRva2VuVGltZSkgPyAgRGF0ZUhlbHBlci5wYXJzZURhdGUodXNlci5yZWZyZXNoVG9rZW5UaW1lKSA6IHVzZXIucmVmcmVzaFRva2VuVGltZTtcclxuICAgICAgICAvLyAgICAgaWYgKEFycmF5LmlzQXJyYXkodXNlci5yb2xlcykpIHtcclxuICAgICAgICAvLyAgICAgICAgIHVzZXIucm9sZXMgPSB1c2VyLnJvbGVzLm1hcChmdW5jdGlvbiAoZSkgeyByZXR1cm4gZS50b1VwcGVyQ2FzZSgpOyB9KTtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgU3RvcmFnZUhlbHBlci5zZXQoJ2xvZ2luJywgdXNlcik7XHJcbiAgICAgICAgdGhpcy5fdXNlciA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5faXNJbml0aWFsaXplZCA9IGZhbHNlOy8vdXNlciBnZXQgbWV0aG9kIHdpbGwgaW5pdCB1c2VyXHJcbiAgICAgICAgdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKTsvL3RoaXMgbWV0aG9kIG5lZWQgdG8gZXhlY3V0ZSBzdWJqZWN0Lm5leHQoKTsgICAgICAgIFxyXG4gICAgfVxyXG4gICAgbG9nb3V0KCkge1xyXG4gICAgICAgIHRoaXMubG9naW4obnVsbCk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0RXhwaXJlZCgpOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgbGV0IHVzZXIgPSB0aGlzLnVzZXI7XHJcbiAgICAgICAgaWYgKHVzZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVzZXIuZXhwaXJlZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRSZWZyZXNoVG9rZW5FeHBpcmVkKCk6IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICBsZXQgdXNlciA9IHRoaXMudXNlcjtcclxuICAgICAgICBpZiAodXNlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gdXNlci5yZWZyZXNoVG9rZW5UaW1lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIGlzSW5Sb2xlKGFsbG93ZWRSb2xlczogc3RyaW5nW10pOiBib29sZWFuIHtcclxuICAgIC8vICAgICBpZiAoIWFsbG93ZWRSb2xlcyB8fCBhbGxvd2VkUm9sZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAvLyAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgLy8gICAgIH1cclxuXHJcbiAgICAvLyAgICAgY29uc3QgdG1wID0gdGhpcy5nZXRVc2VyKCk7XHJcbiAgICAvLyAgICAgY29uc3Qgcm9sZXMgPSB0bXAgPyB0bXAucm9sZXMgOiBudWxsO1xyXG4gICAgLy8gICAgIGlmICghcm9sZXMgfHwgcm9sZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAvLyAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIC8vICAgICB9XHJcblxyXG4gICAgLy8gICAgIGxldCBpc0luUm9sZSA9IGFsbG93ZWRSb2xlcy5zb21lKHJvbGUgPT4gcm9sZXMuaW5kZXhPZihyb2xlKSAhPT0gLTEpO1xyXG4gICAgLy8gICAgIHJldHVybiBpc0luUm9sZTtcclxuICAgIC8vIH1cclxuXHJcblxyXG4gICAgaGFzUGVybWlzc2lvbihwZXJtaXNzaW9uPzogS2V5UGFpcjxudW1iZXIsIG51bWJlcj4gfCBudW1iZXIgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGtleSA9IDA7XHJcbiAgICAgICAgbGV0IHZhbHVlOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0eXBlb2YgcGVybWlzc2lvbiA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHBlcm1pc3Npb24gPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIGtleSA9ICtwZXJtaXNzaW9uO1xyXG4gICAgICAgIH0vLyBlbHNlIGlmIChBcnJheS5pc0FycmF5KHBlcm1pc3Npb24pKSB7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBwZXJtaXNzaW9uID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICBpZiAoIXBlcm1pc3Npb24ua2V5KVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgICAgICAgICBrZXkgPSBwZXJtaXNzaW9uLmtleTtcclxuICAgICAgICAgICAgdmFsdWUgPSBwZXJtaXNzaW9uLnZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzUGVybWlzc2lvbnMoW2tleV0sIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaGFzUGVybWlzc2lvbnMocGVybWlzc2lvbnM/OiBBcnJheTxudW1iZXI+LCB2YWx1ZT86IG51bWJlciB8IG51bGwpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXBlcm1pc3Npb25zIHx8IHBlcm1pc3Npb25zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLnVzZXI7XHJcbiAgICAgICAgY29uc3QgdXNlclBlcm1pc3Npb25zID0gdXNlciA/IHVzZXIucGVybWlzc2lvbnMgOiBudWxsO1xyXG4gICAgICAgIGlmICghdXNlclBlcm1pc3Npb25zKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBlcm1pc3Npb25zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwID0gcGVybWlzc2lvbnNbaV07XHJcbiAgICAgICAgICAgICAgICBsZXQgZm91bmQgPSB1c2VyUGVybWlzc2lvbnNbcF07XHJcbiAgICAgICAgICAgICAgICBpZiAoZm91bmQpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaGFzUGVybWlzc2lvbiA9IEJpdHdpc2VIZWxwZXIuaGFzRmxhZyhmb3VuZCwgdmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChoYXNQZXJtaXNzaW9uKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGVybWlzc2lvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHAgPSBwZXJtaXNzaW9uc1tpXTtcclxuICAgICAgICAgICAgICAgIGxldCBmb3VuZCA9IHVzZXJQZXJtaXNzaW9uc1twXTtcclxuICAgICAgICAgICAgICAgIGlmIChmb3VuZClcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBoYXNEYXRhUGVybWlzc2lvbihkYXRhOiBhbnkpIHtcclxuICAgICAgICAvL2lmIChkYXRhID09PSB1bmRlZmluZWQgfHwgZGF0YSA9PT0gbnVsbCkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgLy8gY29uc3QgYWxsb3dlZFJvbGVzID0gZGF0YS5yb2xlcztcclxuICAgICAgICAvLyBsZXQgaXNJblJvbGUgPSB0aGlzLmlzSW5Sb2xlKGFsbG93ZWRSb2xlcyk7XHJcblxyXG4gICAgICAgIGNvbnN0IHBlcm1pc3Npb24gPSBkYXRhLnBlcm1pc3Npb247XHJcblxyXG4gICAgICAgIGxldCBoYXNQZXJtaXNzaW9uID0gdGhpcy5oYXNQZXJtaXNzaW9uKHBlcm1pc3Npb24pO1xyXG5cclxuICAgICAgICAvLyByZXR1cm4gaXNJblJvbGUgJiYgaGFzUGVybWlzc2lvbjtcclxuICAgICAgICByZXR1cm4gaGFzUGVybWlzc2lvbjtcclxuICAgIH1cclxufSJdfQ==
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvc2VydmljZXMvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBR3hELE1BQU0sT0FBTyxXQUFXO0lBRHhCO1FBRVksbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixVQUFLLEdBQXFCLElBQUksQ0FBQztLQStPMUM7SUE3T0csSUFBSSxJQUFJO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdEIsSUFBSSxJQUFJLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QyxJQUFJLElBQUksRUFBRTtnQkFDTixJQUFJLENBQUMsRUFBRSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkYsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FB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QUFLLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvQixJQUFJLEtBQUs7b0JBQ0wsT0FBTyxJQUFJLENBQUM7YUFDbkI7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFHRCxpQkFBaUIsQ0FBQyxJQUFTO1FBQ3ZCLHVEQUF1RDtRQUN2RCxtQ0FBbUM7UUFDbkMsOENBQThDO1FBRTlDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFbkMsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVuRCxvQ0FBb0M7UUFDcEMsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQzs7d0dBalBRLFdBQVc7NEdBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEtleVBhaXIsIExvZ2luVG9rZW4sIExvZ2luVXNlciB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IENvbnZlcnQsIERhdGVIZWxwZXIsIE9iamVjdEhlbHBlciwgU3RvcmFnZUhlbHBlciB9IGZyb20gJy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQml0d2lzZUhlbHBlciB9IGZyb20gJy4uL3V0aWxzL2JpdHdpc2UtaGVscGVyJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgX2lzSW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX29sZFZhbHVlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF91c2VyOiBMb2dpblVzZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBnZXQgdXNlcigpOiBMb2dpblVzZXIgfCBudWxsIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2lzSW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgbGV0IHVzZXIgPSBTdG9yYWdlSGVscGVyLmdldCgnbG9naW4nKTtcclxuICAgICAgICAgICAgaWYgKHVzZXIpIHtcclxuICAgICAgICAgICAgICAgIHVzZXIuaWQgPSBPYmplY3RIZWxwZXIuaXNEZWZpbmVkKHVzZXIuaWQpID8gQ29udmVydC5wYXJzZU51bWJlcih1c2VyLmlkKSA6IHVzZXIuaWQ7XHJcbiAgICAgICAgICAgICAgICB1c2VyLmV4cGlyZWQgPSBPYmplY3RIZWxwZXIuaXNEZWZpbmVkKHVzZXIuZXhwaXJlZCkgPyBEYXRlSGVscGVyLnBhcnNlRGF0ZSh1c2VyLmV4cGlyZWQpIDogdXNlci5leHBpcmVkO1xyXG4gICAgICAgICAgICAgICAgdXNlci5yZWZyZXNoVG9rZW5UaW1lID0gT2JqZWN0SGVscGVyLmlzRGVmaW5lZCh1c2VyLnJlZnJlc2hUb2tlblRpbWUpID8gRGF0ZUhlbHBlci5wYXJzZURhdGUodXNlci5yZWZyZXNoVG9rZW5UaW1lKSA6IHVzZXIucmVmcmVzaFRva2VuVGltZTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh1c2VyLnJvbGVzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIucm9sZXMgPSB1c2VyLnJvbGVzLm1hcChmdW5jdGlvbiAoZTogYW55KSB7IHJldHVybiBlID8gZS50b1VwcGVyQ2FzZSgpIDogZTsgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5fdXNlciA9IHVzZXI7XHJcbiAgICAgICAgICAgIHRoaXMuX2lzSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLl9zdGFyUmVmcmVzaFRva2VuVGltZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXI7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgX3RpbWVySWQ6IGFueTtcclxuICAgIHByaXZhdGUgX3N0YXJSZWZyZXNoVG9rZW5UaW1lcigpIHtcclxuICAgICAgICB0aGlzLl9zdG9wUmVmcmVzaFRva2VuVGltZXIoKTtcclxuXHJcbiAgICAgICAgbGV0IHVzZXIgPSB0aGlzLl91c2VyO1xyXG4gICAgICAgIGlmICh1c2VyICYmIHVzZXIucmVmcmVzaFRva2VuVGltZSkge1xyXG4gICAgICAgICAgICBsZXQgdGltZW91dCA9IHVzZXIucmVmcmVzaFRva2VuVGltZS5nZXRUaW1lKCkgLSBEYXRlLm5vdygpOy8vIC0gKDYwICogMTAwMCk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGltZW91dCA8IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRSZWZyZXNoVG9rZW4oKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgbWluUmVmcmVzaFRpbWUgPSA2MF8wMDAvLzEgbWluO1xyXG4gICAgICAgICAgICBpZiAodGltZW91dCA8IG1pblJlZnJlc2hUaW1lKSB7XHJcbiAgICAgICAgICAgICAgICB0aW1lb3V0ID0gbWluUmVmcmVzaFRpbWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3RpbWVySWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0UmVmcmVzaFRva2VuKCk7XHJcbiAgICAgICAgICAgIH0sIHRpbWVvdXQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgX3N0b3BSZWZyZXNoVG9rZW5UaW1lcigpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3RpbWVySWQgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5fdGltZXJJZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfZW1pdFJlZnJlc2hUb2tlbigpIHtcclxuICAgICAgICBpZiAodGhpcy5fb25SZWZyZXNoVG9rZW5TdWJqZWN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX29uUmVmcmVzaFRva2VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgbGV0IGV4cGlyZWQgPSB0aGlzLmdldEV4cGlyZWQoKSB8fCBuZXcgRGF0ZSgwKTsvLyBpZiBnZXRFeHBpcmVkIGlzIG51bGwgcmV0dXJuIG1pbiBKUyBkYXRlXHJcblxyXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gbmV3IERhdGUoKSA8IGV4cGlyZWQ7XHJcbiAgICAgICAgaWYgKHRoaXMuX29sZFZhbHVlICE9PSBuZXdWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9vbGRWYWx1ZSA9IG5ld1ZhbHVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5lbWl0T25TaWduZWRJbigpO1xyXG4gICAgICAgICAgICAvLyBpZiAodGhpcy5fb25TaWduZWRJblN1YmplY3QpIHtcclxuICAgICAgICAgICAgLy8gICAgIHRoaXMuX29uU2lnbmVkSW5TdWJqZWN0Lm5leHQobmV3VmFsdWUpO1xyXG4gICAgICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgICAgICAvL2lmIHVzZXIgaXMgc2lnbmVkIGluIGFuZCBleHBpcmVkIHdlIG5lZWQgdG8gbG9nb3V0IChyZW1vdmUgZnJvbSBsb2NhbFN0b3JhZ2UpXHJcbiAgICAgICAgICAgIGlmICghbmV3VmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9nb3V0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG5ld1ZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3VmFsdWU7XHJcbiAgICB9XHJcbiAgICBlbWl0T25TaWduZWRJbigpIHtcclxuICAgICAgICBpZiAodGhpcy5fb25TaWduZWRJblN1YmplY3QpIHtcclxuICAgICAgICAgICAgdGhpcy5fb25TaWduZWRJblN1YmplY3QubmV4dCh0aGlzLl9vbGRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX29uU2lnbmVkSW5TdWJqZWN0PzogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+Oy8vQmVoYXZpb3JTdWJqZWN0IGlzIGZvciBpbml0aWFsIGZpcnQgdmFsdWUgPSBmYWxzZVxyXG4gICAgcHJpdmF0ZSBfb25TaWduZWRJbk9ic2VydmFibGU/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgZ2V0IG9uU2lnbmVkSW4oKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9vblNpZ25lZEluU3ViamVjdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vblNpZ25lZEluU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLl9vblNpZ25lZEluT2JzZXJ2YWJsZSA9IHRoaXMuX29uU2lnbmVkSW5TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLl9vblNpZ25lZEluT2JzZXJ2YWJsZSlcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiX29uRXhlY3V0ZU9ic2VydmFibGUgaXMgdW5kZWZpbmVkXCIpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fb25TaWduZWRJbk9ic2VydmFibGU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgX29uUmVmcmVzaFRva2VuU3ViamVjdD86IFN1YmplY3Q8dm9pZD47XHJcbiAgICBwcml2YXRlIF9vblJlZnJlc2hUb2tlbk9ic2VydmFibGU/OiBPYnNlcnZhYmxlPHZvaWQ+O1xyXG4gICAgZ2V0IG9uUmVmcmVzaFRva2VuKCk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgICAgIGlmICghdGhpcy5fb25SZWZyZXNoVG9rZW5TdWJqZWN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX29uUmVmcmVzaFRva2VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICAgICAgICAgIHRoaXMuX29uUmVmcmVzaFRva2VuT2JzZXJ2YWJsZSA9IHRoaXMuX29uUmVmcmVzaFRva2VuU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fb25SZWZyZXNoVG9rZW5PYnNlcnZhYmxlKVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJvblJlZnJlc2hUb2tlbk9ic2VydmFibGUgaXMgdW5kZWZpbmVkXCIpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fb25SZWZyZXNoVG9rZW5PYnNlcnZhYmxlO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgbG9naW4odXNlcjogTG9naW5Ub2tlbiB8IExvZ2luVXNlciB8IG51bGwpIHtcclxuICAgICAgICAvLyBpZiAodXNlcikge1xyXG4gICAgICAgIC8vICAgICAvLyBJIHRoaW5rIHdlIGRvbid0IG5lZWQgdGhpc1xyXG4gICAgICAgIC8vICAgICB1c2VyLmlkID0gT2JqZWN0SGVscGVyLmlzRGVmaW5lZCh1c2VyLmlkKSA/IENvbnZlcnQucGFyc2VOdW1iZXIodXNlci5pZCkgOiB1c2VyLmlkO1xyXG4gICAgICAgIC8vICAgICB1c2VyLmV4cGlyZWQgPSBPYmplY3RIZWxwZXIuaXNEZWZpbmVkKHVzZXIuZXhwaXJlZCkgPyAgRGF0ZUhlbHBlci5wYXJzZURhdGUodXNlci5leHBpcmVkKSA6IHVzZXIuZXhwaXJlZDtcclxuICAgICAgICAvLyAgICAgdXNlci5yZWZyZXNoVG9rZW5UaW1lID0gT2JqZWN0SGVscGVyLmlzRGVmaW5lZCh1c2VyLnJlZnJlc2hUb2tlblRpbWUpID8gIERhdGVIZWxwZXIucGFyc2VEYXRlKHVzZXIucmVmcmVzaFRva2VuVGltZSkgOiB1c2VyLnJlZnJlc2hUb2tlblRpbWU7XHJcbiAgICAgICAgLy8gICAgIGlmIChBcnJheS5pc0FycmF5KHVzZXIucm9sZXMpKSB7XHJcbiAgICAgICAgLy8gICAgICAgICB1c2VyLnJvbGVzID0gdXNlci5yb2xlcy5tYXAoZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGUudG9VcHBlckNhc2UoKTsgfSk7XHJcbiAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIFN0b3JhZ2VIZWxwZXIuc2V0KCdsb2dpbicsIHVzZXIpO1xyXG4gICAgICAgIHRoaXMuX3VzZXIgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2lzSW5pdGlhbGl6ZWQgPSBmYWxzZTsvL3VzZXIgZ2V0IG1ldGhvZCB3aWxsIGluaXQgdXNlclxyXG4gICAgICAgIHRoaXMuaXNBdXRoZW50aWNhdGVkKCk7Ly90aGlzIG1ldGhvZCBuZWVkIHRvIGV4ZWN1dGUgc3ViamVjdC5uZXh0KCk7ICAgICAgICBcclxuICAgIH1cclxuICAgIGxvZ291dCgpIHtcclxuICAgICAgICB0aGlzLmxvZ2luKG51bGwpO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgcHJvdGVjdGVkIGdldEV4cGlyZWQoKTogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGxldCB1c2VyID0gdGhpcy51c2VyO1xyXG4gICAgICAgIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1c2VyLmV4cGlyZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0UmVmcmVzaFRva2VuRXhwaXJlZCgpOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgbGV0IHVzZXIgPSB0aGlzLnVzZXI7XHJcbiAgICAgICAgaWYgKHVzZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVzZXIucmVmcmVzaFRva2VuVGltZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLyBpc0luUm9sZShhbGxvd2VkUm9sZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XHJcbiAgICAvLyAgICAgaWYgKCFhbGxvd2VkUm9sZXMgfHwgYWxsb3dlZFJvbGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgLy8gICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIC8vICAgICB9XHJcblxyXG4gICAgLy8gICAgIGNvbnN0IHRtcCA9IHRoaXMuZ2V0VXNlcigpO1xyXG4gICAgLy8gICAgIGNvbnN0IHJvbGVzID0gdG1wID8gdG1wLnJvbGVzIDogbnVsbDtcclxuICAgIC8vICAgICBpZiAoIXJvbGVzIHx8IHJvbGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgLy8gICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vICAgICBsZXQgaXNJblJvbGUgPSBhbGxvd2VkUm9sZXMuc29tZShyb2xlID0+IHJvbGVzLmluZGV4T2Yocm9sZSkgIT09IC0xKTtcclxuICAgIC8vICAgICByZXR1cm4gaXNJblJvbGU7XHJcbiAgICAvLyB9XHJcblxyXG5cclxuICAgIGhhc1Blcm1pc3Npb24ocGVybWlzc2lvbj86IEtleVBhaXI8bnVtYmVyLCBudW1iZXI+IHwgbnVtYmVyIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghcGVybWlzc2lvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBrZXkgPSAwO1xyXG4gICAgICAgIGxldCB2YWx1ZTogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAodHlwZW9mIHBlcm1pc3Npb24gPT09ICdudW1iZXInIHx8IHR5cGVvZiBwZXJtaXNzaW9uID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBrZXkgPSArcGVybWlzc2lvbjtcclxuICAgICAgICB9Ly8gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwZXJtaXNzaW9uKSkge1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgcGVybWlzc2lvbiA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgaWYgKCFwZXJtaXNzaW9uLmtleSlcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgICAgICAgICAga2V5ID0gcGVybWlzc2lvbi5rZXk7XHJcbiAgICAgICAgICAgIHZhbHVlID0gcGVybWlzc2lvbi52YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmhhc1Blcm1pc3Npb25zKFtrZXldLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGhhc1Blcm1pc3Npb25zKHBlcm1pc3Npb25zPzogQXJyYXk8bnVtYmVyPiwgdmFsdWU/OiBudW1iZXIgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9ucyB8fCBwZXJtaXNzaW9ucy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy51c2VyO1xyXG4gICAgICAgIGNvbnN0IHVzZXJQZXJtaXNzaW9ucyA9IHVzZXIgPyB1c2VyLnBlcm1pc3Npb25zIDogbnVsbDtcclxuICAgICAgICBpZiAoIXVzZXJQZXJtaXNzaW9ucykge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwZXJtaXNzaW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcCA9IHBlcm1pc3Npb25zW2ldO1xyXG4gICAgICAgICAgICAgICAgbGV0IGZvdW5kID0gdXNlclBlcm1pc3Npb25zW3BdO1xyXG4gICAgICAgICAgICAgICAgaWYgKGZvdW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGhhc1Blcm1pc3Npb24gPSBCaXR3aXNlSGVscGVyLmhhc0ZsYWcoZm91bmQsIHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaGFzUGVybWlzc2lvbilcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBlcm1pc3Npb25zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwID0gcGVybWlzc2lvbnNbaV07XHJcbiAgICAgICAgICAgICAgICBsZXQgZm91bmQgPSB1c2VyUGVybWlzc2lvbnNbcF07XHJcbiAgICAgICAgICAgICAgICBpZiAoZm91bmQpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaGFzRGF0YVBlcm1pc3Npb24oZGF0YTogYW55KSB7XHJcbiAgICAgICAgLy9pZiAoZGF0YSA9PT0gdW5kZWZpbmVkIHx8IGRhdGEgPT09IG51bGwpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIC8vIGNvbnN0IGFsbG93ZWRSb2xlcyA9IGRhdGEucm9sZXM7XHJcbiAgICAgICAgLy8gbGV0IGlzSW5Sb2xlID0gdGhpcy5pc0luUm9sZShhbGxvd2VkUm9sZXMpO1xyXG5cclxuICAgICAgICBjb25zdCBwZXJtaXNzaW9uID0gZGF0YS5wZXJtaXNzaW9uO1xyXG5cclxuICAgICAgICBsZXQgaGFzUGVybWlzc2lvbiA9IHRoaXMuaGFzUGVybWlzc2lvbihwZXJtaXNzaW9uKTtcclxuXHJcbiAgICAgICAgLy8gcmV0dXJuIGlzSW5Sb2xlICYmIGhhc1Blcm1pc3Npb247XHJcbiAgICAgICAgcmV0dXJuIGhhc1Blcm1pc3Npb247XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -7,12 +7,13 @@ import * as i2 from "@ngx-translate/core";
|
|
|
7
7
|
import * as i3 from "@angular/router";
|
|
8
8
|
/** Handles HttpClient errors */
|
|
9
9
|
export class HttpErrorHandler {
|
|
10
|
-
constructor(
|
|
11
|
-
this.
|
|
12
|
-
this.
|
|
10
|
+
constructor(alert, translate, router) {
|
|
11
|
+
this.alert = alert;
|
|
12
|
+
this.translate = translate;
|
|
13
13
|
this.router = router;
|
|
14
14
|
/** Create curried handleError function that already knows the service name */
|
|
15
15
|
this.createHandleError = (serviceName = '') => (operation = 'operation', result = {}, show = true) => this.handleError(serviceName, operation, result, show);
|
|
16
|
+
this.createHandleErrorJson = (serviceName = '') => (operation = 'operation', show = true) => this.handleErrorJson(serviceName, operation, show);
|
|
16
17
|
}
|
|
17
18
|
/**
|
|
18
19
|
* Returns a function that handles Http operation failures.
|
|
@@ -20,84 +21,124 @@ export class HttpErrorHandler {
|
|
|
20
21
|
* @param serviceName = name of the data service that attempted the operation
|
|
21
22
|
* @param operation - name of the operation that failed
|
|
22
23
|
* @param result - optional value to return as the observable result
|
|
24
|
+
* @param show - optional value to show error
|
|
23
25
|
*/
|
|
24
26
|
handleError(serviceName = '', operation = 'operation', result = {}, show) {
|
|
25
27
|
return (response) => {
|
|
26
28
|
console.error(response);
|
|
27
29
|
if (show) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
30
|
+
this.showError(serviceName, operation, response);
|
|
31
|
+
}
|
|
32
|
+
//return throwError('Error! please try again later.');
|
|
33
|
+
return of(result);
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
showError(serviceName, operation, response) {
|
|
37
|
+
switch (response.status) {
|
|
38
|
+
case 0: //No Connection
|
|
39
|
+
this.alert.error(`Can't connect to api server.`);
|
|
40
|
+
break;
|
|
41
|
+
case 400: //Bad Request
|
|
42
|
+
let error;
|
|
43
|
+
if (typeof response.error === 'string' && response.error[0] === '{') {
|
|
44
|
+
error = JSON.parse(response.error);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
error = response.error;
|
|
48
|
+
}
|
|
49
|
+
if (error instanceof ErrorEvent) {
|
|
50
|
+
this.alert.error(`${serviceName}: ${operation} failed: ${response.error.message}`);
|
|
51
|
+
}
|
|
52
|
+
if (typeof error === 'string') {
|
|
53
|
+
this.alert.error(response.error);
|
|
54
|
+
}
|
|
55
|
+
else if (typeof error === 'object') {
|
|
56
|
+
const errors = error.traceId || error.success === false
|
|
57
|
+
? error.errors
|
|
58
|
+
: error;
|
|
59
|
+
const errorMessages = [];
|
|
60
|
+
const properties = Object.getOwnPropertyNames(errors);
|
|
61
|
+
for (let property of properties) {
|
|
62
|
+
const messages = errors[property];
|
|
63
|
+
if (messages instanceof Array) {
|
|
64
|
+
for (let message of messages) {
|
|
65
|
+
const messageKey = `Validation.${message}`;
|
|
66
|
+
let translatedMessage = this.translate.instant(messageKey);
|
|
67
|
+
// if translation not found then use message
|
|
68
|
+
if (messageKey == translatedMessage) {
|
|
69
|
+
translatedMessage = message;
|
|
70
|
+
}
|
|
71
|
+
if (property) {
|
|
72
|
+
const propertyKey = `Fields.${property}`;
|
|
73
|
+
let translatedProperty = this.translate.instant(`Fields.${property}`);
|
|
74
|
+
// if translation not found then use property
|
|
75
|
+
if (propertyKey == translatedProperty) {
|
|
76
|
+
translatedProperty = property;
|
|
74
77
|
}
|
|
78
|
+
errorMessages.push(translatedProperty + ' - ' + translatedMessage);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
errorMessages.push(translatedMessage);
|
|
75
82
|
}
|
|
76
83
|
}
|
|
77
|
-
this.alertService.addRange(AlertType.Danger, errorMessages);
|
|
78
84
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
this.alertService.error('Unauthorized');
|
|
82
|
-
this.router.navigate(['/login']);
|
|
83
|
-
break;
|
|
84
|
-
case 403: //Forbidden
|
|
85
|
-
this.alertService.error('Forbidden');
|
|
86
|
-
break;
|
|
87
|
-
case 404: //Not Found
|
|
88
|
-
this.alertService.error('Not Found');
|
|
89
|
-
break;
|
|
90
|
-
case 402: //Payment Required
|
|
91
|
-
this.alertService.error('License Payment Required');
|
|
92
|
-
break;
|
|
93
|
-
case 500: //Internal Server Error
|
|
94
|
-
this.alertService.error('Internal Server Error');
|
|
95
|
-
break;
|
|
96
|
-
default:
|
|
97
|
-
break;
|
|
85
|
+
}
|
|
86
|
+
this.alert.addRange(AlertType.Danger, errorMessages);
|
|
98
87
|
}
|
|
88
|
+
break;
|
|
89
|
+
case 401: //Unauthorized
|
|
90
|
+
this.alert.error('Unauthorized');
|
|
91
|
+
this.router.navigate(['/login']);
|
|
92
|
+
break;
|
|
93
|
+
case 403: //Forbidden
|
|
94
|
+
this.alert.error('Forbidden');
|
|
95
|
+
break;
|
|
96
|
+
case 404: //Not Found
|
|
97
|
+
this.alert.error('Not Found');
|
|
98
|
+
break;
|
|
99
|
+
case 402: //Payment Required
|
|
100
|
+
this.alert.error('License Payment Required');
|
|
101
|
+
break;
|
|
102
|
+
case 500: //Internal Server Error
|
|
103
|
+
this.alert.error('Internal Server Error');
|
|
104
|
+
break;
|
|
105
|
+
default:
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Returns a function that handles Http operation failures.
|
|
111
|
+
* This error handler lets the app continue to run as if no error occurred.
|
|
112
|
+
* @param serviceName = name of the data service that attempted the operation
|
|
113
|
+
* @param operation - name of the operation that failed
|
|
114
|
+
* @param show - optional value to show error
|
|
115
|
+
*/
|
|
116
|
+
handleErrorJson(serviceName = '', operation = 'operation', show) {
|
|
117
|
+
return (response) => {
|
|
118
|
+
console.error(response);
|
|
119
|
+
if (show) {
|
|
120
|
+
this.showError(serviceName, operation, response);
|
|
121
|
+
}
|
|
122
|
+
let error;
|
|
123
|
+
if (typeof response.error === 'string' && response.error[0] === '{') {
|
|
124
|
+
error = JSON.parse(response.error);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
error = response.error;
|
|
128
|
+
}
|
|
129
|
+
let result;
|
|
130
|
+
if (error instanceof ErrorEvent) {
|
|
131
|
+
result = { '': [response.error.message] };
|
|
132
|
+
}
|
|
133
|
+
if (typeof error === 'string') {
|
|
134
|
+
result = { '': [response.error] };
|
|
135
|
+
}
|
|
136
|
+
else if (typeof error === 'object') {
|
|
137
|
+
const errors = error.traceId || error.success === false
|
|
138
|
+
? error.errors
|
|
139
|
+
: error;
|
|
140
|
+
result = errors;
|
|
99
141
|
}
|
|
100
|
-
//return throwError('Error! please try again later.');
|
|
101
142
|
return of(result);
|
|
102
143
|
};
|
|
103
144
|
}
|
|
@@ -107,4 +148,4 @@ HttpErrorHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ver
|
|
|
107
148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: HttpErrorHandler, decorators: [{
|
|
108
149
|
type: Injectable
|
|
109
150
|
}], ctorParameters: function () { return [{ type: i1.AlertService }, { type: i2.TranslateService }, { type: i3.Router }]; } });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci1oYW5kbGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9zZXJ2aWNlcy9odHRwLWVycm9yLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7QUFLdEMsZ0NBQWdDO0FBRWhDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFDcUIsWUFBMEIsRUFDMUIsZ0JBQWtDLEVBQ2xDLE1BQWM7UUFGZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFFbkMsOEVBQThFO1FBQzlFLHNCQUFpQixHQUFHLENBQUMsV0FBVyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBSSxTQUFTLEdBQUcsV0FBVyxFQUFFLFNBQVMsRUFBTyxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFIekgsQ0FBQztJQUt4Qzs7Ozs7O09BTUc7SUFDSCxXQUFXLENBQUksV0FBVyxHQUFHLEVBQUUsRUFBRSxTQUFTLEdBQUcsV0FBVyxFQUFFLFNBQVMsRUFBTyxFQUFFLElBQWM7UUFDdEYsT0FBTyxDQUFDLFFBQTJCLEVBQWlCLEVBQUU7WUFDbEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV4QixJQUFJLElBQUksRUFBRTtnQkFDTixRQUFRLFFBQVEsQ0FBQyxNQUFNLEVBQUU7b0JB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RVYsS0FBSyxHQUFHLEVBQUMsV0FBVzt3QkFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7d0JBQ3JDLE1BQU07b0JBRVYsS0FBSyxHQUFHLEVBQUMsV0FBVzt3QkFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7d0JBQ3JDLE1BQU07b0JBRVYsS0FBSyxHQUFHLEVBQUMsa0JBQWtCO3dCQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO3dCQUNwRCxNQUFNO29CQUVWLEtBQUssR0FBRyxFQUFDLHVCQUF1Qjt3QkFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQzt3QkFDakQsTUFBTTtvQkFFVjt3QkFDSSxNQUFNO2lCQUNiO2FBQ0o7WUFJRCxzREFBc0Q7WUFDdEQsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUFDO0lBQ04sQ0FBQzs7NkdBNUdRLGdCQUFnQjtpSEFBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4vYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEFsZXJ0VHlwZSB9IGZyb20gJy4uL21vZGVscyc7XHJcblxyXG4vKiogVHlwZSBvZiB0aGUgaGFuZGxlRXJyb3IgZnVuY3Rpb24gcmV0dXJuZWQgYnkgSHR0cEVycm9ySGFuZGxlci5jcmVhdGVIYW5kbGVFcnJvciAqL1xyXG5leHBvcnQgdHlwZSBIYW5kbGVFcnJvciA9IDxUID0gYW55PihvcGVyYXRpb24/OiBzdHJpbmcsIHJlc3VsdD86IFQsIHNob3c/OiBib29sZWFuKSA9PiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBPYnNlcnZhYmxlPFQ+Oy8vQWRkZWQgJz0gYW55J1xyXG5cclxuLyoqIEhhbmRsZXMgSHR0cENsaWVudCBlcnJvcnMgKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSHR0cEVycm9ySGFuZGxlciB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyKSB7IH1cclxuXHJcbiAgICAvKiogQ3JlYXRlIGN1cnJpZWQgaGFuZGxlRXJyb3IgZnVuY3Rpb24gdGhhdCBhbHJlYWR5IGtub3dzIHRoZSBzZXJ2aWNlIG5hbWUgKi9cclxuICAgIGNyZWF0ZUhhbmRsZUVycm9yID0gKHNlcnZpY2VOYW1lID0gJycpID0+IDxUPihvcGVyYXRpb24gPSAnb3BlcmF0aW9uJywgcmVzdWx0ID0ge30gYXMgVCwgc2hvdyA9IHRydWUpID0+IHRoaXMuaGFuZGxlRXJyb3Ioc2VydmljZU5hbWUsIG9wZXJhdGlvbiwgcmVzdWx0LCBzaG93KTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYSBmdW5jdGlvbiB0aGF0IGhhbmRsZXMgSHR0cCBvcGVyYXRpb24gZmFpbHVyZXMuXHJcbiAgICAgKiBUaGlzIGVycm9yIGhhbmRsZXIgbGV0cyB0aGUgYXBwIGNvbnRpbnVlIHRvIHJ1biBhcyBpZiBubyBlcnJvciBvY2N1cnJlZC5cclxuICAgICAqIEBwYXJhbSBzZXJ2aWNlTmFtZSA9IG5hbWUgb2YgdGhlIGRhdGEgc2VydmljZSB0aGF0IGF0dGVtcHRlZCB0aGUgb3BlcmF0aW9uXHJcbiAgICAgKiBAcGFyYW0gb3BlcmF0aW9uIC0gbmFtZSBvZiB0aGUgb3BlcmF0aW9uIHRoYXQgZmFpbGVkXHJcbiAgICAgKiBAcGFyYW0gcmVzdWx0IC0gb3B0aW9uYWwgdmFsdWUgdG8gcmV0dXJuIGFzIHRoZSBvYnNlcnZhYmxlIHJlc3VsdFxyXG4gICAgICovXHJcbiAgICBoYW5kbGVFcnJvcjxUPihzZXJ2aWNlTmFtZSA9ICcnLCBvcGVyYXRpb24gPSAnb3BlcmF0aW9uJywgcmVzdWx0ID0ge30gYXMgVCwgc2hvdz86IGJvb2xlYW4pIHtcclxuICAgICAgICByZXR1cm4gKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSk6IE9ic2VydmFibGU8VD4gPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKHJlc3BvbnNlKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChzaG93KSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlc3BvbnNlLnN0YXR1cykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDovL05vIENvbm5lY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoYENhbid0IGNvbm5lY3QgdG8gYXBpIHNlcnZlci5gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDAwOi8vQmFkIFJlcXVlc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVycm9yOiBhbnk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzcG9uc2UuZXJyb3IgPT09ICdzdHJpbmcnICYmIHJlc3BvbnNlLmVycm9yWzBdID09PSAneycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gSlNPTi5wYXJzZShyZXNwb25zZS5lcnJvcik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSByZXNwb25zZS5lcnJvcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoYCR7c2VydmljZU5hbWV9OiAke29wZXJhdGlvbn0gZmFpbGVkOiAke3Jlc3BvbnNlLmVycm9yLm1lc3NhZ2V9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gaWYgKGVycm9yID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IocmVzcG9uc2UuZXJyb3IgYXMgc3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlcnJvciBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JzID0gZXJyb3IudHJhY2VJZCB8fCBlcnJvci5zdWNjZXNzID09PSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZXJyb3IuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBlcnJvcjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGVycm9ycyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gZXJyb3JzW3Byb3BlcnR5XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZXMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBtZXNzYWdlIG9mIG1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlS2V5ID0gYFZhbGlkYXRpb24uJHttZXNzYWdlfWA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHJhbnNsYXRlZE1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChtZXNzYWdlS2V5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRyYW5zbGF0aW9uIG5vdCBmb3VuZCB0aGVuIHVzZSBtZXNzYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZUtleSA9PSB0cmFuc2xhdGVkTWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZWRNZXNzYWdlID0gbWVzc2FnZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0eUtleSA9IGBGaWVsZHMuJHtwcm9wZXJ0eX1gO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmFuc2xhdGVkUHJvcGVydHkgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgRmllbGRzLiR7cHJvcGVydHl9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdHJhbnNsYXRpb24gbm90IGZvdW5kIHRoZW4gdXNlIHByb3BlcnR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5S2V5ID09IHRyYW5zbGF0ZWRQcm9wZXJ0eSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZWRQcm9wZXJ0eSA9IHByb3BlcnR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZXMucHVzaCh0cmFuc2xhdGVkUHJvcGVydHkgKyAnIC0gJyArIHRyYW5zbGF0ZWRNZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZXMucHVzaCh0cmFuc2xhdGVkTWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRSYW5nZShBbGVydFR5cGUuRGFuZ2VyLCBlcnJvck1lc3NhZ2VzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0MDE6Ly9VbmF1dGhvcml6ZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoJ1VuYXV0aG9yaXplZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9sb2dpbiddKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDAzOi8vRm9yYmlkZGVuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKCdGb3JiaWRkZW4nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDA0Oi8vTm90IEZvdW5kXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKCdOb3QgRm91bmQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDAyOi8vUGF5bWVudCBSZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcignTGljZW5zZSBQYXltZW50IFJlcXVpcmVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDUwMDovL0ludGVybmFsIFNlcnZlciBFcnJvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcignSW50ZXJuYWwgU2VydmVyIEVycm9yJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAvL3JldHVybiB0aHJvd0Vycm9yKCdFcnJvciEgcGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nKTtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHJlc3VsdCk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufSJdfQ==
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci1oYW5kbGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9zZXJ2aWNlcy9odHRwLWVycm9yLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7QUFNdEMsZ0NBQWdDO0FBRWhDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFDcUIsS0FBbUIsRUFDbkIsU0FBMkIsRUFDM0IsTUFBYztRQUZkLFVBQUssR0FBTCxLQUFLLENBQWM7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUVuQyw4RUFBOEU7UUFDOUUsc0JBQWlCLEdBQUcsQ0FBQyxXQUFXLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFJLFNBQVMsR0FBRyxXQUFXLEVBQUUsU0FBUyxFQUFPLEVBQUUsSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoSywwQkFBcUIsR0FBRyxDQUFDLFdBQVcsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUksU0FBUyxHQUFHLFdBQVcsRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFKdkcsQ0FBQztJQU14Qzs7Ozs7OztPQU9HO0lBQ0gsV0FBVyxDQUFJLFdBQVcsR0FBRyxFQUFFLEVBQUUsU0FBUyxHQUFHLFdB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YW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi9hbGVydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWxlcnRUeXBlIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuXHJcbi8qKiBUeXBlIG9mIHRoZSBoYW5kbGVFcnJvciBmdW5jdGlvbiByZXR1cm5lZCBieSBIdHRwRXJyb3JIYW5kbGVyLmNyZWF0ZUhhbmRsZUVycm9yICovXHJcbmV4cG9ydCB0eXBlIEhhbmRsZUVycm9yID0gPFQgPSBhbnk+KG9wZXJhdGlvbj86IHN0cmluZywgcmVzdWx0PzogVCwgc2hvdz86IGJvb2xlYW4pID0+IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IE9ic2VydmFibGU8VD47XHJcbmV4cG9ydCB0eXBlIEhhbmRsZUVycm9ySnNvbiA9IDxUID0gYW55PihvcGVyYXRpb24/OiBzdHJpbmcsIHNob3c/OiBib29sZWFuKSA9PiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBPYnNlcnZhYmxlPFQ+O1xyXG5cclxuLyoqIEhhbmRsZXMgSHR0cENsaWVudCBlcnJvcnMgKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSHR0cEVycm9ySGFuZGxlciB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0OiBBbGVydFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gICAgLyoqIENyZWF0ZSBjdXJyaWVkIGhhbmRsZUVycm9yIGZ1bmN0aW9uIHRoYXQgYWxyZWFkeSBrbm93cyB0aGUgc2VydmljZSBuYW1lICovXHJcbiAgICBjcmVhdGVIYW5kbGVFcnJvciA9IChzZXJ2aWNlTmFtZSA9ICcnKSA9PiA8VD4ob3BlcmF0aW9uID0gJ29wZXJhdGlvbicsIHJlc3VsdCA9IHt9IGFzIFQsIHNob3cgPSB0cnVlKSA9PiB0aGlzLmhhbmRsZUVycm9yKHNlcnZpY2VOYW1lLCBvcGVyYXRpb24sIHJlc3VsdCwgc2hvdyk7XHJcbiAgICBjcmVhdGVIYW5kbGVFcnJvckpzb24gPSAoc2VydmljZU5hbWUgPSAnJykgPT4gPFQ+KG9wZXJhdGlvbiA9ICdvcGVyYXRpb24nLCBzaG93ID0gdHJ1ZSkgPT4gdGhpcy5oYW5kbGVFcnJvckpzb24oc2VydmljZU5hbWUsIG9wZXJhdGlvbiwgc2hvdyk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBoYW5kbGVzIEh0dHAgb3BlcmF0aW9uIGZhaWx1cmVzLlxyXG4gICAgICogVGhpcyBlcnJvciBoYW5kbGVyIGxldHMgdGhlIGFwcCBjb250aW51ZSB0byBydW4gYXMgaWYgbm8gZXJyb3Igb2NjdXJyZWQuXHJcbiAgICAgKiBAcGFyYW0gc2VydmljZU5hbWUgPSBuYW1lIG9mIHRoZSBkYXRhIHNlcnZpY2UgdGhhdCBhdHRlbXB0ZWQgdGhlIG9wZXJhdGlvblxyXG4gICAgICogQHBhcmFtIG9wZXJhdGlvbiAtIG5hbWUgb2YgdGhlIG9wZXJhdGlvbiB0aGF0IGZhaWxlZFxyXG4gICAgICogQHBhcmFtIHJlc3VsdCAtIG9wdGlvbmFsIHZhbHVlIHRvIHJldHVybiBhcyB0aGUgb2JzZXJ2YWJsZSByZXN1bHRcclxuICAgICAqIEBwYXJhbSBzaG93IC0gb3B0aW9uYWwgdmFsdWUgdG8gc2hvdyBlcnJvclxyXG4gICAgICovXHJcbiAgICBoYW5kbGVFcnJvcjxUPihzZXJ2aWNlTmFtZSA9ICcnLCBvcGVyYXRpb24gPSAnb3BlcmF0aW9uJywgcmVzdWx0ID0ge30gYXMgVCwgc2hvdz86IGJvb2xlYW4pIHtcclxuICAgICAgICByZXR1cm4gKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSk6IE9ic2VydmFibGU8VD4gPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKHJlc3BvbnNlKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChzaG93KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dFcnJvcihzZXJ2aWNlTmFtZSwgb3BlcmF0aW9uLCByZXNwb25zZSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy9yZXR1cm4gdGhyb3dFcnJvcignRXJyb3IhIHBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJyk7XHJcbiAgICAgICAgICAgIHJldHVybiBvZihyZXN1bHQpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgc2hvd0Vycm9yKHNlcnZpY2VOYW1lOiBzdHJpbmcsIG9wZXJhdGlvbjogc3RyaW5nLCByZXNwb25zZTogSHR0cEVycm9yUmVzcG9uc2Upe1xyXG4gICAgICAgIHN3aXRjaCAocmVzcG9uc2Uuc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIGNhc2UgMDovL05vIENvbm5lY3Rpb25cclxuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuZXJyb3IoYENhbid0IGNvbm5lY3QgdG8gYXBpIHNlcnZlci5gKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSA0MDA6Ly9CYWQgUmVxdWVzdFxyXG4gICAgICAgICAgICAgICAgbGV0IGVycm9yOiBhbnk7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3BvbnNlLmVycm9yID09PSAnc3RyaW5nJyAmJiByZXNwb25zZS5lcnJvclswXSA9PT0gJ3snKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBKU09OLnBhcnNlKHJlc3BvbnNlLmVycm9yKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSByZXNwb25zZS5lcnJvcjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydC5lcnJvcihgJHtzZXJ2aWNlTmFtZX06ICR7b3BlcmF0aW9ufSBmYWlsZWQ6ICR7cmVzcG9uc2UuZXJyb3IubWVzc2FnZX1gKTtcclxuICAgICAgICAgICAgICAgIH0gaWYgKHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0LmVycm9yKHJlc3BvbnNlLmVycm9yIGFzIHN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvcnMgPSBlcnJvci50cmFjZUlkIHx8IGVycm9yLnN1Y2Nlc3MgPT09IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZXJyb3IuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZXJyb3I7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGVycm9ycyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZXMgPSBlcnJvcnNbcHJvcGVydHldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZXMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgbWVzc2FnZSBvZiBtZXNzYWdlcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VLZXkgPSBgVmFsaWRhdGlvbi4ke21lc3NhZ2V9YDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHJhbnNsYXRlZE1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KG1lc3NhZ2VLZXkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRyYW5zbGF0aW9uIG5vdCBmb3VuZCB0aGVuIHVzZSBtZXNzYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2VLZXkgPT0gdHJhbnNsYXRlZE1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlZE1lc3NhZ2UgPSBtZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5S2V5ID0gYEZpZWxkcy4ke3Byb3BlcnR5fWA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmFuc2xhdGVkUHJvcGVydHkgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGBGaWVsZHMuJHtwcm9wZXJ0eX1gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdHJhbnNsYXRpb24gbm90IGZvdW5kIHRoZW4gdXNlIHByb3BlcnR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eUtleSA9PSB0cmFuc2xhdGVkUHJvcGVydHkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZWRQcm9wZXJ0eSA9IHByb3BlcnR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlcy5wdXNoKHRyYW5zbGF0ZWRQcm9wZXJ0eSArICcgLSAnICsgdHJhbnNsYXRlZE1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlcy5wdXNoKHRyYW5zbGF0ZWRNZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydC5hZGRSYW5nZShBbGVydFR5cGUuRGFuZ2VyLCBlcnJvck1lc3NhZ2VzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSA0MDE6Ly9VbmF1dGhvcml6ZWRcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuZXJyb3IoJ1VuYXV0aG9yaXplZCcpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgNDAzOi8vRm9yYmlkZGVuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0LmVycm9yKCdGb3JiaWRkZW4nKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSA0MDQ6Ly9Ob3QgRm91bmRcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuZXJyb3IoJ05vdCBGb3VuZCcpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIDQwMjovL1BheW1lbnQgUmVxdWlyZWRcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuZXJyb3IoJ0xpY2Vuc2UgUGF5bWVudCBSZXF1aXJlZCcpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIDUwMDovL0ludGVybmFsIFNlcnZlciBFcnJvclxyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydC5lcnJvcignSW50ZXJuYWwgU2VydmVyIEVycm9yJyk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBoYW5kbGVzIEh0dHAgb3BlcmF0aW9uIGZhaWx1cmVzLlxyXG4gICAgICogVGhpcyBlcnJvciBoYW5kbGVyIGxldHMgdGhlIGFwcCBjb250aW51ZSB0byBydW4gYXMgaWYgbm8gZXJyb3Igb2NjdXJyZWQuXHJcbiAgICAgKiBAcGFyYW0gc2VydmljZU5hbWUgPSBuYW1lIG9mIHRoZSBkYXRhIHNlcnZpY2UgdGhhdCBhdHRlbXB0ZWQgdGhlIG9wZXJhdGlvblxyXG4gICAgICogQHBhcmFtIG9wZXJhdGlvbiAtIG5hbWUgb2YgdGhlIG9wZXJhdGlvbiB0aGF0IGZhaWxlZFxyXG4gICAgICogQHBhcmFtIHNob3cgLSBvcHRpb25hbCB2YWx1ZSB0byBzaG93IGVycm9yXHJcbiAgICAgKi9cclxuICAgIGhhbmRsZUVycm9ySnNvbjxUPihzZXJ2aWNlTmFtZSA9ICcnLCBvcGVyYXRpb24gPSAnb3BlcmF0aW9uJywgc2hvdz86IGJvb2xlYW4pIHtcclxuICAgICAgICByZXR1cm4gKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSk6IE9ic2VydmFibGU8VD4gPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKHJlc3BvbnNlKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChzaG93KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dFcnJvcihzZXJ2aWNlTmFtZSwgb3BlcmF0aW9uLCByZXNwb25zZSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGVycm9yOiBhbnk7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzcG9uc2UuZXJyb3IgPT09ICdzdHJpbmcnICYmIHJlc3BvbnNlLmVycm9yWzBdID09PSAneycpIHtcclxuICAgICAgICAgICAgICAgIGVycm9yID0gSlNPTi5wYXJzZShyZXNwb25zZS5lcnJvcik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlcnJvciA9IHJlc3BvbnNlLmVycm9yO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsZXQgcmVzdWx0OiBhbnk7XHJcbiAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yRXZlbnQpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHsgJyc6IFtyZXNwb25zZS5lcnJvci5tZXNzYWdlIGFzIHN0cmluZ10gfTtcclxuICAgICAgICAgICAgfSBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0geyAnJzogW3Jlc3BvbnNlLmVycm9yIGFzIHN0cmluZ10gfTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvcnMgPSBlcnJvci50cmFjZUlkIHx8IGVycm9yLnN1Y2Nlc3MgPT09IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBlcnJvci5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICA6IGVycm9yO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gZXJyb3JzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBvZihyZXN1bHQpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn0iXX0=
|