imm-element-ui 1.3.2 → 1.3.3
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.
|
@@ -125,12 +125,12 @@ export class PageFormComponent extends AmComponent {
|
|
|
125
125
|
};
|
|
126
126
|
if (!deleteFunc) {
|
|
127
127
|
this.web_remove(prm).subscribe((res) => {
|
|
128
|
-
this.getDetail();
|
|
128
|
+
typeof this.formDetail() == 'function' ? this.formDetail()(this.id) : this.getDetail();
|
|
129
129
|
});
|
|
130
130
|
}
|
|
131
131
|
else {
|
|
132
132
|
deleteFunc().subscribe(() => {
|
|
133
|
-
this.getDetail();
|
|
133
|
+
typeof this.formDetail() == 'function' ? this.formDetail()(this.id) : this.getDetail();
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
136
|
}
|
|
@@ -206,12 +206,6 @@ export class PageFormComponent extends AmComponent {
|
|
|
206
206
|
}
|
|
207
207
|
getDetail() {
|
|
208
208
|
this.web_get(this.getPrm).subscribe((res) => {
|
|
209
|
-
this.gridList().forEach((value) => {
|
|
210
|
-
if (value.type == 'grid' && !this.getPrm.data.hasOwnProperty(value.subDataKey)) {
|
|
211
|
-
this.getPrm.data[value.subDataKey] = [];
|
|
212
|
-
}
|
|
213
|
-
});
|
|
214
|
-
console.log('this.getPrm.data', this.getPrm.data);
|
|
215
209
|
this.detailCb(res);
|
|
216
210
|
});
|
|
217
211
|
}
|
|
@@ -229,6 +223,11 @@ export class PageFormComponent extends AmComponent {
|
|
|
229
223
|
this.subFormModel[v.subDataKey] = res[v.subDataKey][0];
|
|
230
224
|
}
|
|
231
225
|
});
|
|
226
|
+
this.gridList().forEach((value) => {
|
|
227
|
+
if (value.type == 'grid' && !this.getPrm.data.hasOwnProperty(value.subDataKey)) {
|
|
228
|
+
this.getPrm.data[value.subDataKey] = [];
|
|
229
|
+
}
|
|
230
|
+
});
|
|
232
231
|
}
|
|
233
232
|
setHrefValue() {
|
|
234
233
|
this.hrefBtnList().map((item) => {
|
|
@@ -461,4 +460,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
461
460
|
type: ViewChildren,
|
|
462
461
|
args: ['tabForm']
|
|
463
462
|
}] } });
|
|
464
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvcGFnZS1mb3JtL3BhZ2UtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3BhZ2UtZm9ybS9wYWdlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQTJCLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0SSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFRLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBZSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBTyxNQUFNLG9CQUFvQixDQUFDO0FBR3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFF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QUNiLFVBQVU7d0JBQ1Ysb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLG9CQUFvQjtxQkFDcEIsYUFHVSxFQUFFO3dEQUdPLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDVSxVQUFVO3NCQUFyQyxZQUFZO3VCQUFDLFlBQVk7Z0JBQ0QsT0FBTztzQkFBL0IsWUFBWTt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckhpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS91c2VySGlzdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCwgaW5wdXQsIGVmZmVjdCwgY29tcHV0ZWQsIElucHV0LCBzaWduYWwsIFZpZXdDaGlsZHJlbiwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCwgRm9ybU9wdGlvbnMgfSBmcm9tICcuLi9mb3JtL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUm93U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi9yb3ctc2VsZWN0b3Ivcm93LXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2dDb21wb25lbnQgfSBmcm9tICcuLi9sb2cvbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBDcnVtYkFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NydW1iLWFjdGlvbi9jcnVtYi1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFN0ZXBzQ29tcG9uZW50LCBTdGVwIH0gZnJvbSAnLi4vc3RlcHMvc3RlcHMuY29tcG9uZW50JztcbmltcG9ydCB7IEdyaWRDb21wb25lbnQsIEdyaWRPcHRpb25zIH0gZnJvbSAnLi4vZ3JpZC9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYnNNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYnMnO1xuaW1wb3J0IHsgQW1Db21wb25lbnQsIEdldCB9IGZyb20gJy4uL2FtL2FtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2ggfSBmcm9tICcuLi9hbS9hbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHJlZkJ0bkxpc3QsIEdyaWRMaXN0IH0gZnJvbSAnLi9wYWdlLWZvcm0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvbkJ0biB9IGZyb20gJy4vcGFnZS1mb3JtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBmb3JtVHlwZVRvUHJvcHMgfSBmcm9tICcuL3BhZ2UtZm9ybS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHJlZkJ0bkxpc3RDb21wb25lbnQgfSBmcm9tICcuLi9ocmVmLWJ0bi1saXN0L2hyZWYtYnRuLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2FwcC1wYWdlLWZvcm0nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbXG5cdFx0QnV0dG9uTW9kdWxlLFxuXHRcdFJlYWN0aXZlRm9ybXNNb2R1bGUsXG5cdFx0Rm9ybUNvbXBvbmVudCxcblx0XHRMb2dDb21wb25lbnQsXG5cdFx0Q3J1bWJBY3Rpb25Db21wb25lbnQsXG5cdFx0U3RlcHNDb21wb25lbnQsXG5cdFx0R3JpZENvbXBvbmVudCxcblx0XHRUYWJzTW9kdWxlLFxuXHRcdFJvd1NlbGVjdG9yQ29tcG9uZW50LFxuXHRcdFRyYW5zbGF0ZVBpcGUsXG5cdFx0SHJlZkJ0bkxpc3RDb21wb25lbnQsXG5cdF0sXG5cdHRlbXBsYXRlVXJsOiAnLi9wYWdlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybDogJy4vcGFnZS1mb3JtLmNvbXBvbmVudC5zY3NzJyxcblx0cHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgUGFnZUZvcm1Db21wb25lbnQgZXh0ZW5kcyBBbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdEBWaWV3Q2hpbGQoJ2NGb3JtJykgY0Zvcm0hOiBGb3JtQ29tcG9uZW50O1xuXHRAVmlld0NoaWxkcmVuKCdjdXN0b21HcmlkJykgY3VzdG9tR3JpZCE6IFF1ZXJ5TGlzdDxHcmlkQ29tcG9uZW50Pjtcblx0QFZpZXdDaGlsZHJlbigndGFiRm9ybScpIHRhYkZvcm0hOiBRdWVyeUxpc3Q8Rm9ybUNvbXBvbmVudD47XG5cdGFkZFZpc2libGUgPSBpbnB1dDxib29sZWFuPigpO1xuXHRncmlkTGlzdCA9IGlucHV0PGFueVtdPihbXSk7XG5cdGZvcm0gPSBpbnB1dC5yZXF1aXJlZDxGb3JtT3B0aW9ucz4oe30pO1xuXHRnZXRQcm1JbnB1dCA9IGlucHV0LnJlcXVpcmVkPEdldD4oe30pO1xuXHRzdGF0dXNTdGVwcyA9IGlucHV0PFN0ZXBbXT4oW10pO1xuXHRzdGF0dXNLZXkgPSBpbnB1dCgnc3RhdHVzJyk7XG5cdGhyZWZCdG5MaXN0ID0gaW5wdXQ8SHJlZkJ0bkxpc3RbXT4oW10pO1xuXHRzZXRUaXRsZSA9IGlucHV0PHN0cmluZz4oKTtcblx0YWN0aW9uTGlzdCA9IGlucHV0PFBlcm1pc3Npb25CdG5bXT4oW10pO1xuXHRtb2RlbExvZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblx0Zm9ybURpc2FibGVkID0gaW5wdXQ8RnVuY3Rpb24+KCk7XG5cdHN0YXR1c0NvbmYgPSBpbnB1dDxhbnk+KClcblx0Zm9ybURldGFpbCA9IGlucHV0PGFueT4oKVxuXHRzYXZlRnVuYyA9IGlucHV0PGFueT4oKVxuXHRjb25maWdOZXdQYXRoID0gaW5wdXQ8YW55PigpXG5cblx0dXNlckhpc3RvcnlTZXJ2aWNlID0gaW5qZWN0KFVzZXJIaXN0b3J5U2VydmljZSk7XG5cdGluZGV4VmFsdWUgPSAwO1xuXHR2aXNpYmxlID0gZmFsc2U7XG5cdGRpYWxvZ1NlYXJjaFBybSE6IFNlYXJjaDtcblx0c2VsZWN0T3B0aW9ucyE6IEdyaWRPcHRpb25zO1xuXHRzZWxlY3REYXRhOiBhbnlbXSA9IFtdO1xuXHRwYWdlVXJsID0gJyc7XG5cdG5ld1VybCA9ICcnO1xuXHRpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblx0YXV0aExldmVsID0gaW5wdXQ8bnVtYmVyPigtMSk7XG5cdGhyZWZzOiBhbnlbXSA9IFtdO1xuXHRhY3Rpb24gPSBpbmplY3QoQWN0aW9uU2VydmljZSk7XG5cdHN1YkZvcm1Nb2RlbDphbnkgPSB7fVxuXHRzYXZlQnRuRGlzYWJsZSA9IGZhbHNlXG5cdGdyaWREaXNhYmxlID0gZmFsc2UgXG5cdHNlbGVjdGlvbktleXM6IGFueVtdID0gW107XG5cdHN1YkRlbGV0ZUlkczphbnlbXSA9IFtdXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5pZCA9IE51bWJlcih0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtTWFwLmdldCgnaWQnKSk7XG5cdFx0dGhpcy5wYWdlVXJsID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC51cmxcblx0XHRcdC5tYXAoKHNlZ21lbnQpID0+IHNlZ21lbnQucGF0aClcblx0XHRcdC5qb2luKCcvJylcblx0XHRcdC5yZXBsYWNlKC8oW15cXC9dKikkLywgJycpO1xuXHRcdHRoaXMubmV3VXJsID0gYCR7dGhpcy5wYWdlVXJsfW5ld2A7XG5cdFx0ZWZmZWN0KFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHR0aGlzLm1vZGVsTmFtZSA9IHRoaXMuZ2V0UHJtSW5wdXQoKS5tb2RlbE5hbWUhO1xuXHRcdFx0XHR0aGlzLmdldFBybSA9IHsgLi4udGhpcy5nZXRQcm1JbnB1dCgpIH07XG5cdFx0XHRcdHRoaXMuaWQgJiYgKHRoaXMuZ2V0UHJtLmlkID0gdGhpcy5pZCk7XG5cdFx0XHRcdGlmKHRoaXMuaWQpe1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHR5cGVvZiB0aGlzLmZvcm1EZXRhaWwoKSwnZm9ybS0tLS0nKVxuXHRcdFx0XHRcdHR5cGVvZiB0aGlzLmZvcm1EZXRhaWwoKSA9PSAnZnVuY3Rpb24nID8gdGhpcy5mb3JtRGV0YWlsKCkodGhpcy5pZCkgOiB0aGlzLmdldERldGFpbCgpO1xuXHRcdFx0XHR9ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5nZXRQcm0uZGF0YSA9IHt9XG5cdFx0XHRcdFx0dGhpcy5ncmlkTGlzdCgpLmZvckVhY2godiA9PiB7XG5cdFx0XHRcdFx0XHRpZih2LnR5cGUgPT0gJ2dyaWQnKXtcblx0XHRcdFx0XHRcdFx0dGhpcy5nZXRQcm0uZGF0YVt2LnN1YkRhdGFLZXldID0gW11cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuXHRcdCk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0dGhpcy5mb3JtT3B0aW9ucyA9IHsgLi4udGhpcy5mb3JtKCkgfTtcblx0XHR9KTtcblx0XHRlZmZlY3QoXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdHRoaXMuaXNMb2cgPSB0aGlzLm1vZGVsTG9nKCk7XG5cdFx0XHR9LFxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuXHRcdCk7XG5cdFx0ZWZmZWN0KFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy5zdGF0dXNTdGVwcygpLmxlbmd0aCA+IDAgJiYgIXRoaXMuaWQpIHtcblx0XHRcdFx0XHR0aGlzLnVwc2VydFBybS5hZGREYXRhIVt0aGlzLnN0YXR1c0tleSgpXSA9IHRoaXMuc3RhdHVzU3RlcHMoKVswXVsndmFsdWUnXTtcblx0XHRcdFx0XHR0aGlzLmdldFBybS5kYXRhID0gT2JqZWN0LmFzc2lnbih0aGlzLmdldFBybS5kYXRhIHx8IHt9LCB7XG5cdFx0XHRcdFx0XHRbdGhpcy5zdGF0dXNLZXkoKV06IHRoaXMuc3RhdHVzU3RlcHMoKVswXVsndmFsdWUnXSxcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcblx0XHQpO1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRpZih0aGlzLmF1dGhMZXZlbCgpIDwgMyl7XG5cdFx0XHRcdHRoaXMuc2V0RGlzYWJsZWQoKVxuXHRcdFx0fVxuXHRcdH0se2FsbG93U2lnbmFsV3JpdGVzOnRydWV9KVxuXHR9XG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdHRoaXMudXBDYiA9IHRoaXMudXBDYi5iaW5kKHRoaXMpO1xuXHR9XG5cblx0c3VibWl0Rm9ybSgpOiBhbnkge1xuXHRcdC8vIHRoaXMudGFiRm9ybS52YWxpZGF0ZSgpXG5cdFx0Y29uc29sZS5sb2coJ2dldFBybS0tLS0tLScsdGhpcy5nZXRQcm0pXG5cdFx0bGV0IHN1YkZvcm0gPSB0cnVlXG5cdFx0aWYodGhpcy50YWJGb3JtLmxlbmd0aCA+IDApe1xuXHRcdFx0dGhpcy50YWJGb3JtLmZvckVhY2goaXRlbSA9PiB7XG5cdFx0XHRcdGlmKCFpdGVtLnZhbGlkYXRlKCkpe1xuXHRcdFx0XHRcdHN1YkZvcm0gPSBmYWxzZVxuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdH1cblx0XHRpZiAodGhpcy5jRm9ybS52YWxpZGF0ZSgpICYmIHN1YkZvcm0pIHtcblx0XHRcdGxldCBjYjogYW55ID0gdGhpcy5pZCA9PT0gMCA/IG51bGwgOiB0aGlzLnVwQ2I7XG5cdFx0XHR0aGlzLmFjdGlvbi5sb2FkaW5nLnNldCh0cnVlKVxuXHRcdFx0dHlwZW9mIHRoaXMuc2F2ZUZ1bmMoKSA9PSAnZnVuY3Rpb24nID8gdGhpcy5zYXZlRnVuYygpKHRoaXMudXBzZXJ0UHJtLHRoaXMuaWQsY2IpIDogdGhpcy51cHNlcnQobnVsbCwgY2IpO1xuXHRcdH1cblx0fVxuXG5cdGRlbFJvd3MoZTogYW55KSB7XG5cdFx0Y29uc3QgZ3JpZFRhYiA9IHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdO1xuXHRcdGNvbnN0IGRlbGV0ZUZ1bmMgPSBncmlkVGFiLmRlbGV0ZUZ1bmM7XG5cdFx0Y29uc3Qgc3ViVGFibGUgPSBncmlkVGFiLmdyaWRPcHRpb25zLm1vZGVsTmFtZTtcblxuXHRcdGxldCBwcm0gPSB7XG5cdFx0XHRtb2RlbE5hbWU6IHN1YlRhYmxlLFxuXHRcdFx0aWRzOiBlLFxuXHRcdH07XG5cdFx0aWYgKCFkZWxldGVGdW5jKSB7XG5cdFx0XHR0aGlzLndlYl9yZW1vdmUocHJtKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuXHRcdFx0XHR0aGlzLmdldERldGFpbCgpO1xuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRlbGV0ZUZ1bmMoKS5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmdldERldGFpbCgpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cdHVwQ2IocmVzPzogYW55KSB7XG5cdFx0aWYgKHJlcy5pZCA9PSAwKSB7XG5cdFx0XHR0eXBlb2YgdGhpcy5mb3JtRGV0YWlsKCkgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMuZm9ybURldGFpbCgpKHRoaXMuaWQpIDogdGhpcy5nZXREZXRhaWwoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdGxldCBlZGl0VXJsID0gYCR7dGhpcy5wYWdlVXJsfSR7cmVzLmlkfWA7XG5cdFx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFtlZGl0VXJsXSk7XG5cdFx0XHR9LCAxNTAwKTtcblx0XHR9XG5cdFx0dGhpcy5hY3Rpb24uc2F2ZVNpZ25hbC5zZXQoZmFsc2UpO1xuXHRcdHRoaXMuY0Zvcm0uZmluYWxpemUoKTtcblx0fVxuXHQvLyBUT0RPIOaYr+WQpumcgOimgeaVsOaNrui9rOaNouWbnuiwg+WHveaVsFxuXHRvbk9rKGU6IGFueSkge1xuXHRcdGNvbnN0IGdyaWQgPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXTtcblx0XHR0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXS5zZWxlY3REYXRhID0gW107XG5cdFx0aWYgKGUubGVuZ3RoID4gMCkge1xuXHRcdFx0bGV0IHVuaXF1ZUtleXMgPSBbXTtcblx0XHRcdGlmIChncmlkLnVuaXF1ZUZpZWxkKSB7XG5cdFx0XHRcdGNvbnN0IHJvd0RhdGEgPSB0aGlzLmN1c3RvbUdyaWQuZ2V0KHRoaXMuaW5kZXhWYWx1ZSkhXG5cdFx0XHRcdFx0LmdldEdyaWQoKVxuXHRcdFx0XHRcdC5hcGkuZ2V0UmVuZGVyZWROb2RlcygpXG5cdFx0XHRcdFx0Lm1hcCgobm9kZSkgPT4gbm9kZS5kYXRhKTtcblx0XHRcdFx0dW5pcXVlS2V5cyA9IHJvd0RhdGEubWFwKChpdGVtOiBhbnkpID0+IGl0ZW1bZ3JpZC51bmlxdWVGaWVsZCFdKTtcblx0XHRcdH1cblx0XHRcdGUuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG5cdFx0XHRcdGxldCBvYmogPSBncmlkLnNlbGVjdERhdGFDYiA/IGdyaWQuc2VsZWN0RGF0YUNiKGl0ZW0pIDogeyAuLi5pdGVtIH07XG5cdFx0XHRcdGlmIChncmlkLnVuaXF1ZUZpZWxkICYmIHVuaXF1ZUtleXMuaW5jbHVkZXMob2JqW2dyaWQudW5pcXVlRmllbGQhXSB8fCAnJykpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0Z3JpZC5zZWxlY3REYXRhIS5wdXNoKG9iaik7XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMuYWN0aW9uLnNhdmVTaWduYWwuc2V0KHRydWUpO1xuXHRcdH1cblx0fVxuXG5cdG9uQ2FuY2VsU2VsZWN0ZWQoZTphbnkpe1xuXHRcdGNvbnN0IGdyaWQgPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXTtcblx0XHRsZXQgZGF0YXM6YW55ID0gW11cblx0XHRlLmZvckVhY2goKGl0ZW06YW55KSA9PiB7XG5cdFx0XHRjb25zdCBkYXRhID0gZ3JpZC5zZWxlY3REYXRhQ2IgPyB7Li4uZ3JpZC5zZWxlY3REYXRhQ2IoaXRlbSl9IDogaXRlbTtcblx0XHRcdGRhdGFzLnB1c2goZGF0YSlcblx0XHR9KVxuXHRcdGlmKGdyaWQudW5pcXVlRmllbGQpe1xuXHRcdFx0Y29uc3Qga2V5cyA9IGRhdGFzLm1hcCgoaXRlbTphbnkpID0+IGl0ZW1bZ3JpZC51bmlxdWVGaWVsZF0pXG5cdFx0XHRjb25zdCByb3dEYXRhID0gdGhpcy5jdXN0b21HcmlkLmdldCh0aGlzLmluZGV4VmFsdWUpIVxuXHRcdFx0XHRcdC5nZXRHcmlkKClcblx0XHRcdFx0XHQuYXBpLmdldFJlbmRlcmVkTm9kZXMoKVxuXHRcdFx0XHRcdC5tYXAoKG5vZGUpID0+IG5vZGUuZGF0YSk7XG5cdFx0XHRsZXQgZGVsZXRlZFJvd3MgPSByb3dEYXRhLmZpbHRlcigoaXRlbTphbnkpID0+IGtleXMuaW5jbHVkZXMoaXRlbVtncmlkLnVuaXF1ZUZpZWxkXSkpXG5cdFx0XHR0aGlzLnN1YkRlbGV0ZUlkcyA9IGRlbGV0ZWRSb3dzLm1hcCgodjphbnkpID0+IHYuaWQpLmZpbHRlcigodjphbnkpID0+IHYpXG5cdFx0XHRjb25zdCBpZE5vdFJvd3MgPSBkZWxldGVkUm93cy5maWx0ZXIoKHY6YW55KSA9PiAhdi5pZCk7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnaWROb3RSb3dzLS0tLScsaWROb3RSb3dzKVxuXHRcdFx0Y29uc3QgZGVsZXRlTm9kZXM6YW55ID0gW11cblx0XHRcdHRoaXMuY3VzdG9tR3JpZC5nZXQodGhpcy5pbmRleFZhbHVlKSFcblx0XHRcdFx0XHQuZ2V0R3JpZCgpXG5cdFx0XHRcdFx0LmFwaS5mb3JFYWNoTm9kZSgobm9kZTphbnkpID0+IHtcblx0XHRcdFx0XHRcdGxldCBtYWluID0gbm9kZS5kYXRhW2dyaWQudW5pcXVlRmllbGRdO1xuXHRcdFx0XHRcdFx0bGV0IGlzRXhpdCA9IGlkTm90Um93cy5maW5kSW5kZXgoKHY6YW55KSA9PiB2W2dyaWQudW5pcXVlRmllbGRdID09IG1haW4pXG5cdFx0XHRcdFx0XHRpZihpc0V4aXQgPiAtMSl7XG5cdFx0XHRcdFx0XHRcdGRlbGV0ZU5vZGVzLnB1c2gobm9kZS5kYXRhKVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHQvLyBpZihkZWxldGVkSWRzLmxlbmd0aCA+IDApe1xuXHRcdFx0Ly8gXHR0aGlzLmRlbFJvd3MoZGVsZXRlZElkcylcblx0XHRcdC8vIH0gZWxzZSB7XG5cdFx0XHR0aGlzLmN1c3RvbUdyaWQuZ2V0KHRoaXMuaW5kZXhWYWx1ZSkhLnNlbGVjdFJvd3NEZWxldGVkKGRlbGV0ZU5vZGVzKVxuXHRcdFx0Ly8gfVxuXHRcdH1cblx0fVxuXHRnZXREZXRhaWwoKSB7XG5cdFx0dGhpcy53ZWJfZ2V0KHRoaXMuZ2V0UHJtKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuXHRcdFx0dGhpcy5ncmlkTGlzdCgpLmZvckVhY2goKHZhbHVlKSA9PiB7XG5cdFx0XHRcdGlmKHZhbHVlLnR5cGUgPT0gJ2dyaWQnICYmICF0aGlzLmdldFBybS5kYXRhLmhhc093blByb3BlcnR5KHZhbHVlLnN1YkRhdGFLZXkpKXtcblx0XHRcdFx0XHR0aGlzLmdldFBybS5kYXRhW3ZhbHVlLnN1YkRhdGFLZXldID0gW11cblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHRcdGNvbnNvbGUubG9nKCd0aGlzLmdldFBybS5kYXRhJyx0aGlzLmdldFBybS5kYXRhKVxuXHRcdFx0dGhpcy5kZXRhaWxDYihyZXMpXG5cdFx0fSk7XG5cdH1cblx0Ly8g6I635Y+W6K+m5oOF5Zue6LCDXG5cdGRldGFpbENiKHJlczphbnkpe1xuXHRcdHRoaXMudXBkYXRlVGl0bGUocmVzKTtcblx0XHRpZih0eXBlb2YgdGhpcy5mb3JtRGlzYWJsZWQoKSA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdHRoaXMuZm9ybURpc0Z1bmMoKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuaHJlZkJ0bkxpc3QoKS5sZW5ndGggPiAwKSB7XG5cdFx0XHR0aGlzLnNldEhyZWZWYWx1ZSgpO1xuXHRcdH1cblx0XHR0aGlzLmdyaWRMaXN0KCkuZm9yRWFjaCh2ID0+IHtcblx0XHRcdGlmKHYudHlwZSA9PSAnZm9ybScpe1xuXHRcdFx0XHR0aGlzLnN1YkZvcm1Nb2RlbFt2LnN1YkRhdGFLZXldID0gcmVzW3Yuc3ViRGF0YUtleV1bMF1cblx0XHRcdH1cblx0XHR9KVxuXHR9XG5cdHNldEhyZWZWYWx1ZSgpIHtcblx0XHR0aGlzLmhyZWZCdG5MaXN0KCkubWFwKChpdGVtOiBhbnkpID0+IHtcblx0XHRcdGlmIChpdGVtLmhhc093blByb3BlcnR5KCdzZWFyY2hDb3VudCcpICYmIHR5cGVvZiBpdGVtLnNlYXJjaENvdW50ID09ICdvYmplY3QnKSB7XG5cdFx0XHRcdGl0ZW0uc2VhcmNoQ291bnQuY29sdW1uRmlsdGVycy5mb3JFYWNoKCh2OiBhbnkpID0+IHtcblx0XHRcdFx0XHRpZiAodHlwZW9mIHYuZml0ZXIgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdHYuZml0ZXIgPSB2LmZpdGVyKHRoaXMuZ2V0UHJtLmRhdGEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMud2ViX3NlYXJjaENvdW50KGl0ZW0uc2VhcmNoQ291bnQpLnN1YnNjcmliZSgocmVzKSA9PiB7XG5cdFx0XHRcdFx0aXRlbS52YWx1ZSA9IHJlcy50b3RhbE51bSB8fCAwO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHR1cGRhdGVUaXRsZShyZXM6IGFueSkge1xuXHRcdGxldCBtYWluRmllbGQgPSB0aGlzLmZvcm0oKS5tYWluRmllbGQ7XG5cdFx0bGV0IHRpdGxlID0gcmVzW21haW5GaWVsZCFdO1xuXHRcdHRoaXMudXNlckhpc3RvcnlTZXJ2aWNlLnNldExhc3RUaXRsZSh0aXRsZSk7XG5cdH1cblx0ZGF0YVNvdXJjZVNob3coKSB7XG5cdFx0Y29uc3QgZ3JpZCA9IHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdO1xuXHRcdHRoaXMuZGlhbG9nU2VhcmNoUHJtID0ge307XG5cdFx0dGhpcy5zZWxlY3RPcHRpb25zID0gdGhpcy5ncmlkTGlzdCgpW3RoaXMuaW5kZXhWYWx1ZV1bJ3NlbGVjdE9wdGlvbnMnXSE7XG5cdFx0aWYoKHRoaXMuc2VsZWN0T3B0aW9ucyBhcyBhbnkpPy5zZWFyY2hQcm0pe1xuXHRcdFx0XHQodGhpcy5zZWxlY3RPcHRpb25zIGFzIGFueSkuc2VhcmNoUHJtPy5jb2x1bW5GaWx0ZXJzPy5mb3JFYWNoKCh2OmFueSkgPT4ge1xuXHRcdFx0XHRpZih0eXBlb2Ygdi5maXRlciA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0XHR2LmZpdGVyID0gdi5maXRlcihudWxsLHRoaXMuZ2V0UHJtLmRhdGEpXG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHR0aGlzLmRpYWxvZ1NlYXJjaFBybSA9ICh0aGlzLnNlbGVjdE9wdGlvbnMgYXMgYW55KT8uc2VhcmNoUHJtXG5cdFx0fVxuXHRcdHRoaXMuZGlhbG9nU2VhcmNoUHJtLm1vZGVsTmFtZSA9IHRoaXMuc2VsZWN0T3B0aW9ucy5tb2RlbE5hbWU7XG5cdFx0aWYodGhpcy5zZWxlY3RPcHRpb25zLnNlbGVjdGlvbk1vZGUpe1xuXHRcdFx0dGhpcy5zZWxlY3RPcHRpb25zLnN1cHByZXNzUm93RGVzZWxlY3Rpb24gPSB0cnVlXG5cdFx0XHR0aGlzLnNlbGVjdE9wdGlvbnMuc2VsZWN0aW9uTW9kZSA9IHRoaXMuc2VsZWN0T3B0aW9ucy5zZWxlY3Rpb25Nb2RlO1xuXHRcdFx0Y29uc3QgaXNSb3dTZWxlY3RhYmxlID0gdGhpcy5zZWxlY3RPcHRpb25zLmlzUm93U2VsZWN0YWJsZVxuXHRcdFx0XHRpZih0aGlzLnNlbGVjdE9wdGlvbnMuc2VsZWN0aW9uTW9kZSAhPSAnbm9uZScpe1xuXHRcdFx0XHRcdHRoaXMuc2VsZWN0T3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB7XG5cdFx0XHRcdFx0XHRtb2RlOiB0aGlzLnNlbGVjdE9wdGlvbnMuc2VsZWN0aW9uTW9kZSA9PSAnc2luZ2xlJyA/ICdzaW5nbGVSb3cnIDogJ211bHRpUm93Jyxcblx0XHRcdFx0XHRcdGlzUm93U2VsZWN0YWJsZTogaXNSb3dTZWxlY3RhYmxlID8gaXNSb3dTZWxlY3RhYmxlOiB1bmRlZmluZWQsXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQgIHRoaXMuc2VsZWN0T3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB1bmRlZmluZWRcblx0XHRcdCBcdH1cblx0XHR9XG5cdFx0Ly8gY29uc29sZS5sb2coJ29wdGlvbnMtLS0tLScsdGhpcy5zZWxlY3RPcHRpb25zKVxuXHRcdGlmKGdyaWQudW5pcXVlRmllbGQpIHtcblx0XHRcdGNvbnN0IHJvd0RhdGEgPSB0aGlzLmN1c3RvbUdyaWQuZ2V0KHRoaXMuaW5kZXhWYWx1ZSkhXG5cdFx0XHRcdFx0LmdldEdyaWQoKVxuXHRcdFx0XHRcdC5hcGkuZ2V0UmVuZGVyZWROb2RlcygpXG5cdFx0XHRcdFx0Lm1hcCgobm9kZSkgPT4gbm9kZS5kYXRhKTtcblx0XHRcdHRoaXMuc2VsZWN0aW9uS2V5cyA9IHJvd0RhdGE/Lm1hcCgoaXRlbTogYW55KSA9PiBpdGVtW2dyaWQudW5pcXVlRmllbGQhXSkgfHwgW107XG5cdFx0XHQvLyBjb25zb2xlLmxvZygndGhpcy5zZWxlY3Rpb25LZXlzLS0tLScsdGhpcy5zZWxlY3Rpb25LZXlzKVxuXHRcdFx0aWYodHlwZW9mIHRoaXMuc2VsZWN0T3B0aW9ucy5yb3dTZWxlY3Rpb24gPT0gJ29iamVjdCcpe1xuXHRcdFx0XHR0aGlzLnNlbGVjdE9wdGlvbnMucm93U2VsZWN0aW9uLmNoZWNrYm94ZXMgPSAocGFyYW1zKSA9PiB7XG5cdFx0XHRcdFx0bGV0IGl0ZW0gPSB0aGlzLnNlbGVjdE9wdGlvbnMuZGF0YUtleSAhPSAnJ1xuXHRcdFx0XHRcdFx0XHQ/IHJvd0RhdGEuZmluZCgodjphbnkpID0+IHZbZ3JpZC51bmlxdWVGaWVsZF0gPT0gcGFyYW1zLmRhdGFbdGhpcy5zZWxlY3RPcHRpb25zLmRhdGFLZXkhXSlcblx0XHRcdFx0XHRcdFx0OiByb3dEYXRhLmZpbmQoKHY6YW55KSA9PiB2W2dyaWQudW5pcXVlRmllbGRdID09IHBhcmFtcy5kYXRhLmlkKTtcblx0XHRcdFx0XHRpZihpdGVtICYmIGl0ZW0uaWQpe1xuXHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0cnVlXG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZighdGhpcy5zZWxlY3RPcHRpb25zLnJvd1NlbGVjdGlvbil7XG5cdFx0XHRcdHRoaXMuc2VsZWN0T3B0aW9ucy5yb3dTZWxlY3Rpb24gPSAge1xuXHRcdFx0XHRcdG1vZGU6ICdtdWx0aVJvdycsXG5cdFx0XHRcdFx0Y2hlY2tib3hlczogKHBhcmFtcykgPT4ge1xuXHRcdFx0XHRcdFx0bGV0IGl0ZW0gPSB0aGlzLnNlbGVjdE9wdGlvbnMuZGF0YUtleSAhPSAnJ1xuXHRcdFx0XHRcdFx0XHQ/IHJvd0RhdGEuZmluZCgodjphbnkpID0+IHZbZ3JpZC51bmlxdWVGaWVsZF0gPT0gcGFyYW1zLmRhdGFbdGhpcy5zZWxlY3RPcHRpb25zLmRhdGFLZXkhXSlcblx0XHRcdFx0XHRcdFx0OiByb3dEYXRhLmZpbmQoKHY6YW55KSA9PiB2W2dyaWQudW5pcXVlRmllbGRdID09IHBhcmFtcy5kYXRhLmlkKTtcblx0XHRcdFx0XHRcdGlmKGl0ZW0gJiYgaXRlbS5pZCl7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBmYWxzZVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWVcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGVsc2V7XG5cdFx0XHR0aGlzLnNlbGVjdGlvbktleXMgPSBbXTtcblx0XHR9XG5cdFx0dGhpcy52aXNpYmxlID0gdHJ1ZTtcblx0fVxuXG5cdGdvUnVuKGRhdGE6IGFueSkge1xuXHRcdGlmICh0eXBlb2YgZGF0YS51cmwgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGxldCB1cmwgPSBkYXRhLnVybCh0aGlzLmdldFBybS5kYXRhKTtcblx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxdKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3dhcm4nLCBzdW1tYXJ5OiAnV2FybicsIGRldGFpbDogJ+ivt+mFjee9rui3s+i9rOmTvuaOpScgfSk7XG5cdFx0fVxuXHR9XG5cblx0YXV0aENsaWNrKGJ0bjogYW55KSB7XG5cdFx0aWYgKGJ0bi5oYXNPd25Qcm9wZXJ0eSgnb25DbGljaycpKSB7XG5cdFx0XHRidG4ub25DbGljayh0aGlzLmdldFBybS5kYXRhKTtcblx0XHR9XG5cdH1cblx0c3RhdHVzQ2hhbmdlKHZhbHVlOiBhbnksIGN1c3RvbVN0ZXBzOiBTdGVwc0NvbXBvbmVudCkge1xuXHRcdGlmICh0aGlzLmF1dGhMZXZlbCgpIDwgNCB8fCAhdGhpcy5zdGF0dXNDb25mKCkuaXNDbGljaykgcmV0dXJuO1xuXHRcdGlmICh0aGlzLmlkKSB7XG5cdFx0XHRsZXQgcGFyYW06IGFueSA9IHtcblx0XHRcdFx0bW9kZWxOYW1lOiB0aGlzLm1vZGVsTmFtZSxcblx0XHRcdFx0ZGF0YTogeyBpZDogdGhpcy5pZCwgW3RoaXMuc3RhdHVzS2V5KCldOiB2YWx1ZSB9LFxuXHRcdFx0fTtcblx0XHRcdGlmICh0aGlzLmlzTG9nKSB7XG5cdFx0XHRcdHBhcmFtLmxvZ01vZGVsID0gYCR7dGhpcy5tb2RlbE5hbWV9TG9nYDtcblx0XHRcdFx0cGFyYW0ubG9nID0ge1xuXHRcdFx0XHRcdHBpZDogdGhpcy5pZCxcblx0XHRcdFx0XHRjb250ZW50OiBgW+eKtuaAgV0gJHt0aGlzLmdldFBybS5kYXRhIVt0aGlzLnN0YXR1c0tleSgpXX0gLT4gJHt2YWx1ZX1gLFxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdFx0dGhpcy53ZWJfd3JpdGUocGFyYW0pLnN1YnNjcmliZSgocmVzKSA9PiB7XG5cdFx0XHRcdHRoaXMuZ2V0RGV0YWlsKCk7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5nZXRQcm0uZGF0YSA9IE9iamVjdC5hc3NpZ24odGhpcy5nZXRQcm0uZGF0YSB8fCB7fSwge1xuXHRcdFx0XHRbdGhpcy5zdGF0dXNLZXkoKV06IHZhbHVlLFxuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLnVwc2VydFBybS5hZGREYXRhIVt0aGlzLnN0YXR1c0tleSgpXSA9IHZhbHVlO1xuXHRcdFx0dGhpcy5jRm9ybS50cmlnZ2VyTW9kZWxFZmZlY3QoeyBbdGhpcy5zdGF0dXNLZXkoKV06IHZhbHVlIH0pO1xuXHRcdFx0Ly8gY3VzdG9tU3RlcHMucmVmcmVzaFN0ZXBzKClcblx0XHR9XG5cdH1cblxuXHRmb3JtRGlzRnVuYygpIHtcblx0XHRsZXQgZGF0YSA9IHRoaXMuZm9ybURpc2FibGVkKCkhKHRoaXMuZ2V0UHJtLmRhdGEpO1xuXHRcdGlmKHR5cGVvZiBkYXRhID09PSAnYm9vbGVhbicpe1xuXHRcdFx0dGhpcy5zYXZlQnRuRGlzYWJsZSA9IGRhdGFcblx0XHRcdHRoaXMuZ3JpZERpc2FibGUgPSBkYXRhXG5cdFx0XHR0aGlzLmRpc2FibGVGb3JtKGRhdGEpXG5cdFx0XHR0aGlzLmRpc2FiZWxkQ2hpbGQoZGF0YSlcblx0XHR9XG5cdFx0aWYodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKXtcblx0XHRcdGNvbnN0IGRpc2FiZWxkID0gZGF0YS5kaXNhYmxlZFxuXHRcdFx0Y29uc3QgZmlsdGVycyA9IGRhdGEuZmlsdGVycyB8fCBbXVxuXHRcdFx0aWYoIWZpbHRlcnMuaW5jbHVkZXMoJ2Zvcm0nKSl7XG5cdFx0XHRcdHRoaXMuZGlzYWJsZUZvcm0oZGlzYWJlbGQpXG5cdFx0XHR9XG5cdFx0XHRpZighZmlsdGVycy5pbmNsdWRlcygnZ3JpZCcpKXtcblx0XHRcdFx0dGhpcy5ncmlkRGlzYWJsZSA9IGRpc2FiZWxkXG5cdFx0XHRcdHRoaXMuZGlzYWJlbGRDaGlsZChkaXNhYmVsZClcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0ZGlzYWJsZUZvcm0oZGlzYWJsZTpib29sZWFuKXtcblx0XHR0aGlzLmZvcm1PcHRpb25zLmZpZWxkcz8uZm9yRWFjaCgodikgPT4ge1xuXHRcdFx0di5ncm91cD8uZm9yRWFjaCgoZzogYW55KSA9PiB7XG5cdFx0XHRcdGxldCBmaWVsZERpc2FibGVkID0gZ1tmb3JtVHlwZVRvUHJvcHNbZy50eXBlXV0uZGlzYWJsZWQgfHwgZmFsc2U7XG5cdFx0XHRcdGlmIChkaXNhYmxlKSB7XG5cdFx0XHRcdFx0dGhpcy5jRm9ybS5nZXRGaWVsZChnLmtleSk/LmZpZWxkQ29udHJvbCEubWFya0FzUHJpc3RpbmUoe2VtaXRFdmVudDogZmFsc2V9KTtcblx0XHRcdFx0XHR0aGlzLmNGb3JtLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQhZmllbGREaXNhYmxlZCAmJiB0aGlzLmNGb3JtLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KTtcdFx0XG5cdH1cblx0ZGlzYWJlbGRDaGlsZChkaXNhYmVsZDpib29sZWFuKXtcblx0XHR0aGlzLmdyaWRMaXN0KCkuZm9yRWFjaCgodixpbmRleDphbnkpID0+IHtcblx0XHRcdGlmKHYudHlwZSA9PSAnZ3JpZCcpe1xuXHRcdFx0XHR2LmdyaWRPcHRpb25zLmNvbHVtbkRlZnMuZm9yRWFjaCgoaXRlbTphbnkpID0+IHtcblx0XHRcdFx0XHRpZihkaXNhYmVsZCAmJiBpdGVtLmhhc093blByb3BlcnR5KCdlZGl0YWJsZScpKXtcblx0XHRcdFx0XHRcdGl0ZW0uZWRpdGFibGUgPSBmYWxzZVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdFx0dGhpcy5jdXN0b21HcmlkLmdldChpbmRleCkhLmdldEdyaWQoKS5hcGkuc2V0R3JpZE9wdGlvbihcblx0XHRcdFx0XHQnY29sdW1uRGVmcycsIFxuXHRcdFx0XHRcdHYuZ3JpZE9wdGlvbnMuY29sdW1uRGVmc1xuXHRcdFx0XHQpXG5cdFx0XHR9IGVsc2UgaWYodi50eXBlID09ICdmb3JtJyl7XG5cdFx0XHRcdHYuZmllbGRzPy5mb3JFYWNoKChpdGVtOmFueSwpID0+IHtcblx0XHRcdFx0XHRpdGVtLmdyb3VwPy5mb3JFYWNoKChnOiBhbnkpID0+IHtcblx0XHRcdFx0XHRcdGxldCBmaWVsZERpc2FibGVkID0gZ1tmb3JtVHlwZVRvUHJvcHNbZy50eXBlXV0uZGlzYWJsZWQgfHwgZmFsc2U7XG5cdFx0XHRcdFx0XHRpZiAoZGlzYWJlbGQpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy50YWJGb3JtLmdldChpbmRleCkhLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5tYXJrQXNQcmlzdGluZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cdFx0XHRcdFx0XHRcdHRoaXMudGFiRm9ybS5nZXQoaW5kZXgpIS5nZXRGaWVsZChnLmtleSk/LmZpZWxkQ29udHJvbCEuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQhZmllbGREaXNhYmxlZCAmJiB0aGlzLmNGb3JtLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KVxuXHR9XG5cdHNldERpc2FibGVkKCl7XG5cdFx0dGhpcy5ncmlkTGlzdCgpLmZvckVhY2goKHYsaW5kZXg6YW55KSA9PiB7XG5cdFx0XHRpZih2LnR5cGUgPT0gJ2Zvcm0nKXtcblx0XHRcdFx0di5maWVsZHM/LmZvckVhY2goKGl0ZW06YW55LCkgPT4ge1xuXHRcdFx0XHRcdGl0ZW0uZ3JvdXA/LmZvckVhY2goKGc6IGFueSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy50YWJGb3JtLmdldChpbmRleCkhLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSlcblx0fVxuXHR0YWJDbGljaygpe1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy50YWJGb3JtLmdldCh0aGlzLmluZGV4VmFsdWUpICYmIHRoaXMudGFiRm9ybS5nZXQodGhpcy5pbmRleFZhbHVlKSEucmVDYWxjTGFiZWxTaXplKClcblx0XHR9LDApXG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtZDpvdmVyZmxvdy1oaWRkZW5cIj5cblx0PGRpdiBjbGFzcz1cImZsZXggbWQ6ZmxleC13cmFwIGxnOmZsZXgtbm93cmFwIGl0ZW1zLWNlbnRlciBtZDpqdXN0aWZ5LWJldHdlZW4gcHktMSBweC0xIGJvcmRlci1iLVsxcHhdIGJvcmRlci1bI2RiZGJkYl0gYmctd2hpdGVcIj5cblx0XHQ8ZGl2IGNsYXNzPVwibWQ6YmFzaXMtMS8zIG9yZGVyLTFcIj5cblx0XHRcdDxhcHAtY3J1bWItYWN0aW9uXG5cdFx0XHRcdFthZGRWaXNpYmxlXT1cImFkZFZpc2libGUoKVwiXG5cdFx0XHRcdFtuZXdVcmxdPVwibmV3VXJsXCJcblx0XHRcdFx0W2lzU2hvd0NvZ109XCJ0cnVlXCJcblx0XHRcdFx0W291dGxpbmVkXT1cInRydWVcIlxuXHRcdFx0XHRbYXV0aExldmVsXT1cImF1dGhMZXZlbCgpXCJcblx0XHRcdFx0W2FjdGlvbkxpc3RdPVwiYWN0aW9uTGlzdCgpXCJcblx0XHRcdFx0W2NvbmZpZ05ld1BhdGhdPVwiY29uZmlnTmV3UGF0aCgpXCJcblx0XHRcdFx0W2RhdGFdPVwiZ2V0UHJtLmRhdGEgPz8ge31cIlxuXHRcdFx0XHRbc2F2ZUJ0bkRpc2FibGVdPVwic2F2ZUJ0bkRpc2FibGVcIlxuXHRcdFx0XHQoYWN0aW9uRXZlbnQpPVwiYXV0aENsaWNrKCRldmVudClcIlxuXHRcdFx0XHQoc2F2ZUV2ZW50KT1cInN1Ym1pdEZvcm0oKVwiPlxuXHRcdFx0PC9hcHAtY3J1bWItYWN0aW9uPlxuXHRcdDwvZGl2PlxuXG5cdFx0PGRpdiBjbGFzcz1cImJhc2lzLTEvNSBsZzpiYXNpcy0yLzMgb3JkZXItMiBsZzpvcmRlci0yIG1kOm9yZGVyLWxhc3QgbWQ6YmFzaXMtZnVsbCBtZDptdC1bNnB4XVwiPlxuXHRcdFx0PGhyZWYtYnRuLWxpc3Rcblx0XHRcdFx0W2hyZWZzXT1cImhyZWZCdG5MaXN0KClcIlxuXHRcdFx0XHQoaHJlZkNsaWNrKT1cImdvUnVuKCRldmVudClcIj48L2hyZWYtYnRuLWxpc3Q+XG5cdFx0XHQ8IS0tIEBpZiAoaWQpIHtcblx0XHRcdFx0QGZvciAoYnRuIG9mIGhyZWZCdG5MaXN0KCk7IHRyYWNrIGJ0bikge1xuXHRcdFx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHRcdFx0W3ZhcmlhbnRdPVwiYnRuPy52YXJpYW50XCJcblx0XHRcdFx0XHRcdFtzZXZlcml0eV09XCJidG4/LnNldmVyaXR5XCJcblx0XHRcdFx0XHRcdGNsYXNzPVwibXItWzZweF1cIlxuXHRcdFx0XHRcdFx0c2l6ZT1cInNtYWxsXCJcblx0XHRcdFx0XHRcdFtpY29uXT1cImJ0bj8uaWNvblwiXG5cdFx0XHRcdFx0XHRsYWJlbD1cInt7IGJ0bi5pMThuS2V5ID8gaTE4bi5mYW55aShidG4uaTE4bktleSkgOiBidG4ubGFiZWwgfX1cIlxuXHRcdFx0XHRcdFx0KGNsaWNrKT1cImdvUnVuKGJ0bilcIj5cblx0XHRcdFx0XHQ8L3AtYnV0dG9uPlxuXHRcdFx0XHR9XG5cdFx0XHR9IC0tPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJiYXNpcy0xLzMgb3JkZXItM1wiPjwvZGl2PlxuXHQ8L2Rpdj5cblx0PGRpdiBjbGFzcz1cImZsZXhcIj5cblx0XHQ8ZGl2IGNsYXNzPVwicHgtMiBmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgZmxleC0xXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJhc2lzLTEvMyBweS0xIGJhc2lzLWZ1bGwgbWQ6ZmxleCBpdGVtcy1jZW50ZXIgZmxleC1yb3cgb3JkZXItMVwiPlxuXHRcdFx0XHRAZm9yIChhY3Rpb24gb2YgYWN0aW9uTGlzdCgpOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgYWN0aW9uKSB7XG5cdFx0XHRcdFx0PHAtYnV0dG9uXG5cdFx0XHRcdFx0XHRzaXplPVwic21hbGxcIlxuXHRcdFx0XHRcdFx0W2ljb25dPVwiZ2V0UHJtLmRhdGE/Lmljb25cIlxuXHRcdFx0XHRcdFx0W2xhYmVsXT1cImFjdGlvbi5pMThuS2V5ID8gKGFjdGlvbi5pMThuS2V5IHwgdHJhbnNsYXRlKSA6IGFjdGlvbi5sYWJlbFwiXG5cdFx0XHRcdFx0XHRbZGlzYWJsZWRdPVwiYWN0aW9uLmJ0bkRpc2FibGVkID8gYWN0aW9uLmJ0bkRpc2FibGVkKGdldFBybS5kYXRhKSA6IGZhbHNlXCJcblx0XHRcdFx0XHRcdFtzdHlsZUNsYXNzXT1cIlxuXHRcdFx0XHRcdFx0XHQoYWN0aW9uLmF1dGggfHwgMCkgPiAoYXV0aExldmVsKCkgfHwgMCkgfHwgISFhY3Rpb24uYnRuSGlkZGVuPy4oZ2V0UHJtLmRhdGEpXG5cdFx0XHRcdFx0XHRcdFx0PyAnZm9ybS1hY3Rpb24gaGlkZGVuJ1xuXHRcdFx0XHRcdFx0XHRcdDogJ2Zvcm0tYWN0aW9uIGJsb2NrIG1yLVsuNXJlbV0nXG5cdFx0XHRcdFx0XHRcIlxuXHRcdFx0XHRcdFx0KG9uQ2xpY2spPVwiYWN0aW9uLm9uQ2xpY2sgIT0gJycgJiYgYWN0aW9uLm9uQ2xpY2s/LihnZXRQcm0uZGF0YSlcIj5cblx0XHRcdFx0XHQ8L3AtYnV0dG9uPlxuXHRcdFx0XHR9XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJtZDpiYXNpcy0yLzMgYmFzaXMtZnVsbCBmbGV4IG1kOmZsZXgtcm93LXJldmVyc2UgZmxleC1yb3cgbWQ6b3JkZXItMiBvcmRlci1maXJzdCB3LWZ1bGxcIj5cblx0XHRcdFx0PGN1c3RvbS1zdGVwc1xuXHRcdFx0XHRcdCNjdXN0b21TdGVwc1xuXHRcdFx0XHRcdGNsYXNzPVwidy1mdWxsXCJcblx0XHRcdFx0XHRbc3RlcHNdPVwic3RhdHVzU3RlcHMoKVwiXG5cdFx0XHRcdFx0W21vZGVsTG9nXT1cIm1vZGVsTG9nKClcIlxuXHRcdFx0XHRcdFtjdXJyZW50XT1cImdldFBybS5kYXRhICYmIGdldFBybS5kYXRhW3N0YXR1c0tleSgpXSAhPT0gdW5kZWZpbmVkID8gZ2V0UHJtLmRhdGFbc3RhdHVzS2V5KCldIDogMFwiXG5cdFx0XHRcdFx0W2F1dGhMZXZlbF09XCJhdXRoTGV2ZWwoKVwiXG5cdFx0XHRcdFx0W2lzQ2xpY2tdPVwidGhpcy5zdGF0dXNDb25mKCkuaXNDbGlja1wiXG5cdFx0XHRcdFx0KGNoYW5nZSk9XCJzdGF0dXNDaGFuZ2UoJGV2ZW50LCBjdXN0b21TdGVwcylcIj5cblx0XHRcdFx0PC9jdXN0b20tc3RlcHM+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHRAaWYgKG1vZGVsTG9nKCkpIHtcblx0XHRcdDxkaXYgY2xhc3M9XCJsZzp3LVs0MDBweF0gbWQ6dy1bMzAwcHhdIGhpZGRlbiBtZDpibG9ja1wiPjwvZGl2PlxuXHRcdH1cblx0PC9kaXY+XG5cdDxkaXYgY2xhc3M9XCJtYWluIGZsZXggZmxleC13cmFwXCI+XG5cdFx0PGRpdiBjbGFzcz1cInctZnVsbCBtZDpmbGV4LTEgbWQ6aC1mdWxsIG1kOm92ZXJmbG93LXktYXV0b1wiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImJnLXdoaXRlIG14LTIgZm9ybS1wYW5lbFwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwicC0yIGZsZXgtMVwiPlxuXHRcdFx0XHRcdDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybSgpLmZvcm0hXCI+XG5cdFx0XHRcdFx0XHQ8Y3VzdG9tLWZvcm1cblx0XHRcdFx0XHRcdFx0I2NGb3JtXG5cdFx0XHRcdFx0XHRcdFtvcHRpb25zXT1cImZvcm1PcHRpb25zXCJcblx0XHRcdFx0XHRcdFx0W3Vwc2VydF09XCJ1cHNlcnRQcm1cIlxuXHRcdFx0XHRcdFx0XHRbbW9kZWxdPVwiZ2V0UHJtLmRhdGEgPz8ge31cIj48L2N1c3RvbS1mb3JtPlxuXHRcdFx0XHRcdDwvZm9ybT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdEBpZiAoZ3JpZExpc3QoKSAmJiBncmlkTGlzdCgpLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicmVsYXRpdmUgbWItMlwiPlxuXHRcdFx0XHRcdFx0PHAtdGFicyBbKHZhbHVlKV09XCJpbmRleFZhbHVlXCI+XG5cdFx0XHRcdFx0XHRcdDxwLXRhYmxpc3Q+XG5cdFx0XHRcdFx0XHRcdFx0QGZvciAoZmNoaWxkIG9mIGdyaWRMaXN0KCk7IGxldCBpID0gJGluZGV4OyB0cmFjayBmY2hpbGQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdDxwLXRhYlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRbdmFsdWVdPVwiaVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJ0YWJDbGljaygpXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7IGZjaGlsZC5pMThuS2V5ID8gaTE4bi5mYW55aShmY2hpbGQuaTE4bktleSkgOiBmY2hpbGQudGl0bGUgfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvcC10YWI+XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHQ8L3AtdGFibGlzdD5cblx0XHRcdFx0XHRcdDwvcC10YWJzPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHR9XG5cdFx0XHRcdEBmb3IgKGdyaWQgb2YgZ3JpZExpc3QoKTsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrIGdyaWQpIHtcblx0XHRcdFx0XHRAaWYgKGdyaWQudHlwZSA9PSAnZ3JpZCcpIHtcblx0XHRcdFx0XHRcdDxjdXN0b20tZ3JpZFxuXHRcdFx0XHRcdFx0XHQjY3VzdG9tR3JpZFxuXHRcdFx0XHRcdFx0XHRbaGlkZGVuXT1cImluZGV4VmFsdWUgIT0gaVwiXG5cdFx0XHRcdFx0XHRcdFtyb3dEYXRhXT1cImdldFBybS5kYXRhPy5bZ3JpZC5zdWJEYXRhS2V5IV1cIlxuXHRcdFx0XHRcdFx0XHRbdXBzZXJ0XT1cInVwc2VydFBybVwiXG5cdFx0XHRcdFx0XHRcdChkZWxldGVFbWl0KT1cImRlbFJvd3MoJGV2ZW50KVwiXG5cdFx0XHRcdFx0XHRcdFthZGRUeXBlXT1cImdyaWQuc3ViVGFibGVTb3VyY2VcIlxuXHRcdFx0XHRcdFx0XHQoYWRkRW1pdCk9XCJkYXRhU291cmNlU2hvdygpXCJcblx0XHRcdFx0XHRcdFx0W2dyaWRPcHRpb25zXT1cImdyaWQuZ3JpZE9wdGlvbnNcIlxuXHRcdFx0XHRcdFx0XHRbZ3JpZERpc2FibGVdPVwiZ3JpZERpc2FibGVcIlxuXHRcdFx0XHRcdFx0XHRbYXV0aExldmVsXT1cImF1dGhMZXZlbCgpXCJcblx0XHRcdFx0XHRcdFx0W3Nob3dEZWxldGVdPVwiZ3JpZC5zaG93RGVsZXRlXCJcblx0XHRcdFx0XHRcdFx0W3NlbGVjdERhdGFdPVwiZ3JpZC5zZWxlY3REYXRhXCJcblx0XHRcdFx0XHRcdFx0W2FkZFNvcnRdPVwiZ3JpZC5hZGRTb3J0XCI+XG5cdFx0XHRcdFx0XHQ8L2N1c3RvbS1ncmlkPlxuXHRcdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdFx0PCEtLSBAaWYoaW5kZXhWYWx1ZSA9PSBpKXtcblx0XHRcdFx0XHRcdFx0PGZvcm0gW2Zvcm1Hcm91cF09XCJncmlkLmZvcm0hXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGN1c3RvbS1mb3JtXG5cdFx0XHRcdFx0XHRcdFx0W29wdGlvbnNdPVwiZ3JpZFwiXG5cdFx0XHRcdFx0XHRcdFx0W3Vwc2VydF09XCJ1cHNlcnRQcm1cIlxuXHRcdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0PC9jdXN0b20tZm9ybT5cblx0XHRcdFx0XHRcdFx0PC9mb3JtPlxuXHRcdFx0XHRcdFx0fSAtLT5cblx0XHRcdFx0XHRcdDxjdXN0b20tZm9ybVxuXHRcdFx0XHRcdFx0XHQjdGFiRm9ybVxuXHRcdFx0XHRcdFx0XHRbaGlkZGVuXT1cImluZGV4VmFsdWUgIT0gaVwiXG5cdFx0XHRcdFx0XHRcdFtvcHRpb25zXT1cImdyaWRcIlxuXHRcdFx0XHRcdFx0XHRbdXBzZXJ0XT1cInVwc2VydFBybVwiXG5cdFx0XHRcdFx0XHRcdFttb2RlbF09XCJzdWJGb3JtTW9kZWxbZ3JpZC5zdWJEYXRhS2V5IV0gfHwge31cIj5cblx0XHRcdFx0XHRcdDwvY3VzdG9tLWZvcm0+XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHRAaWYgKG1vZGVsTG9nKCkpIHtcblx0XHRcdDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1bNDAwcHhdIG1kOnctWzMwMHB4XSBtZDpoLWZ1bGwgbWQ6b3ZlcmZsb3cteS1hdXRvIGhpZGRlbiBtZDpibG9ja1wiPlxuXHRcdFx0XHQ8Y3VzdG9tLWxvZyBbbG9nc109XCJnZXRQcm0uZGF0YT8ubG9nID8/IFtdXCI+PC9jdXN0b20tbG9nPlxuXHRcdFx0PC9kaXY+XG5cdFx0fVxuXHQ8L2Rpdj5cbjwvZGl2PlxuPHJvdy1zZWxlY3RvclxuXHRbKHZpc2libGUpXT1cInZpc2libGVcIlxuXHRbc2VhcmNoUHJtXT1cImRpYWxvZ1NlYXJjaFBybVwiXG5cdFtncmlkT3B0aW9uc109XCJzZWxlY3RPcHRpb25zXCJcblx0W3NlbGVjdGlvbktleXNdPVwic2VsZWN0aW9uS2V5c1wiXG5cdChvbk9rKT1cIm9uT2soJGV2ZW50KVwiXG5cdChjYW5jZWxTZWxlY3QpPVwib25DYW5jZWxTZWxlY3RlZCgkZXZlbnQpXCI+XG48L3Jvdy1zZWxlY3Rvcj5cbiJdfQ==
|
|
463
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvcGFnZS1mb3JtL3BhZ2UtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3BhZ2UtZm9ybS9wYWdlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQTJCLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0SSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFRLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBZSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBTyxNQUFNLG9CQUFvQixDQUFDO0FBR3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFF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b0JBQW9COzs0RkFNVCxpQkFBaUI7a0JBcEI3QixTQUFTOytCQUNDLGVBQWUsY0FDYixJQUFJLFdBQ1A7d0JBQ1IsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixVQUFVO3dCQUNWLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixvQkFBb0I7cUJBQ3BCLGFBR1UsRUFBRTt3REFHTyxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBQ1UsVUFBVTtzQkFBckMsWUFBWTt1QkFBQyxZQUFZO2dCQUNELE9BQU87c0JBQS9CLFlBQVk7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJIaXN0b3J5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvdXNlckhpc3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0LCBWaWV3Q2hpbGQsIGlucHV0LCBlZmZlY3QsIGNvbXB1dGVkLCBJbnB1dCwgc2lnbmFsLCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1Db21wb25lbnQsIEZvcm1PcHRpb25zIH0gZnJvbSAnLi4vZm9ybS9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFJvd1NlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vcm93LXNlbGVjdG9yL3Jvdy1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9nL2xvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgQ3J1bWJBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9jcnVtYi1hY3Rpb24vY3J1bWItYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGVwc0NvbXBvbmVudCwgU3RlcCB9IGZyb20gJy4uL3N0ZXBzL3N0ZXBzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkQ29tcG9uZW50LCBHcmlkT3B0aW9ucyB9IGZyb20gJy4uL2dyaWQvZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJzTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWJzJztcbmltcG9ydCB7IEFtQ29tcG9uZW50LCBHZXQgfSBmcm9tICcuLi9hbS9hbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSAnLi4vYW0vYW0uY29tcG9uZW50JztcbmltcG9ydCB7IEhyZWZCdG5MaXN0LCBHcmlkTGlzdCB9IGZyb20gJy4vcGFnZS1mb3JtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcm1pc3Npb25CdG4gfSBmcm9tICcuL3BhZ2UtZm9ybS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZm9ybVR5cGVUb1Byb3BzIH0gZnJvbSAnLi9wYWdlLWZvcm0uaW50ZXJmYWNlJztcbmltcG9ydCB7IEhyZWZCdG5MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vaHJlZi1idG4tbGlzdC9ocmVmLWJ0bi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhcHAtcGFnZS1mb3JtJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW1xuXHRcdEJ1dHRvbk1vZHVsZSxcblx0XHRSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuXHRcdEZvcm1Db21wb25lbnQsXG5cdFx0TG9nQ29tcG9uZW50LFxuXHRcdENydW1iQWN0aW9uQ29tcG9uZW50LFxuXHRcdFN0ZXBzQ29tcG9uZW50LFxuXHRcdEdyaWRDb21wb25lbnQsXG5cdFx0VGFic01vZHVsZSxcblx0XHRSb3dTZWxlY3RvckNvbXBvbmVudCxcblx0XHRUcmFuc2xhdGVQaXBlLFxuXHRcdEhyZWZCdG5MaXN0Q29tcG9uZW50LFxuXHRdLFxuXHR0ZW1wbGF0ZVVybDogJy4vcGFnZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmw6ICcuL3BhZ2UtZm9ybS5jb21wb25lbnQuc2NzcycsXG5cdHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VGb3JtQ29tcG9uZW50IGV4dGVuZHMgQW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXHRAVmlld0NoaWxkKCdjRm9ybScpIGNGb3JtITogRm9ybUNvbXBvbmVudDtcblx0QFZpZXdDaGlsZHJlbignY3VzdG9tR3JpZCcpIGN1c3RvbUdyaWQhOiBRdWVyeUxpc3Q8R3JpZENvbXBvbmVudD47XG5cdEBWaWV3Q2hpbGRyZW4oJ3RhYkZvcm0nKSB0YWJGb3JtITogUXVlcnlMaXN0PEZvcm1Db21wb25lbnQ+O1xuXHRhZGRWaXNpYmxlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblx0Z3JpZExpc3QgPSBpbnB1dDxhbnlbXT4oW10pO1xuXHRmb3JtID0gaW5wdXQucmVxdWlyZWQ8Rm9ybU9wdGlvbnM+KHt9KTtcblx0Z2V0UHJtSW5wdXQgPSBpbnB1dC5yZXF1aXJlZDxHZXQ+KHt9KTtcblx0c3RhdHVzU3RlcHMgPSBpbnB1dDxTdGVwW10+KFtdKTtcblx0c3RhdHVzS2V5ID0gaW5wdXQoJ3N0YXR1cycpO1xuXHRocmVmQnRuTGlzdCA9IGlucHV0PEhyZWZCdG5MaXN0W10+KFtdKTtcblx0c2V0VGl0bGUgPSBpbnB1dDxzdHJpbmc+KCk7XG5cdGFjdGlvbkxpc3QgPSBpbnB1dDxQZXJtaXNzaW9uQnRuW10+KFtdKTtcblx0bW9kZWxMb2cgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cdGZvcm1EaXNhYmxlZCA9IGlucHV0PEZ1bmN0aW9uPigpO1xuXHRzdGF0dXNDb25mID0gaW5wdXQ8YW55PigpXG5cdGZvcm1EZXRhaWwgPSBpbnB1dDxhbnk+KClcblx0c2F2ZUZ1bmMgPSBpbnB1dDxhbnk+KClcblx0Y29uZmlnTmV3UGF0aCA9IGlucHV0PGFueT4oKVxuXG5cdHVzZXJIaXN0b3J5U2VydmljZSA9IGluamVjdChVc2VySGlzdG9yeVNlcnZpY2UpO1xuXHRpbmRleFZhbHVlID0gMDtcblx0dmlzaWJsZSA9IGZhbHNlO1xuXHRkaWFsb2dTZWFyY2hQcm0hOiBTZWFyY2g7XG5cdHNlbGVjdE9wdGlvbnMhOiBHcmlkT3B0aW9ucztcblx0c2VsZWN0RGF0YTogYW55W10gPSBbXTtcblx0cGFnZVVybCA9ICcnO1xuXHRuZXdVcmwgPSAnJztcblx0aTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cdGF1dGhMZXZlbCA9IGlucHV0PG51bWJlcj4oLTEpO1xuXHRocmVmczogYW55W10gPSBbXTtcblx0YWN0aW9uID0gaW5qZWN0KEFjdGlvblNlcnZpY2UpO1xuXHRzdWJGb3JtTW9kZWw6YW55ID0ge31cblx0c2F2ZUJ0bkRpc2FibGUgPSBmYWxzZVxuXHRncmlkRGlzYWJsZSA9IGZhbHNlIFxuXHRzZWxlY3Rpb25LZXlzOiBhbnlbXSA9IFtdO1xuXHRzdWJEZWxldGVJZHM6YW55W10gPSBbXVxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHRcdHRoaXMuaWQgPSBOdW1iZXIodGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykpO1xuXHRcdHRoaXMucGFnZVVybCA9IHRoaXMucm91dGUuc25hcHNob3QudXJsXG5cdFx0XHQubWFwKChzZWdtZW50KSA9PiBzZWdtZW50LnBhdGgpXG5cdFx0XHQuam9pbignLycpXG5cdFx0XHQucmVwbGFjZSgvKFteXFwvXSopJC8sICcnKTtcblx0XHR0aGlzLm5ld1VybCA9IGAke3RoaXMucGFnZVVybH1uZXdgO1xuXHRcdGVmZmVjdChcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0dGhpcy5tb2RlbE5hbWUgPSB0aGlzLmdldFBybUlucHV0KCkubW9kZWxOYW1lITtcblx0XHRcdFx0dGhpcy5nZXRQcm0gPSB7IC4uLnRoaXMuZ2V0UHJtSW5wdXQoKSB9O1xuXHRcdFx0XHR0aGlzLmlkICYmICh0aGlzLmdldFBybS5pZCA9IHRoaXMuaWQpO1xuXHRcdFx0XHRpZih0aGlzLmlkKXtcblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0eXBlb2YgdGhpcy5mb3JtRGV0YWlsKCksJ2Zvcm0tLS0tJylcblx0XHRcdFx0XHR0eXBlb2YgdGhpcy5mb3JtRGV0YWlsKCkgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMuZm9ybURldGFpbCgpKHRoaXMuaWQpIDogdGhpcy5nZXREZXRhaWwoKTtcblx0XHRcdFx0fWVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuZ2V0UHJtLmRhdGEgPSB7fVxuXHRcdFx0XHRcdHRoaXMuZ3JpZExpc3QoKS5mb3JFYWNoKHYgPT4ge1xuXHRcdFx0XHRcdFx0aWYodi50eXBlID09ICdncmlkJyl7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZ2V0UHJtLmRhdGFbdi5zdWJEYXRhS2V5XSA9IFtdXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcblx0XHQpO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdHRoaXMuZm9ybU9wdGlvbnMgPSB7IC4uLnRoaXMuZm9ybSgpIH07XG5cdFx0fSk7XG5cdFx0ZWZmZWN0KFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHR0aGlzLmlzTG9nID0gdGhpcy5tb2RlbExvZygpO1xuXHRcdFx0fSxcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcblx0XHQpO1xuXHRcdGVmZmVjdChcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMuc3RhdHVzU3RlcHMoKS5sZW5ndGggPiAwICYmICF0aGlzLmlkKSB7XG5cdFx0XHRcdFx0dGhpcy51cHNlcnRQcm0uYWRkRGF0YSFbdGhpcy5zdGF0dXNLZXkoKV0gPSB0aGlzLnN0YXR1c1N0ZXBzKClbMF1bJ3ZhbHVlJ107XG5cdFx0XHRcdFx0dGhpcy5nZXRQcm0uZGF0YSA9IE9iamVjdC5hc3NpZ24odGhpcy5nZXRQcm0uZGF0YSB8fCB7fSwge1xuXHRcdFx0XHRcdFx0W3RoaXMuc3RhdHVzS2V5KCldOiB0aGlzLnN0YXR1c1N0ZXBzKClbMF1bJ3ZhbHVlJ10sXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG5cdFx0KTtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0aWYodGhpcy5hdXRoTGV2ZWwoKSA8IDMpe1xuXHRcdFx0XHR0aGlzLnNldERpc2FibGVkKClcblx0XHRcdH1cblx0XHR9LHthbGxvd1NpZ25hbFdyaXRlczp0cnVlfSlcblx0fVxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLnVwQ2IgPSB0aGlzLnVwQ2IuYmluZCh0aGlzKTtcblx0fVxuXG5cdHN1Ym1pdEZvcm0oKTogYW55IHtcblx0XHQvLyB0aGlzLnRhYkZvcm0udmFsaWRhdGUoKVxuXHRcdGNvbnNvbGUubG9nKCdnZXRQcm0tLS0tLS0nLHRoaXMuZ2V0UHJtKVxuXHRcdGxldCBzdWJGb3JtID0gdHJ1ZVxuXHRcdGlmKHRoaXMudGFiRm9ybS5sZW5ndGggPiAwKXtcblx0XHRcdHRoaXMudGFiRm9ybS5mb3JFYWNoKGl0ZW0gPT4ge1xuXHRcdFx0XHRpZighaXRlbS52YWxpZGF0ZSgpKXtcblx0XHRcdFx0XHRzdWJGb3JtID0gZmFsc2Vcblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHR9XG5cdFx0aWYgKHRoaXMuY0Zvcm0udmFsaWRhdGUoKSAmJiBzdWJGb3JtKSB7XG5cdFx0XHRsZXQgY2I6IGFueSA9IHRoaXMuaWQgPT09IDAgPyBudWxsIDogdGhpcy51cENiO1xuXHRcdFx0dGhpcy5hY3Rpb24ubG9hZGluZy5zZXQodHJ1ZSlcblx0XHRcdHR5cGVvZiB0aGlzLnNhdmVGdW5jKCkgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMuc2F2ZUZ1bmMoKSh0aGlzLnVwc2VydFBybSx0aGlzLmlkLGNiKSA6IHRoaXMudXBzZXJ0KG51bGwsIGNiKTtcblx0XHR9XG5cdH1cblxuXHRkZWxSb3dzKGU6IGFueSkge1xuXHRcdGNvbnN0IGdyaWRUYWIgPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXTtcblx0XHRjb25zdCBkZWxldGVGdW5jID0gZ3JpZFRhYi5kZWxldGVGdW5jO1xuXHRcdGNvbnN0IHN1YlRhYmxlID0gZ3JpZFRhYi5ncmlkT3B0aW9ucy5tb2RlbE5hbWU7XG5cblx0XHRsZXQgcHJtID0ge1xuXHRcdFx0bW9kZWxOYW1lOiBzdWJUYWJsZSxcblx0XHRcdGlkczogZSxcblx0XHR9O1xuXHRcdGlmICghZGVsZXRlRnVuYykge1xuXHRcdFx0dGhpcy53ZWJfcmVtb3ZlKHBybSkuc3Vic2NyaWJlKChyZXMpID0+IHtcblx0XHRcdFx0dHlwZW9mIHRoaXMuZm9ybURldGFpbCgpID09ICdmdW5jdGlvbicgPyB0aGlzLmZvcm1EZXRhaWwoKSh0aGlzLmlkKSA6IHRoaXMuZ2V0RGV0YWlsKCk7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGVsZXRlRnVuYygpLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRcdHR5cGVvZiB0aGlzLmZvcm1EZXRhaWwoKSA9PSAnZnVuY3Rpb24nID8gdGhpcy5mb3JtRGV0YWlsKCkodGhpcy5pZCkgOiB0aGlzLmdldERldGFpbCgpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cdHVwQ2IocmVzPzogYW55KSB7XG5cdFx0aWYgKHJlcy5pZCA9PSAwKSB7XG5cdFx0XHR0eXBlb2YgdGhpcy5mb3JtRGV0YWlsKCkgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMuZm9ybURldGFpbCgpKHRoaXMuaWQpIDogdGhpcy5nZXREZXRhaWwoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdGxldCBlZGl0VXJsID0gYCR7dGhpcy5wYWdlVXJsfSR7cmVzLmlkfWA7XG5cdFx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFtlZGl0VXJsXSk7XG5cdFx0XHR9LCAxNTAwKTtcblx0XHR9XG5cdFx0dGhpcy5hY3Rpb24uc2F2ZVNpZ25hbC5zZXQoZmFsc2UpO1xuXHRcdHRoaXMuY0Zvcm0uZmluYWxpemUoKTtcblx0fVxuXHQvLyBUT0RPIOaYr+WQpumcgOimgeaVsOaNrui9rOaNouWbnuiwg+WHveaVsFxuXHRvbk9rKGU6IGFueSkge1xuXHRcdGNvbnN0IGdyaWQgPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXTtcblx0XHR0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXS5zZWxlY3REYXRhID0gW107XG5cdFx0aWYgKGUubGVuZ3RoID4gMCkge1xuXHRcdFx0bGV0IHVuaXF1ZUtleXMgPSBbXTtcblx0XHRcdGlmIChncmlkLnVuaXF1ZUZpZWxkKSB7XG5cdFx0XHRcdGNvbnN0IHJvd0RhdGEgPSB0aGlzLmN1c3RvbUdyaWQuZ2V0KHRoaXMuaW5kZXhWYWx1ZSkhXG5cdFx0XHRcdFx0LmdldEdyaWQoKVxuXHRcdFx0XHRcdC5hcGkuZ2V0UmVuZGVyZWROb2RlcygpXG5cdFx0XHRcdFx0Lm1hcCgobm9kZSkgPT4gbm9kZS5kYXRhKTtcblx0XHRcdFx0dW5pcXVlS2V5cyA9IHJvd0RhdGEubWFwKChpdGVtOiBhbnkpID0+IGl0ZW1bZ3JpZC51bmlxdWVGaWVsZCFdKTtcblx0XHRcdH1cblx0XHRcdGUuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG5cdFx0XHRcdGxldCBvYmogPSBncmlkLnNlbGVjdERhdGFDYiA/IGdyaWQuc2VsZWN0RGF0YUNiKGl0ZW0pIDogeyAuLi5pdGVtIH07XG5cdFx0XHRcdGlmIChncmlkLnVuaXF1ZUZpZWxkICYmIHVuaXF1ZUtleXMuaW5jbHVkZXMob2JqW2dyaWQudW5pcXVlRmllbGQhXSB8fCAnJykpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0Z3JpZC5zZWxlY3REYXRhIS5wdXNoKG9iaik7XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMuYWN0aW9uLnNhdmVTaWduYWwuc2V0KHRydWUpO1xuXHRcdH1cblx0fVxuXG5cdG9uQ2FuY2VsU2VsZWN0ZWQoZTphbnkpe1xuXHRcdGNvbnN0IGdyaWQgPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXTtcblx0XHRsZXQgZGF0YXM6YW55ID0gW11cblx0XHRlLmZvckVhY2goKGl0ZW06YW55KSA9PiB7XG5cdFx0XHRjb25zdCBkYXRhID0gZ3JpZC5zZWxlY3REYXRhQ2IgPyB7Li4uZ3JpZC5zZWxlY3REYXRhQ2IoaXRlbSl9IDogaXRlbTtcblx0XHRcdGRhdGFzLnB1c2goZGF0YSlcblx0XHR9KVxuXHRcdGlmKGdyaWQudW5pcXVlRmllbGQpe1xuXHRcdFx0Y29uc3Qga2V5cyA9IGRhdGFzLm1hcCgoaXRlbTphbnkpID0+IGl0ZW1bZ3JpZC51bmlxdWVGaWVsZF0pXG5cdFx0XHRjb25zdCByb3dEYXRhID0gdGhpcy5jdXN0b21HcmlkLmdldCh0aGlzLmluZGV4VmFsdWUpIVxuXHRcdFx0XHRcdC5nZXRHcmlkKClcblx0XHRcdFx0XHQuYXBpLmdldFJlbmRlcmVkTm9kZXMoKVxuXHRcdFx0XHRcdC5tYXAoKG5vZGUpID0+IG5vZGUuZGF0YSk7XG5cdFx0XHRsZXQgZGVsZXRlZFJvd3MgPSByb3dEYXRhLmZpbHRlcigoaXRlbTphbnkpID0+IGtleXMuaW5jbHVkZXMoaXRlbVtncmlkLnVuaXF1ZUZpZWxkXSkpXG5cdFx0XHR0aGlzLnN1YkRlbGV0ZUlkcyA9IGRlbGV0ZWRSb3dzLm1hcCgodjphbnkpID0+IHYuaWQpLmZpbHRlcigodjphbnkpID0+IHYpXG5cdFx0XHRjb25zdCBpZE5vdFJvd3MgPSBkZWxldGVkUm93cy5maWx0ZXIoKHY6YW55KSA9PiAhdi5pZCk7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnaWROb3RSb3dzLS0tLScsaWROb3RSb3dzKVxuXHRcdFx0Y29uc3QgZGVsZXRlTm9kZXM6YW55ID0gW11cblx0XHRcdHRoaXMuY3VzdG9tR3JpZC5nZXQodGhpcy5pbmRleFZhbHVlKSFcblx0XHRcdFx0XHQuZ2V0R3JpZCgpXG5cdFx0XHRcdFx0LmFwaS5mb3JFYWNoTm9kZSgobm9kZTphbnkpID0+IHtcblx0XHRcdFx0XHRcdGxldCBtYWluID0gbm9kZS5kYXRhW2dyaWQudW5pcXVlRmllbGRdO1xuXHRcdFx0XHRcdFx0bGV0IGlzRXhpdCA9IGlkTm90Um93cy5maW5kSW5kZXgoKHY6YW55KSA9PiB2W2dyaWQudW5pcXVlRmllbGRdID09IG1haW4pXG5cdFx0XHRcdFx0XHRpZihpc0V4aXQgPiAtMSl7XG5cdFx0XHRcdFx0XHRcdGRlbGV0ZU5vZGVzLnB1c2gobm9kZS5kYXRhKVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHQvLyBpZihkZWxldGVkSWRzLmxlbmd0aCA+IDApe1xuXHRcdFx0Ly8gXHR0aGlzLmRlbFJvd3MoZGVsZXRlZElkcylcblx0XHRcdC8vIH0gZWxzZSB7XG5cdFx0XHR0aGlzLmN1c3RvbUdyaWQuZ2V0KHRoaXMuaW5kZXhWYWx1ZSkhLnNlbGVjdFJvd3NEZWxldGVkKGRlbGV0ZU5vZGVzKVxuXHRcdFx0Ly8gfVxuXHRcdH1cblx0fVxuXHRnZXREZXRhaWwoKSB7XG5cdFx0dGhpcy53ZWJfZ2V0KHRoaXMuZ2V0UHJtKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuXHRcdFx0dGhpcy5kZXRhaWxDYihyZXMpXG5cdFx0fSk7XG5cdH1cblx0Ly8g6I635Y+W6K+m5oOF5Zue6LCDXG5cdGRldGFpbENiKHJlczphbnkpe1xuXHRcdHRoaXMudXBkYXRlVGl0bGUocmVzKTtcblx0XHRpZih0eXBlb2YgdGhpcy5mb3JtRGlzYWJsZWQoKSA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdHRoaXMuZm9ybURpc0Z1bmMoKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuaHJlZkJ0bkxpc3QoKS5sZW5ndGggPiAwKSB7XG5cdFx0XHR0aGlzLnNldEhyZWZWYWx1ZSgpO1xuXHRcdH1cblx0XHR0aGlzLmdyaWRMaXN0KCkuZm9yRWFjaCh2ID0+IHtcblx0XHRcdGlmKHYudHlwZSA9PSAnZm9ybScpe1xuXHRcdFx0XHR0aGlzLnN1YkZvcm1Nb2RlbFt2LnN1YkRhdGFLZXldID0gcmVzW3Yuc3ViRGF0YUtleV1bMF1cblx0XHRcdH1cblx0XHR9KVxuXHRcdHRoaXMuZ3JpZExpc3QoKS5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuXHRcdFx0aWYodmFsdWUudHlwZSA9PSAnZ3JpZCcgJiYgIXRoaXMuZ2V0UHJtLmRhdGEuaGFzT3duUHJvcGVydHkodmFsdWUuc3ViRGF0YUtleSkpe1xuXHRcdFx0XHR0aGlzLmdldFBybS5kYXRhW3ZhbHVlLnN1YkRhdGFLZXldID0gW11cblx0XHRcdH1cblx0XHR9KVxuXHR9XG5cdHNldEhyZWZWYWx1ZSgpIHtcblx0XHR0aGlzLmhyZWZCdG5MaXN0KCkubWFwKChpdGVtOiBhbnkpID0+IHtcblx0XHRcdGlmIChpdGVtLmhhc093blByb3BlcnR5KCdzZWFyY2hDb3VudCcpICYmIHR5cGVvZiBpdGVtLnNlYXJjaENvdW50ID09ICdvYmplY3QnKSB7XG5cdFx0XHRcdGl0ZW0uc2VhcmNoQ291bnQuY29sdW1uRmlsdGVycy5mb3JFYWNoKCh2OiBhbnkpID0+IHtcblx0XHRcdFx0XHRpZiAodHlwZW9mIHYuZml0ZXIgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdHYuZml0ZXIgPSB2LmZpdGVyKHRoaXMuZ2V0UHJtLmRhdGEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMud2ViX3NlYXJjaENvdW50KGl0ZW0uc2VhcmNoQ291bnQpLnN1YnNjcmliZSgocmVzKSA9PiB7XG5cdFx0XHRcdFx0aXRlbS52YWx1ZSA9IHJlcy50b3RhbE51bSB8fCAwO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHR1cGRhdGVUaXRsZShyZXM6IGFueSkge1xuXHRcdGxldCBtYWluRmllbGQgPSB0aGlzLmZvcm0oKS5tYWluRmllbGQ7XG5cdFx0bGV0IHRpdGxlID0gcmVzW21haW5GaWVsZCFdO1xuXHRcdHRoaXMudXNlckhpc3RvcnlTZXJ2aWNlLnNldExhc3RUaXRsZSh0aXRsZSk7XG5cdH1cblx0ZGF0YVNvdXJjZVNob3coKSB7XG5cdFx0Y29uc3QgZ3JpZCA9IHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdO1xuXHRcdHRoaXMuZGlhbG9nU2VhcmNoUHJtID0ge307XG5cdFx0dGhpcy5zZWxlY3RPcHRpb25zID0gdGhpcy5ncmlkTGlzdCgpW3RoaXMuaW5kZXhWYWx1ZV1bJ3NlbGVjdE9wdGlvbnMnXSE7XG5cdFx0aWYoKHRoaXMuc2VsZWN0T3B0aW9ucyBhcyBhbnkpPy5zZWFyY2hQcm0pe1xuXHRcdFx0XHQodGhpcy5zZWxlY3RPcHRpb25zIGFzIGFueSkuc2VhcmNoUHJtPy5jb2x1bW5GaWx0ZXJzPy5mb3JFYWNoKCh2OmFueSkgPT4ge1xuXHRcdFx0XHRpZih0eXBlb2Ygdi5maXRlciA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0XHR2LmZpdGVyID0gdi5maXRlcihudWxsLHRoaXMuZ2V0UHJtLmRhdGEpXG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHR0aGlzLmRpYWxvZ1NlYXJjaFBybSA9ICh0aGlzLnNlbGVjdE9wdGlvbnMgYXMgYW55KT8uc2VhcmNoUHJtXG5cdFx0fVxuXHRcdHRoaXMuZGlhbG9nU2VhcmNoUHJtLm1vZGVsTmFtZSA9IHRoaXMuc2VsZWN0T3B0aW9ucy5tb2RlbE5hbWU7XG5cdFx0aWYodGhpcy5zZWxlY3RPcHRpb25zLnNlbGVjdGlvbk1vZGUpe1xuXHRcdFx0dGhpcy5zZWxlY3RPcHRpb25zLnN1cHByZXNzUm93RGVzZWxlY3Rpb24gPSB0cnVlXG5cdFx0XHR0aGlzLnNlbGVjdE9wdGlvbnMuc2VsZWN0aW9uTW9kZSA9IHRoaXMuc2VsZWN0T3B0aW9ucy5zZWxlY3Rpb25Nb2RlO1xuXHRcdFx0Y29uc3QgaXNSb3dTZWxlY3RhYmxlID0gdGhpcy5zZWxlY3RPcHRpb25zLmlzUm93U2VsZWN0YWJsZVxuXHRcdFx0XHRpZih0aGlzLnNlbGVjdE9wdGlvbnMuc2VsZWN0aW9uTW9kZSAhPSAnbm9uZScpe1xuXHRcdFx0XHRcdHRoaXMuc2VsZWN0T3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB7XG5cdFx0XHRcdFx0XHRtb2RlOiB0aGlzLnNlbGVjdE9wdGlvbnMuc2VsZWN0aW9uTW9kZSA9PSAnc2luZ2xlJyA/ICdzaW5nbGVSb3cnIDogJ211bHRpUm93Jyxcblx0XHRcdFx0XHRcdGlzUm93U2VsZWN0YWJsZTogaXNSb3dTZWxlY3RhYmxlID8gaXNSb3dTZWxlY3RhYmxlOiB1bmRlZmluZWQsXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQgIHRoaXMuc2VsZWN0T3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB1bmRlZmluZWRcblx0XHRcdCBcdH1cblx0XHR9XG5cdFx0Ly8gY29uc29sZS5sb2coJ29wdGlvbnMtLS0tLScsdGhpcy5zZWxlY3RPcHRpb25zKVxuXHRcdGlmKGdyaWQudW5pcXVlRmllbGQpIHtcblx0XHRcdGNvbnN0IHJvd0RhdGEgPSB0aGlzLmN1c3RvbUdyaWQuZ2V0KHRoaXMuaW5kZXhWYWx1ZSkhXG5cdFx0XHRcdFx0LmdldEdyaWQoKVxuXHRcdFx0XHRcdC5hcGkuZ2V0UmVuZGVyZWROb2RlcygpXG5cdFx0XHRcdFx0Lm1hcCgobm9kZSkgPT4gbm9kZS5kYXRhKTtcblx0XHRcdHRoaXMuc2VsZWN0aW9uS2V5cyA9IHJvd0RhdGE/Lm1hcCgoaXRlbTogYW55KSA9PiBpdGVtW2dyaWQudW5pcXVlRmllbGQhXSkgfHwgW107XG5cdFx0XHQvLyBjb25zb2xlLmxvZygndGhpcy5zZWxlY3Rpb25LZXlzLS0tLScsdGhpcy5zZWxlY3Rpb25LZXlzKVxuXHRcdFx0aWYodHlwZW9mIHRoaXMuc2VsZWN0T3B0aW9ucy5yb3dTZWxlY3Rpb24gPT0gJ29iamVjdCcpe1xuXHRcdFx0XHR0aGlzLnNlbGVjdE9wdGlvbnMucm93U2VsZWN0aW9uLmNoZWNrYm94ZXMgPSAocGFyYW1zKSA9PiB7XG5cdFx0XHRcdFx0bGV0IGl0ZW0gPSB0aGlzLnNlbGVjdE9wdGlvbnMuZGF0YUtleSAhPSAnJ1xuXHRcdFx0XHRcdFx0XHQ/IHJvd0RhdGEuZmluZCgodjphbnkpID0+IHZbZ3JpZC51bmlxdWVGaWVsZF0gPT0gcGFyYW1zLmRhdGFbdGhpcy5zZWxlY3RPcHRpb25zLmRhdGFLZXkhXSlcblx0XHRcdFx0XHRcdFx0OiByb3dEYXRhLmZpbmQoKHY6YW55KSA9PiB2W2dyaWQudW5pcXVlRmllbGRdID09IHBhcmFtcy5kYXRhLmlkKTtcblx0XHRcdFx0XHRpZihpdGVtICYmIGl0ZW0uaWQpe1xuXHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0cnVlXG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZighdGhpcy5zZWxlY3RPcHRpb25zLnJvd1NlbGVjdGlvbil7XG5cdFx0XHRcdHRoaXMuc2VsZWN0T3B0aW9ucy5yb3dTZWxlY3Rpb24gPSAge1xuXHRcdFx0XHRcdG1vZGU6ICdtdWx0aVJvdycsXG5cdFx0XHRcdFx0Y2hlY2tib3hlczogKHBhcmFtcykgPT4ge1xuXHRcdFx0XHRcdFx0bGV0IGl0ZW0gPSB0aGlzLnNlbGVjdE9wdGlvbnMuZGF0YUtleSAhPSAnJ1xuXHRcdFx0XHRcdFx0XHQ/IHJvd0RhdGEuZmluZCgodjphbnkpID0+IHZbZ3JpZC51bmlxdWVGaWVsZF0gPT0gcGFyYW1zLmRhdGFbdGhpcy5zZWxlY3RPcHRpb25zLmRhdGFLZXkhXSlcblx0XHRcdFx0XHRcdFx0OiByb3dEYXRhLmZpbmQoKHY6YW55KSA9PiB2W2dyaWQudW5pcXVlRmllbGRdID09IHBhcmFtcy5kYXRhLmlkKTtcblx0XHRcdFx0XHRcdGlmKGl0ZW0gJiYgaXRlbS5pZCl7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBmYWxzZVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWVcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGVsc2V7XG5cdFx0XHR0aGlzLnNlbGVjdGlvbktleXMgPSBbXTtcblx0XHR9XG5cdFx0dGhpcy52aXNpYmxlID0gdHJ1ZTtcblx0fVxuXG5cdGdvUnVuKGRhdGE6IGFueSkge1xuXHRcdGlmICh0eXBlb2YgZGF0YS51cmwgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGxldCB1cmwgPSBkYXRhLnVybCh0aGlzLmdldFBybS5kYXRhKTtcblx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxdKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3dhcm4nLCBzdW1tYXJ5OiAnV2FybicsIGRldGFpbDogJ+ivt+mFjee9rui3s+i9rOmTvuaOpScgfSk7XG5cdFx0fVxuXHR9XG5cblx0YXV0aENsaWNrKGJ0bjogYW55KSB7XG5cdFx0aWYgKGJ0bi5oYXNPd25Qcm9wZXJ0eSgnb25DbGljaycpKSB7XG5cdFx0XHRidG4ub25DbGljayh0aGlzLmdldFBybS5kYXRhKTtcblx0XHR9XG5cdH1cblx0c3RhdHVzQ2hhbmdlKHZhbHVlOiBhbnksIGN1c3RvbVN0ZXBzOiBTdGVwc0NvbXBvbmVudCkge1xuXHRcdGlmICh0aGlzLmF1dGhMZXZlbCgpIDwgNCB8fCAhdGhpcy5zdGF0dXNDb25mKCkuaXNDbGljaykgcmV0dXJuO1xuXHRcdGlmICh0aGlzLmlkKSB7XG5cdFx0XHRsZXQgcGFyYW06IGFueSA9IHtcblx0XHRcdFx0bW9kZWxOYW1lOiB0aGlzLm1vZGVsTmFtZSxcblx0XHRcdFx0ZGF0YTogeyBpZDogdGhpcy5pZCwgW3RoaXMuc3RhdHVzS2V5KCldOiB2YWx1ZSB9LFxuXHRcdFx0fTtcblx0XHRcdGlmICh0aGlzLmlzTG9nKSB7XG5cdFx0XHRcdHBhcmFtLmxvZ01vZGVsID0gYCR7dGhpcy5tb2RlbE5hbWV9TG9nYDtcblx0XHRcdFx0cGFyYW0ubG9nID0ge1xuXHRcdFx0XHRcdHBpZDogdGhpcy5pZCxcblx0XHRcdFx0XHRjb250ZW50OiBgW+eKtuaAgV0gJHt0aGlzLmdldFBybS5kYXRhIVt0aGlzLnN0YXR1c0tleSgpXX0gLT4gJHt2YWx1ZX1gLFxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdFx0dGhpcy53ZWJfd3JpdGUocGFyYW0pLnN1YnNjcmliZSgocmVzKSA9PiB7XG5cdFx0XHRcdHRoaXMuZ2V0RGV0YWlsKCk7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5nZXRQcm0uZGF0YSA9IE9iamVjdC5hc3NpZ24odGhpcy5nZXRQcm0uZGF0YSB8fCB7fSwge1xuXHRcdFx0XHRbdGhpcy5zdGF0dXNLZXkoKV06IHZhbHVlLFxuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLnVwc2VydFBybS5hZGREYXRhIVt0aGlzLnN0YXR1c0tleSgpXSA9IHZhbHVlO1xuXHRcdFx0dGhpcy5jRm9ybS50cmlnZ2VyTW9kZWxFZmZlY3QoeyBbdGhpcy5zdGF0dXNLZXkoKV06IHZhbHVlIH0pO1xuXHRcdFx0Ly8gY3VzdG9tU3RlcHMucmVmcmVzaFN0ZXBzKClcblx0XHR9XG5cdH1cblxuXHRmb3JtRGlzRnVuYygpIHtcblx0XHRsZXQgZGF0YSA9IHRoaXMuZm9ybURpc2FibGVkKCkhKHRoaXMuZ2V0UHJtLmRhdGEpO1xuXHRcdGlmKHR5cGVvZiBkYXRhID09PSAnYm9vbGVhbicpe1xuXHRcdFx0dGhpcy5zYXZlQnRuRGlzYWJsZSA9IGRhdGFcblx0XHRcdHRoaXMuZ3JpZERpc2FibGUgPSBkYXRhXG5cdFx0XHR0aGlzLmRpc2FibGVGb3JtKGRhdGEpXG5cdFx0XHR0aGlzLmRpc2FiZWxkQ2hpbGQoZGF0YSlcblx0XHR9XG5cdFx0aWYodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKXtcblx0XHRcdGNvbnN0IGRpc2FiZWxkID0gZGF0YS5kaXNhYmxlZFxuXHRcdFx0Y29uc3QgZmlsdGVycyA9IGRhdGEuZmlsdGVycyB8fCBbXVxuXHRcdFx0aWYoIWZpbHRlcnMuaW5jbHVkZXMoJ2Zvcm0nKSl7XG5cdFx0XHRcdHRoaXMuZGlzYWJsZUZvcm0oZGlzYWJlbGQpXG5cdFx0XHR9XG5cdFx0XHRpZighZmlsdGVycy5pbmNsdWRlcygnZ3JpZCcpKXtcblx0XHRcdFx0dGhpcy5ncmlkRGlzYWJsZSA9IGRpc2FiZWxkXG5cdFx0XHRcdHRoaXMuZGlzYWJlbGRDaGlsZChkaXNhYmVsZClcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0ZGlzYWJsZUZvcm0oZGlzYWJsZTpib29sZWFuKXtcblx0XHR0aGlzLmZvcm1PcHRpb25zLmZpZWxkcz8uZm9yRWFjaCgodikgPT4ge1xuXHRcdFx0di5ncm91cD8uZm9yRWFjaCgoZzogYW55KSA9PiB7XG5cdFx0XHRcdGxldCBmaWVsZERpc2FibGVkID0gZ1tmb3JtVHlwZVRvUHJvcHNbZy50eXBlXV0uZGlzYWJsZWQgfHwgZmFsc2U7XG5cdFx0XHRcdGlmIChkaXNhYmxlKSB7XG5cdFx0XHRcdFx0dGhpcy5jRm9ybS5nZXRGaWVsZChnLmtleSk/LmZpZWxkQ29udHJvbCEubWFya0FzUHJpc3RpbmUoe2VtaXRFdmVudDogZmFsc2V9KTtcblx0XHRcdFx0XHR0aGlzLmNGb3JtLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQhZmllbGREaXNhYmxlZCAmJiB0aGlzLmNGb3JtLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KTtcdFx0XG5cdH1cblx0ZGlzYWJlbGRDaGlsZChkaXNhYmVsZDpib29sZWFuKXtcblx0XHR0aGlzLmdyaWRMaXN0KCkuZm9yRWFjaCgodixpbmRleDphbnkpID0+IHtcblx0XHRcdGlmKHYudHlwZSA9PSAnZ3JpZCcpe1xuXHRcdFx0XHR2LmdyaWRPcHRpb25zLmNvbHVtbkRlZnMuZm9yRWFjaCgoaXRlbTphbnkpID0+IHtcblx0XHRcdFx0XHRpZihkaXNhYmVsZCAmJiBpdGVtLmhhc093blByb3BlcnR5KCdlZGl0YWJsZScpKXtcblx0XHRcdFx0XHRcdGl0ZW0uZWRpdGFibGUgPSBmYWxzZVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdFx0dGhpcy5jdXN0b21HcmlkLmdldChpbmRleCkhLmdldEdyaWQoKS5hcGkuc2V0R3JpZE9wdGlvbihcblx0XHRcdFx0XHQnY29sdW1uRGVmcycsIFxuXHRcdFx0XHRcdHYuZ3JpZE9wdGlvbnMuY29sdW1uRGVmc1xuXHRcdFx0XHQpXG5cdFx0XHR9IGVsc2UgaWYodi50eXBlID09ICdmb3JtJyl7XG5cdFx0XHRcdHYuZmllbGRzPy5mb3JFYWNoKChpdGVtOmFueSwpID0+IHtcblx0XHRcdFx0XHRpdGVtLmdyb3VwPy5mb3JFYWNoKChnOiBhbnkpID0+IHtcblx0XHRcdFx0XHRcdGxldCBmaWVsZERpc2FibGVkID0gZ1tmb3JtVHlwZVRvUHJvcHNbZy50eXBlXV0uZGlzYWJsZWQgfHwgZmFsc2U7XG5cdFx0XHRcdFx0XHRpZiAoZGlzYWJlbGQpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy50YWJGb3JtLmdldChpbmRleCkhLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5tYXJrQXNQcmlzdGluZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cdFx0XHRcdFx0XHRcdHRoaXMudGFiRm9ybS5nZXQoaW5kZXgpIS5nZXRGaWVsZChnLmtleSk/LmZpZWxkQ29udHJvbCEuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQhZmllbGREaXNhYmxlZCAmJiB0aGlzLmNGb3JtLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KVxuXHR9XG5cdHNldERpc2FibGVkKCl7XG5cdFx0dGhpcy5ncmlkTGlzdCgpLmZvckVhY2goKHYsaW5kZXg6YW55KSA9PiB7XG5cdFx0XHRpZih2LnR5cGUgPT0gJ2Zvcm0nKXtcblx0XHRcdFx0di5maWVsZHM/LmZvckVhY2goKGl0ZW06YW55LCkgPT4ge1xuXHRcdFx0XHRcdGl0ZW0uZ3JvdXA/LmZvckVhY2goKGc6IGFueSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy50YWJGb3JtLmdldChpbmRleCkhLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSlcblx0fVxuXHR0YWJDbGljaygpe1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy50YWJGb3JtLmdldCh0aGlzLmluZGV4VmFsdWUpICYmIHRoaXMudGFiRm9ybS5nZXQodGhpcy5pbmRleFZhbHVlKSEucmVDYWxjTGFiZWxTaXplKClcblx0XHR9LDApXG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtZDpvdmVyZmxvdy1oaWRkZW5cIj5cblx0PGRpdiBjbGFzcz1cImZsZXggbWQ6ZmxleC13cmFwIGxnOmZsZXgtbm93cmFwIGl0ZW1zLWNlbnRlciBtZDpqdXN0aWZ5LWJldHdlZW4gcHktMSBweC0xIGJvcmRlci1iLVsxcHhdIGJvcmRlci1bI2RiZGJkYl0gYmctd2hpdGVcIj5cblx0XHQ8ZGl2IGNsYXNzPVwibWQ6YmFzaXMtMS8zIG9yZGVyLTFcIj5cblx0XHRcdDxhcHAtY3J1bWItYWN0aW9uXG5cdFx0XHRcdFthZGRWaXNpYmxlXT1cImFkZFZpc2libGUoKVwiXG5cdFx0XHRcdFtuZXdVcmxdPVwibmV3VXJsXCJcblx0XHRcdFx0W2lzU2hvd0NvZ109XCJ0cnVlXCJcblx0XHRcdFx0W291dGxpbmVkXT1cInRydWVcIlxuXHRcdFx0XHRbYXV0aExldmVsXT1cImF1dGhMZXZlbCgpXCJcblx0XHRcdFx0W2FjdGlvbkxpc3RdPVwiYWN0aW9uTGlzdCgpXCJcblx0XHRcdFx0W2NvbmZpZ05ld1BhdGhdPVwiY29uZmlnTmV3UGF0aCgpXCJcblx0XHRcdFx0W2RhdGFdPVwiZ2V0UHJtLmRhdGEgPz8ge31cIlxuXHRcdFx0XHRbc2F2ZUJ0bkRpc2FibGVdPVwic2F2ZUJ0bkRpc2FibGVcIlxuXHRcdFx0XHQoYWN0aW9uRXZlbnQpPVwiYXV0aENsaWNrKCRldmVudClcIlxuXHRcdFx0XHQoc2F2ZUV2ZW50KT1cInN1Ym1pdEZvcm0oKVwiPlxuXHRcdFx0PC9hcHAtY3J1bWItYWN0aW9uPlxuXHRcdDwvZGl2PlxuXG5cdFx0PGRpdiBjbGFzcz1cImJhc2lzLTEvNSBsZzpiYXNpcy0yLzMgb3JkZXItMiBsZzpvcmRlci0yIG1kOm9yZGVyLWxhc3QgbWQ6YmFzaXMtZnVsbCBtZDptdC1bNnB4XVwiPlxuXHRcdFx0PGhyZWYtYnRuLWxpc3Rcblx0XHRcdFx0W2hyZWZzXT1cImhyZWZCdG5MaXN0KClcIlxuXHRcdFx0XHQoaHJlZkNsaWNrKT1cImdvUnVuKCRldmVudClcIj48L2hyZWYtYnRuLWxpc3Q+XG5cdFx0XHQ8IS0tIEBpZiAoaWQpIHtcblx0XHRcdFx0QGZvciAoYnRuIG9mIGhyZWZCdG5MaXN0KCk7IHRyYWNrIGJ0bikge1xuXHRcdFx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHRcdFx0W3ZhcmlhbnRdPVwiYnRuPy52YXJpYW50XCJcblx0XHRcdFx0XHRcdFtzZXZlcml0eV09XCJidG4/LnNldmVyaXR5XCJcblx0XHRcdFx0XHRcdGNsYXNzPVwibXItWzZweF1cIlxuXHRcdFx0XHRcdFx0c2l6ZT1cInNtYWxsXCJcblx0XHRcdFx0XHRcdFtpY29uXT1cImJ0bj8uaWNvblwiXG5cdFx0XHRcdFx0XHRsYWJlbD1cInt7IGJ0bi5pMThuS2V5ID8gaTE4bi5mYW55aShidG4uaTE4bktleSkgOiBidG4ubGFiZWwgfX1cIlxuXHRcdFx0XHRcdFx0KGNsaWNrKT1cImdvUnVuKGJ0bilcIj5cblx0XHRcdFx0XHQ8L3AtYnV0dG9uPlxuXHRcdFx0XHR9XG5cdFx0XHR9IC0tPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJiYXNpcy0xLzMgb3JkZXItM1wiPjwvZGl2PlxuXHQ8L2Rpdj5cblx0PGRpdiBjbGFzcz1cImZsZXhcIj5cblx0XHQ8ZGl2IGNsYXNzPVwicHgtMiBmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgZmxleC0xXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJhc2lzLTEvMyBweS0xIGJhc2lzLWZ1bGwgbWQ6ZmxleCBpdGVtcy1jZW50ZXIgZmxleC1yb3cgb3JkZXItMVwiPlxuXHRcdFx0XHRAZm9yIChhY3Rpb24gb2YgYWN0aW9uTGlzdCgpOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgYWN0aW9uKSB7XG5cdFx0XHRcdFx0PHAtYnV0dG9uXG5cdFx0XHRcdFx0XHRzaXplPVwic21hbGxcIlxuXHRcdFx0XHRcdFx0W2ljb25dPVwiZ2V0UHJtLmRhdGE/Lmljb25cIlxuXHRcdFx0XHRcdFx0W2xhYmVsXT1cImFjdGlvbi5pMThuS2V5ID8gKGFjdGlvbi5pMThuS2V5IHwgdHJhbnNsYXRlKSA6IGFjdGlvbi5sYWJlbFwiXG5cdFx0XHRcdFx0XHRbZGlzYWJsZWRdPVwiYWN0aW9uLmJ0bkRpc2FibGVkID8gYWN0aW9uLmJ0bkRpc2FibGVkKGdldFBybS5kYXRhKSA6IGZhbHNlXCJcblx0XHRcdFx0XHRcdFtzdHlsZUNsYXNzXT1cIlxuXHRcdFx0XHRcdFx0XHQoYWN0aW9uLmF1dGggfHwgMCkgPiAoYXV0aExldmVsKCkgfHwgMCkgfHwgISFhY3Rpb24uYnRuSGlkZGVuPy4oZ2V0UHJtLmRhdGEpXG5cdFx0XHRcdFx0XHRcdFx0PyAnZm9ybS1hY3Rpb24gaGlkZGVuJ1xuXHRcdFx0XHRcdFx0XHRcdDogJ2Zvcm0tYWN0aW9uIGJsb2NrIG1yLVsuNXJlbV0nXG5cdFx0XHRcdFx0XHRcIlxuXHRcdFx0XHRcdFx0KG9uQ2xpY2spPVwiYWN0aW9uLm9uQ2xpY2sgIT0gJycgJiYgYWN0aW9uLm9uQ2xpY2s/LihnZXRQcm0uZGF0YSlcIj5cblx0XHRcdFx0XHQ8L3AtYnV0dG9uPlxuXHRcdFx0XHR9XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJtZDpiYXNpcy0yLzMgYmFzaXMtZnVsbCBmbGV4IG1kOmZsZXgtcm93LXJldmVyc2UgZmxleC1yb3cgbWQ6b3JkZXItMiBvcmRlci1maXJzdCB3LWZ1bGxcIj5cblx0XHRcdFx0PGN1c3RvbS1zdGVwc1xuXHRcdFx0XHRcdCNjdXN0b21TdGVwc1xuXHRcdFx0XHRcdGNsYXNzPVwidy1mdWxsXCJcblx0XHRcdFx0XHRbc3RlcHNdPVwic3RhdHVzU3RlcHMoKVwiXG5cdFx0XHRcdFx0W21vZGVsTG9nXT1cIm1vZGVsTG9nKClcIlxuXHRcdFx0XHRcdFtjdXJyZW50XT1cImdldFBybS5kYXRhICYmIGdldFBybS5kYXRhW3N0YXR1c0tleSgpXSAhPT0gdW5kZWZpbmVkID8gZ2V0UHJtLmRhdGFbc3RhdHVzS2V5KCldIDogMFwiXG5cdFx0XHRcdFx0W2F1dGhMZXZlbF09XCJhdXRoTGV2ZWwoKVwiXG5cdFx0XHRcdFx0W2lzQ2xpY2tdPVwidGhpcy5zdGF0dXNDb25mKCkuaXNDbGlja1wiXG5cdFx0XHRcdFx0KGNoYW5nZSk9XCJzdGF0dXNDaGFuZ2UoJGV2ZW50LCBjdXN0b21TdGVwcylcIj5cblx0XHRcdFx0PC9jdXN0b20tc3RlcHM+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHRAaWYgKG1vZGVsTG9nKCkpIHtcblx0XHRcdDxkaXYgY2xhc3M9XCJsZzp3LVs0MDBweF0gbWQ6dy1bMzAwcHhdIGhpZGRlbiBtZDpibG9ja1wiPjwvZGl2PlxuXHRcdH1cblx0PC9kaXY+XG5cdDxkaXYgY2xhc3M9XCJtYWluIGZsZXggZmxleC13cmFwXCI+XG5cdFx0PGRpdiBjbGFzcz1cInctZnVsbCBtZDpmbGV4LTEgbWQ6aC1mdWxsIG1kOm92ZXJmbG93LXktYXV0b1wiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImJnLXdoaXRlIG14LTIgZm9ybS1wYW5lbFwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwicC0yIGZsZXgtMVwiPlxuXHRcdFx0XHRcdDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybSgpLmZvcm0hXCI+XG5cdFx0XHRcdFx0XHQ8Y3VzdG9tLWZvcm1cblx0XHRcdFx0XHRcdFx0I2NGb3JtXG5cdFx0XHRcdFx0XHRcdFtvcHRpb25zXT1cImZvcm1PcHRpb25zXCJcblx0XHRcdFx0XHRcdFx0W3Vwc2VydF09XCJ1cHNlcnRQcm1cIlxuXHRcdFx0XHRcdFx0XHRbbW9kZWxdPVwiZ2V0UHJtLmRhdGEgPz8ge31cIj48L2N1c3RvbS1mb3JtPlxuXHRcdFx0XHRcdDwvZm9ybT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdEBpZiAoZ3JpZExpc3QoKSAmJiBncmlkTGlzdCgpLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicmVsYXRpdmUgbWItMlwiPlxuXHRcdFx0XHRcdFx0PHAtdGFicyBbKHZhbHVlKV09XCJpbmRleFZhbHVlXCI+XG5cdFx0XHRcdFx0XHRcdDxwLXRhYmxpc3Q+XG5cdFx0XHRcdFx0XHRcdFx0QGZvciAoZmNoaWxkIG9mIGdyaWRMaXN0KCk7IGxldCBpID0gJGluZGV4OyB0cmFjayBmY2hpbGQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdDxwLXRhYlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRbdmFsdWVdPVwiaVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJ0YWJDbGljaygpXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7IGZjaGlsZC5pMThuS2V5ID8gaTE4bi5mYW55aShmY2hpbGQuaTE4bktleSkgOiBmY2hpbGQudGl0bGUgfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvcC10YWI+XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHQ8L3AtdGFibGlzdD5cblx0XHRcdFx0XHRcdDwvcC10YWJzPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHR9XG5cdFx0XHRcdEBmb3IgKGdyaWQgb2YgZ3JpZExpc3QoKTsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrIGdyaWQpIHtcblx0XHRcdFx0XHRAaWYgKGdyaWQudHlwZSA9PSAnZ3JpZCcpIHtcblx0XHRcdFx0XHRcdDxjdXN0b20tZ3JpZFxuXHRcdFx0XHRcdFx0XHQjY3VzdG9tR3JpZFxuXHRcdFx0XHRcdFx0XHRbaGlkZGVuXT1cImluZGV4VmFsdWUgIT0gaVwiXG5cdFx0XHRcdFx0XHRcdFtyb3dEYXRhXT1cImdldFBybS5kYXRhPy5bZ3JpZC5zdWJEYXRhS2V5IV1cIlxuXHRcdFx0XHRcdFx0XHRbdXBzZXJ0XT1cInVwc2VydFBybVwiXG5cdFx0XHRcdFx0XHRcdChkZWxldGVFbWl0KT1cImRlbFJvd3MoJGV2ZW50KVwiXG5cdFx0XHRcdFx0XHRcdFthZGRUeXBlXT1cImdyaWQuc3ViVGFibGVTb3VyY2VcIlxuXHRcdFx0XHRcdFx0XHQoYWRkRW1pdCk9XCJkYXRhU291cmNlU2hvdygpXCJcblx0XHRcdFx0XHRcdFx0W2dyaWRPcHRpb25zXT1cImdyaWQuZ3JpZE9wdGlvbnNcIlxuXHRcdFx0XHRcdFx0XHRbZ3JpZERpc2FibGVdPVwiZ3JpZERpc2FibGVcIlxuXHRcdFx0XHRcdFx0XHRbYXV0aExldmVsXT1cImF1dGhMZXZlbCgpXCJcblx0XHRcdFx0XHRcdFx0W3Nob3dEZWxldGVdPVwiZ3JpZC5zaG93RGVsZXRlXCJcblx0XHRcdFx0XHRcdFx0W3NlbGVjdERhdGFdPVwiZ3JpZC5zZWxlY3REYXRhXCJcblx0XHRcdFx0XHRcdFx0W2FkZFNvcnRdPVwiZ3JpZC5hZGRTb3J0XCI+XG5cdFx0XHRcdFx0XHQ8L2N1c3RvbS1ncmlkPlxuXHRcdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdFx0PCEtLSBAaWYoaW5kZXhWYWx1ZSA9PSBpKXtcblx0XHRcdFx0XHRcdFx0PGZvcm0gW2Zvcm1Hcm91cF09XCJncmlkLmZvcm0hXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGN1c3RvbS1mb3JtXG5cdFx0XHRcdFx0XHRcdFx0W29wdGlvbnNdPVwiZ3JpZFwiXG5cdFx0XHRcdFx0XHRcdFx0W3Vwc2VydF09XCJ1cHNlcnRQcm1cIlxuXHRcdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0PC9jdXN0b20tZm9ybT5cblx0XHRcdFx0XHRcdFx0PC9mb3JtPlxuXHRcdFx0XHRcdFx0fSAtLT5cblx0XHRcdFx0XHRcdDxjdXN0b20tZm9ybVxuXHRcdFx0XHRcdFx0XHQjdGFiRm9ybVxuXHRcdFx0XHRcdFx0XHRbaGlkZGVuXT1cImluZGV4VmFsdWUgIT0gaVwiXG5cdFx0XHRcdFx0XHRcdFtvcHRpb25zXT1cImdyaWRcIlxuXHRcdFx0XHRcdFx0XHRbdXBzZXJ0XT1cInVwc2VydFBybVwiXG5cdFx0XHRcdFx0XHRcdFttb2RlbF09XCJzdWJGb3JtTW9kZWxbZ3JpZC5zdWJEYXRhS2V5IV0gfHwge31cIj5cblx0XHRcdFx0XHRcdDwvY3VzdG9tLWZvcm0+XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHRAaWYgKG1vZGVsTG9nKCkpIHtcblx0XHRcdDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1bNDAwcHhdIG1kOnctWzMwMHB4XSBtZDpoLWZ1bGwgbWQ6b3ZlcmZsb3cteS1hdXRvIGhpZGRlbiBtZDpibG9ja1wiPlxuXHRcdFx0XHQ8Y3VzdG9tLWxvZyBbbG9nc109XCJnZXRQcm0uZGF0YT8ubG9nID8/IFtdXCI+PC9jdXN0b20tbG9nPlxuXHRcdFx0PC9kaXY+XG5cdFx0fVxuXHQ8L2Rpdj5cbjwvZGl2PlxuPHJvdy1zZWxlY3RvclxuXHRbKHZpc2libGUpXT1cInZpc2libGVcIlxuXHRbc2VhcmNoUHJtXT1cImRpYWxvZ1NlYXJjaFBybVwiXG5cdFtncmlkT3B0aW9uc109XCJzZWxlY3RPcHRpb25zXCJcblx0W3NlbGVjdGlvbktleXNdPVwic2VsZWN0aW9uS2V5c1wiXG5cdChvbk9rKT1cIm9uT2soJGV2ZW50KVwiXG5cdChjYW5jZWxTZWxlY3QpPVwib25DYW5jZWxTZWxlY3RlZCgkZXZlbnQpXCI+XG48L3Jvdy1zZWxlY3Rvcj5cbiJdfQ==
|
|
@@ -8617,12 +8617,12 @@ class PageFormComponent extends AmComponent {
|
|
|
8617
8617
|
};
|
|
8618
8618
|
if (!deleteFunc) {
|
|
8619
8619
|
this.web_remove(prm).subscribe((res) => {
|
|
8620
|
-
this.getDetail();
|
|
8620
|
+
typeof this.formDetail() == 'function' ? this.formDetail()(this.id) : this.getDetail();
|
|
8621
8621
|
});
|
|
8622
8622
|
}
|
|
8623
8623
|
else {
|
|
8624
8624
|
deleteFunc().subscribe(() => {
|
|
8625
|
-
this.getDetail();
|
|
8625
|
+
typeof this.formDetail() == 'function' ? this.formDetail()(this.id) : this.getDetail();
|
|
8626
8626
|
});
|
|
8627
8627
|
}
|
|
8628
8628
|
}
|
|
@@ -8698,12 +8698,6 @@ class PageFormComponent extends AmComponent {
|
|
|
8698
8698
|
}
|
|
8699
8699
|
getDetail() {
|
|
8700
8700
|
this.web_get(this.getPrm).subscribe((res) => {
|
|
8701
|
-
this.gridList().forEach((value) => {
|
|
8702
|
-
if (value.type == 'grid' && !this.getPrm.data.hasOwnProperty(value.subDataKey)) {
|
|
8703
|
-
this.getPrm.data[value.subDataKey] = [];
|
|
8704
|
-
}
|
|
8705
|
-
});
|
|
8706
|
-
console.log('this.getPrm.data', this.getPrm.data);
|
|
8707
8701
|
this.detailCb(res);
|
|
8708
8702
|
});
|
|
8709
8703
|
}
|
|
@@ -8721,6 +8715,11 @@ class PageFormComponent extends AmComponent {
|
|
|
8721
8715
|
this.subFormModel[v.subDataKey] = res[v.subDataKey][0];
|
|
8722
8716
|
}
|
|
8723
8717
|
});
|
|
8718
|
+
this.gridList().forEach((value) => {
|
|
8719
|
+
if (value.type == 'grid' && !this.getPrm.data.hasOwnProperty(value.subDataKey)) {
|
|
8720
|
+
this.getPrm.data[value.subDataKey] = [];
|
|
8721
|
+
}
|
|
8722
|
+
});
|
|
8724
8723
|
}
|
|
8725
8724
|
setHrefValue() {
|
|
8726
8725
|
this.hrefBtnList().map((item) => {
|