@rangertechnologies/ngnxt 2.1.122 → 2.1.124
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/esm2022/environments/version.mjs +5 -5
- package/esm2022/lib/components/custom-calendar/custom-calendar.component.mjs +3 -2
- package/esm2022/lib/components/custom-radio/custom-radio.component.mjs +5 -4
- package/esm2022/lib/components/custom-rich-text/custom-rich-text.component.mjs +4 -2
- package/esm2022/lib/components/custom-text-area/custom-text-area.component.mjs +4 -2
- package/esm2022/lib/components/datatable/datatable.component.mjs +6 -3
- package/esm2022/lib/components/search-box/search-box.component.mjs +22 -11
- package/esm2022/lib/components/table-appendix/table-appendix.component.mjs +2 -2
- package/esm2022/lib/pages/builder/element/element.component.mjs +16 -2
- package/esm2022/lib/pages/builder/properties/properties.component.mjs +14 -12
- package/esm2022/lib/pages/questionbook/questionbook.component.mjs +12 -7
- package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +20 -17
- package/esm2022/lib/pipe/search-filter/search-filter.pipe.mjs +2 -2
- package/esm2022/lib/services/data.service.mjs +23 -17
- package/esm2022/lib/services/form-builder.service.mjs +1 -1
- package/fesm2022/rangertechnologies-ngnxt.mjs +124 -74
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
- package/lib/pages/questionnaire/questionnaire.component.d.ts +2 -2
- package/lib/services/data.service.d.ts +1 -1
- package/lib/services/form-builder.service.d.ts +15 -1
- package/package.json +1 -1
- package/rangertechnologies-ngnxt-2.1.124.tgz +0 -0
- package/rangertechnologies-ngnxt-2.1.122.tgz +0 -0
|
@@ -7,7 +7,7 @@ export class SearchFilterPipe {
|
|
|
7
7
|
return [];
|
|
8
8
|
if (!searchText)
|
|
9
9
|
return items;
|
|
10
|
-
return this.searchItems(items, searchText
|
|
10
|
+
return this.searchItems(items, searchText?.toLowerCase(), ele);
|
|
11
11
|
}
|
|
12
12
|
// passing that data here, and if the search element included in that array, that element will be returned in new array
|
|
13
13
|
searchItems(items, searchText, ele) {
|
|
@@ -36,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
36
36
|
standalone: true
|
|
37
37
|
}]
|
|
38
38
|
}] });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL3BpcGUvc2VhcmNoLWZpbHRlci9zZWFyY2gtZmlsdGVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBT3BELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsMkVBQTJFO0lBQzNFLFNBQVMsQ0FBQyxLQUFZLEVBQUUsVUFBa0IsRUFBRSxHQUFRO1FBQ2xELElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBQ0QsdUhBQXVIO0lBQy9HLFdBQVcsQ0FBQyxLQUFZLEVBQUUsVUFBa0IsRUFBRSxHQUFRO1FBQzVELElBQUksT0FBTyxHQUFVLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDMUIsSUFBRyxHQUFHLEVBQUMsQ0FBQztnQkFDTixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDbEQsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckIsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDN0MsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7d0dBeEJVLGdCQUFnQjtzR0FBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUo1QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxjQUFjO29CQUNwQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuQFBpcGUoe1xuICBuYW1lOiAnc2VhcmNoRmlsdGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hGaWx0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cblxuICAvL2dldHRpbmcgdGhlIGFycmF5IGRhdGFzIGFuZCBzZWFyY2ggZGF0YSBmcm9tIHBpcGUgZWxlbWVudCBvbiBldmVyeSBjaGFuZ2VcbiAgdHJhbnNmb3JtKGl0ZW1zOiBhbnlbXSwgc2VhcmNoVGV4dDogc3RyaW5nLCBlbGU/OmFueSk6IGFueVtdIHtcbiAgICBpZiAoIWl0ZW1zKSByZXR1cm4gW107XG4gICAgaWYgKCFzZWFyY2hUZXh0KSByZXR1cm4gaXRlbXM7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoSXRlbXMoaXRlbXMsIHNlYXJjaFRleHQ/LnRvTG93ZXJDYXNlKCksIGVsZSk7XG4gIH1cbiAgLy8gcGFzc2luZyB0aGF0IGRhdGEgaGVyZSwgYW5kIGlmIHRoZSBzZWFyY2ggZWxlbWVudCBpbmNsdWRlZCBpbiB0aGF0IGFycmF5LCB0aGF0IGVsZW1lbnQgd2lsbCBiZSByZXR1cm5lZCBpbiBuZXcgYXJyYXlcbiAgcHJpdmF0ZSBzZWFyY2hJdGVtcyhpdGVtczogYW55W10sIHNlYXJjaFRleHQ6IHN0cmluZywgZWxlPzphbnkpOiBhbnlbXSB7XG4gICAgbGV0IHJlc3VsdHM6IGFueVtdID0gW107XG4gICAgaXRlbXMuZm9yRWFjaCgoZGF0YTogYW55KSA9PiB7XG4gICAgICBpZihlbGUpe1xuICAgICAgICBpZiAoZGF0YVtlbGVdPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQpKSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKGRhdGEpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZGF0YT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXh0KSkge1xuICAgICAgICAgIHJlc3VsdHMucHVzaChkYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG59Il19
|
|
@@ -47,24 +47,30 @@ export class DataService {
|
|
|
47
47
|
return this.http.post(apiUrl, body);
|
|
48
48
|
}
|
|
49
49
|
// VD 22May24 -funtion to handling multiple child objects
|
|
50
|
-
getValue(element,
|
|
51
|
-
if (!element || !
|
|
50
|
+
getValue(element, columns) {
|
|
51
|
+
if (!element || !columns)
|
|
52
52
|
return null; //AP-25MAR25 Ensure both element and column are valid
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return null; //AP-25MAR25 Prevent errors if element is null or undefined
|
|
57
|
-
let splitFlds = flds[i].split('[');
|
|
58
|
-
if (splitFlds.length === 1) {
|
|
59
|
-
element = element[flds[i]] !== undefined ? element[flds[i]] : null;
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
let index = Number(splitFlds[1].split(']')[0]);
|
|
63
|
-
element = element[splitFlds[0]] && Array.isArray(element[splitFlds[0]])
|
|
64
|
-
? element[splitFlds[0]][index] !== undefined ? element[splitFlds[0]][index] : null
|
|
65
|
-
: null;
|
|
66
|
-
}
|
|
53
|
+
// MSM27MAR25 check if columns is an array
|
|
54
|
+
if (typeof columns === 'string' && !Array.isArray(columns)) {
|
|
55
|
+
columns = [columns];
|
|
67
56
|
}
|
|
57
|
+
columns.forEach((column) => {
|
|
58
|
+
let flds = column.split('.');
|
|
59
|
+
for (let i = 0; i < flds.length; i++) {
|
|
60
|
+
if (element == null)
|
|
61
|
+
return null; //AP-25MAR25 Prevent errors if element is null or undefined
|
|
62
|
+
let splitFlds = flds[i].split('[');
|
|
63
|
+
if (splitFlds.length === 1) {
|
|
64
|
+
element = element[flds[i]] !== undefined ? element[flds[i]] : null;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
let index = Number(splitFlds[1].split(']')[0]);
|
|
68
|
+
element = element[splitFlds[0]] && Array.isArray(element[splitFlds[0]])
|
|
69
|
+
? element[splitFlds[0]][index] !== undefined ? element[splitFlds[0]][index] : null
|
|
70
|
+
: null;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
});
|
|
68
74
|
return element;
|
|
69
75
|
}
|
|
70
76
|
// VD 23JAN24 get callout
|
|
@@ -82,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
82
88
|
}], ctorParameters: () => [{ type: i1.HttpClient, decorators: [{
|
|
83
89
|
type: Optional
|
|
84
90
|
}] }] });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL3NlcnZpY2VzL2RhdGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQWMsV0FBVyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7OztBQU0zRSxNQUFNLE9BQU8sV0FBVztJQUVVO0lBRGhDLDRDQUE0QztJQUM1QyxZQUFnQyxJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBQUksQ0FBQztJQUU5QyxVQUFVLENBQUMsR0FBVyxFQUMzQixNQUFnQixFQUNoQixPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQVk7UUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUVsQiw0QkFBNEI7UUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNqRSxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sQ0FBQyxNQUFNLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFbkQsd0VBQXdFO1FBQ3hFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlFQUFpRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFHLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FB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LENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7d0JBQ2xGLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ1gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFHRCwwQkFBMEI7SUFDakIsV0FBVyxDQUFDLFFBQWdCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQzt3R0FuRlUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdjLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERhdGFTZXJ2aWNlIHtcbiAgLy8gVkQgMjNKQU4yNCBvcHRpb25hbGx5IGRlY2xhcmVkIGh0dHBDbGllbnRcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IH1cblxuICBwdWJsaWMgZ2V0QVBJRGF0YSh0a246IHN0cmluZywgXG4gICAgcGFyYW1zOiBzdHJpbmdbXSxcbiAgICByZXNvbHZlLFxuICAgIHJlamVjdCxcbiAgICBjb25maWc/OiBhbnkpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdpbnNpZGUgRGF0YVNlcnZpY2UuZ2V0QVBJRGF0YSBmb3IgJyArIHRrbik7XG4gICAgICBjb25zdCBzZWxmID0gdGhpcztcblxuICAgICAgLy8gQ2FsbCB0aGUgU2hlbmdlbEdvIFNlcnZlclxuICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQXV0aG9yaXphdGlvbicsIGAke3Rrbn1gKTtcbiAgICAgIGhlYWRlcnMuYXBwZW5kKCdBY2NlcHQnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICAgICAgaGVhZGVycy5hcHBlbmQoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJyk7XG5cbiAgICAgIC8vIE1SIDIzSkFOMjQgLSBUaGlzIHNob3VsZCBiZSByZW1vdmVkLCBmb3Igbm93IHRlc3Rpbmcgd2l0aCBkZXYtaHNlLWFwaVxuICAgICAgdGhpcy5odHRwLmdldCgnaHR0cHM6Ly9kZXYtaHNlLWFwaS5yYW5nZXJmdXNpb24uY29tL254dC9hcGkvcHJvY2Vzcy8/ZGF0YVR5cGU9JyArIHBhcmFtc1swXSArICcmb3BlcmF0aW9uPScgKyBwYXJhbXNbMV0gKyAnJnBhcmFtPScgKyBwYXJhbXNbMl0sIHsgaGVhZGVyczogaGVhZGVycyAsIG9ic2VydmU6ICdyZXNwb25zZScgfSlcbiAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgaWYocmVzcG9uc2Uuc3RhdHVzID09IDIwMCkge1xuICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5ib2R5KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlLmJvZHkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yLnN0YXR1cyk7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gIH1cblxuICAvL2NhbGxpbmcgdGhlIG5vZGUgYXBpXG4gIHB1YmxpYyBnZXRBUElGcm9tTm9kZShkYXRhVHlwZTogc3RyaW5nLCBvcGVyYXRpb246IHN0cmluZywgcGFyYW0xOiBzdHJpbmcscGFyYW0yOiBzdHJpbmcsYXBpOnN0cmluZyl7XG4gICAgY29uc3QgYXBpVXJsID0gYXBpID8gYXBpIDogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMS9ueHQnO1xuICAgIGNvbnNvbGUubG9nKCdpbmRzaWRlIGRhdGEgc2VydmljZS4uJyk7XG4gICAgLy8gbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcbiAgICAvLyAgIC5zZXQoJ2RhdGFUeXBlJywgZGF0YVR5cGUpXG4gICAgLy8gICAuc2V0KCdvcGVyYXRpb24nLCBvcGVyYXRpb24pXG4gICAgLy8gICAuc2V0KCdwYXJhbTEnLCBwYXJhbTEpXG4gICAgLy8gICAuc2V0KCdwYXJhbTInLHBhcmFtMilcblxuICAgIGxldCBib2R5ID0ge1xuICAgICAgXCJkYXRhVHlwZVwiIDpkYXRhVHlwZSAsXG4gICAgICBcIm9wZXJhdGlvblwiIDpvcGVyYXRpb24gLFxuICAgICAgXCJwYXJhbTFcIiA6cGFyYW0xLCBcbiAgICAgIFwicGFyYW0yXCIgOiBwYXJhbTIsXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGFwaVVybCxib2R5ICk7XG5cbiAgfVxuXG4gICAgXG4vLyBWRCAyMk1heTI0IC1mdW50aW9uIHRvICBoYW5kbGluZyBtdWx0aXBsZSBjaGlsZCBvYmplY3RzXG5wdWJsaWMgZ2V0VmFsdWUoZWxlbWVudDogYW55LCBjb2x1bW5zOiBhbnkpIHtcbiAgaWYgKCFlbGVtZW50IHx8ICFjb2x1bW5zKSByZXR1cm4gbnVsbDsgLy9BUC0yNU1BUjI1IEVuc3VyZSBib3RoIGVsZW1lbnQgYW5kIGNvbHVtbiBhcmUgdmFsaWRcbi8vIE1TTTI3TUFSMjUgY2hlY2sgaWYgY29sdW1ucyBpcyBhbiBhcnJheVxuICBpZih0eXBlb2YgY29sdW1ucyA9PT0gJ3N0cmluZycgJiYgIUFycmF5LmlzQXJyYXkoY29sdW1ucykgICkge1xuICAgIGNvbHVtbnMgPSBbY29sdW1uc107XG4gIH1cbiAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICBsZXQgZmxkcyA9IGNvbHVtbi5zcGxpdCgnLicpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmbGRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoZWxlbWVudCA9PSBudWxsKSByZXR1cm4gbnVsbDsgLy9BUC0yNU1BUjI1IFByZXZlbnQgZXJyb3JzIGlmIGVsZW1lbnQgaXMgbnVsbCBvciB1bmRlZmluZWRcblxuICAgICAgbGV0IHNwbGl0RmxkcyA9IGZsZHNbaV0uc3BsaXQoJ1snKTtcbiAgICAgIGlmIChzcGxpdEZsZHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIGVsZW1lbnQgPSBlbGVtZW50W2ZsZHNbaV1dICE9PSB1bmRlZmluZWQgPyBlbGVtZW50W2ZsZHNbaV1dIDogbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBpbmRleCA9IE51bWJlcihzcGxpdEZsZHNbMV0uc3BsaXQoJ10nKVswXSk7XG4gICAgICAgIGVsZW1lbnQgPSBlbGVtZW50W3NwbGl0Rmxkc1swXV0gJiYgQXJyYXkuaXNBcnJheShlbGVtZW50W3NwbGl0Rmxkc1swXV0pIFxuICAgICAgICAgID8gZWxlbWVudFtzcGxpdEZsZHNbMF1dW2luZGV4XSAhPT0gdW5kZWZpbmVkID8gZWxlbWVudFtzcGxpdEZsZHNbMF1dW2luZGV4XSA6IG51bGxcbiAgICAgICAgICA6IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG5cblxuLy8gVkQgMjNKQU4yNCBnZXQgY2FsbG91dCBcbiAgcHVibGljIGFwaVJlc3BvbnNlKGVuZHBvaW50OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHA/LmdldChlbmRwb2ludCk7XG4gIH1cblxufVxuIl19
|
|
@@ -264,4 +264,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
264
264
|
providedIn: 'root',
|
|
265
265
|
}]
|
|
266
266
|
}], ctorParameters: () => [] });
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1idWlsZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvc2VydmljZXMvZm9ybS1idWlsZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsYUFBYTtBQUNiLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFzRXBDLE1BQU0sT0FBTyxrQkFBa0I7SUFDckIsWUFBWSxHQUFrQixFQUFFLENBQUM7SUFDakMsbUJBQW1CLEdBQUcsSUFBSSxlQUFlLENBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQzdELHNCQUFzQixHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekQsbUJBQW1CLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7SUFDckQsZ0JBQWdCLEdBQTRCLElBQUksQ0FBQztJQUN6RCxJQUFJLENBQU07SUFDVixTQUFTLENBQU07SUFDZixRQUFRLENBQVE7SUFFaEIsYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4RCxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUQsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9ELGNBQWMsQ0FBTTtJQUNwQixpQkFBaUIsQ0FBTTtJQUN2Qix5RUFBeUU7SUFFekU7UUFDRSx3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9ELElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUN0RCxnRUFBZ0U7UUFDbEUsQ0FBQztJQUNILENBQUM7SUFDRCxhQUFhLENBQUMsSUFBUztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQiwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXpELENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHO1lBQ1Ysa0JBQWtCLEVBQUU7Z0JBQ2xCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO29CQUNoQixjQUFjLEVBQUUsRUFBRTtvQkFDbEIsTUFBTSxFQUFFLE1BQU07aUJBQ2Y7YUFDRjtZQUNELGNBQWMsRUFBRTtnQkFDZCxRQUFRLEVBQUUsMEtBQTBLO2FBQ3JMO1lBQ0QsU0FBUyxFQUFFLENBQUM7b0JBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTO29CQUNwQixPQUFPLEVBQUUsVUFBVTtvQkFDbkIsY0FBYyxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUNyQixDQUFDO1NBQ0gsQ0FBQTtJQUNILENBQUM7SUFDRCx3Q0FBd0M7SUFDeEMsYUFBYTtRQUNYLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRCxzQ0FBc0M7SUFDdEMsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxTQUEyQjtRQUM3QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsVUFBVSxDQUFDLE9BQW9CO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsT0FBTyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyx5QkFBeUI7UUFDakQsQ0FBQztRQUNELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNELCtCQUErQjtJQUMvQixlQUFlLENBQUMsT0FBWTtRQUMxQix5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjO1lBQUUsT0FBTztRQUNqQyx1QkFBdUI7UUFDdkIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXpDLHFEQUFxRDtRQUNyRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXpFLGtEQUFrRDtRQUNsRCxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5RSxJQUFJLGNBQWMsR0FBRztZQUNuQixPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDdEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1lBQzVCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLFlBQVksRUFBRSxLQUFLO1lBQ25CLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLFlBQVksRUFBRSxLQUFLO1lBQ25CLFNBQVMsRUFBRSxPQUFPLENBQUMsSUFBSTtZQUN2QixVQUFVLEVBQUUsS0FBSztZQUNqQixrQkFBa0IsRUFBRSxPQUFPLENBQUMsRUFBRTtTQUMvQixDQUFBO1FBQ0QsSUFBSSxVQUFVLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBUSxDQUFDO1FBQ3ZNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXhDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakIsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDNUYsQ0FBQztRQUVELGlDQUFpQztRQUNqQywyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7UUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFFdEQsb0JBQW9CO1FBQ3BCLDZEQUE2RDtJQUMvRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWEsRUFBRSxPQUE2QjtRQUN4RCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDekMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQixRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUc7Z0JBQ2hCLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFDbEIsR0FBRyxPQUFPO2dCQUNWLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRTthQUMxRCxDQUFDO1lBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25ELE1BQU0sY0FBYyxHQUFHO2dCQUNyQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO2dCQUMzQixHQUFHLE9BQU87YUFDWCxDQUFDO1lBQ0YsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDaEMsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN4RSxjQUFjLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztnQkFDdEYsQ0FBQztnQkFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNwQixRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO29CQUNyRCxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztvQkFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7Z0JBQ3hELENBQUM7WUFDSCxDQUFDO1lBRUQsdUJBQXVCO1lBQ3ZCLElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksY0FBYyxDQUFDLFlBQVksSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzNHLGNBQWMsQ0FBQyxZQUFZLEdBQUcsR0FBRyxjQUFjLENBQUMsWUFBWSxJQUFJLENBQUM7WUFDbkUsQ0FBQztpQkFBTSxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssS0FBSyxJQUFJLGNBQWMsQ0FBQyxZQUFZLElBQUksY0FBYyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDbEgsY0FBYyxDQUFDLFlBQVksR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6RSxDQUFDO1lBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxjQUFjLENBQUM7WUFDMUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDdEQsMkVBQTJFO1FBQzdFLENBQUM7SUFDSCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQVU7UUFDcEIsZ0VBQWdFO1FBQ2hFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUNELGtCQUFrQixDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDOUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQTtJQUMvQixDQUFDO0lBQ0QsMkNBQTJDO0lBQzNDLHVCQUF1QixDQUFDLEtBQVUsRUFBRSxLQUFVO1FBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUM5QyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEdBQUcsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqTCxDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN4SixJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxFQUFFLGdCQUFnQixDQUFBO1FBQ3BELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELDBCQUEwQixDQUFDLEtBQWEsRUFBRSxLQUFVO1FBQ2xELGtDQUFrQztRQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0MsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxHQUFHLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsQ0FBQztZQUNqTCw2QkFBNkI7WUFDN0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3pHLDJCQUEyQjtZQUMzQixJQUFJLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDekQsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFBO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBQ0QsMkNBQTJDO0lBQzNDLG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsYUFBYSxDQUFDLEtBQVU7UUFDdEIsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUdELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2QyxHQUFHLE9BQU87WUFDVixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFO1NBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUNELG1CQUFtQjtRQUNqQiwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMzQyxPQUFPLENBQUMsY0FBYyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsNENBQTRDO0lBQzVDLE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUNELHdCQUF3QjtJQUN4QixlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDNUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksV0FBVyxHQUFRLEVBQUUsQ0FBQztRQUUxQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3BDLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxVQUFVLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDM0Ysc0VBQXNFO2dCQUN0RSxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHO29CQUN4QixHQUFHLE9BQU87b0JBQ1YsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRTtpQkFDL0IsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUNELHdDQUF3QztJQUN4QyxtQkFBbUIsQ0FBQyxlQUE4QjtRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsMEJBQTBCO0lBQzFCLHVEQUF1RDtJQUN2RCxzQkFBc0IsQ0FBQyxFQUFPO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUE7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRTtZQUN6QyxJQUFJLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNsQywyRUFBMkU7UUFDM0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNELGdDQUFnQztJQUNoQyxhQUFhLENBQUMsS0FBVSxFQUFFLE9BQVk7UUFDcEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQTtZQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztZQUM3QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7d0dBNVFVLGtCQUFrQjs0R0FBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBUCAyMkpBTjI1XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLi9wYWdlcy9idWlsZGVyL2VsZW1lbnQvZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5pbnRlcmZhY2UgRm9ybUVsZW1lbnQge1xuICBvcmRlcjogbnVtYmVyO1xuICBpZDogYW55O1xuICBuYW1lOiBhbnk7XG4gIHZhbHVlPzogYW55O1xuICByZXF1aXJlZD86IGJvb2xlYW47XG4gIHR5cGU6IHN0cmluZztcbiAgcXVlc3Rpb25UZXh0Pzogc3RyaW5nO1xuICBxdWVzdGlvbj86IHN0cmluZztcbiAgaGVscFRleHQ/OiBzdHJpbmc7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgaXNSZWFkT25seT86IGJvb2xlYW47XG4gIGlzSGlkZGVuPzogYm9vbGVhbjtcbiAgaXNEYXRlQmFja3dhcmQ/OiBib29sZWFuO1xuICBpc0RhdGVGb3J3YXJkPzogYm9vbGVhbjtcbiAgaXNPcHRpb25hbD86IGJvb2xlYW47XG4gIGlzVGl0bGU/OiBib29sZWFuO1xuICBuZXh0UXVlc3Rpb24/OiBhbnk7XG4gIGFsbG93ZWRGaWxlRXh0ZW5zaW9ucz86IGFueTtcbiAgcXVlc3Rpb25OdW1iZXI/OiBudW1iZXI7XG4gIHF1ZXN0aW9uQm9va0lkPzogYW55O1xuICBzaXplPzogbnVtYmVyO1xuICBwYXJlbnRRdWVzdGlvbj86IGFueTtcbiAgZmllbGRzTWV0YT86IGFueTtcbiAgc3VtbWFyeVJvd3M/OiBhbnk7XG4gIHN1bW1hcnlDb2x1bW5zPzogYW55O1xuICByZWNvcmRUeXBlTmFtZT86IGFueTtcbiAgcmVjb3JkVHlwZUlkPzogYW55O1xuICB0cmFja2luZ0lkPzogYW55O1xuICBkYXRlVGV4dD86IGFueTtcbiAgdGltZVRleHQ/OiBhbnk7XG4gIHJlY29yZElkPzogYW55O1xuICBxYlJlZmVyZW5jZT86IGFueTtcbiAgcWJSZWZlcmVuY2VRdWVzdGlvbnM/OiBhbnk7XG4gIHF1ZXN0aW9uQm9va1N1YlRpdGxlPzogYW55O1xuICBzdHlsZToge1xuICAgIGxhYmVsQ2xhc3M6IGFueSxcbiAgICBsYWJlbFN0eWxlOiBhbnksXG4gICAgbGFiZWxWYWx1ZVN0eWxlOiBhbnksXG4gICAgaW5wdXRDbGFzczogYW55LFxuICAgIGlucHV0U3R5bGU6IGFueSxcbiAgICBzaG93TGFiZWw6IGJvb2xlYW4sXG4gICAgYm9va1N0eWxlOiBhbnksXG4gICAgZGlyZWN0aW9uOiBhbnksXG4gICAgcXVlc3Rpb25TdHlsZTogYW55LFxuICB9LFxuICBzdWJUZXh0PzogYW55O1xuICB0aXRsZT86IGFueTtcbiAgc3ViVGl0bGU/OiBhbnk7XG4gIHJlZmVyZW5jZUZpZWxkPzogYW55O1xuICBhZGRpdGlvbmFsUmljaENvbnRlbnQ/OiBhbnk7XG4gIGdyb3VwTmFtZT86IGFueTtcbiAgeDI0SG91cnM/OiBib29sZWFuO1xuICBjb2x1bW5zPzogYW55O1xuICBkYXRhPzogYW55O1xuICAvLyBBUCAyNUZFQjI1IC0gb3B0aW9ucyBhcnJheVxuICBvcHRpb25zPzogQXJyYXk8e1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgdW5pcXVlSWRlbnRpZmllcjogYW55O1xuICAgIHF1ZXN0aW9uSWQ6IGFueTtcbiAgICBuZXh0UXVlc3Rpb246IGFueTtcbiAgICBuYW1lOiBhbnk7XG4gICAgaWQ6IGFueTtcbiAgfT47XG5cbn1cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQnVpbGRlclNlcnZpY2Uge1xuICBwcml2YXRlIGZvcm1FbGVtZW50czogRm9ybUVsZW1lbnRbXSA9IFtdO1xuICBwcml2YXRlIGZvcm1FbGVtZW50c1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1FbGVtZW50W10+KFtdKTtcbiAgcHJpdmF0ZSBzZWxlY3RlZEVsZW1lbnRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KC0xKTtcbiAgcHJpdmF0ZSBzZWxlY3RIZWFkZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICBwcml2YXRlIGVsZW1lbnRDb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQgfCBudWxsID0gbnVsbDtcbiAgYm9vazogYW55O1xuICB1bmlxdWVfaWQ6IGFueTtcbiAgdGVtcEVsZW06IGFueVtdO1xuXG4gIGZvcm1FbGVtZW50cyQgPSB0aGlzLmZvcm1FbGVtZW50c1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIHNlbGVjdGVkRWxlbWVudCQgPSB0aGlzLnNlbGVjdGVkRWxlbWVudFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIHNlbGVjdEhlYWRlclN1YmplY3QkID0gdGhpcy5zZWxlY3RIZWFkZXJTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICBjdXJyZW50RWxlbWVudDogYW55O1xuICBzZWxlY3RUYWJsZUNvbHVtbjogYW55O1xuICAvLyBib29rOiB7IGJvb2tRdWVzdGlvbnNNYXA6IHsgdW5pcXVlX2lkOiB7IHN1YlF1ZXN0aW9uczogYW55W107IH07IH07IH07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gTG9hZCBzYXZlZCBlbGVtZW50cyBmcm9tIGxvY2FsU3RvcmFnZVxuICAgIHRoaXMuZm9ybUVsZW1lbnRzID0gW107XG4gICAgY29uc3Qgc2F2ZWRGb3JtRWxlbWVudHMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZm9ybUVsZW1lbnRzJyk7XG4gICAgaWYgKHNhdmVkRm9ybUVsZW1lbnRzKSB7XG4gICAgICB0aGlzLmZvcm1FbGVtZW50cyA9IEpTT04ucGFyc2Uoc2F2ZWRGb3JtRWxlbWVudHMpO1xuICAgICAgdGhpcy5mb3JtRWxlbWVudHNTdWJqZWN0Lm5leHQoWy4uLnRoaXMuZm9ybUVsZW1lbnRzXSk7XG4gICAgICAvLyB0aGlzLmJvb2sgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdib29rJykgfHwgJ3t9Jyk7XG4gICAgfVxuICB9XG4gIGludGlhbGl6ZUJvb2soYm9vazogYW55KSB7XG4gICAgdGhpcy5ib29rID0gYm9vaztcbiAgICAvLyBBUCAxM01BUjI1IC0gR2V0IHRoZSB1bmlxdWUgaWQgaW4gdGhlIGJvb2tRdWVzdGlvbnNNYXAgXG4gICAgdGhpcy51bmlxdWVfaWQgPSBPYmplY3Qua2V5cyhib29rLmJvb2tRdWVzdGlvbnNNYXApWzBdO1xuXG4gIH1cbiAgbmV3Qm9vaygpIHtcbiAgICB0aGlzLnVuaXF1ZV9pZCA9IHV1aWR2NCgpO1xuICAgIHRoaXMuYm9vayA9IHtcbiAgICAgICdib29rUXVlc3Rpb25zTWFwJzoge1xuICAgICAgICBbdGhpcy51bmlxdWVfaWRdOiB7XG4gICAgICAgICAgJ3N1YlF1ZXN0aW9ucyc6IFtdLFxuICAgICAgICAgICd0eXBlJzogJ0Jvb2snXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAncXVlc3Rpb25ib29rJzoge1xuICAgICAgICBcImFjdGlvblwiOiBcIlt7XFxcIm5hbWVcXFwiOiBcXFwiQ2FuY2VsXFxcIiwgXFxcImV2ZW50dG9lbWl0XFxcIjogXFxcImNsb3NlXFxcIiwgXFxcImFsdFxcXCI6XFxcIlxcXCJ9LHtcXFwibmFtZVxcXCI6IFxcXCJTYXZlXFxcIiwgXFxcImV2ZW50dG9lbWl0XFxcIjogXFxcInN1Ym1pdFxcXCIsIFxcXCJhbHRcXFwiOlxcXCJcXFwiLFxcXCJlbmRwb2ludFxcXCI6XFxcIlxcXCIsXFxcIm1ldGhvZFxcXCI6XFxcIlBPU1RcXFwifV1cIlxuICAgICAgfSxcbiAgICAgICdyZWNvcmRzJzogW3tcbiAgICAgICAgJ2lkJzogdGhpcy51bmlxdWVfaWQsXG4gICAgICAgICd0aXRsZSc6ICdVbnRpdGxlZCcsXG4gICAgICAgICdzdWJRdWVzdGlvbnMnOiBbe31dXG4gICAgICB9XVxuICAgIH1cbiAgfVxuICAvLyBBUCAyNkZFQjI1IC0gY2xlYXIgdGhlIGZvcm0gZWxlbWVudHMgXG4gIGNsZWFyRWxlbWVudHMoKSB7XG4gICAgdGhpcy5mb3JtRWxlbWVudHMgPSBbXTtcbiAgICB0aGlzLmZvcm1FbGVtZW50c1N1YmplY3QubmV4dChbLi4udGhpcy5mb3JtRWxlbWVudHNdKTtcbiAgfVxuICAvLyBHZXQgdGhlIGVsZW1lbnQgY29tcG9uZW50IHJlZmVyZW5jZVxuICBnZXRFbGVtZW50Q29tcG9uZW50KCk6IEVsZW1lbnRDb21wb25lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Q29tcG9uZW50O1xuICB9XG5cbiAgc2V0RWxlbWVudENvbXBvbmVudChjb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQpIHtcbiAgICB0aGlzLmVsZW1lbnRDb21wb25lbnQgPSBjb21wb25lbnQ7XG4gIH1cblxuICAvLyBBZGQgYSBuZXcgZWxlbWVudCB0byB0aGUgZm9ybVxuICBhZGRFbGVtZW50KGVsZW1lbnQ6IEZvcm1FbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKCFlbGVtZW50Lm9wdGlvbnMpIHtcbiAgICAgIGVsZW1lbnQub3B0aW9ucyA9IFtdOyAvLyBvcHRpb25zIGlzIGluaXRpYWxpemVkXG4gICAgfVxuICAgIGVsZW1lbnRbJ3F1ZXN0aW9uQm9va0lkJ10gPSB0aGlzLnVuaXF1ZV9pZDtcbiAgICB0aGlzLmZvcm1FbGVtZW50cy5wdXNoKGVsZW1lbnQpO1xuICAgIHRoaXMuZm9ybUVsZW1lbnRzU3ViamVjdC5uZXh0KFsuLi50aGlzLmZvcm1FbGVtZW50c10pO1xuICB9XG4gIC8vIFNLUzEzTUFSMjUgYWRkIHRhYmxlIGVsZW1lbnRcbiAgYWRkVGFibGVFbGVtZW50KGVsZW1lbnQ6IGFueSkge1xuICAgIC8vU0tTMTNNQVIyNSBFbnN1cmUgY3VycmVudEVsZW1lbnQgZXhpc3RzXG4gICAgaWYgKCF0aGlzLmN1cnJlbnRFbGVtZW50KSByZXR1cm47XG4gICAgLy8gQ2xvbmUgZWxlbWVudHMgYXJyYXlcbiAgICBjb25zdCBlbGVtZW50cyA9IFsuLi50aGlzLmdldEVsZW1lbnRzKCldO1xuXG4gICAgLy8gU0tTMTNNQVIyNSBGaW5kIHRoZSBlbGVtZW50IGFuZCB1cGRhdGUgaXRzIGNvbHVtbnNcbiAgICBjb25zdCBpbmRleCA9IGVsZW1lbnRzLmZpbmRJbmRleChlbCA9PiBlbC5pZCA9PT0gdGhpcy5jdXJyZW50RWxlbWVudC5pZCk7XG5cbiAgICAvLyBDbG9uZSBjb2x1bW5zIGFycmF5IHRvIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICAgIGNvbnN0IHVwZGF0ZWRDb2x1bW5zID0gWy4uLih0aGlzLmZvcm1FbGVtZW50c1tpbmRleF0uY29sdW1ucyB8fCBbXSksIGVsZW1lbnRdO1xuICAgIGxldCB0ZW1wRmllbGRzTWV0YSA9IHtcbiAgICAgICdsYWJlbCc6IGVsZW1lbnQubGFiZWwsXG4gICAgICAnYXBpTmFtZSc6IGVsZW1lbnQuZmllbGROYW1lLFxuICAgICAgXCJpc2RlbGV0ZWRcIjogZmFsc2UsXG4gICAgICBcIm9yZGVyYnlmbGFnXCI6IGZhbHNlLFxuICAgICAgXCJmaWx0ZXJmbGFnXCI6IGZhbHNlLFxuICAgICAgXCJvdXRwdXRGbGFnXCI6IHRydWUsXG4gICAgICBcImlzY2hpbGRcIjogZmFsc2UsXG4gICAgICBcInJlc3VsdGFudGZsYWdcIjogZmFsc2UsXG4gICAgICBcInNlYXJjaGZsYWdcIjogZmFsc2UsXG4gICAgICBcImZsZFR5cGVcIjogZWxlbWVudC50eXBlLFxuICAgICAgXCJyZWFkT25seVwiOiBmYWxzZSxcbiAgICAgIFwidW5pcXVlSWRlbnRpZmllclwiOiBlbGVtZW50LmlkXG4gICAgfVxuICAgIGxldCBmaWVsZHNNZXRhID0gWy4uLih0eXBlb2YgdGhpcy5mb3JtRWxlbWVudHNbaW5kZXhdLmZpZWxkc01ldGEgPT09ICdvYmplY3QnID8gdGhpcy5mb3JtRWxlbWVudHNbaW5kZXhdLmZpZWxkc01ldGEgfHwgW3t9XSA6IEpTT04ucGFyc2UodGhpcy5mb3JtRWxlbWVudHNbaW5kZXhdLmZpZWxkc01ldGEpKSwgdGVtcEZpZWxkc01ldGFdIGFzIGFueTtcbiAgICBmaWVsZHNNZXRhID0gSlNPTi5zdHJpbmdpZnkoZmllbGRzTWV0YSk7XG5cbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICBlbGVtZW50c1tpbmRleF0gPSB7IC4uLmVsZW1lbnRzW2luZGV4XSwgY29sdW1uczogdXBkYXRlZENvbHVtbnMsIGZpZWxkc01ldGE6IGZpZWxkc01ldGEgfTtcbiAgICB9XG5cbiAgICAvLyBFbWl0IHRoZSB1cGRhdGVkIGZvcm0gZWxlbWVudHNcbiAgICAvLyB0aGlzLmZvcm1FbGVtZW50c1N1YmplY3QubmV4dChlbGVtZW50cyk7XG4gICAgdGhpcy5mb3JtRWxlbWVudHMgPSBlbGVtZW50cztcbiAgICB0aGlzLmZvcm1FbGVtZW50c1N1YmplY3QubmV4dChbLi4udGhpcy5mb3JtRWxlbWVudHNdKTtcblxuICAgIC8vIExvZyBmb3IgZGVidWdnaW5nXG4gICAgLy8gY29uc29sZS5sb2coXCJVcGRhdGVkIGZvcm0gZWxlbWVudHM6XCIsICB0aGlzLmZvcm1FbGVtZW50cyk7XG4gIH1cblxuICB1cGRhdGVFbGVtZW50KGluZGV4OiBudW1iZXIsIHVwZGF0ZXM6IFBhcnRpYWw8Rm9ybUVsZW1lbnQ+KSB7XG4gICAgY29uc3QgZWxlbWVudHMgPSBbLi4udGhpcy5nZXRFbGVtZW50cygpXTtcbiAgICBpZiAoZWxlbWVudHNbaW5kZXhdKSB7XG4gICAgICBlbGVtZW50c1tpbmRleF0gPSB7XG4gICAgICAgIC4uLmVsZW1lbnRzW2luZGV4XSxcbiAgICAgICAgLi4udXBkYXRlcyxcbiAgICAgICAgb3B0aW9uczogdXBkYXRlcy5vcHRpb25zIHx8IGVsZW1lbnRzW2luZGV4XS5vcHRpb25zIHx8IFtdLFxuICAgICAgfTtcbiAgICAgIHRoaXMuZm9ybUVsZW1lbnRzU3ViamVjdC5uZXh0KGVsZW1lbnRzKTtcbiAgICB9XG5cbiAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMuZm9ybUVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgY29uc3QgdXBkYXRlZEVsZW1lbnQgPSB7XG4gICAgICAgIC4uLnRoaXMuZm9ybUVsZW1lbnRzW2luZGV4XSxcbiAgICAgICAgLi4udXBkYXRlc1xuICAgICAgfTtcbiAgICAgIGlmICh1cGRhdGVzLnJlcXVpcmVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHVwZGF0ZWRFbGVtZW50LnF1ZXN0aW9uVGV4dCkge1xuICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uVGV4dCA9IHVwZGF0ZWRFbGVtZW50LnF1ZXN0aW9uVGV4dC5yZXBsYWNlKC9cXHMqXFwqKyQvLCAnJyk7XG4gICAgICAgICAgdXBkYXRlZEVsZW1lbnQucXVlc3Rpb25UZXh0ID0gdXBkYXRlcy5yZXF1aXJlZCA/IGAke3F1ZXN0aW9uVGV4dH0gKmAgOiBxdWVzdGlvblRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnRzW2luZGV4XSkge1xuICAgICAgICAgIGVsZW1lbnRzW2luZGV4XSA9IHsgLi4uZWxlbWVudHNbaW5kZXhdLCAuLi51cGRhdGVzIH07XG4gICAgICAgICAgdGhpcy5mb3JtRWxlbWVudHMgPSBlbGVtZW50cztcbiAgICAgICAgICB0aGlzLmZvcm1FbGVtZW50c1N1YmplY3QubmV4dChbLi4udGhpcy5mb3JtRWxlbWVudHNdKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgc3BlY2lhbCBjYXNlc1xuICAgICAgaWYgKHVwZGF0ZXMucmVxdWlyZWQgPT09IHRydWUgJiYgdXBkYXRlZEVsZW1lbnQucXVlc3Rpb25UZXh0ICYmICF1cGRhdGVkRWxlbWVudC5xdWVzdGlvblRleHQuZW5kc1dpdGgoJyonKSkge1xuICAgICAgICB1cGRhdGVkRWxlbWVudC5xdWVzdGlvblRleHQgPSBgJHt1cGRhdGVkRWxlbWVudC5xdWVzdGlvblRleHR9ICpgO1xuICAgICAgfSBlbHNlIGlmICh1cGRhdGVzLnJlcXVpcmVkID09PSBmYWxzZSAmJiB1cGRhdGVkRWxlbWVudC5xdWVzdGlvblRleHQgJiYgdXBkYXRlZEVsZW1lbnQucXVlc3Rpb25UZXh0LmVuZHNXaXRoKCcqJykpIHtcbiAgICAgICAgdXBkYXRlZEVsZW1lbnQucXVlc3Rpb25UZXh0ID0gdXBkYXRlZEVsZW1lbnQucXVlc3Rpb25UZXh0LnNsaWNlKDAsIC0yKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5mb3JtRWxlbWVudHNbaW5kZXhdID0gdXBkYXRlZEVsZW1lbnQ7XG4gICAgICB0aGlzLmZvcm1FbGVtZW50c1N1YmplY3QubmV4dChbLi4udGhpcy5mb3JtRWxlbWVudHNdKTtcbiAgICAgIC8vIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdmb3JtRWxlbWVudHMnLCBKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm1FbGVtZW50cykpO1xuICAgIH1cbiAgfVxuICB1cGRhdGVUaXRsZShldmVudDogYW55KSB7XG4gICAgLy9BUC0xME1BUjI1IFVwZGF0ZXMgdGhlIHRpdGxlIG9mIHRoZSBmaXJzdCByZWNvcmQgaW4gdGhlIGJvb2sgIFxuICAgIHRoaXMuYm9vay5yZWNvcmRzWzBdLnRpdGxlID0gZXZlbnQ7XG4gIH1cbiAgc2V0U2VsZWN0ZWRFbGVtZW50KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudFN1YmplY3QubmV4dChpbmRleCk7XG4gICAgdGhpcy5jdXJyZW50RWxlbWVudCA9IHRoaXMuZm9ybUVsZW1lbnRzW2luZGV4XVxuICAgIHRoaXMuc2VsZWN0VGFibGVDb2x1bW4gPSBudWxsXG4gIH1cbiAgLy8gU0tTMTlNQVIyNSBzZXQgdGhlIHNlbGVjdGVkIHRhYmxlIGNvbHVtblxuICBzZXRTZWxlY3RlZFRhYmxlRWxlbWVudChpbmRleDogYW55LCBldmVudDogYW55KSB7XG4gICAgdGhpcy5jdXJyZW50RWxlbWVudCA9IHRoaXMuZm9ybUVsZW1lbnRzW2luZGV4XVxuICAgIGlmICh0aGlzLmN1cnJlbnRFbGVtZW50Py50eXBlID09PSAnVGFibGUnKSB7XG4gICAgICB0aGlzLmN1cnJlbnRFbGVtZW50WydmaWVsZHNNZXRhJ10gPSB0eXBlb2YgdGhpcy5jdXJyZW50RWxlbWVudD8uZmllbGRzTWV0YSA9PT0gJ29iamVjdCcgPyB0aGlzLmN1cnJlbnRFbGVtZW50Py5maWVsZHNNZXRhIDogSlNPTi5wYXJzZSh0aGlzLmN1cnJlbnRFbGVtZW50LmZpZWxkc01ldGEgfHwgW3t9XSk7XG4gICAgfVxuICAgIGNvbnN0IGZvdW5kSXRlbSA9IHRoaXMuY3VycmVudEVsZW1lbnQ/LnR5cGUgPT09ICdUYWJsZScgPyB0aGlzLmN1cnJlbnRFbGVtZW50WydmaWVsZHNNZXRhJ10uZmluZChpdGVtID0+IGl0ZW1bJ2FwaU5hbWUnXSA9PT0gZXZlbnQ/LmNvbHVtbikgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy5zZWxlY3RUYWJsZUNvbHVtbiA9IGZvdW5kSXRlbT8udW5pcXVlSWRlbnRpZmllclxuICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50U3ViamVjdC5uZXh0KGluZGV4KTtcbiAgfVxuICByZW1vdmVTZWxlY3RlZFRhYmxlRWxlbWVudChpbmRleDogbnVtYmVyLCBldmVudDogYW55KSB7XG4gICAgLy8gY29uc29sZS5sb2coXCJkZGRcIixpbmRleCwgZXZlbnQpXG4gICAgdGhpcy5jdXJyZW50RWxlbWVudCA9IHRoaXMuZm9ybUVsZW1lbnRzW2luZGV4XTtcblxuICAgIGlmICh0aGlzLmN1cnJlbnRFbGVtZW50Py50eXBlID09PSAnVGFibGUnKSB7XG4gICAgICB0aGlzLmN1cnJlbnRFbGVtZW50WydmaWVsZHNNZXRhJ10gPSB0eXBlb2YgdGhpcy5jdXJyZW50RWxlbWVudD8uZmllbGRzTWV0YSA9PT0gJ29iamVjdCcgPyB0aGlzLmN1cnJlbnRFbGVtZW50Py5maWVsZHNNZXRhIDogSlNPTi5wYXJzZSh0aGlzLmN1cnJlbnRFbGVtZW50LmZpZWxkc01ldGEgfHwgJ1t7fV0nKTtcbiAgICAgIC8vIEZpbmQgdGhlIGluZGV4IG9mIHRoZSBpdGVtXG4gICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmN1cnJlbnRFbGVtZW50WydmaWVsZHNNZXRhJ10uZmluZEluZGV4KGl0ZW0gPT4gaXRlbVsnYXBpTmFtZSddID09PSBldmVudD8uY29sdW1uKTtcbiAgICAgIC8vIFJlbW92ZSB0aGUgaXRlbSBpZiBmb3VuZFxuICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50RWxlbWVudFsnZmllbGRzTWV0YSddLnNwbGljZShpdGVtSW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlbGVjdFRhYmxlQ29sdW1uID0gbnVsbFxuICAgIHRoaXMuZWxlbWVudFVwZGF0ZShpbmRleCwgdGhpcy5jdXJyZW50RWxlbWVudClcbiAgfVxuICAvLyBTS1MxOU1BUjI1IGdldCB0aGUgc2VsZWN0ZWQgdGFibGUgY29sdW1uXG4gIGdldFNlbGVjdFRhYmxlQ29sdW1uKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdFRhYmxlQ29sdW1uO1xuICB9XG4gIHNlbGVjdEhlYWRpbmcoZXZlbnQ6IGFueSkge1xuICAgIC8vQVAtMTBNQVIyNSBFbWl0cyB0aGUgc2VsZWN0ZWQgaGVhZGluZyBldmVudCAgXG4gICAgdGhpcy5zZWxlY3RIZWFkZXJTdWJqZWN0Lm5leHQoZXZlbnQpO1xuICB9XG5cblxuICBnZXRFbGVtZW50cygpOiBGb3JtRWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtRWxlbWVudHMubWFwKGVsZW1lbnQgPT4gKHtcbiAgICAgIC4uLmVsZW1lbnQsXG4gICAgICBvcHRpb25zOiBlbGVtZW50Lm9wdGlvbnMgfHwgW10sXG4gICAgfSkpO1xuICB9XG4gIHNvcnRFbGVtZW50c0J5T3JkZXIoKTogdm9pZCB7XG4gICAgLy9BUC0xME1BUjI1IFNvcnQgZWxlbWVudHMgYnkgY3VycmVudCBvcmRlclxuICAgIHRoaXMuZm9ybUVsZW1lbnRzLnNvcnQoKGEsIGIpID0+IGEucXVlc3Rpb25OdW1iZXIgLSBiLnF1ZXN0aW9uTnVtYmVyKTtcbiAgICB0aGlzLmZvcm1FbGVtZW50cy5mb3JFYWNoKChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgICAgZWxlbWVudC5xdWVzdGlvbk51bWJlciA9IGluZGV4ICsgMTtcbiAgICB9KTtcbiAgICB0aGlzLmZvcm1FbGVtZW50c1N1YmplY3QubmV4dChbLi4udGhpcy5mb3JtRWxlbWVudHNdKTtcbiAgfVxuICAvL0FQLTEwTUFSMjUgUmV0dXJucyB0aGUgY3VycmVudCBib29rIGRhdGEgIFxuICBnZXRCb29rKCkge1xuICAgIHJldHVybiB0aGlzLmJvb2s7XG4gIH1cbiAgLy8gSW4gRm9ybUJ1aWxkZXJTZXJ2aWNlXG4gIGRvd25sb2FkRWxlbWVudCgpIHtcbiAgICB0aGlzLmJvb2suYm9va1F1ZXN0aW9uc01hcFt0aGlzLnVuaXF1ZV9pZF0uc3ViUXVlc3Rpb25zID0gdGhpcy5mb3JtRWxlbWVudHM7XG4gICAgY29uc29sZS5sb2coJ2Jvb2snLCB0aGlzLmJvb2spO1xuICAgIGxldCB0ZW1wRWxlbWVudDogYW55ID0ge307XG5cbiAgICB0aGlzLmZvcm1FbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICBpZiAoZWxlbWVudC50eXBlID09PSAnRHJvcGRvd24nIHx8IGVsZW1lbnQudHlwZSA9PT0gJ1JhZGlvJyB8fCBlbGVtZW50LnR5cGUgPT09ICdDaGVja2JveCcpIHtcbiAgICAgICAgLy9BUCAyNUZFQjI1IC0gU3RvcmUgdGhlIGVudGlyZSBxdWVzdGlvbiB3aXRoIGl0cyBvcHRpb25zIHVuZGVyIGl0cyBJRFxuICAgICAgICB0ZW1wRWxlbWVudFtlbGVtZW50LmlkXSA9IHtcbiAgICAgICAgICAuLi5lbGVtZW50LFxuICAgICAgICAgIG9wdGlvbnM6IGVsZW1lbnQub3B0aW9ucyB8fCBbXVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5ib29rLnNxT3B0aW9ucyA9IHRlbXBFbGVtZW50O1xuICAgIHJldHVybiB0aGlzLmJvb2s7XG4gIH1cbiAgLy8gQVAtMDZNQVIyNSAtIEVsZW1lbnQgbmV3IG9yZGVyIHVwZGF0ZVxuICB1cGRhdGVFbGVtZW50c09yZGVyKHVwZGF0ZWRFbGVtZW50czogRm9ybUVsZW1lbnRbXSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUVsZW1lbnRzID0gWy4uLnVwZGF0ZWRFbGVtZW50c107XG4gICAgdGhpcy5mb3JtRWxlbWVudHNTdWJqZWN0Lm5leHQodGhpcy5mb3JtRWxlbWVudHMpO1xuICB9XG4gIC8vIFJlbW92ZSBhbiBlbGVtZW50IGJ5IElEXG4gIC8vIFNhdmUgZWxlbWVudHMgdG8gbG9jYWxTdG9yYWdlIGFuZCB1cGRhdGUgdGhlIHN1YmplY3RcbiAgcmVtb3ZlRWxlbWVudENvbXBvbmVudChpZDogYW55KSB7XG4gICAgdGhpcy50ZW1wRWxlbSA9IFtdO1xuICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50U3ViamVjdC5uZXh0KG51bGwpO1xuICAgIHRoaXMuY3VycmVudEVsZW1lbnQgPSB7fVxuICAgIHRoaXMuZm9ybUVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQuaWQgIT09IGlkKSB7XG4gICAgICAgIHRoaXMudGVtcEVsZW0ucHVzaChlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmZvcm1FbGVtZW50cyA9IHRoaXMudGVtcEVsZW07XG4gICAgLy8gbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2Zvcm1FbGVtZW50cycsIEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybUVsZW1lbnRzKSk7XG4gICAgdGhpcy5mb3JtRWxlbWVudHNTdWJqZWN0Lm5leHQoWy4uLnRoaXMuZm9ybUVsZW1lbnRzXSk7XG4gIH1cbiAgLy8gU0tTMTlNQVIyNSB1cGRhdGUgdGhlIGVsZW1lbnRcbiAgZWxlbWVudFVwZGF0ZShpbmRleDogYW55LCBlbGVtZW50OiBhbnkpIHtcbiAgICBjb25zdCBlbGVtZW50cyA9IFsuLi50aGlzLmdldEVsZW1lbnRzKCldO1xuICAgIGlmIChlbGVtZW50c1tpbmRleF0pIHtcbiAgICAgIGVsZW1lbnRzW2luZGV4XSA9IGVsZW1lbnRcbiAgICAgIHRoaXMuZm9ybUVsZW1lbnRzID0gZWxlbWVudHM7XG4gICAgICB0aGlzLmZvcm1FbGVtZW50c1N1YmplY3QubmV4dChbLi4uZWxlbWVudHNdKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50U3ViamVjdC5uZXh0KGluZGV4KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1idWlsZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvc2VydmljZXMvZm9ybS1idWlsZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsYUFBYTtBQUNiLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFvRnBDLE1BQU0sT0FBTyxrQkFBa0I7SUFDckIsWUFBWSxHQUFrQixFQUFFLENBQUM7SUFDakMsbUJBQW1CLEdBQUcsSUFBSSxlQUFlLENBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQzdELHNCQUFzQixHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekQsbUJBQW1CLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7SUFDckQsZ0JBQWdCLEdBQTRCLElBQUksQ0FBQztJQUN6RCxJQUFJLENBQU07SUFDVixTQUFTLENBQU07SUFDZixRQUFRLENBQVE7SUFFaEIsYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4RCxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUQsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9ELGNBQWMsQ0FBTTtJQUNwQixpQkFBaUIsQ0FBTTtJQUN2Qix5RUFBeUU7SUFFekU7UUFDRSx3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGNB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QUNsQywyRUFBMkU7UUFDM0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNELGdDQUFnQztJQUNoQyxhQUFhLENBQUMsS0FBVSxFQUFFLE9BQVk7UUFDcEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQTtZQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztZQUM3QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7d0dBNVFVLGtCQUFrQjs0R0FBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBUCAyMkpBTjI1XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLi9wYWdlcy9idWlsZGVyL2VsZW1lbnQvZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5pbnRlcmZhY2UgRm9ybUVsZW1lbnQge1xuICBvcmRlcjogbnVtYmVyO1xuICBpZDogYW55O1xuICBuYW1lOiBhbnk7XG4gIHZhbHVlPzogYW55O1xuICByZXF1aXJlZD86IGJvb2xlYW47XG4gIHR5cGU6IHN0cmluZztcbiAgcXVlc3Rpb25UZXh0Pzogc3RyaW5nO1xuICBxdWVzdGlvbj86IHN0cmluZztcbiAgaGVscFRleHQ/OiBzdHJpbmc7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgaXNSZWFkT25seT86IGJvb2xlYW47XG4gIGlzSGlkZGVuPzogYm9vbGVhbjtcbiAgaXNEYXRlQmFja3dhcmQ/OiBib29sZWFuO1xuICBpc0RhdGVGb3J3YXJkPzogYm9vbGVhbjtcbiAgaXNPcHRpb25hbD86IGJvb2xlYW47XG4gIGlzVGl0bGU/OiBib29sZWFuO1xuICBuZXh0UXVlc3Rpb24/OiBhbnk7XG4gIGFsbG93ZWRGaWxlRXh0ZW5zaW9ucz86IGFueTtcbiAgcXVlc3Rpb25OdW1iZXI/OiBudW1iZXI7XG4gIHF1ZXN0aW9uQm9va0lkPzogYW55O1xuICBzaXplPzogbnVtYmVyO1xuICBwYXJlbnRRdWVzdGlvbj86IGFueTtcbiAgZmllbGRzTWV0YT86IGFueTtcbiAgc3VtbWFyeVJvd3M/OiBhbnk7XG4gIHN1bW1hcnlDb2x1bW5zPzogYW55O1xuICByZWNvcmRUeXBlTmFtZT86IGFueTtcbiAgcmVjb3JkVHlwZUlkPzogYW55O1xuICB0cmFja2luZ0lkPzogYW55O1xuICBkYXRlVGV4dD86IGFueTtcbiAgdGltZVRleHQ/OiBhbnk7XG4gIHJlY29yZElkPzogYW55O1xuICBxYlJlZmVyZW5jZT86IGFueTtcbiAgcWJSZWZlcmVuY2VRdWVzdGlvbnM/OiBhbnk7XG4gIHF1ZXN0aW9uQm9va1N1YlRpdGxlPzogYW55O1xuICBzdHlsZToge1xuICAgIGxhYmVsQ2xhc3M6IGFueSxcbiAgICBsYWJlbFN0eWxlOiBhbnksXG4gICAgbGFiZWxWYWx1ZVN0eWxlOiBhbnksXG4gICAgaW5wdXRDbGFzczogYW55LFxuICAgIGlucHV0U3R5bGU6IGFueSxcbiAgICBzaG93TGFiZWw6IGJvb2xlYW4sXG4gICAgYm9va1N0eWxlOiBhbnksXG4gICAgZGlyZWN0aW9uOiBhbnksXG4gICAgcXVlc3Rpb25TdHlsZTogYW55LFxuICB9LFxuICBzdWJUZXh0OiB7XG4gICAgZW5kcG9pbnQ6IGFueSxcbiAgICB2YXJpYWJsZTogYW55LFxuICAgIGZpZWxkOiBhbnksXG4gICAgZGVmYXVsdEZpZWxkOiBhbnksICAgICAgICAgXG4gICAgc291cmNlUXVlc3Rpb25JZDphbnksXG4gICAgdmFsdWVGaWVsZDphbnksXG4gICAgbGFiZWxGaWVsZDphbnksICAgICAgICAgICBcbiAgICBpc0RlcGVuZGVudEZpZWxkOmJvb2xlYW4sXG4gICAgZGVwZW5kZW50VmFsdWU6YW55LCAgICAgICAgXG4gICAgcXVlcnlGaWVsZDogYW55LFxuICAgIHF1ZXJ5VmFsdWU6IGFueSxcbiAgICBxdWVyeVZhbHVlUmVmZXJlbmNlOiBhbnksICAgICAgICAgXG4gICAgdW5pcXVlS2V5OiBhbnksXG4gIH0sXG4gIHRpdGxlPzogYW55O1xuICBzdWJUaXRsZT86IGFueTtcbiAgcmVmZXJlbmNlRmllbGQ/OiBhbnk7XG4gIGFkZGl0aW9uYWxSaWNoQ29udGVudD86IGFueTtcbiAgZ3JvdXBOYW1lPzogYW55O1xuICB4MjRIb3Vycz86IGJvb2xlYW47XG4gIGNvbHVtbnM/OiBhbnk7XG4gIGRhdGE/OiBhbnk7XG4gIC8vIEFQIDI1RkVCMjUgLSBvcHRpb25zIGFycmF5XG4gIG9wdGlvbnM/OiBBcnJheTx7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICB1bmlxdWVJZGVudGlmaWVyOiBhbnk7XG4gICAgcXVlc3Rpb25JZDogYW55O1xuICAgIG5leHRRdWVzdGlvbjogYW55O1xuICAgIG5hbWU6IGFueTtcbiAgICBpZDogYW55O1xuICB9PjtcblxufVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1CdWlsZGVyU2VydmljZSB7XG4gIHByaXZhdGUgZm9ybUVsZW1lbnRzOiBGb3JtRWxlbWVudFtdID0gW107XG4gIHByaXZhdGUgZm9ybUVsZW1lbnRzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybUVsZW1lbnRbXT4oW10pO1xuICBwcml2YXRlIHNlbGVjdGVkRWxlbWVudFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oLTEpO1xuICBwcml2YXRlIHNlbGVjdEhlYWRlclN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gIHByaXZhdGUgZWxlbWVudENvbXBvbmVudDogRWxlbWVudENvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuICBib29rOiBhbnk7XG4gIHVuaXF1ZV9pZDogYW55O1xuICB0ZW1wRWxlbTogYW55W107XG5cbiAgZm9ybUVsZW1lbnRzJCA9IHRoaXMuZm9ybUVsZW1lbnRzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgc2VsZWN0ZWRFbGVtZW50JCA9IHRoaXMuc2VsZWN0ZWRFbGVtZW50U3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgc2VsZWN0SGVhZGVyU3ViamVjdCQgPSB0aGlzLnNlbGVjdEhlYWRlclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIGN1cnJlbnRFbGVtZW50OiBhbnk7XG4gIHNlbGVjdFRhYmxlQ29sdW1uOiBhbnk7XG4gIC8vIGJvb2s6IHsgYm9va1F1ZXN0aW9uc01hcDogeyB1bmlxdWVfaWQ6IHsgc3ViUXVlc3Rpb25zOiBhbnlbXTsgfTsgfTsgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBMb2FkIHNhdmVkIGVsZW1lbnRzIGZyb20gbG9jYWxTdG9yYWdlXG4gICAgdGhpcy5mb3JtRWxlbWVudHMgPSBbXTtcbiAgICBjb25zdCBzYXZlZEZvcm1FbGVtZW50cyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdmb3JtRWxlbWVudHMnKTtcbiAgICBpZiAoc2F2ZWRGb3JtRWxlbWVudHMpIHtcbiAgICAgIHRoaXMuZm9ybUVsZW1lbnRzID0gSlNPTi5wYXJzZShzYXZlZEZvcm1FbGVtZW50cyk7XG4gICAgICB0aGlzLmZvcm1FbGVtZW50c1N1YmplY3QubmV4dChbLi4udGhpcy5mb3JtRWxlbWVudHNdKTtcbiAgICAgIC8vIHRoaXMuYm9vayA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2Jvb2snKSB8fCAne30nKTtcbiAgICB9XG4gIH1cbiAgaW50aWFsaXplQm9vayhib29rOiBhbnkpIHtcbiAgICB0aGlzLmJvb2sgPSBib29rO1xuICAgIC8vIEFQIDEzTUFSMjUgLSBHZXQgdGhlIHVuaXF1ZSBpZCBpbiB0aGUgYm9va1F1ZXN0aW9uc01hcCBcbiAgICB0aGlzLnVuaXF1ZV9pZCA9IE9iamVjdC5rZXlzKGJvb2suYm9va1F1ZXN0aW9uc01hcClbMF07XG5cbiAgfVxuICBuZXdCb29rKCkge1xuICAgIHRoaXMudW5pcXVlX2lkID0gdXVpZHY0KCk7XG4gICAgdGhpcy5ib29rID0ge1xuICAgICAgJ2Jvb2tRdWVzdGlvbnNNYXAnOiB7XG4gICAgICAgIFt0aGlzLnVuaXF1ZV9pZF06IHtcbiAgICAgICAgICAnc3ViUXVlc3Rpb25zJzogW10sXG4gICAgICAgICAgJ3R5cGUnOiAnQm9vaydcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICdxdWVzdGlvbmJvb2snOiB7XG4gICAgICAgIFwiYWN0aW9uXCI6IFwiW3tcXFwibmFtZVxcXCI6IFxcXCJDYW5jZWxcXFwiLCBcXFwiZXZlbnR0b2VtaXRcXFwiOiBcXFwiY2xvc2VcXFwiLCBcXFwiYWx0XFxcIjpcXFwiXFxcIn0se1xcXCJuYW1lXFxcIjogXFxcIlNhdmVcXFwiLCBcXFwiZXZlbnR0b2VtaXRcXFwiOiBcXFwic3VibWl0XFxcIiwgXFxcImFsdFxcXCI6XFxcIlxcXCIsXFxcImVuZHBvaW50XFxcIjpcXFwiXFxcIixcXFwibWV0aG9kXFxcIjpcXFwiUE9TVFxcXCJ9XVwiXG4gICAgICB9LFxuICAgICAgJ3JlY29yZHMnOiBbe1xuICAgICAgICAnaWQnOiB0aGlzLnVuaXF1ZV9pZCxcbiAgICAgICAgJ3RpdGxlJzogJ1VudGl0bGVkJyxcbiAgICAgICAgJ3N1YlF1ZXN0aW9ucyc6IFt7fV1cbiAgICAgIH1dXG4gICAgfVxuICB9XG4gIC8vIEFQIDI2RkVCMjUgLSBjbGVhciB0aGUgZm9ybSBlbGVtZW50cyBcbiAgY2xlYXJFbGVtZW50cygpIHtcbiAgICB0aGlzLmZvcm1FbGVtZW50cyA9IFtdO1xuICAgIHRoaXMuZm9ybUVsZW1lbnRzU3ViamVjdC5uZXh0KFsuLi50aGlzLmZvcm1FbGVtZW50c10pO1xuICB9XG4gIC8vIEdldCB0aGUgZWxlbWVudCBjb21wb25lbnQgcmVmZXJlbmNlXG4gIGdldEVsZW1lbnRDb21wb25lbnQoKTogRWxlbWVudENvbXBvbmVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRDb21wb25lbnQ7XG4gIH1cblxuICBzZXRFbGVtZW50Q29tcG9uZW50KGNvbXBvbmVudDogRWxlbWVudENvbXBvbmVudCkge1xuICAgIHRoaXMuZWxlbWVudENvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgfVxuXG4gIC8vIEFkZCBhIG5ldyBlbGVtZW50IHRvIHRoZSBmb3JtXG4gIGFkZEVsZW1lbnQoZWxlbWVudDogRm9ybUVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAoIWVsZW1lbnQub3B0aW9ucykge1xuICAgICAgZWxlbWVudC5vcHRpb25zID0gW107IC8vIG9wdGlvbnMgaXMgaW5pdGlhbGl6ZWRcbiAgICB9XG4gICAgZWxlbWVudFsncXVlc3Rpb25Cb29rSWQnXSA9IHRoaXMudW5pcXVlX2lkO1xuICAgIHRoaXMuZm9ybUVsZW1lbnRzLnB1c2goZWxlbWVudCk7XG4gICAgdGhpcy5mb3JtRWxlbWVudHNTdWJqZWN0Lm5leHQoWy4uLnRoaXMuZm9ybUVsZW1lbnRzXSk7XG4gIH1cbiAgLy8gU0tTMTNNQVIyNSBhZGQgdGFibGUgZWxlbWVudFxuICBhZGRUYWJsZUVsZW1lbnQoZWxlbWVudDogYW55KSB7XG4gICAgLy9TS1MxM01BUjI1IEVuc3VyZSBjdXJyZW50RWxlbWVudCBleGlzdHNcbiAgICBpZiAoIXRoaXMuY3VycmVudEVsZW1lbnQpIHJldHVybjtcbiAgICAvLyBDbG9uZSBlbGVtZW50cyBhcnJheVxuICAgIGNvbnN0IGVsZW1lbnRzID0gWy4uLnRoaXMuZ2V0RWxlbWVudHMoKV07XG5cbiAgICAvLyBTS1MxM01BUjI1IEZpbmQgdGhlIGVsZW1lbnQgYW5kIHVwZGF0ZSBpdHMgY29sdW1uc1xuICAgIGNvbnN0IGluZGV4ID0gZWxlbWVudHMuZmluZEluZGV4KGVsID0+IGVsLmlkID09PSB0aGlzLmN1cnJlbnRFbGVtZW50LmlkKTtcblxuICAgIC8vIENsb25lIGNvbHVtbnMgYXJyYXkgdG8gdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgY29uc3QgdXBkYXRlZENvbHVtbnMgPSBbLi4uKHRoaXMuZm9ybUVsZW1lbnRzW2luZGV4XS5jb2x1bW5zIHx8IFtdKSwgZWxlbWVudF07XG4gICAgbGV0IHRlbXBGaWVsZHNNZXRhID0ge1xuICAgICAgJ2xhYmVsJzogZWxlbWVudC5sYWJlbCxcbiAgICAgICdhcGlOYW1lJzogZWxlbWVudC5maWVsZE5hbWUsXG4gICAgICBcImlzZGVsZXRlZFwiOiBmYWxzZSxcbiAgICAgIFwib3JkZXJieWZsYWdcIjogZmFsc2UsXG4gICAgICBcImZpbHRlcmZsYWdcIjogZmFsc2UsXG4gICAgICBcIm91dHB1dEZsYWdcIjogdHJ1ZSxcbiAgICAgIFwiaXNjaGlsZFwiOiBmYWxzZSxcbiAgICAgIFwicmVzdWx0YW50ZmxhZ1wiOiBmYWxzZSxcbiAgICAgIFwic2VhcmNoZmxhZ1wiOiBmYWxzZSxcbiAgICAgIFwiZmxkVHlwZVwiOiBlbGVtZW50LnR5cGUsXG4gICAgICBcInJlYWRPbmx5XCI6IGZhbHNlLFxuICAgICAgXCJ1bmlxdWVJZGVudGlmaWVyXCI6IGVsZW1lbnQuaWRcbiAgICB9XG4gICAgbGV0IGZpZWxkc01ldGEgPSBbLi4uKHR5cGVvZiB0aGlzLmZvcm1FbGVtZW50c1tpbmRleF0uZmllbGRzTWV0YSA9PT0gJ29iamVjdCcgPyB0aGlzLmZvcm1FbGVtZW50c1tpbmRleF0uZmllbGRzTWV0YSB8fCBbe31dIDogSlNPTi5wYXJzZSh0aGlzLmZvcm1FbGVtZW50c1tpbmRleF0uZmllbGRzTWV0YSkpLCB0ZW1wRmllbGRzTWV0YV0gYXMgYW55O1xuICAgIGZpZWxkc01ldGEgPSBKU09OLnN0cmluZ2lmeShmaWVsZHNNZXRhKTtcblxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIGVsZW1lbnRzW2luZGV4XSA9IHsgLi4uZWxlbWVudHNbaW5kZXhdLCBjb2x1bW5zOiB1cGRhdGVkQ29sdW1ucywgZmllbGRzTWV0YTogZmllbGRzTWV0YSB9O1xuICAgIH1cblxuICAgIC8vIEVtaXQgdGhlIHVwZGF0ZWQgZm9ybSBlbGVtZW50c1xuICAgIC8vIHRoaXMuZm9ybUVsZW1lbnRzU3ViamVjdC5uZXh0KGVsZW1lbnRzKTtcbiAgICB0aGlzLmZvcm1FbGVtZW50cyA9IGVsZW1lbnRzO1xuICAgIHRoaXMuZm9ybUVsZW1lbnRzU3ViamVjdC5uZXh0KFsuLi50aGlzLmZvcm1FbGVtZW50c10pO1xuXG4gICAgLy8gTG9nIGZvciBkZWJ1Z2dpbmdcbiAgICAvLyBjb25zb2xlLmxvZyhcIlVwZGF0ZWQgZm9ybSBlbGVtZW50czpcIiwgIHRoaXMuZm9ybUVsZW1lbnRzKTtcbiAgfVxuXG4gIHVwZGF0ZUVsZW1lbnQoaW5kZXg6IG51bWJlciwgdXBkYXRlczogUGFydGlhbDxGb3JtRWxlbWVudD4pIHtcbiAgICBjb25zdCBlbGVtZW50cyA9IFsuLi50aGlzLmdldEVsZW1lbnRzKCldO1xuICAgIGlmIChlbGVtZW50c1tpbmRleF0pIHtcbiAgICAgIGVsZW1lbnRzW2luZGV4XSA9IHtcbiAgICAgICAgLi4uZWxlbWVudHNbaW5kZXhdLFxuICAgICAgICAuLi51cGRhdGVzLFxuICAgICAgICBvcHRpb25zOiB1cGRhdGVzLm9wdGlvbnMgfHwgZWxlbWVudHNbaW5kZXhdLm9wdGlvbnMgfHwgW10sXG4gICAgICB9O1xuICAgICAgdGhpcy5mb3JtRWxlbWVudHNTdWJqZWN0Lm5leHQoZWxlbWVudHMpO1xuICAgIH1cblxuICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgdGhpcy5mb3JtRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCB1cGRhdGVkRWxlbWVudCA9IHtcbiAgICAgICAgLi4udGhpcy5mb3JtRWxlbWVudHNbaW5kZXhdLFxuICAgICAgICAuLi51cGRhdGVzXG4gICAgICB9O1xuICAgICAgaWYgKHVwZGF0ZXMucmVxdWlyZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodXBkYXRlZEVsZW1lbnQucXVlc3Rpb25UZXh0KSB7XG4gICAgICAgICAgY29uc3QgcXVlc3Rpb25UZXh0ID0gdXBkYXRlZEVsZW1lbnQucXVlc3Rpb25UZXh0LnJlcGxhY2UoL1xccypcXCorJC8sICcnKTtcbiAgICAgICAgICB1cGRhdGVkRWxlbWVudC5xdWVzdGlvblRleHQgPSB1cGRhdGVzLnJlcXVpcmVkID8gYCR7cXVlc3Rpb25UZXh0fSAqYCA6IHF1ZXN0aW9uVGV4dDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxlbWVudHNbaW5kZXhdKSB7XG4gICAgICAgICAgZWxlbWVudHNbaW5kZXhdID0geyAuLi5lbGVtZW50c1tpbmRleF0sIC4uLnVwZGF0ZXMgfTtcbiAgICAgICAgICB0aGlzLmZvcm1FbGVtZW50cyA9IGVsZW1lbnRzO1xuICAgICAgICAgIHRoaXMuZm9ybUVsZW1lbnRzU3ViamVjdC5uZXh0KFsuLi50aGlzLmZvcm1FbGVtZW50c10pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEhhbmRsZSBzcGVjaWFsIGNhc2VzXG4gICAgICBpZiAodXBkYXRlcy5yZXF1aXJlZCA9PT0gdHJ1ZSAmJiB1cGRhdGVkRWxlbWVudC5xdWVzdGlvblRleHQgJiYgIXVwZGF0ZWRFbGVtZW50LnF1ZXN0aW9uVGV4dC5lbmRzV2l0aCgnKicpKSB7XG4gICAgICAgIHVwZGF0ZWRFbGVtZW50LnF1ZXN0aW9uVGV4dCA9IGAke3VwZGF0ZWRFbGVtZW50LnF1ZXN0aW9uVGV4dH0gKmA7XG4gICAgICB9IGVsc2UgaWYgKHVwZGF0ZXMucmVxdWlyZWQgPT09IGZhbHNlICYmIHVwZGF0ZWRFbGVtZW50LnF1ZXN0aW9uVGV4dCAmJiB1cGRhdGVkRWxlbWVudC5xdWVzdGlvblRleHQuZW5kc1dpdGgoJyonKSkge1xuICAgICAgICB1cGRhdGVkRWxlbWVudC5xdWVzdGlvblRleHQgPSB1cGRhdGVkRWxlbWVudC5xdWVzdGlvblRleHQuc2xpY2UoMCwgLTIpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZvcm1FbGVtZW50c1tpbmRleF0gPSB1cGRhdGVkRWxlbWVudDtcbiAgICAgIHRoaXMuZm9ybUVsZW1lbnRzU3ViamVjdC5uZXh0KFsuLi50aGlzLmZvcm1FbGVtZW50c10pO1xuICAgICAgLy8gbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2Zvcm1FbGVtZW50cycsIEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybUVsZW1lbnRzKSk7XG4gICAgfVxuICB9XG4gIHVwZGF0ZVRpdGxlKGV2ZW50OiBhbnkpIHtcbiAgICAvL0FQLTEwTUFSMjUgVXBkYXRlcyB0aGUgdGl0bGUgb2YgdGhlIGZpcnN0IHJlY29yZCBpbiB0aGUgYm9vayAgXG4gICAgdGhpcy5ib29rLnJlY29yZHNbMF0udGl0bGUgPSBldmVudDtcbiAgfVxuICBzZXRTZWxlY3RlZEVsZW1lbnQoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50U3ViamVjdC5uZXh0KGluZGV4KTtcbiAgICB0aGlzLmN1cnJlbnRFbGVtZW50ID0gdGhpcy5mb3JtRWxlbWVudHNbaW5kZXhdXG4gICAgdGhpcy5zZWxlY3RUYWJsZUNvbHVtbiA9IG51bGxcbiAgfVxuICAvLyBTS1MxOU1BUjI1IHNldCB0aGUgc2VsZWN0ZWQgdGFibGUgY29sdW1uXG4gIHNldFNlbGVjdGVkVGFibGVFbGVtZW50KGluZGV4OiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmN1cnJlbnRFbGVtZW50ID0gdGhpcy5mb3JtRWxlbWVudHNbaW5kZXhdXG4gICAgaWYgKHRoaXMuY3VycmVudEVsZW1lbnQ/LnR5cGUgPT09ICdUYWJsZScpIHtcbiAgICAgIHRoaXMuY3VycmVudEVsZW1lbnRbJ2ZpZWxkc01ldGEnXSA9IHR5cGVvZiB0aGlzLmN1cnJlbnRFbGVtZW50Py5maWVsZHNNZXRhID09PSAnb2JqZWN0JyA/IHRoaXMuY3VycmVudEVsZW1lbnQ/LmZpZWxkc01ldGEgOiBKU09OLnBhcnNlKHRoaXMuY3VycmVudEVsZW1lbnQuZmllbGRzTWV0YSB8fCBbe31dKTtcbiAgICB9XG4gICAgY29uc3QgZm91bmRJdGVtID0gdGhpcy5jdXJyZW50RWxlbWVudD8udHlwZSA9PT0gJ1RhYmxlJyA/IHRoaXMuY3VycmVudEVsZW1lbnRbJ2ZpZWxkc01ldGEnXS5maW5kKGl0ZW0gPT4gaXRlbVsnYXBpTmFtZSddID09PSBldmVudD8uY29sdW1uKSA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNlbGVjdFRhYmxlQ29sdW1uID0gZm91bmRJdGVtPy51bmlxdWVJZGVudGlmaWVyXG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnRTdWJqZWN0Lm5leHQoaW5kZXgpO1xuICB9XG4gIHJlbW92ZVNlbGVjdGVkVGFibGVFbGVtZW50KGluZGV4OiBudW1iZXIsIGV2ZW50OiBhbnkpIHtcbiAgICAvLyBjb25zb2xlLmxvZyhcImRkZFwiLGluZGV4LCBldmVudClcbiAgICB0aGlzLmN1cnJlbnRFbGVtZW50ID0gdGhpcy5mb3JtRWxlbWVudHNbaW5kZXhdO1xuXG4gICAgaWYgKHRoaXMuY3VycmVudEVsZW1lbnQ/LnR5cGUgPT09ICdUYWJsZScpIHtcbiAgICAgIHRoaXMuY3VycmVudEVsZW1lbnRbJ2ZpZWxkc01ldGEnXSA9IHR5cGVvZiB0aGlzLmN1cnJlbnRFbGVtZW50Py5maWVsZHNNZXRhID09PSAnb2JqZWN0JyA/IHRoaXMuY3VycmVudEVsZW1lbnQ/LmZpZWxkc01ldGEgOiBKU09OLnBhcnNlKHRoaXMuY3VycmVudEVsZW1lbnQuZmllbGRzTWV0YSB8fCAnW3t9XScpO1xuICAgICAgLy8gRmluZCB0aGUgaW5kZXggb2YgdGhlIGl0ZW1cbiAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMuY3VycmVudEVsZW1lbnRbJ2ZpZWxkc01ldGEnXS5maW5kSW5kZXgoaXRlbSA9PiBpdGVtWydhcGlOYW1lJ10gPT09IGV2ZW50Py5jb2x1bW4pO1xuICAgICAgLy8gUmVtb3ZlIHRoZSBpdGVtIGlmIGZvdW5kXG4gICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRFbGVtZW50WydmaWVsZHNNZXRhJ10uc3BsaWNlKGl0ZW1JbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0VGFibGVDb2x1bW4gPSBudWxsXG4gICAgdGhpcy5lbGVtZW50VXBkYXRlKGluZGV4LCB0aGlzLmN1cnJlbnRFbGVtZW50KVxuICB9XG4gIC8vIFNLUzE5TUFSMjUgZ2V0IHRoZSBzZWxlY3RlZCB0YWJsZSBjb2x1bW5cbiAgZ2V0U2VsZWN0VGFibGVDb2x1bW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0VGFibGVDb2x1bW47XG4gIH1cbiAgc2VsZWN0SGVhZGluZyhldmVudDogYW55KSB7XG4gICAgLy9BUC0xME1BUjI1IEVtaXRzIHRoZSBzZWxlY3RlZCBoZWFkaW5nIGV2ZW50ICBcbiAgICB0aGlzLnNlbGVjdEhlYWRlclN1YmplY3QubmV4dChldmVudCk7XG4gIH1cblxuXG4gIGdldEVsZW1lbnRzKCk6IEZvcm1FbGVtZW50W10ge1xuICAgIHJldHVybiB0aGlzLmZvcm1FbGVtZW50cy5tYXAoZWxlbWVudCA9PiAoe1xuICAgICAgLi4uZWxlbWVudCxcbiAgICAgIG9wdGlvbnM6IGVsZW1lbnQub3B0aW9ucyB8fCBbXSxcbiAgICB9KSk7XG4gIH1cbiAgc29ydEVsZW1lbnRzQnlPcmRlcigpOiB2b2lkIHtcbiAgICAvL0FQLTEwTUFSMjUgU29ydCBlbGVtZW50cyBieSBjdXJyZW50IG9yZGVyXG4gICAgdGhpcy5mb3JtRWxlbWVudHMuc29ydCgoYSwgYikgPT4gYS5xdWVzdGlvbk51bWJlciAtIGIucXVlc3Rpb25OdW1iZXIpO1xuICAgIHRoaXMuZm9ybUVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XG4gICAgICBlbGVtZW50LnF1ZXN0aW9uTnVtYmVyID0gaW5kZXggKyAxO1xuICAgIH0pO1xuICAgIHRoaXMuZm9ybUVsZW1lbnRzU3ViamVjdC5uZXh0KFsuLi50aGlzLmZvcm1FbGVtZW50c10pO1xuICB9XG4gIC8vQVAtMTBNQVIyNSBSZXR1cm5zIHRoZSBjdXJyZW50IGJvb2sgZGF0YSAgXG4gIGdldEJvb2soKSB7XG4gICAgcmV0dXJuIHRoaXMuYm9vaztcbiAgfVxuICAvLyBJbiBGb3JtQnVpbGRlclNlcnZpY2VcbiAgZG93bmxvYWRFbGVtZW50KCkge1xuICAgIHRoaXMuYm9vay5ib29rUXVlc3Rpb25zTWFwW3RoaXMudW5pcXVlX2lkXS5zdWJRdWVzdGlvbnMgPSB0aGlzLmZvcm1FbGVtZW50cztcbiAgICBjb25zb2xlLmxvZygnYm9vaycsIHRoaXMuYm9vayk7XG4gICAgbGV0IHRlbXBFbGVtZW50OiBhbnkgPSB7fTtcblxuICAgIHRoaXMuZm9ybUVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09ICdEcm9wZG93bicgfHwgZWxlbWVudC50eXBlID09PSAnUmFkaW8nIHx8IGVsZW1lbnQudHlwZSA9PT0gJ0NoZWNrYm94Jykge1xuICAgICAgICAvL0FQIDI1RkVCMjUgLSBTdG9yZSB0aGUgZW50aXJlIHF1ZXN0aW9uIHdpdGggaXRzIG9wdGlvbnMgdW5kZXIgaXRzIElEXG4gICAgICAgIHRlbXBFbGVtZW50W2VsZW1lbnQuaWRdID0ge1xuICAgICAgICAgIC4uLmVsZW1lbnQsXG4gICAgICAgICAgb3B0aW9uczogZWxlbWVudC5vcHRpb25zIHx8IFtdXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmJvb2suc3FPcHRpb25zID0gdGVtcEVsZW1lbnQ7XG4gICAgcmV0dXJuIHRoaXMuYm9vaztcbiAgfVxuICAvLyBBUC0wNk1BUjI1IC0gRWxlbWVudCBuZXcgb3JkZXIgdXBkYXRlXG4gIHVwZGF0ZUVsZW1lbnRzT3JkZXIodXBkYXRlZEVsZW1lbnRzOiBGb3JtRWxlbWVudFtdKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtRWxlbWVudHMgPSBbLi4udXBkYXRlZEVsZW1lbnRzXTtcbiAgICB0aGlzLmZvcm1FbGVtZW50c1N1YmplY3QubmV4dCh0aGlzLmZvcm1FbGVtZW50cyk7XG4gIH1cbiAgLy8gUmVtb3ZlIGFuIGVsZW1lbnQgYnkgSURcbiAgLy8gU2F2ZSBlbGVtZW50cyB0byBsb2NhbFN0b3JhZ2UgYW5kIHVwZGF0ZSB0aGUgc3ViamVjdFxuICByZW1vdmVFbGVtZW50Q29tcG9uZW50KGlkOiBhbnkpIHtcbiAgICB0aGlzLnRlbXBFbGVtID0gW107XG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnRTdWJqZWN0Lm5leHQobnVsbCk7XG4gICAgdGhpcy5jdXJyZW50RWxlbWVudCA9IHt9XG4gICAgdGhpcy5mb3JtRWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICBpZiAoZWxlbWVudC5pZCAhPT0gaWQpIHtcbiAgICAgICAgdGhpcy50ZW1wRWxlbS5wdXNoKGVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZm9ybUVsZW1lbnRzID0gdGhpcy50ZW1wRWxlbTtcbiAgICAvLyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZm9ybUVsZW1lbnRzJywgSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtRWxlbWVudHMpKTtcbiAgICB0aGlzLmZvcm1FbGVtZW50c1N1YmplY3QubmV4dChbLi4udGhpcy5mb3JtRWxlbWVudHNdKTtcbiAgfVxuICAvLyBTS1MxOU1BUjI1IHVwZGF0ZSB0aGUgZWxlbWVudFxuICBlbGVtZW50VXBkYXRlKGluZGV4OiBhbnksIGVsZW1lbnQ6IGFueSkge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gWy4uLnRoaXMuZ2V0RWxlbWVudHMoKV07XG4gICAgaWYgKGVsZW1lbnRzW2luZGV4XSkge1xuICAgICAgZWxlbWVudHNbaW5kZXhdID0gZWxlbWVudFxuICAgICAgdGhpcy5mb3JtRWxlbWVudHMgPSBlbGVtZW50cztcbiAgICAgIHRoaXMuZm9ybUVsZW1lbnRzU3ViamVjdC5uZXh0KFsuLi5lbGVtZW50c10pO1xuICAgICAgdGhpcy5zZWxlY3RlZEVsZW1lbnRTdWJqZWN0Lm5leHQoaW5kZXgpO1xuICAgIH1cbiAgfVxufVxuIl19
|