@sumaris-net/ngx-components 2.12.11 → 2.12.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/doc/changelog.md CHANGED
@@ -858,3 +858,10 @@ enh: Environment: add useHash property to configure Angular router to use hash U
858
858
 
859
859
  # 2.12.10
860
860
  - fix(autocomplete): Compute the panel width if not set (in mobile) - workaround for an issue in mat-select panel
861
+
862
+ # 2.12.12
863
+ - fix(theme): add all dark colors from material theme
864
+ - fix(autocomplete): in mobile device, add a text-wrap and a max-height in mat-option
865
+
866
+ # 2.12.13
867
+ - fix(config): New option `sumaris.account.latLongFormat.enable` to replace the deprecated option `sumaris.defaultLatLongFormat.enabled` (key was not well named)
@@ -313,7 +313,10 @@ export class AccountPage extends AppForm {
313
313
  onConfigLoaded(config) {
314
314
  this.accountReadOnly = config.getPropertyAsBoolean(CORE_CONFIG_OPTIONS.ACCOUNT_READONLY);
315
315
  this.showApiTokens = config.getPropertyAsBoolean(CORE_CONFIG_OPTIONS.AUTH_API_TOKEN_ENABLED);
316
- this.showLatLonFormat = config.getPropertyAsBoolean(CORE_CONFIG_OPTIONS.DEFAULT_LAT_LONG_FORMAT_ENABLED);
316
+ this.showLatLonFormat =
317
+ config.getPropertyAsBoolean(CORE_CONFIG_OPTIONS.ACCOUNT_LAT_LONG_FORMAT_ENABLE) &&
318
+ // For compatibility with deprecated key
319
+ config.getPropertyAsBoolean(CORE_CONFIG_OPTIONS.DEFAULT_LAT_LONG_FORMAT_ENABLED);
317
320
  }
318
321
  markForCheck() {
319
322
  this.cd.markForCheck();
@@ -337,4 +340,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
337
340
  type: ViewChild,
338
341
  args: ['tokensTable', { static: true }]
339
342
  }] } });
340
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2FjY291bnQvYWNjb3VudC5wYWdlLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2FjY291bnQvYWNjb3VudC5wYWdlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsTUFBTSxFQUErQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEksT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFELE9BQU8sRUFBd0MsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSxvQkFBb0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBK0IsTUFBTSxrQ0FBa0MsQ0FBQztBQUU1RixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBc0IsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFekYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7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SSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxlQUFlO0lBQzlELENBQUM7SUFFUyxjQUFjLENBQUMsTUFBcUI7UUFDNUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRVMsWUFBWTtRQUNwQixJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pCLENBQUM7d0dBeFVVLFdBQVcsMFFBK0NaLFdBQVc7NEZBL0NWLFdBQVcsaWFDaEN4QiwyMVZBc1FBOzs0RkR0T2EsV0FBVztrQkFOdkIsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTs7MEJBaUQ1QyxNQUFNOzJCQUFDLFdBQVc7eUNBOUNvQixRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1MsZUFBZTtzQkFBOUQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0YsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hY2NvdW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWNjb3VudCB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL2FjY291bnQubW9kZWwnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWNjb3VudFZhbGlkYXRvclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy92YWxpZGF0b3IvYWNjb3VudC52YWxpZGF0b3InO1xuaW1wb3J0IHsgQXBwRm9ybSB9IGZyb20gJy4uL2Zvcm0vZm9ybS5jbGFzcyc7XG5pbXBvcnQgeyBBcHBGb3JtVXRpbHMsIENhbkxlYXZlIH0gZnJvbSAnLi4vZm9ybS9mb3JtLnV0aWxzJztcbmltcG9ydCB7IEZvcm1GaWVsZERlZmluaXRpb24gfSBmcm9tICcuLi8uLi9zaGFyZWQvZm9ybS9maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBMQVRfTE9OR19QQVRURVJOUyB9IGZyb20gJy4uLy4uL3NoYXJlZC9tYXRlcmlhbC9sYXRsb25nL2xhdGxvbmcudXRpbHMnO1xuaW1wb3J0IHsgU3RhdHVzSWRzIH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWwvbW9kZWwuZW51bSc7XG5pbXBvcnQgeyBBUFBfTE9DQUxFUywgTG9jYWxlQ29uZmlnLCBMb2NhbFNldHRpbmdzIH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWwvc2V0dGluZ3MubW9kZWwnO1xuaW1wb3J0IHsgTmV0d29ya1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9uZXR3b3JrLnNlcnZpY2UnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNYXRUYWJHcm91cCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IENPUkVfQ09ORklHX09QVElPTlMgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb25maWcvY29yZS5jb25maWcnO1xuaW1wb3J0IHsgQXBwUHJvcGVydGllc1RhYmxlLCBQcm9wZXJ0eUVudGl0eSB9IGZyb20gJy4uL2Zvcm0vcHJvcGVydGllcy9wcm9wZXJ0aWVzLnRhYmxlJztcbmltcG9ydCB7IFByb3BlcnRpZXNNYXAgfSBmcm9tICcuLi8uLi9zaGFyZWQvdHlwZXMnO1xuaW1wb3J0IHsgaXNOb3ROaWwgfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IFVzZXJUb2tlblRhYmxlIH0gZnJvbSAnLi90b2tlbi50YWJsZSc7XG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL2NvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBzZXRUaW1lb3V0IH0gZnJvbSAnQHJ4LWFuZ3VsYXIvY2RrL3pvbmUtbGVzcy9icm93c2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWFjY291bnQtcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnYWNjb3VudC5wYWdlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY2NvdW50LnBhZ2Uuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3VudFBhZ2UgZXh0ZW5kcyBBcHBGb3JtPEFjY291bnQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENhbkxlYXZlIHtcbiAgQFZpZXdDaGlsZCgndGFiR3JvdXAnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0YWJHcm91cDogTWF0VGFiR3JvdXA7XG4gIEBWaWV3Q2hpbGQoJ3Byb3BlcnRpZXNUYWJsZScsIHsgc3RhdGljOiB0cnVlIH0pIHByb3BlcnRpZXNUYWJsZTogQXBwUHJvcGVydGllc1RhYmxlO1xuICBAVmlld0NoaWxkKCd0b2tlbnNUYWJsZScsIHsgc3RhdGljOiB0cnVlIH0pIHRva2Vuc1RhYmxlOiBVc2VyVG9rZW5UYWJsZTtcblxuICBzZWxlY3RlZFRhYkluZGV4ID0gMDtcbiAgaXNMb2dpbjogYm9vbGVhbjtcbiAgY2hhbmdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBuZXR3b3JrU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIGVtYWlsOiBhbnkgPSB7XG4gICAgY29uZmlybWVkOiBmYWxzZSxcbiAgICBub3RDb25maXJtZWQ6IGZhbHNlLFxuICAgIHNlbmRpbmc6IGZhbHNlLFxuICAgIGVycm9yOiB1bmRlZmluZWQsXG4gIH07XG4gIGFkZGl0aW9uYWxGaWVsZHM6IEZvcm1GaWVsZERlZmluaXRpb25bXTtcbiAgb3B0aW9uRGVmaW5pdGlvbnM6IEZvcm1GaWVsZERlZmluaXRpb25bXTtcblxuICBnZXQgc2V0dGluZ3NGb3JtKCk6IFVudHlwZWRGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdzZXR0aW5ncycpIGFzIFVudHlwZWRGb3JtR3JvdXA7XG4gIH1cblxuICAvLyBzZXR0aW5nc0NvbnRlbnRGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBsb2NhbGVzOiBMb2NhbGVDb25maWdbXTtcbiAgbGF0TG9uZ0Zvcm1hdHMgPSBMQVRfTE9OR19QQVRURVJOUztcbiAgc2F2aW5nID0gZmFsc2U7XG4gIHN1Ym1pdHRlZCA9IGZhbHNlO1xuICBhY2NvdW50UmVhZE9ubHkgPSBmYWxzZTtcbiAgcmVhZG9ubHkgbW9iaWxlOiBib29sZWFuO1xuXG4gIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3VwZXIudmFsaWQgJiYgKHRoaXMucHJvcGVydGllc1RhYmxlPy52YWxpZCB8fCB0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzaG93QXBpVG9rZW5zID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzaG93TGF0TG9uRm9ybWF0ID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHVibGljIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHVibGljIGFjY291bnRTZXJ2aWNlOiBBY2NvdW50U2VydmljZSxcbiAgICBwdWJsaWMgbmV0d29yazogTmV0d29ya1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG5hdkNvbnRyb2xsZXI6IE5hdkNvbnRyb2xsZXIsXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRvclNlcnZpY2U6IEFjY291bnRWYWxpZGF0b3JTZXJ2aWNlLFxuICAgIC8vIHByb3RlY3RlZCBzZXR0aW5nc1ZhbGlkYXRvclNlcnZpY2U6IFVzZXJTZXR0aW5nc1ZhbGlkYXRvclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KEFQUF9MT0NBTEVTKSBsb2NhbGVzOiBMb2NhbGVDb25maWdbXVxuICApIHtcbiAgICBzdXBlcihpbmplY3RvciwgdmFsaWRhdG9yU2VydmljZS5nZXRGb3JtR3JvdXAoYWNjb3VudFNlcnZpY2UuYWNjb3VudCkpO1xuXG4gICAgdGhpcy5sb2NhbGVzID0gbG9jYWxlcztcblxuICAgIC8vIEFkZCBzZXR0aW5ncyBmbyBmb3JtXG4gICAgLy8gdGhpcy5zZXR0aW5nc0Zvcm0gPSBzZXR0aW5nc1ZhbGlkYXRvclNlcnZpY2UuZ2V0Rm9ybUdyb3VwKGFjY291bnRTZXJ2aWNlLmFjY291bnQgJiYgYWNjb3VudFNlcnZpY2UuYWNjb3VudC5zZXR0aW5ncyk7XG4gICAgLy8gdGhpcy5zZXR0aW5nc0NvbnRlbnRGb3JtID0gKHRoaXMuc2V0dGluZ3NGb3JtLmNvbnRyb2xzWydjb250ZW50J10gYXMgVW50eXBlZEZvcm1Hcm91cCk7XG4gICAgLy8gdGhpcy5mb3JtLmFkZENvbnRyb2woJ3NldHRpbmdzJywgdGhpcy5zZXR0aW5nc0Zvcm0pO1xuXG4gICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNldHRpbmdzLm1vYmlsZTtcbiAgICB0aGlzLmRlYnVnID0gIWVudmlyb25tZW50LnByb2R1Y3Rpb247XG5cbiAgICAvLyBCeSBkZWZhdWx0LCBkaXNhYmxlIHRoZSBmb3JtXG4gICAgdGhpcy5kaXNhYmxlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgLy8gR2V0IHVzZXIgb3B0aW9uc1xuICAgIHRoaXMub3B0aW9uRGVmaW5pdGlvbnMgPSB0aGlzLmFjY291bnRTZXJ2aWNlLm9wdGlvbkRlZnNcbiAgICAgIC5zbGljZSgpXG4gICAgICAuZmlsdGVyKChkZWZpbml0aW9uKSA9PiAhZGVmaW5pdGlvbi5kaXNhYmxlZCAmJiAoIWRlZmluaXRpb24ubWluUHJvZmlsZSB8fCB0aGlzLmFjY291bnRTZXJ2aWNlLmhhc01pblByb2ZpbGUoZGVmaW5pdGlvbi5taW5Qcm9maWxlKSkpO1xuXG4gICAgLy8gT2JzZXJ2ZWQgc29tZSBldmVudHNcbiAgICB0aGlzLnJlZ2lzdGVyU3Vic2NyaXB0aW9uKHRoaXMuYWNjb3VudFNlcnZpY2Uub25Mb2dpbi5waXBlKGZpbHRlcigoKSA9PiAhdGhpcy5zYXZpbmcpKS5zdWJzY3JpYmUoKGFjY291bnQpID0+IHRoaXMub25Mb2dpbihhY2NvdW50KSkpO1xuICAgIHRoaXMucmVnaXN0ZXJTdWJzY3JpcHRpb24odGhpcy5hY2NvdW50U2VydmljZS5vbkxvZ291dC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkxvZ291dCgpKSk7XG4gICAgdGhpcy5yZWdpc3RlclN1YnNjcmlwdGlvbihcbiAgICAgIHRoaXMub25DYW5jZWwuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLmFjY291bnRTZXJ2aWNlLmFjY291bnQpO1xuICAgICAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyU3Vic2NyaXB0aW9uKFxuICAgICAgdGhpcy5hY2NvdW50U2VydmljZS4kYWRkaXRpb25hbEZpZWxkcy5zdWJzY3JpYmUoKGFkZGl0aW9uYWxGaWVsZHMpID0+IHtcbiAgICAgICAgdGhpcy5hZGRpdGlvbmFsRmllbGRzID0gYWRkaXRpb25hbEZpZWxkcy5zbGljZSgpOyAvLyBDb3B5XG4gICAgICAgIGlmICh0aGlzLmFjY291bnRTZXJ2aWNlLmlzTG9naW4oKSkge1xuICAgICAgICAgIHRoaXMub25Mb2dpbih0aGlzLmFjY291bnRTZXJ2aWNlLmFjY291bnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubWFya0FzTG9hZGVkKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMucmVnaXN0ZXJTdWJzY3JpcHRpb24odGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZy5zdWJzY3JpYmUoKGNvbmZpZykgPT4gdGhpcy5vbkNvbmZpZ0xvYWRlZChjb25maWcpKSk7XG5cbiAgICAvLyBSZWFsaWduIHRhYiwgYWZ0ZXIgYSBkZWxheSBiZWNhdXNlIHRoZSB0YWIgY2FuIGJlIGRpc2FibGVkIHdoZW4gY29tcG9uZW50IGlzIGNyZWF0ZWRcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudGFiR3JvdXAucmVhbGlnbklua0JhcigpLCA1MDApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLnN0b3BMaXN0ZW5DaGFuZ2VzKCk7XG4gICAgdGhpcy5uZXR3b3JrU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb25Mb2dpbihhY2NvdW50OiBBY2NvdW50KSB7XG4gICAgY29uc29sZS5kZWJ1ZygnW2FjY291bnRdIExvZ2dlZCBhY2NvdW50OiAnLCBhY2NvdW50KTtcbiAgICB0aGlzLmlzTG9naW4gPSB0cnVlO1xuXG4gICAgdGhpcy5zZXRWYWx1ZShhY2NvdW50KTtcblxuICAgIHRoaXMuZW1haWwuY29uZmlybWVkID0gYWNjb3VudCAmJiBhY2NvdW50LmVtYWlsICYmIGFjY291bnQuc3RhdHVzSWQgIT09IFN0YXR1c0lkcy5URU1QT1JBUlk7XG4gICAgdGhpcy5lbWFpbC5ub3RDb25maXJtZWQgPSBhY2NvdW50ICYmIGFjY291bnQuZW1haWwgJiYgKCFhY2NvdW50LnN0YXR1c0lkIHx8IGFjY291bnQuc3RhdHVzSWQgPT09IFN0YXR1c0lkcy5URU1QT1JBUlkpO1xuXG4gICAgdGhpcy5uZXR3b3JrU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubmV0d29ya1N1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZyxcbiAgICAgIHRoaXMubmV0d29yay5vbk5ldHdvcmtTdGF0dXNDaGFuZ2VzLnBpcGUobWFwKChjb25uZWN0aW9uVHlwZSkgPT4gY29ubmVjdGlvblR5cGUgIT09ICdub25lJykpLFxuICAgIF0pLnN1YnNjcmliZSgoW2NvbmZpZywgb25saW5lXSkgPT4ge1xuICAgICAgdGhpcy5vbkNvbmZpZ0xvYWRlZChjb25maWcpO1xuXG4gICAgICBpZiAob25saW5lKSB7XG4gICAgICAgIHRoaXMuZW5hYmxlKCk7XG4gICAgICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgdGhpcy5zdGFydExpc3RlbkNoYW5nZXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZSgpO1xuICAgICAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgIHRoaXMuc3RvcExpc3RlbkNoYW5nZXMoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubWFya0FzTG9hZGVkKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25Mb2dvdXQoKSB7XG4gICAgdGhpcy5pc0xvZ2luID0gZmFsc2U7XG4gICAgdGhpcy5lbWFpbC5jb25maXJtZWQgPSBmYWxzZTtcbiAgICB0aGlzLmVtYWlsLm5vdENvbmZpcm1lZCA9IGZhbHNlO1xuICAgIHRoaXMuZW1haWwuc2VuZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuZW1haWwuZXJyb3IgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgdGhpcy5kaXNhYmxlKCk7XG5cbiAgICB0aGlzLm5ldHdvcmtTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnN0b3BMaXN0ZW5DaGFuZ2VzKCk7XG5cbiAgICAvLyBCYWNrIHRvIGhvbWVcbiAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KCcvJyk7XG4gIH1cblxuICBhc3luYyBzZXRWYWx1ZShkYXRhOiBBY2NvdW50LCBvcHRzPzogeyBlbWl0RXZlbnQ/OiBib29sZWFuOyBvbmx5U2VsZj86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHN1cGVyLnNldFZhbHVlKGRhdGEsIG9wdHMpO1xuXG4gICAgLy8gU2V0IG9wdGlvbnNcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gZGF0YT8uc2V0dGluZ3M/LmFzTG9jYWxTZXR0aW5ncygpPy5wcm9wZXJ0aWVzIHx8IHt9O1xuICAgIGNvbnN0IHByb3BlcnRpZXNFbnRpdGllczogUHJvcGVydHlFbnRpdHlbXSA9IFtdO1xuICAgIHRoaXMub3B0aW9uRGVmaW5pdGlvbnNcbiAgICAgIC5tYXAoKGRlZmluaXRpb24pID0+IGRlZmluaXRpb24ua2V5KVxuICAgICAgLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBpZiAoaXNOb3ROaWwocHJvcGVydGllc1trZXldKSkge1xuICAgICAgICAgIHByb3BlcnRpZXNFbnRpdGllcy5wdXNoKFByb3BlcnR5RW50aXR5LmZyb21PYmplY3QoeyBpZDoga2V5LCB2YWx1ZTogcHJvcGVydGllc1trZXldIH0pKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5wcm9wZXJ0aWVzVGFibGUpIHtcbiAgICAgIGF3YWl0IHRoaXMucHJvcGVydGllc1RhYmxlLnJlYWR5KCk7XG4gICAgICB0aGlzLnByb3BlcnRpZXNUYWJsZS52YWx1ZSA9IHByb3BlcnRpZXNFbnRpdGllcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy50b2tlbnNUYWJsZSkge1xuICAgICAgYXdhaXQgdGhpcy50b2tlbnNUYWJsZS5yZWFkeSgpO1xuICAgICAgdGhpcy50b2tlbnNUYWJsZS52YWx1ZSA9IGRhdGEudG9rZW5zO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2goXz86IEV2ZW50KSB7XG4gICAgdGhpcy5kaXNhYmxlKCk7XG4gICAgdGhpcy5tYXJrQXNMb2FkaW5nKCk7XG5cbiAgICByZXR1cm4gdGhpcy5hY2NvdW50U2VydmljZS5yZWxvYWQoKTtcbiAgfVxuXG4gIHN0YXJ0TGlzdGVuQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5jaGFuZ2VzU3Vic2NyaXB0aW9uKSByZXR1cm47IC8vIGFscmVhZHkgc3RhcnRlZFxuICAgIHRoaXMuY2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMuYWNjb3VudFNlcnZpY2UubGlzdGVuQ2hhbmdlcygpO1xuICB9XG5cbiAgc3RvcExpc3RlbkNoYW5nZXMoKSB7XG4gICAgaWYgKCF0aGlzLmNoYW5nZXNTdWJzY3JpcHRpb24pIHJldHVybjtcbiAgICB0aGlzLmNoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNoYW5nZXNTdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gIH1cblxuICBhc3luYyBzZW5kQ29uZmlybWF0aW9uRW1haWwoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBjb25zdCBqc29uID0gdGhpcy5mb3JtLnZhbHVlO1xuICAgIGpzb24uZW1haWwgPSB0aGlzLmZvcm0uY29udHJvbHNbJ2VtYWlsJ10udmFsdWU7XG4gICAgaWYgKCFqc29uLmVtYWlsIHx8ICF0aGlzLmVtYWlsLm5vdENvbmZpcm1lZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLmVtYWlsLnNlbmRpbmcgPSB0cnVlO1xuICAgIGNvbnNvbGUuZGVidWcoJ1thY2NvdW50XSBTZW5kaW5nIGNvbmZpcm1hdGlvbiBlbWFpbC4uLicpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmFjY291bnRTZXJ2aWNlLnNlbmRDb25maXJtYXRpb25FbWFpbChqc29uLmVtYWlsLCAoanNvbi5zZXR0aW5ncyAmJiBqc29uLnNldHRpbmdzLmxvY2FsZSkgfHwgdGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpO1xuICAgICAgY29uc29sZS5kZWJ1ZygnW2FjY291bnRdIENvbmZpcm1hdGlvbiBlbWFpbCBzZW50LicpO1xuICAgICAgdGhpcy5lbWFpbC5zZW5kaW5nID0gZmFsc2U7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVtYWlsLnNlbmRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuZW1haWwuZXJyb3IgPSAoZXJyICYmIGVyci5tZXNzYWdlKSB8fCBlcnI7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2F2ZShldmVudD86IEV2ZW50KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuc2F2aW5nKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgYXdhaXQgQXBwRm9ybVV0aWxzLndhaXRXaGlsZVBlbmRpbmcodGhpcy5mb3JtKTtcblxuICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XG4gICAgICAgIEFwcEZvcm1VdGlscy5sb2dGb3JtRXJyb3JzKHRoaXMuZm9ybSk7XG4gICAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xuICAgIHRoaXMuZXJyb3IgPSB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBuZXdBY2NvdW50ID0gQWNjb3VudC5mcm9tT2JqZWN0KHtcbiAgICAgIC4uLnRoaXMuYWNjb3VudFNlcnZpY2UuYWNjb3VudC5hc09iamVjdCgpLFxuICAgICAgLi4udGhpcy5mb3JtLnZhbHVlLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMucHJvcGVydGllc1RhYmxlKSB7XG4gICAgICAvLyBtZXJnZSBwcm9wZXJ0aWVzXG4gICAgICBhd2FpdCB0aGlzLnByb3BlcnRpZXNUYWJsZS5zYXZlKCk7XG4gICAgICBjb25zdCBwcm9wZXJ0eUVudGl0aWVzID0gdGhpcy5wcm9wZXJ0aWVzVGFibGUudmFsdWUgfHwgW107XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzOiBQcm9wZXJ0aWVzTWFwID0gcHJvcGVydHlFbnRpdGllcy5yZWR1Y2UoKHJlcywgaXRlbSkgPT4ge1xuICAgICAgICByZXNbaXRlbS5pZF0gPSBpdGVtLnZhbHVlO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfSwge30pO1xuICAgICAgY29uc3QgbmV3UHJvcGVydGllcyA9IHsgLi4ubmV3QWNjb3VudC5zZXR0aW5ncy5jb250ZW50Wydwcm9wZXJ0aWVzJ10sIC4uLnByb3BlcnRpZXMgfTtcbiAgICAgIG5ld0FjY291bnQuc2V0dGluZ3MubWVyZ2UoPExvY2FsU2V0dGluZ3M+eyBwcm9wZXJ0aWVzOiBuZXdQcm9wZXJ0aWVzIH0sIFsncHJvcGVydGllcyddKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50b2tlbnNUYWJsZSkge1xuICAgICAgYXdhaXQgdGhpcy50b2tlbnNUYWJsZS5zYXZlKCk7XG4gICAgICBuZXdBY2NvdW50LnRva2VucyA9IHRoaXMudG9rZW5zVGFibGUudmFsdWU7XG4gICAgfVxuXG4gICAgY29uc29sZS5kZWJ1ZygnW2FjY291bnRdIFNhdmluZyBhY2NvdW50Li4uJywgbmV3QWNjb3VudCk7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuZGlzYWJsZSgpO1xuXG4gICAgICBhd2FpdCB0aGlzLmFjY291bnRTZXJ2aWNlLnNhdmUobmV3QWNjb3VudCk7XG5cbiAgICAgIC8vIFJlbG9hZFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9uTG9naW4odGhpcy5hY2NvdW50U2VydmljZS5hY2NvdW50KSwgMTAwKTtcblxuICAgICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICB0aGlzLmVycm9yID0gKGVyciAmJiBlcnIubWVzc2FnZSkgfHwgZXJyO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICBlbmFibGUob3B0cz86IHsgb25seVNlbGY/OiBib29sZWFuOyBlbWl0RXZlbnQ/OiBib29sZWFuIH0pIHtcbiAgICBzdXBlci5lbmFibGUob3B0cyk7XG5cbiAgICAvLyBTb21lIGZpZWxkcyBhcmUgYWx3YXlzIGRpc2FibGVcbiAgICB0aGlzLmZvcm0uY29udHJvbHMuZW1haWwuZGlzYWJsZSgpO1xuICAgIHRoaXMuZm9ybS5jb250cm9scy5tYWluUHJvZmlsZS5kaXNhYmxlKCk7XG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLnB1YmtleS5kaXNhYmxlKCk7XG5cbiAgICAvLyBEaXNhYmxlIGFjY291bnQgZmllbGRzIGlmIHJlYWRvbmx5IGJ5IGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCBkaXNhYmxlZCA9IHRoaXMuYWNjb3VudFJlYWRPbmx5O1xuICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmxhc3ROYW1lLmRpc2FibGUoKTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5maXJzdE5hbWUuZGlzYWJsZSgpO1xuICAgIH1cblxuICAgIC8vIEFsd2F5cyBkaXNhYmxlIHNvbWUgYWRkaXRpb25hbCBmaWVsZHNcbiAgICB0aGlzLmFkZGl0aW9uYWxGaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0uY29udHJvbHNbZmllbGQua2V5XTtcbiAgICAgIGlmICghY29udHJvbCkgcmV0dXJuOyAvLyBTa2lwXG5cbiAgICAgIGNvbnN0IGZpZWxkRGlzYWJsZWQgPSBkaXNhYmxlZCB8fCAoZmllbGQuZXh0cmE/LmFjY291bnQgJiYgZmllbGQuZXh0cmEuYWNjb3VudC5kaXNhYmxlZCkgfHwgZmFsc2U7XG4gICAgICBpZiAoZmllbGREaXNhYmxlZCAmJiBjb250cm9sLmVuYWJsZWQpIHtcbiAgICAgICAgY29udHJvbC5kaXNhYmxlKCk7XG4gICAgICB9XG4gICAgICBjb25zdCByZXF1aXJlZCA9IChmaWVsZC5leHRyYT8uYWNjb3VudCAmJiBmaWVsZC5leHRyYS5hY2NvdW50LnJlcXVpcmVkKSB8fCBmYWxzZTtcbiAgICAgIGlmICghZmllbGQucmVxdWlyZWQgJiYgcmVxdWlyZWQpIHtcbiAgICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKGNvbnRyb2wudmFsaWRhdG9yID8gVmFsaWRhdG9ycy5jb21wb3NlKFtjb250cm9sLnZhbGlkYXRvciwgVmFsaWRhdG9ycy5yZXF1aXJlZF0pIDogVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGFzeW5jIGNhbmNlbCgpIHtcbiAgICBhd2FpdCBzdXBlci5jYW5jZWwoKTtcbiAgfVxuXG4gIGFzeW5jIGNsb3NlKF8/OiBFdmVudCkge1xuICAgIGlmICh0aGlzLnNhdmluZykgcmV0dXJuO1xuXG4gICAgLy8gQmFjayB0byBob21lXG4gICAgcmV0dXJuIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QoJy8nKTsgLy8gYmFjayB0byBob21lXG4gIH1cblxuICBwcm90ZWN0ZWQgb25Db25maWdMb2FkZWQoY29uZmlnOiBDb25maWd1cmF0aW9uKSB7XG4gICAgdGhpcy5hY2NvdW50UmVhZE9ubHkgPSBjb25maWcuZ2V0UHJvcGVydHlBc0Jvb2xlYW4oQ09SRV9DT05GSUdfT1BUSU9OUy5BQ0NPVU5UX1JFQURPTkxZKTtcbiAgICB0aGlzLnNob3dBcGlUb2tlbnMgPSBjb25maWcuZ2V0UHJvcGVydHlBc0Jvb2xlYW4oQ09SRV9DT05GSUdfT1BUSU9OUy5BVVRIX0FQSV9UT0tFTl9FTkFCTEVEKTtcbiAgICB0aGlzLnNob3dMYXRMb25Gb3JtYXQgPSBjb25maWcuZ2V0UHJvcGVydHlBc0Jvb2xlYW4oQ09SRV9DT05GSUdfT1BUSU9OUy5ERUZBVUxUX0xBVF9MT05HX0ZPUk1BVF9FTkFCTEVEKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPGFwcC10b29sYmFyXG4gIFt0aXRsZV09XCInQUNDT1VOVC5USVRMRScgfCB0cmFuc2xhdGVcIlxuICBjb2xvcj1cInByaW1hcnlcIlxuICBbaGFzVmFsaWRhdGVdPVwiZGlydHkgJiYgIXNhdmluZ1wiXG4gIFtoYXNDbG9zZV09XCIhZGlydHkgJiYgIXNhdmluZ1wiXG4gIChvblZhbGlkYXRlKT1cInNhdmUoKVwiXG4gIFtjYW5Hb0JhY2tdPVwiZmFsc2VcIlxuICAob25DbG9zZSk9XCJjbG9zZSgkZXZlbnQpXCJcbj5cbiAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICA8IS0tIGxvYWRlciAtLT5cbiAgICA8aW9uLXNwaW5uZXIgKm5nSWY9XCJsb2FkaW5nIHx8IHNhdmluZzsgZWxzZSBlbmRCdXR0b25zXCI+PC9pb24tc3Bpbm5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZW5kQnV0dG9ucz5cbiAgICAgIDwhLS0gcmVmcmVzaCBidXR0b24gKGlmIG9ubGluZSkgLS0+XG4gICAgICA8aW9uLWJ1dHRvbiBbbWF0VG9vbHRpcF09XCInQ09NTU9OLkJUTl9SRUZSRVNIJyB8IHRyYW5zbGF0ZVwiICpuZ0lmPVwibmV0d29yay5vbmxpbmVcIiAoY2xpY2spPVwicmVmcmVzaCgkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtaWNvbiBzbG90PVwiaWNvbi1vbmx5XCI+cmVmcmVzaDwvbWF0LWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9pb24tYnV0dG9ucz5cbjwvYXBwLXRvb2xiYXI+XG5cbjxpb24tY29udGVudD5cbiAgPCEtLSBlcnJvciAtLT5cbiAgPGlvbi1pdGVtICpuZ0lmPVwiZXJyb3IgJiYgbW9iaWxlXCIgbGluZXM9XCJub25lXCI+XG4gICAgPGlvbi1pY29uIGNvbG9yPVwiZGFuZ2VyXCIgc2xvdD1cInN0YXJ0XCIgbmFtZT1cImFsZXJ0LWNpcmNsZVwiPjwvaW9uLWljb24+XG4gICAgPGlvbi1sYWJlbCBjb2xvcj1cImRhbmdlclwiIGNsYXNzPVwiZXJyb3JcIiBbaW5uZXJIVE1MXT1cImVycm9yIHwgdHJhbnNsYXRlXCI+PC9pb24tbGFiZWw+XG4gIDwvaW9uLWl0ZW0+XG5cbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgbm92YWxpZGF0ZSBjbGFzcz1cImZvcm0tY29udGFpbmVyXCI+XG4gICAgPG1hdC10YWItZ3JvdXAgI3RhYkdyb3VwIFsoc2VsZWN0ZWRJbmRleCldPVwic2VsZWN0ZWRUYWJJbmRleFwiIGR5bmFtaWNIZWlnaHQ+XG4gICAgICA8IS0tIFRBQjogdXNlciBkZXRhaWxzIC0tPlxuICAgICAgPG1hdC10YWIgbGFiZWw9XCJ7eyAnQUNDT1VOVC5VU0VSX0RFVEFJTFMuVElUTEUnIHwgdHJhbnNsYXRlIH19XCIgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgICA8aW9uLWljb24gbWF0UHJlZml4IHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJwZXJzb24tY2lyY2xlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIDxpb24tbGFiZWw+e3sgJ0FDQ09VTlQuVVNFUl9ERVRBSUxTLlRJVExFJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLWxhYmVsPlxuICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiZW5kXCIgbmFtZT1cImFsZXJ0LWNpcmNsZVwiIGNvbG9yPVwiZGFuZ2VyXCIgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZm9ybS5pbnZhbGlkXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgICAgICA8cCBbaW5uZXJIVE1MXT1cIidBQ0NPVU5ULlVTRVJfREVUQUlMUy5ERVNDUklQVElPTicgfCB0cmFuc2xhdGVcIj48L3A+XG5cbiAgICAgICAgICA8IS0taDE+SWRlbnRpdMOpPC9oMS0tPlxuXG4gICAgICAgICAgPCEtLSBFbWFpbCAtLT5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdVU0VSLkVNQUlMJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgYXV0b2NvbXBsZXRlPVwic2VjdGlvbi1yZWQgZW1haWxcIiAvPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuZW1haWwuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgZm9ybS5jb250cm9scy5lbWFpbC5kaXJ0eVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICAgICAgRVJST1IuRklFTERfUkVRVUlSRURcbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuZW1haWwuaGFzRXJyb3IoJ2VtYWlsJykgJiYgZm9ybS5jb250cm9scy5lbWFpbC5kaXJ0eVwiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyAnRVJST1IuRklFTERfTk9UX1ZBTElEX0VNQUlMJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICA8aW9uLWdyaWQgKm5nSWY9XCJlbWFpbC5ub3RDb25maXJtZWRcIiBjbGFzcz1cImlvbi1uby1wYWRkaW5nIGlvbi1wYWRkaW5nLWJvdHRvbVwiPlxuICAgICAgICAgICAgPGlvbi1yb3c+XG4gICAgICAgICAgICAgIDxpb24tY29sIGNvbG9yPVwiZGFuZ2VyXCI+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIGNvbG9yPVwiZGFuZ2VyXCIgbmFtZT1cImFsZXJ0LWNpcmNsZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgICAgPGlvbi10ZXh0IFtpbm5lckhUTUxdPVwiJ0FDQ09VTlQuRU1BSUxfTk9UX0NPTkZJUk1FRF9MQUJFTCcgfCB0cmFuc2xhdGVcIj48L2lvbi10ZXh0PlxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgICA8L2lvbi1yb3c+XG5cbiAgICAgICAgICAgIDxpb24tcm93IHN0eWxlPVwiaGVpZ2h0OiA1MXB4XCI+XG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwidGV4dC1hbGlnbjogcmlnaHRcIj5cbiAgICAgICAgICAgICAgICA8aW9uLXRleHQ+XG4gICAgICAgICAgICAgICAgICA8c21hbGwgW2lubmVySFRNTF09XCInQUNDT1VOVC5FTUFJTF9OT1RfUkVDRUlWRURfUVVFU1RJT04nIHwgdHJhbnNsYXRlXCI+PC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8L2lvbi10ZXh0PlxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG4gICAgICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgIGZpbGw9XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgICBjb2xvcj1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIiFlbWFpbC5zZW5kaW5nXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZW5kQ29uZmlybWF0aW9uRW1haWwoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgJ0FDQ09VTlQuQlROX1JFU0VORCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgPGlvbi1zcGlubmVyIGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIiAqbmdJZj1cImVtYWlsLnNlbmRpbmdcIj48L2lvbi1zcGlubmVyPlxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgICA8L2lvbi1yb3c+XG5cbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1haWwuZXJyb3IgJiYgIWVtYWlsLnNlbmRpbmdcIj5cbiAgICAgICAgICAgICAgPGlvbi1jb2w+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJlbWFpbC5lcnJvciAmJiAhZW1haWwuc2VuZGluZ1wiIFtpbm5lckhUTUxdPVwiZW1haWwuZXJyb3IgfCB0cmFuc2xhdGVcIj48L3NwYW4+XG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICAgIDwvaW9uLXJvdz5cbiAgICAgICAgICA8L2lvbi1ncmlkPlxuXG4gICAgICAgICAgPCEtLSBMYXN0IG5hbWUgLS0+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD57eyAnVVNFUi5MQVNUX05BTUUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgW2FwcEF1dG9mb2N1c109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2F1dG9mb2N1c0RlbGF5XT1cIjUwMFwiXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxhc3ROYW1lXCJcbiAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwic2VjdGlvbi1ibHVlIGZhbWlseS1uYW1lXCJcbiAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9scy5sYXN0TmFtZS5oYXNFcnJvcigncmVxdWlyZWQnKSAmJiBmb3JtLmNvbnRyb2xzLmxhc3ROYW1lLmRpcnR5XCIgdHJhbnNsYXRlPlxuICAgICAgICAgICAgICBFUlJPUi5GSUVMRF9SRVFVSVJFRFxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9scy5sYXN0TmFtZS5oYXNFcnJvcignbWlubGVuZ3RoJykgJiYgZm9ybS5jb250cm9scy5sYXN0TmFtZS5kaXJ0eVwiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyAnRVJST1IuRklFTERfTUlOX0xFTkdUSCcgfCB0cmFuc2xhdGU6IHsgbWluTGVuZ3RoOiAyIH0gfX08L3NwYW4+XG4gICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgPCEtLSBGaXJzdCBuYW1lIC0tPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgJ1VTRVIuRklSU1RfTkFNRScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJmaXJzdE5hbWVcIiBhdXRvY29tcGxldGU9XCJzZWN0aW9uLWJsdWUgZ2l2ZW4tbmFtZVwiIHJlcXVpcmVkIC8+XG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9scy5maXJzdE5hbWUuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgZm9ybS5jb250cm9scy5maXJzdE5hbWUuZGlydHlcIiB0cmFuc2xhdGU+XG4gICAgICAgICAgICAgIEVSUk9SLkZJRUxEX1JFUVVJUkVEXG4gICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzLmZpcnN0TmFtZS5oYXNFcnJvcignbWlubGVuZ3RoJykgJiYgZm9ybS5jb250cm9scy5maXJzdE5hbWUuZGlydHlcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgJ0VSUk9SLkZJRUxEX01JTl9MRU5HVEgnIHwgdHJhbnNsYXRlOiB7IG1pbkxlbmd0aDogMiB9IH19PC9zcGFuPlxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgIDwhLS0gQWRkaXRpb25hbCBmaWVsZHMgLS0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZGVmaW5pdGlvbiBvZiBhZGRpdGlvbmFsRmllbGRzXCI+XG4gICAgICAgICAgICA8YXBwLWZvcm0tZmllbGRcbiAgICAgICAgICAgICAgW2RlZmluaXRpb25dPVwiZGVmaW5pdGlvblwiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZGVmaW5pdGlvbi5rZXlcIlxuICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiKGRlZmluaXRpb24uZXh0cmEgJiYgZGVmaW5pdGlvbi5leHRyYS5hY2NvdW50ICYmIGRlZmluaXRpb24uZXh0cmEuYWNjb3VudC5yZXF1aXJlZCkgfHwgZmFsc2VcIlxuICAgICAgICAgICAgPjwvYXBwLWZvcm0tZmllbGQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8aDMgdHJhbnNsYXRlPkFDQ09VTlQuVVNFUl9ERVRBSUxTLlRFQ0hOSUNBTF9ESVZJREVSPC9oMz5cblxuICAgICAgICAgIDwhLS0gcHJvZmlsZSAtLT5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdBQ0NPVU5ULlVTRVJfREVUQUlMUy5QUk9GSUxFJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGhpZGRlbiByZWFkb25seT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJtYWluUHJvZmlsZVwiIHJlcXVpcmVkIC8+XG4gICAgICAgICAgICA8c3Bhbj57eyAnVVNFUi5QUk9GSUxFX0VOVU0uJyArIGZvcm0uY29udHJvbHMubWFpblByb2ZpbGUudmFsdWUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8bWF0LWVycm9yXG4gICAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5jb250cm9scy5maXJzdE5hbWUuaGFzRXJyb3IoJ21haW5Qcm9maWxlJykgJiYgZm9ybS5jb250cm9scy5tYWluUHJvZmlsZS5kaXJ0eVwiXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBFUlJPUi5GSUVMRF9SRVFVSVJFRFxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgIDwhLS0gcHVia2V5IC0tPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgJ0FDQ09VTlQuVVNFUl9ERVRBSUxTLlBVQktFWScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCByZWFkb25seT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJwdWJrZXlcIiByZXF1aXJlZCAvPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuZmlyc3ROYW1lLmhhc0Vycm9yKCdwdWJrZXknKSAmJiBmb3JtLmNvbnRyb2xzLmZpcnN0TmFtZS5kaXJ0eVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICAgICAgRVJST1IuRklFTERfUkVRVUlSRURcbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuZmlyc3ROYW1lLmhhc0Vycm9yKCdwdWJrZXknKSAmJiBmb3JtLmNvbnRyb2xzLmZpcnN0TmFtZS5kaXJ0eVwiPlxuICAgICAgICAgICAgICA8c3BhbiB0cmFuc2xhdGU+RVJST1IuRklFTERfTk9UX1ZBTElEX1BVQktFWTwvc3Bhbj5cbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdGFiPlxuXG4gICAgICA8IS0tIFRBQjogc2V0dGluZ3MgLS0+XG4gICAgICA8bWF0LXRhYiBsYWJlbD1cInt7ICdBQ0NPVU5ULlNFVFRJTkdTLlRJVExFJyB8IHRyYW5zbGF0ZSB9fVwiIGZvcm1Hcm91cE5hbWU9XCJzZXR0aW5nc1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgICA8aW9uLWljb24gbWF0UHJlZml4IHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJzZXR0aW5nc1wiPjwvaW9uLWljb24+XG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5BQ0NPVU5ULlNFVFRJTkdTLlRJVExFPC9pb24tbGFiZWw+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICAgICAgPHAgW2lubmVySFRNTF09XCInQUNDT1VOVC5TRVRUSU5HUy5ERVNDUklQVElPTicgfCB0cmFuc2xhdGVcIj48L3A+XG5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdBQ0NPVU5ULlNFVFRJTkdTLkxPQ0FMRScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImxvY2FsZVwiIHJlcXVpcmVkPlxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsb2NhbGVzXCIgW3ZhbHVlXT1cIml0ZW0ua2V5XCI+XG4gICAgICAgICAgICAgICAge3sgaXRlbS52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICA8bWF0LWVycm9yXG4gICAgICAgICAgICAgICpuZ0lmPVwic2V0dGluZ3NGb3JtPy5jb250cm9scy5sb2NhbGUuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgc2V0dGluZ3NGb3JtPy5jb250cm9scy5sb2NhbGUuZGlydHlcIlxuICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgRVJST1IuRklFTERfUkVRVUlSRURcbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICA8IS0tIGxhdC9sb25nIGZvcm1hdC0tPlxuICAgICAgICAgIEBpZiAoc2hvd0xhdExvbkZvcm1hdCkge1xuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdBQ0NPVU5ULlNFVFRJTkdTLkxBVF9MT05HX0ZPUk1BVCcgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwibGF0TG9uZ0Zvcm1hdFwiIHJlcXVpcmVkPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxhdExvbmdGb3JtYXRzXCIgW3ZhbHVlXT1cIml0ZW1cIj5cbiAgICAgICAgICAgICAgICAgIHt7ICdDT01NT04uTEFUX0xPTkcuJyArIGl0ZW0gKyAnX1BMQUNFSE9MREVSJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICA8bWF0LWVycm9yXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgIHNldHRpbmdzRm9ybT8uY29udHJvbHMubGF0TG9uZ0Zvcm1hdC5oYXNFcnJvcigncmVxdWlyZWQnKSAmJlxuICAgICAgICAgICAgICAgICAgc2V0dGluZ3NGb3JtPy5jb250cm9scy5sYXRMb25nRm9ybWF0LmRpcnR5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEVSUk9SLkZJRUxEX1JFUVVJUkVEXG4gICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gT3B0aW9ucyB0YWJsZSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnMtdGFibGVcIiBbY2xhc3MuY2RrLXZpc3VhbGx5LWhpZGRlbl09XCJvcHRpb25EZWZpbml0aW9ucyB8IGlzRW1wdHlBcnJheVwiPlxuICAgICAgICAgIDxhcHAtcHJvcGVydGllcy10YWJsZVxuICAgICAgICAgICAgI3Byb3BlcnRpZXNUYWJsZVxuICAgICAgICAgICAgaTE4bkNvbHVtblByZWZpeD1cIkFDQ09VTlQuU0VUVElOR1MuT1BUSU9OUy5cIlxuICAgICAgICAgICAgW2RlZmluaXRpb25zXT1cIm9wdGlvbkRlZmluaXRpb25zXCJcbiAgICAgICAgICAgIFtkZWJ1Z109XCJkZWJ1Z1wiXG4gICAgICAgICAgICBbY2FuRWRpdF09XCJ0cnVlXCJcbiAgICAgICAgICAgIChvbkRpcnR5KT1cIiRldmVudCA/IG1hcmtBc0RpcnR5KCkgOiB1bmRlZmluZWRcIlxuICAgICAgICAgID48L2FwcC1wcm9wZXJ0aWVzLXRhYmxlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXRhYj5cblxuICAgICAgPCEtLSBUQUI6IHRva2VucyAtLT5cbiAgICAgIDxtYXQtdGFiXG4gICAgICAgIGxhYmVsPVwie3sgJ0FDQ09VTlQuVE9LRU5TLlRJVExFJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIGZvcm1Hcm91cE5hbWU9XCJ0b2tlbnNcIlxuICAgICAgICBbY2xhc3MuY2RrLXZpc3VhbGx5LWhpZGRlbl09XCIhc2hvd0FwaVRva2Vuc1wiXG4gICAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICAgIDxtYXQtaWNvbj5cbiAgICAgICAgICAgIDxpb24taWNvbiBtYXRQcmVmaXggc2xvdD1cInN0YXJ0XCIgbmFtZT1cInRpY2tldFwiPjwvaW9uLWljb24+XG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5BQ0NPVU5ULlRPS0VOUy5USVRMRTwvaW9uLWxhYmVsPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgIDxwIFtpbm5lckhUTUxdPVwiJ0FDQ09VTlQuVE9LRU5TLkRFU0NSSVBUSU9OJyB8IHRyYW5zbGF0ZVwiPjwvcD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBUb2tlbnMgdGFibGUgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b2tlbnMtdGFibGVcIj5cbiAgICAgICAgICA8YXBwLXVzZXItdG9rZW4tdGFibGVcbiAgICAgICAgICAgICN0b2tlbnNUYWJsZVxuICAgICAgICAgICAgW2NhbkVkaXRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAob25EaXJ0eSk9XCIkZXZlbnQgPyBtYXJrQXNEaXJ0eSgpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICA+PC9hcHAtdXNlci10b2tlbi10YWJsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC10YWI+XG4gICAgPC9tYXQtdGFiLWdyb3VwPlxuICA8L2Zvcm0+XG48L2lvbi1jb250ZW50PlxuXG48aW9uLWZvb3RlciBoaWRkZW4teHMgaGlkZGVuLXNtIGhpZGRlbi1tb2JpbGU+XG4gIDxhcHAtZm9ybS1idXR0b25zLWJhciAob25DYW5jZWwpPVwiY2FuY2VsKClcIiAob25TYXZlKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCIhZm9ybS5kaXJ0eSB8fCAhdmFsaWQgfHwgc2F2aW5nXCI+XG4gICAgPCEtLSBlcnJvciAtLT5cbiAgICA8aW9uLWl0ZW0gKm5nSWY9XCJlcnJvciAmJiAhbW9iaWxlXCIgbGluZXM9XCJub25lXCI+XG4gICAgICA8aW9uLWljb24gY29sb3I9XCJkYW5nZXJcIiBzbG90PVwic3RhcnRcIiBuYW1lPVwiYWxlcnQtY2lyY2xlXCI+PC9pb24taWNvbj5cbiAgICAgIDxpb24tbGFiZWwgY29sb3I9XCJkYW5nZXJcIiBjbGFzcz1cImVycm9yXCIgW2lubmVySFRNTF09XCJlcnJvciB8IHRyYW5zbGF0ZVwiPjwvaW9uLWxhYmVsPlxuICAgIDwvaW9uLWl0ZW0+XG4gIDwvYXBwLWZvcm0tYnV0dG9ucy1iYXI+XG48L2lvbi1mb290ZXI+XG4iXX0=
343
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2FjY291bnQvYWNjb3VudC5wYWdlLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2FjY291bnQvYWNjb3VudC5wYWdlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsTUFBTSxFQUErQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEksT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFELE9BQU8sRUFBd0MsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSxvQkFBb0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBK0IsTUFBTSxrQ0FBa0MsQ0FBQztBQUU1RixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBc0IsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFekYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7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SSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxlQUFlO0lBQzlELENBQUM7SUFFUyxjQUFjLENBQUMsTUFBcUI7UUFDNUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxnQkFBZ0I7WUFDbkIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDLDhCQUE4QixDQUFDO2dCQUMvRSx3Q0FBd0M7Z0JBQ3hDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQzt3R0EzVVUsV0FBVywwUUErQ1osV0FBVzs0RkEvQ1YsV0FBVyxpYUNoQ3hCLDIxVkFzUUE7OzRGRHRPYSxXQUFXO2tCQU52QixTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNOzswQkFpRDVDLE1BQU07MkJBQUMsV0FBVzt5Q0E5Q29CLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDUyxlQUFlO3NCQUE5RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRixXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XG5pbXBvcnQgeyBBY2NvdW50IH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWwvYWNjb3VudC5tb2RlbCc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY2NvdW50VmFsaWRhdG9yU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3ZhbGlkYXRvci9hY2NvdW50LnZhbGlkYXRvcic7XG5pbXBvcnQgeyBBcHBGb3JtIH0gZnJvbSAnLi4vZm9ybS9mb3JtLmNsYXNzJztcbmltcG9ydCB7IEFwcEZvcm1VdGlscywgQ2FuTGVhdmUgfSBmcm9tICcuLi9mb3JtL2Zvcm0udXRpbHMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3NoYXJlZC9mb3JtL2ZpZWxkLm1vZGVsJztcbmltcG9ydCB7IExBVF9MT05HX1BBVFRFUk5TIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21hdGVyaWFsL2xhdGxvbmcvbGF0bG9uZy51dGlscyc7XG5pbXBvcnQgeyBTdGF0dXNJZHMgfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC9tb2RlbC5lbnVtJztcbmltcG9ydCB7IEFQUF9MT0NBTEVTLCBMb2NhbGVDb25maWcsIExvY2FsU2V0dGluZ3MgfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC9zZXR0aW5ncy5tb2RlbCc7XG5pbXBvcnQgeyBOZXR3b3JrU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL25ldHdvcmsuc2VydmljZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hdFRhYkdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ09SRV9DT05GSUdfT1BUSU9OUyB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbmZpZy9jb3JlLmNvbmZpZyc7XG5pbXBvcnQgeyBBcHBQcm9wZXJ0aWVzVGFibGUsIFByb3BlcnR5RW50aXR5IH0gZnJvbSAnLi4vZm9ybS9wcm9wZXJ0aWVzL3Byb3BlcnRpZXMudGFibGUnO1xuaW1wb3J0IHsgUHJvcGVydGllc01hcCB9IGZyb20gJy4uLy4uL3NoYXJlZC90eXBlcyc7XG5pbXBvcnQgeyBpc05vdE5pbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgVXNlclRva2VuVGFibGUgfSBmcm9tICcuL3Rva2VuLnRhYmxlJztcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWwvY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IHNldFRpbWVvdXQgfSBmcm9tICdAcngtYW5ndWxhci9jZGsvem9uZS1sZXNzL2Jyb3dzZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYWNjb3VudC1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICdhY2NvdW50LnBhZ2UuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjY291bnQucGFnZS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvdW50UGFnZSBleHRlbmRzIEFwcEZvcm08QWNjb3VudD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ2FuTGVhdmUge1xuICBAVmlld0NoaWxkKCd0YWJHcm91cCcsIHsgc3RhdGljOiB0cnVlIH0pIHRhYkdyb3VwOiBNYXRUYWJHcm91cDtcbiAgQFZpZXdDaGlsZCgncHJvcGVydGllc1RhYmxlJywgeyBzdGF0aWM6IHRydWUgfSkgcHJvcGVydGllc1RhYmxlOiBBcHBQcm9wZXJ0aWVzVGFibGU7XG4gIEBWaWV3Q2hpbGQoJ3Rva2Vuc1RhYmxlJywgeyBzdGF0aWM6IHRydWUgfSkgdG9rZW5zVGFibGU6IFVzZXJUb2tlblRhYmxlO1xuXG4gIHNlbGVjdGVkVGFiSW5kZXggPSAwO1xuICBpc0xvZ2luOiBib29sZWFuO1xuICBjaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIG5ldHdvcmtTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgZW1haWw6IGFueSA9IHtcbiAgICBjb25maXJtZWQ6IGZhbHNlLFxuICAgIG5vdENvbmZpcm1lZDogZmFsc2UsXG4gICAgc2VuZGluZzogZmFsc2UsXG4gICAgZXJyb3I6IHVuZGVmaW5lZCxcbiAgfTtcbiAgYWRkaXRpb25hbEZpZWxkczogRm9ybUZpZWxkRGVmaW5pdGlvbltdO1xuICBvcHRpb25EZWZpbml0aW9uczogRm9ybUZpZWxkRGVmaW5pdGlvbltdO1xuXG4gIGdldCBzZXR0aW5nc0Zvcm0oKTogVW50eXBlZEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3NldHRpbmdzJykgYXMgVW50eXBlZEZvcm1Hcm91cDtcbiAgfVxuXG4gIC8vIHNldHRpbmdzQ29udGVudEZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gIGxvY2FsZXM6IExvY2FsZUNvbmZpZ1tdO1xuICBsYXRMb25nRm9ybWF0cyA9IExBVF9MT05HX1BBVFRFUk5TO1xuICBzYXZpbmcgPSBmYWxzZTtcbiAgc3VibWl0dGVkID0gZmFsc2U7XG4gIGFjY291bnRSZWFkT25seSA9IGZhbHNlO1xuICByZWFkb25seSBtb2JpbGU6IGJvb2xlYW47XG5cbiAgZ2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdXBlci52YWxpZCAmJiAodGhpcy5wcm9wZXJ0aWVzVGFibGU/LnZhbGlkIHx8IHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNob3dBcGlUb2tlbnMgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNob3dMYXRMb25Gb3JtYXQgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwdWJsaWMgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwdWJsaWMgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlLFxuICAgIHB1YmxpYyBuZXR3b3JrOiBOZXR3b3JrU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlcixcbiAgICBwcm90ZWN0ZWQgdmFsaWRhdG9yU2VydmljZTogQWNjb3VudFZhbGlkYXRvclNlcnZpY2UsXG4gICAgLy8gcHJvdGVjdGVkIHNldHRpbmdzVmFsaWRhdG9yU2VydmljZTogVXNlclNldHRpbmdzVmFsaWRhdG9yU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoQVBQX0xPQ0FMRVMpIGxvY2FsZXM6IExvY2FsZUNvbmZpZ1tdXG4gICkge1xuICAgIHN1cGVyKGluamVjdG9yLCB2YWxpZGF0b3JTZXJ2aWNlLmdldEZvcm1Hcm91cChhY2NvdW50U2VydmljZS5hY2NvdW50KSk7XG5cbiAgICB0aGlzLmxvY2FsZXMgPSBsb2NhbGVzO1xuXG4gICAgLy8gQWRkIHNldHRpbmdzIGZvIGZvcm1cbiAgICAvLyB0aGlzLnNldHRpbmdzRm9ybSA9IHNldHRpbmdzVmFsaWRhdG9yU2VydmljZS5nZXRGb3JtR3JvdXAoYWNjb3VudFNlcnZpY2UuYWNjb3VudCAmJiBhY2NvdW50U2VydmljZS5hY2NvdW50LnNldHRpbmdzKTtcbiAgICAvLyB0aGlzLnNldHRpbmdzQ29udGVudEZvcm0gPSAodGhpcy5zZXR0aW5nc0Zvcm0uY29udHJvbHNbJ2NvbnRlbnQnXSBhcyBVbnR5cGVkRm9ybUdyb3VwKTtcbiAgICAvLyB0aGlzLmZvcm0uYWRkQ29udHJvbCgnc2V0dGluZ3MnLCB0aGlzLnNldHRpbmdzRm9ybSk7XG5cbiAgICB0aGlzLm1vYmlsZSA9IHRoaXMuc2V0dGluZ3MubW9iaWxlO1xuICAgIHRoaXMuZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcblxuICAgIC8vIEJ5IGRlZmF1bHQsIGRpc2FibGUgdGhlIGZvcm1cbiAgICB0aGlzLmRpc2FibGUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAvLyBHZXQgdXNlciBvcHRpb25zXG4gICAgdGhpcy5vcHRpb25EZWZpbml0aW9ucyA9IHRoaXMuYWNjb3VudFNlcnZpY2Uub3B0aW9uRGVmc1xuICAgICAgLnNsaWNlKClcbiAgICAgIC5maWx0ZXIoKGRlZmluaXRpb24pID0+ICFkZWZpbml0aW9uLmRpc2FibGVkICYmICghZGVmaW5pdGlvbi5taW5Qcm9maWxlIHx8IHRoaXMuYWNjb3VudFNlcnZpY2UuaGFzTWluUHJvZmlsZShkZWZpbml0aW9uLm1pblByb2ZpbGUpKSk7XG5cbiAgICAvLyBPYnNlcnZlZCBzb21lIGV2ZW50c1xuICAgIHRoaXMucmVnaXN0ZXJTdWJzY3JpcHRpb24odGhpcy5hY2NvdW50U2VydmljZS5vbkxvZ2luLnBpcGUoZmlsdGVyKCgpID0+ICF0aGlzLnNhdmluZykpLnN1YnNjcmliZSgoYWNjb3VudCkgPT4gdGhpcy5vbkxvZ2luKGFjY291bnQpKSk7XG4gICAgdGhpcy5yZWdpc3RlclN1YnNjcmlwdGlvbih0aGlzLmFjY291bnRTZXJ2aWNlLm9uTG9nb3V0LnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uTG9nb3V0KCkpKTtcbiAgICB0aGlzLnJlZ2lzdGVyU3Vic2NyaXB0aW9uKFxuICAgICAgdGhpcy5vbkNhbmNlbC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMuYWNjb3VudFNlcnZpY2UuYWNjb3VudCk7XG4gICAgICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMucmVnaXN0ZXJTdWJzY3JpcHRpb24oXG4gICAgICB0aGlzLmFjY291bnRTZXJ2aWNlLiRhZGRpdGlvbmFsRmllbGRzLnN1YnNjcmliZSgoYWRkaXRpb25hbEZpZWxkcykgPT4ge1xuICAgICAgICB0aGlzLmFkZGl0aW9uYWxGaWVsZHMgPSBhZGRpdGlvbmFsRmllbGRzLnNsaWNlKCk7IC8vIENvcHlcbiAgICAgICAgaWYgKHRoaXMuYWNjb3VudFNlcnZpY2UuaXNMb2dpbigpKSB7XG4gICAgICAgICAgdGhpcy5vbkxvZ2luKHRoaXMuYWNjb3VudFNlcnZpY2UuYWNjb3VudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5tYXJrQXNMb2FkZWQoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5yZWdpc3RlclN1YnNjcmlwdGlvbih0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLnN1YnNjcmliZSgoY29uZmlnKSA9PiB0aGlzLm9uQ29uZmlnTG9hZGVkKGNvbmZpZykpKTtcblxuICAgIC8vIFJlYWxpZ24gdGFiLCBhZnRlciBhIGRlbGF5IGJlY2F1c2UgdGhlIHRhYiBjYW4gYmUgZGlzYWJsZWQgd2hlbiBjb21wb25lbnQgaXMgY3JlYXRlZFxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50YWJHcm91cC5yZWFsaWduSW5rQmFyKCksIDUwMCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuc3RvcExpc3RlbkNoYW5nZXMoKTtcbiAgICB0aGlzLm5ldHdvcmtTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBvbkxvZ2luKGFjY291bnQ6IEFjY291bnQpIHtcbiAgICBjb25zb2xlLmRlYnVnKCdbYWNjb3VudF0gTG9nZ2VkIGFjY291bnQ6ICcsIGFjY291bnQpO1xuICAgIHRoaXMuaXNMb2dpbiA9IHRydWU7XG5cbiAgICB0aGlzLnNldFZhbHVlKGFjY291bnQpO1xuXG4gICAgdGhpcy5lbWFpbC5jb25maXJtZWQgPSBhY2NvdW50ICYmIGFjY291bnQuZW1haWwgJiYgYWNjb3VudC5zdGF0dXNJZCAhPT0gU3RhdHVzSWRzLlRFTVBPUkFSWTtcbiAgICB0aGlzLmVtYWlsLm5vdENvbmZpcm1lZCA9IGFjY291bnQgJiYgYWNjb3VudC5lbWFpbCAmJiAoIWFjY291bnQuc3RhdHVzSWQgfHwgYWNjb3VudC5zdGF0dXNJZCA9PT0gU3RhdHVzSWRzLlRFTVBPUkFSWSk7XG5cbiAgICB0aGlzLm5ldHdvcmtTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5uZXR3b3JrU3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLFxuICAgICAgdGhpcy5uZXR3b3JrLm9uTmV0d29ya1N0YXR1c0NoYW5nZXMucGlwZShtYXAoKGNvbm5lY3Rpb25UeXBlKSA9PiBjb25uZWN0aW9uVHlwZSAhPT0gJ25vbmUnKSksXG4gICAgXSkuc3Vic2NyaWJlKChbY29uZmlnLCBvbmxpbmVdKSA9PiB7XG4gICAgICB0aGlzLm9uQ29uZmlnTG9hZGVkKGNvbmZpZyk7XG5cbiAgICAgIGlmIChvbmxpbmUpIHtcbiAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICB0aGlzLnN0YXJ0TGlzdGVuQ2hhbmdlcygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlKCk7XG4gICAgICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgdGhpcy5zdG9wTGlzdGVuQ2hhbmdlcygpO1xuICAgICAgfVxuICAgICAgdGhpcy5tYXJrQXNMb2FkZWQoKTtcbiAgICB9KTtcblxuICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkxvZ291dCgpIHtcbiAgICB0aGlzLmlzTG9naW4gPSBmYWxzZTtcbiAgICB0aGlzLmVtYWlsLmNvbmZpcm1lZCA9IGZhbHNlO1xuICAgIHRoaXMuZW1haWwubm90Q29uZmlybWVkID0gZmFsc2U7XG4gICAgdGhpcy5lbWFpbC5zZW5kaW5nID0gZmFsc2U7XG4gICAgdGhpcy5lbWFpbC5lcnJvciA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICB0aGlzLmRpc2FibGUoKTtcblxuICAgIHRoaXMubmV0d29ya1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuc3RvcExpc3RlbkNoYW5nZXMoKTtcblxuICAgIC8vIEJhY2sgdG8gaG9tZVxuICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QoJy8nKTtcbiAgfVxuXG4gIGFzeW5jIHNldFZhbHVlKGRhdGE6IEFjY291bnQsIG9wdHM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW47IG9ubHlTZWxmPzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgc3VwZXIuc2V0VmFsdWUoZGF0YSwgb3B0cyk7XG5cbiAgICAvLyBTZXQgb3B0aW9uc1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSBkYXRhPy5zZXR0aW5ncz8uYXNMb2NhbFNldHRpbmdzKCk/LnByb3BlcnRpZXMgfHwge307XG4gICAgY29uc3QgcHJvcGVydGllc0VudGl0aWVzOiBQcm9wZXJ0eUVudGl0eVtdID0gW107XG4gICAgdGhpcy5vcHRpb25EZWZpbml0aW9uc1xuICAgICAgLm1hcCgoZGVmaW5pdGlvbikgPT4gZGVmaW5pdGlvbi5rZXkpXG4gICAgICAuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGlmIChpc05vdE5pbChwcm9wZXJ0aWVzW2tleV0pKSB7XG4gICAgICAgICAgcHJvcGVydGllc0VudGl0aWVzLnB1c2goUHJvcGVydHlFbnRpdHkuZnJvbU9iamVjdCh7IGlkOiBrZXksIHZhbHVlOiBwcm9wZXJ0aWVzW2tleV0gfSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGlmICh0aGlzLnByb3BlcnRpZXNUYWJsZSkge1xuICAgICAgYXdhaXQgdGhpcy5wcm9wZXJ0aWVzVGFibGUucmVhZHkoKTtcbiAgICAgIHRoaXMucHJvcGVydGllc1RhYmxlLnZhbHVlID0gcHJvcGVydGllc0VudGl0aWVzO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRva2Vuc1RhYmxlKSB7XG4gICAgICBhd2FpdCB0aGlzLnRva2Vuc1RhYmxlLnJlYWR5KCk7XG4gICAgICB0aGlzLnRva2Vuc1RhYmxlLnZhbHVlID0gZGF0YS50b2tlbnM7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVmcmVzaChfPzogRXZlbnQpIHtcbiAgICB0aGlzLmRpc2FibGUoKTtcbiAgICB0aGlzLm1hcmtBc0xvYWRpbmcoKTtcblxuICAgIHJldHVybiB0aGlzLmFjY291bnRTZXJ2aWNlLnJlbG9hZCgpO1xuICB9XG5cbiAgc3RhcnRMaXN0ZW5DaGFuZ2VzKCkge1xuICAgIGlmICh0aGlzLmNoYW5nZXNTdWJzY3JpcHRpb24pIHJldHVybjsgLy8gYWxyZWFkeSBzdGFydGVkXG4gICAgdGhpcy5jaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5hY2NvdW50U2VydmljZS5saXN0ZW5DaGFuZ2VzKCk7XG4gIH1cblxuICBzdG9wTGlzdGVuQ2hhbmdlcygpIHtcbiAgICBpZiAoIXRoaXMuY2hhbmdlc1N1YnNjcmlwdGlvbikgcmV0dXJuO1xuICAgIHRoaXMuY2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2hhbmdlc1N1YnNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGFzeW5jIHNlbmRDb25maXJtYXRpb25FbWFpbChldmVudDogTW91c2VFdmVudCkge1xuICAgIGNvbnN0IGpzb24gPSB0aGlzLmZvcm0udmFsdWU7XG4gICAganNvbi5lbWFpbCA9IHRoaXMuZm9ybS5jb250cm9sc1snZW1haWwnXS52YWx1ZTtcbiAgICBpZiAoIWpzb24uZW1haWwgfHwgIXRoaXMuZW1haWwubm90Q29uZmlybWVkKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuZW1haWwuc2VuZGluZyA9IHRydWU7XG4gICAgY29uc29sZS5kZWJ1ZygnW2FjY291bnRdIFNlbmRpbmcgY29uZmlybWF0aW9uIGVtYWlsLi4uJyk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYWNjb3VudFNlcnZpY2Uuc2VuZENvbmZpcm1hdGlvbkVtYWlsKGpzb24uZW1haWwsIChqc29uLnNldHRpbmdzICYmIGpzb24uc2V0dGluZ3MubG9jYWxlKSB8fCB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyk7XG4gICAgICBjb25zb2xlLmRlYnVnKCdbYWNjb3VudF0gQ29uZmlybWF0aW9uIGVtYWlsIHNlbnQuJyk7XG4gICAgICB0aGlzLmVtYWlsLnNlbmRpbmcgPSBmYWxzZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZW1haWwuc2VuZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5lbWFpbC5lcnJvciA9IChlcnIgJiYgZXJyLm1lc3NhZ2UpIHx8IGVycjtcbiAgICB9XG4gIH1cblxuICBhc3luYyBzYXZlKGV2ZW50PzogRXZlbnQpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5zYXZpbmcpIHJldHVybiBmYWxzZTtcblxuICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICBhd2FpdCBBcHBGb3JtVXRpbHMud2FpdFdoaWxlUGVuZGluZyh0aGlzLmZvcm0pO1xuXG4gICAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcbiAgICAgICAgQXBwRm9ybVV0aWxzLmxvZ0Zvcm1FcnJvcnModGhpcy5mb3JtKTtcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcbiAgICB0aGlzLnNhdmluZyA9IHRydWU7XG4gICAgdGhpcy5lcnJvciA9IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IG5ld0FjY291bnQgPSBBY2NvdW50LmZyb21PYmplY3Qoe1xuICAgICAgLi4udGhpcy5hY2NvdW50U2VydmljZS5hY2NvdW50LmFzT2JqZWN0KCksXG4gICAgICAuLi50aGlzLmZvcm0udmFsdWUsXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5wcm9wZXJ0aWVzVGFibGUpIHtcbiAgICAgIC8vIG1lcmdlIHByb3BlcnRpZXNcbiAgICAgIGF3YWl0IHRoaXMucHJvcGVydGllc1RhYmxlLnNhdmUoKTtcbiAgICAgIGNvbnN0IHByb3BlcnR5RW50aXRpZXMgPSB0aGlzLnByb3BlcnRpZXNUYWJsZS52YWx1ZSB8fCBbXTtcbiAgICAgIGNvbnN0IHByb3BlcnRpZXM6IFByb3BlcnRpZXNNYXAgPSBwcm9wZXJ0eUVudGl0aWVzLnJlZHVjZSgocmVzLCBpdGVtKSA9PiB7XG4gICAgICAgIHJlc1tpdGVtLmlkXSA9IGl0ZW0udmFsdWU7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgICB9LCB7fSk7XG4gICAgICBjb25zdCBuZXdQcm9wZXJ0aWVzID0geyAuLi5uZXdBY2NvdW50LnNldHRpbmdzLmNvbnRlbnRbJ3Byb3BlcnRpZXMnXSwgLi4ucHJvcGVydGllcyB9O1xuICAgICAgbmV3QWNjb3VudC5zZXR0aW5ncy5tZXJnZSg8TG9jYWxTZXR0aW5ncz57IHByb3BlcnRpZXM6IG5ld1Byb3BlcnRpZXMgfSwgWydwcm9wZXJ0aWVzJ10pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRva2Vuc1RhYmxlKSB7XG4gICAgICBhd2FpdCB0aGlzLnRva2Vuc1RhYmxlLnNhdmUoKTtcbiAgICAgIG5ld0FjY291bnQudG9rZW5zID0gdGhpcy50b2tlbnNUYWJsZS52YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmRlYnVnKCdbYWNjb3VudF0gU2F2aW5nIGFjY291bnQuLi4nLCBuZXdBY2NvdW50KTtcbiAgICB0cnkge1xuICAgICAgdGhpcy5kaXNhYmxlKCk7XG5cbiAgICAgIGF3YWl0IHRoaXMuYWNjb3VudFNlcnZpY2Uuc2F2ZShuZXdBY2NvdW50KTtcblxuICAgICAgLy8gUmVsb2FkXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMub25Mb2dpbih0aGlzLmFjY291bnRTZXJ2aWNlLmFjY291bnQpLCAxMDApO1xuXG4gICAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgIHRoaXMuZXJyb3IgPSAoZXJyICYmIGVyci5tZXNzYWdlKSB8fCBlcnI7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIGVuYWJsZShvcHRzPzogeyBvbmx5U2VsZj86IGJvb2xlYW47IGVtaXRFdmVudD86IGJvb2xlYW4gfSkge1xuICAgIHN1cGVyLmVuYWJsZShvcHRzKTtcblxuICAgIC8vIFNvbWUgZmllbGRzIGFyZSBhbHdheXMgZGlzYWJsZVxuICAgIHRoaXMuZm9ybS5jb250cm9scy5lbWFpbC5kaXNhYmxlKCk7XG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLm1haW5Qcm9maWxlLmRpc2FibGUoKTtcbiAgICB0aGlzLmZvcm0uY29udHJvbHMucHVia2V5LmRpc2FibGUoKTtcblxuICAgIC8vIERpc2FibGUgYWNjb3VudCBmaWVsZHMgaWYgcmVhZG9ubHkgYnkgY29uZmlndXJhdGlvblxuICAgIGNvbnN0IGRpc2FibGVkID0gdGhpcy5hY2NvdW50UmVhZE9ubHk7XG4gICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMubGFzdE5hbWUuZGlzYWJsZSgpO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmZpcnN0TmFtZS5kaXNhYmxlKCk7XG4gICAgfVxuXG4gICAgLy8gQWx3YXlzIGRpc2FibGUgc29tZSBhZGRpdGlvbmFsIGZpZWxkc1xuICAgIHRoaXMuYWRkaXRpb25hbEZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5jb250cm9sc1tmaWVsZC5rZXldO1xuICAgICAgaWYgKCFjb250cm9sKSByZXR1cm47IC8vIFNraXBcblxuICAgICAgY29uc3QgZmllbGREaXNhYmxlZCA9IGRpc2FibGVkIHx8IChmaWVsZC5leHRyYT8uYWNjb3VudCAmJiBmaWVsZC5leHRyYS5hY2NvdW50LmRpc2FibGVkKSB8fCBmYWxzZTtcbiAgICAgIGlmIChmaWVsZERpc2FibGVkICYmIGNvbnRyb2wuZW5hYmxlZCkge1xuICAgICAgICBjb250cm9sLmRpc2FibGUoKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlcXVpcmVkID0gKGZpZWxkLmV4dHJhPy5hY2NvdW50ICYmIGZpZWxkLmV4dHJhLmFjY291bnQucmVxdWlyZWQpIHx8IGZhbHNlO1xuICAgICAgaWYgKCFmaWVsZC5yZXF1aXJlZCAmJiByZXF1aXJlZCkge1xuICAgICAgICBjb250cm9sLnNldFZhbGlkYXRvcnMoY29udHJvbC52YWxpZGF0b3IgPyBWYWxpZGF0b3JzLmNvbXBvc2UoW2NvbnRyb2wudmFsaWRhdG9yLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSkgOiBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgYXN5bmMgY2FuY2VsKCkge1xuICAgIGF3YWl0IHN1cGVyLmNhbmNlbCgpO1xuICB9XG5cbiAgYXN5bmMgY2xvc2UoXz86IEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc2F2aW5nKSByZXR1cm47XG5cbiAgICAvLyBCYWNrIHRvIGhvbWVcbiAgICByZXR1cm4gdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdCgnLycpOyAvLyBiYWNrIHRvIGhvbWVcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkNvbmZpZ0xvYWRlZChjb25maWc6IENvbmZpZ3VyYXRpb24pIHtcbiAgICB0aGlzLmFjY291bnRSZWFkT25seSA9IGNvbmZpZy5nZXRQcm9wZXJ0eUFzQm9vbGVhbihDT1JFX0NPTkZJR19PUFRJT05TLkFDQ09VTlRfUkVBRE9OTFkpO1xuICAgIHRoaXMuc2hvd0FwaVRva2VucyA9IGNvbmZpZy5nZXRQcm9wZXJ0eUFzQm9vbGVhbihDT1JFX0NPTkZJR19PUFRJT05TLkFVVEhfQVBJX1RPS0VOX0VOQUJMRUQpO1xuICAgIHRoaXMuc2hvd0xhdExvbkZvcm1hdCA9XG4gICAgICBjb25maWcuZ2V0UHJvcGVydHlBc0Jvb2xlYW4oQ09SRV9DT05GSUdfT1BUSU9OUy5BQ0NPVU5UX0xBVF9MT05HX0ZPUk1BVF9FTkFCTEUpICYmXG4gICAgICAvLyBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIGRlcHJlY2F0ZWQga2V5XG4gICAgICBjb25maWcuZ2V0UHJvcGVydHlBc0Jvb2xlYW4oQ09SRV9DT05GSUdfT1BUSU9OUy5ERUZBVUxUX0xBVF9MT05HX0ZPUk1BVF9FTkFCTEVEKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPGFwcC10b29sYmFyXG4gIFt0aXRsZV09XCInQUNDT1VOVC5USVRMRScgfCB0cmFuc2xhdGVcIlxuICBjb2xvcj1cInByaW1hcnlcIlxuICBbaGFzVmFsaWRhdGVdPVwiZGlydHkgJiYgIXNhdmluZ1wiXG4gIFtoYXNDbG9zZV09XCIhZGlydHkgJiYgIXNhdmluZ1wiXG4gIChvblZhbGlkYXRlKT1cInNhdmUoKVwiXG4gIFtjYW5Hb0JhY2tdPVwiZmFsc2VcIlxuICAob25DbG9zZSk9XCJjbG9zZSgkZXZlbnQpXCJcbj5cbiAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICA8IS0tIGxvYWRlciAtLT5cbiAgICA8aW9uLXNwaW5uZXIgKm5nSWY9XCJsb2FkaW5nIHx8IHNhdmluZzsgZWxzZSBlbmRCdXR0b25zXCI+PC9pb24tc3Bpbm5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZW5kQnV0dG9ucz5cbiAgICAgIDwhLS0gcmVmcmVzaCBidXR0b24gKGlmIG9ubGluZSkgLS0+XG4gICAgICA8aW9uLWJ1dHRvbiBbbWF0VG9vbHRpcF09XCInQ09NTU9OLkJUTl9SRUZSRVNIJyB8IHRyYW5zbGF0ZVwiICpuZ0lmPVwibmV0d29yay5vbmxpbmVcIiAoY2xpY2spPVwicmVmcmVzaCgkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtaWNvbiBzbG90PVwiaWNvbi1vbmx5XCI+cmVmcmVzaDwvbWF0LWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9pb24tYnV0dG9ucz5cbjwvYXBwLXRvb2xiYXI+XG5cbjxpb24tY29udGVudD5cbiAgPCEtLSBlcnJvciAtLT5cbiAgPGlvbi1pdGVtICpuZ0lmPVwiZXJyb3IgJiYgbW9iaWxlXCIgbGluZXM9XCJub25lXCI+XG4gICAgPGlvbi1pY29uIGNvbG9yPVwiZGFuZ2VyXCIgc2xvdD1cInN0YXJ0XCIgbmFtZT1cImFsZXJ0LWNpcmNsZVwiPjwvaW9uLWljb24+XG4gICAgPGlvbi1sYWJlbCBjb2xvcj1cImRhbmdlclwiIGNsYXNzPVwiZXJyb3JcIiBbaW5uZXJIVE1MXT1cImVycm9yIHwgdHJhbnNsYXRlXCI+PC9pb24tbGFiZWw+XG4gIDwvaW9uLWl0ZW0+XG5cbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgbm92YWxpZGF0ZSBjbGFzcz1cImZvcm0tY29udGFpbmVyXCI+XG4gICAgPG1hdC10YWItZ3JvdXAgI3RhYkdyb3VwIFsoc2VsZWN0ZWRJbmRleCldPVwic2VsZWN0ZWRUYWJJbmRleFwiIGR5bmFtaWNIZWlnaHQ+XG4gICAgICA8IS0tIFRBQjogdXNlciBkZXRhaWxzIC0tPlxuICAgICAgPG1hdC10YWIgbGFiZWw9XCJ7eyAnQUNDT1VOVC5VU0VSX0RFVEFJTFMuVElUTEUnIHwgdHJhbnNsYXRlIH19XCIgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgICA8aW9uLWljb24gbWF0UHJlZml4IHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJwZXJzb24tY2lyY2xlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIDxpb24tbGFiZWw+e3sgJ0FDQ09VTlQuVVNFUl9ERVRBSUxTLlRJVExFJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLWxhYmVsPlxuICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiZW5kXCIgbmFtZT1cImFsZXJ0LWNpcmNsZVwiIGNvbG9yPVwiZGFuZ2VyXCIgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZm9ybS5pbnZhbGlkXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgICAgICA8cCBbaW5uZXJIVE1MXT1cIidBQ0NPVU5ULlVTRVJfREVUQUlMUy5ERVNDUklQVElPTicgfCB0cmFuc2xhdGVcIj48L3A+XG5cbiAgICAgICAgICA8IS0taDE+SWRlbnRpdMOpPC9oMS0tPlxuXG4gICAgICAgICAgPCEtLSBFbWFpbCAtLT5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdVU0VSLkVNQUlMJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgYXV0b2NvbXBsZXRlPVwic2VjdGlvbi1yZWQgZW1haWxcIiAvPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuZW1haWwuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgZm9ybS5jb250cm9scy5lbWFpbC5kaXJ0eVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICAgICAgRVJST1IuRklFTERfUkVRVUlSRURcbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuZW1haWwuaGFzRXJyb3IoJ2VtYWlsJykgJiYgZm9ybS5jb250cm9scy5lbWFpbC5kaXJ0eVwiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyAnRVJST1IuRklFTERfTk9UX1ZBTElEX0VNQUlMJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICA8aW9uLWdyaWQgKm5nSWY9XCJlbWFpbC5ub3RDb25maXJtZWRcIiBjbGFzcz1cImlvbi1uby1wYWRkaW5nIGlvbi1wYWRkaW5nLWJvdHRvbVwiPlxuICAgICAgICAgICAgPGlvbi1yb3c+XG4gICAgICAgICAgICAgIDxpb24tY29sIGNvbG9yPVwiZGFuZ2VyXCI+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIGNvbG9yPVwiZGFuZ2VyXCIgbmFtZT1cImFsZXJ0LWNpcmNsZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgICAgPGlvbi10ZXh0IFtpbm5lckhUTUxdPVwiJ0FDQ09VTlQuRU1BSUxfTk9UX0NPTkZJUk1FRF9MQUJFTCcgfCB0cmFuc2xhdGVcIj48L2lvbi10ZXh0PlxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgICA8L2lvbi1yb3c+XG5cbiAgICAgICAgICAgIDxpb24tcm93IHN0eWxlPVwiaGVpZ2h0OiA1MXB4XCI+XG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwidGV4dC1hbGlnbjogcmlnaHRcIj5cbiAgICAgICAgICAgICAgICA8aW9uLXRleHQ+XG4gICAgICAgICAgICAgICAgICA8c21hbGwgW2lubmVySFRNTF09XCInQUNDT1VOVC5FTUFJTF9OT1RfUkVDRUlWRURfUVVFU1RJT04nIHwgdHJhbnNsYXRlXCI+PC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8L2lvbi10ZXh0PlxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG4gICAgICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgIGZpbGw9XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgICBjb2xvcj1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIiFlbWFpbC5zZW5kaW5nXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZW5kQ29uZmlybWF0aW9uRW1haWwoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgJ0FDQ09VTlQuQlROX1JFU0VORCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgPGlvbi1zcGlubmVyIGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIiAqbmdJZj1cImVtYWlsLnNlbmRpbmdcIj48L2lvbi1zcGlubmVyPlxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgICA8L2lvbi1yb3c+XG5cbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1haWwuZXJyb3IgJiYgIWVtYWlsLnNlbmRpbmdcIj5cbiAgICAgICAgICAgICAgPGlvbi1jb2w+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJlbWFpbC5lcnJvciAmJiAhZW1haWwuc2VuZGluZ1wiIFtpbm5lckhUTUxdPVwiZW1haWwuZXJyb3IgfCB0cmFuc2xhdGVcIj48L3NwYW4+XG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICAgIDwvaW9uLXJvdz5cbiAgICAgICAgICA8L2lvbi1ncmlkPlxuXG4gICAgICAgICAgPCEtLSBMYXN0IG5hbWUgLS0+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD57eyAnVVNFUi5MQVNUX05BTUUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgW2FwcEF1dG9mb2N1c109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2F1dG9mb2N1c0RlbGF5XT1cIjUwMFwiXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxhc3ROYW1lXCJcbiAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwic2VjdGlvbi1ibHVlIGZhbWlseS1uYW1lXCJcbiAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9scy5sYXN0TmFtZS5oYXNFcnJvcigncmVxdWlyZWQnKSAmJiBmb3JtLmNvbnRyb2xzLmxhc3ROYW1lLmRpcnR5XCIgdHJhbnNsYXRlPlxuICAgICAgICAgICAgICBFUlJPUi5GSUVMRF9SRVFVSVJFRFxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9scy5sYXN0TmFtZS5oYXNFcnJvcignbWlubGVuZ3RoJykgJiYgZm9ybS5jb250cm9scy5sYXN0TmFtZS5kaXJ0eVwiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyAnRVJST1IuRklFTERfTUlOX0xFTkdUSCcgfCB0cmFuc2xhdGU6IHsgbWluTGVuZ3RoOiAyIH0gfX08L3NwYW4+XG4gICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgPCEtLSBGaXJzdCBuYW1lIC0tPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgJ1VTRVIuRklSU1RfTkFNRScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJmaXJzdE5hbWVcIiBhdXRvY29tcGxldGU9XCJzZWN0aW9uLWJsdWUgZ2l2ZW4tbmFtZVwiIHJlcXVpcmVkIC8+XG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9scy5maXJzdE5hbWUuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgZm9ybS5jb250cm9scy5maXJzdE5hbWUuZGlydHlcIiB0cmFuc2xhdGU+XG4gICAgICAgICAgICAgIEVSUk9SLkZJRUxEX1JFUVVJUkVEXG4gICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzLmZpcnN0TmFtZS5oYXNFcnJvcignbWlubGVuZ3RoJykgJiYgZm9ybS5jb250cm9scy5maXJzdE5hbWUuZGlydHlcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgJ0VSUk9SLkZJRUxEX01JTl9MRU5HVEgnIHwgdHJhbnNsYXRlOiB7IG1pbkxlbmd0aDogMiB9IH19PC9zcGFuPlxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgIDwhLS0gQWRkaXRpb25hbCBmaWVsZHMgLS0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZGVmaW5pdGlvbiBvZiBhZGRpdGlvbmFsRmllbGRzXCI+XG4gICAgICAgICAgICA8YXBwLWZvcm0tZmllbGRcbiAgICAgICAgICAgICAgW2RlZmluaXRpb25dPVwiZGVmaW5pdGlvblwiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZGVmaW5pdGlvbi5rZXlcIlxuICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiKGRlZmluaXRpb24uZXh0cmEgJiYgZGVmaW5pdGlvbi5leHRyYS5hY2NvdW50ICYmIGRlZmluaXRpb24uZXh0cmEuYWNjb3VudC5yZXF1aXJlZCkgfHwgZmFsc2VcIlxuICAgICAgICAgICAgPjwvYXBwLWZvcm0tZmllbGQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8aDMgdHJhbnNsYXRlPkFDQ09VTlQuVVNFUl9ERVRBSUxTLlRFQ0hOSUNBTF9ESVZJREVSPC9oMz5cblxuICAgICAgICAgIDwhLS0gcHJvZmlsZSAtLT5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdBQ0NPVU5ULlVTRVJfREVUQUlMUy5QUk9GSUxFJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGhpZGRlbiByZWFkb25seT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJtYWluUHJvZmlsZVwiIHJlcXVpcmVkIC8+XG4gICAgICAgICAgICA8c3Bhbj57eyAnVVNFUi5QUk9GSUxFX0VOVU0uJyArIGZvcm0uY29udHJvbHMubWFpblByb2ZpbGUudmFsdWUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8bWF0LWVycm9yXG4gICAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5jb250cm9scy5maXJzdE5hbWUuaGFzRXJyb3IoJ21haW5Qcm9maWxlJykgJiYgZm9ybS5jb250cm9scy5tYWluUHJvZmlsZS5kaXJ0eVwiXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBFUlJPUi5GSUVMRF9SRVFVSVJFRFxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgIDwhLS0gcHVia2V5IC0tPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgJ0FDQ09VTlQuVVNFUl9ERVRBSUxTLlBVQktFWScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCByZWFkb25seT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJwdWJrZXlcIiByZXF1aXJlZCAvPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuZmlyc3ROYW1lLmhhc0Vycm9yKCdwdWJrZXknKSAmJiBmb3JtLmNvbnRyb2xzLmZpcnN0TmFtZS5kaXJ0eVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICAgICAgRVJST1IuRklFTERfUkVRVUlSRURcbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuZmlyc3ROYW1lLmhhc0Vycm9yKCdwdWJrZXknKSAmJiBmb3JtLmNvbnRyb2xzLmZpcnN0TmFtZS5kaXJ0eVwiPlxuICAgICAgICAgICAgICA8c3BhbiB0cmFuc2xhdGU+RVJST1IuRklFTERfTk9UX1ZBTElEX1BVQktFWTwvc3Bhbj5cbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdGFiPlxuXG4gICAgICA8IS0tIFRBQjogc2V0dGluZ3MgLS0+XG4gICAgICA8bWF0LXRhYiBsYWJlbD1cInt7ICdBQ0NPVU5ULlNFVFRJTkdTLlRJVExFJyB8IHRyYW5zbGF0ZSB9fVwiIGZvcm1Hcm91cE5hbWU9XCJzZXR0aW5nc1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgICA8aW9uLWljb24gbWF0UHJlZml4IHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJzZXR0aW5nc1wiPjwvaW9uLWljb24+XG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5BQ0NPVU5ULlNFVFRJTkdTLlRJVExFPC9pb24tbGFiZWw+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICAgICAgPHAgW2lubmVySFRNTF09XCInQUNDT1VOVC5TRVRUSU5HUy5ERVNDUklQVElPTicgfCB0cmFuc2xhdGVcIj48L3A+XG5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdBQ0NPVU5ULlNFVFRJTkdTLkxPQ0FMRScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImxvY2FsZVwiIHJlcXVpcmVkPlxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsb2NhbGVzXCIgW3ZhbHVlXT1cIml0ZW0ua2V5XCI+XG4gICAgICAgICAgICAgICAge3sgaXRlbS52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICA8bWF0LWVycm9yXG4gICAgICAgICAgICAgICpuZ0lmPVwic2V0dGluZ3NGb3JtPy5jb250cm9scy5sb2NhbGUuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgc2V0dGluZ3NGb3JtPy5jb250cm9scy5sb2NhbGUuZGlydHlcIlxuICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgRVJST1IuRklFTERfUkVRVUlSRURcbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICA8IS0tIGxhdC9sb25nIGZvcm1hdC0tPlxuICAgICAgICAgIEBpZiAoc2hvd0xhdExvbkZvcm1hdCkge1xuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdBQ0NPVU5ULlNFVFRJTkdTLkxBVF9MT05HX0ZPUk1BVCcgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwibGF0TG9uZ0Zvcm1hdFwiIHJlcXVpcmVkPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxhdExvbmdGb3JtYXRzXCIgW3ZhbHVlXT1cIml0ZW1cIj5cbiAgICAgICAgICAgICAgICAgIHt7ICdDT01NT04uTEFUX0xPTkcuJyArIGl0ZW0gKyAnX1BMQUNFSE9MREVSJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICA8bWF0LWVycm9yXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgIHNldHRpbmdzRm9ybT8uY29udHJvbHMubGF0TG9uZ0Zvcm1hdC5oYXNFcnJvcigncmVxdWlyZWQnKSAmJlxuICAgICAgICAgICAgICAgICAgc2V0dGluZ3NGb3JtPy5jb250cm9scy5sYXRMb25nRm9ybWF0LmRpcnR5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEVSUk9SLkZJRUxEX1JFUVVJUkVEXG4gICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gT3B0aW9ucyB0YWJsZSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnMtdGFibGVcIiBbY2xhc3MuY2RrLXZpc3VhbGx5LWhpZGRlbl09XCJvcHRpb25EZWZpbml0aW9ucyB8IGlzRW1wdHlBcnJheVwiPlxuICAgICAgICAgIDxhcHAtcHJvcGVydGllcy10YWJsZVxuICAgICAgICAgICAgI3Byb3BlcnRpZXNUYWJsZVxuICAgICAgICAgICAgaTE4bkNvbHVtblByZWZpeD1cIkFDQ09VTlQuU0VUVElOR1MuT1BUSU9OUy5cIlxuICAgICAgICAgICAgW2RlZmluaXRpb25zXT1cIm9wdGlvbkRlZmluaXRpb25zXCJcbiAgICAgICAgICAgIFtkZWJ1Z109XCJkZWJ1Z1wiXG4gICAgICAgICAgICBbY2FuRWRpdF09XCJ0cnVlXCJcbiAgICAgICAgICAgIChvbkRpcnR5KT1cIiRldmVudCA/IG1hcmtBc0RpcnR5KCkgOiB1bmRlZmluZWRcIlxuICAgICAgICAgID48L2FwcC1wcm9wZXJ0aWVzLXRhYmxlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXRhYj5cblxuICAgICAgPCEtLSBUQUI6IHRva2VucyAtLT5cbiAgICAgIDxtYXQtdGFiXG4gICAgICAgIGxhYmVsPVwie3sgJ0FDQ09VTlQuVE9LRU5TLlRJVExFJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIGZvcm1Hcm91cE5hbWU9XCJ0b2tlbnNcIlxuICAgICAgICBbY2xhc3MuY2RrLXZpc3VhbGx5LWhpZGRlbl09XCIhc2hvd0FwaVRva2Vuc1wiXG4gICAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICAgIDxtYXQtaWNvbj5cbiAgICAgICAgICAgIDxpb24taWNvbiBtYXRQcmVmaXggc2xvdD1cInN0YXJ0XCIgbmFtZT1cInRpY2tldFwiPjwvaW9uLWljb24+XG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5BQ0NPVU5ULlRPS0VOUy5USVRMRTwvaW9uLWxhYmVsPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgIDxwIFtpbm5lckhUTUxdPVwiJ0FDQ09VTlQuVE9LRU5TLkRFU0NSSVBUSU9OJyB8IHRyYW5zbGF0ZVwiPjwvcD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBUb2tlbnMgdGFibGUgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b2tlbnMtdGFibGVcIj5cbiAgICAgICAgICA8YXBwLXVzZXItdG9rZW4tdGFibGVcbiAgICAgICAgICAgICN0b2tlbnNUYWJsZVxuICAgICAgICAgICAgW2NhbkVkaXRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAob25EaXJ0eSk9XCIkZXZlbnQgPyBtYXJrQXNEaXJ0eSgpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICA+PC9hcHAtdXNlci10b2tlbi10YWJsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC10YWI+XG4gICAgPC9tYXQtdGFiLWdyb3VwPlxuICA8L2Zvcm0+XG48L2lvbi1jb250ZW50PlxuXG48aW9uLWZvb3RlciBoaWRkZW4teHMgaGlkZGVuLXNtIGhpZGRlbi1tb2JpbGU+XG4gIDxhcHAtZm9ybS1idXR0b25zLWJhciAob25DYW5jZWwpPVwiY2FuY2VsKClcIiAob25TYXZlKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCIhZm9ybS5kaXJ0eSB8fCAhdmFsaWQgfHwgc2F2aW5nXCI+XG4gICAgPCEtLSBlcnJvciAtLT5cbiAgICA8aW9uLWl0ZW0gKm5nSWY9XCJlcnJvciAmJiAhbW9iaWxlXCIgbGluZXM9XCJub25lXCI+XG4gICAgICA8aW9uLWljb24gY29sb3I9XCJkYW5nZXJcIiBzbG90PVwic3RhcnRcIiBuYW1lPVwiYWxlcnQtY2lyY2xlXCI+PC9pb24taWNvbj5cbiAgICAgIDxpb24tbGFiZWwgY29sb3I9XCJkYW5nZXJcIiBjbGFzcz1cImVycm9yXCIgW2lubmVySFRNTF09XCJlcnJvciB8IHRyYW5zbGF0ZVwiPjwvaW9uLWxhYmVsPlxuICAgIDwvaW9uLWl0ZW0+XG4gIDwvYXBwLWZvcm0tYnV0dG9ucy1iYXI+XG48L2lvbi1mb290ZXI+XG4iXX0=
@@ -35,11 +35,15 @@ export const CORE_CONFIG_OPTIONS = Object.freeze({
35
35
  },
36
36
  ],
37
37
  },
38
+ /**
39
+ * @deprecated Use `ACCOUNT_LAT_LONG_FORMAT_ENABLE` instead
40
+ */
41
+ //@deprecated
38
42
  DEFAULT_LAT_LONG_FORMAT_ENABLED: {
39
43
  key: 'sumaris.defaultLatLongFormat.enabled',
40
44
  label: 'CONFIGURATION.OPTIONS.ENABLE_DEFAULT_LATLONG_FORMAT',
41
45
  type: 'boolean',
42
- defaultValue: true,
46
+ defaultValue: true, // Important, for compatibility reason after deprecation
43
47
  },
44
48
  REGISTRATION_ENABLE: {
45
49
  key: 'sumaris.registration.enable',
@@ -206,6 +210,12 @@ export const CORE_CONFIG_OPTIONS = Object.freeze({
206
210
  type: 'string',
207
211
  isTransient: true, // Only on server, cannot be set
208
212
  },
213
+ ACCOUNT_LAT_LONG_FORMAT_ENABLE: {
214
+ key: 'sumaris.account.latLongFormat.enable',
215
+ label: 'CONFIGURATION.OPTIONS.ACCOUNT.ENABLE_LATLONG_FORMAT',
216
+ type: 'boolean',
217
+ defaultValue: true,
218
+ },
209
219
  ACCOUNT_READONLY: {
210
220
  key: 'sumaris.account.readOnly',
211
221
  label: 'CONFIGURATION.OPTIONS.ACCOUNT.READONLY',
@@ -214,4 +224,4 @@ export const CORE_CONFIG_OPTIONS = Object.freeze({
214
224
  isTransient: true,
215
225
  },
216
226
  });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvY29uZmlnL2NvcmUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUd0RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQy9DLElBQUksRUFBdUI7UUFDekIsR0FBRyxFQUFFLGNBQWM7UUFDbkIsS0FBSyxFQUFFLDRCQUE0QjtRQUNuQyxJQUFJLEVBQUUsUUFBUTtLQUNmO0lBQ0QsT0FBTyxFQUF1QjtRQUM1QixHQUFHLEVBQUUsaUJBQWlCO1FBQ3RCLEtBQUssRUFBRSwrQkFBK0I7UUFDdEMsSUFBSSxFQUFFLFFBQVE7S0FDZjtJQUNELGNBQWMsRUFBdUI7UUFDbkMsR0FBRyxFQUFFLHVCQUF1QjtRQUM1QixLQUFLLEVBQUUsc0NBQXNDO1FBQzdDLElBQUksRUFBRSxNQUFNO1FBQ1osTUFBTSxFQUFFLFdBQVc7S0FDcEI7SUFDRCx1QkFBdUIsRUFBdUI7UUFDNUMsR0FBRyxFQUFFLDhCQUE4QjtRQUNuQyxLQUFLLEVBQUUsOENBQThDO1FBQ3JELElBQUksRUFBRSxNQUFNO1FBQ1osTUFBTSxFQUFFO1lBQ047Z0JBQ0UsR0FBRyxFQUFFLFFBQVE7Z0JBQ2IsS0FBSyxFQUFFLG9DQUFvQzthQUM1QztZQUNEO2dCQUNFLEdBQUcsRUFBRSxNQUFNO2dCQUNYLEtBQUssRUFBRSxrQ0FBa0M7YUFDMUM7WUFDRDtnQkFDRSxHQUFHLEVBQUUsSUFBSTtnQkFDVCxLQUFLLEVBQUUsZ0NBQWdDO2FBQ3hDO1NBQ0Y7S0FDRjtJQUNELCtCQUErQixFQUF1QjtRQUNwRCxHQUFHLEVBQUUsc0NBQXNDO1FBQzNDLEtBQUssRUFBRSxxREFBcUQ7UUFDNUQsSUFBSSxFQUFFLFNBQVM7UUFDZixZQUFZLEVBQUUsSUFBSTtLQUNuQjtJQUNELG1CQUFtQixFQUF1QjtRQUN4QyxHQUFHLEVBQUUsNkJBQTZCO1FBQ2xDLEtBQUssRUFBRSxnREFBZ0Q7UUFDdkQsSUFBSSxFQUFFLFNBQVM7UUFDZixZQUFZLEVBQUUsSUFBSTtLQUNuQjtJQUNELGVBQWUsRUFBdUI7UUFDcEMsR0FBRyxFQUFFLHlCQUF5QjtRQUM5QixLQUFLLEVBQUUsbURBQW1EO1FBQzFELElBQUksRUFBRSxNQUFNO1FBQ1osTUFBTSxFQUFFO1lBQ047Z0JBQ0UsR0FBRyxFQUFpQixPQUFPO2dCQUMzQixLQUFLLEVBQUUsNkNBQTZDO2FBQ3JEO1lBQ0Q7Z0JBQ0UsR0FBRyxFQUFpQixPQUFPO2dCQUMzQixLQUFLLEVBQUUsNkNBQTZDO2FBQ3JEO1lBQ0Q7Z0JBQ0UsR0FBRyxFQUFpQixpQkFBaUI7Z0JBQ3JDLEtBQUssRUFBRSx1REFBdUQ7YUFDL0Q7U0FDRjtRQUNELFlBQVksRUFBaUIsT0FBTztLQUNyQztJQUNELHNCQUFzQixFQUF1QjtRQUMzQyxHQUFHLEVBQUUsZ0NBQWdDO1FBQ3JDLEtBQUssRUFBRSw4Q0FBOEM7UUFDckQsSUFBSSxFQUFFLFNBQVM7UUFDZixZQUFZLEVBQUUsS0FBSztRQUNuQixXQUFXLEVBQUUsSUFBSTtLQUNsQjtJQUNELDRCQUE0QixFQUF1QjtRQUNqRCxHQUFHLEVBQUUsc0NBQXNDO1FBQzNDLEtBQUssRUFBRSxvREFBb0Q7UUFDM0QsSUFBSSxFQUFFLFNBQVM7UUFDZixZQUFZLEVBQUUsS0FBSztRQUNuQixXQUFXLEVBQUUsSUFBSTtLQUNsQjtJQUNELDRCQUE0QixFQUF1QjtRQUNqRCxHQUFHLEVBQUUsc0NBQXNDO1FBQzNDLEtBQUssRUFBRSxvREFBb0Q7UUFDM0QsSUFBSSxFQUFFLFFBQVE7UUFDZCxZQUFZLEVBQUUsVUFBVTtRQUN4QixXQUFXLEVBQUUsSUFBSTtLQUNsQjtJQUNELGVBQWUsRUFBdUI7UUFDcEMsR0FBRyxFQUFFLHlCQUF5QjtRQUM5QixLQUFLLEVBQUUsdUNBQXVDO1FBQzlDLElBQUksRUFBRSxTQUFTO1FBQ2YsWUFBWSxFQUFFLEtBQUs7S0FDcEI7SUFDRCxZQUFZLEVBQXVCO1FBQ2pDLEdBQUcsRUFBRSxzQkFBc0I7UUFDM0IsS0FBSyxFQUFFLG9DQUFvQztRQUMzQyxJQUFJLEVBQUUsUUFBUTtRQUNkLFlBQVksRUFBRSx1Q0FBdUM7S0FDdEQ7SUFDRCxPQUFPLEVBQXVCO1FBQzVCLEdBQUcsRUFBRSx3QkFBd0I7UUFDN0IsS0FBSyxFQUFFLCtCQUErQjtRQUN0QyxJQUFJLEVBQUUsU0FBUztLQUNoQjtJQUNELGVBQWUsRUFBdUI7UUFDcEMsR0FBRyxFQUFFLHlCQUF5QjtRQUM5QixLQUFLLEVBQUUsdUNBQXVDO1FBQzlDLElBQUksRUFBRSxRQUFRO0tBQ2Y7SUFDRCxRQUFRLEVBQXVCO1FBQzdCLEdBQUcsRUFBRSxrQkFBa0I7UUFDdkIsS0FBSyxFQUFFLGdDQUFnQztRQUN2QyxJQUFJLEVBQUUsUUFBUTtLQUNmO0lBQ0QsU0FBUyxFQUF1QjtRQUM5QixHQUFHLEVBQUUsbUJBQW1CO1FBQ3hCLEtBQUssRUFBRSxpQ0FBaUM7UUFDeEMsSUFBSSxFQUFFLFFBQVE7S0FDZjtJQUNELFVBQVUsRUFBdUI7UUFDL0IsR0FBRyxFQUFFLG9CQUFvQjtRQUN6QixLQUFLLEVBQUUsdUNBQXVDO1FBQzlDLElBQUksRUFBRSxRQUFRO0tBQ2Y7SUFDRCxVQUFVLEVBQXVCO1FBQy9CLEdBQUcsRUFBRSxvQkFBb0I7UUFDekIsS0FBSyxFQUFFLGtDQUFrQztRQUN6QyxJQUFJLEVBQUUsUUFBUTtRQUNkLGFBQWE7UUFDYjs7O1lBR0k7S0FDTDtJQUNELHlCQUF5QixFQUF1QjtRQUM5QyxHQUFHLEVBQUUsNkJBQTZCO1FBQ2xDLEtBQUssRUFBRSxnREFBZ0Q7UUFDdkQsSUFBSSxFQUFFLFFBQVE7S0FDZjtJQUNELHFCQUFxQixFQUF1QjtRQUMxQyxHQUFHLEVBQUUsMkJBQTJCO1FBQ2hDLEtBQUssRUFBRSw4Q0FBOEM7UUFDckQsSUFBSSxFQUFFLFFBQVE7S0FDZjtJQUNELGFBQWEsRUFBdUI7UUFDbEMsR0FBRyxFQUFFLHVCQUF1QjtRQUM1QixLQUFLLEVBQUUsc0NBQXNDO1FBQzdDLElBQUksRUFBRSxPQUFPO0tBQ2Q7SUFDRCxlQUFlLEVBQXVCO1FBQ3BDLEdBQUcsRUFBRSx5QkFBeUI7UUFDOUIsS0FBSyxFQUFFLHdDQUF3QztRQUMvQyxJQUFJLEVBQUUsT0FBTztLQUNkO0lBQ0QsY0FBYyxFQUF1QjtRQUNuQyxHQUFHLEVBQUUsd0JBQXdCO1FBQzdCLEtBQUssRUFBRSx1Q0FBdUM7UUFDOUMsSUFBSSxFQUFFLE9BQU87S0FDZDtJQUNELGFBQWEsRUFBdUI7UUFDbEMsR0FBRyxFQUFFLHVCQUF1QjtRQUM1QixLQUFLLEVBQUUsc0NBQXNDO1FBQzdDLElBQUksRUFBRSxPQUFPO0tBQ2Q7SUFDRCxhQUFhLEVBQXVCO1FBQ2xDLEdBQUcsRUFBRSx1QkFBdUI7UUFDNUIsS0FBSyxFQUFFLHNDQUFzQztRQUM3QyxJQUFJLEVBQUUsT0FBTztLQUNkO0lBQ0QsWUFBWSxFQUF1QjtRQUNqQyxHQUFHLEVBQUUsc0JBQXNCO1FBQzNCLEtBQUssRUFBRSxxQ0FBcUM7UUFDNUMsSUFBSSxFQUFFLE9BQU87S0FDZDtJQUNELFlBQVksRUFBdUI7UUFDakMsR0FBRyxFQUFFLHNCQUFzQjtRQUMzQixLQUFLLEVBQUUscUNBQXFDO1FBQzVDLElBQUksRUFBRSxPQUFPO0tBQ2Q7SUFDRCwyQkFBMkIsRUFBdUI7UUFDaEQsR0FBRyxFQUFFLG9DQUFvQztRQUN6QyxLQUFLLEVBQUUsbURBQW1EO1FBQzFELElBQUksRUFBRSxPQUFPO0tBQ2Q7SUFDRCxpQ0FBaUMsRUFBdUI7UUFDdEQsR0FBRyxFQUFFLHlDQUF5QztRQUM5QyxLQUFLLEVBQUUseURBQXlEO1FBQ2hFLElBQUksRUFBRSxPQUFPO0tBQ2Q7SUFDRCxvQ0FBb0MsRUFBdUI7UUFDekQsR0FBRyxFQUFFLDRDQUE0QztRQUNqRCxLQUFLLEVBQUUsNERBQTREO1FBQ25FLElBQUksRUFBRSxPQUFPO0tBQ2Q7SUFDRCxtQkFBbUIsRUFBdUI7UUFDeEMsR0FBRyxFQUFFLDZCQUE2QjtRQUNsQyxLQUFLLEVBQUUsMkNBQTJDO1FBQ2xELElBQUksRUFBRSxRQUFRO0tBQ2Y7SUFDRCxXQUFXLEVBQXVCO1FBQ2hDLEdBQUcsRUFBRSxpQ0FBaUM7UUFDdEMsS0FBSyxFQUFFLG1DQUFtQztRQUMxQyxJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVcsRUFBRSxJQUFJLEVBQUUsZ0NBQWdDO0tBQ3BEO0lBQ0QsZ0JBQWdCLEVBQXVCO1FBQ3JDLEdBQUcsRUFBRSwwQkFBMEI7UUFDL0IsS0FBSyxFQUFFLHdDQUF3QztRQUMvQyxJQUFJLEVBQUUsU0FBUztRQUNmLFlBQVksRUFBRSxLQUFLO1FBQ25CLFdBQVcsRUFBRSxJQUFJO0tBQ2xCO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVE9ETzogcmVuYW1lIHRvIENPTkZJR19PUFRJT05TX01BUFxuLy8gdGhlbiBkZWNsYXJlIGEgdHlwZSBsaWtlIHRoaXMgOlxuLy8gPiBleHBvcnQgZGVjbGFyZSB0eXBlIENvbmZpZ09wdGlvbnMgPSBrZXkgb2YgQ09ORklHX09QVElPTlNfTUFQXG5pbXBvcnQgeyBGb3JtRmllbGREZWZpbml0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0vZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgQVBQX0xPQ0FMRVMgfSBmcm9tICcuLi9tb2RlbC9zZXR0aW5ncy5tb2RlbCc7XG5pbXBvcnQgeyBBdXRoVG9rZW5UeXBlIH0gZnJvbSAnLi4vbmV0d29yay50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBDT1JFX0NPTkZJR19PUFRJT05TID0gT2JqZWN0LmZyZWV6ZSh7XG4gIExPR086IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmxvZ28nLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkxPR08nLFxuICAgIHR5cGU6ICdzdHJpbmcnLFxuICB9LFxuICBGQVZJQ09OOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5mYXZpY29uJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5GQVZJQ09OJyxcbiAgICB0eXBlOiAnc3RyaW5nJyxcbiAgfSxcbiAgREVGQVVMVF9MT0NBTEU6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmRlZmF1bHRMb2NhbGUnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkRFRkFVTFRfTE9DQUxFJyxcbiAgICB0eXBlOiAnZW51bScsXG4gICAgdmFsdWVzOiBBUFBfTE9DQUxFUyxcbiAgfSxcbiAgREVGQVVMVF9MQVRfTE9OR19GT1JNQVQ6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmRlZmF1bHRMYXRMb25nRm9ybWF0JyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5ERUZBVUxUX0xBVExPTkdfRk9STUFUJyxcbiAgICB0eXBlOiAnZW51bScsXG4gICAgdmFsdWVzOiBbXG4gICAgICB7XG4gICAgICAgIGtleTogJ0RETU1TUycsXG4gICAgICAgIHZhbHVlOiAnQ09NTU9OLkxBVF9MT05HLkRETU1TU19QTEFDRUhPTERFUicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdERE1NJyxcbiAgICAgICAgdmFsdWU6ICdDT01NT04uTEFUX0xPTkcuRERNTV9QTEFDRUhPTERFUicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdERCcsXG4gICAgICAgIHZhbHVlOiAnQ09NTU9OLkxBVF9MT05HLkREX1BMQUNFSE9MREVSJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgREVGQVVMVF9MQVRfTE9OR19GT1JNQVRfRU5BQkxFRDogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuZGVmYXVsdExhdExvbmdGb3JtYXQuZW5hYmxlZCcsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuRU5BQkxFX0RFRkFVTFRfTEFUTE9OR19GT1JNQVQnLFxuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gIH0sXG4gIFJFR0lTVFJBVElPTl9FTkFCTEU6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLnJlZ2lzdHJhdGlvbi5lbmFibGUnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkhPTUUuRU5BQkxFX1JFR0lTVFJBVElPTicsXG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgfSxcbiAgQVVUSF9UT0tFTl9UWVBFOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5hdXRoLnRva2VuLnR5cGUnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkFVVEhfVE9LRU5fVFlQRV9QTEFDRUhPTERFUicsXG4gICAgdHlwZTogJ2VudW0nLFxuICAgIHZhbHVlczogW1xuICAgICAge1xuICAgICAgICBrZXk6IDxBdXRoVG9rZW5UeXBlPid0b2tlbicsXG4gICAgICAgIHZhbHVlOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkFVVEhfVE9LRU5fVFlQRS5UT0tFTicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6IDxBdXRoVG9rZW5UeXBlPidiYXNpYycsXG4gICAgICAgIHZhbHVlOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkFVVEhfVE9LRU5fVFlQRS5CQVNJQycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6IDxBdXRoVG9rZW5UeXBlPidiYXNpYy1hbmQtdG9rZW4nLFxuICAgICAgICB2YWx1ZTogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5BVVRIX1RPS0VOX1RZUEUuQkFTSUNfQU5EX1RPS0VOJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBkZWZhdWx0VmFsdWU6IDxBdXRoVG9rZW5UeXBlPid0b2tlbicsXG4gIH0sXG4gIEFVVEhfQVBJX1RPS0VOX0VOQUJMRUQ6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmF1dGguYXBpLnRva2VuLmVuYWJsZWQnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkVOQUJMRV9BVVRIX0FQSV9UT0tFTlMnLFxuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGlzVHJhbnNpZW50OiB0cnVlLFxuICB9LFxuICBBVVRIX0FQSV9UT0tFTl9TQ09QRV9FTkFCTEVEOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5hdXRoLmFwaS50b2tlbi5zY29wZS5lbmFibGVkJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5FTkFCTEVfQVVUSF9BUElfVE9LRU5TX1NDT1BFJyxcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBpc1RyYW5zaWVudDogdHJ1ZSxcbiAgfSxcbiAgREVGQVVMVF9BVVRIX0FQSV9UT0tFTl9TQ09QRTogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuYXV0aC5hcGkudG9rZW4uc2NvcGUuZGVmYXVsdCcsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuREVGQVVMVF9BVVRIX0FQSV9UT0tFTl9TQ09QRScsXG4gICAgdHlwZTogJ3N0cmluZycsXG4gICAgZGVmYXVsdFZhbHVlOiAncmVhZF9hcGknLFxuICAgIGlzVHJhbnNpZW50OiB0cnVlLFxuICB9LFxuICBHUkFWQVRBUl9FTkFCTEU6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmdyYXZhdGFyLmVuYWJsZScsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuRU5BQkxFX0dSQVZBVEFSJyxcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgfSxcbiAgR1JBVkFUQVJfVVJMOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5ncmF2YXRhci51cmwnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkdSQVZBVEFSX1VSTCcsXG4gICAgdHlwZTogJ3N0cmluZycsXG4gICAgZGVmYXVsdFZhbHVlOiAnaHR0cHM6Ly93d3cuZ3JhdmF0YXIuY29tL2F2YXRhci97bWQ1fScsXG4gIH0sXG4gIFRFU1RJTkc6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLnRlc3RpbmcuZW5hYmxlJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5URVNUSU5HJyxcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gIH0sXG4gIEFQUF9NSU5fVkVSU0lPTjogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuYXBwLnZlcnNpb24ubWluJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5BUFBfTUlOX1ZFUlNJT04nLFxuICAgIHR5cGU6ICdzdHJpbmcnLFxuICB9LFxuICBIRUxQX1VSTDogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuaGVscC51cmwnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkhFTFBfVVJMJyxcbiAgICB0eXBlOiAnc3RyaW5nJyxcbiAgfSxcbiAgRk9SVU1fVVJMOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5mb3J1bS51cmwnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkZPUlVNX1VSTCcsXG4gICAgdHlwZTogJ3N0cmluZycsXG4gIH0sXG4gIExPR09fTEFSR0U6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmxvZ28ubGFyZ2UnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkhPTUUuTE9HT19MQVJHRScsXG4gICAgdHlwZTogJ3N0cmluZycsXG4gIH0sXG4gIE1FTlVfSVRFTVM6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLm1lbnUuaXRlbXMnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLk1FTlUuSVRFTVMnLFxuICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIC8vIC0tIEZPUiBERVZcbiAgICAvKixkZWZhdWx0VmFsdWU6IEpTT04uc3RyaW5naWZ5KFtcbiAgICAgICAge3RpdGxlOiBcIkl0ZW0gIzFcIiwgcGF0aDogXCIvc2V0dGluZ3NcIiwgaWNvbjogXCJwZW9wbGVcIiwgYWZ0ZXI6IFwiTUVOVS5IT01FXCJ9LFxuICAgICAgICB7dGl0bGU6IFwiSXRlbSAjMlwiLCBwYXRoOiBcIi9zZXR0aW5nc1wiLCBpY29uOiBcInBlb3BsZVwiLCBiZWZvcmU6IFwiTUVOVS5MT0dPVVRcIn1cbiAgICBdKSovXG4gIH0sXG4gIEhPTUVfUEFSVE5FUlNfREVQQVJUTUVOVFM6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLnBhcnRuZXIuZGVwYXJ0bWVudHMnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkhPTUUuUEFSVE5FUl9ERVBBUlRNRU5UUycsXG4gICAgdHlwZTogJ3N0cmluZycsXG4gIH0sXG4gIEhPTUVfQkFDS0dST1VORF9JTUFHRTogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuYmFja2dyb3VuZC5pbWFnZXMnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkhPTUUuQkFDS0dST1VORF9JTUFHRVMnLFxuICAgIHR5cGU6ICdzdHJpbmcnLFxuICB9LFxuICBDT0xPUl9QUklNQVJZOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5jb2xvci5wcmltYXJ5JyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5DT0xPUlMuUFJJTUFSWScsXG4gICAgdHlwZTogJ2NvbG9yJyxcbiAgfSxcbiAgQ09MT1JfU0VDT05EQVJZOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5jb2xvci5zZWNvbmRhcnknLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkNPTE9SUy5TRUNPTkRBUlknLFxuICAgIHR5cGU6ICdjb2xvcicsXG4gIH0sXG4gIENPTE9SX1RFUlRJQVJZOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5jb2xvci50ZXJ0aWFyeScsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuQ09MT1JTLlRFUlRJQVJZJyxcbiAgICB0eXBlOiAnY29sb3InLFxuICB9LFxuICBDT0xPUl9TVUNDRVNTOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5jb2xvci5zdWNjZXNzJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5DT0xPUlMuU1VDQ0VTUycsXG4gICAgdHlwZTogJ2NvbG9yJyxcbiAgfSxcbiAgQ09MT1JfV0FSTklORzogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuY29sb3Iud2FybmluZycsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuQ09MT1JTLldBUk5JTkcnLFxuICAgIHR5cGU6ICdjb2xvcicsXG4gIH0sXG4gIENPTE9SX0FDQ0VOVDogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuY29sb3IuYWNjZW50JyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5DT0xPUlMuQUNDRU5UJyxcbiAgICB0eXBlOiAnY29sb3InLFxuICB9LFxuICBDT0xPUl9EQU5HRVI6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmNvbG9yLmRhbmdlcicsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuQ09MT1JTLkRBTkdFUicsXG4gICAgdHlwZTogJ2NvbG9yJyxcbiAgfSxcbiAgRk9STV9GSUVMRF9CQUNLR1JPVU5EX0NPTE9SOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy50aGVtZS5maWVsZEJhY2tncm91bmRDb2xvcicsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuRk9STV9GSUVMRF9CQUNLR1JPVU5EX0NPTE9SJyxcbiAgICB0eXBlOiAnY29sb3InLFxuICB9LFxuICBGT1JNX0ZJRUxEX0ZPQ1VTX0JBQ0tHUk9VTkRfQ09MT1I6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLnRoZW1lLmZpZWxkRm9jdXNCYWNrZ3JvdW5kQ29sb3InLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkZPUk1fRklFTERfRk9DVVNfQkFDS0dST1VORF9DT0xPUicsXG4gICAgdHlwZTogJ2NvbG9yJyxcbiAgfSxcbiAgRk9STV9GSUVMRF9ESVNBQkxFRF9CQUNLR1JPVU5EX0NPTE9SOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy50aGVtZS5maWVsZERpc2FibGVkQmFja2dyb3VuZENvbG9yJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5GT1JNX0ZJRUxEX0RJU0FCTEVEX0JBQ0tHUk9VTkRfQ09MT1InLFxuICAgIHR5cGU6ICdjb2xvcicsXG4gIH0sXG4gIEFORFJPSURfSU5TVEFMTF9VUkw6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmFuZHJvaWQuaW5zdGFsbC51cmwnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkFORFJPSURfSU5TVEFMTF9VUkwnLFxuICAgIHR5cGU6ICdzdHJpbmcnLFxuICB9LFxuICBEQl9USU1FWk9ORTogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMucGVyc2lzdGVuY2UuZGIudGltZXpvbmUnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkRCX1RJTUVaT05FJyxcbiAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICBpc1RyYW5zaWVudDogdHJ1ZSwgLy8gT25seSBvbiBzZXJ2ZXIsIGNhbm5vdCBiZSBzZXRcbiAgfSxcbiAgQUNDT1VOVF9SRUFET05MWTogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuYWNjb3VudC5yZWFkT25seScsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuQUNDT1VOVC5SRUFET05MWScsXG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgaXNUcmFuc2llbnQ6IHRydWUsXG4gIH0sXG59KTtcbiJdfQ==
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvY29uZmlnL2NvcmUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUd0RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQy9DLElBQUksRUFBdUI7UUFDekIsR0FBRyxFQUFFLGNBQWM7UUFDbkIsS0FBSyxFQUFFLDRCQUE0QjtRQUNuQyxJQUFJLEVBQUUsUUFBUTtLQUNmO0lBQ0QsT0FBTyxFQUF1QjtRQUM1QixHQUFHLEVBQUUsaUJBQWlCO1FBQ3RCLEtBQUssRUFBRSwrQkFBK0I7UUFDdEMsSUFBSSxFQUFFLFFBQVE7S0FDZjtJQUNELGNBQWMsRUFBdUI7UUFDbkMsR0FBRyxFQUFFLHVCQUF1QjtRQUM1QixLQUFLLEVBQUUsc0NBQXNDO1FBQzdDLElBQUksRUFBRSxNQUFNO1FBQ1osTUFBTSxFQUFFLFdBQVc7S0FDcEI7SUFDRCx1QkFBdUIsRUFBdUI7UUFDNUMsR0FBRyxFQUFFLDhCQUE4QjtRQUNuQyxLQUFLLEVBQUUsOENBQThDO1FBQ3JELElBQUksRUFBRSxNQUFNO1FBQ1osTUFBTSxFQUFFO1lBQ047Z0JBQ0UsR0FBRyxFQUFFLFFBQVE7Z0JBQ2IsS0FBSyxFQUFFLG9DQUFvQzthQUM1QztZQUNEO2dCQUNFLEdBQUcsRUFBRSxNQUFNO2dCQUNYLEtBQUssRUFBRSxrQ0FBa0M7YUFDMUM7WUFDRDtnQkFDRSxHQUFHLEVBQUUsSUFBSTtnQkFDVCxLQUFLLEVBQUUsZ0NBQWdDO2FBQ3hDO1NBQ0Y7S0FDRjtJQUNEOztPQUVHO0lBQ0gsYUFBYTtJQUNiLCtCQUErQixFQUF1QjtRQUNwRCxHQUFHLEVBQUUsc0NBQXNDO1FBQzNDLEtBQUssRUFBRSxxREFBcUQ7UUFDNUQs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SUFDRCxtQkFBbUIsRUFBdUI7UUFDeEMsR0FBRyxFQUFFLDZCQUE2QjtRQUNsQyxLQUFLLEVBQUUsMkNBQTJDO1FBQ2xELElBQUksRUFBRSxRQUFRO0tBQ2Y7SUFDRCxXQUFXLEVBQXVCO1FBQ2hDLEdBQUcsRUFBRSxpQ0FBaUM7UUFDdEMsS0FBSyxFQUFFLG1DQUFtQztRQUMxQyxJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVcsRUFBRSxJQUFJLEVBQUUsZ0NBQWdDO0tBQ3BEO0lBQ0QsOEJBQThCLEVBQXVCO1FBQ25ELEdBQUcsRUFBRSxzQ0FBc0M7UUFDM0MsS0FBSyxFQUFFLHFEQUFxRDtRQUM1RCxJQUFJLEVBQUUsU0FBUztRQUNmLFlBQVksRUFBRSxJQUFJO0tBQ25CO0lBQ0QsZ0JBQWdCLEVBQXVCO1FBQ3JDLEdBQUcsRUFBRSwwQkFBMEI7UUFDL0IsS0FBSyxFQUFFLHdDQUF3QztRQUMvQyxJQUFJLEVBQUUsU0FBUztRQUNmLFlBQVksRUFBRSxLQUFLO1FBQ25CLFdBQVcsRUFBRSxJQUFJO0tBQ2xCO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVE9ETzogcmVuYW1lIHRvIENPTkZJR19PUFRJT05TX01BUFxuLy8gdGhlbiBkZWNsYXJlIGEgdHlwZSBsaWtlIHRoaXMgOlxuLy8gPiBleHBvcnQgZGVjbGFyZSB0eXBlIENvbmZpZ09wdGlvbnMgPSBrZXkgb2YgQ09ORklHX09QVElPTlNfTUFQXG5pbXBvcnQgeyBGb3JtRmllbGREZWZpbml0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0vZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgQVBQX0xPQ0FMRVMgfSBmcm9tICcuLi9tb2RlbC9zZXR0aW5ncy5tb2RlbCc7XG5pbXBvcnQgeyBBdXRoVG9rZW5UeXBlIH0gZnJvbSAnLi4vbmV0d29yay50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBDT1JFX0NPTkZJR19PUFRJT05TID0gT2JqZWN0LmZyZWV6ZSh7XG4gIExPR086IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmxvZ28nLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkxPR08nLFxuICAgIHR5cGU6ICdzdHJpbmcnLFxuICB9LFxuICBGQVZJQ09OOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5mYXZpY29uJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5GQVZJQ09OJyxcbiAgICB0eXBlOiAnc3RyaW5nJyxcbiAgfSxcbiAgREVGQVVMVF9MT0NBTEU6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmRlZmF1bHRMb2NhbGUnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkRFRkFVTFRfTE9DQUxFJyxcbiAgICB0eXBlOiAnZW51bScsXG4gICAgdmFsdWVzOiBBUFBfTE9DQUxFUyxcbiAgfSxcbiAgREVGQVVMVF9MQVRfTE9OR19GT1JNQVQ6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmRlZmF1bHRMYXRMb25nRm9ybWF0JyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5ERUZBVUxUX0xBVExPTkdfRk9STUFUJyxcbiAgICB0eXBlOiAnZW51bScsXG4gICAgdmFsdWVzOiBbXG4gICAgICB7XG4gICAgICAgIGtleTogJ0RETU1TUycsXG4gICAgICAgIHZhbHVlOiAnQ09NTU9OLkxBVF9MT05HLkRETU1TU19QTEFDRUhPTERFUicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdERE1NJyxcbiAgICAgICAgdmFsdWU6ICdDT01NT04uTEFUX0xPTkcuRERNTV9QTEFDRUhPTERFUicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdERCcsXG4gICAgICAgIHZhbHVlOiAnQ09NTU9OLkxBVF9MT05HLkREX1BMQUNFSE9MREVSJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgQUNDT1VOVF9MQVRfTE9OR19GT1JNQVRfRU5BQkxFYCBpbnN0ZWFkXG4gICAqL1xuICAvL0BkZXByZWNhdGVkXG4gIERFRkFVTFRfTEFUX0xPTkdfRk9STUFUX0VOQUJMRUQ6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmRlZmF1bHRMYXRMb25nRm9ybWF0LmVuYWJsZWQnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkVOQUJMRV9ERUZBVUxUX0xBVExPTkdfRk9STUFUJyxcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiB0cnVlLCAvLyBJbXBvcnRhbnQsIGZvciBjb21wYXRpYmlsaXR5IHJlYXNvbiBhZnRlciBkZXByZWNhdGlvblxuICB9LFxuICBSRUdJU1RSQVRJT05fRU5BQkxFOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5yZWdpc3RyYXRpb24uZW5hYmxlJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5IT01FLkVOQUJMRV9SRUdJU1RSQVRJT04nLFxuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gIH0sXG4gIEFVVEhfVE9LRU5fVFlQRTogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuYXV0aC50b2tlbi50eXBlJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5BVVRIX1RPS0VOX1RZUEVfUExBQ0VIT0xERVInLFxuICAgIHR5cGU6ICdlbnVtJyxcbiAgICB2YWx1ZXM6IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiA8QXV0aFRva2VuVHlwZT4ndG9rZW4nLFxuICAgICAgICB2YWx1ZTogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5BVVRIX1RPS0VOX1RZUEUuVE9LRU4nLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiA8QXV0aFRva2VuVHlwZT4nYmFzaWMnLFxuICAgICAgICB2YWx1ZTogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5BVVRIX1RPS0VOX1RZUEUuQkFTSUMnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiA8QXV0aFRva2VuVHlwZT4nYmFzaWMtYW5kLXRva2VuJyxcbiAgICAgICAgdmFsdWU6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuQVVUSF9UT0tFTl9UWVBFLkJBU0lDX0FORF9UT0tFTicsXG4gICAgICB9LFxuICAgIF0sXG4gICAgZGVmYXVsdFZhbHVlOiA8QXV0aFRva2VuVHlwZT4ndG9rZW4nLFxuICB9LFxuICBBVVRIX0FQSV9UT0tFTl9FTkFCTEVEOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5hdXRoLmFwaS50b2tlbi5lbmFibGVkJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5FTkFCTEVfQVVUSF9BUElfVE9LRU5TJyxcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBpc1RyYW5zaWVudDogdHJ1ZSxcbiAgfSxcbiAgQVVUSF9BUElfVE9LRU5fU0NPUEVfRU5BQkxFRDogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuYXV0aC5hcGkudG9rZW4uc2NvcGUuZW5hYmxlZCcsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuRU5BQkxFX0FVVEhfQVBJX1RPS0VOU19TQ09QRScsXG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgaXNUcmFuc2llbnQ6IHRydWUsXG4gIH0sXG4gIERFRkFVTFRfQVVUSF9BUElfVE9LRU5fU0NPUEU6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmF1dGguYXBpLnRva2VuLnNjb3BlLmRlZmF1bHQnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkRFRkFVTFRfQVVUSF9BUElfVE9LRU5fU0NPUEUnLFxuICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIGRlZmF1bHRWYWx1ZTogJ3JlYWRfYXBpJyxcbiAgICBpc1RyYW5zaWVudDogdHJ1ZSxcbiAgfSxcbiAgR1JBVkFUQVJfRU5BQkxFOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5ncmF2YXRhci5lbmFibGUnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkVOQUJMRV9HUkFWQVRBUicsXG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gIH0sXG4gIEdSQVZBVEFSX1VSTDogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuZ3JhdmF0YXIudXJsJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5HUkFWQVRBUl9VUkwnLFxuICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIGRlZmF1bHRWYWx1ZTogJ2h0dHBzOi8vd3d3LmdyYXZhdGFyLmNvbS9hdmF0YXIve21kNX0nLFxuICB9LFxuICBURVNUSU5HOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy50ZXN0aW5nLmVuYWJsZScsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuVEVTVElORycsXG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICB9LFxuICBBUFBfTUlOX1ZFUlNJT046IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmFwcC52ZXJzaW9uLm1pbicsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuQVBQX01JTl9WRVJTSU9OJyxcbiAgICB0eXBlOiAnc3RyaW5nJyxcbiAgfSxcbiAgSEVMUF9VUkw6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmhlbHAudXJsJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5IRUxQX1VSTCcsXG4gICAgdHlwZTogJ3N0cmluZycsXG4gIH0sXG4gIEZPUlVNX1VSTDogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuZm9ydW0udXJsJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5GT1JVTV9VUkwnLFxuICAgIHR5cGU6ICdzdHJpbmcnLFxuICB9LFxuICBMT0dPX0xBUkdFOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5sb2dvLmxhcmdlJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5IT01FLkxPR09fTEFSR0UnLFxuICAgIHR5cGU6ICdzdHJpbmcnLFxuICB9LFxuICBNRU5VX0lURU1TOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5tZW51Lml0ZW1zJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5NRU5VLklURU1TJyxcbiAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAvLyAtLSBGT1IgREVWXG4gICAgLyosZGVmYXVsdFZhbHVlOiBKU09OLnN0cmluZ2lmeShbXG4gICAgICAgIHt0aXRsZTogXCJJdGVtICMxXCIsIHBhdGg6IFwiL3NldHRpbmdzXCIsIGljb246IFwicGVvcGxlXCIsIGFmdGVyOiBcIk1FTlUuSE9NRVwifSxcbiAgICAgICAge3RpdGxlOiBcIkl0ZW0gIzJcIiwgcGF0aDogXCIvc2V0dGluZ3NcIiwgaWNvbjogXCJwZW9wbGVcIiwgYmVmb3JlOiBcIk1FTlUuTE9HT1VUXCJ9XG4gICAgXSkqL1xuICB9LFxuICBIT01FX1BBUlRORVJTX0RFUEFSVE1FTlRTOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5wYXJ0bmVyLmRlcGFydG1lbnRzJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5IT01FLlBBUlRORVJfREVQQVJUTUVOVFMnLFxuICAgIHR5cGU6ICdzdHJpbmcnLFxuICB9LFxuICBIT01FX0JBQ0tHUk9VTkRfSU1BR0U6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmJhY2tncm91bmQuaW1hZ2VzJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5IT01FLkJBQ0tHUk9VTkRfSU1BR0VTJyxcbiAgICB0eXBlOiAnc3RyaW5nJyxcbiAgfSxcbiAgQ09MT1JfUFJJTUFSWTogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuY29sb3IucHJpbWFyeScsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuQ09MT1JTLlBSSU1BUlknLFxuICAgIHR5cGU6ICdjb2xvcicsXG4gIH0sXG4gIENPTE9SX1NFQ09OREFSWTogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuY29sb3Iuc2Vjb25kYXJ5JyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5DT0xPUlMuU0VDT05EQVJZJyxcbiAgICB0eXBlOiAnY29sb3InLFxuICB9LFxuICBDT0xPUl9URVJUSUFSWTogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuY29sb3IudGVydGlhcnknLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkNPTE9SUy5URVJUSUFSWScsXG4gICAgdHlwZTogJ2NvbG9yJyxcbiAgfSxcbiAgQ09MT1JfU1VDQ0VTUzogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuY29sb3Iuc3VjY2VzcycsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuQ09MT1JTLlNVQ0NFU1MnLFxuICAgIHR5cGU6ICdjb2xvcicsXG4gIH0sXG4gIENPTE9SX1dBUk5JTkc6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmNvbG9yLndhcm5pbmcnLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkNPTE9SUy5XQVJOSU5HJyxcbiAgICB0eXBlOiAnY29sb3InLFxuICB9LFxuICBDT0xPUl9BQ0NFTlQ6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmNvbG9yLmFjY2VudCcsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuQ09MT1JTLkFDQ0VOVCcsXG4gICAgdHlwZTogJ2NvbG9yJyxcbiAgfSxcbiAgQ09MT1JfREFOR0VSOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5jb2xvci5kYW5nZXInLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkNPTE9SUy5EQU5HRVInLFxuICAgIHR5cGU6ICdjb2xvcicsXG4gIH0sXG4gIEZPUk1fRklFTERfQkFDS0dST1VORF9DT0xPUjogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMudGhlbWUuZmllbGRCYWNrZ3JvdW5kQ29sb3InLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkZPUk1fRklFTERfQkFDS0dST1VORF9DT0xPUicsXG4gICAgdHlwZTogJ2NvbG9yJyxcbiAgfSxcbiAgRk9STV9GSUVMRF9GT0NVU19CQUNLR1JPVU5EX0NPTE9SOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy50aGVtZS5maWVsZEZvY3VzQmFja2dyb3VuZENvbG9yJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5GT1JNX0ZJRUxEX0ZPQ1VTX0JBQ0tHUk9VTkRfQ09MT1InLFxuICAgIHR5cGU6ICdjb2xvcicsXG4gIH0sXG4gIEZPUk1fRklFTERfRElTQUJMRURfQkFDS0dST1VORF9DT0xPUjogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMudGhlbWUuZmllbGREaXNhYmxlZEJhY2tncm91bmRDb2xvcicsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuRk9STV9GSUVMRF9ESVNBQkxFRF9CQUNLR1JPVU5EX0NPTE9SJyxcbiAgICB0eXBlOiAnY29sb3InLFxuICB9LFxuICBBTkRST0lEX0lOU1RBTExfVVJMOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5hbmRyb2lkLmluc3RhbGwudXJsJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5BTkRST0lEX0lOU1RBTExfVVJMJyxcbiAgICB0eXBlOiAnc3RyaW5nJyxcbiAgfSxcbiAgREJfVElNRVpPTkU6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLnBlcnNpc3RlbmNlLmRiLnRpbWV6b25lJyxcbiAgICBsYWJlbDogJ0NPTkZJR1VSQVRJT04uT1BUSU9OUy5EQl9USU1FWk9ORScsXG4gICAgdHlwZTogJ3N0cmluZycsXG4gICAgaXNUcmFuc2llbnQ6IHRydWUsIC8vIE9ubHkgb24gc2VydmVyLCBjYW5ub3QgYmUgc2V0XG4gIH0sXG4gIEFDQ09VTlRfTEFUX0xPTkdfRk9STUFUX0VOQUJMRTogPEZvcm1GaWVsZERlZmluaXRpb24+e1xuICAgIGtleTogJ3N1bWFyaXMuYWNjb3VudC5sYXRMb25nRm9ybWF0LmVuYWJsZScsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuQUNDT1VOVC5FTkFCTEVfTEFUTE9OR19GT1JNQVQnLFxuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gIH0sXG4gIEFDQ09VTlRfUkVBRE9OTFk6IDxGb3JtRmllbGREZWZpbml0aW9uPntcbiAgICBrZXk6ICdzdW1hcmlzLmFjY291bnQucmVhZE9ubHknLFxuICAgIGxhYmVsOiAnQ09ORklHVVJBVElPTi5PUFRJT05TLkFDQ09VTlQuUkVBRE9OTFknLFxuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGlzVHJhbnNpZW50OiB0cnVlLFxuICB9LFxufSk7XG4iXX0=