tango-app-ui-manage-settings 3.7.24 → 3.7.25

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.
@@ -219,14 +219,19 @@ export class DashboardConfigurationComponent {
219
219
  this.apiService.clientFormData.next({ value: this.featureConfigurationForm.value, type: 'submit', form: 'feature-configuration' });
220
220
  }
221
221
  directory(e) {
222
- this.featureConfigurationForm.value.isFootfallDirectoryLimit = false;
223
- this.featureConfigurationForm.value.isFootfallDirectoryAudit = false;
224
222
  const isChecked = e.target.checked;
225
223
  this.isDisabled = !isChecked;
224
+ // Toggling the Footfall Directory switch resets the radio selection.
225
+ // Use patchValue so the actual controls are updated - mutating
226
+ // form.value directly does not update the FormControl instances.
227
+ this.featureConfigurationForm.patchValue({
228
+ isFootfallDirectoryLimit: false,
229
+ isFootfallDirectoryAudit: false,
230
+ });
231
+ this.selectedOption = null;
226
232
  if (this.isDisabled) {
227
233
  this.disValue = false;
228
234
  this.featureConfigurationForm.get('isVMS')?.disable();
229
- this.selectedOption = null;
230
235
  }
231
236
  else {
232
237
  this.disValue = true;
@@ -258,4 +263,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
258
263
  type: Component,
259
264
  args: [{ selector: 'lib-dashboard-configuration', template: "<form [formGroup]=\"featureConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.Global_Configuration_isEdit\" >\r\n <div *ngIf=\"featureConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\" *ngIf=\"(gs.userAccess | async)?.userType === 'tango' || featureConfigurationForm.get('updateFeatureConfig')?.value === true\">\r\n <button\r\n (click)=\"toggleForm();featureConfigurationForm.disabled ? featureConfigurationForm.enable() : featureConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-12\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"sub-header\">Excluded Area</div>\r\n <div class=\"sub-text\">Choose if you want to view Excluded Area </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch my-6\">\r\n <input formControlName=\"isExcludedArea\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isExcludedArea\">\r\n <label class=\"form-check-label toggle-label\" for=\"isExludedArea\"> Show Excluded Area\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" >\r\n <div class=\"sub-header\">Passer-by data</div>\r\n <div class=\"sub-text\">Choose if you want to view Passerby data. </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" >\r\n <div class=\"form-check form-switch my-6\">\r\n <input formControlName=\"isPasserByData\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n <label class=\"form-check-label toggle-label\" for=\"isPasserByData\"> Show Passer-by data\r\n </label>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" >\r\n <div class=\"sub-header\">Normalized data during downtime</div>\r\n <div class=\"sub-text\">Choose if you want to view normalized data. </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" >\r\n <div class=\"form-check form-switch my-6\">\r\n <input formControlName=\"isNormalized\" class=\"form-check-input\" type=\"checkbox\" id=\"isNormalized\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNormalized\"> Show Normalized data\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n \r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"sub-header\">Billing </div>\r\n <div class=\"sub-text\">Choose if you want to disable Billing</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch my-6\">\r\n <input formControlName=\"isbillingDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isbillingDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isbillingDisabled\"> Disable Billing\r\n </label>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"sub-header\">Camera Blurring</div>\r\n <div class=\"sub-text\">Choose if you want to blur the Camera</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch my-6\">\r\n <input formControlName=\"isCameraDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isCameraDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isCameraDisabled\"> Enable Blurring\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"sub-header\">Camera Settings</div>\r\n <div class=\"sub-text\">Choose if the you want to hide the camera</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch my-6\">\r\n <input formControlName=\"isCameraEdit\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isCameraEdit\">\r\n <label class=\"form-check-label toggle-label\" for=\"isCameraEdit\"> Disable Camera \r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" >\r\n <div class=\"sub-header\">NOB Status</div>\r\n <div class=\"sub-text\">Choose if the clients are updating NOB </div> \r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isNOB\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isNOB\" (change)=\"nobDirectory($event)\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNOB\">Enable NOB\r\n \r\n </label>\r\n </div> \r\n </ng-container>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" >\r\n <div class=\"sub-header\">Zone-wise NOB Count</div>\r\n <div class=\"sub-text\">Choose if the clients are updating Zone-wise NOB </div> \r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isZonewiseNOB\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isZonewiseNOB\">\r\n <label class=\"form-check-label toggle-label\" for=\"isZonewiseNOB\">Enable\r\n \r\n </label>\r\n </div> \r\n </ng-container>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" >\r\n <div class=\"sub-header\">SSO Status</div>\r\n <div class=\"sub-text\">Choose if you want to restrict login to Microsoft and Google accounts </div> \r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"loginSSO\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"loginSSO\">\r\n <label class=\"form-check-label toggle-label\" for=\"loginSSO\">Enable SSO\r\n \r\n </label>\r\n </div> \r\n </ng-container>\r\n </div>\r\n <div class=\"col-lg-9 col-xl-9 col-xxl-9\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"sub-header\">Footfall Directory</div>\r\n <div class=\"sub-text\">Choose if you want to view Footfall directory </div>\r\n </ng-container>\r\n <!-- <div class=\"form-check\">\r\n <input \r\n class=\"form-check-input\" \r\n type=\"radio\" \r\n name=\"exampleRadios\" \r\n id=\"isFootfallDirectory\" \r\n value=\"isFootfallDirectory\" \r\n [checked]=\"selectedOption === 'isFootfallDirectory'\"\r\n (change)=\"onSelectionChange('isFootfallDirectory')\"\r\n [disabled]=\"isDisabled\"\r\n >\r\n <label class=\"form-check-label\" for=\"isFootfallDirectory\">\r\n Show Full\r\n </label>\r\n </div> -->\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <!-- <div class=\"col-md-4 mt-4 px-1\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectory\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectory\" (change)=\"directory($event)\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectory\"> Enable \r\n </label>\r\n </div>\r\n </div> -->\r\n \r\n <!-- VMS enable part -->\r\n <!-- <div class=\"col-md-4 mt-4 px-1\" *ngIf=\"(gs.userAccess | async)?.userType === 'tango' && featureConfigurationForm.get('isFootfallDirectory')?.value\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isVMS\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isVMS\">\r\n <label class=\"form-check-label toggle-label\" for=\"isVMS\"> Enable Ticket Flow\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-4 px-1\" *ngIf=\"disValue\">\r\n <div class=\"form-check\">\r\n <input \r\n class=\"form-check-input\" \r\n type=\"radio\" \r\n name=\"exampleRadios\" \r\n id=\"isFootfallDirectoryLimit\" \r\n value=\"isFootfallDirectoryLimit\" \r\n [checked]=\"selectedOption === 'isFootfallDirectoryLimit'\"\r\n (change)=\"onSelectionChange('isFootfallDirectoryLimit')\"\r\n [disabled]=\"isDisabled\"\r\n >\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectoryLimit\">\r\n Show Few\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-4 px-1\" *ngIf=\"disValue\">\r\n <div class=\"form-check\">\r\n <input \r\n class=\"form-check-input\" \r\n type=\"radio\" \r\n name=\"exampleRadios\" \r\n id=\"isFootfallDirectoryAudit\" \r\n value=\"isFootfallDirectoryAudit\" \r\n [checked]=\"selectedOption === 'isFootfallDirectoryAudit'\"\r\n (change)=\"onSelectionChange('isFootfallDirectoryAudit')\"\r\n [disabled]=\"isDisabled\"\r\n >\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectoryAudit\">\r\n Only Audit\r\n </label>\r\n </div>\r\n </div> -->\r\n \r\n <div class=\"d-flex align-items-center flex-wrap mt-4\">\r\n <!-- Enable -->\r\n <div class=\"me-4\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectory\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectory\" (change)=\"directory($event)\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectory\">\r\n Enable\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"me-4\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectoryonlyTango\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectoryonlyTango\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectoryonlyTango\">\r\n Only Tango\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <!-- Enable Ticket Flow -->\r\n <div class=\"me-4\" *ngIf=\"featureConfigurationForm.get('isFootfallDirectory')?.value\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isVMS\" class=\"form-check-input\" type=\"checkbox\" id=\"isVMS\"\r\n [disabled]=\"featureConfigurationForm.disabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isVMS\">\r\n Enable Ticket Flow\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <!-- Show Few -->\r\n <div class=\"me-4\" *ngIf=\"disValue\">\r\n <input class=\"form-check-input\" type=\"radio\" name=\"exampleRadios\" id=\"isFootfallDirectoryLimit\"\r\n value=\"isFootfallDirectoryLimit\" [checked]=\"selectedOption === 'isFootfallDirectoryLimit'\"\r\n (change)=\"onSelectionChange('isFootfallDirectoryLimit')\" [disabled]=\"isDisabled\">\r\n <label class=\"form-check-label toggle-label ms-1\" for=\"isFootfallDirectoryLimit\">\r\n Show Few\r\n </label>\r\n </div>\r\n \r\n <!-- Only Audit -->\r\n <div class=\"me-4\" *ngIf=\"disValue\">\r\n <input class=\"form-check-input\" type=\"radio\" name=\"exampleRadios\" id=\"isFootfallDirectoryAudit\"\r\n value=\"isFootfallDirectoryAudit\" [checked]=\"selectedOption === 'isFootfallDirectoryAudit'\"\r\n (change)=\"onSelectionChange('isFootfallDirectoryAudit')\" [disabled]=\"isDisabled\">\r\n <label class=\"form-check-label toggle-label ms-1\" for=\"isFootfallDirectoryAudit\">\r\n Only Audit\r\n </label>\r\n </div>\r\n \r\n </div>\r\n \r\n </ng-container>\r\n </div>\r\n </div>\r\n <!-- <div class=\"col-lg-2 col-xl-2 col-xxl-2\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" >\r\n <div class=\"form-check form-switch mt-18\">\r\n <input formControlName=\"isFootfallAuditStores\" class=\"form-check-input\" type=\"radio\"\r\n id=\"isAudit\">\r\n <label class=\"form-check-label toggle-label\" for=\"isAudit\"> Show Few\r\n </label>\r\n </div> \r\n </ng-container>\r\n </div>\r\n <div class=\"col-lg-2 col-xl-2 col-xxl-2\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" >\r\n <div class=\"form-check form-switch mt-18\">\r\n <input formControlName=\"isFootfallAuditStores\" class=\"form-check-input\" type=\"radio\"\r\n id=\"isAudit\">\r\n <label class=\"form-check-label toggle-label\" for=\"isAudit\"> Only Audit\r\n </label>\r\n </div> \r\n </ng-container>\r\n </div> -->\r\n \r\n </div>\r\n \r\n <div class=\"row mb-5\">\r\n \r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"sub-header\">Analyze </div>\r\n <div class=\"sub-text\">To enable new dashboard</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isNewDashboard\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isNewDashboard\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNewDashboard\"> Enable Analyze\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <!-- <div class=\"col-md-9\"> -->\r\n <!-- <div class=\"row\"> -->\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-18\">\r\n <input formControlName=\"isNewTraffic\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isNewTraffic\" [disabled]=\"true\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNewTraffic\">Traffic\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-18\">\r\n <input formControlName=\"isNewZone\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isNewzone\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNewzone\">Zone\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-18\">\r\n <input formControlName=\"isNewZoneV2\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isNewZoneV2\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNewZoneV2\">Zone v2\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-10\">\r\n <input formControlName=\"isNewReports\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isNewReports\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNewReports\">Reports\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-10\">\r\n <input formControlName=\"isTrax\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isTrax\">\r\n <label class=\"form-check-label toggle-label\" for=\"isTrax\">Trax\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-10\">\r\n <input formControlName=\"isRevops\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isRevops\">\r\n <label class=\"form-check-label toggle-label\" for=\"isRevops\">Revops\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-10\">\r\n <input formControlName=\"isAIManager\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isAIManager\">\r\n <label class=\"form-check-label toggle-label\" for=\"isAIManager\">AI Manager\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-10\">\r\n <input formControlName=\"isAIManagerAccessControl\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isAIManagerAccessControl\">\r\n <label class=\"form-check-label toggle-label\" for=\"isAIManagerAccessControl\">Access Control\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n <!-- <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-10\">\r\n <input formControlName=\"isControlCenter\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isControlCenter\">\r\n <label class=\"form-check-label toggle-label\" for=\"isControlCenter\">Control Center\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div> -->\r\n </div>\r\n <div class=\"row my-3\">\r\n <div class=\"col-lg-3 col-xl-3 col-xxl-3\">\r\n <div class=\"sub-header\">Stream Type</div>\r\n <div class=\"sub-text\">Choose if the Edge App Configurations</div> \r\n <select class=\"form-select h-35px form-select-sm my-3 selct\" placeholder=\"Status\" formControlName=\"streamBy\"\r\n aria-label=\".form-select-sm example\">\r\n <option value=\"Edge\">Edge App</option>\r\n <option value=\"Rtsp\">RTSP</option>\r\n </select>\r\n \r\n \r\n </div>\r\n </div>\r\n </div>\r\n <!-- </div>\r\n </div> -->\r\n </div>\r\n\r\n <div *ngIf=\"featureConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline mt-1 me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>", styles: [".form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control[disabled]{background-color:#f9fafb!important}.form-select{font-size:1.1rem;font-weight:400;border-radius:8px!important;color:var(--Gray-500, #667085);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.form-label{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}select[disabled],textarea[disabled]{background-color:#f9fafb!important}.footer-seperator{border-top:1px solid #EAECF0}.sub-header{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.sub-text{color:var(--Gray-500, #667085);font-family:Inter;font-size:12px;font-style:normal;font-weight:400;line-height:18px}.toggle-label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:24px}.mock-input{background-color:#f9fafb!important}\n"] }]
260
265
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.ClientApiService }, { type: i3.GlobalStateService }, { type: i0.ChangeDetectorRef }] });
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXNldHRpbmdzL3NyYy9saWIvY29tcG9uZW50cy9jb25maWd1cmF0aW9ucy9kYXNoYm9hcmQtY29uZmlndXJhdGlvbi9kYXNoYm9hcmQtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2Rhc2hib2FyZC1jb25maWd1cmF0aW9uL2Rhc2hib2FyZC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBR3hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQVEsS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMzQixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7QUFDN0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBUXZCLE1BQU0sT0FBTywrQkFBK0I7SUErRHRCO0lBQXlCO0lBQXFDO0lBQ3hFO0lBL0RWLHdCQUF3QixDQUFXO0lBQ25DLDBCQUEwQixDQUFTO0lBQ25DLHdCQUF3QixDQUFTO0lBQ2hCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDZCxZQUFZLENBQVU7SUFHdEIsZUFBZSxH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QUMsQ0FBQztTQUNyQjtJQUNILENBQUM7d0dBMVFZLCtCQUErQjs0RkFBL0IsK0JBQStCLG1FQ2xCNUMsd20vQkFnY087OzRGRDlhTSwrQkFBK0I7a0JBTjNDLFNBQVM7K0JBQ0UsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENsaWVudEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbGllbnQtYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCAgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcImRheWpzL2xvY2FsZS9lblwiO1xyXG5pbXBvcnQgdXRjIGZyb20gXCJkYXlqcy9wbHVnaW4vdXRjXCI7XHJcbmltcG9ydCB0aW1lem9uZSBmcm9tIFwiZGF5anMvcGx1Z2luL3RpbWV6b25lXCI7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5kYXlqcy5leHRlbmQodGltZXpvbmUpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZGFzaGJvYXJkLWNvbmZpZ3VyYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2Rhc2hib2FyZC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIERhc2hib2FyZENvbmZpZ3VyYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIGZlYXR1cmVDb25maWd1cmF0aW9uRm9ybTogRm9ybUdyb3VwXHJcbiAgbWlzc2VkT3Bwb3J0dW5pdHlTdGFydFRpbWU6IHN0cmluZztcclxuICBtaXNzZWRPcHBvcnR1bml0eUVuZFRpbWU6IHN0cmluZztcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBkYXlqcyA9IGRheWpzO1xyXG4gIGlzVk1TRW5hYmxlZDogYm9vbGVhbjtcclxuXHJcblxyXG4gIGluZnJhQWxlcnRWYWx1ZSA9IFtcclxuICAgIHsgdmFsdWU6IDEsIGxhYmVsOiBcIjEgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDIsIGxhYmVsOiBcIjIgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDMsIGxhYmVsOiBcIjMgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDQsIGxhYmVsOiBcIjQgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDUsIGxhYmVsOiBcIjUgaHJzXCIgfVxyXG4gIF1cclxuXHJcbiAgaW5mcmFBbGVydENvbmRpdGlvbiA9IFtcclxuICAgIHsgdmFsdWU6IFwiPFwiLCBsYWJlbDogXCI8XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiPlwiLCBsYWJlbDogXCI+XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiPD1cIiwgbGFiZWw6IFwiPCA9XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiPT5cIiwgbGFiZWw6IFwiPSA+XCIgfSxcclxuICBdXHJcblxyXG4gIGJvdW5jZWRMaW1pdENvbmRpdGlvbiA9IFtcclxuICAgIHsgdmFsdWU6IFwiPD1cIiwgbGFiZWw6IFwiPCA9XCIgfVxyXG4gIF1cclxuXHJcbiAgYm91bmNlZExpbWl0VmFsdWUgPSBbXHJcbiAgICB7IHZhbHVlOiAxLCBsYWJlbDogXCIxIG1pblwiIH0sXHJcbiAgICB7IHZhbHVlOiAyLCBsYWJlbDogXCIyIG1pbnNcIiB9LFxyXG4gICAgeyB2YWx1ZTogMywgbGFiZWw6IFwiMyBtaW5zXCIgfSxcclxuICBdXHJcblxyXG4gIGNvbnZlcnNpb25Db25kaXRpb24gPSBbXHJcbiAgICB7IHZhbHVlOiBcIj5cIiwgbGFiZWw6IFwiPlwiIH1cclxuICBdXHJcblxyXG4gIGNvbnZlcnNpb25WYWx1ZSA9IFtcclxuICAgIHsgdmFsdWU6IDUsIGxhYmVsOiBcIjUgbWluc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAxMCwgbGFiZWw6IFwiMTAgbWluc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAxNSwgbGFiZWw6IFwiMTUgbWluc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAyMCwgbGFiZWw6IFwiMjAgbWluc1wiIH1cclxuICBdXHJcblxyXG4gIGJpbGxhYmxlQ2FsY3VsYXRpb24gPSBbXHJcbiAgICB7IHZhbHVlOiBcImZvb3RmYWxsLWNvdW50XCIsIGxhYmVsOiBcIkZvb3RmYWxsIENvdW50XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiZW5nYWdlcnMtY291bnRcIiwgbGFiZWw6IFwiRW5nYWdlcnMgQ291bnRcIiB9LFxyXG4gIF1cclxuXHJcbiAgbWlzc2VkT3Bwb3J0dW5pdHlDYWxjdWxhdGlvbiA9IFtcclxuICAgIHsgdmFsdWU6IFwiZW5nYWdlcnMtY29udmVyc2lvblwiLCBsYWJlbDogXCJFbmdhZ2VycyAtIENvbnZlcnNpb25cIiB9LFxyXG4gICAgeyB2YWx1ZTogXCJncm91cC1jb252ZXJzaW9uXCIsIGxhYmVsOiBcIkJpbGxhYmxlIEVudGl0aWVzIC0gQ29udmVyc2lvblwiIH0sXHJcbiAgXVxyXG5cclxuICBjb252ZXJzaW9uQ2FsY3VsYXRpb24gPSBbXHJcbiAgICB7dmFsdWU6XCJmb290ZmFsbC1jb3VudFwiLCBsYWJlbDpcIkZvb3RmYWxsIENvdW50XCJ9LFxyXG4gICAge3ZhbHVlOlwiZW5nYWdlcnMtY291bnRcIiwgbGFiZWw6XCJFbmdhZ2VycyBDb3VudFwifSxcclxuICAgIHt2YWx1ZTpcImJpbGxhYmxlLWVudGl0aWVzXCIsIGxhYmVsOlwiQmlsbGFibGUgRW50aXRpZXNcIn0sXHJcbiAgXVxyXG5cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGFwaVNlcnZpY2U6IENsaWVudEFwaVNlcnZpY2UsIHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5pbml0Rm9ybSgpXHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuY2xpZW50Rm9ybURhdGEucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICBpZiAocmVzLnR5cGUgPT09ICdpbnB1dCcgJiYgcmVzLmZvcm0gPT09ICdmZWF0dXJlLWNvbmZpZ3VyYXRpb24nKSB7XHJcbiAgICAgICAgICB0aGlzLnBhdGNoRm9ybShyZXMudmFsdWUpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGluaXRGb3JtKCkge1xyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgb3BlbjogW10sXHJcbiAgICAgIGNsb3NlOiBbXSxcclxuICAgICAgaW5mcmFBbGVydENvbmRpdGlvbjogW10sXHJcbiAgICAgIGluZnJhQWxlcnRWYWx1ZTogW10sXHJcbiAgICAgIGJvdW5jZWRMaW1pdENvbmRpdGlvbjogW10sXHJcbiAgICAgIGJvdW5jZWRMaW1pdFZhbHVlOiBbXSxcclxuICAgICAgY29udmVyc2lvbkNvbmRpdGlvbjogW10sXHJcbiAgICAgIGNvbnZlcnNpb25WYWx1ZTogW10sXHJcbiAgICAgIGJpbGxhYmxlQ2FsY3VsYXRpb246IFtdLFxyXG4gICAgICBtaXNzZWRPcHBvcnR1bml0eUNhbGN1bGF0aW9uOiBbXSxcclxuICAgICAgY29udmVyc2lvbkNhbGN1bGF0aW9uOiBbXSxcclxuICAgICAgaXNOb3JtYWxpemVkOiBbXSxcclxuICAgICAgaXNQYXNzZXJCeURhdGE6IFtdLFxyXG4gICAgICBpc0Zvb3RmYWxsRGlyZWN0b3J5OiBbZmFsc2VdLFxyXG4gICAgICBpc0Zvb3RmYWxsRGlyZWN0b3J5b25seVRhbmdvOiBbZmFsc2VdLFxyXG4gICAgICBpc1ZNUzogW2ZhbHNlXSxcclxuICAgICAgaXNGb290ZmFsbERpcmVjdG9yeUF1ZGl0OltmYWxzZV0sXHJcbiAgICAgIGlzRm9vdGZhbGxEaXJlY3RvcnlMaW1pdDpbZmFsc2VdLFxyXG4gICAgICBpc0V4Y2x1ZGVkQXJlYTpbXSxcclxuICAgICAgaXNDYW1lcmFEaXNhYmxlZDogW2ZhbHNlXSxcclxuICAgICAgaXNiaWxsaW5nRGlzYWJsZWQ6W2ZhbHNlXSxcclxuICAgICAgaXNOZXdEYXNoYm9hcmQ6W2ZhbHNlXSxcclxuICAgICAgdXBkYXRlRmVhdHVyZUNvbmZpZzpbXSxcclxuICAgICAgaXNGb290ZmFsbEF1ZGl0U3RvcmVzOiBbXSxcclxuICAgICAgaXNOZXdUcmFmZmljOiBbeyB2YWx1ZTogZmFsc2UsIGRpc2FibGVkOiB0cnVlIH1dLFxyXG4gICAgICBpc05ld1pvbmU6IFtmYWxzZV0sXHJcbiAgICAgIGlzTmV3Wm9uZVYyOiBbZmFsc2VdLFxyXG4gICAgICBpc05PQjogW2ZhbHNlXSxcclxuICAgICAgaXNab25ld2lzZU5PQjpbZmFsc2VdLFxyXG4gICAgICBsb2dpblNTTzogW2ZhbHNlXSxcclxuICAgICAgaXNOZXdSZXBvcnRzOiBbZmFsc2VdLFxyXG4gICAgICBpc1RyYXg6W2ZhbHNlXSxcclxuICAgICAgaXNSZXZvcHM6W2ZhbHNlXSxcclxuICAgICAgaXNDb250cm9sQ2VudGVyOltmYWxzZV0sXHJcbiAgICAgIHN0cmVhbUJ5OltdLFxyXG4gICAgICBpc0NhbWVyYUVkaXQ6W2ZhbHNlXSxcclxuICAgICAgaXNBSU1hbmFnZXI6W2ZhbHNlXSxcclxuICAgICAgaXNBSU1hbmFnZXJBY2Nlc3NDb250cm9sOltmYWxzZV1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZGlzYWJsZSgpXHJcblxyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZ2V0KCdib3VuY2VkTGltaXRWYWx1ZScpPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkgeyAgICAgICAgXHJcbiAgICAgICAgdGhpcy5ib3VuY2VkQ29uZmlnVGltZUNoYW5nZShlKVxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ2NvbnZlcnNpb25WYWx1ZScpPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkge1xyXG4gICAgICAgIHRoaXMuY29udmVyc2lvbkNvbmZpZ1RpbWVDaGFuZ2UoZSlcclxuICAgICAgICAvLyB0aGlzLnNldENvbnZlcnNpb25DYWxjdWxhdGlvbihlKVxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuICB9XHJcbiAgc2VsZWN0ZWRPcHRpb246IGFueSA9ICcnO1xyXG4gIHBhdGNoRm9ybShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnBhdGNoVmFsdWUoXHJcbiAgICAgIHtcclxuICAgICAgICAuLi5kYXRhXHJcbiAgICAgIH1cclxuICAgIClcclxuICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRoaXMuZGlzVmFsdWUgPSAhIWRhdGEuaXNGb290ZmFsbERpcmVjdG9yeTtcclxuICAgaWYgKGRhdGEuaXNGb290ZmFsbERpcmVjdG9yeUxpbWl0KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSAnaXNGb290ZmFsbERpcmVjdG9yeUxpbWl0JztcclxuICAgIH0gZWxzZSBpZiAoZGF0YS5pc0Zvb3RmYWxsRGlyZWN0b3J5QXVkaXQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9ICdpc0Zvb3RmYWxsRGlyZWN0b3J5QXVkaXQnO1xyXG4gICAgfVxyXG4gIFxyXG4gIH1cclxuICBvblNlbGVjdGlvbkNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAvLyBVcGRhdGUgdGhlIHNlbGVjdGVkIG9wdGlvbiBhbmQgZm9ybSB2YWx1ZXNcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB2YWx1ZTtcclxuXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgaXNGb290ZmFsbERpcmVjdG9yeUxpbWl0OiB2YWx1ZSA9PT0gJ2lzRm9vdGZhbGxEaXJlY3RvcnlMaW1pdCcsXHJcbiAgICAgIGlzRm9vdGZhbGxEaXJlY3RvcnlBdWRpdDogdmFsdWUgPT09ICdpc0Zvb3RmYWxsRGlyZWN0b3J5QXVkaXQnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGJvdW5jZWRDb25maWdUaW1lQ2hhbmdlKHZhbHVlOiBudW1iZXIpIHtcclxuXHJcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XHJcbiAgICAgIGNhc2UgMTpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lID0gXCI+MVwiXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lID0gXCI+MlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDM6XHJcbiAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZSA9IFwiPjNcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lID0gXCJcIjtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb252ZXJzaW9uQ29uZmlnVGltZUNoYW5nZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XHJcbiAgICAgIGNhc2UgNTpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5RW5kVGltZSA9ICc8PTUnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDEwOlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJzw9MTAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDE1OlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJzw9MTUnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDIwOlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJzw9MjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJyc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDb252ZXJzaW9uQ2FsY3VsYXRpb24oY29udmVyc2lvblZhbDpudW1iZXIpe1xyXG4gICAgdGhpcy5jb252ZXJzaW9uQ2FsY3VsYXRpb24gPSBbXHJcbiAgICAgIHt2YWx1ZTpcImZvb3RmYWxsLWNvdW50XCIsIGxhYmVsOmAke2NvbnZlcnNpb25WYWx9IG1pbnMvRm9vdGZhbGwgQ291bnRgfSxcclxuICAgICAge3ZhbHVlOlwiZW5nYWdlcnMtY291bnRcIiwgbGFiZWw6YCR7Y29udmVyc2lvblZhbH0gbWlucy9FbmdhZ2VycyBDb3VudGB9LFxyXG4gICAgICB7dmFsdWU6XCJiaWxsYWJsZS1lbnRpdGllc1wiLCBsYWJlbDpgJHtjb252ZXJzaW9uVmFsfSBtaW5zL0JpbGxhYmxlIEVudGl0aWVzYH0sXHJcbiAgICBdXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ2NvbnZlcnNpb25DYWxjdWxhdGlvbicpPy5zZXRWYWx1ZSh0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybT8udmFsdWUuY29udmVyc2lvbkNhbGN1bGF0aW9uKSBcclxuICB9XHJcbiAgZGlzVmFsdWUgPWZhbHNlO1xyXG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlOyBcclxuICB0b2dnbGVGb3JtKCk6IHZvaWQge1xyXG4gICAgXHJcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSAhdGhpcy5pc0Rpc2FibGVkOyAgXHJcbiAgfVxyXG5cclxuICBvbkNhbmNlbCgpIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS5jbGllbnRGb3JtRGF0YS5uZXh0KHsgdmFsdWU6IG51bGwsIHR5cGU6ICdjYW5jZWwnLCBmb3JtOiAnZmVhdHVyZS1jb25maWd1cmF0aW9uJyB9KVxyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZGlzYWJsZSgpXHJcbiAgICB0aGlzLnRvZ2dsZUZvcm0oKTtcclxuICAgIHRoaXMuZGlzVmFsdWUgPWZhbHNlO1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS52YWx1ZS5vcGVuID0gdGhpcy5kYXlqcyhgMTk5MS0wMS0wMSAke3RoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnZhbHVlLm9wZW59YCwnWVlZWS1NTS1ERCBISDptbScpLmZvcm1hdChcIkhIOm1tOnNzXCIpXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS52YWx1ZS5jbG9zZSA9IHRoaXMuZGF5anMoYDE5OTEtMDEtMDEgJHt0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS52YWx1ZS5jbG9zZX1gLCdZWVlZLU1NLUREIEhIOm1tJykuZm9ybWF0KFwiSEg6bW06c3NcIikgICAgXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS52YWx1ZSlcclxuICAgIHRoaXMuYXBpU2VydmljZS5jbGllbnRGb3JtRGF0YS5uZXh0KHsgdmFsdWU6IHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnZhbHVlLCB0eXBlOiAnc3VibWl0JywgZm9ybTogJ2ZlYXR1cmUtY29uZmlndXJhdGlvbicgfSlcclxuICB9XHJcblxyXG4gIGRpcmVjdG9yeShlOiBFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0udmFsdWUuaXNGb290ZmFsbERpcmVjdG9yeUxpbWl0ID1mYWxzZTtcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnZhbHVlLmlzRm9vdGZhbGxEaXJlY3RvcnlBdWRpdCA9ZmFsc2U7XHJcbiAgICBjb25zdCBpc0NoZWNrZWQgPSAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZDtcclxuICAgIHRoaXMuaXNEaXNhYmxlZCA9ICFpc0NoZWNrZWQ7XHJcbiAgICBpZih0aGlzLmlzRGlzYWJsZWQpe1xyXG4gICAgICB0aGlzLmRpc1ZhbHVlID1mYWxzZTtcclxuICAgICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZ2V0KCdpc1ZNUycpPy5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBudWxsOyBcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlzVmFsdWUgPXRydWU7XHJcbiAgICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmdldCgnaXNWTVMnKT8uZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIC8vICAgdm1zKGU6IEV2ZW50KTogdm9pZCB7XHJcbiAgLy8gICBjb25zdCBpc0NoZWNrZWQgPSAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZDtcclxuICAvLyAgIGNvbnNvbGUubG9nKGlzQ2hlY2tlZCk7XHJcbiAgLy8gICBpZihpc0NoZWNrZWQpIHsgXHJcbiAgLy8gICAgIHRoaXMuaXNWTVNFbmFibGVkID10cnVlO1xyXG4gIC8vICAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ2NvbnZlcnNpb25DYWxjdWxhdGlvbicpPy5zZXRWYWx1ZSh0cnVlKTtcclxuICAvLyAgIH0gZWxzZSB7IFxyXG4gIC8vICAgICB0aGlzLmlzVk1TRW5hYmxlZCA9IGZhbHNlO1xyXG4gIC8vICAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ2NvbnZlcnNpb25DYWxjdWxhdGlvbicpPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG5ub2JEaXJlY3RvcnkoZXZ0OiBhbnkpIHtcclxuICBpZiAoZXZ0LnRhcmdldC5jaGVja2VkID09PSBmYWxzZSkge1xyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm1cclxuICAgICAgLmdldCgnaXNab25ld2lzZU5PQicpXHJcbiAgICAgID8uc2V0VmFsdWUoZmFsc2UpO1xyXG4gIH1cclxufVxyXG5cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZlYXR1cmVDb25maWd1cmF0aW9uRm9ybVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uR2xvYmFsX0NvbmZpZ3VyYXRpb25faXNFZGl0XCIgPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZGlzYWJsZWRcIiBjbGFzcz1cImNvbC0xMiBtYi01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyB8fCBmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZ2V0KCd1cGRhdGVGZWF0dXJlQ29uZmlnJyk/LnZhbHVlID09PSB0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUZvcm0oKTtmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZGlzYWJsZWQgPyBmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZW5hYmxlKCkgOiBmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZGlzYWJsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgYWxpZ24taXRlbXMtZW5kXCI+PHNwYW4gY2xhc3M9XCJtZS0yXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8yNTc5XzI1MTI1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuMTY3IDIuNDk5OTNDMTQuMzg1OSAyLjI4MTA2IDE0LjY0NTcgMi4xMDc0NCAxNC45MzE3IDEuOTg4OTlDMTUuMjE3NiAxLjg3MDU0IDE1LjUyNDEgMS44MDk1NyAxNS44MzM3IDEuODA5NTdDMTYuMTQzMiAxLjgwOTU3IDE2LjQ0OTcgMS44NzA1NCAxNi43MzU3IDEuOTg4OTlDMTcuMDIxNiAyLjEwNzQ0IDE3LjI4MTUgMi4yODEwNiAxNy41MDAzIDIuNDk5OTNDMTcuNzE5MiAyLjcxODggMTcuODkyOCAyLjk3ODYzIDE4LjAxMTMgMy4yNjQ2QzE4LjEyOTcgMy41NTA1NyAxOC4xOTA3IDMuODU3MDYgMTguMTkwNyA0LjE2NjU5QzE4LjE5MDcgNC40NzYxMiAxOC4xMjk3IDQuNzgyNjIgMTguMDExMyA1LjA2ODU5QzE3Ljg5MjggNS4zNTQ1NSAxNy43MTkyIDUuNjE0MzkgMTcuNTAwMyA1LjgzMzI2TDYuMjUwMzMgMTcuMDgzM0wxLjY2Njk5IDE4LjMzMzNMMi45MTY5OSAxMy43NDk5TDE0LjE2NyAyLjQ5OTkzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzI1NzlfMjUxMjVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+RWRpdCBEZXRhaWxzPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PiAgICBcclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgY29sLXhsLTMgY29sLXh4bC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLWhlYWRlclwiPkV4Y2x1ZGVkIEFyZWE8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+Q2hvb3NlIGlmIHlvdSB3YW50IHRvIHZpZXcgRXhjbHVkZWQgQXJlYSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG15LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc0V4Y2x1ZGVkQXJlYVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc0V4Y2x1ZGVkQXJlYVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc0V4bHVkZWRBcmVhXCI+IFNob3cgRXhjbHVkZWQgQXJlYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLWhlYWRlclwiPlBhc3Nlci1ieSBkYXRhPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPkNob29zZSBpZiB5b3Ugd2FudCB0byB2aWV3IFBhc3NlcmJ5IGRhdGEuIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG15LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc1Bhc3NlckJ5RGF0YVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIGlkPVwiaXNQYXNzZXJCeURhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNQYXNzZXJCeURhdGFcIj4gU2hvdyBQYXNzZXItYnkgZGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+Tm9ybWFsaXplZCBkYXRhIGR1cmluZyBkb3dudGltZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5DaG9vc2UgaWYgeW91IHdhbnQgdG8gdmlldyBub3JtYWxpemVkIGRhdGEuIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG15LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc05vcm1hbGl6ZWRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImlzTm9ybWFsaXplZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc05vcm1hbGl6ZWRcIj4gU2hvdyBOb3JtYWxpemVkIGRhdGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1oZWFkZXJcIj5CaWxsaW5nIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5DaG9vc2UgaWYgeW91IHdhbnQgdG8gZGlzYWJsZSBCaWxsaW5nPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBteS02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNiaWxsaW5nRGlzYWJsZWRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNiaWxsaW5nRGlzYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNiaWxsaW5nRGlzYWJsZWRcIj4gRGlzYWJsZSBCaWxsaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+Q2FtZXJhIEJsdXJyaW5nPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPkNob29zZSBpZiB5b3Ugd2FudCB0byBibHVyIHRoZSBDYW1lcmE8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG15LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc0NhbWVyYURpc2FibGVkXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzQ2FtZXJhRGlzYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNDYW1lcmFEaXNhYmxlZFwiPiBFbmFibGUgQmx1cnJpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1oZWFkZXJcIj5DYW1lcmEgU2V0dGluZ3M8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+Q2hvb3NlIGlmIHRoZSB5b3Ugd2FudCB0byBoaWRlIHRoZSBjYW1lcmE8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG15LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc0NhbWVyYUVkaXRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNDYW1lcmFFZGl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzQ2FtZXJhRWRpdFwiPiBEaXNhYmxlIENhbWVyYSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLWhlYWRlclwiPk5PQiBTdGF0dXM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+Q2hvb3NlIGlmIHRoZSBjbGllbnRzIGFyZSB1cGRhdGluZyBOT0IgPC9kaXY+ICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNOT0JcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNOT0JcIiAoY2hhbmdlKT1cIm5vYkRpcmVjdG9yeSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzTk9CXCI+RW5hYmxlIE5PQlxyXG4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+Wm9uZS13aXNlIE5PQiBDb3VudDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5DaG9vc2UgaWYgdGhlIGNsaWVudHMgYXJlIHVwZGF0aW5nIFpvbmUtd2lzZSBOT0IgPC9kaXY+ICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNab25ld2lzZU5PQlwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc1pvbmV3aXNlTk9CXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzWm9uZXdpc2VOT0JcIj5FbmFibGVcclxuIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgY29sLXhsLTMgY29sLXh4bC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1oZWFkZXJcIj5TU08gU3RhdHVzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPkNob29zZSBpZiB5b3Ugd2FudCB0byByZXN0cmljdCBsb2dpbiB0byBNaWNyb3NvZnQgYW5kIEdvb2dsZSBhY2NvdW50cyA8L2Rpdj4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJsb2dpblNTT1wiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJsb2dpblNTT1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJsb2dpblNTT1wiPkVuYWJsZSBTU09cclxuIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05IGNvbC14bC05IGNvbC14eGwtOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1oZWFkZXJcIj5Gb290ZmFsbCBEaXJlY3Rvcnk8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+Q2hvb3NlIGlmIHlvdSB3YW50IHRvIHZpZXcgRm9vdGZhbGwgZGlyZWN0b3J5IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImV4YW1wbGVSYWRpb3NcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNGb290ZmFsbERpcmVjdG9yeVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZE9wdGlvbiA9PT0gJ2lzRm9vdGZhbGxEaXJlY3RvcnknXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJ2lzRm9vdGZhbGxEaXJlY3RvcnknKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaG93IEZ1bGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtdC00IHB4LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5XCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzRm9vdGZhbGxEaXJlY3RvcnlcIiAoY2hhbmdlKT1cImRpcmVjdG9yeSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzRm9vdGZhbGxEaXJlY3RvcnlcIj4gRW5hYmxlIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVk1TIGVuYWJsZSBwYXJ0IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgbXQtNCBweC0xXCIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbycgJiYgZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmdldCgnaXNGb290ZmFsbERpcmVjdG9yeScpPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNWTVNcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzVk1TXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc1ZNU1wiPiBFbmFibGUgVGlja2V0IEZsb3dcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgZm9ybS1jaGVjayBtdC00IHB4LTFcIiAqbmdJZj1cImRpc1ZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJleGFtcGxlUmFkaW9zXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzRm9vdGZhbGxEaXJlY3RvcnlMaW1pdFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5TGltaXRcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkT3B0aW9uID09PSAnaXNGb290ZmFsbERpcmVjdG9yeUxpbWl0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCdpc0Zvb3RmYWxsRGlyZWN0b3J5TGltaXQnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNGb290ZmFsbERpcmVjdG9yeUxpbWl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaG93IEZld1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBmb3JtLWNoZWNrIG10LTQgcHgtMVwiICpuZ0lmPVwiZGlzVmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImV4YW1wbGVSYWRpb3NcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNGb290ZmFsbERpcmVjdG9yeUF1ZGl0XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImlzRm9vdGZhbGxEaXJlY3RvcnlBdWRpdFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRPcHRpb24gPT09ICdpc0Zvb3RmYWxsRGlyZWN0b3J5QXVkaXQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJ2lzRm9vdGZhbGxEaXJlY3RvcnlBdWRpdCcpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5QXVkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9ubHkgQXVkaXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC13cmFwIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEVuYWJsZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzRm9vdGZhbGxEaXJlY3RvcnlcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNGb290ZmFsbERpcmVjdG9yeVwiIChjaGFuZ2UpPVwiZGlyZWN0b3J5KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNGb290ZmFsbERpcmVjdG9yeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5b25seVRhbmdvXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzRm9vdGZhbGxEaXJlY3Rvcnlvbmx5VGFuZ29cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNGb290ZmFsbERpcmVjdG9yeW9ubHlUYW5nb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9ubHkgVGFuZ29cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBFbmFibGUgVGlja2V0IEZsb3cgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTRcIiAqbmdJZj1cImZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ2lzRm9vdGZhbGxEaXJlY3RvcnknKT8udmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc1ZNU1wiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIGlkPVwiaXNWTVNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZGlzYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNWTVNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmFibGUgVGlja2V0IEZsb3dcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTaG93IEZldyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtNFwiICpuZ0lmPVwiZGlzVmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJleGFtcGxlUmFkaW9zXCIgaWQ9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5TGltaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5TGltaXRcIiBbY2hlY2tlZF09XCJzZWxlY3RlZE9wdGlvbiA9PT0gJ2lzRm9vdGZhbGxEaXJlY3RvcnlMaW1pdCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgnaXNGb290ZmFsbERpcmVjdG9yeUxpbWl0JylcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbCBtcy0xXCIgZm9yPVwiaXNGb290ZmFsbERpcmVjdG9yeUxpbWl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaG93IEZld1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBPbmx5IEF1ZGl0IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS00XCIgKm5nSWY9XCJkaXNWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cImV4YW1wbGVSYWRpb3NcIiBpZD1cImlzRm9vdGZhbGxEaXJlY3RvcnlBdWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImlzRm9vdGZhbGxEaXJlY3RvcnlBdWRpdFwiIFtjaGVja2VkXT1cInNlbGVjdGVkT3B0aW9uID09PSAnaXNGb290ZmFsbERpcmVjdG9yeUF1ZGl0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCdpc0Zvb3RmYWxsRGlyZWN0b3J5QXVkaXQnKVwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsIG1zLTFcIiBmb3I9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5QXVkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9ubHkgQXVkaXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbC1sZy0yIGNvbC14bC0yIGNvbC14eGwtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG10LTE4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNGb290ZmFsbEF1ZGl0U3RvcmVzXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzQXVkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNBdWRpdFwiPiBTaG93IEZld1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIGNvbC14bC0yIGNvbC14eGwtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG10LTE4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNGb290ZmFsbEF1ZGl0U3RvcmVzXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzQXVkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNBdWRpdFwiPiBPbmx5IEF1ZGl0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+QW5hbHl6ZSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+VG8gZW5hYmxlIG5ldyBkYXNoYm9hcmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc05ld0Rhc2hib2FyZFwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc05ld0Rhc2hib2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc05ld0Rhc2hib2FyZFwiPiBFbmFibGUgQW5hbHl6ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInJvd1wiPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgY29sLXhsLTMgY29sLXh4bC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG10LTE4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzTmV3VHJhZmZpY1wiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNOZXdUcmFmZmljXCIgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzTmV3VHJhZmZpY1wiPlRyYWZmaWNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXQtMThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNOZXdab25lXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc05ld3pvbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzTmV3em9uZVwiPlpvbmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXQtMThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNOZXdab25lVjJcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzTmV3Wm9uZVYyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc05ld1pvbmVWMlwiPlpvbmUgdjJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNOZXdSZXBvcnRzXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc05ld1JlcG9ydHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzTmV3UmVwb3J0c1wiPlJlcG9ydHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNUcmF4XCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc1RyYXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzVHJheFwiPlRyYXhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNSZXZvcHNcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzUmV2b3BzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc1Jldm9wc1wiPlJldm9wc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc0FJTWFuYWdlclwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNBSU1hbmFnZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzQUlNYW5hZ2VyXCI+QUkgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc0FJTWFuYWdlckFjY2Vzc0NvbnRyb2xcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzQUlNYW5hZ2VyQWNjZXNzQ29udHJvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNBSU1hbmFnZXJBY2Nlc3NDb250cm9sXCI+QWNjZXNzIENvbnRyb2xcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc0NvbnRyb2xDZW50ZXJcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzQ29udHJvbENlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNDb250cm9sQ2VudGVyXCI+Q29udHJvbCBDZW50ZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1oZWFkZXJcIj5TdHJlYW0gVHlwZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+Q2hvb3NlIGlmIHRoZSBFZGdlIEFwcCBDb25maWd1cmF0aW9uczwvZGl2PiAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgaC0zNXB4IGZvcm0tc2VsZWN0LXNtIG15LTMgc2VsY3RcIiBwbGFjZWhvbGRlcj1cIlN0YXR1c1wiIGZvcm1Db250cm9sTmFtZT1cInN0cmVhbUJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCIuZm9ybS1zZWxlY3Qtc20gZXhhbXBsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkVkZ2VcIj5FZGdlIEFwcDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlJ0c3BcIj5SVFNQPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PiAtLT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZW5hYmxlZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi01IHctMTAwIGZvb3Rlci1zZXBlcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICAgICAgPGEgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIG10LTEgbWUtNFwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+Q2FuY2VsPC9hPlxyXG4gICAgICAgICAgICA8YSB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtNCBcIiAoY2xpY2spPVwib25TdWJtaXQoKVwiPjxzcGFuPlNhdmUgQ2hhbmdlczwvc3Bhbj48L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvZm9ybT4iXX0=
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXNldHRpbmdzL3NyYy9saWIvY29tcG9uZW50cy9jb25maWd1cmF0aW9ucy9kYXNoYm9hcmQtY29uZmlndXJhdGlvbi9kYXNoYm9hcmQtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2Rhc2hib2FyZC1jb25maWd1cmF0aW9uL2Rhc2hib2FyZC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBR3hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQVEsS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMzQixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7QUFDN0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBUXZCLE1BQU0sT0FBTywrQkFBK0I7SUErRHRCO0lBQXlCO0lBQXFDO0lBQ3hFO0lBL0RWLHdCQUF3QixDQUFXO0lBQ25DLDBCQUEwQixDQUFTO0lBQ25DLHdCQUF3QixDQUFTO0lBQ2hCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDZCxZQUFZLENBQVU7SUFHdEIsZUFBZSxH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LFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyQjtJQUNILENBQUM7d0dBalJZLCtCQUErQjs0RkFBL0IsK0JBQStCLG1FQ2xCNUMsd20vQkFnY087OzRGRDlhTSwrQkFBK0I7a0JBTjNDLFNBQVM7K0JBQ0UsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENsaWVudEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbGllbnQtYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCAgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcImRheWpzL2xvY2FsZS9lblwiO1xyXG5pbXBvcnQgdXRjIGZyb20gXCJkYXlqcy9wbHVnaW4vdXRjXCI7XHJcbmltcG9ydCB0aW1lem9uZSBmcm9tIFwiZGF5anMvcGx1Z2luL3RpbWV6b25lXCI7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5kYXlqcy5leHRlbmQodGltZXpvbmUpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZGFzaGJvYXJkLWNvbmZpZ3VyYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2Rhc2hib2FyZC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIERhc2hib2FyZENvbmZpZ3VyYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIGZlYXR1cmVDb25maWd1cmF0aW9uRm9ybTogRm9ybUdyb3VwXHJcbiAgbWlzc2VkT3Bwb3J0dW5pdHlTdGFydFRpbWU6IHN0cmluZztcclxuICBtaXNzZWRPcHBvcnR1bml0eUVuZFRpbWU6IHN0cmluZztcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBkYXlqcyA9IGRheWpzO1xyXG4gIGlzVk1TRW5hYmxlZDogYm9vbGVhbjtcclxuXHJcblxyXG4gIGluZnJhQWxlcnRWYWx1ZSA9IFtcclxuICAgIHsgdmFsdWU6IDEsIGxhYmVsOiBcIjEgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDIsIGxhYmVsOiBcIjIgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDMsIGxhYmVsOiBcIjMgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDQsIGxhYmVsOiBcIjQgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDUsIGxhYmVsOiBcIjUgaHJzXCIgfVxyXG4gIF1cclxuXHJcbiAgaW5mcmFBbGVydENvbmRpdGlvbiA9IFtcclxuICAgIHsgdmFsdWU6IFwiPFwiLCBsYWJlbDogXCI8XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiPlwiLCBsYWJlbDogXCI+XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiPD1cIiwgbGFiZWw6IFwiPCA9XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiPT5cIiwgbGFiZWw6IFwiPSA+XCIgfSxcclxuICBdXHJcblxyXG4gIGJvdW5jZWRMaW1pdENvbmRpdGlvbiA9IFtcclxuICAgIHsgdmFsdWU6IFwiPD1cIiwgbGFiZWw6IFwiPCA9XCIgfVxyXG4gIF1cclxuXHJcbiAgYm91bmNlZExpbWl0VmFsdWUgPSBbXHJcbiAgICB7IHZhbHVlOiAxLCBsYWJlbDogXCIxIG1pblwiIH0sXHJcbiAgICB7IHZhbHVlOiAyLCBsYWJlbDogXCIyIG1pbnNcIiB9LFxyXG4gICAgeyB2YWx1ZTogMywgbGFiZWw6IFwiMyBtaW5zXCIgfSxcclxuICBdXHJcblxyXG4gIGNvbnZlcnNpb25Db25kaXRpb24gPSBbXHJcbiAgICB7IHZhbHVlOiBcIj5cIiwgbGFiZWw6IFwiPlwiIH1cclxuICBdXHJcblxyXG4gIGNvbnZlcnNpb25WYWx1ZSA9IFtcclxuICAgIHsgdmFsdWU6IDUsIGxhYmVsOiBcIjUgbWluc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAxMCwgbGFiZWw6IFwiMTAgbWluc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAxNSwgbGFiZWw6IFwiMTUgbWluc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAyMCwgbGFiZWw6IFwiMjAgbWluc1wiIH1cclxuICBdXHJcblxyXG4gIGJpbGxhYmxlQ2FsY3VsYXRpb24gPSBbXHJcbiAgICB7IHZhbHVlOiBcImZvb3RmYWxsLWNvdW50XCIsIGxhYmVsOiBcIkZvb3RmYWxsIENvdW50XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiZW5nYWdlcnMtY291bnRcIiwgbGFiZWw6IFwiRW5nYWdlcnMgQ291bnRcIiB9LFxyXG4gIF1cclxuXHJcbiAgbWlzc2VkT3Bwb3J0dW5pdHlDYWxjdWxhdGlvbiA9IFtcclxuICAgIHsgdmFsdWU6IFwiZW5nYWdlcnMtY29udmVyc2lvblwiLCBsYWJlbDogXCJFbmdhZ2VycyAtIENvbnZlcnNpb25cIiB9LFxyXG4gICAgeyB2YWx1ZTogXCJncm91cC1jb252ZXJzaW9uXCIsIGxhYmVsOiBcIkJpbGxhYmxlIEVudGl0aWVzIC0gQ29udmVyc2lvblwiIH0sXHJcbiAgXVxyXG5cclxuICBjb252ZXJzaW9uQ2FsY3VsYXRpb24gPSBbXHJcbiAgICB7dmFsdWU6XCJmb290ZmFsbC1jb3VudFwiLCBsYWJlbDpcIkZvb3RmYWxsIENvdW50XCJ9LFxyXG4gICAge3ZhbHVlOlwiZW5nYWdlcnMtY291bnRcIiwgbGFiZWw6XCJFbmdhZ2VycyBDb3VudFwifSxcclxuICAgIHt2YWx1ZTpcImJpbGxhYmxlLWVudGl0aWVzXCIsIGxhYmVsOlwiQmlsbGFibGUgRW50aXRpZXNcIn0sXHJcbiAgXVxyXG5cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGFwaVNlcnZpY2U6IENsaWVudEFwaVNlcnZpY2UsIHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5pbml0Rm9ybSgpXHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuY2xpZW50Rm9ybURhdGEucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICBpZiAocmVzLnR5cGUgPT09ICdpbnB1dCcgJiYgcmVzLmZvcm0gPT09ICdmZWF0dXJlLWNvbmZpZ3VyYXRpb24nKSB7XHJcbiAgICAgICAgICB0aGlzLnBhdGNoRm9ybShyZXMudmFsdWUpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGluaXRGb3JtKCkge1xyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgb3BlbjogW10sXHJcbiAgICAgIGNsb3NlOiBbXSxcclxuICAgICAgaW5mcmFBbGVydENvbmRpdGlvbjogW10sXHJcbiAgICAgIGluZnJhQWxlcnRWYWx1ZTogW10sXHJcbiAgICAgIGJvdW5jZWRMaW1pdENvbmRpdGlvbjogW10sXHJcbiAgICAgIGJvdW5jZWRMaW1pdFZhbHVlOiBbXSxcclxuICAgICAgY29udmVyc2lvbkNvbmRpdGlvbjogW10sXHJcbiAgICAgIGNvbnZlcnNpb25WYWx1ZTogW10sXHJcbiAgICAgIGJpbGxhYmxlQ2FsY3VsYXRpb246IFtdLFxyXG4gICAgICBtaXNzZWRPcHBvcnR1bml0eUNhbGN1bGF0aW9uOiBbXSxcclxuICAgICAgY29udmVyc2lvbkNhbGN1bGF0aW9uOiBbXSxcclxuICAgICAgaXNOb3JtYWxpemVkOiBbXSxcclxuICAgICAgaXNQYXNzZXJCeURhdGE6IFtdLFxyXG4gICAgICBpc0Zvb3RmYWxsRGlyZWN0b3J5OiBbZmFsc2VdLFxyXG4gICAgICBpc0Zvb3RmYWxsRGlyZWN0b3J5b25seVRhbmdvOiBbZmFsc2VdLFxyXG4gICAgICBpc1ZNUzogW2ZhbHNlXSxcclxuICAgICAgaXNGb290ZmFsbERpcmVjdG9yeUF1ZGl0OltmYWxzZV0sXHJcbiAgICAgIGlzRm9vdGZhbGxEaXJlY3RvcnlMaW1pdDpbZmFsc2VdLFxyXG4gICAgICBpc0V4Y2x1ZGVkQXJlYTpbXSxcclxuICAgICAgaXNDYW1lcmFEaXNhYmxlZDogW2ZhbHNlXSxcclxuICAgICAgaXNiaWxsaW5nRGlzYWJsZWQ6W2ZhbHNlXSxcclxuICAgICAgaXNOZXdEYXNoYm9hcmQ6W2ZhbHNlXSxcclxuICAgICAgdXBkYXRlRmVhdHVyZUNvbmZpZzpbXSxcclxuICAgICAgaXNGb290ZmFsbEF1ZGl0U3RvcmVzOiBbXSxcclxuICAgICAgaXNOZXdUcmFmZmljOiBbeyB2YWx1ZTogZmFsc2UsIGRpc2FibGVkOiB0cnVlIH1dLFxyXG4gICAgICBpc05ld1pvbmU6IFtmYWxzZV0sXHJcbiAgICAgIGlzTmV3Wm9uZVYyOiBbZmFsc2VdLFxyXG4gICAgICBpc05PQjogW2ZhbHNlXSxcclxuICAgICAgaXNab25ld2lzZU5PQjpbZmFsc2VdLFxyXG4gICAgICBsb2dpblNTTzogW2ZhbHNlXSxcclxuICAgICAgaXNOZXdSZXBvcnRzOiBbZmFsc2VdLFxyXG4gICAgICBpc1RyYXg6W2ZhbHNlXSxcclxuICAgICAgaXNSZXZvcHM6W2ZhbHNlXSxcclxuICAgICAgaXNDb250cm9sQ2VudGVyOltmYWxzZV0sXHJcbiAgICAgIHN0cmVhbUJ5OltdLFxyXG4gICAgICBpc0NhbWVyYUVkaXQ6W2ZhbHNlXSxcclxuICAgICAgaXNBSU1hbmFnZXI6W2ZhbHNlXSxcclxuICAgICAgaXNBSU1hbmFnZXJBY2Nlc3NDb250cm9sOltmYWxzZV1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZGlzYWJsZSgpXHJcblxyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZ2V0KCdib3VuY2VkTGltaXRWYWx1ZScpPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkgeyAgICAgICAgXHJcbiAgICAgICAgdGhpcy5ib3VuY2VkQ29uZmlnVGltZUNoYW5nZShlKVxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ2NvbnZlcnNpb25WYWx1ZScpPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkge1xyXG4gICAgICAgIHRoaXMuY29udmVyc2lvbkNvbmZpZ1RpbWVDaGFuZ2UoZSlcclxuICAgICAgICAvLyB0aGlzLnNldENvbnZlcnNpb25DYWxjdWxhdGlvbihlKVxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuICB9XHJcbiAgc2VsZWN0ZWRPcHRpb246IGFueSA9ICcnO1xyXG4gIHBhdGNoRm9ybShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnBhdGNoVmFsdWUoXHJcbiAgICAgIHtcclxuICAgICAgICAuLi5kYXRhXHJcbiAgICAgIH1cclxuICAgIClcclxuICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRoaXMuZGlzVmFsdWUgPSAhIWRhdGEuaXNGb290ZmFsbERpcmVjdG9yeTtcclxuICAgaWYgKGRhdGEuaXNGb290ZmFsbERpcmVjdG9yeUxpbWl0KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSAnaXNGb290ZmFsbERpcmVjdG9yeUxpbWl0JztcclxuICAgIH0gZWxzZSBpZiAoZGF0YS5pc0Zvb3RmYWxsRGlyZWN0b3J5QXVkaXQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9ICdpc0Zvb3RmYWxsRGlyZWN0b3J5QXVkaXQnO1xyXG4gICAgfVxyXG4gIFxyXG4gIH1cclxuICBvblNlbGVjdGlvbkNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAvLyBVcGRhdGUgdGhlIHNlbGVjdGVkIG9wdGlvbiBhbmQgZm9ybSB2YWx1ZXNcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB2YWx1ZTtcclxuXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgaXNGb290ZmFsbERpcmVjdG9yeUxpbWl0OiB2YWx1ZSA9PT0gJ2lzRm9vdGZhbGxEaXJlY3RvcnlMaW1pdCcsXHJcbiAgICAgIGlzRm9vdGZhbGxEaXJlY3RvcnlBdWRpdDogdmFsdWUgPT09ICdpc0Zvb3RmYWxsRGlyZWN0b3J5QXVkaXQnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGJvdW5jZWRDb25maWdUaW1lQ2hhbmdlKHZhbHVlOiBudW1iZXIpIHtcclxuXHJcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XHJcbiAgICAgIGNhc2UgMTpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lID0gXCI+MVwiXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lID0gXCI+MlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDM6XHJcbiAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZSA9IFwiPjNcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lID0gXCJcIjtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb252ZXJzaW9uQ29uZmlnVGltZUNoYW5nZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XHJcbiAgICAgIGNhc2UgNTpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5RW5kVGltZSA9ICc8PTUnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDEwOlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJzw9MTAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDE1OlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJzw9MTUnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDIwOlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJzw9MjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJyc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDb252ZXJzaW9uQ2FsY3VsYXRpb24oY29udmVyc2lvblZhbDpudW1iZXIpe1xyXG4gICAgdGhpcy5jb252ZXJzaW9uQ2FsY3VsYXRpb24gPSBbXHJcbiAgICAgIHt2YWx1ZTpcImZvb3RmYWxsLWNvdW50XCIsIGxhYmVsOmAke2NvbnZlcnNpb25WYWx9IG1pbnMvRm9vdGZhbGwgQ291bnRgfSxcclxuICAgICAge3ZhbHVlOlwiZW5nYWdlcnMtY291bnRcIiwgbGFiZWw6YCR7Y29udmVyc2lvblZhbH0gbWlucy9FbmdhZ2VycyBDb3VudGB9LFxyXG4gICAgICB7dmFsdWU6XCJiaWxsYWJsZS1lbnRpdGllc1wiLCBsYWJlbDpgJHtjb252ZXJzaW9uVmFsfSBtaW5zL0JpbGxhYmxlIEVudGl0aWVzYH0sXHJcbiAgICBdXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ2NvbnZlcnNpb25DYWxjdWxhdGlvbicpPy5zZXRWYWx1ZSh0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybT8udmFsdWUuY29udmVyc2lvbkNhbGN1bGF0aW9uKSBcclxuICB9XHJcbiAgZGlzVmFsdWUgPWZhbHNlO1xyXG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlOyBcclxuICB0b2dnbGVGb3JtKCk6IHZvaWQge1xyXG4gICAgXHJcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSAhdGhpcy5pc0Rpc2FibGVkOyAgXHJcbiAgfVxyXG5cclxuICBvbkNhbmNlbCgpIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS5jbGllbnRGb3JtRGF0YS5uZXh0KHsgdmFsdWU6IG51bGwsIHR5cGU6ICdjYW5jZWwnLCBmb3JtOiAnZmVhdHVyZS1jb25maWd1cmF0aW9uJyB9KVxyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZGlzYWJsZSgpXHJcbiAgICB0aGlzLnRvZ2dsZUZvcm0oKTtcclxuICAgIHRoaXMuZGlzVmFsdWUgPWZhbHNlO1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS52YWx1ZS5vcGVuID0gdGhpcy5kYXlqcyhgMTk5MS0wMS0wMSAke3RoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnZhbHVlLm9wZW59YCwnWVlZWS1NTS1ERCBISDptbScpLmZvcm1hdChcIkhIOm1tOnNzXCIpXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS52YWx1ZS5jbG9zZSA9IHRoaXMuZGF5anMoYDE5OTEtMDEtMDEgJHt0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS52YWx1ZS5jbG9zZX1gLCdZWVlZLU1NLUREIEhIOm1tJykuZm9ybWF0KFwiSEg6bW06c3NcIikgICAgXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS52YWx1ZSlcclxuICAgIHRoaXMuYXBpU2VydmljZS5jbGllbnRGb3JtRGF0YS5uZXh0KHsgdmFsdWU6IHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnZhbHVlLCB0eXBlOiAnc3VibWl0JywgZm9ybTogJ2ZlYXR1cmUtY29uZmlndXJhdGlvbicgfSlcclxuICB9XHJcblxyXG4gIGRpcmVjdG9yeShlOiBFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgaXNDaGVja2VkID0gKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQ7XHJcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSAhaXNDaGVja2VkO1xyXG5cclxuICAgIC8vIFRvZ2dsaW5nIHRoZSBGb290ZmFsbCBEaXJlY3Rvcnkgc3dpdGNoIHJlc2V0cyB0aGUgcmFkaW8gc2VsZWN0aW9uLlxyXG4gICAgLy8gVXNlIHBhdGNoVmFsdWUgc28gdGhlIGFjdHVhbCBjb250cm9scyBhcmUgdXBkYXRlZCAtIG11dGF0aW5nXHJcbiAgICAvLyBmb3JtLnZhbHVlIGRpcmVjdGx5IGRvZXMgbm90IHVwZGF0ZSB0aGUgRm9ybUNvbnRyb2wgaW5zdGFuY2VzLlxyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgIGlzRm9vdGZhbGxEaXJlY3RvcnlMaW1pdDogZmFsc2UsXHJcbiAgICAgIGlzRm9vdGZhbGxEaXJlY3RvcnlBdWRpdDogZmFsc2UsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBudWxsO1xyXG5cclxuICAgIGlmKHRoaXMuaXNEaXNhYmxlZCl7XHJcbiAgICAgIHRoaXMuZGlzVmFsdWUgPWZhbHNlO1xyXG4gICAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ2lzVk1TJyk/LmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlzVmFsdWUgPXRydWU7XHJcbiAgICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmdldCgnaXNWTVMnKT8uZW5hYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLy8gICB2bXMoZTogRXZlbnQpOiB2b2lkIHtcclxuICAvLyAgIGNvbnN0IGlzQ2hlY2tlZCA9IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkO1xyXG4gIC8vICAgY29uc29sZS5sb2coaXNDaGVja2VkKTtcclxuICAvLyAgIGlmKGlzQ2hlY2tlZCkgeyBcclxuICAvLyAgICAgdGhpcy5pc1ZNU0VuYWJsZWQgPXRydWU7XHJcbiAgLy8gICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmdldCgnY29udmVyc2lvbkNhbGN1bGF0aW9uJyk/LnNldFZhbHVlKHRydWUpO1xyXG4gIC8vICAgfSBlbHNlIHsgXHJcbiAgLy8gICAgIHRoaXMuaXNWTVNFbmFibGVkID0gZmFsc2U7XHJcbiAgLy8gICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmdldCgnY29udmVyc2lvbkNhbGN1bGF0aW9uJyk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcbm5vYkRpcmVjdG9yeShldnQ6IGFueSkge1xyXG4gIGlmIChldnQudGFyZ2V0LmNoZWNrZWQgPT09IGZhbHNlKSB7XHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybVxyXG4gICAgICAuZ2V0KCdpc1pvbmV3aXNlTk9CJylcclxuICAgICAgPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgfVxyXG59XHJcblxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5HbG9iYWxfQ29uZmlndXJhdGlvbl9pc0VkaXRcIiA+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5kaXNhYmxlZFwiIGNsYXNzPVwiY29sLTEyIG1iLTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nIHx8IGZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ3VwZGF0ZUZlYXR1cmVDb25maWcnKT8udmFsdWUgPT09IHRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRm9ybSgpO2ZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5kaXNhYmxlZCA/IGZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5lbmFibGUoKSA6IGZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5kaXNhYmxlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBhbGlnbi1pdGVtcy1lbmRcIj48c3BhbiBjbGFzcz1cIm1lLTJcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzI1NzlfMjUxMjUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC4xNjcgMi40OTk5M0MxNC4zODU5IDIuMjgxMDYgMTQuNjQ1NyAyLjEwNzQ0IDE0LjkzMTcgMS45ODg5OUMxNS4yMTc2IDEuODcwNTQgMTUuNTI0MSAxLjgwOTU3IDE1LjgzMzcgMS44MDk1N0MxNi4xNDMyIDEuODA5NTcgMTYuNDQ5NyAxLjg3MDU0IDE2LjczNTcgMS45ODg5OUMxNy4wMjE2IDIuMTA3NDQgMTcuMjgxNSAyLjI4MTA2IDE3LjUwMDMgMi40OTk5M0MxNy43MTkyIDIuNzE4OCAxNy44OTI4IDIuOTc4NjMgMTguMDExMyAzLjI2NDZDMTguMTI5NyAzLjU1MDU3IDE4LjE5MDcgMy44NTcwNiAxOC4xOTA3IDQuMTY2NTlDMTguMTkwNyA0LjQ3NjEyIDE4LjEyOTcgNC43ODI2MiAxOC4wMTEzIDUuMDY4NTlDMTcuODkyOCA1LjM1NDU1IDE3LjcxOTIgNS42MTQzOSAxNy41MDAzIDUuODMzMjZMNi4yNTAzMyAxNy4wODMzTDEuNjY2OTkgMTguMzMzM0wyLjkxNjk5IDEzLjc0OTlMMTQuMTY3IDIuNDk5OTNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjU3OV8yNTEyNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5FZGl0IERldGFpbHM8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+ICAgIFxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+RXhjbHVkZWQgQXJlYTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5DaG9vc2UgaWYgeW91IHdhbnQgdG8gdmlldyBFeGNsdWRlZCBBcmVhIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXktNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzRXhjbHVkZWRBcmVhXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzRXhjbHVkZWRBcmVhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzRXhsdWRlZEFyZWFcIj4gU2hvdyBFeGNsdWRlZCBBcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+UGFzc2VyLWJ5IGRhdGE8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+Q2hvb3NlIGlmIHlvdSB3YW50IHRvIHZpZXcgUGFzc2VyYnkgZGF0YS4gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXktNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzUGFzc2VyQnlEYXRhXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJpc1Bhc3NlckJ5RGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc1Bhc3NlckJ5RGF0YVwiPiBTaG93IFBhc3Nlci1ieSBkYXRhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgY29sLXhsLTMgY29sLXh4bC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1oZWFkZXJcIj5Ob3JtYWxpemVkIGRhdGEgZHVyaW5nIGRvd250aW1lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPkNob29zZSBpZiB5b3Ugd2FudCB0byB2aWV3IG5vcm1hbGl6ZWQgZGF0YS4gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXktNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzTm9ybWFsaXplZFwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIGlkPVwiaXNOb3JtYWxpemVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzTm9ybWFsaXplZFwiPiBTaG93IE5vcm1hbGl6ZWQgZGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgY29sLXhsLTMgY29sLXh4bC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLWhlYWRlclwiPkJpbGxpbmcgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPkNob29zZSBpZiB5b3Ugd2FudCB0byBkaXNhYmxlIEJpbGxpbmc8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG15LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc2JpbGxpbmdEaXNhYmxlZFwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc2JpbGxpbmdEaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc2JpbGxpbmdEaXNhYmxlZFwiPiBEaXNhYmxlIEJpbGxpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1oZWFkZXJcIj5DYW1lcmEgQmx1cnJpbmc8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+Q2hvb3NlIGlmIHlvdSB3YW50IHRvIGJsdXIgdGhlIENhbWVyYTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXktNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzQ2FtZXJhRGlzYWJsZWRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNDYW1lcmFEaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc0NhbWVyYURpc2FibGVkXCI+IEVuYWJsZSBCbHVycmluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgY29sLXhsLTMgY29sLXh4bC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLWhlYWRlclwiPkNhbWVyYSBTZXR0aW5nczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5DaG9vc2UgaWYgdGhlIHlvdSB3YW50IHRvIGhpZGUgdGhlIGNhbWVyYTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXktNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzQ2FtZXJhRWRpdFwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc0NhbWVyYUVkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNDYW1lcmFFZGl0XCI+IERpc2FibGUgQ2FtZXJhIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+Tk9CIFN0YXR1czwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5DaG9vc2UgaWYgdGhlIGNsaWVudHMgYXJlIHVwZGF0aW5nIE5PQiA8L2Rpdj4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc05PQlwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc05PQlwiIChjaGFuZ2UpPVwibm9iRGlyZWN0b3J5KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNOT0JcIj5FbmFibGUgTk9CXHJcbiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgY29sLXhsLTMgY29sLXh4bC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1oZWFkZXJcIj5ab25lLXdpc2UgTk9CIENvdW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPkNob29zZSBpZiB0aGUgY2xpZW50cyBhcmUgdXBkYXRpbmcgWm9uZS13aXNlIE5PQiA8L2Rpdj4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc1pvbmV3aXNlTk9CXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzWm9uZXdpc2VOT0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNab25ld2lzZU5PQlwiPkVuYWJsZVxyXG4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLWhlYWRlclwiPlNTTyBTdGF0dXM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+Q2hvb3NlIGlmIHlvdSB3YW50IHRvIHJlc3RyaWN0IGxvZ2luIHRvIE1pY3Jvc29mdCBhbmQgR29vZ2xlIGFjY291bnRzIDwvZGl2PiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImxvZ2luU1NPXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImxvZ2luU1NPXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImxvZ2luU1NPXCI+RW5hYmxlIFNTT1xyXG4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTkgY29sLXhsLTkgY29sLXh4bC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLWhlYWRlclwiPkZvb3RmYWxsIERpcmVjdG9yeTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5DaG9vc2UgaWYgeW91IHdhbnQgdG8gdmlldyBGb290ZmFsbCBkaXJlY3RvcnkgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZXhhbXBsZVJhZGlvc1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImlzRm9vdGZhbGxEaXJlY3RvcnlcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkT3B0aW9uID09PSAnaXNGb290ZmFsbERpcmVjdG9yeSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgnaXNGb290ZmFsbERpcmVjdG9yeScpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cImlzRm9vdGZhbGxEaXJlY3RvcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNob3cgRnVsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbC1tZC00IG10LTQgcHgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzRm9vdGZhbGxEaXJlY3RvcnlcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNGb290ZmFsbERpcmVjdG9yeVwiIChjaGFuZ2UpPVwiZGlyZWN0b3J5KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNGb290ZmFsbERpcmVjdG9yeVwiPiBFbmFibGUgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBWTVMgZW5hYmxlIHBhcnQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtdC00IHB4LTFcIiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyAmJiBmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZ2V0KCdpc0Zvb3RmYWxsRGlyZWN0b3J5Jyk/LnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc1ZNU1wiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNWTVNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzVk1TXCI+IEVuYWJsZSBUaWNrZXQgRmxvd1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBmb3JtLWNoZWNrIG10LTQgcHgtMVwiICpuZ0lmPVwiZGlzVmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImV4YW1wbGVSYWRpb3NcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNGb290ZmFsbERpcmVjdG9yeUxpbWl0XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImlzRm9vdGZhbGxEaXJlY3RvcnlMaW1pdFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRPcHRpb24gPT09ICdpc0Zvb3RmYWxsRGlyZWN0b3J5TGltaXQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJ2lzRm9vdGZhbGxEaXJlY3RvcnlMaW1pdCcpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5TGltaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNob3cgRmV3XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGZvcm0tY2hlY2sgbXQtNCBweC0xXCIgKm5nSWY9XCJkaXNWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZXhhbXBsZVJhZGlvc1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5QXVkaXRcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiaXNGb290ZmFsbERpcmVjdG9yeUF1ZGl0XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZE9wdGlvbiA9PT0gJ2lzRm9vdGZhbGxEaXJlY3RvcnlBdWRpdCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgnaXNGb290ZmFsbERpcmVjdG9yeUF1ZGl0JylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzRm9vdGZhbGxEaXJlY3RvcnlBdWRpdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25seSBBdWRpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LXdyYXAgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRW5hYmxlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNGb290ZmFsbERpcmVjdG9yeVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5XCIgKGNoYW5nZSk9XCJkaXJlY3RvcnkoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5hYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzRm9vdGZhbGxEaXJlY3Rvcnlvbmx5VGFuZ29cIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNGb290ZmFsbERpcmVjdG9yeW9ubHlUYW5nb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5b25seVRhbmdvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25seSBUYW5nb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEVuYWJsZSBUaWNrZXQgRmxvdyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtNFwiICpuZ0lmPVwiZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmdldCgnaXNGb290ZmFsbERpcmVjdG9yeScpPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzVk1TXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJpc1ZNU1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5kaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc1ZNU1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuYWJsZSBUaWNrZXQgRmxvd1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNob3cgRmV3IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS00XCIgKm5nSWY9XCJkaXNWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cImV4YW1wbGVSYWRpb3NcIiBpZD1cImlzRm9vdGZhbGxEaXJlY3RvcnlMaW1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImlzRm9vdGZhbGxEaXJlY3RvcnlMaW1pdFwiIFtjaGVja2VkXT1cInNlbGVjdGVkT3B0aW9uID09PSAnaXNGb290ZmFsbERpcmVjdG9yeUxpbWl0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCdpc0Zvb3RmYWxsRGlyZWN0b3J5TGltaXQnKVwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsIG1zLTFcIiBmb3I9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5TGltaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNob3cgRmV3XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIE9ubHkgQXVkaXQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTRcIiAqbmdJZj1cImRpc1ZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwiZXhhbXBsZVJhZGlvc1wiIGlkPVwiaXNGb290ZmFsbERpcmVjdG9yeUF1ZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiaXNGb290ZmFsbERpcmVjdG9yeUF1ZGl0XCIgW2NoZWNrZWRdPVwic2VsZWN0ZWRPcHRpb24gPT09ICdpc0Zvb3RmYWxsRGlyZWN0b3J5QXVkaXQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJ2lzRm9vdGZhbGxEaXJlY3RvcnlBdWRpdCcpXCIgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWwgbXMtMVwiIGZvcj1cImlzRm9vdGZhbGxEaXJlY3RvcnlBdWRpdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25seSBBdWRpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLXhsLTIgY29sLXh4bC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXQtMThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc0Zvb3RmYWxsQXVkaXRTdG9yZXNcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNBdWRpdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc0F1ZGl0XCI+IFNob3cgRmV3XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLXhsLTIgY29sLXh4bC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXQtMThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc0Zvb3RmYWxsQXVkaXRTdG9yZXNcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNBdWRpdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc0F1ZGl0XCI+IE9ubHkgQXVkaXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1oZWFkZXJcIj5BbmFseXplIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5UbyBlbmFibGUgbmV3IGRhc2hib2FyZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzTmV3RGFzaGJvYXJkXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzTmV3RGFzaGJvYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzTmV3RGFzaGJvYXJkXCI+IEVuYWJsZSBBbmFseXplXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicm93XCI+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXQtMThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNOZXdUcmFmZmljXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc05ld1RyYWZmaWNcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNOZXdUcmFmZmljXCI+VHJhZmZpY1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC0xOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc05ld1pvbmVcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzTmV3em9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNOZXd6b25lXCI+Wm9uZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC0xOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc05ld1pvbmVWMlwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNOZXdab25lVjJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzTmV3Wm9uZVYyXCI+Wm9uZSB2MlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc05ld1JlcG9ydHNcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzTmV3UmVwb3J0c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNOZXdSZXBvcnRzXCI+UmVwb3J0c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc1RyYXhcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzVHJheFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNUcmF4XCI+VHJheFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc1Jldm9wc1wiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNSZXZvcHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzUmV2b3BzXCI+UmV2b3BzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgY29sLXhsLTMgY29sLXh4bC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzQUlNYW5hZ2VyXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc0FJTWFuYWdlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNBSU1hbmFnZXJcIj5BSSBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgY29sLXhsLTMgY29sLXh4bC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzQUlNYW5hZ2VyQWNjZXNzQ29udHJvbFwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNBSU1hbmFnZXJBY2Nlc3NDb250cm9sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc0FJTWFuYWdlckFjY2Vzc0NvbnRyb2xcIj5BY2Nlc3MgQ29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgY29sLXhsLTMgY29sLXh4bC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzQ29udHJvbENlbnRlclwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNDb250cm9sQ2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc0NvbnRyb2xDZW50ZXJcIj5Db250cm9sIENlbnRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgY29sLXhsLTMgY29sLXh4bC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLWhlYWRlclwiPlN0cmVhbSBUeXBlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5DaG9vc2UgaWYgdGhlIEVkZ2UgQXBwIENvbmZpZ3VyYXRpb25zPC9kaXY+ICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBoLTM1cHggZm9ybS1zZWxlY3Qtc20gbXktMyBzZWxjdFwiIHBsYWNlaG9sZGVyPVwiU3RhdHVzXCIgZm9ybUNvbnRyb2xOYW1lPVwic3RyZWFtQnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIi5mb3JtLXNlbGVjdC1zbSBleGFtcGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiRWRnZVwiPkVkZ2UgQXBwPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiUnRzcFwiPlJUU1A8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cImZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5lbmFibGVkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTUgdy0xMDAgZm9vdGVyLXNlcGVyYXRvclwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICAgICAgICA8YSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgbXQtMSBtZS00XCIgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIj5DYW5jZWw8L2E+XHJcbiAgICAgICAgICAgIDxhIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC00IFwiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+PHNwYW4+U2F2ZSBDaGFuZ2VzPC9zcGFuPjwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuPC9mb3JtPiJdfQ==