tango-app-ui-manage-tickets 3.7.0-beta.77 → 3.7.0-beta.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/audit-mapping-list/audit-mapping-list.component.mjs +6 -1
- package/esm2022/lib/components/audit-retag/audit-retag.component.mjs +1 -17
- package/esm2022/lib/components/start-audit/start-audit.component.mjs +4 -1
- package/fesm2022/tango-app-ui-manage-tickets.mjs +8 -16
- package/fesm2022/tango-app-ui-manage-tickets.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -473,6 +473,9 @@ export class StartAuditComponent {
|
|
|
473
473
|
insertObj.img_id = filteredData[0]?.img_id;
|
|
474
474
|
insertObj.img_name = filteredData[0]?.img_name;
|
|
475
475
|
insertObj.img_path = filteredData[0]?.img_path;
|
|
476
|
+
insertObj.count = 1;
|
|
477
|
+
insertObj.dropped = false;
|
|
478
|
+
insertObj.selected = false;
|
|
476
479
|
insertObj.mappedid = [
|
|
477
480
|
{
|
|
478
481
|
img_id: filteredData[0]?.img_id,
|
|
@@ -755,4 +758,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
755
758
|
type: HostListener,
|
|
756
759
|
args: ['window:keydown', ['$event']]
|
|
757
760
|
}] } });
|
|
758
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtYXVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXRpY2tldHMvc3JjL2xpYi9jb21wb25lbnRzL3N0YXJ0LWF1ZGl0L3N0YXJ0LWF1ZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9zdGFydC1hdWRpdC9zdGFydC1hdWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFlBQVksRUFBRSxTQUFTLEVBQTJDLE1BQU0sZUFBZSxDQUFDO0FBR3BILE9BQU8sRUFBYyxPQUFPLEVBQXVCLE1BQU0sTUFBTSxDQUFDO0FBSWhFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7O0FBTy9FLE1BQU0sT0FBTyxtQkFBbUI7SUE4SHBCO0lBQ0E7SUFDQTtJQUNBO0lBQXdCO0lBQ3hCO0lBQWdDO0lBQ2hDO0lBQTJDO0lBbElyRCxTQUFTLENBQU07SUFDZixZQUFZLENBQU07SUFDbEIsV0FBVyxHQUFRLEVBQUUsQ0FBQztJQUN0QixVQUFVLENBQU07SUFDaEIsS0FBSyxHQUFRLEdBQUcsQ0FBQztJQUNqQixNQUFNLEdBQVEsRUFBRSxDQUFBO0lBQ2hCLFlBQVksR0FBRyxJQUFJLENBQUE7SUFDbkIsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUMzQixPQUFPLENBQU07SUFDYixhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLFNBQVMsR0FB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Q0YsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO2dCQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsbUZBQW1GO0lBRXJGLENBQUM7SUFDRCxhQUFhO1FBQ1gsbUVBQW1FO1FBQ25FLG9CQUFvQjtRQUNwQixjQUFjO1FBQ2QsS0FBSztJQUNQLENBQUM7d0dBL3VCVSxtQkFBbUI7NEZBQW5CLG1CQUFtQix3V0NuQmhDLCs2Y0E2S2M7OzRGRDFKRCxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCOzJTQStCQSxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0UsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQVF6QixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBd0JqQyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSG9zdExpc3RlbmVyLCBWaWV3Q2hpbGQsIHZpZXdDaGlsZCwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5nYk1vZGFsLCBOZ2JNb2RhbFJlZiB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGltZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBdWRpdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdWRpdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IE5neFNwaW5uZXJTZXJ2aWNlIH0gZnJvbSAnbmd4LXNwaW5uZXInO1xyXG5pbXBvcnQgeyBSZW1vdmVBdWRpdENvbXBvbmVudCB9IGZyb20gJy4uL3JlbW92ZS1hdWRpdC9yZW1vdmUtYXVkaXQuY29tcG9uZW50JztcclxuaW1wb3J0ICogYXMgTFpTdHJpbmcgZnJvbSAnbHotc3RyaW5nJztcclxuaW1wb3J0IHsgRXhjZWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXhjZWwuc2VydmljZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUaW1lclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aW1lci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlld2NhdGVnb3J5Q29tcG9uZW50IH0gZnJvbSAnLi4vdmlld2NhdGVnb3J5L3ZpZXdjYXRlZ29yeS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc3RhcnQtYXVkaXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGFydC1hdWRpdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3N0YXJ0LWF1ZGl0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RhcnRBdWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBqdW5raW1hZ2U6IGFueTtcclxuICBlbXBsb3llaW1hZ2U6IGFueTtcclxuICBmaWxlZGV0YWlsczogYW55ID0ge307XHJcbiAgZGF0YXJlYXNvbjogYW55O1xyXG4gIGxpbWl0OiBhbnkgPSA1MDA7XHJcbiAgbmV4dElkOiBhbnkgPSAnJ1xyXG4gIHNwaW5uZXJzdGFydCA9IHRydWVcclxuICBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhdWRpdElkOiBhbnk7XHJcbiAgY3VzdG9tZXJjb3VudCA9IDA7XHJcbiAganVua2NvdW50ID0gMDtcclxuICBlbXBsb3llZWNvdW50ID0gMDtcclxuICBkZW1vZ3JhcGhpYzogYW55O1xyXG4gIGlkOiBhbnkgPSAnJztcclxuICBxdWV1ZU5hbWU6IGFueSA9ICcnO1xyXG4gIGF1ZGl0bWFwcGluZ2RhdGE6IGFueTtcclxuICB0b3RhbGZpbGU6IGFueSA9IDA7XHJcbiAgYXVkaXRMb2FkaW5nID0gdHJ1ZTtcclxuICBiYWRnZSA9IGZhbHNlO1xyXG4gIGltYWdlbGlzdDogYW55ID0gXCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvbG9hZGluZy1pbWcucG5nXCJcclxuICBzZWxlY3RlZDogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRUeXBlOiBhbnk7XHJcbiAgYXVkaXRMb2FkaW5nMSA9IHRydWU7XHJcbiAgTm9kYXRhID0gZmFsc2U7XHJcbiAgY291bnRlcjogYW55ID0gMTtcclxuICBjbGlja2VkSW1hZ2VzOiBib29sZWFuW10gPSBbXTtcclxuICBAVmlld0NoaWxkKCdjb25maXJtRHJhZnQnKSBjb25maXJtRHJhZnQ6IGFueTtcclxuICBAVmlld0NoaWxkKCdjb25maXJtZXJyb3InKSBjb25maXJtZXJyb3I6IGFueTtcclxuICBFcnJvcm1zZzogYW55O1xyXG4gIHN0b3JlZGV0YWlsczogYW55O1xyXG4gIG9wZW5tb2RlbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGdldEJhY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXRlZ29yeTogYW55ID0gW11cclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnNjcm9sbFwiLCBbXSlcclxuICBvblNjcm9sbCgpOiB2b2lkIHtcclxuICAgIGlmICgndG90YWxmaWxlcycgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgbGV0IGZpbGVkYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9JylcclxuICAgICAgaWYgKGZpbGVkYXRhPy5maWxlZGV0YWlscz8ubmV4dFRva2VuKSB7XHJcbiAgICAgICAgaWYgKE1hdGguY2VpbCh3aW5kb3cuaW5uZXJIZWlnaHQgKyB3aW5kb3cuc2Nyb2xsWSkgPj0gZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQpIHsvL3RoaXMgY29uZGl0aW9uIGZhaWxlZCB3aGVuIHRoZSBicm93c2VyIGluc3BlY3Qgc2NyZWVuIG9wZW4gaW4gaG9yaXpvbnRhbFxyXG4gICAgICAgICAgaWYgKHRoaXMuc3Bpbm5lcnN0YXJ0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgICAgICAgICB0aGlzLmdldE1hcHBpbmcoJ25leHRJZCcpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcmVzdWx0OiBhbnkgPSB3aW5kb3cuY29uZmlybShcIlNvbWV0aGluZyBXZW50IFdyb25nLiBQbGVhc2UgY2xlYXIgYnJvd3NlciBjYWNoZSBvciBVc2UgaW5jb2duaXRvIHdpbmRvd1wiKVxyXG4gICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5vcGVubW9kZWwpIHJldHVybjtcclxuICAgIC8vIGlmIChldmVudC5rZXkgPT09ICdnJyB8fCBldmVudC5jb2RlID09PSAnS2V5RycpIHtcclxuICAgIC8vICAgdmFyIGdyb3VwID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhLmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhLnNlbGVjdGVkID09PSB0cnVlKVxyXG4gICAgLy8gICBpZiAoZ3JvdXAubGVuZ3RoID4gMCkge1xyXG4gICAgLy8gICAgIGlmIChncm91cC5sZW5ndGggPT0gMSkge1xyXG4gICAgLy8gICAgICAgdGhpcy50b2FzdHIuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIFNlbGVjdCBtdWx0aXBsZSBmaWxlIHRoZW4gYWRkIHRvIEdyb3VwJylcclxuICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgLy8gICAgICAgbGV0IGR1bW15YXJyYXkgPSBncm91cC5zaGlmdCgpXHJcbiAgICAvLyAgICAgICB2YXIgZ3JvdXBpbWFnZXM6IGFueSA9IFtdXHJcbiAgICAvLyAgICAgICBncm91cC5mb3JFYWNoKChkYXRhOiBhbnkpID0+IHtcclxuICAgIC8vICAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhLnNwbGljZSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmluZEluZGV4KCh7IGltZ19uYW1lIH06IHsgaW1nX25hbWU6IHN0cmluZyB9KSA9PiBpbWdfbmFtZSA9PSBkYXRhLmltZ19uYW1lKSwgMSk7XHJcbiAgICAvLyAgICAgICAgIGdyb3VwaW1hZ2VzLnB1c2goZGF0YS5tYXBwZWRpZFswXSlcclxuICAgIC8vICAgICAgIH0pXHJcbiAgICAvLyAgICAgICB0aGlzLmRlbW9ncmFwaGljID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhLmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhLmRlbW9ncmFwaGljID09PSAnZCcpLmxlbmd0aDtcclxuICAgIC8vICAgICAgIGR1bW15YXJyYXkuY291bnQgPSBkdW1teWFycmF5LmNvdW50ICsgZ3JvdXBpbWFnZXMubGVuZ3RoXHJcbiAgICAvLyAgICAgICBkdW1teWFycmF5LnNlbGVjdGVkID0gZmFsc2VcclxuICAgIC8vICAgICAgIGR1bW15YXJyYXkuZGVtb2dyYXBoaWMgPSAnJ1xyXG4gICAgLy8gICAgICAgZHVtbXlhcnJheS5tYXBwZWRpZCA9IFsuLi5kdW1teWFycmF5Lm1hcHBlZGlkLCAuLi5ncm91cGltYWdlc11cclxuICAgIC8vICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEpO1xyXG4gICAgLy8gICAgICAgY29uc3QgY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5jb21wcmVzcyhqc29uU3RyaW5nKTtcclxuICAgIC8vICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2F1ZGl0JywgY29tcHJlc3NlZERhdGEpXHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vICAgICAvLyB0aGlzLmluaXRpYWxfZGF0YV9sb2FkaW5nKClcclxuICAgIC8vICAgfSBlbHNlIHtcclxuICAgIC8vICAgICB0aGlzLnRvYXN0ci5nZXRFcnJvclRvYXN0KCdQbGVhc2UgU2VsZWN0IGZpbGUgdGhlbiBhZGQgdG8gR3JvdXAnKVxyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcbiAgICBjb25zdCBwcmVzc2VkID0gKGV2ZW50LmtleSB8fCAnJykudG9Mb3dlckNhc2UoKTtcclxuICAgIGNvbnN0IG1hdGNoZWQgPSB0aGlzLmNhdGVnb3J5LmZpbmQoKG06IGFueSkgPT4ge1xyXG4gICAgICBpZiAoIW0ua2V5KSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGNvbnN0IG1hcEtleSA9IG0ua2V5LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIC8vIG1hdGNoIGJ5IGV2ZW50LmtleSAocHJlZmVycmVkKSBPUiBieSBldmVudC5jb2RlIGxpa2UgJ0tleUonXHJcbiAgICAgIHJldHVybiBwcmVzc2VkID09PSBtYXBLZXkgfHwgZXZlbnQuY29kZSA9PT0gYEtleSR7bWFwS2V5LnRvVXBwZXJDYXNlKCl9YDtcclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICBpZiAoIW1hdGNoZWQpIHJldHVyblxyXG4gICAgaWYgKG1hdGNoZWQpIHtcclxuICAgICAgdmFyIG5ld0RhdGEgPSB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuc2VsZWN0ZWQgPT09IHRydWUpXHJcbiAgICAgIGlmIChuZXdEYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB2YXIgb2xkRGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShtYXRjaGVkPy50eXBlKSB8fCAne30nKVxyXG4gICAgICAgIGlmIChOdW1iZXIob2xkRGF0YS5sZW5ndGgpID4gMCkge1xyXG4gICAgICAgICAgbmV3RGF0YSA9IFsuLi5vbGREYXRhLCAuLi5uZXdEYXRhXVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBuZXdEYXRhID0gbmV3RGF0YVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YS50eXBlID09PSBtYXRjaGVkPy50eXBlKSB7XHJcbiAgICAgICAgICAgIGRhdGEuY291bnQgPSBuZXdEYXRhLmxlbmd0aFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShtYXRjaGVkPy50eXBlLCBKU09OLnN0cmluZ2lmeShuZXdEYXRhKSlcclxuICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEgPSB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuc2VsZWN0ZWQgPT09IGZhbHNlKVxyXG4gICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEpO1xyXG4gICAgICAgIGNvbnN0IGNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuY29tcHJlc3MoanNvblN0cmluZyk7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXVkaXQnLCBjb21wcmVzc2VkRGF0YSlcclxuICAgICAgICB0aGlzLnRvYXN0ci5nZXRTdWNjZXNzVG9hc3QoYCR7bWF0Y2hlZD8udHlwZX0gQWRkZWQgU3VjY2VzZnVsbHkhYCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuZ2V0RXJyb3JUb2FzdChgUGxlYXNlIFNlbGVjdCBmaWxlIHRoZW4gYWRkIHRvICR7bWF0Y2hlZD8udHlwZX0gYClcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZXhjZWw6IEV4Y2VsU2VydmljZSxcclxuICAgIHByaXZhdGUgYXVkaXRzZXJ2aWNlOiBBdWRpdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsIHByaXZhdGUgdGltZXJTZXJ2aWNlOiBUaW1lclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNwaW5uZXJTZXJ2aWNlOiBOZ3hTcGlubmVyU2VydmljZSwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGVcclxuICApIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUeXBlID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ3R5cGUnKVxyXG4gIH1cclxuICBkZXN0cm95ID0gbmV3IFN1YmplY3QoKTtcclxuICBzaG93RGlhbG9nID0gZmFsc2U7XHJcbiAgdGltZVBhc3NlZDogbnVtYmVyID0gMDtcclxuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIGZvcm1hdHRlZFRpbWU6IHN0cmluZyA9ICcwMDowMDowMCc7XHJcblxyXG4gIG5vdGljZSA9ICdzZXNzaW9uIGV4cGlyZWQnO1xyXG4gIHNob3dOb3RpY2UgPSBmYWxzZTtcclxuICByeGpzVGltZXI6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuZ2V0QXVkaXRDb25maWcoKVxyXG4gICAgaWYgKCd1c2VyLWluZm8nIGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgICB2YXIgdXNlciA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXItaW5mbycpIHx8ICd7fScpXHJcbiAgICAgIHRoaXMuaWQgPSB1c2VyLl9pZFxyXG4gICAgfVxyXG4gICAgaWYgKCdhdWRpdCcgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgbGV0IHN0cmluZ2lmeWRhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhdWRpdCcpIHx8ICd7fSdcclxuICAgICAgY29uc3QgZGVjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmRlY29tcHJlc3Moc3RyaW5naWZ5ZGF0YSk7XHJcbiAgICAgIHZhciBhdWRpdGRhdGEgPSBKU09OLnBhcnNlKGRlY29tcHJlc3NlZERhdGEgfHwgJ3t9JylcclxuICAgICAgaWYgKGF1ZGl0ZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhID0gYXVkaXRkYXRhO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tZXJjb3VudCA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5sZW5ndGhcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmF1ZGl0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNldFRpbWVyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgZmlsZWRhdGFcclxuICAgICAgaWYgKCd0b3RhbGZpbGVzJyBpbiBzZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICAgIGZpbGVkYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9JylcclxuICAgICAgICB0aGlzLmdldE1hcHBpbmcoKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRUaW1lcigpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy50aW1lclNlcnZpY2UuZ2V0VGltZVBhc3NlZCgpLnN1YnNjcmliZSh0aW1lID0+IHtcclxuICAgICAgdGhpcy50aW1lUGFzc2VkID0gdGltZTtcclxuICAgICAgdGhpcy5mb3JtYXR0ZWRUaW1lID0gdGhpcy50aW1lclNlcnZpY2UuZm9ybWF0VGltZSh0aW1lKTtcclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMudGltZXJTZXJ2aWNlLnN0YXJ0VGltZXIoKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVHbG9iYWxNb3VzZUV2ZW50ID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgdGhpcy50aW1lclNlcnZpY2Uuc3RhcnRUaW1lcigpO1xyXG4gIH1cclxuXHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIHRoaXMudGltZXJTZXJ2aWNlLmNsZWFyVGltZXIoKVxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbF9kYXRhX2xvYWRpbmcoKSB7XHJcbiAgICBpZiAoJ2F1ZGl0JyBpbiBzZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgICBjb25zdCBkZWNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuZGVjb21wcmVzcyhzdHJpbmdpZnlkYXRhKTtcclxuICAgICAgdmFyIGF1ZGl0ZGF0YSA9IEpTT04ucGFyc2UoZGVjb21wcmVzc2VkRGF0YSB8fCAne30nKVxyXG4gICAgICBpZiAoYXVkaXRkYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEgPSBhdWRpdGRhdGE7XHJcbiAgICAgICAgdGhpcy5kZW1vZ3JhcGhpYyA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5kZW1vZ3JhcGhpYyA9PT0gJ2QnKS5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5jdXN0b21lcmNvdW50ID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhLmxlbmd0aFxyXG4gICAgICAgIHRoaXMuYXVkaXRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhID0gW11cclxuICAgICAgICB0aGlzLmN1c3RvbWVyY291bnQgPSAwXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB2YXIgY291bnQgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZGF0YS50eXBlKSB8fCAne30nKVxyXG4gICAgICBkYXRhLmNvdW50ID0gY291bnQ/Lmxlbmd0aFxyXG4gICAgfSlcclxuICAgIGlmICgncmV0YWcnIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIHZhciByZXRhZ2lhbWdlID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdyZXRhZycpIHx8ICdbXScpXHJcbiAgICAgIGlmIChyZXRhZ2lhbWdlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgICAgIGNvbnN0IGRlY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5kZWNvbXByZXNzKHN0cmluZ2lmeWRhdGEpO1xyXG4gICAgICAgIHZhciBjdXN0b21lciA9IEpTT04ucGFyc2UoZGVjb21wcmVzc2VkRGF0YSB8fCAne30nKVxyXG4gICAgICAgIGN1c3RvbWVyID0gWy4uLmN1c3RvbWVyLCAuLi5yZXRhZ2lhbWdlXVxyXG4gICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEpO1xyXG4gICAgICAgIGNvbnN0IGNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuY29tcHJlc3MoanNvblN0cmluZyk7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXVkaXQnLCBjb21wcmVzc2VkRGF0YSlcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdyZXRhZycpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICgndG90YWxmaWxlcycgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgdmFyIGZpbGVzID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9JylcclxuICAgICAgdGhpcy50b3RhbGZpbGUgPSBmaWxlcz8udG90YWxmaWxlc1xyXG4gICAgICB0aGlzLmZpbGVkZXRhaWxzID0gZmlsZXM/LmZpbGVkZXRhaWxzXHJcbiAgICAgIHRoaXMuc3RvcmVkZXRhaWxzID0gZmlsZXM/LnN0b3JlZGV0YWlsc1xyXG4gICAgfVxyXG4gIH1cclxuICB0b2dnbGVJbWFnZShpbWdfbmFtZTogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkLnB1c2goaW1nX25hbWUpXHJcbiAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEubWFwKChkYXRhOiBhbnkpID0+IHtcclxuXHJcbiAgICAgIGlmIChkYXRhLmltZ19uYW1lID09IGltZ19uYW1lKSB7XHJcbiAgICAgICAgaWYgKGRhdGEubWFwcGVkaWQubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgIGRhdGEuc2VsZWN0ZWQgPSAhZGF0YS5zZWxlY3RlZFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBkYXRhLmRyb3BwZWQgPSAhZGF0YS5kcm9wcGVkXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBnZXRBdWRpdENvbmZpZygpIHtcclxuXHJcbiAgICBsZXQgZmlsZWRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKVxyXG4gICAgdGhpcy5hdWRpdHNlcnZpY2UuZ2V0QXVkaXRjb25maWcoZmlsZWRhdGE/LmZpbGVkZXRhaWxzPy5jbGllbnRJZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5ID0gcmVzLmRhdGEuZm9vdGZhbGxEaXJlY3RvcnlDb25maWdzLnRhZ2dpbmdMaW1pdGF0aW9uXHJcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChkYXRhPy50eXBlIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcblxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oZGF0YS50eXBlLCBKU09OLnN0cmluZ2lmeShbXSkpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICB0aGlzLmluaXRpYWxfZGF0YV9sb2FkaW5nKClcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBnZXRNYXBwaW5nKG5leHRJZD86IGFueSkge1xyXG4gICAgdGhpcy5hdWRpdExvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zcGlubmVyc3RhcnQgPSBmYWxzZVxyXG4gICAgbGV0IGZpbGVkYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9JylcclxuICAgIGxldCB0aWNrZXR0eXBlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndGlja2V0VHlwZScpXHJcbiAgICBjb25zb2xlLmxvZyhcIvCfmoAgfiBTdGFydEF1ZGl0Q29tcG9uZW50IH4gZ2V0TWFwcGluZyB+IHRpY2tldHR5cGU6XCIsIHRpY2tldHR5cGUpXHJcbiAgICBsZXQgcGF5bG9hZCA9IHtcclxuICAgICAgc3RvcmVJZDogZmlsZWRhdGE/LmZpbGVkZXRhaWxzPy5zdG9yZUlkLFxyXG4gICAgICBsaW1pdDogdGhpcy5saW1pdCxcclxuICAgICAgbmV4dElkOiBmaWxlZGF0YT8uZmlsZWRldGFpbHM/Lm5leHRUb2tlbiA/IGZpbGVkYXRhPy5maWxlZGV0YWlscz8ubmV4dFRva2VuIDogJycsXHJcbiAgICAgIERhdGU6IGZpbGVkYXRhPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgY291bnQ6IGZpbGVkYXRhPy50b3RhbGZpbGVzLFxyXG4gICAgICB0aWNrZXR0eXBlOnRpY2tldHR5cGVcclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5hdWRpdHNlcnZpY2UuZ2V0QXVkaXRNYXBwaW5nKHBheWxvYWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuc3RvcmVkZXRhaWxzID0gcmVzPy5kYXRhO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXM/LmRhdGE/LmZpbGU/Lm5leHRUb2tlbikge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0TWFwcGluZyhyZXM/LmRhdGE/LmZpbGU/Lm5leHRUb2tlbilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSwgMTAwKVxyXG4gICAgICAgICAgaWYgKHJlcz8uZGF0YT8uaXNEcmFmdCkge1xyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCd0aW1lU3BlbnQnLCBKU09OLnN0cmluZ2lmeShyZXM/LmRhdGE/LnRpbWVTcGVudCkpO1xyXG4gICAgICAgICAgICB0aGlzLnNwaW5uZXJzdGFydCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICBsZXQgZmlsdGVyRGF0YSA9IHJlcz8uZGF0YT8ucmVzdWx0LmZpbHRlcigoeDogYW55KSA9PiB4LnR5cGUgPT09IGRhdGEudHlwZSlcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGRhdGEudHlwZSwgSlNPTi5zdHJpbmdpZnkoZmlsdGVyRGF0YVswXS52YWx1ZSkpXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIGxldCBjdXN0b21lckRhdGEgPSByZXM/LmRhdGE/LnJlc3VsdC5maWx0ZXIoKHg6IGFueSkgPT4geC50eXBlID09PSAnY3VzdG9tZXInKVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhID0gY3VzdG9tZXJEYXRhWzBdLnZhbHVlXHJcbiAgICAgICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeShjdXN0b21lckRhdGFbMF0udmFsdWUpO1xyXG4gICAgICAgICAgICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmNvbXByZXNzKGpzb25TdHJpbmcpO1xyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdhdWRpdCcsIGNvbXByZXNzZWREYXRhKVxyXG5cclxuXHJcbiAgICAgICAgICAgIHRoaXMudG90YWxmaWxlID0gcmVzPy5kYXRhPy5jb3VudDtcclxuICAgICAgICAgICAgdGhpcy5maWxlZGV0YWlscyA9IHJlcz8uZGF0YT8uZmlsZTtcclxuXHJcblxyXG4gICAgICAgICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgdmFyIGNvdW50ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGEudHlwZSkgfHwgJ3t9JylcclxuICAgICAgICAgICAgICBkYXRhLmNvdW50ID0gY291bnQ/Lmxlbmd0aFxyXG4gICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlcz8uZGF0YT8ucmVzdWx0Py5yZXRhZ19pbWFnZT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIGxldCBzdHJpbmdpZnlkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXVkaXQnKSB8fCAne30nXHJcbiAgICAgICAgICAgICAgY29uc3QgZGVjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmRlY29tcHJlc3Moc3RyaW5naWZ5ZGF0YSk7XHJcbiAgICAgICAgICAgICAgdmFyIGN1c3RvbWVyID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICAgICAgICAgICAgY3VzdG9tZXIgPSBbLi4uY3VzdG9tZXIsIC4uLnJlcy5kYXRhLnJlc3VsdC5yZXRhZ19pbWFnZV1cclxuICAgICAgICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEgPSBjdXN0b21lcjtcclxuICAgICAgICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoY3VzdG9tZXIpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuY29tcHJlc3MoanNvblN0cmluZyk7XHJcbiAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXVkaXQnLCBjb21wcmVzc2VkRGF0YSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdmFyIHRvdGFsZmlsZXMgPSB7XHJcbiAgICAgICAgICAgICAgXCJzdG9yZWRldGFpbHNcIjoge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogcmVzPy5kYXRhPy5zdG9yZU5hbWUsXHJcbiAgICAgICAgICAgICAgICBcImFkZHJlc3NcIjogcmVzPy5kYXRhPy5hZGRyZXNzXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBcInRvdGFsZmlsZXNcIjogdGhpcy5zdG9yZWRldGFpbHM/LmNvdW50LFxyXG4gICAgICAgICAgICAgIFwiYXVkaXRJZFwiOiByZXM/LmRhdGEuZmlsZT8uYXVkaXRJZCxcclxuICAgICAgICAgICAgICBcImZpbGVkZXRhaWxzXCI6IHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiB0aGlzLnN0b3JlZGV0YWlscz8uZmlsZT8uc3RvcmVJZCxcclxuICAgICAgICAgICAgICAgIFwiRGF0ZVwiOiByZXM/LmRhdGE/LmZpbGU/LkRhdGUsXHJcbiAgICAgICAgICAgICAgICBcInVzZXJJZFwiOiByZXM/LmRhdGE/LmZpbGU/LnVzZXJJZCxcclxuICAgICAgICAgICAgICAgIFwiY2xpZW50SWRcIjogcmVzPy5kYXRhPy5maWxlPy5jbGllbnRJZCxcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgndG90YWxmaWxlcycsIEpTT04uc3RyaW5naWZ5KHRvdGFsZmlsZXMpKVxyXG4gICAgICAgICAgICB0aGlzLmF1ZGl0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNldFRpbWVyKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNwaW5uZXJzdGFydCA9IGZhbHNlXHJcbiAgICAgICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgICAgICBsZXQgZmlsZWRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKVxyXG4gICAgICAgICAgICBpZiAoZmlsZWRhdGE/LmZpbGVkZXRhaWxzPy5uZXh0VG9rZW4pIHtcclxuICAgICAgICAgICAgICB0aGlzLmF1ZGl0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuYXVkaXRJZCA9IHJlcy5kYXRhLmZpbGU/LmF1ZGl0SWQ7XHJcbiAgICAgICAgICAgICAgdGhpcy50b3RhbGZpbGUgPSByZXM/LmRhdGE/LmNvdW50O1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsZWRldGFpbHMgPSByZXM/LmRhdGE/LmZpbGU7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlZGV0YWlscy56b25lTmFtZSA9IHJlcz8uZGF0YT8uZmlsZT8uem9uZU5hbWU7XHJcbiAgICAgICAgICAgICAgaWYgKCdhdWRpdCcgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmF1ZGl0bWFwcGluZ2RhdGE/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhID0gWy4uLnRoaXMuYXVkaXRtYXBwaW5nZGF0YSwgLi4ucmVzPy5kYXRhPy5yZXN1bHRdXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tZXJjb3VudCA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YT8ubGVuZ3RoXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuYXVkaXRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5hdWRpdExvYWRpbmcxID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlZGV0YWlscyA9IHJlcz8uZGF0YT8uZmlsZTtcclxuICAgICAgICAgICAgICB0aGlzLmF1ZGl0SWQgPSByZXMuZGF0YS5maWxlPy5hdWRpdElkO1xyXG4gICAgICAgICAgICAgIHRoaXMuYXVkaXRtYXBwaW5nZGF0YSA9IHJlcz8uZGF0YT8ucmVzdWx0O1xyXG4gICAgICAgICAgICAgIHRoaXMudG90YWxmaWxlID0gcmVzPy5kYXRhPy5jb3VudDtcclxuICAgICAgICAgICAgICB0aGlzLmZpbGVkZXRhaWxzLnF1ZXVlTmFtZSA9IHRoaXMucXVldWVOYW1lO1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsZWRldGFpbHMuem9uZU5hbWUgPSByZXM/LmRhdGE/LmZpbGU/LnpvbmVOYW1lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEpO1xyXG4gICAgICAgICAgICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmNvbXByZXNzKGpzb25TdHJpbmcpO1xyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdhdWRpdCcsIGNvbXByZXNzZWREYXRhKVxyXG4gICAgICAgICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgICAgICAgIHRvdGFsZmlsZXM6IHRoaXMudG90YWxmaWxlLFxyXG4gICAgICAgICAgICAgIGZpbGVkZXRhaWxzOiB0aGlzLmZpbGVkZXRhaWxzLFxyXG4gICAgICAgICAgICAgIGF1ZGl0SWQ6IHRoaXMuYXVkaXRJZCxcclxuXHJcbiAgICAgICAgICAgICAgc3RvcmVkZXRhaWxzOiB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiByZXM/LmRhdGE/LnN0b3JlTmFtZSxcclxuICAgICAgICAgICAgICAgIFwiYWRkcmVzc1wiOiByZXM/LmRhdGE/LmFkZHJlc3NcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3RvdGFsZmlsZXMnLCBKU09OLnN0cmluZ2lmeShvYmopKVxyXG4gICAgICAgICAgICB0aGlzLnNwaW5uZXJzdGFydCA9IHRydWVcclxuICAgICAgICAgICAgdGhpcy5zZXRUaW1lcigpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9IGVsc2UgaWYgKCFyZXMgfHwgcmVzLmNvZGUgPT0gMjA0KSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5jb3VudGVyIDwgNikge1xyXG4gICAgICAgICAgICB0aGlzLmNvdW50ZXIgPSB0aGlzLmNvdW50ZXIgKyAxO1xyXG4gICAgICAgICAgICB0aGlzLmdldE1hcHBpbmcoKVxyXG4gICAgICAgICAgICB0aGlzLnNob3dEaWFsb2cgPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hdWRpdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKCFuZXh0SWQpIHsgdGhpcy5Ob2RhdGEgPSB0cnVlIH0gZWxzZSB7IH1cclxuICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3kubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd05vdGljZSA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChlcnI/LnN0YXR1cyA9PSA0MDQpIHtcclxuICAgICAgICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpO1xyXG4gICAgICAgICAgaWYgKGZpbGVkYXRhLmZpbGVkZXRhaWxzICYmIGZpbGVkYXRhLmZpbGVkZXRhaWxzLm5leHRUb2tlbikge1xyXG4gICAgICAgICAgICBkZWxldGUgZmlsZWRhdGEuZmlsZWRldGFpbHMubmV4dFRva2VuO1xyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCd0b3RhbGZpbGVzJywgSlNPTi5zdHJpbmdpZnkoZmlsZWRhdGEpKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRNYXBwaW5nKCcnKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ci5nZXRFcnJvclRvYXN0KGVycj8uZXJyb3I/Lm1lc3NhZ2UpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlYXVkaXQoZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oUmVtb3ZlQXVkaXRDb21wb25lbnQsIHtcclxuICAgICAgc2l6ZTogJ2xnJyxcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIGJhY2tkcm9wOiAnc3RhdGljJyxcclxuICAgICAga2V5Ym9hcmQ6IGZhbHNlXHJcbiAgICB9KVxyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IGRhdGEsXHJcbiAgICAgIG1vZGFsUmVmLmNsb3NlZC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXM/LnJlbG9hZCkge1xyXG4gICAgICAgICAgdGhpcy5pbml0aWFsX2RhdGFfbG9hZGluZygpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuICBhbGxvd0Ryb3AoZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIGRyYWdJbWFnZShldmVudDogYW55KSB7XHJcbiAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIGV2ZW50LnRhcmdldC5pZCk7XHJcbiAgfVxyXG5cclxuICBkcm9wSW1hZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IGRyYWdnZWRJbWFnZUlkID0gZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoJ3RleHQvcGxhaW4nKTtcclxuICAgIGNvbnN0IGRyYWdnZWRJbWFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRyYWdnZWRJbWFnZUlkKTtcclxuICAgIGV2ZW50LnRhcmdldC5hcHBlbmRDaGlsZChkcmFnZ2VkSW1hZ2UpO1xyXG4gICAgY29uc3QgZHJvcFpvbmUgPSBldmVudC50YXJnZXQ7XHJcbiAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEubWFwKChkYXRhOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgaWYgKGRhdGEuaW1nX25hbWUgPT0gZHJvcFpvbmUuaWQpIHtcclxuICAgICAgICBpZiAoZGF0YS5tYXBwZWRpZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB2YXIgZmluZG9uZSA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5pbWdfbmFtZSA9PSBkcmFnZ2VkSW1hZ2VJZClcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGZpbmRvbmUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBkYXRhLmNvdW50ID0gZGF0YS5jb3VudCArIGZpbmRvbmVbMF0uY291bnRcclxuICAgICAgICAgICAgZGF0YS5tYXBwZWRpZCA9IFsuLi5kYXRhLm1hcHBlZGlkLCAuLi5maW5kb25lWzBdLm1hcHBlZGlkXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCdkdXBsaWNhdGUnIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgICAgICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZHVwbGljYXRlJykgfHwgJ3t9JylcclxuICAgICAgICAgICAgbGV0IGZpbHRlcmVkRGF0YSA9IGZpbmRvbmVbMF0ubWFwcGVkaWQuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuaW1nX2lkID09PSBmaW5kb25lWzBdLmltZ19pZClcclxuICAgICAgICAgICAgbGV0IGluc2VydE9iajogYW55ID0ge31cclxuICAgICAgICAgICAgaW5zZXJ0T2JqLmltZ19pZCA9IGZpbHRlcmVkRGF0YVswXT8uaW1nX2lkXHJcbiAgICAgICAgICAgIGluc2VydE9iai5pbWdfbmFtZSA9IGZpbHRlcmVkRGF0YVswXT8uaW1nX25hbWVcclxuICAgICAgICAgICAgaW5zZXJ0T2JqLmltZ19wYXRoID0gZmlsdGVyZWREYXRhWzBdPy5pbWdfcGF0aFxyXG4gICAgICAgICAgICBpbnNlcnRPYmoubWFwcGVkaWQgPSBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaW1nX2lkOiBmaWx0ZXJlZERhdGFbMF0/LmltZ19pZCxcclxuICAgICAgICAgICAgICAgIGltZ19uYW1lOiBmaWx0ZXJlZERhdGFbMF0/LmltZ19uYW1lLFxyXG4gICAgICAgICAgICAgICAgaW1nX3BhdGg6IGZpbHRlcmVkRGF0YVswXT8uaW1nX3BhdGhcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF1cclxuXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBmaWxlZGF0YSA9IFsuLi5maWxlZGF0YSwgLi4uW2luc2VydE9ial1dXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdkdXBsaWNhdGUnLCBKU09OLnN0cmluZ2lmeShmaWxlZGF0YSkpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBjb3VudCA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShkYXRhLnR5cGUpIHx8ICd7fScpXHJcbiAgICAgICAgICAgIGRhdGEuY291bnQgPSBjb3VudD8ubGVuZ3RoXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBkYXRhLmNvdW50ID0gZGF0YS5jb3VudCArIDFcclxuICAgICAgICAgIGRhdGEubWFwcGVkaWQucHVzaChkcmFnZ2VkSW1hZ2VJZClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG5cclxuXHJcbiAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuc3BsaWNlKHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5maW5kSW5kZXgoKHsgaW1nX25hbWUgfTogeyBpbWdfbmFtZTogc3RyaW5nIH0pID0+IGltZ19uYW1lID09IGRyYWdnZWRJbWFnZUlkKSwgMSk7XHJcbiAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuc2VsZWN0ZWQgPSBmYWxzZSlcclxuICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEpO1xyXG4gICAgY29uc3QgY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5jb21wcmVzcyhqc29uU3RyaW5nKTtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2F1ZGl0JywgY29tcHJlc3NlZERhdGEpXHJcbiAgfVxyXG5cclxuICBkcmFnU3RhcnQoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbWFnZUVsZW1lbnQ7XHJcbiAgICBldmVudC5kYXRhVHJhbnNmZXI/LnNldERhdGEoJ3RleHQvcGxhaW4nLCB0YXJnZXQuaWQpO1xyXG4gIH1cclxuXHJcbiAgUmV2aWV3ZGF0YSgpIHtcclxuICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpXHJcbiAgICBpZiAoZmlsZWRhdGE/LmZpbGVkZXRhaWxzPy5uZXh0VG9rZW4pIHtcclxuICAgICAgdGhpcy50b2FzdHIuZ2V0RXJyb3JUb2FzdCgnU2Nyb2xsIERvd24gdG8gYm90dG9tIGxvYWQgdGhlIGZpbGVzIGJlZm9yZSBNb3ZlIHRvIE5leHQgcGFnZSEnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuICAgICAgdmFyIHRvdGFsZmlsZTogYW55ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9Jyk7XHJcbiAgICAgIGxldCBzdHJpbmdpZnlkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXVkaXQnKSB8fCAne30nXHJcbiAgICAgIGNvbnN0IGRlY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5kZWNvbXByZXNzKHN0cmluZ2lmeWRhdGEpO1xyXG4gICAgICB2YXIgY3VzdG9tZXIgPSBKU09OLnBhcnNlKGRlY29tcHJlc3NlZERhdGEgfHwgJ3t9JylcclxuICAgICAgbGV0IHN0b3JlZERhdGEgPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogXCJjdXN0b21lclwiLFxyXG4gICAgICAgICAgdmFsdWU6IGN1c3RvbWVyID8gY3VzdG9tZXIgOiBbXSxcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuXHJcbiAgICAgIHRoaXMuY2F0ZWdvcnkubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgc2Vzc2lvbnZhbHVlID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGEudHlwZSkgfHwgJ1tdJyk7XHJcbiAgICAgICAgc3RvcmVkRGF0YS5wdXNoKHtcclxuICAgICAgICAgIHR5cGU6IGRhdGEudHlwZSxcclxuICAgICAgICAgIHZhbHVlOiBzZXNzaW9udmFsdWUgJiYgc2Vzc2lvbnZhbHVlLmxlbmd0aCA+IDAgPyBzZXNzaW9udmFsdWUgOiBbXVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pXHJcbiAgICAgIHZhciBpbnNlcm9iajogYW55ID0ge1xyXG4gICAgICAgIHVzZXJDb21tYW5kczogdGhpcy5kYXRhcmVhc29uID8gdGhpcy5kYXRhcmVhc29uIDogXCJcIixcclxuICAgICAgICBjdXN0b21lckNvdW50OiBjdXN0b21lciA/IGN1c3RvbWVyPy5sZW5ndGggOiAwLFxyXG4gICAgICAgIHN0b3JlSWQ6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlSWQsXHJcbiAgICAgICAgYXVkaXRJZDogdG90YWxmaWxlPy5hdWRpdElkID8gdG90YWxmaWxlPy5hdWRpdElkIDogdG90YWxmaWxlPy5maWxlZGV0YWlscy5hdWRpdElkLFxyXG4gICAgICAgIGZpbGVEYXRlOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5EYXRlLFxyXG4gICAgICAgIHRvdGFsQ291bnQ6IHRvdGFsZmlsZT8udG90YWxmaWxlcyA/IHRvdGFsZmlsZS50b3RhbGZpbGVzIDogMCxcclxuICAgICAgICByZXRhZ0NvdW50OiAwLFxyXG4gICAgICAgIHRpbWVTcGVudDogdGhpcy50aW1lUGFzc2VkLFxyXG4gICAgICAgIHJldGFnSW1hZ2U6IFtdLFxyXG4gICAgICAgIGRyYWZ0ZWREYXRhOiBzdG9yZWREYXRhXHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIHRoaXMuYXVkaXRzZXJ2aWNlLnNhdmVEcmFmdChpbnNlcm9iaikucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL21hbmFnZS90aWNrZXRzL21hcHBpbmctbGlzdFwiXSlcclxuICAgICAgICAgIH0gaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDMpIHtcclxuICAgICAgICAgICAgdGhpcy5FcnJvcm1zZyA9IHJlcy5tZXNzYWdlXHJcbiAgICAgICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1lcnJvciwgeyBjZW50ZXJlZDogdHJ1ZSB9KVxyXG4gICAgICAgICAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZXJyPy5jb2RlID09IDQwMCB8fCBlcnI/LmNvZGUgPT0gMjA0IHx8IGVycj8uY29kZSA9PSA0MDQgfHwgZXJyPy5jb2RlID09IDUwMCkge1xyXG4gICAgICAgICAgICB0aGlzLkVycm9ybXNnID0gZXJyLm1lc3NhZ2VcclxuICAgICAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuY29uZmlybWVycm9yLCB7IGNlbnRlcmVkOiB0cnVlIH0pXHJcbiAgICAgICAgICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICB2aWV3Y2F0ZWdvcnkoZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oVmlld2NhdGVnb3J5Q29tcG9uZW50LCB7XHJcbiAgICAgIHNpemU6ICdsZycsXHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICBiYWNrZHJvcDogJ3N0YXRpYycsXHJcbiAgICAgIGtleWJvYXJkOiBmYWxzZVxyXG4gICAgfSlcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBkYXRhXHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5pbWFnZUxpc3QgPSBkYXRhLFxyXG4gICAgICBtb2RhbFJlZi5jbG9zZWQuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzPy5yZWxvYWQpIHtcclxuICAgICAgICAgIHRoaXMuaW5pdGlhbF9kYXRhX2xvYWRpbmcoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcbiAgYXN5bmMgc2F2ZWRyYWZ0KCkge1xyXG4gICAgbGV0IGZpbGVkYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9JylcclxuICAgIGlmIChmaWxlZGF0YT8uZmlsZWRldGFpbHM/Lm5leHRUb2tlbikge1xyXG4gICAgICB0aGlzLnRvYXN0ci5nZXRFcnJvclRvYXN0KCdTY3JvbGwgRG93biB0byBib3R0b20gbG9hZCB0aGUgZmlsZXMgYmVmb3JlIHNhdmUhJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9wZW5tb2RlbCA9IHRydWU7XHJcbiAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1EcmFmdCwge1xyXG4gICAgICAgIGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnXHJcbiAgICAgIH0pXHJcbiAgICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICBcclxuXHJcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gJ2lzRGVuaWVkJykge1xyXG4gICAgICAgICAgdmFyIHRvdGFsZmlsZTogYW55ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9Jyk7XHJcbiAgICAgICAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgICAgICAgY29uc3QgZGVjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmRlY29tcHJlc3Moc3RyaW5naWZ5ZGF0YSk7XHJcbiAgICAgICAgICB2YXIgY3VzdG9tZXIgPSBKU09OLnBhcnNlKGRlY29tcHJlc3NlZERhdGEgfHwgJ3t9JylcclxuICAgICAgICAgIGxldCBzdG9yZWREYXRhID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogXCJjdXN0b21lclwiLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiBjdXN0b21lciA/IGN1c3RvbWVyIDogW10sXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIF1cclxuXHJcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBzZXNzaW9udmFsdWUgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZGF0YS50eXBlKSB8fCAnW10nKTtcclxuICAgICAgICAgICAgc3RvcmVkRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgICB0eXBlOiBkYXRhLnR5cGUsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IHNlc3Npb252YWx1ZSAmJiBzZXNzaW9udmFsdWUubGVuZ3RoID4gMCA/IHNlc3Npb252YWx1ZSA6IFtdXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgIHZhciBpbnNlcm9iajogYW55ID0ge1xyXG4gICAgICAgICAgICB1c2VyQ29tbWFuZHM6IHRoaXMuZGF0YXJlYXNvbiA/IHRoaXMuZGF0YXJlYXNvbiA6IFwiXCIsXHJcbiAgICAgICAgICAgIC8vICAgdXNlcklkOiB1c2VyPy51c2VyLFxyXG4gICAgICAgICAgICBzdG9yZUlkOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkLFxyXG4gICAgICAgICAgICBmaWxlRGF0ZTogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgICAgICAgYXVkaXRJZDogdG90YWxmaWxlPy5hdWRpdElkID8gdG90YWxmaWxlPy5hdWRpdElkIDogdG90YWxmaWxlPy5maWxlZGV0YWlscy5hdWRpdElkLFxyXG4gICAgICAgICAgICB0b3RhbENvdW50OiB0b3RhbGZpbGU/LnRvdGFsZmlsZXMgPyB0b3RhbGZpbGUudG90YWxmaWxlcyA6IDAsXHJcbiAgICAgICAgICAgIGN1c3RvbWVyQ291bnQ6IGN1c3RvbWVyID8gY3VzdG9tZXI/Lmxlbmd0aCA6IDAsXHJcbiAgICAgICAgICAgIHJldGFnQ291bnQ6IDAsXHJcbiAgICAgICAgICAgIHRpbWVTcGVudDogdGhpcy50aW1lUGFzc2VkLFxyXG4gICAgICAgICAgICByZXRhZ0ltYWdlOiBbXSxcclxuICAgICAgICAgICAgZHJhZnRlZERhdGE6IHN0b3JlZERhdGFcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbnNlcm9iaj8uYXVkaXRJZCAmJiBpbnNlcm9iaj8uYXVkaXRJZCAhPSAnJykge1xyXG4gICAgICAgICAgICB0aGlzLmF1ZGl0c2VydmljZS5zYXZlRHJhZnQoaW5zZXJvYmopLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZ2V0U3VjY2Vzc1RvYXN0KHJlcz8uZGF0YT8ucmVzdWx0KVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLkVycm9ybXNnID0gcmVzLmVycm9yO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1lcnJvcilcclxuICAgICAgICAgICAgICAgICAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZS90aWNrZXRzJ10sIHsgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ2Zvb3RmYWxsJyB9IH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycj8uY29kZSA9PSA0MDAgfHwgZXJyPy5jb2RlID09IDIwNCB8fCBlcnI/LmNvZGUgPT0gNDA0IHx8IGVycj8uY29kZSA9PSA1MDApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZ2V0RXJyb3JUb2FzdCgnRmlsZSBub3Qgc2F2ZWQhJylcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdGlja2V0cyddLCB7IHF1ZXJ5UGFyYW1zOiB7IHR5cGU6ICdmb290ZmFsbCcgfSB9KVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gJ2lzQ29uZmlybWVkJykge1xyXG4gICAgICAgICAgdmFyIHRvdGFsZmlsZTogYW55ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9Jyk7XHJcblxyXG4gICAgICAgICAgbGV0IHN0cmluZ2lmeWRhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhdWRpdCcpIHx8ICd7fSdcclxuICAgICAgICAgIGNvbnN0IGRlY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5kZWNvbXByZXNzKHN0cmluZ2lmeWRhdGEpO1xyXG4gICAgICAgICAgdmFyIGN1c3RvbWVyID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICAgICAgICBsZXQgc3RvcmVkRGF0YSA9IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IFwiY3VzdG9tZXJcIixcclxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5hdWRpdG1hcHBpbmdkYXRhID8gdGhpcy5hdWRpdG1hcHBpbmdkYXRhIDogW10sXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIF1cclxuXHJcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBzZXNzaW9udmFsdWUgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZGF0YS50eXBlKSB8fCAnW10nKTtcclxuICAgICAgICAgICAgc3RvcmVkRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgICB0eXBlOiBkYXRhLnR5cGUsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IHNlc3Npb252YWx1ZSAmJiBzZXNzaW9udmFsdWUubGVuZ3RoID4gMCA/IHNlc3Npb252YWx1ZSA6IFtdXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdmFyIGluc2Vyb2JqOiBhbnkgPSB7XHJcbiAgICAgICAgICAgIHVzZXJDb21tYW5kczogdGhpcy5kYXRhcmVhc29uID8gdGhpcy5kYXRhcmVhc29uIDogXCJcIixcclxuICAgICAgICAgICAgY3VzdG9tZXJDb3VudDogY3VzdG9tZXIgPyBjdXN0b21lcj8ubGVuZ3RoIDogMCxcclxuICAgICAgICAgICAgc3RvcmVJZDogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVJZCxcclxuICAgICAgICAgICAgYXVkaXRUeXBlOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy50eXBlLFxyXG4gICAgICAgICAgICBmaWxlRGF0ZTogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgICAgICAgYXVkaXRJZDogdG90YWxmaWxlPy5hdWRpdElkID8gdG90YWxmaWxlPy5hdWRpdElkIDogdG90YWxmaWxlPy5maWxlZGV0YWlscy5hdWRpdElkLFxyXG4gICAgICAgICAgICB0b3RhbENvdW50OiB0b3RhbGZpbGU/LnRvdGFsZmlsZXMgPyB0b3RhbGZpbGUudG90YWxmaWxlcyA6IDAsXHJcbiAgICAgICAgICAgIHJldGFnQ291bnQ6IDAsXHJcbiAgICAgICAgICAgIHRpbWVTcGVudDogdGhpcy50aW1lUGFzc2VkLFxyXG4gICAgICAgICAgICByZXRhZ0ltYWdlOiBbXSxcclxuICAgICAgICAgICAgZHJhZnRlZERhdGE6IHN0b3JlZERhdGFcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbnNlcm9iaj8uYXVkaXRJZCAmJiBpbnNlcm9iai5hdWRpdElkICE9PSAnJykge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hdWRpdHNlcnZpY2Uuc2F2ZURyYWZ0KGluc2Vyb2JqKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZS90aWNrZXRzJ10sIHsgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ2Zvb3RmYWxsJyB9IH0pXHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuRXJyb3Jtc2cgPSByZXMuZXJyb3I7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuY29uZmlybWVycm9yKVxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycj8uY29kZSA9PSA0MDAgfHwgZXJyPy5jb2RlID09IDIwNCB8fCBlcnI/LmNvZGUgPT0gNDA0IHx8IGVycj8uY29kZSA9PSA1MDApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZ2V0RXJyb3JUb2FzdCgnRmlsZSBub3Qgc2F2ZWQhJylcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdGlja2V0cyddLCB7IHF1ZXJ5UGFyYW1zOiB7IHR5cGU6ICdmb290ZmFsbCcgfSB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgbW9kYWxSZWYucmVzdWx0LmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMub3Blbm1vZGVsID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYmFja3RvdGlja2V0cygpIHtcclxuICAgIHRoaXMuc2F2ZWRyYWZ0KCk7XHJcbiAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdGlja2V0cyddLCB7IHF1ZXJ5UGFyYW1zOiB7IHR5cGU6ICdmb290ZmFsbCcgfSB9KVxyXG5cclxuICB9XHJcbiAgY2FtZXJhUHJldmlldygpIHtcclxuICAgIC8vIGNvbnN0IE1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihDYW1lcmFQcmV2aWV3Q29tcG9uZW50LHtcclxuICAgIC8vICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAvLyAgIHNpemU6J2xnJ1xyXG4gICAgLy8gfSlcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1iLTUgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciB3LTEwMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIHctNDBweCBiZy13aGl0ZSBjdXJzb3ItcG9pbnRlciBtZS01IHRleHQtY2VudGVyXCIgKGNsaWNrKT1cImJhY2t0b3RpY2tldHMoKVwiPjxzdmdcclxuICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuODMzNCAxMEg0LjE2NjY5TTQuMTY2NjkgMTBMMTAgMTUuODMzNE00LjE2NjY5IDEwTDEwIDQuMTY2NjlcIiBzdHJva2U9XCIjMzQ0MDU0XCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGEgKGNsaWNrKT1cImNhbWVyYVByZXZpZXcoKVwiPjxzcGFuICpuZ0lmPVwiZmlsZWRldGFpbHM/LkRhdGVcIj57e2ZpbGVkZXRhaWxzPy5EYXRlfX08L3NwYW4+PHNwYW4+IC1cclxuICAgICAgICAgICAgPC9zcGFuPjxzcGFuICpuZ0lmPVwiZmlsZWRldGFpbHM/LnN0b3JlSWRcIj57e2ZpbGVkZXRhaWxzPy5zdG9yZUlkfX08L3NwYW4+PHNwYW4+IC0gPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInN0b3JlZGV0YWlscz8uc3RvcmVOYW1lXCI+e3tzdG9yZWRldGFpbHM/LnN0b3JlTmFtZX19PC9zcGFuPjxzcGFuICpuZ0lmPVwic2VsZWN0ZWRUeXBlID09PSd6b25lJ1wiPlxyXG4gICAgICAgICAgICAgICAgLSA8L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsZWRldGFpbHM/LnpvbmVOYW1lICYmIHNlbGVjdGVkVHlwZSA9PT0nem9uZSdcIj57e2ZpbGVkZXRhaWxzPy56b25lTmFtZX19PC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInN0b3JlZGV0YWlscz8uYWRkcmVzc1wiPiB8IHt7c3RvcmVkZXRhaWxzPy5hZGRyZXNzfX0gPC9zcGFuPjwvYT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdW5kZWQtMyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGJnLXRpbWVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0zIHRleHQtdGltZXIgZnctc2VtaWJvbGRcIj57eyBmb3JtYXR0ZWRUaW1lIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTkuMTY2NjcgMi44NzA3MUM5LjE2NjY3IDIuNjIwMjMgOS4yNjYxNyAyLjM4MDAxIDkuNDQzMjkgMi4yMDI4OUM5LjYyMDQxIDIuMDI1NzcgOS44NjA2MyAxLjkyNjI3IDEwLjExMTEgMS45MjYyN0gxMy44ODg5QzE0LjEzOTQgMS45MjYyNyAxNC4zNzk2IDIuMDI1NzcgMTQuNTU2NyAyLjIwMjg5QzE0LjczMzggMi4zODAwMSAxNC44MzMzIDIuNjIwMjMgMTQuODMzMyAyLjg3MDcxQzE0LjgzMzMgMy4xMjEyIDE0LjczMzggMy4zNjE0MiAxNC41NTY3IDMuNTM4NTRDMTQuMzc5NiAzLjcxNTY1IDE0LjEzOTQgMy44MTUxNiAxMy44ODg5IDMuODE1MTZIMTIuOTQ0NFY1LjA3NDQyTDEyLjk0MzIgNS4xMjYwNUMxNC41Mzk2IDUuMzAwOTcgMTYuMDUyOCA1LjkyNzg3IDE3LjMwNTMgNi45MzMwOEwxNy4zMTQxIDYuOTI1NTNMMTguMjU4NSA1Ljk4MTA4QzE4LjM3NCA1Ljg1Njc2IDE4LjUyMDggNS43NjU4OCAxOC42ODM1IDUuNzE4MDFDMTguODQ2MyA1LjY3MDE0IDE5LjAxOSA1LjY2NzA2IDE5LjE4MzMgNS43MDkwOEMxOS4zNDc3IDUuNzUxMTEgMTkuNDk3NyA1LjgzNjY5IDE5LjYxNzUgNS45NTY4QzE5LjczNzMgNi4wNzY5MiAxOS44MjI1IDYuMjI3MTMgMTkuODY0MSA2LjM5MTZDMTkuOTA2IDYuNTU1NzggMTkuOTAzIDYuNzI4MjMgMTkuODU1NCA2Ljg5MDg1QzE5LjgwNzcgNy4wNTM0OCAxOS43MTcyIDcuMjAwMjkgMTkuNTkzMyA3LjMxNTlMMTguNjQ4OSA4LjI2MDM0TDE4LjY0MTMgOC4yNjkxNUMxOS42NDAzIDkuNTE5NzQgMjAuMjY1OCAxMS4wMjcgMjAuNDQ2IDEyLjYxNzRDMjAuNjI2MSAxNC4yMDc4IDIwLjM1MzYgMTUuODE2NyAxOS42NTk3IDE3LjI1OTFDMTguOTY1OCAxOC43MDE0IDE3Ljg3ODggMTkuOTE4NSAxNi41MjM3IDIwLjc3MDRDMTUuMTY4NiAyMS42MjIyIDEzLjYwMDYgMjIuMDc0MSAxMiAyMi4wNzQxQzEwLjM5OTQgMjIuMDc0MSA4LjgzMTM3IDIxLjYyMjIgNy40NzYyOSAyMC43NzA0QzYuMTIxMjIgMTkuOTE4NSA1LjAzNDE5IDE4LjcwMTQgNC4zNDAzIDE3LjI1OTFDMy42NDY0MSAxNS44MTY3IDMuMzczODYgMTQuMjA3OCAzLjU1NDAyIDEyLjYxNzRDMy43MzQxOCAxMS4wMjcgNC4zNTk3MyA5LjUxOTc0IDUuMzU4NjcgOC4yNjkxNUw1LjM1MTExIDguMjYwMzRMNC40MDY2NyA3LjMxNTlDNC4yMzk2NCA3LjEzNjkgNC4xNDg2NSA2LjkwMDAzIDQuMTUyODcgNi42NTUyNEM0LjE1NzEgNi40MTA0NSA0LjI1NjIyIDYuMTc2ODcgNC40MjkzNCA2LjAwMzc1QzQuNjAyNDYgNS44MzA2MyA0LjgzNjA0IDUuNzMxNTEgNS4wODA4MyA1LjcyNzI4QzUuMzI1NjIgNS43MjMwNiA1LjU2MjQ5IDUuODE0MDUgNS43NDE0OSA1Ljk4MTA4TDYuNjg1OTMgNi45MjU1M0w2LjY5NDc0IDYuOTMzMDhDNy45NDY4MSA1LjkyODA5IDkuNDU5NjMgNS4zMDEyIDExLjA1NTYgNS4xMjYwNVYzLjgxNTE2SDEwLjExMTFDOS44NjA2MyAzLjgxNTE2IDkuNjIwNDEgMy43MTU2NSA5LjQ0MzI5IDMuNTM4NTRDOS4yNjYxNyAzLjM2MTQyIDkuMTY2NjcgMy4xMjEyIDkuMTY2NjcgMi44NzA3MVpNMTIgMjAuMTg1NUMxMy43NTM1IDIwLjE4NTQgMTUuNDM1MiAxOS40ODg2IDE2LjY3NSAxOC4yNDg1QzE3LjkxNDggMTcuMDA4NSAxOC42MTEzIDE1LjMyNjcgMTguNjExMSAxMy41NzMyQzE4LjYxMDkgMTEuODE5NiAxNy45MTQyIDEwLjEzOCAxNi42NzQxIDguODk4MTNDMTUuNDM0MSA3LjY1ODMxIDEzLjc1MjMgNi45NjE4OCAxMS45OTg3IDYuOTYyMDRDMTAuMjQ1MiA2Ljk2MjIxIDguNTYzNTQgNy42NTg5NiA3LjMyMzcyIDguODk5MDJDNi4wODM5IDEwLjEzOTEgNS4zODc0NyAxMS44MjA5IDUuMzg3NjMgMTMuNTc0NEM1LjM4NzggMTUuMzI4IDYuMDg0NTUgMTcuMDA5NiA3LjMyNDYxIDE4LjI0OTRDOC41NjQ2NyAxOS40ODkzIDEwLjI0NjUgMjAuMTg1NyAxMiAyMC4xODU1Wk0xMi40ODk5IDExLjc0ODVMMTQuMTY0NyAxMC4wNzM3QzE0LjI1MTcgOS45ODM0MyAxNC4zNTU5IDkuOTExNDMgMTQuNDcxMSA5Ljg2MTg4QzE0LjU4NjMgOS44MTIzMyAxNC43MTAyIDkuNzg2MjIgMTQuODM1NiA5Ljc4NTA3QzE0Ljk2MTEgOS43ODM5MiAxNS4wODU0IDkuODA3NzYgMTUuMjAxNSA5Ljg1NTE5QzE1LjMxNzYgOS45MDI2MiAxNS40MjMxIDkuOTcyNyAxNS41MTE4IDEwLjA2MTNDMTUuNjAwNSAxMC4xNSAxNS42NzA3IDEwLjI1NTQgMTUuNzE4MiAxMC4zNzE0QzE1Ljc2NTggMTAuNDg3NSAxNS43ODk3IDEwLjYxMTggMTUuNzg4NyAxMC43MzcyQzE1Ljc4NzcgMTAuODYyNiAxNS43NjE3IDEwLjk4NjYgMTUuNzEyMiAxMS4xMDE4QzE1LjY2MjggMTEuMjE3MSAxNS41OTA5IDExLjMyMTMgMTUuNTAwNyAxMS40MDg1TDEzLjgyNTkgMTMuMDg0NkMxMy45MDAzIDEzLjM2NDUgMTMuOTA5NSAxMy42NTc5IDEzLjg1MjYgMTMuOTQyQzEzLjc5NTggMTQuMjI2IDEzLjY3NDUgMTQuNDkzMyAxMy40OTgxIDE0LjcyMzFDMTMuMzIxNyAxNC45NTI5IDEzLjA5NDkgMTUuMTM5MSAxMi44MzUyIDE1LjI2NzVDMTIuNTc1NCAxNS4zOTU4IDEyLjI4OTcgMTUuNDYyOCAxMiAxNS40NjMzQzExLjczMjcgMTUuNDYxIDExLjQ2ODggMTUuNDAxOSAxMS4yMjYgMTUuMjlDMTAuOTgzMiAxNS4xNzgxIDEwLjc2NyAxNS4wMTU5IDEwLjU5MTYgMTQuODE0MUMxMC40MTYyIDE0LjYxMjMgMTAuMjg1NyAxNC4zNzU1IDEwLjIwODcgMTQuMTE5NUMxMC4xMzE2IDEzLjg2MzUgMTAuMTA5OSAxMy41OTQgMTAuMTQ0OCAxMy4zMjlDMTAuMTc5OCAxMy4wNjM5IDEwLjI3MDYgMTIuODA5MyAxMC40MTE0IDEyLjU4MkMxMC41NTIyIDEyLjM1NDcgMTAuNzM5NiAxMi4xNTk5IDEwLjk2MTMgMTIuMDEwNEMxMS4xODMgMTEuODYxIDExLjQzMzkgMTEuNzYwNCAxMS42OTc0IDExLjcxNTJDMTEuOTYwOSAxMS42NzAxIDEyLjIzMSAxMS42ODE0IDEyLjQ4OTkgMTEuNzQ4NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJibGFja1wiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNhcmQgcHktMlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGFsaWduLWl0ZW1zLWNlbnRlciBib3JkZXItMCBvdmVyZmxvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInctNTBweCBoLTUwcHggYmFkZ2UtbGlnaHQtcHJpbWFyeSB0ZXh0LWNlbnRlciBhbGlnbi1jb250ZW50LWNlbnRlciByb3VuZGVkLTNcIj5cclxuICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI4XCIgaGVpZ2h0PVwiMjhcIiB2aWV3Qm94PVwiMCAwIDI4IDI4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMSAxNS4xNjY3VjIzLjMzMzRINC42NjY2NVY3LjAwMDA0SDEwLjUyMzNDMTAuNTgxNiA2LjE3MTcxIDEwLjc4IDUuMzkwMDQgMTEuMDgzMyA0LjY2NjcxSDQuNjY2NjVDMy4zODMzMSA0LjY2NjcxIDIuMzMzMzEgNS43MTY3MSAyLjMzMzMxIDcuMDAwMDRWMjMuMzMzNEMyLjMzMzMxIDI0LjYxNjcgMy4zODMzMSAyNS42NjY3IDQuNjY2NjUgMjUuNjY2N0gyMUMyMi4yODMzIDI1LjY2NjcgMjMuMzMzMyAyNC42MTY3IDIzLjMzMzMgMjMuMzMzNFYxNy41TDIxIDE1LjE2NjdaTTE5LjI1IDIxSDYuNDE2NjVMOS42MjQ5OCAxNi44ODE3TDExLjkxMTYgMTkuNjM1TDE1LjEyIDE1LjUwNUwxOS4yNSAyMVpNMjIuNTE2NiAxMC4zNzE3QzIzLjAzIDkuNTU1MDQgMjMuMzMzMyA4LjYxMDA0IDIzLjMzMzMgNy41ODMzN0MyMy4zMzMzIDQuNjc4MzcgMjAuOTg4MyAyLjMzMzM3IDE4LjA4MzMgMi4zMzMzN0MxNS4xNzgzIDIuMzMzMzcgMTIuODMzMyA0LjY3ODM3IDEyLjgzMzMgNy41ODMzN0MxMi44MzMzIDEwLjQ4ODQgMTUuMTc4MyAxMi44MzM0IDE4LjA3MTYgMTIuODMzNEMxOS4wOTgzIDEyLjgzMzQgMjAuMDU1IDEyLjUzIDIwLjg2IDEyLjAxNjdMMjQuNSAxNS42NTY3TDI2LjE1NjYgMTRMMjIuNTE2NiAxMC4zNzE3Wk0xOC4wODMzIDEwLjVDMTcuMzA5OCAxMC41IDE2LjU2NzkgMTAuMTkyNyAxNi4wMjA5IDkuNjQ1NzdDMTUuNDczOSA5LjA5ODc5IDE1LjE2NjYgOC4zNTY5MiAxNS4xNjY2IDcuNTgzMzdDMTUuMTY2NiA2LjgwOTgzIDE1LjQ3MzkgNi4wNjc5NiAxNi4wMjA5IDUuNTIwOThDMTYuNTY3OSA0Ljk3NCAxNy4zMDk4IDQuNjY2NzEgMTguMDgzMyA0LjY2NjcxQzE4Ljg1NjkgNC42NjY3MSAxOS41OTg3IDQuOTc0IDIwLjE0NTcgNS41MjA5OEMyMC42OTI3IDYuMDY3OTYgMjEgNi44MDk4MyAyMSA3LjU4MzM3QzIxIDguMzU2OTIgMjAuNjkyNyA5LjA5ODc5IDIwLjE0NTcgOS42NDU3N0MxOS41OTg3IDEwLjE5MjcgMTguODU2OSAxMC41IDE4LjA4MzMgMTAuNVpcIiBmaWxsPVwiIzAwQTNGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IFxyXG4gICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBtcy0yXCI+PHNwYW4gKm5nSWY9XCJmaWxlZGV0YWlscz8udHlwZVwiPnt7ZmlsZWRldGFpbHM/LnR5cGUgPyBmaWxlZGV0YWlscz8udHlwZSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICcnfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmaWxlZGV0YWlsc1wiIGNsYXNzPVwic3ViLXRleHQgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdFwiPjxzdmcgY2xhc3M9XCJtZS0yXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTQ1MDhfMTg1ODMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjUgMTAuNUg5LjVDMTAuMDUyMyAxMC41IDEwLjUgMTAuMDUyMyAxMC41IDkuNVYyLjVDMTAuNSAxLjk0NzcyIDEwLjA1MjMgMS41IDkuNSAxLjVIMi41QzEuOTQ3NzIgMS41IDEuNSAxLjk0NzcyIDEuNSAyLjVWOS41QzEuNSAxMC4wNTIzIDEuOTQ3NzIgMTAuNSAyLjUgMTAuNVpNMi41IDEwLjVMOCA1TDEwLjUgNy41TTUgNC4yNUM1IDQuNjY0MjEgNC42NjQyMSA1IDQuMjUgNUMzLjgzNTc5IDUgMy41IDQuNjY0MjEgMy41IDQuMjVDMy41IDMuODM1NzkgMy44MzU3OSAzLjUgNC4yNSAzLjVDNC42NjQyMSAzLjUgNSAzLjgzNTc5IDUgNC4yNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4xXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE0NTA4XzE4NTgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+e3t0b3RhbGZpbGUgPyB0b3RhbGZpbGUgOiAwfX0gQWZ0ZXIgQ291bnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItMSByb3VuZGVkLTMgdy1hdXRvIGgtNDVweCBweC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2F0ZWdvcnlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTEwMCBhbGlnbi1jb250ZW50LWNlbnRlciB0ZXh0LW5vd3JhcCBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBteC0yXCIgKGNsaWNrKT1cInZpZXdjYXRlZ29yeShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBtZS0yXCI+e3tpdGVtPy5jb3VudH19PC9zcGFuPnt7aXRlbT8ubmFtZX19PHNwYW4gY2xhc3M9XCIgbXMtMyBiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IG1lLTUgdGV4dC1jYXBpdGFsaXplXCI+e3tpdGVtPy5rZXl9fTwvc3Bhbj48L2Rpdj4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0xIHJvdW5kZWQtMyB3LWF1dG8gaC00NXB4IHB4LTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtNSBoLTEwMCBhbGlnbi1jb250ZW50LWNlbnRlciB0ZXh0IGZ3LXNlbWlib2xkIHBlLW5vbmVcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBtZS01XCI+e3thdWRpdG1hcHBpbmdkYXRhPy5sZW5ndGggPyBhdWRpdG1hcHBpbmdkYXRhPy5sZW5ndGggOiAwXHJcbiAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+VW5pcXVlIEN1c3RvbWVyczwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhYXVkaXRMb2FkaW5nICYmICFOb2RhdGFcIiBjbGFzcz1cImNhcmQtdG9vbGJhciB0ZXh0LW5vd3JhcCBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWRlZmF1bHQgYnRuLW91dGxpbmUgbXMtMyBweS0yXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVtcGxveWVlY291bnQgJiYgIWp1bmtjb3VudCAmJiAoYXVkaXRtYXBwaW5nZGF0YT8ubGVuZ3RoID09PSB0b3RhbGZpbGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2F2ZWRyYWZ0KClcIj5TYXZlIERyYWZ0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnkgcHktMiBtcy0zXCIgW2Rpc2FibGVkXT1cInN1Ym1pdHRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlJldmlld2RhdGEoKVwiPlJldmlldyA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNC4xNjY2NiA5Ljk5OTk2SDE1LjgzMzNNMTUuODMzMyA5Ljk5OTk2TDkuOTk5OTkgNC4xNjY2M00xNS44MzMzIDkuOTk5OTZMOS45OTk5OSAxNS44MzMzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPCEtLSBzY3JvbGwtdG9wIC0tPlxyXG48ZGl2IGNsYXNzPVwiY2FyZCBtdC01XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXVkaXRMb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiTm9kYXRhXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLW5vZGF0YVwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXRpdGxlXCI+Tm8gZGF0YSBmb3VuZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHRoaXMgY29udmVyc2lvbiBmdW5uZWw8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwhLS0gc2Nyb2xsLXkgaC01MDBweCAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFhdWRpdExvYWRpbmdcIiBjbGFzcz1cImNvbC1tZC0xMiBpdGVtIFwiPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYXVkaXRtYXBwaW5nZGF0YTtsZXQgaT1pbmRleFwiIHN0eWxlPVwicGFkZGluZzogNXB4IDEwcHg7XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJteC0zIG15LTMgaW1nXCIgW3NyY109XCJpdGVtPy5pbWdfcGF0aFwiIGlkPVwie3tpdGVtPy5pbWdfbmFtZX19XCIgYWx0PVwiSW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZHJhZ292ZXIpPVwiYWxsb3dEcm9wKCRldmVudClcIiAoZHJvcCk9XCJkcm9wSW1hZ2UoJGV2ZW50KVwiIGRyYWdnYWJsZT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZHJhZ3N0YXJ0KT1cImRyYWdJbWFnZSgkZXZlbnQpXCIgKGNsaWNrKT1cInRvZ2dsZUltYWdlKGl0ZW0/LmltZ19uYW1lIClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbS0wIGZzLTcgZnctYm9sZFwiPnt7aXRlbT8uaW1nX25hbWV9fTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0/LnNlbGVjdGVkXCIgY2xhc3M9XCJub3RpZnktYmFkZ2UxXCI+PGkgY2xhc3M9XCJmYSBmYS1jaGVja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZToxNXB4O2NvbG9yOiMwMEEzRkZcIj48L2k+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gKGNsaWNrKT1cInJlbW92ZWF1ZGl0KGl0ZW0pXCIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJub3RpZnktYmFkZ2UgY3Vyc29yLXBvaW50ZXJcIiAgKGNsaWNrKT1cInJlbW92ZWF1ZGl0KGl0ZW0pXCIgKm5nSWY9XCJpdGVtPy5jb3VudD4xXCI+e3tpdGVtPy5jb3VudH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5neC1zcGlubmVyIHNpemU9XCJtZWRpdW1cIiB0eXBlPVwiYmFsbC1hdG9tXCI+PC9uZ3gtc3Bpbm5lcj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb25maXJtRHJhZnQgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgaC1hdXRvIHAtMTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZC1ncmlkIHAtMCBib3JkZXItMFwiPlxyXG4gICAgICAgICAgICA8c3Bhbj48aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9TdWNjZXNzdG9hc3QucG5nXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8IS0tIDxzcGFuICpuZ0lmPVwiZ2V0QmFja1wiPjxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vY3VzdG9tcG9wdXAtSWNvbnMvZGFuZ2VyLWljb24uc3ZnXCI+PC9zcGFuPiAgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIG10LTVcIj5TYXZlIENoYW5nZXM8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiZ2V0QmFja1wiIGNsYXNzPVwiY2FyZC1sYWJlbCBtdC01XCI+VW5zYXZlZCBDaGFuZ2VzPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zdWIgbXQtNVwiPkRvIHlvdSB3YW50IHRvIGRyYWZ0IHRoZSBmaWxlPzwvcD5cclxuICAgICAgICAgICAgPCEtLSA8cCAqbmdJZj1cImdldEJhY2tcIiBjbGFzcz1cInRleHQtc3ViIG10LTVcIj5EbyB5b3Ugd2FudCB0byBnZXQgYmFjaz88L3A+IC0tPlxyXG4gICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbXQtNVwiIFsobmdNb2RlbCldPVwiZGF0YXJlYXNvblwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgeW91ciByZWFzb24gKFJlcXVpcmVkKSAuLi5cIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctNTAgbWUtMiBmdy1ib2xkXCIgW2Rpc2FibGVkXT1cIiFkYXRhcmVhc29uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibW9kYWwuY2xvc2UoJ2lzQ29uZmlybWVkJylcIj5TYXZlICYgRXhpdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBzYXZlYnRuIHctNTAgbXMtMlwiIChjbGljayk9XCJtb2RhbC5jbG9zZSgnaXNEZW5pZWQnKVwiPnNhdmUgJlxyXG4gICAgICAgICAgICAgICAgICAgIENvbnRpbnVlPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbmZpcm1lcnJvciBsZXQtbW9kYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwidy00MDBweCBoLWF1dG8gcC0xMCBjYXJkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsXCI+e3tFcnJvcm1zZ319PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBtdC01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy01MCBtZS0yXCIgKGNsaWNrKT1cIm1vZGFsLmNsb3NlKCdpc0RlbmllZCcpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctNTAgbXMtMlwiIChjbGljayk9XCJtb2RhbC5jbG9zZSgnaXNDb25maXJtZWQnKVwiPkNvbmZpcm08L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
761
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtYXVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXRpY2tldHMvc3JjL2xpYi9jb21wb25lbnRzL3N0YXJ0LWF1ZGl0L3N0YXJ0LWF1ZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9zdGFydC1hdWRpdC9zdGFydC1hdWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFlBQVksRUFBRSxTQUFTLEVBQTJDLE1BQU0sZUFBZSxDQUFDO0FBR3BILE9BQU8sRUFBYyxPQUFPLEVBQXVCLE1BQU0sTUFBTSxDQUFDO0FBSWhFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7O0FBTy9FLE1BQU0sT0FBTyxtQkFBbUI7SUE4SHBCO0lBQ0E7SUFDQTtJQUNBO0lBQXdCO0lBQ3hCO0lBQWdDO0lBQ2hDO0lBQTJDO0lBbElyRCxTQUFTLENBQU07SUFDZixZQUFZLENBQU07SUFDbEIsV0FBVyxHQUFRLEVBQUUsQ0FBQztJQUN0QixVQUFVLENBQU07SUFDaEIsS0FBSyxHQUFRLEdBQUcsQ0FBQztJQUNqQixNQUFNLEdBQVEsRUFBRSxDQUFBO0lBQ2hCLFlBQVksR0FBRyxJQUFJLENBQUE7SUFDbkIsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUMzQixPQUFPLENBQU07SUFDYixhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLFNBQVMsR0FB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QUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFBO3FCQUNqRjtpQkFDRjtxQkFBTTtpQkFFTjtZQUNILENBQUMsQ0FBQyxDQUFBO1lBQ0YsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO2dCQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsbUZBQW1GO0lBRXJGLENBQUM7SUFDRCxhQUFhO1FBQ1gsbUVBQW1FO1FBQ25FLG9CQUFvQjtRQUNwQixjQUFjO1FBQ2QsS0FBSztJQUNQLENBQUM7d0dBbHZCVSxtQkFBbUI7NEZBQW5CLG1CQUFtQix3V0NuQmhDLCs2Y0E2S2M7OzRGRDFKRCxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCOzJTQStCQSxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0UsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQVF6QixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBd0JqQyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSG9zdExpc3RlbmVyLCBWaWV3Q2hpbGQsIHZpZXdDaGlsZCwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5nYk1vZGFsLCBOZ2JNb2RhbFJlZiB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGltZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBdWRpdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdWRpdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IE5neFNwaW5uZXJTZXJ2aWNlIH0gZnJvbSAnbmd4LXNwaW5uZXInO1xyXG5pbXBvcnQgeyBSZW1vdmVBdWRpdENvbXBvbmVudCB9IGZyb20gJy4uL3JlbW92ZS1hdWRpdC9yZW1vdmUtYXVkaXQuY29tcG9uZW50JztcclxuaW1wb3J0ICogYXMgTFpTdHJpbmcgZnJvbSAnbHotc3RyaW5nJztcclxuaW1wb3J0IHsgRXhjZWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXhjZWwuc2VydmljZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUaW1lclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aW1lci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlld2NhdGVnb3J5Q29tcG9uZW50IH0gZnJvbSAnLi4vdmlld2NhdGVnb3J5L3ZpZXdjYXRlZ29yeS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc3RhcnQtYXVkaXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGFydC1hdWRpdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3N0YXJ0LWF1ZGl0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RhcnRBdWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBqdW5raW1hZ2U6IGFueTtcclxuICBlbXBsb3llaW1hZ2U6IGFueTtcclxuICBmaWxlZGV0YWlsczogYW55ID0ge307XHJcbiAgZGF0YXJlYXNvbjogYW55O1xyXG4gIGxpbWl0OiBhbnkgPSA1MDA7XHJcbiAgbmV4dElkOiBhbnkgPSAnJ1xyXG4gIHNwaW5uZXJzdGFydCA9IHRydWVcclxuICBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhdWRpdElkOiBhbnk7XHJcbiAgY3VzdG9tZXJjb3VudCA9IDA7XHJcbiAganVua2NvdW50ID0gMDtcclxuICBlbXBsb3llZWNvdW50ID0gMDtcclxuICBkZW1vZ3JhcGhpYzogYW55O1xyXG4gIGlkOiBhbnkgPSAnJztcclxuICBxdWV1ZU5hbWU6IGFueSA9ICcnO1xyXG4gIGF1ZGl0bWFwcGluZ2RhdGE6IGFueTtcclxuICB0b3RhbGZpbGU6IGFueSA9IDA7XHJcbiAgYXVkaXRMb2FkaW5nID0gdHJ1ZTtcclxuICBiYWRnZSA9IGZhbHNlO1xyXG4gIGltYWdlbGlzdDogYW55ID0gXCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvbG9hZGluZy1pbWcucG5nXCJcclxuICBzZWxlY3RlZDogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRUeXBlOiBhbnk7XHJcbiAgYXVkaXRMb2FkaW5nMSA9IHRydWU7XHJcbiAgTm9kYXRhID0gZmFsc2U7XHJcbiAgY291bnRlcjogYW55ID0gMTtcclxuICBjbGlja2VkSW1hZ2VzOiBib29sZWFuW10gPSBbXTtcclxuICBAVmlld0NoaWxkKCdjb25maXJtRHJhZnQnKSBjb25maXJtRHJhZnQ6IGFueTtcclxuICBAVmlld0NoaWxkKCdjb25maXJtZXJyb3InKSBjb25maXJtZXJyb3I6IGFueTtcclxuICBFcnJvcm1zZzogYW55O1xyXG4gIHN0b3JlZGV0YWlsczogYW55O1xyXG4gIG9wZW5tb2RlbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGdldEJhY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXRlZ29yeTogYW55ID0gW11cclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnNjcm9sbFwiLCBbXSlcclxuICBvblNjcm9sbCgpOiB2b2lkIHtcclxuICAgIGlmICgndG90YWxmaWxlcycgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgbGV0IGZpbGVkYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9JylcclxuICAgICAgaWYgKGZpbGVkYXRhPy5maWxlZGV0YWlscz8ubmV4dFRva2VuKSB7XHJcbiAgICAgICAgaWYgKE1hdGguY2VpbCh3aW5kb3cuaW5uZXJIZWlnaHQgKyB3aW5kb3cuc2Nyb2xsWSkgPj0gZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQpIHsvL3RoaXMgY29uZGl0aW9uIGZhaWxlZCB3aGVuIHRoZSBicm93c2VyIGluc3BlY3Qgc2NyZWVuIG9wZW4gaW4gaG9yaXpvbnRhbFxyXG4gICAgICAgICAgaWYgKHRoaXMuc3Bpbm5lcnN0YXJ0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgICAgICAgICB0aGlzLmdldE1hcHBpbmcoJ25leHRJZCcpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcmVzdWx0OiBhbnkgPSB3aW5kb3cuY29uZmlybShcIlNvbWV0aGluZyBXZW50IFdyb25nLiBQbGVhc2UgY2xlYXIgYnJvd3NlciBjYWNoZSBvciBVc2UgaW5jb2duaXRvIHdpbmRvd1wiKVxyXG4gICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5vcGVubW9kZWwpIHJldHVybjtcclxuICAgIC8vIGlmIChldmVudC5rZXkgPT09ICdnJyB8fCBldmVudC5jb2RlID09PSAnS2V5RycpIHtcclxuICAgIC8vICAgdmFyIGdyb3VwID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhLmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhLnNlbGVjdGVkID09PSB0cnVlKVxyXG4gICAgLy8gICBpZiAoZ3JvdXAubGVuZ3RoID4gMCkge1xyXG4gICAgLy8gICAgIGlmIChncm91cC5sZW5ndGggPT0gMSkge1xyXG4gICAgLy8gICAgICAgdGhpcy50b2FzdHIuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIFNlbGVjdCBtdWx0aXBsZSBmaWxlIHRoZW4gYWRkIHRvIEdyb3VwJylcclxuICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgLy8gICAgICAgbGV0IGR1bW15YXJyYXkgPSBncm91cC5zaGlmdCgpXHJcbiAgICAvLyAgICAgICB2YXIgZ3JvdXBpbWFnZXM6IGFueSA9IFtdXHJcbiAgICAvLyAgICAgICBncm91cC5mb3JFYWNoKChkYXRhOiBhbnkpID0+IHtcclxuICAgIC8vICAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhLnNwbGljZSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmluZEluZGV4KCh7IGltZ19uYW1lIH06IHsgaW1nX25hbWU6IHN0cmluZyB9KSA9PiBpbWdfbmFtZSA9PSBkYXRhLmltZ19uYW1lKSwgMSk7XHJcbiAgICAvLyAgICAgICAgIGdyb3VwaW1hZ2VzLnB1c2goZGF0YS5tYXBwZWRpZFswXSlcclxuICAgIC8vICAgICAgIH0pXHJcbiAgICAvLyAgICAgICB0aGlzLmRlbW9ncmFwaGljID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhLmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhLmRlbW9ncmFwaGljID09PSAnZCcpLmxlbmd0aDtcclxuICAgIC8vICAgICAgIGR1bW15YXJyYXkuY291bnQgPSBkdW1teWFycmF5LmNvdW50ICsgZ3JvdXBpbWFnZXMubGVuZ3RoXHJcbiAgICAvLyAgICAgICBkdW1teWFycmF5LnNlbGVjdGVkID0gZmFsc2VcclxuICAgIC8vICAgICAgIGR1bW15YXJyYXkuZGVtb2dyYXBoaWMgPSAnJ1xyXG4gICAgLy8gICAgICAgZHVtbXlhcnJheS5tYXBwZWRpZCA9IFsuLi5kdW1teWFycmF5Lm1hcHBlZGlkLCAuLi5ncm91cGltYWdlc11cclxuICAgIC8vICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEpO1xyXG4gICAgLy8gICAgICAgY29uc3QgY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5jb21wcmVzcyhqc29uU3RyaW5nKTtcclxuICAgIC8vICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2F1ZGl0JywgY29tcHJlc3NlZERhdGEpXHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vICAgICAvLyB0aGlzLmluaXRpYWxfZGF0YV9sb2FkaW5nKClcclxuICAgIC8vICAgfSBlbHNlIHtcclxuICAgIC8vICAgICB0aGlzLnRvYXN0ci5nZXRFcnJvclRvYXN0KCdQbGVhc2UgU2VsZWN0IGZpbGUgdGhlbiBhZGQgdG8gR3JvdXAnKVxyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcbiAgICBjb25zdCBwcmVzc2VkID0gKGV2ZW50LmtleSB8fCAnJykudG9Mb3dlckNhc2UoKTtcclxuICAgIGNvbnN0IG1hdGNoZWQgPSB0aGlzLmNhdGVnb3J5LmZpbmQoKG06IGFueSkgPT4ge1xyXG4gICAgICBpZiAoIW0ua2V5KSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGNvbnN0IG1hcEtleSA9IG0ua2V5LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIC8vIG1hdGNoIGJ5IGV2ZW50LmtleSAocHJlZmVycmVkKSBPUiBieSBldmVudC5jb2RlIGxpa2UgJ0tleUonXHJcbiAgICAgIHJldHVybiBwcmVzc2VkID09PSBtYXBLZXkgfHwgZXZlbnQuY29kZSA9PT0gYEtleSR7bWFwS2V5LnRvVXBwZXJDYXNlKCl9YDtcclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICBpZiAoIW1hdGNoZWQpIHJldHVyblxyXG4gICAgaWYgKG1hdGNoZWQpIHtcclxuICAgICAgdmFyIG5ld0RhdGEgPSB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuc2VsZWN0ZWQgPT09IHRydWUpXHJcbiAgICAgIGlmIChuZXdEYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB2YXIgb2xkRGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShtYXRjaGVkPy50eXBlKSB8fCAne30nKVxyXG4gICAgICAgIGlmIChOdW1iZXIob2xkRGF0YS5sZW5ndGgpID4gMCkge1xyXG4gICAgICAgICAgbmV3RGF0YSA9IFsuLi5vbGREYXRhLCAuLi5uZXdEYXRhXVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBuZXdEYXRhID0gbmV3RGF0YVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YS50eXBlID09PSBtYXRjaGVkPy50eXBlKSB7XHJcbiAgICAgICAgICAgIGRhdGEuY291bnQgPSBuZXdEYXRhLmxlbmd0aFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShtYXRjaGVkPy50eXBlLCBKU09OLnN0cmluZ2lmeShuZXdEYXRhKSlcclxuICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEgPSB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuc2VsZWN0ZWQgPT09IGZhbHNlKVxyXG4gICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEpO1xyXG4gICAgICAgIGNvbnN0IGNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuY29tcHJlc3MoanNvblN0cmluZyk7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXVkaXQnLCBjb21wcmVzc2VkRGF0YSlcclxuICAgICAgICB0aGlzLnRvYXN0ci5nZXRTdWNjZXNzVG9hc3QoYCR7bWF0Y2hlZD8udHlwZX0gQWRkZWQgU3VjY2VzZnVsbHkhYCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuZ2V0RXJyb3JUb2FzdChgUGxlYXNlIFNlbGVjdCBmaWxlIHRoZW4gYWRkIHRvICR7bWF0Y2hlZD8udHlwZX0gYClcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZXhjZWw6IEV4Y2VsU2VydmljZSxcclxuICAgIHByaXZhdGUgYXVkaXRzZXJ2aWNlOiBBdWRpdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsIHByaXZhdGUgdGltZXJTZXJ2aWNlOiBUaW1lclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNwaW5uZXJTZXJ2aWNlOiBOZ3hTcGlubmVyU2VydmljZSwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGVcclxuICApIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUeXBlID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ3R5cGUnKVxyXG4gIH1cclxuICBkZXN0cm95ID0gbmV3IFN1YmplY3QoKTtcclxuICBzaG93RGlhbG9nID0gZmFsc2U7XHJcbiAgdGltZVBhc3NlZDogbnVtYmVyID0gMDtcclxuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIGZvcm1hdHRlZFRpbWU6IHN0cmluZyA9ICcwMDowMDowMCc7XHJcblxyXG4gIG5vdGljZSA9ICdzZXNzaW9uIGV4cGlyZWQnO1xyXG4gIHNob3dOb3RpY2UgPSBmYWxzZTtcclxuICByeGpzVGltZXI6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuZ2V0QXVkaXRDb25maWcoKVxyXG4gICAgaWYgKCd1c2VyLWluZm8nIGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgICB2YXIgdXNlciA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXItaW5mbycpIHx8ICd7fScpXHJcbiAgICAgIHRoaXMuaWQgPSB1c2VyLl9pZFxyXG4gICAgfVxyXG4gICAgaWYgKCdhdWRpdCcgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgbGV0IHN0cmluZ2lmeWRhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhdWRpdCcpIHx8ICd7fSdcclxuICAgICAgY29uc3QgZGVjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmRlY29tcHJlc3Moc3RyaW5naWZ5ZGF0YSk7XHJcbiAgICAgIHZhciBhdWRpdGRhdGEgPSBKU09OLnBhcnNlKGRlY29tcHJlc3NlZERhdGEgfHwgJ3t9JylcclxuICAgICAgaWYgKGF1ZGl0ZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhID0gYXVkaXRkYXRhO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tZXJjb3VudCA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5sZW5ndGhcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmF1ZGl0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNldFRpbWVyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgZmlsZWRhdGFcclxuICAgICAgaWYgKCd0b3RhbGZpbGVzJyBpbiBzZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICAgIGZpbGVkYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9JylcclxuICAgICAgICB0aGlzLmdldE1hcHBpbmcoKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRUaW1lcigpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy50aW1lclNlcnZpY2UuZ2V0VGltZVBhc3NlZCgpLnN1YnNjcmliZSh0aW1lID0+IHtcclxuICAgICAgdGhpcy50aW1lUGFzc2VkID0gdGltZTtcclxuICAgICAgdGhpcy5mb3JtYXR0ZWRUaW1lID0gdGhpcy50aW1lclNlcnZpY2UuZm9ybWF0VGltZSh0aW1lKTtcclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMudGltZXJTZXJ2aWNlLnN0YXJ0VGltZXIoKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVHbG9iYWxNb3VzZUV2ZW50ID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgdGhpcy50aW1lclNlcnZpY2Uuc3RhcnRUaW1lcigpO1xyXG4gIH1cclxuXHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIHRoaXMudGltZXJTZXJ2aWNlLmNsZWFyVGltZXIoKVxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbF9kYXRhX2xvYWRpbmcoKSB7XHJcbiAgICBpZiAoJ2F1ZGl0JyBpbiBzZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgICBjb25zdCBkZWNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuZGVjb21wcmVzcyhzdHJpbmdpZnlkYXRhKTtcclxuICAgICAgdmFyIGF1ZGl0ZGF0YSA9IEpTT04ucGFyc2UoZGVjb21wcmVzc2VkRGF0YSB8fCAne30nKVxyXG4gICAgICBpZiAoYXVkaXRkYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEgPSBhdWRpdGRhdGE7XHJcbiAgICAgICAgdGhpcy5kZW1vZ3JhcGhpYyA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5kZW1vZ3JhcGhpYyA9PT0gJ2QnKS5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5jdXN0b21lcmNvdW50ID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhLmxlbmd0aFxyXG4gICAgICAgIHRoaXMuYXVkaXRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhID0gW11cclxuICAgICAgICB0aGlzLmN1c3RvbWVyY291bnQgPSAwXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB2YXIgY291bnQgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZGF0YS50eXBlKSB8fCAne30nKVxyXG4gICAgICBkYXRhLmNvdW50ID0gY291bnQ/Lmxlbmd0aFxyXG4gICAgfSlcclxuICAgIGlmICgncmV0YWcnIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIHZhciByZXRhZ2lhbWdlID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdyZXRhZycpIHx8ICdbXScpXHJcbiAgICAgIGlmIChyZXRhZ2lhbWdlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgICAgIGNvbnN0IGRlY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5kZWNvbXByZXNzKHN0cmluZ2lmeWRhdGEpO1xyXG4gICAgICAgIHZhciBjdXN0b21lciA9IEpTT04ucGFyc2UoZGVjb21wcmVzc2VkRGF0YSB8fCAne30nKVxyXG4gICAgICAgIGN1c3RvbWVyID0gWy4uLmN1c3RvbWVyLCAuLi5yZXRhZ2lhbWdlXVxyXG4gICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEpO1xyXG4gICAgICAgIGNvbnN0IGNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuY29tcHJlc3MoanNvblN0cmluZyk7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXVkaXQnLCBjb21wcmVzc2VkRGF0YSlcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdyZXRhZycpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICgndG90YWxmaWxlcycgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgdmFyIGZpbGVzID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9JylcclxuICAgICAgdGhpcy50b3RhbGZpbGUgPSBmaWxlcz8udG90YWxmaWxlc1xyXG4gICAgICB0aGlzLmZpbGVkZXRhaWxzID0gZmlsZXM/LmZpbGVkZXRhaWxzXHJcbiAgICAgIHRoaXMuc3RvcmVkZXRhaWxzID0gZmlsZXM/LnN0b3JlZGV0YWlsc1xyXG4gICAgfVxyXG4gIH1cclxuICB0b2dnbGVJbWFnZShpbWdfbmFtZTogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkLnB1c2goaW1nX25hbWUpXHJcbiAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEubWFwKChkYXRhOiBhbnkpID0+IHtcclxuXHJcbiAgICAgIGlmIChkYXRhLmltZ19uYW1lID09IGltZ19uYW1lKSB7XHJcbiAgICAgICAgaWYgKGRhdGEubWFwcGVkaWQubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgIGRhdGEuc2VsZWN0ZWQgPSAhZGF0YS5zZWxlY3RlZFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBkYXRhLmRyb3BwZWQgPSAhZGF0YS5kcm9wcGVkXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBnZXRBdWRpdENvbmZpZygpIHtcclxuXHJcbiAgICBsZXQgZmlsZWRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKVxyXG4gICAgdGhpcy5hdWRpdHNlcnZpY2UuZ2V0QXVkaXRjb25maWcoZmlsZWRhdGE/LmZpbGVkZXRhaWxzPy5jbGllbnRJZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5ID0gcmVzLmRhdGEuZm9vdGZhbGxEaXJlY3RvcnlDb25maWdzLnRhZ2dpbmdMaW1pdGF0aW9uXHJcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChkYXRhPy50eXBlIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcblxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oZGF0YS50eXBlLCBKU09OLnN0cmluZ2lmeShbXSkpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICB0aGlzLmluaXRpYWxfZGF0YV9sb2FkaW5nKClcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBnZXRNYXBwaW5nKG5leHRJZD86IGFueSkge1xyXG4gICAgdGhpcy5hdWRpdExvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zcGlubmVyc3RhcnQgPSBmYWxzZVxyXG4gICAgbGV0IGZpbGVkYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9JylcclxuICAgIGxldCB0aWNrZXR0eXBlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndGlja2V0VHlwZScpXHJcbiAgICBjb25zb2xlLmxvZyhcIvCfmoAgfiBTdGFydEF1ZGl0Q29tcG9uZW50IH4gZ2V0TWFwcGluZyB+IHRpY2tldHR5cGU6XCIsIHRpY2tldHR5cGUpXHJcbiAgICBsZXQgcGF5bG9hZCA9IHtcclxuICAgICAgc3RvcmVJZDogZmlsZWRhdGE/LmZpbGVkZXRhaWxzPy5zdG9yZUlkLFxyXG4gICAgICBsaW1pdDogdGhpcy5saW1pdCxcclxuICAgICAgbmV4dElkOiBmaWxlZGF0YT8uZmlsZWRldGFpbHM/Lm5leHRUb2tlbiA/IGZpbGVkYXRhPy5maWxlZGV0YWlscz8ubmV4dFRva2VuIDogJycsXHJcbiAgICAgIERhdGU6IGZpbGVkYXRhPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgY291bnQ6IGZpbGVkYXRhPy50b3RhbGZpbGVzLFxyXG4gICAgICB0aWNrZXR0eXBlOnRpY2tldHR5cGVcclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5hdWRpdHNlcnZpY2UuZ2V0QXVkaXRNYXBwaW5nKHBheWxvYWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuc3RvcmVkZXRhaWxzID0gcmVzPy5kYXRhO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXM/LmRhdGE/LmZpbGU/Lm5leHRUb2tlbikge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0TWFwcGluZyhyZXM/LmRhdGE/LmZpbGU/Lm5leHRUb2tlbilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSwgMTAwKVxyXG4gICAgICAgICAgaWYgKHJlcz8uZGF0YT8uaXNEcmFmdCkge1xyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCd0aW1lU3BlbnQnLCBKU09OLnN0cmluZ2lmeShyZXM/LmRhdGE/LnRpbWVTcGVudCkpO1xyXG4gICAgICAgICAgICB0aGlzLnNwaW5uZXJzdGFydCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICBsZXQgZmlsdGVyRGF0YSA9IHJlcz8uZGF0YT8ucmVzdWx0LmZpbHRlcigoeDogYW55KSA9PiB4LnR5cGUgPT09IGRhdGEudHlwZSlcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGRhdGEudHlwZSwgSlNPTi5zdHJpbmdpZnkoZmlsdGVyRGF0YVswXS52YWx1ZSkpXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIGxldCBjdXN0b21lckRhdGEgPSByZXM/LmRhdGE/LnJlc3VsdC5maWx0ZXIoKHg6IGFueSkgPT4geC50eXBlID09PSAnY3VzdG9tZXInKVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhID0gY3VzdG9tZXJEYXRhWzBdLnZhbHVlXHJcbiAgICAgICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeShjdXN0b21lckRhdGFbMF0udmFsdWUpO1xyXG4gICAgICAgICAgICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmNvbXByZXNzKGpzb25TdHJpbmcpO1xyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdhdWRpdCcsIGNvbXByZXNzZWREYXRhKVxyXG5cclxuXHJcbiAgICAgICAgICAgIHRoaXMudG90YWxmaWxlID0gcmVzPy5kYXRhPy5jb3VudDtcclxuICAgICAgICAgICAgdGhpcy5maWxlZGV0YWlscyA9IHJlcz8uZGF0YT8uZmlsZTtcclxuXHJcblxyXG4gICAgICAgICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgdmFyIGNvdW50ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGEudHlwZSkgfHwgJ3t9JylcclxuICAgICAgICAgICAgICBkYXRhLmNvdW50ID0gY291bnQ/Lmxlbmd0aFxyXG4gICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlcz8uZGF0YT8ucmVzdWx0Py5yZXRhZ19pbWFnZT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIGxldCBzdHJpbmdpZnlkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXVkaXQnKSB8fCAne30nXHJcbiAgICAgICAgICAgICAgY29uc3QgZGVjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmRlY29tcHJlc3Moc3RyaW5naWZ5ZGF0YSk7XHJcbiAgICAgICAgICAgICAgdmFyIGN1c3RvbWVyID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICAgICAgICAgICAgY3VzdG9tZXIgPSBbLi4uY3VzdG9tZXIsIC4uLnJlcy5kYXRhLnJlc3VsdC5yZXRhZ19pbWFnZV1cclxuICAgICAgICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEgPSBjdXN0b21lcjtcclxuICAgICAgICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoY3VzdG9tZXIpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuY29tcHJlc3MoanNvblN0cmluZyk7XHJcbiAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXVkaXQnLCBjb21wcmVzc2VkRGF0YSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdmFyIHRvdGFsZmlsZXMgPSB7XHJcbiAgICAgICAgICAgICAgXCJzdG9yZWRldGFpbHNcIjoge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogcmVzPy5kYXRhPy5zdG9yZU5hbWUsXHJcbiAgICAgICAgICAgICAgICBcImFkZHJlc3NcIjogcmVzPy5kYXRhPy5hZGRyZXNzXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBcInRvdGFsZmlsZXNcIjogdGhpcy5zdG9yZWRldGFpbHM/LmNvdW50LFxyXG4gICAgICAgICAgICAgIFwiYXVkaXRJZFwiOiByZXM/LmRhdGEuZmlsZT8uYXVkaXRJZCxcclxuICAgICAgICAgICAgICBcImZpbGVkZXRhaWxzXCI6IHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiB0aGlzLnN0b3JlZGV0YWlscz8uZmlsZT8uc3RvcmVJZCxcclxuICAgICAgICAgICAgICAgIFwiRGF0ZVwiOiByZXM/LmRhdGE/LmZpbGU/LkRhdGUsXHJcbiAgICAgICAgICAgICAgICBcInVzZXJJZFwiOiByZXM/LmRhdGE/LmZpbGU/LnVzZXJJZCxcclxuICAgICAgICAgICAgICAgIFwiY2xpZW50SWRcIjogcmVzPy5kYXRhPy5maWxlPy5jbGllbnRJZCxcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgndG90YWxmaWxlcycsIEpTT04uc3RyaW5naWZ5KHRvdGFsZmlsZXMpKVxyXG4gICAgICAgICAgICB0aGlzLmF1ZGl0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNldFRpbWVyKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNwaW5uZXJzdGFydCA9IGZhbHNlXHJcbiAgICAgICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgICAgICBsZXQgZmlsZWRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKVxyXG4gICAgICAgICAgICBpZiAoZmlsZWRhdGE/LmZpbGVkZXRhaWxzPy5uZXh0VG9rZW4pIHtcclxuICAgICAgICAgICAgICB0aGlzLmF1ZGl0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuYXVkaXRJZCA9IHJlcy5kYXRhLmZpbGU/LmF1ZGl0SWQ7XHJcbiAgICAgICAgICAgICAgdGhpcy50b3RhbGZpbGUgPSByZXM/LmRhdGE/LmNvdW50O1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsZWRldGFpbHMgPSByZXM/LmRhdGE/LmZpbGU7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlZGV0YWlscy56b25lTmFtZSA9IHJlcz8uZGF0YT8uZmlsZT8uem9uZU5hbWU7XHJcbiAgICAgICAgICAgICAgaWYgKCdhdWRpdCcgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmF1ZGl0bWFwcGluZ2RhdGE/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhID0gWy4uLnRoaXMuYXVkaXRtYXBwaW5nZGF0YSwgLi4ucmVzPy5kYXRhPy5yZXN1bHRdXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tZXJjb3VudCA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YT8ubGVuZ3RoXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuYXVkaXRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5hdWRpdExvYWRpbmcxID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlZGV0YWlscyA9IHJlcz8uZGF0YT8uZmlsZTtcclxuICAgICAgICAgICAgICB0aGlzLmF1ZGl0SWQgPSByZXMuZGF0YS5maWxlPy5hdWRpdElkO1xyXG4gICAgICAgICAgICAgIHRoaXMuYXVkaXRtYXBwaW5nZGF0YSA9IHJlcz8uZGF0YT8ucmVzdWx0O1xyXG4gICAgICAgICAgICAgIHRoaXMudG90YWxmaWxlID0gcmVzPy5kYXRhPy5jb3VudDtcclxuICAgICAgICAgICAgICB0aGlzLmZpbGVkZXRhaWxzLnF1ZXVlTmFtZSA9IHRoaXMucXVldWVOYW1lO1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsZWRldGFpbHMuem9uZU5hbWUgPSByZXM/LmRhdGE/LmZpbGU/LnpvbmVOYW1lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEpO1xyXG4gICAgICAgICAgICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmNvbXByZXNzKGpzb25TdHJpbmcpO1xyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdhdWRpdCcsIGNvbXByZXNzZWREYXRhKVxyXG4gICAgICAgICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgICAgICAgIHRvdGFsZmlsZXM6IHRoaXMudG90YWxmaWxlLFxyXG4gICAgICAgICAgICAgIGZpbGVkZXRhaWxzOiB0aGlzLmZpbGVkZXRhaWxzLFxyXG4gICAgICAgICAgICAgIGF1ZGl0SWQ6IHRoaXMuYXVkaXRJZCxcclxuXHJcbiAgICAgICAgICAgICAgc3RvcmVkZXRhaWxzOiB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiByZXM/LmRhdGE/LnN0b3JlTmFtZSxcclxuICAgICAgICAgICAgICAgIFwiYWRkcmVzc1wiOiByZXM/LmRhdGE/LmFkZHJlc3NcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3RvdGFsZmlsZXMnLCBKU09OLnN0cmluZ2lmeShvYmopKVxyXG4gICAgICAgICAgICB0aGlzLnNwaW5uZXJzdGFydCA9IHRydWVcclxuICAgICAgICAgICAgdGhpcy5zZXRUaW1lcigpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9IGVsc2UgaWYgKCFyZXMgfHwgcmVzLmNvZGUgPT0gMjA0KSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5jb3VudGVyIDwgNikge1xyXG4gICAgICAgICAgICB0aGlzLmNvdW50ZXIgPSB0aGlzLmNvdW50ZXIgKyAxO1xyXG4gICAgICAgICAgICB0aGlzLmdldE1hcHBpbmcoKVxyXG4gICAgICAgICAgICB0aGlzLnNob3dEaWFsb2cgPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hdWRpdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKCFuZXh0SWQpIHsgdGhpcy5Ob2RhdGEgPSB0cnVlIH0gZWxzZSB7IH1cclxuICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3kubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd05vdGljZSA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChlcnI/LnN0YXR1cyA9PSA0MDQpIHtcclxuICAgICAgICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpO1xyXG4gICAgICAgICAgaWYgKGZpbGVkYXRhLmZpbGVkZXRhaWxzICYmIGZpbGVkYXRhLmZpbGVkZXRhaWxzLm5leHRUb2tlbikge1xyXG4gICAgICAgICAgICBkZWxldGUgZmlsZWRhdGEuZmlsZWRldGFpbHMubmV4dFRva2VuO1xyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCd0b3RhbGZpbGVzJywgSlNPTi5zdHJpbmdpZnkoZmlsZWRhdGEpKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRNYXBwaW5nKCcnKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ci5nZXRFcnJvclRvYXN0KGVycj8uZXJyb3I/Lm1lc3NhZ2UpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlYXVkaXQoZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oUmVtb3ZlQXVkaXRDb21wb25lbnQsIHtcclxuICAgICAgc2l6ZTogJ2xnJyxcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIGJhY2tkcm9wOiAnc3RhdGljJyxcclxuICAgICAga2V5Ym9hcmQ6IGZhbHNlXHJcbiAgICB9KVxyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IGRhdGEsXHJcbiAgICAgIG1vZGFsUmVmLmNsb3NlZC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXM/LnJlbG9hZCkge1xyXG4gICAgICAgICAgdGhpcy5pbml0aWFsX2RhdGFfbG9hZGluZygpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuICBhbGxvd0Ryb3AoZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIGRyYWdJbWFnZShldmVudDogYW55KSB7XHJcbiAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIGV2ZW50LnRhcmdldC5pZCk7XHJcbiAgfVxyXG5cclxuICBkcm9wSW1hZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IGRyYWdnZWRJbWFnZUlkID0gZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoJ3RleHQvcGxhaW4nKTtcclxuICAgIGNvbnN0IGRyYWdnZWRJbWFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRyYWdnZWRJbWFnZUlkKTtcclxuICAgIGV2ZW50LnRhcmdldC5hcHBlbmRDaGlsZChkcmFnZ2VkSW1hZ2UpO1xyXG4gICAgY29uc3QgZHJvcFpvbmUgPSBldmVudC50YXJnZXQ7XHJcbiAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEubWFwKChkYXRhOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgaWYgKGRhdGEuaW1nX25hbWUgPT0gZHJvcFpvbmUuaWQpIHtcclxuICAgICAgICBpZiAoZGF0YS5tYXBwZWRpZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB2YXIgZmluZG9uZSA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5pbWdfbmFtZSA9PSBkcmFnZ2VkSW1hZ2VJZClcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGZpbmRvbmUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBkYXRhLmNvdW50ID0gZGF0YS5jb3VudCArIGZpbmRvbmVbMF0uY291bnRcclxuICAgICAgICAgICAgZGF0YS5tYXBwZWRpZCA9IFsuLi5kYXRhLm1hcHBlZGlkLCAuLi5maW5kb25lWzBdLm1hcHBlZGlkXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCdkdXBsaWNhdGUnIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgICAgICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZHVwbGljYXRlJykgfHwgJ3t9JylcclxuICAgICAgICAgICAgbGV0IGZpbHRlcmVkRGF0YSA9IGZpbmRvbmVbMF0ubWFwcGVkaWQuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuaW1nX2lkID09PSBmaW5kb25lWzBdLmltZ19pZClcclxuICAgICAgICAgICAgbGV0IGluc2VydE9iajogYW55ID0ge31cclxuICAgICAgICAgICAgaW5zZXJ0T2JqLmltZ19pZCA9IGZpbHRlcmVkRGF0YVswXT8uaW1nX2lkXHJcbiAgICAgICAgICAgIGluc2VydE9iai5pbWdfbmFtZSA9IGZpbHRlcmVkRGF0YVswXT8uaW1nX25hbWVcclxuICAgICAgICAgICAgaW5zZXJ0T2JqLmltZ19wYXRoID0gZmlsdGVyZWREYXRhWzBdPy5pbWdfcGF0aFxyXG4gICAgICAgICAgICBpbnNlcnRPYmouY291bnQ9MVxyXG4gICAgICAgICAgICBpbnNlcnRPYmouZHJvcHBlZD1mYWxzZVxyXG4gICAgICAgICAgICBpbnNlcnRPYmouc2VsZWN0ZWQ9ZmFsc2VcclxuICAgICAgICAgICAgaW5zZXJ0T2JqLm1hcHBlZGlkID0gW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGltZ19pZDogZmlsdGVyZWREYXRhWzBdPy5pbWdfaWQsXHJcbiAgICAgICAgICAgICAgICBpbWdfbmFtZTogZmlsdGVyZWREYXRhWzBdPy5pbWdfbmFtZSxcclxuICAgICAgICAgICAgICAgIGltZ19wYXRoOiBmaWx0ZXJlZERhdGFbMF0/LmltZ19wYXRoXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdXHJcblxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgZmlsZWRhdGEgPSBbLi4uZmlsZWRhdGEsIC4uLltpbnNlcnRPYmpdXVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnZHVwbGljYXRlJywgSlNPTi5zdHJpbmdpZnkoZmlsZWRhdGEpKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB2YXIgY291bnQgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZGF0YS50eXBlKSB8fCAne30nKVxyXG4gICAgICAgICAgICBkYXRhLmNvdW50ID0gY291bnQ/Lmxlbmd0aFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZGF0YS5jb3VudCA9IGRhdGEuY291bnQgKyAxXHJcbiAgICAgICAgICBkYXRhLm1hcHBlZGlkLnB1c2goZHJhZ2dlZEltYWdlSWQpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuXHJcblxyXG4gICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhLnNwbGljZSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmluZEluZGV4KCh7IGltZ19uYW1lIH06IHsgaW1nX25hbWU6IHN0cmluZyB9KSA9PiBpbWdfbmFtZSA9PSBkcmFnZ2VkSW1hZ2VJZCksIDEpO1xyXG4gICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhLm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnNlbGVjdGVkID0gZmFsc2UpXHJcbiAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodGhpcy5hdWRpdG1hcHBpbmdkYXRhKTtcclxuICAgIGNvbnN0IGNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuY29tcHJlc3MoanNvblN0cmluZyk7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdhdWRpdCcsIGNvbXByZXNzZWREYXRhKVxyXG4gIH1cclxuXHJcbiAgZHJhZ1N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW1hZ2VFbGVtZW50O1xyXG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyPy5zZXREYXRhKCd0ZXh0L3BsYWluJywgdGFyZ2V0LmlkKTtcclxuICB9XHJcblxyXG4gIFJldmlld2RhdGEoKSB7XHJcbiAgICBsZXQgZmlsZWRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKVxyXG4gICAgaWYgKGZpbGVkYXRhPy5maWxlZGV0YWlscz8ubmV4dFRva2VuKSB7XHJcbiAgICAgIHRoaXMudG9hc3RyLmdldEVycm9yVG9hc3QoJ1Njcm9sbCBEb3duIHRvIGJvdHRvbSBsb2FkIHRoZSBmaWxlcyBiZWZvcmUgTW92ZSB0byBOZXh0IHBhZ2UhJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICAgIHZhciB0b3RhbGZpbGU6IGFueSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpO1xyXG4gICAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgICBjb25zdCBkZWNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuZGVjb21wcmVzcyhzdHJpbmdpZnlkYXRhKTtcclxuICAgICAgdmFyIGN1c3RvbWVyID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICAgIGxldCBzdG9yZWREYXRhID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHR5cGU6IFwiY3VzdG9tZXJcIixcclxuICAgICAgICAgIHZhbHVlOiBjdXN0b21lciA/IGN1c3RvbWVyIDogW10sXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcblxyXG4gICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IHNlc3Npb252YWx1ZSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShkYXRhLnR5cGUpIHx8ICdbXScpO1xyXG4gICAgICAgIHN0b3JlZERhdGEucHVzaCh7XHJcbiAgICAgICAgICB0eXBlOiBkYXRhLnR5cGUsXHJcbiAgICAgICAgICB2YWx1ZTogc2Vzc2lvbnZhbHVlICYmIHNlc3Npb252YWx1ZS5sZW5ndGggPiAwID8gc2Vzc2lvbnZhbHVlIDogW11cclxuICAgICAgICB9KVxyXG4gICAgICB9KVxyXG4gICAgICB2YXIgaW5zZXJvYmo6IGFueSA9IHtcclxuICAgICAgICB1c2VyQ29tbWFuZHM6IHRoaXMuZGF0YXJlYXNvbiA/IHRoaXMuZGF0YXJlYXNvbiA6IFwiXCIsXHJcbiAgICAgICAgY3VzdG9tZXJDb3VudDogY3VzdG9tZXIgPyBjdXN0b21lcj8ubGVuZ3RoIDogMCxcclxuICAgICAgICBzdG9yZUlkOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkLFxyXG4gICAgICAgIGF1ZGl0SWQ6IHRvdGFsZmlsZT8uYXVkaXRJZCA/IHRvdGFsZmlsZT8uYXVkaXRJZCA6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHMuYXVkaXRJZCxcclxuICAgICAgICBmaWxlRGF0ZTogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgICB0b3RhbENvdW50OiB0b3RhbGZpbGU/LnRvdGFsZmlsZXMgPyB0b3RhbGZpbGUudG90YWxmaWxlcyA6IDAsXHJcbiAgICAgICAgcmV0YWdDb3VudDogMCxcclxuICAgICAgICB0aW1lU3BlbnQ6IHRoaXMudGltZVBhc3NlZCxcclxuICAgICAgICByZXRhZ0ltYWdlOiBbXSxcclxuICAgICAgICBkcmFmdGVkRGF0YTogc3RvcmVkRGF0YVxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICB0aGlzLmF1ZGl0c2VydmljZS5zYXZlRHJhZnQoaW5zZXJvYmopLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9tYW5hZ2UvdGlja2V0cy9tYXBwaW5nLWxpc3RcIl0pXHJcbiAgICAgICAgICB9IGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuRXJyb3Jtc2cgPSByZXMubWVzc2FnZVxyXG4gICAgICAgICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5jb25maXJtZXJyb3IsIHsgY2VudGVyZWQ6IHRydWUgfSlcclxuICAgICAgICAgICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZS90aWNrZXRzJ10sIHsgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ2Zvb3RmYWxsJyB9IH0pXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVycj8uY29kZSA9PSA0MDAgfHwgZXJyPy5jb2RlID09IDIwNCB8fCBlcnI/LmNvZGUgPT0gNDA0IHx8IGVycj8uY29kZSA9PSA1MDApIHtcclxuICAgICAgICAgICAgdGhpcy5FcnJvcm1zZyA9IGVyci5tZXNzYWdlXHJcbiAgICAgICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1lcnJvciwgeyBjZW50ZXJlZDogdHJ1ZSB9KVxyXG4gICAgICAgICAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgdmlld2NhdGVnb3J5KGRhdGE6IGFueSkge1xyXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFZpZXdjYXRlZ29yeUNvbXBvbmVudCwge1xyXG4gICAgICBzaXplOiAnbGcnLFxyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgYmFja2Ryb3A6ICdzdGF0aWMnLFxyXG4gICAgICBrZXlib2FyZDogZmFsc2VcclxuICAgIH0pXHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gZGF0YVxyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuaW1hZ2VMaXN0ID0gZGF0YSxcclxuICAgICAgbW9kYWxSZWYuY2xvc2VkLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcz8ucmVsb2FkKSB7XHJcbiAgICAgICAgICB0aGlzLmluaXRpYWxfZGF0YV9sb2FkaW5nKClcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG4gIGFzeW5jIHNhdmVkcmFmdCgpIHtcclxuICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpXHJcbiAgICBpZiAoZmlsZWRhdGE/LmZpbGVkZXRhaWxzPy5uZXh0VG9rZW4pIHtcclxuICAgICAgdGhpcy50b2FzdHIuZ2V0RXJyb3JUb2FzdCgnU2Nyb2xsIERvd24gdG8gYm90dG9tIGxvYWQgdGhlIGZpbGVzIGJlZm9yZSBzYXZlIScpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vcGVubW9kZWwgPSB0cnVlO1xyXG4gICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5jb25maXJtRHJhZnQsIHtcclxuICAgICAgICBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ21kJ1xyXG4gICAgICB9KVxyXG4gICAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgIGlmIChyZXN1bHQgPT09ICdpc0RlbmllZCcpIHtcclxuICAgICAgICAgIHZhciB0b3RhbGZpbGU6IGFueSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpO1xyXG4gICAgICAgICAgbGV0IHN0cmluZ2lmeWRhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhdWRpdCcpIHx8ICd7fSdcclxuICAgICAgICAgIGNvbnN0IGRlY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5kZWNvbXByZXNzKHN0cmluZ2lmeWRhdGEpO1xyXG4gICAgICAgICAgdmFyIGN1c3RvbWVyID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICAgICAgICBsZXQgc3RvcmVkRGF0YSA9IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IFwiY3VzdG9tZXJcIixcclxuICAgICAgICAgICAgICB2YWx1ZTogY3VzdG9tZXIgPyBjdXN0b21lciA6IFtdLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdXHJcblxyXG4gICAgICAgICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgc2Vzc2lvbnZhbHVlID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGEudHlwZSkgfHwgJ1tdJyk7XHJcbiAgICAgICAgICAgIHN0b3JlZERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgdHlwZTogZGF0YS50eXBlLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiBzZXNzaW9udmFsdWUgJiYgc2Vzc2lvbnZhbHVlLmxlbmd0aCA+IDAgPyBzZXNzaW9udmFsdWUgOiBbXVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICB2YXIgaW5zZXJvYmo6IGFueSA9IHtcclxuICAgICAgICAgICAgdXNlckNvbW1hbmRzOiB0aGlzLmRhdGFyZWFzb24gPyB0aGlzLmRhdGFyZWFzb24gOiBcIlwiLFxyXG4gICAgICAgICAgICAvLyAgIHVzZXJJZDogdXNlcj8udXNlcixcclxuICAgICAgICAgICAgc3RvcmVJZDogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVJZCxcclxuICAgICAgICAgICAgZmlsZURhdGU6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LkRhdGUsXHJcbiAgICAgICAgICAgIGF1ZGl0SWQ6IHRvdGFsZmlsZT8uYXVkaXRJZCA/IHRvdGFsZmlsZT8uYXVkaXRJZCA6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHMuYXVkaXRJZCxcclxuICAgICAgICAgICAgdG90YWxDb3VudDogdG90YWxmaWxlPy50b3RhbGZpbGVzID8gdG90YWxmaWxlLnRvdGFsZmlsZXMgOiAwLFxyXG4gICAgICAgICAgICBjdXN0b21lckNvdW50OiBjdXN0b21lciA/IGN1c3RvbWVyPy5sZW5ndGggOiAwLFxyXG4gICAgICAgICAgICByZXRhZ0NvdW50OiAwLFxyXG4gICAgICAgICAgICB0aW1lU3BlbnQ6IHRoaXMudGltZVBhc3NlZCxcclxuICAgICAgICAgICAgcmV0YWdJbWFnZTogW10sXHJcbiAgICAgICAgICAgIGRyYWZ0ZWREYXRhOiBzdG9yZWREYXRhXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaW5zZXJvYmo/LmF1ZGl0SWQgJiYgaW5zZXJvYmo/LmF1ZGl0SWQgIT0gJycpIHtcclxuICAgICAgICAgICAgdGhpcy5hdWRpdHNlcnZpY2Uuc2F2ZURyYWZ0KGluc2Vyb2JqKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmdldFN1Y2Nlc3NUb2FzdChyZXM/LmRhdGE/LnJlc3VsdClcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5FcnJvcm1zZyA9IHJlcy5lcnJvcjtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5jb25maXJtZXJyb3IpXHJcbiAgICAgICAgICAgICAgICAgICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdGlja2V0cyddLCB7IHF1ZXJ5UGFyYW1zOiB7IHR5cGU6ICdmb290ZmFsbCcgfSB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnI/LmNvZGUgPT0gNDAwIHx8IGVycj8uY29kZSA9PSAyMDQgfHwgZXJyPy5jb2RlID09IDQwNCB8fCBlcnI/LmNvZGUgPT0gNTAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmdldEVycm9yVG9hc3QoJ0ZpbGUgbm90IHNhdmVkIScpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT09ICdpc0NvbmZpcm1lZCcpIHtcclxuICAgICAgICAgIHZhciB0b3RhbGZpbGU6IGFueSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpO1xyXG5cclxuICAgICAgICAgIGxldCBzdHJpbmdpZnlkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXVkaXQnKSB8fCAne30nXHJcbiAgICAgICAgICBjb25zdCBkZWNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuZGVjb21wcmVzcyhzdHJpbmdpZnlkYXRhKTtcclxuICAgICAgICAgIHZhciBjdXN0b21lciA9IEpTT04ucGFyc2UoZGVjb21wcmVzc2VkRGF0YSB8fCAne30nKVxyXG4gICAgICAgICAgbGV0IHN0b3JlZERhdGEgPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBcImN1c3RvbWVyXCIsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuYXVkaXRtYXBwaW5nZGF0YSA/IHRoaXMuYXVkaXRtYXBwaW5nZGF0YSA6IFtdLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdXHJcblxyXG4gICAgICAgICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgc2Vzc2lvbnZhbHVlID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGEudHlwZSkgfHwgJ1tdJyk7XHJcbiAgICAgICAgICAgIHN0b3JlZERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgdHlwZTogZGF0YS50eXBlLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiBzZXNzaW9udmFsdWUgJiYgc2Vzc2lvbnZhbHVlLmxlbmd0aCA+IDAgPyBzZXNzaW9udmFsdWUgOiBbXVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHZhciBpbnNlcm9iajogYW55ID0ge1xyXG4gICAgICAgICAgICB1c2VyQ29tbWFuZHM6IHRoaXMuZGF0YXJlYXNvbiA/IHRoaXMuZGF0YXJlYXNvbiA6IFwiXCIsXHJcbiAgICAgICAgICAgIGN1c3RvbWVyQ291bnQ6IGN1c3RvbWVyID8gY3VzdG9tZXI/Lmxlbmd0aCA6IDAsXHJcbiAgICAgICAgICAgIHN0b3JlSWQ6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlSWQsXHJcbiAgICAgICAgICAgIGF1ZGl0VHlwZTogdG90YWxmaWxlPy5maWxlZGV0YWlscz8udHlwZSxcclxuICAgICAgICAgICAgZmlsZURhdGU6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LkRhdGUsXHJcbiAgICAgICAgICAgIGF1ZGl0SWQ6IHRvdGFsZmlsZT8uYXVkaXRJZCA/IHRvdGFsZmlsZT8uYXVkaXRJZCA6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHMuYXVkaXRJZCxcclxuICAgICAgICAgICAgdG90YWxDb3VudDogdG90YWxmaWxlPy50b3RhbGZpbGVzID8gdG90YWxmaWxlLnRvdGFsZmlsZXMgOiAwLFxyXG4gICAgICAgICAgICByZXRhZ0NvdW50OiAwLFxyXG4gICAgICAgICAgICB0aW1lU3BlbnQ6IHRoaXMudGltZVBhc3NlZCxcclxuICAgICAgICAgICAgcmV0YWdJbWFnZTogW10sXHJcbiAgICAgICAgICAgIGRyYWZ0ZWREYXRhOiBzdG9yZWREYXRhXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaW5zZXJvYmo/LmF1ZGl0SWQgJiYgaW5zZXJvYmouYXVkaXRJZCAhPT0gJycpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuYXVkaXRzZXJ2aWNlLnNhdmVEcmFmdChpbnNlcm9iaikucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdGlja2V0cyddLCB7IHF1ZXJ5UGFyYW1zOiB7IHR5cGU6ICdmb290ZmFsbCcgfSB9KVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLkVycm9ybXNnID0gcmVzLmVycm9yO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1lcnJvcilcclxuICAgICAgICAgICAgICAgICAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZS90aWNrZXRzJ10sIHsgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ2Zvb3RmYWxsJyB9IH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnI/LmNvZGUgPT0gNDAwIHx8IGVycj8uY29kZSA9PSAyMDQgfHwgZXJyPy5jb2RlID09IDQwNCB8fCBlcnI/LmNvZGUgPT0gNTAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmdldEVycm9yVG9hc3QoJ0ZpbGUgbm90IHNhdmVkIScpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIG1vZGFsUmVmLnJlc3VsdC5maW5hbGx5KCgpID0+IHtcclxuICAgICAgICB0aGlzLm9wZW5tb2RlbCA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJhY2t0b3RpY2tldHMoKSB7XHJcbiAgICB0aGlzLnNhdmVkcmFmdCgpO1xyXG4gICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuXHJcbiAgfVxyXG4gIGNhbWVyYVByZXZpZXcoKSB7XHJcbiAgICAvLyBjb25zdCBNb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQ2FtZXJhUHJldmlld0NvbXBvbmVudCx7XHJcbiAgICAvLyAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgLy8gICBzaXplOidsZydcclxuICAgIC8vIH0pXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYi01IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciB3LTQwcHggYmctd2hpdGUgY3Vyc29yLXBvaW50ZXIgbWUtNSB0ZXh0LWNlbnRlclwiIChjbGljayk9XCJiYWNrdG90aWNrZXRzKClcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1LjgzMzQgMTBINC4xNjY2OU00LjE2NjY5IDEwTDEwIDE1LjgzMzRNNC4xNjY2OSAxMEwxMCA0LjE2NjY5XCIgc3Ryb2tlPVwiIzM0NDA1NFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxhIChjbGljayk9XCJjYW1lcmFQcmV2aWV3KClcIj48c3BhbiAqbmdJZj1cImZpbGVkZXRhaWxzPy5EYXRlXCI+e3tmaWxlZGV0YWlscz8uRGF0ZX19PC9zcGFuPjxzcGFuPiAtXHJcbiAgICAgICAgICAgIDwvc3Bhbj48c3BhbiAqbmdJZj1cImZpbGVkZXRhaWxzPy5zdG9yZUlkXCI+e3tmaWxlZGV0YWlscz8uc3RvcmVJZH19PC9zcGFuPjxzcGFuPiAtIDwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzdG9yZWRldGFpbHM/LnN0b3JlTmFtZVwiPnt7c3RvcmVkZXRhaWxzPy5zdG9yZU5hbWV9fTwvc3Bhbj48c3BhbiAqbmdJZj1cInNlbGVjdGVkVHlwZSA9PT0nem9uZSdcIj5cclxuICAgICAgICAgICAgICAgIC0gPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImZpbGVkZXRhaWxzPy56b25lTmFtZSAmJiBzZWxlY3RlZFR5cGUgPT09J3pvbmUnXCI+e3tmaWxlZGV0YWlscz8uem9uZU5hbWV9fTwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzdG9yZWRldGFpbHM/LmFkZHJlc3NcIj4gfCB7e3N0b3JlZGV0YWlscz8uYWRkcmVzc319IDwvc3Bhbj48L2E+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLTMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBiZy10aW1lclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWUtMyB0ZXh0LXRpbWVyIGZ3LXNlbWlib2xkXCI+e3sgZm9ybWF0dGVkVGltZSB9fTwvc3Bhbj5cclxuICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk05LjE2NjY3IDIuODcwNzFDOS4xNjY2NyAyLjYyMDIzIDkuMjY2MTcgMi4zODAwMSA5LjQ0MzI5IDIuMjAyODlDOS42MjA0MSAyLjAyNTc3IDkuODYwNjMgMS45MjYyNyAxMC4xMTExIDEuOTI2MjdIMTMuODg4OUMxNC4xMzk0IDEuOTI2MjcgMTQuMzc5NiAyLjAyNTc3IDE0LjU1NjcgMi4yMDI4OUMxNC43MzM4IDIuMzgwMDEgMTQuODMzMyAyLjYyMDIzIDE0LjgzMzMgMi44NzA3MUMxNC44MzMzIDMuMTIxMiAxNC43MzM4IDMuMzYxNDIgMTQuNTU2NyAzLjUzODU0QzE0LjM3OTYgMy43MTU2NSAxNC4xMzk0IDMuODE1MTYgMTMuODg4OSAzLjgxNTE2SDEyLjk0NDRWNS4wNzQ0MkwxMi45NDMyIDUuMTI2MDVDMTQuNTM5NiA1LjMwMDk3IDE2LjA1MjggNS45Mjc4NyAxNy4zMDUzIDYuOTMzMDhMMTcuMzE0MSA2LjkyNTUzTDE4LjI1ODUgNS45ODEwOEMxOC4zNzQgNS44NTY3NiAxOC41MjA4IDUuNzY1ODggMTguNjgzNSA1LjcxODAxQzE4Ljg0NjMgNS42NzAxNCAxOS4wMTkgNS42NjcwNiAxOS4xODMzIDUuNzA5MDhDMTkuMzQ3NyA1Ljc1MTExIDE5LjQ5NzcgNS44MzY2OSAxOS42MTc1IDUuOTU2OEMxOS43MzczIDYuMDc2OTIgMTkuODIyNSA2LjIyNzEzIDE5Ljg2NDEgNi4zOTE2QzE5LjkwNiA2LjU1NTc4IDE5LjkwMyA2LjcyODIzIDE5Ljg1NTQgNi44OTA4NUMxOS44MDc3IDcuMDUzNDggMTkuNzE3MiA3LjIwMDI5IDE5LjU5MzMgNy4zMTU5TDE4LjY0ODkgOC4yNjAzNEwxOC42NDEzIDguMjY5MTVDMTkuNjQwMyA5LjUxOTc0IDIwLjI2NTggMTEuMDI3IDIwLjQ0NiAxMi42MTc0QzIwLjYyNjEgMTQuMjA3OCAyMC4zNTM2IDE1LjgxNjcgMTkuNjU5NyAxNy4yNTkxQzE4Ljk2NTggMTguNzAxNCAxNy44Nzg4IDE5LjkxODUgMTYuNTIzNyAyMC43NzA0QzE1LjE2ODYgMjEuNjIyMiAxMy42MDA2IDIyLjA3NDEgMTIgMjIuMDc0MUMxMC4zOTk0IDIyLjA3NDEgOC44MzEzNyAyMS42MjIyIDcuNDc2MjkgMjAuNzcwNEM2LjEyMTIyIDE5LjkxODUgNS4wMzQxOSAxOC43MDE0IDQuMzQwMyAxNy4yNTkxQzMuNjQ2NDEgMTUuODE2NyAzLjM3Mzg2IDE0LjIwNzggMy41NTQwMiAxMi42MTc0QzMuNzM0MTggMTEuMDI3IDQuMzU5NzMgOS41MTk3NCA1LjM1ODY3IDguMjY5MTVMNS4zNTExMSA4LjI2MDM0TDQuNDA2NjcgNy4zMTU5QzQuMjM5NjQgNy4xMzY5IDQuMTQ4NjUgNi45MDAwMyA0LjE1Mjg3IDYuNjU1MjRDNC4xNTcxIDYuNDEwNDUgNC4yNTYyMiA2LjE3Njg3IDQuNDI5MzQgNi4wMDM3NUM0LjYwMjQ2IDUuODMwNjMgNC44MzYwNCA1LjczMTUxIDUuMDgwODMgNS43MjcyOEM1LjMyNTYyIDUuNzIzMDYgNS41NjI0OSA1LjgxNDA1IDUuNzQxNDkgNS45ODEwOEw2LjY4NTkzIDYuOTI1NTNMNi42OTQ3NCA2LjkzMzA4QzcuOTQ2ODEgNS45MjgwOSA5LjQ1OTYzIDUuMzAxMiAxMS4wNTU2IDUuMTI2MDVWMy44MTUxNkgxMC4xMTExQzkuODYwNjMgMy44MTUxNiA5LjYyMDQxIDMuNzE1NjUgOS40NDMyOSAzLjUzODU0QzkuMjY2MTcgMy4zNjE0MiA5LjE2NjY3IDMuMTIxMiA5LjE2NjY3IDIuODcwNzFaTTEyIDIwLjE4NTVDMTMuNzUzNSAyMC4xODU0IDE1LjQzNTIgMTkuNDg4NiAxNi42NzUgMTguMjQ4NUMxNy45MTQ4IDE3LjAwODUgMTguNjExMyAxNS4zMjY3IDE4LjYxMTEgMTMuNTczMkMxOC42MTA5IDExLjgxOTYgMTcuOTE0MiAxMC4xMzggMTYuNjc0MSA4Ljg5ODEzQzE1LjQzNDEgNy42NTgzMSAxMy43NTIzIDYuOTYxODggMTEuOTk4NyA2Ljk2MjA0QzEwLjI0NTIgNi45NjIyMSA4LjU2MzU0IDcuNjU4OTYgNy4zMjM3MiA4Ljg5OTAyQzYuMDgzOSAxMC4xMzkxIDUuMzg3NDcgMTEuODIwOSA1LjM4NzYzIDEzLjU3NDRDNS4zODc4IDE1LjMyOCA2LjA4NDU1IDE3LjAwOTYgNy4zMjQ2MSAxOC4yNDk0QzguNTY0NjcgMTkuNDg5MyAxMC4yNDY1IDIwLjE4NTcgMTIgMjAuMTg1NVpNMTIuNDg5OSAxMS43NDg1TDE0LjE2NDcgMTAuMDczN0MxNC4yNTE3IDkuOTgzNDMgMTQuMzU1OSA5LjkxMTQzIDE0LjQ3MTEgOS44NjE4OEMxNC41ODYzIDkuODEyMzMgMTQuNzEwMiA5Ljc4NjIyIDE0LjgzNTYgOS43ODUwN0MxNC45NjExIDkuNzgzOTIgMTUuMDg1NCA5LjgwNzc2IDE1LjIwMTUgOS44NTUxOUMxNS4zMTc2IDkuOTAyNjIgMTUuNDIzMSA5Ljk3MjcgMTUuNTExOCAxMC4wNjEzQzE1LjYwMDUgMTAuMTUgMTUuNjcwNyAxMC4yNTU0IDE1LjcxODIgMTAuMzcxNEMxNS43NjU4IDEwLjQ4NzUgMTUuNzg5NyAxMC42MTE4IDE1Ljc4ODcgMTAuNzM3MkMxNS43ODc3IDEwLjg2MjYgMTUuNzYxNyAxMC45ODY2IDE1LjcxMjIgMTEuMTAxOEMxNS42NjI4IDExLjIxNzEgMTUuNTkwOSAxMS4zMjEzIDE1LjUwMDcgMTEuNDA4NUwxMy44MjU5IDEzLjA4NDZDMTMuOTAwMyAxMy4zNjQ1IDEzLjkwOTUgMTMuNjU3OSAxMy44NTI2IDEzLjk0MkMxMy43OTU4IDE0LjIyNiAxMy42NzQ1IDE0LjQ5MzMgMTMuNDk4MSAxNC43MjMxQzEzLjMyMTcgMTQuOTUyOSAxMy4wOTQ5IDE1LjEzOTEgMTIuODM1MiAxNS4yNjc1QzEyLjU3NTQgMTUuMzk1OCAxMi4yODk3IDE1LjQ2MjggMTIgMTUuNDYzM0MxMS43MzI3IDE1LjQ2MSAxMS40Njg4IDE1LjQwMTkgMTEuMjI2IDE1LjI5QzEwLjk4MzIgMTUuMTc4MSAxMC43NjcgMTUuMDE1OSAxMC41OTE2IDE0LjgxNDFDMTAuNDE2MiAxNC42MTIzIDEwLjI4NTcgMTQuMzc1NSAxMC4yMDg3IDE0LjExOTVDMTAuMTMxNiAxMy44NjM1IDEwLjEwOTkgMTMuNTk0IDEwLjE0NDggMTMuMzI5QzEwLjE3OTggMTMuMDYzOSAxMC4yNzA2IDEyLjgwOTMgMTAuNDExNCAxMi41ODJDMTAuNTUyMiAxMi4zNTQ3IDEwLjczOTYgMTIuMTU5OSAxMC45NjEzIDEyLjAxMDRDMTEuMTgzIDExLjg2MSAxMS40MzM5IDExLjc2MDQgMTEuNjk3NCAxMS43MTUyQzExLjk2MDkgMTEuNjcwMSAxMi4yMzEgMTEuNjgxNCAxMi40ODk5IDExLjc0ODVaXCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiYmxhY2tcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjYXJkIHB5LTJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBhbGlnbi1pdGVtcy1jZW50ZXIgYm9yZGVyLTAgb3ZlcmZsb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBib3JkZXItMFwiPlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJ3LTUwcHggaC01MHB4IGJhZGdlLWxpZ2h0LXByaW1hcnkgdGV4dC1jZW50ZXIgYWxpZ24tY29udGVudC1jZW50ZXIgcm91bmRlZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyOFwiIGhlaWdodD1cIjI4XCIgdmlld0JveD1cIjAgMCAyOCAyOFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjEgMTUuMTY2N1YyMy4zMzM0SDQuNjY2NjVWNy4wMDAwNEgxMC41MjMzQzEwLjU4MTYgNi4xNzE3MSAxMC43OCA1LjM5MDA0IDExLjA4MzMgNC42NjY3MUg0LjY2NjY1QzMuMzgzMzEgNC42NjY3MSAyLjMzMzMxIDUuNzE2NzEgMi4zMzMzMSA3LjAwMDA0VjIzLjMzMzRDMi4zMzMzMSAyNC42MTY3IDMuMzgzMzEgMjUuNjY2NyA0LjY2NjY1IDI1LjY2NjdIMjFDMjIuMjgzMyAyNS42NjY3IDIzLjMzMzMgMjQuNjE2NyAyMy4zMzMzIDIzLjMzMzRWMTcuNUwyMSAxNS4xNjY3Wk0xOS4yNSAyMUg2LjQxNjY1TDkuNjI0OTggMTYuODgxN0wxMS45MTE2IDE5LjYzNUwxNS4xMiAxNS41MDVMMTkuMjUgMjFaTTIyLjUxNjYgMTAuMzcxN0MyMy4wMyA5LjU1NTA0IDIzLjMzMzMgOC42MTAwNCAyMy4zMzMzIDcuNTgzMzdDMjMuMzMzMyA0LjY3ODM3IDIwLjk4ODMgMi4zMzMzNyAxOC4wODMzIDIuMzMzMzdDMTUuMTc4MyAyLjMzMzM3IDEyLjgzMzMgNC42NzgzNyAxMi44MzMzIDcuNTgzMzdDMTIuODMzMyAxMC40ODg0IDE1LjE3ODMgMTIuODMzNCAxOC4wNzE2IDEyLjgzMzRDMTkuMDk4MyAxMi44MzM0IDIwLjA1NSAxMi41MyAyMC44NiAxMi4wMTY3TDI0LjUgMTUuNjU2N0wyNi4xNTY2IDE0TDIyLjUxNjYgMTAuMzcxN1pNMTguMDgzMyAxMC41QzE3LjMwOTggMTAuNSAxNi41Njc5IDEwLjE5MjcgMTYuMDIwOSA5LjY0NTc3QzE1LjQ3MzkgOS4wOTg3OSAxNS4xNjY2IDguMzU2OTIgMTUuMTY2NiA3LjU4MzM3QzE1LjE2NjYgNi44MDk4MyAxNS40NzM5IDYuMDY3OTYgMTYuMDIwOSA1LjUyMDk4QzE2LjU2NzkgNC45NzQgMTcuMzA5OCA0LjY2NjcxIDE4LjA4MzMgNC42NjY3MUMxOC44NTY5IDQuNjY2NzEgMTkuNTk4NyA0Ljk3NCAyMC4xNDU3IDUuNTIwOThDMjAuNjkyNyA2LjA2Nzk2IDIxIDYuODA5ODMgMjEgNy41ODMzN0MyMSA4LjM1NjkyIDIwLjY5MjcgOS4wOTg3OSAyMC4xNDU3IDkuNjQ1NzdDMTkuNTk4NyAxMC4xOTI3IDE4Ljg1NjkgMTAuNSAxOC4wODMzIDEwLjVaXCIgZmlsbD1cIiMwMEEzRkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiBcclxuICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgbXMtMlwiPjxzcGFuICpuZ0lmPVwiZmlsZWRldGFpbHM/LnR5cGVcIj57e2ZpbGVkZXRhaWxzPy50eXBlID8gZmlsZWRldGFpbHM/LnR5cGUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZmlsZWRldGFpbHNcIiBjbGFzcz1cInN1Yi10ZXh0IG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHRcIj48c3ZnIGNsYXNzPVwibWUtMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE0NTA4XzE4NTgzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi41IDEwLjVIOS41QzEwLjA1MjMgMTAuNSAxMC41IDEwLjA1MjMgMTAuNSA5LjVWMi41QzEwLjUgMS45NDc3MiAxMC4wNTIzIDEuNSA5LjUgMS41SDIuNUMxLjk0NzcyIDEuNSAxLjUgMS45NDc3MiAxLjUgMi41VjkuNUMxLjUgMTAuMDUyMyAxLjk0NzcyIDEwLjUgMi41IDEwLjVaTTIuNSAxMC41TDggNUwxMC41IDcuNU01IDQuMjVDNSA0LjY2NDIxIDQuNjY0MjEgNSA0LjI1IDVDMy44MzU3OSA1IDMuNSA0LjY2NDIxIDMuNSA0LjI1QzMuNSAzLjgzNTc5IDMuODM1NzkgMy41IDQuMjUgMy41QzQuNjY0MjEgMy41IDUgMy44MzU3OSA1IDQuMjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xNDUwOF8xODU4M1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPnt7dG90YWxmaWxlID8gdG90YWxmaWxlIDogMH19IEFmdGVyIENvdW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTEgcm91bmRlZC0zIHctYXV0byBoLTQ1cHggcHgtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNhdGVnb3J5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0xMDAgYWxpZ24tY29udGVudC1jZW50ZXIgdGV4dC1ub3dyYXAgZnctc2VtaWJvbGQgY3Vyc29yLXBvaW50ZXIgbXgtMlwiIChjbGljayk9XCJ2aWV3Y2F0ZWdvcnkoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnkgbWUtMlwiPnt7aXRlbT8uY291bnR9fTwvc3Bhbj57e2l0ZW0/Lm5hbWV9fTxzcGFuIGNsYXNzPVwiIG1zLTMgYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBtZS01IHRleHQtY2FwaXRhbGl6ZVwiPnt7aXRlbT8ua2V5fX08L3NwYW4+PC9kaXY+ICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItMSByb3VuZGVkLTMgdy1hdXRvIGgtNDVweCBweC00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTUgaC0xMDAgYWxpZ24tY29udGVudC1jZW50ZXIgdGV4dCBmdy1zZW1pYm9sZCBwZS1ub25lXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnkgbWUtNVwiPnt7YXVkaXRtYXBwaW5nZGF0YT8ubGVuZ3RoID8gYXVkaXRtYXBwaW5nZGF0YT8ubGVuZ3RoIDogMFxyXG4gICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlVuaXF1ZSBDdXN0b21lcnM8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWF1ZGl0TG9hZGluZyAmJiAhTm9kYXRhXCIgY2xhc3M9XCJjYXJkLXRvb2xiYXIgdGV4dC1ub3dyYXAgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1kZWZhdWx0IGJ0bi1vdXRsaW5lIG1zLTMgcHktMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlbXBsb3llZWNvdW50ICYmICFqdW5rY291bnQgJiYgKGF1ZGl0bWFwcGluZ2RhdGE/Lmxlbmd0aCA9PT0gdG90YWxmaWxlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVkcmFmdCgpXCI+U2F2ZSBEcmFmdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5IHB5LTIgbXMtM1wiIFtkaXNhYmxlZF09XCJzdWJtaXR0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJSZXZpZXdkYXRhKClcIj5SZXZpZXcgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQuMTY2NjYgOS45OTk5NkgxNS44MzMzTTE1LjgzMzMgOS45OTk5Nkw5Ljk5OTk5IDQuMTY2NjNNMTUuODMzMyA5Ljk5OTk2TDkuOTk5OTkgMTUuODMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gc2Nyb2xsLXRvcCAtLT5cclxuPGRpdiBjbGFzcz1cImNhcmQgbXQtNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImF1ZGl0TG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIk5vZGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1ub2RhdGFcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciB0aGlzIGNvbnZlcnNpb24gZnVubmVsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8IS0tIHNjcm9sbC15IGgtNTAwcHggLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhYXVkaXRMb2FkaW5nXCIgY2xhc3M9XCJjb2wtbWQtMTIgaXRlbSBcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGF1ZGl0bWFwcGluZ2RhdGE7bGV0IGk9aW5kZXhcIiBzdHlsZT1cInBhZGRpbmc6IDVweCAxMHB4O1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXgtMyBteS0zIGltZ1wiIFtzcmNdPVwiaXRlbT8uaW1nX3BhdGhcIiBpZD1cInt7aXRlbT8uaW1nX25hbWV9fVwiIGFsdD1cIkltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGRyYWdvdmVyKT1cImFsbG93RHJvcCgkZXZlbnQpXCIgKGRyb3ApPVwiZHJvcEltYWdlKCRldmVudClcIiBkcmFnZ2FibGU9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJkcmFnSW1hZ2UoJGV2ZW50KVwiIChjbGljayk9XCJ0b2dnbGVJbWFnZShpdGVtPy5pbWdfbmFtZSApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG0tMCBmcy03IGZ3LWJvbGRcIj57e2l0ZW0/LmltZ19uYW1lfX08L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtPy5zZWxlY3RlZFwiIGNsYXNzPVwibm90aWZ5LWJhZGdlMVwiPjxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6MTVweDtjb2xvcjojMDBBM0ZGXCI+PC9pPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIChjbGljayk9XCJyZW1vdmVhdWRpdChpdGVtKVwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm90aWZ5LWJhZGdlIGN1cnNvci1wb2ludGVyXCIgIChjbGljayk9XCJyZW1vdmVhdWRpdChpdGVtKVwiICpuZ0lmPVwiaXRlbT8uY291bnQ+MVwiPnt7aXRlbT8uY291bnR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxuZ3gtc3Bpbm5lciBzaXplPVwibWVkaXVtXCIgdHlwZT1cImJhbGwtYXRvbVwiPjwvbmd4LXNwaW5uZXI+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY29uZmlybURyYWZ0IGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGgtYXV0byBwLTEwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGQtZ3JpZCBwLTAgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgPHNwYW4+PGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvU3VjY2Vzc3RvYXN0LnBuZ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPCEtLSA8c3BhbiAqbmdJZj1cImdldEJhY2tcIj48aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL2N1c3RvbXBvcHVwLUljb25zL2Rhbmdlci1pY29uLnN2Z1wiPjwvc3Bhbj4gIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBtdC01XCI+U2F2ZSBDaGFuZ2VzPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImdldEJhY2tcIiBjbGFzcz1cImNhcmQtbGFiZWwgbXQtNVwiPlVuc2F2ZWQgQ2hhbmdlczwvZGl2PiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc3ViIG10LTVcIj5EbyB5b3Ugd2FudCB0byBkcmFmdCB0aGUgZmlsZT88L3A+XHJcbiAgICAgICAgICAgIDwhLS0gPHAgKm5nSWY9XCJnZXRCYWNrXCIgY2xhc3M9XCJ0ZXh0LXN1YiBtdC01XCI+RG8geW91IHdhbnQgdG8gZ2V0IGJhY2s/PC9wPiAtLT5cclxuICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sIG10LTVcIiBbKG5nTW9kZWwpXT1cImRhdGFyZWFzb25cIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJUeXBlIHlvdXIgcmVhc29uIChSZXF1aXJlZCkgLi4uXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIGQtZmxleCBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTUwIG1lLTIgZnctYm9sZFwiIFtkaXNhYmxlZF09XCIhZGF0YXJlYXNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vZGFsLmNsb3NlKCdpc0NvbmZpcm1lZCcpXCI+U2F2ZSAmIEV4aXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgc2F2ZWJ0biB3LTUwIG1zLTJcIiAoY2xpY2spPVwibW9kYWwuY2xvc2UoJ2lzRGVuaWVkJylcIj5zYXZlICZcclxuICAgICAgICAgICAgICAgICAgICBDb250aW51ZTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb25maXJtZXJyb3IgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cInctNDAwcHggaC1hdXRvIHAtMTAgY2FyZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbFwiPnt7RXJyb3Jtc2d9fTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgbXQtNVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctNTAgbWUtMlwiIChjbGljayk9XCJtb2RhbC5jbG9zZSgnaXNEZW5pZWQnKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTUwIG1zLTJcIiAoY2xpY2spPVwibW9kYWwuY2xvc2UoJ2lzQ29uZmlybWVkJylcIj5Db25maXJtPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
|