@bnsights/bbsf-admin-portal 1.0.26 → 1.0.28

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.
Files changed (28) hide show
  1. package/README.md +3 -3
  2. package/bnsights-bbsf-admin-portal-1.0.28.tgz +0 -0
  3. package/bundles/bnsights-bbsf-admin-portal.umd.js +234 -24
  4. package/bundles/bnsights-bbsf-admin-portal.umd.js.map +1 -1
  5. package/esm2015/lib/Pages/ActiveDirectories/active-directory/active-directory.component.js +1 -2
  6. package/esm2015/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.js +1 -2
  7. package/esm2015/lib/Pages/authentication/auth-callback/auth-callback.component.js +1 -2
  8. package/esm2015/lib/Pages/helpCenter/help-center/help-center.component.js +3 -2
  9. package/esm2015/lib/Pages/providers/provider/provider.component.js +95 -5
  10. package/esm2015/lib/Pages/sectors/sector/sector.component.js +1 -2
  11. package/esm2015/lib/Pages/shared/Enums/ProviderType.js +7 -0
  12. package/esm2015/lib/Pages/shared/Services/provider.service.js +7 -1
  13. package/esm2015/lib/Pages/shared/config/environment.js +2 -2
  14. package/esm2015/lib/Pages/shared/models/ProviderModels/EmailProviderTesterModel.js +3 -0
  15. package/esm2015/lib/Pages/shared/models/ProviderModels/SMSProviderTesterModel.js +3 -0
  16. package/esm2015/lib/Pages/users/users.component.js +1 -2
  17. package/esm2015/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.js +1 -2
  18. package/esm2015/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.js +1 -2
  19. package/esm2015/lib/Pages/workflows/tabs/tabs.component.js +1 -2
  20. package/fesm2015/bnsights-bbsf-admin-portal.js +222 -24
  21. package/fesm2015/bnsights-bbsf-admin-portal.js.map +1 -1
  22. package/lib/Pages/providers/provider/provider.component.d.ts +23 -1
  23. package/lib/Pages/shared/Enums/ProviderType.d.ts +5 -0
  24. package/lib/Pages/shared/Services/provider.service.d.ts +4 -0
  25. package/lib/Pages/shared/models/ProviderModels/EmailProviderTesterModel.d.ts +7 -0
  26. package/lib/Pages/shared/models/ProviderModels/SMSProviderTesterModel.d.ts +6 -0
  27. package/package.json +3 -3
  28. package/bnsights-bbsf-admin-portal-1.0.26.tgz +0 -0
@@ -308,7 +308,6 @@ export class ActiveDirectoryComponent {
308
308
  return [ADMappingOptions, ADMappingCount];
309
309
  }
310
310
  deleteADMapping(deletedADMApping) {
311
- debugger;
312
311
  let deletedMappingIndex = this.editMappingsOptions.indexOf(deletedADMApping);
313
312
  if (deletedMappingIndex !== -1) {
314
313
  this.editMappingsOptions.splice(deletedMappingIndex, 1);
@@ -417,4 +416,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
417
416
  type: ViewChild,
418
417
  args: ['syncConfirmationModalControl', { static: false }]
419
418
  }] } });
420
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL0FjdGl2ZURpcmVjdG9yaWVzL2FjdGl2ZS1kaXJlY3RvcnkvYWN0aXZlLWRpcmVjdG9yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL0FjdGl2ZURpcmVjdG9yaWVzL2FjdGl2ZS1kaXJlY3RvcnkvYWN0aXZlLWRpcmVjdG9yeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhRLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFNckYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQU9uRCxNQUFNLE9BQU8sd0JBQXdCO0lBa0VuQyxZQUFvQixXQUF3QixFQUFVLGVBQWdDLEVBQVMsY0FBOEIsRUFDbkgsb0JBQTBDLEVBQVUsc0JBQThDLEVBQ2xHLFlBQXNCLEVBQVUscUJBQTRDO1FBRmxFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ25ILHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFBVSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ2xHLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVUsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQW5FdEYsbUJBQW1CO1FBQ25CLFdBQU0sR0FBRywwQkFBMEIsQ0FBQztRQUNwQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4Qiw4QkFBOEI7UUFDOUIsd0JBQW1CLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFHeEMsZ0NBQTJCLEdBQVUsRUFBRSxDQUFDO1FBQ3hDLDJCQUFzQixHQUFVLEVBQUUsQ0FBQztRQUVuQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUdoQyxnQkFBZ0I7UUFDaEIsc0JBQWlCLEdBQVUsRUFBRSxDQUFDO1FBQzlCLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzFCLHVCQUFrQixHQUFVLEVBQUUsQ0FBQztRQUMvQixxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFDN0IsMEJBQXFCLEdBQVUsRUFBRSxDQUFDO1FBRWxDLHVCQUF1QjtRQUN2QixpQkFBaUI7UUFDakIsNEJBQXVCLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFVNUMsd0JBQW1CLEdBQVUsRUFBRSxDQUFDO1FBbUJoQyx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFVckMsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBZ05uQyxtQkFBYyxHQUFHLEdBQUcsRUFBRTtZQUNwQixJQUFJLFVBQVUsR0FBVSxFQUFFLENBQUM7WUFDM0IsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQztZQUNyRCxJQUFJLFNBQVMsR0FBRyxJQUFJLDJCQUEyQixFQUFFLENBQUM7WUFFbEQsU0FBUyxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDOUMsU0FBUyxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO1lBQ2hELFNBQVMsQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFDLHdCQUF3QixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7WUFDOUgsU0FBUyxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsbUJBQW1CLENBQUM7WUFDcEQsU0FBUyxDQUFDLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyw2QkFBNkIsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO1lBQzFJLFNBQVMsQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQztZQUNwRCxTQUFTLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUM7WUFFbkQsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQy9DLFNBQVMsQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQztnQkFDMUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDO2dCQUNsRCxTQUFTLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUM7YUFDL0M7aUJBQ0ksSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2xELFNBQVMsQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQztnQkFDOUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDO2dCQUM5QyxTQUFTLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQzthQUN2RDtZQUdELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQy9DLElBQUksZUFBZSxHQUFHLFdBQVcsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZELElBQUksZUFBZSxJQUFJLFNBQVM7b0JBQzlCLFNBQVM7Z0JBQ1gsSUFBSSxtQkFBbUIsR0FBRyxXQUFXLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQy9ELElBQUksdUJBQXVCLEdBQUcsV0FBVyxDQUFDLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN2RSxJQUFJLDBCQUEwQixHQUFHLFdBQVcsQ0FBQyx3QkFBd0IsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDM0UsSUFBSSxnQ0FBZ0MsR0FBRyxXQUFXLENBQUMsOEJBQThCLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBRXZGLElBQUksWUFBWSxHQUFtQixJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUN4RCxZQUFZLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUMzRCxZQUFZLENBQUMsZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUM7Z0JBQ3BELFlBQVksQ0FBQyxjQUFjLEdBQUcsdUJBQXVCLENBQUM7Z0JBQ3RELFlBQVksQ0FBQyxlQUFlLEdBQUcsMEJBQTBCLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUM7Z0JBQ3ZJLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3pDO1lBQ0QsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzQixPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDLENBQUE7UUFFRCxzQkFBaUIsR0FBRyxDQUFDLFNBQVMsRUFBbUIsRUFBRTtZQUNqRCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNuRSxDQUFDLENBQUE7UUE0SEQsMEJBQXFCLEdBQUcsQ0FBQyxFQUFVLEVBQW1CLEVBQUU7WUFDdEQsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFBO1FBMEJELHNCQUFpQixHQUFHLENBQUMsRUFBVSxFQUFtQixFQUFFO1lBQ2xELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQTtRQUVELHFCQUFnQixHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUE7SUF2WkQsQ0FBQztJQUdLLFFBQVE7O1lBQ1osSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDNUIsZUFBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLENBQUE7WUFDckYsZUFBZSxDQUFDLGVBQWUsR0FBRztnQkFDaEMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtnQkFDakgsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2FBRTVELENBQUM7WUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN6RCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUM7S0FBQTtJQUVELCtCQUErQjtJQUMvQixjQUFjO1FBQ1osZUFBZTtRQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUE7UUFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQTtRQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ3JGLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtRQUVuQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFBO1FBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLEdBQUcsWUFBWSxDQUFBO1FBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQTtRQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFBO1FBR3BELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyx5QkFBeUIsQ0FBQztRQUNuRixJQUFJLENBQUMscUJBQXFCLENBQUMsNkJBQTZCLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQzNELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBRXpGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsNEJBQTRCLENBQUMsTUFBTTtRQUNqQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsTUFBTSxDQUFDO1FBQzFDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUM7UUFDckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLDRCQUE0QixDQUFDLGlCQUF5QixFQUFFLG9CQUE0QixFQUFFLFdBQVc7UUFDL0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUU5QixJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM1RixJQUFJLFNBQVMsR0FBRyxNQUFhLENBQUM7WUFDOUIsSUFBSSxlQUFlLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUN0QyxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDO1lBRXBDLElBQUksQ0FBQyxZQUFZLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQztZQUNqRCxXQUFXO1lBQ1gsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQzFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQzNDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7WUFFckQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyw4QkFBOEIsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ3hELElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFBO1lBQzVFLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQzNFLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDbkYsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFBO1lBQ3hFLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUE7WUFHOUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztZQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7WUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztZQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQztZQUVyRCxJQUFJLHFCQUFxQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sSUFBSSxDQUFDLEdBQUcsSUFBSSxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFeEosSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksR0FBRywwQkFBMEIsQ0FBQTtZQUMvRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQTtZQUN4RCxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQTtZQUNqRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUNyRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQ3ZELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ2hELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLEdBQUcscUJBQXFCLENBQUM7WUFFcEUsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV2SSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxHQUFHLHFCQUFxQixDQUFBO1lBQ3JELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO1lBQ2hELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFBO1lBQzlDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQTtZQUN4RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUNoRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQ2xELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQzNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7WUFFMUQsSUFBSSxzQkFBc0IsR0FBRyxlQUFlLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxPQUFPLElBQUksQ0FBQyxHQUFHLElBQUksZUFBZSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUUvTSxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUMzRCxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxHQUFHLCtCQUErQixDQUFBO1lBQ3pFLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLEdBQUcsb0JBQW9CLENBQUE7WUFDbEUsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUE7WUFDdkUsSUFBSSxDQUFDLDZCQUE2QixDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDMUQsSUFBSSxDQUFDLDZCQUE2QixDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztZQUM1RCxJQUFJLENBQUMsNkJBQTZCLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsNkJBQTZCLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN0RCxJQUFJLENBQUMsNkJBQTZCLENBQUMsYUFBYSxHQUFHLHNCQUFzQixDQUFDO1lBRzFFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQztZQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDO1lBQ3pELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFBO1lBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUM7WUFFdEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFBO1lBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQTtZQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUMsYUFBYSxDQUFDO1lBQ3hELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUM7WUFHdEQsY0FBYztZQUNkLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDO2dCQUV0RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztnQkFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2dCQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUM7Z0JBRS9DLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztnQkFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLFVBQVUsQ0FBQztnQkFFdkQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksR0FBRyxjQUFjLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLFlBQVksQ0FBQywrQkFBK0IsR0FBRyxJQUFJLENBQUM7Z0JBQ3pELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUM7Z0JBRW5ELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7YUFDaEM7aUJBQ0ksSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2xELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQztnQkFFbkQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksR0FBRyxjQUFjLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDO2dCQUVuRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksR0FBRyxrQkFBa0IsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDNUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQztnQkFFM0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQzthQUU5QjtZQUdELElBQUksSUFBSSxHQUFRLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFckUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXRDLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQW1ERCxzQkFBc0I7SUFDdEIsbUJBQW1CLENBQUMsVUFBaUI7UUFDbkMsSUFBSSxnQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFDakMsSUFBSSxjQUFjLEdBQVcsQ0FBQyxDQUFDO1FBQy9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBRTFDLElBQUksb0JBQW9CLEdBQVUsRUFBRSxDQUFDO1lBRXJDLElBQUksYUFBYSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7WUFDMUMsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hKLGFBQWEsQ0FBQyxJQUFJLEdBQUcsZUFBZSxHQUFHLENBQUMsQ0FBQztZQUN6QyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUMvQixhQUFhLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUNyQyxhQUFhLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztZQUMzQyxhQUFhLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUM7WUFDbEQsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFFakQsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQzlDLElBQUksZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RKLGlCQUFpQixDQUFDLElBQUksR0FBRyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7WUFDakQsaUJBQWlCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUNuQyxpQkFBaUIsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1lBQ3pDLGlCQUFpQixDQUFDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQztZQUNuRCxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUN0RCxpQkFBaUIsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1lBRzFELElBQUkscUJBQXFCLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNqRCxxQkFBcUIsQ0FBQyxJQUFJLEdBQUcsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDO1lBQ3pELHFCQUFxQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdkMscUJBQXFCLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDNUMscUJBQXFCLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFDM0QscUJBQXFCLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUM7WUFFMUQsSUFBSSxzQkFBc0IsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ25ELHNCQUFzQixDQUFDLElBQUksR0FBRyx3QkFBd0IsR0FBRyxDQUFDLENBQUM7WUFDM0Qsc0JBQXNCLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7WUFDN0Qsc0JBQXNCLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUV6QyxJQUFJLDRCQUE0QixHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7WUFDeEQsNEJBQTRCLENBQUMsSUFBSSxHQUFHLDhCQUE4QixHQUFHLENBQUMsQ0FBQztZQUN2RSw0QkFBNEIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQzlDLDRCQUE0QixDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ25ELDRCQUE0QixDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBR25FLG9CQUFvQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztZQUN6SSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUM1QyxjQUFjLElBQUksQ0FBQyxDQUFDO1NBRXJCO1FBQ0QsT0FBTyxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxlQUFlLENBQUMsZ0JBQXFCO1FBQ25DLFFBQVEsQ0FBQztRQUNULElBQUksbUJBQW1CLEdBQVcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JGLElBQUksbUJBQW1CLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN4RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNoRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3RFO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUVuQyxJQUFJLG9CQUFvQixHQUFVLEVBQUUsQ0FBQztRQUVyQyxJQUFJLGFBQWEsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUMvQixhQUFhLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUNyQyxhQUFhLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUM7UUFDbEQsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFFakQsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzlDLGlCQUFpQixDQUFDLElBQUksR0FBRyxtQkFBbUIsR0FBRSxLQUFLLENBQUM7UUFDcEQsaUJBQWlCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUNuQyxpQkFBaUIsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ3pDLGlCQUFpQixDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDO1FBQ3RELGlCQUFpQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7UUFHMUQsSUFBSSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ2pELHFCQUFxQixDQUFDLElBQUksR0FBRyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFDN0QscUJBQXFCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN2QyxxQkFBcUIsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztRQUM1QyxxQkFBcUIsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3pDLHFCQUFxQixDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDO1FBRTFELElBQUksc0JBQXNCLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNuRCxzQkFBc0IsQ0FBQyxJQUFJLEdBQUcsd0JBQXdCLEdBQUcsS0FBSyxDQUFDO1FBRS9ELElBQUksNEJBQTRCLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUN4RCw0QkFBNEIsQ0FBQyxJQUFJLEdBQUcsOEJBQThCLEdBQUcsS0FBSyxDQUFDO1FBQzNFLDRCQUE0QixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDOUMsNEJBQTRCLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFFbkQsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO1FBRXpJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxDQUFDO0lBRTlCLENBQUM7SUFDRCx3QkFBd0I7SUFDeEIsOEJBQThCLENBQUMsaUJBQXlCO1FBQ3RELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxpQkFBaUIsQ0FBQztRQUVqRCxnQ0FBZ0M7UUFDaEMsSUFBSSxVQUFVLEdBQVUsRUFBRSxDQUFDO1FBQzNCLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksd0JBQXdCLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMseUJBQXlCLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBQ2xGLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBa0IsR0FBRyxVQUFVLENBQUM7UUFDL0QsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3BFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDaEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsRCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBS0QsdUJBQXVCO0lBQ3ZCLDBCQUEwQixDQUFDLGlCQUF5QjtRQUNsRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsaUJBQWlCLENBQUM7UUFFL0MsZ0NBQWdDO1FBQ2hDLElBQUksVUFBVSxHQUFVLEVBQUUsQ0FBQztRQUMzQixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLHdCQUF3QixFQUFFLENBQUM7UUFDOUQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUM1RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxDQUFDO1FBQzdELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNsRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1FBQzlFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDN0csSUFBSSxDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUN2SCxJQUFJLENBQUMsdUJBQXVCLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUMsT0FBTyxDQUFDO1FBQ25GLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFDL0QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUN0RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsNEJBQTRCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEQsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQVFELGVBQWU7SUFDZixzQkFBc0IsQ0FBQyxpQkFBeUIsRUFBQyxnQkFBZ0I7UUFDL0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2pGLElBQUksZ0JBQWdCLEdBQUcsTUFBYSxDQUFDO1lBRXJDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7WUFDaEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBRS9DLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWTtJQUNaLFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs7c0hBNWVVLHdCQUF3QjswR0FBeEIsd0JBQXdCLGljQ25CckMsdTFiQTJUQTs0RkR4U2Esd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFdBQVcsRUFBRSxtQ0FBbUM7aUJBQ2pEO2dTQWNtRSxhQUFhO3NCQUE5RSxTQUFTO3VCQUFDLGtDQUFrQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkF5Q0EsOEJBQThCO3NCQUE3RixTQUFTO3VCQUFDLGdDQUFnQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFVQSw0QkFBNEI7c0JBQXpGLFNBQVM7dUJBQUMsOEJBQThCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENoZWNrQm94T3B0aW9ucywgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zLCBDb250cm9sTGF5b3V0LCBEcm9wZG93bk9wdGlvbnMsIEZpbHRlckl0ZW0sIEZpbHRlclR5cGUsIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIFBhZ2luZ0FjdGlvbk1vZGUsIFBhZ2luZ09wdGlvbnMsIFN0eWxlQ29uZmlybWF0aW9uTW9kZSwgVGV4dEJveE9wdGlvbnMsIFRvZ2dsZVNsaWRlT3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgQWN0aXZlRGlyZWN0b3J5U2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9BY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3RpdmVEaXJlY3RvcnlBZGRFZGl0TW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0FETW9kZWxzL0FjdGl2ZURpcmVjdG9yeUFkZEVkaXRNb2RlbCc7XHJcbmltcG9ydCB7IEFETWFwcGluZ01vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9BRE1vZGVscy9BRE1hcHBpbmdNb2RlbCc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlLCBCQlNGVHJhbnNsYXRlU2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scy9saWIvY29udHJvbHMvQ29uZmlybWF0aW9uTW9kYWwvQ29uZmlybWF0aW9uTW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnaW5nQ29tcG9uZW50IH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMvbGliL2NvbnRyb2xzL1BhZ2luZy9QYWdpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgQURUeXBlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL0VudW1zL0FEVHlwZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYWN0aXZlLWRpcmVjdG9yeScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2ZS1kaXJlY3RvcnkuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmVEaXJlY3RvcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vUGFnZSByZXF1aXJlbWVudHNcclxuICBhcGlVcmwgPSBcIi9hcGkvYWRtaW4vQURDb25uZWN0aW9uL1wiO1xyXG4gIHNob3dQYWdlQ29udGVudCA9IGZhbHNlO1xyXG5cclxuICAvL0ZpbHRlciBhbmQgcGFnaW5nIGNvbXBvbmVudHNcclxuICBhY3RpdmVEaXJlY3RvcnlGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc2VhcmNoVGV4dEJveDogVGV4dEJveE9wdGlvbnM7XHJcbiAgdGV4dElucHV0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIGFjdGl2ZURpcmVjdG9yeVBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBjbGllbnRTaWRlUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIGFjdGl2ZURpcmVjdG9yeVBhZ2luZzogUGFnaW5nT3B0aW9ucztcclxuICBpc0ZpbHRlckxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ2FjdGl2ZURpcmVjdG9yeVBhZ2luZ1ZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luZ0VsZW1lbnQ6IFBhZ2luZ0NvbXBvbmVudDxhbnk+O1xyXG5cclxuICAvL1JlcXVpcmVkIGxpc3RzXHJcbiAgcGVybWlzc2lvblNldExpc3Q6IGFueVtdID0gW107XHJcbiAgbGFuZ3VhZ2VzTGlzdDogYW55W10gPSBbXTtcclxuICB3ZWxjb21lTXNnVGVtcExpc3Q6IGFueVtdID0gW107XHJcbiAgbWFwcGluZ1R5cGVzTGlzdDogYW55W10gPSBbXTtcclxuICBtYXBwaW5nUHJvcGVydGllc0xpc3Q6IGFueVtdID0gW107XHJcblxyXG4gIC8vLy9FZGl0IE1vZGVsIENvbnRyb2xzXHJcbiAgLy9TaGFyZWQgY29udHJvbHNcclxuICBlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9uczogRm9ybU9wdGlvbnNcclxuICBlZGl0TmFtZTogVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdEFEVHlwZU5hbWU6IHN0cmluZzsgLy9XaW5kb3dzIG9yIEF6dXJlXHJcbiAgZWRpdEFEVHlwZUlEOiBudW1iZXI7XHJcbiAgZWRpdEluYWN0aXZlOiBUb2dnbGVTbGlkZU9wdGlvbnM7XHJcbiAgZWRpdERhaWx5Sm9iOiBUb2dnbGVTbGlkZU9wdGlvbnM7XHJcbiAgZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgZWRpdExhbmd1YWdlT3B0aW9uczogRHJvcGRvd25PcHRpb25zO1xyXG4gIGVkaXRXZWxjb21lTXNnVGVtcGxhdGVPcHRpb25zOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgZWRpdE1hcHBpbmdzT3B0aW9uczogYW55W10gPSBbXTtcclxuICBlZGl0TWFwcGluZ3NDb3VudDogbnVtYmVyO1xyXG4gIGFjdGl2ZURpcmVjdG9yeUlkOiBudW1iZXI7XHJcbiAgLy9XaW5kb3dzIE1vZGVcclxuICBlZGl0RG9tYWluOiBUZXh0Qm94T3B0aW9ucztcclxuICBlZGl0U2FtQWNjb3VudDogVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdElkZW50aWZpZXI6IHN0cmluZztcclxuICBlZGl0V2luZG93c1R5cGVOYW1lOiBzdHJpbmc7XHJcbiAgZWRpdFBhc3N3b3JkOiBUZXh0Qm94T3B0aW9ucztcclxuICBzaG93V2luZG93c0NvbnRyb2w6IGJvb2xlYW47XHJcbiAgLy9BenVyZSBNb2RlXHJcbiAgZWRpdFRlbmFudElEOiBUZXh0Qm94T3B0aW9ucztcclxuICBlZGl0Q2xpZW50SUQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIGVkaXRDbGllbnRTZWNyZXQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIHNob3dBenVyZUNvbnRyb2w6IGJvb2xlYW47XHJcblxyXG4gIC8vZGVsZXRlICBNb2RlbCBDb250cm9sc1xyXG4gIGRlbGV0ZUFjdGl2ZURpcmVjdG9yeUlkOiBzdHJpbmc7XHJcbiAgZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9uczogQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zO1xyXG4gIGRlbGV0ZUNvbnRyb2xMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdkZWxldGVDb25maXJtYXRpb25Nb2RhbENvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudDtcclxuXHJcbiAgLy9MYXN0IHJ1biBsb2dzXHJcbiAgYWRDb25uZWN0aW9uTmFtZTogc3RyaW5nO1xyXG4gIGxhc3RSdW5Mb2dzOiBzdHJpbmc7XHJcblxyXG4gIC8vU3luY2hyb25pemF0aW9uIG1vZGFsXHJcbiAgc3luY0FjdGl2ZURpcmVjdG9yeUlkOiBzdHJpbmc7XHJcbiAgc3luY0NvbmZpcm1hdGlvbk9wdGlvbnM6IENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucztcclxuICBzeW5jQ29udHJvbExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ3N5bmNDb25maXJtYXRpb25Nb2RhbENvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgc3luY0NvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIHBhZ2VJbmZvU2VydmljZTogUGFnZUluZm9TZXJ2aWNlLCBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBiYnNmVHJhbnNsYXRlU2VydmljZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgYWN0aXZlRGlyZWN0b3J5U2VydmljZTogQWN0aXZlRGlyZWN0b3J5U2VydmljZSxcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZSkge1xyXG4gIH1cclxuXHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5zaG93UGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGl2ZURpcmVjdG9yaWVzXCIpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfVxyXG5cclxuICAgIF07XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVUaXRsZSgpO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuICAgIHRoaXMuYmJzZlRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5zaG93UGFnZUNvbnRlbnQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfSlcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuICB9XHJcblxyXG4gIC8vaW5pdGlhbGl6ZSBmaWx0ZXJzIGFuZCBwYWdpbmdcclxuICBpbml0aWFsaXplUGFnZSgpIHtcclxuICAgIC8vIFRleHRCb3ggaW5pdFxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guTmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guVHlwZSA9IElucHV0VHlwZS5UZXh0XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guUGxhY2Vob2xkZXIgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTZWFyY2hCeU5hbWVcIilcclxuICAgIHRoaXMuc2VhcmNoVGV4dEJveC5IaWRlTGFiZWwgPSB0cnVlXHJcblxyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gXCJzZWFyY2hUZXh0Qm94XCJcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcInNlYXJjaFRleHRcIlxyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3hcclxuXHJcblxyXG4gICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlQYWdpbmcgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlQYWdpbmcuQWN0aW9uUG9zdFVSTCA9IHRoaXMuYXBpVXJsICsgJ0dldEFEQ29ubmVjdGlvbkJ5RmlsdGVyJztcclxuICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5UGFnaW5nLk9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzID0gW1wic2VhcmNoVGV4dEJveFwiXTtcclxuICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5UGFnaW5nLkZpbHRlcnMgPSBbdGhpcy50ZXh0SW5wdXRGaWx0ZXJdXHJcbiAgICB0aGlzLmFjdGl2ZURpcmVjdG9yeVBhZ2luZy5WYWxpZGF0aW9uVG9rZW4gPSB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhvcml6YXRpb25IZWFkZXJWYWx1ZSgpO1xyXG5cclxuICAgIHRoaXMuaXNGaWx0ZXJMb2FkZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9QYWdpbmcgZnVuY3Rpb25zXHJcbiAgc2V0QWN0aXZlRGlyZWN0b3J5TGlzdFJlc3VsdChyZXN1bHQpIHtcclxuICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5UGFnaW5nUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5jbGllbnRTaWRlUGFnaW5nUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5zaG93UGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpXHJcbiAgfVxyXG5cclxuICAvL0VkaXQgQWN0aXZlRGlyZWN0b3J5XHJcbiAgc2hvd0VkaXRBY3RpdmVEaXJlY3RvcnlNb2RhbChhY3RpdmVEaXJlY3RvcnlJRDogbnVtYmVyLCBhY3RpdmVEaXJlY3RvcnlJREVuYzogc3RyaW5nLCBlZGl0QURNb2RhbCkge1xyXG4gICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlJZCA9IGFjdGl2ZURpcmVjdG9yeUlEO1xyXG4gICAgdGhpcy5zaG93V2luZG93c0NvbnRyb2wgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0F6dXJlQ29udHJvbCA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5U2VydmljZS5nZXRFZGl0QWN0aXZlRGlyZWN0b3J5KGFjdGl2ZURpcmVjdG9yeUlERW5jKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBsZXQgcmVzdWx0T2JqID0gcmVzdWx0IGFzIGFueTtcclxuICAgICAgbGV0IGFjdGl2ZURpcmVjdG9yeSA9IHJlc3VsdE9iai5tb2RlbDtcclxuICAgICAgbGV0IGxpc3RzID0gcmVzdWx0T2JqLmRyb3Bkb3duc0RhdGE7XHJcblxyXG4gICAgICB0aGlzLmVkaXRBRFR5cGVJRCA9IGFjdGl2ZURpcmVjdG9yeS5hZFR5cGVJdGVtSUQ7XHJcbiAgICAgIC8vTG9hZCBpc3RzXHJcbiAgICAgIHRoaXMucGVybWlzc2lvblNldExpc3QgPSBsaXN0cy5wZXJtaXNzaW9uU2V0cztcclxuICAgICAgdGhpcy5sYW5ndWFnZXNMaXN0ID0gbGlzdHMubGFuZ3VhZ2VzO1xyXG4gICAgICB0aGlzLndlbGNvbWVNc2dUZW1wTGlzdCA9IGxpc3RzLnRlbXBsYXRlcztcclxuICAgICAgdGhpcy5tYXBwaW5nVHlwZXNMaXN0ID0gbGlzdHMubWFwcGluZ1R5cGVzO1xyXG4gICAgICB0aGlzLm1hcHBpbmdQcm9wZXJ0aWVzTGlzdCA9IGxpc3RzLm1hcHBpbmdQcm9wZXJ0aWVzO1xyXG5cclxuICAgICAgdGhpcy5lZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgICB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9ucy5Gb3JtR3JvdXAgPSB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXHJcbiAgICAgIHRoaXMuZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEVkaXRBRE1vZGVsO1xyXG4gICAgICB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEVkaXRBREZ1bmN0aW9uO1xyXG4gICAgICB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnRcclxuICAgICAgdGhpcy5lZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybU9wdGlvbnMuUGFnaW5nQWN0aW9uTW9kZSA9IFBhZ2luZ0FjdGlvbk1vZGUuVXBkYXRlXHJcblxyXG5cclxuICAgICAgdGhpcy5lZGl0TmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXROYW1lLk5hbWUgPSBcImVkaXROYW1lXCI7ICAgXHJcbiAgICAgIHRoaXMuZWRpdE5hbWUuTGFiZWxLZXkgPSBcIk5hbWVcIjtcclxuICAgICAgdGhpcy5lZGl0TmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIHRoaXMuZWRpdE5hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdE5hbWUuVmFsdWUgPSBhY3RpdmVEaXJlY3RvcnkuY29ubmVjdGlvbk5hbWU7XHJcblxyXG4gICAgICBsZXQgc2VsZWN0ZWRQZXJtaXNzaW9uU2V0ID0gdGhpcy5wZXJtaXNzaW9uU2V0TGlzdC5maWx0ZXIoKGl0ZW0pID0+IHsgcmV0dXJuIGl0ZW0ua2V5ID09IGFjdGl2ZURpcmVjdG9yeS5wZXJtaXNzaW9uU2V0SUQ7IH0pLm1hcCgoaXRlbSkgPT4gaXRlbS5rZXkpWzBdO1xyXG5cclxuICAgICAgdGhpcy5lZGl0UGVybWlzc2lvblNldE9wdGlvbnMgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zLk5hbWUgPSBcImVkaXRQZXJtaXNzaW9uU2V0T3B0aW9uc1wiXHJcbiAgICAgIHRoaXMuZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zLkxhYmVsS2V5ID0gXCJQZXJtaXNzaW9uU2V0XCJcclxuICAgICAgdGhpcy5lZGl0UGVybWlzc2lvblNldE9wdGlvbnMuRGF0YVNvdXJjZSA9IHRoaXMucGVybWlzc2lvblNldExpc3RcclxuICAgICAgdGhpcy5lZGl0UGVybWlzc2lvblNldE9wdGlvbnMuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0UGVybWlzc2lvblNldE9wdGlvbnMuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRQZXJtaXNzaW9uU2V0T3B0aW9ucy5QbGFjZWhvbGRlciA9IFwiXCI7XHJcbiAgICAgIHRoaXMuZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRQZXJtaXNzaW9uU2V0T3B0aW9ucy5TZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRQZXJtaXNzaW9uU2V0O1xyXG5cclxuICAgICAgbGV0IHNlbGVjdGVkTGFuZ3VhZ2UgPSB0aGlzLmxhbmd1YWdlc0xpc3QuZmlsdGVyKChpdGVtKSA9PiB7IHJldHVybiBpdGVtLmtleSA9PSBhY3RpdmVEaXJlY3RvcnkubGFuZ0tleTsgfSkubWFwKChpdGVtKSA9PiBpdGVtLmtleSlbMF07XHJcblxyXG4gICAgICB0aGlzLmVkaXRMYW5ndWFnZU9wdGlvbnMgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdExhbmd1YWdlT3B0aW9ucy5OYW1lID0gXCJlZGl0TGFuZ3VhZ2VPcHRpb25zXCJcclxuICAgICAgdGhpcy5lZGl0TGFuZ3VhZ2VPcHRpb25zLkxhYmVsVmFsdWUgPSBcIkxhbmd1YWdlXCJcclxuICAgICAgdGhpcy5lZGl0TGFuZ3VhZ2VPcHRpb25zLkxhYmVsS2V5ID0gXCJMYW5ndWFnZVwiXHJcbiAgICAgIHRoaXMuZWRpdExhbmd1YWdlT3B0aW9ucy5EYXRhU291cmNlID0gdGhpcy5sYW5ndWFnZXNMaXN0XHJcbiAgICAgIHRoaXMuZWRpdExhbmd1YWdlT3B0aW9ucy5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRMYW5ndWFnZU9wdGlvbnMuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRMYW5ndWFnZU9wdGlvbnMuUGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gICAgICB0aGlzLmVkaXRMYW5ndWFnZU9wdGlvbnMuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdExhbmd1YWdlT3B0aW9ucy5TZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRMYW5ndWFnZTtcclxuXHJcbiAgICAgIGxldCBzZWxlY3RlZFdlbGNvbWVNc2dUZW1wID0gYWN0aXZlRGlyZWN0b3J5LndlbGNvbWVUZW1wbGF0ZUlEICE9IG51bGwgPyB0aGlzLndlbGNvbWVNc2dUZW1wTGlzdC5maWx0ZXIoKGl0ZW0pID0+IHsgcmV0dXJuIGl0ZW0ua2V5ID09IGFjdGl2ZURpcmVjdG9yeS53ZWxjb21lVGVtcGxhdGVJRDsgfSkubWFwKChpdGVtKSA9PiBpdGVtLmtleSlbMF0gOiBudWxsO1xyXG5cclxuICAgICAgdGhpcy5lZGl0V2VsY29tZU1zZ1RlbXBsYXRlT3B0aW9ucyA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0V2VsY29tZU1zZ1RlbXBsYXRlT3B0aW9ucy5OYW1lID0gXCJlZGl0V2VsY29tZU1zZ1RlbXBsYXRlT3B0aW9uc1wiXHJcbiAgICAgIHRoaXMuZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnMuTGFiZWxLZXkgPSBcIldlbGNvbWVNc2dUZW1wbGF0ZVwiXHJcbiAgICAgIHRoaXMuZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnMuRGF0YVNvdXJjZSA9IHRoaXMud2VsY29tZU1zZ1RlbXBMaXN0XHJcbiAgICAgIHRoaXMuZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnMuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0V2VsY29tZU1zZ1RlbXBsYXRlT3B0aW9ucy5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnMuUGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gICAgICB0aGlzLmVkaXRXZWxjb21lTXNnVGVtcGxhdGVPcHRpb25zLklzUmVxdWlyZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5lZGl0V2VsY29tZU1zZ1RlbXBsYXRlT3B0aW9ucy5TZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRXZWxjb21lTXNnVGVtcDtcclxuXHJcblxyXG4gICAgICB0aGlzLmVkaXRJbmFjdGl2ZSA9IG5ldyBUb2dnbGVTbGlkZU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0SW5hY3RpdmUuTmFtZSA9IFwiZWRpdEluYWN0aXZlXCI7XHJcbiAgICAgIHRoaXMuZWRpdEluYWN0aXZlLlZhbHVlID0gYWN0aXZlRGlyZWN0b3J5Lm1hcmtBc0luYWN0aXZlO1xyXG4gICAgICB0aGlzLmVkaXRJbmFjdGl2ZS5MYWJlbEtleSA9IFwiTWFya0FzSW5hY3RpdmVcIlxyXG4gICAgICB0aGlzLmVkaXRJbmFjdGl2ZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuXHJcbiAgICAgIHRoaXMuZWRpdERhaWx5Sm9iID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXREYWlseUpvYi5OYW1lID0gXCJlZGl0RGFpbHlKb2JcIlxyXG4gICAgICB0aGlzLmVkaXREYWlseUpvYi5MYWJlbEtleSA9IFwiQWRkVG9EYWlseUpvYlwiXHJcbiAgICAgIHRoaXMuZWRpdERhaWx5Sm9iLlZhbHVlID0gYWN0aXZlRGlyZWN0b3J5LmFkZFRvRGFpbHlKb2I7XHJcbiAgICAgIHRoaXMuZWRpdERhaWx5Sm9iLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5Ib3Jpem9udGFsO1xyXG5cclxuXHJcbiAgICAgIC8vV2luZG93cyBtb2RlXHJcbiAgICAgIGlmICh0aGlzLmVkaXRBRFR5cGVJRCA9PSBOdW1iZXIoQURUeXBlLldpbmRvd3MpKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0SWRlbnRpZmllciA9IGFjdGl2ZURpcmVjdG9yeS5pZGVudGlmaWVyO1xyXG4gICAgICAgIHRoaXMuZWRpdFdpbmRvd3NUeXBlTmFtZSA9IGFjdGl2ZURpcmVjdG9yeS5hZFR5cGVOYW1lO1xyXG5cclxuICAgICAgICB0aGlzLmVkaXREb21haW4gPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLmVkaXREb21haW4uTmFtZSA9IFwiZWRpdERvbWFpblwiOyAgIFxyXG4gICAgICAgIHRoaXMuZWRpdERvbWFpbi5MYWJlbEtleSA9IFwiRG9tYWluXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0RG9tYWluLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgICB0aGlzLmVkaXREb21haW4uSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5lZGl0RG9tYWluLlZhbHVlID0gYWN0aXZlRGlyZWN0b3J5LmRvbWFpbjtcclxuXHJcbiAgICAgICAgdGhpcy5lZGl0U2FtQWNjb3VudCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZWRpdFNhbUFjY291bnQuTmFtZSA9IFwiZWRpdFNhbUFjY291bnRcIjsgICBcclxuICAgICAgICB0aGlzLmVkaXRTYW1BY2NvdW50LkxhYmVsS2V5ID0gXCJTYW1BY2NvdW50XCI7XHJcbiAgICAgICAgdGhpcy5lZGl0U2FtQWNjb3VudC5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgdGhpcy5lZGl0U2FtQWNjb3VudC5WYWx1ZSA9IGFjdGl2ZURpcmVjdG9yeS5zYW1BY2NvdW50O1xyXG5cclxuICAgICAgICB0aGlzLmVkaXRQYXNzd29yZCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZWRpdFBhc3N3b3JkLk5hbWUgPSBcImVkaXRQYXNzd29yZFwiOyAgIFxyXG4gICAgICAgIHRoaXMuZWRpdFBhc3N3b3JkLkxhYmVsS2V5ID0gXCJQYXNzd29yZFwiO1xyXG4gICAgICAgIHRoaXMuZWRpdFBhc3N3b3JkLlR5cGUgPSBJbnB1dFR5cGUuUGFzc3dvcmQ7XHJcbiAgICAgICAgdGhpcy5lZGl0UGFzc3dvcmQuUmVtb3ZlRGVmYXVsdFBhc3N3b3JkVmFsaWRhdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5lZGl0UGFzc3dvcmQuVmFsdWUgPSBhY3RpdmVEaXJlY3RvcnkucGFzc3dvcmQ7XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd1dpbmRvd3NDb250cm9sID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh0aGlzLmVkaXRBRFR5cGVJRCA9PSBOdW1iZXIoQURUeXBlLkF6dXJlKSkge1xyXG4gICAgICAgIHRoaXMuZWRpdFRlbmFudElEID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5lZGl0VGVuYW50SUQuTmFtZSA9IFwiZWRpdFRlbmFudElEXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0VGVuYW50SUQuTGFiZWxLZXkgPSBcIlRlbmFudElEXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0VGVuYW50SUQuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgIHRoaXMuZWRpdFRlbmFudElELklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZWRpdFRlbmFudElELlZhbHVlID0gYWN0aXZlRGlyZWN0b3J5LnRlbmFudElEO1xyXG5cclxuICAgICAgICB0aGlzLmVkaXRDbGllbnRJRCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudElELk5hbWUgPSBcImVkaXRDbGllbnRJRFwiO1xyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudElELkxhYmVsS2V5ID0gXCJDbGllbnRJRFwiO1xyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudElELlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgICB0aGlzLmVkaXRDbGllbnRJRC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmVkaXRDbGllbnRJRC5WYWx1ZSA9IGFjdGl2ZURpcmVjdG9yeS5jbGllbnRJRDtcclxuXHJcbiAgICAgICAgdGhpcy5lZGl0Q2xpZW50U2VjcmV0ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5lZGl0Q2xpZW50U2VjcmV0Lk5hbWUgPSBcImVkaXRDbGllbnRTZWNyZXRcIjtcclxuICAgICAgICB0aGlzLmVkaXRDbGllbnRTZWNyZXQuTGFiZWxLZXkgPSBcIkNsaWVudFNlY3JldFwiO1xyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudFNlY3JldC5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgdGhpcy5lZGl0Q2xpZW50U2VjcmV0LklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudFNlY3JldC5WYWx1ZSA9IGFjdGl2ZURpcmVjdG9yeS5jbGllbnRTZWNyZXQ7XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd0F6dXJlQ29udHJvbCA9IHRydWU7XHJcblxyXG4gICAgICB9XHJcblxyXG5cclxuICAgICAgbGV0IGRhdGE6IGFueSA9IHRoaXMuZ2V0QURNYXBwaW5nT3B0aW9ucyhhY3RpdmVEaXJlY3RvcnkuYWRNYXBwaW5ncyk7XHJcblxyXG4gICAgICB0aGlzLmVkaXRNYXBwaW5nc09wdGlvbnMgPSBkYXRhWzBdO1xyXG4gICAgICB0aGlzLmVkaXRNYXBwaW5nc0NvdW50ID0gZGF0YVsxXTtcclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihlZGl0QURNb2RhbCk7XHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldEVkaXRBRE1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgcmVzdWx0TW9kZWwgPSB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtLnZhbHVlO1xyXG4gICAgbGV0IEVkaXRNb2RlbCA9IG5ldyBBY3RpdmVEaXJlY3RvcnlBZGRFZGl0TW9kZWwoKTtcclxuXHJcbiAgICBFZGl0TW9kZWwuSUQgPSBOdW1iZXIodGhpcy5hY3RpdmVEaXJlY3RvcnlJZCk7XHJcbiAgICBFZGl0TW9kZWwuQ29ubmVjdGlvbk5hbWUgPSByZXN1bHRNb2RlbC5lZGl0TmFtZTsgXHJcbiAgICBFZGl0TW9kZWwuUGVybWlzc2lvblNldElEID0gcmVzdWx0TW9kZWwuZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zICE9IG51bGwgPyBOdW1iZXIocmVzdWx0TW9kZWwuZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zKSA6IG51bGxcclxuICAgIEVkaXRNb2RlbC5MYW5nS2V5ID0gcmVzdWx0TW9kZWwuZWRpdExhbmd1YWdlT3B0aW9ucztcclxuICAgIEVkaXRNb2RlbC5XZWxjb21lVGVtcGxhdGVJRCA9IHJlc3VsdE1vZGVsLmVkaXRXZWxjb21lTXNnVGVtcGxhdGVPcHRpb25zICE9IG51bGwgPyBOdW1iZXIocmVzdWx0TW9kZWwuZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnMpIDogbnVsbFxyXG4gICAgRWRpdE1vZGVsLk1hcmtBc0luYWN0aXZlID0gcmVzdWx0TW9kZWwuZWRpdEluYWN0aXZlO1xyXG4gICAgRWRpdE1vZGVsLkFkZFRvRGFpbHlKb2IgPSByZXN1bHRNb2RlbC5lZGl0RGFpbHlKb2I7XHJcblxyXG4gICAgaWYgKHRoaXMuZWRpdEFEVHlwZUlEID09IE51bWJlcihBRFR5cGUuV2luZG93cykpIHtcclxuICAgICAgRWRpdE1vZGVsLkRvbWFpbiA9IHJlc3VsdE1vZGVsLmVkaXREb21haW47XHJcbiAgICAgIEVkaXRNb2RlbC5TYW1BY2NvdW50ID0gcmVzdWx0TW9kZWwuZWRpdFNhbUFjY291bnQ7XHJcbiAgICAgIEVkaXRNb2RlbC5QYXNzd29yZCA9IHJlc3VsdE1vZGVsLmVkaXRQYXNzd29yZDtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuZWRpdEFEVHlwZUlEID09IE51bWJlcihBRFR5cGUuQXp1cmUpKSB7XHJcbiAgICAgIEVkaXRNb2RlbC5UZW5hbnRJRCA9IHJlc3VsdE1vZGVsLmVkaXRUZW5hbnRJRDtcclxuICAgICAgRWRpdE1vZGVsLkNsaWVudElEID0gcmVzdWx0TW9kZWwuZWRpdENsaWVudElEO1xyXG4gICAgICBFZGl0TW9kZWwuQ2xpZW50U2VjcmV0ID0gcmVzdWx0TW9kZWwuZWRpdENsaWVudFNlY3JldDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmVkaXRNYXBwaW5nc0NvdW50OyBqKyspIHtcclxuICAgICAgbGV0IGVkaXRNQXBwaW5nVHlwZSA9IHJlc3VsdE1vZGVsW1wiQURNYXBwaW5nVHlwZVwiICsgal07XHJcbiAgICAgIGlmIChlZGl0TUFwcGluZ1R5cGUgPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICBsZXQgZWRpdE1BcHBpbmdQcm9wZXJ0eSA9IHJlc3VsdE1vZGVsW1wiQURNYXBwaW5nUHJvcGVydHlcIiArIGpdO1xyXG4gICAgICBsZXQgZWRpdE1BcHBpbmdQcm9wZXJ0eU5hbWUgPSByZXN1bHRNb2RlbFtcIkFETWFwcGluZ1Byb3BlcnR5TmFtZVwiICsgal07XHJcbiAgICAgIGxldCBlZGl0TUFwcGluZ0luY2x1ZGVJblVwZGF0ZSA9IHJlc3VsdE1vZGVsW1wiQURNYXBwaW5nSW5jbHVkZVVwZGF0ZVwiICsgal07XHJcbiAgICAgIGxldCBlZGl0TUFwcGluZ0hpZGRlbkluY2x1ZGVJblVwZGF0ZSA9IHJlc3VsdE1vZGVsW1wiQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZVwiICsgal07XHJcblxyXG4gICAgICBsZXQgYWRNQXBwaW5nT2JqOiBBRE1hcHBpbmdNb2RlbCA9IG5ldyBBRE1hcHBpbmdNb2RlbCgpO1xyXG4gICAgICBhZE1BcHBpbmdPYmouQURNYXBwaW5nVHlwZUl0ZW1JRCA9IE51bWJlcihlZGl0TUFwcGluZ1R5cGUpO1xyXG4gICAgICBhZE1BcHBpbmdPYmouQkJTRlByb3BlcnR5TmFtZSA9IGVkaXRNQXBwaW5nUHJvcGVydHk7XHJcbiAgICAgIGFkTUFwcGluZ09iai5BRFByb3BlcnR5TmFtZSA9IGVkaXRNQXBwaW5nUHJvcGVydHlOYW1lO1xyXG4gICAgICBhZE1BcHBpbmdPYmouSW5jbHVkZUluVXBkYXRlID0gZWRpdE1BcHBpbmdJbmNsdWRlSW5VcGRhdGUgPT0gdW5kZWZpbmVkID8gZWRpdE1BcHBpbmdIaWRkZW5JbmNsdWRlSW5VcGRhdGUgOiBlZGl0TUFwcGluZ0luY2x1ZGVJblVwZGF0ZTtcclxuICAgICAgRWRpdE1vZGVsLkFETWFwcGluZ3MucHVzaChhZE1BcHBpbmdPYmopO1xyXG4gICAgfVxyXG4gICAgcGFyYW1BcnJheS5wdXNoKEVkaXRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldEVkaXRBREZ1bmN0aW9uID0gKEVkaXRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLmVkaXRBY3RpdmVEaXJlY3RvcnkoRWRpdE1vZGVsKVxyXG4gIH1cclxuXHJcbiAgLy9BRCBNYXBwaW5nIGZ1bmN0aW9uc1xyXG4gIGdldEFETWFwcGluZ09wdGlvbnMoQURNYXBwaW5nczogYW55W10pIHtcclxuICAgIGxldCBBRE1hcHBpbmdPcHRpb25zOiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IEFETWFwcGluZ0NvdW50OiBudW1iZXIgPSAwO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBBRE1hcHBpbmdzLmxlbmd0aDsgaSsrKSB7XHJcblxyXG4gICAgICBsZXQgb2JqZWN0TWFwcGluZ09wdGlvbnM6IGFueVtdID0gW107XHJcblxyXG4gICAgICBsZXQgQURNYXBwaW5nVHlwZSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgbGV0IHNlbGVjdGVkVHlwZSA9IHRoaXMubWFwcGluZ1R5cGVzTGlzdC5maWx0ZXIoKGl0ZW0pID0+IHsgcmV0dXJuIGl0ZW0ua2V5ID09IEFETWFwcGluZ3NbaV0uYWRNYXBwaW5nVHlwZUl0ZW1JRDsgfSkubWFwKChpdGVtKSA9PiBpdGVtLmtleSlbMF07XHJcbiAgICAgIEFETWFwcGluZ1R5cGUuTmFtZSA9IFwiQURNYXBwaW5nVHlwZVwiICsgaTtcclxuICAgICAgQURNYXBwaW5nVHlwZS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICBBRE1hcHBpbmdUeXBlLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ1R5cGUuU2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkVHlwZTtcclxuICAgICAgQURNYXBwaW5nVHlwZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuICAgICAgQURNYXBwaW5nVHlwZS5EYXRhU291cmNlID0gdGhpcy5tYXBwaW5nVHlwZXNMaXN0O1xyXG5cclxuICAgICAgbGV0IEFETWFwcGluZ1Byb3BlcnR5ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICBsZXQgc2VsZWN0ZWRQcm9wZXJ0eSA9IHRoaXMubWFwcGluZ1Byb3BlcnRpZXNMaXN0LmZpbHRlcigoaXRlbSkgPT4geyByZXR1cm4gaXRlbS5rZXkgPT0gQURNYXBwaW5nc1tpXS5iYnNmUHJvcGVydHlOYW1lOyB9KS5tYXAoKGl0ZW0pID0+IGl0ZW0ua2V5KVswXTtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHkuTmFtZSA9IFwiQURNYXBwaW5nUHJvcGVydHlcIiArIGk7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5LkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5LlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5LlNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZFByb3BlcnR5O1xyXG4gICAgICBBRE1hcHBpbmdQcm9wZXJ0eS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHkuRGF0YVNvdXJjZSA9IHRoaXMubWFwcGluZ1Byb3BlcnRpZXNMaXN0O1xyXG5cclxuXHJcbiAgICAgIGxldCBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLk5hbWUgPSBcIkFETWFwcGluZ1Byb3BlcnR5TmFtZVwiICsgaTtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5WYWx1ZSA9IEFETWFwcGluZ3NbaV0uYWRQcm9wZXJ0eU5hbWU7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuXHJcbiAgICAgIGxldCBBRE1hcHBpbmdJbmNsdWRlVXBkYXRlID0gbmV3IENoZWNrQm94T3B0aW9ucygpO1xyXG4gICAgICBBRE1hcHBpbmdJbmNsdWRlVXBkYXRlLk5hbWUgPSBcIkFETWFwcGluZ0luY2x1ZGVVcGRhdGVcIiArIGk7XHJcbiAgICAgIEFETWFwcGluZ0luY2x1ZGVVcGRhdGUuVmFsdWUgPSBBRE1hcHBpbmdzW2ldLmluY2x1ZGVJblVwZGF0ZTtcclxuICAgICAgQURNYXBwaW5nSW5jbHVkZVVwZGF0ZS5Jc0Rpc2FibGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIGxldCBBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUuTmFtZSA9IFwiQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZVwiICsgaTtcclxuICAgICAgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICBBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZS5WYWx1ZSA9IEFETWFwcGluZ3NbaV0uaW5jbHVkZUluVXBkYXRlO1xyXG5cclxuXHJcbiAgICAgIG9iamVjdE1hcHBpbmdPcHRpb25zLnB1c2goQURNYXBwaW5nVHlwZSwgQURNYXBwaW5nUHJvcGVydHksIEFETWFwcGluZ1Byb3BlcnR5TmFtZSwgQURNYXBwaW5nSW5jbHVkZVVwZGF0ZSwgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZSk7XHJcbiAgICAgIEFETWFwcGluZ09wdGlvbnMucHVzaChvYmplY3RNYXBwaW5nT3B0aW9ucyk7XHJcbiAgICAgIEFETWFwcGluZ0NvdW50ICs9IDE7XHJcblxyXG4gICAgfVxyXG4gICAgcmV0dXJuIFtBRE1hcHBpbmdPcHRpb25zLCBBRE1hcHBpbmdDb3VudF07XHJcbiAgfVxyXG4gIGRlbGV0ZUFETWFwcGluZyhkZWxldGVkQURNQXBwaW5nOiBhbnkpIHtcclxuICAgIGRlYnVnZ2VyO1xyXG4gICAgbGV0IGRlbGV0ZWRNYXBwaW5nSW5kZXg6IG51bWJlciA9IHRoaXMuZWRpdE1hcHBpbmdzT3B0aW9ucy5pbmRleE9mKGRlbGV0ZWRBRE1BcHBpbmcpO1xyXG4gICAgaWYgKGRlbGV0ZWRNYXBwaW5nSW5kZXggIT09IC0xKSB7XHJcbiAgICAgIHRoaXMuZWRpdE1hcHBpbmdzT3B0aW9ucy5zcGxpY2UoZGVsZXRlZE1hcHBpbmdJbmRleCwgMSk7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGVsZXRlZEFETUFwcGluZy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHRoaXMuZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm0ucmVtb3ZlQ29udHJvbChkZWxldGVkQURNQXBwaW5nW2ldLk5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRBRE1hcHBpbmcoKSB7XHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLmVkaXRNYXBwaW5nc0NvdW50O1xyXG5cclxuICAgIGxldCBvYmplY3RNYXBwaW5nT3B0aW9uczogYW55W10gPSBbXTtcclxuXHJcbiAgICBsZXQgQURNYXBwaW5nVHlwZSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgIEFETWFwcGluZ1R5cGUuTmFtZSA9IFwiQURNYXBwaW5nVHlwZVwiICsgaW5kZXg7XHJcbiAgICBBRE1hcHBpbmdUeXBlLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICBBRE1hcHBpbmdUeXBlLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICBBRE1hcHBpbmdUeXBlLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5Ib3Jpem9udGFsO1xyXG4gICAgQURNYXBwaW5nVHlwZS5EYXRhU291cmNlID0gdGhpcy5tYXBwaW5nVHlwZXNMaXN0O1xyXG5cclxuICAgIGxldCBBRE1hcHBpbmdQcm9wZXJ0eSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5Lk5hbWUgPSBcIkFETWFwcGluZ1Byb3BlcnR5XCIgK2luZGV4O1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHkuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5LlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICBBRE1hcHBpbmdQcm9wZXJ0eS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5LkRhdGFTb3VyY2UgPSB0aGlzLm1hcHBpbmdQcm9wZXJ0aWVzTGlzdDtcclxuXHJcblxyXG4gICAgbGV0IEFETWFwcGluZ1Byb3BlcnR5TmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLk5hbWUgPSBcIkFETWFwcGluZ1Byb3BlcnR5TmFtZVwiICsgaW5kZXg7XHJcbiAgICBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUuSXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5Ib3Jpem9udGFsO1xyXG5cclxuICAgIGxldCBBRE1hcHBpbmdJbmNsdWRlVXBkYXRlID0gbmV3IENoZWNrQm94T3B0aW9ucygpO1xyXG4gICAgQURNYXBwaW5nSW5jbHVkZVVwZGF0ZS5OYW1lID0gXCJBRE1hcHBpbmdJbmNsdWRlVXBkYXRlXCIgKyBpbmRleDtcclxuXHJcbiAgICBsZXQgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZS5OYW1lID0gXCJBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlXCIgKyBpbmRleDtcclxuICAgIEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgIEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG5cclxuICAgIG9iamVjdE1hcHBpbmdPcHRpb25zLnB1c2goQURNYXBwaW5nVHlwZSwgQURNYXBwaW5nUHJvcGVydHksIEFETWFwcGluZ1Byb3BlcnR5TmFtZSwgQURNYXBwaW5nSW5jbHVkZVVwZGF0ZSwgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZSk7XHJcblxyXG4gICAgdGhpcy5lZGl0TWFwcGluZ3NPcHRpb25zLnB1c2gob2JqZWN0TWFwcGluZ09wdGlvbnMpO1xyXG4gICAgdGhpcy5lZGl0TWFwcGluZ3NDb3VudCArPSAxO1xyXG5cclxuICB9XHJcbiAgLy9EZWxldGUgQUN0aXZlRGlyZWN0b3J5XHJcbiAgc2hvd0RlbGV0ZUFjdGl2ZURpcmVjdG9yeU1vZGFsKGFjdGl2ZURpcmVjdG9yeUlEOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZGVsZXRlQWN0aXZlRGlyZWN0b3J5SWQgPSBhY3RpdmVEaXJlY3RvcnlJRDtcclxuXHJcbiAgICAvL2FycmF5IHNlbnQgdG8gc2VydmljZSBmdW5jdGlvblxyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBwYXJhbUFycmF5LnB1c2godGhpcy5kZWxldGVBY3RpdmVEaXJlY3RvcnlJZCk7XHJcblxyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zID0gbmV3IENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucygpO1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZGVsZXRlQWN0aXZlRGlyZWN0b3J5O1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zLlNlcnZpY2VTdWJtaXRNb2RlbCA9IHBhcmFtQXJyYXk7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50O1xyXG4gICAgdGhpcy5kZWxldGVDb250cm9sTG9hZGVkID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93TW9kYWwoKTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG4gIGRlbGV0ZUFjdGl2ZURpcmVjdG9yeSA9IChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZURpcmVjdG9yeVNlcnZpY2UuZGVsZXRlQWN0aXZlRGlyZWN0b3J5KGlkKTtcclxuICB9XHJcblxyXG4gIC8vU3luYyBBY3RpdmUgRGlyZWN0b3J5XHJcbiAgc2hvd0FEU3luY2hyb25pemF0aW9uTW9kYWwoYWN0aXZlRGlyZWN0b3J5SUQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5zeW5jQWN0aXZlRGlyZWN0b3J5SWQgPSBhY3RpdmVEaXJlY3RvcnlJRDtcclxuXHJcbiAgICAvL2FycmF5IHNlbnQgdG8gc2VydmljZSBmdW5jdGlvblxyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBwYXJhbUFycmF5LnB1c2godGhpcy5zeW5jQWN0aXZlRGlyZWN0b3J5SWQpO1xyXG5cclxuICAgIHRoaXMuc3luY0NvbmZpcm1hdGlvbk9wdGlvbnMgPSBuZXcgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zKCk7XHJcbiAgICB0aGlzLnN5bmNDb25maXJtYXRpb25PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMucnVuU3luY3Jvbml6YXRpb247XHJcbiAgICB0aGlzLnN5bmNDb25maXJtYXRpb25PcHRpb25zLlNlcnZpY2VTdWJtaXRNb2RlbCA9IHBhcmFtQXJyYXk7XHJcbiAgICB0aGlzLnN5bmNDb25maXJtYXRpb25PcHRpb25zLlBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudDtcclxuICAgIHRoaXMuc3luY0NvbmZpcm1hdGlvbk9wdGlvbnMuUGFnaW5nQWN0aW9uTW9kZSA9IFBhZ2luZ0FjdGlvbk1vZGUuUmVpbml0aWFsaXplO1xyXG4gICAgdGhpcy5zeW5jQ29uZmlybWF0aW9uT3B0aW9ucy5Db25maXJtYXRpb25IZWFkZXIgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJSdW5TeW5jaHJvbml6YXRpb25cIik7XHJcbiAgICB0aGlzLnN5bmNDb25maXJtYXRpb25PcHRpb25zLkNvbmZpcm1hdGlvbkJvZHkgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJSdW5TeW5jaHJvbml6YXRpb25Db25maXJtYXRpb25cIik7XHJcbiAgICB0aGlzLnN5bmNDb25maXJtYXRpb25PcHRpb25zLlN0eWxlQ29uZmlybWF0aW9uTW9kZSA9IFN0eWxlQ29uZmlybWF0aW9uTW9kZS5XYXJuaW5nO1xyXG4gICAgdGhpcy5zeW5jQ29uZmlybWF0aW9uT3B0aW9ucy5TdWJtaXRCdXR0b25UZXh0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiWWVzXCIpO1xyXG4gICAgdGhpcy5zeW5jQ29uZmlybWF0aW9uT3B0aW9ucy5EaXNhYmxlU3VjY2Vzc05vdGlmaWNhdGlvbiA9IHRydWU7XHJcbiAgICB0aGlzLnN5bmNDb25maXJtYXRpb25PcHRpb25zLk9uU3VjY2Vzc0hhbmRsZXIgPSB0aGlzLnJ1blN5bmNPblN1Y2Nlc3M7XHJcbiAgICB0aGlzLnN5bmNDb250cm9sTG9hZGVkID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnN5bmNDb25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd01vZGFsKCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuICBydW5TeW5jcm9uaXphdGlvbiA9IChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZURpcmVjdG9yeVNlcnZpY2UucnVuQURTeW5jaHJvbml6YXRpb24oaWQpO1xyXG4gIH1cclxuXHJcbiAgcnVuU3luY09uU3VjY2VzcyA9IChyZXN1bHQpID0+IHtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICB9XHJcbiAgLy9MYXN0IHJ1biBsb2dzXHJcbiAgc2hvd0FETGFzdFJ1bkxvZ3NNb2RhbChhY3RpdmVEaXJlY3RvcnlJRDogc3RyaW5nLGxhc3RSdW5Mb2dzTW9kYWwpIHtcclxuICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5U2VydmljZS5nZXRMYXN0UnVuTG9ncyhhY3RpdmVEaXJlY3RvcnlJRCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgbGV0IGxhc3RSdW5Mb2dzTW9kZWwgPSByZXN1bHQgYXMgYW55O1xyXG5cclxuICAgICAgdGhpcy5hZENvbm5lY3Rpb25OYW1lID0gbGFzdFJ1bkxvZ3NNb2RlbC5tb2RlbC5hZENvbm5lY3Rpb25OYW1lO1xyXG4gICAgICB0aGlzLmxhc3RSdW5Mb2dzID0gbGFzdFJ1bkxvZ3NNb2RlbC5tb2RlbC5sb2dzO1xyXG5cclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihsYXN0UnVuTG9nc01vZGFsKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy9PbiBkZXN0cm95XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5kZXN0cm95SGFuZGxlcigpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGJsb2NrLXVpPjwvYmxvY2stdWk+XHJcblxyXG48IS0tIFBhZ2UgQ29udGVudCAtLT5cclxuPGRpdiAqbmdJZj1cInNob3dQYWdlQ29udGVudFwiIGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgPCEtLSBiZWdpbjo6SGVhZGVyIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBwdC01XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCIgKm5nSWY9XCJpc0ZpbHRlckxvYWRlZFwiPlxyXG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiYWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJzZWFyY2hUZXh0Qm94XCIgW2dyb3VwXT1cImFjdGl2ZURpcmVjdG9yeUZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5XCIgdGl0bGU9J3t7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZFwiKX19JyBbcm91dGVyTGlua109XCJbJy9BZG1pbi9BRENvbm5lY3Rpb24vQWRkJ11cIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXMgbWUtMVwiPjwvaT5cclxuICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZFwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB5LTNcIj5cclxuICAgICAgPCEtLWJlZ2luOjpBY3RpdmVEaXJlY3RvcnkgbGlzdC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGFsaWduLW1pZGRsZSB0YWJsZS1yb3ctZGFzaGVkIGZzLTYgZ3ktNSBkYXRhVGFibGUgbm8tZm9vdGVyXCI+XHJcbiAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJOYW1lXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiVHlwZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBlcm1pc3Npb25TZXRcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBZENvbm5lY3Rpb25SdW5uaW5nTm93XCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3Rpb25zXCIpfX08L3RoPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgIDx0Ym9keSBpZD1cImxpc3RpbmdDb250YWluZXJcIiBjbGFzcz1cImZ3LWJvbGQgdGV4dC1ncmF5LTYwMCBib3JkZXItMFwiPlxyXG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGFjdGl2ZURpcmVjdG9yeSBvZiBjbGllbnRTaWRlUGFnaW5nUmVzdWx0XCI+XHJcblxyXG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRleHQtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAge3thY3RpdmVEaXJlY3RvcnkubmFtZX19XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICB7e2FjdGl2ZURpcmVjdG9yeS5hZFR5cGVOYW1lfX1cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIHt7YWN0aXZlRGlyZWN0b3J5LnBlcm1pc3Npb25TZXROYW1lfX1cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2Vzc1wiICpuZ0lmPVwiYWN0aXZlRGlyZWN0b3J5LmlzUnVubmluZ05vdztlbHNlIG5vdF9SdW5uaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlllc1wiKX19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdF9SdW5uaW5nPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk5vXCIpfX1cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tbGlnaHQgYnRuLWFjdGl2ZS1saWdodC1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lbGxpcHNpcy1oXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZHJvcC1pdGVtIHB4LTNcIiBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0VkaXRBY3RpdmVEaXJlY3RvcnlNb2RhbChhY3RpdmVEaXJlY3RvcnkuaWQsYWN0aXZlRGlyZWN0b3J5LmlkRW5jcnlwdGVkLGVkaXRBY3RpdmVEaXJlY3RvcnlNb2RhbClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1saW5rIHB4LTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0RlbGV0ZUFjdGl2ZURpcmVjdG9yeU1vZGFsKGFjdGl2ZURpcmVjdG9yeS5pZEVuY3J5cHRlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1saW5rIHB4LTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVcIil9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgbmdiRHJvcGRvd25JdGVtIGNsYXNzPVwiZHJvcC1pdGVtIHB4LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93QURTeW5jaHJvbml6YXRpb25Nb2RhbChhY3RpdmVEaXJlY3RvcnkuaWRFbmNyeXB0ZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3AtbGluayBweC0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWN0aXZlRGlyZWN0b3J5UnVuU3luY3Jvbml6YXRpb25cIil9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgbmdiRHJvcGRvd25JdGVtIGNsYXNzPVwiZHJvcC1pdGVtIHB4LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93QURMYXN0UnVuTG9nc01vZGFsKGFjdGl2ZURpcmVjdG9yeS5pZEVuY3J5cHRlZCxsYXN0UnVuTG9nc01vZGFsKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGl2ZURpcmVjdG9yeUxhc3RSdW5Mb2dzXCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPHRyICpuZ0lmPVwiY2xpZW50U2lkZVBhZ2luZ1Jlc3VsdC5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiNVwiPlxyXG4gICAgICAgICAgICAgICAgPGxpYi1lbXB0eS1kYXRhPjwvbGliLWVtcHR5LWRhdGE+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDwhLS1lbmQ6OkFjdGl2ZSBkaXJlY3RvcnkgbGlzdC0tPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTBcIj5cclxuICAgICAgPEJCU0YtUGFnaW5nIChJdGVtcyk9XCJzZXRBY3RpdmVEaXJlY3RvcnlMaXN0UmVzdWx0KCRldmVudClcIiAqbmdJZj1cImlzRmlsdGVyTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImFjdGl2ZURpcmVjdG9yeVBhZ2luZ1wiIFtncm91cF09XCJhY3RpdmVEaXJlY3RvcnlGb3JtXCIgI2FjdGl2ZURpcmVjdG9yeVBhZ2luZ1ZpZXdFbGVtZW50PlxyXG4gICAgICA8L0JCU0YtUGFnaW5nPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuXHJcbjwhLS0gRWRpdCBNb2RhbCAtLT5cclxuPG5nLXRlbXBsYXRlICNlZGl0QWN0aXZlRGlyZWN0b3J5TW9kYWwgbGV0LW1vZGFsPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGgxIGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVkaXRcIil9fSB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3RpdmVEaXJlY3RvcnlcIil9fVxyXG4gICAgICA8L2gxPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9uc1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImVkaXROYW1lXCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJlZGl0UGVybWlzc2lvblNldE9wdGlvbnNcIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiZWRpdExhbmd1YWdlT3B0aW9uc1wiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJlZGl0V2VsY29tZU1zZ1RlbXBsYXRlT3B0aW9uc1wiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICA8aDY+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFEVHlwZVwiKX19XHJcbiAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgPGxhYmVsPlxyXG4gICAgICAgICAgICB7e2VkaXRBRFR5cGVOYW1lfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd1dpbmRvd3NDb250cm9sXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxoNj5cclxuICAgICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJJZGVudGlmaWVyXCIpfX1cclxuICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgPGxhYmVsPlxyXG4gICAgICAgICAgICAgIHt7ZWRpdElkZW50aWZpZXJ9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGg2PlxyXG4gICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlR5cGVcIil9fVxyXG4gICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICA8bGFiZWw+XHJcbiAgICAgICAgICAgICAge3tlZGl0V2luZG93c1R5cGVOYW1lfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlZGl0RG9tYWluXCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZWRpdFNhbUFjY291bnRcIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImVkaXRQYXNzd29yZFwiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cInNob3dBenVyZUNvbnRyb2xcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZWRpdFRlbmFudElEXCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImVkaXRDbGllbnRJRFwiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlZGl0Q2xpZW50U2VjcmV0XCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgIDxCQlNGLVRvZ2dsZXNsaWRlIFtvcHRpb25zXT1cImVkaXRJbmFjdGl2ZVwiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLVRvZ2dsZXNsaWRlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgPEJCU0YtVG9nZ2xlc2xpZGUgW29wdGlvbnNdPVwiZWRpdERhaWx5Sm9iXCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICA8L0JCU0YtVG9nZ2xlc2xpZGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYW1zeC10YWJsZS11c2Vyc1wiPlxyXG4gICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgPHRoPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlR5cGVcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlByb3BlcnR5XCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3RpdmVEaXJlY3RvcnlfUHJvcGVydHlcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkluY2x1ZGVJblVwZGF0ZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICA8dGg+PC90aD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGVkaXRNYXBwaW5nc09wdGlvbnM7bGV0IGk9aW5kZXg7XCI+XHJcblxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJvcHRpb25bMF1cIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwib3B0aW9uWzFdXCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJvcHRpb25bMl1cIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtQ2hlY2tCb3ggW29wdGlvbnNdPVwib3B0aW9uWzNdXCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8L0JCU0YtQ2hlY2tCb3g+XHJcbiAgICAgICAgICAgICAgICA8IS0tSGlkZGVuIGluY2x1ZGUgaW4gdXBkYXRlIHZhbHVlLS0+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIm9wdGlvbls0XVwiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiIFtoaWRkZW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuXHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidGV4dC1jZW50ZXIgYWxpZ24tbWlkZGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImt0LW5hdl9fbGlua1wiIChjbGljayk9XCJkZWxldGVBRE1hcHBpbmcob3B0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImt0LW5hdl9fbGluay1pY29uIGZhIGZhLXRyYXNoIGhpZGRlblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCI1XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInctMTAwIGJ0biBidG4tc3VjY2Vzc1wiIChjbGljayk9XCJhZGRBRE1hcHBpbmcoKVwiPlxyXG4gICAgICAgICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBZGROZXdSZWNvcmRcIil9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgIDxidXR0b24gI0Nsb3NlRWRpdEFETW9kYWwgaWQ9XCJDbG9zZUVkaXRBRE1vZGFsXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIj5cclxuICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTYXZlTGFiZWxcIil9fTwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvQkJTRi1Gb3JtPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSBEZWxldGUgIE1vZGFsIC0tPlxyXG48QkJTRi1Db25maXJtYXRpb25Nb2RhbCAqbmdJZj1cImRlbGV0ZUNvbnRyb2xMb2FkZWRcIiBbb3B0aW9uc109XCJkZWxldGVDb25maXJtYXRpb25PcHRpb25zXCIgaWQ9XCJkZWxldGVDb25maXJtYXRpb25Nb2RhbENvbnRyb2xcIiAjZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sPjwvQkJTRi1Db25maXJtYXRpb25Nb2RhbD5cclxuXHJcbjwhLS0gU3luY2hyb25pemF0aW9uICBNb2RhbCAtLT5cclxuPEJCU0YtQ29uZmlybWF0aW9uTW9kYWwgKm5nSWY9XCJzeW5jQ29udHJvbExvYWRlZFwiIFtvcHRpb25zXT1cInN5bmNDb25maXJtYXRpb25PcHRpb25zXCIgaWQ9XCJzeW5jQ29uZmlybWF0aW9uTW9kYWxDb250cm9sXCIgI3N5bmNDb25maXJtYXRpb25Nb2RhbENvbnRyb2w+PC9CQlNGLUNvbmZpcm1hdGlvbk1vZGFsPlxyXG5cclxuPCEtLSBWaWV3IExhc3QgUnVuIExvZ3MgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjbGFzdFJ1bkxvZ3NNb2RhbCBsZXQtbW9kYWw+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHB4LTEwIHB4LWxnLTE1IHB0LTAgcGItMTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWN0aXZlRGlyZWN0b3J5TGFzdFJ1bkxvZ3NcIil9fSA6IHt7YWRDb25uZWN0aW9uTmFtZX19PC9oMT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxwPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk5hbWVcIil9fSA6IHt7YWRDb25uZWN0aW9uTmFtZX19PC9wPlxyXG4gICAgICAgICAgPHByZSBjbGFzcz1cImNvbC1tZC0xMlwiPnt7bGFzdFJ1bkxvZ3N9fTwvcHJlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICA8YnV0dG9uICNDbG9zZURlZmF1bHRQcm92aWRlck1vZGFsIGlkPVwiQ2xvc2VEZWZhdWx0UHJvdmlkZXJNb2RhbFwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbSBtZS0zIFwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2xvc2VcIil9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG4iXX0=
419
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL0FjdGl2ZURpcmVjdG9yaWVzL2FjdGl2ZS1kaXJlY3RvcnkvYWN0aXZlLWRpcmVjdG9yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL0FjdGl2ZURpcmVjdG9yaWVzL2FjdGl2ZS1kaXJlY3RvcnkvYWN0aXZlLWRpcmVjdG9yeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhRLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFNckYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQU9uRCxNQUFNLE9BQU8sd0JBQXdCO0lBa0VuQyxZQUFvQixXQUF3QixFQUFVLGVBQWdDLEVBQVMsY0FBOEIsRUFDbkgsb0JBQTBDLEVBQVUsc0JB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LENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWTtJQUNaLFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs7c0hBM2VVLHdCQUF3QjswR0FBeEIsd0JBQXdCLGljQ25CckMsdTFiQTJUQTs0RkR4U2Esd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFdBQVcsRUFBRSxtQ0FBbUM7aUJBQ2pEO2dTQWNtRSxhQUFhO3NCQUE5RSxTQUFTO3VCQUFDLGtDQUFrQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkF5Q0EsOEJBQThCO3NCQUE3RixTQUFTO3VCQUFDLGdDQUFnQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFVQSw0QkFBNEI7c0JBQXpGLFNBQVM7dUJBQUMsOEJBQThCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENoZWNrQm94T3B0aW9ucywgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zLCBDb250cm9sTGF5b3V0LCBEcm9wZG93bk9wdGlvbnMsIEZpbHRlckl0ZW0sIEZpbHRlclR5cGUsIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIFBhZ2luZ0FjdGlvbk1vZGUsIFBhZ2luZ09wdGlvbnMsIFN0eWxlQ29uZmlybWF0aW9uTW9kZSwgVGV4dEJveE9wdGlvbnMsIFRvZ2dsZVNsaWRlT3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgQWN0aXZlRGlyZWN0b3J5U2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9BY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3RpdmVEaXJlY3RvcnlBZGRFZGl0TW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0FETW9kZWxzL0FjdGl2ZURpcmVjdG9yeUFkZEVkaXRNb2RlbCc7XHJcbmltcG9ydCB7IEFETWFwcGluZ01vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9BRE1vZGVscy9BRE1hcHBpbmdNb2RlbCc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlLCBCQlNGVHJhbnNsYXRlU2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scy9saWIvY29udHJvbHMvQ29uZmlybWF0aW9uTW9kYWwvQ29uZmlybWF0aW9uTW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnaW5nQ29tcG9uZW50IH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMvbGliL2NvbnRyb2xzL1BhZ2luZy9QYWdpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgQURUeXBlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL0VudW1zL0FEVHlwZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYWN0aXZlLWRpcmVjdG9yeScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2ZS1kaXJlY3RvcnkuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmVEaXJlY3RvcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vUGFnZSByZXF1aXJlbWVudHNcclxuICBhcGlVcmwgPSBcIi9hcGkvYWRtaW4vQURDb25uZWN0aW9uL1wiO1xyXG4gIHNob3dQYWdlQ29udGVudCA9IGZhbHNlO1xyXG5cclxuICAvL0ZpbHRlciBhbmQgcGFnaW5nIGNvbXBvbmVudHNcclxuICBhY3RpdmVEaXJlY3RvcnlGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc2VhcmNoVGV4dEJveDogVGV4dEJveE9wdGlvbnM7XHJcbiAgdGV4dElucHV0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIGFjdGl2ZURpcmVjdG9yeVBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBjbGllbnRTaWRlUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIGFjdGl2ZURpcmVjdG9yeVBhZ2luZzogUGFnaW5nT3B0aW9ucztcclxuICBpc0ZpbHRlckxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ2FjdGl2ZURpcmVjdG9yeVBhZ2luZ1ZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luZ0VsZW1lbnQ6IFBhZ2luZ0NvbXBvbmVudDxhbnk+O1xyXG5cclxuICAvL1JlcXVpcmVkIGxpc3RzXHJcbiAgcGVybWlzc2lvblNldExpc3Q6IGFueVtdID0gW107XHJcbiAgbGFuZ3VhZ2VzTGlzdDogYW55W10gPSBbXTtcclxuICB3ZWxjb21lTXNnVGVtcExpc3Q6IGFueVtdID0gW107XHJcbiAgbWFwcGluZ1R5cGVzTGlzdDogYW55W10gPSBbXTtcclxuICBtYXBwaW5nUHJvcGVydGllc0xpc3Q6IGFueVtdID0gW107XHJcblxyXG4gIC8vLy9FZGl0IE1vZGVsIENvbnRyb2xzXHJcbiAgLy9TaGFyZWQgY29udHJvbHNcclxuICBlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9uczogRm9ybU9wdGlvbnNcclxuICBlZGl0TmFtZTogVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdEFEVHlwZU5hbWU6IHN0cmluZzsgLy9XaW5kb3dzIG9yIEF6dXJlXHJcbiAgZWRpdEFEVHlwZUlEOiBudW1iZXI7XHJcbiAgZWRpdEluYWN0aXZlOiBUb2dnbGVTbGlkZU9wdGlvbnM7XHJcbiAgZWRpdERhaWx5Sm9iOiBUb2dnbGVTbGlkZU9wdGlvbnM7XHJcbiAgZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgZWRpdExhbmd1YWdlT3B0aW9uczogRHJvcGRvd25PcHRpb25zO1xyXG4gIGVkaXRXZWxjb21lTXNnVGVtcGxhdGVPcHRpb25zOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgZWRpdE1hcHBpbmdzT3B0aW9uczogYW55W10gPSBbXTtcclxuICBlZGl0TWFwcGluZ3NDb3VudDogbnVtYmVyO1xyXG4gIGFjdGl2ZURpcmVjdG9yeUlkOiBudW1iZXI7XHJcbiAgLy9XaW5kb3dzIE1vZGVcclxuICBlZGl0RG9tYWluOiBUZXh0Qm94T3B0aW9ucztcclxuICBlZGl0U2FtQWNjb3VudDogVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdElkZW50aWZpZXI6IHN0cmluZztcclxuICBlZGl0V2luZG93c1R5cGVOYW1lOiBzdHJpbmc7XHJcbiAgZWRpdFBhc3N3b3JkOiBUZXh0Qm94T3B0aW9ucztcclxuICBzaG93V2luZG93c0NvbnRyb2w6IGJvb2xlYW47XHJcbiAgLy9BenVyZSBNb2RlXHJcbiAgZWRpdFRlbmFudElEOiBUZXh0Qm94T3B0aW9ucztcclxuICBlZGl0Q2xpZW50SUQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIGVkaXRDbGllbnRTZWNyZXQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIHNob3dBenVyZUNvbnRyb2w6IGJvb2xlYW47XHJcblxyXG4gIC8vZGVsZXRlICBNb2RlbCBDb250cm9sc1xyXG4gIGRlbGV0ZUFjdGl2ZURpcmVjdG9yeUlkOiBzdHJpbmc7XHJcbiAgZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9uczogQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zO1xyXG4gIGRlbGV0ZUNvbnRyb2xMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdkZWxldGVDb25maXJtYXRpb25Nb2RhbENvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudDtcclxuXHJcbiAgLy9MYXN0IHJ1biBsb2dzXHJcbiAgYWRDb25uZWN0aW9uTmFtZTogc3RyaW5nO1xyXG4gIGxhc3RSdW5Mb2dzOiBzdHJpbmc7XHJcblxyXG4gIC8vU3luY2hyb25pemF0aW9uIG1vZGFsXHJcbiAgc3luY0FjdGl2ZURpcmVjdG9yeUlkOiBzdHJpbmc7XHJcbiAgc3luY0NvbmZpcm1hdGlvbk9wdGlvbnM6IENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucztcclxuICBzeW5jQ29udHJvbExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ3N5bmNDb25maXJtYXRpb25Nb2RhbENvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgc3luY0NvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIHBhZ2VJbmZvU2VydmljZTogUGFnZUluZm9TZXJ2aWNlLCBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBiYnNmVHJhbnNsYXRlU2VydmljZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgYWN0aXZlRGlyZWN0b3J5U2VydmljZTogQWN0aXZlRGlyZWN0b3J5U2VydmljZSxcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZSkge1xyXG4gIH1cclxuXHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5zaG93UGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGl2ZURpcmVjdG9yaWVzXCIpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfVxyXG5cclxuICAgIF07XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVUaXRsZSgpO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuICAgIHRoaXMuYmJzZlRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5zaG93UGFnZUNvbnRlbnQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfSlcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuICB9XHJcblxyXG4gIC8vaW5pdGlhbGl6ZSBmaWx0ZXJzIGFuZCBwYWdpbmdcclxuICBpbml0aWFsaXplUGFnZSgpIHtcclxuICAgIC8vIFRleHRCb3ggaW5pdFxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guTmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guVHlwZSA9IElucHV0VHlwZS5UZXh0XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guUGxhY2Vob2xkZXIgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTZWFyY2hCeU5hbWVcIilcclxuICAgIHRoaXMuc2VhcmNoVGV4dEJveC5IaWRlTGFiZWwgPSB0cnVlXHJcblxyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gXCJzZWFyY2hUZXh0Qm94XCJcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcInNlYXJjaFRleHRcIlxyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3hcclxuXHJcblxyXG4gICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlQYWdpbmcgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlQYWdpbmcuQWN0aW9uUG9zdFVSTCA9IHRoaXMuYXBpVXJsICsgJ0dldEFEQ29ubmVjdGlvbkJ5RmlsdGVyJztcclxuICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5UGFnaW5nLk9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzID0gW1wic2VhcmNoVGV4dEJveFwiXTtcclxuICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5UGFnaW5nLkZpbHRlcnMgPSBbdGhpcy50ZXh0SW5wdXRGaWx0ZXJdXHJcbiAgICB0aGlzLmFjdGl2ZURpcmVjdG9yeVBhZ2luZy5WYWxpZGF0aW9uVG9rZW4gPSB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhvcml6YXRpb25IZWFkZXJWYWx1ZSgpO1xyXG5cclxuICAgIHRoaXMuaXNGaWx0ZXJMb2FkZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9QYWdpbmcgZnVuY3Rpb25zXHJcbiAgc2V0QWN0aXZlRGlyZWN0b3J5TGlzdFJlc3VsdChyZXN1bHQpIHtcclxuICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5UGFnaW5nUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5jbGllbnRTaWRlUGFnaW5nUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5zaG93UGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpXHJcbiAgfVxyXG5cclxuICAvL0VkaXQgQWN0aXZlRGlyZWN0b3J5XHJcbiAgc2hvd0VkaXRBY3RpdmVEaXJlY3RvcnlNb2RhbChhY3RpdmVEaXJlY3RvcnlJRDogbnVtYmVyLCBhY3RpdmVEaXJlY3RvcnlJREVuYzogc3RyaW5nLCBlZGl0QURNb2RhbCkge1xyXG4gICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlJZCA9IGFjdGl2ZURpcmVjdG9yeUlEO1xyXG4gICAgdGhpcy5zaG93V2luZG93c0NvbnRyb2wgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0F6dXJlQ29udHJvbCA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5U2VydmljZS5nZXRFZGl0QWN0aXZlRGlyZWN0b3J5KGFjdGl2ZURpcmVjdG9yeUlERW5jKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBsZXQgcmVzdWx0T2JqID0gcmVzdWx0IGFzIGFueTtcclxuICAgICAgbGV0IGFjdGl2ZURpcmVjdG9yeSA9IHJlc3VsdE9iai5tb2RlbDtcclxuICAgICAgbGV0IGxpc3RzID0gcmVzdWx0T2JqLmRyb3Bkb3duc0RhdGE7XHJcblxyXG4gICAgICB0aGlzLmVkaXRBRFR5cGVJRCA9IGFjdGl2ZURpcmVjdG9yeS5hZFR5cGVJdGVtSUQ7XHJcbiAgICAgIC8vTG9hZCBpc3RzXHJcbiAgICAgIHRoaXMucGVybWlzc2lvblNldExpc3QgPSBsaXN0cy5wZXJtaXNzaW9uU2V0cztcclxuICAgICAgdGhpcy5sYW5ndWFnZXNMaXN0ID0gbGlzdHMubGFuZ3VhZ2VzO1xyXG4gICAgICB0aGlzLndlbGNvbWVNc2dUZW1wTGlzdCA9IGxpc3RzLnRlbXBsYXRlcztcclxuICAgICAgdGhpcy5tYXBwaW5nVHlwZXNMaXN0ID0gbGlzdHMubWFwcGluZ1R5cGVzO1xyXG4gICAgICB0aGlzLm1hcHBpbmdQcm9wZXJ0aWVzTGlzdCA9IGxpc3RzLm1hcHBpbmdQcm9wZXJ0aWVzO1xyXG5cclxuICAgICAgdGhpcy5lZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgICB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9ucy5Gb3JtR3JvdXAgPSB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXHJcbiAgICAgIHRoaXMuZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEVkaXRBRE1vZGVsO1xyXG4gICAgICB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEVkaXRBREZ1bmN0aW9uO1xyXG4gICAgICB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnRcclxuICAgICAgdGhpcy5lZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybU9wdGlvbnMuUGFnaW5nQWN0aW9uTW9kZSA9IFBhZ2luZ0FjdGlvbk1vZGUuVXBkYXRlXHJcblxyXG5cclxuICAgICAgdGhpcy5lZGl0TmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXROYW1lLk5hbWUgPSBcImVkaXROYW1lXCI7ICAgXHJcbiAgICAgIHRoaXMuZWRpdE5hbWUuTGFiZWxLZXkgPSBcIk5hbWVcIjtcclxuICAgICAgdGhpcy5lZGl0TmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIHRoaXMuZWRpdE5hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdE5hbWUuVmFsdWUgPSBhY3RpdmVEaXJlY3RvcnkuY29ubmVjdGlvbk5hbWU7XHJcblxyXG4gICAgICBsZXQgc2VsZWN0ZWRQZXJtaXNzaW9uU2V0ID0gdGhpcy5wZXJtaXNzaW9uU2V0TGlzdC5maWx0ZXIoKGl0ZW0pID0+IHsgcmV0dXJuIGl0ZW0ua2V5ID09IGFjdGl2ZURpcmVjdG9yeS5wZXJtaXNzaW9uU2V0SUQ7IH0pLm1hcCgoaXRlbSkgPT4gaXRlbS5rZXkpWzBdO1xyXG5cclxuICAgICAgdGhpcy5lZGl0UGVybWlzc2lvblNldE9wdGlvbnMgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zLk5hbWUgPSBcImVkaXRQZXJtaXNzaW9uU2V0T3B0aW9uc1wiXHJcbiAgICAgIHRoaXMuZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zLkxhYmVsS2V5ID0gXCJQZXJtaXNzaW9uU2V0XCJcclxuICAgICAgdGhpcy5lZGl0UGVybWlzc2lvblNldE9wdGlvbnMuRGF0YVNvdXJjZSA9IHRoaXMucGVybWlzc2lvblNldExpc3RcclxuICAgICAgdGhpcy5lZGl0UGVybWlzc2lvblNldE9wdGlvbnMuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0UGVybWlzc2lvblNldE9wdGlvbnMuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRQZXJtaXNzaW9uU2V0T3B0aW9ucy5QbGFjZWhvbGRlciA9IFwiXCI7XHJcbiAgICAgIHRoaXMuZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRQZXJtaXNzaW9uU2V0T3B0aW9ucy5TZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRQZXJtaXNzaW9uU2V0O1xyXG5cclxuICAgICAgbGV0IHNlbGVjdGVkTGFuZ3VhZ2UgPSB0aGlzLmxhbmd1YWdlc0xpc3QuZmlsdGVyKChpdGVtKSA9PiB7IHJldHVybiBpdGVtLmtleSA9PSBhY3RpdmVEaXJlY3RvcnkubGFuZ0tleTsgfSkubWFwKChpdGVtKSA9PiBpdGVtLmtleSlbMF07XHJcblxyXG4gICAgICB0aGlzLmVkaXRMYW5ndWFnZU9wdGlvbnMgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdExhbmd1YWdlT3B0aW9ucy5OYW1lID0gXCJlZGl0TGFuZ3VhZ2VPcHRpb25zXCJcclxuICAgICAgdGhpcy5lZGl0TGFuZ3VhZ2VPcHRpb25zLkxhYmVsVmFsdWUgPSBcIkxhbmd1YWdlXCJcclxuICAgICAgdGhpcy5lZGl0TGFuZ3VhZ2VPcHRpb25zLkxhYmVsS2V5ID0gXCJMYW5ndWFnZVwiXHJcbiAgICAgIHRoaXMuZWRpdExhbmd1YWdlT3B0aW9ucy5EYXRhU291cmNlID0gdGhpcy5sYW5ndWFnZXNMaXN0XHJcbiAgICAgIHRoaXMuZWRpdExhbmd1YWdlT3B0aW9ucy5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRMYW5ndWFnZU9wdGlvbnMuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRMYW5ndWFnZU9wdGlvbnMuUGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gICAgICB0aGlzLmVkaXRMYW5ndWFnZU9wdGlvbnMuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdExhbmd1YWdlT3B0aW9ucy5TZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRMYW5ndWFnZTtcclxuXHJcbiAgICAgIGxldCBzZWxlY3RlZFdlbGNvbWVNc2dUZW1wID0gYWN0aXZlRGlyZWN0b3J5LndlbGNvbWVUZW1wbGF0ZUlEICE9IG51bGwgPyB0aGlzLndlbGNvbWVNc2dUZW1wTGlzdC5maWx0ZXIoKGl0ZW0pID0+IHsgcmV0dXJuIGl0ZW0ua2V5ID09IGFjdGl2ZURpcmVjdG9yeS53ZWxjb21lVGVtcGxhdGVJRDsgfSkubWFwKChpdGVtKSA9PiBpdGVtLmtleSlbMF0gOiBudWxsO1xyXG5cclxuICAgICAgdGhpcy5lZGl0V2VsY29tZU1zZ1RlbXBsYXRlT3B0aW9ucyA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0V2VsY29tZU1zZ1RlbXBsYXRlT3B0aW9ucy5OYW1lID0gXCJlZGl0V2VsY29tZU1zZ1RlbXBsYXRlT3B0aW9uc1wiXHJcbiAgICAgIHRoaXMuZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnMuTGFiZWxLZXkgPSBcIldlbGNvbWVNc2dUZW1wbGF0ZVwiXHJcbiAgICAgIHRoaXMuZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnMuRGF0YVNvdXJjZSA9IHRoaXMud2VsY29tZU1zZ1RlbXBMaXN0XHJcbiAgICAgIHRoaXMuZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnMuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0V2VsY29tZU1zZ1RlbXBsYXRlT3B0aW9ucy5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnMuUGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gICAgICB0aGlzLmVkaXRXZWxjb21lTXNnVGVtcGxhdGVPcHRpb25zLklzUmVxdWlyZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5lZGl0V2VsY29tZU1zZ1RlbXBsYXRlT3B0aW9ucy5TZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRXZWxjb21lTXNnVGVtcDtcclxuXHJcblxyXG4gICAgICB0aGlzLmVkaXRJbmFjdGl2ZSA9IG5ldyBUb2dnbGVTbGlkZU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0SW5hY3RpdmUuTmFtZSA9IFwiZWRpdEluYWN0aXZlXCI7XHJcbiAgICAgIHRoaXMuZWRpdEluYWN0aXZlLlZhbHVlID0gYWN0aXZlRGlyZWN0b3J5Lm1hcmtBc0luYWN0aXZlO1xyXG4gICAgICB0aGlzLmVkaXRJbmFjdGl2ZS5MYWJlbEtleSA9IFwiTWFya0FzSW5hY3RpdmVcIlxyXG4gICAgICB0aGlzLmVkaXRJbmFjdGl2ZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuXHJcbiAgICAgIHRoaXMuZWRpdERhaWx5Sm9iID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXREYWlseUpvYi5OYW1lID0gXCJlZGl0RGFpbHlKb2JcIlxyXG4gICAgICB0aGlzLmVkaXREYWlseUpvYi5MYWJlbEtleSA9IFwiQWRkVG9EYWlseUpvYlwiXHJcbiAgICAgIHRoaXMuZWRpdERhaWx5Sm9iLlZhbHVlID0gYWN0aXZlRGlyZWN0b3J5LmFkZFRvRGFpbHlKb2I7XHJcbiAgICAgIHRoaXMuZWRpdERhaWx5Sm9iLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5Ib3Jpem9udGFsO1xyXG5cclxuXHJcbiAgICAgIC8vV2luZG93cyBtb2RlXHJcbiAgICAgIGlmICh0aGlzLmVkaXRBRFR5cGVJRCA9PSBOdW1iZXIoQURUeXBlLldpbmRvd3MpKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0SWRlbnRpZmllciA9IGFjdGl2ZURpcmVjdG9yeS5pZGVudGlmaWVyO1xyXG4gICAgICAgIHRoaXMuZWRpdFdpbmRvd3NUeXBlTmFtZSA9IGFjdGl2ZURpcmVjdG9yeS5hZFR5cGVOYW1lO1xyXG5cclxuICAgICAgICB0aGlzLmVkaXREb21haW4gPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLmVkaXREb21haW4uTmFtZSA9IFwiZWRpdERvbWFpblwiOyAgIFxyXG4gICAgICAgIHRoaXMuZWRpdERvbWFpbi5MYWJlbEtleSA9IFwiRG9tYWluXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0RG9tYWluLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgICB0aGlzLmVkaXREb21haW4uSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5lZGl0RG9tYWluLlZhbHVlID0gYWN0aXZlRGlyZWN0b3J5LmRvbWFpbjtcclxuXHJcbiAgICAgICAgdGhpcy5lZGl0U2FtQWNjb3VudCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZWRpdFNhbUFjY291bnQuTmFtZSA9IFwiZWRpdFNhbUFjY291bnRcIjsgICBcclxuICAgICAgICB0aGlzLmVkaXRTYW1BY2NvdW50LkxhYmVsS2V5ID0gXCJTYW1BY2NvdW50XCI7XHJcbiAgICAgICAgdGhpcy5lZGl0U2FtQWNjb3VudC5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgdGhpcy5lZGl0U2FtQWNjb3VudC5WYWx1ZSA9IGFjdGl2ZURpcmVjdG9yeS5zYW1BY2NvdW50O1xyXG5cclxuICAgICAgICB0aGlzLmVkaXRQYXNzd29yZCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZWRpdFBhc3N3b3JkLk5hbWUgPSBcImVkaXRQYXNzd29yZFwiOyAgIFxyXG4gICAgICAgIHRoaXMuZWRpdFBhc3N3b3JkLkxhYmVsS2V5ID0gXCJQYXNzd29yZFwiO1xyXG4gICAgICAgIHRoaXMuZWRpdFBhc3N3b3JkLlR5cGUgPSBJbnB1dFR5cGUuUGFzc3dvcmQ7XHJcbiAgICAgICAgdGhpcy5lZGl0UGFzc3dvcmQuUmVtb3ZlRGVmYXVsdFBhc3N3b3JkVmFsaWRhdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5lZGl0UGFzc3dvcmQuVmFsdWUgPSBhY3RpdmVEaXJlY3RvcnkucGFzc3dvcmQ7XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd1dpbmRvd3NDb250cm9sID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh0aGlzLmVkaXRBRFR5cGVJRCA9PSBOdW1iZXIoQURUeXBlLkF6dXJlKSkge1xyXG4gICAgICAgIHRoaXMuZWRpdFRlbmFudElEID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5lZGl0VGVuYW50SUQuTmFtZSA9IFwiZWRpdFRlbmFudElEXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0VGVuYW50SUQuTGFiZWxLZXkgPSBcIlRlbmFudElEXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0VGVuYW50SUQuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgIHRoaXMuZWRpdFRlbmFudElELklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZWRpdFRlbmFudElELlZhbHVlID0gYWN0aXZlRGlyZWN0b3J5LnRlbmFudElEO1xyXG5cclxuICAgICAgICB0aGlzLmVkaXRDbGllbnRJRCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudElELk5hbWUgPSBcImVkaXRDbGllbnRJRFwiO1xyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudElELkxhYmVsS2V5ID0gXCJDbGllbnRJRFwiO1xyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudElELlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgICB0aGlzLmVkaXRDbGllbnRJRC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmVkaXRDbGllbnRJRC5WYWx1ZSA9IGFjdGl2ZURpcmVjdG9yeS5jbGllbnRJRDtcclxuXHJcbiAgICAgICAgdGhpcy5lZGl0Q2xpZW50U2VjcmV0ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5lZGl0Q2xpZW50U2VjcmV0Lk5hbWUgPSBcImVkaXRDbGllbnRTZWNyZXRcIjtcclxuICAgICAgICB0aGlzLmVkaXRDbGllbnRTZWNyZXQuTGFiZWxLZXkgPSBcIkNsaWVudFNlY3JldFwiO1xyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudFNlY3JldC5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgdGhpcy5lZGl0Q2xpZW50U2VjcmV0LklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudFNlY3JldC5WYWx1ZSA9IGFjdGl2ZURpcmVjdG9yeS5jbGllbnRTZWNyZXQ7XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd0F6dXJlQ29udHJvbCA9IHRydWU7XHJcblxyXG4gICAgICB9XHJcblxyXG5cclxuICAgICAgbGV0IGRhdGE6IGFueSA9IHRoaXMuZ2V0QURNYXBwaW5nT3B0aW9ucyhhY3RpdmVEaXJlY3RvcnkuYWRNYXBwaW5ncyk7XHJcblxyXG4gICAgICB0aGlzLmVkaXRNYXBwaW5nc09wdGlvbnMgPSBkYXRhWzBdO1xyXG4gICAgICB0aGlzLmVkaXRNYXBwaW5nc0NvdW50ID0gZGF0YVsxXTtcclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihlZGl0QURNb2RhbCk7XHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldEVkaXRBRE1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgcmVzdWx0TW9kZWwgPSB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtLnZhbHVlO1xyXG4gICAgbGV0IEVkaXRNb2RlbCA9IG5ldyBBY3RpdmVEaXJlY3RvcnlBZGRFZGl0TW9kZWwoKTtcclxuXHJcbiAgICBFZGl0TW9kZWwuSUQgPSBOdW1iZXIodGhpcy5hY3RpdmVEaXJlY3RvcnlJZCk7XHJcbiAgICBFZGl0TW9kZWwuQ29ubmVjdGlvbk5hbWUgPSByZXN1bHRNb2RlbC5lZGl0TmFtZTsgXHJcbiAgICBFZGl0TW9kZWwuUGVybWlzc2lvblNldElEID0gcmVzdWx0TW9kZWwuZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zICE9IG51bGwgPyBOdW1iZXIocmVzdWx0TW9kZWwuZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zKSA6IG51bGxcclxuICAgIEVkaXRNb2RlbC5MYW5nS2V5ID0gcmVzdWx0TW9kZWwuZWRpdExhbmd1YWdlT3B0aW9ucztcclxuICAgIEVkaXRNb2RlbC5XZWxjb21lVGVtcGxhdGVJRCA9IHJlc3VsdE1vZGVsLmVkaXRXZWxjb21lTXNnVGVtcGxhdGVPcHRpb25zICE9IG51bGwgPyBOdW1iZXIocmVzdWx0TW9kZWwuZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnMpIDogbnVsbFxyXG4gICAgRWRpdE1vZGVsLk1hcmtBc0luYWN0aXZlID0gcmVzdWx0TW9kZWwuZWRpdEluYWN0aXZlO1xyXG4gICAgRWRpdE1vZGVsLkFkZFRvRGFpbHlKb2IgPSByZXN1bHRNb2RlbC5lZGl0RGFpbHlKb2I7XHJcblxyXG4gICAgaWYgKHRoaXMuZWRpdEFEVHlwZUlEID09IE51bWJlcihBRFR5cGUuV2luZG93cykpIHtcclxuICAgICAgRWRpdE1vZGVsLkRvbWFpbiA9IHJlc3VsdE1vZGVsLmVkaXREb21haW47XHJcbiAgICAgIEVkaXRNb2RlbC5TYW1BY2NvdW50ID0gcmVzdWx0TW9kZWwuZWRpdFNhbUFjY291bnQ7XHJcbiAgICAgIEVkaXRNb2RlbC5QYXNzd29yZCA9IHJlc3VsdE1vZGVsLmVkaXRQYXNzd29yZDtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuZWRpdEFEVHlwZUlEID09IE51bWJlcihBRFR5cGUuQXp1cmUpKSB7XHJcbiAgICAgIEVkaXRNb2RlbC5UZW5hbnRJRCA9IHJlc3VsdE1vZGVsLmVkaXRUZW5hbnRJRDtcclxuICAgICAgRWRpdE1vZGVsLkNsaWVudElEID0gcmVzdWx0TW9kZWwuZWRpdENsaWVudElEO1xyXG4gICAgICBFZGl0TW9kZWwuQ2xpZW50U2VjcmV0ID0gcmVzdWx0TW9kZWwuZWRpdENsaWVudFNlY3JldDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmVkaXRNYXBwaW5nc0NvdW50OyBqKyspIHtcclxuICAgICAgbGV0IGVkaXRNQXBwaW5nVHlwZSA9IHJlc3VsdE1vZGVsW1wiQURNYXBwaW5nVHlwZVwiICsgal07XHJcbiAgICAgIGlmIChlZGl0TUFwcGluZ1R5cGUgPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICBsZXQgZWRpdE1BcHBpbmdQcm9wZXJ0eSA9IHJlc3VsdE1vZGVsW1wiQURNYXBwaW5nUHJvcGVydHlcIiArIGpdO1xyXG4gICAgICBsZXQgZWRpdE1BcHBpbmdQcm9wZXJ0eU5hbWUgPSByZXN1bHRNb2RlbFtcIkFETWFwcGluZ1Byb3BlcnR5TmFtZVwiICsgal07XHJcbiAgICAgIGxldCBlZGl0TUFwcGluZ0luY2x1ZGVJblVwZGF0ZSA9IHJlc3VsdE1vZGVsW1wiQURNYXBwaW5nSW5jbHVkZVVwZGF0ZVwiICsgal07XHJcbiAgICAgIGxldCBlZGl0TUFwcGluZ0hpZGRlbkluY2x1ZGVJblVwZGF0ZSA9IHJlc3VsdE1vZGVsW1wiQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZVwiICsgal07XHJcblxyXG4gICAgICBsZXQgYWRNQXBwaW5nT2JqOiBBRE1hcHBpbmdNb2RlbCA9IG5ldyBBRE1hcHBpbmdNb2RlbCgpO1xyXG4gICAgICBhZE1BcHBpbmdPYmouQURNYXBwaW5nVHlwZUl0ZW1JRCA9IE51bWJlcihlZGl0TUFwcGluZ1R5cGUpO1xyXG4gICAgICBhZE1BcHBpbmdPYmouQkJTRlByb3BlcnR5TmFtZSA9IGVkaXRNQXBwaW5nUHJvcGVydHk7XHJcbiAgICAgIGFkTUFwcGluZ09iai5BRFByb3BlcnR5TmFtZSA9IGVkaXRNQXBwaW5nUHJvcGVydHlOYW1lO1xyXG4gICAgICBhZE1BcHBpbmdPYmouSW5jbHVkZUluVXBkYXRlID0gZWRpdE1BcHBpbmdJbmNsdWRlSW5VcGRhdGUgPT0gdW5kZWZpbmVkID8gZWRpdE1BcHBpbmdIaWRkZW5JbmNsdWRlSW5VcGRhdGUgOiBlZGl0TUFwcGluZ0luY2x1ZGVJblVwZGF0ZTtcclxuICAgICAgRWRpdE1vZGVsLkFETWFwcGluZ3MucHVzaChhZE1BcHBpbmdPYmopO1xyXG4gICAgfVxyXG4gICAgcGFyYW1BcnJheS5wdXNoKEVkaXRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldEVkaXRBREZ1bmN0aW9uID0gKEVkaXRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLmVkaXRBY3RpdmVEaXJlY3RvcnkoRWRpdE1vZGVsKVxyXG4gIH1cclxuXHJcbiAgLy9BRCBNYXBwaW5nIGZ1bmN0aW9uc1xyXG4gIGdldEFETWFwcGluZ09wdGlvbnMoQURNYXBwaW5nczogYW55W10pIHtcclxuICAgIGxldCBBRE1hcHBpbmdPcHRpb25zOiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IEFETWFwcGluZ0NvdW50OiBudW1iZXIgPSAwO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBBRE1hcHBpbmdzLmxlbmd0aDsgaSsrKSB7XHJcblxyXG4gICAgICBsZXQgb2JqZWN0TWFwcGluZ09wdGlvbnM6IGFueVtdID0gW107XHJcblxyXG4gICAgICBsZXQgQURNYXBwaW5nVHlwZSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgbGV0IHNlbGVjdGVkVHlwZSA9IHRoaXMubWFwcGluZ1R5cGVzTGlzdC5maWx0ZXIoKGl0ZW0pID0+IHsgcmV0dXJuIGl0ZW0ua2V5ID09IEFETWFwcGluZ3NbaV0uYWRNYXBwaW5nVHlwZUl0ZW1JRDsgfSkubWFwKChpdGVtKSA9PiBpdGVtLmtleSlbMF07XHJcbiAgICAgIEFETWFwcGluZ1R5cGUuTmFtZSA9IFwiQURNYXBwaW5nVHlwZVwiICsgaTtcclxuICAgICAgQURNYXBwaW5nVHlwZS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICBBRE1hcHBpbmdUeXBlLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ1R5cGUuU2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkVHlwZTtcclxuICAgICAgQURNYXBwaW5nVHlwZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuICAgICAgQURNYXBwaW5nVHlwZS5EYXRhU291cmNlID0gdGhpcy5tYXBwaW5nVHlwZXNMaXN0O1xyXG5cclxuICAgICAgbGV0IEFETWFwcGluZ1Byb3BlcnR5ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICBsZXQgc2VsZWN0ZWRQcm9wZXJ0eSA9IHRoaXMubWFwcGluZ1Byb3BlcnRpZXNMaXN0LmZpbHRlcigoaXRlbSkgPT4geyByZXR1cm4gaXRlbS5rZXkgPT0gQURNYXBwaW5nc1tpXS5iYnNmUHJvcGVydHlOYW1lOyB9KS5tYXAoKGl0ZW0pID0+IGl0ZW0ua2V5KVswXTtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHkuTmFtZSA9IFwiQURNYXBwaW5nUHJvcGVydHlcIiArIGk7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5LkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5LlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5LlNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZFByb3BlcnR5O1xyXG4gICAgICBBRE1hcHBpbmdQcm9wZXJ0eS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHkuRGF0YVNvdXJjZSA9IHRoaXMubWFwcGluZ1Byb3BlcnRpZXNMaXN0O1xyXG5cclxuXHJcbiAgICAgIGxldCBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLk5hbWUgPSBcIkFETWFwcGluZ1Byb3BlcnR5TmFtZVwiICsgaTtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5WYWx1ZSA9IEFETWFwcGluZ3NbaV0uYWRQcm9wZXJ0eU5hbWU7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuXHJcbiAgICAgIGxldCBBRE1hcHBpbmdJbmNsdWRlVXBkYXRlID0gbmV3IENoZWNrQm94T3B0aW9ucygpO1xyXG4gICAgICBBRE1hcHBpbmdJbmNsdWRlVXBkYXRlLk5hbWUgPSBcIkFETWFwcGluZ0luY2x1ZGVVcGRhdGVcIiArIGk7XHJcbiAgICAgIEFETWFwcGluZ0luY2x1ZGVVcGRhdGUuVmFsdWUgPSBBRE1hcHBpbmdzW2ldLmluY2x1ZGVJblVwZGF0ZTtcclxuICAgICAgQURNYXBwaW5nSW5jbHVkZVVwZGF0ZS5Jc0Rpc2FibGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIGxldCBBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUuTmFtZSA9IFwiQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZVwiICsgaTtcclxuICAgICAgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICBBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZS5WYWx1ZSA9IEFETWFwcGluZ3NbaV0uaW5jbHVkZUluVXBkYXRlO1xyXG5cclxuXHJcbiAgICAgIG9iamVjdE1hcHBpbmdPcHRpb25zLnB1c2goQURNYXBwaW5nVHlwZSwgQURNYXBwaW5nUHJvcGVydHksIEFETWFwcGluZ1Byb3BlcnR5TmFtZSwgQURNYXBwaW5nSW5jbHVkZVVwZGF0ZSwgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZSk7XHJcbiAgICAgIEFETWFwcGluZ09wdGlvbnMucHVzaChvYmplY3RNYXBwaW5nT3B0aW9ucyk7XHJcbiAgICAgIEFETWFwcGluZ0NvdW50ICs9IDE7XHJcblxyXG4gICAgfVxyXG4gICAgcmV0dXJuIFtBRE1hcHBpbmdPcHRpb25zLCBBRE1hcHBpbmdDb3VudF07XHJcbiAgfVxyXG4gIGRlbGV0ZUFETWFwcGluZyhkZWxldGVkQURNQXBwaW5nOiBhbnkpIHtcclxuICAgIGxldCBkZWxldGVkTWFwcGluZ0luZGV4OiBudW1iZXIgPSB0aGlzLmVkaXRNYXBwaW5nc09wdGlvbnMuaW5kZXhPZihkZWxldGVkQURNQXBwaW5nKTtcclxuICAgIGlmIChkZWxldGVkTWFwcGluZ0luZGV4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLmVkaXRNYXBwaW5nc09wdGlvbnMuc3BsaWNlKGRlbGV0ZWRNYXBwaW5nSW5kZXgsIDEpO1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRlbGV0ZWRBRE1BcHBpbmcubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtLnJlbW92ZUNvbnRyb2woZGVsZXRlZEFETUFwcGluZ1tpXS5OYW1lKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkQURNYXBwaW5nKCkge1xyXG4gICAgbGV0IGluZGV4ID0gdGhpcy5lZGl0TWFwcGluZ3NDb3VudDtcclxuXHJcbiAgICBsZXQgb2JqZWN0TWFwcGluZ09wdGlvbnM6IGFueVtdID0gW107XHJcblxyXG4gICAgbGV0IEFETWFwcGluZ1R5cGUgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICBBRE1hcHBpbmdUeXBlLk5hbWUgPSBcIkFETWFwcGluZ1R5cGVcIiArIGluZGV4O1xyXG4gICAgQURNYXBwaW5nVHlwZS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgQURNYXBwaW5nVHlwZS5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgQURNYXBwaW5nVHlwZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuICAgIEFETWFwcGluZ1R5cGUuRGF0YVNvdXJjZSA9IHRoaXMubWFwcGluZ1R5cGVzTGlzdDtcclxuXHJcbiAgICBsZXQgQURNYXBwaW5nUHJvcGVydHkgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICBBRE1hcHBpbmdQcm9wZXJ0eS5OYW1lID0gXCJBRE1hcHBpbmdQcm9wZXJ0eVwiICtpbmRleDtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5LkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICBBRE1hcHBpbmdQcm9wZXJ0eS5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHkuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0Lkhvcml6b250YWw7XHJcbiAgICBBRE1hcHBpbmdQcm9wZXJ0eS5EYXRhU291cmNlID0gdGhpcy5tYXBwaW5nUHJvcGVydGllc0xpc3Q7XHJcblxyXG5cclxuICAgIGxldCBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5OYW1lID0gXCJBRE1hcHBpbmdQcm9wZXJ0eU5hbWVcIiArIGluZGV4O1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLklzUmVxdWlyZWQgPSBmYWxzZTtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuXHJcbiAgICBsZXQgQURNYXBwaW5nSW5jbHVkZVVwZGF0ZSA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgIEFETWFwcGluZ0luY2x1ZGVVcGRhdGUuTmFtZSA9IFwiQURNYXBwaW5nSW5jbHVkZVVwZGF0ZVwiICsgaW5kZXg7XHJcblxyXG4gICAgbGV0IEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUuTmFtZSA9IFwiQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZVwiICsgaW5kZXg7XHJcbiAgICBBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICBBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuXHJcbiAgICBvYmplY3RNYXBwaW5nT3B0aW9ucy5wdXNoKEFETWFwcGluZ1R5cGUsIEFETWFwcGluZ1Byb3BlcnR5LCBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUsIEFETWFwcGluZ0luY2x1ZGVVcGRhdGUsIEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUpO1xyXG5cclxuICAgIHRoaXMuZWRpdE1hcHBpbmdzT3B0aW9ucy5wdXNoKG9iamVjdE1hcHBpbmdPcHRpb25zKTtcclxuICAgIHRoaXMuZWRpdE1hcHBpbmdzQ291bnQgKz0gMTtcclxuXHJcbiAgfVxyXG4gIC8vRGVsZXRlIEFDdGl2ZURpcmVjdG9yeVxyXG4gIHNob3dEZWxldGVBY3RpdmVEaXJlY3RvcnlNb2RhbChhY3RpdmVEaXJlY3RvcnlJRDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRlbGV0ZUFjdGl2ZURpcmVjdG9yeUlkID0gYWN0aXZlRGlyZWN0b3J5SUQ7XHJcblxyXG4gICAgLy9hcnJheSBzZW50IHRvIHNlcnZpY2UgZnVuY3Rpb25cclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKHRoaXMuZGVsZXRlQWN0aXZlRGlyZWN0b3J5SWQpO1xyXG5cclxuICAgIHRoaXMuZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucyA9IG5ldyBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMoKTtcclxuICAgIHRoaXMuZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmRlbGV0ZUFjdGl2ZURpcmVjdG9yeTtcclxuICAgIHRoaXMuZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucy5TZXJ2aWNlU3VibWl0TW9kZWwgPSBwYXJhbUFycmF5O1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zLlBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudDtcclxuICAgIHRoaXMuZGVsZXRlQ29udHJvbExvYWRlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd01vZGFsKCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuICBkZWxldGVBY3RpdmVEaXJlY3RvcnkgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLmRlbGV0ZUFjdGl2ZURpcmVjdG9yeShpZCk7XHJcbiAgfVxyXG5cclxuICAvL1N5bmMgQWN0aXZlIERpcmVjdG9yeVxyXG4gIHNob3dBRFN5bmNocm9uaXphdGlvbk1vZGFsKGFjdGl2ZURpcmVjdG9yeUlEOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc3luY0FjdGl2ZURpcmVjdG9yeUlkID0gYWN0aXZlRGlyZWN0b3J5SUQ7XHJcblxyXG4gICAgLy9hcnJheSBzZW50IHRvIHNlcnZpY2UgZnVuY3Rpb25cclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKHRoaXMuc3luY0FjdGl2ZURpcmVjdG9yeUlkKTtcclxuXHJcbiAgICB0aGlzLnN5bmNDb25maXJtYXRpb25PcHRpb25zID0gbmV3IENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucygpO1xyXG4gICAgdGhpcy5zeW5jQ29uZmlybWF0aW9uT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLnJ1blN5bmNyb25pemF0aW9uO1xyXG4gICAgdGhpcy5zeW5jQ29uZmlybWF0aW9uT3B0aW9ucy5TZXJ2aWNlU3VibWl0TW9kZWwgPSBwYXJhbUFycmF5O1xyXG4gICAgdGhpcy5zeW5jQ29uZmlybWF0aW9uT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnQ7XHJcbiAgICB0aGlzLnN5bmNDb25maXJtYXRpb25PcHRpb25zLlBhZ2luZ0FjdGlvbk1vZGUgPSBQYWdpbmdBY3Rpb25Nb2RlLlJlaW5pdGlhbGl6ZTtcclxuICAgIHRoaXMuc3luY0NvbmZpcm1hdGlvbk9wdGlvbnMuQ29uZmlybWF0aW9uSGVhZGVyID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUnVuU3luY2hyb25pemF0aW9uXCIpO1xyXG4gICAgdGhpcy5zeW5jQ29uZmlybWF0aW9uT3B0aW9ucy5Db25maXJtYXRpb25Cb2R5ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUnVuU3luY2hyb25pemF0aW9uQ29uZmlybWF0aW9uXCIpO1xyXG4gICAgdGhpcy5zeW5jQ29uZmlybWF0aW9uT3B0aW9ucy5TdHlsZUNvbmZpcm1hdGlvbk1vZGUgPSBTdHlsZUNvbmZpcm1hdGlvbk1vZGUuV2FybmluZztcclxuICAgIHRoaXMuc3luY0NvbmZpcm1hdGlvbk9wdGlvbnMuU3VibWl0QnV0dG9uVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlllc1wiKTtcclxuICAgIHRoaXMuc3luY0NvbmZpcm1hdGlvbk9wdGlvbnMuRGlzYWJsZVN1Y2Nlc3NOb3RpZmljYXRpb24gPSB0cnVlO1xyXG4gICAgdGhpcy5zeW5jQ29uZmlybWF0aW9uT3B0aW9ucy5PblN1Y2Nlc3NIYW5kbGVyID0gdGhpcy5ydW5TeW5jT25TdWNjZXNzO1xyXG4gICAgdGhpcy5zeW5jQ29udHJvbExvYWRlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zeW5jQ29uZmlybWF0aW9uTW9kYWxDb250cm9sLnNob3dNb2RhbCgpO1xyXG4gICAgfSwgMjAwKTtcclxuICB9XHJcbiAgcnVuU3luY3Jvbml6YXRpb24gPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLnJ1bkFEU3luY2hyb25pemF0aW9uKGlkKTtcclxuICB9XHJcblxyXG4gIHJ1blN5bmNPblN1Y2Nlc3MgPSAocmVzdWx0KSA9PiB7XHJcbiAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgfVxyXG4gIC8vTGFzdCBydW4gbG9nc1xyXG4gIHNob3dBRExhc3RSdW5Mb2dzTW9kYWwoYWN0aXZlRGlyZWN0b3J5SUQ6IHN0cmluZyxsYXN0UnVuTG9nc01vZGFsKSB7XHJcbiAgICB0aGlzLmFjdGl2ZURpcmVjdG9yeVNlcnZpY2UuZ2V0TGFzdFJ1bkxvZ3MoYWN0aXZlRGlyZWN0b3J5SUQpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIGxldCBsYXN0UnVuTG9nc01vZGVsID0gcmVzdWx0IGFzIGFueTtcclxuXHJcbiAgICAgIHRoaXMuYWRDb25uZWN0aW9uTmFtZSA9IGxhc3RSdW5Mb2dzTW9kZWwubW9kZWwuYWRDb25uZWN0aW9uTmFtZTtcclxuICAgICAgdGhpcy5sYXN0UnVuTG9ncyA9IGxhc3RSdW5Mb2dzTW9kZWwubW9kZWwubG9ncztcclxuXHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4obGFzdFJ1bkxvZ3NNb2RhbCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vT24gZGVzdHJveVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxibG9jay11aT48L2Jsb2NrLXVpPlxyXG5cclxuPCEtLSBQYWdlIENvbnRlbnQgLS0+XHJcbjxkaXYgKm5nSWY9XCJzaG93UGFnZUNvbnRlbnRcIiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gIDwhLS0gYmVnaW46OkhlYWRlciAtLT5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiICpuZ0lmPVwiaXNGaWx0ZXJMb2FkZWRcIj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwic2VhcmNoVGV4dEJveFwiIFtncm91cF09XCJhY3RpdmVEaXJlY3RvcnlGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIHRpdGxlPSd7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBZGRcIil9fScgW3JvdXRlckxpbmtdPVwiWycvQWRtaW4vQURDb25uZWN0aW9uL0FkZCddXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBZGRcIil9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0zXCI+XHJcbiAgICAgIDwhLS1iZWdpbjo6QWN0aXZlRGlyZWN0b3J5IGxpc3QtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlclwiPlxyXG4gICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICA8dHIgY2xhc3M9XCJ0ZXh0LXN0YXJ0IHRleHQtZ3JheS00MDAgZnctYm9sZGVyIGZzLTcgdGV4dC11cHBlcmNhc2UgZ3MtMFwiPlxyXG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTmFtZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlR5cGVcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJQZXJtaXNzaW9uU2V0XCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWRDb25uZWN0aW9uUnVubmluZ05vd1wiKX19PC90aD5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy01MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWN0aW9uc1wiKX19PC90aD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICA8dGJvZHkgaWQ9XCJsaXN0aW5nQ29udGFpbmVyXCIgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBhY3RpdmVEaXJlY3Rvcnkgb2YgY2xpZW50U2lkZVBhZ2luZ1Jlc3VsdFwiPlxyXG5cclxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ0ZXh0LWRhcmtcIj5cclxuICAgICAgICAgICAgICAgIHt7YWN0aXZlRGlyZWN0b3J5Lm5hbWV9fVxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAge3thY3RpdmVEaXJlY3RvcnkuYWRUeXBlTmFtZX19XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICB7e2FjdGl2ZURpcmVjdG9yeS5wZXJtaXNzaW9uU2V0TmFtZX19XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXN1Y2Nlc3NcIiAqbmdJZj1cImFjdGl2ZURpcmVjdG9yeS5pc1J1bm5pbmdOb3c7ZWxzZSBub3RfUnVubmluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJZZXNcIil9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RfUnVubmluZz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJOb1wiKX19XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWxpZ2h0IGJ0bi1hY3RpdmUtbGlnaHQtcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWxsaXBzaXMtaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCIgbmdiRHJvcGRvd25JdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dFZGl0QWN0aXZlRGlyZWN0b3J5TW9kYWwoYWN0aXZlRGlyZWN0b3J5LmlkLGFjdGl2ZURpcmVjdG9yeS5pZEVuY3J5cHRlZCxlZGl0QWN0aXZlRGlyZWN0b3J5TW9kYWwpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3AtbGluayBweC0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRWRpdFwiKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8YSBuZ2JEcm9wZG93bkl0ZW0gY2xhc3M9XCJkcm9wLWl0ZW0gcHgtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dEZWxldGVBY3RpdmVEaXJlY3RvcnlNb2RhbChhY3RpdmVEaXJlY3RvcnkuaWRFbmNyeXB0ZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3AtbGluayBweC0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlXCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0FEU3luY2hyb25pemF0aW9uTW9kYWwoYWN0aXZlRGlyZWN0b3J5LmlkRW5jcnlwdGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGl2ZURpcmVjdG9yeVJ1blN5bmNyb25pemF0aW9uXCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0FETGFzdFJ1bkxvZ3NNb2RhbChhY3RpdmVEaXJlY3RvcnkuaWRFbmNyeXB0ZWQsbGFzdFJ1bkxvZ3NNb2RhbClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1saW5rIHB4LTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3RpdmVEaXJlY3RvcnlMYXN0UnVuTG9nc1wiKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDx0ciAqbmdJZj1cImNsaWVudFNpZGVQYWdpbmdSZXN1bHQubGVuZ3RoID09IDBcIj5cclxuICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjVcIj5cclxuICAgICAgICAgICAgICAgIDxsaWItZW1wdHktZGF0YT48L2xpYi1lbXB0eS1kYXRhPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgIDwvdGFibGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8IS0tZW5kOjpBY3RpdmUgZGlyZWN0b3J5IGxpc3QtLT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wXCI+XHJcbiAgICAgIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0QWN0aXZlRGlyZWN0b3J5TGlzdFJlc3VsdCgkZXZlbnQpXCIgKm5nSWY9XCJpc0ZpbHRlckxvYWRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJhY3RpdmVEaXJlY3RvcnlQYWdpbmdcIiBbZ3JvdXBdPVwiYWN0aXZlRGlyZWN0b3J5Rm9ybVwiICNhY3RpdmVEaXJlY3RvcnlQYWdpbmdWaWV3RWxlbWVudD5cclxuICAgICAgPC9CQlNGLVBhZ2luZz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcblxyXG48IS0tIEVkaXQgTW9kYWwgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjZWRpdEFjdGl2ZURpcmVjdG9yeU1vZGFsIGxldC1tb2RhbD5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHBiLTAgYm9yZGVyLTAganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCI+XHJcbiAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1iLTEzIHRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX0ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWN0aXZlRGlyZWN0b3J5XCIpfX1cclxuICAgICAgPC9oMT5cclxuICAgIDwvZGl2PlxyXG4gICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybU9wdGlvbnNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlZGl0TmFtZVwiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zXCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImVkaXRMYW5ndWFnZU9wdGlvbnNcIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnNcIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgPGg2PlxyXG4gICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBRFR5cGVcIil9fVxyXG4gICAgICAgICAgPC9oNj5cclxuICAgICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgICAge3tlZGl0QURUeXBlTmFtZX19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cInNob3dXaW5kb3dzQ29udHJvbFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8aDY+XHJcbiAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSWRlbnRpZmllclwiKX19XHJcbiAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgICAgICB7e2VkaXRJZGVudGlmaWVyfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxoNj5cclxuICAgICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJUeXBlXCIpfX1cclxuICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgPGxhYmVsPlxyXG4gICAgICAgICAgICAgIHt7ZWRpdFdpbmRvd3NUeXBlTmFtZX19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZWRpdERvbWFpblwiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImVkaXRTYW1BY2NvdW50XCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlZGl0UGFzc3dvcmRcIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93QXp1cmVDb250cm9sXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImVkaXRUZW5hbnRJRFwiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlZGl0Q2xpZW50SURcIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZWRpdENsaWVudFNlY3JldFwiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICA8QkJTRi1Ub2dnbGVzbGlkZSBbb3B0aW9uc109XCJlZGl0SW5hY3RpdmVcIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1Ub2dnbGVzbGlkZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgIDxCQlNGLVRvZ2dsZXNsaWRlIFtvcHRpb25zXT1cImVkaXREYWlseUpvYlwiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLVRvZ2dsZXNsaWRlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGFtc3gtdGFibGUtdXNlcnNcIj5cclxuICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgIDx0aD57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJUeXBlXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJQcm9wZXJ0eVwiKX19PC90aD5cclxuICAgICAgICAgICAgICA8dGg+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWN0aXZlRGlyZWN0b3J5X1Byb3BlcnR5XCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJJbmNsdWRlSW5VcGRhdGVcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoPjwvdGg+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBlZGl0TWFwcGluZ3NPcHRpb25zO2xldCBpPWluZGV4O1wiPlxyXG5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwib3B0aW9uWzBdXCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cIm9wdGlvblsxXVwiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwib3B0aW9uWzJdXCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cIm9wdGlvblszXVwiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgICAgICAgICAgPCEtLUhpZGRlbiBpbmNsdWRlIGluIHVwZGF0ZSB2YWx1ZS0tPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJvcHRpb25bNF1cIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIiBbaGlkZGVuXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRleHQtY2VudGVyIGFsaWduLW1pZGRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJrdC1uYXZfX2xpbmtcIiAoY2xpY2spPVwiZGVsZXRlQURNYXBwaW5nKG9wdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJrdC1uYXZfX2xpbmstaWNvbiBmYSBmYS10cmFzaCBoaWRkZW5cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiNVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJ3LTEwMCBidG4gYnRuLXN1Y2Nlc3NcIiAoY2xpY2spPVwiYWRkQURNYXBwaW5nKClcIj5cclxuICAgICAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWRkTmV3UmVjb3JkXCIpfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICA8YnV0dG9uICNDbG9zZUVkaXRBRE1vZGFsIGlkPVwiQ2xvc2VFZGl0QURNb2RhbFwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IG1lLTMgYnRuLXNtXCI+XHJcbiAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L0JCU0YtRm9ybT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwhLS0gRGVsZXRlICBNb2RhbCAtLT5cclxuPEJCU0YtQ29uZmlybWF0aW9uTW9kYWwgKm5nSWY9XCJkZWxldGVDb250cm9sTG9hZGVkXCIgW29wdGlvbnNdPVwiZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9uc1wiIGlkPVwiZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sXCIgI2RlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbD48L0JCU0YtQ29uZmlybWF0aW9uTW9kYWw+XHJcblxyXG48IS0tIFN5bmNocm9uaXphdGlvbiAgTW9kYWwgLS0+XHJcbjxCQlNGLUNvbmZpcm1hdGlvbk1vZGFsICpuZ0lmPVwic3luY0NvbnRyb2xMb2FkZWRcIiBbb3B0aW9uc109XCJzeW5jQ29uZmlybWF0aW9uT3B0aW9uc1wiIGlkPVwic3luY0NvbmZpcm1hdGlvbk1vZGFsQ29udHJvbFwiICNzeW5jQ29uZmlybWF0aW9uTW9kYWxDb250cm9sPjwvQkJTRi1Db25maXJtYXRpb25Nb2RhbD5cclxuXHJcbjwhLS0gVmlldyBMYXN0IFJ1biBMb2dzIC0tPlxyXG48bmctdGVtcGxhdGUgI2xhc3RSdW5Mb2dzTW9kYWwgbGV0LW1vZGFsPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGgxIGNsYXNzPVwibWItM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGl2ZURpcmVjdG9yeUxhc3RSdW5Mb2dzXCIpfX0gOiB7e2FkQ29ubmVjdGlvbk5hbWV9fTwvaDE+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICA8cD57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJOYW1lXCIpfX0gOiB7e2FkQ29ubmVjdGlvbk5hbWV9fTwvcD5cclxuICAgICAgICAgIDxwcmUgY2xhc3M9XCJjb2wtbWQtMTJcIj57e2xhc3RSdW5Mb2dzfX08L3ByZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgPGJ1dHRvbiAjQ2xvc2VEZWZhdWx0UHJvdmlkZXJNb2RhbCBpZD1cIkNsb3NlRGVmYXVsdFByb3ZpZGVyTW9kYWxcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBidG4tc20gbWUtMyBcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNsb3NlXCIpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuIl19