@huntsman-cancer-institute/reporting-framework 15.1.1 → 15.2.0
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/model/param.model.mjs +7 -2
- package/esm2020/parameter/parameter.component.mjs +17 -1
- package/esm2020/reporting-framework.component.mjs +7 -1
- package/fesm2015/huntsman-cancer-institute-reporting-framework.mjs +28 -1
- package/fesm2015/huntsman-cancer-institute-reporting-framework.mjs.map +1 -1
- package/fesm2020/huntsman-cancer-institute-reporting-framework.mjs +28 -1
- package/fesm2020/huntsman-cancer-institute-reporting-framework.mjs.map +1 -1
- package/model/param.model.d.ts +3 -0
- package/package.json +1 -1
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
export class Param {
|
|
2
2
|
constructor() {
|
|
3
3
|
this.activeOnly = true;
|
|
4
|
+
this.sortNumeric = false;
|
|
5
|
+
this.filterField = "";
|
|
4
6
|
this.options = [];
|
|
5
7
|
this.selectedValueList = []; //for multi-select
|
|
6
8
|
}
|
|
7
9
|
calculateDictionaryURL() {
|
|
8
|
-
|
|
10
|
+
let out = "";
|
|
9
11
|
if (this.activeOnly) {
|
|
10
12
|
out = this.dictAPILeadIn + "/" + this.className + "/active-entries";
|
|
11
13
|
}
|
|
12
14
|
else {
|
|
13
15
|
out = this.dictAPILeadIn + "/" + this.className + "/entries";
|
|
14
16
|
}
|
|
17
|
+
if (this.filterField) {
|
|
18
|
+
out = out + "?" + this.filterField;
|
|
19
|
+
}
|
|
15
20
|
return out;
|
|
16
21
|
}
|
|
17
22
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRpbmctZnJhbWV3b3JrL3NyYy9tb2RlbC9wYXJhbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sS0FBSztJQUFsQjtRQVFXLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFHM0IsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFFekIsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUd2QixzQkFBaUIsR0FBVSxFQUFFLENBQUMsQ0FBQyxrQkFBa0I7SUFrQjVELENBQUM7SUFmVSxzQkFBc0I7UUFDM0IsSUFBSSxHQUFHLEdBQVcsRUFBRSxDQUFDO1FBRXJCLElBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNsQixHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQztTQUNyRTthQUFLO1lBQ0osR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO1NBQzlEO1FBRUQsSUFBRyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDcEM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T3B0aW9ufSBmcm9tIFwiLi9vcHRpb24ubW9kZWxcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBQYXJhbSB7XHJcblxyXG4gICAgcHVibGljIGNhcHRpb246IHN0cmluZztcclxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdHlwZTogc3RyaW5nO1xyXG4gICAgcHVibGljIGNsYXNzTmFtZTogc3RyaW5nO1xyXG4gICAgcHVibGljIHZhbHVlWFBhdGg6IHN0cmluZztcclxuICAgIHB1YmxpYyBkaXNwbGF5WFBhdGg6IHN0cmluZztcclxuICAgIHB1YmxpYyBhY3RpdmVPbmx5OiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHB1YmxpYyBkaXNwbGF5T3JkZXI6IG51bWJlcjtcclxuICAgIHB1YmxpYyBzb3J0RmllbGQ6IHN0cmluZztcclxuICAgIHB1YmxpYyBzb3J0TnVtZXJpYzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGZpbHRlckZpZWxkOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIHB1YmxpYyBvcHRpb25zOiBPcHRpb25bXSA9IFtdO1xyXG5cclxuICAgIHB1YmxpYyBzZWxlY3RlZFZhbHVlOiBhbnk7XHJcbiAgICBwdWJsaWMgc2VsZWN0ZWRWYWx1ZUxpc3Q6IGFueVtdID0gW107IC8vZm9yIG11bHRpLXNlbGVjdFxyXG4gICAgcHVibGljIGRpY3RBUElMZWFkSW46IHN0cmluZztcclxuXHJcbiAgICBwdWJsaWMgY2FsY3VsYXRlRGljdGlvbmFyeVVSTCgpOiBzdHJpbmcge1xyXG4gICAgICBsZXQgb3V0OiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgICAgaWYodGhpcy5hY3RpdmVPbmx5KSB7XHJcbiAgICAgICAgb3V0ID0gdGhpcy5kaWN0QVBJTGVhZEluICsgXCIvXCIgKyB0aGlzLmNsYXNzTmFtZSArIFwiL2FjdGl2ZS1lbnRyaWVzXCI7XHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICBvdXQgPSB0aGlzLmRpY3RBUElMZWFkSW4gKyBcIi9cIiArIHRoaXMuY2xhc3NOYW1lICsgXCIvZW50cmllc1wiO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZih0aGlzLmZpbHRlckZpZWxkKSB7XHJcbiAgICAgICAgb3V0ID0gb3V0ICsgXCI/XCIgKyB0aGlzLmZpbHRlckZpZWxkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gb3V0O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -55,6 +55,8 @@ ParameterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
55
55
|
[name]="param.name"
|
|
56
56
|
[idKey]="param.valueXPath"
|
|
57
57
|
[displayKey]="param.displayXPath"
|
|
58
|
+
[sortKey]="param.sortField"
|
|
59
|
+
[sortNumeric]="param.sortNumeric"
|
|
58
60
|
[(ngModel)]="param.selectedValue"
|
|
59
61
|
[url]="param.calculateDictionaryURL()"
|
|
60
62
|
></hci-native-select>
|
|
@@ -71,6 +73,8 @@ ParameterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
71
73
|
[id]="param.name"
|
|
72
74
|
[name]="param.name"
|
|
73
75
|
[(ngModel)]="param.selectedValue"
|
|
76
|
+
[sortKey]="param.sortField"
|
|
77
|
+
[sortNumeric]="param.sortNumeric"
|
|
74
78
|
[entries] = "entries"
|
|
75
79
|
></hci-native-select>
|
|
76
80
|
</div>
|
|
@@ -87,6 +91,8 @@ ParameterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
87
91
|
[name]="param.name"
|
|
88
92
|
[idKey]="param.valueXPath"
|
|
89
93
|
[displayKey]="param.displayXPath"
|
|
94
|
+
[sortKey]="param.sortField"
|
|
95
|
+
[sortNumeric]="param.sortNumeric"
|
|
90
96
|
[(ngModel)]="param.selectedValueList"
|
|
91
97
|
[url]="param.calculateDictionaryURL()"
|
|
92
98
|
>
|
|
@@ -104,6 +110,8 @@ ParameterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
104
110
|
[id]="param.name"
|
|
105
111
|
[name]="param.name"
|
|
106
112
|
[entries] = "entries"
|
|
113
|
+
[sortKey]="param.sortField"
|
|
114
|
+
[sortNumeric]="param.sortNumeric"
|
|
107
115
|
[(ngModel)]="param.selectedValueList"
|
|
108
116
|
>
|
|
109
117
|
</hci-md-multi-select>
|
|
@@ -173,6 +181,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
173
181
|
[name]="param.name"
|
|
174
182
|
[idKey]="param.valueXPath"
|
|
175
183
|
[displayKey]="param.displayXPath"
|
|
184
|
+
[sortKey]="param.sortField"
|
|
185
|
+
[sortNumeric]="param.sortNumeric"
|
|
176
186
|
[(ngModel)]="param.selectedValue"
|
|
177
187
|
[url]="param.calculateDictionaryURL()"
|
|
178
188
|
></hci-native-select>
|
|
@@ -189,6 +199,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
189
199
|
[id]="param.name"
|
|
190
200
|
[name]="param.name"
|
|
191
201
|
[(ngModel)]="param.selectedValue"
|
|
202
|
+
[sortKey]="param.sortField"
|
|
203
|
+
[sortNumeric]="param.sortNumeric"
|
|
192
204
|
[entries] = "entries"
|
|
193
205
|
></hci-native-select>
|
|
194
206
|
</div>
|
|
@@ -205,6 +217,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
205
217
|
[name]="param.name"
|
|
206
218
|
[idKey]="param.valueXPath"
|
|
207
219
|
[displayKey]="param.displayXPath"
|
|
220
|
+
[sortKey]="param.sortField"
|
|
221
|
+
[sortNumeric]="param.sortNumeric"
|
|
208
222
|
[(ngModel)]="param.selectedValueList"
|
|
209
223
|
[url]="param.calculateDictionaryURL()"
|
|
210
224
|
>
|
|
@@ -222,6 +236,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
222
236
|
[id]="param.name"
|
|
223
237
|
[name]="param.name"
|
|
224
238
|
[entries] = "entries"
|
|
239
|
+
[sortKey]="param.sortField"
|
|
240
|
+
[sortNumeric]="param.sortNumeric"
|
|
225
241
|
[(ngModel)]="param.selectedValueList"
|
|
226
242
|
>
|
|
227
243
|
</hci-md-multi-select>
|
|
@@ -249,4 +265,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
249
265
|
|
|
250
266
|
`, styles: [".data-label{width:270px;margin-right:30px;display:flex;align-items:center;justify-content:flex-end}.date-input{width:45%}.report-select,.multi-report-select{flex-grow:unset!important;width:45%}.radio-pair{display:flex;align-items:center;padding-right:5px;margin-right:15px}.input-field{width:45%}\n"] }]
|
|
251
267
|
}] });
|
|
252
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
268
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydGluZy1mcmFtZXdvcmsvc3JjL3BhcmFtZXRlci9wYXJhbWV0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7OztBQXNLeEMsTUFBTSxPQUFPLGtCQUFrQjtJQUszQixRQUFRLENBQUMsQ0FBUTtRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRWYsSUFBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsRUFBRSxvQ0FBb0M7WUFDcEUsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUNwQztJQUNILENBQUM7O2dIQVpRLGtCQUFrQjtvR0FBbEIsa0JBQWtCLHFEQWhLakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTJIVDs0RkFxQ1Esa0JBQWtCO2tCQWxLOUIsU0FBUzsrQkFDSSxlQUFlLFlBQ2Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTJIVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1BhcmFtfSBmcm9tIFwiLi4vbW9kZWwvcGFyYW0ubW9kZWxcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImhjaS1wYXJhbWV0ZXJcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcblxyXG4gICAgICA8IS0tVGV4dCBJbnB1dC0tPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFyYW0udHlwZSA9PT0gJ2lucHV0J1wiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZGF0YS1sYWJlbFwiPnt7cGFyYW0uY2FwdGlvbn19OjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LWZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgIFtpZF09XCJwYXJhbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInBhcmFtLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwYXJhbS5zZWxlY3RlZFZhbHVlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLURhdGUtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcmFtLnR5cGUgPT09ICdkYXRlJ1wiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZGF0YS1sYWJlbFwiPnt7cGFyYW0uY2FwdGlvbn19OjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxyZXBvcnQtZGF0ZXBpY2tlciBjbGFzcz1cImRhdGUtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ7e3BhcmFtLm5hbWV9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJwYXJhbS5zZWxlY3RlZFZhbHVlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L3JlcG9ydC1kYXRlcGlja2VyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLVNlbGVjdCB3aXRoIGRpY3Rpb25hcnktLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcmFtLnR5cGUgPT09ICdzZWxlY3QnICYmIHBhcmFtLmNsYXNzTmFtZSAmJiBwYXJhbS5jbGFzc05hbWUgIT0gJydcIj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImRhdGEtbGFiZWxcIj57e3BhcmFtLmNhcHRpb259fTo8L2xhYmVsPlxyXG4gICAgICAgICAgICA8aGNpLW5hdGl2ZS1zZWxlY3QgY2xhc3M9XCJyZXBvcnQtc2VsZWN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJwYXJhbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInBhcmFtLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkS2V5XT1cInBhcmFtLnZhbHVlWFBhdGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlLZXldPVwicGFyYW0uZGlzcGxheVhQYXRoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3J0S2V5XT1cInBhcmFtLnNvcnRGaWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc29ydE51bWVyaWNdPVwicGFyYW0uc29ydE51bWVyaWNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwYXJhbS5zZWxlY3RlZFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1cmxdPVwicGFyYW0uY2FsY3VsYXRlRGljdGlvbmFyeVVSTCgpXCJcclxuICAgICAgICAgICAgPjwvaGNpLW5hdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8IS0tU2VsZWN0IHdpdGggbWFudWFsIG9wdGlvbnMtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcmFtLnR5cGUgPT09ICdzZWxlY3QnICYmICghcGFyYW0uY2xhc3NOYW1lIHx8IHBhcmFtLmNsYXNzTmFtZSA9PT0gJycpXCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJkYXRhLWxhYmVsXCI+e3twYXJhbS5jYXB0aW9ufX06PC9sYWJlbD5cclxuICAgICAgICAgICAgPGhjaS1uYXRpdmUtc2VsZWN0IGNsYXNzPVwicmVwb3J0LXNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwicGFyYW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJwYXJhbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGFyYW0uc2VsZWN0ZWRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc29ydEtleV09XCJwYXJhbS5zb3J0RmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NvcnROdW1lcmljXT1cInBhcmFtLnNvcnROdW1lcmljXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbnRyaWVzXSA9IFwiZW50cmllc1wiXHJcbiAgICAgICAgICAgID48L2hjaS1uYXRpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLU11bHRpLXNlbGVjdCB3aXRoIGRpY3Rpb25hcnktLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcmFtLnR5cGUgPT09ICdtdWx0aXNlbGVjdCcgJiYgcGFyYW0uY2xhc3NOYW1lICYmIHBhcmFtLmNsYXNzTmFtZSAhPSAnJ1wiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZGF0YS1sYWJlbFwiPnt7cGFyYW0uY2FwdGlvbn19OjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxoY2ktbWQtbXVsdGktc2VsZWN0IGNsYXNzPVwibXVsdGktcmVwb3J0LXNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgW2lkXT1cInBhcmFtLm5hbWVcIlxyXG4gICAgICAgICAgICAgIFtuYW1lXT1cInBhcmFtLm5hbWVcIlxyXG4gICAgICAgICAgICAgIFtpZEtleV09XCJwYXJhbS52YWx1ZVhQYXRoXCJcclxuICAgICAgICAgICAgICBbZGlzcGxheUtleV09XCJwYXJhbS5kaXNwbGF5WFBhdGhcIlxyXG4gICAgICAgICAgICAgIFtzb3J0S2V5XT1cInBhcmFtLnNvcnRGaWVsZFwiXHJcbiAgICAgICAgICAgICAgW3NvcnROdW1lcmljXT1cInBhcmFtLnNvcnROdW1lcmljXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInBhcmFtLnNlbGVjdGVkVmFsdWVMaXN0XCJcclxuICAgICAgICAgICAgICBbdXJsXT1cInBhcmFtLmNhbGN1bGF0ZURpY3Rpb25hcnlVUkwoKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9oY2ktbWQtbXVsdGktc2VsZWN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLU11bHRpLXNlbGVjdCB3aXRoIG1hbnVhbCBvcHRpb25zLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYXJhbS50eXBlID09PSAnbXVsdGlzZWxlY3QnICYmICghcGFyYW0uY2xhc3NOYW1lIHx8IHBhcmFtLmNsYXNzTmFtZSA9PT0gJycpXCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJkYXRhLWxhYmVsXCI+e3twYXJhbS5jYXB0aW9ufX06PC9sYWJlbD5cclxuICAgICAgICAgICAgPGhjaS1tZC1tdWx0aS1zZWxlY3QgY2xhc3M9XCJtdWx0aS1yZXBvcnQtc2VsZWN0XCJcclxuICAgICAgICAgICAgICBbaWRdPVwicGFyYW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgW25hbWVdPVwicGFyYW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgW2VudHJpZXNdID0gXCJlbnRyaWVzXCJcclxuICAgICAgICAgICAgICBbc29ydEtleV09XCJwYXJhbS5zb3J0RmllbGRcIlxyXG4gICAgICAgICAgICAgIFtzb3J0TnVtZXJpY109XCJwYXJhbS5zb3J0TnVtZXJpY1wiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwYXJhbS5zZWxlY3RlZFZhbHVlTGlzdFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9oY2ktbWQtbXVsdGktc2VsZWN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLVJhZGlvIGJ1dHRvbnMtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcmFtLnR5cGUgPT09ICdyYWRpbydcIj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImRhdGEtbGFiZWxcIj57e3BhcmFtLmNhcHRpb259fTo8L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFkaW8tcGFpclwiICpuZ0Zvcj1cImxldCBvIG9mIHBhcmFtLm9wdGlvbnNcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDNweDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiby52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJwYXJhbS5uYW1lICsgJy0nICsgby52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGFyYW0uc2VsZWN0ZWRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInBhcmFtLm5hbWVcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwie3twYXJhbS5uYW1lICsgJy0nICsgby52YWx1ZX19XCI+e3tvLmRpc3BsYXl9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtgXHJcblxyXG4gICAgICAuZGF0YS1sYWJlbHtcclxuICAgICAgICB3aWR0aDogMjcwcHg7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZGF0ZS1pbnB1dHtcclxuICAgICAgICB3aWR0aDogNDUlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAucmVwb3J0LXNlbGVjdHtcclxuICAgICAgICBmbGV4LWdyb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgd2lkdGg6IDQ1JTtcclxuICAgIH1cclxuXHJcbiAgICAubXVsdGktcmVwb3J0LXNlbGVjdHtcclxuICAgICAgICBmbGV4LWdyb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgd2lkdGg6IDQ1JTtcclxuICAgIH1cclxuXHJcbiAgICAucmFkaW8tcGFpcntcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcclxuICAgIH1cclxuXHJcbiAgICAuaW5wdXQtZmllbGR7XHJcbiAgICAgICAgd2lkdGg6IDQ1JVxyXG4gICAgfVxyXG4gICAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBhcmFtZXRlckNvbXBvbmVudCB7XHJcblxyXG4gICAgcGFyYW06IFBhcmFtO1xyXG4gICAgZW50cmllczogYW55W107XHJcblxyXG4gICAgc2V0UGFyYW0ocDogUGFyYW0pIHtcclxuICAgICAgdGhpcy5wYXJhbSA9IHA7XHJcblxyXG4gICAgICBpZih0aGlzLnBhcmFtLnR5cGUgPT09IFwicmFkaW9cIikgeyAvL2lmIHJhZGlvLCBhdXRvIHNlbGVjdCBmaXJzdCBvcHRpb25cclxuICAgICAgICBsZXQgbyA9IHRoaXMucGFyYW0ub3B0aW9uc1swXTtcclxuICAgICAgICB0aGlzLnBhcmFtLnNlbGVjdGVkVmFsdWUgPSBvLnZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -129,12 +129,18 @@ export class ReportingFrameworkComponent {
|
|
|
129
129
|
newParam.displayXPath = p.displayXPath;
|
|
130
130
|
newParam.displayOrder = p.displayOrder;
|
|
131
131
|
newParam.activeOnly = p.activeOnly;
|
|
132
|
+
newParam.sortField = p.sortField;
|
|
133
|
+
newParam.sortNumeric = p.sortNumeric;
|
|
134
|
+
newParam.filterField = p.filterField;
|
|
132
135
|
if (newParam.valueXPath) {
|
|
133
136
|
newParam.valueXPath = newParam.valueXPath.replace("@", "");
|
|
134
137
|
}
|
|
135
138
|
if (newParam.displayXPath) {
|
|
136
139
|
newParam.displayXPath = newParam.displayXPath.replace("@", "");
|
|
137
140
|
}
|
|
141
|
+
if (newParam.sortField) {
|
|
142
|
+
newParam.sortField = newParam.sortField.replace("@", "");
|
|
143
|
+
}
|
|
138
144
|
let options = p.options;
|
|
139
145
|
if (options) {
|
|
140
146
|
for (let o of options) {
|
|
@@ -624,4 +630,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
624
630
|
type: ViewChild,
|
|
625
631
|
args: ["formatContainer", { read: ViewContainerRef, static: false }]
|
|
626
632
|
}] } });
|
|
627
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0aW5nLWZyYW1ld29yay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRpbmctZnJhbWV3b3JrL3NyYy9yZXBvcnRpbmctZnJhbWV3b3JrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHdCQUF3QixFQUN4QixLQUFLLEVBRUwsU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDekUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7QUFxSXpELE1BQU0sT0FBTywyQkFBMkI7SUFvQ3BDLFlBQW9CLElBQWdCLEVBQ2hCLFFBQWtDLEVBQ2xDLFFBQWtCLEVBQ2xCLGNBQThCLEVBQzlCLFlBQXNC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Q0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVnRSxjQUFjO3NCQUFuRixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ0csZUFBZTtzQkFBckYsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeSxcclxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmLFxyXG4gICAgSW5wdXQsIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBQYXJhbXN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQge1JlcG9ydH0gZnJvbSBcIi4vbW9kZWwvcmVwb3J0Lm1vZGVsXCI7XHJcbmltcG9ydCB7UGFyYW19IGZyb20gXCIuL21vZGVsL3BhcmFtLm1vZGVsXCI7XHJcbmltcG9ydCB7UGFyYW1ldGVyQ29tcG9uZW50fSBmcm9tIFwiLi9wYXJhbWV0ZXIvcGFyYW1ldGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge09wdGlvbn0gZnJvbSBcIi4vbW9kZWwvb3B0aW9uLm1vZGVsXCI7XHJcbmltcG9ydCB7UmVwb3J0VGFifSBmcm9tIFwiLi9tb2RlbC9yZXBvcnQtdGFiLm1vZGVsXCI7XHJcbmltcG9ydCB7Rm9ybWF0fSBmcm9tIFwiLi9tb2RlbC9mb3JtYXQubW9kZWxcIjtcclxuaW1wb3J0IHtGb3JtYXRDb21wb25lbnR9IGZyb20gXCIuL2Zvcm1hdC9mb3JtYXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtNb2RhbERpc21pc3NSZWFzb25zLCBOZ2JNb2RhbH0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcbmltcG9ydCB7RGlhbG9nc1NlcnZpY2V9IGZyb20gXCIuL3NwaW5uZXIvZGlhbG9ncy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEdyaWRBcGkgfSBmcm9tIFwiYWctZ3JpZC1jb21tdW5pdHlcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiaGNpLXJlcG9ydGluZy1mcmFtZXdvcmtcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwMHZoXCI+XHJcbiAgICAgICAgPHJlc2l6YWJsZS1zZWN0aW9uLWRpdmlkZXIgY2xhc3M9XCJmbGV4LWdyb3ctMVwiIFtpc1ZlcnRpY2FsTGF5b3V0XT1cInRydWVcIj5cclxuICAgICAgICAgIDxkaXYgdG9wU2VjdGlvbiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGF1dG87XCI+XHJcbiAgICAgICAgICAgIDwhLS1jYW4gd3JhcCBqdXN0IHRoZSBncmlkIHdpdGggdGhlIHRhYnMtLT5cclxuICAgICAgICAgICAgPG1hdC10YWItZ3JvdXAgKm5nSWY9XCJ0YWJMaXN0Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cInt7dGFiLnRpdGxlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICA8YWctZ3JpZC1hbmd1bGFyXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gZnVsbC13aWR0aCBmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJ0aGlzLm9uVGFiYmVkR3JpZFJlYWR5KCRldmVudCwgdGFiLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwidGhpcy5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Jvd1NlbGVjdGlvbl09XCInc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKHJvd1NlbGVjdGVkKT1cInNldFNlbGVjdGVkUm93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmcmFtZXdvcmtDb21wb25lbnRzXT1cImZyYW1ld29ya0NvbXBvbmVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyb3dEYXRhXT1cInRhYmJlZEdyaWRMaXN0W3RhYi5uYW1lXVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICAgICAgICA8L21hdC10YWItZ3JvdXA+XHJcblxyXG4gICAgICAgICAgICA8IS0tbmdiLXRhYnNldCAqbmdJZj1cInRhYkxpc3QubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Ryb3lPbkhpZGU9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0YWJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICNyZXBvcnRUYWJTZXQ9XCJuZ2JUYWJzZXRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPG5nYi10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBpZD1cInt7dGFiLm5hbWV9fVwiIHRpdGxlPVwie3t0YWIudGl0bGV9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJib3JkZXI6IDVweCBzb2xpZDtcIiA+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiVGFiQ29udGVudCA+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8YWctZ3JpZC1hbmd1bGFyXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gZnVsbC13aWR0aCBmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJ0aGlzLm9uVGFiYmVkR3JpZFJlYWR5KCRldmVudCwgdGFiLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwidGhpcy5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Jvd1NlbGVjdGlvbl09XCInc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKHJvd1NlbGVjdGVkKT1cInNldFNlbGVjdGVkUm93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmcmFtZXdvcmtDb21wb25lbnRzXT1cImZyYW1ld29ya0NvbXBvbmVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyb3dEYXRhXT1cInRhYmJlZEdyaWRMaXN0W3RhYi5uYW1lXVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9uZ2ItdGFiPlxyXG5cclxuICAgICAgICAgICAgPC9uZ2ItdGFic2V0LS0+XHJcblxyXG4gICAgICAgICAgICA8YWctZ3JpZC1hbmd1bGFyICpuZ0lmPVwidGFiTGlzdC5sZW5ndGggPD0gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gZnVsbC13aWR0aCBmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJ0aGlzLm9uTWFpbkdyaWRSZWFkeSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwidGhpcy5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jvd1NlbGVjdGlvbl09XCInc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJvd1NlbGVjdGVkKT1cInNldFNlbGVjdGVkUm93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmcmFtZXdvcmtDb21wb25lbnRzXT1cImZyYW1ld29ya0NvbXBvbmVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3dEYXRhXT1cImZ1bGxHcmlkTGlzdFwiPlxyXG4gICAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBib3R0b21TZWN0aW9uIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCIgc3R5bGU9XCJoZWlnaHQ6IDgwJTsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBhdXRvO1wiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDI1cHg7IGZvbnQtd2VpZ2h0OiBib2xkXCI+e3tzZWxlY3RlZFJlcG9ydC50aXRsZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiAqbmdJZj1cInNlbGVjdGVkUmVwb3J0LmhlbHAgJiYgc2VsZWN0ZWRSZXBvcnQuaGVscCAhPSAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSGVscChjb250ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1xdWVzdGlvbi1jaXJjbGVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDx0ZW1wbGF0ZSAjcGFyYW1Db250YWluZXI+PC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY2VudGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPHRlbXBsYXRlICNmb3JtYXRDb250YWluZXI+PC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzZWxlY3RlZFJlcG9ydC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUnVuUmVwb3J0KClcIlxyXG4gICAgICAgICAgICAgICAgPlJ1biBSZXBvcnQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3Jlc2l6YWJsZS1zZWN0aW9uLWRpdmlkZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnQgbGV0LW1vZGFsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJoZWxwLW1vZGVsLXRpdGxlXCI+UmVwb3J0IEhlbHA8L2g0PlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKCdDcm9zcyBjbGljaycpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBbaW5uZXJIVE1MXT1cInNlbGVjdGVkUmVwb3J0LmhlbHBcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoJ09rIGNsaWNrJylcIj5PSzwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtgXHJcbiAgICAgIDpob3N0IDo6bmctZGVlcCAubWF0LXRhYi1ib2R5LXdyYXBwZXJ7XHJcbiAgICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgICA6aG9zdCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWx7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk4YzdlMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgOmhvc3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsLWFjdGl2ZXtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVmNGZmO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAucmVwb3J0LWRldGFpbHN7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuY2VudGVyLXJvd3tcclxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2MHZ3O1xyXG4gICAgICB9XHJcbiAgICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwb3J0aW5nRnJhbWV3b3JrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIEBJbnB1dCgpIG1hbmFnZVJlcG9ydFVybDogc3RyaW5nOyAvLyAvYXJ0YWRtaW4vbGVnYWN5L2FwaS9oY2kuYXJ0YWRtaW4uY29udHJvbGxlci5NYW5hZ2VSZXBvcnRzXHJcbiAgICBASW5wdXQoKSBjb21tYW5kUHJlZml4OiBzdHJpbmc7IC8vICAvYXJ0YWRtaW4vbGVnYWN5L2FwaS9qc3BcclxuICAgIEBJbnB1dCgpIGRpY3RBUElMZWFkSW46IHN0cmluZzsgLy8gL2FydGFkbWluL2FwaS9kaWN0aW9uYXJpZXNcclxuICAgIEBJbnB1dCgpIHJlcG9ydHNCeVR5cGU6IHN0cmluZzsgLy9vcHRpb25hbC4gdXN1YWxseSBcImdsb2JhbFwiIG9yIFwicGF0aWVudFwiXHJcblxyXG4gICAgQFZpZXdDaGlsZChcInBhcmFtQ29udGFpbmVyXCIsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlfSkgcGFyYW1Db250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgICBAVmlld0NoaWxkKFwiZm9ybWF0Q29udGFpbmVyXCIsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlfSkgZm9ybWF0Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICAgIGZ1bGxHcmlkTGlzdDogYW55W10gPSBbXTtcclxuICAgIHRhYmJlZEdyaWRMaXN0OiBhbnkgPSB7fTtcclxuXHJcblxyXG4gICAgZ3JpZE9wdGlvbnMgPSB7XHJcbiAgICAgIHJvd1N0eWxlOiB7XHJcbiAgICAgICAgXCJmb250LWZhbWlseVwiOiBcIlByb21wdCwgc2Fucy1zZXJpZlwiXHJcbiAgICAgIH0sXHJcbiAgICAgIHJvd0hlaWdodDogMjAsXHJcbiAgICAgIGVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uOiB0cnVlLFxyXG4gICAgICBlbnN1cmVEb21PcmRlcjogdHJ1ZVxyXG4gICAgfTsgLy9lbmFibGVDZWxsVGV4dFNlbGVjdGlvbiBzaG91bGQgYmUgY29tYmluZWQgd2l0aCBlbnN1cmVEb21PcmRlclxyXG4gICAgZnJhbWV3b3JrQ29tcG9uZW50czogYW55O1xyXG5cclxuICAgIG1haW5HcmlkQXBpOiBHcmlkQXBpO1xyXG4gICAgdGFiYmVkR3JpZEFwaUxpc3Q6IGFueSA9IHt9OyAvL2EgbWFwIG9mIEdyaWRBUElzIHRvIHRhYiBuYW1lc1xyXG5cclxuICAgIHJlcG9ydExpc3Q6IFJlcG9ydFtdID0gW107XHJcbiAgICB0YWJMaXN0OiBSZXBvcnRUYWJbXSA9IFtdO1xyXG4gICAgdGFiVHlwZU5hbWVMb29rdXA6IGFueSA9IHt9OyAvL2Ega2luZCBvZiBkaWN0IHRoYXQgbWFwcyB0aGUgdGFiIG9yIHR5cGUgdG8gdGhlIHRhYi1uYW1lXHJcblxyXG4gICAgc2VsZWN0ZWRSZXBvcnQ6IFJlcG9ydCA9IG5ldyBSZXBvcnQoKTtcclxuICAgIHNlbGVjdGVkRm9ybWF0OiBzdHJpbmc7XHJcbiAgICBkaXNwbGF5ZWRQYXJhbUNvbXBvbmVudFJlZnM6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcclxuICAgIGRpc3BsYXllZEZvcm1hdENvbXBvbmVudFJlZnM6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgZGlhbG9nc1NlcnZpY2U6IERpYWxvZ3NTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5tYW5hZ2VSZXBvcnRVcmwgIT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5odHRwLmdldCh0aGlzLm1hbmFnZVJlcG9ydFVybCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwiYWN0aW9uXCIsIFwibG9hZFdpdGhQYXJhbXNcIilcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3ApO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0ZW1wbGlzdCA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0ZW1wVGFiYmVkR3JpZExpc3QgPSB7fTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhYmxpc3QgPSByZXNwW1wicmVwb3J0VGFic1wiXTtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCByb3cgb2YgdGFibGlzdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGFiOiBSZXBvcnRUYWIgPSBuZXcgUmVwb3J0VGFiKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5uYW1lID0gcm93Lm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi50aXRsZSA9IHJvdy50aXRsZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiLnR5cGUgPSByb3cudHlwZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiLnRhYiA9IHJvdy50YWI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5kYXRha2V5ID0gcm93LmRhdGFrZXk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMucmVwb3J0c0J5VHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJMaXN0LnB1c2godGFiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YWIudGFiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJUeXBlTmFtZUxvb2t1cFt0YWIudGFiXSA9IHRhYi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhYi50eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJUeXBlTmFtZUxvb2t1cFt0YWIudHlwZV0gPSB0YWIubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucmVwb3J0c0J5VHlwZSA9PSB0YWIudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFiTGlzdC5wdXNoKHRhYik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJUeXBlTmFtZUxvb2t1cFt0YWIudGFiXSA9IHRhYi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGFiR3JpZExpc3Q6IGFueVtdID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFiYmVkR3JpZExpc3RbdGFiLm5hbWVdID0gdGFiR3JpZExpc3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBUYWJiZWRHcmlkTGlzdFt0YWIubmFtZV0gPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IHJlc3BbXCJyZXBvcnRMaXN0XCJdO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGxpc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHJvdyBvZiBsaXN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXBvcnQ6IFJlcG9ydCA9IG5ldyBSZXBvcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0Lm5hbWUgPSByb3cubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LnRpdGxlID0gcm93LnRpdGxlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuZGVzY3JpcHRpb24gPSByb3cuZGVzY3JpcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5jbGFzc05hbWUgPSByb3cuY2xhc3NOYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuZmlsZU5hbWUgPSByb3cuZmlsZU5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC50eXBlID0gcm93LnR5cGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC50YWIgPSByb3cudGFiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuZGF0YWtleSA9IHJvdy5kYXRha2V5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuaGVscCA9IHJvdy5oZWxwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2JqZWN0ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogcmVwb3J0Lm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcmVwb3J0LnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHJlcG9ydC5kZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0YWJuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0LnRhYikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibmFtZSA9IHRoaXMudGFiVHlwZU5hbWVMb29rdXBbcmVwb3J0LnRhYl07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMucmVwb3J0c0J5VHlwZSAmJiByZXBvcnQudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibmFtZSA9IHRoaXMudGFiVHlwZU5hbWVMb29rdXBbcmVwb3J0LnR5cGVdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFibmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdyaWRsaXN0OiBhbnlbXSA9IHRlbXBUYWJiZWRHcmlkTGlzdFt0YWJuYW1lXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLnJlcG9ydHNCeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0LnR5cGUgPT09IHRoaXMucmVwb3J0c0J5VHlwZSApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZGxpc3QucHVzaChvYmplY3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkbGlzdC5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJhbXMgPSByb3cucGFyYW1zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyYW1zKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgcCBvZiBwYXJhbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3UGFyYW06IFBhcmFtID0gbmV3IFBhcmFtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uZGljdEFQSUxlYWRJbiA9IHRoaXMuZGljdEFQSUxlYWRJbjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uY2FwdGlvbiA9IHAuY2FwdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5uYW1lID0gcC5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLnR5cGUgPSBwLnR5cGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uY2xhc3NOYW1lID0gcC5jbGFzc05hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0udmFsdWVYUGF0aCA9IHAudmFsdWVYUGF0aDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5kaXNwbGF5WFBhdGggPSBwLmRpc3BsYXlYUGF0aDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5kaXNwbGF5T3JkZXIgPSBwLmRpc3BsYXlPcmRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5hY3RpdmVPbmx5ID0gcC5hY3RpdmVPbmx5O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3UGFyYW0udmFsdWVYUGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS52YWx1ZVhQYXRoID0gbmV3UGFyYW0udmFsdWVYUGF0aC5yZXBsYWNlKFwiQFwiLCBcIlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1BhcmFtLmRpc3BsYXlYUGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5kaXNwbGF5WFBhdGggPSBuZXdQYXJhbS5kaXNwbGF5WFBhdGgucmVwbGFjZShcIkBcIiwgXCJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9ucyA9IHAub3B0aW9ucztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgbyBvZiBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3T3B0aW9uOiBPcHRpb24gPSBuZXcgT3B0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdPcHRpb24udmFsdWUgPSBvLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3T3B0aW9uLmRpc3BsYXkgPSBvLmRpc3BsYXk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdPcHRpb24uZGlzcGxheU9yZGVyID0gby5kaXNwbGF5T3JkZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0ub3B0aW9ucy5wdXNoKG5ld09wdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5wYXJhbXMucHVzaChuZXdQYXJhbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmb3JtYXRzID0gcm93LmZvcm1hdHM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtYXRzKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgZiBvZiBmb3JtYXRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld0Zvcm1hdDogRm9ybWF0ID0gbmV3IEZvcm1hdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1hdC5uYW1lID0gZi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1hdC5jYXB0aW9uID0gZi5jYXB0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1hdC5kaXNwbGF5T3JkZXIgPSBmLmRpc3BsYXlPcmRlcjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmZvcm1hdHMucHVzaChuZXdGb3JtYXQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXBvcnRMaXN0LnB1c2gocmVwb3J0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlcG9ydHNCeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJlcG9ydC50eXBlID09PSB0aGlzLnJlcG9ydHNCeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGlzdC5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGlzdC5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnVsbEdyaWRMaXN0ID0gdGVtcGxpc3Quc2xpY2UoKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImdyaWRsaXN0OiBcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5mdWxsR3JpZExpc3QpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBmb3IobGV0IHRhYiBvZiB0aGlzLnRhYkxpc3Qpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmJlZEdyaWRMaXN0W3RhYi5uYW1lXSA9IHRlbXBUYWJiZWRHcmlkTGlzdFt0YWIubmFtZV0uc2xpY2UoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29sdW1uRGVmKCkgOiBhbnlbXSB7XHJcbiAgICAgIHJldHVybiBbXHJcblxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkOiBcInRpdGxlXCIsXHJcbiAgICAgICAgICBoZWFkZXJOYW1lOiBcIlRpdGxlXCIsXHJcbiAgICAgICAgICB3aWR0aDogMzAwLFxyXG4gICAgICAgICAgc29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICAgICAgICBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkOiBcImRlc2NyaXB0aW9uXCIsXHJcbiAgICAgICAgICBoZWFkZXJOYW1lOiBcIkRlc2NyaXB0aW9uXCIsXHJcbiAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcclxuICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcclxuICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZX1cclxuICAgICAgXTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgb25NYWluR3JpZFJlYWR5KHBhcmFtcyA6IGFueSkge1xyXG5cclxuICAgICAgdGhpcy5tYWluR3JpZEFwaSA9IHBhcmFtcy5hcGk7XHJcbiAgICAgIHRoaXMubWFpbkdyaWRBcGkuc2V0Q29sdW1uRGVmcyh0aGlzLmNvbHVtbkRlZigpKTtcclxuICAgICAgdGhpcy5tYWluR3JpZEFwaS5zZXRSb3dEYXRhKHRoaXMuZnVsbEdyaWRMaXN0KTtcclxuICAgICAgdGhpcy5tYWluR3JpZEFwaS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25UYWJiZWRHcmlkUmVhZHkocGFyYW1zIDogYW55LCB0YWJuYW1lOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgIHRoaXMudGFiYmVkR3JpZEFwaUxpc3RbdGFibmFtZV0gPSBwYXJhbXMuYXBpO1xyXG4gICAgICB0aGlzLnRhYmJlZEdyaWRBcGlMaXN0W3RhYm5hbWVdLnNldENvbHVtbkRlZnModGhpcy5jb2x1bW5EZWYoKSk7XHJcbiAgICAgIHRoaXMudGFiYmVkR3JpZEFwaUxpc3RbdGFibmFtZV0uc2V0Um93RGF0YSh0aGlzLnRhYmJlZEdyaWRMaXN0W3RhYm5hbWVdKTtcclxuICAgICAgdGhpcy50YWJiZWRHcmlkQXBpTGlzdFt0YWJuYW1lXS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U2VsZWN0ZWRSb3coZXZlbnQpIHtcclxuXHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhldmVudCk7XHJcbiAgICAgICAgaWYoZXZlbnQubm9kZS5zZWxlY3RlZCkge1xyXG4gICAgICAgICAgbGV0IHJlcG9ydE5hbWUgPSBldmVudC5ub2RlLmRhdGEubmFtZTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGV2ZW50Lm5vZGUuZGF0YS5uYW1lKTtcclxuXHJcbiAgICAgICAgICB2YXIgbWF0Y2hlZFJlcG9ydDogUmVwb3J0O1xyXG4gICAgICAgICAgZm9yIChsZXQgciBvZiB0aGlzLnJlcG9ydExpc3QpIHtcclxuICAgICAgICAgICAgaWYgKHIubmFtZSA9PSByZXBvcnROYW1lKSB7XHJcbiAgICAgICAgICAgICAgbWF0Y2hlZFJlcG9ydCA9IHI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAobWF0Y2hlZFJlcG9ydCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSZXBvcnQgPSBtYXRjaGVkUmVwb3J0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJlcG9ydCA9IG5ldyBSZXBvcnQoKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZVBhcmFtQ29tcG9uZW50cygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVQYXJhbUNvbXBvbmVudHMoKSB7XHJcbiAgICAgICAgaWYodGhpcy5wYXJhbUNvbnRhaW5lcikge1xyXG4gICAgICAgICAgICB0aGlzLnBhcmFtQ29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMuZm9ybWF0Q29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL2Rlc3Ryb3kgcHJldmlvdXMgY29tcG9uZW50cyBhbmQgY2xlYXIgdGhlIGRpc3BsYXllZFJlZiBsaXN0cy4uP1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUNvbXBvbmVudFJlZnMoKTtcclxuICAgICAgICB0aGlzLmRpc3BsYXllZFBhcmFtQ29tcG9uZW50UmVmcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheWVkRm9ybWF0Q29tcG9uZW50UmVmcyA9IFtdO1xyXG5cclxuICAgICAgICBmb3IobGV0IHAgb2YgdGhpcy5zZWxlY3RlZFJlcG9ydC5wYXJhbXMpe1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxQYXJhbWV0ZXJDb21wb25lbnQ+ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShQYXJhbWV0ZXJDb21wb25lbnQpO1xyXG4gICAgICAgICAgICB2YXIgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8UGFyYW1ldGVyQ29tcG9uZW50PiA9IHRoaXMucGFyYW1Db250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXllZFBhcmFtQ29tcG9uZW50UmVmcy5wdXNoKGNvbXBvbmVudFJlZik7XHJcblxyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2V0UGFyYW0ocCk7XHJcblxyXG4gICAgICAgICAgICBpZihwLm9wdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudHJpZXM6IGFueVtdID0gW107XHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IG8gb2YgcC5vcHRpb25zKXtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZSA9IHtpZDogby52YWx1ZSwgZGlzcGxheTogby5kaXNwbGF5fTtcclxuICAgICAgICAgICAgICAgICAgICBlbnRyaWVzLnB1c2goZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZW50cmllcyA9IGVudHJpZXM7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgZmlyc3Q6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgICAgIGZvcihsZXQgZiBvZiB0aGlzLnNlbGVjdGVkUmVwb3J0LmZvcm1hdHMpe1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZmFjdG9yeTI6IENvbXBvbmVudEZhY3Rvcnk8Rm9ybWF0Q29tcG9uZW50PiA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoRm9ybWF0Q29tcG9uZW50KTtcclxuICAgICAgICAgICAgdmFyIGNvbXBvbmVudFJlZjI6IENvbXBvbmVudFJlZjxGb3JtYXRDb21wb25lbnQ+ID0gdGhpcy5mb3JtYXRDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkyKTtcclxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRGb3JtYXRDb21wb25lbnRSZWZzLnB1c2goY29tcG9uZW50UmVmMik7XHJcblxyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYyLmluc3RhbmNlLmZvcm1hdCA9IGY7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZjIuaW5zdGFuY2Uuc2VsZWN0ZWRWYWx1ZUNoYW5nZS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtYXQgPSBzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBpZihmaXJzdCkgey8vc2VsZWN0IHRoZSBmaXJzdCBmb3JtYXQgaW4gdGhlIGdyb3VwaW5nXHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYyLmluc3RhbmNlLnNlbGVjdGVkVmFsdWUgPSBmLm5hbWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRm9ybWF0ID0gZi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG9wZW5IZWxwKGNvbnRlbnQpIHtcclxuXHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbihjb250ZW50LCB7YXJpYUxhYmVsbGVkQnk6IFwiaGVscC1tb2RhbC10aXRsZVwifSlcclxuICAgICAgICAgICAgLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgLy8gdGhpcy5jbG9zZVJlc3VsdCA9IGBDbG9zZWQgd2l0aDogJHtyZXN1bHR9YDtcclxuICAgICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcclxuXHJcbiAgICAgICAgfSwgKHJlYXNvbikgPT4ge1xyXG4gICAgICAgICAgICB2YXIgY2xvc2VSZXN1bHQgPSBgRGlzbWlzc2VkICR7dGhpcy5nZXREaXNtaXNzUmVhc29uKHJlYXNvbil9YDtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coY2xvc2VSZXN1bHQpO1xyXG5cclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXREaXNtaXNzUmVhc29uKHJlYXNvbjogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBpZiAocmVhc29uID09PSBNb2RhbERpc21pc3NSZWFzb25zLkVTQykge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJieSBwcmVzc2luZyBFU0NcIjtcclxuICAgICAgICB9IGVsc2UgaWYgKHJlYXNvbiA9PT0gTW9kYWxEaXNtaXNzUmVhc29ucy5CQUNLRFJPUF9DTElDSykge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJieSBjbGlja2luZyBvbiBhIGJhY2tkcm9wXCI7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuICBgd2l0aDogJHtyZWFzb259YDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25SdW5SZXBvcnQoKSB7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRSZXBvcnQpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nc1NlcnZpY2Uuc3RhcnREZWZhdWx0U3Bpbm5lckRpYWxvZygpO1xyXG5cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmb3JtYXQ6XCIgKyB0aGlzLnNlbGVjdGVkRm9ybWF0KTtcclxuICAgICAgICAgICAgaWYoIXRoaXMuc2VsZWN0ZWRGb3JtYXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtYXQgPSBcImh0bWxcIjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IHJ1blBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAgICAgICAgIHJ1blBhcmFtcyA9IHJ1blBhcmFtcy5hcHBlbmQoXCJmb3JtYXRcIiwgdGhpcy5zZWxlY3RlZEZvcm1hdCk7XHJcbiAgICAgICAgICAgIHJ1blBhcmFtcyA9IHJ1blBhcmFtcy5hcHBlbmQoXCJhY3Rpb25cIiwgXCJzaG93XCIpO1xyXG4gICAgICAgICAgICBydW5QYXJhbXMgPSBydW5QYXJhbXMuYXBwZW5kKFwicmVwb3J0TmFtZVwiLCB0aGlzLnNlbGVjdGVkUmVwb3J0Lm5hbWUpO1xyXG5cclxuICAgICAgICAgICAgcnVuUGFyYW1zID0gdGhpcy5nZXRSdW5QYXJhbWV0ZXJzKHJ1blBhcmFtcyk7XHJcblxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhydW5QYXJhbXMpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5odHRwLmdldCh0aGlzLmNvbW1hbmRQcmVmaXggKyB0aGlzLnNlbGVjdGVkUmVwb3J0LmNsYXNzTmFtZSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHJ1blBhcmFtcyxcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiBcInJlc3BvbnNlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiBcImJsb2JcIlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB2YXIgZmlsZW5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5zZWxlY3RlZEZvcm1hdCAhPSBcImh0bWxcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IHJlcy5oZWFkZXJzLmdldChcImNvbnRlbnQtZGlzcG9zaXRpb25cIikuc3BsaXQoXCI7XCIpWzFdLnNwbGl0KFwiPVwiKVsxXS5yZXBsYWNlKC9cXFwiL2csIFwiXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtyZXMuYm9keV0sIHt0eXBlOiByZXMuYm9keS50eXBlfSApOyAvLywge3R5cGU6IFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZpbGVVUkwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhmaWxlVVJMKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYTogSFRNTEFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcclxuICAgICAgICAgICAgICAgICAgICBhLmhyZWYgPSBmaWxlVVJMO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRGb3JtYXQgPT0gXCJodG1sXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYS50YXJnZXQgPSBcIl9ibGFua1wiO1xyXG4gICAgICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcclxuICAgICAgICAgICAgICAgICAgICBhLmNsaWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XHJcbiAgICAgICAgICAgICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChmaWxlVVJMKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dzU2VydmljZS5zdG9wQWxsU3Bpbm5lckRpYWxvZ3MoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UnVuUGFyYW1ldGVycyhydW5QYXJhbXM6IEh0dHBQYXJhbXMpOiBIdHRwUGFyYW1zIHtcclxuICAgICAgICB2YXIgbmV3UGFyYW1zID0gcnVuUGFyYW1zO1xyXG5cclxuICAgICAgICBmb3IobGV0IG8gb2YgdGhpcy5kaXNwbGF5ZWRQYXJhbUNvbXBvbmVudFJlZnMpe1xyXG4gICAgICAgICAgICB2YXIgcGFyYW0gPSBvLmluc3RhbmNlLnBhcmFtO1xyXG5cclxuICAgICAgICAgICAgaWYocGFyYW0udHlwZSA9PSBcIm11bHRpc2VsZWN0XCIpIHtcclxuICAgICAgICAgICAgICAgIHZhciByZXNMaXN0ID0gXCJcIjtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgdiBvZiBwYXJhbS5zZWxlY3RlZFZhbHVlTGlzdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYocmVzTGlzdCAhPSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc0xpc3QgKz0gXCIsXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJlc0xpc3QgKz0gdjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG5ld1BhcmFtcyA9IG5ld1BhcmFtcy5hcHBlbmQocGFyYW0ubmFtZSwgcmVzTGlzdCk7XHJcbiAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgIHZhciB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIGlmKHBhcmFtLnNlbGVjdGVkVmFsdWUpIHsgLy9zbyB3ZSBkb24ndCBnZXQgXCJ1bmRlZmluZWRcIiBzZW50IGJhY2tcclxuICAgICAgICAgICAgICAgICAgICBpZihwYXJhbS50eXBlID09IFwiZGF0ZVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5nZXREYXRlU3RyaW5nKHBhcmFtLnNlbGVjdGVkVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJhbS5zZWxlY3RlZFZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBuZXdQYXJhbXMgPSBuZXdQYXJhbXMuYXBwZW5kKHBhcmFtLm5hbWUsIHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERhdGVTdHJpbmcoZGF0ZTogYW55KTogc3RyaW5nIHtcclxuXHJcbiAgICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgICAgIGlmICghaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZSwgXCJNTS9kZC95eXl5XCIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZSBpZihtb21lbnQuaXNNb21lbnQoZGF0ZSkgKSB7XHJcbiAgICAgICAgICAgIGlmKGRhdGUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGUuZm9ybWF0KFwiTS9EL1lZWVlcIik7XHJcbiAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2UgaWYodHlwZW9mIGRhdGUgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0ZTtcclxuICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkZXN0cm95Q29tcG9uZW50UmVmcygpIHtcclxuICAgICAgZm9yKGxldCBvIG9mIHRoaXMuZGlzcGxheWVkUGFyYW1Db21wb25lbnRSZWZzKXtcclxuICAgICAgICBvLmRlc3Ryb3koKTtcclxuICAgICAgfVxyXG4gICAgICBmb3IobGV0IG8gb2YgdGhpcy5kaXNwbGF5ZWRGb3JtYXRDb21wb25lbnRSZWZzKXtcclxuICAgICAgICBvLmRlc3Ryb3koKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUNvbXBvbmVudFJlZnMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgc3R5bGVzOiBbYFxyXG4gICAgICAucmVwb3J0LWRldGFpbHN7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuY2VudGVyLXJvd3tcclxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2MHZ3O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubWF0LXRhYi1ib2R5LXdyYXBwZXJ7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgfVxyXG5cclxuLnRhYi1wYW5le1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG5gXSovXHJcbn1cclxuIl19
|
|
633
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0aW5nLWZyYW1ld29yay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRpbmctZnJhbWV3b3JrL3NyYy9yZXBvcnRpbmctZnJhbWV3b3JrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHdCQUF3QixFQUN4QixLQUFLLEVBRUwsU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDekUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7QUFxSXpELE1BQU0sT0FBTywyQkFBMkI7SUFvQ3BDLFlBQW9CLElBQWdCLEVBQ2hCLFFBQWtDLEVBQ2xDLFFBQWtCLEVBQ2xCLGNBQThCLEVBQzlCLFlBQXNC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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBc0dUOzRGQTBCUSwyQkFBMkI7a0JBbEl2QyxTQUFTOytCQUNJLHlCQUF5QixZQUN6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBc0dUO21OQTRCUSxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVnRSxjQUFjO3NCQUFuRixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ0csZUFBZTtzQkFBckYsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeSxcclxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmLFxyXG4gICAgSW5wdXQsIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBQYXJhbXN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQge1JlcG9ydH0gZnJvbSBcIi4vbW9kZWwvcmVwb3J0Lm1vZGVsXCI7XHJcbmltcG9ydCB7UGFyYW19IGZyb20gXCIuL21vZGVsL3BhcmFtLm1vZGVsXCI7XHJcbmltcG9ydCB7UGFyYW1ldGVyQ29tcG9uZW50fSBmcm9tIFwiLi9wYXJhbWV0ZXIvcGFyYW1ldGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge09wdGlvbn0gZnJvbSBcIi4vbW9kZWwvb3B0aW9uLm1vZGVsXCI7XHJcbmltcG9ydCB7UmVwb3J0VGFifSBmcm9tIFwiLi9tb2RlbC9yZXBvcnQtdGFiLm1vZGVsXCI7XHJcbmltcG9ydCB7Rm9ybWF0fSBmcm9tIFwiLi9tb2RlbC9mb3JtYXQubW9kZWxcIjtcclxuaW1wb3J0IHtGb3JtYXRDb21wb25lbnR9IGZyb20gXCIuL2Zvcm1hdC9mb3JtYXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtNb2RhbERpc21pc3NSZWFzb25zLCBOZ2JNb2RhbH0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcbmltcG9ydCB7RGlhbG9nc1NlcnZpY2V9IGZyb20gXCIuL3NwaW5uZXIvZGlhbG9ncy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEdyaWRBcGkgfSBmcm9tIFwiYWctZ3JpZC1jb21tdW5pdHlcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiaGNpLXJlcG9ydGluZy1mcmFtZXdvcmtcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwMHZoXCI+XHJcbiAgICAgICAgPHJlc2l6YWJsZS1zZWN0aW9uLWRpdmlkZXIgY2xhc3M9XCJmbGV4LWdyb3ctMVwiIFtpc1ZlcnRpY2FsTGF5b3V0XT1cInRydWVcIj5cclxuICAgICAgICAgIDxkaXYgdG9wU2VjdGlvbiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGF1dG87XCI+XHJcbiAgICAgICAgICAgIDwhLS1jYW4gd3JhcCBqdXN0IHRoZSBncmlkIHdpdGggdGhlIHRhYnMtLT5cclxuICAgICAgICAgICAgPG1hdC10YWItZ3JvdXAgKm5nSWY9XCJ0YWJMaXN0Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cInt7dGFiLnRpdGxlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICA8YWctZ3JpZC1hbmd1bGFyXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gZnVsbC13aWR0aCBmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJ0aGlzLm9uVGFiYmVkR3JpZFJlYWR5KCRldmVudCwgdGFiLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwidGhpcy5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Jvd1NlbGVjdGlvbl09XCInc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKHJvd1NlbGVjdGVkKT1cInNldFNlbGVjdGVkUm93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmcmFtZXdvcmtDb21wb25lbnRzXT1cImZyYW1ld29ya0NvbXBvbmVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyb3dEYXRhXT1cInRhYmJlZEdyaWRMaXN0W3RhYi5uYW1lXVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICAgICAgICA8L21hdC10YWItZ3JvdXA+XHJcblxyXG4gICAgICAgICAgICA8IS0tbmdiLXRhYnNldCAqbmdJZj1cInRhYkxpc3QubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Ryb3lPbkhpZGU9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0YWJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICNyZXBvcnRUYWJTZXQ9XCJuZ2JUYWJzZXRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPG5nYi10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBpZD1cInt7dGFiLm5hbWV9fVwiIHRpdGxlPVwie3t0YWIudGl0bGV9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJib3JkZXI6IDVweCBzb2xpZDtcIiA+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiVGFiQ29udGVudCA+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8YWctZ3JpZC1hbmd1bGFyXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gZnVsbC13aWR0aCBmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJ0aGlzLm9uVGFiYmVkR3JpZFJlYWR5KCRldmVudCwgdGFiLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwidGhpcy5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Jvd1NlbGVjdGlvbl09XCInc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKHJvd1NlbGVjdGVkKT1cInNldFNlbGVjdGVkUm93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmcmFtZXdvcmtDb21wb25lbnRzXT1cImZyYW1ld29ya0NvbXBvbmVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyb3dEYXRhXT1cInRhYmJlZEdyaWRMaXN0W3RhYi5uYW1lXVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9uZ2ItdGFiPlxyXG5cclxuICAgICAgICAgICAgPC9uZ2ItdGFic2V0LS0+XHJcblxyXG4gICAgICAgICAgICA8YWctZ3JpZC1hbmd1bGFyICpuZ0lmPVwidGFiTGlzdC5sZW5ndGggPD0gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gZnVsbC13aWR0aCBmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJ0aGlzLm9uTWFpbkdyaWRSZWFkeSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwidGhpcy5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jvd1NlbGVjdGlvbl09XCInc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJvd1NlbGVjdGVkKT1cInNldFNlbGVjdGVkUm93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmcmFtZXdvcmtDb21wb25lbnRzXT1cImZyYW1ld29ya0NvbXBvbmVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3dEYXRhXT1cImZ1bGxHcmlkTGlzdFwiPlxyXG4gICAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBib3R0b21TZWN0aW9uIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCIgc3R5bGU9XCJoZWlnaHQ6IDgwJTsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBhdXRvO1wiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDI1cHg7IGZvbnQtd2VpZ2h0OiBib2xkXCI+e3tzZWxlY3RlZFJlcG9ydC50aXRsZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiAqbmdJZj1cInNlbGVjdGVkUmVwb3J0LmhlbHAgJiYgc2VsZWN0ZWRSZXBvcnQuaGVscCAhPSAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSGVscChjb250ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1xdWVzdGlvbi1jaXJjbGVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDx0ZW1wbGF0ZSAjcGFyYW1Db250YWluZXI+PC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY2VudGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPHRlbXBsYXRlICNmb3JtYXRDb250YWluZXI+PC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzZWxlY3RlZFJlcG9ydC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUnVuUmVwb3J0KClcIlxyXG4gICAgICAgICAgICAgICAgPlJ1biBSZXBvcnQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3Jlc2l6YWJsZS1zZWN0aW9uLWRpdmlkZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnQgbGV0LW1vZGFsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJoZWxwLW1vZGVsLXRpdGxlXCI+UmVwb3J0IEhlbHA8L2g0PlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKCdDcm9zcyBjbGljaycpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBbaW5uZXJIVE1MXT1cInNlbGVjdGVkUmVwb3J0LmhlbHBcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoJ09rIGNsaWNrJylcIj5PSzwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtgXHJcbiAgICAgIDpob3N0IDo6bmctZGVlcCAubWF0LXRhYi1ib2R5LXdyYXBwZXJ7XHJcbiAgICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgICA6aG9zdCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWx7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk4YzdlMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgOmhvc3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsLWFjdGl2ZXtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVmNGZmO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAucmVwb3J0LWRldGFpbHN7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuY2VudGVyLXJvd3tcclxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2MHZ3O1xyXG4gICAgICB9XHJcbiAgICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwb3J0aW5nRnJhbWV3b3JrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIEBJbnB1dCgpIG1hbmFnZVJlcG9ydFVybDogc3RyaW5nOyAvLyAvYXJ0YWRtaW4vbGVnYWN5L2FwaS9oY2kuYXJ0YWRtaW4uY29udHJvbGxlci5NYW5hZ2VSZXBvcnRzXHJcbiAgICBASW5wdXQoKSBjb21tYW5kUHJlZml4OiBzdHJpbmc7IC8vICAvYXJ0YWRtaW4vbGVnYWN5L2FwaS9qc3BcclxuICAgIEBJbnB1dCgpIGRpY3RBUElMZWFkSW46IHN0cmluZzsgLy8gL2FydGFkbWluL2FwaS9kaWN0aW9uYXJpZXNcclxuICAgIEBJbnB1dCgpIHJlcG9ydHNCeVR5cGU6IHN0cmluZzsgLy9vcHRpb25hbC4gdXN1YWxseSBcImdsb2JhbFwiIG9yIFwicGF0aWVudFwiXHJcblxyXG4gICAgQFZpZXdDaGlsZChcInBhcmFtQ29udGFpbmVyXCIsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlfSkgcGFyYW1Db250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgICBAVmlld0NoaWxkKFwiZm9ybWF0Q29udGFpbmVyXCIsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlfSkgZm9ybWF0Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICAgIGZ1bGxHcmlkTGlzdDogYW55W10gPSBbXTtcclxuICAgIHRhYmJlZEdyaWRMaXN0OiBhbnkgPSB7fTtcclxuXHJcblxyXG4gICAgZ3JpZE9wdGlvbnMgPSB7XHJcbiAgICAgIHJvd1N0eWxlOiB7XHJcbiAgICAgICAgXCJmb250LWZhbWlseVwiOiBcIlByb21wdCwgc2Fucy1zZXJpZlwiXHJcbiAgICAgIH0sXHJcbiAgICAgIHJvd0hlaWdodDogMjAsXHJcbiAgICAgIGVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uOiB0cnVlLFxyXG4gICAgICBlbnN1cmVEb21PcmRlcjogdHJ1ZVxyXG4gICAgfTsgLy9lbmFibGVDZWxsVGV4dFNlbGVjdGlvbiBzaG91bGQgYmUgY29tYmluZWQgd2l0aCBlbnN1cmVEb21PcmRlclxyXG4gICAgZnJhbWV3b3JrQ29tcG9uZW50czogYW55O1xyXG5cclxuICAgIG1haW5HcmlkQXBpOiBHcmlkQXBpO1xyXG4gICAgdGFiYmVkR3JpZEFwaUxpc3Q6IGFueSA9IHt9OyAvL2EgbWFwIG9mIEdyaWRBUElzIHRvIHRhYiBuYW1lc1xyXG5cclxuICAgIHJlcG9ydExpc3Q6IFJlcG9ydFtdID0gW107XHJcbiAgICB0YWJMaXN0OiBSZXBvcnRUYWJbXSA9IFtdO1xyXG4gICAgdGFiVHlwZU5hbWVMb29rdXA6IGFueSA9IHt9OyAvL2Ega2luZCBvZiBkaWN0IHRoYXQgbWFwcyB0aGUgdGFiIG9yIHR5cGUgdG8gdGhlIHRhYi1uYW1lXHJcblxyXG4gICAgc2VsZWN0ZWRSZXBvcnQ6IFJlcG9ydCA9IG5ldyBSZXBvcnQoKTtcclxuICAgIHNlbGVjdGVkRm9ybWF0OiBzdHJpbmc7XHJcbiAgICBkaXNwbGF5ZWRQYXJhbUNvbXBvbmVudFJlZnM6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcclxuICAgIGRpc3BsYXllZEZvcm1hdENvbXBvbmVudFJlZnM6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgZGlhbG9nc1NlcnZpY2U6IERpYWxvZ3NTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5tYW5hZ2VSZXBvcnRVcmwgIT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5odHRwLmdldCh0aGlzLm1hbmFnZVJlcG9ydFVybCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwiYWN0aW9uXCIsIFwibG9hZFdpdGhQYXJhbXNcIilcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3ApO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0ZW1wbGlzdCA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0ZW1wVGFiYmVkR3JpZExpc3QgPSB7fTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhYmxpc3QgPSByZXNwW1wicmVwb3J0VGFic1wiXTtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCByb3cgb2YgdGFibGlzdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGFiOiBSZXBvcnRUYWIgPSBuZXcgUmVwb3J0VGFiKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5uYW1lID0gcm93Lm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi50aXRsZSA9IHJvdy50aXRsZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiLnR5cGUgPSByb3cudHlwZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiLnRhYiA9IHJvdy50YWI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5kYXRha2V5ID0gcm93LmRhdGFrZXk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMucmVwb3J0c0J5VHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJMaXN0LnB1c2godGFiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YWIudGFiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJUeXBlTmFtZUxvb2t1cFt0YWIudGFiXSA9IHRhYi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhYi50eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJUeXBlTmFtZUxvb2t1cFt0YWIudHlwZV0gPSB0YWIubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucmVwb3J0c0J5VHlwZSA9PSB0YWIudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFiTGlzdC5wdXNoKHRhYik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJUeXBlTmFtZUxvb2t1cFt0YWIudGFiXSA9IHRhYi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGFiR3JpZExpc3Q6IGFueVtdID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFiYmVkR3JpZExpc3RbdGFiLm5hbWVdID0gdGFiR3JpZExpc3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBUYWJiZWRHcmlkTGlzdFt0YWIubmFtZV0gPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IHJlc3BbXCJyZXBvcnRMaXN0XCJdO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGxpc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHJvdyBvZiBsaXN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXBvcnQ6IFJlcG9ydCA9IG5ldyBSZXBvcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0Lm5hbWUgPSByb3cubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LnRpdGxlID0gcm93LnRpdGxlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuZGVzY3JpcHRpb24gPSByb3cuZGVzY3JpcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5jbGFzc05hbWUgPSByb3cuY2xhc3NOYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuZmlsZU5hbWUgPSByb3cuZmlsZU5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC50eXBlID0gcm93LnR5cGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC50YWIgPSByb3cudGFiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuZGF0YWtleSA9IHJvdy5kYXRha2V5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuaGVscCA9IHJvdy5oZWxwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2JqZWN0ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogcmVwb3J0Lm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcmVwb3J0LnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHJlcG9ydC5kZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0YWJuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0LnRhYikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibmFtZSA9IHRoaXMudGFiVHlwZU5hbWVMb29rdXBbcmVwb3J0LnRhYl07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMucmVwb3J0c0J5VHlwZSAmJiByZXBvcnQudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibmFtZSA9IHRoaXMudGFiVHlwZU5hbWVMb29rdXBbcmVwb3J0LnR5cGVdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFibmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdyaWRsaXN0OiBhbnlbXSA9IHRlbXBUYWJiZWRHcmlkTGlzdFt0YWJuYW1lXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLnJlcG9ydHNCeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0LnR5cGUgPT09IHRoaXMucmVwb3J0c0J5VHlwZSApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZGxpc3QucHVzaChvYmplY3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkbGlzdC5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJhbXMgPSByb3cucGFyYW1zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyYW1zKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgcCBvZiBwYXJhbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3UGFyYW06IFBhcmFtID0gbmV3IFBhcmFtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uZGljdEFQSUxlYWRJbiA9IHRoaXMuZGljdEFQSUxlYWRJbjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uY2FwdGlvbiA9IHAuY2FwdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5uYW1lID0gcC5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLnR5cGUgPSBwLnR5cGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uY2xhc3NOYW1lID0gcC5jbGFzc05hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0udmFsdWVYUGF0aCA9IHAudmFsdWVYUGF0aDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5kaXNwbGF5WFBhdGggPSBwLmRpc3BsYXlYUGF0aDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5kaXNwbGF5T3JkZXIgPSBwLmRpc3BsYXlPcmRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5hY3RpdmVPbmx5ID0gcC5hY3RpdmVPbmx5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLnNvcnRGaWVsZCA9IHAuc29ydEZpZWxkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLnNvcnROdW1lcmljID0gcC5zb3J0TnVtZXJpYztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5maWx0ZXJGaWVsZCA9IHAuZmlsdGVyRmllbGQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdQYXJhbS52YWx1ZVhQYXRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLnZhbHVlWFBhdGggPSBuZXdQYXJhbS52YWx1ZVhQYXRoLnJlcGxhY2UoXCJAXCIsIFwiXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3UGFyYW0uZGlzcGxheVhQYXRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLmRpc3BsYXlYUGF0aCA9IG5ld1BhcmFtLmRpc3BsYXlYUGF0aC5yZXBsYWNlKFwiQFwiLCBcIlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1BhcmFtLnNvcnRGaWVsZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5zb3J0RmllbGQgPSBuZXdQYXJhbS5zb3J0RmllbGQucmVwbGFjZShcIkBcIiwgXCJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9ucyA9IHAub3B0aW9ucztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgbyBvZiBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3T3B0aW9uOiBPcHRpb24gPSBuZXcgT3B0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdPcHRpb24udmFsdWUgPSBvLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3T3B0aW9uLmRpc3BsYXkgPSBvLmRpc3BsYXk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdPcHRpb24uZGlzcGxheU9yZGVyID0gby5kaXNwbGF5T3JkZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0ub3B0aW9ucy5wdXNoKG5ld09wdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5wYXJhbXMucHVzaChuZXdQYXJhbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmb3JtYXRzID0gcm93LmZvcm1hdHM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtYXRzKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgZiBvZiBmb3JtYXRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld0Zvcm1hdDogRm9ybWF0ID0gbmV3IEZvcm1hdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1hdC5uYW1lID0gZi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1hdC5jYXB0aW9uID0gZi5jYXB0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1hdC5kaXNwbGF5T3JkZXIgPSBmLmRpc3BsYXlPcmRlcjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmZvcm1hdHMucHVzaChuZXdGb3JtYXQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXBvcnRMaXN0LnB1c2gocmVwb3J0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlcG9ydHNCeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJlcG9ydC50eXBlID09PSB0aGlzLnJlcG9ydHNCeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGlzdC5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGlzdC5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnVsbEdyaWRMaXN0ID0gdGVtcGxpc3Quc2xpY2UoKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImdyaWRsaXN0OiBcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5mdWxsR3JpZExpc3QpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBmb3IobGV0IHRhYiBvZiB0aGlzLnRhYkxpc3Qpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmJlZEdyaWRMaXN0W3RhYi5uYW1lXSA9IHRlbXBUYWJiZWRHcmlkTGlzdFt0YWIubmFtZV0uc2xpY2UoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29sdW1uRGVmKCkgOiBhbnlbXSB7XHJcbiAgICAgIHJldHVybiBbXHJcblxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkOiBcInRpdGxlXCIsXHJcbiAgICAgICAgICBoZWFkZXJOYW1lOiBcIlRpdGxlXCIsXHJcbiAgICAgICAgICB3aWR0aDogMzAwLFxyXG4gICAgICAgICAgc29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICAgICAgICBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkOiBcImRlc2NyaXB0aW9uXCIsXHJcbiAgICAgICAgICBoZWFkZXJOYW1lOiBcIkRlc2NyaXB0aW9uXCIsXHJcbiAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcclxuICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcclxuICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZX1cclxuICAgICAgXTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgb25NYWluR3JpZFJlYWR5KHBhcmFtcyA6IGFueSkge1xyXG5cclxuICAgICAgdGhpcy5tYWluR3JpZEFwaSA9IHBhcmFtcy5hcGk7XHJcbiAgICAgIHRoaXMubWFpbkdyaWRBcGkuc2V0Q29sdW1uRGVmcyh0aGlzLmNvbHVtbkRlZigpKTtcclxuICAgICAgdGhpcy5tYWluR3JpZEFwaS5zZXRSb3dEYXRhKHRoaXMuZnVsbEdyaWRMaXN0KTtcclxuICAgICAgdGhpcy5tYWluR3JpZEFwaS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25UYWJiZWRHcmlkUmVhZHkocGFyYW1zIDogYW55LCB0YWJuYW1lOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgIHRoaXMudGFiYmVkR3JpZEFwaUxpc3RbdGFibmFtZV0gPSBwYXJhbXMuYXBpO1xyXG4gICAgICB0aGlzLnRhYmJlZEdyaWRBcGlMaXN0W3RhYm5hbWVdLnNldENvbHVtbkRlZnModGhpcy5jb2x1bW5EZWYoKSk7XHJcbiAgICAgIHRoaXMudGFiYmVkR3JpZEFwaUxpc3RbdGFibmFtZV0uc2V0Um93RGF0YSh0aGlzLnRhYmJlZEdyaWRMaXN0W3RhYm5hbWVdKTtcclxuICAgICAgdGhpcy50YWJiZWRHcmlkQXBpTGlzdFt0YWJuYW1lXS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U2VsZWN0ZWRSb3coZXZlbnQpIHtcclxuXHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhldmVudCk7XHJcbiAgICAgICAgaWYoZXZlbnQubm9kZS5zZWxlY3RlZCkge1xyXG4gICAgICAgICAgbGV0IHJlcG9ydE5hbWUgPSBldmVudC5ub2RlLmRhdGEubmFtZTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGV2ZW50Lm5vZGUuZGF0YS5uYW1lKTtcclxuXHJcbiAgICAgICAgICB2YXIgbWF0Y2hlZFJlcG9ydDogUmVwb3J0O1xyXG4gICAgICAgICAgZm9yIChsZXQgciBvZiB0aGlzLnJlcG9ydExpc3QpIHtcclxuICAgICAgICAgICAgaWYgKHIubmFtZSA9PSByZXBvcnROYW1lKSB7XHJcbiAgICAgICAgICAgICAgbWF0Y2hlZFJlcG9ydCA9IHI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAobWF0Y2hlZFJlcG9ydCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSZXBvcnQgPSBtYXRjaGVkUmVwb3J0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJlcG9ydCA9IG5ldyBSZXBvcnQoKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZVBhcmFtQ29tcG9uZW50cygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVQYXJhbUNvbXBvbmVudHMoKSB7XHJcbiAgICAgICAgaWYodGhpcy5wYXJhbUNvbnRhaW5lcikge1xyXG4gICAgICAgICAgICB0aGlzLnBhcmFtQ29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMuZm9ybWF0Q29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL2Rlc3Ryb3kgcHJldmlvdXMgY29tcG9uZW50cyBhbmQgY2xlYXIgdGhlIGRpc3BsYXllZFJlZiBsaXN0cy4uP1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUNvbXBvbmVudFJlZnMoKTtcclxuICAgICAgICB0aGlzLmRpc3BsYXllZFBhcmFtQ29tcG9uZW50UmVmcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheWVkRm9ybWF0Q29tcG9uZW50UmVmcyA9IFtdO1xyXG5cclxuICAgICAgICBmb3IobGV0IHAgb2YgdGhpcy5zZWxlY3RlZFJlcG9ydC5wYXJhbXMpe1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxQYXJhbWV0ZXJDb21wb25lbnQ+ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShQYXJhbWV0ZXJDb21wb25lbnQpO1xyXG4gICAgICAgICAgICB2YXIgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8UGFyYW1ldGVyQ29tcG9uZW50PiA9IHRoaXMucGFyYW1Db250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXllZFBhcmFtQ29tcG9uZW50UmVmcy5wdXNoKGNvbXBvbmVudFJlZik7XHJcblxyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2V0UGFyYW0ocCk7XHJcblxyXG4gICAgICAgICAgICBpZihwLm9wdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudHJpZXM6IGFueVtdID0gW107XHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IG8gb2YgcC5vcHRpb25zKXtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZSA9IHtpZDogby52YWx1ZSwgZGlzcGxheTogby5kaXNwbGF5fTtcclxuICAgICAgICAgICAgICAgICAgICBlbnRyaWVzLnB1c2goZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZW50cmllcyA9IGVudHJpZXM7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgZmlyc3Q6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgICAgIGZvcihsZXQgZiBvZiB0aGlzLnNlbGVjdGVkUmVwb3J0LmZvcm1hdHMpe1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZmFjdG9yeTI6IENvbXBvbmVudEZhY3Rvcnk8Rm9ybWF0Q29tcG9uZW50PiA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoRm9ybWF0Q29tcG9uZW50KTtcclxuICAgICAgICAgICAgdmFyIGNvbXBvbmVudFJlZjI6IENvbXBvbmVudFJlZjxGb3JtYXRDb21wb25lbnQ+ID0gdGhpcy5mb3JtYXRDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkyKTtcclxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRGb3JtYXRDb21wb25lbnRSZWZzLnB1c2goY29tcG9uZW50UmVmMik7XHJcblxyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYyLmluc3RhbmNlLmZvcm1hdCA9IGY7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZjIuaW5zdGFuY2Uuc2VsZWN0ZWRWYWx1ZUNoYW5nZS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtYXQgPSBzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBpZihmaXJzdCkgey8vc2VsZWN0IHRoZSBmaXJzdCBmb3JtYXQgaW4gdGhlIGdyb3VwaW5nXHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYyLmluc3RhbmNlLnNlbGVjdGVkVmFsdWUgPSBmLm5hbWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRm9ybWF0ID0gZi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG9wZW5IZWxwKGNvbnRlbnQpIHtcclxuXHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbihjb250ZW50LCB7YXJpYUxhYmVsbGVkQnk6IFwiaGVscC1tb2RhbC10aXRsZVwifSlcclxuICAgICAgICAgICAgLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgLy8gdGhpcy5jbG9zZVJlc3VsdCA9IGBDbG9zZWQgd2l0aDogJHtyZXN1bHR9YDtcclxuICAgICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcclxuXHJcbiAgICAgICAgfSwgKHJlYXNvbikgPT4ge1xyXG4gICAgICAgICAgICB2YXIgY2xvc2VSZXN1bHQgPSBgRGlzbWlzc2VkICR7dGhpcy5nZXREaXNtaXNzUmVhc29uKHJlYXNvbil9YDtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coY2xvc2VSZXN1bHQpO1xyXG5cclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXREaXNtaXNzUmVhc29uKHJlYXNvbjogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBpZiAocmVhc29uID09PSBNb2RhbERpc21pc3NSZWFzb25zLkVTQykge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJieSBwcmVzc2luZyBFU0NcIjtcclxuICAgICAgICB9IGVsc2UgaWYgKHJlYXNvbiA9PT0gTW9kYWxEaXNtaXNzUmVhc29ucy5CQUNLRFJPUF9DTElDSykge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJieSBjbGlja2luZyBvbiBhIGJhY2tkcm9wXCI7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuICBgd2l0aDogJHtyZWFzb259YDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25SdW5SZXBvcnQoKSB7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRSZXBvcnQpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nc1NlcnZpY2Uuc3RhcnREZWZhdWx0U3Bpbm5lckRpYWxvZygpO1xyXG5cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmb3JtYXQ6XCIgKyB0aGlzLnNlbGVjdGVkRm9ybWF0KTtcclxuICAgICAgICAgICAgaWYoIXRoaXMuc2VsZWN0ZWRGb3JtYXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtYXQgPSBcImh0bWxcIjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IHJ1blBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAgICAgICAgIHJ1blBhcmFtcyA9IHJ1blBhcmFtcy5hcHBlbmQoXCJmb3JtYXRcIiwgdGhpcy5zZWxlY3RlZEZvcm1hdCk7XHJcbiAgICAgICAgICAgIHJ1blBhcmFtcyA9IHJ1blBhcmFtcy5hcHBlbmQoXCJhY3Rpb25cIiwgXCJzaG93XCIpO1xyXG4gICAgICAgICAgICBydW5QYXJhbXMgPSBydW5QYXJhbXMuYXBwZW5kKFwicmVwb3J0TmFtZVwiLCB0aGlzLnNlbGVjdGVkUmVwb3J0Lm5hbWUpO1xyXG5cclxuICAgICAgICAgICAgcnVuUGFyYW1zID0gdGhpcy5nZXRSdW5QYXJhbWV0ZXJzKHJ1blBhcmFtcyk7XHJcblxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhydW5QYXJhbXMpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5odHRwLmdldCh0aGlzLmNvbW1hbmRQcmVmaXggKyB0aGlzLnNlbGVjdGVkUmVwb3J0LmNsYXNzTmFtZSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHJ1blBhcmFtcyxcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiBcInJlc3BvbnNlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiBcImJsb2JcIlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB2YXIgZmlsZW5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5zZWxlY3RlZEZvcm1hdCAhPSBcImh0bWxcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IHJlcy5oZWFkZXJzLmdldChcImNvbnRlbnQtZGlzcG9zaXRpb25cIikuc3BsaXQoXCI7XCIpWzFdLnNwbGl0KFwiPVwiKVsxXS5yZXBsYWNlKC9cXFwiL2csIFwiXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtyZXMuYm9keV0sIHt0eXBlOiByZXMuYm9keS50eXBlfSApOyAvLywge3R5cGU6IFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZpbGVVUkwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhmaWxlVVJMKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYTogSFRNTEFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcclxuICAgICAgICAgICAgICAgICAgICBhLmhyZWYgPSBmaWxlVVJMO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRGb3JtYXQgPT0gXCJodG1sXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYS50YXJnZXQgPSBcIl9ibGFua1wiO1xyXG4gICAgICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcclxuICAgICAgICAgICAgICAgICAgICBhLmNsaWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XHJcbiAgICAgICAgICAgICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChmaWxlVVJMKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dzU2VydmljZS5zdG9wQWxsU3Bpbm5lckRpYWxvZ3MoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UnVuUGFyYW1ldGVycyhydW5QYXJhbXM6IEh0dHBQYXJhbXMpOiBIdHRwUGFyYW1zIHtcclxuICAgICAgICB2YXIgbmV3UGFyYW1zID0gcnVuUGFyYW1zO1xyXG5cclxuICAgICAgICBmb3IobGV0IG8gb2YgdGhpcy5kaXNwbGF5ZWRQYXJhbUNvbXBvbmVudFJlZnMpe1xyXG4gICAgICAgICAgICB2YXIgcGFyYW0gPSBvLmluc3RhbmNlLnBhcmFtO1xyXG5cclxuICAgICAgICAgICAgaWYocGFyYW0udHlwZSA9PSBcIm11bHRpc2VsZWN0XCIpIHtcclxuICAgICAgICAgICAgICAgIHZhciByZXNMaXN0ID0gXCJcIjtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgdiBvZiBwYXJhbS5zZWxlY3RlZFZhbHVlTGlzdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYocmVzTGlzdCAhPSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc0xpc3QgKz0gXCIsXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJlc0xpc3QgKz0gdjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG5ld1BhcmFtcyA9IG5ld1BhcmFtcy5hcHBlbmQocGFyYW0ubmFtZSwgcmVzTGlzdCk7XHJcbiAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgIHZhciB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIGlmKHBhcmFtLnNlbGVjdGVkVmFsdWUpIHsgLy9zbyB3ZSBkb24ndCBnZXQgXCJ1bmRlZmluZWRcIiBzZW50IGJhY2tcclxuICAgICAgICAgICAgICAgICAgICBpZihwYXJhbS50eXBlID09IFwiZGF0ZVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5nZXREYXRlU3RyaW5nKHBhcmFtLnNlbGVjdGVkVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJhbS5zZWxlY3RlZFZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBuZXdQYXJhbXMgPSBuZXdQYXJhbXMuYXBwZW5kKHBhcmFtLm5hbWUsIHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERhdGVTdHJpbmcoZGF0ZTogYW55KTogc3RyaW5nIHtcclxuXHJcbiAgICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgICAgIGlmICghaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZSwgXCJNTS9kZC95eXl5XCIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZSBpZihtb21lbnQuaXNNb21lbnQoZGF0ZSkgKSB7XHJcbiAgICAgICAgICAgIGlmKGRhdGUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGUuZm9ybWF0KFwiTS9EL1lZWVlcIik7XHJcbiAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2UgaWYodHlwZW9mIGRhdGUgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0ZTtcclxuICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkZXN0cm95Q29tcG9uZW50UmVmcygpIHtcclxuICAgICAgZm9yKGxldCBvIG9mIHRoaXMuZGlzcGxheWVkUGFyYW1Db21wb25lbnRSZWZzKXtcclxuICAgICAgICBvLmRlc3Ryb3koKTtcclxuICAgICAgfVxyXG4gICAgICBmb3IobGV0IG8gb2YgdGhpcy5kaXNwbGF5ZWRGb3JtYXRDb21wb25lbnRSZWZzKXtcclxuICAgICAgICBvLmRlc3Ryb3koKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUNvbXBvbmVudFJlZnMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgc3R5bGVzOiBbYFxyXG4gICAgICAucmVwb3J0LWRldGFpbHN7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuY2VudGVyLXJvd3tcclxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2MHZ3O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubWF0LXRhYi1ib2R5LXdyYXBwZXJ7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgfVxyXG5cclxuLnRhYi1wYW5le1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG5gXSovXHJcbn1cclxuIl19
|
|
@@ -33,17 +33,22 @@ class Report {
|
|
|
33
33
|
class Param {
|
|
34
34
|
constructor() {
|
|
35
35
|
this.activeOnly = true;
|
|
36
|
+
this.sortNumeric = false;
|
|
37
|
+
this.filterField = "";
|
|
36
38
|
this.options = [];
|
|
37
39
|
this.selectedValueList = []; //for multi-select
|
|
38
40
|
}
|
|
39
41
|
calculateDictionaryURL() {
|
|
40
|
-
|
|
42
|
+
let out = "";
|
|
41
43
|
if (this.activeOnly) {
|
|
42
44
|
out = this.dictAPILeadIn + "/" + this.className + "/active-entries";
|
|
43
45
|
}
|
|
44
46
|
else {
|
|
45
47
|
out = this.dictAPILeadIn + "/" + this.className + "/entries";
|
|
46
48
|
}
|
|
49
|
+
if (this.filterField) {
|
|
50
|
+
out = out + "?" + this.filterField;
|
|
51
|
+
}
|
|
47
52
|
return out;
|
|
48
53
|
}
|
|
49
54
|
}
|
|
@@ -172,6 +177,8 @@ ParameterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
172
177
|
[name]="param.name"
|
|
173
178
|
[idKey]="param.valueXPath"
|
|
174
179
|
[displayKey]="param.displayXPath"
|
|
180
|
+
[sortKey]="param.sortField"
|
|
181
|
+
[sortNumeric]="param.sortNumeric"
|
|
175
182
|
[(ngModel)]="param.selectedValue"
|
|
176
183
|
[url]="param.calculateDictionaryURL()"
|
|
177
184
|
></hci-native-select>
|
|
@@ -188,6 +195,8 @@ ParameterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
188
195
|
[id]="param.name"
|
|
189
196
|
[name]="param.name"
|
|
190
197
|
[(ngModel)]="param.selectedValue"
|
|
198
|
+
[sortKey]="param.sortField"
|
|
199
|
+
[sortNumeric]="param.sortNumeric"
|
|
191
200
|
[entries] = "entries"
|
|
192
201
|
></hci-native-select>
|
|
193
202
|
</div>
|
|
@@ -204,6 +213,8 @@ ParameterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
204
213
|
[name]="param.name"
|
|
205
214
|
[idKey]="param.valueXPath"
|
|
206
215
|
[displayKey]="param.displayXPath"
|
|
216
|
+
[sortKey]="param.sortField"
|
|
217
|
+
[sortNumeric]="param.sortNumeric"
|
|
207
218
|
[(ngModel)]="param.selectedValueList"
|
|
208
219
|
[url]="param.calculateDictionaryURL()"
|
|
209
220
|
>
|
|
@@ -221,6 +232,8 @@ ParameterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
221
232
|
[id]="param.name"
|
|
222
233
|
[name]="param.name"
|
|
223
234
|
[entries] = "entries"
|
|
235
|
+
[sortKey]="param.sortField"
|
|
236
|
+
[sortNumeric]="param.sortNumeric"
|
|
224
237
|
[(ngModel)]="param.selectedValueList"
|
|
225
238
|
>
|
|
226
239
|
</hci-md-multi-select>
|
|
@@ -290,6 +303,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
290
303
|
[name]="param.name"
|
|
291
304
|
[idKey]="param.valueXPath"
|
|
292
305
|
[displayKey]="param.displayXPath"
|
|
306
|
+
[sortKey]="param.sortField"
|
|
307
|
+
[sortNumeric]="param.sortNumeric"
|
|
293
308
|
[(ngModel)]="param.selectedValue"
|
|
294
309
|
[url]="param.calculateDictionaryURL()"
|
|
295
310
|
></hci-native-select>
|
|
@@ -306,6 +321,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
306
321
|
[id]="param.name"
|
|
307
322
|
[name]="param.name"
|
|
308
323
|
[(ngModel)]="param.selectedValue"
|
|
324
|
+
[sortKey]="param.sortField"
|
|
325
|
+
[sortNumeric]="param.sortNumeric"
|
|
309
326
|
[entries] = "entries"
|
|
310
327
|
></hci-native-select>
|
|
311
328
|
</div>
|
|
@@ -322,6 +339,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
322
339
|
[name]="param.name"
|
|
323
340
|
[idKey]="param.valueXPath"
|
|
324
341
|
[displayKey]="param.displayXPath"
|
|
342
|
+
[sortKey]="param.sortField"
|
|
343
|
+
[sortNumeric]="param.sortNumeric"
|
|
325
344
|
[(ngModel)]="param.selectedValueList"
|
|
326
345
|
[url]="param.calculateDictionaryURL()"
|
|
327
346
|
>
|
|
@@ -339,6 +358,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
339
358
|
[id]="param.name"
|
|
340
359
|
[name]="param.name"
|
|
341
360
|
[entries] = "entries"
|
|
361
|
+
[sortKey]="param.sortField"
|
|
362
|
+
[sortNumeric]="param.sortNumeric"
|
|
342
363
|
[(ngModel)]="param.selectedValueList"
|
|
343
364
|
>
|
|
344
365
|
</hci-md-multi-select>
|
|
@@ -865,12 +886,18 @@ class ReportingFrameworkComponent {
|
|
|
865
886
|
newParam.displayXPath = p.displayXPath;
|
|
866
887
|
newParam.displayOrder = p.displayOrder;
|
|
867
888
|
newParam.activeOnly = p.activeOnly;
|
|
889
|
+
newParam.sortField = p.sortField;
|
|
890
|
+
newParam.sortNumeric = p.sortNumeric;
|
|
891
|
+
newParam.filterField = p.filterField;
|
|
868
892
|
if (newParam.valueXPath) {
|
|
869
893
|
newParam.valueXPath = newParam.valueXPath.replace("@", "");
|
|
870
894
|
}
|
|
871
895
|
if (newParam.displayXPath) {
|
|
872
896
|
newParam.displayXPath = newParam.displayXPath.replace("@", "");
|
|
873
897
|
}
|
|
898
|
+
if (newParam.sortField) {
|
|
899
|
+
newParam.sortField = newParam.sortField.replace("@", "");
|
|
900
|
+
}
|
|
874
901
|
let options = p.options;
|
|
875
902
|
if (options) {
|
|
876
903
|
for (let o of options) {
|