ngx-wapp-components 1.24.5-alpha.1 → 1.24.5

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.
@@ -313,7 +313,7 @@ export class WFilterPanelComponent {
313
313
  this.defaultValues = qbPanelFilter.qbpanelToFields.map(panelToField => {
314
314
  return {
315
315
  qbfilterFieldId: panelToField.qbfilterFieldId,
316
- defaultValue: panelToField.defaultValue
316
+ defaultValue: this.defaultValueAdapter(panelToField.defaultValue)
317
317
  };
318
318
  });
319
319
  this.defaultOperators = qbPanelFilter.qbpanelToFields.map(panelToField => {
@@ -373,6 +373,15 @@ export class WFilterPanelComponent {
373
373
  this.initQueryBuilderControls();
374
374
  });
375
375
  }
376
+ defaultValueAdapter(value) {
377
+ if (value == 'QBFilterOptionsEnumNotNull') {
378
+ return 0;
379
+ }
380
+ if (value == 'QBFilterOptionsEnumNull') {
381
+ return 1;
382
+ }
383
+ return value;
384
+ }
376
385
  initQueryBuilder(filterEntities) {
377
386
  let entityConfigAux = { fields: {} };
378
387
  let entitiesArray = [];
@@ -617,4 +626,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
617
626
  type: ViewChild,
618
627
  args: ['advancedQueryBuilder', { static: false }]
619
628
  }] } });
620
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidy1maWx0ZXItcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2FwcC1jb21wb25lbnRzL3NyYy9saWIvbWlzYy93LWZpbHRlci1wYW5lbC93LWZpbHRlci1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93YXBwLWNvbXBvbmVudHMvc3JjL2xpYi9taXNjL3ctZmlsdGVyLXBhbmVsL3ctZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJL0UsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlckcsTUFBTSxPQUFPLHFCQUFxQjtJQW9HaEMsWUFDVSxXQUF3QixFQUN4QixVQUFzQixFQUN0QixjQUFxQztRQUZyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQW5HeEMsOEJBQXlCLEdBQVksS0FBSyxDQUFDO1FBRWxELHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsbUJBQWMsR0FBRyxjQUFjLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRzVDLGVBQVUsR0FBUTtZQUNoQixTQUFTLEVBQUUsS0FBSztZQUNoQixLQUFLLEVBQUUsRUFBRTtTQUNWLENBQUM7UUFDRixpQkFBWSxHQUFRO1lBQ2xCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLEtBQUssRUFBRSxFQUFFO1NBQ1YsQ0FBQztRQUNGLGtCQUFhLEdBQVE7WUFDbkIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsS0FBSyxFQUFFLEVBQUU7U0FDVixDQUFDO1FBRUYsd0JBQW1CLEdBQXVCLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3pELGFBQVEsR0FBVSxFQUFFLENBQUM7UUFDckIsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUIscUJBQWdCLEdBQVUsRUFBRSxDQUFDO1FBV08sOEJBQXlCLEdBQVksS0FBSyxDQUFDO1FBR2xELHVCQUFrQixHQUE0QjtZQUN6RSxtQkFBbUIsRUFBRSxjQUFjO1lBQ25DLHNCQUFzQixFQUFFLGlCQUFpQjtZQUN6QyxrQkFBa0IsRUFBRSxnQkFBZ0I7WUFDcEMsY0FBYyxFQUFFO2dCQUNkLGNBQWMsRUFBRSxLQUFLO2dCQUNyQixhQUFhLEVBQUUsSUFBSTtnQkFDbkIsa0JBQWtCLEVBQUUsWUFBWTtnQkFDaEMscUJBQXFCLEVBQUUsZ0JBQWdCO2dCQUN2Qyx3QkFBd0IsRUFBRSxpQkFBaUI7YUFDNUM7WUFDRCxZQUFZLEVBQUUsbUNBQW1DO1lBQ2pELGlCQUFpQixFQUFFLE9BQU87WUFDMUIsZ0JBQWdCLEVBQUUsT0FBTztZQUN6QixrQkFBa0IsRUFBRTtnQkFDbEIsT0FBTyxFQUFFO29CQUNMLElBQUksRUFBRSxNQUFNO29CQUNaLEtBQUssRUFBRSxPQUFPO2lCQUNqQjtnQkFDRCxPQUFPLEVBQUUsdUJBQXVCO2dCQUNoQyxJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixNQUFNLEVBQUUsaUJBQWlCO2dCQUN6QixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsUUFBUSxFQUFFLGVBQWU7YUFDMUI7WUFDRCxjQUFjLEVBQUUsQ0FBQztZQUNqQixTQUFTLEVBQUU7Z0JBQ1QsUUFBUSxFQUFDLFVBQVU7YUFDcEI7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxNQUFNO2dCQUNaLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixPQUFPLEVBQUUsU0FBUzthQUNuQjtZQUNELHFCQUFxQixFQUFFO2dCQUNyQixpQkFBaUIsRUFBRTtvQkFDakIsWUFBWSxFQUFFLGNBQWM7b0JBQzVCLGVBQWUsRUFBRSxXQUFXO2lCQUM3QjthQUNGO1lBQ0Qsb0JBQW9CLEVBQUU7Z0JBQ3BCLGVBQWUsRUFBRTtvQkFDZixZQUFZLEVBQUUsV0FBVztvQkFDekIsZUFBZSxFQUFFLFFBQVE7aUJBQzFCO2FBQ0Y7U0FDRixDQUFDO1FBRXVCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFDbEQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzlDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUVsRSxpQkFBWSxHQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBUWpMLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3JJLElBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGtCQUFrQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsSUFBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDbE0sWUFBWTtTQUNiO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxHQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7U0FDNUY7UUFDRCxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEUsSUFBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDckU7UUFFRCxJQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQWUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ2xNLFlBQVk7U0FDYjthQUFNO1lBQ0wsSUFBSSxTQUFTLEdBQWlCO2dCQUM1QixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUN0RyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUMvRyxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7YUFDeEosQ0FBQTtZQUVDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUM7aUJBQ3BDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNaLFNBQVMsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3JELFNBQVMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxRSxDQUFDLENBQUMsQ0FBQTtTQUNMO0lBQ0gsQ0FBQztJQUVELHlCQUF5QixDQUFDLElBQVUsRUFBRSxPQUErQjtRQUNuRSxJQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksTUFBTSxFQUFFO1lBQ2hELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMscUJBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQztTQUNyRjtRQUNELElBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxNQUFNLEVBQUU7WUFDcEQsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDZixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsZUFBZSxDQUFDO1NBQ3hGO1FBQ0QsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDO0lBQ3pELENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUFVO1FBQzdCLElBQUksT0FBTyxJQUFJLEtBQUssRUFBRTtZQUNwQixLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQW9CLEVBQUUsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksS0FBSyxDQUFDLEtBQUssWUFBWSxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUMzRCxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzthQUNwQjtTQUNGO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN4QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUM5RCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDVjtJQUNILENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxRQUFnQztRQUNyRCxLQUFLLE1BQU0sR0FBRyxJQUFJLFFBQVEsRUFBRTtZQUN4QixJQUFJLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzlCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDOUIsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtvQkFDeEMsT0FBTyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7aUJBQzVCO2FBQ0o7U0FDSjtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxPQUFPLEdBQWlCO1lBQzFCLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3pCLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDN0UsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ3hGLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQzlILENBQUE7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhCLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQWMsRUFBRSxFQUFFO1lBQzFELElBQUcsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUM7Z0JBQ3RCLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDdEY7UUFDSCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFjLEVBQUUsRUFBRTtZQUN6QixJQUFJLFdBQVcsR0FBMkI7Z0JBQ3hDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDakIsZUFBZSxFQUFFLE9BQU8sQ0FBQyxLQUFLO2dCQUM5QixrQkFBa0IsRUFBRSxPQUFPLENBQUMsUUFBUTtnQkFDcEMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLE9BQU87YUFDbkMsQ0FBQTtZQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUUsSUFBRyxXQUFXLENBQUMsa0JBQWtCLElBQUksV0FBVyxDQUFDLGtCQUFrQixDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUU7Z0JBQzlFLFlBQVk7YUFDYjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7YUFDekU7UUFDSCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRTtZQUMxQixPQUFPLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pELE9BQU8sR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUUsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHFCQUFxQixDQUFDLE9BQVc7UUFDL0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxPQUFPLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxPQUFxQjtRQUMxQyxJQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDbEUsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUE7U0FDakI7UUFDRCxJQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDNUQsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUE7U0FDakI7UUFDRCxJQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDaEUsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUE7U0FDakI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsNkJBQTZCLENBQUMsS0FBVTtRQUN0QyxJQUFJLE9BQU8sSUFBSSxLQUFLLEVBQUU7WUFDcEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFvQixFQUFFLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLEtBQUssQ0FBQyxRQUFRLEtBQUssWUFBWSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDbEosSUFBRyxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRTtvQkFDbkIsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7aUJBQzNCO2dCQUNELElBQUcsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUU7b0JBQ25CLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2lCQUN2QjtnQkFDRCxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQztJQUVELG9DQUFvQyxDQUFDLEtBQVU7UUFDN0MsSUFBSSxPQUFPLElBQUksS0FBSyxFQUFFO1lBQ3BCLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBb0IsRUFBRSxFQUFFO2dCQUMzQyxJQUFJLENBQUMsb0NBQW9DLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksUUFBUSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxNQUFNLEVBQUU7Z0JBQ25GLElBQUcsS0FBSyxDQUFDLFFBQVEsSUFBSSxRQUFRLEVBQUU7b0JBQzdCLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2lCQUNqQjtnQkFDRCxJQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO29CQUN6QixLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztpQkFDakI7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQztTQUM5QjthQUFNO1lBQ0wsSUFBRyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssRUFBRTtnQkFDeEQsT0FBTyxlQUFlLENBQUMsT0FBTyxDQUFBO2FBQy9CO2lCQUFNO2dCQUNMLE9BQU8sZUFBZSxDQUFDLFFBQVEsQ0FBQzthQUNqQztTQUNGO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFxQjtRQUM3QixJQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFO1lBQy9DLE9BQU8sQ0FBQyxLQUFNLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUssRUFBRSxFQUFFO2dCQUN4RCxPQUFPO29CQUNMLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztvQkFDZCxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7b0JBQ3BCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztvQkFDZCxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNO2lCQUNuRSxDQUFBO1lBQ0gsQ0FBQyxDQUFDLENBQUE7U0FDSDtJQUNILENBQUM7SUFFRCwwQkFBMEI7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUM3SCxTQUFTLENBQUMsQ0FBQyxhQUE0QixFQUFFLEVBQUU7WUFDMUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGFBQWEsQ0FBQztZQUN2QyxJQUFJLGNBQWMsR0FBYSxhQUFhLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDMUosSUFBSSxpQkFBaUIsR0FBYSxhQUFhLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUM5SixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUNwRSxPQUFPO29CQUNMLGVBQWUsRUFBRSxZQUFZLENBQUMsZUFBZTtvQkFDN0MsWUFBWSxFQUFFLFlBQVksQ0FBQyxZQUFZO2lCQUN4QyxDQUFBO1lBQ0gsQ0FBQyxDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQ3ZFLE9BQU87b0JBQ0wsZUFBZSxFQUFFLFlBQVksQ0FBQyxlQUFlO29CQUM3QyxpQkFBaUIsRUFBRSxZQUFZLENBQUMsaUJBQWlCO2lCQUNsRCxDQUFBO1lBQ0gsQ0FBQyxDQUFDLENBQUE7WUFDRixJQUFJLFlBQVksR0FBcUIsYUFBYSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQ3BGLE9BQU87b0JBQ0wsRUFBRSxFQUFFLFlBQVksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUU7b0JBQ2hELEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSztvQkFDekIsSUFBSSxFQUFFLFlBQVksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUk7b0JBQ3BELFFBQVEsRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRO29CQUM1RCxNQUFNLEVBQUUsRUFBRTtpQkFDWCxDQUFBO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLFlBQVksR0FBa0IsYUFBYSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDMUYsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQXNCLEVBQUUsS0FBYSxFQUFFLEVBQUU7Z0JBQzVELElBQUksTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQUUsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3hFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFFO1lBQ3hDLENBQUMsQ0FBQyxDQUFBO1lBRUYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNyRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUM5RixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hGLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztpQkFDbEQsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNkLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxJQUFJLFFBQVEsQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsQ0FBQztnQkFDMUssT0FBTztvQkFDTCxLQUFLLEVBQUUsUUFBUTtvQkFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFhO29CQUMzRCxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJO2lCQUM1RSxDQUFBO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFHLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQWUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtnQkFDeEosSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQzthQUNwRDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsVUFBVSxHQUFHO29CQUNoQixTQUFTLEVBQUUsS0FBSztvQkFDaEIsS0FBSyxFQUFFLEtBQUs7aUJBQ2IsQ0FBQzthQUNIO1lBQ0QsSUFBRyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUM5SixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUM7YUFDMUQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRztvQkFDbkIsU0FBUyxFQUFFLEtBQUs7b0JBQ2hCLEtBQUssRUFBRSxFQUFFO2lCQUNWLENBQUM7YUFDSDtZQUVILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDN0IsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsY0FBZ0M7UUFDL0MsSUFBSSxlQUFlLEdBQXVCLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3pELElBQUksYUFBYSxHQUFnQixFQUFFLENBQUM7UUFFcEMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUM5QixJQUFJLE1BQU0sR0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUMsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksV0FBVyxHQUFjLEVBQUUsQ0FBQztRQUVoQyxLQUFLLE1BQU0sTUFBTSxJQUFJLGFBQWEsRUFBRTtZQUNsQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRWpDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2pCLElBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtvQkFDbkMsSUFBSSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDN0UsSUFBSSxXQUFXLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsY0FBYyxJQUFJLEdBQUcsQ0FBQyxDQUFDO29CQUN6RixJQUFHLFdBQVcsRUFBRTt3QkFDZCxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFBO3FCQUNuRTt5QkFBTTt3QkFDTCxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO3FCQUMvQjtpQkFDRjtxQkFBTTtvQkFDTCxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2lCQUMvQjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsZUFBZSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7U0FDeEM7UUFFRCxJQUFJLE1BQU0sR0FBZSxFQUFFLENBQUM7UUFDNUIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ3RDLE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUF3QixFQUFFLEVBQUU7Z0JBQzdELElBQUksS0FBSyxHQUFXLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hFLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDekcsSUFBSSxLQUFLLEdBQVU7b0JBQ2pCLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRTtvQkFDbEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJO29CQUN0QixTQUFTLEVBQUUsZUFBZSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCO29CQUN2SyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO29CQUM1QyxZQUFZLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUM7b0JBQ25KLGVBQWUsRUFBRSxlQUFlLENBQUMsaUJBQWlCLEVBQUUsTUFBTTtvQkFDMUQsTUFBTSxFQUFFLFlBQVksQ0FBQyxRQUFRO29CQUM3QixPQUFPLEVBQUUsV0FBVyxDQUFDLFlBQVk7b0JBQ2pDLFNBQVMsRUFBRSxDQUFDLElBQVUsRUFBRSxNQUFlLEVBQWMsRUFBRTt3QkFDckQsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLGFBQWEsRUFBRTs0QkFDbEUsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7Z0NBQ2xHLE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLENBQUM7NkJBQ3BDO3lCQUNGO3dCQUNELE9BQU8sSUFBSSxDQUFDO29CQUNkLENBQUM7aUJBQ0YsQ0FBQTtnQkFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQztnQkFDaEYsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksU0FBUyxHQUFhLEVBQUUsQ0FBQztRQUU3QixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTtZQUMxQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2pCLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQUM7WUFFSCxlQUFlLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztTQUNwQztRQUNELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxTQUFjLEVBQUUsT0FBaUI7UUFDaEQsTUFBTSxjQUFjLEdBQVEsRUFBRSxDQUFDO1FBRS9CLEtBQUssTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUNsQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQzlCLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7YUFDN0I7U0FDRjtRQUVELE9BQU87WUFDTCxHQUFHLFNBQVM7WUFDWixNQUFNLEVBQUUsY0FBYztTQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUFnQjtRQUM5QixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRTtZQUN4QixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzlCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO2dCQUN4QixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDeEQ7U0FDRjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxLQUFZLEVBQUUsbUJBQTJCO1FBQy9ELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNqRCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2QixLQUFLLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDcEM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFVLEVBQUUsSUFBb0I7UUFDakQsSUFBRyxLQUFLLEVBQUU7WUFDUixJQUFHLElBQUksSUFBSSxjQUFjLENBQUMsT0FBTyxFQUFFO2dCQUNqQyxPQUFPLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUM7YUFDdkM7WUFDRCxJQUFHLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFDO2dCQUMvRyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QjtZQUNELElBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFO2dCQUM3QyxPQUFPLENBQUMsQ0FBQzthQUNWO1lBQ0QsSUFBRyxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUU7Z0JBQzVDLE9BQU8sQ0FBQyxDQUFDO2FBQ1Y7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFdBQVcsQ0FBQyxFQUFVO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3hFLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxJQUFTO1FBQ2hDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUM7WUFDOUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDO1lBQ25GLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssVUFBVSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqSTtRQUNELElBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDMUY7UUFDRCxJQUFHLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3hGO1FBQ0QsSUFBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDckI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFTO1FBQzNCLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFRLEVBQUUsRUFBRTtnQkFDcEMsSUFBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO2lCQUNyQjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUU7WUFDM0MsSUFBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFDO2dCQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTthQUNsQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQWlCLEVBQUUsTUFBZ0I7UUFDbkQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBRXBGLE9BQU8sVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNyRixDQUFDO0lBRUQsd0JBQXdCLENBQUMsT0FBK0I7UUFDdEQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBNEIsRUFBRSxFQUFFO1lBQ2xELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBc0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQzdFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBc0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWTtnQkFDMUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2FBQ3BCLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxPQUE4QjtRQUNwRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUEyQixFQUFFLEVBQUU7WUFDakQsT0FBTztnQkFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFxQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDNUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFxQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZO2dCQUN6RSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7YUFDcEIsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxTQUFpQixFQUFFLE1BQWdCO1FBQ2hELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQztRQUVwRixPQUFPLE1BQU0sQ0FBQyxVQUFXLENBQUMsQ0FBQyxJQUFJLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDdEYsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFVO1FBQ3RCLElBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxhQUFhLEVBQUU7WUFDckgsSUFBRyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNiLElBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7aUJBQ25CO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNiO2FBQU07WUFDTCxJQUFHLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2IsSUFBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2FBQ25CO1lBQ0QsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7O2tIQTlsQlUscUJBQXFCO3NHQUFyQixxQkFBcUIsNm9CQ3JCbEMsaWs5QkEyV0E7MkZEdFZhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxnQkFBZ0I7K0pBb0NULG1CQUFtQjtzQkFBbkMsS0FBSzt1QkFBQyxRQUFRO2dCQUNZLGdCQUFnQjtzQkFBMUMsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBQ0ksa0JBQWtCO3NCQUE5QyxLQUFLO3VCQUFDLG9CQUFvQjtnQkFDWCxLQUFLO3NCQUFwQixLQUFLO3VCQUFDLE9BQU87Z0JBQ1ksZUFBZTtzQkFBeEMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBQ0ksaUJBQWlCO3NCQUE1QyxLQUFLO3VCQUFDLG1CQUFtQjtnQkFDUCxRQUFRO3NCQUExQixLQUFLO3VCQUFDLFVBQVU7Z0JBQ21CLHlCQUF5QjtzQkFBNUQsS0FBSzt1QkFBQywyQkFBMkI7Z0JBQ2YsUUFBUTtzQkFBMUIsS0FBSzt1QkFBQyxVQUFVO2dCQUVZLGtCQUFrQjtzQkFBOUMsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBa0RGLGFBQWE7c0JBQXJDLE1BQU07dUJBQUMsZUFBZTtnQkFDQyxZQUFZO3NCQUFuQyxNQUFNO3VCQUFDLGNBQWM7Z0JBQ0QsU0FBUztzQkFBN0IsTUFBTTt1QkFBQyxXQUFXO2dCQUltQyxZQUFZO3NCQUFqRSxTQUFTO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9wZXJhdG9yRW51bSwgUUJEYXRhVHlwZUVudW0gfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL2VudW1zLm1vZGVsJztcclxuaW1wb3J0IHsgUWJQYW5lbEZpbHRlciB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvZmlsdGVyLXBhbmVsL3FiLXBhbmVsLWZpbHRlci5tb2RlbCc7XHJcbmltcG9ydCB7IEVudGl0eSwgRW50aXR5TWFwLCBGaWVsZCwgRmllbGRNYXAsIFF1ZXJ5QnVpbGRlckNvbmZpZywgUnVsZSwgUnVsZVNldCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvZmlsdGVyLXBhbmVsL2ZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgRmlsdGVyUGFuZWxUcmFuc2xhdGlvbnMgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL2ZpbHRlci1wYW5lbC9maWx0ZXItcGFuZWwtdHJhbnNsYXRpb25zLm1vZGVsJztcclxuaW1wb3J0IHsgUXVlcnlSZXN1bHRUeXBlLCBRdWVyeVJlc3VsdHMgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL2ZpbHRlci1wYW5lbC9xdWVyeS1yZXN1bHRzLm1vZGVsJztcclxuaW1wb3J0IHsgRmlsdGVyRmllbGQgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL2ZpbHRlci1wYW5lbC9maWx0ZXItZmllbGQubW9kZWxzJztcclxuaW1wb3J0IHsgUWJGaWx0ZXJFbnRpdHkgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL2ZpbHRlci1wYW5lbC9xYi1maWx0ZXItZW50aXR5Lm1vZGVsJztcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlL2FwaS9hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JlZEZpbHRlclBhbmVsUXVlcnkgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL3N0b3JlZC1maWx0ZXItcGFuZWwtcXVlcnkubW9kZWwnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvc2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOdWxsYWJsZVNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvZmlsdGVyLXBhbmVsL251bGxhYmxlLXNlbGVjdC1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBCb29sZWFuU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9maWx0ZXItcGFuZWwvYm9vbGVhbi1zZWxlY3Qtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgUXVlcnlCdWlsZGVyQ29tcG9uZW50IH0gZnJvbSAnYW5ndWxhcjItcXVlcnktYnVpbGRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3ctZmlsdGVyLXBhbmVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdy1maWx0ZXItcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ctZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFdGaWx0ZXJQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIHF1ZXJ5Q3RybCE6IEZvcm1Db250cm9sO1xyXG4gIHB1YmxpYyBhZHZhbmNlZFF1ZXJ5Q3RybCE6IEZvcm1Db250cm9sO1xyXG4gIHB1YmxpYyBncm91cGVkUXVlcnlDdHJsITogRm9ybUNvbnRyb2w7XHJcbiAgcHVibGljIHBlcnNpc3RWYWx1ZU9uRmllbGRDaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICBxdWVyeUNvbmZpZ1JlYWR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNBZHZhbmNlZFNlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHFiRGF0YVR5cGVFbnVtID0gUUJEYXRhVHlwZUVudW07XHJcbiAgcWJEYXRhRW51bXMgPSBPYmplY3QudmFsdWVzKFFCRGF0YVR5cGVFbnVtKTtcclxuICBiYXNpY1F1ZXJ5Q29uZmlnITogYW55O1xyXG4gIGFkdmFuY2VkUXVlcnlDb25maWchOiBhbnk7XHJcbiAgYmFzaWNRdWVyeTogYW55ID0ge1xyXG4gICAgY29uZGl0aW9uOiAnYW5kJyxcclxuICAgIHJ1bGVzOiBbXVxyXG4gIH07XHJcbiAgZ3JvdXBlZFF1ZXJ5OiBhbnkgPSB7XHJcbiAgICBjb25kaXRpb246ICdhbmQnLFxyXG4gICAgcnVsZXM6IFtdXHJcbiAgfTtcclxuICBhZHZhbmNlZFF1ZXJ5OiBhbnkgPSB7XHJcbiAgICBjb25kaXRpb246ICdhbmQnLFxyXG4gICAgcnVsZXM6IFtdXHJcbiAgfTtcclxuICBmaWx0ZXJQYW5lbE9iamVjdCE6IFFiUGFuZWxGaWx0ZXI7XHJcbiAgZW50aXR5Q29uZmlnR3JvdXBlZDogUXVlcnlCdWlsZGVyQ29uZmlnID0geyBmaWVsZHM6IHt9IH07XHJcbiAgZW50aXRpZXM6IGFueVtdID0gW107XHJcbiAgZGVmYXVsdFZhbHVlczogYW55W10gPSBbXTtcclxuICBkZWZhdWx0T3BlcmF0b3JzOiBhbnlbXSA9IFtdO1xyXG4gIHN0b3JlZFF1ZXJ5ITogU3RvcmVkRmlsdGVyUGFuZWxRdWVyeTtcclxuICBwYXJlbnRSb3V0ZSE6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCdhcGlVcmwnKSBhdXRob3JpemF0aW9uQXBpVXJsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgnY29tbW9uRGF0YUFwaVVybCcpIGNvbW1vbkRhdGFBcGlVcmwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCdzZWdtZW50YXRpb25BcGlVcmwnKSBzZWdtZW50YXRpb25BcGlVcmwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCd0b2tlbicpIHRva2VuITogc3RyaW5nO1xyXG4gIEBJbnB1dCgnY29tbW9uRGF0YVRva2VuJykgY29tbW9uRGF0YVRva2VuITogc3RyaW5nO1xyXG4gIEBJbnB1dCgnc2VnbWVudGF0aW9uVG9rZW4nKSBzZWdtZW50YXRpb25Ub2tlbiE6IHN0cmluZztcclxuICBASW5wdXQoJ2ZpbHRlcklkJykgZmlsdGVySWQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCdkYXRhSXNMb2FkaW5nU2VhcmNoQnV0dG9uJykgZGF0YUlzTG9hZGluZ1NlYXJjaEJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgndGVuYW50SWQnKSB0ZW5hbnRJZCE6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCd0cmFuc2xhdGlvbnNPYmplY3QnKSB0cmFuc2xhdGlvbnNPYmplY3Q6IEZpbHRlclBhbmVsVHJhbnNsYXRpb25zID0ge1xyXG4gICAgYmFzaWNTZWFyY2hUYWJMYWJlbDogJ0Jhc2ljIHNlYXJjaCcsXHJcbiAgICBhZHZhbmNlZFNlYXJjaFRhYkxhYmVsOiAnQWR2YW5jZWQgc2VhcmNoJyxcclxuICAgIGdyb3VwZWRGaWx0ZXJUaXRsZTogJ0dyb3VwZWQgZmlsdGVyJyxcclxuICAgIGFkdmFuY2VkU2VhcmNoOiB7XHJcbiAgICAgIGFuZEJ1dHRvbkxhYmVsOiAnQW5kJyxcclxuICAgICAgb3JCdXR0b25MYWJlbDogJ09yJyxcclxuICAgICAgYWRkUnVsZUJ1dHRvbkxhYmVsOiAnQWRkIGZpbHRlcicsXHJcbiAgICAgIGFkZFJ1bGVTZXRCdXR0b25MYWJlbDogJ0FkZCBmaWx0ZXIgc2V0JyxcclxuICAgICAgcmVtb3ZlUnVsZVNldEJ1dHRvbkxhYmVsOiAnUmVtb3ZlIHJ1bGUgc2V0J1xyXG4gICAgfSxcclxuICAgIG5vUnVsZXNMYWJlbDogJ0FkZCBmaWx0ZXIgb3IgZmlsdGVyIHNldCB0byBzdGFydCcsXHJcbiAgICBzZWFyY2hCdXR0b25MYWJlbDogJ0NsZWFyJyxcclxuICAgIGNsZWFyQnV0dG9uTGFiZWw6ICdDbGVhcicsXHJcbiAgICBmaWVsZHNQbGFjZWhvbGRlcnM6IHtcclxuICAgICAgYm9vbGVhbjoge1xyXG4gICAgICAgICAgdHJ1ZTogJ1RydWUnLFxyXG4gICAgICAgICAgZmFsc2U6ICdGYWxzZSdcclxuICAgICAgfSxcclxuICAgICAgZGVjaW1hbDogJ0luc2VydCBkZWNpbWFsIG51bWJlcicsXHJcbiAgICAgIGxpc3Q6ICdTZWxlY3QgYW4gb3B0aW9uJyxcclxuICAgICAgbnVtYmVyOiAnSW5zZXJ0IGEgbnVtYmVyJyxcclxuICAgICAgdGV4dDogJ0luc2VydCB0ZXh0JyxcclxuICAgICAgZGF0ZXRpbWU6ICdTZWxlY3QgYSBkYXRlJ1xyXG4gICAgfSxcclxuICAgIGZpcnN0RGF5T2ZXZWVrOiAwLFxyXG4gICAgb3BlcmF0b3JzOiB7XHJcbiAgICAgIGNvbnRhaW5zOidjb250YWlucydcclxuICAgIH0sXHJcbiAgICBmaWVsZHM6IHtcclxuICAgICAgSWRsZURlYWRsaW5lOiAnSWQnLFxyXG4gICAgICBuYW1lOiAnTmFtZScsXHJcbiAgICAgIGNvZGU6ICdDb2RlJyxcclxuICAgICAgZGVsZXRlOiAnRGVsZXRlZCcsXHJcbiAgICAgIGNvdW50cnk6ICdDb3VudHJ5J1xyXG4gICAgfSxcclxuICAgIG51bGxhYmxlU2VsZWN0T3B0aW9uczoge1xyXG4gICAgICBjdXN0b21lcm9wZXJhdGlvbjoge1xyXG4gICAgICAgIGlzTnVsbE9wdGlvbjogJ05vIGN1c3RvbWVycycsXHJcbiAgICAgICAgaXNOb3ROdWxsT3B0aW9uOiAnQ3VzdG9tZXJzJ1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgYm9vbGVhblNlbGVjdE9wdGlvbnM6IHtcclxuICAgICAgdm9pZGVkb3BlcmF0aW9uOiB7XHJcbiAgICAgICAgaXNOdWxsT3B0aW9uOiAnTm8gdm9pZGVkJyxcclxuICAgICAgICBpc05vdE51bGxPcHRpb246ICdWb2lkZWQnXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIFxyXG4gIEBPdXRwdXQoJ3NlYXJjaENsaWNrZWQnKSBzZWFyY2hDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxRdWVyeVJlc3VsdHM+KCk7XHJcbiAgQE91dHB1dCgnY2xlYXJDbGlja2VkJykgY2xlYXJDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoJ2xhc3RRdWVyeScpIGxhc3RRdWVyeSA9IG5ldyBFdmVudEVtaXR0ZXI8UXVlcnlSZXN1bHRzPigpO1xyXG4gIFxyXG4gIHN0YXRlT3B0aW9uczogYW55W10gPSBbeyBsYWJlbDogdGhpcy50cmFuc2xhdGlvbnNPYmplY3QuYWR2YW5jZWRTZWFyY2guYW5kQnV0dG9uTGFiZWwsIHZhbHVlOiAnYW5kJyB9LCB7IGxhYmVsOiB0aGlzLnRyYW5zbGF0aW9uc09iamVjdC5hZHZhbmNlZFNlYXJjaC5vckJ1dHRvbkxhYmVsLCB2YWx1ZTogJ29yJyB9XTtcclxuICBcclxuICBAVmlld0NoaWxkKCdhZHZhbmNlZFF1ZXJ5QnVpbGRlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBxdWVyeUJ1aWxkZXIhOiBRdWVyeUJ1aWxkZXJDb21wb25lbnQ7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgXHJcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNlc3Npb25TdG9yYWdlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaXNBZHZhbmNlZFNlYXJjaCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0TGFzdEZpbHRlclBhbmVsUXVlcnkodGhpcy50ZW5hbnRJZCwgdGhpcy5maWx0ZXJJZCk/LmFkdmFuY2VkUXVlcnlWYWx1ZSA/IHRydWUgOiBmYWxzZTtcclxuICAgIGlmKCh0aGlzLnN0b3JlZFF1ZXJ5Py5hZHZhbmNlZFF1ZXJ5VmFsdWUgJiYgdGhpcy5zdG9yZWRRdWVyeT8uYWR2YW5jZWRRdWVyeVZhbHVlLnJ1bGVzLmxlbmd0aCA9PSAwKSB8fCAgKHRoaXMuc3RvcmVkUXVlcnk/LmJhc2ljUXVlcnlWYWx1ZSAmJiB0aGlzLnN0b3JlZFF1ZXJ5Py5iYXNpY1F1ZXJ5VmFsdWUucnVsZXMubGVuZ3RoID09IDApKSB7XHJcbiAgICAgIC8vRG8gbm90aGluZ1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zdG9yZWRRdWVyeT0gdGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRMYXN0RmlsdGVyUGFuZWxRdWVyeSh0aGlzLnRlbmFudElkLCB0aGlzLmZpbHRlcklkKVxyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRRdWVyeUJ1aWxkZXJGaWx0ZXJQYW5lbCgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdFF1ZXJ5QnVpbGRlckNvbnRyb2xzKCkge1xyXG4gICAgdGhpcy5xdWVyeUN0cmwgPSB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wodGhpcy5iYXNpY1F1ZXJ5KTtcclxuICAgIHRoaXMuYWR2YW5jZWRRdWVyeUN0cmwgPSB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wodGhpcy5hZHZhbmNlZFF1ZXJ5KTtcclxuICAgIGlmKHRoaXMuZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dHcm91cGVkKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXBlZFF1ZXJ5Q3RybCA9IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh0aGlzLmdyb3VwZWRRdWVyeSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKCh0aGlzLnN0b3JlZFF1ZXJ5Py5hZHZhbmNlZFF1ZXJ5VmFsdWUgJiYgdGhpcy5zdG9yZWRRdWVyeT8uYWR2YW5jZWRRdWVyeVZhbHVlLnJ1bGVzLmxlbmd0aCA9PSAwKSB8fCAgKHRoaXMuc3RvcmVkUXVlcnk/LmJhc2ljUXVlcnlWYWx1ZSAmJiB0aGlzLnN0b3JlZFF1ZXJ5Py5iYXNpY1F1ZXJ5VmFsdWUucnVsZXMubGVuZ3RoID09IDApKSB7XHJcbiAgICAgIC8vRG8gbm90aGluZ1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGxhc3RRdWVyeTogUXVlcnlSZXN1bHRzID0ge1xyXG4gICAgICAgIHR5cGU6IHRoaXMuZ2V0UXVlcnlUeXBlKCksXHJcbiAgICAgICAgYmFzaWM6IHRoaXMuc3RvcmVkUXVlcnk/LmJhc2ljUXVlcnlWYWx1ZSA/IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc3RvcmVkUXVlcnk/LmJhc2ljUXVlcnlWYWx1ZSkgOiBudWxsLFxyXG4gICAgICAgIGFkdmFuY2VkOiB0aGlzLnN0b3JlZFF1ZXJ5Py5hZHZhbmNlZFF1ZXJ5VmFsdWUgPyBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnN0b3JlZFF1ZXJ5Py5hZHZhbmNlZFF1ZXJ5VmFsdWUpIDogbnVsbCxcclxuICAgICAgICBncm91cGVkOiB0aGlzLmlzQWR2YW5jZWRTZWFyY2ggJiYgdGhpcy5maWx0ZXJQYW5lbE9iamVjdC5hbGxvd0dyb3VwZWQgJiYgdGhpcy5ncm91cGVkUXVlcnlDdHJsID8gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5ncm91cGVkUXVlcnlDdHJsPy52YWx1ZSkgOiBudWxsXHJcbiAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZXROb0ZpbHRlcnNRdWVyeVR5cGUobGFzdFF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgIGxhc3RRdWVyeSA9IHRoaXMuZGVsZXRlRmllbGRzV2l0aG91dFZhbHVlKGxhc3RRdWVyeSk7XHJcbiAgICAgICAgICBsYXN0UXVlcnkgPSB0aGlzLmhhbmRsZUVtcHR5RmllbGRzUXVlcnkobGFzdFF1ZXJ5KTtcclxuICAgICAgICAgIHRoaXMubGFzdFF1ZXJ5LmVtaXQobGFzdFF1ZXJ5KTtcclxuICAgICAgICB9KS50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaW52ZXJzZU51bGxhYmxlRmlsdGVyT3BlcmF0aW9uSGFuZGxlKHRoaXMuYWR2YW5jZWRRdWVyeUN0cmwudmFsdWUpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBudWxsYWJsZVNlbGVjdFBsYWNlaG9sZGVyKHJ1bGU6IFJ1bGUsIG9wdGlvbnM6IE51bGxhYmxlU2VsZWN0T3B0aW9uW10pIHtcclxuICAgIGlmKHJ1bGUub3BlcmF0b3IgPT0gJ2lzJyAmJiBydWxlLnZhbHVlID09ICdudWxsJykge1xyXG4gICAgICBydWxlLnZhbHVlID0gMDtcclxuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25zT2JqZWN0Lm51bGxhYmxlU2VsZWN0T3B0aW9ucyFbb3B0aW9uc1swXS5uYW1lXS5pc051bGxPcHRpb247XHJcbiAgICB9XHJcbiAgICBpZihydWxlLm9wZXJhdG9yID09ICdpcyBub3QnICYmIHJ1bGUudmFsdWUgPT0gJ251bGwnKSB7XHJcbiAgICAgIHJ1bGUudmFsdWUgPSAxO1xyXG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvbnNPYmplY3QubnVsbGFibGVTZWxlY3RPcHRpb25zIVtvcHRpb25zWzBdLm5hbWVdLmlzTm90TnVsbE9wdGlvbjtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubGlzdDtcclxuICB9XHJcbiAgXHJcbiAgc2V0RW10cHlBcnJheXNUb051bGwocXVlcnk6IGFueSkge1xyXG4gICAgaWYgKFwicnVsZXNcIiBpbiBxdWVyeSkge1xyXG4gICAgICBxdWVyeS5ydWxlcy5mb3JFYWNoKChydWxlOiBSdWxlU2V0IHwgUnVsZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0RW10cHlBcnJheXNUb051bGwocnVsZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHF1ZXJ5LnZhbHVlIGluc3RhbmNlb2YgQXJyYXkgJiYgcXVlcnkudmFsdWUubGVuZ3RoID09IDApIHtcclxuICAgICAgICBxdWVyeS52YWx1ZSA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVNlYXJjaFR5cGUoKSB7XHJcbiAgICB0aGlzLmlzQWR2YW5jZWRTZWFyY2ggPSAhdGhpcy5pc0FkdmFuY2VkU2VhcmNoO1xyXG4gICAgaWYodGhpcy5pc0FkdmFuY2VkU2VhcmNoKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudXBkYXRlTnVsbGFibGVFbGVtZW50cyh0aGlzLnF1ZXJ5QnVpbGRlci5jb25maWcuZmllbGRzKVxyXG4gICAgICB9LCAzMDAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZU51bGxhYmxlRWxlbWVudHMoZWxlbWVudHM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiB2b2lkIHtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGVsZW1lbnRzKSB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnRzLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRzW2tleV07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50Lm9wZXJhdG9ycy5pbmNsdWRlcygnbnVsbGFibGUnKSkge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudC5kZWZhdWx0VmFsdWUgPSAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hDbGlja2VkKCkge1xyXG4gICAgbGV0IHF1ZXJpZXM6IFF1ZXJ5UmVzdWx0cyA9IHtcclxuICAgICAgdHlwZTogdGhpcy5nZXRRdWVyeVR5cGUoKSxcclxuICAgICAgYmFzaWM6IHRoaXMuaXNBZHZhbmNlZFNlYXJjaCA/IG51bGwgOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnF1ZXJ5Q3RybC52YWx1ZSksXHJcbiAgICAgIGFkdmFuY2VkOiB0aGlzLmlzQWR2YW5jZWRTZWFyY2ggPyBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmFkdmFuY2VkUXVlcnlDdHJsLnZhbHVlKSA6IG51bGwsXHJcbiAgICAgIGdyb3VwZWQ6IHRoaXMuaXNBZHZhbmNlZFNlYXJjaCAmJiB0aGlzLmZpbHRlclBhbmVsT2JqZWN0LmFsbG93R3JvdXBlZCA/IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZ3JvdXBlZFF1ZXJ5Q3RybC52YWx1ZSkgOiBudWxsXHJcbiAgICB9XHJcbiAgICBcclxuICAgIHRoaXMuc2V0RW50aXR5KHF1ZXJpZXMpO1xyXG5cclxuICAgIHF1ZXJpZXMgPSB0aGlzLmluaXRpYWxpemVPcGVyYXRvcnMocXVlcmllcyk7XHJcbiAgICBcclxuICAgIHRoaXMuc2V0Tm9GaWx0ZXJzUXVlcnlUeXBlKHF1ZXJpZXMpLnRoZW4oKHJlc1F1ZXJpZXM6YW55KSA9PiB7XHJcbiAgICAgIGlmKHJlc1F1ZXJpZXMudHlwZSAhPSAwKXtcclxuICAgICAgICB0aGlzLm51bGxhYmxlRmlsdGVyT3BlcmF0aW9uSGFuZGxlKHF1ZXJpZXMuYmFzaWMgPyBxdWVyaWVzLmJhc2ljIDogcXVlcmllcy5hZHZhbmNlZCk7XHJcbiAgICAgIH1cclxuICAgIH0pLnRoZW4oKHJlc1F1ZXJpZXM6YW55KSA9PiB7XHJcbiAgICAgIGxldCBzdG9yZWRRdWVyeTogU3RvcmVkRmlsdGVyUGFuZWxRdWVyeSA9IHtcclxuICAgICAgICBpZDogdGhpcy5maWx0ZXJJZCxcclxuICAgICAgICBiYXNpY1F1ZXJ5VmFsdWU6IHF1ZXJpZXMuYmFzaWMsXHJcbiAgICAgICAgYWR2YW5jZWRRdWVyeVZhbHVlOiBxdWVyaWVzLmFkdmFuY2VkLFxyXG4gICAgICAgIGdyb3VwZWRRdWVyeVZhbHVlOiBxdWVyaWVzLmdyb3VwZWRcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldEVtdHB5QXJyYXlzVG9OdWxsKHF1ZXJpZXMuYmFzaWMgPyBxdWVyaWVzLmJhc2ljIDogcXVlcmllcy5hZHZhbmNlZCk7XHJcbiAgICAgIGlmKHN0b3JlZFF1ZXJ5LmFkdmFuY2VkUXVlcnlWYWx1ZSAmJiBzdG9yZWRRdWVyeS5hZHZhbmNlZFF1ZXJ5VmFsdWUucnVsZXMgPT0gMCkge1xyXG4gICAgICAgIC8vRG8gbm90aGluZ1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0TGFzdEZpbHRlclBhbmVsUXVlcnkodGhpcy50ZW5hbnRJZCwgc3RvcmVkUXVlcnkpO1xyXG4gICAgICB9XHJcbiAgICB9KS50aGVuKChyZXNRdWVyaWVzOiBhbnkpID0+IHtcclxuICAgICAgcXVlcmllcyA9IHRoaXMuZGVsZXRlRmllbGRzV2l0aG91dFZhbHVlKHF1ZXJpZXMpO1xyXG4gICAgICBxdWVyaWVzID0gdGhpcy5oYW5kbGVFbXB0eUZpZWxkc1F1ZXJ5KHF1ZXJpZXMpO1xyXG4gICAgICB0aGlzLnNlYXJjaENsaWNrZWQuZW1pdChxdWVyaWVzKTtcclxuICAgIH0pLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLmludmVyc2VOdWxsYWJsZUZpbHRlck9wZXJhdGlvbkhhbmRsZSh0aGlzLmFkdmFuY2VkUXVlcnlDdHJsLnZhbHVlKTtcclxuICAgIH0pXHJcbiAgICAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBlbiBsYSBwcm9tZXNhOlwiLCBlcnJvcik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldE5vRmlsdGVyc1F1ZXJ5VHlwZShxdWVyaWVzOmFueSkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgcXVlcmllcyA9IHRoaXMuaGFuZGxlRW1wdHlGaWVsZHNRdWVyeShxdWVyaWVzKTtcclxuICAgICAgICByZXNvbHZlKHF1ZXJpZXMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyQ2xpY2tlZCgpIHtcclxuICAgIHRoaXMucmVzZXRCYXNpY1F1ZXJ5VmFsdWVzKCk7XHJcbiAgICB0aGlzLmFkdmFuY2VkUXVlcnkucnVsZXMgPSBbXTtcclxuICAgIHRoaXMuZ3JvdXBlZFF1ZXJ5LnJ1bGVzID0gW107XHJcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZUxhc3RGaWx0ZXJQYW5lbFF1ZXJ5KHRoaXMudGVuYW50SWQsIHRoaXMuZmlsdGVySWQpO1xyXG4gICAgdGhpcy5jbGVhckNsaWNrZWQuZW1pdCh0cnVlKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUVtcHR5RmllbGRzUXVlcnkocXVlcmllczogUXVlcnlSZXN1bHRzKTogUXVlcnlSZXN1bHRzIHtcclxuICAgIGlmKHF1ZXJpZXMuYWR2YW5jZWQgIT0gbnVsbCAmJiBxdWVyaWVzLmFkdmFuY2VkPy5ydWxlcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICBxdWVyaWVzLnR5cGUgPSAwXHJcbiAgICB9XHJcbiAgICBpZihxdWVyaWVzLmJhc2ljICE9IG51bGwgJiYgcXVlcmllcy5iYXNpYz8ucnVsZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgcXVlcmllcy50eXBlID0gMFxyXG4gICAgfVxyXG4gICAgaWYocXVlcmllcy5ncm91cGVkICE9IG51bGwgJiYgcXVlcmllcy5ncm91cGVkPy5ydWxlcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICBxdWVyaWVzLnR5cGUgPSAwXHJcbiAgICB9XHJcbiAgICByZXR1cm4gcXVlcmllcztcclxuICB9XHJcblxyXG4gIG51bGxhYmxlRmlsdGVyT3BlcmF0aW9uSGFuZGxlKHF1ZXJ5OiBhbnkpIHtcclxuICAgIGlmIChcInJ1bGVzXCIgaW4gcXVlcnkpIHtcclxuICAgICAgcXVlcnkucnVsZXMuZm9yRWFjaCgocnVsZTogUnVsZVNldCB8IFJ1bGUpID0+IHtcclxuICAgICAgICB0aGlzLm51bGxhYmxlRmlsdGVyT3BlcmF0aW9uSGFuZGxlKHJ1bGUpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChxdWVyeS5vcGVyYXRvciA9PT0gT3BlcmF0b3JFbnVtLk51bGxhYmxlIHx8ICgocXVlcnkub3BlcmF0b3IgPT0gJ2lzJyB8fCBxdWVyeS5vcGVyYXRvciA9PSAnaXMgbm90JykgJiYgKHF1ZXJ5LnZhbHVlID09IDEgfHwgcXVlcnkudmFsdWUgPT0gMCkpKSB7XHJcbiAgICAgICAgaWYocXVlcnkudmFsdWUgPT0gMSkge1xyXG4gICAgICAgICAgcXVlcnkub3BlcmF0b3IgPSAnaXMgbm90JztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYocXVlcnkudmFsdWUgPT0gMCkge1xyXG4gICAgICAgICAgcXVlcnkub3BlcmF0b3IgPSAnaXMnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBxdWVyeS52YWx1ZSA9ICdudWxsJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW52ZXJzZU51bGxhYmxlRmlsdGVyT3BlcmF0aW9uSGFuZGxlKHF1ZXJ5OiBhbnkpIHtcclxuICAgIGlmIChcInJ1bGVzXCIgaW4gcXVlcnkpIHtcclxuICAgICAgcXVlcnkucnVsZXMuZm9yRWFjaCgocnVsZTogUnVsZVNldCB8IFJ1bGUpID0+IHtcclxuICAgICAgICB0aGlzLmludmVyc2VOdWxsYWJsZUZpbHRlck9wZXJhdGlvbkhhbmRsZShydWxlKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoKHF1ZXJ5Lm9wZXJhdG9yID09ICdpcyBub3QnIHx8IHF1ZXJ5Lm9wZXJhdG9yID09ICdpcycpICYmIHF1ZXJ5LnZhbHVlID09ICdudWxsJykge1xyXG4gICAgICAgIGlmKHF1ZXJ5Lm9wZXJhdG9yID09ICdpcyBub3QnKSB7XHJcbiAgICAgICAgICBxdWVyeS52YWx1ZSA9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHF1ZXJ5Lm9wZXJhdG9yID09ICdpcycpIHtcclxuICAgICAgICAgIHF1ZXJ5LnZhbHVlID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFF1ZXJ5VHlwZSgpOiBRdWVyeVJlc3VsdFR5cGUge1xyXG4gICAgaWYoIXRoaXMuaXNBZHZhbmNlZFNlYXJjaCkge1xyXG4gICAgICByZXR1cm4gUXVlcnlSZXN1bHRUeXBlLkJhc2ljO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYodGhpcy5pc0FkdmFuY2VkU2VhcmNoICYmIHRoaXMuZ3JvdXBlZFF1ZXJ5Q3RybD8udmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gUXVlcnlSZXN1bHRUeXBlLkdyb3VwZWRcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gUXVlcnlSZXN1bHRUeXBlLkFkdmFuY2VkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRFbnRpdHkocXVlcmllczogUXVlcnlSZXN1bHRzKSB7XHJcbiAgICBpZih0aGlzLmdldFF1ZXJ5VHlwZSgpID09IFF1ZXJ5UmVzdWx0VHlwZS5CYXNpYykge1xyXG4gICAgICBxdWVyaWVzLmJhc2ljIS5ydWxlcyA9IHF1ZXJpZXMuYmFzaWMhLnJ1bGVzLm1hcCgocjphbnkpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgZmllbGQ6IHIuZmllbGQsXHJcbiAgICAgICAgICBvcGVyYXRvcjogci5vcGVyYXRvcixcclxuICAgICAgICAgIHZhbHVlOiByLnZhbHVlLFxyXG4gICAgICAgICAgZW50aXR5OiB0aGlzLmVudGl0aWVzLmZpbmQoZSA9PiBlLmZpZWxkSnNvbk5hbWUgPT0gci5maWVsZCkuZW50aXR5XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UXVlcnlCdWlsZGVyRmlsdGVyUGFuZWwoKSB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0RmlsdGVyUGFuZWwodGhpcy5hdXRob3JpemF0aW9uQXBpVXJsLCB0aGlzLnRva2VuLCB0aGlzLmNvbW1vbkRhdGFBcGlVcmwsIHRoaXMuY29tbW9uRGF0YVRva2VuLCB0aGlzLmZpbHRlcklkKVxyXG4gICAgICAuc3Vic2NyaWJlKChxYlBhbmVsRmlsdGVyOiBRYlBhbmVsRmlsdGVyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJQYW5lbE9iamVjdCA9IHFiUGFuZWxGaWx0ZXI7XHJcbiAgICAgICAgbGV0IGJhc2ljRmlsdGVySWRzOiBudW1iZXJbXSA9IHFiUGFuZWxGaWx0ZXIucWJwYW5lbFRvRmllbGRzLmZpbHRlcihwYW5lbFRvRmllbGQgPT4gcGFuZWxUb0ZpZWxkLmJhc2ljKS5tYXAocGFuZWxUb0ZpZWxkID0+IHBhbmVsVG9GaWVsZC5xYmZpbHRlckZpZWxkSWQpO1xyXG4gICAgICAgIGxldCBhZHZhbmNlZEZpbHRlcklkczogbnVtYmVyW10gPSBxYlBhbmVsRmlsdGVyLnFicGFuZWxUb0ZpZWxkcy5maWx0ZXIocGFuZWxUb0ZpZWxkID0+ICFwYW5lbFRvRmllbGQuYmFzaWMpLm1hcChwYW5lbFRvRmllbGQgPT4gcGFuZWxUb0ZpZWxkLnFiZmlsdGVyRmllbGRJZCk7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0VmFsdWVzID0gcWJQYW5lbEZpbHRlci5xYnBhbmVsVG9GaWVsZHMubWFwKHBhbmVsVG9GaWVsZCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBxYmZpbHRlckZpZWxkSWQ6IHBhbmVsVG9GaWVsZC5xYmZpbHRlckZpZWxkSWQsXHJcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogcGFuZWxUb0ZpZWxkLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0T3BlcmF0b3JzID0gcWJQYW5lbEZpbHRlci5xYnBhbmVsVG9GaWVsZHMubWFwKHBhbmVsVG9GaWVsZCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBxYmZpbHRlckZpZWxkSWQ6IHBhbmVsVG9GaWVsZC5xYmZpbHRlckZpZWxkSWQsXHJcbiAgICAgICAgICAgIHFiZGVmYXVsdE9wZXJhdG9yOiBwYW5lbFRvRmllbGQucWJkZWZhdWx0T3BlcmF0b3JcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIGxldCBmaWx0ZXJFbnRpdHk6IFFiRmlsdGVyRW50aXR5W10gPSBxYlBhbmVsRmlsdGVyLnFicGFuZWxUb0ZpZWxkcy5tYXAocGFuZWxUb0ZpZWxkID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkOiBwYW5lbFRvRmllbGQucWJmaWx0ZXJGaWVsZC5xYmZpbHRlckVudGl0eS5pZCwgXHJcbiAgICAgICAgICAgIGJhc2ljOiBwYW5lbFRvRmllbGQuYmFzaWMsXHJcbiAgICAgICAgICAgIG5hbWU6IHBhbmVsVG9GaWVsZC5xYmZpbHRlckZpZWxkLnFiZmlsdGVyRW50aXR5Lm5hbWUsIFxyXG4gICAgICAgICAgICBqc29uTmFtZTogcGFuZWxUb0ZpZWxkLnFiZmlsdGVyRmllbGQucWJmaWx0ZXJFbnRpdHkuanNvbk5hbWUsIFxyXG4gICAgICAgICAgICBmaWVsZHM6IFtdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGxldCBmaWx0ZXJGaWVsZHM6IEZpbHRlckZpZWxkW10gPSBxYlBhbmVsRmlsdGVyLnFicGFuZWxUb0ZpZWxkcy5tYXAocCA9PiBwLnFiZmlsdGVyRmllbGQpO1xyXG4gICAgICAgIGZpbHRlckVudGl0eS5mb3JFYWNoKChlbnRpdHk6IFFiRmlsdGVyRW50aXR5LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgbGV0IGZpZWxkcyA9IGZpbHRlckZpZWxkcy5maWx0ZXIoZSA9PiBlLnFiZmlsdGVyRW50aXR5LmlkID09IGVudGl0eS5pZCk7XHJcbiAgICAgICAgICAgZmlsdGVyRW50aXR5W2luZGV4XS5maWVsZHMgPSBmaWVsZHMgO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5iYXNpY1F1ZXJ5Q29uZmlnID0gdGhpcy5pbml0UXVlcnlCdWlsZGVyKGZpbHRlckVudGl0eSk7XHJcbiAgICAgICAgdGhpcy5iYXNpY1F1ZXJ5Q29uZmlnID0gdGhpcy5maWx0ZXJGaWVsZHNCeUlkKHRoaXMuYmFzaWNRdWVyeUNvbmZpZywgYmFzaWNGaWx0ZXJJZHMpO1xyXG4gICAgICAgIHRoaXMuYmFzaWNRdWVyeUNvbmZpZy5maWVsZHMgPSB0aGlzLnRyYW5zbGF0ZUZpZWxkcyh0aGlzLmJhc2ljUXVlcnlDb25maWcuZmllbGRzKTtcclxuICAgICAgICB0aGlzLmFkdmFuY2VkUXVlcnlDb25maWcgPSB0aGlzLmluaXRRdWVyeUJ1aWxkZXIoZmlsdGVyRW50aXR5KTtcclxuICAgICAgICB0aGlzLmFkdmFuY2VkUXVlcnlDb25maWcgPSB0aGlzLmZpbHRlckZpZWxkc0J5SWQodGhpcy5hZHZhbmNlZFF1ZXJ5Q29uZmlnLCBhZHZhbmNlZEZpbHRlcklkcyk7XHJcbiAgICAgICAgdGhpcy5hZHZhbmNlZFF1ZXJ5Q29uZmlnLmZpZWxkcyA9IHRoaXMudHJhbnNsYXRlRmllbGRzKHRoaXMuYWR2YW5jZWRRdWVyeUNvbmZpZy5maWVsZHMpO1xyXG4gICAgICAgIGxldCBydWxlcyA9IE9iamVjdC5rZXlzKHRoaXMuYmFzaWNRdWVyeUNvbmZpZy5maWVsZHMpXHJcbiAgICAgICAgICAubWFwKGZpZWxkS2V5ID0+IHsgXHJcbiAgICAgICAgICAgIGxldCBkZWZhdWx0T3BlcmF0b3IgPSB0aGlzLmRlZmF1bHRPcGVyYXRvcnMuZmluZChvcGVyYXRvciA9PiBvcGVyYXRvci5xYmZpbHRlckZpZWxkSWQgPT0gdGhpcy5iYXNpY1F1ZXJ5Q29uZmlnLmZpZWxkc1tmaWVsZEtleV0uaWQgJiYgb3BlcmF0b3IucWJkZWZhdWx0T3BlcmF0b3IgIT0gbnVsbCk7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgZmllbGQ6IGZpZWxkS2V5LCBcclxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5iYXNpY1F1ZXJ5Q29uZmlnLmZpZWxkc1tmaWVsZEtleV0uZGVmYXVsdFZhbHVlISxcclxuICAgICAgICAgICAgICBvcGVyYXRvcjogZGVmYXVsdE9wZXJhdG9yID8gZGVmYXVsdE9wZXJhdG9yLnFiZGVmYXVsdE9wZXJhdG9yLnN5bWJvbCA6IG51bGxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgaWYodGhpcy5zdG9yZWRRdWVyeSAmJiB0aGlzLnN0b3JlZFF1ZXJ5Py5pZCA9PSB0aGlzLmZpbHRlcklkICYmIHRoaXMuc3RvcmVkUXVlcnk/LmJhc2ljUXVlcnlWYWx1ZSAmJiB0aGlzLnN0b3JlZFF1ZXJ5Py5iYXNpY1F1ZXJ5VmFsdWUucnVsZXMubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgdGhpcy5iYXNpY1F1ZXJ5ID0gdGhpcy5zdG9yZWRRdWVyeS5iYXNpY1F1ZXJ5VmFsdWU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmJhc2ljUXVlcnkgPSB7XHJcbiAgICAgICAgICAgICAgY29uZGl0aW9uOiAnYW5kJyxcclxuICAgICAgICAgICAgICBydWxlczogcnVsZXNcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKHRoaXMuc3RvcmVkUXVlcnkgJiYgdGhpcy5zdG9yZWRRdWVyeT8uaWQgPT0gdGhpcy5maWx0ZXJJZCAmJiB0aGlzLnN0b3JlZFF1ZXJ5Py5hZHZhbmNlZFF1ZXJ5VmFsdWUgJiYgdGhpcy5zdG9yZWRRdWVyeT8uYWR2YW5jZWRRdWVyeVZhbHVlLnJ1bGVzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWR2YW5jZWRRdWVyeSA9IHRoaXMuc3RvcmVkUXVlcnkuYWR2YW5jZWRRdWVyeVZhbHVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hZHZhbmNlZFF1ZXJ5ID0ge1xyXG4gICAgICAgICAgICAgIGNvbmRpdGlvbjogJ2FuZCcsXHJcbiAgICAgICAgICAgICAgcnVsZXM6IFtdXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucXVlcnlDb25maWdSZWFkeSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pbml0UXVlcnlCdWlsZGVyQ29udHJvbHMoKTtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGluaXRRdWVyeUJ1aWxkZXIoZmlsdGVyRW50aXRpZXM6IFFiRmlsdGVyRW50aXR5W10pIHtcclxuICAgIGxldCBlbnRpdHlDb25maWdBdXg6IFF1ZXJ5QnVpbGRlckNvbmZpZyA9IHsgZmllbGRzOiB7fSB9O1xyXG4gICAgbGV0IGVudGl0aWVzQXJyYXk6IEVudGl0eU1hcFtdID0gW107XHJcbiAgICBcclxuICAgIGZpbHRlckVudGl0aWVzLm1hcCgoZSwgaW5kZXgpID0+IHtcclxuICAgICAgbGV0IGVudGl0eTogRW50aXR5ID0geyBuYW1lOiBlLmpzb25OYW1lIH07XHJcbiAgICAgIHJldHVybiBlbnRpdGllc0FycmF5W2luZGV4XSA9IHsgW2UuanNvbk5hbWVdOiBlbnRpdHkgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIGxldCBlbnRpdGllc01hcDogRW50aXR5TWFwID0ge307XHJcblxyXG4gICAgZm9yIChjb25zdCBlbnRpdHkgb2YgZW50aXRpZXNBcnJheSkge1xyXG4gICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoZW50aXR5KTtcclxuXHJcbiAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgIGlmKHRoaXMudHJhbnNsYXRpb25zT2JqZWN0LmVudGl0aWVzKSB7XHJcbiAgICAgICAgICBsZXQgZW50aXRpZXNUcmFuc2xhdGlvbnNLZXlzID0gT2JqZWN0LmtleXModGhpcy50cmFuc2xhdGlvbnNPYmplY3QuZW50aXRpZXMpO1xyXG4gICAgICAgICAgbGV0IHRyYW5zbGF0aW9uID0gZW50aXRpZXNUcmFuc2xhdGlvbnNLZXlzLmZpbmQodHJhbnNsYXRpb25LZXkgPT4gdHJhbnNsYXRpb25LZXkgPT0ga2V5KTtcclxuICAgICAgICAgIGlmKHRyYW5zbGF0aW9uKSB7XHJcbiAgICAgICAgICAgIGVudGl0aWVzTWFwW2tleV0gPSB7IG5hbWU6IHRoaXMudHJhbnNsYXRpb25zT2JqZWN0LmVudGl0aWVzW2tleV0gfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZW50aXRpZXNNYXBba2V5XSA9IGVudGl0eVtrZXldXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGVudGl0aWVzTWFwW2tleV0gPSBlbnRpdHlba2V5XVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBlbnRpdHlDb25maWdBdXguZW50aXRpZXMgPSBlbnRpdGllc01hcDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZmllbGRzOiBGaWVsZE1hcFtdID0gW107XHJcbiAgICBmaWx0ZXJFbnRpdGllcy5mb3JFYWNoKChmaWx0ZXJFbnRpdHkpID0+IHtcclxuICAgICAgcmV0dXJuIGZpbHRlckVudGl0eS5maWVsZHMuZmlsdGVyKChmaWx0ZXJGaWVsZDogRmlsdGVyRmllbGQpID0+IHtcclxuICAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IGZpZWxkcy5sZW5ndGggPz8gMDtcclxuICAgICAgICBsZXQgb3BlcmF0b3JzRmxhdEFycmF5ID0gZmlsdGVyRmllbGQub3BlcmF0b3JzLm1hcCgobzphbnkpID0+IG8uc3ltYm9sKTtcclxuICAgICAgICBsZXQgZGVmYXVsdE9wZXJhdG9yID0gdGhpcy5kZWZhdWx0T3BlcmF0b3JzLmZpbmQob3BlcmF0b3IgPT4gb3BlcmF0b3IucWJmaWx0ZXJGaWVsZElkID09IGZpbHRlckZpZWxkLmlkKTtcclxuICAgICAgICBsZXQgZmllbGQ6IEZpZWxkID0ge1xyXG4gICAgICAgICAgaWQ6IGZpbHRlckZpZWxkLmlkLFxyXG4gICAgICAgICAgbmFtZTogZmlsdGVyRmllbGQubmFtZSxcclxuICAgICAgICAgIG9wZXJhdG9yczogZGVmYXVsdE9wZXJhdG9yLnFiZGVmYXVsdE9wZXJhdG9yPy5zeW1ib2wgPyB0aGlzLm1vdmVFbGVtZW50VG9GaXJzdFBsYWNlKG9wZXJhdG9yc0ZsYXRBcnJheSwgZGVmYXVsdE9wZXJhdG9yLnFiZGVmYXVsdE9wZXJhdG9yPy5zeW1ib2wpIDogb3BlcmF0b3JzRmxhdEFycmF5LFxyXG4gICAgICAgICAgdHlwZTogdGhpcy5nZXREYXRhVHlwZShmaWx0ZXJGaWVsZC5kYXRhVHlwZSksXHJcbiAgICAgICAgICBkZWZhdWx0VmFsdWU6IHRoaXMuZm9ybWF0RGVmYXVsdFZhbHVlKHRoaXMuZGVmYXVsdFZhbHVlcy5maW5kKHZhbHVlID0+IHZhbHVlLnFiZmlsdGVyRmllbGRJZCA9PSBmaWx0ZXJGaWVsZC5pZCkuZGVmYXVsdFZhbHVlLCBmaWx0ZXJGaWVsZC5kYXRhVHlwZSksXHJcbiAgICAgICAgICBkZWZhdWx0T3BlcmF0b3I6IGRlZmF1bHRPcGVyYXRvci5xYmRlZmF1bHRPcGVyYXRvcj8uc3ltYm9sLFxyXG4gICAgICAgICAgZW50aXR5OiBmaWx0ZXJFbnRpdHkuanNvbk5hbWUsXHJcbiAgICAgICAgICBvcHRpb25zOiBmaWx0ZXJGaWVsZC5saXN0T2ZWYWx1ZXMsXHJcbiAgICAgICAgICB2YWxpZGF0b3I6IChydWxlOiBSdWxlLCBwYXJlbnQ6IFJ1bGVTZXQpOiBhbnkgfCBudWxsID0+IHtcclxuICAgICAgICAgICAgaWYgKHJ1bGUub3BlcmF0b3IgIT09IFwiaXMgbnVsbFwiICYmIHJ1bGUub3BlcmF0b3IgIT09IFwiaXMgbm90IG51bGxcIikge1xyXG4gICAgICAgICAgICAgIGlmIChydWxlLnZhbHVlID09PSB1bmRlZmluZWQgfHwgcnVsZS52YWx1ZSA9PT0gbnVsbCB8fCBydWxlLnZhbHVlID09PSAnJyB8fCBydWxlLnZhbHVlLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyByZXF1aXJlZDogJ2VtcHR5IGZpZWxkJyB9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5lbnRpdGllcy5wdXNoKHtmaWVsZEpzb25OYW1lOiBmaWx0ZXJGaWVsZC5qc29uTmFtZSwgZW50aXR5OiBmaWVsZC5lbnRpdHl9KTtcclxuICAgICAgICBmaWVsZHNbaW5kZXhdID0geyBbZmlsdGVyRmllbGQuanNvbk5hbWVdOiBmaWVsZCB9O1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIGxldCBmaWVsZHNNYXA6IEZpZWxkTWFwID0ge307XHJcblxyXG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcclxuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGZpZWxkKTtcclxuICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgZmllbGRzTWFwW2tleV0gPSBmaWVsZFtrZXldO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGVudGl0eUNvbmZpZ0F1eC5maWVsZHMgPSBmaWVsZHNNYXA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZW50aXR5Q29uZmlnQXV4O1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyRmllbGRzQnlJZChmaWVsZHNPYmo6IGFueSwgaWRBcnJheTogbnVtYmVyW10pOiBhbnkge1xyXG4gICAgY29uc3QgZmlsdGVyZWRGaWVsZHM6IGFueSA9IHt9O1xyXG4gICAgXHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBmaWVsZHNPYmouZmllbGRzKSB7XHJcbiAgICAgIGNvbnN0IGZpZWxkID0gZmllbGRzT2JqLmZpZWxkc1trZXldO1xyXG4gICAgICBpZiAoaWRBcnJheS5pbmNsdWRlcyhmaWVsZC5pZCkpIHtcclxuICAgICAgICBmaWx0ZXJlZEZpZWxkc1trZXldID0gZmllbGQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4uZmllbGRzT2JqLFxyXG4gICAgICBmaWVsZHM6IGZpbHRlcmVkRmllbGRzLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHRyYW5zbGF0ZUZpZWxkcyhmaWVsZHM6IEZpZWxkTWFwKSB7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBmaWVsZHMpIHtcclxuICAgICAgaWYgKGZpZWxkcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgZmllbGRzW2tleV0uZmllbGQgPSBrZXk7XHJcbiAgICAgICAgZmllbGRzW2tleV0ubmFtZSA9IHRoaXMudHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1trZXldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmllbGRzO1xyXG4gIH1cclxuXHJcbiAgbW92ZUVsZW1lbnRUb0ZpcnN0UGxhY2UoYXJyYXk6IGFueVtdLCBlbGVtZW50VG9GaXJzdFBsYWNlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gYXJyYXkuaW5kZXhPZihlbGVtZW50VG9GaXJzdFBsYWNlKTtcclxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgYXJyYXkuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgYXJyYXkudW5zaGlmdChlbGVtZW50VG9GaXJzdFBsYWNlKTsgXHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXREZWZhdWx0VmFsdWUodmFsdWU6IGFueSwgdHlwZTogUUJEYXRhVHlwZUVudW0pIHtcclxuICAgIGlmKHZhbHVlKSB7XHJcbiAgICAgIGlmKHR5cGUgPT0gUUJEYXRhVHlwZUVudW0uQm9vbGVhbikge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZSc7XHJcbiAgICAgIH1cclxuICAgICAgaWYodHlwZSA9PSB0aGlzLnFiRGF0YVR5cGVFbnVtLk51bWJlciB8fCB0eXBlID09IHRoaXMucWJEYXRhVHlwZUVudW0uRGVjaW1hbCB8fCB0eXBlID09IHRoaXMucWJEYXRhVHlwZUVudW0uTGlzdCl7XHJcbiAgICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYodHlwZSA9PSB0aGlzLnFiRGF0YVR5cGVFbnVtLk51bGxhYmxlU2VsZWN0KSB7XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIH1cclxuICAgICAgaWYodHlwZSA9PSB0aGlzLnFiRGF0YVR5cGVFbnVtLkJvb2xlYW5TZWxlY3QpIHtcclxuICAgICAgICByZXR1cm4gMDtcclxuICAgICAgfVxyXG4gICAgfSBcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldERhdGFUeXBlKGlkOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLnFiRGF0YUVudW1zLmZpbmQodmFsdWUgPT4gdmFsdWUgPT09IGlkKT8udG9TdHJpbmcoKSA/PyBcIlwiO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRmllbGRzV2l0aG91dFZhbHVlKGpzb246IGFueSkge1xyXG4gICAgaWYgKGpzb24uYmFzaWMgJiYganNvbi5iYXNpYy5ydWxlcykge1xyXG4gICAgICBqc29uLmJhc2ljLnJ1bGVzID0ganNvbi5iYXNpYy5ydWxlcy5maWx0ZXIoKHJ1bGU6IGFueSkgPT4gcnVsZS52YWx1ZSAhPSBudWxsKTtcclxuICAgICAganNvbi5iYXNpYy5ydWxlcyA9IGpzb24uYmFzaWMucnVsZXMuZmlsdGVyKChydWxlOiBhbnkpID0+IHJ1bGUudmFsdWUgIT0gdW5kZWZpbmVkKTtcclxuICAgICAganNvbi5iYXNpYy5ydWxlcyA9IGpzb24uYmFzaWMucnVsZXMuZmlsdGVyKChydWxlOiBhbnkpID0+IHJ1bGUudmFsdWUgIT09IFwiXCIpO1xyXG4gICAgICBqc29uLmJhc2ljLnJ1bGVzID0ganNvbi5iYXNpYy5ydWxlcy5maWx0ZXIoKHJ1bGU6IGFueSkgPT4geyByZXR1cm4gIShydWxlLm9wZXJhdG9yID09PSBcIm51bGxhYmxlXCIgJiYgcnVsZS52YWx1ZSA9PT0gXCJudWxsXCIpOyB9KTtcclxuICAgIH1cclxuICAgIGlmKGpzb24uYWR2YW5jZWQgJiYganNvbi5hZHZhbmNlZC5ydWxlcz8ubGVuZ3RoICE9IDApIHtcclxuICAgICAganNvbi5hZHZhbmNlZC5ydWxlcyA9IGpzb24uYWR2YW5jZWQucnVsZXMuZmlsdGVyKChydWxlOiBhbnkpID0+IHJ1bGUucnVsZXM/Lmxlbmd0aCAhPSAwKTtcclxuICAgIH1cclxuICAgIGlmKGpzb24uZ3JvdXBlZCAmJiBqc29uLmdyb3VwZWQ/LnJ1bGVzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgIGpzb24uZ3JvdXBlZC5ydWxlcyA9IGpzb24uZ3JvdXBlZC5ydWxlcy5maWx0ZXIoKHJ1bGU6IGFueSkgPT4gcnVsZS5ydWxlcz8ubGVuZ3RoICE9IDApO1xyXG4gICAgfVxyXG4gICAgaWYoanNvbi5ncm91cGVkICYmIGpzb24uZ3JvdXBlZD8ucnVsZXMubGVuZ3RoID09IDApIHtcclxuICAgICAganNvbi5ncm91cGVkID0gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiBqc29uO1xyXG4gIH1cclxuICBcclxuICBpbml0aWFsaXplT3BlcmF0b3JzKGpzb246IGFueSkge1xyXG4gICAgaWYgKGpzb24uYmFzaWMgJiYganNvbi5iYXNpYy5ydWxlcykge1xyXG4gICAgICBqc29uLmJhc2ljLnJ1bGVzLmZvckVhY2goKHJ1bGU6YW55KSA9PiB7XHJcbiAgICAgICAgaWYoIXJ1bGUub3BlcmF0b3IpIHtcclxuICAgICAgICAgIHJ1bGUub3BlcmF0b3IgPSBcIj1cIjtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGpzb247XHJcbiAgfVxyXG5cclxuICByZXNldEJhc2ljUXVlcnlWYWx1ZXMoKSB7XHJcbiAgICB0aGlzLmJhc2ljUXVlcnkucnVsZXMuZm9yRWFjaCgocnVsZTogUnVsZSkgPT4ge1xyXG4gICAgICBpZihydWxlLnZhbHVlIHx8IHJ1bGUudmFsdWUgPT0gMCl7XHJcbiAgICAgICAgcnVsZS52YWx1ZSA9IG51bGxcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRRdWVyeUZpZWxkTmFtZShmaWVsZE5hbWU6IHN0cmluZywgZmllbGRzOiBGaWVsZE1hcCkge1xyXG4gICAgY29uc3QgZmllbGRFbnRyeSA9IE9iamVjdC5rZXlzKGZpZWxkcykuZmluZChrZXkgPT4gZmllbGRzW2tleV0uZmllbGQgPT09IGZpZWxkTmFtZSk7XHJcblxyXG4gICAgcmV0dXJuIGZpZWxkRW50cnkgJiYgZmllbGRzW2ZpZWxkRW50cnldLm5hbWUgPyBmaWVsZHNbZmllbGRFbnRyeV0ubmFtZSA6IGZpZWxkTmFtZTtcclxuICB9XHJcblxyXG4gIGdldE51bGxhYmxlU2VsZWN0T3B0aW9ucyhvcHRpb25zOiBOdWxsYWJsZVNlbGVjdE9wdGlvbltdKSB7XHJcbiAgICByZXR1cm4gb3B0aW9ucy5tYXAoKG9wdGlvbjogTnVsbGFibGVTZWxlY3RPcHRpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBvcHRpb24udmFsdWUgPT09IDEgPyBcclxuICAgICAgICAgIHRoaXMudHJhbnNsYXRpb25zT2JqZWN0Lm51bGxhYmxlU2VsZWN0T3B0aW9ucyFbb3B0aW9uLm5hbWVdLmlzTm90TnVsbE9wdGlvbiA6XHJcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uc09iamVjdC5udWxsYWJsZVNlbGVjdE9wdGlvbnMhW29wdGlvbi5uYW1lXS5pc051bGxPcHRpb24sXHJcbiAgICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldEJvb2xlYW5TZWxlY3RPcHRpb25zKG9wdGlvbnM6IEJvb2xlYW5TZWxlY3RPcHRpb25bXSkge1xyXG4gICAgcmV0dXJuIG9wdGlvbnMubWFwKChvcHRpb246IEJvb2xlYW5TZWxlY3RPcHRpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBvcHRpb24udmFsdWUgPT09IDEgPyBcclxuICAgICAgICAgIHRoaXMudHJhbnNsYXRpb25zT2JqZWN0LmJvb2xlYW5TZWxlY3RPcHRpb25zIVtvcHRpb24ubmFtZV0uaXNOb3ROdWxsT3B0aW9uIDpcclxuICAgICAgICAgIHRoaXMudHJhbnNsYXRpb25zT2JqZWN0LmJvb2xlYW5TZWxlY3RPcHRpb25zIVtvcHRpb24ubmFtZV0uaXNOdWxsT3B0aW9uLFxyXG4gICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBmaWVsZElzQm9vbGVhbihmaWVsZE5hbWU6IHN0cmluZywgZmllbGRzOiBGaWVsZE1hcCkge1xyXG4gICAgY29uc3QgZmllbGRFbnRyeSA9IE9iamVjdC5rZXlzKGZpZWxkcykuZmluZChrZXkgPT4gZmllbGRzW2tleV0uZmllbGQgPT09IGZpZWxkTmFtZSk7XHJcblxyXG4gICAgcmV0dXJuIGZpZWxkc1tmaWVsZEVudHJ5IV0udHlwZSA9PSBRQkRhdGFUeXBlRW51bS5Cb29sZWFuLnRvU3RyaW5nKCkgPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpc011bHRpc2VsZWN0KHJ1bGU6IFJ1bGUpIHtcclxuICAgIGlmKHJ1bGUub3BlcmF0b3IgPT0gJ2luJyB8fCBydWxlLm9wZXJhdG9yID09ICdub3QgaW4nIHx8IHJ1bGUub3BlcmF0b3IgPT0gJ2lzIG51bGwnIHx8IHJ1bGUub3BlcmF0b3IgPT0gJ2lzIG5vdCBudWxsJykge1xyXG4gICAgICBpZihydWxlLnZhbHVlKSB7XHJcbiAgICAgICAgaWYoIUFycmF5LmlzQXJyYXkocnVsZS52YWx1ZSkpIHtcclxuICAgICAgICAgIHJ1bGUudmFsdWUgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmKHJ1bGUudmFsdWUpIHtcclxuICAgICAgICBpZihBcnJheS5pc0FycmF5KHJ1bGUudmFsdWUpKVxyXG4gICAgICAgIHJ1bGUudmFsdWUgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPCEtLSBUT0RPOiBJbnRlbnRhciBvdHJhIHZleiBwYXNhciBsb3MgY29tcG9uZW50ZXMgYSBsb3MgZGUgdy0gcG9ycXVlIG5vIHNlIGFsaW5lbmEgeSBlbCB3LWVkaXQtc2VsZWN0IG5vIHZhIGJpZW4gZW4gZmllbGQuIFxyXG4gIEFob3JhIHNlIGNvbnNlcnZhbiBsb3MgZGUgcC13IGNvbiBlc3RpbG9zLiAtLT5cclxuPHAtYmxvY2tVSSBzdHlsZUNsYXNzPVwidy1maWx0ZXItcGFuZWwtYmxvY2t1aVwiIFthdXRvWkluZGV4XT1cImZhbHNlXCIgW3RhcmdldF09XCJmaWx0ZXJQYW5lbFwiIFtibG9ja2VkXT1cImRhdGFJc0xvYWRpbmdTZWFyY2hCdXR0b25cIj48L3AtYmxvY2tVST5cclxuXHJcbjxwLWNhcmQgc3R5bGVDbGFzcz1cInctZmlsdGVyLXBhbmVsLW5vLXN0eWxlLWNhcmRcIiAjZmlsdGVyUGFuZWw+XHJcbiAgPGRpdiAqbmdJZj1cInF1ZXJ5Q29uZmlnUmVhZHlcIiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLXN0eWxlc1wiPlxyXG4gICAgPGRpdiAqbmdJZj1cIiFmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd0FkdmFuY2VkU2VhcmNoOyBlbHNlIGJhaXNjQW5kQWR2YW5jZWRcIj5cclxuICAgICAgPGRpdiBbbmdDbGFzc109XCJ7ICd3LWZpbHRlci1wYW5lbC1jb250YWluZXItYWR2YW5jZWQnIDogaXNBZHZhbmNlZFNlYXJjaCwgJ3ctZmlsdGVyLXBhbmVsLWNvbnRhaW5lci1iYXNpYycgOiAhaXNBZHZhbmNlZFNlYXJjaCB9XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJhc2ljXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWJ1dHRvbnNcIj5cclxuICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmNsZWFyQnV0dG9uTGFiZWxcIiB0eXBlPVwidGVydGlhcnlcIiBzaXplPVwic21hbGxcIiAob25DbGljayk9XCJvbkNsZWFyQ2xpY2tlZCgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LnNlYXJjaEJ1dHRvbkxhYmVsXCIgc2l6ZT1cInNtYWxsXCIgKG9uQ2xpY2spPVwib25TZWFyY2hDbGlja2VkKClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYmFpc2NBbmRBZHZhbmNlZD5cclxuICAgICAgPGRpdiBbbmdDbGFzc109XCJ7ICd3LWZpbHRlci1wYW5lbC1jb250YWluZXItYWR2YW5jZWQnIDogaXNBZHZhbmNlZFNlYXJjaCwgJ3ctZmlsdGVyLXBhbmVsLWNvbnRhaW5lci1iYXNpYycgOiAhaXNBZHZhbmNlZFNlYXJjaCB9XCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzQWR2YW5jZWRTZWFyY2g7IGVsc2UgYWR2YW5jZWRWaWV3XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJiYXNpY1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2FkdmFuY2VkVmlldz5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFkdmFuY2VkXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1idXR0b25zXCIgW2NsYXNzLnB0LTNdPVwiaXNBZHZhbmNlZFNlYXJjaFwiPlxyXG4gICAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5jbGVhckJ1dHRvbkxhYmVsXCIgdHlwZT1cInRlcnRpYXJ5XCIgc2l6ZT1cInNtYWxsXCIgKG9uQ2xpY2spPVwib25DbGVhckNsaWNrZWQoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LnNlYXJjaEJ1dHRvbkxhYmVsXCIgc2l6ZT1cInNtYWxsXCIgKG9uQ2xpY2spPVwib25TZWFyY2hDbGlja2VkKClcIiBbbG9hZGluZ109XCJkYXRhSXNMb2FkaW5nU2VhcmNoQnV0dG9uXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9kaXY+XHJcbjwvcC1jYXJkPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2Jhc2ljPlxyXG4gICAgPGRpdiAqbmdJZj1cImZpbHRlclBhbmVsT2JqZWN0LmFsbG93QWR2YW5jZWRTZWFyY2hcIiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZCBmbGV4LXdyYXBcIj5cclxuICAgICAgPHctYnV0dG9uIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYWR2YW5jZWRTZWFyY2hUYWJMYWJlbFwiIHR5cGU9XCJ0ZXh0XCIgKG9uQ2xpY2spPVwidXBkYXRlU2VhcmNoVHlwZSgpXCI+PC93LWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cImJhc2ljUXVlcnkucnVsZXMubGVuZ3RoID4gMFwiIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYmFzaWMgcXVlcnktYnVpbGRlci1zdHlsZSBmYWRlaW4gYW5pbWF0aW9uLWR1cmF0aW9uLTUwMFwiPlxyXG4gICAgICA8cXVlcnktYnVpbGRlciBbZm9ybUNvbnRyb2xdPSdxdWVyeUN0cmwnIFtjb25maWddPSdiYXNpY1F1ZXJ5Q29uZmlnJyBbYWxsb3dSdWxlc2V0XT0nZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dSdWxlU2V0JyBbYWxsb3dSdWxlc2V0XT1cImZpbHRlclBhbmVsT2JqZWN0LmFsbG93UnVsZVNldFwiIFtwZXJzaXN0VmFsdWVPbkZpZWxkQ2hhbmdlXT0ncGVyc2lzdFZhbHVlT25GaWVsZENoYW5nZSc+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlCdXR0b25Hcm91cD1cImxldCBydWxlc2V0O1wiPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeVJlbW92ZUJ1dHRvbj1cImxldCBydWxlOyBsZXQgcmVtb3ZlUnVsZT1yZW1vdmVSdWxlXCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5U3dpdGNoR3JvdXA9XCJsZXQgcnVsZXNldDsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5RW50aXR5PVwibGV0IHJ1bGU7IGxldCBlbnRpdGllcz1lbnRpdGllczsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICA8cC1kcm9wZG93biBbZGlzYWJsZWRdPVwidHJ1ZVwiIGNsYXNzPVwiIHctZWRpdC1zZWxlY3Qtc21hbGxcIiAqbmdJZj1cImZhbHNlXCIgYXBwZW5kVG89XCJib2R5XCIgW29wdGlvbnNdPVwiZW50aXRpZXNcIiBbKG5nTW9kZWwpXT1cInJ1bGUuZW50aXR5XCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudCwgcnVsZSlcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5RmllbGQ9XCJsZXQgcnVsZTsgbGV0IGZpZWxkcz1maWVsZHM7IGxldCBvbkNoYW5nZT1vbkNoYW5nZTsgbGV0IGdldEZpZWxkcyA9IGdldEZpZWxkczsgbGV0IHZhbHVlPXZhbHVlOyBsZXQgbmFtZT1uYW1lOyBsZXQgaW5kZXg9aW5kZXhcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBhcHBlbmRUbz1cImJvZHlcIiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWlucHV0LXRleHQtbGFiZWxcIiBbY2xhc3Mudy1maWx0ZXItcGFuZWwtYm9vbGVhbi1sYWJlbC13aWR0aF09XCJmaWVsZElzQm9vbGVhbihydWxlLmZpZWxkLCBnZXRGaWVsZHMocnVsZS5lbnRpdHkpKVwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj57eyBnZXRRdWVyeUZpZWxkTmFtZShydWxlLmZpZWxkLCBnZXRGaWVsZHMocnVsZS5lbnRpdHkpKX19PC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeU9wZXJhdG9yPVwibGV0IHJ1bGU7IGxldCBvcGVyYXRvcnM9b3BlcmF0b3JzOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWVyeS1idWlsZGVyLW9wZXJhdG9yLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gY2xhc3M9XCIgdy1lZGl0LXNlbGVjdC1zbWFsbFwiICpuZ0lmPVwiaXNBZHZhbmNlZFNlYXJjaFwiIGFwcGVuZFRvPVwiYm9keVwiIFsobmdNb2RlbCldPVwicnVsZS5vcGVyYXRvclwiIFtvcHRpb25zXT1cIm9wZXJhdG9yc1wiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKHJ1bGUpXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgdHlwZTogcWJEYXRhVHlwZUVudW0uQm9vbGVhbi50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVlcnktYnVpbGRlci1vcGVyYXRvci13aWR0aFwiPlxyXG4gICAgICAgICAgICA8dy10b2dnbGUtYnV0dG9uIHNpemU9XCJzbWFsbFwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIG9uTGFiZWw9XCJUcnVlXCIgb2ZmTGFiZWw9XCJGYWxzZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIj48L3ctdG9nZ2xlLWJ1dHRvbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5EYXRldGltZS50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1iYXNpYy1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHctZWRpdC1jYWxlbmRhciBhcHBlbmRUbz1cImJvZHlcIiBzaXplPVwic21hbGxcIiBbc2hvd0ljb25dPVwiZmFsc2VcIiBbZGF0YVR5cGVdPVwiJ3N0cmluZydcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAob25DaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtzaG93VGltZV09XCJ0cnVlXCIgW3Nob3dTZWNvbmRzXT1cInRydWVcIiBbZmlyc3REYXlPZldlZWtdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpcnN0RGF5T2ZXZWVrID8/IDFcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5kYXRldGltZVwiIFtzaG93TGFiZWxdPVwiZmFsc2VcIj48L3ctZWRpdC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBmaWVsZD1maWVsZDsgdHlwZTogcWJEYXRhVHlwZUVudW0uRGVjaW1hbC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1iYXNpYy1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRTdHlsZUNsYXNzPVwiZmxleCBmbGV4LTFcIiBzdHlsZUNsYXNzPVwiZmxleCBmbGV4LTFcIiBjbGFzcz1cInctZWRpdC1pbnB1dC1udW1iZXItc21hbGxcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiBpbnB1dElkPVwibWlubWF4XCIgaW5wdXRJZD1cIm1pbm1heFwiIG1vZGU9XCJkZWNpbWFsXCIgW21pbkZyYWN0aW9uRGlnaXRzXT1cIjJcIiBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiNVwiIFttaW5dPVwiMFwiIFttYXhdPVwiMTAwXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmRlY2ltYWxcIj4gPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IG9wdGlvbnM9b3B0aW9uczsgdHlwZTogcWJEYXRhVHlwZUVudW0uTGlzdC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1iYXNpYy1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gY2xhc3M9XCJ3LWVkaXQtc2VsZWN0LXNtYWxsXCIgYXBwZW5kVG89XCJib2R5XCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIFtmaWx0ZXJdPVwidHJ1ZVwiIFtzaG93Q2xlYXJdPVwidHJ1ZVwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubGlzdFwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBmaWVsZD1maWVsZDsgdHlwZTogcWJEYXRhVHlwZUVudW0uTnVtYmVyLnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1iYXNpYy1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFt1c2VHcm91cGluZ109XCJmYWxzZVwiIGlucHV0U3R5bGVDbGFzcz1cImZsZXggZmxleC0xXCIgc3R5bGVDbGFzcz1cImZsZXggZmxleC0xXCIgY2xhc3M9XCJ3LWVkaXQtaW5wdXQtbnVtYmVyLXNtYWxsXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgaW5wdXRJZD1cIm1pbm1heFwiIGlucHV0SWQ9XCJtaW5tYXhcIiBbbWluXT1cIjBcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubnVtYmVyXCI+IDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgZmllbGQ9ZmllbGQ7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLlRleHQudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWJhc2ljLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGhcIj5cclxuICAgICAgICAgICAgPHctZWRpdC1pbnB1dC10ZXh0IGNsYXNzPVwidy1lZGl0LWlucHV0LXRleHQtc21hbGwtaGVpZ2h0XCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLnRleHRcIiBbc2hvd0xhYmVsXT1cImZhbHNlXCI+PC93LWVkaXQtaW5wdXQtdGV4dD5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgb3B0aW9ucz1vcHRpb25zOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5NdWx0aXNlbGVjdC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1iYXNpYy1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHAtbXVsdGlTZWxlY3QgY2xhc3M9XCJ3LWVkaXQtbXVsdGlzZWxlY3Qtc21hbGxcIiBbYXBwZW5kVG9dPVwiJ2JvZHknXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgZGlzcGxheT1cImNoaXBcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5saXN0XCI+PC9wLW11bHRpU2VsZWN0PlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IG9wdGlvbnM9b3B0aW9uczsgdHlwZTogcWJEYXRhVHlwZUVudW0uTnVsbGFibGVTZWxlY3QudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWJhc2ljLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGhcIj5cclxuICAgICAgICAgICAgPHAtZHJvcGRvd24gY2xhc3M9XCJ3LWVkaXQtc2VsZWN0LXNtYWxsXCIgYXBwZW5kVG89XCJib2R5XCIgW29wdGlvbnNdPVwiZ2V0TnVsbGFibGVTZWxlY3RPcHRpb25zKG9wdGlvbnMpXCIgW2ZpbHRlcl09XCJ0cnVlXCIgW3Nob3dDbGVhcl09XCJ0cnVlXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIm51bGxhYmxlU2VsZWN0UGxhY2Vob2xkZXIocnVsZSwgb3B0aW9ucylcIj5cclxuICAgICAgICAgICAgPC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBvcHRpb25zPW9wdGlvbnM7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkJvb2xlYW5TZWxlY3QudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWJhc2ljLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGhcIj5cclxuICAgICAgICAgICAgPHAtZHJvcGRvd24gY2xhc3M9XCJ3LWVkaXQtc2VsZWN0LXNtYWxsXCIgYXBwZW5kVG89XCJib2R5XCIgW29wdGlvbnNdPVwiZ2V0Qm9vbGVhblNlbGVjdE9wdGlvbnMob3B0aW9ucylcIiBbZmlsdGVyXT1cInRydWVcIiBbc2hvd0NsZWFyXT1cInRydWVcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmxpc3RcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IG9wdGlvbnM9b3B0aW9uczsgdHlwZTogcWJEYXRhVHlwZUVudW0uQWRkcmVzcy50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgIDx3LWFkZHJlc3MtZmllbGQgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtvcGVyYXRvcl09XCJydWxlLm9wZXJhdG9yXCIgW3NlZ21lbnRhdGlvbkFwaVVybF09XCJzZWdtZW50YXRpb25BcGlVcmxcIiBbc2VnbWVudGF0aW9uQXBpVG9rZW5dPVwic2VnbWVudGF0aW9uVG9rZW5cIj48L3ctYWRkcmVzcy1maWVsZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9xdWVyeS1idWlsZGVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0FkdmFuY2VkU2VhcmNoICYmIGJhc2ljUXVlcnkucnVsZXMubGVuZ3RoPT0wXCIgPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9RdWVyeURhdGFcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWR2YW5jZWQ+XHJcbiAgICA8ZGl2IFtjbGFzcy5xdWVyeS1idWlsZGVyLXN0eWxlXT1cIiFmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd1J1bGVTZXRcIiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWNvbnRhaW5lciBmYWRlaW4gYW5pbWF0aW9uLWR1cmF0aW9uLTUwMFwiPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dSdWxlU2V0XCIgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgZmxleC13cmFwXCI+XHJcbiAgICAgICAgPHctYnV0dG9uIGNsYXNzPVwibWItMlwiIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYmFzaWNTZWFyY2hUYWJMYWJlbFwiIHR5cGU9XCJ0ZXh0XCIgKG9uQ2xpY2spPVwidXBkYXRlU2VhcmNoVHlwZSgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxxdWVyeS1idWlsZGVyIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYWR2YW5jZWQgcXVlcnktYnVpbGRlci1zdHlsZVwiICNhZHZhbmNlZFF1ZXJ5QnVpbGRlciBbZm9ybUNvbnRyb2xdPSdhZHZhbmNlZFF1ZXJ5Q3RybCcgW2NvbmZpZ109J2FkdmFuY2VkUXVlcnlDb25maWcnIFthbGxvd1J1bGVzZXRdPSdmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd1J1bGVTZXQnIFthbGxvd0NvbGxhcHNlXT0nZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dDb2xhcHNlJyBbYWxsb3dSdWxlc2V0XT1cImZpbHRlclBhbmVsT2JqZWN0LmFsbG93UnVsZVNldFwiIFtwZXJzaXN0VmFsdWVPbkZpZWxkQ2hhbmdlXT0ncGVyc2lzdFZhbHVlT25GaWVsZENoYW5nZSc+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dSdWxlU2V0OyBlbHNlIG5vUnVsZVNldFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUJ1dHRvbkdyb3VwPVwibGV0IHJ1bGVzZXQ7IGxldCBhZGRSdWxlPWFkZFJ1bGU7IGxldCBhZGRSdWxlU2V0PWFkZFJ1bGVTZXQ7IGxldCByZW1vdmVSdWxlU2V0PXJlbW92ZVJ1bGVTZXRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZsZXggZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoLmFkZFJ1bGVCdXR0b25MYWJlbFwiIHR5cGU9XCJzZWNvbmRhcnlcIiBzaXplPVwic21hbGxcIiAob25DbGljayk9XCJhZGRSdWxlKClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPHctYnV0dG9uIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYWR2YW5jZWRTZWFyY2guYWRkUnVsZVNldEJ1dHRvbkxhYmVsXCIgdHlwZT1cInNlY29uZGFyeVwiIGljb249XCJwaSBwaS1wbHVzXCIgc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJhZGRSdWxlU2V0XCIgKG9uQ2xpY2spPVwiYWRkUnVsZVNldCgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoLnJlbW92ZVJ1bGVTZXRCdXR0b25MYWJlbFwiIHR5cGU9XCJ0ZXJ0aWFyeVwiIGljb249XCJwaSBwaS1taW51c1wiIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwicmVtb3ZlUnVsZVNldFwiIChvbkNsaWNrKT1cInJlbW92ZVJ1bGVTZXQoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9SdWxlU2V0PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUJ1dHRvbkdyb3VwPVwibGV0IHJ1bGVzZXQ7IGxldCBhZGRSdWxlPWFkZFJ1bGU7IGxldCBhZGRSdWxlU2V0PWFkZFJ1bGVTZXQ7IGxldCByZW1vdmVSdWxlU2V0PXJlbW92ZVJ1bGVTZXRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgPHctYnV0dG9uIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYmFzaWNTZWFyY2hUYWJMYWJlbFwiIHR5cGU9XCJ0ZXh0XCIgKG9uQ2xpY2spPVwidXBkYXRlU2VhcmNoVHlwZSgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkdmFuY2VkLXF1ZXJ5LWJ1dHRvbi1ncm91cCBmbGV4IGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5hZHZhbmNlZFNlYXJjaC5hZGRSdWxlQnV0dG9uTGFiZWxcIiB0eXBlPVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNtYWxsXCIgKG9uQ2xpY2spPVwiYWRkUnVsZSgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoLmFkZFJ1bGVTZXRCdXR0b25MYWJlbFwiIHR5cGU9XCJzZWNvbmRhcnlcIiBpY29uPVwicGkgcGktcGx1c1wiIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiYWRkUnVsZVNldFwiIChvbkNsaWNrKT1cImFkZFJ1bGVTZXQoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5hZHZhbmNlZFNlYXJjaC5yZW1vdmVSdWxlU2V0QnV0dG9uTGFiZWxcIiB0eXBlPVwidGVydGlhcnlcIiBpY29uPVwicGkgcGktbWludXNcIiBzaXplPVwic21hbGxcIiAqbmdJZj1cInJlbW92ZVJ1bGVTZXRcIiAob25DbGljayk9XCJyZW1vdmVSdWxlU2V0KClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlBcnJvd0ljb24+XHJcbiAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktYW5nbGUtcmlnaHRcIiBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tdGV4dFwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlSZW1vdmVCdXR0b249XCJsZXQgcnVsZTsgbGV0IHJlbW92ZVJ1bGU9cmVtb3ZlUnVsZVwiPlxyXG4gICAgICAgICAgICA8dy1idXR0b24gY2xhc3M9XCJcIiBsYWJlbD1cIlwiIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJ0ZXJ0aWFyeVwiIGljb249XCJwaSBwaS10aW1lc1wiIChvbkNsaWNrKT1cInJlbW92ZVJ1bGUocnVsZSlcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlTd2l0Y2hHcm91cD1cImxldCBydWxlc2V0OyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJ1bGVzZXRcIiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLXN3aXRjaC1ncm91cC1wYWRkaW5nIHEtaW5saW5lLWJsb2NrLWRpc3BsYXkgaW5saW5lLWZsZXhcIj5cclxuICAgICAgICAgICAgICA8dy1zZWxlY3QtYnV0dG9uICpuZ0lmPVwiZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dMb2dpY2FsUnVsZVwiIFtzdGF0ZU9wdGlvbnNdPVwiW3tsYWJlbDogJ0FuZCcsIHZhbHVlOiAnYW5kJ30sIHtsYWJlbDogJ09yJywgdmFsdWU6ICdvcid9XVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJ1bGVzZXQuY29uZGl0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIidzbWFsbCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlKT1cInJ1bGVzZXQuY29uZGl0aW9uID0gJGV2ZW50XCI+XHJcbiAgICAgICAgICAgICAgPC93LXNlbGVjdC1idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlFbnRpdHk9XCJsZXQgcnVsZTsgbGV0IGVudGl0aWVzPWVudGl0aWVzOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1hZHZhbmNlZC1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCIgW25nQ2xhc3NdPVwieyd3LW5vLWVudGl0eS1tb2RlJyA6ICFmaWx0ZXJQYW5lbE9iamVjdC5lbml0eU1vZGV9XCI+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gKm5nSWY9XCJmaWx0ZXJQYW5lbE9iamVjdC5lbml0eU1vZGVcIiBjbGFzcz1cImZpZWxkLWdhcCB3LWVkaXQtc2VsZWN0LXNtYWxsIHctZW50aXR5LWRyb3Bkb3duXCIgYXBwZW5kVG89XCJib2R5XCIgW29wdGlvbnNdPVwiZW50aXRpZXNcIiBbKG5nTW9kZWwpXT1cInJ1bGUuZW50aXR5XCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudCwgcnVsZSlcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5RmllbGQ9XCJsZXQgcnVsZTsgbGV0IGZpZWxkcz1maWVsZHM7IGxldCBvbkNoYW5nZT1vbkNoYW5nZTsgbGV0IGdldEZpZWxkcyA9IGdldEZpZWxkc1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWFkdmFuY2VkLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGggcS1pbmxpbmUtYmxvY2stZGlzcGxheVwiPlxyXG4gICAgICAgICAgICAgIDx3LWxpc3QtZmllbGQgY2xhc3M9XCJmaWVsZC1nYXBcIiBhcHBlbmRUbz1cImJvZHlcIiBbb3B0aW9uc109XCJnZXRGaWVsZHMocnVsZS5lbnRpdHkpXCIgWyhuZ01vZGVsKV09XCJydWxlLmZpZWxkXCIgW29wZXJhdG9yXT1cIic9J1wiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudCwgcnVsZSlcIiBbb25seURyb3Bkb3duXT1cInRydWVcIj48L3ctbGlzdC1maWVsZD5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlPcGVyYXRvcj1cImxldCBydWxlOyBsZXQgb3BlcmF0b3JzPW9wZXJhdG9yczsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYWR2YW5jZWQtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aCBxLW9wZXJhdG9ycyBxLWlubGluZS1ibG9jay1kaXNwbGF5XCIgW25nQ2xhc3NdPVwieyd3LWZpZWxkLW51bGxhYmxlJyA6IG9wZXJhdG9ycy5pbmNsdWRlcygnbnVsbGFibGUnKX1cIj5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biAqbmdJZj1cIiFvcGVyYXRvcnMuaW5jbHVkZXMoJ251bGxhYmxlJylcIiBjbGFzcz1cImZpZWxkLWdhcCB3LWVkaXQtc2VsZWN0LXNtYWxsXCIgYXBwZW5kVG89XCJib2R5XCIgWyhuZ01vZGVsKV09XCJydWxlLm9wZXJhdG9yXCIgW29wdGlvbnNdPVwib3BlcmF0b3JzXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UocnVsZSlcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgdHlwZTogcWJEYXRhVHlwZUVudW0uQm9vbGVhbi50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHctdG9nZ2xlLWJ1dHRvbiBjbGFzcz1cImZpZWxkLWdhcCB0b2dnbGUtYnV0dG9uLWFsaWduXCIgc2l6ZT1cInNtYWxsXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgb25MYWJlbD1cIlRydWVcIiBvZmZMYWJlbD1cIkZhbHNlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiPjwvdy10b2dnbGUtYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5EYXRldGltZS50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1hZHZhbmNlZC1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoIHEtaW5saW5lLWJsb2NrLWRpc3BsYXlcIj5cclxuICAgICAgICAgICAgICA8dy1lZGl0LWNhbGVuZGFyIGNsYXNzPVwiZmllbGQtZ2FwXCIgYXBwZW5kVG89XCJib2R5XCIgc2l6ZT1cInNtYWxsXCIgW2RhdGFUeXBlXT1cIidzdHJpbmcnXCIgW3Nob3dJY29uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgKG9uQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbc2hvd1RpbWVdPVwidHJ1ZVwiIFtzaG93U2Vjb25kc109XCJ0cnVlXCIgW2ZpcnN0RGF5T2ZXZWVrXT1cInRyYW5zbGF0aW9uc09iamVjdC5maXJzdERheU9mV2VlayA/PyAxXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMuZGF0ZXRpbWVcIiBbZGlzcGxheUlubGluZUJsb2NrXT1cInRydWVcIiBbc2hvd0xhYmVsXT1cImZhbHNlXCI+PC93LWVkaXQtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IGZpZWxkPWZpZWxkOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5EZWNpbWFsLnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWFkdmFuY2VkLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGggcS1pbmxpbmUtYmxvY2stZGlzcGxheVwiPlxyXG4gICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0U3R5bGVDbGFzcz1cImZsZXggZmxleC0xXCIgc3R5bGVDbGFzcz1cImZsZXggZmxleC0xXCIgY2xhc3M9XCJmaWVsZC1nYXAgdy1lZGl0LWlucHV0LW51bWJlci1zbWFsbCB3LWVkaXQtaW5wdXQtbnVtYmVyLXNtYWxsLWhlaWdodFwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIGlucHV0SWQ9XCJtaW5tYXhcIiBpbnB1dElkPVwibWlubWF4XCIgbW9kZT1cImRlY2ltYWxcIiBbbWluRnJhY3Rpb25EaWdpdHNdPVwiMlwiIFttYXhGcmFjdGlvbkRpZ2l0c109XCI1XCIgW21pbl09XCIwXCIgW21heF09XCIxMDBcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMuZGVjaW1hbFwiPiA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IG9wdGlvbnM9b3B0aW9uczsgdHlwZTogcWJEYXRhVHlwZUVudW0uTGlzdC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1hZHZhbmNlZC1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoIHEtaW5saW5lLWJsb2NrLWRpc3BsYXlcIj5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biAqbmdJZj1cIiFpc011bHRpc2VsZWN0KHJ1bGUpXCIgY2xhc3M9XCJmaWVsZC1nYXAgdy1lZGl0LXNlbGVjdC1zbWFsbFwiIGFwcGVuZFRvPVwiYm9keVwiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbZmlsdGVyXT1cInRydWVcIiBbc2hvd0NsZWFyXT1cInRydWVcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmxpc3RcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPHAtbXVsdGlTZWxlY3QgKm5nSWY9XCJpc011bHRpc2VsZWN0KHJ1bGUpXCIgY2xhc3M9XCJ3LWVkaXQtbXVsdGlzZWxlY3Qtc21hbGxcIiBbYXBwZW5kVG9dPVwiJ2JvZHknXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgZGlzcGxheT1cImNoaXBcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5saXN0XCI+PC9wLW11bHRpU2VsZWN0PlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBvcHRpb25zPW9wdGlvbnM7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkxpc3QudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYWR2YW5jZWQtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aCBxLWlubGluZS1ibG9jay1kaXNwbGF5IGZpZWxkLWdhcFwiPlxyXG4gICAgICAgICAgICAgIDx3LWxpc3QtZmllbGQgW29wdGlvbnNdPVwib3B0aW9uc1wiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIFtvcGVyYXRvcl09XCJydWxlLm9wZXJhdG9yXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmxpc3RcIj48L3ctbGlzdC1maWVsZD5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgZmllbGQ9ZmllbGQ7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLk51bWJlci50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1hZHZhbmNlZC1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoIHEtaW5saW5lLWJsb2NrLWRpc3BsYXlcIj5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIiBpbnB1dFN0eWxlQ2xhc3M9XCJmbGV4IGZsZXgtMVwiIHN0eWxlQ2xhc3M9XCJmbGV4IGZsZXgtMVwiIGNsYXNzPVwiZmllbGQtZ2FwIHctZWRpdC1pbnB1dC1udW1iZXItc21hbGwgdy1lZGl0LWlucHV0LW51bWJlci1zbWFsbC1oZWlnaHRcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiBpbnB1dElkPVwibWlubWF4XCIgaW5wdXRJZD1cIm1pbm1heFwiIFttaW5dPVwiMFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5udW1iZXJcIj4gPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBmaWVsZD1maWVsZDsgdHlwZTogcWJEYXRhVHlwZUVudW0uVGV4dC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1hZHZhbmNlZC1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoIHEtaW5saW5lLWJsb2NrLWRpc3BsYXlcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmaWVsZC1nYXAgdy1lZGl0LWlucHV0LXRleHQtc21hbGwtaGVpZ2h0IHctZWRpdC1pbnB1dC10ZXh0LXNtYWxsXCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy50ZXh0XCIvPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBvcHRpb25zPW9wdGlvbnM7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLk11bHRpc2VsZWN0LnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWFkdmFuY2VkLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGggcS1pbmxpbmUtYmxvY2stZGlzcGxheVwiPlxyXG4gICAgICAgICAgICAgIDxwLW11bHRpU2VsZWN0IGNsYXNzPVwidy1lZGl0LW11bHRpc2VsZWN0LXNtYWxsXCIgW2FwcGVuZFRvXT1cIidib2R5J1wiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIGRpc3BsYXk9XCJjaGlwXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubGlzdFwiPjwvcC1tdWx0aVNlbGVjdD5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgb3B0aW9ucz1vcHRpb25zOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5BZGRyZXNzLnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8dy1hZGRyZXNzLWZpZWxkIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbb3BlcmF0b3JdPVwicnVsZS5vcGVyYXRvclwiIFtzZWdtZW50YXRpb25BcGlVcmxdPVwic2VnbWVudGF0aW9uQXBpVXJsXCIgW3NlZ21lbnRhdGlvbkFwaVRva2VuXT1cInNlZ21lbnRhdGlvblRva2VuXCIgW3NlbGVjdFBsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubGlzdFwiPjwvdy1hZGRyZXNzLWZpZWxkPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgb3B0aW9ucz1vcHRpb25zOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5OdWxsYWJsZVNlbGVjdC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1hZHZhbmNlZC1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoIHEtaW5saW5lLWJsb2NrLWRpc3BsYXkgdy1uby1lbnRpdHktbW9kZVwiPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIGNsYXNzPVwiZmllbGQtZ2FwIHctZWRpdC1zZWxlY3Qtc21hbGxcIiBhcHBlbmRUbz1cImJvZHlcIiBbb3B0aW9uc109XCJnZXROdWxsYWJsZVNlbGVjdE9wdGlvbnMob3B0aW9ucylcIiBbZmlsdGVyXT1cInRydWVcIiBbc2hvd0NsZWFyXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5saXN0XCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBvcHRpb25zPW9wdGlvbnM7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkJvb2xlYW5TZWxlY3QudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYWR2YW5jZWQtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aCBxLWlubGluZS1ibG9jay1kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gY2xhc3M9XCJmaWVsZC1nYXAgdy1lZGl0LXNlbGVjdC1zbWFsbFwiIGFwcGVuZFRvPVwiYm9keVwiIFtvcHRpb25zXT1cImdldEJvb2xlYW5TZWxlY3RPcHRpb25zKG9wdGlvbnMpXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiIFtmaWx0ZXJdPVwidHJ1ZVwiIFtzaG93Q2xlYXJdPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmxpc3RcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3F1ZXJ5LWJ1aWxkZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNBZHZhbmNlZFNlYXJjaCAmJiBhZHZhbmNlZFF1ZXJ5LnJ1bGVzLmxlbmd0aD09MFwiID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9RdWVyeURhdGFcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8IS0tIEdyb3VwZWQgZmlsdGVyIC0tPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dHcm91cGVkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInB5LTVcIj5cclxuICAgICAgICAgIDx3LXZpZXctY2FyZC10aXRsZS10ZXh0IFtjYXJkVGl0bGVdPVwidHJhbnNsYXRpb25zT2JqZWN0Lmdyb3VwZWRGaWx0ZXJUaXRsZVwiPjwvdy12aWV3LWNhcmQtdGl0bGUtdGV4dD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPHF1ZXJ5LWJ1aWxkZXIgKm5nSWY9XCJncm91cGVkUXVlcnkucnVsZXMubGVuZ3RoID4gMFwiIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtZ3JvdXBlZCBxdWVyeS1idWlsZGVyLXN0eWxlXCIgW2Zvcm1Db250cm9sXT0nZ3JvdXBlZFF1ZXJ5Q3RybCcgW2NvbmZpZ109J2FkdmFuY2VkUXVlcnlDb25maWcnIFthbGxvd1J1bGVzZXRdPSdmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd1J1bGVTZXQnIFthbGxvd0NvbGxhcHNlXT0nZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dDb2xhcHNlJyBbYWxsb3dSdWxlc2V0XT1cImZpbHRlclBhbmVsT2JqZWN0LmFsbG93UnVsZVNldFwiIFtwZXJzaXN0VmFsdWVPbkZpZWxkQ2hhbmdlXT0ncGVyc2lzdFZhbHVlT25GaWVsZENoYW5nZSc+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUJ1dHRvbkdyb3VwPVwibGV0IHJ1bGVzZXQ7IGxldCBhZGRSdWxlPWFkZFJ1bGU7IGxldCBhZGRSdWxlU2V0PWFkZFJ1bGVTZXQ7IGxldCByZW1vdmVSdWxlU2V0PXJlbW92ZVJ1bGVTZXRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTNcIj5cclxuICAgICAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5hZHZhbmNlZFNlYXJjaC5hZGRSdWxlQnV0dG9uTGFiZWxcIiB0eXBlPVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNtYWxsXCIgKG9uQ2xpY2spPVwiYWRkUnVsZSgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5hZHZhbmNlZFNlYXJjaC5hZGRSdWxlU2V0QnV0dG9uTGFiZWxcIiB0eXBlPVwic2Vjb25kYXJ5XCIgaWNvbj1cInBpIHBpLXBsdXNcIiBzaXplPVwic21hbGxcIiAqbmdJZj1cImFkZFJ1bGVTZXRcIiAob25DbGljayk9XCJhZGRSdWxlU2V0KClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoLnJlbW92ZVJ1bGVTZXRCdXR0b25MYWJlbFwiIHR5cGU9XCJ0ZXJ0aWFyeVwiIGljb249XCJwaSBwaS1taW51c1wiIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwicmVtb3ZlUnVsZVNldFwiIChvbkNsaWNrKT1cInJlbW92ZVJ1bGVTZXQoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlBcnJvd0ljb24+XHJcbiAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktYW5nbGUtcmlnaHRcIiBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tdGV4dFwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlSZW1vdmVCdXR0b249XCJsZXQgcnVsZTsgbGV0IHJlbW92ZVJ1bGU9cmVtb3ZlUnVsZVwiPlxyXG4gICAgICAgICAgICA8dy1idXR0b24gY2xhc3M9XCJcIiBsYWJlbD1cIlwiIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJ0ZXJ0aWFyeVwiIGljb249XCJwaSBwaS10aW1lc1wiIChvbkNsaWNrKT1cInJlbW92ZVJ1bGUocnVsZSlcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlTd2l0Y2hHcm91cD1cImxldCBydWxlc2V0OyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLXN3aXRjaC1ncm91cC1wYWRkaW5nIHEtaW5saW5lLWJsb2NrLWRpc3BsYXkgaW5saW5lLWZsZXhcIiAqbmdJZj1cInJ1bGVzZXRcIj5cclxuICAgICAgICAgICAgICA8dy1zZWxlY3QtYnV0dG9uICpuZ0lmPVwiZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dMb2dpY2FsUnVsZVwiIFtzdGF0ZU9wdGlvbnNdPVwiW3tsYWJlbDogJ0FuZCcsIHZhbHVlOiAnYW5kJ30sIHtsYWJlbDogJ09yJywgdmFsdWU6ICdvcid9XVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJ1bGVzZXQuY29uZGl0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIidzbWFsbCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlKT1cInJ1bGVzZXQuY29uZGl0aW9uID0gJGV2ZW50XCI+XHJcbiAgICAgICAgICAgICAgPC93LXNlbGVjdC1idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlFbnRpdHk9XCJsZXQgcnVsZTsgbGV0IGVudGl0aWVzPWVudGl0aWVzOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1hZHZhbmNlZC1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCIgW25nQ2xhc3NdPVwieyd3LW5vLWVudGl0eS1tb2RlJyA6ICFmaWx0ZXJQYW5lbE9iamVjdC5lbml0eU1vZGV9XCI+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gY2xhc3M9XCJ3LWVkaXQtc2VsZWN0LXNtYWxsIGZpZWxkLWdhcCB3LWVudGl0eS1kcm9wZG93blwiICpuZ0lmPVwiZmlsdGVyUGFuZWxPYmplY3QuZW5pdHlNb2RlXCIgYXBwZW5kVG89XCJib2R5XCIgW29wdGlvbnNdPVwiZW50aXRpZXNcIiBbKG5nTW9kZWwpXT1cInJ1bGUuZW50aXR5XCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudCwgcnVsZSlcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlGaWVsZD1cImxldCBydWxlOyBsZXQgZmllbGRzPWZpZWxkczsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlOyBsZXQgZ2V0RmllbGRzID0gZ2V0RmllbGRzXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYWR2YW5jZWQtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aCBxLWlubGluZS1ibG9jay1kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gY2xhc3M9XCJ3LWVkaXQtc2VsZWN0LXNtYWxsXCIgYXBwZW5kVG89XCJib2R5XCIgW29wdGlvbnNdPVwiZ2V0RmllbGRzKHJ1bGUuZW50aXR5KVwiIFsobmdNb2RlbCldPVwicnVsZS5maWVsZFwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQsIHJ1bGUpXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeU9wZXJhdG9yPVwibGV0IHJ1bGU7IGxldCBvcGVyYXRvcnM9b3BlcmF0b3JzOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1hZHZhbmNlZC1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoIHEtb3BlcmF0b3JzIHEtaW5saW5lLWJsb2NrLWRpc3BsYXlcIiBbbmdDbGFzc109XCJ7J3ctZmllbGQtbnVsbGFibGUnIDogb3BlcmF0b3JzLmluY2x1ZGVzKCdudWxsYWJsZScpfVwiPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIGNsYXNzPVwidy1lZGl0LXNlbGVjdC1zbWFsbFwiIGFwcGVuZFRvPVwiYm9keVwiIFsobmdNb2RlbCldPVwicnVsZS5vcGVyYXRvclwiIFtvcHRpb25zXT1cIm9wZXJhdG9yc1wiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKHJ1bGUpXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkJvb2xlYW4udG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDx3LXRvZ2dsZS1idXR0b24gY2xhc3M9XCJmaWVsZC1nYXAgdG9nZ2xlLWJ1dHRvbi1hbGlnblwiIHNpemU9XCJzbWFsbFwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIG9uTGFiZWw9XCJUcnVlXCIgb2ZmTGFiZWw9XCJGYWxzZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIj48L3ctdG9nZ2xlLWJ1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgdHlwZTogcWJEYXRhVHlwZUVudW0uRGF0ZXRpbWUudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYWR2YW5jZWQtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aCBxLWlubGluZS1ibG9jay1kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgPHctZWRpdC1jYWxlbmRhciBjbGFzcz1cImZpZWxkLWdhcFwiIGFwcGVuZFRvPVwiYm9keVwiIHNpemU9XCJzbWFsbFwiIFtkYXRhVHlwZV09XCInc3RyaW5nJ1wiIFtzaG93SWNvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChvbkNoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3Nob3dUaW1lXT1cInRydWVcIiBbc2hvd1NlY29uZHNdPVwidHJ1ZVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmRhdGV0aW1lXCIgW2Rpc3BsYXlJbmxpbmVCbG9ja109XCJ0cnVlXCI+PC93LWVkaXQtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IGZpZWxkPWZpZWxkOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5EZWNpbWFsLnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWFkdmFuY2VkLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGggcS1pbmxpbmUtYmxvY2stZGlzcGxheVwiPlxyXG4gICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGNsYXNzPVwiZmxleCBmbGV4LTFcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiBpbnB1dElkPVwibWlubWF4XCIgaW5wdXRJZD1cIm1pbm1heFwiIG1vZGU9XCJkZWNpbWFsXCIgW21pbkZyYWN0aW9uRGlnaXRzXT1cIjJcIiBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiNVwiIFttaW5dPVwiMFwiIFttYXhdPVwiMTAwXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmRlY2ltYWxcIj4gPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBvcHRpb25zPW9wdGlvbnM7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkxpc3QudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYWR2YW5jZWQtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aCBxLWlubGluZS1ibG9jay1kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgPHctbGlzdC1maWVsZCBbb3B0aW9uc109XCJvcHRpb25zXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgW29wZXJhdG9yXT1cInJ1bGUub3BlcmF0b3JcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubGlzdFwiPjwvdy1saXN0LWZpZWxkPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBmaWVsZD1maWVsZDsgdHlwZTogcWJEYXRhVHlwZUVudW0uTnVtYmVyLnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWFkdmFuY2VkLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGggcS1pbmxpbmUtYmxvY2stZGlzcGxheVwiPlxyXG4gICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFt1c2VHcm91cGluZ109XCJmYWxzZVwiIGlucHV0U3R5bGVDbGFzcz1cImZsZXggZmxleC0xXCIgc3R5bGVDbGFzcz1cImZsZXggZmxleC0xXCIgY2xhc3M9XCJmaWVsZC1nYXAgdy1lZGl0LWlucHV0LW51bWJlci1zbWFsbCB3LWVkaXQtaW5wdXQtbnVtYmVyLXNtYWxsLWhlaWdodFwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIGlucHV0SWQ9XCJtaW5tYXhcIiBpbnB1dElkPVwibWlubWF4XCIgW21pbl09XCIwXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLm51bWJlclwiPiA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IGZpZWxkPWZpZWxkOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5UZXh0LnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWFkdmFuY2VkLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmaWVsZC1nYXAgdy1lZGl0LWlucHV0LXRleHQtc21hbGwtaGVpZ2h0IHctZWRpdC1pbnB1dC10ZXh0LXNtYWxsXCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy50ZXh0XCIvPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwvcXVlcnktYnVpbGRlcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQWR2YW5jZWRTZWFyY2ggJiYgZ3JvdXBlZFF1ZXJ5LnJ1bGVzLmxlbmd0aD09MFwiID5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJub1F1ZXJ5RGF0YVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjbm9RdWVyeURhdGE+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZsZXgtd3JhcCBjYXJkLWNvbnRhaW5lciBzdXJmYWNlLTUwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHctZnVsbCBoLTRyZW0gdGV4dC1ncmF5LTkwMCBib3JkZXItcm91bmQgbS0yXCI+XHJcbiAgICAgICAge3t0cmFuc2xhdGlvbnNPYmplY3Qubm9SdWxlc0xhYmVsfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4iXX0=
629
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidy1maWx0ZXItcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2FwcC1jb21wb25lbnRzL3NyYy9saWIvbWlzYy93LWZpbHRlci1wYW5lbC93LWZpbHRlci1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93YXBwLWNvbXBvbmVudHMvc3JjL2xpYi9taXNjL3ctZmlsdGVyLXBhbmVsL3ctZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJL0UsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlckcsTUFBTSxPQUFPLHFCQUFxQjtJQW9HaEMsWUFDVSxXQUF3QixFQUN4QixVQUFzQixFQUN0QixjQUFxQztRQUZyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQW5HeEMsOEJBQXlCLEdBQVksS0FBSyxDQUFDO1FBRWxELHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsbUJBQWMsR0FBRyxjQUFjLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRzVDLGVBQVUsR0FBUTtZQUNoQixTQUFTLEVBQUUsS0FBSztZQUNoQixLQUFLLEVBQUUsRUFBRTtTQUNWLENBQUM7UUFDRixpQkFBWSxHQUFRO1lB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T3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPcGVyYXRvckVudW0sIFFCRGF0YVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9lbnVtcy5tb2RlbCc7XHJcbmltcG9ydCB7IFFiUGFuZWxGaWx0ZXIgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL2ZpbHRlci1wYW5lbC9xYi1wYW5lbC1maWx0ZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBFbnRpdHksIEVudGl0eU1hcCwgRmllbGQsIEZpZWxkTWFwLCBRdWVyeUJ1aWxkZXJDb25maWcsIFJ1bGUsIFJ1bGVTZXQgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL2ZpbHRlci1wYW5lbC9maWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IEZpbHRlclBhbmVsVHJhbnNsYXRpb25zIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9maWx0ZXItcGFuZWwvZmlsdGVyLXBhbmVsLXRyYW5zbGF0aW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7IFF1ZXJ5UmVzdWx0VHlwZSwgUXVlcnlSZXN1bHRzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9maWx0ZXItcGFuZWwvcXVlcnktcmVzdWx0cy5tb2RlbCc7XHJcbmltcG9ydCB7IEZpbHRlckZpZWxkIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9maWx0ZXItcGFuZWwvZmlsdGVyLWZpZWxkLm1vZGVscyc7XHJcbmltcG9ydCB7IFFiRmlsdGVyRW50aXR5IH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9maWx0ZXItcGFuZWwvcWItZmlsdGVyLWVudGl0eS5tb2RlbCc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZS9hcGkvYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdG9yZWRGaWx0ZXJQYW5lbFF1ZXJ5IH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9zdG9yZWQtZmlsdGVyLXBhbmVsLXF1ZXJ5Lm1vZGVsJztcclxuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTnVsbGFibGVTZWxlY3RPcHRpb24gfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL2ZpbHRlci1wYW5lbC9udWxsYWJsZS1zZWxlY3Qtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgQm9vbGVhblNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvZmlsdGVyLXBhbmVsL2Jvb2xlYW4tc2VsZWN0LW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFF1ZXJ5QnVpbGRlckNvbXBvbmVudCB9IGZyb20gJ2FuZ3VsYXIyLXF1ZXJ5LWJ1aWxkZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd3LWZpbHRlci1wYW5lbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ctZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi93LWZpbHRlci1wYW5lbC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXRmlsdGVyUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBxdWVyeUN0cmwhOiBGb3JtQ29udHJvbDtcclxuICBwdWJsaWMgYWR2YW5jZWRRdWVyeUN0cmwhOiBGb3JtQ29udHJvbDtcclxuICBwdWJsaWMgZ3JvdXBlZFF1ZXJ5Q3RybCE6IEZvcm1Db250cm9sO1xyXG4gIHB1YmxpYyBwZXJzaXN0VmFsdWVPbkZpZWxkQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgcXVlcnlDb25maWdSZWFkeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzQWR2YW5jZWRTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBxYkRhdGFUeXBlRW51bSA9IFFCRGF0YVR5cGVFbnVtO1xyXG4gIHFiRGF0YUVudW1zID0gT2JqZWN0LnZhbHVlcyhRQkRhdGFUeXBlRW51bSk7XHJcbiAgYmFzaWNRdWVyeUNvbmZpZyE6IGFueTtcclxuICBhZHZhbmNlZFF1ZXJ5Q29uZmlnITogYW55O1xyXG4gIGJhc2ljUXVlcnk6IGFueSA9IHtcclxuICAgIGNvbmRpdGlvbjogJ2FuZCcsXHJcbiAgICBydWxlczogW11cclxuICB9O1xyXG4gIGdyb3VwZWRRdWVyeTogYW55ID0ge1xyXG4gICAgY29uZGl0aW9uOiAnYW5kJyxcclxuICAgIHJ1bGVzOiBbXVxyXG4gIH07XHJcbiAgYWR2YW5jZWRRdWVyeTogYW55ID0ge1xyXG4gICAgY29uZGl0aW9uOiAnYW5kJyxcclxuICAgIHJ1bGVzOiBbXVxyXG4gIH07XHJcbiAgZmlsdGVyUGFuZWxPYmplY3QhOiBRYlBhbmVsRmlsdGVyO1xyXG4gIGVudGl0eUNvbmZpZ0dyb3VwZWQ6IFF1ZXJ5QnVpbGRlckNvbmZpZyA9IHsgZmllbGRzOiB7fSB9O1xyXG4gIGVudGl0aWVzOiBhbnlbXSA9IFtdO1xyXG4gIGRlZmF1bHRWYWx1ZXM6IGFueVtdID0gW107XHJcbiAgZGVmYXVsdE9wZXJhdG9yczogYW55W10gPSBbXTtcclxuICBzdG9yZWRRdWVyeSE6IFN0b3JlZEZpbHRlclBhbmVsUXVlcnk7XHJcbiAgcGFyZW50Um91dGUhOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgnYXBpVXJsJykgYXV0aG9yaXphdGlvbkFwaVVybCE6IHN0cmluZztcclxuICBASW5wdXQoJ2NvbW1vbkRhdGFBcGlVcmwnKSBjb21tb25EYXRhQXBpVXJsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgnc2VnbWVudGF0aW9uQXBpVXJsJykgc2VnbWVudGF0aW9uQXBpVXJsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgndG9rZW4nKSB0b2tlbiE6IHN0cmluZztcclxuICBASW5wdXQoJ2NvbW1vbkRhdGFUb2tlbicpIGNvbW1vbkRhdGFUb2tlbiE6IHN0cmluZztcclxuICBASW5wdXQoJ3NlZ21lbnRhdGlvblRva2VuJykgc2VnbWVudGF0aW9uVG9rZW4hOiBzdHJpbmc7XHJcbiAgQElucHV0KCdmaWx0ZXJJZCcpIGZpbHRlcklkITogc3RyaW5nO1xyXG4gIEBJbnB1dCgnZGF0YUlzTG9hZGluZ1NlYXJjaEJ1dHRvbicpIGRhdGFJc0xvYWRpbmdTZWFyY2hCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoJ3RlbmFudElkJykgdGVuYW50SWQhOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgndHJhbnNsYXRpb25zT2JqZWN0JykgdHJhbnNsYXRpb25zT2JqZWN0OiBGaWx0ZXJQYW5lbFRyYW5zbGF0aW9ucyA9IHtcclxuICAgIGJhc2ljU2VhcmNoVGFiTGFiZWw6ICdCYXNpYyBzZWFyY2gnLFxyXG4gICAgYWR2YW5jZWRTZWFyY2hUYWJMYWJlbDogJ0FkdmFuY2VkIHNlYXJjaCcsXHJcbiAgICBncm91cGVkRmlsdGVyVGl0bGU6ICdHcm91cGVkIGZpbHRlcicsXHJcbiAgICBhZHZhbmNlZFNlYXJjaDoge1xyXG4gICAgICBhbmRCdXR0b25MYWJlbDogJ0FuZCcsXHJcbiAgICAgIG9yQnV0dG9uTGFiZWw6ICdPcicsXHJcbiAgICAgIGFkZFJ1bGVCdXR0b25MYWJlbDogJ0FkZCBmaWx0ZXInLFxyXG4gICAgICBhZGRSdWxlU2V0QnV0dG9uTGFiZWw6ICdBZGQgZmlsdGVyIHNldCcsXHJcbiAgICAgIHJlbW92ZVJ1bGVTZXRCdXR0b25MYWJlbDogJ1JlbW92ZSBydWxlIHNldCdcclxuICAgIH0sXHJcbiAgICBub1J1bGVzTGFiZWw6ICdBZGQgZmlsdGVyIG9yIGZpbHRlciBzZXQgdG8gc3RhcnQnLFxyXG4gICAgc2VhcmNoQnV0dG9uTGFiZWw6ICdDbGVhcicsXHJcbiAgICBjbGVhckJ1dHRvbkxhYmVsOiAnQ2xlYXInLFxyXG4gICAgZmllbGRzUGxhY2Vob2xkZXJzOiB7XHJcbiAgICAgIGJvb2xlYW46IHtcclxuICAgICAgICAgIHRydWU6ICdUcnVlJyxcclxuICAgICAgICAgIGZhbHNlOiAnRmFsc2UnXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlY2ltYWw6ICdJbnNlcnQgZGVjaW1hbCBudW1iZXInLFxyXG4gICAgICBsaXN0OiAnU2VsZWN0IGFuIG9wdGlvbicsXHJcbiAgICAgIG51bWJlcjogJ0luc2VydCBhIG51bWJlcicsXHJcbiAgICAgIHRleHQ6ICdJbnNlcnQgdGV4dCcsXHJcbiAgICAgIGRhdGV0aW1lOiAnU2VsZWN0IGEgZGF0ZSdcclxuICAgIH0sXHJcbiAgICBmaXJzdERheU9mV2VlazogMCxcclxuICAgIG9wZXJhdG9yczoge1xyXG4gICAgICBjb250YWluczonY29udGFpbnMnXHJcbiAgICB9LFxyXG4gICAgZmllbGRzOiB7XHJcbiAgICAgIElkbGVEZWFkbGluZTogJ0lkJyxcclxuICAgICAgbmFtZTogJ05hbWUnLFxyXG4gICAgICBjb2RlOiAnQ29kZScsXHJcbiAgICAgIGRlbGV0ZTogJ0RlbGV0ZWQnLFxyXG4gICAgICBjb3VudHJ5OiAnQ291bnRyeSdcclxuICAgIH0sXHJcbiAgICBudWxsYWJsZVNlbGVjdE9wdGlvbnM6IHtcclxuICAgICAgY3VzdG9tZXJvcGVyYXRpb246IHtcclxuICAgICAgICBpc051bGxPcHRpb246ICdObyBjdXN0b21lcnMnLFxyXG4gICAgICAgIGlzTm90TnVsbE9wdGlvbjogJ0N1c3RvbWVycydcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGJvb2xlYW5TZWxlY3RPcHRpb25zOiB7XHJcbiAgICAgIHZvaWRlZG9wZXJhdGlvbjoge1xyXG4gICAgICAgIGlzTnVsbE9wdGlvbjogJ05vIHZvaWRlZCcsXHJcbiAgICAgICAgaXNOb3ROdWxsT3B0aW9uOiAnVm9pZGVkJ1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuICBcclxuICBAT3V0cHV0KCdzZWFyY2hDbGlja2VkJykgc2VhcmNoQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UXVlcnlSZXN1bHRzPigpO1xyXG4gIEBPdXRwdXQoJ2NsZWFyQ2xpY2tlZCcpIGNsZWFyQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCdsYXN0UXVlcnknKSBsYXN0UXVlcnkgPSBuZXcgRXZlbnRFbWl0dGVyPFF1ZXJ5UmVzdWx0cz4oKTtcclxuICBcclxuICBzdGF0ZU9wdGlvbnM6IGFueVtdID0gW3sgbGFiZWw6IHRoaXMudHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoLmFuZEJ1dHRvbkxhYmVsLCB2YWx1ZTogJ2FuZCcgfSwgeyBsYWJlbDogdGhpcy50cmFuc2xhdGlvbnNPYmplY3QuYWR2YW5jZWRTZWFyY2gub3JCdXR0b25MYWJlbCwgdmFsdWU6ICdvcicgfV07XHJcbiAgXHJcbiAgQFZpZXdDaGlsZCgnYWR2YW5jZWRRdWVyeUJ1aWxkZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgcXVlcnlCdWlsZGVyITogUXVlcnlCdWlsZGVyQ29tcG9uZW50O1xyXG4gIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIFxyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzZXNzaW9uU3RvcmFnZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmlzQWR2YW5jZWRTZWFyY2ggPSB0aGlzLnNlc3Npb25TdG9yYWdlLmdldExhc3RGaWx0ZXJQYW5lbFF1ZXJ5KHRoaXMudGVuYW50SWQsIHRoaXMuZmlsdGVySWQpPy5hZHZhbmNlZFF1ZXJ5VmFsdWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBpZigodGhpcy5zdG9yZWRRdWVyeT8uYWR2YW5jZWRRdWVyeVZhbHVlICYmIHRoaXMuc3RvcmVkUXVlcnk/LmFkdmFuY2VkUXVlcnlWYWx1ZS5ydWxlcy5sZW5ndGggPT0gMCkgfHwgICh0aGlzLnN0b3JlZFF1ZXJ5Py5iYXNpY1F1ZXJ5VmFsdWUgJiYgdGhpcy5zdG9yZWRRdWVyeT8uYmFzaWNRdWVyeVZhbHVlLnJ1bGVzLmxlbmd0aCA9PSAwKSkge1xyXG4gICAgICAvL0RvIG5vdGhpbmdcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3RvcmVkUXVlcnk9IHRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0TGFzdEZpbHRlclBhbmVsUXVlcnkodGhpcy50ZW5hbnRJZCwgdGhpcy5maWx0ZXJJZClcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0UXVlcnlCdWlsZGVyRmlsdGVyUGFuZWwoKTtcclxuICB9XHJcblxyXG4gIGluaXRRdWVyeUJ1aWxkZXJDb250cm9scygpIHtcclxuICAgIHRoaXMucXVlcnlDdHJsID0gdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHRoaXMuYmFzaWNRdWVyeSk7XHJcbiAgICB0aGlzLmFkdmFuY2VkUXVlcnlDdHJsID0gdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHRoaXMuYWR2YW5jZWRRdWVyeSk7XHJcbiAgICBpZih0aGlzLmZpbHRlclBhbmVsT2JqZWN0LmFsbG93R3JvdXBlZCkge1xyXG4gICAgICB0aGlzLmdyb3VwZWRRdWVyeUN0cmwgPSB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wodGhpcy5ncm91cGVkUXVlcnkpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZigodGhpcy5zdG9yZWRRdWVyeT8uYWR2YW5jZWRRdWVyeVZhbHVlICYmIHRoaXMuc3RvcmVkUXVlcnk/LmFkdmFuY2VkUXVlcnlWYWx1ZS5ydWxlcy5sZW5ndGggPT0gMCkgfHwgICh0aGlzLnN0b3JlZFF1ZXJ5Py5iYXNpY1F1ZXJ5VmFsdWUgJiYgdGhpcy5zdG9yZWRRdWVyeT8uYmFzaWNRdWVyeVZhbHVlLnJ1bGVzLmxlbmd0aCA9PSAwKSkge1xyXG4gICAgICAvL0RvIG5vdGhpbmdcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBsYXN0UXVlcnk6IFF1ZXJ5UmVzdWx0cyA9IHtcclxuICAgICAgICB0eXBlOiB0aGlzLmdldFF1ZXJ5VHlwZSgpLFxyXG4gICAgICAgIGJhc2ljOiB0aGlzLnN0b3JlZFF1ZXJ5Py5iYXNpY1F1ZXJ5VmFsdWUgPyBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnN0b3JlZFF1ZXJ5Py5iYXNpY1F1ZXJ5VmFsdWUpIDogbnVsbCxcclxuICAgICAgICBhZHZhbmNlZDogdGhpcy5zdG9yZWRRdWVyeT8uYWR2YW5jZWRRdWVyeVZhbHVlID8gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zdG9yZWRRdWVyeT8uYWR2YW5jZWRRdWVyeVZhbHVlKSA6IG51bGwsXHJcbiAgICAgICAgZ3JvdXBlZDogdGhpcy5pc0FkdmFuY2VkU2VhcmNoICYmIHRoaXMuZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dHcm91cGVkICYmIHRoaXMuZ3JvdXBlZFF1ZXJ5Q3RybCA/IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZ3JvdXBlZFF1ZXJ5Q3RybD8udmFsdWUpIDogbnVsbFxyXG4gICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2V0Tm9GaWx0ZXJzUXVlcnlUeXBlKGxhc3RRdWVyeSlcclxuICAgICAgICAudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICBsYXN0UXVlcnkgPSB0aGlzLmRlbGV0ZUZpZWxkc1dpdGhvdXRWYWx1ZShsYXN0UXVlcnkpO1xyXG4gICAgICAgICAgbGFzdFF1ZXJ5ID0gdGhpcy5oYW5kbGVFbXB0eUZpZWxkc1F1ZXJ5KGxhc3RRdWVyeSk7XHJcbiAgICAgICAgICB0aGlzLmxhc3RRdWVyeS5lbWl0KGxhc3RRdWVyeSk7XHJcbiAgICAgICAgfSkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmludmVyc2VOdWxsYWJsZUZpbHRlck9wZXJhdGlvbkhhbmRsZSh0aGlzLmFkdmFuY2VkUXVlcnlDdHJsLnZhbHVlKTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbnVsbGFibGVTZWxlY3RQbGFjZWhvbGRlcihydWxlOiBSdWxlLCBvcHRpb25zOiBOdWxsYWJsZVNlbGVjdE9wdGlvbltdKSB7XHJcbiAgICBpZihydWxlLm9wZXJhdG9yID09ICdpcycgJiYgcnVsZS52YWx1ZSA9PSAnbnVsbCcpIHtcclxuICAgICAgcnVsZS52YWx1ZSA9IDA7XHJcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uc09iamVjdC5udWxsYWJsZVNlbGVjdE9wdGlvbnMhW29wdGlvbnNbMF0ubmFtZV0uaXNOdWxsT3B0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYocnVsZS5vcGVyYXRvciA9PSAnaXMgbm90JyAmJiBydWxlLnZhbHVlID09ICdudWxsJykge1xyXG4gICAgICBydWxlLnZhbHVlID0gMTtcclxuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25zT2JqZWN0Lm51bGxhYmxlU2VsZWN0T3B0aW9ucyFbb3B0aW9uc1swXS5uYW1lXS5pc05vdE51bGxPcHRpb247XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmxpc3Q7XHJcbiAgfVxyXG4gIFxyXG4gIHNldEVtdHB5QXJyYXlzVG9OdWxsKHF1ZXJ5OiBhbnkpIHtcclxuICAgIGlmIChcInJ1bGVzXCIgaW4gcXVlcnkpIHtcclxuICAgICAgcXVlcnkucnVsZXMuZm9yRWFjaCgocnVsZTogUnVsZVNldCB8IFJ1bGUpID0+IHtcclxuICAgICAgICB0aGlzLnNldEVtdHB5QXJyYXlzVG9OdWxsKHJ1bGUpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChxdWVyeS52YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICYmIHF1ZXJ5LnZhbHVlLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgcXVlcnkudmFsdWUgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTZWFyY2hUeXBlKCkge1xyXG4gICAgdGhpcy5pc0FkdmFuY2VkU2VhcmNoID0gIXRoaXMuaXNBZHZhbmNlZFNlYXJjaDtcclxuICAgIGlmKHRoaXMuaXNBZHZhbmNlZFNlYXJjaCkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnVwZGF0ZU51bGxhYmxlRWxlbWVudHModGhpcy5xdWVyeUJ1aWxkZXIuY29uZmlnLmZpZWxkcylcclxuICAgICAgfSwgMzAwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVOdWxsYWJsZUVsZW1lbnRzKGVsZW1lbnRzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogdm9pZCB7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBlbGVtZW50cykge1xyXG4gICAgICAgIGlmIChlbGVtZW50cy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50c1trZXldO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudC5vcGVyYXRvcnMuaW5jbHVkZXMoJ251bGxhYmxlJykpIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuZGVmYXVsdFZhbHVlID0gMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoQ2xpY2tlZCgpIHtcclxuICAgIGxldCBxdWVyaWVzOiBRdWVyeVJlc3VsdHMgPSB7XHJcbiAgICAgIHR5cGU6IHRoaXMuZ2V0UXVlcnlUeXBlKCksXHJcbiAgICAgIGJhc2ljOiB0aGlzLmlzQWR2YW5jZWRTZWFyY2ggPyBudWxsIDogT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5xdWVyeUN0cmwudmFsdWUpLFxyXG4gICAgICBhZHZhbmNlZDogdGhpcy5pc0FkdmFuY2VkU2VhcmNoID8gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5hZHZhbmNlZFF1ZXJ5Q3RybC52YWx1ZSkgOiBudWxsLFxyXG4gICAgICBncm91cGVkOiB0aGlzLmlzQWR2YW5jZWRTZWFyY2ggJiYgdGhpcy5maWx0ZXJQYW5lbE9iamVjdC5hbGxvd0dyb3VwZWQgPyBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmdyb3VwZWRRdWVyeUN0cmwudmFsdWUpIDogbnVsbFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLnNldEVudGl0eShxdWVyaWVzKTtcclxuXHJcbiAgICBxdWVyaWVzID0gdGhpcy5pbml0aWFsaXplT3BlcmF0b3JzKHF1ZXJpZXMpO1xyXG4gICAgXHJcbiAgICB0aGlzLnNldE5vRmlsdGVyc1F1ZXJ5VHlwZShxdWVyaWVzKS50aGVuKChyZXNRdWVyaWVzOmFueSkgPT4ge1xyXG4gICAgICBpZihyZXNRdWVyaWVzLnR5cGUgIT0gMCl7XHJcbiAgICAgICAgdGhpcy5udWxsYWJsZUZpbHRlck9wZXJhdGlvbkhhbmRsZShxdWVyaWVzLmJhc2ljID8gcXVlcmllcy5iYXNpYyA6IHF1ZXJpZXMuYWR2YW5jZWQpO1xyXG4gICAgICB9XHJcbiAgICB9KS50aGVuKChyZXNRdWVyaWVzOmFueSkgPT4ge1xyXG4gICAgICBsZXQgc3RvcmVkUXVlcnk6IFN0b3JlZEZpbHRlclBhbmVsUXVlcnkgPSB7XHJcbiAgICAgICAgaWQ6IHRoaXMuZmlsdGVySWQsXHJcbiAgICAgICAgYmFzaWNRdWVyeVZhbHVlOiBxdWVyaWVzLmJhc2ljLFxyXG4gICAgICAgIGFkdmFuY2VkUXVlcnlWYWx1ZTogcXVlcmllcy5hZHZhbmNlZCxcclxuICAgICAgICBncm91cGVkUXVlcnlWYWx1ZTogcXVlcmllcy5ncm91cGVkXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXRFbXRweUFycmF5c1RvTnVsbChxdWVyaWVzLmJhc2ljID8gcXVlcmllcy5iYXNpYyA6IHF1ZXJpZXMuYWR2YW5jZWQpO1xyXG4gICAgICBpZihzdG9yZWRRdWVyeS5hZHZhbmNlZFF1ZXJ5VmFsdWUgJiYgc3RvcmVkUXVlcnkuYWR2YW5jZWRRdWVyeVZhbHVlLnJ1bGVzID09IDApIHtcclxuICAgICAgICAvL0RvIG5vdGhpbmdcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlLnNldExhc3RGaWx0ZXJQYW5lbFF1ZXJ5KHRoaXMudGVuYW50SWQsIHN0b3JlZFF1ZXJ5KTtcclxuICAgICAgfVxyXG4gICAgfSkudGhlbigocmVzUXVlcmllczogYW55KSA9PiB7XHJcbiAgICAgIHF1ZXJpZXMgPSB0aGlzLmRlbGV0ZUZpZWxkc1dpdGhvdXRWYWx1ZShxdWVyaWVzKTtcclxuICAgICAgcXVlcmllcyA9IHRoaXMuaGFuZGxlRW1wdHlGaWVsZHNRdWVyeShxdWVyaWVzKTtcclxuICAgICAgdGhpcy5zZWFyY2hDbGlja2VkLmVtaXQocXVlcmllcyk7XHJcbiAgICB9KS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5pbnZlcnNlTnVsbGFibGVGaWx0ZXJPcGVyYXRpb25IYW5kbGUodGhpcy5hZHZhbmNlZFF1ZXJ5Q3RybC52YWx1ZSk7XHJcbiAgICB9KVxyXG4gICAgLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgZW4gbGEgcHJvbWVzYTpcIiwgZXJyb3IpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXROb0ZpbHRlcnNRdWVyeVR5cGUocXVlcmllczphbnkpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHF1ZXJpZXMgPSB0aGlzLmhhbmRsZUVtcHR5RmllbGRzUXVlcnkocXVlcmllcyk7XHJcbiAgICAgICAgcmVzb2x2ZShxdWVyaWVzKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DbGVhckNsaWNrZWQoKSB7XHJcbiAgICB0aGlzLnJlc2V0QmFzaWNRdWVyeVZhbHVlcygpO1xyXG4gICAgdGhpcy5hZHZhbmNlZFF1ZXJ5LnJ1bGVzID0gW107XHJcbiAgICB0aGlzLmdyb3VwZWRRdWVyeS5ydWxlcyA9IFtdO1xyXG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVMYXN0RmlsdGVyUGFuZWxRdWVyeSh0aGlzLnRlbmFudElkLCB0aGlzLmZpbHRlcklkKTtcclxuICAgIHRoaXMuY2xlYXJDbGlja2VkLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFbXB0eUZpZWxkc1F1ZXJ5KHF1ZXJpZXM6IFF1ZXJ5UmVzdWx0cyk6IFF1ZXJ5UmVzdWx0cyB7XHJcbiAgICBpZihxdWVyaWVzLmFkdmFuY2VkICE9IG51bGwgJiYgcXVlcmllcy5hZHZhbmNlZD8ucnVsZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgcXVlcmllcy50eXBlID0gMFxyXG4gICAgfVxyXG4gICAgaWYocXVlcmllcy5iYXNpYyAhPSBudWxsICYmIHF1ZXJpZXMuYmFzaWM/LnJ1bGVzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIHF1ZXJpZXMudHlwZSA9IDBcclxuICAgIH1cclxuICAgIGlmKHF1ZXJpZXMuZ3JvdXBlZCAhPSBudWxsICYmIHF1ZXJpZXMuZ3JvdXBlZD8ucnVsZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgcXVlcmllcy50eXBlID0gMFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHF1ZXJpZXM7XHJcbiAgfVxyXG5cclxuICBudWxsYWJsZUZpbHRlck9wZXJhdGlvbkhhbmRsZShxdWVyeTogYW55KSB7XHJcbiAgICBpZiAoXCJydWxlc1wiIGluIHF1ZXJ5KSB7XHJcbiAgICAgIHF1ZXJ5LnJ1bGVzLmZvckVhY2goKHJ1bGU6IFJ1bGVTZXQgfCBSdWxlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5udWxsYWJsZUZpbHRlck9wZXJhdGlvbkhhbmRsZShydWxlKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAocXVlcnkub3BlcmF0b3IgPT09IE9wZXJhdG9yRW51bS5OdWxsYWJsZSB8fCAoKHF1ZXJ5Lm9wZXJhdG9yID09ICdpcycgfHwgcXVlcnkub3BlcmF0b3IgPT0gJ2lzIG5vdCcpICYmIChxdWVyeS52YWx1ZSA9PSAxIHx8IHF1ZXJ5LnZhbHVlID09IDApKSkge1xyXG4gICAgICAgIGlmKHF1ZXJ5LnZhbHVlID09IDEpIHtcclxuICAgICAgICAgIHF1ZXJ5Lm9wZXJhdG9yID0gJ2lzIG5vdCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHF1ZXJ5LnZhbHVlID09IDApIHtcclxuICAgICAgICAgIHF1ZXJ5Lm9wZXJhdG9yID0gJ2lzJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcXVlcnkudmFsdWUgPSAnbnVsbCc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGludmVyc2VOdWxsYWJsZUZpbHRlck9wZXJhdGlvbkhhbmRsZShxdWVyeTogYW55KSB7XHJcbiAgICBpZiAoXCJydWxlc1wiIGluIHF1ZXJ5KSB7XHJcbiAgICAgIHF1ZXJ5LnJ1bGVzLmZvckVhY2goKHJ1bGU6IFJ1bGVTZXQgfCBSdWxlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pbnZlcnNlTnVsbGFibGVGaWx0ZXJPcGVyYXRpb25IYW5kbGUocnVsZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKChxdWVyeS5vcGVyYXRvciA9PSAnaXMgbm90JyB8fCBxdWVyeS5vcGVyYXRvciA9PSAnaXMnKSAmJiBxdWVyeS52YWx1ZSA9PSAnbnVsbCcpIHtcclxuICAgICAgICBpZihxdWVyeS5vcGVyYXRvciA9PSAnaXMgbm90Jykge1xyXG4gICAgICAgICAgcXVlcnkudmFsdWUgPSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihxdWVyeS5vcGVyYXRvciA9PSAnaXMnKSB7XHJcbiAgICAgICAgICBxdWVyeS52YWx1ZSA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRRdWVyeVR5cGUoKTogUXVlcnlSZXN1bHRUeXBlIHtcclxuICAgIGlmKCF0aGlzLmlzQWR2YW5jZWRTZWFyY2gpIHtcclxuICAgICAgcmV0dXJuIFF1ZXJ5UmVzdWx0VHlwZS5CYXNpYztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmKHRoaXMuaXNBZHZhbmNlZFNlYXJjaCAmJiB0aGlzLmdyb3VwZWRRdWVyeUN0cmw/LnZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIFF1ZXJ5UmVzdWx0VHlwZS5Hcm91cGVkXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFF1ZXJ5UmVzdWx0VHlwZS5BZHZhbmNlZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RW50aXR5KHF1ZXJpZXM6IFF1ZXJ5UmVzdWx0cykge1xyXG4gICAgaWYodGhpcy5nZXRRdWVyeVR5cGUoKSA9PSBRdWVyeVJlc3VsdFR5cGUuQmFzaWMpIHtcclxuICAgICAgcXVlcmllcy5iYXNpYyEucnVsZXMgPSBxdWVyaWVzLmJhc2ljIS5ydWxlcy5tYXAoKHI6YW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGZpZWxkOiByLmZpZWxkLFxyXG4gICAgICAgICAgb3BlcmF0b3I6IHIub3BlcmF0b3IsXHJcbiAgICAgICAgICB2YWx1ZTogci52YWx1ZSxcclxuICAgICAgICAgIGVudGl0eTogdGhpcy5lbnRpdGllcy5maW5kKGUgPT4gZS5maWVsZEpzb25OYW1lID09IHIuZmllbGQpLmVudGl0eVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFF1ZXJ5QnVpbGRlckZpbHRlclBhbmVsKCkge1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmdldEZpbHRlclBhbmVsKHRoaXMuYXV0aG9yaXphdGlvbkFwaVVybCwgdGhpcy50b2tlbiwgdGhpcy5jb21tb25EYXRhQXBpVXJsLCB0aGlzLmNvbW1vbkRhdGFUb2tlbiwgdGhpcy5maWx0ZXJJZClcclxuICAgICAgLnN1YnNjcmliZSgocWJQYW5lbEZpbHRlcjogUWJQYW5lbEZpbHRlcikgPT4ge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyUGFuZWxPYmplY3QgPSBxYlBhbmVsRmlsdGVyO1xyXG4gICAgICAgIGxldCBiYXNpY0ZpbHRlcklkczogbnVtYmVyW10gPSBxYlBhbmVsRmlsdGVyLnFicGFuZWxUb0ZpZWxkcy5maWx0ZXIocGFuZWxUb0ZpZWxkID0+IHBhbmVsVG9GaWVsZC5iYXNpYykubWFwKHBhbmVsVG9GaWVsZCA9PiBwYW5lbFRvRmllbGQucWJmaWx0ZXJGaWVsZElkKTtcclxuICAgICAgICBsZXQgYWR2YW5jZWRGaWx0ZXJJZHM6IG51bWJlcltdID0gcWJQYW5lbEZpbHRlci5xYnBhbmVsVG9GaWVsZHMuZmlsdGVyKHBhbmVsVG9GaWVsZCA9PiAhcGFuZWxUb0ZpZWxkLmJhc2ljKS5tYXAocGFuZWxUb0ZpZWxkID0+IHBhbmVsVG9GaWVsZC5xYmZpbHRlckZpZWxkSWQpO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFZhbHVlcyA9IHFiUGFuZWxGaWx0ZXIucWJwYW5lbFRvRmllbGRzLm1hcChwYW5lbFRvRmllbGQgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgcWJmaWx0ZXJGaWVsZElkOiBwYW5lbFRvRmllbGQucWJmaWx0ZXJGaWVsZElkLFxyXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHRoaXMuZGVmYXVsdFZhbHVlQWRhcHRlcihwYW5lbFRvRmllbGQuZGVmYXVsdFZhbHVlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0T3BlcmF0b3JzID0gcWJQYW5lbEZpbHRlci5xYnBhbmVsVG9GaWVsZHMubWFwKHBhbmVsVG9GaWVsZCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBxYmZpbHRlckZpZWxkSWQ6IHBhbmVsVG9GaWVsZC5xYmZpbHRlckZpZWxkSWQsXHJcbiAgICAgICAgICAgIHFiZGVmYXVsdE9wZXJhdG9yOiBwYW5lbFRvRmllbGQucWJkZWZhdWx0T3BlcmF0b3JcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIGxldCBmaWx0ZXJFbnRpdHk6IFFiRmlsdGVyRW50aXR5W10gPSBxYlBhbmVsRmlsdGVyLnFicGFuZWxUb0ZpZWxkcy5tYXAocGFuZWxUb0ZpZWxkID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkOiBwYW5lbFRvRmllbGQucWJmaWx0ZXJGaWVsZC5xYmZpbHRlckVudGl0eS5pZCwgXHJcbiAgICAgICAgICAgIGJhc2ljOiBwYW5lbFRvRmllbGQuYmFzaWMsXHJcbiAgICAgICAgICAgIG5hbWU6IHBhbmVsVG9GaWVsZC5xYmZpbHRlckZpZWxkLnFiZmlsdGVyRW50aXR5Lm5hbWUsIFxyXG4gICAgICAgICAgICBqc29uTmFtZTogcGFuZWxUb0ZpZWxkLnFiZmlsdGVyRmllbGQucWJmaWx0ZXJFbnRpdHkuanNvbk5hbWUsIFxyXG4gICAgICAgICAgICBmaWVsZHM6IFtdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGxldCBmaWx0ZXJGaWVsZHM6IEZpbHRlckZpZWxkW10gPSBxYlBhbmVsRmlsdGVyLnFicGFuZWxUb0ZpZWxkcy5tYXAocCA9PiBwLnFiZmlsdGVyRmllbGQpO1xyXG4gICAgICAgIGZpbHRlckVudGl0eS5mb3JFYWNoKChlbnRpdHk6IFFiRmlsdGVyRW50aXR5LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgbGV0IGZpZWxkcyA9IGZpbHRlckZpZWxkcy5maWx0ZXIoZSA9PiBlLnFiZmlsdGVyRW50aXR5LmlkID09IGVudGl0eS5pZCk7XHJcbiAgICAgICAgICAgZmlsdGVyRW50aXR5W2luZGV4XS5maWVsZHMgPSBmaWVsZHMgO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5iYXNpY1F1ZXJ5Q29uZmlnID0gdGhpcy5pbml0UXVlcnlCdWlsZGVyKGZpbHRlckVudGl0eSk7XHJcbiAgICAgICAgdGhpcy5iYXNpY1F1ZXJ5Q29uZmlnID0gdGhpcy5maWx0ZXJGaWVsZHNCeUlkKHRoaXMuYmFzaWNRdWVyeUNvbmZpZywgYmFzaWNGaWx0ZXJJZHMpO1xyXG4gICAgICAgIHRoaXMuYmFzaWNRdWVyeUNvbmZpZy5maWVsZHMgPSB0aGlzLnRyYW5zbGF0ZUZpZWxkcyh0aGlzLmJhc2ljUXVlcnlDb25maWcuZmllbGRzKTtcclxuICAgICAgICB0aGlzLmFkdmFuY2VkUXVlcnlDb25maWcgPSB0aGlzLmluaXRRdWVyeUJ1aWxkZXIoZmlsdGVyRW50aXR5KTtcclxuICAgICAgICB0aGlzLmFkdmFuY2VkUXVlcnlDb25maWcgPSB0aGlzLmZpbHRlckZpZWxkc0J5SWQodGhpcy5hZHZhbmNlZFF1ZXJ5Q29uZmlnLCBhZHZhbmNlZEZpbHRlcklkcyk7XHJcbiAgICAgICAgdGhpcy5hZHZhbmNlZFF1ZXJ5Q29uZmlnLmZpZWxkcyA9IHRoaXMudHJhbnNsYXRlRmllbGRzKHRoaXMuYWR2YW5jZWRRdWVyeUNvbmZpZy5maWVsZHMpO1xyXG4gICAgICAgIGxldCBydWxlcyA9IE9iamVjdC5rZXlzKHRoaXMuYmFzaWNRdWVyeUNvbmZpZy5maWVsZHMpXHJcbiAgICAgICAgICAubWFwKGZpZWxkS2V5ID0+IHsgXHJcbiAgICAgICAgICAgIGxldCBkZWZhdWx0T3BlcmF0b3IgPSB0aGlzLmRlZmF1bHRPcGVyYXRvcnMuZmluZChvcGVyYXRvciA9PiBvcGVyYXRvci5xYmZpbHRlckZpZWxkSWQgPT0gdGhpcy5iYXNpY1F1ZXJ5Q29uZmlnLmZpZWxkc1tmaWVsZEtleV0uaWQgJiYgb3BlcmF0b3IucWJkZWZhdWx0T3BlcmF0b3IgIT0gbnVsbCk7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgZmllbGQ6IGZpZWxkS2V5LCBcclxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5iYXNpY1F1ZXJ5Q29uZmlnLmZpZWxkc1tmaWVsZEtleV0uZGVmYXVsdFZhbHVlISxcclxuICAgICAgICAgICAgICBvcGVyYXRvcjogZGVmYXVsdE9wZXJhdG9yID8gZGVmYXVsdE9wZXJhdG9yLnFiZGVmYXVsdE9wZXJhdG9yLnN5bWJvbCA6IG51bGxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgaWYodGhpcy5zdG9yZWRRdWVyeSAmJiB0aGlzLnN0b3JlZFF1ZXJ5Py5pZCA9PSB0aGlzLmZpbHRlcklkICYmIHRoaXMuc3RvcmVkUXVlcnk/LmJhc2ljUXVlcnlWYWx1ZSAmJiB0aGlzLnN0b3JlZFF1ZXJ5Py5iYXNpY1F1ZXJ5VmFsdWUucnVsZXMubGVuZ3RoICE9IDApIHtcclxuICAgICAgICAgICAgdGhpcy5iYXNpY1F1ZXJ5ID0gdGhpcy5zdG9yZWRRdWVyeS5iYXNpY1F1ZXJ5VmFsdWU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmJhc2ljUXVlcnkgPSB7XHJcbiAgICAgICAgICAgICAgY29uZGl0aW9uOiAnYW5kJyxcclxuICAgICAgICAgICAgICBydWxlczogcnVsZXNcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKHRoaXMuc3RvcmVkUXVlcnkgJiYgdGhpcy5zdG9yZWRRdWVyeT8uaWQgPT0gdGhpcy5maWx0ZXJJZCAmJiB0aGlzLnN0b3JlZFF1ZXJ5Py5hZHZhbmNlZFF1ZXJ5VmFsdWUgJiYgdGhpcy5zdG9yZWRRdWVyeT8uYWR2YW5jZWRRdWVyeVZhbHVlLnJ1bGVzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWR2YW5jZWRRdWVyeSA9IHRoaXMuc3RvcmVkUXVlcnkuYWR2YW5jZWRRdWVyeVZhbHVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hZHZhbmNlZFF1ZXJ5ID0ge1xyXG4gICAgICAgICAgICAgIGNvbmRpdGlvbjogJ2FuZCcsXHJcbiAgICAgICAgICAgICAgcnVsZXM6IFtdXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucXVlcnlDb25maWdSZWFkeSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pbml0UXVlcnlCdWlsZGVyQ29udHJvbHMoKTtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGRlZmF1bHRWYWx1ZUFkYXB0ZXIodmFsdWU6IGFueSkge1xyXG4gICAgaWYodmFsdWUgPT0gJ1FCRmlsdGVyT3B0aW9uc0VudW1Ob3ROdWxsJykge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICAgIGlmKHZhbHVlID09ICdRQkZpbHRlck9wdGlvbnNFbnVtTnVsbCcpIHtcclxuICAgICAgcmV0dXJuIDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBpbml0UXVlcnlCdWlsZGVyKGZpbHRlckVudGl0aWVzOiBRYkZpbHRlckVudGl0eVtdKSB7XHJcbiAgICBsZXQgZW50aXR5Q29uZmlnQXV4OiBRdWVyeUJ1aWxkZXJDb25maWcgPSB7IGZpZWxkczoge30gfTtcclxuICAgIGxldCBlbnRpdGllc0FycmF5OiBFbnRpdHlNYXBbXSA9IFtdO1xyXG4gICAgXHJcbiAgICBmaWx0ZXJFbnRpdGllcy5tYXAoKGUsIGluZGV4KSA9PiB7XHJcbiAgICAgIGxldCBlbnRpdHk6IEVudGl0eSA9IHsgbmFtZTogZS5qc29uTmFtZSB9O1xyXG4gICAgICByZXR1cm4gZW50aXRpZXNBcnJheVtpbmRleF0gPSB7IFtlLmpzb25OYW1lXTogZW50aXR5IH07XHJcbiAgICB9KTtcclxuXHJcbiAgICBsZXQgZW50aXRpZXNNYXA6IEVudGl0eU1hcCA9IHt9O1xyXG5cclxuICAgIGZvciAoY29uc3QgZW50aXR5IG9mIGVudGl0aWVzQXJyYXkpIHtcclxuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGVudGl0eSk7XHJcblxyXG4gICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICBpZih0aGlzLnRyYW5zbGF0aW9uc09iamVjdC5lbnRpdGllcykge1xyXG4gICAgICAgICAgbGV0IGVudGl0aWVzVHJhbnNsYXRpb25zS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMudHJhbnNsYXRpb25zT2JqZWN0LmVudGl0aWVzKTtcclxuICAgICAgICAgIGxldCB0cmFuc2xhdGlvbiA9IGVudGl0aWVzVHJhbnNsYXRpb25zS2V5cy5maW5kKHRyYW5zbGF0aW9uS2V5ID0+IHRyYW5zbGF0aW9uS2V5ID09IGtleSk7XHJcbiAgICAgICAgICBpZih0cmFuc2xhdGlvbikge1xyXG4gICAgICAgICAgICBlbnRpdGllc01hcFtrZXldID0geyBuYW1lOiB0aGlzLnRyYW5zbGF0aW9uc09iamVjdC5lbnRpdGllc1trZXldIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGVudGl0aWVzTWFwW2tleV0gPSBlbnRpdHlba2V5XVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBlbnRpdGllc01hcFtrZXldID0gZW50aXR5W2tleV1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZW50aXR5Q29uZmlnQXV4LmVudGl0aWVzID0gZW50aXRpZXNNYXA7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGZpZWxkczogRmllbGRNYXBbXSA9IFtdO1xyXG4gICAgZmlsdGVyRW50aXRpZXMuZm9yRWFjaCgoZmlsdGVyRW50aXR5KSA9PiB7XHJcbiAgICAgIHJldHVybiBmaWx0ZXJFbnRpdHkuZmllbGRzLmZpbHRlcigoZmlsdGVyRmllbGQ6IEZpbHRlckZpZWxkKSA9PiB7XHJcbiAgICAgICAgbGV0IGluZGV4OiBudW1iZXIgPSBmaWVsZHMubGVuZ3RoID8/IDA7XHJcbiAgICAgICAgbGV0IG9wZXJhdG9yc0ZsYXRBcnJheSA9IGZpbHRlckZpZWxkLm9wZXJhdG9ycy5tYXAoKG86YW55KSA9PiBvLnN5bWJvbCk7XHJcbiAgICAgICAgbGV0IGRlZmF1bHRPcGVyYXRvciA9IHRoaXMuZGVmYXVsdE9wZXJhdG9ycy5maW5kKG9wZXJhdG9yID0+IG9wZXJhdG9yLnFiZmlsdGVyRmllbGRJZCA9PSBmaWx0ZXJGaWVsZC5pZCk7XHJcbiAgICAgICAgbGV0IGZpZWxkOiBGaWVsZCA9IHtcclxuICAgICAgICAgIGlkOiBmaWx0ZXJGaWVsZC5pZCxcclxuICAgICAgICAgIG5hbWU6IGZpbHRlckZpZWxkLm5hbWUsXHJcbiAgICAgICAgICBvcGVyYXRvcnM6IGRlZmF1bHRPcGVyYXRvci5xYmRlZmF1bHRPcGVyYXRvcj8uc3ltYm9sID8gdGhpcy5tb3ZlRWxlbWVudFRvRmlyc3RQbGFjZShvcGVyYXRvcnNGbGF0QXJyYXksIGRlZmF1bHRPcGVyYXRvci5xYmRlZmF1bHRPcGVyYXRvcj8uc3ltYm9sKSA6IG9wZXJhdG9yc0ZsYXRBcnJheSxcclxuICAgICAgICAgIHR5cGU6IHRoaXMuZ2V0RGF0YVR5cGUoZmlsdGVyRmllbGQuZGF0YVR5cGUpLFxyXG4gICAgICAgICAgZGVmYXVsdFZhbHVlOiB0aGlzLmZvcm1hdERlZmF1bHRWYWx1ZSh0aGlzLmRlZmF1bHRWYWx1ZXMuZmluZCh2YWx1ZSA9PiB2YWx1ZS5xYmZpbHRlckZpZWxkSWQgPT0gZmlsdGVyRmllbGQuaWQpLmRlZmF1bHRWYWx1ZSwgZmlsdGVyRmllbGQuZGF0YVR5cGUpLFxyXG4gICAgICAgICAgZGVmYXVsdE9wZXJhdG9yOiBkZWZhdWx0T3BlcmF0b3IucWJkZWZhdWx0T3BlcmF0b3I/LnN5bWJvbCxcclxuICAgICAgICAgIGVudGl0eTogZmlsdGVyRW50aXR5Lmpzb25OYW1lLFxyXG4gICAgICAgICAgb3B0aW9uczogZmlsdGVyRmllbGQubGlzdE9mVmFsdWVzLFxyXG4gICAgICAgICAgdmFsaWRhdG9yOiAocnVsZTogUnVsZSwgcGFyZW50OiBSdWxlU2V0KTogYW55IHwgbnVsbCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChydWxlLm9wZXJhdG9yICE9PSBcImlzIG51bGxcIiAmJiBydWxlLm9wZXJhdG9yICE9PSBcImlzIG5vdCBudWxsXCIpIHtcclxuICAgICAgICAgICAgICBpZiAocnVsZS52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHJ1bGUudmFsdWUgPT09IG51bGwgfHwgcnVsZS52YWx1ZSA9PT0gJycgfHwgcnVsZS52YWx1ZS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgcmVxdWlyZWQ6ICdlbXB0eSBmaWVsZCcgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZW50aXRpZXMucHVzaCh7ZmllbGRKc29uTmFtZTogZmlsdGVyRmllbGQuanNvbk5hbWUsIGVudGl0eTogZmllbGQuZW50aXR5fSk7XHJcbiAgICAgICAgZmllbGRzW2luZGV4XSA9IHsgW2ZpbHRlckZpZWxkLmpzb25OYW1lXTogZmllbGQgfTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBsZXQgZmllbGRzTWFwOiBGaWVsZE1hcCA9IHt9O1xyXG5cclxuICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XHJcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhmaWVsZCk7XHJcbiAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgIGZpZWxkc01hcFtrZXldID0gZmllbGRba2V5XTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBlbnRpdHlDb25maWdBdXguZmllbGRzID0gZmllbGRzTWFwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVudGl0eUNvbmZpZ0F1eDtcclxuICB9XHJcblxyXG4gIGZpbHRlckZpZWxkc0J5SWQoZmllbGRzT2JqOiBhbnksIGlkQXJyYXk6IG51bWJlcltdKTogYW55IHtcclxuICAgIGNvbnN0IGZpbHRlcmVkRmllbGRzOiBhbnkgPSB7fTtcclxuICAgIFxyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gZmllbGRzT2JqLmZpZWxkcykge1xyXG4gICAgICBjb25zdCBmaWVsZCA9IGZpZWxkc09iai5maWVsZHNba2V5XTtcclxuICAgICAgaWYgKGlkQXJyYXkuaW5jbHVkZXMoZmllbGQuaWQpKSB7XHJcbiAgICAgICAgZmlsdGVyZWRGaWVsZHNba2V5XSA9IGZpZWxkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLmZpZWxkc09iaixcclxuICAgICAgZmllbGRzOiBmaWx0ZXJlZEZpZWxkcyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICB0cmFuc2xhdGVGaWVsZHMoZmllbGRzOiBGaWVsZE1hcCkge1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gZmllbGRzKSB7XHJcbiAgICAgIGlmIChmaWVsZHMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIGZpZWxkc1trZXldLmZpZWxkID0ga2V5O1xyXG4gICAgICAgIGZpZWxkc1trZXldLm5hbWUgPSB0aGlzLnRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNba2V5XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpZWxkcztcclxuICB9XHJcblxyXG4gIG1vdmVFbGVtZW50VG9GaXJzdFBsYWNlKGFycmF5OiBhbnlbXSwgZWxlbWVudFRvRmlyc3RQbGFjZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IGFycmF5LmluZGV4T2YoZWxlbWVudFRvRmlyc3RQbGFjZSk7XHJcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgIGFycmF5LnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIGFycmF5LnVuc2hpZnQoZWxlbWVudFRvRmlyc3RQbGFjZSk7IFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFycmF5O1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0RGVmYXVsdFZhbHVlKHZhbHVlOiBhbnksIHR5cGU6IFFCRGF0YVR5cGVFbnVtKSB7XHJcbiAgICBpZih2YWx1ZSkge1xyXG4gICAgICBpZih0eXBlID09IFFCRGF0YVR5cGVFbnVtLkJvb2xlYW4pIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHR5cGUgPT0gdGhpcy5xYkRhdGFUeXBlRW51bS5OdW1iZXIgfHwgdHlwZSA9PSB0aGlzLnFiRGF0YVR5cGVFbnVtLkRlY2ltYWwgfHwgdHlwZSA9PSB0aGlzLnFiRGF0YVR5cGVFbnVtLkxpc3Qpe1xyXG4gICAgICAgIHJldHVybiBOdW1iZXIodmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHR5cGUgPT0gdGhpcy5xYkRhdGFUeXBlRW51bS5OdWxsYWJsZVNlbGVjdCkge1xyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHR5cGUgPT0gdGhpcy5xYkRhdGFUeXBlRW51bS5Cb29sZWFuU2VsZWN0KSB7XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIH1cclxuICAgIH0gXHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXREYXRhVHlwZShpZDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5xYkRhdGFFbnVtcy5maW5kKHZhbHVlID0+IHZhbHVlID09PSBpZCk/LnRvU3RyaW5nKCkgPz8gXCJcIjtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUZpZWxkc1dpdGhvdXRWYWx1ZShqc29uOiBhbnkpIHtcclxuICAgIGlmIChqc29uLmJhc2ljICYmIGpzb24uYmFzaWMucnVsZXMpIHtcclxuICAgICAganNvbi5iYXNpYy5ydWxlcyA9IGpzb24uYmFzaWMucnVsZXMuZmlsdGVyKChydWxlOiBhbnkpID0+IHJ1bGUudmFsdWUgIT0gbnVsbCk7XHJcbiAgICAgIGpzb24uYmFzaWMucnVsZXMgPSBqc29uLmJhc2ljLnJ1bGVzLmZpbHRlcigocnVsZTogYW55KSA9PiBydWxlLnZhbHVlICE9IHVuZGVmaW5lZCk7XHJcbiAgICAgIGpzb24uYmFzaWMucnVsZXMgPSBqc29uLmJhc2ljLnJ1bGVzLmZpbHRlcigocnVsZTogYW55KSA9PiBydWxlLnZhbHVlICE9PSBcIlwiKTtcclxuICAgICAganNvbi5iYXNpYy5ydWxlcyA9IGpzb24uYmFzaWMucnVsZXMuZmlsdGVyKChydWxlOiBhbnkpID0+IHsgcmV0dXJuICEocnVsZS5vcGVyYXRvciA9PT0gXCJudWxsYWJsZVwiICYmIHJ1bGUudmFsdWUgPT09IFwibnVsbFwiKTsgfSk7XHJcbiAgICB9XHJcbiAgICBpZihqc29uLmFkdmFuY2VkICYmIGpzb24uYWR2YW5jZWQucnVsZXM/Lmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgIGpzb24uYWR2YW5jZWQucnVsZXMgPSBqc29uLmFkdmFuY2VkLnJ1bGVzLmZpbHRlcigocnVsZTogYW55KSA9PiBydWxlLnJ1bGVzPy5sZW5ndGggIT0gMCk7XHJcbiAgICB9XHJcbiAgICBpZihqc29uLmdyb3VwZWQgJiYganNvbi5ncm91cGVkPy5ydWxlcy5sZW5ndGggIT0gMCkge1xyXG4gICAgICBqc29uLmdyb3VwZWQucnVsZXMgPSBqc29uLmdyb3VwZWQucnVsZXMuZmlsdGVyKChydWxlOiBhbnkpID0+IHJ1bGUucnVsZXM/Lmxlbmd0aCAhPSAwKTtcclxuICAgIH1cclxuICAgIGlmKGpzb24uZ3JvdXBlZCAmJiBqc29uLmdyb3VwZWQ/LnJ1bGVzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIGpzb24uZ3JvdXBlZCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ganNvbjtcclxuICB9XHJcbiAgXHJcbiAgaW5pdGlhbGl6ZU9wZXJhdG9ycyhqc29uOiBhbnkpIHtcclxuICAgIGlmIChqc29uLmJhc2ljICYmIGpzb24uYmFzaWMucnVsZXMpIHtcclxuICAgICAganNvbi5iYXNpYy5ydWxlcy5mb3JFYWNoKChydWxlOmFueSkgPT4ge1xyXG4gICAgICAgIGlmKCFydWxlLm9wZXJhdG9yKSB7XHJcbiAgICAgICAgICBydWxlLm9wZXJhdG9yID0gXCI9XCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBqc29uO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRCYXNpY1F1ZXJ5VmFsdWVzKCkge1xyXG4gICAgdGhpcy5iYXNpY1F1ZXJ5LnJ1bGVzLmZvckVhY2goKHJ1bGU6IFJ1bGUpID0+IHtcclxuICAgICAgaWYocnVsZS52YWx1ZSB8fCBydWxlLnZhbHVlID09IDApe1xyXG4gICAgICAgIHJ1bGUudmFsdWUgPSBudWxsXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UXVlcnlGaWVsZE5hbWUoZmllbGROYW1lOiBzdHJpbmcsIGZpZWxkczogRmllbGRNYXApIHtcclxuICAgIGNvbnN0IGZpZWxkRW50cnkgPSBPYmplY3Qua2V5cyhmaWVsZHMpLmZpbmQoa2V5ID0+IGZpZWxkc1trZXldLmZpZWxkID09PSBmaWVsZE5hbWUpO1xyXG5cclxuICAgIHJldHVybiBmaWVsZEVudHJ5ICYmIGZpZWxkc1tmaWVsZEVudHJ5XS5uYW1lID8gZmllbGRzW2ZpZWxkRW50cnldLm5hbWUgOiBmaWVsZE5hbWU7XHJcbiAgfVxyXG5cclxuICBnZXROdWxsYWJsZVNlbGVjdE9wdGlvbnMob3B0aW9uczogTnVsbGFibGVTZWxlY3RPcHRpb25bXSkge1xyXG4gICAgcmV0dXJuIG9wdGlvbnMubWFwKChvcHRpb246IE51bGxhYmxlU2VsZWN0T3B0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTogb3B0aW9uLnZhbHVlID09PSAxID8gXHJcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uc09iamVjdC5udWxsYWJsZVNlbGVjdE9wdGlvbnMhW29wdGlvbi5uYW1lXS5pc05vdE51bGxPcHRpb24gOlxyXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGlvbnNPYmplY3QubnVsbGFibGVTZWxlY3RPcHRpb25zIVtvcHRpb24ubmFtZV0uaXNOdWxsT3B0aW9uLFxyXG4gICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRCb29sZWFuU2VsZWN0T3B0aW9ucyhvcHRpb25zOiBCb29sZWFuU2VsZWN0T3B0aW9uW10pIHtcclxuICAgIHJldHVybiBvcHRpb25zLm1hcCgob3B0aW9uOiBCb29sZWFuU2VsZWN0T3B0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTogb3B0aW9uLnZhbHVlID09PSAxID8gXHJcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uc09iamVjdC5ib29sZWFuU2VsZWN0T3B0aW9ucyFbb3B0aW9uLm5hbWVdLmlzTm90TnVsbE9wdGlvbiA6XHJcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uc09iamVjdC5ib29sZWFuU2VsZWN0T3B0aW9ucyFbb3B0aW9uLm5hbWVdLmlzTnVsbE9wdGlvbixcclxuICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZmllbGRJc0Jvb2xlYW4oZmllbGROYW1lOiBzdHJpbmcsIGZpZWxkczogRmllbGRNYXApIHtcclxuICAgIGNvbnN0IGZpZWxkRW50cnkgPSBPYmplY3Qua2V5cyhmaWVsZHMpLmZpbmQoa2V5ID0+IGZpZWxkc1trZXldLmZpZWxkID09PSBmaWVsZE5hbWUpO1xyXG5cclxuICAgIHJldHVybiBmaWVsZHNbZmllbGRFbnRyeSFdLnR5cGUgPT0gUUJEYXRhVHlwZUVudW0uQm9vbGVhbi50b1N0cmluZygpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaXNNdWx0aXNlbGVjdChydWxlOiBSdWxlKSB7XHJcbiAgICBpZihydWxlLm9wZXJhdG9yID09ICdpbicgfHwgcnVsZS5vcGVyYXRvciA9PSAnbm90IGluJyB8fCBydWxlLm9wZXJhdG9yID09ICdpcyBudWxsJyB8fCBydWxlLm9wZXJhdG9yID09ICdpcyBub3QgbnVsbCcpIHtcclxuICAgICAgaWYocnVsZS52YWx1ZSkge1xyXG4gICAgICAgIGlmKCFBcnJheS5pc0FycmF5KHJ1bGUudmFsdWUpKSB7XHJcbiAgICAgICAgICBydWxlLnZhbHVlID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZihydWxlLnZhbHVlKSB7XHJcbiAgICAgICAgaWYoQXJyYXkuaXNBcnJheShydWxlLnZhbHVlKSlcclxuICAgICAgICBydWxlLnZhbHVlID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gVE9ETzogSW50ZW50YXIgb3RyYSB2ZXogcGFzYXIgbG9zIGNvbXBvbmVudGVzIGEgbG9zIGRlIHctIHBvcnF1ZSBubyBzZSBhbGluZW5hIHkgZWwgdy1lZGl0LXNlbGVjdCBubyB2YSBiaWVuIGVuIGZpZWxkLiBcclxuICBBaG9yYSBzZSBjb25zZXJ2YW4gbG9zIGRlIHAtdyBjb24gZXN0aWxvcy4gLS0+XHJcbjxwLWJsb2NrVUkgc3R5bGVDbGFzcz1cInctZmlsdGVyLXBhbmVsLWJsb2NrdWlcIiBbYXV0b1pJbmRleF09XCJmYWxzZVwiIFt0YXJnZXRdPVwiZmlsdGVyUGFuZWxcIiBbYmxvY2tlZF09XCJkYXRhSXNMb2FkaW5nU2VhcmNoQnV0dG9uXCI+PC9wLWJsb2NrVUk+XHJcblxyXG48cC1jYXJkIHN0eWxlQ2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1uby1zdHlsZS1jYXJkXCIgI2ZpbHRlclBhbmVsPlxyXG4gIDxkaXYgKm5nSWY9XCJxdWVyeUNvbmZpZ1JlYWR5XCIgY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1zdHlsZXNcIj5cclxuICAgIDxkaXYgKm5nSWY9XCIhZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dBZHZhbmNlZFNlYXJjaDsgZWxzZSBiYWlzY0FuZEFkdmFuY2VkXCI+XHJcbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyAndy1maWx0ZXItcGFuZWwtY29udGFpbmVyLWFkdmFuY2VkJyA6IGlzQWR2YW5jZWRTZWFyY2gsICd3LWZpbHRlci1wYW5lbC1jb250YWluZXItYmFzaWMnIDogIWlzQWR2YW5jZWRTZWFyY2ggfVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJiYXNpY1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1idXR0b25zXCI+XHJcbiAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5jbGVhckJ1dHRvbkxhYmVsXCIgdHlwZT1cInRlcnRpYXJ5XCIgc2l6ZT1cInNtYWxsXCIgKG9uQ2xpY2spPVwib25DbGVhckNsaWNrZWQoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5zZWFyY2hCdXR0b25MYWJlbFwiIHNpemU9XCJzbWFsbFwiIChvbkNsaWNrKT1cIm9uU2VhcmNoQ2xpY2tlZCgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2JhaXNjQW5kQWR2YW5jZWQ+XHJcbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyAndy1maWx0ZXItcGFuZWwtY29udGFpbmVyLWFkdmFuY2VkJyA6IGlzQWR2YW5jZWRTZWFyY2gsICd3LWZpbHRlci1wYW5lbC1jb250YWluZXItYmFzaWMnIDogIWlzQWR2YW5jZWRTZWFyY2ggfVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0FkdmFuY2VkU2VhcmNoOyBlbHNlIGFkdmFuY2VkVmlld1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYmFzaWNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNhZHZhbmNlZFZpZXc+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhZHZhbmNlZFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYnV0dG9uc1wiIFtjbGFzcy5wdC0zXT1cImlzQWR2YW5jZWRTZWFyY2hcIj5cclxuICAgICAgICAgICAgPHctYnV0dG9uIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuY2xlYXJCdXR0b25MYWJlbFwiIHR5cGU9XCJ0ZXJ0aWFyeVwiIHNpemU9XCJzbWFsbFwiIChvbkNsaWNrKT1cIm9uQ2xlYXJDbGlja2VkKClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5zZWFyY2hCdXR0b25MYWJlbFwiIHNpemU9XCJzbWFsbFwiIChvbkNsaWNrKT1cIm9uU2VhcmNoQ2xpY2tlZCgpXCIgW2xvYWRpbmddPVwiZGF0YUlzTG9hZGluZ1NlYXJjaEJ1dHRvblwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvZGl2PlxyXG48L3AtY2FyZD5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNiYXNpYz5cclxuICAgIDxkaXYgKm5nSWY9XCJmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd0FkdmFuY2VkU2VhcmNoXCIgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgZmxleC13cmFwXCI+XHJcbiAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoVGFiTGFiZWxcIiB0eXBlPVwidGV4dFwiIChvbkNsaWNrKT1cInVwZGF0ZVNlYXJjaFR5cGUoKVwiPjwvdy1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJiYXNpY1F1ZXJ5LnJ1bGVzLmxlbmd0aCA+IDBcIiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWJhc2ljIHF1ZXJ5LWJ1aWxkZXItc3R5bGUgZmFkZWluIGFuaW1hdGlvbi1kdXJhdGlvbi01MDBcIj5cclxuICAgICAgPHF1ZXJ5LWJ1aWxkZXIgW2Zvcm1Db250cm9sXT0ncXVlcnlDdHJsJyBbY29uZmlnXT0nYmFzaWNRdWVyeUNvbmZpZycgW2FsbG93UnVsZXNldF09J2ZpbHRlclBhbmVsT2JqZWN0LmFsbG93UnVsZVNldCcgW2FsbG93UnVsZXNldF09XCJmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd1J1bGVTZXRcIiBbcGVyc2lzdFZhbHVlT25GaWVsZENoYW5nZV09J3BlcnNpc3RWYWx1ZU9uRmllbGRDaGFuZ2UnPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5QnV0dG9uR3JvdXA9XCJsZXQgcnVsZXNldDtcIj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlSZW1vdmVCdXR0b249XCJsZXQgcnVsZTsgbGV0IHJlbW92ZVJ1bGU9cmVtb3ZlUnVsZVwiPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeVN3aXRjaEdyb3VwPVwibGV0IHJ1bGVzZXQ7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUVudGl0eT1cImxldCBydWxlOyBsZXQgZW50aXRpZXM9ZW50aXRpZXM7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgPHAtZHJvcGRvd24gW2Rpc2FibGVkXT1cInRydWVcIiBjbGFzcz1cIiB3LWVkaXQtc2VsZWN0LXNtYWxsXCIgKm5nSWY9XCJmYWxzZVwiIGFwcGVuZFRvPVwiYm9keVwiIFtvcHRpb25zXT1cImVudGl0aWVzXCIgWyhuZ01vZGVsKV09XCJydWxlLmVudGl0eVwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQsIHJ1bGUpXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUZpZWxkPVwibGV0IHJ1bGU7IGxldCBmaWVsZHM9ZmllbGRzOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2U7IGxldCBnZXRGaWVsZHMgPSBnZXRGaWVsZHM7IGxldCB2YWx1ZT12YWx1ZTsgbGV0IG5hbWU9bmFtZTsgbGV0IGluZGV4PWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gYXBwZW5kVG89XCJib2R5XCIgY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1pbnB1dC10ZXh0LWxhYmVsXCIgW2NsYXNzLnctZmlsdGVyLXBhbmVsLWJvb2xlYW4tbGFiZWwtd2lkdGhdPVwiZmllbGRJc0Jvb2xlYW4ocnVsZS5maWVsZCwgZ2V0RmllbGRzKHJ1bGUuZW50aXR5KSlcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+e3sgZ2V0UXVlcnlGaWVsZE5hbWUocnVsZS5maWVsZCwgZ2V0RmllbGRzKHJ1bGUuZW50aXR5KSl9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlPcGVyYXRvcj1cImxldCBydWxlOyBsZXQgb3BlcmF0b3JzPW9wZXJhdG9yczsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVlcnktYnVpbGRlci1vcGVyYXRvci13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIGNsYXNzPVwiIHctZWRpdC1zZWxlY3Qtc21hbGxcIiAqbmdJZj1cImlzQWR2YW5jZWRTZWFyY2hcIiBhcHBlbmRUbz1cImJvZHlcIiBbKG5nTW9kZWwpXT1cInJ1bGUub3BlcmF0b3JcIiBbb3B0aW9uc109XCJvcGVyYXRvcnNcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZShydWxlKVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkJvb2xlYW4udG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1ZXJ5LWJ1aWxkZXItb3BlcmF0b3Itd2lkdGhcIj5cclxuICAgICAgICAgICAgPHctdG9nZ2xlLWJ1dHRvbiBzaXplPVwic21hbGxcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiBvbkxhYmVsPVwiVHJ1ZVwiIG9mZkxhYmVsPVwiRmFsc2VcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCI+PC93LXRvZ2dsZS1idXR0b24+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgdHlwZTogcWJEYXRhVHlwZUVudW0uRGF0ZXRpbWUudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYmFzaWMtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDx3LWVkaXQtY2FsZW5kYXIgYXBwZW5kVG89XCJib2R5XCIgc2l6ZT1cInNtYWxsXCIgW3Nob3dJY29uXT1cImZhbHNlXCIgW2RhdGFUeXBlXT1cIidzdHJpbmcnXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgKG9uQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbc2hvd1RpbWVdPVwidHJ1ZVwiIFtzaG93U2Vjb25kc109XCJ0cnVlXCIgW2ZpcnN0RGF5T2ZXZWVrXT1cInRyYW5zbGF0aW9uc09iamVjdC5maXJzdERheU9mV2VlayA/PyAxXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMuZGF0ZXRpbWVcIiBbc2hvd0xhYmVsXT1cImZhbHNlXCI+PC93LWVkaXQtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgZmllbGQ9ZmllbGQ7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkRlY2ltYWwudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYmFzaWMtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0U3R5bGVDbGFzcz1cImZsZXggZmxleC0xXCIgc3R5bGVDbGFzcz1cImZsZXggZmxleC0xXCIgY2xhc3M9XCJ3LWVkaXQtaW5wdXQtbnVtYmVyLXNtYWxsXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgaW5wdXRJZD1cIm1pbm1heFwiIGlucHV0SWQ9XCJtaW5tYXhcIiBtb2RlPVwiZGVjaW1hbFwiIFttaW5GcmFjdGlvbkRpZ2l0c109XCIyXCIgW21heEZyYWN0aW9uRGlnaXRzXT1cIjVcIiBbbWluXT1cIjBcIiBbbWF4XT1cIjEwMFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5kZWNpbWFsXCI+IDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBvcHRpb25zPW9wdGlvbnM7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkxpc3QudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYmFzaWMtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIGNsYXNzPVwidy1lZGl0LXNlbGVjdC1zbWFsbFwiIGFwcGVuZFRvPVwiYm9keVwiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbZmlsdGVyXT1cInRydWVcIiBbc2hvd0NsZWFyXT1cInRydWVcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmxpc3RcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgZmllbGQ9ZmllbGQ7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLk51bWJlci50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYmFzaWMtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aFwiPlxyXG4gICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIiBpbnB1dFN0eWxlQ2xhc3M9XCJmbGV4IGZsZXgtMVwiIHN0eWxlQ2xhc3M9XCJmbGV4IGZsZXgtMVwiIGNsYXNzPVwidy1lZGl0LWlucHV0LW51bWJlci1zbWFsbFwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIGlucHV0SWQ9XCJtaW5tYXhcIiBpbnB1dElkPVwibWlubWF4XCIgW21pbl09XCIwXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLm51bWJlclwiPiA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IGZpZWxkPWZpZWxkOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5UZXh0LnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1iYXNpYy1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDx3LWVkaXQtaW5wdXQtdGV4dCBjbGFzcz1cInctZWRpdC1pbnB1dC10ZXh0LXNtYWxsLWhlaWdodFwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy50ZXh0XCIgW3Nob3dMYWJlbF09XCJmYWxzZVwiPjwvdy1lZGl0LWlucHV0LXRleHQ+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IG9wdGlvbnM9b3B0aW9uczsgdHlwZTogcWJEYXRhVHlwZUVudW0uTXVsdGlzZWxlY3QudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYmFzaWMtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDxwLW11bHRpU2VsZWN0IGNsYXNzPVwidy1lZGl0LW11bHRpc2VsZWN0LXNtYWxsXCIgW2FwcGVuZFRvXT1cIidib2R5J1wiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIGRpc3BsYXk9XCJjaGlwXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubGlzdFwiPjwvcC1tdWx0aVNlbGVjdD5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBvcHRpb25zPW9wdGlvbnM7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLk51bGxhYmxlU2VsZWN0LnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1iYXNpYy1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxwLWRyb3Bkb3duIGNsYXNzPVwidy1lZGl0LXNlbGVjdC1zbWFsbFwiIGFwcGVuZFRvPVwiYm9keVwiIFtvcHRpb25zXT1cImdldE51bGxhYmxlU2VsZWN0T3B0aW9ucyhvcHRpb25zKVwiIFtmaWx0ZXJdPVwidHJ1ZVwiIFtzaG93Q2xlYXJdPVwidHJ1ZVwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJudWxsYWJsZVNlbGVjdFBsYWNlaG9sZGVyKHJ1bGUsIG9wdGlvbnMpXCI+XHJcbiAgICAgICAgICAgIDwvcC1kcm9wZG93bj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgb3B0aW9ucz1vcHRpb25zOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5Cb29sZWFuU2VsZWN0LnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1iYXNpYy1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxwLWRyb3Bkb3duIGNsYXNzPVwidy1lZGl0LXNlbGVjdC1zbWFsbFwiIGFwcGVuZFRvPVwiYm9keVwiIFtvcHRpb25zXT1cImdldEJvb2xlYW5TZWxlY3RPcHRpb25zKG9wdGlvbnMpXCIgW2ZpbHRlcl09XCJ0cnVlXCIgW3Nob3dDbGVhcl09XCJ0cnVlXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5saXN0XCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBvcHRpb25zPW9wdGlvbnM7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkFkZHJlc3MudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICA8dy1hZGRyZXNzLWZpZWxkIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbb3BlcmF0b3JdPVwicnVsZS5vcGVyYXRvclwiIFtzZWdtZW50YXRpb25BcGlVcmxdPVwic2VnbWVudGF0aW9uQXBpVXJsXCIgW3NlZ21lbnRhdGlvbkFwaVRva2VuXT1cInNlZ21lbnRhdGlvblRva2VuXCI+PC93LWFkZHJlc3MtZmllbGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvcXVlcnktYnVpbGRlcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNBZHZhbmNlZFNlYXJjaCAmJiBiYXNpY1F1ZXJ5LnJ1bGVzLmxlbmd0aD09MFwiID5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5vUXVlcnlEYXRhXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2FkdmFuY2VkPlxyXG4gICAgPGRpdiBbY2xhc3MucXVlcnktYnVpbGRlci1zdHlsZV09XCIhZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dSdWxlU2V0XCIgY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1jb250YWluZXIgZmFkZWluIGFuaW1hdGlvbi1kdXJhdGlvbi01MDBcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cImZpbHRlclBhbmVsT2JqZWN0LmFsbG93UnVsZVNldFwiIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGZsZXgtd3JhcFwiPlxyXG4gICAgICAgIDx3LWJ1dHRvbiBjbGFzcz1cIm1iLTJcIiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmJhc2ljU2VhcmNoVGFiTGFiZWxcIiB0eXBlPVwidGV4dFwiIChvbkNsaWNrKT1cInVwZGF0ZVNlYXJjaFR5cGUoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8cXVlcnktYnVpbGRlciBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWFkdmFuY2VkIHF1ZXJ5LWJ1aWxkZXItc3R5bGVcIiAjYWR2YW5jZWRRdWVyeUJ1aWxkZXIgW2Zvcm1Db250cm9sXT0nYWR2YW5jZWRRdWVyeUN0cmwnIFtjb25maWddPSdhZHZhbmNlZFF1ZXJ5Q29uZmlnJyBbYWxsb3dSdWxlc2V0XT0nZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dSdWxlU2V0JyBbYWxsb3dDb2xsYXBzZV09J2ZpbHRlclBhbmVsT2JqZWN0LmFsbG93Q29sYXBzZScgW2FsbG93UnVsZXNldF09XCJmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd1J1bGVTZXRcIiBbcGVyc2lzdFZhbHVlT25GaWVsZENoYW5nZV09J3BlcnNpc3RWYWx1ZU9uRmllbGRDaGFuZ2UnPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImZpbHRlclBhbmVsT2JqZWN0LmFsbG93UnVsZVNldDsgZWxzZSBub1J1bGVTZXRcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlCdXR0b25Hcm91cD1cImxldCBydWxlc2V0OyBsZXQgYWRkUnVsZT1hZGRSdWxlOyBsZXQgYWRkUnVsZVNldD1hZGRSdWxlU2V0OyBsZXQgcmVtb3ZlUnVsZVNldD1yZW1vdmVSdWxlU2V0XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmbGV4IGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5hZHZhbmNlZFNlYXJjaC5hZGRSdWxlQnV0dG9uTGFiZWxcIiB0eXBlPVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNtYWxsXCIgKG9uQ2xpY2spPVwiYWRkUnVsZSgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoLmFkZFJ1bGVTZXRCdXR0b25MYWJlbFwiIHR5cGU9XCJzZWNvbmRhcnlcIiBpY29uPVwicGkgcGktcGx1c1wiIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiYWRkUnVsZVNldFwiIChvbkNsaWNrKT1cImFkZFJ1bGVTZXQoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5hZHZhbmNlZFNlYXJjaC5yZW1vdmVSdWxlU2V0QnV0dG9uTGFiZWxcIiB0eXBlPVwidGVydGlhcnlcIiBpY29uPVwicGkgcGktbWludXNcIiBzaXplPVwic21hbGxcIiAqbmdJZj1cInJlbW92ZVJ1bGVTZXRcIiAob25DbGljayk9XCJyZW1vdmVSdWxlU2V0KClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vUnVsZVNldD5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlCdXR0b25Hcm91cD1cImxldCBydWxlc2V0OyBsZXQgYWRkUnVsZT1hZGRSdWxlOyBsZXQgYWRkUnVsZVNldD1hZGRSdWxlU2V0OyBsZXQgcmVtb3ZlUnVsZVNldD1yZW1vdmVSdWxlU2V0XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZCBmbGV4LXdyYXBcIj5cclxuICAgICAgICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmJhc2ljU2VhcmNoVGFiTGFiZWxcIiB0eXBlPVwidGV4dFwiIChvbkNsaWNrKT1cInVwZGF0ZVNlYXJjaFR5cGUoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZHZhbmNlZC1xdWVyeS1idXR0b24tZ3JvdXAgZmxleCBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgPHctYnV0dG9uIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYWR2YW5jZWRTZWFyY2guYWRkUnVsZUJ1dHRvbkxhYmVsXCIgdHlwZT1cInNlY29uZGFyeVwiIHNpemU9XCJzbWFsbFwiIChvbkNsaWNrKT1cImFkZFJ1bGUoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5hZHZhbmNlZFNlYXJjaC5hZGRSdWxlU2V0QnV0dG9uTGFiZWxcIiB0eXBlPVwic2Vjb25kYXJ5XCIgaWNvbj1cInBpIHBpLXBsdXNcIiBzaXplPVwic21hbGxcIiAqbmdJZj1cImFkZFJ1bGVTZXRcIiAob25DbGljayk9XCJhZGRSdWxlU2V0KClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPHctYnV0dG9uIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYWR2YW5jZWRTZWFyY2gucmVtb3ZlUnVsZVNldEJ1dHRvbkxhYmVsXCIgdHlwZT1cInRlcnRpYXJ5XCIgaWNvbj1cInBpIHBpLW1pbnVzXCIgc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJyZW1vdmVSdWxlU2V0XCIgKG9uQ2xpY2spPVwicmVtb3ZlUnVsZVNldCgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5QXJyb3dJY29uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLWFuZ2xlLXJpZ2h0XCIgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXRleHRcIj48L2J1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5UmVtb3ZlQnV0dG9uPVwibGV0IHJ1bGU7IGxldCByZW1vdmVSdWxlPXJlbW92ZVJ1bGVcIj5cclxuICAgICAgICAgICAgPHctYnV0dG9uIGNsYXNzPVwiXCIgbGFiZWw9XCJcIiBzaXplPVwic21hbGxcIiB0eXBlPVwidGVydGlhcnlcIiBpY29uPVwicGkgcGktdGltZXNcIiAob25DbGljayk9XCJyZW1vdmVSdWxlKHJ1bGUpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5U3dpdGNoR3JvdXA9XCJsZXQgcnVsZXNldDsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJydWxlc2V0XCIgY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1zd2l0Y2gtZ3JvdXAtcGFkZGluZyBxLWlubGluZS1ibG9jay1kaXNwbGF5IGlubGluZS1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgPHctc2VsZWN0LWJ1dHRvbiAqbmdJZj1cImZpbHRlclBhbmVsT2JqZWN0LmFsbG93TG9naWNhbFJ1bGVcIiBbc3RhdGVPcHRpb25zXT1cIlt7bGFiZWw6ICdBbmQnLCB2YWx1ZTogJ2FuZCd9LCB7bGFiZWw6ICdPcicsIHZhbHVlOiAnb3InfV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJydWxlc2V0LmNvbmRpdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSk9XCJydWxlc2V0LmNvbmRpdGlvbiA9ICRldmVudFwiPlxyXG4gICAgICAgICAgICAgIDwvdy1zZWxlY3QtYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5RW50aXR5PVwibGV0IHJ1bGU7IGxldCBlbnRpdGllcz1lbnRpdGllczsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYWR2YW5jZWQtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aFwiIFtuZ0NsYXNzXT1cInsndy1uby1lbnRpdHktbW9kZScgOiAhZmlsdGVyUGFuZWxPYmplY3QuZW5pdHlNb2RlfVwiPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duICpuZ0lmPVwiZmlsdGVyUGFuZWxPYmplY3QuZW5pdHlNb2RlXCIgY2xhc3M9XCJmaWVsZC1nYXAgdy1lZGl0LXNlbGVjdC1zbWFsbCB3LWVudGl0eS1kcm9wZG93blwiIGFwcGVuZFRvPVwiYm9keVwiIFtvcHRpb25zXT1cImVudGl0aWVzXCIgWyhuZ01vZGVsKV09XCJydWxlLmVudGl0eVwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQsIHJ1bGUpXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUZpZWxkPVwibGV0IHJ1bGU7IGxldCBmaWVsZHM9ZmllbGRzOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2U7IGxldCBnZXRGaWVsZHMgPSBnZXRGaWVsZHNcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1hZHZhbmNlZC1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoIHEtaW5saW5lLWJsb2NrLWRpc3BsYXlcIj5cclxuICAgICAgICAgICAgICA8dy1saXN0LWZpZWxkIGNsYXNzPVwiZmllbGQtZ2FwXCIgYXBwZW5kVG89XCJib2R5XCIgW29wdGlvbnNdPVwiZ2V0RmllbGRzKHJ1bGUuZW50aXR5KVwiIFsobmdNb2RlbCldPVwicnVsZS5maWVsZFwiIFtvcGVyYXRvcl09XCInPSdcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQsIHJ1bGUpXCIgW29ubHlEcm9wZG93bl09XCJ0cnVlXCI+PC93LWxpc3QtZmllbGQ+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5T3BlcmF0b3I9XCJsZXQgcnVsZTsgbGV0IG9wZXJhdG9ycz1vcGVyYXRvcnM7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWFkdmFuY2VkLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGggcS1vcGVyYXRvcnMgcS1pbmxpbmUtYmxvY2stZGlzcGxheVwiIFtuZ0NsYXNzXT1cInsndy1maWVsZC1udWxsYWJsZScgOiBvcGVyYXRvcnMuaW5jbHVkZXMoJ251bGxhYmxlJyl9XCI+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gKm5nSWY9XCIhb3BlcmF0b3JzLmluY2x1ZGVzKCdudWxsYWJsZScpXCIgY2xhc3M9XCJmaWVsZC1nYXAgdy1lZGl0LXNlbGVjdC1zbWFsbFwiIGFwcGVuZFRvPVwiYm9keVwiIFsobmdNb2RlbCldPVwicnVsZS5vcGVyYXRvclwiIFtvcHRpb25zXT1cIm9wZXJhdG9yc1wiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKHJ1bGUpXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkJvb2xlYW4udG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDx3LXRvZ2dsZS1idXR0b24gY2xhc3M9XCJmaWVsZC1nYXAgdG9nZ2xlLWJ1dHRvbi1hbGlnblwiIHNpemU9XCJzbWFsbFwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIG9uTGFiZWw9XCJUcnVlXCIgb2ZmTGFiZWw9XCJGYWxzZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIj48L3ctdG9nZ2xlLWJ1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgdHlwZTogcWJEYXRhVHlwZUVudW0uRGF0ZXRpbWUudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYWR2YW5jZWQtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aCBxLWlubGluZS1ibG9jay1kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgPHctZWRpdC1jYWxlbmRhciBjbGFzcz1cImZpZWxkLWdhcFwiIGFwcGVuZFRvPVwiYm9keVwiIHNpemU9XCJzbWFsbFwiIFtkYXRhVHlwZV09XCInc3RyaW5nJ1wiIFtzaG93SWNvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChvbkNoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3Nob3dUaW1lXT1cInRydWVcIiBbc2hvd1NlY29uZHNdPVwidHJ1ZVwiIFtmaXJzdERheU9mV2Vla109XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmlyc3REYXlPZldlZWsgPz8gMVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmRhdGV0aW1lXCIgW2Rpc3BsYXlJbmxpbmVCbG9ja109XCJ0cnVlXCIgW3Nob3dMYWJlbF09XCJmYWxzZVwiPjwvdy1lZGl0LWNhbGVuZGFyPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBmaWVsZD1maWVsZDsgdHlwZTogcWJEYXRhVHlwZUVudW0uRGVjaW1hbC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1hZHZhbmNlZC1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoIHEtaW5saW5lLWJsb2NrLWRpc3BsYXlcIj5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dFN0eWxlQ2xhc3M9XCJmbGV4IGZsZXgtMVwiIHN0eWxlQ2xhc3M9XCJmbGV4IGZsZXgtMVwiIGNsYXNzPVwiZmllbGQtZ2FwIHctZWRpdC1pbnB1dC1udW1iZXItc21hbGwgdy1lZGl0LWlucHV0LW51bWJlci1zbWFsbC1oZWlnaHRcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiBpbnB1dElkPVwibWlubWF4XCIgaW5wdXRJZD1cIm1pbm1heFwiIG1vZGU9XCJkZWNpbWFsXCIgW21pbkZyYWN0aW9uRGlnaXRzXT1cIjJcIiBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiNVwiIFttaW5dPVwiMFwiIFttYXhdPVwiMTAwXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmRlY2ltYWxcIj4gPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBvcHRpb25zPW9wdGlvbnM7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkxpc3QudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYWR2YW5jZWQtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aCBxLWlubGluZS1ibG9jay1kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gKm5nSWY9XCIhaXNNdWx0aXNlbGVjdChydWxlKVwiIGNsYXNzPVwiZmllbGQtZ2FwIHctZWRpdC1zZWxlY3Qtc21hbGxcIiBhcHBlbmRUbz1cImJvZHlcIiBbb3B0aW9uc109XCJvcHRpb25zXCIgW2ZpbHRlcl09XCJ0cnVlXCIgW3Nob3dDbGVhcl09XCJ0cnVlXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5saXN0XCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgIDxwLW11bHRpU2VsZWN0ICpuZ0lmPVwiaXNNdWx0aXNlbGVjdChydWxlKVwiIGNsYXNzPVwidy1lZGl0LW11bHRpc2VsZWN0LXNtYWxsXCIgW2FwcGVuZFRvXT1cIidib2R5J1wiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIGRpc3BsYXk9XCJjaGlwXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubGlzdFwiPjwvcC1tdWx0aVNlbGVjdD5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgb3B0aW9ucz1vcHRpb25zOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5MaXN0LnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWFkdmFuY2VkLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGggcS1pbmxpbmUtYmxvY2stZGlzcGxheSBmaWVsZC1nYXBcIj5cclxuICAgICAgICAgICAgICA8dy1saXN0LWZpZWxkIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiBbb3BlcmF0b3JdPVwicnVsZS5vcGVyYXRvclwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5saXN0XCI+PC93LWxpc3QtZmllbGQ+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IGZpZWxkPWZpZWxkOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5OdW1iZXIudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYWR2YW5jZWQtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aCBxLWlubGluZS1ibG9jay1kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCIgaW5wdXRTdHlsZUNsYXNzPVwiZmxleCBmbGV4LTFcIiBzdHlsZUNsYXNzPVwiZmxleCBmbGV4LTFcIiBjbGFzcz1cImZpZWxkLWdhcCB3LWVkaXQtaW5wdXQtbnVtYmVyLXNtYWxsIHctZWRpdC1pbnB1dC1udW1iZXItc21hbGwtaGVpZ2h0XCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgaW5wdXRJZD1cIm1pbm1heFwiIGlucHV0SWQ9XCJtaW5tYXhcIiBbbWluXT1cIjBcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubnVtYmVyXCI+IDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgZmllbGQ9ZmllbGQ7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLlRleHQudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYWR2YW5jZWQtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aCBxLWlubGluZS1ibG9jay1kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZmllbGQtZ2FwIHctZWRpdC1pbnB1dC10ZXh0LXNtYWxsLWhlaWdodCB3LWVkaXQtaW5wdXQtdGV4dC1zbWFsbFwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMudGV4dFwiLz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgb3B0aW9ucz1vcHRpb25zOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5NdWx0aXNlbGVjdC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1hZHZhbmNlZC1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoIHEtaW5saW5lLWJsb2NrLWRpc3BsYXlcIj5cclxuICAgICAgICAgICAgICA8cC1tdWx0aVNlbGVjdCBjbGFzcz1cInctZWRpdC1tdWx0aXNlbGVjdC1zbWFsbFwiIFthcHBlbmRUb109XCInYm9keSdcIiBbb3B0aW9uc109XCJvcHRpb25zXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBkaXNwbGF5PVwiY2hpcFwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmxpc3RcIj48L3AtbXVsdGlTZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IG9wdGlvbnM9b3B0aW9uczsgdHlwZTogcWJEYXRhVHlwZUVudW0uQWRkcmVzcy50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHctYWRkcmVzcy1maWVsZCBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW29wZXJhdG9yXT1cInJ1bGUub3BlcmF0b3JcIiBbc2VnbWVudGF0aW9uQXBpVXJsXT1cInNlZ21lbnRhdGlvbkFwaVVybFwiIFtzZWdtZW50YXRpb25BcGlUb2tlbl09XCJzZWdtZW50YXRpb25Ub2tlblwiIFtzZWxlY3RQbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmxpc3RcIj48L3ctYWRkcmVzcy1maWVsZD5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IG9wdGlvbnM9b3B0aW9uczsgdHlwZTogcWJEYXRhVHlwZUVudW0uTnVsbGFibGVTZWxlY3QudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYWR2YW5jZWQtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aCBxLWlubGluZS1ibG9jay1kaXNwbGF5IHctbm8tZW50aXR5LW1vZGVcIj5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBjbGFzcz1cImZpZWxkLWdhcCB3LWVkaXQtc2VsZWN0LXNtYWxsXCIgYXBwZW5kVG89XCJib2R5XCIgW29wdGlvbnNdPVwiZ2V0TnVsbGFibGVTZWxlY3RPcHRpb25zKG9wdGlvbnMpXCIgW2ZpbHRlcl09XCJ0cnVlXCIgW3Nob3dDbGVhcl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubGlzdFwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgb3B0aW9ucz1vcHRpb25zOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5Cb29sZWFuU2VsZWN0LnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWFkdmFuY2VkLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGggcS1pbmxpbmUtYmxvY2stZGlzcGxheVwiPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIGNsYXNzPVwiZmllbGQtZ2FwIHctZWRpdC1zZWxlY3Qtc21hbGxcIiBhcHBlbmRUbz1cImJvZHlcIiBbb3B0aW9uc109XCJnZXRCb29sZWFuU2VsZWN0T3B0aW9ucyhvcHRpb25zKVwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIiBbZmlsdGVyXT1cInRydWVcIiBbc2hvd0NsZWFyXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5saXN0XCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9xdWVyeS1idWlsZGVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQWR2YW5jZWRTZWFyY2ggJiYgYWR2YW5jZWRRdWVyeS5ydWxlcy5sZW5ndGg9PTBcIiA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5vUXVlcnlEYXRhXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLSBHcm91cGVkIGZpbHRlciAtLT5cclxuICAgICAgPGRpdiAqbmdJZj1cImZpbHRlclBhbmVsT2JqZWN0LmFsbG93R3JvdXBlZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJweS01XCI+XHJcbiAgICAgICAgICA8dy12aWV3LWNhcmQtdGl0bGUtdGV4dCBbY2FyZFRpdGxlXT1cInRyYW5zbGF0aW9uc09iamVjdC5ncm91cGVkRmlsdGVyVGl0bGVcIj48L3ctdmlldy1jYXJkLXRpdGxlLXRleHQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxxdWVyeS1idWlsZGVyICpuZ0lmPVwiZ3JvdXBlZFF1ZXJ5LnJ1bGVzLmxlbmd0aCA+IDBcIiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWdyb3VwZWQgcXVlcnktYnVpbGRlci1zdHlsZVwiIFtmb3JtQ29udHJvbF09J2dyb3VwZWRRdWVyeUN0cmwnIFtjb25maWddPSdhZHZhbmNlZFF1ZXJ5Q29uZmlnJyBbYWxsb3dSdWxlc2V0XT0nZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dSdWxlU2V0JyBbYWxsb3dDb2xsYXBzZV09J2ZpbHRlclBhbmVsT2JqZWN0LmFsbG93Q29sYXBzZScgW2FsbG93UnVsZXNldF09XCJmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd1J1bGVTZXRcIiBbcGVyc2lzdFZhbHVlT25GaWVsZENoYW5nZV09J3BlcnNpc3RWYWx1ZU9uRmllbGRDaGFuZ2UnPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlCdXR0b25Hcm91cD1cImxldCBydWxlc2V0OyBsZXQgYWRkUnVsZT1hZGRSdWxlOyBsZXQgYWRkUnVsZVNldD1hZGRSdWxlU2V0OyBsZXQgcmVtb3ZlUnVsZVNldD1yZW1vdmVSdWxlU2V0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgPHctYnV0dG9uIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYWR2YW5jZWRTZWFyY2guYWRkUnVsZUJ1dHRvbkxhYmVsXCIgdHlwZT1cInNlY29uZGFyeVwiIHNpemU9XCJzbWFsbFwiIChvbkNsaWNrKT1cImFkZFJ1bGUoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICAgICAgPHctYnV0dG9uIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYWR2YW5jZWRTZWFyY2guYWRkUnVsZVNldEJ1dHRvbkxhYmVsXCIgdHlwZT1cInNlY29uZGFyeVwiIGljb249XCJwaSBwaS1wbHVzXCIgc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJhZGRSdWxlU2V0XCIgKG9uQ2xpY2spPVwiYWRkUnVsZVNldCgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5hZHZhbmNlZFNlYXJjaC5yZW1vdmVSdWxlU2V0QnV0dG9uTGFiZWxcIiB0eXBlPVwidGVydGlhcnlcIiBpY29uPVwicGkgcGktbWludXNcIiBzaXplPVwic21hbGxcIiAqbmdJZj1cInJlbW92ZVJ1bGVTZXRcIiAob25DbGljayk9XCJyZW1vdmVSdWxlU2V0KClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5QXJyb3dJY29uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLWFuZ2xlLXJpZ2h0XCIgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXRleHRcIj48L2J1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5UmVtb3ZlQnV0dG9uPVwibGV0IHJ1bGU7IGxldCByZW1vdmVSdWxlPXJlbW92ZVJ1bGVcIj5cclxuICAgICAgICAgICAgPHctYnV0dG9uIGNsYXNzPVwiXCIgbGFiZWw9XCJcIiBzaXplPVwic21hbGxcIiB0eXBlPVwidGVydGlhcnlcIiBpY29uPVwicGkgcGktdGltZXNcIiAob25DbGljayk9XCJyZW1vdmVSdWxlKHJ1bGUpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5U3dpdGNoR3JvdXA9XCJsZXQgcnVsZXNldDsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1zd2l0Y2gtZ3JvdXAtcGFkZGluZyBxLWlubGluZS1ibG9jay1kaXNwbGF5IGlubGluZS1mbGV4XCIgKm5nSWY9XCJydWxlc2V0XCI+XHJcbiAgICAgICAgICAgICAgPHctc2VsZWN0LWJ1dHRvbiAqbmdJZj1cImZpbHRlclBhbmVsT2JqZWN0LmFsbG93TG9naWNhbFJ1bGVcIiBbc3RhdGVPcHRpb25zXT1cIlt7bGFiZWw6ICdBbmQnLCB2YWx1ZTogJ2FuZCd9LCB7bGFiZWw6ICdPcicsIHZhbHVlOiAnb3InfV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJydWxlc2V0LmNvbmRpdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSk9XCJydWxlc2V0LmNvbmRpdGlvbiA9ICRldmVudFwiPlxyXG4gICAgICAgICAgICAgIDwvdy1zZWxlY3QtYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5RW50aXR5PVwibGV0IHJ1bGU7IGxldCBlbnRpdGllcz1lbnRpdGllczsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYWR2YW5jZWQtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aFwiIFtuZ0NsYXNzXT1cInsndy1uby1lbnRpdHktbW9kZScgOiAhZmlsdGVyUGFuZWxPYmplY3QuZW5pdHlNb2RlfVwiPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIGNsYXNzPVwidy1lZGl0LXNlbGVjdC1zbWFsbCBmaWVsZC1nYXAgdy1lbnRpdHktZHJvcGRvd25cIiAqbmdJZj1cImZpbHRlclBhbmVsT2JqZWN0LmVuaXR5TW9kZVwiIGFwcGVuZFRvPVwiYm9keVwiIFtvcHRpb25zXT1cImVudGl0aWVzXCIgWyhuZ01vZGVsKV09XCJydWxlLmVudGl0eVwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQsIHJ1bGUpXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5RmllbGQ9XCJsZXQgcnVsZTsgbGV0IGZpZWxkcz1maWVsZHM7IGxldCBvbkNoYW5nZT1vbkNoYW5nZTsgbGV0IGdldEZpZWxkcyA9IGdldEZpZWxkc1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWFkdmFuY2VkLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGggcS1pbmxpbmUtYmxvY2stZGlzcGxheVwiPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIGNsYXNzPVwidy1lZGl0LXNlbGVjdC1zbWFsbFwiIGFwcGVuZFRvPVwiYm9keVwiIFtvcHRpb25zXT1cImdldEZpZWxkcyhydWxlLmVudGl0eSlcIiBbKG5nTW9kZWwpXT1cInJ1bGUuZmllbGRcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50LCBydWxlKVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlPcGVyYXRvcj1cImxldCBydWxlOyBsZXQgb3BlcmF0b3JzPW9wZXJhdG9yczsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYWR2YW5jZWQtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aCBxLW9wZXJhdG9ycyBxLWlubGluZS1ibG9jay1kaXNwbGF5XCIgW25nQ2xhc3NdPVwieyd3LWZpZWxkLW51bGxhYmxlJyA6IG9wZXJhdG9ycy5pbmNsdWRlcygnbnVsbGFibGUnKX1cIj5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBjbGFzcz1cInctZWRpdC1zZWxlY3Qtc21hbGxcIiBhcHBlbmRUbz1cImJvZHlcIiBbKG5nTW9kZWwpXT1cInJ1bGUub3BlcmF0b3JcIiBbb3B0aW9uc109XCJvcGVyYXRvcnNcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZShydWxlKVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5Cb29sZWFuLnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8dy10b2dnbGUtYnV0dG9uIGNsYXNzPVwiZmllbGQtZ2FwIHRvZ2dsZS1idXR0b24tYWxpZ25cIiBzaXplPVwic21hbGxcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiBvbkxhYmVsPVwiVHJ1ZVwiIG9mZkxhYmVsPVwiRmFsc2VcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCI+PC93LXRvZ2dsZS1idXR0b24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkRhdGV0aW1lLnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWFkdmFuY2VkLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGggcS1pbmxpbmUtYmxvY2stZGlzcGxheVwiPlxyXG4gICAgICAgICAgICAgIDx3LWVkaXQtY2FsZW5kYXIgY2xhc3M9XCJmaWVsZC1nYXBcIiBhcHBlbmRUbz1cImJvZHlcIiBzaXplPVwic21hbGxcIiBbZGF0YVR5cGVdPVwiJ3N0cmluZydcIiBbc2hvd0ljb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAob25DaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtzaG93VGltZV09XCJ0cnVlXCIgW3Nob3dTZWNvbmRzXT1cInRydWVcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5kYXRldGltZVwiIFtkaXNwbGF5SW5saW5lQmxvY2tdPVwidHJ1ZVwiPjwvdy1lZGl0LWNhbGVuZGFyPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBmaWVsZD1maWVsZDsgdHlwZTogcWJEYXRhVHlwZUVudW0uRGVjaW1hbC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1hZHZhbmNlZC1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoIHEtaW5saW5lLWJsb2NrLWRpc3BsYXlcIj5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBjbGFzcz1cImZsZXggZmxleC0xXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgaW5wdXRJZD1cIm1pbm1heFwiIGlucHV0SWQ9XCJtaW5tYXhcIiBtb2RlPVwiZGVjaW1hbFwiIFttaW5GcmFjdGlvbkRpZ2l0c109XCIyXCIgW21heEZyYWN0aW9uRGlnaXRzXT1cIjVcIiBbbWluXT1cIjBcIiBbbWF4XT1cIjEwMFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5kZWNpbWFsXCI+IDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgb3B0aW9ucz1vcHRpb25zOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5MaXN0LnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWFkdmFuY2VkLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGggcS1pbmxpbmUtYmxvY2stZGlzcGxheVwiPlxyXG4gICAgICAgICAgICAgIDx3LWxpc3QtZmllbGQgW29wdGlvbnNdPVwib3B0aW9uc1wiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIFtvcGVyYXRvcl09XCJydWxlLm9wZXJhdG9yXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmxpc3RcIj48L3ctbGlzdC1maWVsZD5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgZmllbGQ9ZmllbGQ7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLk51bWJlci50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1hZHZhbmNlZC1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoIHEtaW5saW5lLWJsb2NrLWRpc3BsYXlcIj5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIiBpbnB1dFN0eWxlQ2xhc3M9XCJmbGV4IGZsZXgtMVwiIHN0eWxlQ2xhc3M9XCJmbGV4IGZsZXgtMVwiIGNsYXNzPVwiZmllbGQtZ2FwIHctZWRpdC1pbnB1dC1udW1iZXItc21hbGwgdy1lZGl0LWlucHV0LW51bWJlci1zbWFsbC1oZWlnaHRcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiBpbnB1dElkPVwibWlubWF4XCIgaW5wdXRJZD1cIm1pbm1heFwiIFttaW5dPVwiMFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5udW1iZXJcIj4gPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBmaWVsZD1maWVsZDsgdHlwZTogcWJEYXRhVHlwZUVudW0uVGV4dC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1hZHZhbmNlZC1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZmllbGQtZ2FwIHctZWRpdC1pbnB1dC10ZXh0LXNtYWxsLWhlaWdodCB3LWVkaXQtaW5wdXQtdGV4dC1zbWFsbFwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMudGV4dFwiLz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8L3F1ZXJ5LWJ1aWxkZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FkdmFuY2VkU2VhcmNoICYmIGdyb3VwZWRRdWVyeS5ydWxlcy5sZW5ndGg9PTBcIiA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9RdWVyeURhdGFcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI25vUXVlcnlEYXRhPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LXdyYXAgY2FyZC1jb250YWluZXIgc3VyZmFjZS01MFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB3LWZ1bGwgaC00cmVtIHRleHQtZ3JheS05MDAgYm9yZGVyLXJvdW5kIG0tMlwiPlxyXG4gICAgICAgIHt7dHJhbnNsYXRpb25zT2JqZWN0Lm5vUnVsZXNMYWJlbH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -3661,7 +3661,7 @@ class WFilterPanelComponent {
3661
3661
  this.defaultValues = qbPanelFilter.qbpanelToFields.map(panelToField => {
3662
3662
  return {
3663
3663
  qbfilterFieldId: panelToField.qbfilterFieldId,
3664
- defaultValue: panelToField.defaultValue
3664
+ defaultValue: this.defaultValueAdapter(panelToField.defaultValue)
3665
3665
  };
3666
3666
  });
3667
3667
  this.defaultOperators = qbPanelFilter.qbpanelToFields.map(panelToField => {
@@ -3721,6 +3721,15 @@ class WFilterPanelComponent {
3721
3721
  this.initQueryBuilderControls();
3722
3722
  });
3723
3723
  }
3724
+ defaultValueAdapter(value) {
3725
+ if (value == 'QBFilterOptionsEnumNotNull') {
3726
+ return 0;
3727
+ }
3728
+ if (value == 'QBFilterOptionsEnumNull') {
3729
+ return 1;
3730
+ }
3731
+ return value;
3732
+ }
3724
3733
  initQueryBuilder(filterEntities) {
3725
3734
  let entityConfigAux = { fields: {} };
3726
3735
  let entitiesArray = [];