ngx-bimplus-components 0.0.152 → 0.0.153

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.
@@ -192,10 +192,10 @@ function createDefaultItems() {
192
192
  {
193
193
  buttonId: 'cmButToggleProjection',
194
194
  type: 'button',
195
- iconClass: 'ui-icon-perspective-camera-projection',
196
- text: '_Perspective_projection_center_menu_tooltip',
197
- tooltip: '_Perspective_projection_center_menu_tooltip',
198
- tooltipDisabled: '_Perspective_projection_center_menu_tooltip',
195
+ iconClass: 'ui-icon-orthographic-camera-projection',
196
+ text: '_Orthographic_projection_center_menu_tooltip',
197
+ tooltip: '_Orthographic_projection_center_menu_tooltip',
198
+ tooltipDisabled: '_Orthographic_projection_center_menu_tooltip',
199
199
  actionClick: 'centerMenuToggleProjection',
200
200
  },
201
201
  ]
@@ -394,9 +394,10 @@ export class BimplusToolHubComponent extends BimplusLocalizedWidgetComponent {
394
394
  return;
395
395
  }
396
396
  this.isPerspectiveProjection = !this.isPerspectiveProjection;
397
- item.iconClass = this.isPerspectiveProjection ? 'ui-icon-perspective-camera-projection' : 'ui-icon-orthographic-camera-projection';
398
- item.tooltip = this.isPerspectiveProjection ? '_Perspective_projection_center_menu_tooltip' : '_Orthographic_projection_center_menu_tooltip';
399
- item.tooltipDisabled = this.isPerspectiveProjection ? '_Perspective_projection_center_menu_tooltip' : '_Orthographic_projection_center_menu_tooltip';
397
+ item.iconClass = this.isPerspectiveProjection ? 'ui-icon-orthographic-camera-projection' : 'ui-icon-perspective-camera-projection';
398
+ item.text = this.isPerspectiveProjection ? '_Orthographic_projection_center_menu_tooltip' : '_Perspective_projection_center_menu_tooltip';
399
+ item.tooltip = this.isPerspectiveProjection ? '_Orthographic_projection_center_menu_tooltip' : '_Perspective_projection_center_menu_tooltip';
400
+ item.tooltipDisabled = this.isPerspectiveProjection ? '_Orthographic_projection_center_menu_tooltip' : '_Perspective_projection_center_menu_tooltip';
400
401
  }
401
402
  closeActiveSubItemsView() {
402
403
  if (this._activeSubItemsView) {
@@ -496,4 +497,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
496
497
  }], subItemClicked: [{
497
498
  type: Output
498
499
  }] } });
499
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy10b29sLWh1Yi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9iaW1wbHVzLXRvb2wtaHViL2JpbXBsdXMtdG9vbC1odWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy10b29sLWh1Yi9iaW1wbHVzLXRvb2wtaHViLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUNoSixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQTtBQUNsSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFBOzs7Ozs7QUFJekUsZ0RBQWdEO0FBRWhELFNBQVMsMkJBQTJCO0lBQ2xDLE1BQU0sUUFBUSxHQUEwQjtRQUN0QyxpQkFBaUIsRUFBRSxFQUFFO1FBQ3JCLGVBQWUsRUFBRSxHQUFHO1FBQ3BCLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFNBQVMsRUFBRSxLQUFL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LElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDOytHQWhVVSx1QkFBdUI7bUdBQXZCLHVCQUF1Qix3SkFzRWQsZ0JBQWdCLG1GQVFoQixnQkFBZ0IsNENBeUJoQixnQkFBZ0IseUNBQ2hCLGdCQUFnQixzQ0FDaEIsZ0JBQWdCLDJGQTlHekIsQ0FBQyxnQkFBZ0IsQ0FBQyxpREMxTy9CLDBxSkE0SEEsdSsvQ0R3R0ksZUFBZSwyRkFDZixZQUFZLDhWQUNaLG9CQUFvQix1R0FDcEIsdUJBQXVCLDJHQUN2QixrQkFBa0I7OzRGQU9ULHVCQUF1QjtrQkFmbkMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3FCQUNuQixhQUNVLENBQUMsZ0JBQWdCLENBQUMsaUJBR2QsaUJBQWlCLENBQUMsU0FBUztxTEF3QjdCLFVBQVU7c0JBQXRCLEtBQUs7Z0JBeUJPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBd0JGLFdBQVc7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFTbEMsdUJBQXVCO3NCQUQxQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQXlCRSxVQUFVO3NCQUFqRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFNBQVM7c0JBQWhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDNUIsV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBib29sZWFuQXR0cmlidXRlLCBFbGVtZW50UmVmLCBPbkluaXQsIEFmdGVyVmlld0luaXQgIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgfSBmcm9tIFwiLi8uLi9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQvYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0LmNvbXBvbmVudFwiXHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UsIFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU1ZHR2VuZXJhdG9yIH0gZnJvbSAnLi9zdmdHZW5lcmF0b3InO1xyXG5pbXBvcnQgeyBUb29sSHViSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdG9vbC1odWItaXRlbS90b29sLWh1Yi1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2xIdWJTdWJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi90b29sLWh1Yi1zdWItaXRlbS90b29sLWh1Yi1zdWItaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEcmFnZ2FibGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2RyYWdnYWJsZS5kaXJlY3RpdmUnXHJcbmltcG9ydCB7IFRvb2xIdWJJdGVtLCBUb29sSHViU3ViSXRlbSwgVG9vbEh1YlZpc3VhbFNldHRpbmdzLCBUb29sSHViSXRlbVVuaXRzLCBUb29sSHViSXRlbVN0YXRlcyB9IGZyb20gJy4vYmltcGx1cy10b29sLWh1Yi5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBMYXlvdXRNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xheW91dC1tYW5hZ2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZXNpemVPYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXNpemUtb2JzZXJ2ZXIuc2VydmljZSc7XHJcbi8vaW1wb3J0IHsgZmlyZUV2ZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMnO1xyXG5cclxuZnVuY3Rpb24gY3JlYXRlRGVmYXVsdFZpc3VhbFNldHRpbmdzKCk6IFRvb2xIdWJWaXN1YWxTZXR0aW5ncyB7XHJcbiAgY29uc3Qgc2V0dGluZ3M6IFRvb2xIdWJWaXN1YWxTZXR0aW5ncyA9IHtcclxuICAgIHN1Yk1lbnVTdGFydEFuZ2xlOiA0MCxcclxuICAgIHN1Yk1lbnVFbmRBbmdsZTogMTQwLFxyXG4gICAgc3ZnUmFkaXVzSW5uZXI6IDUuNzUsXHJcbiAgICBzdmdSYWRpdXM6IDEwLjI1LFxyXG4gICAgc3ViTWVudUNlbnRlcjogWzE3LjI1LCAxNy41XSxcclxuICAgIHN1Yk1lbnVSYWRpdXM6IDE1LjUsXHJcbiAgICBzdWJNZW51V2lkdGg6IDUyLFxyXG4gICAgZGVhZFpvbmVDZW50ZXI6IFsxNywgMThdLFxyXG4gICAgZGVhZFpvbmVXaWR0aDogMTQwLFxyXG4gICAgZGVhZFpvbmVSYWRpdXM6IDIyLFxyXG4gICAgZGVhZFpvbmVTdGFydEFuZ2xlOiAzNSxcclxuICAgIGRlYWRab25lRW5kQW5nbGU6IDE0NVxyXG4gIH1cclxuICByZXR1cm4gc2V0dGluZ3M7XHJcbn1cclxuXHJcbi8vIFVzZSB3aGVuIGltcGxlbWVudGluZyBlbWJlZGRlZCBtb2RlXHJcbi8vIGZ1bmN0aW9uIGNyZWF0ZUVtYmVkZGVkU2V0dGluZ3MoKSA6IFRvb2xIdWJWaXN1YWxTZXR0aW5nc3tcclxuLy8gICBjb25zdCBzZXR0aW5ncyA6IFRvb2xIdWJWaXN1YWxTZXR0aW5ncyA9IHtcclxuLy8gICAgIHN1Yk1lbnVTdGFydEFuZ2xlIDogNDAsXHJcbi8vICAgICBzdWJNZW51RW5kQW5nbGUgOiAxNDAsXHJcbi8vICAgICBzdmdSYWRpdXNJbm5lciA6IDQsXHJcbi8vICAgICBzdmdSYWRpdXMgOiA3LjI1LFxyXG4vLyAgICAgc3ViTWVudUNlbnRlciA6IFsxNy4yNSwgMTcuM10sXHJcbi8vICAgICBzdWJNZW51UmFkaXVzIDogMTYuMixcclxuLy8gICAgIHN1Yk1lbnVXaWR0aCA6IDYyLFxyXG4vLyAgICAgZGVhZFpvbmVDZW50ZXIgOiBbMTYuNSwgMTZdLFxyXG4vLyAgICAgZGVhZFpvbmVXaWR0aCA6IDEyMCxcclxuLy8gICAgIGRlYWRab25lUmFkaXVzIDogMTgsXHJcbi8vICAgICBkZWFkWm9uZVN0YXJ0QW5nbGUgOiAzNSxcclxuLy8gICAgIGRlYWRab25lRW5kQW5nbGUgOiAxNDVcclxuLy8gICB9XHJcbi8vICAgcmV0dXJuIHNldHRpbmdzO1xyXG4vLyB9XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVEZWZhdWx0SXRlbXMoKTogQXJyYXk8VG9vbEh1Ykl0ZW0+IHtcclxuICBjb25zdCBpdGVtczogQXJyYXk8VG9vbEh1Ykl0ZW0+ID0gW1xyXG4gICAgLy8tLS0gY3JlYXRlIHRhc2sgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICB7XHJcbiAgICAgIGJ1dHRvbklkOiAnY21CdXRDcmVhdGVUYXNrJyxcclxuICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1jcmVhdGUtdGFzaycsXHJcbiAgICAgIHRleHQ6ICdfQ3JlYXRlX2lzc3VlX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX0NyZWF0ZV9pc3N1ZV9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcERpc2FibGVkOiAnX0NyZWF0ZV9pc3N1ZV9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgIH0sXHJcblxyXG4gICAgLy8tLS0gcXVhbnRpdHkgdGFrZW9mZiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHtcclxuICAgICAgYnV0dG9uSWQ6ICdjbUJ1dFF1YW50aXR5VGFrZU9mZicsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tcXVhbnRpdHktdGFrZS1vZmYnLFxyXG4gICAgICB0ZXh0OiAnX1F1YW50aXR5X3Rha2VfT2ZmX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX1F1YW50aXR5X3Rha2VfT2ZmX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfUXVhbnRpdHlfdGFrZV9PZmZfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICB9LFxyXG5cclxuICAgIC8vLS0tIG1hcmt1cCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHtcclxuICAgICAgYnV0dG9uSWQ6ICdjbUJ1dE1hcmt1cCcsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tbWFya3VwJyxcclxuICAgICAgdGV4dDogJ19NYXJrdXBzX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX01hcmt1cHNfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19NYXJrdXBzX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgfSxcclxuXHJcbiAgICAvLy0tLSBzZWN0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAge1xyXG4gICAgICBidXR0b25JZDogJ2NtQnV0U2VjdGlvbicsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tc2VjdGlvbicsXHJcbiAgICAgIHRleHQ6ICdfU2VjdGlvbmluZ19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcDogJ19TZWN0aW9uaW5nX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfU2VjdGlvbmluZ19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgIH0sXHJcblxyXG4gICAgLy8tLS0gaGlkZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHtcclxuICAgICAgYnV0dG9uSWQ6ICdjbUJ1dE9ialRyYW5zcE1lbnUnLFxyXG4gICAgICBpY29uQ2xhc3M6ICd1aS1pY29uLW9iai10cmFuc3AnLFxyXG4gICAgICB0ZXh0OiAnX0hpZGVfb2JqZWN0c19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcDogJ19IaWRlX29iamVjdHNfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19IaWRlX29iamVjdHNfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICB9LFxyXG5cclxuICAgIC8vLS0tIGlzb2xhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICB7XHJcbiAgICAgIGJ1dHRvbklkOiAnY21CdXRPYmpTZWwnLFxyXG4gICAgICBpY29uQ2xhc3M6ICd1aS1pY29uLW9iai1zZWxlY3QnLFxyXG4gICAgICB0ZXh0OiAnX0lzb2xhdGVfb2JqZWN0c19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcDogJ19Jc29sYXRlX29iamVjdHNfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19Jc29sYXRlX29iamVjdHNfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICB9LFxyXG5cclxuICAgIC8vLS0tIG5hdmlnYXRpb24gbWFwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAge1xyXG4gICAgICBidXR0b25JZDogJ2NtQnV0TmF2aWdhdGlvbk1hcCcsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tbmF2aWdhdGlvbi1tYXAnLFxyXG4gICAgICB0ZXh0OiAnX05hdmlnYXRpb25fbmFwX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX05hdmlnYXRpb25fbmFwX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfTmF2aWdhdGlvbl9uYXBfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICB9LFxyXG5cclxuICAgIC8vLS0tIGZ1bGxzY3JlZW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAge1xyXG4gICAgICBidXR0b25JZDogJ2NtQnV0RnVsbFNjcmVlbicsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tZnVsbHNjcmVlbicsXHJcbiAgICAgIHRleHQ6ICdfRnVsbHNjcmVlbl9ub2RlX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX0Z1bGxzY3JlZW5fbm9kZV9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcERpc2FibGVkOiAnX0Z1bGxzY3JlZW5fbm9kZV9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgIH0sXHJcblxyXG4gICAgLy8tLS0gcHJvamVjdCBuYXZpZ2F0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICB7XHJcbiAgICAgIGJ1dHRvbklkOiAnY21CdXRQcm9qZWN0TmF2aWdhdG9yJyxcclxuICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1wcm9qZWN0LW5hdmlnYXRvcicsXHJcbiAgICAgIHRleHQ6ICdfUHJvamVjdF9uYXZpZ2F0b3JfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXA6ICdfUHJvamVjdF9uYXZpZ2F0b3JfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19Qcm9qZWN0X25hdmlnYXRvcl9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgIH0sXHJcblxyXG4gICAgLy8tLS0gcmVzZXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICB7XHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tb2JqLXJlc2V0JyxcclxuICAgICAgYnV0dG9uSWQ6ICdjbUJ1dFJlc2V0T2JqJyxcclxuICAgICAgdGV4dDogJ19SZXNldF92aWV3cG9ydF9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcDogJ19SZXNldF92aWV3cG9ydF9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcERpc2FibGVkOiAnX1Jlc2V0X3ZpZXdwb3J0X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgfSxcclxuXHJcbiAgICAvLy0tLSB2aWV3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAge1xyXG4gICAgICBidXR0b25JZDogJ2NtQnV0UmVzZXRWcCcsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tcmVzZXQtdnAnLFxyXG4gICAgICB0ZXh0OiAnX1NlbGVjdF92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX1NlbGVjdF92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfU2VsZWN0X3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHN1Yk1lbnVJZDogJ2NtYi12aWV3LXN1Ym1lbnUnLFxyXG4gICAgICBzdWJJdGVtczogW1xyXG4gICAgICAgIC8vLS0tIEZyb250IFZpZXcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgYnV0dG9uSWQ6ICdjbUJ1dEZyb250VmlldycsXHJcbiAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcclxuICAgICAgICAgIGljb25DbGFzczogJ3VpLWljb24tZnJvbnQtdmlldycsXHJcbiAgICAgICAgICB0ZXh0OiAnX0Zyb250X3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICB0b29sdGlwOiAnX0Zyb250X3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfRnJvbnRfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIGFjdGlvbkNsaWNrOiAnY2VudGVyTWVudUZyb250Vmlld0NsaWNrJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vLS0tIFRvcCBWaWV3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGJ1dHRvbklkOiAnY21CdXRUb3BWaWV3JyxcclxuICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxyXG4gICAgICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi10b3AtdmlldycsXHJcbiAgICAgICAgICB0ZXh0OiAnX1RvcF92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICAgICAgdG9vbHRpcDogJ19Ub3Bfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19Ub3Bfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIGFjdGlvbkNsaWNrOiAnY2VudGVyTWVudVRvcFZpZXdDbGljaycsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLy0tLSBTaWRlIFZpZXcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgYnV0dG9uSWQ6ICdjbUJ1dFNpZGVWaWV3JyxcclxuICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxyXG4gICAgICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1zaWRlLXZpZXcnLFxyXG4gICAgICAgICAgdGV4dDogJ19TaWRlX3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICB0b29sdGlwOiAnX1NpZGVfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19TaWRlX3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICBhY3Rpb25DbGljazogJ2NlbnRlck1lbnVTaWRlVmlld0NsaWNrJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vLS0tIFBlcnNwZWN0aXZlIFZpZXcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgYnV0dG9uSWQ6ICdjbUJ1dFBlcnNwZWN0aXZlVmlldycsXHJcbiAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcclxuICAgICAgICAgIGljb25DbGFzczogJ3VpLWljb24tcGVyc3BlY3RpdmUtdmlldycsXHJcbiAgICAgICAgICB0ZXh0OiAnX1BlcnNwZWN0aXZlX3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICB0b29sdGlwOiAnX1BlcnNwZWN0aXZlX3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfUGVyc3BlY3RpdmVfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIGFjdGlvbkNsaWNrOiAnY2VudGVyTWVudVBlcnNwZWN0aXZlVmlld0NsaWNrJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vLS0tIFNlcGFyYXRvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgICAgICB7XHJcbiAgICAgICAgICBidXR0b25JZDogJ3Rvb2xodWJTdWJtZW51U2VwYXJhdG9ySWQxJyxcclxuICAgICAgICAgIHR5cGU6ICdzZXBhcmF0b3InLFxyXG4gICAgICAgICAgaWNvbkNsYXNzOiAnY2VudGVyLXN1Yi1tZW51LWJ1dHRvbi1pY29uIHRvb2xodWItc3VibWVudS1zZXBhcmF0b3InLFxyXG4gICAgICAgICAgdGV4dDogJycsXHJcbiAgICAgICAgICB0b29sdGlwOiAnJyxcclxuICAgICAgICAgIHRvb2x0aXBEaXNhYmxlZDogJycsXHJcbiAgICAgICAgICBhY3Rpb25DbGljazogJycsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLy0tLSBUb2dnbGUgYnV0dG9uIHBlcnNwZWN0aXZlL29ydGhvZ29uYWwgcHJvamVjdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGJ1dHRvbklkOiAnY21CdXRUb2dnbGVQcm9qZWN0aW9uJyxcclxuICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxyXG4gICAgICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1wZXJzcGVjdGl2ZS1jYW1lcmEtcHJvamVjdGlvbicsXHJcbiAgICAgICAgICB0ZXh0OiAnX1BlcnNwZWN0aXZlX3Byb2plY3Rpb25fY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICB0b29sdGlwOiAnX1BlcnNwZWN0aXZlX3Byb2plY3Rpb25fY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfUGVyc3BlY3RpdmVfcHJvamVjdGlvbl9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIGFjdGlvbkNsaWNrOiAnY2VudGVyTWVudVRvZ2dsZVByb2plY3Rpb24nLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF1cclxuICAgIH1cclxuICBdXHJcblxyXG4gIC8vIFNldCBhbGwgdG9vbCBodWIgaXRlbXMgc3RhdGVzIHRvIGluYWN0aXZlIGFuZCBkaXNhYmxlZC4gSG9zdCBBcHAgbXVzdCBkZWZpbmUgc3RhdGVzXHJcbiAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHsgaXRlbS5hY3RpdmUgPSBmYWxzZTsgaXRlbS5kaXNhYmxlZCA9IHRydWUgfSlcclxuXHJcbiAgcmV0dXJuIGl0ZW1zO1xyXG59XHJcblxyXG5jb25zdCBERUZBVUxUX1BPU0lUSU9OX0xFRlQgPSAzNTA7XHJcbmNvbnN0IERFRkFVTFRfUE9TSVRJT05fVE9QICA9IDY3MDtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYmltcGx1cy10b29sLWh1YicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBUb29sSHViSXRlbUNvbXBvbmVudCxcclxuICAgIFRvb2xIdWJTdWJJdGVtQ29tcG9uZW50LFxyXG4gICAgRHJhZ2dhYmxlRGlyZWN0aXZlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtUcmFuc2xhdGVTZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmltcGx1cy10b29sLWh1Yi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JpbXBsdXMtdG9vbC1odWIuY29tcG9uZW50Lmxlc3MnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmltcGx1c1Rvb2xIdWJDb21wb25lbnQgZXh0ZW5kcyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LEFmdGVyVmlld0luaXQge1xyXG4gIGNvbnN0cnVjdG9yKHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsYXlvdXRNYW5hZ2VyU2VydmljZTogTGF5b3V0TWFuYWdlclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZXNpemVPYnNlcnZlclNlcnZpY2U6UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIodHJhbnNsYXRlU2VydmljZSk7XHJcbiAgICAgICAgICAgXHJcbiAgICB0aGlzLml0ZW1zID0gY3JlYXRlRGVmYXVsdEl0ZW1zKCk7XHJcbiAgICB0aGlzLl92aXN1YWxTZXR0aW5ncyA9IGNyZWF0ZURlZmF1bHRWaXN1YWxTZXR0aW5ncygpO1xyXG4gICAgdGhpcy5fdW5pdHMgPSB0aGlzLmNhbGN1bGF0ZUN1cnJlbnRNZW51SXRlbVVuaXRzKCk7XHJcbiAgICB0aGlzLl9zdWJNZW51VW5pdHMgPSB0aGlzLmNhbGN1bGF0ZUN1cnJlbnRTdWJNZW51SXRlbVVuaXRzKCk7XHJcbiAgICB0aGlzLl9hbm51bGFyU2VjdG9yID0gU1ZHR2VuZXJhdG9yLmdlbmVyYXRlQW5udWxhclNlY3Rvcih0aGlzLl92aXN1YWxTZXR0aW5ncyk7XHJcbiAgICB0aGlzLl9hbm51bGFyU2VjdG9yQm9yZGVyID0gU1ZHR2VuZXJhdG9yLmdlbmVyYXRlQW5udWxhclNlY3RvckJvcmRlcih0aGlzLl92aXN1YWxTZXR0aW5ncyk7XHJcbiAgICB0aGlzLl9kZWFkWm9uZUFubnVsYXJTZWN0b3IgPSBTVkdHZW5lcmF0b3IuZ2VuZXJhdGVEZWFkWm9uZUFubnVsYXJTZWN0b3IodGhpcy5fdmlzdWFsU2V0dGluZ3MpO1xyXG5cclxuICB9XHJcblxyXG4gIC8vICNyZWdpb24gcHVibGljIGZpZWxkc1xyXG4gIFxyXG4gIGdldCBpdGVtU3RhdGVzKCk6IEFycmF5PFRvb2xIdWJJdGVtU3RhdGVzPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXRlbVN0YXRlcztcclxuICB9XHJcbiAgQElucHV0KCkgc2V0IGl0ZW1TdGF0ZXModmFsdWU6IEFycmF5PFRvb2xIdWJJdGVtU3RhdGVzPikge1xyXG4gICAgdGhpcy5faXRlbVN0YXRlcyA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZXRJdGVtU3RhdGVzKHRoaXMuX2l0ZW1TdGF0ZXMpO1xyXG4gIH1cclxuXHJcbiAgc2V0SXRlbVN0YXRlcyhpdGVtU3RhdGVzOiBBcnJheTxUb29sSHViSXRlbVN0YXRlcz4pIHtcclxuICAgIGZvciAoY29uc3QgaXRlbVN0YXRlIG9mIGl0ZW1TdGF0ZXMpIHtcclxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuX2l0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmJ1dHRvbklkID09PSBpdGVtU3RhdGUuYnV0dG9uSWQpO1xyXG4gICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgIGlmIChpdGVtU3RhdGUuYWN0aXZlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgaXRlbS5hY3RpdmUgPSBpdGVtU3RhdGUuYWN0aXZlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXRlbVN0YXRlLmRpc2FibGVkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIGl0ZW0uZGlzYWJsZWQgPSBpdGVtU3RhdGUuZGlzYWJsZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlQWN0aXZhdGlvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0IGl0ZW1zKCk6IEFycmF5PFRvb2xIdWJJdGVtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyh2YWx1ZTogQXJyYXk8VG9vbEh1Ykl0ZW0+KSB7XHJcbiAgICB0aGlzLl9pdGVtcyA9IHZhbHVlO1xyXG5cclxuICAgIGNvbnN0IGJ1dHRvbnNMZW5ndGggPSAodGhpcy5faXRlbXM/Lmxlbmd0aCkgPiAwID8gdGhpcy5faXRlbXMubGVuZ3RoIDogMTtcclxuICAgIGNvbnN0IHJvb3RTdHlsZSA9IGRvY3VtZW50Py5kb2N1bWVudEVsZW1lbnQ/LnN0eWxlO1xyXG4gICAgaWYgKHJvb3RTdHlsZSkge1xyXG4gICAgICBjb25zdCBtZW51SXRlbXMgPSByb290U3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcIi0tbWVudS1pdGVtc1wiKTtcclxuICAgICAgaWYgKHBhcnNlSW50KG1lbnVJdGVtcykgIT09IGJ1dHRvbnNMZW5ndGgpIHtcclxuICAgICAgICByb290U3R5bGUuc2V0UHJvcGVydHkoXCItLW1lbnUtaXRlbXNcIiwgYnV0dG9uc0xlbmd0aC50b1N0cmluZygpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFRyYW5zZmVyIGRpc2FibGVkIHN0YXRlcywgd2hpY2ggY2FuIGRlZmluZWQgYnkgaG9zdCBhcHBcclxuICAgIHRoaXMuc2V0SXRlbVN0YXRlcyh0aGlzLl9pdGVtU3RhdGVzKTtcclxuICB9XHJcblxyXG4gIGdldCBhY3RpdmVTdWJJdGVtcygpOiBBcnJheTxUb29sSHViU3ViSXRlbT4gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9hY3RpdmVTdWJJdGVtcztcclxuICB9XHJcblxyXG4gIGdldCBpc0NvbGxhcHNlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc0NvbGxhcHNlZDtcclxuICB9XHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXHJcbiAgc2V0IGlzQ29sbGFwc2VkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc0NvbGxhcHNlZCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzUGVyc3BlY3RpdmVQcm9qZWN0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzUGVyc3BlY3RpdmVQcm9qZWN0aW9uO1xyXG4gIH1cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcclxuICBzZXQgaXNQZXJzcGVjdGl2ZVByb2plY3Rpb24odmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2lzUGVyc3BlY3RpdmVQcm9qZWN0aW9uID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgdW5pdHMoKTogVG9vbEh1Ykl0ZW1Vbml0cyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdW5pdHM7XHJcbiAgfVxyXG5cclxuICBnZXQgc3ViTWVudVVuaXRzKCk6IFRvb2xIdWJJdGVtVW5pdHMge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N1Yk1lbnVVbml0cztcclxuICB9XHJcblxyXG4gIGdldCBhbm51bGFyU2VjdG9yKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYW5udWxhclNlY3RvcjtcclxuICB9XHJcblxyXG4gIGdldCBhbm51bGFyU2VjdG9yQm9yZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYW5udWxhclNlY3RvckJvcmRlcjtcclxuICB9XHJcblxyXG4gIGdldCBkZWFkWm9uZUFubnVsYXJTZWN0b3IoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWFkWm9uZUFubnVsYXJTZWN0b3I7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNFbWJlZGRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0ZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNBY3RpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBPdXRwdXQoKSBpdGVtQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBzdWJJdGVtQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIFxyXG4gIC8vIERlZmluZSBldmVudCBoYW5kbGVyIGZvciByZXVzaW5nIGRyYWdnYWJsZSBhbHNvIGZyb20gcmVzaXplIHBhcmVudCBcclxuICAvL0BPdXRwdXQoKSByZXNpemVkcmFnZ2luZyA9IG5ldyBFdmVudEVtaXR0ZXI8W251bWJlcixudW1iZXJdPigpO1xyXG5cclxuICBwcml2YXRlIGNvbXBvbmVudElkID0gJ2NlbnRlci1tZW51LWZwLWlkJztcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7ICAvLyBJbml0aWFsaXplIHRvIG51bGxcclxuXHJcbiAgbmdPbkluaXQoKTp2b2lkeyAgIFxyXG4gICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS5yZWdpc3Rlck9iamVjdCh0aGlzLmVsZW1lbnQsdGhpcy5jb21wb25lbnRJZCwnI2NlbnRlci1tZW51LWZwLWlkJyx0cnVlLERFRkFVTFRfUE9TSVRJT05fTEVGVCxERUZBVUxUX1BPU0lUSU9OX1RPUCk7XHJcbiAgICB0aGlzLmxheW91dE1hbmFnZXJTZXJ2aWNlLnJlZ2lzdGVyZWRJdGVtcyQuc3Vic2NyaWJlKGl0ZW1zID0+IHtcclxuICAgICAgY29uc3QgbGF5b3V0TWFuYWdlckl0ZW0gPSBpdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gdGhpcy5jb21wb25lbnRJZCk7XHJcbiAgICAgIHRoaXMuaXNDb2xsYXBzZWQgPSBCb29sZWFuKGxheW91dE1hbmFnZXJJdGVtPy5pc0NvbGxhcHNlZCk7ICAgICAgXHJcbiAgICB9KTtcclxuICAgIFxyXG4gIH1cclxuICBcclxuICBuZ0FmdGVyVmlld0luaXQoKTp2b2lke1xyXG4gICAvLyBpZiB0aGUgY29tcG9uZW50IHdhbnRzIHRvIGJlIHJlZ2lzdGVyZWQgaW4gbGF5b3V0IG1hbmFnZXIgc3lzdGVtXHJcbiAgIC8vIFN1YnNjcmliZSB0byB0aGUgb2JzZXJ2YWJsZVxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS5wYXJlbnRBcHBSZWN0JC5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICB0aGlzLmhhbmRsZVBhcmVudEFwcFJlY3RTaXplQ2hhbmdlKHZhbHVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICAvLyAjZW5kcmVnaW9uIHB1YmxpYyBmaWVsZHNcclxuIFxyXG4gIC8vICNyZWdpb24gcHVibGljIG1ldGhvZHNcclxuICBwdWJsaWMgZ2V0U1ZHVmlld0JveCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFNWR0dlbmVyYXRvci5nZXRTVkdWaWV3Qm94KHRoaXMuX3VuaXRzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTVkdDZW50ZXJNZW51UGF0aCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFNWR0dlbmVyYXRvci5nZXRTVkdDZW50ZXJNZW51UGF0aCh0aGlzLl91bml0cyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U1ZHQ2VudGVyTWVudUl0ZW1QYXRoKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gU1ZHR2VuZXJhdG9yLmdldFNWR0NlbnRlck1lbnVJdGVtUGF0aCh0aGlzLl91bml0cyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U1ZHQ2VudGVyU3ViTWVudUl0ZW1QYXRoKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gU1ZHR2VuZXJhdG9yLmdldFNWR0NlbnRlclN1Yk1lbnVJdGVtUGF0aCh0aGlzLl9zdWJNZW51VW5pdHMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZU1lbnUoKSB7XHJcbiAgICB0aGlzLmxheW91dE1hbmFnZXJTZXJ2aWNlLnVwZGF0ZUNvbGxhcHNlZCghdGhpcy5pc0NvbGxhcHNlZCx0aGlzLmNvbXBvbmVudElkKTtcclxuICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS5jaGVja1Bvc2l0aW9uKCdjZW50ZXItbWVudS1mcC1pZCcsdGhpcy5nZXRTZWxlY3RvcigpLHVuZGVmaW5lZCwwLDAsdHJ1ZSk7ICAgICAgXHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBmaW5kVG9vbEh1Ykl0ZW1CeUlkKGlkOiBzdHJpbmcpOiBUb29sSHViSXRlbSB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5faXRlbXMuZmluZCh4ID0+IHguYnV0dG9uSWQgPT09IGlkKTtcclxuICB9XHJcblxyXG4gIGNsaWNrVG9vbEh1Ykl0ZW0oYWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZpbmRUb29sSHViSXRlbUJ5SWQoYWN0aW9uKTtcclxuICAgIGlmICghaXRlbSB8fCBpdGVtPy5kaXNhYmxlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pdGVtQ2xpY2tlZC5lbWl0KGFjdGlvbik7XHJcbiAgfVxyXG5cclxuICBjbGlja1Rvb2xIdWJTdWJJdGVtKGFjdGlvbjogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXRoaXMuX2FjdGl2ZVN1Ykl0ZW1zKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpdGVtID0gdGhpcy5fYWN0aXZlU3ViSXRlbXMuZmluZCh4ID0+IHguYnV0dG9uSWQgPT09IGFjdGlvbik7XHJcbiAgICBpZiAoIWl0ZW0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3ViSXRlbUNsaWNrZWQuZW1pdChhY3Rpb24pO1xyXG4gICAgdGhpcy5jbG9zZUFjdGl2ZVN1Ykl0ZW1zVmlldygpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlVG9vbEh1Ykl0ZW1BY3RpdmUoYnV0dG9uSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZmluZFRvb2xIdWJJdGVtQnlJZChidXR0b25JZCk7XHJcbiAgICBpZiAoIWl0ZW0gfHwgaXRlbS5kaXNhYmxlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaXRlbS5hY3RpdmUgPSAhaXRlbS5hY3RpdmU7XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlQWN0aXZhdGlvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVTdWJJdGVtc1ZpZXcoYnV0dG9uSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZmluZFRvb2xIdWJJdGVtQnlJZChidXR0b25JZCk7XHJcbiAgICBpZiAoIWl0ZW0gfHwgaXRlbS5kaXNhYmxlZCB8fCAhaXRlbS5zdWJJdGVtcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaXRlbS5hY3RpdmUgPSAhaXRlbS5hY3RpdmU7XHJcbiAgICBpZiAoaXRlbS5hY3RpdmUpIHtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXNWaWV3ID0gaXRlbTtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXMgPSBpdGVtLnN1Ykl0ZW1zO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXNWaWV3ID0gbnVsbDtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXMgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlQ2FtZXJhUHJvamVjdGlvbihidXR0b25JZDogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXRoaXMuX2FjdGl2ZVN1Ykl0ZW1zKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpdGVtID0gdGhpcy5fYWN0aXZlU3ViSXRlbXMuZmluZCh4ID0+IHguYnV0dG9uSWQgPT09IGJ1dHRvbklkKTtcclxuICAgIGlmICghaXRlbSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc1BlcnNwZWN0aXZlUHJvamVjdGlvbiA9ICF0aGlzLmlzUGVyc3BlY3RpdmVQcm9qZWN0aW9uO1xyXG5cclxuICAgIGl0ZW0uaWNvbkNsYXNzID0gdGhpcy5pc1BlcnNwZWN0aXZlUHJvamVjdGlvbiA/ICd1aS1pY29uLXBlcnNwZWN0aXZlLWNhbWVyYS1wcm9qZWN0aW9uJyA6ICd1aS1pY29uLW9ydGhvZ3JhcGhpYy1jYW1lcmEtcHJvamVjdGlvbic7XHJcbiAgICBpdGVtLnRvb2x0aXAgPSB0aGlzLmlzUGVyc3BlY3RpdmVQcm9qZWN0aW9uID8gJ19QZXJzcGVjdGl2ZV9wcm9qZWN0aW9uX2NlbnRlcl9tZW51X3Rvb2x0aXAnIDogJ19PcnRob2dyYXBoaWNfcHJvamVjdGlvbl9jZW50ZXJfbWVudV90b29sdGlwJztcclxuICAgIGl0ZW0udG9vbHRpcERpc2FibGVkID0gdGhpcy5pc1BlcnNwZWN0aXZlUHJvamVjdGlvbiA/ICdfUGVyc3BlY3RpdmVfcHJvamVjdGlvbl9jZW50ZXJfbWVudV90b29sdGlwJyA6ICdfT3J0aG9ncmFwaGljX3Byb2plY3Rpb25fY2VudGVyX21lbnVfdG9vbHRpcCc7XHJcbiAgfVxyXG5cclxuICBjbG9zZUFjdGl2ZVN1Ykl0ZW1zVmlldygpIHtcclxuICAgIGlmICh0aGlzLl9hY3RpdmVTdWJJdGVtc1ZpZXcpIHtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXNWaWV3LmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLl9hY3RpdmVTdWJJdGVtc1ZpZXcgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fYWN0aXZlU3ViSXRlbXMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgc2V0SG92ZXJlZFN0YXRlKGVsZW1lbnQ6IHN0cmluZywgaG92ZXJlZDogYm9vbGVhbikge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLl9ob3ZlcmVkRWxlbWVudHMuaW5kZXhPZihlbGVtZW50KTtcclxuICAgIGNvbnN0IHN0b3JlZENvdW50SG92ZXJkID0gdGhpcy5faG92ZXJlZEVsZW1lbnRzLmxlbmd0aDtcclxuXHJcbiAgICBpZiAoaW5kZXggPj0gMCAmJiAhaG92ZXJlZCkge1xyXG4gICAgICB0aGlzLl9ob3ZlcmVkRWxlbWVudHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaW5kZXggPCAwICYmIGhvdmVyZWQpIHtcclxuICAgICAgdGhpcy5faG92ZXJlZEVsZW1lbnRzLnB1c2goZWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0b3JlZENvdW50SG92ZXJkID4gMCAmJiB0aGlzLl9ob3ZlcmVkRWxlbWVudHMubGVuZ3RoID09PSAwKSB7XHJcblxyXG4gICAgICAvLyBJZiBob3ZlcmVkIGVsZW1lbnRzIGNvdW50IHJlYWNoZXMgemVybywgY2hlY2sgYWdhaW4gYSBiaXQgZGVsYXllZC4gSWYgbm90aGluZyBob3ZlcmVkIGF0IHRoYXQgdGltZSwgY2xvc2Ugc3VibWVudVxyXG4gICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2hvdmVyZWRFbGVtZW50cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgIHRoaXMuY2xvc2VBY3RpdmVTdWJJdGVtc1ZpZXcoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTZWxlY3RvcigpOnN0cmluZ3tcclxuICAgIHJldHVybiB0aGlzLmlzQ29sbGFwc2VkID8gJyNjZW50ZXItbWVudS1jb250cm9sbGVyJzonLmNlbnRlci1tZW51LWZwJztcclxuICB9XHJcblxyXG4gIGRyYWdFbGVtZW50KGV2ZW50OiBbbnVtYmVyLCBudW1iZXJdKTogdm9pZCB7XHJcbiAgICBjb25zdCBkZWx0YVgxID0gZXZlbnRbMF07XHJcbiAgICBjb25zdCBkZWx0YVkxID0gZXZlbnRbMV07ICAgICAgICBcclxuICAgIHRoaXMubGF5b3V0TWFuYWdlclNlcnZpY2UuY2hlY2tQb3NpdGlvbignY2VudGVyLW1lbnUtZnAtaWQnLHRoaXMuZ2V0U2VsZWN0b3IoKSx1bmRlZmluZWQsZGVsdGFYMSxkZWx0YVkxKSAgICBcclxuICB9XHJcblxyXG4gIG9uRHJhZ0VuZCgpe1xyXG4gICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS5oYW5kbGVEcmFnRW5kKCdjZW50ZXItbWVudS1mcC1pZCcpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBwdWJsaWMgbWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIHByaXZhdGUgZmllbGRzXHJcbiAgcHJpdmF0ZSBfaXNDb2xsYXBzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9pdGVtU3RhdGVzOiBBcnJheTxUb29sSHViSXRlbVN0YXRlcz4gPSBBcnJheTxUb29sSHViSXRlbVN0YXRlcz4oKTtcclxuICBwcml2YXRlIF9pdGVtczogQXJyYXk8VG9vbEh1Ykl0ZW0+ID0gQXJyYXk8VG9vbEh1Ykl0ZW0+KCk7XHJcbiAgcHJpdmF0ZSBfYWN0aXZlU3ViSXRlbXNWaWV3OiBUb29sSHViSXRlbSB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgX2FjdGl2ZVN1Ykl0ZW1zOiBBcnJheTxUb29sSHViU3ViSXRlbT4gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIF9pc1BlcnNwZWN0aXZlUHJvamVjdGlvbiA9IHRydWU7IC8vIGZsYWcgYWJvdXQgcGVyc3BlY3RpdmUgb3Igb3J0aG9ncmFwaGljIGNhbWVyYSBwcm9qZWN0aW9uXHJcbiAgcHJpdmF0ZSBfdmlzdWFsU2V0dGluZ3M6IFRvb2xIdWJWaXN1YWxTZXR0aW5ncztcclxuICBwcml2YXRlIF91bml0czogVG9vbEh1Ykl0ZW1Vbml0cztcclxuICBwcml2YXRlIF9zdWJNZW51VW5pdHM6IFRvb2xIdWJJdGVtVW5pdHM7XHJcbiAgcHJpdmF0ZSBfYW5udWxhclNlY3Rvcjogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2FubnVsYXJTZWN0b3JCb3JkZXI6IHN0cmluZztcclxuICBwcml2YXRlIF9kZWFkWm9uZUFubnVsYXJTZWN0b3I6IHN0cmluZztcclxuICBwcml2YXRlIF9ob3ZlcmVkRWxlbWVudHM6IEFycmF5PHN0cmluZz4gPSBBcnJheTxzdHJpbmc+KCk7XHJcbiAgLy8gI2VuZHJlZ2lvbiBwcml2YXRlIGZpZWxkc1xyXG5cclxuICAvLyAjcmVnaW9uIHByaXZhdGUgbWV0aG9kc1xyXG4gIHByaXZhdGUgY2FsY3VsYXRlQ3VycmVudE1lbnVJdGVtVW5pdHMoKTogVG9vbEh1Ykl0ZW1Vbml0cyB7XHJcbiAgICByZXR1cm4gU1ZHR2VuZXJhdG9yLmRyYXdNZW51SXRlbVN2Zyh0aGlzLl92aXN1YWxTZXR0aW5ncy5zdmdSYWRpdXMsIHRoaXMuX3Zpc3VhbFNldHRpbmdzLnN2Z1JhZGl1c0lubmVyLCB0aGlzLl9pdGVtcy5sZW5ndGgsIHRoaXMuaXNFbWJlZGRlZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGN1bGF0ZUN1cnJlbnRTdWJNZW51SXRlbVVuaXRzKCk6IFRvb2xIdWJJdGVtVW5pdHMge1xyXG4gICAgcmV0dXJuIFNWR0dlbmVyYXRvci5kcmF3TWVudUl0ZW1TdmcodGhpcy5fdmlzdWFsU2V0dGluZ3Muc3ZnUmFkaXVzLCB0aGlzLl92aXN1YWxTZXR0aW5ncy5zdmdSYWRpdXNJbm5lciwgMjAsIHRoaXMuaXNFbWJlZGRlZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVBhcmVudEFwcFJlY3RTaXplQ2hhbmdlKHBhcmVudFJlY3Q6RE9NUmVjdCB8IHVuZGVmaW5lZCk6dm9pZHtcclxuICAgIHRoaXMubGF5b3V0TWFuYWdlclNlcnZpY2UuY2hlY2tQb3NpdGlvbih0aGlzLmNvbXBvbmVudElkLHRoaXMuZ2V0U2VsZWN0b3IoKSxwYXJlbnRSZWN0LDAsMCx0cnVlKTsgICAgXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9vbmVPck1vcmVJdGVtc0FjdGl2ZSgpe1xyXG4gICAgZm9yKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtcyl7XHJcbiAgICAgIGlmKGl0ZW0uYWN0aXZlID09PSB0cnVlKVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZUFjdGl2YXRpb25TdGF0ZSgpe1xyXG4gICAgaWYodGhpcy5fb25lT3JNb3JlSXRlbXNBY3RpdmUoKSl7XHJcbiAgICAgIHRoaXMuaXNBY3RpdmUgPSB0cnVlO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gI3JlZ2lvbiBwcml2YXRlIG1ldGhvZHNcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2VudGVyLW1lbnVcIj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImNlbnRlci1tZW51LWZwXCJcclxuICAgIGlkPVwiY2VudGVyLW1lbnUtZnAtaWRcIlxyXG4gICAgW25nQ2xhc3NdPVwiYWN0aXZlU3ViSXRlbXMgPyAnc3VibWVudS1hY3RpdmUnIDogJydcIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgbGliRHJhZ2dhYmxlXHJcbiAgICAgIGlkPVwiY2VudGVyLW1lbnUtY29udHJvbGxlclwiXHJcbiAgICAgIGNsYXNzPVwiY2VudGVyLW1lbnUtY29udHJvbGxlciBkcmFnZ2VyXCJcclxuICAgICAgZGF0YS10ZXN0PVwidG9vbGh1Yl9jb250cm9sbGVyXCJcclxuICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgIG9wZW5lZDogIWlzQ29sbGFwc2VkLFxyXG4gICAgICAgIGFjdGl2ZTogaXNBY3RpdmVcclxuICAgICAgfVwiXHJcbiAgICAgIFt0aXRsZV09XCJcclxuICAgICAgICBpc0NvbGxhcHNlZFxyXG4gICAgICAgICAgPyAoJ19TaG93X3Rvb2xodWJfdG9vbHRpcCcgfCB0cmFuc2xhdGUpXHJcbiAgICAgICAgICA6ICgnX01pbmltaXplX3Rvb2xodWJfdG9vbHRpcCcgfCB0cmFuc2xhdGUpXHJcbiAgICAgIFwiXHJcbiAgICAgIChjbGlja2VkKT1cInRvZ2dsZU1lbnUoKVwiXHJcbiAgICAgIChkcmFnZ2luZyk9XCJkcmFnRWxlbWVudCgkZXZlbnQpXCJcclxuICAgICAgKGRyYWdFbmQpID1cIm9uRHJhZ0VuZCgpXCJcclxuICAgID48L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJjZW50ZXItbWVudS1jaXJjbGUtYm9yZGVyLWlubmVyXCJcclxuICAgICAgW25nQ2xhc3NdPVwiaXNDb2xsYXBzZWQgPyAnaGlkZGVuJyA6ICcnXCJcclxuICAgID48L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJjZW50ZXItbWVudS1jaXJjbGUtYm9yZGVyLW91dGVyXCJcclxuICAgICAgW25nQ2xhc3NdPVwiaXNDb2xsYXBzZWQgPyAnaGlkZGVuJyA6ICcnXCJcclxuICAgICAgKG1vdXNlbGVhdmUpPVwic2V0SG92ZXJlZFN0YXRlKCdtZW51Q2lyY2xlQm9yZGVyT3V0ZXInLCBmYWxzZSlcIlxyXG4gICAgICAobW91c2VlbnRlcik9XCJzZXRIb3ZlcmVkU3RhdGUoJ21lbnVDaXJjbGVCb3JkZXJPdXRlcicsIHRydWUpXCJcclxuICAgID48L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgbGliRHJhZ2dhYmxlXHJcbiAgICAgIGNsYXNzPVwiY2VudGVyLW1lbnUtY2lyY2xlXCJcclxuICAgICAgW25nQ2xhc3NdPVwiaXNDb2xsYXBzZWQgPyAnaGlkZGVuJyA6ICcnXCJcclxuICAgICAgKG1vdXNlbGVhdmUpPVwic2V0SG92ZXJlZFN0YXRlKCdtZW51Q2lyY2xlJywgZmFsc2UpXCJcclxuICAgICAgKG1vdXNlZW50ZXIpPVwic2V0SG92ZXJlZFN0YXRlKCdtZW51Q2lyY2xlJywgdHJ1ZSlcIlxyXG4gICAgICAoZHJhZ2dpbmcpPVwiZHJhZ0VsZW1lbnQoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxsaWItdG9vbC1odWItaXRlbVxyXG4gICAgICAgIGxpYkRyYWdnYWJsZVxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCJcclxuICAgICAgICBbYXR0ci5kYXRhLXRlc3RdPVwiJ3Rvb2xodWJfaXRlbV8nICsgaXRlbS5idXR0b25JZFwiXHJcbiAgICAgICAgW3RpdGxlXT1cIml0ZW0udG9vbHRpcCB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXHJcbiAgICAgICAgW2FjdGl2ZV09XCIhIWl0ZW0uYWN0aXZlXCJcclxuICAgICAgICBbaXNFbmFibGVkXT1cIiFpdGVtLmRpc2FibGVkXCJcclxuICAgICAgICAoY2xpY2tlZCk9XCJjbGlja1Rvb2xIdWJJdGVtKGl0ZW0uYnV0dG9uSWQpXCJcclxuICAgICAgPjwvbGliLXRvb2wtaHViLWl0ZW0+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjZW50ZXJtZW51LWJ1dHRvbi1zdmdcIlxyXG4gICAgICAgIFthdHRyLnZpZXdCb3hdPVwiZ2V0U1ZHVmlld0JveCgpXCJcclxuICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2xpcFBhdGggaWQ9XCJzdmdDZW50ZXJNZW51XCIgY2xpcFBhdGhVbml0cz1cIm9iamVjdEJvdW5kaW5nQm94XCI+XHJcbiAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImdldFNWR0NlbnRlck1lbnVQYXRoKClcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgPGNsaXBQYXRoIGlkPVwic3ZnQ2VudGVyTWVudUl0ZW1cIiBjbGlwUGF0aFVuaXRzPVwib2JqZWN0Qm91bmRpbmdCb3hcIj5cclxuICAgICAgICAgIDxwYXRoIFthdHRyLmRdPVwiZ2V0U1ZHQ2VudGVyTWVudUl0ZW1QYXRoKClcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgPGNsaXBQYXRoIGlkPVwic3ZnQ2VudGVyU3ViTWVudUl0ZW1cIiBjbGlwUGF0aFVuaXRzPVwib2JqZWN0Qm91bmRpbmdCb3hcIj5cclxuICAgICAgICAgIDxwYXRoIFthdHRyLmRdPVwiZ2V0U1ZHQ2VudGVyU3ViTWVudUl0ZW1QYXRoKClcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgPGNsaXBQYXRoIGlkPVwic3ZnQ2VudGVyTWVudVN1Yk1lbnVcIiBjbGlwUGF0aFVuaXRzPVwib2JqZWN0Qm91bmRpbmdCb3hcIj5cclxuICAgICAgICAgIDxwYXRoIFthdHRyLmRdPVwiYW5udWxhclNlY3RvclwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgIDxjbGlwUGF0aFxyXG4gICAgICAgICAgaWQ9XCJzdmdDZW50ZXJNZW51U3ViTWVudUJvcmRlclwiXHJcbiAgICAgICAgICBjbGlwUGF0aFVuaXRzPVwib2JqZWN0Qm91bmRpbmdCb3hcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxwYXRoIFthdHRyLmRdPVwiYW5udWxhclNlY3RvckJvcmRlclwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgIDxjbGlwUGF0aFxyXG4gICAgICAgICAgaWQ9XCJzdmdDZW50ZXJNZW51U3ViTWVudURlYWRab25lXCJcclxuICAgICAgICAgIGNsaXBQYXRoVW5pdHM9XCJvYmplY3RCb3VuZGluZ0JveFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHBhdGggW2F0dHIuZF09XCJkZWFkWm9uZUFubnVsYXJTZWN0b3JcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYgKGFjdGl2ZVN1Ykl0ZW1zKSB7XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY2VudGVyLW1lbnUtc3ViLW1lbnUtYm9yZGVyXCJcclxuICAgICAgW25nQ2xhc3NdPVwiaXNDb2xsYXBzZWQgPyAnaGlkZGVuJyA6ICcnXCJcclxuICAgICAgKG1vdXNlbGVhdmUpPVwic2V0SG92ZXJlZFN0YXRlKCdzdWJtZW51Qm9yZGVyJywgZmFsc2UpXCJcclxuICAgICAgKG1vdXNlZW50ZXIpPVwic2V0SG92ZXJlZFN0YXRlKCdzdWJtZW51Qm9yZGVyJywgdHJ1ZSlcIlxyXG4gICAgPjwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImNlbnRlci1tZW51LXN1Yi1tZW51XCJcclxuICAgICAgW25nQ2xhc3NdPVwiaXNDb2xsYXBzZWQgPyAnaGlkZGVuJyA6ICcnXCJcclxuICAgICAgKG1vdXNlbGVhdmUpPVwic2V0SG92ZXJlZFN0YXRlKCdzdWJtZW51JywgZmFsc2UpXCJcclxuICAgICAgKG1vdXNlZW50ZXIpPVwic2V0SG92ZXJlZFN0YXRlKCdzdWJtZW51JywgdHJ1ZSlcIlxyXG4gICAgPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFjdGl2ZVN1Ykl0ZW1zXCI+XHJcbiAgICAgICAgPGxpYi10b29sLWh1Yi1zdWItaXRlbVxyXG4gICAgICAgICAgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdidXR0b24nXCJcclxuICAgICAgICAgIFthdHRyLmRhdGEtdGVzdF09XCIndG9vbGh1Yl9zdWJpdGVtXycgKyBpdGVtLmJ1dHRvbklkXCJcclxuICAgICAgICAgIFt0aXRsZV09XCJpdGVtLnRvb2x0aXAgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiY2xpY2tUb29sSHViU3ViSXRlbShpdGVtLmJ1dHRvbklkKVwiXHJcbiAgICAgICAgICAoa2V5cHJlc3MpPVwiY2xpY2tUb29sSHViU3ViSXRlbShpdGVtLmJ1dHRvbklkKVwiXHJcbiAgICAgICAgPjwvbGliLXRvb2wtaHViLXN1Yi1pdGVtPlxyXG4gICAgICAgIDwhLS0gdGhpcyBpdGVtIGlzIGFkZGVkIGFzIDZ0aCBidXQgaXMgbW92ZWQgYmFjayBpbiBsZXNzIGZpbGUgdG8gNXRoIHBvc2l0aW9uIC0tPlxyXG4gICAgICAgIDxsaWItdG9vbC1odWItc3ViLWl0ZW1cclxuICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09PSAnc2VwYXJhdG9yJ1wiXHJcbiAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RdPVwiJ3Rvb2xodWJfc3ViaXRlbV8nICsgaXRlbS5idXR0b25JZFwiXHJcbiAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcclxuICAgICAgICA+PC9saWItdG9vbC1odWItc3ViLWl0ZW0+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY2VudGVyLW1lbnUtc3ViLW1lbnUtZGVhZC16b25lXCJcclxuICAgICAgW25nQ2xhc3NdPVwiaXNDb2xsYXBzZWQgPyAnaGlkZGVuJyA6ICcnXCJcclxuICAgICAgKG1vdXNlbGVhdmUpPVwic2V0SG92ZXJlZFN0YXRlKCdkZWFkWm9uZScsIGZhbHNlKVwiXHJcbiAgICAgIChtb3VzZWVudGVyKT1cInNldEhvdmVyZWRTdGF0ZSgnZGVhZFpvbmUnLCB0cnVlKVwiXHJcbiAgICA+PC9kaXY+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
500
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy10b29sLWh1Yi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9iaW1wbHVzLXRvb2wtaHViL2JpbXBsdXMtdG9vbC1odWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy10b29sLWh1Yi9iaW1wbHVzLXRvb2wtaHViLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUNoSixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQTtBQUNsSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFBOzs7Ozs7QUFJekUsZ0RBQWdEO0FBRWhELFNBQVMsMkJBQTJCO0lBQ2xDLE1BQU0sUUFBUSxHQUEwQjtRQUN0QyxpQkFBaUIsRUFBRSxFQUFFO1FBQ3JCLGVBQWUsRUFBRSxHQUFHO1FBQ3BCLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFNBQVMsRUFBRSxLQUFL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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIGJvb2xlYW5BdHRyaWJ1dGUsIEVsZW1lbnRSZWYsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCAgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmltcGx1c0xvY2FsaXplZFdpZGdldENvbXBvbmVudCB9IGZyb20gXCIuLy4uL2JpbXBsdXMtbG9jYWxpemVkLXdpZGdldC9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQuY29tcG9uZW50XCJcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSwgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTVkdHZW5lcmF0b3IgfSBmcm9tICcuL3N2Z0dlbmVyYXRvcic7XHJcbmltcG9ydCB7IFRvb2xIdWJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi90b29sLWh1Yi1pdGVtL3Rvb2wtaHViLWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9vbEh1YlN1Ykl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3Rvb2wtaHViLXN1Yi1pdGVtL3Rvb2wtaHViLXN1Yi1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyYWdnYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZHJhZ2dhYmxlLmRpcmVjdGl2ZSdcclxuaW1wb3J0IHsgVG9vbEh1Ykl0ZW0sIFRvb2xIdWJTdWJJdGVtLCBUb29sSHViVmlzdWFsU2V0dGluZ3MsIFRvb2xIdWJJdGVtVW5pdHMsIFRvb2xIdWJJdGVtU3RhdGVzIH0gZnJvbSAnLi9iaW1wbHVzLXRvb2wtaHViLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IExheW91dE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGF5b3V0LW1hbmFnZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlc2l6ZU9ic2VydmVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc2l6ZS1vYnNlcnZlci5zZXJ2aWNlJztcclxuLy9pbXBvcnQgeyBmaXJlRXZlbnQgfSBmcm9tICcuLi8uLi91dGlscy91dGlscyc7XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVEZWZhdWx0VmlzdWFsU2V0dGluZ3MoKTogVG9vbEh1YlZpc3VhbFNldHRpbmdzIHtcclxuICBjb25zdCBzZXR0aW5nczogVG9vbEh1YlZpc3VhbFNldHRpbmdzID0ge1xyXG4gICAgc3ViTWVudVN0YXJ0QW5nbGU6IDQwLFxyXG4gICAgc3ViTWVudUVuZEFuZ2xlOiAxNDAsXHJcbiAgICBzdmdSYWRpdXNJbm5lcjogNS43NSxcclxuICAgIHN2Z1JhZGl1czogMTAuMjUsXHJcbiAgICBzdWJNZW51Q2VudGVyOiBbMTcuMjUsIDE3LjVdLFxyXG4gICAgc3ViTWVudVJhZGl1czogMTUuNSxcclxuICAgIHN1Yk1lbnVXaWR0aDogNTIsXHJcbiAgICBkZWFkWm9uZUNlbnRlcjogWzE3LCAxOF0sXHJcbiAgICBkZWFkWm9uZVdpZHRoOiAxNDAsXHJcbiAgICBkZWFkWm9uZVJhZGl1czogMjIsXHJcbiAgICBkZWFkWm9uZVN0YXJ0QW5nbGU6IDM1LFxyXG4gICAgZGVhZFpvbmVFbmRBbmdsZTogMTQ1XHJcbiAgfVxyXG4gIHJldHVybiBzZXR0aW5ncztcclxufVxyXG5cclxuLy8gVXNlIHdoZW4gaW1wbGVtZW50aW5nIGVtYmVkZGVkIG1vZGVcclxuLy8gZnVuY3Rpb24gY3JlYXRlRW1iZWRkZWRTZXR0aW5ncygpIDogVG9vbEh1YlZpc3VhbFNldHRpbmdze1xyXG4vLyAgIGNvbnN0IHNldHRpbmdzIDogVG9vbEh1YlZpc3VhbFNldHRpbmdzID0ge1xyXG4vLyAgICAgc3ViTWVudVN0YXJ0QW5nbGUgOiA0MCxcclxuLy8gICAgIHN1Yk1lbnVFbmRBbmdsZSA6IDE0MCxcclxuLy8gICAgIHN2Z1JhZGl1c0lubmVyIDogNCxcclxuLy8gICAgIHN2Z1JhZGl1cyA6IDcuMjUsXHJcbi8vICAgICBzdWJNZW51Q2VudGVyIDogWzE3LjI1LCAxNy4zXSxcclxuLy8gICAgIHN1Yk1lbnVSYWRpdXMgOiAxNi4yLFxyXG4vLyAgICAgc3ViTWVudVdpZHRoIDogNjIsXHJcbi8vICAgICBkZWFkWm9uZUNlbnRlciA6IFsxNi41LCAxNl0sXHJcbi8vICAgICBkZWFkWm9uZVdpZHRoIDogMTIwLFxyXG4vLyAgICAgZGVhZFpvbmVSYWRpdXMgOiAxOCxcclxuLy8gICAgIGRlYWRab25lU3RhcnRBbmdsZSA6IDM1LFxyXG4vLyAgICAgZGVhZFpvbmVFbmRBbmdsZSA6IDE0NVxyXG4vLyAgIH1cclxuLy8gICByZXR1cm4gc2V0dGluZ3M7XHJcbi8vIH1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRJdGVtcygpOiBBcnJheTxUb29sSHViSXRlbT4ge1xyXG4gIGNvbnN0IGl0ZW1zOiBBcnJheTxUb29sSHViSXRlbT4gPSBbXHJcbiAgICAvLy0tLSBjcmVhdGUgdGFzayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHtcclxuICAgICAgYnV0dG9uSWQ6ICdjbUJ1dENyZWF0ZVRhc2snLFxyXG4gICAgICBpY29uQ2xhc3M6ICd1aS1pY29uLWNyZWF0ZS10YXNrJyxcclxuICAgICAgdGV4dDogJ19DcmVhdGVfaXNzdWVfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXA6ICdfQ3JlYXRlX2lzc3VlX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfQ3JlYXRlX2lzc3VlX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgfSxcclxuXHJcbiAgICAvLy0tLSBxdWFudGl0eSB0YWtlb2ZmIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAge1xyXG4gICAgICBidXR0b25JZDogJ2NtQnV0UXVhbnRpdHlUYWtlT2ZmJyxcclxuICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1xdWFudGl0eS10YWtlLW9mZicsXHJcbiAgICAgIHRleHQ6ICdfUXVhbnRpdHlfdGFrZV9PZmZfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXA6ICdfUXVhbnRpdHlfdGFrZV9PZmZfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19RdWFudGl0eV90YWtlX09mZl9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgIH0sXHJcblxyXG4gICAgLy8tLS0gbWFya3VwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAge1xyXG4gICAgICBidXR0b25JZDogJ2NtQnV0TWFya3VwJyxcclxuICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1tYXJrdXAnLFxyXG4gICAgICB0ZXh0OiAnX01hcmt1cHNfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXA6ICdfTWFya3Vwc19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcERpc2FibGVkOiAnX01hcmt1cHNfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICB9LFxyXG5cclxuICAgIC8vLS0tIHNlY3Rpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICB7XHJcbiAgICAgIGJ1dHRvbklkOiAnY21CdXRTZWN0aW9uJyxcclxuICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1zZWN0aW9uJyxcclxuICAgICAgdGV4dDogJ19TZWN0aW9uaW5nX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX1NlY3Rpb25pbmdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19TZWN0aW9uaW5nX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgfSxcclxuXHJcbiAgICAvLy0tLSBoaWRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAge1xyXG4gICAgICBidXR0b25JZDogJ2NtQnV0T2JqVHJhbnNwTWVudScsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tb2JqLXRyYW5zcCcsXHJcbiAgICAgIHRleHQ6ICdfSGlkZV9vYmplY3RzX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX0hpZGVfb2JqZWN0c19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcERpc2FibGVkOiAnX0hpZGVfb2JqZWN0c19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgIH0sXHJcblxyXG4gICAgLy8tLS0gaXNvbGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHtcclxuICAgICAgYnV0dG9uSWQ6ICdjbUJ1dE9ialNlbCcsXHJcbiAgICAgIGljb25DbGFzczogJ3VpLWljb24tb2JqLXNlbGVjdCcsXHJcbiAgICAgIHRleHQ6ICdfSXNvbGF0ZV9vYmplY3RzX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX0lzb2xhdGVfb2JqZWN0c19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcERpc2FibGVkOiAnX0lzb2xhdGVfb2JqZWN0c19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgIH0sXHJcblxyXG4gICAgLy8tLS0gbmF2aWdhdGlvbiBtYXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICB7XHJcbiAgICAgIGJ1dHRvbklkOiAnY21CdXROYXZpZ2F0aW9uTWFwJyxcclxuICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1uYXZpZ2F0aW9uLW1hcCcsXHJcbiAgICAgIHRleHQ6ICdfTmF2aWdhdGlvbl9uYXBfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXA6ICdfTmF2aWdhdGlvbl9uYXBfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19OYXZpZ2F0aW9uX25hcF9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgIH0sXHJcblxyXG4gICAgLy8tLS0gZnVsbHNjcmVlbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICB7XHJcbiAgICAgIGJ1dHRvbklkOiAnY21CdXRGdWxsU2NyZWVuJyxcclxuICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1mdWxsc2NyZWVuJyxcclxuICAgICAgdGV4dDogJ19GdWxsc2NyZWVuX25vZGVfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXA6ICdfRnVsbHNjcmVlbl9ub2RlX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfRnVsbHNjcmVlbl9ub2RlX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgfSxcclxuXHJcbiAgICAvLy0tLSBwcm9qZWN0IG5hdmlnYXRvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHtcclxuICAgICAgYnV0dG9uSWQ6ICdjbUJ1dFByb2plY3ROYXZpZ2F0b3InLFxyXG4gICAgICBpY29uQ2xhc3M6ICd1aS1pY29uLXByb2plY3QtbmF2aWdhdG9yJyxcclxuICAgICAgdGV4dDogJ19Qcm9qZWN0X25hdmlnYXRvcl9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcDogJ19Qcm9qZWN0X25hdmlnYXRvcl9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgdG9vbHRpcERpc2FibGVkOiAnX1Byb2plY3RfbmF2aWdhdG9yX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgfSxcclxuXHJcbiAgICAvLy0tLSByZXNldCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHtcclxuICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1vYmotcmVzZXQnLFxyXG4gICAgICBidXR0b25JZDogJ2NtQnV0UmVzZXRPYmonLFxyXG4gICAgICB0ZXh0OiAnX1Jlc2V0X3ZpZXdwb3J0X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwOiAnX1Jlc2V0X3ZpZXdwb3J0X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICB0b29sdGlwRGlzYWJsZWQ6ICdfUmVzZXRfdmlld3BvcnRfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICB9LFxyXG5cclxuICAgIC8vLS0tIHZpZXcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICB7XHJcbiAgICAgIGJ1dHRvbklkOiAnY21CdXRSZXNldFZwJyxcclxuICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1yZXNldC12cCcsXHJcbiAgICAgIHRleHQ6ICdfU2VsZWN0X3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXA6ICdfU2VsZWN0X3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19TZWxlY3Rfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgc3ViTWVudUlkOiAnY21iLXZpZXctc3VibWVudScsXHJcbiAgICAgIHN1Ykl0ZW1zOiBbXHJcbiAgICAgICAgLy8tLS0gRnJvbnQgVmlldyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgICAgICB7XHJcbiAgICAgICAgICBidXR0b25JZDogJ2NtQnV0RnJvbnRWaWV3JyxcclxuICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxyXG4gICAgICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1mcm9udC12aWV3JyxcclxuICAgICAgICAgIHRleHQ6ICdfRnJvbnRfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIHRvb2x0aXA6ICdfRnJvbnRfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19Gcm9udF92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICAgICAgYWN0aW9uQ2xpY2s6ICdjZW50ZXJNZW51RnJvbnRWaWV3Q2xpY2snLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8tLS0gVG9wIFZpZXcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgYnV0dG9uSWQ6ICdjbUJ1dFRvcFZpZXcnLFxyXG4gICAgICAgICAgdHlwZTogJ2J1dHRvbicsXHJcbiAgICAgICAgICBpY29uQ2xhc3M6ICd1aS1pY29uLXRvcC12aWV3JyxcclxuICAgICAgICAgIHRleHQ6ICdfVG9wX3ZpZXdfY2VudGVyX21lbnVfdG9vbHRpcCcsXHJcbiAgICAgICAgICB0b29sdGlwOiAnX1RvcF92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICAgICAgdG9vbHRpcERpc2FibGVkOiAnX1RvcF92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICAgICAgYWN0aW9uQ2xpY2s6ICdjZW50ZXJNZW51VG9wVmlld0NsaWNrJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vLS0tIFNpZGUgVmlldyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgICAgICB7XHJcbiAgICAgICAgICBidXR0b25JZDogJ2NtQnV0U2lkZVZpZXcnLFxyXG4gICAgICAgICAgdHlwZTogJ2J1dHRvbicsXHJcbiAgICAgICAgICBpY29uQ2xhc3M6ICd1aS1pY29uLXNpZGUtdmlldycsXHJcbiAgICAgICAgICB0ZXh0OiAnX1NpZGVfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIHRvb2x0aXA6ICdfU2lkZV92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICAgICAgdG9vbHRpcERpc2FibGVkOiAnX1NpZGVfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIGFjdGlvbkNsaWNrOiAnY2VudGVyTWVudVNpZGVWaWV3Q2xpY2snLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8tLS0gUGVyc3BlY3RpdmUgVmlldyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgICAgICB7XHJcbiAgICAgICAgICBidXR0b25JZDogJ2NtQnV0UGVyc3BlY3RpdmVWaWV3JyxcclxuICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxyXG4gICAgICAgICAgaWNvbkNsYXNzOiAndWktaWNvbi1wZXJzcGVjdGl2ZS12aWV3JyxcclxuICAgICAgICAgIHRleHQ6ICdfUGVyc3BlY3RpdmVfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIHRvb2x0aXA6ICdfUGVyc3BlY3RpdmVfdmlld19jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19QZXJzcGVjdGl2ZV92aWV3X2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICAgICAgYWN0aW9uQ2xpY2s6ICdjZW50ZXJNZW51UGVyc3BlY3RpdmVWaWV3Q2xpY2snLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8tLS0gU2VwYXJhdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGJ1dHRvbklkOiAndG9vbGh1YlN1Ym1lbnVTZXBhcmF0b3JJZDEnLFxyXG4gICAgICAgICAgdHlwZTogJ3NlcGFyYXRvcicsXHJcbiAgICAgICAgICBpY29uQ2xhc3M6ICdjZW50ZXItc3ViLW1lbnUtYnV0dG9uLWljb24gdG9vbGh1Yi1zdWJtZW51LXNlcGFyYXRvcicsXHJcbiAgICAgICAgICB0ZXh0OiAnJyxcclxuICAgICAgICAgIHRvb2x0aXA6ICcnLFxyXG4gICAgICAgICAgdG9vbHRpcERpc2FibGVkOiAnJyxcclxuICAgICAgICAgIGFjdGlvbkNsaWNrOiAnJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vLS0tIFRvZ2dsZSBidXR0b24gcGVyc3BlY3RpdmUvb3J0aG9nb25hbCBwcm9qZWN0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgYnV0dG9uSWQ6ICdjbUJ1dFRvZ2dsZVByb2plY3Rpb24nLFxyXG4gICAgICAgICAgdHlwZTogJ2J1dHRvbicsXHJcbiAgICAgICAgICBpY29uQ2xhc3M6ICd1aS1pY29uLW9ydGhvZ3JhcGhpYy1jYW1lcmEtcHJvamVjdGlvbicsXHJcbiAgICAgICAgICB0ZXh0OiAnX09ydGhvZ3JhcGhpY19wcm9qZWN0aW9uX2NlbnRlcl9tZW51X3Rvb2x0aXAnLFxyXG4gICAgICAgICAgdG9vbHRpcDogJ19PcnRob2dyYXBoaWNfcHJvamVjdGlvbl9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIHRvb2x0aXBEaXNhYmxlZDogJ19PcnRob2dyYXBoaWNfcHJvamVjdGlvbl9jZW50ZXJfbWVudV90b29sdGlwJyxcclxuICAgICAgICAgIGFjdGlvbkNsaWNrOiAnY2VudGVyTWVudVRvZ2dsZVByb2plY3Rpb24nLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF1cclxuICAgIH1cclxuICBdXHJcblxyXG4gIC8vIFNldCBhbGwgdG9vbCBodWIgaXRlbXMgc3RhdGVzIHRvIGluYWN0aXZlIGFuZCBkaXNhYmxlZC4gSG9zdCBBcHAgbXVzdCBkZWZpbmUgc3RhdGVzXHJcbiAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHsgaXRlbS5hY3RpdmUgPSBmYWxzZTsgaXRlbS5kaXNhYmxlZCA9IHRydWUgfSlcclxuXHJcbiAgcmV0dXJuIGl0ZW1zO1xyXG59XHJcblxyXG5jb25zdCBERUZBVUxUX1BPU0lUSU9OX0xFRlQgPSAzNTA7XHJcbmNvbnN0IERFRkFVTFRfUE9TSVRJT05fVE9QICA9IDY3MDtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYmltcGx1cy10b29sLWh1YicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBUb29sSHViSXRlbUNvbXBvbmVudCxcclxuICAgIFRvb2xIdWJTdWJJdGVtQ29tcG9uZW50LFxyXG4gICAgRHJhZ2dhYmxlRGlyZWN0aXZlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtUcmFuc2xhdGVTZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmltcGx1cy10b29sLWh1Yi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JpbXBsdXMtdG9vbC1odWIuY29tcG9uZW50Lmxlc3MnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmltcGx1c1Rvb2xIdWJDb21wb25lbnQgZXh0ZW5kcyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LEFmdGVyVmlld0luaXQge1xyXG4gIGNvbnN0cnVjdG9yKHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsYXlvdXRNYW5hZ2VyU2VydmljZTogTGF5b3V0TWFuYWdlclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZXNpemVPYnNlcnZlclNlcnZpY2U6UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIodHJhbnNsYXRlU2VydmljZSk7XHJcbiAgICAgICAgICAgXHJcbiAgICB0aGlzLml0ZW1zID0gY3JlYXRlRGVmYXVsdEl0ZW1zKCk7XHJcbiAgICB0aGlzLl92aXN1YWxTZXR0aW5ncyA9IGNyZWF0ZURlZmF1bHRWaXN1YWxTZXR0aW5ncygpO1xyXG4gICAgdGhpcy5fdW5pdHMgPSB0aGlzLmNhbGN1bGF0ZUN1cnJlbnRNZW51SXRlbVVuaXRzKCk7XHJcbiAgICB0aGlzLl9zdWJNZW51VW5pdHMgPSB0aGlzLmNhbGN1bGF0ZUN1cnJlbnRTdWJNZW51SXRlbVVuaXRzKCk7XHJcbiAgICB0aGlzLl9hbm51bGFyU2VjdG9yID0gU1ZHR2VuZXJhdG9yLmdlbmVyYXRlQW5udWxhclNlY3Rvcih0aGlzLl92aXN1YWxTZXR0aW5ncyk7XHJcbiAgICB0aGlzLl9hbm51bGFyU2VjdG9yQm9yZGVyID0gU1ZHR2VuZXJhdG9yLmdlbmVyYXRlQW5udWxhclNlY3RvckJvcmRlcih0aGlzLl92aXN1YWxTZXR0aW5ncyk7XHJcbiAgICB0aGlzLl9kZWFkWm9uZUFubnVsYXJTZWN0b3IgPSBTVkdHZW5lcmF0b3IuZ2VuZXJhdGVEZWFkWm9uZUFubnVsYXJTZWN0b3IodGhpcy5fdmlzdWFsU2V0dGluZ3MpO1xyXG5cclxuICB9XHJcblxyXG4gIC8vICNyZWdpb24gcHVibGljIGZpZWxkc1xyXG4gIFxyXG4gIGdldCBpdGVtU3RhdGVzKCk6IEFycmF5PFRvb2xIdWJJdGVtU3RhdGVzPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXRlbVN0YXRlcztcclxuICB9XHJcbiAgQElucHV0KCkgc2V0IGl0ZW1TdGF0ZXModmFsdWU6IEFycmF5PFRvb2xIdWJJdGVtU3RhdGVzPikge1xyXG4gICAgdGhpcy5faXRlbVN0YXRlcyA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZXRJdGVtU3RhdGVzKHRoaXMuX2l0ZW1TdGF0ZXMpO1xyXG4gIH1cclxuXHJcbiAgc2V0SXRlbVN0YXRlcyhpdGVtU3RhdGVzOiBBcnJheTxUb29sSHViSXRlbVN0YXRlcz4pIHtcclxuICAgIGZvciAoY29uc3QgaXRlbVN0YXRlIG9mIGl0ZW1TdGF0ZXMpIHtcclxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuX2l0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmJ1dHRvbklkID09PSBpdGVtU3RhdGUuYnV0dG9uSWQpO1xyXG4gICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgIGlmIChpdGVtU3RhdGUuYWN0aXZlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgaXRlbS5hY3RpdmUgPSBpdGVtU3RhdGUuYWN0aXZlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXRlbVN0YXRlLmRpc2FibGVkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIGl0ZW0uZGlzYWJsZWQgPSBpdGVtU3RhdGUuZGlzYWJsZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlQWN0aXZhdGlvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0IGl0ZW1zKCk6IEFycmF5PFRvb2xIdWJJdGVtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyh2YWx1ZTogQXJyYXk8VG9vbEh1Ykl0ZW0+KSB7XHJcbiAgICB0aGlzLl9pdGVtcyA9IHZhbHVlO1xyXG5cclxuICAgIGNvbnN0IGJ1dHRvbnNMZW5ndGggPSAodGhpcy5faXRlbXM/Lmxlbmd0aCkgPiAwID8gdGhpcy5faXRlbXMubGVuZ3RoIDogMTtcclxuICAgIGNvbnN0IHJvb3RTdHlsZSA9IGRvY3VtZW50Py5kb2N1bWVudEVsZW1lbnQ/LnN0eWxlO1xyXG4gICAgaWYgKHJvb3RTdHlsZSkge1xyXG4gICAgICBjb25zdCBtZW51SXRlbXMgPSByb290U3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcIi0tbWVudS1pdGVtc1wiKTtcclxuICAgICAgaWYgKHBhcnNlSW50KG1lbnVJdGVtcykgIT09IGJ1dHRvbnNMZW5ndGgpIHtcclxuICAgICAgICByb290U3R5bGUuc2V0UHJvcGVydHkoXCItLW1lbnUtaXRlbXNcIiwgYnV0dG9uc0xlbmd0aC50b1N0cmluZygpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFRyYW5zZmVyIGRpc2FibGVkIHN0YXRlcywgd2hpY2ggY2FuIGRlZmluZWQgYnkgaG9zdCBhcHBcclxuICAgIHRoaXMuc2V0SXRlbVN0YXRlcyh0aGlzLl9pdGVtU3RhdGVzKTtcclxuICB9XHJcblxyXG4gIGdldCBhY3RpdmVTdWJJdGVtcygpOiBBcnJheTxUb29sSHViU3ViSXRlbT4gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9hY3RpdmVTdWJJdGVtcztcclxuICB9XHJcblxyXG4gIGdldCBpc0NvbGxhcHNlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc0NvbGxhcHNlZDtcclxuICB9XHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXHJcbiAgc2V0IGlzQ29sbGFwc2VkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc0NvbGxhcHNlZCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzUGVyc3BlY3RpdmVQcm9qZWN0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzUGVyc3BlY3RpdmVQcm9qZWN0aW9uO1xyXG4gIH1cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcclxuICBzZXQgaXNQZXJzcGVjdGl2ZVByb2plY3Rpb24odmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2lzUGVyc3BlY3RpdmVQcm9qZWN0aW9uID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgdW5pdHMoKTogVG9vbEh1Ykl0ZW1Vbml0cyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdW5pdHM7XHJcbiAgfVxyXG5cclxuICBnZXQgc3ViTWVudVVuaXRzKCk6IFRvb2xIdWJJdGVtVW5pdHMge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N1Yk1lbnVVbml0cztcclxuICB9XHJcblxyXG4gIGdldCBhbm51bGFyU2VjdG9yKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYW5udWxhclNlY3RvcjtcclxuICB9XHJcblxyXG4gIGdldCBhbm51bGFyU2VjdG9yQm9yZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYW5udWxhclNlY3RvckJvcmRlcjtcclxuICB9XHJcblxyXG4gIGdldCBkZWFkWm9uZUFubnVsYXJTZWN0b3IoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWFkWm9uZUFubnVsYXJTZWN0b3I7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNFbWJlZGRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0ZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNBY3RpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBPdXRwdXQoKSBpdGVtQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBzdWJJdGVtQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIFxyXG4gIC8vIERlZmluZSBldmVudCBoYW5kbGVyIGZvciByZXVzaW5nIGRyYWdnYWJsZSBhbHNvIGZyb20gcmVzaXplIHBhcmVudCBcclxuICAvL0BPdXRwdXQoKSByZXNpemVkcmFnZ2luZyA9IG5ldyBFdmVudEVtaXR0ZXI8W251bWJlcixudW1iZXJdPigpO1xyXG5cclxuICBwcml2YXRlIGNvbXBvbmVudElkID0gJ2NlbnRlci1tZW51LWZwLWlkJztcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7ICAvLyBJbml0aWFsaXplIHRvIG51bGxcclxuXHJcbiAgbmdPbkluaXQoKTp2b2lkeyAgIFxyXG4gICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS5yZWdpc3Rlck9iamVjdCh0aGlzLmVsZW1lbnQsdGhpcy5jb21wb25lbnRJZCwnI2NlbnRlci1tZW51LWZwLWlkJyx0cnVlLERFRkFVTFRfUE9TSVRJT05fTEVGVCxERUZBVUxUX1BPU0lUSU9OX1RPUCk7XHJcbiAgICB0aGlzLmxheW91dE1hbmFnZXJTZXJ2aWNlLnJlZ2lzdGVyZWRJdGVtcyQuc3Vic2NyaWJlKGl0ZW1zID0+IHtcclxuICAgICAgY29uc3QgbGF5b3V0TWFuYWdlckl0ZW0gPSBpdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gdGhpcy5jb21wb25lbnRJZCk7XHJcbiAgICAgIHRoaXMuaXNDb2xsYXBzZWQgPSBCb29sZWFuKGxheW91dE1hbmFnZXJJdGVtPy5pc0NvbGxhcHNlZCk7ICAgICAgXHJcbiAgICB9KTtcclxuICAgIFxyXG4gIH1cclxuICBcclxuICBuZ0FmdGVyVmlld0luaXQoKTp2b2lke1xyXG4gICAvLyBpZiB0aGUgY29tcG9uZW50IHdhbnRzIHRvIGJlIHJlZ2lzdGVyZWQgaW4gbGF5b3V0IG1hbmFnZXIgc3lzdGVtXHJcbiAgIC8vIFN1YnNjcmliZSB0byB0aGUgb2JzZXJ2YWJsZVxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS5wYXJlbnRBcHBSZWN0JC5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICB0aGlzLmhhbmRsZVBhcmVudEFwcFJlY3RTaXplQ2hhbmdlKHZhbHVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICAvLyAjZW5kcmVnaW9uIHB1YmxpYyBmaWVsZHNcclxuIFxyXG4gIC8vICNyZWdpb24gcHVibGljIG1ldGhvZHNcclxuICBwdWJsaWMgZ2V0U1ZHVmlld0JveCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFNWR0dlbmVyYXRvci5nZXRTVkdWaWV3Qm94KHRoaXMuX3VuaXRzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTVkdDZW50ZXJNZW51UGF0aCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFNWR0dlbmVyYXRvci5nZXRTVkdDZW50ZXJNZW51UGF0aCh0aGlzLl91bml0cyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U1ZHQ2VudGVyTWVudUl0ZW1QYXRoKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gU1ZHR2VuZXJhdG9yLmdldFNWR0NlbnRlck1lbnVJdGVtUGF0aCh0aGlzLl91bml0cyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U1ZHQ2VudGVyU3ViTWVudUl0ZW1QYXRoKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gU1ZHR2VuZXJhdG9yLmdldFNWR0NlbnRlclN1Yk1lbnVJdGVtUGF0aCh0aGlzLl9zdWJNZW51VW5pdHMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZU1lbnUoKSB7XHJcbiAgICB0aGlzLmxheW91dE1hbmFnZXJTZXJ2aWNlLnVwZGF0ZUNvbGxhcHNlZCghdGhpcy5pc0NvbGxhcHNlZCx0aGlzLmNvbXBvbmVudElkKTtcclxuICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS5jaGVja1Bvc2l0aW9uKCdjZW50ZXItbWVudS1mcC1pZCcsdGhpcy5nZXRTZWxlY3RvcigpLHVuZGVmaW5lZCwwLDAsdHJ1ZSk7ICAgICAgXHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBmaW5kVG9vbEh1Ykl0ZW1CeUlkKGlkOiBzdHJpbmcpOiBUb29sSHViSXRlbSB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5faXRlbXMuZmluZCh4ID0+IHguYnV0dG9uSWQgPT09IGlkKTtcclxuICB9XHJcblxyXG4gIGNsaWNrVG9vbEh1Ykl0ZW0oYWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZpbmRUb29sSHViSXRlbUJ5SWQoYWN0aW9uKTtcclxuICAgIGlmICghaXRlbSB8fCBpdGVtPy5kaXNhYmxlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pdGVtQ2xpY2tlZC5lbWl0KGFjdGlvbik7XHJcbiAgfVxyXG5cclxuICBjbGlja1Rvb2xIdWJTdWJJdGVtKGFjdGlvbjogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXRoaXMuX2FjdGl2ZVN1Ykl0ZW1zKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpdGVtID0gdGhpcy5fYWN0aXZlU3ViSXRlbXMuZmluZCh4ID0+IHguYnV0dG9uSWQgPT09IGFjdGlvbik7XHJcbiAgICBpZiAoIWl0ZW0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3ViSXRlbUNsaWNrZWQuZW1pdChhY3Rpb24pO1xyXG4gICAgdGhpcy5jbG9zZUFjdGl2ZVN1Ykl0ZW1zVmlldygpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlVG9vbEh1Ykl0ZW1BY3RpdmUoYnV0dG9uSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZmluZFRvb2xIdWJJdGVtQnlJZChidXR0b25JZCk7XHJcbiAgICBpZiAoIWl0ZW0gfHwgaXRlbS5kaXNhYmxlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaXRlbS5hY3RpdmUgPSAhaXRlbS5hY3RpdmU7XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlQWN0aXZhdGlvblN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVTdWJJdGVtc1ZpZXcoYnV0dG9uSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZmluZFRvb2xIdWJJdGVtQnlJZChidXR0b25JZCk7XHJcbiAgICBpZiAoIWl0ZW0gfHwgaXRlbS5kaXNhYmxlZCB8fCAhaXRlbS5zdWJJdGVtcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaXRlbS5hY3RpdmUgPSAhaXRlbS5hY3RpdmU7XHJcbiAgICBpZiAoaXRlbS5hY3RpdmUpIHtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXNWaWV3ID0gaXRlbTtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXMgPSBpdGVtLnN1Ykl0ZW1zO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXNWaWV3ID0gbnVsbDtcclxuICAgICAgdGhpcy5fYWN0aXZlU3ViSXRlbXMgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlQ2FtZXJhUHJvamVjdGlvbihidXR0b25JZDogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXRoaXMuX2FjdGl2ZVN1Ykl0ZW1zKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpdGVtID0gdGhpcy5fYWN0aXZlU3ViSXRlbXMuZmluZCh4ID0+IHguYnV0dG9uSWQgPT09IGJ1dHRvbklkKTtcclxuICAgIGlmICghaXRlbSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc1BlcnNwZWN0aXZlUHJvamVjdGlvbiA9ICF0aGlzLmlzUGVyc3BlY3RpdmVQcm9qZWN0aW9uO1xyXG5cclxuICAgIGl0ZW0uaWNvbkNsYXNzID0gdGhpcy5pc1BlcnNwZWN0aXZlUHJvamVjdGlvbiA/ICd1aS1pY29uLW9ydGhvZ3JhcGhpYy1jYW1lcmEtcHJvamVjdGlvbicgOiAndWktaWNvbi1wZXJzcGVjdGl2ZS1jYW1lcmEtcHJvamVjdGlvbic7XHJcbiAgICBpdGVtLnRleHQgPSB0aGlzLmlzUGVyc3BlY3RpdmVQcm9qZWN0aW9uID8gJ19PcnRob2dyYXBoaWNfcHJvamVjdGlvbl9jZW50ZXJfbWVudV90b29sdGlwJyA6ICdfUGVyc3BlY3RpdmVfcHJvamVjdGlvbl9jZW50ZXJfbWVudV90b29sdGlwJztcclxuICAgIGl0ZW0udG9vbHRpcCA9IHRoaXMuaXNQZXJzcGVjdGl2ZVByb2plY3Rpb24gPyAnX09ydGhvZ3JhcGhpY19wcm9qZWN0aW9uX2NlbnRlcl9tZW51X3Rvb2x0aXAnIDogJ19QZXJzcGVjdGl2ZV9wcm9qZWN0aW9uX2NlbnRlcl9tZW51X3Rvb2x0aXAnO1xyXG4gICAgaXRlbS50b29sdGlwRGlzYWJsZWQgPSB0aGlzLmlzUGVyc3BlY3RpdmVQcm9qZWN0aW9uID8gJ19PcnRob2dyYXBoaWNfcHJvamVjdGlvbl9jZW50ZXJfbWVudV90b29sdGlwJyA6ICdfUGVyc3BlY3RpdmVfcHJvamVjdGlvbl9jZW50ZXJfbWVudV90b29sdGlwJztcclxuICB9XHJcblxyXG4gIGNsb3NlQWN0aXZlU3ViSXRlbXNWaWV3KCkge1xyXG4gICAgaWYgKHRoaXMuX2FjdGl2ZVN1Ykl0ZW1zVmlldykge1xyXG4gICAgICB0aGlzLl9hY3RpdmVTdWJJdGVtc1ZpZXcuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX2FjdGl2ZVN1Ykl0ZW1zVmlldyA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9hY3RpdmVTdWJJdGVtcyA9IG51bGw7XHJcbiAgfVxyXG5cclxuICBzZXRIb3ZlcmVkU3RhdGUoZWxlbWVudDogc3RyaW5nLCBob3ZlcmVkOiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuX2hvdmVyZWRFbGVtZW50cy5pbmRleE9mKGVsZW1lbnQpO1xyXG4gICAgY29uc3Qgc3RvcmVkQ291bnRIb3ZlcmQgPSB0aGlzLl9ob3ZlcmVkRWxlbWVudHMubGVuZ3RoO1xyXG5cclxuICAgIGlmIChpbmRleCA+PSAwICYmICFob3ZlcmVkKSB7XHJcbiAgICAgIHRoaXMuX2hvdmVyZWRFbGVtZW50cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpbmRleCA8IDAgJiYgaG92ZXJlZCkge1xyXG4gICAgICB0aGlzLl9ob3ZlcmVkRWxlbWVudHMucHVzaChlbGVtZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RvcmVkQ291bnRIb3ZlcmQgPiAwICYmIHRoaXMuX2hvdmVyZWRFbGVtZW50cy5sZW5ndGggPT09IDApIHtcclxuXHJcbiAgICAgIC8vIElmIGhvdmVyZWQgZWxlbWVudHMgY291bnQgcmVhY2hlcyB6ZXJvLCBjaGVjayBhZ2FpbiBhIGJpdCBkZWxheWVkLiBJZiBub3RoaW5nIGhvdmVyZWQgYXQgdGhhdCB0aW1lLCBjbG9zZSBzdWJtZW51XHJcbiAgICAgIHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5faG92ZXJlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgdGhpcy5jbG9zZUFjdGl2ZVN1Ykl0ZW1zVmlldygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgMTAwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNlbGVjdG9yKCk6c3RyaW5ne1xyXG4gICAgcmV0dXJuIHRoaXMuaXNDb2xsYXBzZWQgPyAnI2NlbnRlci1tZW51LWNvbnRyb2xsZXInOicuY2VudGVyLW1lbnUtZnAnO1xyXG4gIH1cclxuXHJcbiAgZHJhZ0VsZW1lbnQoZXZlbnQ6IFtudW1iZXIsIG51bWJlcl0pOiB2b2lkIHtcclxuICAgIGNvbnN0IGRlbHRhWDEgPSBldmVudFswXTtcclxuICAgIGNvbnN0IGRlbHRhWTEgPSBldmVudFsxXTsgICAgICAgIFxyXG4gICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS5jaGVja1Bvc2l0aW9uKCdjZW50ZXItbWVudS1mcC1pZCcsdGhpcy5nZXRTZWxlY3RvcigpLHVuZGVmaW5lZCxkZWx0YVgxLGRlbHRhWTEpICAgIFxyXG4gIH1cclxuXHJcbiAgb25EcmFnRW5kKCl7XHJcbiAgICB0aGlzLmxheW91dE1hbmFnZXJTZXJ2aWNlLmhhbmRsZURyYWdFbmQoJ2NlbnRlci1tZW51LWZwLWlkJyk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIHB1YmxpYyBtZXRob2RzXHJcblxyXG4gIC8vICNyZWdpb24gcHJpdmF0ZSBmaWVsZHNcclxuICBwcml2YXRlIF9pc0NvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2l0ZW1TdGF0ZXM6IEFycmF5PFRvb2xIdWJJdGVtU3RhdGVzPiA9IEFycmF5PFRvb2xIdWJJdGVtU3RhdGVzPigpO1xyXG4gIHByaXZhdGUgX2l0ZW1zOiBBcnJheTxUb29sSHViSXRlbT4gPSBBcnJheTxUb29sSHViSXRlbT4oKTtcclxuICBwcml2YXRlIF9hY3RpdmVTdWJJdGVtc1ZpZXc6IFRvb2xIdWJJdGVtIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfYWN0aXZlU3ViSXRlbXM6IEFycmF5PFRvb2xIdWJTdWJJdGVtPiB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgX2lzUGVyc3BlY3RpdmVQcm9qZWN0aW9uID0gdHJ1ZTsgLy8gZmxhZyBhYm91dCBwZXJzcGVjdGl2ZSBvciBvcnRob2dyYXBoaWMgY2FtZXJhIHByb2plY3Rpb25cclxuICBwcml2YXRlIF92aXN1YWxTZXR0aW5nczogVG9vbEh1YlZpc3VhbFNldHRpbmdzO1xyXG4gIHByaXZhdGUgX3VuaXRzOiBUb29sSHViSXRlbVVuaXRzO1xyXG4gIHByaXZhdGUgX3N1Yk1lbnVVbml0czogVG9vbEh1Ykl0ZW1Vbml0cztcclxuICBwcml2YXRlIF9hbm51bGFyU2VjdG9yOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfYW5udWxhclNlY3RvckJvcmRlcjogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2RlYWRab25lQW5udWxhclNlY3Rvcjogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2hvdmVyZWRFbGVtZW50czogQXJyYXk8c3RyaW5nPiA9IEFycmF5PHN0cmluZz4oKTtcclxuICAvLyAjZW5kcmVnaW9uIHByaXZhdGUgZmllbGRzXHJcblxyXG4gIC8vICNyZWdpb24gcHJpdmF0ZSBtZXRob2RzXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVDdXJyZW50TWVudUl0ZW1Vbml0cygpOiBUb29sSHViSXRlbVVuaXRzIHtcclxuICAgIHJldHVybiBTVkdHZW5lcmF0b3IuZHJhd01lbnVJdGVtU3ZnKHRoaXMuX3Zpc3VhbFNldHRpbmdzLnN2Z1JhZGl1cywgdGhpcy5fdmlzdWFsU2V0dGluZ3Muc3ZnUmFkaXVzSW5uZXIsIHRoaXMuX2l0ZW1zLmxlbmd0aCwgdGhpcy5pc0VtYmVkZGVkKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsY3VsYXRlQ3VycmVudFN1Yk1lbnVJdGVtVW5pdHMoKTogVG9vbEh1Ykl0ZW1Vbml0cyB7XHJcbiAgICByZXR1cm4gU1ZHR2VuZXJhdG9yLmRyYXdNZW51SXRlbVN2Zyh0aGlzLl92aXN1YWxTZXR0aW5ncy5zdmdSYWRpdXMsIHRoaXMuX3Zpc3VhbFNldHRpbmdzLnN2Z1JhZGl1c0lubmVyLCAyMCwgdGhpcy5pc0VtYmVkZGVkKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlUGFyZW50QXBwUmVjdFNpemVDaGFuZ2UocGFyZW50UmVjdDpET01SZWN0IHwgdW5kZWZpbmVkKTp2b2lke1xyXG4gICAgdGhpcy5sYXlvdXRNYW5hZ2VyU2VydmljZS5jaGVja1Bvc2l0aW9uKHRoaXMuY29tcG9uZW50SWQsdGhpcy5nZXRTZWxlY3RvcigpLHBhcmVudFJlY3QsMCwwLHRydWUpOyAgICBcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX29uZU9yTW9yZUl0ZW1zQWN0aXZlKCl7XHJcbiAgICBmb3IoY29uc3QgaXRlbSBvZiB0aGlzLml0ZW1zKXtcclxuICAgICAgaWYoaXRlbS5hY3RpdmUgPT09IHRydWUpXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlQWN0aXZhdGlvblN0YXRlKCl7XHJcbiAgICBpZih0aGlzLl9vbmVPck1vcmVJdGVtc0FjdGl2ZSgpKXtcclxuICAgICAgdGhpcy5pc0FjdGl2ZSA9IHRydWU7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyAjcmVnaW9uIHByaXZhdGUgbWV0aG9kc1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjZW50ZXItbWVudVwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiY2VudGVyLW1lbnUtZnBcIlxyXG4gICAgaWQ9XCJjZW50ZXItbWVudS1mcC1pZFwiXHJcbiAgICBbbmdDbGFzc109XCJhY3RpdmVTdWJJdGVtcyA/ICdzdWJtZW51LWFjdGl2ZScgOiAnJ1wiXHJcbiAgPlxyXG4gICAgPGRpdlxyXG4gICAgICBsaWJEcmFnZ2FibGVcclxuICAgICAgaWQ9XCJjZW50ZXItbWVudS1jb250cm9sbGVyXCJcclxuICAgICAgY2xhc3M9XCJjZW50ZXItbWVudS1jb250cm9sbGVyIGRyYWdnZXJcIlxyXG4gICAgICBkYXRhLXRlc3Q9XCJ0b29saHViX2NvbnRyb2xsZXJcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgb3BlbmVkOiAhaXNDb2xsYXBzZWQsXHJcbiAgICAgICAgYWN0aXZlOiBpc0FjdGl2ZVxyXG4gICAgICB9XCJcclxuICAgICAgW3RpdGxlXT1cIlxyXG4gICAgICAgIGlzQ29sbGFwc2VkXHJcbiAgICAgICAgICA/ICgnX1Nob3dfdG9vbGh1Yl90b29sdGlwJyB8IHRyYW5zbGF0ZSlcclxuICAgICAgICAgIDogKCdfTWluaW1pemVfdG9vbGh1Yl90b29sdGlwJyB8IHRyYW5zbGF0ZSlcclxuICAgICAgXCJcclxuICAgICAgKGNsaWNrZWQpPVwidG9nZ2xlTWVudSgpXCJcclxuICAgICAgKGRyYWdnaW5nKT1cImRyYWdFbGVtZW50KCRldmVudClcIlxyXG4gICAgICAoZHJhZ0VuZCkgPVwib25EcmFnRW5kKClcIlxyXG4gICAgPjwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImNlbnRlci1tZW51LWNpcmNsZS1ib3JkZXItaW5uZXJcIlxyXG4gICAgICBbbmdDbGFzc109XCJpc0NvbGxhcHNlZCA/ICdoaWRkZW4nIDogJydcIlxyXG4gICAgPjwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImNlbnRlci1tZW51LWNpcmNsZS1ib3JkZXItb3V0ZXJcIlxyXG4gICAgICBbbmdDbGFzc109XCJpc0NvbGxhcHNlZCA/ICdoaWRkZW4nIDogJydcIlxyXG4gICAgICAobW91c2VsZWF2ZSk9XCJzZXRIb3ZlcmVkU3RhdGUoJ21lbnVDaXJjbGVCb3JkZXJPdXRlcicsIGZhbHNlKVwiXHJcbiAgICAgIChtb3VzZWVudGVyKT1cInNldEhvdmVyZWRTdGF0ZSgnbWVudUNpcmNsZUJvcmRlck91dGVyJywgdHJ1ZSlcIlxyXG4gICAgPjwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBsaWJEcmFnZ2FibGVcclxuICAgICAgY2xhc3M9XCJjZW50ZXItbWVudS1jaXJjbGVcIlxyXG4gICAgICBbbmdDbGFzc109XCJpc0NvbGxhcHNlZCA/ICdoaWRkZW4nIDogJydcIlxyXG4gICAgICAobW91c2VsZWF2ZSk9XCJzZXRIb3ZlcmVkU3RhdGUoJ21lbnVDaXJjbGUnLCBmYWxzZSlcIlxyXG4gICAgICAobW91c2VlbnRlcik9XCJzZXRIb3ZlcmVkU3RhdGUoJ21lbnVDaXJjbGUnLCB0cnVlKVwiXHJcbiAgICAgIChkcmFnZ2luZyk9XCJkcmFnRWxlbWVudCgkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgPGxpYi10b29sLWh1Yi1pdGVtXHJcbiAgICAgICAgbGliRHJhZ2dhYmxlXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIlxyXG4gICAgICAgIFthdHRyLmRhdGEtdGVzdF09XCIndG9vbGh1Yl9pdGVtXycgKyBpdGVtLmJ1dHRvbklkXCJcclxuICAgICAgICBbdGl0bGVdPVwiaXRlbS50b29sdGlwIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBbaXRlbV09XCJpdGVtXCJcclxuICAgICAgICBbYWN0aXZlXT1cIiEhaXRlbS5hY3RpdmVcIlxyXG4gICAgICAgIFtpc0VuYWJsZWRdPVwiIWl0ZW0uZGlzYWJsZWRcIlxyXG4gICAgICAgIChjbGlja2VkKT1cImNsaWNrVG9vbEh1Ykl0ZW0oaXRlbS5idXR0b25JZClcIlxyXG4gICAgICA+PC9saWItdG9vbC1odWItaXRlbT5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNlbnRlcm1lbnUtYnV0dG9uLXN2Z1wiXHJcbiAgICAgICAgW2F0dHIudmlld0JveF09XCJnZXRTVkdWaWV3Qm94KClcIlxyXG4gICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjbGlwUGF0aCBpZD1cInN2Z0NlbnRlck1lbnVcIiBjbGlwUGF0aFVuaXRzPVwib2JqZWN0Qm91bmRpbmdCb3hcIj5cclxuICAgICAgICAgIDxwYXRoIFthdHRyLmRdPVwiZ2V0U1ZHQ2VudGVyTWVudVBhdGgoKVwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICA8Y2xpcFBhdGggaWQ9XCJzdmdDZW50ZXJNZW51SXRlbVwiIGNsaXBQYXRoVW5pdHM9XCJvYmplY3RCb3VuZGluZ0JveFwiPlxyXG4gICAgICAgICAgPHBhdGggW2F0dHIuZF09XCJnZXRTVkdDZW50ZXJNZW51SXRlbVBhdGgoKVwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICA8Y2xpcFBhdGggaWQ9XCJzdmdDZW50ZXJTdWJNZW51SXRlbVwiIGNsaXBQYXRoVW5pdHM9XCJvYmplY3RCb3VuZGluZ0JveFwiPlxyXG4gICAgICAgICAgPHBhdGggW2F0dHIuZF09XCJnZXRTVkdDZW50ZXJTdWJNZW51SXRlbVBhdGgoKVwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICA8Y2xpcFBhdGggaWQ9XCJzdmdDZW50ZXJNZW51U3ViTWVudVwiIGNsaXBQYXRoVW5pdHM9XCJvYmplY3RCb3VuZGluZ0JveFwiPlxyXG4gICAgICAgICAgPHBhdGggW2F0dHIuZF09XCJhbm51bGFyU2VjdG9yXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgPGNsaXBQYXRoXHJcbiAgICAgICAgICBpZD1cInN2Z0NlbnRlck1lbnVTdWJNZW51Qm9yZGVyXCJcclxuICAgICAgICAgIGNsaXBQYXRoVW5pdHM9XCJvYmplY3RCb3VuZGluZ0JveFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHBhdGggW2F0dHIuZF09XCJhbm51bGFyU2VjdG9yQm9yZGVyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgPGNsaXBQYXRoXHJcbiAgICAgICAgICBpZD1cInN2Z0NlbnRlck1lbnVTdWJNZW51RGVhZFpvbmVcIlxyXG4gICAgICAgICAgY2xpcFBhdGhVbml0cz1cIm9iamVjdEJvdW5kaW5nQm94XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImRlYWRab25lQW5udWxhclNlY3RvclwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIEBpZiAoYWN0aXZlU3ViSXRlbXMpIHtcclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJjZW50ZXItbWVudS1zdWItbWVudS1ib3JkZXJcIlxyXG4gICAgICBbbmdDbGFzc109XCJpc0NvbGxhcHNlZCA/ICdoaWRkZW4nIDogJydcIlxyXG4gICAgICAobW91c2VsZWF2ZSk9XCJzZXRIb3ZlcmVkU3RhdGUoJ3N1Ym1lbnVCb3JkZXInLCBmYWxzZSlcIlxyXG4gICAgICAobW91c2VlbnRlcik9XCJzZXRIb3ZlcmVkU3RhdGUoJ3N1Ym1lbnVCb3JkZXInLCB0cnVlKVwiXHJcbiAgICA+PC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY2VudGVyLW1lbnUtc3ViLW1lbnVcIlxyXG4gICAgICBbbmdDbGFzc109XCJpc0NvbGxhcHNlZCA/ICdoaWRkZW4nIDogJydcIlxyXG4gICAgICAobW91c2VsZWF2ZSk9XCJzZXRIb3ZlcmVkU3RhdGUoJ3N1Ym1lbnUnLCBmYWxzZSlcIlxyXG4gICAgICAobW91c2VlbnRlcik9XCJzZXRIb3ZlcmVkU3RhdGUoJ3N1Ym1lbnUnLCB0cnVlKVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYWN0aXZlU3ViSXRlbXNcIj5cclxuICAgICAgICA8bGliLXRvb2wtaHViLXN1Yi1pdGVtXHJcbiAgICAgICAgICAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2J1dHRvbidcIlxyXG4gICAgICAgICAgW2F0dHIuZGF0YS10ZXN0XT1cIid0b29saHViX3N1Yml0ZW1fJyArIGl0ZW0uYnV0dG9uSWRcIlxyXG4gICAgICAgICAgW3RpdGxlXT1cIml0ZW0udG9vbHRpcCB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcclxuICAgICAgICAgIChjbGljayk9XCJjbGlja1Rvb2xIdWJTdWJJdGVtKGl0ZW0uYnV0dG9uSWQpXCJcclxuICAgICAgICAgIChrZXlwcmVzcyk9XCJjbGlja1Rvb2xIdWJTdWJJdGVtKGl0ZW0uYnV0dG9uSWQpXCJcclxuICAgICAgICA+PC9saWItdG9vbC1odWItc3ViLWl0ZW0+XHJcbiAgICAgICAgPCEtLSB0aGlzIGl0ZW0gaXMgYWRkZWQgYXMgNnRoIGJ1dCBpcyBtb3ZlZCBiYWNrIGluIGxlc3MgZmlsZSB0byA1dGggcG9zaXRpb24gLS0+XHJcbiAgICAgICAgPGxpYi10b29sLWh1Yi1zdWItaXRlbVxyXG4gICAgICAgICAgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdzZXBhcmF0b3InXCJcclxuICAgICAgICAgIFthdHRyLmRhdGEtdGVzdF09XCIndG9vbGh1Yl9zdWJpdGVtXycgKyBpdGVtLmJ1dHRvbklkXCJcclxuICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxyXG4gICAgICAgID48L2xpYi10b29sLWh1Yi1zdWItaXRlbT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJjZW50ZXItbWVudS1zdWItbWVudS1kZWFkLXpvbmVcIlxyXG4gICAgICBbbmdDbGFzc109XCJpc0NvbGxhcHNlZCA/ICdoaWRkZW4nIDogJydcIlxyXG4gICAgICAobW91c2VsZWF2ZSk9XCJzZXRIb3ZlcmVkU3RhdGUoJ2RlYWRab25lJywgZmFsc2UpXCJcclxuICAgICAgKG1vdXNlZW50ZXIpPVwic2V0SG92ZXJlZFN0YXRlKCdkZWFkWm9uZScsIHRydWUpXCJcclxuICAgID48L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -3463,10 +3463,10 @@ function createDefaultItems() {
3463
3463
  {
3464
3464
  buttonId: 'cmButToggleProjection',
3465
3465
  type: 'button',
3466
- iconClass: 'ui-icon-perspective-camera-projection',
3467
- text: '_Perspective_projection_center_menu_tooltip',
3468
- tooltip: '_Perspective_projection_center_menu_tooltip',
3469
- tooltipDisabled: '_Perspective_projection_center_menu_tooltip',
3466
+ iconClass: 'ui-icon-orthographic-camera-projection',
3467
+ text: '_Orthographic_projection_center_menu_tooltip',
3468
+ tooltip: '_Orthographic_projection_center_menu_tooltip',
3469
+ tooltipDisabled: '_Orthographic_projection_center_menu_tooltip',
3470
3470
  actionClick: 'centerMenuToggleProjection',
3471
3471
  },
3472
3472
  ]
@@ -3665,9 +3665,10 @@ class BimplusToolHubComponent extends BimplusLocalizedWidgetComponent {
3665
3665
  return;
3666
3666
  }
3667
3667
  this.isPerspectiveProjection = !this.isPerspectiveProjection;
3668
- item.iconClass = this.isPerspectiveProjection ? 'ui-icon-perspective-camera-projection' : 'ui-icon-orthographic-camera-projection';
3669
- item.tooltip = this.isPerspectiveProjection ? '_Perspective_projection_center_menu_tooltip' : '_Orthographic_projection_center_menu_tooltip';
3670
- item.tooltipDisabled = this.isPerspectiveProjection ? '_Perspective_projection_center_menu_tooltip' : '_Orthographic_projection_center_menu_tooltip';
3668
+ item.iconClass = this.isPerspectiveProjection ? 'ui-icon-orthographic-camera-projection' : 'ui-icon-perspective-camera-projection';
3669
+ item.text = this.isPerspectiveProjection ? '_Orthographic_projection_center_menu_tooltip' : '_Perspective_projection_center_menu_tooltip';
3670
+ item.tooltip = this.isPerspectiveProjection ? '_Orthographic_projection_center_menu_tooltip' : '_Perspective_projection_center_menu_tooltip';
3671
+ item.tooltipDisabled = this.isPerspectiveProjection ? '_Orthographic_projection_center_menu_tooltip' : '_Perspective_projection_center_menu_tooltip';
3671
3672
  }
3672
3673
  closeActiveSubItemsView() {
3673
3674
  if (this._activeSubItemsView) {