monkey-front-core 0.0.150 → 0.0.153
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/core/interfaces/schedules/monkeyecx-request-schedule.mjs +1 -1
- package/esm2020/lib/core/services/commons/monkeyecx-commons.service.mjs +23 -22
- package/esm2020/lib/core/services/logged/monkeyecx-logged-handling.service.mjs +12 -1
- package/esm2020/lib/core/services/schedules/monkeyecx-request-schedule.service.mjs +93 -22
- package/esm2020/lib/core/utils/utils.mjs +4 -1
- package/fesm2015/monkey-front-core.mjs +99 -29
- package/fesm2015/monkey-front-core.mjs.map +1 -1
- package/fesm2020/monkey-front-core.mjs +127 -41
- package/fesm2020/monkey-front-core.mjs.map +1 -1
- package/lib/core/interfaces/schedules/monkeyecx-request-schedule.d.ts +2 -0
- package/lib/core/services/commons/monkeyecx-commons.service.d.ts +2 -2
- package/lib/core/services/logged/monkeyecx-logged-handling.service.d.ts +3 -0
- package/lib/core/services/schedules/monkeyecx-request-schedule.service.d.ts +21 -3
- package/monkey-front-core-0.0.153.tgz +0 -0
- package/package.json +1 -1
- package/monkey-front-core-0.0.150.tgz +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LXJlcXVlc3Qtc2NoZWR1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvaW50ZXJmYWNlcy9zY2hlZHVsZXMvbW9ua2V5ZWN4LXJlcXVlc3Qtc2NoZWR1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTW9ua2V5RWN4UmVxdWVzdFF1ZXVlIH0gZnJvbSAnLi4vcmVxdWVzdC1xdWV1ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xuICBtZXRob2Q6IHN0cmluZztcbiAgcGFyYW1zPzogYW55O1xuICBkYXRhPzogYW55O1xuICBhY3Rpb24oZGF0YTogYW55LCBzY2g6IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZSk6IHZvaWQ7XG4gIGVycm9yQWN0aW9uPyhkYXRhOiBhbnksIHNjaDogTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlLCBlcnI/OiBIdHRwRXJyb3JSZXNwb25zZSk6IHZvaWQ7XG4gIHF1ZXVlPzogTW9ua2V5RWN4UmVxdWVzdFF1ZXVlO1xuICBpbnRlcnZhbD86IGFueTtcbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
import { NavigationStart
|
|
2
|
+
import { NavigationStart } from '@angular/router';
|
|
3
3
|
import { BehaviorSubject, throwError } from 'rxjs';
|
|
4
4
|
import { filter, take, takeWhile } from 'rxjs/operators';
|
|
5
5
|
import { MonkeyEcxRequestPagedHandling } from '../request-paged/monkeyecx-request-request-paged-handling';
|
|
@@ -20,6 +20,7 @@ export class MonkeyEcxCommonsService {
|
|
|
20
20
|
this.__onSearchChanged$ = new BehaviorSubject(null);
|
|
21
21
|
this.__onDataChanged$ = new BehaviorSubject(null);
|
|
22
22
|
this.__onLoadingInProgress$ = new BehaviorSubject(false);
|
|
23
|
+
this.__onUploadInProgress$ = new BehaviorSubject(false);
|
|
23
24
|
this.__onDataDeleted$ = new BehaviorSubject(null);
|
|
24
25
|
this.__onErrorChanged$ = new BehaviorSubject(null);
|
|
25
26
|
this.__onGovernmentIdDataChanged$ = new BehaviorSubject(null);
|
|
@@ -40,7 +41,7 @@ export class MonkeyEcxCommonsService {
|
|
|
40
41
|
}
|
|
41
42
|
if (this.otherArgs?.router) {
|
|
42
43
|
const { clearOnChangeRoute } = this.otherArgs?.schedule?.options || {
|
|
43
|
-
clearOnChangeRoute: false
|
|
44
|
+
clearOnChangeRoute: false
|
|
44
45
|
};
|
|
45
46
|
this.otherArgs.router.events
|
|
46
47
|
.pipe(filter((event) => {
|
|
@@ -56,7 +57,7 @@ export class MonkeyEcxCommonsService {
|
|
|
56
57
|
}
|
|
57
58
|
navigateToPendencyPage(arg, router) {
|
|
58
59
|
const { companyType } = this.__tokenCredentials || {
|
|
59
|
-
companyType: ''
|
|
60
|
+
companyType: ''
|
|
60
61
|
};
|
|
61
62
|
let route = '/app';
|
|
62
63
|
if (companyType) {
|
|
@@ -72,9 +73,9 @@ export class MonkeyEcxCommonsService {
|
|
|
72
73
|
else {
|
|
73
74
|
router.navigate([`${route}/company-pendency`.toLowerCase()], {
|
|
74
75
|
state: {
|
|
75
|
-
pendencyData: arg
|
|
76
|
+
pendencyData: arg
|
|
76
77
|
},
|
|
77
|
-
skipLocationChange: true
|
|
78
|
+
skipLocationChange: true
|
|
78
79
|
});
|
|
79
80
|
}
|
|
80
81
|
}
|
|
@@ -90,7 +91,7 @@ export class MonkeyEcxCommonsService {
|
|
|
90
91
|
allowedSecurityAccessByPendency(args) {
|
|
91
92
|
if (!args) {
|
|
92
93
|
return {
|
|
93
|
-
hasPendencies: false
|
|
94
|
+
hasPendencies: false
|
|
94
95
|
};
|
|
95
96
|
}
|
|
96
97
|
const { service, type } = args;
|
|
@@ -130,21 +131,21 @@ export class MonkeyEcxCommonsService {
|
|
|
130
131
|
403: 'forbidden',
|
|
131
132
|
404: 'not-found',
|
|
132
133
|
500: 'service-problems',
|
|
133
|
-
503: 'service-problems'
|
|
134
|
+
503: 'service-problems'
|
|
134
135
|
};
|
|
135
136
|
if (!router) {
|
|
136
137
|
console.error('Router must be declared');
|
|
137
138
|
}
|
|
138
139
|
else {
|
|
139
140
|
router?.navigate([`/app/pages/${routes[statusCode]}`.toLowerCase()], {
|
|
140
|
-
skipLocationChange: true
|
|
141
|
+
skipLocationChange: true
|
|
141
142
|
});
|
|
142
143
|
}
|
|
143
144
|
}
|
|
144
145
|
setPage(requestPaged) {
|
|
145
146
|
this.__requestPaged = {
|
|
146
147
|
...this.__requestPaged,
|
|
147
|
-
...requestPaged
|
|
148
|
+
...requestPaged
|
|
148
149
|
};
|
|
149
150
|
return this;
|
|
150
151
|
}
|
|
@@ -161,8 +162,8 @@ export class MonkeyEcxCommonsService {
|
|
|
161
162
|
...this.__requestPaged,
|
|
162
163
|
page: {
|
|
163
164
|
...page,
|
|
164
|
-
number: number + 1
|
|
165
|
-
}
|
|
165
|
+
number: number + 1
|
|
166
|
+
}
|
|
166
167
|
};
|
|
167
168
|
return true;
|
|
168
169
|
}
|
|
@@ -219,8 +220,8 @@ export class MonkeyEcxCommonsService {
|
|
|
219
220
|
this.setPage({
|
|
220
221
|
page: {
|
|
221
222
|
number: 0,
|
|
222
|
-
size: 10
|
|
223
|
-
}
|
|
223
|
+
size: 10
|
|
224
|
+
}
|
|
224
225
|
});
|
|
225
226
|
}
|
|
226
227
|
if (otherArgs?.translateOptions) {
|
|
@@ -263,7 +264,7 @@ export class MonkeyEcxCommonsService {
|
|
|
263
264
|
getHTTPHeaderApplicationPDF() {
|
|
264
265
|
return {
|
|
265
266
|
observe: 'response',
|
|
266
|
-
responseType: 'blob'
|
|
267
|
+
responseType: 'blob'
|
|
267
268
|
};
|
|
268
269
|
}
|
|
269
270
|
genericMethod(link, data, callback) {
|
|
@@ -291,8 +292,8 @@ export class MonkeyEcxCommonsService {
|
|
|
291
292
|
if (!this.__onLoadingInProgress$.value) {
|
|
292
293
|
const hasMorePages = this.setPage({
|
|
293
294
|
page: {
|
|
294
|
-
...this.__page
|
|
295
|
-
}
|
|
295
|
+
...this.__page
|
|
296
|
+
}
|
|
296
297
|
}).nextPage();
|
|
297
298
|
if (hasMorePages && this.__callbackPagination) {
|
|
298
299
|
this.__callbackPagination();
|
|
@@ -307,24 +308,24 @@ export class MonkeyEcxCommonsService {
|
|
|
307
308
|
router.navigate([url], {
|
|
308
309
|
queryParams: {
|
|
309
310
|
...search,
|
|
310
|
-
r: MonkeyEcxUtils.getRandomString(30)
|
|
311
|
+
r: MonkeyEcxUtils.getRandomString(30)
|
|
311
312
|
},
|
|
312
313
|
queryParamsHandling: 'merge',
|
|
313
|
-
...extras
|
|
314
|
+
...extras
|
|
314
315
|
});
|
|
315
316
|
}
|
|
316
317
|
saveState(state) {
|
|
317
318
|
this.__savedState = {
|
|
318
319
|
page: this.__page,
|
|
319
|
-
...state
|
|
320
|
+
...state
|
|
320
321
|
};
|
|
321
322
|
}
|
|
322
323
|
}
|
|
323
324
|
__decorate([
|
|
324
325
|
MonkeyEcxCoreService({
|
|
325
326
|
requestInProgress: {
|
|
326
|
-
showProgress: true
|
|
327
|
-
}
|
|
327
|
+
showProgress: true
|
|
328
|
+
}
|
|
328
329
|
})
|
|
329
330
|
], MonkeyEcxCommonsService.prototype, "genericMethod", null);
|
|
330
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWNvbW1vbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb3JlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9jb21tb25zL21vbmtleWVjeC1jb21tb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxlQUFlLEdBR2hCLE1BQU0saUJBQWlCLENBQUM7QUFHekIsT0FBTyxFQUFFLGVBQWUsRUFBaUIsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBZ0J6RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUUxRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFJN0UsTUFBTSxPQUFPLHVCQUF1QjtJQWtEbEMsWUFDUyxnQkFBbUMsRUFDbkMsWUFBMkMsRUFDM0MsU0FXTjtRQWJNLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFDbkMsaUJBQVksR0FBWixZQUFZLENBQStCO1FBQzNDLGNBQVMsR0FBVCxTQUFTLENBV2Y7UUEvREssa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFJN0IsaUJBQVksR0FBK0IsSUFBSSxDQUFDO1FBSWhELFlBQU8sR0FBa0MsSUFBSSxDQUFDO1FBRTlDLG1CQUFjLEdBQXlDLElBQUksQ0FBQztRQUU1RCxXQUFNLEdBQWtDLElBQUksQ0FBQztRQUU3QyxZQUFPLEdBQWtDLElBQUksQ0FBQztRQUk5QyxtQkFBYyxHQUFpQyxJQUFJLENBQUM7UUFFcEQsdUJBQWtCLEdBQXlCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJF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QUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckIsV0FBVyxFQUFFO2dCQUNYLEdBQUcsTUFBTTtnQkFDVCxDQUFDLEVBQUUsY0FBYyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7YUFDdEM7WUFDRCxtQkFBbUIsRUFBRSxPQUFPO1lBQzVCLEdBQUcsTUFBTTtTQUNWLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBMEI7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRztZQUNsQixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDakIsR0FBRyxLQUFLO1NBQ1QsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTdEQztJQUxDLG9CQUFvQixDQUFDO1FBQ3BCLGlCQUFpQixFQUFFO1lBQ2pCLFlBQVksRUFBRSxJQUFJO1NBQ25CO0tBQ0YsQ0FBQzs0REFhRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICBOYXZpZ2F0aW9uU3RhcnQsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlclN0YXRlU25hcHNob3QsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgdGFrZSwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge1xyXG4gIE1vbmtleUVjeEVycm9yUmVzcG9uc2UsXHJcbiAgTW9ua2V5RWN4SGFuZGxlZEVycm9yUmVzcG9uc2UsXHJcbiAgTW9ua2V5RWN4UmVxdWVzdFBhZ2VkLFxyXG4gIE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZSxcclxuICBNb25rZXlFY3hSZXNwb25zZVBhZ2VkLFxyXG4gIE1vbmtleUVjeFJlc3BvbnNlTGlua3MsXHJcbiAgTW9ua2V5RWN4VG9rZW5DcmVkZW50aWFscyxcclxuICBNb25rZXlFY3hUcmFuc2xhdGVPcHRpb25zLFxyXG4gIE1vbmtleUVjeENvbXBhbnlQZW5kZW5jaWVzVmFsaWRhdGVkLFxyXG4gIE1vbmtleUVjeENvdW50cnlTZWN1cml0eSxcclxufSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4VG9rZW5TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3N0b3JhZ2UvbW9ua2V5ZWN4LXRva2VuLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZVNlcnZpY2UgfSBmcm9tICcuLi9zY2hlZHVsZXMvbW9ua2V5ZWN4LXJlcXVlc3Qtc2NoZWR1bGUuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeFJlcXVlc3RRdWV1ZUhhbmRsaW5nU2VydmljZSB9IGZyb20gJy4uL3JlcXVlc3QtcXVldWUvbW9ua2V5ZWN4LXJlcXVlc3QtcXVldWUtaGFuZGxpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeFJlcXVlc3RQYWdlZEhhbmRsaW5nIH0gZnJvbSAnLi4vcmVxdWVzdC1wYWdlZC9tb25rZXllY3gtcmVxdWVzdC1yZXF1ZXN0LXBhZ2VkLWhhbmRsaW5nJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4RmVhdHVyZVRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuLi9jb25maWcvbW9ua2V5ZWN4LWZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hVdGlscyB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWxzJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4Q29yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kZWNvcmF0b3JzL21vbmtleWVjeC1kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4U2VydmljZSB9IGZyb20gJy4uL21vbmtleWVjeC1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hTYXZlZFN0YXRlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgZmxhZ1ZhbGlkYXRvciA9IHRydWU7XHJcblxyXG4gIF9fZGF0YTogYW55IHwgYW55W107XHJcblxyXG4gIF9fc2F2ZWRTdGF0ZTogTW9ua2V5RWN4U2F2ZWRTdGF0ZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBfX3BhcmFtczogYW55IHwgYW55W107XHJcblxyXG4gIF9fZXJyb3I6IE1vbmtleUVjeEVycm9yUmVzcG9uc2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgX19oYW5kbGVkRXJyb3I6IE1vbmtleUVjeEhhbmRsZWRFcnJvclJlc3BvbnNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIF9fcGFnZTogTW9ua2V5RWN4UmVzcG9uc2VQYWdlZCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBfX2xpbmtzOiBNb25rZXlFY3hSZXNwb25zZUxpbmtzIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIF9fc2VhcmNoOiBhbnk7XHJcblxyXG4gIF9fcmVxdWVzdFBhZ2VkOiBNb25rZXlFY3hSZXF1ZXN0UGFnZWQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgX19vblNlYXJjaENoYW5nZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XHJcblxyXG4gIF9fb25EYXRhQ2hhbmdlZCQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcclxuXHJcbiAgX19vbkxvYWRpbmdJblByb2dyZXNzJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuXHJcbiAgX19vbkRhdGFEZWxldGVkJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xyXG5cclxuICBfX29uRXJyb3JDaGFuZ2VkJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xyXG5cclxuICBfX29uR292ZXJubWVudElkRGF0YUNoYW5nZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XHJcblxyXG4gIF9fb25aaXBDb2RlRGF0YUNoYW5nZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XHJcblxyXG4gIF9fb25pMThuRGF0YUNoYW5nZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XHJcblxyXG4gIF9fb25Eb1NlYXJjaCQ6IEJlaGF2aW9yU3ViamVjdDxNb25rZXlFY3hSZXF1ZXN0UGFnZWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XHJcblxyXG4gIF9fdG9rZW5DcmVkZW50aWFsczogTW9ua2V5RWN4VG9rZW5DcmVkZW50aWFscyB8IG51bGwgPSBudWxsO1xyXG5cclxuICBfX3NjaGVkdWxlOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgX19pMThuOiBhbnk7XHJcblxyXG4gIF9fY2FsbGJhY2tQYWdpbmF0aW9uOiBGdW5jdGlvbiA9ICgpID0+IHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXHJcbiAgICByZXR1cm4gY29uc29sZS5lcnJvcignTWV0aG9kIGNhbGxiYWNrUGFnaW5hdGlvbiBuZWVkcyB0byBiZSBkZWNsYXJlZCcpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG1vbmtleWVjeFNlcnZpY2U/OiBNb25rZXlFY3hTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRva2VuU3RvcmFnZT86IE1vbmtleUVjeFRva2VuU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgb3RoZXJBcmdzPzoge1xyXG4gICAgICByb3V0ZXI/OiBSb3V0ZXI7XHJcbiAgICAgIHNjaGVkdWxlPzoge1xyXG4gICAgICAgIHNlcnZpY2U6IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZVNlcnZpY2U7XHJcbiAgICAgICAgb3B0aW9ucz86IHtcclxuICAgICAgICAgIGNsZWFyT25DaGFuZ2VSb3V0ZT86IGJvb2xlYW47XHJcbiAgICAgICAgfTtcclxuICAgICAgfTtcclxuICAgICAgcXVldWU/OiB7XHJcbiAgICAgICAgc2VydmljZTogTW9ua2V5RWN4UmVxdWVzdFF1ZXVlSGFuZGxpbmdTZXJ2aWNlO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICkge1xyXG4gICAgdGhpcy5oYW5kbGVJbml0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUluaXQoKSB7XHJcbiAgICBpZiAodGhpcy50b2tlblN0b3JhZ2UpIHtcclxuICAgICAgdGhpcy5fX3Rva2VuQ3JlZGVudGlhbHMgPSB0aGlzLnRva2VuU3RvcmFnZS5nZXRUb2tlbigpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm90aGVyQXJncz8ucm91dGVyKSB7XHJcbiAgICAgIGNvbnN0IHsgY2xlYXJPbkNoYW5nZVJvdXRlIH0gPSB0aGlzLm90aGVyQXJncz8uc2NoZWR1bGU/Lm9wdGlvbnMgfHwge1xyXG4gICAgICAgIGNsZWFyT25DaGFuZ2VSb3V0ZTogZmFsc2UsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMub3RoZXJBcmdzLnJvdXRlci5ldmVudHNcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIGZpbHRlcigoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQ7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIHRha2UoMSlcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5fX3NjaGVkdWxlICYmIGNsZWFyT25DaGFuZ2VSb3V0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLm90aGVyQXJncz8uc2NoZWR1bGU/LnNlcnZpY2U/LnJlbW92ZVNjaGVkdWxlKHRoaXMuX19zY2hlZHVsZSk7XHJcbiAgICAgICAgICAgIHRoaXMuX19zY2hlZHVsZSA9IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5hdmlnYXRlVG9QZW5kZW5jeVBhZ2UoYXJnOiBNb25rZXlFY3hDb21wYW55UGVuZGVuY2llc1ZhbGlkYXRlZCwgcm91dGVyPzogUm91dGVyKSB7XHJcbiAgICBjb25zdCB7IGNvbXBhbnlUeXBlIH0gPSB0aGlzLl9fdG9rZW5DcmVkZW50aWFscyB8fCB7XHJcbiAgICAgIGNvbXBhbnlUeXBlOiAnJyxcclxuICAgIH07XHJcbiAgICBsZXQgcm91dGUgPSAnL2FwcCc7XHJcblxyXG4gICAgaWYgKGNvbXBhbnlUeXBlKSB7XHJcbiAgICAgIHJvdXRlID0gYCR7cm91dGV9LyR7Y29tcGFueVR5cGV9L3BhZ2VzYDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJvdXRlID0gYCR7cm91dGV9L3VzZXIvcHJvZmlsZS9wYWdlc2A7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFyb3V0ZXIpIHtcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcclxuICAgICAgY29uc29sZS5lcnJvcignUm91dGVyIG11c3QgYmUgZGVjbGFyZWQnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJvdXRlci5uYXZpZ2F0ZShbYCR7cm91dGV9L2NvbXBhbnktcGVuZGVuY3lgLnRvTG93ZXJDYXNlKCldLCB7XHJcbiAgICAgICAgc3RhdGU6IHtcclxuICAgICAgICAgIHBlbmRlbmN5RGF0YTogYXJnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Um9sZSgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgeyBfX3Rva2VuQ3JlZGVudGlhbHMgfSA9IHRoaXM7XHJcblxyXG4gICAgaWYgKCFfX3Rva2VuQ3JlZGVudGlhbHMpIHJldHVybiAnJztcclxuXHJcbiAgICBpZiAoX190b2tlbkNyZWRlbnRpYWxzPy5wcm9ncmFtQWRtaW4gPT09ICd0cnVlJykge1xyXG4gICAgICByZXR1cm4gJ1BST0dSQU1fQURNSU4nO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBfX3Rva2VuQ3JlZGVudGlhbHM/LnJvbGUgfHwgJyc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFsbG93ZWRTZWN1cml0eUFjY2Vzc0J5UGVuZGVuY3koYXJnczogYW55KTogTW9ua2V5RWN4Q29tcGFueVBlbmRlbmNpZXNWYWxpZGF0ZWQge1xyXG4gICAgaWYgKCFhcmdzKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaGFzUGVuZGVuY2llczogZmFsc2UsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IHNlcnZpY2UsIHR5cGUgfSA9IGFyZ3M7XHJcbiAgICByZXR1cm4gc2VydmljZS5oYXNQZW5kZW5jaWVzKHR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhbGxvd2VkU2VjdXJpdHlBY2Nlc3NCeUNvdW50cnkoYXJnPzogTW9ua2V5RWN4Q291bnRyeVNlY3VyaXR5KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIWFyZykgcmV0dXJuIHRydWU7XHJcbiAgICByZXR1cm4gYXJnLmNvdW50cnkgPT09IGFyZy5lbnZDb3VudHJ5O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhbGxvd2VkU2VjdXJpdHlBY2Nlc3MoYXJnczogYW55KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIWFyZ3MpIHJldHVybiB0cnVlO1xyXG4gICAgY29uc3Qgcm9sZXMgPSBhcmdzPy5yb2xlcztcclxuICAgIGNvbnN0IGJ5RXhjbHVzaW9uID0gYXJncz8uYnlFeGNsdXNpb247XHJcbiAgICBjb25zdCBmb3VuZCA9IHJvbGVzPy5pbmRleE9mKHRoaXMuZ2V0Um9sZSgpKTtcclxuICAgIGxldCByZXQgPSBmYWxzZTtcclxuICAgIGlmIChieUV4Y2x1c2lvbikge1xyXG4gICAgICByZXQgPSB0cnVlO1xyXG4gICAgICBpZiAoZm91bmQgPiAtMSkge1xyXG4gICAgICAgIHJldCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXQgPSBmYWxzZTtcclxuICAgICAgaWYgKGZvdW5kID4gLTEpIHtcclxuICAgICAgICByZXQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXJvbGVzIHx8IHJvbGVzLmxlbmd0aCA9PT0gMCB8fCB0aGlzLmdldFJvbGUoKSA9PT0gJ1BST0dSQU1fQURNSU4nKSB7XHJcbiAgICAgIHJldCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmV0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0ZVRvRXJyb3JQYWdlKHN0YXR1c0NvZGU6IG51bWJlciwgcm91dGVyPzogUm91dGVyKSB7XHJcbiAgICBjb25zdCByb3V0ZXM6IGFueSA9IHtcclxuICAgICAgNDAzOiAnZm9yYmlkZGVuJyxcclxuICAgICAgNDA0OiAnbm90LWZvdW5kJyxcclxuICAgICAgNTAwOiAnc2VydmljZS1wcm9ibGVtcycsXHJcbiAgICAgIDUwMzogJ3NlcnZpY2UtcHJvYmxlbXMnLFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAoIXJvdXRlcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdSb3V0ZXIgbXVzdCBiZSBkZWNsYXJlZCcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcm91dGVyPy5uYXZpZ2F0ZShbYC9hcHAvcGFnZXMvJHtyb3V0ZXNbc3RhdHVzQ29kZV19YC50b0xvd2VyQ2FzZSgpXSwge1xyXG4gICAgICAgIHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRQYWdlKHJlcXVlc3RQYWdlZDogTW9ua2V5RWN4UmVxdWVzdFBhZ2VkKSB7XHJcbiAgICB0aGlzLl9fcmVxdWVzdFBhZ2VkID0ge1xyXG4gICAgICAuLi50aGlzLl9fcmVxdWVzdFBhZ2VkLFxyXG4gICAgICAuLi5yZXF1ZXN0UGFnZWQsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICBuZXh0UGFnZSgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLl9fbGlua3MpIHtcclxuICAgICAgcmV0dXJuICEhdGhpcy5fX2xpbmtzPy5uZXh0O1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLl9fcmVxdWVzdFBhZ2VkKSByZXR1cm4gZmFsc2U7XHJcbiAgICBjb25zdCB7IHBhZ2UgfSA9IHRoaXMuX19yZXF1ZXN0UGFnZWQgYXMgYW55O1xyXG4gICAgY29uc3QgeyBudW1iZXIsIHRvdGFsUGFnZXMgfSA9IHBhZ2U7XHJcbiAgICBpZiAobnVtYmVyIDwgdG90YWxQYWdlcykge1xyXG4gICAgICB0aGlzLl9fcmVxdWVzdFBhZ2VkID0ge1xyXG4gICAgICAgIC4uLnRoaXMuX19yZXF1ZXN0UGFnZWQsXHJcbiAgICAgICAgcGFnZToge1xyXG4gICAgICAgICAgLi4ucGFnZSxcclxuICAgICAgICAgIG51bWJlcjogbnVtYmVyICsgMSxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldEVtYmVkZGVkRGF0YShkYXRhOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBhbnlbXSB8IGFueSB7XHJcbiAgICBjb25zdCB7IF9lbWJlZGRlZCB9ID0gZGF0YTtcclxuICAgIHJldHVybiBfZW1iZWRkZWQgPyBfZW1iZWRkZWRbZmllbGRdIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGdldE5vcm1hbGl6ZWRVcmwodXJsOiBzdHJpbmcsIHNhbWVQYWdlID0gZmFsc2UpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgeyBfX3JlcXVlc3RQYWdlZCwgX19saW5rcyB9ID0gdGhpcztcclxuICAgIHJldHVybiBuZXcgTW9ua2V5RWN4UmVxdWVzdFBhZ2VkSGFuZGxpbmcoXHJcbiAgICAgIHVybCxcclxuICAgICAgX19yZXF1ZXN0UGFnZWQgfHwge30sXHJcbiAgICAgIF9fbGlua3MsXHJcbiAgICAgIHNhbWVQYWdlXHJcbiAgICApLmdldFJlcXVlc3RXaXRoUGFnZWRQYXJhbXMoKTtcclxuICB9XHJcblxyXG4gIGNsZWFyKGNsZWFyRGF0YTogYm9vbGVhbikge1xyXG4gICAgaWYgKGNsZWFyRGF0YSkge1xyXG4gICAgICB0aGlzLl9fZGF0YSA9IG51bGw7XHJcbiAgICAgIHRoaXMuX19yZXF1ZXN0UGFnZWQgPSBudWxsO1xyXG4gICAgICB0aGlzLl9fcGFyYW1zID0gbnVsbDtcclxuICAgICAgdGhpcy5fX3BhZ2UgPSBudWxsO1xyXG4gICAgICB0aGlzLl9fbGlua3MgPSBudWxsO1xyXG5cclxuICAgICAgaWYgKHRoaXMuX19zY2hlZHVsZSkge1xyXG4gICAgICAgIGNvbnN0IHsgcXVldWUgfSA9IHRoaXMuX19zY2hlZHVsZTtcclxuICAgICAgICBpZiAocXVldWUpIHtcclxuICAgICAgICAgIHRoaXMub3RoZXJBcmdzPy5xdWV1ZT8uc2VydmljZT8ucmVtb3ZlUXVldWVJdGVtKHF1ZXVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vdGhlckFyZ3M/LnNjaGVkdWxlPy5zZXJ2aWNlPy5yZW1vdmVTY2hlZHVsZSh0aGlzLl9fc2NoZWR1bGUpO1xyXG4gICAgICAgIHRoaXMuX19zY2hlZHVsZSA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuX19lcnJvciA9IG51bGw7XHJcbiAgICB0aGlzLl9faGFuZGxlZEVycm9yID0gbnVsbDtcclxuICAgIHRoaXMuZmxhZ1ZhbGlkYXRvciA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmVzb2x2ZShcclxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgbnVsbCxcclxuICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90IHwgbnVsbCxcclxuICAgIG90aGVyQXJncz86IHtcclxuICAgICAgY2FsbGJhY2tNYWluOiBGdW5jdGlvbjtcclxuICAgICAgcm91dGVyPzogUm91dGVyO1xyXG4gICAgICBzZWN1cml0eT86IHtcclxuICAgICAgICByb2xlczogc3RyaW5nW107XHJcbiAgICAgICAgYnlFeGNsdXNpb24/OiBib29sZWFuO1xyXG4gICAgICB9O1xyXG4gICAgICBjYWxsYmFja1BhZ2luYXRpb24/OiBGdW5jdGlvbjtcclxuICAgICAgdHJhbnNsYXRlT3B0aW9ucz86IE1vbmtleUVjeFRyYW5zbGF0ZU9wdGlvbnM7XHJcbiAgICAgIGZlYXR1cmU/OiB7XHJcbiAgICAgICAgc2VydmljZTogTW9ua2V5RWN4RmVhdHVyZVRvZ2dsZVNlcnZpY2U7XHJcbiAgICAgICAgZmxhZzogc3RyaW5nO1xyXG4gICAgICB9O1xyXG4gICAgICBjb3VudHJ5U2VjdXJpdHk/OiBNb25rZXlFY3hDb3VudHJ5U2VjdXJpdHk7XHJcbiAgICAgIHBlbmRlbmN5Pzoge1xyXG4gICAgICAgIHNlcnZpY2U6IHtcclxuICAgICAgICAgIGhhc1BlbmRlbmNpZXM6IEZ1bmN0aW9uO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdHlwZTogc3RyaW5nO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICkge1xyXG4gICAgaWYgKEpTT04uc3RyaW5naWZ5KHJvdXRlPy5xdWVyeVBhcmFtcykgPT09ICd7fScpIHtcclxuICAgICAgdGhpcy5fX2RhdGEgPSBudWxsO1xyXG4gICAgICB0aGlzLl9fcGFnZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fX3JlcXVlc3RQYWdlZCA9IG51bGw7XHJcbiAgICB0aGlzLmZsYWdWYWxpZGF0b3IgPSB0cnVlO1xyXG5cclxuICAgIGlmICh0aGlzLnRva2VuU3RvcmFnZSkge1xyXG4gICAgICB0aGlzLl9fdG9rZW5DcmVkZW50aWFscyA9IHRoaXMudG9rZW5TdG9yYWdlLmdldFRva2VuKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGVuZCA9IHRoaXMuYWxsb3dlZFNlY3VyaXR5QWNjZXNzQnlQZW5kZW5jeShvdGhlckFyZ3M/LnBlbmRlbmN5KTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuYWxsb3dlZFNlY3VyaXR5QWNjZXNzKG90aGVyQXJncz8uc2VjdXJpdHkpICYmXHJcbiAgICAgIHRoaXMuYWxsb3dlZFNlY3VyaXR5QWNjZXNzQnlDb3VudHJ5KG90aGVyQXJncz8uY291bnRyeVNlY3VyaXR5KSAmJlxyXG4gICAgICAhcGVuZC5oYXNQZW5kZW5jaWVzXHJcbiAgICApIHtcclxuICAgICAgaWYgKHRoaXMuX19zY2hlZHVsZSkge1xyXG4gICAgICAgIHRoaXMub3RoZXJBcmdzPy5zY2hlZHVsZT8uc2VydmljZT8ucmVtb3ZlU2NoZWR1bGUodGhpcy5fX3NjaGVkdWxlKTtcclxuICAgICAgICB0aGlzLl9fc2NoZWR1bGUgPSBudWxsO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB7IF9fcmVxdWVzdFBhZ2VkIH0gPSB0aGlzO1xyXG4gICAgICBpZiAoIV9fcmVxdWVzdFBhZ2VkKSB7XHJcbiAgICAgICAgdGhpcy5zZXRQYWdlKHtcclxuICAgICAgICAgIHBhZ2U6IHtcclxuICAgICAgICAgICAgbnVtYmVyOiAwLFxyXG4gICAgICAgICAgICBzaXplOiAxMCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChvdGhlckFyZ3M/LnRyYW5zbGF0ZU9wdGlvbnMpIHtcclxuICAgICAgICBjb25zdCB7IHNlcnZpY2UsIGtleXMgfSA9IG90aGVyQXJncz8udHJhbnNsYXRlT3B0aW9ucztcclxuICAgICAgICB0aGlzLmdldGkxOG4oc2VydmljZSwga2V5cyB8fCAnJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChvdGhlckFyZ3M/LmNhbGxiYWNrUGFnaW5hdGlvbikge1xyXG4gICAgICAgIHRoaXMuX19jYWxsYmFja1BhZ2luYXRpb24gPSBvdGhlckFyZ3MuY2FsbGJhY2tQYWdpbmF0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAob3RoZXJBcmdzPy5mZWF0dXJlKSB7XHJcbiAgICAgICAgY29uc3QgeyBmbGFnLCBzZXJ2aWNlIH0gPSBvdGhlckFyZ3MuZmVhdHVyZTtcclxuXHJcbiAgICAgICAgc2VydmljZS5vbkZsYWdzXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgdGFrZVdoaWxlKCgpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mbGFnVmFsaWRhdG9yO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgodmFsOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICAgICAgICBjb25zdCBoYXNGbGFnID0gc2VydmljZS5nZXRGbGFnKGZsYWcpO1xyXG5cclxuICAgICAgICAgICAgICBpZiAoTW9ua2V5RWN4VXRpbHMucGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZChoYXNGbGFnKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFoYXNGbGFnKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGVUb0Vycm9yUGFnZSg0MDQsIG90aGVyQXJncz8ucm91dGVyKTtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBvdGhlckFyZ3M/LmNhbGxiYWNrTWFpbigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvdGhlckFyZ3M/LmNhbGxiYWNrTWFpbigpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHBlbmQuaGFzUGVuZGVuY2llcykge1xyXG4gICAgICB0aGlzLm5hdmlnYXRlVG9QZW5kZW5jeVBhZ2UocGVuZCwgb3RoZXJBcmdzPy5yb3V0ZXIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5uYXZpZ2F0ZVRvRXJyb3JQYWdlKDQwMywgb3RoZXJBcmdzPy5yb3V0ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SFRUUEhlYWRlckFwcGxpY2F0aW9uUERGKCk6IE9iamVjdCB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxyXG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBATW9ua2V5RWN4Q29yZVNlcnZpY2Uoe1xyXG4gICAgcmVxdWVzdEluUHJvZ3Jlc3M6IHtcclxuICAgICAgc2hvd1Byb2dyZXNzOiB0cnVlLFxyXG4gICAgfSxcclxuICB9KVxyXG4gIGdlbmVyaWNNZXRob2QobGluazogYW55LCBkYXRhPzogYW55LCBjYWxsYmFjaz86IEZ1bmN0aW9uKSB7XHJcbiAgICBjb25zdCB7IGhyZWYsIHR5cGUgPSAnZ2V0JyB9ID0gbGluaztcclxuXHJcbiAgICB0aGlzLm1vbmtleWVjeFNlcnZpY2U/Llt0eXBlLnRvTG93ZXJDYXNlKCldKGAke2hyZWZ9YCwgZGF0YSk/LnN1YnNjcmliZShcclxuICAgICAgKHJlc3A6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2socmVzcCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjaygpO1xyXG4gICAgICAgIHRocm93RXJyb3IoZXJyKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldGkxOG4odHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSwga2V5czogc3RyaW5nIHwgc3RyaW5nW10pIHtcclxuICAgIHRyYW5zbGF0ZVNlcnZpY2Uub25EZWZhdWx0TGFuZ0NoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9faTE4biA9IHRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChrZXlzKTtcclxuICAgICAgdGhpcy5fX29uaTE4bkRhdGFDaGFuZ2VkJC5uZXh0KG51bGwpO1xyXG4gICAgfSk7XHJcbiAgICB0cmFuc2xhdGVTZXJ2aWNlLmdldFN0cmVhbU9uVHJhbnNsYXRpb25DaGFuZ2Uoa2V5cykuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5fX2kxOG4gPSB0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoa2V5cyk7XHJcbiAgICAgIHRoaXMuX19vbmkxOG5EYXRhQ2hhbmdlZCQubmV4dChudWxsKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZG9QYWdpbmF0aW9uKCkge1xyXG4gICAgaWYgKCF0aGlzLl9fb25Mb2FkaW5nSW5Qcm9ncmVzcyQudmFsdWUpIHtcclxuICAgICAgY29uc3QgaGFzTW9yZVBhZ2VzID0gdGhpcy5zZXRQYWdlKHtcclxuICAgICAgICBwYWdlOiB7XHJcbiAgICAgICAgICAuLi50aGlzLl9fcGFnZSxcclxuICAgICAgICB9LFxyXG4gICAgICB9KS5uZXh0UGFnZSgpO1xyXG5cclxuICAgICAgaWYgKGhhc01vcmVQYWdlcyAmJiB0aGlzLl9fY2FsbGJhY2tQYWdpbmF0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fX2NhbGxiYWNrUGFnaW5hdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTZWFyY2hCeVVybChyb3V0ZXI6IFJvdXRlciwgdXJsOiBzdHJpbmcsIHNlYXJjaDogYW55LCBleHRyYXM/OiBhbnkpIHtcclxuICAgIHRoaXMuX19kYXRhID0gbnVsbDtcclxuICAgIHRoaXMuX19wYWdlID0gbnVsbDtcclxuICAgIHRoaXMuX19vbkRhdGFDaGFuZ2VkJC5uZXh0KG51bGwpO1xyXG4gICAgdGhpcy5fX29uTG9hZGluZ0luUHJvZ3Jlc3MkLm5leHQoZmFsc2UpO1xyXG5cclxuICAgIHJvdXRlci5uYXZpZ2F0ZShbdXJsXSwge1xyXG4gICAgICBxdWVyeVBhcmFtczoge1xyXG4gICAgICAgIC4uLnNlYXJjaCxcclxuICAgICAgICByOiBNb25rZXlFY3hVdGlscy5nZXRSYW5kb21TdHJpbmcoMzApLFxyXG4gICAgICB9LFxyXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxyXG4gICAgICAuLi5leHRyYXMsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNhdmVTdGF0ZShzdGF0ZTogTW9ua2V5RWN4U2F2ZWRTdGF0ZSkge1xyXG4gICAgdGhpcy5fX3NhdmVkU3RhdGUgPSB7XHJcbiAgICAgIHBhZ2U6IHRoaXMuX19wYWdlLFxyXG4gICAgICAuLi5zdGF0ZSxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
331
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWNvbW1vbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb3JlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9jb21tb25zL21vbmtleWVjeC1jb21tb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxlQUFlLEVBR2hCLE1BQU0saUJBQWlCLENBQUM7QUFHekIsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFpQnpELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBRTFHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUc3RSxNQUFNLE9BQU8sdUJBQXVCO0lBb0RsQyxZQUNTLGdCQUFtQyxFQUNuQyxZQUEyQyxFQUMzQyxTQVdOO1FBYk0scUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQUNuQyxpQkFBWSxHQUFaLFlBQVksQ0FBK0I7UUFDM0MsY0FBUyxHQUFULFNBQVMsQ0FXZjtRQWpFSyxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUk3QixpQkFBWSxHQUErQixJQUFJLENBQUM7UUFJaEQsWUFBTyxHQUFrQyxJQUFJLENBQUM7UUFFOUMsbUJBQWMsR0FBeUMsSUFBSSxDQUFDO1FBRTVELFdBQU0sR0FBa0MsSUFBSSxDQUFDO1FBRTdDLFlBQU8sR0FBa0MsSUFBSSxDQUFDO1FBSTlDLG1CQUFjLEdBQWlDLElBQUksQ0FBQztRQUVwRCx1QkFBa0IsR0FBeUIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckUs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Q0FBQyxNQUFjLEVBQUUsR0FBVyxFQUFFLE1BQVcsRUFBRSxNQUFZO1FBQ25FLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckIsV0FBVyxFQUFFO2dCQUNYLEdBQUcsTUFBTTtnQkFDVCxDQUFDLEVBQUUsY0FBYyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7YUFDdEM7WUFDRCxtQkFBbUIsRUFBRSxPQUFPO1lBQzVCLEdBQUcsTUFBTTtTQUNWLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBMEI7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRztZQUNsQixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDakIsR0FBRyxLQUFLO1NBQ1QsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTdEQztJQUxDLG9CQUFvQixDQUFDO1FBQ3BCLGlCQUFpQixFQUFFO1lBQ2pCLFlBQVksRUFBRSxJQUFJO1NBQ25CO0tBQ0YsQ0FBQzs0REFhRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIE5hdmlnYXRpb25TdGFydCxcbiAgUm91dGVyLFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90XG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlLCB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBNb25rZXlFY3hFcnJvclJlc3BvbnNlLFxuICBNb25rZXlFY3hIYW5kbGVkRXJyb3JSZXNwb25zZSxcbiAgTW9ua2V5RWN4UmVxdWVzdFBhZ2VkLFxuICBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUsXG4gIE1vbmtleUVjeFJlc3BvbnNlUGFnZWQsXG4gIE1vbmtleUVjeFJlc3BvbnNlTGlua3MsXG4gIE1vbmtleUVjeFRva2VuQ3JlZGVudGlhbHMsXG4gIE1vbmtleUVjeFRyYW5zbGF0ZU9wdGlvbnMsXG4gIE1vbmtleUVjeENvbXBhbnlQZW5kZW5jaWVzVmFsaWRhdGVkLFxuICBNb25rZXlFY3hDb3VudHJ5U2VjdXJpdHksXG4gIE1vbmtleUVjeFNhdmVkU3RhdGVcbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvcmFnZS9tb25rZXllY3gtdG9rZW4tc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZVNlcnZpY2UgfSBmcm9tICcuLi9zY2hlZHVsZXMvbW9ua2V5ZWN4LXJlcXVlc3Qtc2NoZWR1bGUuc2VydmljZSc7XG5pbXBvcnQgeyBNb25rZXlFY3hSZXF1ZXN0UXVldWVIYW5kbGluZ1NlcnZpY2UgfSBmcm9tICcuLi9yZXF1ZXN0LXF1ZXVlL21vbmtleWVjeC1yZXF1ZXN0LXF1ZXVlLWhhbmRsaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9ua2V5RWN4UmVxdWVzdFBhZ2VkSGFuZGxpbmcgfSBmcm9tICcuLi9yZXF1ZXN0LXBhZ2VkL21vbmtleWVjeC1yZXF1ZXN0LXJlcXVlc3QtcGFnZWQtaGFuZGxpbmcnO1xuaW1wb3J0IHsgTW9ua2V5RWN4RmVhdHVyZVRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuLi9jb25maWcvbW9ua2V5ZWN4LWZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9ua2V5RWN4VXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy91dGlscyc7XG5pbXBvcnQgeyBNb25rZXlFY3hDb3JlU2VydmljZSB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvbW9ua2V5ZWN4LWRlY29yYXRvcnMnO1xuaW1wb3J0IHsgTW9ua2V5RWN4U2VydmljZSB9IGZyb20gJy4uL21vbmtleWVjeC1zZXJ2aWNlLnNlcnZpY2UnO1xuXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2Uge1xuICBwcml2YXRlIGZsYWdWYWxpZGF0b3IgPSB0cnVlO1xuXG4gIF9fZGF0YTogYW55IHwgYW55W107XG5cbiAgX19zYXZlZFN0YXRlOiBNb25rZXlFY3hTYXZlZFN0YXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgX19wYXJhbXM6IGFueSB8IGFueVtdO1xuXG4gIF9fZXJyb3I6IE1vbmtleUVjeEVycm9yUmVzcG9uc2UgfCBudWxsID0gbnVsbDtcblxuICBfX2hhbmRsZWRFcnJvcjogTW9ua2V5RWN4SGFuZGxlZEVycm9yUmVzcG9uc2UgfCBudWxsID0gbnVsbDtcblxuICBfX3BhZ2U6IE1vbmtleUVjeFJlc3BvbnNlUGFnZWQgfCBudWxsID0gbnVsbDtcblxuICBfX2xpbmtzOiBNb25rZXlFY3hSZXNwb25zZUxpbmtzIHwgbnVsbCA9IG51bGw7XG5cbiAgX19zZWFyY2g6IGFueTtcblxuICBfX3JlcXVlc3RQYWdlZDogTW9ua2V5RWN4UmVxdWVzdFBhZ2VkIHwgbnVsbCA9IG51bGw7XG5cbiAgX19vblNlYXJjaENoYW5nZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG5cbiAgX19vbkRhdGFDaGFuZ2VkJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuXG4gIF9fb25Mb2FkaW5nSW5Qcm9ncmVzcyQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgX19vblVwbG9hZEluUHJvZ3Jlc3MkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIF9fb25EYXRhRGVsZXRlZCQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcblxuICBfX29uRXJyb3JDaGFuZ2VkJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuXG4gIF9fb25Hb3Zlcm5tZW50SWREYXRhQ2hhbmdlZCQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcblxuICBfX29uWmlwQ29kZURhdGFDaGFuZ2VkJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuXG4gIF9fb25pMThuRGF0YUNoYW5nZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG5cbiAgX19vbkRvU2VhcmNoJDogQmVoYXZpb3JTdWJqZWN0PE1vbmtleUVjeFJlcXVlc3RQYWdlZD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcblxuICBfX3Rva2VuQ3JlZGVudGlhbHM6IE1vbmtleUVjeFRva2VuQ3JlZGVudGlhbHMgfCBudWxsID0gbnVsbDtcblxuICBfX3NjaGVkdWxlOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUgfCBudWxsID0gbnVsbDtcblxuICBfX2kxOG46IGFueTtcblxuICBfX2NhbGxiYWNrUGFnaW5hdGlvbjogRnVuY3Rpb24gPSAoKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICByZXR1cm4gY29uc29sZS5lcnJvcignTWV0aG9kIGNhbGxiYWNrUGFnaW5hdGlvbiBuZWVkcyB0byBiZSBkZWNsYXJlZCcpO1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBtb25rZXllY3hTZXJ2aWNlPzogTW9ua2V5RWN4U2VydmljZSxcbiAgICBwdWJsaWMgdG9rZW5TdG9yYWdlPzogTW9ua2V5RWN4VG9rZW5TdG9yYWdlU2VydmljZSxcbiAgICBwdWJsaWMgb3RoZXJBcmdzPzoge1xuICAgICAgcm91dGVyPzogUm91dGVyO1xuICAgICAgc2NoZWR1bGU/OiB7XG4gICAgICAgIHNlcnZpY2U6IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZVNlcnZpY2U7XG4gICAgICAgIG9wdGlvbnM/OiB7XG4gICAgICAgICAgY2xlYXJPbkNoYW5nZVJvdXRlPzogYm9vbGVhbjtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBxdWV1ZT86IHtcbiAgICAgICAgc2VydmljZTogTW9ua2V5RWN4UmVxdWVzdFF1ZXVlSGFuZGxpbmdTZXJ2aWNlO1xuICAgICAgfTtcbiAgICB9XG4gICkge1xuICAgIHRoaXMuaGFuZGxlSW5pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbml0KCkge1xuICAgIGlmICh0aGlzLnRva2VuU3RvcmFnZSkge1xuICAgICAgdGhpcy5fX3Rva2VuQ3JlZGVudGlhbHMgPSB0aGlzLnRva2VuU3RvcmFnZS5nZXRUb2tlbigpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm90aGVyQXJncz8ucm91dGVyKSB7XG4gICAgICBjb25zdCB7IGNsZWFyT25DaGFuZ2VSb3V0ZSB9ID0gdGhpcy5vdGhlckFyZ3M/LnNjaGVkdWxlPy5vcHRpb25zIHx8IHtcbiAgICAgICAgY2xlYXJPbkNoYW5nZVJvdXRlOiBmYWxzZVxuICAgICAgfTtcbiAgICAgIHRoaXMub3RoZXJBcmdzLnJvdXRlci5ldmVudHNcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQ7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGFrZSgxKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLl9fc2NoZWR1bGUgJiYgY2xlYXJPbkNoYW5nZVJvdXRlKSB7XG4gICAgICAgICAgICB0aGlzLm90aGVyQXJncz8uc2NoZWR1bGU/LnNlcnZpY2U/LnJlbW92ZVNjaGVkdWxlKHRoaXMuX19zY2hlZHVsZSk7XG4gICAgICAgICAgICB0aGlzLl9fc2NoZWR1bGUgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBuYXZpZ2F0ZVRvUGVuZGVuY3lQYWdlKGFyZzogTW9ua2V5RWN4Q29tcGFueVBlbmRlbmNpZXNWYWxpZGF0ZWQsIHJvdXRlcj86IFJvdXRlcikge1xuICAgIGNvbnN0IHsgY29tcGFueVR5cGUgfSA9IHRoaXMuX190b2tlbkNyZWRlbnRpYWxzIHx8IHtcbiAgICAgIGNvbXBhbnlUeXBlOiAnJ1xuICAgIH07XG4gICAgbGV0IHJvdXRlID0gJy9hcHAnO1xuXG4gICAgaWYgKGNvbXBhbnlUeXBlKSB7XG4gICAgICByb3V0ZSA9IGAke3JvdXRlfS8ke2NvbXBhbnlUeXBlfS9wYWdlc2A7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdXRlID0gYCR7cm91dGV9L3VzZXIvcHJvZmlsZS9wYWdlc2A7XG4gICAgfVxuXG4gICAgaWYgKCFyb3V0ZXIpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmVycm9yKCdSb3V0ZXIgbXVzdCBiZSBkZWNsYXJlZCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICByb3V0ZXIubmF2aWdhdGUoW2Ake3JvdXRlfS9jb21wYW55LXBlbmRlbmN5YC50b0xvd2VyQ2FzZSgpXSwge1xuICAgICAgICBzdGF0ZToge1xuICAgICAgICAgIHBlbmRlbmN5RGF0YTogYXJnXG4gICAgICAgIH0sXG4gICAgICAgIHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRSb2xlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgeyBfX3Rva2VuQ3JlZGVudGlhbHMgfSA9IHRoaXM7XG5cbiAgICBpZiAoIV9fdG9rZW5DcmVkZW50aWFscykgcmV0dXJuICcnO1xuXG4gICAgaWYgKF9fdG9rZW5DcmVkZW50aWFscz8ucHJvZ3JhbUFkbWluID09PSAndHJ1ZScpIHtcbiAgICAgIHJldHVybiAnUFJPR1JBTV9BRE1JTic7XG4gICAgfVxuXG4gICAgcmV0dXJuIF9fdG9rZW5DcmVkZW50aWFscz8ucm9sZSB8fCAnJztcbiAgfVxuXG4gIHByaXZhdGUgYWxsb3dlZFNlY3VyaXR5QWNjZXNzQnlQZW5kZW5jeShhcmdzOiBhbnkpOiBNb25rZXlFY3hDb21wYW55UGVuZGVuY2llc1ZhbGlkYXRlZCB7XG4gICAgaWYgKCFhcmdzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBoYXNQZW5kZW5jaWVzOiBmYWxzZVxuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgeyBzZXJ2aWNlLCB0eXBlIH0gPSBhcmdzO1xuICAgIHJldHVybiBzZXJ2aWNlLmhhc1BlbmRlbmNpZXModHlwZSk7XG4gIH1cblxuICBwcml2YXRlIGFsbG93ZWRTZWN1cml0eUFjY2Vzc0J5Q291bnRyeShhcmc/OiBNb25rZXlFY3hDb3VudHJ5U2VjdXJpdHkpOiBib29sZWFuIHtcbiAgICBpZiAoIWFyZykgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIGFyZy5jb3VudHJ5ID09PSBhcmcuZW52Q291bnRyeTtcbiAgfVxuXG4gIHByaXZhdGUgYWxsb3dlZFNlY3VyaXR5QWNjZXNzKGFyZ3M6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICghYXJncykgcmV0dXJuIHRydWU7XG4gICAgY29uc3Qgcm9sZXMgPSBhcmdzPy5yb2xlcztcbiAgICBjb25zdCBieUV4Y2x1c2lvbiA9IGFyZ3M/LmJ5RXhjbHVzaW9uO1xuICAgIGNvbnN0IGZvdW5kID0gcm9sZXM/LmluZGV4T2YodGhpcy5nZXRSb2xlKCkpO1xuICAgIGxldCByZXQgPSBmYWxzZTtcbiAgICBpZiAoYnlFeGNsdXNpb24pIHtcbiAgICAgIHJldCA9IHRydWU7XG4gICAgICBpZiAoZm91bmQgPiAtMSkge1xuICAgICAgICByZXQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0ID0gZmFsc2U7XG4gICAgICBpZiAoZm91bmQgPiAtMSkge1xuICAgICAgICByZXQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXJvbGVzIHx8IHJvbGVzLmxlbmd0aCA9PT0gMCB8fCB0aGlzLmdldFJvbGUoKSA9PT0gJ1BST0dSQU1fQURNSU4nKSB7XG4gICAgICByZXQgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHJpdmF0ZSBuYXZpZ2F0ZVRvRXJyb3JQYWdlKHN0YXR1c0NvZGU6IG51bWJlciwgcm91dGVyPzogUm91dGVyKSB7XG4gICAgY29uc3Qgcm91dGVzOiBhbnkgPSB7XG4gICAgICA0MDM6ICdmb3JiaWRkZW4nLFxuICAgICAgNDA0OiAnbm90LWZvdW5kJyxcbiAgICAgIDUwMDogJ3NlcnZpY2UtcHJvYmxlbXMnLFxuICAgICAgNTAzOiAnc2VydmljZS1wcm9ibGVtcydcbiAgICB9O1xuXG4gICAgaWYgKCFyb3V0ZXIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1JvdXRlciBtdXN0IGJlIGRlY2xhcmVkJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdXRlcj8ubmF2aWdhdGUoW2AvYXBwL3BhZ2VzLyR7cm91dGVzW3N0YXR1c0NvZGVdfWAudG9Mb3dlckNhc2UoKV0sIHtcbiAgICAgICAgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzZXRQYWdlKHJlcXVlc3RQYWdlZDogTW9ua2V5RWN4UmVxdWVzdFBhZ2VkKSB7XG4gICAgdGhpcy5fX3JlcXVlc3RQYWdlZCA9IHtcbiAgICAgIC4uLnRoaXMuX19yZXF1ZXN0UGFnZWQsXG4gICAgICAuLi5yZXF1ZXN0UGFnZWRcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbmV4dFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX19saW5rcykge1xuICAgICAgcmV0dXJuICEhdGhpcy5fX2xpbmtzPy5uZXh0O1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX19yZXF1ZXN0UGFnZWQpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCB7IHBhZ2UgfSA9IHRoaXMuX19yZXF1ZXN0UGFnZWQgYXMgYW55O1xuICAgIGNvbnN0IHsgbnVtYmVyLCB0b3RhbFBhZ2VzIH0gPSBwYWdlO1xuICAgIGlmIChudW1iZXIgPCB0b3RhbFBhZ2VzKSB7XG4gICAgICB0aGlzLl9fcmVxdWVzdFBhZ2VkID0ge1xuICAgICAgICAuLi50aGlzLl9fcmVxdWVzdFBhZ2VkLFxuICAgICAgICBwYWdlOiB7XG4gICAgICAgICAgLi4ucGFnZSxcbiAgICAgICAgICBudW1iZXI6IG51bWJlciArIDFcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRFbWJlZGRlZERhdGEoZGF0YTogYW55LCBmaWVsZDogc3RyaW5nKTogYW55W10gfCBhbnkge1xuICAgIGNvbnN0IHsgX2VtYmVkZGVkIH0gPSBkYXRhO1xuICAgIHJldHVybiBfZW1iZWRkZWQgPyBfZW1iZWRkZWRbZmllbGRdIDogbnVsbDtcbiAgfVxuXG4gIGdldE5vcm1hbGl6ZWRVcmwodXJsOiBzdHJpbmcsIHNhbWVQYWdlID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgX19yZXF1ZXN0UGFnZWQsIF9fbGlua3MgfSA9IHRoaXM7XG4gICAgcmV0dXJuIG5ldyBNb25rZXlFY3hSZXF1ZXN0UGFnZWRIYW5kbGluZyhcbiAgICAgIHVybCxcbiAgICAgIF9fcmVxdWVzdFBhZ2VkIHx8IHt9LFxuICAgICAgX19saW5rcyxcbiAgICAgIHNhbWVQYWdlXG4gICAgKS5nZXRSZXF1ZXN0V2l0aFBhZ2VkUGFyYW1zKCk7XG4gIH1cblxuICBjbGVhcihjbGVhckRhdGE6IGJvb2xlYW4pIHtcbiAgICBpZiAoY2xlYXJEYXRhKSB7XG4gICAgICB0aGlzLl9fZGF0YSA9IG51bGw7XG4gICAgICB0aGlzLl9fcmVxdWVzdFBhZ2VkID0gbnVsbDtcbiAgICAgIHRoaXMuX19wYXJhbXMgPSBudWxsO1xuICAgICAgdGhpcy5fX3BhZ2UgPSBudWxsO1xuICAgICAgdGhpcy5fX2xpbmtzID0gbnVsbDtcblxuICAgICAgaWYgKHRoaXMuX19zY2hlZHVsZSkge1xuICAgICAgICBjb25zdCB7IHF1ZXVlIH0gPSB0aGlzLl9fc2NoZWR1bGU7XG4gICAgICAgIGlmIChxdWV1ZSkge1xuICAgICAgICAgIHRoaXMub3RoZXJBcmdzPy5xdWV1ZT8uc2VydmljZT8ucmVtb3ZlUXVldWVJdGVtKHF1ZXVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm90aGVyQXJncz8uc2NoZWR1bGU/LnNlcnZpY2U/LnJlbW92ZVNjaGVkdWxlKHRoaXMuX19zY2hlZHVsZSk7XG4gICAgICAgIHRoaXMuX19zY2hlZHVsZSA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX19lcnJvciA9IG51bGw7XG4gICAgdGhpcy5fX2hhbmRsZWRFcnJvciA9IG51bGw7XG4gICAgdGhpcy5mbGFnVmFsaWRhdG9yID0gZmFsc2U7XG4gIH1cblxuICByZXNvbHZlKFxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgbnVsbCxcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCB8IG51bGwsXG4gICAgb3RoZXJBcmdzPzoge1xuICAgICAgY2FsbGJhY2tNYWluOiBGdW5jdGlvbjtcbiAgICAgIHJvdXRlcj86IFJvdXRlcjtcbiAgICAgIHNlY3VyaXR5Pzoge1xuICAgICAgICByb2xlczogc3RyaW5nW107XG4gICAgICAgIGJ5RXhjbHVzaW9uPzogYm9vbGVhbjtcbiAgICAgIH07XG4gICAgICBjYWxsYmFja1BhZ2luYXRpb24/OiBGdW5jdGlvbjtcbiAgICAgIHRyYW5zbGF0ZU9wdGlvbnM/OiBNb25rZXlFY3hUcmFuc2xhdGVPcHRpb25zO1xuICAgICAgZmVhdHVyZT86IHtcbiAgICAgICAgc2VydmljZTogTW9ua2V5RWN4RmVhdHVyZVRvZ2dsZVNlcnZpY2U7XG4gICAgICAgIGZsYWc6IHN0cmluZztcbiAgICAgIH07XG4gICAgICBjb3VudHJ5U2VjdXJpdHk/OiBNb25rZXlFY3hDb3VudHJ5U2VjdXJpdHk7XG4gICAgICBwZW5kZW5jeT86IHtcbiAgICAgICAgc2VydmljZToge1xuICAgICAgICAgIGhhc1BlbmRlbmNpZXM6IEZ1bmN0aW9uO1xuICAgICAgICB9O1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH1cbiAgKSB7XG4gICAgaWYgKEpTT04uc3RyaW5naWZ5KHJvdXRlPy5xdWVyeVBhcmFtcykgPT09ICd7fScpIHtcbiAgICAgIHRoaXMuX19kYXRhID0gbnVsbDtcbiAgICAgIHRoaXMuX19wYWdlID0gbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLl9fcmVxdWVzdFBhZ2VkID0gbnVsbDtcbiAgICB0aGlzLmZsYWdWYWxpZGF0b3IgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMudG9rZW5TdG9yYWdlKSB7XG4gICAgICB0aGlzLl9fdG9rZW5DcmVkZW50aWFscyA9IHRoaXMudG9rZW5TdG9yYWdlLmdldFRva2VuKCk7XG4gICAgfVxuXG4gICAgY29uc3QgcGVuZCA9IHRoaXMuYWxsb3dlZFNlY3VyaXR5QWNjZXNzQnlQZW5kZW5jeShvdGhlckFyZ3M/LnBlbmRlbmN5KTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuYWxsb3dlZFNlY3VyaXR5QWNjZXNzKG90aGVyQXJncz8uc2VjdXJpdHkpICYmXG4gICAgICB0aGlzLmFsbG93ZWRTZWN1cml0eUFjY2Vzc0J5Q291bnRyeShvdGhlckFyZ3M/LmNvdW50cnlTZWN1cml0eSkgJiZcbiAgICAgICFwZW5kLmhhc1BlbmRlbmNpZXNcbiAgICApIHtcbiAgICAgIGlmICh0aGlzLl9fc2NoZWR1bGUpIHtcbiAgICAgICAgdGhpcy5vdGhlckFyZ3M/LnNjaGVkdWxlPy5zZXJ2aWNlPy5yZW1vdmVTY2hlZHVsZSh0aGlzLl9fc2NoZWR1bGUpO1xuICAgICAgICB0aGlzLl9fc2NoZWR1bGUgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IF9fcmVxdWVzdFBhZ2VkIH0gPSB0aGlzO1xuICAgICAgaWYgKCFfX3JlcXVlc3RQYWdlZCkge1xuICAgICAgICB0aGlzLnNldFBhZ2Uoe1xuICAgICAgICAgIHBhZ2U6IHtcbiAgICAgICAgICAgIG51bWJlcjogMCxcbiAgICAgICAgICAgIHNpemU6IDEwXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKG90aGVyQXJncz8udHJhbnNsYXRlT3B0aW9ucykge1xuICAgICAgICBjb25zdCB7IHNlcnZpY2UsIGtleXMgfSA9IG90aGVyQXJncz8udHJhbnNsYXRlT3B0aW9ucztcbiAgICAgICAgdGhpcy5nZXRpMThuKHNlcnZpY2UsIGtleXMgfHwgJycpO1xuICAgICAgfVxuXG4gICAgICBpZiAob3RoZXJBcmdzPy5jYWxsYmFja1BhZ2luYXRpb24pIHtcbiAgICAgICAgdGhpcy5fX2NhbGxiYWNrUGFnaW5hdGlvbiA9IG90aGVyQXJncy5jYWxsYmFja1BhZ2luYXRpb247XG4gICAgICB9XG5cbiAgICAgIGlmIChvdGhlckFyZ3M/LmZlYXR1cmUpIHtcbiAgICAgICAgY29uc3QgeyBmbGFnLCBzZXJ2aWNlIH0gPSBvdGhlckFyZ3MuZmVhdHVyZTtcblxuICAgICAgICBzZXJ2aWNlLm9uRmxhZ3NcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2VXaGlsZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmZsYWdWYWxpZGF0b3I7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKCh2YWw6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgICAgICAgY29uc3QgaGFzRmxhZyA9IHNlcnZpY2UuZ2V0RmxhZyhmbGFnKTtcblxuICAgICAgICAgICAgICBpZiAoTW9ua2V5RWN4VXRpbHMucGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZChoYXNGbGFnKSkge1xuICAgICAgICAgICAgICAgIGlmICghaGFzRmxhZykge1xuICAgICAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvRXJyb3JQYWdlKDQwNCwgb3RoZXJBcmdzPy5yb3V0ZXIpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBvdGhlckFyZ3M/LmNhbGxiYWNrTWFpbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3RoZXJBcmdzPy5jYWxsYmFja01haW4oKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHBlbmQuaGFzUGVuZGVuY2llcykge1xuICAgICAgdGhpcy5uYXZpZ2F0ZVRvUGVuZGVuY3lQYWdlKHBlbmQsIG90aGVyQXJncz8ucm91dGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uYXZpZ2F0ZVRvRXJyb3JQYWdlKDQwMywgb3RoZXJBcmdzPy5yb3V0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIGdldEhUVFBIZWFkZXJBcHBsaWNhdGlvblBERigpOiBPYmplY3Qge1xuICAgIHJldHVybiB7XG4gICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYidcbiAgICB9O1xuICB9XG5cbiAgQE1vbmtleUVjeENvcmVTZXJ2aWNlKHtcbiAgICByZXF1ZXN0SW5Qcm9ncmVzczoge1xuICAgICAgc2hvd1Byb2dyZXNzOiB0cnVlXG4gICAgfVxuICB9KVxuICBnZW5lcmljTWV0aG9kKGxpbms6IGFueSwgZGF0YT86IGFueSwgY2FsbGJhY2s/OiBGdW5jdGlvbikge1xuICAgIGNvbnN0IHsgaHJlZiwgdHlwZSA9ICdnZXQnIH0gPSBsaW5rO1xuXG4gICAgdGhpcy5tb25rZXllY3hTZXJ2aWNlPy5bdHlwZS50b0xvd2VyQ2FzZSgpXShgJHtocmVmfWAsIGRhdGEpPy5zdWJzY3JpYmUoXG4gICAgICAocmVzcDogYW55KSA9PiB7XG4gICAgICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2socmVzcCk7XG4gICAgICB9LFxuICAgICAgKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjaygpO1xuICAgICAgICB0aHJvd0Vycm9yKGVycik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGdldGkxOG4odHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSwga2V5czogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICB0cmFuc2xhdGVTZXJ2aWNlLm9uRGVmYXVsdExhbmdDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX19pMThuID0gdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGtleXMpO1xuICAgICAgdGhpcy5fX29uaTE4bkRhdGFDaGFuZ2VkJC5uZXh0KG51bGwpO1xuICAgIH0pO1xuICAgIHRyYW5zbGF0ZVNlcnZpY2UuZ2V0U3RyZWFtT25UcmFuc2xhdGlvbkNoYW5nZShrZXlzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fX2kxOG4gPSB0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoa2V5cyk7XG4gICAgICB0aGlzLl9fb25pMThuRGF0YUNoYW5nZWQkLm5leHQobnVsbCk7XG4gICAgfSk7XG4gIH1cblxuICBkb1BhZ2luYXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLl9fb25Mb2FkaW5nSW5Qcm9ncmVzcyQudmFsdWUpIHtcbiAgICAgIGNvbnN0IGhhc01vcmVQYWdlcyA9IHRoaXMuc2V0UGFnZSh7XG4gICAgICAgIHBhZ2U6IHtcbiAgICAgICAgICAuLi50aGlzLl9fcGFnZVxuICAgICAgICB9XG4gICAgICB9KS5uZXh0UGFnZSgpO1xuXG4gICAgICBpZiAoaGFzTW9yZVBhZ2VzICYmIHRoaXMuX19jYWxsYmFja1BhZ2luYXRpb24pIHtcbiAgICAgICAgdGhpcy5fX2NhbGxiYWNrUGFnaW5hdGlvbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldFNlYXJjaEJ5VXJsKHJvdXRlcjogUm91dGVyLCB1cmw6IHN0cmluZywgc2VhcmNoOiBhbnksIGV4dHJhcz86IGFueSkge1xuICAgIHRoaXMuX19kYXRhID0gbnVsbDtcbiAgICB0aGlzLl9fcGFnZSA9IG51bGw7XG4gICAgdGhpcy5fX29uRGF0YUNoYW5nZWQkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fX29uTG9hZGluZ0luUHJvZ3Jlc3MkLm5leHQoZmFsc2UpO1xuXG4gICAgcm91dGVyLm5hdmlnYXRlKFt1cmxdLCB7XG4gICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAuLi5zZWFyY2gsXG4gICAgICAgIHI6IE1vbmtleUVjeFV0aWxzLmdldFJhbmRvbVN0cmluZygzMClcbiAgICAgIH0sXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxuICAgICAgLi4uZXh0cmFzXG4gICAgfSk7XG4gIH1cblxuICBzYXZlU3RhdGUoc3RhdGU6IE1vbmtleUVjeFNhdmVkU3RhdGUpIHtcbiAgICB0aGlzLl9fc2F2ZWRTdGF0ZSA9IHtcbiAgICAgIHBhZ2U6IHRoaXMuX19wYWdlLFxuICAgICAgLi4uc3RhdGVcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -3,6 +3,7 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
export class MonkeyEcxLoggedHandlingService {
|
|
4
4
|
constructor() {
|
|
5
5
|
this.schedules = [];
|
|
6
|
+
this.genericSchedules = [];
|
|
6
7
|
// not to do
|
|
7
8
|
}
|
|
8
9
|
destroySchedule() {
|
|
@@ -11,11 +12,21 @@ export class MonkeyEcxLoggedHandlingService {
|
|
|
11
12
|
});
|
|
12
13
|
this.schedules = [];
|
|
13
14
|
}
|
|
15
|
+
destroyGenericSchedule() {
|
|
16
|
+
this.genericSchedules.forEach((sch) => {
|
|
17
|
+
clearInterval(sch.interval);
|
|
18
|
+
});
|
|
19
|
+
this.genericSchedules = [];
|
|
20
|
+
}
|
|
14
21
|
addSchedule(sch) {
|
|
15
22
|
this.schedules = sch;
|
|
16
23
|
}
|
|
24
|
+
addGenericSchedule(sch) {
|
|
25
|
+
this.genericSchedules = sch;
|
|
26
|
+
}
|
|
17
27
|
destroy() {
|
|
18
28
|
this.destroySchedule();
|
|
29
|
+
this.destroyGenericSchedule();
|
|
19
30
|
}
|
|
20
31
|
}
|
|
21
32
|
MonkeyEcxLoggedHandlingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxLoggedHandlingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -26,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
26
37
|
providedIn: 'root'
|
|
27
38
|
}]
|
|
28
39
|
}], ctorParameters: function () { return []; } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWxvZ2dlZC1oYW5kbGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2xvZ2dlZC9tb25rZXllY3gtbG9nZ2VkLWhhbmRsaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLDhCQUE4QjtJQUt6QztRQUpRLGNBQVMsR0FBK0IsRUFBRSxDQUFDO1FBRTNDLHFCQUFnQixHQUErQixFQUFFLENBQUM7UUFHeEQsWUFBWTtJQUNkLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBNkIsRUFBRSxFQUFFO1lBQ3ZELGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUE2QixFQUFFLEVBQUU7WUFDOUQsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLFdBQVcsQ0FBQyxHQUErQjtRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztJQUN2QixDQUFDO0lBRU0sa0JBQWtCLENBQUMsR0FBK0I7UUFDdkQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztJQUM5QixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzsySEFsQ1UsOEJBQThCOytIQUE5Qiw4QkFBOEIsY0FGN0IsTUFBTTsyRkFFUCw4QkFBOEI7a0JBSDFDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1vbmtleUVjeExvZ2dlZEhhbmRsaW5nU2VydmljZSB7XG4gIHByaXZhdGUgc2NoZWR1bGVzOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGVbXSA9IFtdO1xuXG4gIHByaXZhdGUgZ2VuZXJpY1NjaGVkdWxlczogTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBub3QgdG8gZG9cbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveVNjaGVkdWxlKCkge1xuICAgIHRoaXMuc2NoZWR1bGVzLmZvckVhY2goKHNjaDogTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlKSA9PiB7XG4gICAgICBjbGVhckludGVydmFsKHNjaC5pbnRlcnZhbCk7XG4gICAgfSk7XG4gICAgdGhpcy5zY2hlZHVsZXMgPSBbXTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveUdlbmVyaWNTY2hlZHVsZSgpIHtcbiAgICB0aGlzLmdlbmVyaWNTY2hlZHVsZXMuZm9yRWFjaCgoc2NoOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUpID0+IHtcbiAgICAgIGNsZWFySW50ZXJ2YWwoc2NoLmludGVydmFsKTtcbiAgICB9KTtcbiAgICB0aGlzLmdlbmVyaWNTY2hlZHVsZXMgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRTY2hlZHVsZShzY2g6IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZVtdKSB7XG4gICAgdGhpcy5zY2hlZHVsZXMgPSBzY2g7XG4gIH1cblxuICBwdWJsaWMgYWRkR2VuZXJpY1NjaGVkdWxlKHNjaDogTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlW10pIHtcbiAgICB0aGlzLmdlbmVyaWNTY2hlZHVsZXMgPSBzY2g7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3lTY2hlZHVsZSgpO1xuICAgIHRoaXMuZGVzdHJveUdlbmVyaWNTY2hlZHVsZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -6,15 +6,20 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
import * as i1 from "../monkeyecx-service.service";
|
|
7
7
|
import * as i2 from "../logged";
|
|
8
8
|
export class MonkeyEcxRequestScheduleService {
|
|
9
|
-
constructor(monkeyecxService,
|
|
9
|
+
constructor(monkeyecxService, monkeyLoggedHandlingService) {
|
|
10
10
|
this.monkeyecxService = monkeyecxService;
|
|
11
|
-
this.
|
|
11
|
+
this.monkeyLoggedHandlingService = monkeyLoggedHandlingService;
|
|
12
12
|
this.schedule = [];
|
|
13
|
+
this.genericSchedule = [];
|
|
13
14
|
// not to do
|
|
14
15
|
}
|
|
15
16
|
addToSchedule(q) {
|
|
16
17
|
this.schedule.push(q);
|
|
17
|
-
this.
|
|
18
|
+
this.monkeyLoggedHandlingService.addSchedule(this.schedule);
|
|
19
|
+
}
|
|
20
|
+
addToGenericSchedule(q) {
|
|
21
|
+
this.genericSchedule.push(q);
|
|
22
|
+
this.monkeyLoggedHandlingService.addGenericSchedule(this.genericSchedule);
|
|
18
23
|
}
|
|
19
24
|
removeFromSchedule(q) {
|
|
20
25
|
clearInterval(q.interval);
|
|
@@ -22,66 +27,121 @@ export class MonkeyEcxRequestScheduleService {
|
|
|
22
27
|
this.schedule = [
|
|
23
28
|
...saved.map((sch) => {
|
|
24
29
|
const savedLocal = {
|
|
25
|
-
...sch
|
|
30
|
+
...sch
|
|
31
|
+
};
|
|
32
|
+
if (sch.id === q.id) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
return savedLocal;
|
|
36
|
+
})
|
|
37
|
+
].filter((_) => {
|
|
38
|
+
return _;
|
|
39
|
+
});
|
|
40
|
+
this.monkeyLoggedHandlingService.addSchedule(this.schedule);
|
|
41
|
+
}
|
|
42
|
+
removeFromGenericSchedule(q) {
|
|
43
|
+
clearInterval(q.interval);
|
|
44
|
+
const saved = [...this.genericSchedule];
|
|
45
|
+
this.genericSchedule = [
|
|
46
|
+
...saved.map((sch) => {
|
|
47
|
+
const savedLocal = {
|
|
48
|
+
...sch
|
|
26
49
|
};
|
|
27
50
|
if (sch.id === q.id) {
|
|
28
51
|
return null;
|
|
29
52
|
}
|
|
30
53
|
return savedLocal;
|
|
31
|
-
})
|
|
54
|
+
})
|
|
32
55
|
].filter((_) => {
|
|
33
56
|
return _;
|
|
34
57
|
});
|
|
35
|
-
this.
|
|
58
|
+
this.monkeyLoggedHandlingService.addGenericSchedule(this.genericSchedule);
|
|
36
59
|
}
|
|
37
60
|
removeFromScheduleById(id) {
|
|
38
61
|
const q = this.getScheduleById(id);
|
|
39
|
-
clearInterval(q
|
|
62
|
+
clearInterval(q?.interval);
|
|
40
63
|
const saved = [...this.schedule];
|
|
41
64
|
this.schedule = [
|
|
42
65
|
...saved.map((sch) => {
|
|
43
66
|
const savedLocal = {
|
|
44
|
-
...sch
|
|
67
|
+
...sch
|
|
45
68
|
};
|
|
46
|
-
if (sch.id === q
|
|
69
|
+
if (sch.id === q?.id) {
|
|
47
70
|
return null;
|
|
48
71
|
}
|
|
49
72
|
return savedLocal;
|
|
50
|
-
})
|
|
73
|
+
})
|
|
51
74
|
].filter((_) => {
|
|
52
75
|
return _;
|
|
53
76
|
});
|
|
54
|
-
this.
|
|
77
|
+
this.monkeyLoggedHandlingService.addSchedule(this.schedule);
|
|
55
78
|
}
|
|
56
79
|
doCall(sch) {
|
|
57
|
-
const { url, method, params, data, action } = sch;
|
|
80
|
+
const { url, method, params, data, action, errorAction } = sch;
|
|
81
|
+
const errAction = errorAction || ((...args) => { });
|
|
58
82
|
this.monkeyecxService[method.toLowerCase()](`${url}`, params).subscribe((resp) => {
|
|
59
83
|
action({
|
|
60
84
|
...data,
|
|
61
|
-
...resp
|
|
85
|
+
...resp
|
|
62
86
|
}, sch);
|
|
63
|
-
}, () => {
|
|
87
|
+
}, (err) => {
|
|
64
88
|
this.removeFromSchedule(sch);
|
|
89
|
+
errAction({
|
|
90
|
+
...data
|
|
91
|
+
}, sch, err);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
doGenericCall(sch) {
|
|
95
|
+
const { url, method, params, data, action, errorAction } = sch;
|
|
96
|
+
const errAction = errorAction || ((...args) => { });
|
|
97
|
+
this.monkeyecxService[method.toLowerCase()](`${url}`, params).subscribe((resp) => {
|
|
98
|
+
action({
|
|
99
|
+
...data,
|
|
100
|
+
...resp
|
|
101
|
+
}, sch);
|
|
102
|
+
}, (err) => {
|
|
103
|
+
this.removeFromGenericSchedule(sch);
|
|
104
|
+
errAction({
|
|
105
|
+
...data
|
|
106
|
+
}, sch, err);
|
|
65
107
|
});
|
|
66
108
|
}
|
|
67
109
|
setSchedule(q, delay = 3000) {
|
|
68
110
|
const interval = setInterval(() => {
|
|
69
111
|
this.doCall({
|
|
70
112
|
...q,
|
|
71
|
-
interval
|
|
113
|
+
interval
|
|
72
114
|
});
|
|
73
115
|
}, delay);
|
|
74
116
|
const sch = {
|
|
75
117
|
...q,
|
|
76
118
|
id: `${MonkeyEcxUtils.getRandomString(40)}`,
|
|
77
|
-
interval
|
|
119
|
+
interval
|
|
78
120
|
};
|
|
79
121
|
this.addToSchedule(sch);
|
|
80
122
|
return sch;
|
|
81
123
|
}
|
|
124
|
+
setGenericSchedule(q, delay = 3000) {
|
|
125
|
+
const interval = setInterval(() => {
|
|
126
|
+
this.doGenericCall({
|
|
127
|
+
...q,
|
|
128
|
+
interval
|
|
129
|
+
});
|
|
130
|
+
}, delay);
|
|
131
|
+
const sch = {
|
|
132
|
+
...q,
|
|
133
|
+
id: `${MonkeyEcxUtils.getRandomString(40)}`,
|
|
134
|
+
interval
|
|
135
|
+
};
|
|
136
|
+
this.addToGenericSchedule(sch);
|
|
137
|
+
return sch;
|
|
138
|
+
}
|
|
82
139
|
removeSchedule(q) {
|
|
83
140
|
this.removeFromSchedule(q);
|
|
84
141
|
}
|
|
142
|
+
removeGenericSchedule(q) {
|
|
143
|
+
this.removeFromGenericSchedule(q);
|
|
144
|
+
}
|
|
85
145
|
removeScheduleById(id) {
|
|
86
146
|
this.removeFromScheduleById(id);
|
|
87
147
|
}
|
|
@@ -97,17 +157,28 @@ MonkeyEcxRequestScheduleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion
|
|
|
97
157
|
__decorate([
|
|
98
158
|
MonkeyEcxCoreService({
|
|
99
159
|
httpResponse: {
|
|
100
|
-
httpCodeIgnore: [400, 403, 404, 500, 503]
|
|
160
|
+
httpCodeIgnore: [400, 403, 404, 500, 503]
|
|
101
161
|
},
|
|
102
162
|
requestInProgress: {
|
|
103
|
-
showProgress: false
|
|
104
|
-
}
|
|
163
|
+
showProgress: false
|
|
164
|
+
}
|
|
105
165
|
})
|
|
106
166
|
], MonkeyEcxRequestScheduleService.prototype, "doCall", null);
|
|
167
|
+
__decorate([
|
|
168
|
+
MonkeyEcxCoreService({
|
|
169
|
+
httpResponse: {
|
|
170
|
+
httpCodeIgnore: [400, 401, 403, 404, 500, 503],
|
|
171
|
+
httpCodeIgnoreRedirect: [503]
|
|
172
|
+
},
|
|
173
|
+
requestInProgress: {
|
|
174
|
+
showProgress: false
|
|
175
|
+
}
|
|
176
|
+
})
|
|
177
|
+
], MonkeyEcxRequestScheduleService.prototype, "doGenericCall", null);
|
|
107
178
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxRequestScheduleService, decorators: [{
|
|
108
179
|
type: Injectable,
|
|
109
180
|
args: [{
|
|
110
|
-
providedIn: 'root'
|
|
181
|
+
providedIn: 'root'
|
|
111
182
|
}]
|
|
112
|
-
}], ctorParameters: function () { return [{ type: i1.MonkeyEcxService }, { type: i2.MonkeyEcxLoggedHandlingService }]; }, propDecorators: { doCall: [] } });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LXJlcXVlc3Qtc2NoZWR1bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb3JlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9zY2hlZHVsZXMvbW9ua2V5ZWN4LXJlcXVlc3Qtc2NoZWR1bGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFNbkQsTUFBTSxPQUFPLCtCQUErQjtJQUcxQyxZQUNTLGdCQUFrQyxFQUNqQyw4QkFBOEQ7UUFEL0QscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyxtQ0FBOEIsR0FBOUIsOEJBQThCLENBQWdDO1FBSmhFLGFBQVEsR0FBdUMsRUFBRSxDQUFDO1FBTXhELFlBQVk7SUFDZCxDQUFDO0lBRU8sYUFBYSxDQUFDLENBQTJCO1FBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxDQUEyQjtRQUNwRCxhQUFhLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRztZQUNkLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQTZCLEVBQUUsRUFBRTtnQkFDN0MsTUFBTSxVQUFVLEdBQUc7b0JBQ2pCLEdBQUcsR0FBRztpQkFDUCxDQUFDO2dCQUNGLElBQUksR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNuQixPQUFPLElBQUksQ0FBQztpQkFDYjtnQkFDRCxPQUFPLFVBQVUsQ0FBQztZQUNwQixDQUFDLENBQUM7U0FDSCxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO1lBQ2xCLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsOEJBQThCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU8sc0JBQXNCLENBQUMsRUFBVTtRQUN2QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ2QsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBNkIsRUFBRSxFQUFFO2dCQUM3QyxNQUFNLFVBQVUsR0FBRztvQkFDakIsR0FBRyxHQUFHO2lCQUNQLENBQUM7Z0JBQ0YsSUFBSSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ25CLE9BQU8sSUFBSSxDQUFDO2lCQUNiO2dCQUNELE9BQU8sVUFBVSxDQUFDO1lBQ3BCLENBQUMsQ0FBQztTQUNILENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDbEIsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFVTyxNQUFNLENBQUMsR0FBNkI7UUFDMUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFFbEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFNLEdBQUcsR0FBRyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUMxRSxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ1osTUFBTSxDQUNKO2dCQUNFLEdBQUcsSUFBSTtnQkFDUCxHQUFHLElBQUk7YUFDUixFQUNELEdBQUcsQ0FDSixDQUFDO1FBQ0osQ0FBQyxFQUNELEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxXQUFXLENBQUMsQ0FBMkIsRUFBRSxRQUFnQixJQUFJO1FBQ2xFLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDVixHQUFHLENBQUM7Z0JBQ0osUUFBUTthQUNULENBQUMsQ0FBQztRQUNMLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVWLE1BQU0sR0FBRyxHQUFHO1lBQ1YsR0FBRyxDQUFDO1lBQ0osRUFBRSxFQUFFLEdBQUcsY0FBYyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUMzQyxRQUFRO1NBQ1QsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU0sY0FBYyxDQUFDLENBQTJCO1FBQy9DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU0sa0JBQWtCLENBQUMsRUFBVTtRQUNsQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxFQUFVO1FBQy9CLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBNkIsRUFBRSxFQUFFO1lBQzdELE9BQU8sR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7OzRIQWhIVSwrQkFBK0I7Z0lBQS9CLCtCQUErQixjQUY5QixNQUFNO0FBZ0VsQjtJQVJDLG9CQUFvQixDQUFDO1FBQ3BCLFlBQVksRUFBRTtZQUNaLGNBQWMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7U0FDMUM7UUFDRCxpQkFBaUIsRUFBRTtZQUNqQixZQUFZLEVBQUUsS0FBSztTQUNwQjtLQUNGLENBQUM7NkRBa0JEOzJGQS9FVSwrQkFBK0I7a0JBSDNDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CO29KQStEUyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9ua2V5RWN4U2VydmljZSB9IGZyb20gJy4uL21vbmtleWVjeC1zZXJ2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9ua2V5RWN4Q29yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kZWNvcmF0b3JzL21vbmtleWVjeC1kZWNvcmF0b3JzJztcbmltcG9ydCB7IE1vbmtleUVjeExvZ2dlZEhhbmRsaW5nU2VydmljZSB9IGZyb20gJy4uL2xvZ2dlZCc7XG5pbXBvcnQgeyBNb25rZXlFY3hVdGlscyB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlU2VydmljZSB7XG4gIHByaXZhdGUgc2NoZWR1bGU6IChNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUgfCBhbnkpW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbW9ua2V5ZWN4U2VydmljZTogTW9ua2V5RWN4U2VydmljZSxcbiAgICBwcml2YXRlIG1vbmtleWVjeExvZ2dlZEhhbmRsaW5nU2VydmljZTogTW9ua2V5RWN4TG9nZ2VkSGFuZGxpbmdTZXJ2aWNlXG4gICkge1xuICAgIC8vIG5vdCB0byBkb1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRUb1NjaGVkdWxlKHE6IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZSkge1xuICAgIHRoaXMuc2NoZWR1bGUucHVzaChxKTtcbiAgICB0aGlzLm1vbmtleWVjeExvZ2dlZEhhbmRsaW5nU2VydmljZS5hZGRTY2hlZHVsZSh0aGlzLnNjaGVkdWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRnJvbVNjaGVkdWxlKHE6IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZSkge1xuICAgIGNsZWFySW50ZXJ2YWwocS5pbnRlcnZhbCk7XG4gICAgY29uc3Qgc2F2ZWQgPSBbLi4udGhpcy5zY2hlZHVsZV07XG4gICAgdGhpcy5zY2hlZHVsZSA9IFtcbiAgICAgIC4uLnNhdmVkLm1hcCgoc2NoOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUpID0+IHtcbiAgICAgICAgY29uc3Qgc2F2ZWRMb2NhbCA9IHtcbiAgICAgICAgICAuLi5zY2gsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChzY2guaWQgPT09IHEuaWQpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2F2ZWRMb2NhbDtcbiAgICAgIH0pLFxuICAgIF0uZmlsdGVyKChfOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiBfO1xuICAgIH0pO1xuICAgIHRoaXMubW9ua2V5ZWN4TG9nZ2VkSGFuZGxpbmdTZXJ2aWNlLmFkZFNjaGVkdWxlKHRoaXMuc2NoZWR1bGUpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVGcm9tU2NoZWR1bGVCeUlkKGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBxID0gdGhpcy5nZXRTY2hlZHVsZUJ5SWQoaWQpO1xuICAgIGNsZWFySW50ZXJ2YWwocS5pbnRlcnZhbCk7XG4gICAgY29uc3Qgc2F2ZWQgPSBbLi4udGhpcy5zY2hlZHVsZV07XG4gICAgdGhpcy5zY2hlZHVsZSA9IFtcbiAgICAgIC4uLnNhdmVkLm1hcCgoc2NoOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUpID0+IHtcbiAgICAgICAgY29uc3Qgc2F2ZWRMb2NhbCA9IHtcbiAgICAgICAgICAuLi5zY2gsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChzY2guaWQgPT09IHEuaWQpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2F2ZWRMb2NhbDtcbiAgICAgIH0pLFxuICAgIF0uZmlsdGVyKChfOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiBfO1xuICAgIH0pO1xuICAgIHRoaXMubW9ua2V5ZWN4TG9nZ2VkSGFuZGxpbmdTZXJ2aWNlLmFkZFNjaGVkdWxlKHRoaXMuc2NoZWR1bGUpO1xuICB9XG5cbiAgQE1vbmtleUVjeENvcmVTZXJ2aWNlKHtcbiAgICBodHRwUmVzcG9uc2U6IHtcbiAgICAgIGh0dHBDb2RlSWdub3JlOiBbNDAwLCA0MDMsIDQwNCwgNTAwLCA1MDNdLFxuICAgIH0sXG4gICAgcmVxdWVzdEluUHJvZ3Jlc3M6IHtcbiAgICAgIHNob3dQcm9ncmVzczogZmFsc2UsXG4gICAgfSxcbiAgfSlcbiAgcHJpdmF0ZSBkb0NhbGwoc2NoOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUpIHtcbiAgICBjb25zdCB7IHVybCwgbWV0aG9kLCBwYXJhbXMsIGRhdGEsIGFjdGlvbiB9ID0gc2NoO1xuXG4gICAgdGhpcy5tb25rZXllY3hTZXJ2aWNlW21ldGhvZC50b0xvd2VyQ2FzZSgpXTxhbnk+KGAke3VybH1gLCBwYXJhbXMpLnN1YnNjcmliZShcbiAgICAgIChyZXNwOiBhbnkpID0+IHtcbiAgICAgICAgYWN0aW9uKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAuLi5yZXNwLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2NoXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbW92ZUZyb21TY2hlZHVsZShzY2gpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2V0U2NoZWR1bGUocTogTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlLCBkZWxheTogbnVtYmVyID0gMzAwMCkge1xuICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5kb0NhbGwoe1xuICAgICAgICAuLi5xLFxuICAgICAgICBpbnRlcnZhbCxcbiAgICAgIH0pO1xuICAgIH0sIGRlbGF5KTtcblxuICAgIGNvbnN0IHNjaCA9IHtcbiAgICAgIC4uLnEsXG4gICAgICBpZDogYCR7TW9ua2V5RWN4VXRpbHMuZ2V0UmFuZG9tU3RyaW5nKDQwKX1gLFxuICAgICAgaW50ZXJ2YWwsXG4gICAgfTtcblxuICAgIHRoaXMuYWRkVG9TY2hlZHVsZShzY2gpO1xuICAgIHJldHVybiBzY2g7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlU2NoZWR1bGUocTogTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlKSB7XG4gICAgdGhpcy5yZW1vdmVGcm9tU2NoZWR1bGUocSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlU2NoZWR1bGVCeUlkKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlbW92ZUZyb21TY2hlZHVsZUJ5SWQoaWQpO1xuICB9XG5cbiAgcHVibGljIGdldFNjaGVkdWxlQnlJZChpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgcSA9IHRoaXMuc2NoZWR1bGUuZmluZCgoc2NoOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUpID0+IHtcbiAgICAgIHJldHVybiBzY2guaWQgPT09IGlkO1xuICAgIH0pO1xuICAgIHJldHVybiBxO1xuICB9XG59XG4iXX0=
|
|
183
|
+
}], ctorParameters: function () { return [{ type: i1.MonkeyEcxService }, { type: i2.MonkeyEcxLoggedHandlingService }]; }, propDecorators: { doCall: [], doGenericCall: [] } });
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LXJlcXVlc3Qtc2NoZWR1bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb3JlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9zY2hlZHVsZXMvbW9ua2V5ZWN4LXJlcXVlc3Qtc2NoZWR1bGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFRbkQsTUFBTSxPQUFPLCtCQUErQjtJQUsxQyxZQUNTLGdCQUFrQyxFQUNqQywyQkFBMkQ7UUFENUQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQWdDO1FBTjdELGFBQVEsR0FBdUMsRUFBRSxDQUFDO1FBRWxELG9CQUFlLEdBQXVDLEVBQUUsQ0FBQztRQU0vRCxZQUFZO0lBQ2QsQ0FBQztJQUVPLGFBQWEsQ0FBQyxDQUEyQjtRQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsMkJBQTJCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsQ0FBMkI7UUFDdEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU8sa0JBQWtCLENBQUMsQ0FBMkI7UUFDcEQsYUFBYSxDQUFDLENBQUMsQ0FB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QUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxFQUFVO1FBQy9CLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBNkIsRUFBRSxFQUFFO1lBQzdELE9BQU8sR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7OzRIQTlNVSwrQkFBK0I7Z0lBQS9CLCtCQUErQixjQUY5QixNQUFNO0FBMEZsQjtJQVJDLG9CQUFvQixDQUFDO1FBQ3BCLFlBQVksRUFBRTtZQUNaLGNBQWMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7U0FDMUM7UUFDRCxpQkFBaUIsRUFBRTtZQUNqQixZQUFZLEVBQUUsS0FBSztTQUNwQjtLQUNGLENBQUM7NkRBMkJEO0FBV0Q7SUFUQyxvQkFBb0IsQ0FBQztRQUNwQixZQUFZLEVBQUU7WUFDWixjQUFjLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztZQUM5QyxzQkFBc0IsRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUM5QjtRQUNELGlCQUFpQixFQUFFO1lBQ2pCLFlBQVksRUFBRSxLQUFLO1NBQ3BCO0tBQ0YsQ0FBQztvRUEyQkQ7MkZBdkpVLCtCQUErQjtrQkFIM0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7b0pBeUZTLE1BQU0sTUFxQ04sYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTW9ua2V5RWN4Q29yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kZWNvcmF0b3JzL21vbmtleWVjeC1kZWNvcmF0b3JzJztcbmltcG9ydCB7IE1vbmtleUVjeFV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNb25rZXlFY3hTZXJ2aWNlIH0gZnJvbSAnLi4vbW9ua2V5ZWN4LXNlcnZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBNb25rZXlFY3hMb2dnZWRIYW5kbGluZ1NlcnZpY2UgfSBmcm9tICcuLi9sb2dnZWQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzY2hlZHVsZTogTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlW10gfCBhbnlbXSA9IFtdO1xuXG4gIHByaXZhdGUgZ2VuZXJpY1NjaGVkdWxlOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGVbXSB8IGFueVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG1vbmtleWVjeFNlcnZpY2U6IE1vbmtleUVjeFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb25rZXlMb2dnZWRIYW5kbGluZ1NlcnZpY2U6IE1vbmtleUVjeExvZ2dlZEhhbmRsaW5nU2VydmljZVxuICApIHtcbiAgICAvLyBub3QgdG8gZG9cbiAgfVxuXG4gIHByaXZhdGUgYWRkVG9TY2hlZHVsZShxOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUpIHtcbiAgICB0aGlzLnNjaGVkdWxlLnB1c2gocSk7XG4gICAgdGhpcy5tb25rZXlMb2dnZWRIYW5kbGluZ1NlcnZpY2UuYWRkU2NoZWR1bGUodGhpcy5zY2hlZHVsZSk7XG4gIH1cblxuICBwcml2YXRlIGFkZFRvR2VuZXJpY1NjaGVkdWxlKHE6IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZSkge1xuICAgIHRoaXMuZ2VuZXJpY1NjaGVkdWxlLnB1c2gocSk7XG4gICAgdGhpcy5tb25rZXlMb2dnZWRIYW5kbGluZ1NlcnZpY2UuYWRkR2VuZXJpY1NjaGVkdWxlKHRoaXMuZ2VuZXJpY1NjaGVkdWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRnJvbVNjaGVkdWxlKHE6IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZSkge1xuICAgIGNsZWFySW50ZXJ2YWwocS5pbnRlcnZhbCk7XG4gICAgY29uc3Qgc2F2ZWQgPSBbLi4udGhpcy5zY2hlZHVsZV07XG4gICAgdGhpcy5zY2hlZHVsZSA9IFtcbiAgICAgIC4uLnNhdmVkLm1hcCgoc2NoOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUpID0+IHtcbiAgICAgICAgY29uc3Qgc2F2ZWRMb2NhbCA9IHtcbiAgICAgICAgICAuLi5zY2hcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHNjaC5pZCA9PT0gcS5pZCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzYXZlZExvY2FsO1xuICAgICAgfSlcbiAgICBdLmZpbHRlcigoXzogYW55KSA9PiB7XG4gICAgICByZXR1cm4gXztcbiAgICB9KTtcbiAgICB0aGlzLm1vbmtleUxvZ2dlZEhhbmRsaW5nU2VydmljZS5hZGRTY2hlZHVsZSh0aGlzLnNjaGVkdWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRnJvbUdlbmVyaWNTY2hlZHVsZShxOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUpIHtcbiAgICBjbGVhckludGVydmFsKHEuaW50ZXJ2YWwpO1xuICAgIGNvbnN0IHNhdmVkID0gWy4uLnRoaXMuZ2VuZXJpY1NjaGVkdWxlXTtcbiAgICB0aGlzLmdlbmVyaWNTY2hlZHVsZSA9IFtcbiAgICAgIC4uLnNhdmVkLm1hcCgoc2NoOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUpID0+IHtcbiAgICAgICAgY29uc3Qgc2F2ZWRMb2NhbCA9IHtcbiAgICAgICAgICAuLi5zY2hcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHNjaC5pZCA9PT0gcS5pZCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzYXZlZExvY2FsO1xuICAgICAgfSlcbiAgICBdLmZpbHRlcigoXzogYW55KSA9PiB7XG4gICAgICByZXR1cm4gXztcbiAgICB9KTtcbiAgICB0aGlzLm1vbmtleUxvZ2dlZEhhbmRsaW5nU2VydmljZS5hZGRHZW5lcmljU2NoZWR1bGUodGhpcy5nZW5lcmljU2NoZWR1bGUpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVGcm9tU2NoZWR1bGVCeUlkKGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBxID0gdGhpcy5nZXRTY2hlZHVsZUJ5SWQoaWQpO1xuICAgIGNsZWFySW50ZXJ2YWwocT8uaW50ZXJ2YWwpO1xuICAgIGNvbnN0IHNhdmVkID0gWy4uLnRoaXMuc2NoZWR1bGVdO1xuICAgIHRoaXMuc2NoZWR1bGUgPSBbXG4gICAgICAuLi5zYXZlZC5tYXAoKHNjaDogTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlKSA9PiB7XG4gICAgICAgIGNvbnN0IHNhdmVkTG9jYWwgPSB7XG4gICAgICAgICAgLi4uc2NoXG4gICAgICAgIH07XG4gICAgICAgIGlmIChzY2guaWQgPT09IHE/LmlkKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNhdmVkTG9jYWw7XG4gICAgICB9KVxuICAgIF0uZmlsdGVyKChfOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiBfO1xuICAgIH0pO1xuICAgIHRoaXMubW9ua2V5TG9nZ2VkSGFuZGxpbmdTZXJ2aWNlLmFkZFNjaGVkdWxlKHRoaXMuc2NoZWR1bGUpO1xuICB9XG5cbiAgQE1vbmtleUVjeENvcmVTZXJ2aWNlKHtcbiAgICBodHRwUmVzcG9uc2U6IHtcbiAgICAgIGh0dHBDb2RlSWdub3JlOiBbNDAwLCA0MDMsIDQwNCwgNTAwLCA1MDNdXG4gICAgfSxcbiAgICByZXF1ZXN0SW5Qcm9ncmVzczoge1xuICAgICAgc2hvd1Byb2dyZXNzOiBmYWxzZVxuICAgIH1cbiAgfSlcbiAgcHJpdmF0ZSBkb0NhbGwoc2NoOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUpIHtcbiAgICBjb25zdCB7IHVybCwgbWV0aG9kLCBwYXJhbXMsIGRhdGEsIGFjdGlvbiwgZXJyb3JBY3Rpb24gfSA9IHNjaDtcblxuICAgIGNvbnN0IGVyckFjdGlvbiA9IGVycm9yQWN0aW9uIHx8ICgoLi4uYXJncykgPT4ge30pO1xuXG4gICAgdGhpcy5tb25rZXllY3hTZXJ2aWNlW21ldGhvZC50b0xvd2VyQ2FzZSgpXTxhbnk+KGAke3VybH1gLCBwYXJhbXMpLnN1YnNjcmliZShcbiAgICAgIChyZXNwOiBhbnkpID0+IHtcbiAgICAgICAgYWN0aW9uKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAuLi5yZXNwXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzY2hcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICAoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLnJlbW92ZUZyb21TY2hlZHVsZShzY2gpO1xuICAgICAgICBlcnJBY3Rpb24oXG4gICAgICAgICAge1xuICAgICAgICAgICAgLi4uZGF0YVxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2NoLFxuICAgICAgICAgIGVyclxuICAgICAgICApO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBATW9ua2V5RWN4Q29yZVNlcnZpY2Uoe1xuICAgIGh0dHBSZXNwb25zZToge1xuICAgICAgaHR0cENvZGVJZ25vcmU6IFs0MDAsIDQwMSwgNDAzLCA0MDQsIDUwMCwgNTAzXSxcbiAgICAgIGh0dHBDb2RlSWdub3JlUmVkaXJlY3Q6IFs1MDNdXG4gICAgfSxcbiAgICByZXF1ZXN0SW5Qcm9ncmVzczoge1xuICAgICAgc2hvd1Byb2dyZXNzOiBmYWxzZVxuICAgIH1cbiAgfSlcbiAgcHJpdmF0ZSBkb0dlbmVyaWNDYWxsKHNjaDogTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlKSB7XG4gICAgY29uc3QgeyB1cmwsIG1ldGhvZCwgcGFyYW1zLCBkYXRhLCBhY3Rpb24sIGVycm9yQWN0aW9uIH0gPSBzY2g7XG5cbiAgICBjb25zdCBlcnJBY3Rpb24gPSBlcnJvckFjdGlvbiB8fCAoKC4uLmFyZ3MpID0+IHt9KTtcblxuICAgIHRoaXMubW9ua2V5ZWN4U2VydmljZVttZXRob2QudG9Mb3dlckNhc2UoKV08YW55PihgJHt1cmx9YCwgcGFyYW1zKS5zdWJzY3JpYmUoXG4gICAgICAocmVzcDogYW55KSA9PiB7XG4gICAgICAgIGFjdGlvbihcbiAgICAgICAgICB7XG4gICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgLi4ucmVzcFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2NoXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5yZW1vdmVGcm9tR2VuZXJpY1NjaGVkdWxlKHNjaCk7XG4gICAgICAgIGVyckFjdGlvbihcbiAgICAgICAgICB7XG4gICAgICAgICAgICAuLi5kYXRhXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzY2gsXG4gICAgICAgICAgZXJyXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTY2hlZHVsZShxOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUsIGRlbGF5OiBudW1iZXIgPSAzMDAwKSB7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICB0aGlzLmRvQ2FsbCh7XG4gICAgICAgIC4uLnEsXG4gICAgICAgIGludGVydmFsXG4gICAgICB9KTtcbiAgICB9LCBkZWxheSk7XG5cbiAgICBjb25zdCBzY2ggPSB7XG4gICAgICAuLi5xLFxuICAgICAgaWQ6IGAke01vbmtleUVjeFV0aWxzLmdldFJhbmRvbVN0cmluZyg0MCl9YCxcbiAgICAgIGludGVydmFsXG4gICAgfTtcblxuICAgIHRoaXMuYWRkVG9TY2hlZHVsZShzY2gpO1xuICAgIHJldHVybiBzY2g7XG4gIH1cblxuICBwdWJsaWMgc2V0R2VuZXJpY1NjaGVkdWxlKHE6IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZSwgZGVsYXk6IG51bWJlciA9IDMwMDApIHtcbiAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHRoaXMuZG9HZW5lcmljQ2FsbCh7XG4gICAgICAgIC4uLnEsXG4gICAgICAgIGludGVydmFsXG4gICAgICB9KTtcbiAgICB9LCBkZWxheSk7XG5cbiAgICBjb25zdCBzY2ggPSB7XG4gICAgICAuLi5xLFxuICAgICAgaWQ6IGAke01vbmtleUVjeFV0aWxzLmdldFJhbmRvbVN0cmluZyg0MCl9YCxcbiAgICAgIGludGVydmFsXG4gICAgfTtcblxuICAgIHRoaXMuYWRkVG9HZW5lcmljU2NoZWR1bGUoc2NoKTtcbiAgICByZXR1cm4gc2NoO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZVNjaGVkdWxlKHE6IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZSkge1xuICAgIHRoaXMucmVtb3ZlRnJvbVNjaGVkdWxlKHEpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUdlbmVyaWNTY2hlZHVsZShxOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUpIHtcbiAgICB0aGlzLnJlbW92ZUZyb21HZW5lcmljU2NoZWR1bGUocSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlU2NoZWR1bGVCeUlkKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlbW92ZUZyb21TY2hlZHVsZUJ5SWQoaWQpO1xuICB9XG5cbiAgcHVibGljIGdldFNjaGVkdWxlQnlJZChpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgcSA9IHRoaXMuc2NoZWR1bGUuZmluZCgoc2NoOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUpID0+IHtcbiAgICAgIHJldHVybiBzY2guaWQgPT09IGlkO1xuICAgIH0pO1xuICAgIHJldHVybiBxO1xuICB9XG59XG4iXX0=
|